From 394594bb22d6b1f9d003792a2692d70030dcc628 Mon Sep 17 00:00:00 2001 From: sejas Date: Thu, 1 Aug 2024 19:27:20 +0100 Subject: [PATCH 01/24] Update playground dependencies in package --- package-lock.json | 282 ++++++++++++++++++++++++++++++++++++++-------- package.json | 10 +- 2 files changed, 239 insertions(+), 53 deletions(-) diff --git a/package-lock.json b/package-lock.json index a7079eb7..3b17eedb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,13 +27,13 @@ "@codemirror/state": "6.4.1", "@codemirror/theme-one-dark": "6.1.2", "@codemirror/view": "6.28.1", - "@php-wasm/node": "0.6.16", - "@php-wasm/progress": "0.6.16", - "@php-wasm/universal": "0.6.16", - "@php-wasm/web": "0.6.16", + "@php-wasm/node": "0.9.27", + "@php-wasm/progress": "0.9.27", + "@php-wasm/universal": "0.9.27", + "@php-wasm/web": "0.9.27", "@uiw/react-codemirror": "4.22.2", "@webcontainer/env": "1.1.1", - "@wp-playground/blueprints": "0.6.16", + "@wp-playground/blueprints": "0.9.27", "classnames": "^2.3.2", "comlink": "^4.4.1", "compressible": "2.0.18", @@ -9780,16 +9780,61 @@ "node": ">=4" } }, - "node_modules/@php-wasm/node": { - "version": "0.6.16", - "resolved": "https://registry.npmjs.org/@php-wasm/node/-/node-0.6.16.tgz", - "integrity": "sha512-8G79CDlExmh3wvIyI6JensmfewJ+/+hhBZVBnVwKeoe5AuCxB4h/CChLklRm9sczx5ertiIlfkY3b9yWzD5Rfw==", + "node_modules/@php-wasm/fs-journal": { + "version": "0.9.27", + "resolved": "https://registry.npmjs.org/@php-wasm/fs-journal/-/fs-journal-0.9.27.tgz", + "integrity": "sha512-VJ24jg0pOxU2Dkl9TlYA+vsnpt41DniAvXbWjB5AAn1qQrqnlPuURV1za8jp/VPnaMh6iejjKeLkhG1hUTaDQQ==", + "dependencies": { + "@php-wasm/logger": "0.9.27", + "@php-wasm/node": "0.9.27", + "@php-wasm/universal": "0.9.27", + "@php-wasm/util": "0.9.27", + "comlink": "^4.4.1", + "express": "4.19.2", + "ini": "4.1.2", + "ws": "8.18.0", + "yargs": "17.7.2" + }, + "engines": { + "node": ">=18.18.0", + "npm": ">=8.11.0" + } + }, + "node_modules/@php-wasm/fs-journal/node_modules/ini": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz", + "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@php-wasm/logger": { + "version": "0.9.27", + "resolved": "https://registry.npmjs.org/@php-wasm/logger/-/logger-0.9.27.tgz", + "integrity": "sha512-ppHhEnwrMNZijBGsN0Dsu/5CrlTs7SoZHigGmeVYhxvUi2AL/lPgfdXUQ7fDmlxJFHdoH3E2NPH5TC+aN2x0Gw==", "dependencies": { - "@php-wasm/node-polyfills": "0.6.16", - "@php-wasm/universal": "0.6.16", - "@php-wasm/util": "0.6.16", + "@php-wasm/node-polyfills": "0.9.27" + }, + "engines": { + "node": ">=18.18.0", + "npm": ">=8.11.0" + } + }, + "node_modules/@php-wasm/node": { + "version": "0.9.27", + "resolved": "https://registry.npmjs.org/@php-wasm/node/-/node-0.9.27.tgz", + "integrity": "sha512-oul1QdHfxqqgfcLnopHsB7tyrJPwASVhfSXCwIPax6crZDmigD7EyOACJynD7DYPstYlqpog+gxLLZCHj0pJqQ==", + "dependencies": { + "@php-wasm/logger": "0.9.27", + "@php-wasm/node-polyfills": "0.9.27", + "@php-wasm/universal": "0.9.27", + "@php-wasm/util": "0.9.27", + "@wp-playground/common": "0.9.27", + "@wp-playground/wordpress": "0.9.27", "comlink": "^4.4.1", - "ws": "8.13.0", + "express": "4.19.2", + "ini": "4.1.2", + "ws": "8.18.0", "yargs": "17.7.2" }, "engines": { @@ -9798,16 +9843,25 @@ } }, "node_modules/@php-wasm/node-polyfills": { - "version": "0.6.16", - "resolved": "https://registry.npmjs.org/@php-wasm/node-polyfills/-/node-polyfills-0.6.16.tgz", - "integrity": "sha512-JurRxOkPa4tBeXI8kKFKdBzVmK3N2OQzSkti3bt76yWAeKFkvMCtYyEbvHkk6W64sP7bKRCyytPHvwjXNOI3ig==" + "version": "0.9.27", + "resolved": "https://registry.npmjs.org/@php-wasm/node-polyfills/-/node-polyfills-0.9.27.tgz", + "integrity": "sha512-Kvmd7MvPazK6/xF1XV6HWrtxnghO8T9jWRtjLlXKA8K6VzianQTZSzE+kPad+3UtZD7UIV9EgJocLyQjFMK+LQ==" + }, + "node_modules/@php-wasm/node/node_modules/ini": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz", + "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, "node_modules/@php-wasm/progress": { - "version": "0.6.16", - "resolved": "https://registry.npmjs.org/@php-wasm/progress/-/progress-0.6.16.tgz", - "integrity": "sha512-DTAvj4yFIllBAlynUx+DWhbEFewjYJo+NbTO0Qsu/yk5QkL8FgOOIdLsiGcwDhDia9glMo8VxdPNwmIfSPBg4Q==", + "version": "0.9.27", + "resolved": "https://registry.npmjs.org/@php-wasm/progress/-/progress-0.9.27.tgz", + "integrity": "sha512-qqS52VYw2W4q2YaNC+Xrn8UFK745sHy1GrSZiHdVDP3RI7oNUnioTh7bQ1osqTa5UBmcvVPYlGMadEhAPBCUng==", "dependencies": { - "@php-wasm/node-polyfills": "0.6.16" + "@php-wasm/logger": "0.9.27", + "@php-wasm/node-polyfills": "0.9.27" }, "engines": { "node": ">=18.18.0", @@ -9815,42 +9869,73 @@ } }, "node_modules/@php-wasm/scopes": { - "version": "0.6.16", - "resolved": "https://registry.npmjs.org/@php-wasm/scopes/-/scopes-0.6.16.tgz", - "integrity": "sha512-xEnoy2SktTWMKnOC+GofKJC5VcZ3whS4wIfievPwYsEhkADPSOyr4Uuka+QN4fHzdWdLu2/LfVU78qbnj54T1A==", + "version": "0.9.27", + "resolved": "https://registry.npmjs.org/@php-wasm/scopes/-/scopes-0.9.27.tgz", + "integrity": "sha512-2E9/R6+uQ6iRKl6mFnXJmXVDxtn5XZrGndGLECntNgNAZybL6vILbDIRnWW3nJss1Htu9n45nxnLUZpuIrpSTg==", "engines": { "node": ">=16.15.1", "npm": ">=8.11.0" } }, + "node_modules/@php-wasm/stream-compression": { + "version": "0.9.27", + "resolved": "https://registry.npmjs.org/@php-wasm/stream-compression/-/stream-compression-0.9.27.tgz", + "integrity": "sha512-4o1OGWfs0IF6hI+r7SvEtq1KX+qcyxaTwkn3nJl/rzLusi9hwBOzMkFRPkFFR0y3YhtJBoNs4gdXy0eR4NYvMg==", + "dependencies": { + "@php-wasm/node-polyfills": "0.9.27", + "@php-wasm/util": "0.9.27" + } + }, "node_modules/@php-wasm/universal": { - "version": "0.6.16", - "resolved": "https://registry.npmjs.org/@php-wasm/universal/-/universal-0.6.16.tgz", - "integrity": "sha512-6zvhQ8yBFg+bp3m4+IAw4UdtLu/Vcq+7HHzmd9XenQWNkqd5GMvKADvpoYoFa6+B4x4ZVDf9M5o0h7Q5N2o1dQ==", + "version": "0.9.27", + "resolved": "https://registry.npmjs.org/@php-wasm/universal/-/universal-0.9.27.tgz", + "integrity": "sha512-+NCBJoASTjZlTawW3uENgeV2aFwNoKjxnkY5N9wiTadQp58L0bepu2YbUiQ0sbWY/Xb5+P02FgszCaF4jpkX7w==", + "dependencies": { + "@php-wasm/logger": "0.9.27", + "@php-wasm/node-polyfills": "0.9.27", + "@php-wasm/progress": "0.9.27", + "@php-wasm/stream-compression": "0.9.27", + "@php-wasm/util": "0.9.27", + "comlink": "^4.4.1", + "ini": "4.1.2" + }, "engines": { "node": ">=18.18.0", "npm": ">=8.11.0" } }, + "node_modules/@php-wasm/universal/node_modules/ini": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz", + "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/@php-wasm/util": { - "version": "0.6.16", - "resolved": "https://registry.npmjs.org/@php-wasm/util/-/util-0.6.16.tgz", - "integrity": "sha512-sSjsAsZ6NfH7NtefMLqgw5wJpZxWpu8U6aU0Ioa+Hp5gTndIOfqfB+1o8KSmXXB+J5foTiVLVE0+v3z8BdcliQ==", + "version": "0.9.27", + "resolved": "https://registry.npmjs.org/@php-wasm/util/-/util-0.9.27.tgz", + "integrity": "sha512-J8aahQ974SKgSeb3YGzdO1wziJp8aPumL8bVnpY1n269S/blBUh+Y7K43dG1/PFoiVKvvmp1cB0fidNhoLAw7Q==", "engines": { "node": ">=18.18.0", "npm": ">=8.11.0" } }, "node_modules/@php-wasm/web": { - "version": "0.6.16", - "resolved": "https://registry.npmjs.org/@php-wasm/web/-/web-0.6.16.tgz", - "integrity": "sha512-xXMtD9ZBqV8Q+Z4HoeN6917TjMankbJdeiKBjrr2pmJ3+xKsZVrP+i1rmMfxn8yjF9NcAa9X5iU6ZlZm76Qg4g==", - "dependencies": { - "@php-wasm/progress": "0.6.16", - "@php-wasm/universal": "0.6.16", - "@php-wasm/util": "0.6.16", - "@php-wasm/web-service-worker": "0.6.16", - "comlink": "^4.4.1" + "version": "0.9.27", + "resolved": "https://registry.npmjs.org/@php-wasm/web/-/web-0.9.27.tgz", + "integrity": "sha512-kyD0xumCU0729wrJQw5U4JOS0GpJ9cMRNG47tvir9cuiFYAAoorZT7iJHSrbPdORmaxcVAtsnxYQ4ULXOsG8kw==", + "dependencies": { + "@php-wasm/fs-journal": "0.9.27", + "@php-wasm/logger": "0.9.27", + "@php-wasm/universal": "0.9.27", + "@php-wasm/util": "0.9.27", + "@php-wasm/web-service-worker": "0.9.27", + "comlink": "^4.4.1", + "express": "4.19.2", + "ini": "4.1.2", + "ws": "8.18.0", + "yargs": "17.7.2" }, "engines": { "node": ">=16.15.1", @@ -9858,17 +9943,25 @@ } }, "node_modules/@php-wasm/web-service-worker": { - "version": "0.6.16", - "resolved": "https://registry.npmjs.org/@php-wasm/web-service-worker/-/web-service-worker-0.6.16.tgz", - "integrity": "sha512-1wvrbRcBW5Iv0L5KUhT7ajxsvoNVtftOEo072NUnl1MJURoclmCqmA+RXv7u1gPw1uyv4KA6664pYDq1k+QQww==", + "version": "0.9.27", + "resolved": "https://registry.npmjs.org/@php-wasm/web-service-worker/-/web-service-worker-0.9.27.tgz", + "integrity": "sha512-MkOiu1dpqS6D/DDVCuuPXkZV8UTvzq43GTpPZsneMnMLEtY+ABVBvHQmzd3z1MZ0d1e7anHkJsXxI9BZCidurA==", "dependencies": { - "@php-wasm/scopes": "0.6.16" + "@php-wasm/scopes": "0.9.27" }, "engines": { "node": ">=18.18.0", "npm": ">=8.11.0" } }, + "node_modules/@php-wasm/web/node_modules/ini": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz", + "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -17955,18 +18048,111 @@ "link": true }, "node_modules/@wp-playground/blueprints": { - "version": "0.6.16", - "resolved": "https://registry.npmjs.org/@wp-playground/blueprints/-/blueprints-0.6.16.tgz", - "integrity": "sha512-mKlmAPR8mBcz5azSlTZUzXEfFKDG7kHFUaA8wAUGpMN3BEsjMn0tje3t8R602WgSZCwHSeTXFHXTHtdPVXuvDg==", + "version": "0.9.27", + "resolved": "https://registry.npmjs.org/@wp-playground/blueprints/-/blueprints-0.9.27.tgz", + "integrity": "sha512-JjTCku3IP7rZ7JNzouo+wvAxzyqODDJO4K5gr+Lgebh+iDQ4Ei1dN8J9leB8BwQwAqUanYPGqAOoLt6sEBqH8A==", + "dependencies": { + "@php-wasm/logger": "0.9.27", + "@php-wasm/node": "0.9.27", + "@php-wasm/node-polyfills": "0.9.27", + "@php-wasm/progress": "0.9.27", + "@php-wasm/scopes": "0.9.27", + "@php-wasm/universal": "0.9.27", + "@php-wasm/util": "0.9.27", + "@wp-playground/common": "0.9.27", + "@wp-playground/wordpress": "0.9.27", + "ajv": "8.12.0", + "comlink": "^4.4.1", + "ini": "4.1.2" + }, + "engines": { + "node": ">=18.18.0", + "npm": ">=8.11.0" + } + }, + "node_modules/@wp-playground/blueprints/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@wp-playground/blueprints/node_modules/ini": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz", + "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@wp-playground/blueprints/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/@wp-playground/common": { + "version": "0.9.27", + "resolved": "https://registry.npmjs.org/@wp-playground/common/-/common-0.9.27.tgz", + "integrity": "sha512-vcnlJbaXIlyqoHqXx7w5aj442+jObQ0tyOFYNjfxwvZZ9nFj09O1wsQ2HMZtBpkkdRjG82nwwpbzinKVi6hb8g==", + "dependencies": { + "@php-wasm/universal": "0.9.27", + "@php-wasm/util": "0.9.27", + "comlink": "^4.4.1", + "ini": "4.1.2" + }, "engines": { "node": ">=18.18.0", "npm": ">=8.11.0" } }, + "node_modules/@wp-playground/common/node_modules/ini": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz", + "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/@wp-playground/interactive-code-block": { "resolved": "packages/interactive-code-block", "link": true }, + "node_modules/@wp-playground/wordpress": { + "version": "0.9.27", + "resolved": "https://registry.npmjs.org/@wp-playground/wordpress/-/wordpress-0.9.27.tgz", + "integrity": "sha512-o0Ye3u1+tieRJrdHNk5RxEzRRhx3ReZp8uQ/eFScu5DrQlrEC1aWXD+NWRjPIYDtVCiIC+JPssVBLvXIOLnaGA==", + "dependencies": { + "@php-wasm/node": "0.9.27", + "@php-wasm/universal": "0.9.27", + "@php-wasm/util": "0.9.27", + "@wp-playground/common": "0.9.27", + "comlink": "^4.4.1", + "express": "4.19.2", + "ini": "4.1.2", + "ws": "8.18.0", + "yargs": "17.7.2" + }, + "engines": { + "node": ">=18.18.0", + "npm": ">=8.11.0" + } + }, + "node_modules/@wp-playground/wordpress/node_modules/ini": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz", + "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -48044,9 +48230,9 @@ } }, "node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "engines": { "node": ">=10.0.0" }, diff --git a/package.json b/package.json index fd87e06d..a70e7a39 100644 --- a/package.json +++ b/package.json @@ -33,13 +33,13 @@ "@codemirror/state": "6.4.1", "@codemirror/theme-one-dark": "6.1.2", "@codemirror/view": "6.28.1", - "@php-wasm/node": "0.6.16", - "@php-wasm/progress": "0.6.16", - "@php-wasm/universal": "0.6.16", - "@php-wasm/web": "0.6.16", + "@php-wasm/node": "0.9.27", + "@php-wasm/progress": "0.9.27", + "@php-wasm/universal": "0.9.27", + "@php-wasm/web": "0.9.27", "@uiw/react-codemirror": "4.22.2", "@webcontainer/env": "1.1.1", - "@wp-playground/blueprints": "0.6.16", + "@wp-playground/blueprints": "0.9.27", "classnames": "^2.3.2", "comlink": "^4.4.1", "compressible": "2.0.18", From af4c5cc4cdf1d523275061d23f8a95c264880955 Mon Sep 17 00:00:00 2001 From: eliot-akira Date: Thu, 22 Aug 2024 16:58:56 +0200 Subject: [PATCH 02/24] Update playground dependencies --- package-lock.json | 188 +++++++++++++++++++++++----------------------- package.json | 10 +-- 2 files changed, 99 insertions(+), 99 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3b17eedb..46576b7b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,13 +27,13 @@ "@codemirror/state": "6.4.1", "@codemirror/theme-one-dark": "6.1.2", "@codemirror/view": "6.28.1", - "@php-wasm/node": "0.9.27", - "@php-wasm/progress": "0.9.27", - "@php-wasm/universal": "0.9.27", - "@php-wasm/web": "0.9.27", + "@php-wasm/node": "0.9.31", + "@php-wasm/progress": "0.9.31", + "@php-wasm/universal": "0.9.31", + "@php-wasm/web": "0.9.31", "@uiw/react-codemirror": "4.22.2", "@webcontainer/env": "1.1.1", - "@wp-playground/blueprints": "0.9.27", + "@wp-playground/blueprints": "0.9.31", "classnames": "^2.3.2", "comlink": "^4.4.1", "compressible": "2.0.18", @@ -9781,14 +9781,14 @@ } }, "node_modules/@php-wasm/fs-journal": { - "version": "0.9.27", - "resolved": "https://registry.npmjs.org/@php-wasm/fs-journal/-/fs-journal-0.9.27.tgz", - "integrity": "sha512-VJ24jg0pOxU2Dkl9TlYA+vsnpt41DniAvXbWjB5AAn1qQrqnlPuURV1za8jp/VPnaMh6iejjKeLkhG1hUTaDQQ==", - "dependencies": { - "@php-wasm/logger": "0.9.27", - "@php-wasm/node": "0.9.27", - "@php-wasm/universal": "0.9.27", - "@php-wasm/util": "0.9.27", + "version": "0.9.31", + "resolved": "https://registry.npmjs.org/@php-wasm/fs-journal/-/fs-journal-0.9.31.tgz", + "integrity": "sha512-oPbuWczA9/+dXHstMarCuLlKgh2M21karYBPU2frQPPc7p+TmMpxKuOr1fiX290IoxL5TsSnJHwR0Zi+ESa4+g==", + "dependencies": { + "@php-wasm/logger": "0.9.31", + "@php-wasm/node": "0.9.31", + "@php-wasm/universal": "0.9.31", + "@php-wasm/util": "0.9.31", "comlink": "^4.4.1", "express": "4.19.2", "ini": "4.1.2", @@ -9809,11 +9809,11 @@ } }, "node_modules/@php-wasm/logger": { - "version": "0.9.27", - "resolved": "https://registry.npmjs.org/@php-wasm/logger/-/logger-0.9.27.tgz", - "integrity": "sha512-ppHhEnwrMNZijBGsN0Dsu/5CrlTs7SoZHigGmeVYhxvUi2AL/lPgfdXUQ7fDmlxJFHdoH3E2NPH5TC+aN2x0Gw==", + "version": "0.9.31", + "resolved": "https://registry.npmjs.org/@php-wasm/logger/-/logger-0.9.31.tgz", + "integrity": "sha512-7OWunmEcN+cOrABqQ2mkhumw5maT5v8c5PKWXDl2aC7LFFjKqHsTPUnkNNlOIM0uobB0LPFFjr31lh7Qdsq7DA==", "dependencies": { - "@php-wasm/node-polyfills": "0.9.27" + "@php-wasm/node-polyfills": "0.9.31" }, "engines": { "node": ">=18.18.0", @@ -9821,16 +9821,16 @@ } }, "node_modules/@php-wasm/node": { - "version": "0.9.27", - "resolved": "https://registry.npmjs.org/@php-wasm/node/-/node-0.9.27.tgz", - "integrity": "sha512-oul1QdHfxqqgfcLnopHsB7tyrJPwASVhfSXCwIPax6crZDmigD7EyOACJynD7DYPstYlqpog+gxLLZCHj0pJqQ==", - "dependencies": { - "@php-wasm/logger": "0.9.27", - "@php-wasm/node-polyfills": "0.9.27", - "@php-wasm/universal": "0.9.27", - "@php-wasm/util": "0.9.27", - "@wp-playground/common": "0.9.27", - "@wp-playground/wordpress": "0.9.27", + "version": "0.9.31", + "resolved": "https://registry.npmjs.org/@php-wasm/node/-/node-0.9.31.tgz", + "integrity": "sha512-3R5N54+Oim51cR7pxe2/vYFSn12LQdktNYD9TUxXTyvtLKdxw58Xboe94kC/TirFN3BdsukjN5D/JHx9F+slGw==", + "dependencies": { + "@php-wasm/logger": "0.9.31", + "@php-wasm/node-polyfills": "0.9.31", + "@php-wasm/universal": "0.9.31", + "@php-wasm/util": "0.9.31", + "@wp-playground/common": "0.9.31", + "@wp-playground/wordpress": "0.9.31", "comlink": "^4.4.1", "express": "4.19.2", "ini": "4.1.2", @@ -9843,9 +9843,9 @@ } }, "node_modules/@php-wasm/node-polyfills": { - "version": "0.9.27", - "resolved": "https://registry.npmjs.org/@php-wasm/node-polyfills/-/node-polyfills-0.9.27.tgz", - "integrity": "sha512-Kvmd7MvPazK6/xF1XV6HWrtxnghO8T9jWRtjLlXKA8K6VzianQTZSzE+kPad+3UtZD7UIV9EgJocLyQjFMK+LQ==" + "version": "0.9.31", + "resolved": "https://registry.npmjs.org/@php-wasm/node-polyfills/-/node-polyfills-0.9.31.tgz", + "integrity": "sha512-/WWRiMuFKzcd739/McOFxxgWQFbCga6y9dixosDFE/HQPow/XBd2eoLfB9fiFCmIrwdsIckfyHNpv12m5E+72Q==" }, "node_modules/@php-wasm/node/node_modules/ini": { "version": "4.1.2", @@ -9856,12 +9856,12 @@ } }, "node_modules/@php-wasm/progress": { - "version": "0.9.27", - "resolved": "https://registry.npmjs.org/@php-wasm/progress/-/progress-0.9.27.tgz", - "integrity": "sha512-qqS52VYw2W4q2YaNC+Xrn8UFK745sHy1GrSZiHdVDP3RI7oNUnioTh7bQ1osqTa5UBmcvVPYlGMadEhAPBCUng==", + "version": "0.9.31", + "resolved": "https://registry.npmjs.org/@php-wasm/progress/-/progress-0.9.31.tgz", + "integrity": "sha512-ma4uMn1jfqMpvb6cIx2jRYPs4AZSERQQ/hJK5jkWH6O3BXDhipvl6hHem3HaReao+mxuZ8BbW3VG/N+DAjL6/Q==", "dependencies": { - "@php-wasm/logger": "0.9.27", - "@php-wasm/node-polyfills": "0.9.27" + "@php-wasm/logger": "0.9.31", + "@php-wasm/node-polyfills": "0.9.31" }, "engines": { "node": ">=18.18.0", @@ -9869,33 +9869,33 @@ } }, "node_modules/@php-wasm/scopes": { - "version": "0.9.27", - "resolved": "https://registry.npmjs.org/@php-wasm/scopes/-/scopes-0.9.27.tgz", - "integrity": "sha512-2E9/R6+uQ6iRKl6mFnXJmXVDxtn5XZrGndGLECntNgNAZybL6vILbDIRnWW3nJss1Htu9n45nxnLUZpuIrpSTg==", + "version": "0.9.31", + "resolved": "https://registry.npmjs.org/@php-wasm/scopes/-/scopes-0.9.31.tgz", + "integrity": "sha512-VR7/HnF9B7gsK34XWAQmAfwfptSX5HfNhd4hB3xE1kL6PWPA+O/CuaiF5PtvC768I9Q5BH3l+3DTCxBKpaPD5A==", "engines": { "node": ">=16.15.1", "npm": ">=8.11.0" } }, "node_modules/@php-wasm/stream-compression": { - "version": "0.9.27", - "resolved": "https://registry.npmjs.org/@php-wasm/stream-compression/-/stream-compression-0.9.27.tgz", - "integrity": "sha512-4o1OGWfs0IF6hI+r7SvEtq1KX+qcyxaTwkn3nJl/rzLusi9hwBOzMkFRPkFFR0y3YhtJBoNs4gdXy0eR4NYvMg==", + "version": "0.9.31", + "resolved": "https://registry.npmjs.org/@php-wasm/stream-compression/-/stream-compression-0.9.31.tgz", + "integrity": "sha512-KlAwoWmeH2Nt6Gb0LhthlqS0Sn0oNA34jPLioiivJvPcji3u83SjyiAbYv//I9oC7gghKpXpIUkOw1HKR2SBHw==", "dependencies": { - "@php-wasm/node-polyfills": "0.9.27", - "@php-wasm/util": "0.9.27" + "@php-wasm/node-polyfills": "0.9.31", + "@php-wasm/util": "0.9.31" } }, "node_modules/@php-wasm/universal": { - "version": "0.9.27", - "resolved": "https://registry.npmjs.org/@php-wasm/universal/-/universal-0.9.27.tgz", - "integrity": "sha512-+NCBJoASTjZlTawW3uENgeV2aFwNoKjxnkY5N9wiTadQp58L0bepu2YbUiQ0sbWY/Xb5+P02FgszCaF4jpkX7w==", - "dependencies": { - "@php-wasm/logger": "0.9.27", - "@php-wasm/node-polyfills": "0.9.27", - "@php-wasm/progress": "0.9.27", - "@php-wasm/stream-compression": "0.9.27", - "@php-wasm/util": "0.9.27", + "version": "0.9.31", + "resolved": "https://registry.npmjs.org/@php-wasm/universal/-/universal-0.9.31.tgz", + "integrity": "sha512-L+GwNMFWAMrbCG3QZAIVZyTigR1DrSxJAUrEpp6YdT++YYYqQX2UAjcHadrb2PlxoU7zjDfskthLSxtPqN7wSA==", + "dependencies": { + "@php-wasm/logger": "0.9.31", + "@php-wasm/node-polyfills": "0.9.31", + "@php-wasm/progress": "0.9.31", + "@php-wasm/stream-compression": "0.9.31", + "@php-wasm/util": "0.9.31", "comlink": "^4.4.1", "ini": "4.1.2" }, @@ -9913,24 +9913,24 @@ } }, "node_modules/@php-wasm/util": { - "version": "0.9.27", - "resolved": "https://registry.npmjs.org/@php-wasm/util/-/util-0.9.27.tgz", - "integrity": "sha512-J8aahQ974SKgSeb3YGzdO1wziJp8aPumL8bVnpY1n269S/blBUh+Y7K43dG1/PFoiVKvvmp1cB0fidNhoLAw7Q==", + "version": "0.9.31", + "resolved": "https://registry.npmjs.org/@php-wasm/util/-/util-0.9.31.tgz", + "integrity": "sha512-WSIEgcej+pmeToREBgKyfaNHleyxuhcr/Wya/sQuynK/ZFbtmjQw68eUV26ufu45Mjt0gpOU6KovKogrnoivpQ==", "engines": { "node": ">=18.18.0", "npm": ">=8.11.0" } }, "node_modules/@php-wasm/web": { - "version": "0.9.27", - "resolved": "https://registry.npmjs.org/@php-wasm/web/-/web-0.9.27.tgz", - "integrity": "sha512-kyD0xumCU0729wrJQw5U4JOS0GpJ9cMRNG47tvir9cuiFYAAoorZT7iJHSrbPdORmaxcVAtsnxYQ4ULXOsG8kw==", - "dependencies": { - "@php-wasm/fs-journal": "0.9.27", - "@php-wasm/logger": "0.9.27", - "@php-wasm/universal": "0.9.27", - "@php-wasm/util": "0.9.27", - "@php-wasm/web-service-worker": "0.9.27", + "version": "0.9.31", + "resolved": "https://registry.npmjs.org/@php-wasm/web/-/web-0.9.31.tgz", + "integrity": "sha512-7rl2CaV6lkLLAjVOwL/h0l5bEyJs3d88AjQkfAKYElrhtJAMwPL/rsXNwprtVi+tQrPW+IFEZZGI+BXo97F0Ww==", + "dependencies": { + "@php-wasm/fs-journal": "0.9.31", + "@php-wasm/logger": "0.9.31", + "@php-wasm/universal": "0.9.31", + "@php-wasm/util": "0.9.31", + "@php-wasm/web-service-worker": "0.9.31", "comlink": "^4.4.1", "express": "4.19.2", "ini": "4.1.2", @@ -9943,11 +9943,11 @@ } }, "node_modules/@php-wasm/web-service-worker": { - "version": "0.9.27", - "resolved": "https://registry.npmjs.org/@php-wasm/web-service-worker/-/web-service-worker-0.9.27.tgz", - "integrity": "sha512-MkOiu1dpqS6D/DDVCuuPXkZV8UTvzq43GTpPZsneMnMLEtY+ABVBvHQmzd3z1MZ0d1e7anHkJsXxI9BZCidurA==", + "version": "0.9.31", + "resolved": "https://registry.npmjs.org/@php-wasm/web-service-worker/-/web-service-worker-0.9.31.tgz", + "integrity": "sha512-3bdE1tYubBY3ADf4aMbLWKWy+/okkk0Y/qYOZKzFJ+iZA4GYYcH05xADS4RT9Jo0w4D15FzIlbHsymiFcWL33w==", "dependencies": { - "@php-wasm/scopes": "0.9.27" + "@php-wasm/scopes": "0.9.31" }, "engines": { "node": ">=18.18.0", @@ -18048,19 +18048,19 @@ "link": true }, "node_modules/@wp-playground/blueprints": { - "version": "0.9.27", - "resolved": "https://registry.npmjs.org/@wp-playground/blueprints/-/blueprints-0.9.27.tgz", - "integrity": "sha512-JjTCku3IP7rZ7JNzouo+wvAxzyqODDJO4K5gr+Lgebh+iDQ4Ei1dN8J9leB8BwQwAqUanYPGqAOoLt6sEBqH8A==", - "dependencies": { - "@php-wasm/logger": "0.9.27", - "@php-wasm/node": "0.9.27", - "@php-wasm/node-polyfills": "0.9.27", - "@php-wasm/progress": "0.9.27", - "@php-wasm/scopes": "0.9.27", - "@php-wasm/universal": "0.9.27", - "@php-wasm/util": "0.9.27", - "@wp-playground/common": "0.9.27", - "@wp-playground/wordpress": "0.9.27", + "version": "0.9.31", + "resolved": "https://registry.npmjs.org/@wp-playground/blueprints/-/blueprints-0.9.31.tgz", + "integrity": "sha512-K+YG99dOHZIMVWFYRHpP/V0KZpETYRI0IobAfIOgc03/4i6Uw5db0I5cDndIb+xPRkpEeoANohDHyQ+filCVtw==", + "dependencies": { + "@php-wasm/logger": "0.9.31", + "@php-wasm/node": "0.9.31", + "@php-wasm/node-polyfills": "0.9.31", + "@php-wasm/progress": "0.9.31", + "@php-wasm/scopes": "0.9.31", + "@php-wasm/universal": "0.9.31", + "@php-wasm/util": "0.9.31", + "@wp-playground/common": "0.9.31", + "@wp-playground/wordpress": "0.9.31", "ajv": "8.12.0", "comlink": "^4.4.1", "ini": "4.1.2" @@ -18099,12 +18099,12 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/@wp-playground/common": { - "version": "0.9.27", - "resolved": "https://registry.npmjs.org/@wp-playground/common/-/common-0.9.27.tgz", - "integrity": "sha512-vcnlJbaXIlyqoHqXx7w5aj442+jObQ0tyOFYNjfxwvZZ9nFj09O1wsQ2HMZtBpkkdRjG82nwwpbzinKVi6hb8g==", + "version": "0.9.31", + "resolved": "https://registry.npmjs.org/@wp-playground/common/-/common-0.9.31.tgz", + "integrity": "sha512-zXnFBr+Zqq7z9eRLxuCFNHZ4vaj8kq9PhDmh4bZEFkK1kSyevRe1/NuyitjSOVzRUNipzJ++/7g0aQnpGqxgkQ==", "dependencies": { - "@php-wasm/universal": "0.9.27", - "@php-wasm/util": "0.9.27", + "@php-wasm/universal": "0.9.31", + "@php-wasm/util": "0.9.31", "comlink": "^4.4.1", "ini": "4.1.2" }, @@ -18126,14 +18126,14 @@ "link": true }, "node_modules/@wp-playground/wordpress": { - "version": "0.9.27", - "resolved": "https://registry.npmjs.org/@wp-playground/wordpress/-/wordpress-0.9.27.tgz", - "integrity": "sha512-o0Ye3u1+tieRJrdHNk5RxEzRRhx3ReZp8uQ/eFScu5DrQlrEC1aWXD+NWRjPIYDtVCiIC+JPssVBLvXIOLnaGA==", - "dependencies": { - "@php-wasm/node": "0.9.27", - "@php-wasm/universal": "0.9.27", - "@php-wasm/util": "0.9.27", - "@wp-playground/common": "0.9.27", + "version": "0.9.31", + "resolved": "https://registry.npmjs.org/@wp-playground/wordpress/-/wordpress-0.9.31.tgz", + "integrity": "sha512-8rj2tFaBJQ7sHym657gRCaCDj/+ddTrPeTmeJ43y/2W1BS0t07tMhrWsfPhJy3eccMn8nYqQUXhIzebfI79ocA==", + "dependencies": { + "@php-wasm/node": "0.9.31", + "@php-wasm/universal": "0.9.31", + "@php-wasm/util": "0.9.31", + "@wp-playground/common": "0.9.31", "comlink": "^4.4.1", "express": "4.19.2", "ini": "4.1.2", diff --git a/package.json b/package.json index a70e7a39..15afd20b 100644 --- a/package.json +++ b/package.json @@ -33,13 +33,13 @@ "@codemirror/state": "6.4.1", "@codemirror/theme-one-dark": "6.1.2", "@codemirror/view": "6.28.1", - "@php-wasm/node": "0.9.27", - "@php-wasm/progress": "0.9.27", - "@php-wasm/universal": "0.9.27", - "@php-wasm/web": "0.9.27", + "@php-wasm/node": "0.9.31", + "@php-wasm/progress": "0.9.31", + "@php-wasm/universal": "0.9.31", + "@php-wasm/web": "0.9.31", "@uiw/react-codemirror": "4.22.2", "@webcontainer/env": "1.1.1", - "@wp-playground/blueprints": "0.9.27", + "@wp-playground/blueprints": "0.9.31", "classnames": "^2.3.2", "comlink": "^4.4.1", "compressible": "2.0.18", From a35b512fda19851ce4d559e86ae7610edb3701f2 Mon Sep 17 00:00:00 2001 From: eliot-akira Date: Thu, 22 Aug 2024 17:02:46 +0200 Subject: [PATCH 03/24] Start updating PHP instantiation, mount and request handler --- packages/wp-now/src/execute-php.ts | 5 +- packages/wp-now/src/wp-now.ts | 129 +++++++++++++++-------------- 2 files changed, 71 insertions(+), 63 deletions(-) diff --git a/packages/wp-now/src/execute-php.ts b/packages/wp-now/src/execute-php.ts index 9c647f71..5f59450b 100644 --- a/packages/wp-now/src/execute-php.ts +++ b/packages/wp-now/src/execute-php.ts @@ -1,3 +1,4 @@ +import { useHostFilesystem } from '@php-wasm/node'; import startWPNow from './wp-now'; import { WPNowOptions } from './config'; import { disableOutput } from './output'; @@ -27,10 +28,10 @@ export async function executePHP( ...options, numberOfPhpInstances: 2, }); - const [, php] = phpInstances; + const [php] = phpInstances; try { - php.useHostFilesystem(); + useHostFilesystem(php); if (!path.isAbsolute(phpArgs[1])) { const maybePhpFile = path.join( wpNowOptions.projectPath, diff --git a/packages/wp-now/src/wp-now.ts b/packages/wp-now/src/wp-now.ts index f4f4c310..1a5f057f 100644 --- a/packages/wp-now/src/wp-now.ts +++ b/packages/wp-now/src/wp-now.ts @@ -1,6 +1,7 @@ import fs from 'fs-extra'; -import { NodePHP, PHPLoaderOptions } from '@php-wasm/node'; import path from 'path'; +import { createNodeFsMountHandler, loadNodeRuntime } from '@php-wasm/node'; +import { PHP, PHPRequestHandler, UnmountFunction } from '@php-wasm/universal'; import { SQLITE_FILENAME } from './constants'; import { downloadMuPlugins, @@ -33,39 +34,40 @@ import getWpNowPath from './get-wp-now-path'; import getWordpressVersionsPath from './get-wordpress-versions-path'; import getSqlitePath, { getSqliteDbCopyPath } from './get-sqlite-path'; -async function applyToInstances(phpInstances: NodePHP[], callback: Function) { +async function applyToInstances(phpInstances: PHP[], callback: Function) { for (let i = 0; i < phpInstances.length; i++) { await callback(phpInstances[i]); } } +function mountWithHandler( + php: PHP, + src: string, + dest: string +): Promise { + return php.mount(src, createNodeFsMountHandler(dest)); +} + export default async function startWPNow( options: Partial = {} -): Promise<{ php: NodePHP; phpInstances: NodePHP[]; options: WPNowOptions }> { +): Promise<{ php: PHP; phpInstances: PHP[]; options: WPNowOptions }> { const { documentRoot } = options; - const nodePHPOptions: PHPLoaderOptions = { - requestHandler: { - documentRoot, - absoluteUrl: options.absoluteUrl, - }, - }; - const phpInstances = []; - for (let i = 0; i < Math.max(options.numberOfPhpInstances, 1); i++) { - phpInstances.push( - await NodePHP.load(options.phpVersion, nodePHPOptions) - ); - } - const php = phpInstances[0]; - - phpInstances.forEach((_php) => { - _php.mkdirTree(documentRoot); - _php.chdir(documentRoot); - _php.writeFile( - `${documentRoot}/index.php`, - ` + new PHP(await loadNodeRuntime(options.phpVersion)), + maxPhpInstances: options.numberOfPhpInstances, }); + const php = await requestHandler.getPrimaryPhp(); + + php.mkdir(documentRoot); + php.chdir(documentRoot); + php.writeFile(`${documentRoot}/index.php`, ` Date: Tue, 27 Aug 2024 18:07:19 +0200 Subject: [PATCH 04/24] Update to new interface for managing PHP runtime instances, request handler, file system mount handler - Based on similar logic in `@wp-playground/wordpress` and `cli` --- packages/wp-now/src/execute-php.ts | 6 +- packages/wp-now/src/execute-wp-cli.ts | 12 +- packages/wp-now/src/start-server.ts | 2 +- packages/wp-now/src/tests/wp-now.spec.ts | 4 +- packages/wp-now/src/wp-now.ts | 154 +++++++++++++---------- 5 files changed, 99 insertions(+), 79 deletions(-) diff --git a/packages/wp-now/src/execute-php.ts b/packages/wp-now/src/execute-php.ts index 5f59450b..6498fe9d 100644 --- a/packages/wp-now/src/execute-php.ts +++ b/packages/wp-now/src/execute-php.ts @@ -24,11 +24,7 @@ export async function executePHP( ); } disableOutput(); - const { phpInstances, options: wpNowOptions } = await startWPNow({ - ...options, - numberOfPhpInstances: 2, - }); - const [php] = phpInstances; + const { php, options: wpNowOptions } = await startWPNow(options); try { useHostFilesystem(php); diff --git a/packages/wp-now/src/execute-wp-cli.ts b/packages/wp-now/src/execute-wp-cli.ts index c5d8ec1f..02c3eec0 100644 --- a/packages/wp-now/src/execute-wp-cli.ts +++ b/packages/wp-now/src/execute-wp-cli.ts @@ -1,3 +1,4 @@ +import { createNodeFsMountHandler } from '@php-wasm/node'; import startWPNow from './wp-now'; import { downloadWPCLI } from './download'; import { disableOutput } from './output'; @@ -18,15 +19,14 @@ export async function executeWPCli(args: string[]) { wp: DEFAULT_WORDPRESS_VERSION, path: process.env.WP_NOW_PROJECT_PATH || process.cwd(), }); - const { phpInstances, options: wpNowOptions } = await startWPNow({ - ...options, - numberOfPhpInstances: 2, - }); - const [, php] = phpInstances; + const { php, options: wpNowOptions } = await startWPNow(options); try { const vfsWpCliPath = '/wp-cli/wp-cli.phar'; - php.mount(dirname(getWpCliPath()), dirname(vfsWpCliPath)); + php.mount( + dirname(vfsWpCliPath), + createNodeFsMountHandler(dirname(getWpCliPath())) + ); await php.cli([ 'php', vfsWpCliPath, diff --git a/packages/wp-now/src/start-server.ts b/packages/wp-now/src/start-server.ts index 64cf0e46..870414df 100644 --- a/packages/wp-now/src/start-server.ts +++ b/packages/wp-now/src/start-server.ts @@ -77,7 +77,7 @@ export async function startServer( data.headers['origin'] = options.absoluteUrl; } - const resp = await php.request(data); + const resp = await php.requestHandler.request(data); res.statusCode = resp.httpStatusCode; Object.keys(resp.headers).forEach((key) => { res.setHeader(key, resp.headers[key]); diff --git a/packages/wp-now/src/tests/wp-now.spec.ts b/packages/wp-now/src/tests/wp-now.spec.ts index 992d4a84..f4708b5d 100644 --- a/packages/wp-now/src/tests/wp-now.spec.ts +++ b/packages/wp-now/src/tests/wp-now.spec.ts @@ -753,7 +753,7 @@ describe('Test starting different modes', () => { `${php.documentRoot}/print-constants.php`, ` { `${php.documentRoot}/print-constants.php`, ` { - return php.mount(src, createNodeFsMountHandler(dest)); + // Must ensure target exists for both folder *and* file + php.mkdir(virtualFSPath); + return php.mount(virtualFSPath, createNodeFsMountHandler(hostPath)); } export default async function startWPNow( options: Partial = {} -): Promise<{ php: PHP; phpInstances: PHP[]; options: WPNowOptions }> { +): Promise<{ php: PHP; options: WPNowOptions }> { const { documentRoot } = options; + // Similar logic as bootWordPress() in @wp-playground/wordpess + + const createPhpRuntime = async () => + await loadNodeRuntime(options.phpVersion); const requestHandler = new PHPRequestHandler({ + phpFactory: async ({ isPrimary }) => { + const php = new PHP(await createPhpRuntime()); + + if (requestHandler) { + php.requestHandler = requestHandler; + } + if (isPrimary) { + // @TODO: Mount /internal/shared/mu-plugins + } else { + // Proxy the filesystem for all secondary PHP instances + proxyFileSystem(await requestHandler.getPrimaryPhp(), php, [ + '/tmp', + requestHandler.documentRoot, + '/internal/shared', + ]); + } + + rotatePHPRuntime({ + php, + cwd: requestHandler.documentRoot, + recreateRuntime: createPhpRuntime, + maxRequests: 400, + }); + + return php; + }, documentRoot, absoluteUrl: options.absoluteUrl, - phpFactory: async () => - new PHP(await loadNodeRuntime(options.phpVersion)), maxPhpInstances: options.numberOfPhpInstances, + // rewriteRules, + // getFileNotFoundAction, }); + const php = await requestHandler.getPrimaryPhp(); php.mkdir(documentRoot); php.chdir(documentRoot); php.writeFile(`${documentRoot}/index.php`, ` { - runIndexMode(_php, options); - }); - return { php, phpInstances, options }; + runIndexMode(php, options); + return { php, options }; } const { resolvedWordPressVersion, isDeveloperBuild } = @@ -105,28 +133,26 @@ export default async function startWPNow( } const isFirstTimeProject = !fs.existsSync(options.wpContentPath); - await applyToInstances(phpInstances, async (_php) => { - switch (options.mode) { - case WPNowMode.WP_CONTENT: - await runWpContentMode(_php, options); - break; - case WPNowMode.WORDPRESS_DEVELOP: - await runWordPressDevelopMode(_php, options); - break; - case WPNowMode.WORDPRESS: - await runWordPressMode(_php, options); - break; - case WPNowMode.PLUGIN: - await runPluginOrThemeMode(_php, options); - break; - case WPNowMode.THEME: - await runPluginOrThemeMode(_php, options); - break; - case WPNowMode.PLAYGROUND: - await runWpPlaygroundMode(_php, options); - break; - } - }); + switch (options.mode) { + case WPNowMode.WP_CONTENT: + await runWpContentMode(php, options); + break; + case WPNowMode.WORDPRESS_DEVELOP: + await runWordPressDevelopMode(php, options); + break; + case WPNowMode.WORDPRESS: + await runWordPressMode(php, options); + break; + case WPNowMode.PLUGIN: + await runPluginOrThemeMode(php, options); + break; + case WPNowMode.THEME: + await runPluginOrThemeMode(php, options); + break; + case WPNowMode.PLAYGROUND: + await runWpPlaygroundMode(php, options); + break; + } if (options.blueprintObject) { output?.log(`blueprint steps: ${options.blueprintObject.steps.length}`); @@ -159,7 +185,6 @@ export default async function startWPNow( return { php, - phpInstances, options, }; } @@ -168,7 +193,7 @@ async function runIndexMode( php: PHP, { documentRoot, projectPath }: WPNowOptions ) { - await mountWithHandler(php, projectPath, documentRoot); + await mountWithHandler(php, documentRoot, projectPath); } async function runWpContentMode( @@ -185,11 +210,11 @@ async function runWpContentMode( getWordpressVersionsPath(), wordPressVersion ); - await mountWithHandler(php, wordPressPath, documentRoot); + await mountWithHandler(php, documentRoot, wordPressPath); await initWordPress(php, wordPressVersion, documentRoot, absoluteUrl); fs.ensureDirSync(wpContentPath); - await mountWithHandler(php, projectPath, `${documentRoot}/wp-content`); + await mountWithHandler(php, `${documentRoot}/wp-content`, projectPath); await mountSqlitePlugin(php, documentRoot); await mountSqliteDatabaseDirectory(php, documentRoot, wpContentPath); @@ -211,7 +236,7 @@ async function runWordPressMode( php: PHP, { documentRoot, wpContentPath, projectPath, absoluteUrl }: WPNowOptions ) { - await mountWithHandler(php, projectPath, documentRoot); + await mountWithHandler(php, documentRoot, projectPath); const { initializeDefaultDatabase } = await initWordPress( php, @@ -246,7 +271,7 @@ async function runPluginOrThemeMode( getWordpressVersionsPath(), wordPressVersion ); - await mountWithHandler(php, wordPressPath, documentRoot); + await mountWithHandler(php, documentRoot, wordPressPath); await initWordPress(php, wordPressVersion, documentRoot, absoluteUrl); fs.ensureDirSync(wpContentPath); @@ -254,14 +279,14 @@ async function runPluginOrThemeMode( path.join(getWordpressVersionsPath(), wordPressVersion, 'wp-content'), wpContentPath ); - await mountWithHandler(php, wpContentPath, `${documentRoot}/wp-content`); + await mountWithHandler(php, `${documentRoot}/wp-content`, wpContentPath); const pluginName = path.basename(projectPath); const directoryName = mode === WPNowMode.PLUGIN ? 'plugins' : 'themes'; await mountWithHandler( php, - projectPath, - `${documentRoot}/wp-content/${directoryName}/${pluginName}` + `${documentRoot}/wp-content/${directoryName}/${pluginName}`, + projectPath ); if (mode === WPNowMode.THEME) { const templateName = getThemeTemplate(projectPath); @@ -271,8 +296,8 @@ async function runPluginOrThemeMode( if (fs.existsSync(templatePath)) { await mountWithHandler( php, - templatePath, - `${documentRoot}/wp-content/${directoryName}/${templateName}` + `${documentRoot}/wp-content/${directoryName}/${templateName}`, + templatePath ); } else { output?.error( @@ -293,7 +318,7 @@ async function runWpPlaygroundMode( getWordpressVersionsPath(), wordPressVersion ); - await mountWithHandler(php, wordPressPath, documentRoot); + await mountWithHandler(php, documentRoot, wordPressPath); await initWordPress(php, wordPressVersion, documentRoot, absoluteUrl); fs.ensureDirSync(wpContentPath); @@ -301,7 +326,7 @@ async function runWpPlaygroundMode( path.join(getWordpressVersionsPath(), wordPressVersion, 'wp-content'), wpContentPath ); - await mountWithHandler(php, wpContentPath, `${documentRoot}/wp-content`); + await mountWithHandler(php, `${documentRoot}/wp-content`, wpContentPath); await mountSqlitePlugin(php, documentRoot); await mountMuPlugins(php, documentRoot); @@ -346,7 +371,6 @@ async function initWordPress( consts: wpConfigConsts, method: 'define-before-run', }); - return { initializeDefaultDatabase }; } @@ -375,10 +399,10 @@ export function getThemeTemplate(projectPath: string) { async function mountMuPlugins(php: PHP, vfsDocumentRoot: string) { await mountWithHandler( php, - path.join(getWpNowPath(), 'mu-plugins'), // VFS paths always use forward / slashes so // we can't use path.join() for them - `${vfsDocumentRoot}/wp-content/mu-plugins` + `${vfsDocumentRoot}/wp-content/mu-plugins`, + path.join(getWpNowPath(), 'mu-plugins') ); } @@ -389,11 +413,11 @@ function getSqlitePluginPath(vfsDocumentRoot: string) { async function mountSqlitePlugin(php: PHP, vfsDocumentRoot: string) { const sqlitePluginPath = getSqlitePluginPath(vfsDocumentRoot); if (php.listFiles(sqlitePluginPath).length === 0) { - await mountWithHandler(php, getSqlitePath(), sqlitePluginPath); + await mountWithHandler(php, sqlitePluginPath, getSqlitePath()); await mountWithHandler( php, - getSqliteDbCopyPath(), - `${vfsDocumentRoot}/wp-content/db.php` + `${vfsDocumentRoot}/wp-content/db.php`, + getSqliteDbCopyPath() ); } } @@ -413,8 +437,8 @@ async function mountSqliteDatabaseDirectory( fs.ensureDirSync(path.join(wpContentPath, 'database')); await mountWithHandler( php, - path.join(wpContentPath, 'database'), - `${vfsDocumentRoot}/wp-content/database` + `${vfsDocumentRoot}/wp-content/database`, + path.join(wpContentPath, 'database') ); } @@ -438,7 +462,7 @@ export function inferMode( } async function installationStep2(php: PHP) { - return php.request({ + return await php.requestHandler.request({ url: '/wp-admin/install.php?step=2', method: 'POST', body: { From 84e3b785e51d3ea110bac18e8a19fb9d3c8ab893 Mon Sep 17 00:00:00 2001 From: eliot-akira Date: Tue, 27 Aug 2024 18:45:55 +0200 Subject: [PATCH 05/24] Update Playground dependencies to 0.9.32 --- package-lock.json | 188 +++++++++++++++++++++++----------------------- package.json | 10 +-- 2 files changed, 99 insertions(+), 99 deletions(-) diff --git a/package-lock.json b/package-lock.json index 46576b7b..63faf6b5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,13 +27,13 @@ "@codemirror/state": "6.4.1", "@codemirror/theme-one-dark": "6.1.2", "@codemirror/view": "6.28.1", - "@php-wasm/node": "0.9.31", - "@php-wasm/progress": "0.9.31", - "@php-wasm/universal": "0.9.31", - "@php-wasm/web": "0.9.31", + "@php-wasm/node": "0.9.32", + "@php-wasm/progress": "0.9.32", + "@php-wasm/universal": "0.9.32", + "@php-wasm/web": "0.9.32", "@uiw/react-codemirror": "4.22.2", "@webcontainer/env": "1.1.1", - "@wp-playground/blueprints": "0.9.31", + "@wp-playground/blueprints": "0.9.32", "classnames": "^2.3.2", "comlink": "^4.4.1", "compressible": "2.0.18", @@ -9781,14 +9781,14 @@ } }, "node_modules/@php-wasm/fs-journal": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@php-wasm/fs-journal/-/fs-journal-0.9.31.tgz", - "integrity": "sha512-oPbuWczA9/+dXHstMarCuLlKgh2M21karYBPU2frQPPc7p+TmMpxKuOr1fiX290IoxL5TsSnJHwR0Zi+ESa4+g==", - "dependencies": { - "@php-wasm/logger": "0.9.31", - "@php-wasm/node": "0.9.31", - "@php-wasm/universal": "0.9.31", - "@php-wasm/util": "0.9.31", + "version": "0.9.32", + "resolved": "https://registry.npmjs.org/@php-wasm/fs-journal/-/fs-journal-0.9.32.tgz", + "integrity": "sha512-xsBf8wdSJLdU+rLqeaRhCDNaBHzuFlHqMKW1pvGdCSk+Vzsv6u7o/4w7bQKeuy+j55QTDg/WRHFvPhq1mh/cTQ==", + "dependencies": { + "@php-wasm/logger": "0.9.32", + "@php-wasm/node": "0.9.32", + "@php-wasm/universal": "0.9.32", + "@php-wasm/util": "0.9.32", "comlink": "^4.4.1", "express": "4.19.2", "ini": "4.1.2", @@ -9809,11 +9809,11 @@ } }, "node_modules/@php-wasm/logger": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@php-wasm/logger/-/logger-0.9.31.tgz", - "integrity": "sha512-7OWunmEcN+cOrABqQ2mkhumw5maT5v8c5PKWXDl2aC7LFFjKqHsTPUnkNNlOIM0uobB0LPFFjr31lh7Qdsq7DA==", + "version": "0.9.32", + "resolved": "https://registry.npmjs.org/@php-wasm/logger/-/logger-0.9.32.tgz", + "integrity": "sha512-lBwHFDBLDOnLopYDvWwqSnaBUQW94SjBc0gWmCtBbhaatAmrYrFeC1AeuG8kRQn148UrdwV6Xcgxzjv6yxmkTg==", "dependencies": { - "@php-wasm/node-polyfills": "0.9.31" + "@php-wasm/node-polyfills": "0.9.32" }, "engines": { "node": ">=18.18.0", @@ -9821,16 +9821,16 @@ } }, "node_modules/@php-wasm/node": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@php-wasm/node/-/node-0.9.31.tgz", - "integrity": "sha512-3R5N54+Oim51cR7pxe2/vYFSn12LQdktNYD9TUxXTyvtLKdxw58Xboe94kC/TirFN3BdsukjN5D/JHx9F+slGw==", - "dependencies": { - "@php-wasm/logger": "0.9.31", - "@php-wasm/node-polyfills": "0.9.31", - "@php-wasm/universal": "0.9.31", - "@php-wasm/util": "0.9.31", - "@wp-playground/common": "0.9.31", - "@wp-playground/wordpress": "0.9.31", + "version": "0.9.32", + "resolved": "https://registry.npmjs.org/@php-wasm/node/-/node-0.9.32.tgz", + "integrity": "sha512-eeeT4MW6NRLkklc9v0Gtr6EgxjyHGJQN58yJBzsFPXSBxIQjwgPZd5gn5j63oWfi00PCKRLb/gLBNm6YLojx4g==", + "dependencies": { + "@php-wasm/logger": "0.9.32", + "@php-wasm/node-polyfills": "0.9.32", + "@php-wasm/universal": "0.9.32", + "@php-wasm/util": "0.9.32", + "@wp-playground/common": "0.9.32", + "@wp-playground/wordpress": "0.9.32", "comlink": "^4.4.1", "express": "4.19.2", "ini": "4.1.2", @@ -9843,9 +9843,9 @@ } }, "node_modules/@php-wasm/node-polyfills": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@php-wasm/node-polyfills/-/node-polyfills-0.9.31.tgz", - "integrity": "sha512-/WWRiMuFKzcd739/McOFxxgWQFbCga6y9dixosDFE/HQPow/XBd2eoLfB9fiFCmIrwdsIckfyHNpv12m5E+72Q==" + "version": "0.9.32", + "resolved": "https://registry.npmjs.org/@php-wasm/node-polyfills/-/node-polyfills-0.9.32.tgz", + "integrity": "sha512-pXRW1z7syZ1T+rIZujJ/JiYadTL6okuBi84pauijb8lq1o8JoekGv8zeXipsqgnbl3+8L9Mej13w+Ko8gCFkkA==" }, "node_modules/@php-wasm/node/node_modules/ini": { "version": "4.1.2", @@ -9856,12 +9856,12 @@ } }, "node_modules/@php-wasm/progress": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@php-wasm/progress/-/progress-0.9.31.tgz", - "integrity": "sha512-ma4uMn1jfqMpvb6cIx2jRYPs4AZSERQQ/hJK5jkWH6O3BXDhipvl6hHem3HaReao+mxuZ8BbW3VG/N+DAjL6/Q==", + "version": "0.9.32", + "resolved": "https://registry.npmjs.org/@php-wasm/progress/-/progress-0.9.32.tgz", + "integrity": "sha512-K8mVdJNMbjzIvTL89oMFx2EmpgyC4QKO2GIWU8Is+QaSFa/TVT7kwrn3wz/RwKpoGQVI2EIZmv3j8rIX+mqAFw==", "dependencies": { - "@php-wasm/logger": "0.9.31", - "@php-wasm/node-polyfills": "0.9.31" + "@php-wasm/logger": "0.9.32", + "@php-wasm/node-polyfills": "0.9.32" }, "engines": { "node": ">=18.18.0", @@ -9869,33 +9869,33 @@ } }, "node_modules/@php-wasm/scopes": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@php-wasm/scopes/-/scopes-0.9.31.tgz", - "integrity": "sha512-VR7/HnF9B7gsK34XWAQmAfwfptSX5HfNhd4hB3xE1kL6PWPA+O/CuaiF5PtvC768I9Q5BH3l+3DTCxBKpaPD5A==", + "version": "0.9.32", + "resolved": "https://registry.npmjs.org/@php-wasm/scopes/-/scopes-0.9.32.tgz", + "integrity": "sha512-Frf37Zkpb+XNBiQNO9sIjWZ5u80b3NDoeWrWhkpIwuiSh+mi6PI/2vaFaFmdIM9BtEwyukxTB/QK4fN5P9zzLg==", "engines": { "node": ">=16.15.1", "npm": ">=8.11.0" } }, "node_modules/@php-wasm/stream-compression": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@php-wasm/stream-compression/-/stream-compression-0.9.31.tgz", - "integrity": "sha512-KlAwoWmeH2Nt6Gb0LhthlqS0Sn0oNA34jPLioiivJvPcji3u83SjyiAbYv//I9oC7gghKpXpIUkOw1HKR2SBHw==", + "version": "0.9.32", + "resolved": "https://registry.npmjs.org/@php-wasm/stream-compression/-/stream-compression-0.9.32.tgz", + "integrity": "sha512-i79dA0nwCIm6XzQPxAIdW3pu9MsuA8Nt+b5XHvEFph4OMTzTw8ZnemmVaSVmFhvx0D5AB7paL/y4aB7VQdu/9Q==", "dependencies": { - "@php-wasm/node-polyfills": "0.9.31", - "@php-wasm/util": "0.9.31" + "@php-wasm/node-polyfills": "0.9.32", + "@php-wasm/util": "0.9.32" } }, "node_modules/@php-wasm/universal": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@php-wasm/universal/-/universal-0.9.31.tgz", - "integrity": "sha512-L+GwNMFWAMrbCG3QZAIVZyTigR1DrSxJAUrEpp6YdT++YYYqQX2UAjcHadrb2PlxoU7zjDfskthLSxtPqN7wSA==", - "dependencies": { - "@php-wasm/logger": "0.9.31", - "@php-wasm/node-polyfills": "0.9.31", - "@php-wasm/progress": "0.9.31", - "@php-wasm/stream-compression": "0.9.31", - "@php-wasm/util": "0.9.31", + "version": "0.9.32", + "resolved": "https://registry.npmjs.org/@php-wasm/universal/-/universal-0.9.32.tgz", + "integrity": "sha512-EBmhpg9fnvmRV9lPfKNug1z49UUbVWdpbVcofi8QTrEmiAlqjqL2Vdh/vogVh/RyKyMcylyg5A1xRg7BoJ8SrQ==", + "dependencies": { + "@php-wasm/logger": "0.9.32", + "@php-wasm/node-polyfills": "0.9.32", + "@php-wasm/progress": "0.9.32", + "@php-wasm/stream-compression": "0.9.32", + "@php-wasm/util": "0.9.32", "comlink": "^4.4.1", "ini": "4.1.2" }, @@ -9913,24 +9913,24 @@ } }, "node_modules/@php-wasm/util": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@php-wasm/util/-/util-0.9.31.tgz", - "integrity": "sha512-WSIEgcej+pmeToREBgKyfaNHleyxuhcr/Wya/sQuynK/ZFbtmjQw68eUV26ufu45Mjt0gpOU6KovKogrnoivpQ==", + "version": "0.9.32", + "resolved": "https://registry.npmjs.org/@php-wasm/util/-/util-0.9.32.tgz", + "integrity": "sha512-N78fNgakmVbyQbZajvsMVu/Sj8YR0hqqIb/8hks2G1klTCvDzr3/cAZbwwgI9y9473u1RwWbrYc9kIEDPTl4hg==", "engines": { "node": ">=18.18.0", "npm": ">=8.11.0" } }, "node_modules/@php-wasm/web": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@php-wasm/web/-/web-0.9.31.tgz", - "integrity": "sha512-7rl2CaV6lkLLAjVOwL/h0l5bEyJs3d88AjQkfAKYElrhtJAMwPL/rsXNwprtVi+tQrPW+IFEZZGI+BXo97F0Ww==", - "dependencies": { - "@php-wasm/fs-journal": "0.9.31", - "@php-wasm/logger": "0.9.31", - "@php-wasm/universal": "0.9.31", - "@php-wasm/util": "0.9.31", - "@php-wasm/web-service-worker": "0.9.31", + "version": "0.9.32", + "resolved": "https://registry.npmjs.org/@php-wasm/web/-/web-0.9.32.tgz", + "integrity": "sha512-RETgOGseqE5tr6Uuts+IyCUK24VR9AYs83PGBVlSZinrn1bnhMPPNuosbzghr5m4QEGCZtvK1cwoOoYfLw8jNQ==", + "dependencies": { + "@php-wasm/fs-journal": "0.9.32", + "@php-wasm/logger": "0.9.32", + "@php-wasm/universal": "0.9.32", + "@php-wasm/util": "0.9.32", + "@php-wasm/web-service-worker": "0.9.32", "comlink": "^4.4.1", "express": "4.19.2", "ini": "4.1.2", @@ -9943,11 +9943,11 @@ } }, "node_modules/@php-wasm/web-service-worker": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@php-wasm/web-service-worker/-/web-service-worker-0.9.31.tgz", - "integrity": "sha512-3bdE1tYubBY3ADf4aMbLWKWy+/okkk0Y/qYOZKzFJ+iZA4GYYcH05xADS4RT9Jo0w4D15FzIlbHsymiFcWL33w==", + "version": "0.9.32", + "resolved": "https://registry.npmjs.org/@php-wasm/web-service-worker/-/web-service-worker-0.9.32.tgz", + "integrity": "sha512-crWq9x3fexnfuOrq/fBeSwGWsVygk9UqQi/Roxw1agsLTlvYpv7C2e4z0Do4yWIeewRrCnLD/dLtW2BVQd8iPA==", "dependencies": { - "@php-wasm/scopes": "0.9.31" + "@php-wasm/scopes": "0.9.32" }, "engines": { "node": ">=18.18.0", @@ -18048,19 +18048,19 @@ "link": true }, "node_modules/@wp-playground/blueprints": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@wp-playground/blueprints/-/blueprints-0.9.31.tgz", - "integrity": "sha512-K+YG99dOHZIMVWFYRHpP/V0KZpETYRI0IobAfIOgc03/4i6Uw5db0I5cDndIb+xPRkpEeoANohDHyQ+filCVtw==", - "dependencies": { - "@php-wasm/logger": "0.9.31", - "@php-wasm/node": "0.9.31", - "@php-wasm/node-polyfills": "0.9.31", - "@php-wasm/progress": "0.9.31", - "@php-wasm/scopes": "0.9.31", - "@php-wasm/universal": "0.9.31", - "@php-wasm/util": "0.9.31", - "@wp-playground/common": "0.9.31", - "@wp-playground/wordpress": "0.9.31", + "version": "0.9.32", + "resolved": "https://registry.npmjs.org/@wp-playground/blueprints/-/blueprints-0.9.32.tgz", + "integrity": "sha512-GwLCQ/7jSqnzWuWJm0Xr7b2yqw9GXDUDe8PKS6FJ4VBomkvdsplBE4iV+VkLOjyKTmlsT9q4ZfQYRcL1PeKTvw==", + "dependencies": { + "@php-wasm/logger": "0.9.32", + "@php-wasm/node": "0.9.32", + "@php-wasm/node-polyfills": "0.9.32", + "@php-wasm/progress": "0.9.32", + "@php-wasm/scopes": "0.9.32", + "@php-wasm/universal": "0.9.32", + "@php-wasm/util": "0.9.32", + "@wp-playground/common": "0.9.32", + "@wp-playground/wordpress": "0.9.32", "ajv": "8.12.0", "comlink": "^4.4.1", "ini": "4.1.2" @@ -18099,12 +18099,12 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/@wp-playground/common": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@wp-playground/common/-/common-0.9.31.tgz", - "integrity": "sha512-zXnFBr+Zqq7z9eRLxuCFNHZ4vaj8kq9PhDmh4bZEFkK1kSyevRe1/NuyitjSOVzRUNipzJ++/7g0aQnpGqxgkQ==", + "version": "0.9.32", + "resolved": "https://registry.npmjs.org/@wp-playground/common/-/common-0.9.32.tgz", + "integrity": "sha512-tRd1qdEs2gJe1NLf3x/6eyYs6PsHYIYLWKIwLCPqyh6tdbM78e9Jvt3cuxn6stRiQZWnhSz/nAj62dt5PKNb6A==", "dependencies": { - "@php-wasm/universal": "0.9.31", - "@php-wasm/util": "0.9.31", + "@php-wasm/universal": "0.9.32", + "@php-wasm/util": "0.9.32", "comlink": "^4.4.1", "ini": "4.1.2" }, @@ -18126,14 +18126,14 @@ "link": true }, "node_modules/@wp-playground/wordpress": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@wp-playground/wordpress/-/wordpress-0.9.31.tgz", - "integrity": "sha512-8rj2tFaBJQ7sHym657gRCaCDj/+ddTrPeTmeJ43y/2W1BS0t07tMhrWsfPhJy3eccMn8nYqQUXhIzebfI79ocA==", - "dependencies": { - "@php-wasm/node": "0.9.31", - "@php-wasm/universal": "0.9.31", - "@php-wasm/util": "0.9.31", - "@wp-playground/common": "0.9.31", + "version": "0.9.32", + "resolved": "https://registry.npmjs.org/@wp-playground/wordpress/-/wordpress-0.9.32.tgz", + "integrity": "sha512-+UG/16Gllzlju7r0kRKcOkJHKuz1JmC09rNsN1iGZypaQSU9lNq/kt7zY/INvTcZ6t0tgiJYgyx2YgQGUeNhpw==", + "dependencies": { + "@php-wasm/node": "0.9.32", + "@php-wasm/universal": "0.9.32", + "@php-wasm/util": "0.9.32", + "@wp-playground/common": "0.9.32", "comlink": "^4.4.1", "express": "4.19.2", "ini": "4.1.2", diff --git a/package.json b/package.json index 15afd20b..343d97e2 100644 --- a/package.json +++ b/package.json @@ -33,13 +33,13 @@ "@codemirror/state": "6.4.1", "@codemirror/theme-one-dark": "6.1.2", "@codemirror/view": "6.28.1", - "@php-wasm/node": "0.9.31", - "@php-wasm/progress": "0.9.31", - "@php-wasm/universal": "0.9.31", - "@php-wasm/web": "0.9.31", + "@php-wasm/node": "0.9.32", + "@php-wasm/progress": "0.9.32", + "@php-wasm/universal": "0.9.32", + "@php-wasm/web": "0.9.32", "@uiw/react-codemirror": "4.22.2", "@webcontainer/env": "1.1.1", - "@wp-playground/blueprints": "0.9.31", + "@wp-playground/blueprints": "0.9.32", "classnames": "^2.3.2", "comlink": "^4.4.1", "compressible": "2.0.18", From a44742bb13bee07aa412a84a764f099e44c27a5b Mon Sep 17 00:00:00 2001 From: eliot-akira Date: Sat, 7 Sep 2024 17:13:27 +0200 Subject: [PATCH 06/24] Update `executeWpCli` based on fork of `wp-now` in Automattic/studio - Use TLS certificates - Workaround for stdin/out/err - Not implemented yet: SQLite command See https://github.com/Automattic/studio/blob/trunk/vendor/wp-now/src/execute-wp-cli.ts --- packages/wp-now/src/execute-wp-cli.ts | 139 ++++++++++++++++++----- packages/wp-now/src/tests/wp-now.spec.ts | 4 +- 2 files changed, 114 insertions(+), 29 deletions(-) diff --git a/packages/wp-now/src/execute-wp-cli.ts b/packages/wp-now/src/execute-wp-cli.ts index 02c3eec0..ae4fc381 100644 --- a/packages/wp-now/src/execute-wp-cli.ts +++ b/packages/wp-now/src/execute-wp-cli.ts @@ -1,43 +1,128 @@ -import { createNodeFsMountHandler } from '@php-wasm/node'; -import startWPNow from './wp-now'; import { downloadWPCLI } from './download'; -import { disableOutput } from './output'; +import { rootCertificates } from 'tls'; import getWpCliPath from './get-wp-cli-path'; import getWpNowConfig from './config'; import { DEFAULT_PHP_VERSION, DEFAULT_WORDPRESS_VERSION } from './constants'; -import { dirname } from 'path'; +import { phpVar } from '@php-wasm/util'; +import { createNodeFsMountHandler, loadNodeRuntime } from '@php-wasm/node'; +// import { getSqliteCommandPath } from '../../../src/lib/sqlite-command-versions'; +import { + PHP, + MountHandler, + writeFiles, + setPhpIniEntries, + loadPHPRuntime, +} from '@php-wasm/universal'; +import { readFileSync } from 'fs'; + +const isWindows = process.platform === 'win32'; /** * This is an unstable API. Multiple wp-cli commands may not work due to a current limitation on php-wasm and pthreads. - * @param args The arguments to pass to wp-cli. */ -export async function executeWPCli(args: string[]) { +export async function executeWPCli( + args: string[] +): Promise<{ stdout: string; stderr: string; exitCode: number }> { await downloadWPCLI(); - disableOutput(); - const options = await getWpNowConfig({ + let options = await getWpNowConfig({ php: DEFAULT_PHP_VERSION, wp: DEFAULT_WORDPRESS_VERSION, - path: process.env.WP_NOW_PROJECT_PATH || process.cwd(), }); - const { php, options: wpNowOptions } = await startWPNow(options); + + const projectPath = options.projectPath; + const id = await loadNodeRuntime(options.phpVersion); + const php = new PHP(id); + php.mkdir(options.documentRoot); + await php.mount( + options.documentRoot, + createNodeFsMountHandler(projectPath) as unknown as MountHandler + ); + + //Set the SAPI name to cli before running the script + await php.setSapiName('cli'); + + php.mkdir('/tmp'); + + const wpCliPath = '/tmp/wp-cli.phar'; + const stderrPath = '/tmp/stderr'; + const sqliteCommandPath = '/tmp/sqlite-command'; + const runCliPath = '/tmp/run-cli.php'; + const createFiles = { + [wpCliPath]: readFileSync(getWpCliPath()), + [stderrPath]: '', + [runCliPath]: ` { * We don't need the WordPress context for this test. */ test('wp-cli displays the version', async () => { - await executeWPCli(['cli', 'version']); - expect(output).toMatch(/WP-CLI (\d\.?)+/i); + const { stdout } = await executeWPCli(['cli', 'version']); + expect(stdout).toMatch(/WP-CLI (\d\.?)+/i); }); }); From bc0d15fe96a64a07e764fb3550e06490be787070 Mon Sep 17 00:00:00 2001 From: eliot-akira Date: Sat, 7 Sep 2024 17:14:22 +0200 Subject: [PATCH 07/24] Update Playground dependencies to 0.9.37 --- package-lock.json | 188 +++++++++++++++++++++++----------------------- package.json | 10 +-- 2 files changed, 99 insertions(+), 99 deletions(-) diff --git a/package-lock.json b/package-lock.json index 63faf6b5..9adae3c7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,13 +27,13 @@ "@codemirror/state": "6.4.1", "@codemirror/theme-one-dark": "6.1.2", "@codemirror/view": "6.28.1", - "@php-wasm/node": "0.9.32", - "@php-wasm/progress": "0.9.32", - "@php-wasm/universal": "0.9.32", - "@php-wasm/web": "0.9.32", + "@php-wasm/node": "0.9.37", + "@php-wasm/progress": "0.9.37", + "@php-wasm/universal": "0.9.37", + "@php-wasm/web": "0.9.37", "@uiw/react-codemirror": "4.22.2", "@webcontainer/env": "1.1.1", - "@wp-playground/blueprints": "0.9.32", + "@wp-playground/blueprints": "0.9.37", "classnames": "^2.3.2", "comlink": "^4.4.1", "compressible": "2.0.18", @@ -9781,14 +9781,14 @@ } }, "node_modules/@php-wasm/fs-journal": { - "version": "0.9.32", - "resolved": "https://registry.npmjs.org/@php-wasm/fs-journal/-/fs-journal-0.9.32.tgz", - "integrity": "sha512-xsBf8wdSJLdU+rLqeaRhCDNaBHzuFlHqMKW1pvGdCSk+Vzsv6u7o/4w7bQKeuy+j55QTDg/WRHFvPhq1mh/cTQ==", - "dependencies": { - "@php-wasm/logger": "0.9.32", - "@php-wasm/node": "0.9.32", - "@php-wasm/universal": "0.9.32", - "@php-wasm/util": "0.9.32", + "version": "0.9.37", + "resolved": "https://registry.npmjs.org/@php-wasm/fs-journal/-/fs-journal-0.9.37.tgz", + "integrity": "sha512-YyAsYo2JKnTnpn05frVWejPkcBCmFiqKkiBHzAbVKCFtQWkAmUnNeHcqT7UumwesV1CN2HCcv+9CWPf10GAqkQ==", + "dependencies": { + "@php-wasm/logger": "0.9.37", + "@php-wasm/node": "0.9.37", + "@php-wasm/universal": "0.9.37", + "@php-wasm/util": "0.9.37", "comlink": "^4.4.1", "express": "4.19.2", "ini": "4.1.2", @@ -9809,11 +9809,11 @@ } }, "node_modules/@php-wasm/logger": { - "version": "0.9.32", - "resolved": "https://registry.npmjs.org/@php-wasm/logger/-/logger-0.9.32.tgz", - "integrity": "sha512-lBwHFDBLDOnLopYDvWwqSnaBUQW94SjBc0gWmCtBbhaatAmrYrFeC1AeuG8kRQn148UrdwV6Xcgxzjv6yxmkTg==", + "version": "0.9.37", + "resolved": "https://registry.npmjs.org/@php-wasm/logger/-/logger-0.9.37.tgz", + "integrity": "sha512-Ux5Ls85KnRKiytMCGJANoVb+tBEYHQL88sQRXQAzRNlD939g4HZfr2XIKWwh39LqL5vmpr7JDZCMcak6/jP0UQ==", "dependencies": { - "@php-wasm/node-polyfills": "0.9.32" + "@php-wasm/node-polyfills": "0.9.37" }, "engines": { "node": ">=18.18.0", @@ -9821,16 +9821,16 @@ } }, "node_modules/@php-wasm/node": { - "version": "0.9.32", - "resolved": "https://registry.npmjs.org/@php-wasm/node/-/node-0.9.32.tgz", - "integrity": "sha512-eeeT4MW6NRLkklc9v0Gtr6EgxjyHGJQN58yJBzsFPXSBxIQjwgPZd5gn5j63oWfi00PCKRLb/gLBNm6YLojx4g==", - "dependencies": { - "@php-wasm/logger": "0.9.32", - "@php-wasm/node-polyfills": "0.9.32", - "@php-wasm/universal": "0.9.32", - "@php-wasm/util": "0.9.32", - "@wp-playground/common": "0.9.32", - "@wp-playground/wordpress": "0.9.32", + "version": "0.9.37", + "resolved": "https://registry.npmjs.org/@php-wasm/node/-/node-0.9.37.tgz", + "integrity": "sha512-jAjmadrAHZYKbDx9EIvUAAS3JLDjVUoCG0mH3oRS4dvTOtoyUhQacJLFH45f61oXklDAXZgJoxtfOR5jUACbEg==", + "dependencies": { + "@php-wasm/logger": "0.9.37", + "@php-wasm/node-polyfills": "0.9.37", + "@php-wasm/universal": "0.9.37", + "@php-wasm/util": "0.9.37", + "@wp-playground/common": "0.9.37", + "@wp-playground/wordpress": "0.9.37", "comlink": "^4.4.1", "express": "4.19.2", "ini": "4.1.2", @@ -9843,9 +9843,9 @@ } }, "node_modules/@php-wasm/node-polyfills": { - "version": "0.9.32", - "resolved": "https://registry.npmjs.org/@php-wasm/node-polyfills/-/node-polyfills-0.9.32.tgz", - "integrity": "sha512-pXRW1z7syZ1T+rIZujJ/JiYadTL6okuBi84pauijb8lq1o8JoekGv8zeXipsqgnbl3+8L9Mej13w+Ko8gCFkkA==" + "version": "0.9.37", + "resolved": "https://registry.npmjs.org/@php-wasm/node-polyfills/-/node-polyfills-0.9.37.tgz", + "integrity": "sha512-FfQ2Gjs/2y/9lEUwZyBhmumVo0YzkGwi6FC1EXfmrh9J8HTV+yaJn8182rfYswTp0Ifk5MkTCvufBNagozdZaw==" }, "node_modules/@php-wasm/node/node_modules/ini": { "version": "4.1.2", @@ -9856,12 +9856,12 @@ } }, "node_modules/@php-wasm/progress": { - "version": "0.9.32", - "resolved": "https://registry.npmjs.org/@php-wasm/progress/-/progress-0.9.32.tgz", - "integrity": "sha512-K8mVdJNMbjzIvTL89oMFx2EmpgyC4QKO2GIWU8Is+QaSFa/TVT7kwrn3wz/RwKpoGQVI2EIZmv3j8rIX+mqAFw==", + "version": "0.9.37", + "resolved": "https://registry.npmjs.org/@php-wasm/progress/-/progress-0.9.37.tgz", + "integrity": "sha512-RakBnxS/r99Itcp5FZzFp1TMl0HOQ1ACxwBxJRlD2aUh6ynRJLv3pk1IJhlF8z41v8jUuXW1L0h6CO4RmIqGaA==", "dependencies": { - "@php-wasm/logger": "0.9.32", - "@php-wasm/node-polyfills": "0.9.32" + "@php-wasm/logger": "0.9.37", + "@php-wasm/node-polyfills": "0.9.37" }, "engines": { "node": ">=18.18.0", @@ -9869,33 +9869,33 @@ } }, "node_modules/@php-wasm/scopes": { - "version": "0.9.32", - "resolved": "https://registry.npmjs.org/@php-wasm/scopes/-/scopes-0.9.32.tgz", - "integrity": "sha512-Frf37Zkpb+XNBiQNO9sIjWZ5u80b3NDoeWrWhkpIwuiSh+mi6PI/2vaFaFmdIM9BtEwyukxTB/QK4fN5P9zzLg==", + "version": "0.9.37", + "resolved": "https://registry.npmjs.org/@php-wasm/scopes/-/scopes-0.9.37.tgz", + "integrity": "sha512-BRhYBgEPOTGRs8wxGlIzTGyzu8Gh7xcoSEEvZOW7NGwPXDdMN1jxsNNUMUHOfD38nlBGuLmWkkyGYnn4/Zfspw==", "engines": { "node": ">=16.15.1", "npm": ">=8.11.0" } }, "node_modules/@php-wasm/stream-compression": { - "version": "0.9.32", - "resolved": "https://registry.npmjs.org/@php-wasm/stream-compression/-/stream-compression-0.9.32.tgz", - "integrity": "sha512-i79dA0nwCIm6XzQPxAIdW3pu9MsuA8Nt+b5XHvEFph4OMTzTw8ZnemmVaSVmFhvx0D5AB7paL/y4aB7VQdu/9Q==", + "version": "0.9.37", + "resolved": "https://registry.npmjs.org/@php-wasm/stream-compression/-/stream-compression-0.9.37.tgz", + "integrity": "sha512-GUPJp4t20QCUM2yeYbryRW5ePZroEOb9L50sszVHM9ke9qsysuvNvW9zdlkODcXqbtfJHVDySIwypz8ah/HYMA==", "dependencies": { - "@php-wasm/node-polyfills": "0.9.32", - "@php-wasm/util": "0.9.32" + "@php-wasm/node-polyfills": "0.9.37", + "@php-wasm/util": "0.9.37" } }, "node_modules/@php-wasm/universal": { - "version": "0.9.32", - "resolved": "https://registry.npmjs.org/@php-wasm/universal/-/universal-0.9.32.tgz", - "integrity": "sha512-EBmhpg9fnvmRV9lPfKNug1z49UUbVWdpbVcofi8QTrEmiAlqjqL2Vdh/vogVh/RyKyMcylyg5A1xRg7BoJ8SrQ==", - "dependencies": { - "@php-wasm/logger": "0.9.32", - "@php-wasm/node-polyfills": "0.9.32", - "@php-wasm/progress": "0.9.32", - "@php-wasm/stream-compression": "0.9.32", - "@php-wasm/util": "0.9.32", + "version": "0.9.37", + "resolved": "https://registry.npmjs.org/@php-wasm/universal/-/universal-0.9.37.tgz", + "integrity": "sha512-Diy/s8lxWUAqcqdnRgmKw+OCI8gDmbJzE2Z9OXDBP81xFdKVCot7IAe281x0KUo2yJjPeqIIGEUt49e9W9Ia2Q==", + "dependencies": { + "@php-wasm/logger": "0.9.37", + "@php-wasm/node-polyfills": "0.9.37", + "@php-wasm/progress": "0.9.37", + "@php-wasm/stream-compression": "0.9.37", + "@php-wasm/util": "0.9.37", "comlink": "^4.4.1", "ini": "4.1.2" }, @@ -9913,24 +9913,24 @@ } }, "node_modules/@php-wasm/util": { - "version": "0.9.32", - "resolved": "https://registry.npmjs.org/@php-wasm/util/-/util-0.9.32.tgz", - "integrity": "sha512-N78fNgakmVbyQbZajvsMVu/Sj8YR0hqqIb/8hks2G1klTCvDzr3/cAZbwwgI9y9473u1RwWbrYc9kIEDPTl4hg==", + "version": "0.9.37", + "resolved": "https://registry.npmjs.org/@php-wasm/util/-/util-0.9.37.tgz", + "integrity": "sha512-3y6iOoLCrB1KOX3JwVZKvRfWAfAZbCG3zXhhbEmc6Uz1X2oyrlGCsWM7ZJ6hgm7kCO7gJ+Txl0VF32g8nugUWw==", "engines": { "node": ">=18.18.0", "npm": ">=8.11.0" } }, "node_modules/@php-wasm/web": { - "version": "0.9.32", - "resolved": "https://registry.npmjs.org/@php-wasm/web/-/web-0.9.32.tgz", - "integrity": "sha512-RETgOGseqE5tr6Uuts+IyCUK24VR9AYs83PGBVlSZinrn1bnhMPPNuosbzghr5m4QEGCZtvK1cwoOoYfLw8jNQ==", - "dependencies": { - "@php-wasm/fs-journal": "0.9.32", - "@php-wasm/logger": "0.9.32", - "@php-wasm/universal": "0.9.32", - "@php-wasm/util": "0.9.32", - "@php-wasm/web-service-worker": "0.9.32", + "version": "0.9.37", + "resolved": "https://registry.npmjs.org/@php-wasm/web/-/web-0.9.37.tgz", + "integrity": "sha512-29XpidIBKyzi2s3/E6J4TKH/EdYCQAJ7XmIpbMmPCg/cDN+UnFSRuIBXfV9sK2pfo2vt3hyeS7QDxGzcJQTe2Q==", + "dependencies": { + "@php-wasm/fs-journal": "0.9.37", + "@php-wasm/logger": "0.9.37", + "@php-wasm/universal": "0.9.37", + "@php-wasm/util": "0.9.37", + "@php-wasm/web-service-worker": "0.9.37", "comlink": "^4.4.1", "express": "4.19.2", "ini": "4.1.2", @@ -9943,11 +9943,11 @@ } }, "node_modules/@php-wasm/web-service-worker": { - "version": "0.9.32", - "resolved": "https://registry.npmjs.org/@php-wasm/web-service-worker/-/web-service-worker-0.9.32.tgz", - "integrity": "sha512-crWq9x3fexnfuOrq/fBeSwGWsVygk9UqQi/Roxw1agsLTlvYpv7C2e4z0Do4yWIeewRrCnLD/dLtW2BVQd8iPA==", + "version": "0.9.37", + "resolved": "https://registry.npmjs.org/@php-wasm/web-service-worker/-/web-service-worker-0.9.37.tgz", + "integrity": "sha512-U9jW5x54ddbL6mtB9383TD0qHSj/vU1MbBdwt4kom288pLGYBHP0p6xPKbgmwdFyTen1VhBH4meo2qqfIsxagw==", "dependencies": { - "@php-wasm/scopes": "0.9.32" + "@php-wasm/scopes": "0.9.37" }, "engines": { "node": ">=18.18.0", @@ -18048,19 +18048,19 @@ "link": true }, "node_modules/@wp-playground/blueprints": { - "version": "0.9.32", - "resolved": "https://registry.npmjs.org/@wp-playground/blueprints/-/blueprints-0.9.32.tgz", - "integrity": "sha512-GwLCQ/7jSqnzWuWJm0Xr7b2yqw9GXDUDe8PKS6FJ4VBomkvdsplBE4iV+VkLOjyKTmlsT9q4ZfQYRcL1PeKTvw==", - "dependencies": { - "@php-wasm/logger": "0.9.32", - "@php-wasm/node": "0.9.32", - "@php-wasm/node-polyfills": "0.9.32", - "@php-wasm/progress": "0.9.32", - "@php-wasm/scopes": "0.9.32", - "@php-wasm/universal": "0.9.32", - "@php-wasm/util": "0.9.32", - "@wp-playground/common": "0.9.32", - "@wp-playground/wordpress": "0.9.32", + "version": "0.9.37", + "resolved": "https://registry.npmjs.org/@wp-playground/blueprints/-/blueprints-0.9.37.tgz", + "integrity": "sha512-931XrC4Sk0Jy5LTBehK2RzZjMvymgUvpt18xIGAgMNz8Krq9h0PdQ2oIMJgBHUUq4zW9dcP5LWfcDhzsmSa+bw==", + "dependencies": { + "@php-wasm/logger": "0.9.37", + "@php-wasm/node": "0.9.37", + "@php-wasm/node-polyfills": "0.9.37", + "@php-wasm/progress": "0.9.37", + "@php-wasm/scopes": "0.9.37", + "@php-wasm/universal": "0.9.37", + "@php-wasm/util": "0.9.37", + "@wp-playground/common": "0.9.37", + "@wp-playground/wordpress": "0.9.37", "ajv": "8.12.0", "comlink": "^4.4.1", "ini": "4.1.2" @@ -18099,12 +18099,12 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/@wp-playground/common": { - "version": "0.9.32", - "resolved": "https://registry.npmjs.org/@wp-playground/common/-/common-0.9.32.tgz", - "integrity": "sha512-tRd1qdEs2gJe1NLf3x/6eyYs6PsHYIYLWKIwLCPqyh6tdbM78e9Jvt3cuxn6stRiQZWnhSz/nAj62dt5PKNb6A==", + "version": "0.9.37", + "resolved": "https://registry.npmjs.org/@wp-playground/common/-/common-0.9.37.tgz", + "integrity": "sha512-/z/D5O0ZNrsRVdq2w0N4ETYscRlM81VtLbqd3Q0OipTdeL6PB3NUvmqSAEpvt2GSbGEfqB3YYI21HDHvwG/8SA==", "dependencies": { - "@php-wasm/universal": "0.9.32", - "@php-wasm/util": "0.9.32", + "@php-wasm/universal": "0.9.37", + "@php-wasm/util": "0.9.37", "comlink": "^4.4.1", "ini": "4.1.2" }, @@ -18126,14 +18126,14 @@ "link": true }, "node_modules/@wp-playground/wordpress": { - "version": "0.9.32", - "resolved": "https://registry.npmjs.org/@wp-playground/wordpress/-/wordpress-0.9.32.tgz", - "integrity": "sha512-+UG/16Gllzlju7r0kRKcOkJHKuz1JmC09rNsN1iGZypaQSU9lNq/kt7zY/INvTcZ6t0tgiJYgyx2YgQGUeNhpw==", - "dependencies": { - "@php-wasm/node": "0.9.32", - "@php-wasm/universal": "0.9.32", - "@php-wasm/util": "0.9.32", - "@wp-playground/common": "0.9.32", + "version": "0.9.37", + "resolved": "https://registry.npmjs.org/@wp-playground/wordpress/-/wordpress-0.9.37.tgz", + "integrity": "sha512-+ayUYBtHyLeAu1Gn22Rf2EQ6aZQhcCSSZjgtSshovKuIIpygfzybFLk+njqsVr5H89yyMdMeo+HoUarBOl0LaA==", + "dependencies": { + "@php-wasm/node": "0.9.37", + "@php-wasm/universal": "0.9.37", + "@php-wasm/util": "0.9.37", + "@wp-playground/common": "0.9.37", "comlink": "^4.4.1", "express": "4.19.2", "ini": "4.1.2", diff --git a/package.json b/package.json index 343d97e2..5d9be77e 100644 --- a/package.json +++ b/package.json @@ -33,13 +33,13 @@ "@codemirror/state": "6.4.1", "@codemirror/theme-one-dark": "6.1.2", "@codemirror/view": "6.28.1", - "@php-wasm/node": "0.9.32", - "@php-wasm/progress": "0.9.32", - "@php-wasm/universal": "0.9.32", - "@php-wasm/web": "0.9.32", + "@php-wasm/node": "0.9.37", + "@php-wasm/progress": "0.9.37", + "@php-wasm/universal": "0.9.37", + "@php-wasm/web": "0.9.37", "@uiw/react-codemirror": "4.22.2", "@webcontainer/env": "1.1.1", - "@wp-playground/blueprints": "0.9.32", + "@wp-playground/blueprints": "0.9.37", "classnames": "^2.3.2", "comlink": "^4.4.1", "compressible": "2.0.18", From a8edcab9c5f93f81c533c30e291f5ee9176daeac Mon Sep 17 00:00:00 2001 From: eliot-akira Date: Sat, 7 Sep 2024 17:39:04 +0200 Subject: [PATCH 08/24] Add `@php-wasm/util` as dependency --- package-lock.json | 1 + package.json | 1 + 2 files changed, 2 insertions(+) diff --git a/package-lock.json b/package-lock.json index 9adae3c7..6e7a32fc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,6 +30,7 @@ "@php-wasm/node": "0.9.37", "@php-wasm/progress": "0.9.37", "@php-wasm/universal": "0.9.37", + "@php-wasm/util": "0.9.37", "@php-wasm/web": "0.9.37", "@uiw/react-codemirror": "4.22.2", "@webcontainer/env": "1.1.1", diff --git a/package.json b/package.json index 5d9be77e..b4a4b6c7 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "@php-wasm/node": "0.9.37", "@php-wasm/progress": "0.9.37", "@php-wasm/universal": "0.9.37", + "@php-wasm/util": "0.9.37", "@php-wasm/web": "0.9.37", "@uiw/react-codemirror": "4.22.2", "@webcontainer/env": "1.1.1", From 602a59400cc355675612bb8578ceee66cb7d03f6 Mon Sep 17 00:00:00 2001 From: eliot-akira Date: Wed, 11 Sep 2024 16:27:17 +0200 Subject: [PATCH 09/24] Update Playground dependencies to 0.9.39 --- package-lock.json | 190 +++++++++++++++++++++++----------------------- package.json | 12 +-- 2 files changed, 101 insertions(+), 101 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6e7a32fc..8e834e9e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,14 +27,14 @@ "@codemirror/state": "6.4.1", "@codemirror/theme-one-dark": "6.1.2", "@codemirror/view": "6.28.1", - "@php-wasm/node": "0.9.37", - "@php-wasm/progress": "0.9.37", - "@php-wasm/universal": "0.9.37", - "@php-wasm/util": "0.9.37", - "@php-wasm/web": "0.9.37", + "@php-wasm/node": "0.9.39", + "@php-wasm/progress": "0.9.39", + "@php-wasm/universal": "0.9.39", + "@php-wasm/util": "0.9.39", + "@php-wasm/web": "0.9.39", "@uiw/react-codemirror": "4.22.2", "@webcontainer/env": "1.1.1", - "@wp-playground/blueprints": "0.9.37", + "@wp-playground/blueprints": "0.9.39", "classnames": "^2.3.2", "comlink": "^4.4.1", "compressible": "2.0.18", @@ -9782,14 +9782,14 @@ } }, "node_modules/@php-wasm/fs-journal": { - "version": "0.9.37", - "resolved": "https://registry.npmjs.org/@php-wasm/fs-journal/-/fs-journal-0.9.37.tgz", - "integrity": "sha512-YyAsYo2JKnTnpn05frVWejPkcBCmFiqKkiBHzAbVKCFtQWkAmUnNeHcqT7UumwesV1CN2HCcv+9CWPf10GAqkQ==", - "dependencies": { - "@php-wasm/logger": "0.9.37", - "@php-wasm/node": "0.9.37", - "@php-wasm/universal": "0.9.37", - "@php-wasm/util": "0.9.37", + "version": "0.9.39", + "resolved": "https://registry.npmjs.org/@php-wasm/fs-journal/-/fs-journal-0.9.39.tgz", + "integrity": "sha512-3Dghh14h1WtGTB3Y51+EhoyHKDIBrtbkIhbt6U6DOms9/DQvQuCJ80ts/Ri2thtxTgbk2JdHMmp7gx6NPpJU/g==", + "dependencies": { + "@php-wasm/logger": "0.9.39", + "@php-wasm/node": "0.9.39", + "@php-wasm/universal": "0.9.39", + "@php-wasm/util": "0.9.39", "comlink": "^4.4.1", "express": "4.19.2", "ini": "4.1.2", @@ -9810,11 +9810,11 @@ } }, "node_modules/@php-wasm/logger": { - "version": "0.9.37", - "resolved": "https://registry.npmjs.org/@php-wasm/logger/-/logger-0.9.37.tgz", - "integrity": "sha512-Ux5Ls85KnRKiytMCGJANoVb+tBEYHQL88sQRXQAzRNlD939g4HZfr2XIKWwh39LqL5vmpr7JDZCMcak6/jP0UQ==", + "version": "0.9.39", + "resolved": "https://registry.npmjs.org/@php-wasm/logger/-/logger-0.9.39.tgz", + "integrity": "sha512-uTsLYBioX1yT//XGbQsXX6hrg4zKvsSGSNb4dlLdV4zgvwTVYYePyQ6zPdiMtAzn4pLJBxnnYXHnc3n2yyJrSA==", "dependencies": { - "@php-wasm/node-polyfills": "0.9.37" + "@php-wasm/node-polyfills": "0.9.39" }, "engines": { "node": ">=18.18.0", @@ -9822,16 +9822,16 @@ } }, "node_modules/@php-wasm/node": { - "version": "0.9.37", - "resolved": "https://registry.npmjs.org/@php-wasm/node/-/node-0.9.37.tgz", - "integrity": "sha512-jAjmadrAHZYKbDx9EIvUAAS3JLDjVUoCG0mH3oRS4dvTOtoyUhQacJLFH45f61oXklDAXZgJoxtfOR5jUACbEg==", - "dependencies": { - "@php-wasm/logger": "0.9.37", - "@php-wasm/node-polyfills": "0.9.37", - "@php-wasm/universal": "0.9.37", - "@php-wasm/util": "0.9.37", - "@wp-playground/common": "0.9.37", - "@wp-playground/wordpress": "0.9.37", + "version": "0.9.39", + "resolved": "https://registry.npmjs.org/@php-wasm/node/-/node-0.9.39.tgz", + "integrity": "sha512-pB/soBPrNiHwVop3UlDLpezvklpQNFKUIFVMQdmAulrfzSUKFC+lT/JMIHpNnQCxbZmfW7aByfO1u6sRG4tuOw==", + "dependencies": { + "@php-wasm/logger": "0.9.39", + "@php-wasm/node-polyfills": "0.9.39", + "@php-wasm/universal": "0.9.39", + "@php-wasm/util": "0.9.39", + "@wp-playground/common": "0.9.39", + "@wp-playground/wordpress": "0.9.39", "comlink": "^4.4.1", "express": "4.19.2", "ini": "4.1.2", @@ -9844,9 +9844,9 @@ } }, "node_modules/@php-wasm/node-polyfills": { - "version": "0.9.37", - "resolved": "https://registry.npmjs.org/@php-wasm/node-polyfills/-/node-polyfills-0.9.37.tgz", - "integrity": "sha512-FfQ2Gjs/2y/9lEUwZyBhmumVo0YzkGwi6FC1EXfmrh9J8HTV+yaJn8182rfYswTp0Ifk5MkTCvufBNagozdZaw==" + "version": "0.9.39", + "resolved": "https://registry.npmjs.org/@php-wasm/node-polyfills/-/node-polyfills-0.9.39.tgz", + "integrity": "sha512-WDMIEa761NzkI4Ydp83CYGPFwOwvztavMdFDyH/omcD800QpL1JDU/kT3p7MQBJLF9z+aV4CyY84HV0N7AGzUg==" }, "node_modules/@php-wasm/node/node_modules/ini": { "version": "4.1.2", @@ -9857,12 +9857,12 @@ } }, "node_modules/@php-wasm/progress": { - "version": "0.9.37", - "resolved": "https://registry.npmjs.org/@php-wasm/progress/-/progress-0.9.37.tgz", - "integrity": "sha512-RakBnxS/r99Itcp5FZzFp1TMl0HOQ1ACxwBxJRlD2aUh6ynRJLv3pk1IJhlF8z41v8jUuXW1L0h6CO4RmIqGaA==", + "version": "0.9.39", + "resolved": "https://registry.npmjs.org/@php-wasm/progress/-/progress-0.9.39.tgz", + "integrity": "sha512-8HHbrloXI98eRB2ZOr27nUSZvp7fE8dKbmMD2WUE814zXevzV+W8CrZCH3gqYV3rczP1MG4rifGVdn7QQESynA==", "dependencies": { - "@php-wasm/logger": "0.9.37", - "@php-wasm/node-polyfills": "0.9.37" + "@php-wasm/logger": "0.9.39", + "@php-wasm/node-polyfills": "0.9.39" }, "engines": { "node": ">=18.18.0", @@ -9870,33 +9870,33 @@ } }, "node_modules/@php-wasm/scopes": { - "version": "0.9.37", - "resolved": "https://registry.npmjs.org/@php-wasm/scopes/-/scopes-0.9.37.tgz", - "integrity": "sha512-BRhYBgEPOTGRs8wxGlIzTGyzu8Gh7xcoSEEvZOW7NGwPXDdMN1jxsNNUMUHOfD38nlBGuLmWkkyGYnn4/Zfspw==", + "version": "0.9.39", + "resolved": "https://registry.npmjs.org/@php-wasm/scopes/-/scopes-0.9.39.tgz", + "integrity": "sha512-6TPGsHEq9EVEPU4X1smc4N5tt1CORPISS//wlmIHaoWoHdAKCdOrlfoerbt9b3oIspaaSINATSrb3y8GgIR5nw==", "engines": { "node": ">=16.15.1", "npm": ">=8.11.0" } }, "node_modules/@php-wasm/stream-compression": { - "version": "0.9.37", - "resolved": "https://registry.npmjs.org/@php-wasm/stream-compression/-/stream-compression-0.9.37.tgz", - "integrity": "sha512-GUPJp4t20QCUM2yeYbryRW5ePZroEOb9L50sszVHM9ke9qsysuvNvW9zdlkODcXqbtfJHVDySIwypz8ah/HYMA==", + "version": "0.9.39", + "resolved": "https://registry.npmjs.org/@php-wasm/stream-compression/-/stream-compression-0.9.39.tgz", + "integrity": "sha512-GBP40Fi8bOvHygFUNW3B7QjgzGW6rEq6SOIZ/t2kI7XyCWNQSHiAoDIu9BgeX7wzB5CD82Bp0Est6IAwYLnhNA==", "dependencies": { - "@php-wasm/node-polyfills": "0.9.37", - "@php-wasm/util": "0.9.37" + "@php-wasm/node-polyfills": "0.9.39", + "@php-wasm/util": "0.9.39" } }, "node_modules/@php-wasm/universal": { - "version": "0.9.37", - "resolved": "https://registry.npmjs.org/@php-wasm/universal/-/universal-0.9.37.tgz", - "integrity": "sha512-Diy/s8lxWUAqcqdnRgmKw+OCI8gDmbJzE2Z9OXDBP81xFdKVCot7IAe281x0KUo2yJjPeqIIGEUt49e9W9Ia2Q==", - "dependencies": { - "@php-wasm/logger": "0.9.37", - "@php-wasm/node-polyfills": "0.9.37", - "@php-wasm/progress": "0.9.37", - "@php-wasm/stream-compression": "0.9.37", - "@php-wasm/util": "0.9.37", + "version": "0.9.39", + "resolved": "https://registry.npmjs.org/@php-wasm/universal/-/universal-0.9.39.tgz", + "integrity": "sha512-Hu6nPLEQbK10ZXFpSJzX0pHBr9lBfi4Kdvv7wsL7l4BQzpl25ToSKNNoqWelIq7m7xN32EqMzL68gxwXH+kd/g==", + "dependencies": { + "@php-wasm/logger": "0.9.39", + "@php-wasm/node-polyfills": "0.9.39", + "@php-wasm/progress": "0.9.39", + "@php-wasm/stream-compression": "0.9.39", + "@php-wasm/util": "0.9.39", "comlink": "^4.4.1", "ini": "4.1.2" }, @@ -9914,24 +9914,24 @@ } }, "node_modules/@php-wasm/util": { - "version": "0.9.37", - "resolved": "https://registry.npmjs.org/@php-wasm/util/-/util-0.9.37.tgz", - "integrity": "sha512-3y6iOoLCrB1KOX3JwVZKvRfWAfAZbCG3zXhhbEmc6Uz1X2oyrlGCsWM7ZJ6hgm7kCO7gJ+Txl0VF32g8nugUWw==", + "version": "0.9.39", + "resolved": "https://registry.npmjs.org/@php-wasm/util/-/util-0.9.39.tgz", + "integrity": "sha512-pIniF3N5IMKgOIUpoBwo5djULIMG54cYkWQPAKopCPCun2T9McjJ8AetTrvYrbldueBWsNi06YeD8LTQU45HCg==", "engines": { "node": ">=18.18.0", "npm": ">=8.11.0" } }, "node_modules/@php-wasm/web": { - "version": "0.9.37", - "resolved": "https://registry.npmjs.org/@php-wasm/web/-/web-0.9.37.tgz", - "integrity": "sha512-29XpidIBKyzi2s3/E6J4TKH/EdYCQAJ7XmIpbMmPCg/cDN+UnFSRuIBXfV9sK2pfo2vt3hyeS7QDxGzcJQTe2Q==", - "dependencies": { - "@php-wasm/fs-journal": "0.9.37", - "@php-wasm/logger": "0.9.37", - "@php-wasm/universal": "0.9.37", - "@php-wasm/util": "0.9.37", - "@php-wasm/web-service-worker": "0.9.37", + "version": "0.9.39", + "resolved": "https://registry.npmjs.org/@php-wasm/web/-/web-0.9.39.tgz", + "integrity": "sha512-F7KDGoJYnYO+CfBeUtcifDLiZj6YFoRC33YUX8xmMiYCM7Y+7kz4NToBdoONRX73MtnSaZPyS9IC535d/vPx9A==", + "dependencies": { + "@php-wasm/fs-journal": "0.9.39", + "@php-wasm/logger": "0.9.39", + "@php-wasm/universal": "0.9.39", + "@php-wasm/util": "0.9.39", + "@php-wasm/web-service-worker": "0.9.39", "comlink": "^4.4.1", "express": "4.19.2", "ini": "4.1.2", @@ -9944,11 +9944,11 @@ } }, "node_modules/@php-wasm/web-service-worker": { - "version": "0.9.37", - "resolved": "https://registry.npmjs.org/@php-wasm/web-service-worker/-/web-service-worker-0.9.37.tgz", - "integrity": "sha512-U9jW5x54ddbL6mtB9383TD0qHSj/vU1MbBdwt4kom288pLGYBHP0p6xPKbgmwdFyTen1VhBH4meo2qqfIsxagw==", + "version": "0.9.39", + "resolved": "https://registry.npmjs.org/@php-wasm/web-service-worker/-/web-service-worker-0.9.39.tgz", + "integrity": "sha512-I4pBDAmzzCRmINthMyiZoKdek2dtP/1YWgX9arRK7JAPDlZ4se63EgaJItvmJiFLxQ00B4UpkF0HiMreBzSGKA==", "dependencies": { - "@php-wasm/scopes": "0.9.37" + "@php-wasm/scopes": "0.9.39" }, "engines": { "node": ">=18.18.0", @@ -18049,19 +18049,19 @@ "link": true }, "node_modules/@wp-playground/blueprints": { - "version": "0.9.37", - "resolved": "https://registry.npmjs.org/@wp-playground/blueprints/-/blueprints-0.9.37.tgz", - "integrity": "sha512-931XrC4Sk0Jy5LTBehK2RzZjMvymgUvpt18xIGAgMNz8Krq9h0PdQ2oIMJgBHUUq4zW9dcP5LWfcDhzsmSa+bw==", - "dependencies": { - "@php-wasm/logger": "0.9.37", - "@php-wasm/node": "0.9.37", - "@php-wasm/node-polyfills": "0.9.37", - "@php-wasm/progress": "0.9.37", - "@php-wasm/scopes": "0.9.37", - "@php-wasm/universal": "0.9.37", - "@php-wasm/util": "0.9.37", - "@wp-playground/common": "0.9.37", - "@wp-playground/wordpress": "0.9.37", + "version": "0.9.39", + "resolved": "https://registry.npmjs.org/@wp-playground/blueprints/-/blueprints-0.9.39.tgz", + "integrity": "sha512-aIauzNdkYV7YCJSVFrLh3TjM+SqNgg9SElM4/2zUIwLvBa0z7KXReZps51Lx39BdYMu9uZ79Eo9u13hk1Te26A==", + "dependencies": { + "@php-wasm/logger": "0.9.39", + "@php-wasm/node": "0.9.39", + "@php-wasm/node-polyfills": "0.9.39", + "@php-wasm/progress": "0.9.39", + "@php-wasm/scopes": "0.9.39", + "@php-wasm/universal": "0.9.39", + "@php-wasm/util": "0.9.39", + "@wp-playground/common": "0.9.39", + "@wp-playground/wordpress": "0.9.39", "ajv": "8.12.0", "comlink": "^4.4.1", "ini": "4.1.2" @@ -18100,12 +18100,12 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/@wp-playground/common": { - "version": "0.9.37", - "resolved": "https://registry.npmjs.org/@wp-playground/common/-/common-0.9.37.tgz", - "integrity": "sha512-/z/D5O0ZNrsRVdq2w0N4ETYscRlM81VtLbqd3Q0OipTdeL6PB3NUvmqSAEpvt2GSbGEfqB3YYI21HDHvwG/8SA==", + "version": "0.9.39", + "resolved": "https://registry.npmjs.org/@wp-playground/common/-/common-0.9.39.tgz", + "integrity": "sha512-Z7Co6aNnMDL2/YrAhw16AzY0jRohswmuY8rUsrm+HWrV+chMvwtJhpNXN0IPP7COW5wOU+EGo3iPCADEtKbXjQ==", "dependencies": { - "@php-wasm/universal": "0.9.37", - "@php-wasm/util": "0.9.37", + "@php-wasm/universal": "0.9.39", + "@php-wasm/util": "0.9.39", "comlink": "^4.4.1", "ini": "4.1.2" }, @@ -18127,14 +18127,14 @@ "link": true }, "node_modules/@wp-playground/wordpress": { - "version": "0.9.37", - "resolved": "https://registry.npmjs.org/@wp-playground/wordpress/-/wordpress-0.9.37.tgz", - "integrity": "sha512-+ayUYBtHyLeAu1Gn22Rf2EQ6aZQhcCSSZjgtSshovKuIIpygfzybFLk+njqsVr5H89yyMdMeo+HoUarBOl0LaA==", - "dependencies": { - "@php-wasm/node": "0.9.37", - "@php-wasm/universal": "0.9.37", - "@php-wasm/util": "0.9.37", - "@wp-playground/common": "0.9.37", + "version": "0.9.39", + "resolved": "https://registry.npmjs.org/@wp-playground/wordpress/-/wordpress-0.9.39.tgz", + "integrity": "sha512-SVvH6P6nD3+9YZyLtJFGf2VcyitLnUVJxoqLyT4J/jX94RKIb1woQrXRz32KdR9yQ6MxnqsaYytR7an2356abA==", + "dependencies": { + "@php-wasm/node": "0.9.39", + "@php-wasm/universal": "0.9.39", + "@php-wasm/util": "0.9.39", + "@wp-playground/common": "0.9.39", "comlink": "^4.4.1", "express": "4.19.2", "ini": "4.1.2", diff --git a/package.json b/package.json index b4a4b6c7..f4a6cc77 100644 --- a/package.json +++ b/package.json @@ -33,14 +33,14 @@ "@codemirror/state": "6.4.1", "@codemirror/theme-one-dark": "6.1.2", "@codemirror/view": "6.28.1", - "@php-wasm/node": "0.9.37", - "@php-wasm/progress": "0.9.37", - "@php-wasm/universal": "0.9.37", - "@php-wasm/util": "0.9.37", - "@php-wasm/web": "0.9.37", + "@php-wasm/node": "0.9.39", + "@php-wasm/progress": "0.9.39", + "@php-wasm/universal": "0.9.39", + "@php-wasm/util": "0.9.39", + "@php-wasm/web": "0.9.39", "@uiw/react-codemirror": "4.22.2", "@webcontainer/env": "1.1.1", - "@wp-playground/blueprints": "0.9.37", + "@wp-playground/blueprints": "0.9.39", "classnames": "^2.3.2", "comlink": "^4.4.1", "compressible": "2.0.18", From 45c5820a3e9cb76af2b944d957cd9c1f3034992c Mon Sep 17 00:00:00 2001 From: eliot-akira Date: Wed, 11 Sep 2024 16:35:40 +0200 Subject: [PATCH 10/24] Lint --- packages/wp-now/src/execute-wp-cli.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/wp-now/src/execute-wp-cli.ts b/packages/wp-now/src/execute-wp-cli.ts index ae4fc381..833889e1 100644 --- a/packages/wp-now/src/execute-wp-cli.ts +++ b/packages/wp-now/src/execute-wp-cli.ts @@ -24,7 +24,7 @@ export async function executeWPCli( args: string[] ): Promise<{ stdout: string; stderr: string; exitCode: number }> { await downloadWPCLI(); - let options = await getWpNowConfig({ + const options = await getWpNowConfig({ php: DEFAULT_PHP_VERSION, wp: DEFAULT_WORDPRESS_VERSION, }); From fc61a8c1b44e6f61f8d611e77a5ecd9575a7e6e8 Mon Sep 17 00:00:00 2001 From: eliot-akira Date: Wed, 11 Sep 2024 16:42:45 +0200 Subject: [PATCH 11/24] Replace NodePHP with PHP --- packages/wp-now/src/start-server.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/wp-now/src/start-server.ts b/packages/wp-now/src/start-server.ts index 870414df..4e59b484 100644 --- a/packages/wp-now/src/start-server.ts +++ b/packages/wp-now/src/start-server.ts @@ -1,11 +1,10 @@ import fs from 'fs'; import { WPNowOptions } from './config'; -import { HTTPMethod } from '@php-wasm/universal'; +import { HTTPMethod, PHP } from '@php-wasm/universal'; import express from 'express'; import compression from 'compression'; import compressible from 'compressible'; import { portFinder } from './port-finder'; -import { NodePHP } from '@php-wasm/node'; import { isWebContainer } from '@webcontainer/env'; import startWPNow from './wp-now'; import { output } from './output'; @@ -24,7 +23,7 @@ const requestBodyToBytes = async (req): Promise => export interface WPNowServer { url: string; - php: NodePHP; + php: PHP; options: WPNowOptions; stopServer: () => Promise; } From 482b7e67c4fc3d282bc69a95a37269f107dd8c57 Mon Sep 17 00:00:00 2001 From: eliot-akira Date: Wed, 11 Sep 2024 23:58:39 +0200 Subject: [PATCH 12/24] Use index mode for PHP CLI --- packages/wp-now/src/execute-php.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/wp-now/src/execute-php.ts b/packages/wp-now/src/execute-php.ts index 6498fe9d..e35de6ce 100644 --- a/packages/wp-now/src/execute-php.ts +++ b/packages/wp-now/src/execute-php.ts @@ -1,6 +1,6 @@ import { useHostFilesystem } from '@php-wasm/node'; import startWPNow from './wp-now'; -import { WPNowOptions } from './config'; +import { WPNowOptions, WPNowMode } from './config'; import { disableOutput } from './output'; import * as path from 'path'; import fs from 'fs-extra'; @@ -24,7 +24,10 @@ export async function executePHP( ); } disableOutput(); - const { php, options: wpNowOptions } = await startWPNow(options); + const { php, options: wpNowOptions } = await startWPNow({ + ...options, + mode: WPNowMode.INDEX, + }); try { useHostFilesystem(php); From 9e30b39ae6db6bffbb9a9667584b2d81666904aa Mon Sep 17 00:00:00 2001 From: eliot-akira Date: Thu, 12 Sep 2024 00:41:03 +0200 Subject: [PATCH 13/24] Update executeWPCli to accept options for PHP version and project path - Based on changes in Automattic/studio: https://github.com/Automattic/studio/blob/trunk/vendor/wp-now/src/execute-wp-cli.ts --- packages/wp-now/src/execute-wp-cli.ts | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/packages/wp-now/src/execute-wp-cli.ts b/packages/wp-now/src/execute-wp-cli.ts index 833889e1..60824ef9 100644 --- a/packages/wp-now/src/execute-wp-cli.ts +++ b/packages/wp-now/src/execute-wp-cli.ts @@ -21,15 +21,19 @@ const isWindows = process.platform === 'win32'; * This is an unstable API. Multiple wp-cli commands may not work due to a current limitation on php-wasm and pthreads. */ export async function executeWPCli( - args: string[] + args: string[], + { + phpVersion, + projectPath, + }: { phpVersion?: string; projectPath?: string } = {} ): Promise<{ stdout: string; stderr: string; exitCode: number }> { await downloadWPCLI(); - const options = await getWpNowConfig({ - php: DEFAULT_PHP_VERSION, + let options = await getWpNowConfig({ + php: phpVersion || DEFAULT_PHP_VERSION, wp: DEFAULT_WORDPRESS_VERSION, + path: projectPath, }); - const projectPath = options.projectPath; const id = await loadNodeRuntime(options.phpVersion); const php = new PHP(id); php.mkdir(options.documentRoot); @@ -95,11 +99,16 @@ export async function executeWPCli( await setPhpIniEntries(php, { 'openssl.cafile': '/internal/shared/ca-bundle.crt', }); - // try{ + // try { // php.mkdir(sqliteCommandPath); - // await php.mount(sqliteCommandPath, createNodeFsMountHandler(getSqliteCommandPath()) as unknown as MountHandler) - // }catch(e){ - // console.log(e) + // await php.mount( + // sqliteCommandPath, + // createNodeFsMountHandler( + // getSqliteCommandPath() + // ) as unknown as MountHandler + // ); + // } catch (e) { + // console.log(e); // } try { From a96df2189f9dab546dd3738eea20fb06519b49b6 Mon Sep 17 00:00:00 2001 From: eliot-akira Date: Thu, 12 Sep 2024 00:48:24 +0200 Subject: [PATCH 14/24] Lint --- packages/wp-now/src/execute-wp-cli.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/wp-now/src/execute-wp-cli.ts b/packages/wp-now/src/execute-wp-cli.ts index 60824ef9..c0dd778e 100644 --- a/packages/wp-now/src/execute-wp-cli.ts +++ b/packages/wp-now/src/execute-wp-cli.ts @@ -28,7 +28,7 @@ export async function executeWPCli( }: { phpVersion?: string; projectPath?: string } = {} ): Promise<{ stdout: string; stderr: string; exitCode: number }> { await downloadWPCLI(); - let options = await getWpNowConfig({ + const options = await getWpNowConfig({ php: phpVersion || DEFAULT_PHP_VERSION, wp: DEFAULT_WORDPRESS_VERSION, path: projectPath, From 2ab6c92a444c0d87572899622fbada7f83b73a87 Mon Sep 17 00:00:00 2001 From: eliot-akira Date: Thu, 12 Sep 2024 17:14:07 +0200 Subject: [PATCH 15/24] Simplify wp-cli test: Remove consoleSpy --- packages/wp-now/src/tests/wp-now.spec.ts | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/packages/wp-now/src/tests/wp-now.spec.ts b/packages/wp-now/src/tests/wp-now.spec.ts index 926682f7..7451b51e 100644 --- a/packages/wp-now/src/tests/wp-now.spec.ts +++ b/packages/wp-now/src/tests/wp-now.spec.ts @@ -819,22 +819,6 @@ describe('Test starting different modes', () => { * Test wp-cli command. */ describe('wp-cli command', () => { - let consoleSpy; - let output = ''; - - beforeEach(() => { - function onStdout(outputLine: string) { - output += outputLine; - } - consoleSpy = vi.spyOn(console, 'log'); - consoleSpy.mockImplementation(onStdout); - }); - - afterEach(() => { - output = ''; - consoleSpy.mockRestore(); - }); - beforeAll(async () => { await downloadWithTimer('wp-cli', downloadWPCLI); }); @@ -848,7 +832,9 @@ describe('wp-cli command', () => { * We don't need the WordPress context for this test. */ test('wp-cli displays the version', async () => { - const { stdout } = await executeWPCli(['cli', 'version']); + const { stdout } = await executeWPCli(['--version'], { + projectPath: '.', + }); expect(stdout).toMatch(/WP-CLI (\d\.?)+/i); }); }); From 2ad15ccdef78971758e26a9a80d1b81920b773c2 Mon Sep 17 00:00:00 2001 From: eliot-akira Date: Thu, 12 Sep 2024 17:34:32 +0200 Subject: [PATCH 16/24] Update startWPNow based on Studio fork: Rewrite rules, file not found action, php.ini, improve rotate runtime logic - See https://github.com/Automattic/studio/blob/trunk/vendor/wp-now/src/wp-now.ts --- packages/wp-now/src/wp-now.ts | 131 ++++++++++++++++++++++++---------- 1 file changed, 94 insertions(+), 37 deletions(-) diff --git a/packages/wp-now/src/wp-now.ts b/packages/wp-now/src/wp-now.ts index bf16c9d4..c21332e7 100644 --- a/packages/wp-now/src/wp-now.ts +++ b/packages/wp-now/src/wp-now.ts @@ -1,13 +1,19 @@ -import fs, { copySync } from 'fs-extra'; import path from 'path'; +import { rootCertificates } from 'tls'; +import fs, { copySync } from 'fs-extra'; import { createNodeFsMountHandler, loadNodeRuntime } from '@php-wasm/node'; import { PHP, PHPRequestHandler, proxyFileSystem, rotatePHPRuntime, + setPhpIniEntries, UnmountFunction, } from '@php-wasm/universal'; +import { + wordPressRewriteRules, + getFileNotFoundActionForWordPress, +} from '@wp-playground/wordpress'; import { SQLITE_FILENAME } from './constants'; import { downloadMuPlugins, @@ -60,14 +66,22 @@ export default async function startWPNow( const createPhpRuntime = async () => await loadNodeRuntime(options.phpVersion); const requestHandler = new PHPRequestHandler({ - phpFactory: async ({ isPrimary }) => { - const php = new PHP(await createPhpRuntime()); + phpFactory: async ({ isPrimary, requestHandler }) => { + const { php, runtimeId } = await getPHPInstance( + options, + isPrimary, + requestHandler + ); if (requestHandler) { php.requestHandler = requestHandler; } if (isPrimary) { - // @TODO: Mount /internal/shared/mu-plugins + /** + * @TODO: Mount /internal/shared/mu-plugins instead of altering + * the installed WordPress site. Refer to @wp-playground/wordpress. + * https://github.com/WordPress/wordpress-playground/blob/19e64f5782631e94ffeb6dd2e552c3868c6dc29d/packages/playground/wordpress/src/boot.ts#L127-L143 + */ } else { // Proxy the filesystem for all secondary PHP instances proxyFileSystem(await requestHandler.getPrimaryPhp(), php, [ @@ -76,28 +90,18 @@ export default async function startWPNow( '/internal/shared', ]); } - - rotatePHPRuntime({ - php, - cwd: requestHandler.documentRoot, - recreateRuntime: createPhpRuntime, - maxRequests: 400, - }); - return php; }, documentRoot, absoluteUrl: options.absoluteUrl, maxPhpInstances: options.numberOfPhpInstances, - // rewriteRules, - // getFileNotFoundAction, + rewriteRules: wordPressRewriteRules, + getFileNotFoundAction: getFileNotFoundActionForWordPress, }); const php = await requestHandler.getPrimaryPhp(); - php.mkdir(documentRoot); - php.chdir(documentRoot); - php.writeFile(`${documentRoot}/index.php`, ` { + output?.log('Recreating and rotating PHP runtime'); + const { php, runtimeId } = await getPHPInstance( + options, + true, + requestHandler + ); + prepareDocumentRoot(php, options); + await prepareWordPress(php, options); + return runtimeId; + }, + maxRequests: 400, + }); + return { php, options, }; } +async function getPHPInstance( + options: WPNowOptions, + isPrimary: boolean, + requestHandler: PHPRequestHandler +): Promise<{ php: PHP; runtimeId: number }> { + const id = await loadNodeRuntime(options.phpVersion); + const php = new PHP(id); + + await setPhpIniEntries(php, { + memory_limit: '256M', + disable_functions: '', + allow_url_fopen: '1', + 'openssl.cafile': '/internal/shared/ca-bundle.crt', + }); + + return { php, runtimeId: id }; +} + +function prepareDocumentRoot(php: PHP, options: WPNowOptions) { + php.mkdir(options.documentRoot); + php.chdir(options.documentRoot); + php.writeFile( + `${options.documentRoot}/index.php`, + ` Date: Thu, 12 Sep 2024 19:26:07 +0200 Subject: [PATCH 17/24] Lint: Remove unused variables and code --- packages/wp-now/src/execute-wp-cli.ts | 20 ++------------------ packages/wp-now/src/wp-now.ts | 16 +++------------- 2 files changed, 5 insertions(+), 31 deletions(-) diff --git a/packages/wp-now/src/execute-wp-cli.ts b/packages/wp-now/src/execute-wp-cli.ts index c0dd778e..24ec3e62 100644 --- a/packages/wp-now/src/execute-wp-cli.ts +++ b/packages/wp-now/src/execute-wp-cli.ts @@ -5,13 +5,11 @@ import getWpNowConfig from './config'; import { DEFAULT_PHP_VERSION, DEFAULT_WORDPRESS_VERSION } from './constants'; import { phpVar } from '@php-wasm/util'; import { createNodeFsMountHandler, loadNodeRuntime } from '@php-wasm/node'; -// import { getSqliteCommandPath } from '../../../src/lib/sqlite-command-versions'; import { PHP, MountHandler, writeFiles, setPhpIniEntries, - loadPHPRuntime, } from '@php-wasm/universal'; import { readFileSync } from 'fs'; @@ -21,11 +19,9 @@ const isWindows = process.platform === 'win32'; * This is an unstable API. Multiple wp-cli commands may not work due to a current limitation on php-wasm and pthreads. */ export async function executeWPCli( + projectPath: string, args: string[], - { - phpVersion, - projectPath, - }: { phpVersion?: string; projectPath?: string } = {} + { phpVersion }: { phpVersion?: string } = {} ): Promise<{ stdout: string; stderr: string; exitCode: number }> { await downloadWPCLI(); const options = await getWpNowConfig({ @@ -49,7 +45,6 @@ export async function executeWPCli( const wpCliPath = '/tmp/wp-cli.phar'; const stderrPath = '/tmp/stderr'; - const sqliteCommandPath = '/tmp/sqlite-command'; const runCliPath = '/tmp/run-cli.php'; const createFiles = { [wpCliPath]: readFileSync(getWpCliPath()), @@ -99,17 +94,6 @@ export async function executeWPCli( await setPhpIniEntries(php, { 'openssl.cafile': '/internal/shared/ca-bundle.crt', }); - // try { - // php.mkdir(sqliteCommandPath); - // await php.mount( - // sqliteCommandPath, - // createNodeFsMountHandler( - // getSqliteCommandPath() - // ) as unknown as MountHandler - // ); - // } catch (e) { - // console.log(e); - // } try { php.chdir(options.documentRoot); diff --git a/packages/wp-now/src/wp-now.ts b/packages/wp-now/src/wp-now.ts index c21332e7..294342a9 100644 --- a/packages/wp-now/src/wp-now.ts +++ b/packages/wp-now/src/wp-now.ts @@ -1,6 +1,6 @@ import path from 'path'; import { rootCertificates } from 'tls'; -import fs, { copySync } from 'fs-extra'; +import fs from 'fs-extra'; import { createNodeFsMountHandler, loadNodeRuntime } from '@php-wasm/node'; import { PHP, @@ -61,17 +61,9 @@ export default async function startWPNow( ): Promise<{ php: PHP; options: WPNowOptions }> { const { documentRoot } = options; - // Similar logic as bootWordPress() in @wp-playground/wordpess - - const createPhpRuntime = async () => - await loadNodeRuntime(options.phpVersion); const requestHandler = new PHPRequestHandler({ phpFactory: async ({ isPrimary, requestHandler }) => { - const { php, runtimeId } = await getPHPInstance( - options, - isPrimary, - requestHandler - ); + const { php } = await getPHPInstance(options); if (requestHandler) { php.requestHandler = requestHandler; @@ -193,9 +185,7 @@ export default async function startWPNow( } async function getPHPInstance( - options: WPNowOptions, - isPrimary: boolean, - requestHandler: PHPRequestHandler + options: WPNowOptions ): Promise<{ php: PHP; runtimeId: number }> { const id = await loadNodeRuntime(options.phpVersion); const php = new PHP(id); From a97a483649ca86405d85c528858c3227bdc4beaa Mon Sep 17 00:00:00 2001 From: eliot-akira Date: Thu, 12 Sep 2024 19:28:22 +0200 Subject: [PATCH 18/24] Make project path required for executeWPCli --- packages/wp-now/src/tests/wp-now.spec.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/wp-now/src/tests/wp-now.spec.ts b/packages/wp-now/src/tests/wp-now.spec.ts index 7451b51e..b8f116af 100644 --- a/packages/wp-now/src/tests/wp-now.spec.ts +++ b/packages/wp-now/src/tests/wp-now.spec.ts @@ -832,9 +832,7 @@ describe('wp-cli command', () => { * We don't need the WordPress context for this test. */ test('wp-cli displays the version', async () => { - const { stdout } = await executeWPCli(['--version'], { - projectPath: '.', - }); + const { stdout } = await executeWPCli('.', ['--version']); expect(stdout).toMatch(/WP-CLI (\d\.?)+/i); }); }); From 46191a561a143e2f6b72b71759c7ecf9b197d6fc Mon Sep 17 00:00:00 2001 From: eliot-akira Date: Thu, 12 Sep 2024 19:40:14 +0200 Subject: [PATCH 19/24] Remove patch that made PHP CLI only run index mode --- packages/wp-now/src/execute-php.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/wp-now/src/execute-php.ts b/packages/wp-now/src/execute-php.ts index e35de6ce..1c793eb2 100644 --- a/packages/wp-now/src/execute-php.ts +++ b/packages/wp-now/src/execute-php.ts @@ -1,6 +1,6 @@ import { useHostFilesystem } from '@php-wasm/node'; import startWPNow from './wp-now'; -import { WPNowOptions, WPNowMode } from './config'; +import { WPNowOptions } from './config'; import { disableOutput } from './output'; import * as path from 'path'; import fs from 'fs-extra'; @@ -26,7 +26,8 @@ export async function executePHP( disableOutput(); const { php, options: wpNowOptions } = await startWPNow({ ...options, - mode: WPNowMode.INDEX, + // @TODO: Any other mode throws WASM error + // mode: WPNowMode.INDEX, }); try { From a9069cf57cf1f982db139e1ea6dcabf406a9553d Mon Sep 17 00:00:00 2001 From: eliot-akira Date: Thu, 12 Sep 2024 19:42:46 +0200 Subject: [PATCH 20/24] Lint --- packages/wp-now/src/wp-now.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/packages/wp-now/src/wp-now.ts b/packages/wp-now/src/wp-now.ts index 294342a9..731318cf 100644 --- a/packages/wp-now/src/wp-now.ts +++ b/packages/wp-now/src/wp-now.ts @@ -166,11 +166,7 @@ export default async function startWPNow( cwd: requestHandler.documentRoot, recreateRuntime: async () => { output?.log('Recreating and rotating PHP runtime'); - const { php, runtimeId } = await getPHPInstance( - options, - true, - requestHandler - ); + const { php, runtimeId } = await getPHPInstance(options); prepareDocumentRoot(php, options); await prepareWordPress(php, options); return runtimeId; From 42150fd73225c1ec69a92916d7fea95fe6e3ae29 Mon Sep 17 00:00:00 2001 From: eliot-akira Date: Sun, 13 Oct 2024 15:19:18 +0200 Subject: [PATCH 21/24] Update Playground dependencies to 1.0.2 --- package-lock.json | 1479 ++++++++++++++++++++++++++++++++++++++++----- package.json | 12 +- 2 files changed, 1350 insertions(+), 141 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8e834e9e..4c3c8de9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,14 +27,14 @@ "@codemirror/state": "6.4.1", "@codemirror/theme-one-dark": "6.1.2", "@codemirror/view": "6.28.1", - "@php-wasm/node": "0.9.39", - "@php-wasm/progress": "0.9.39", - "@php-wasm/universal": "0.9.39", - "@php-wasm/util": "0.9.39", - "@php-wasm/web": "0.9.39", + "@php-wasm/node": "1.0.2", + "@php-wasm/progress": "1.0.2", + "@php-wasm/universal": "1.0.2", + "@php-wasm/util": "1.0.2", + "@php-wasm/web": "1.0.2", "@uiw/react-codemirror": "4.22.2", "@webcontainer/env": "1.1.1", - "@wp-playground/blueprints": "0.9.39", + "@wp-playground/blueprints": "1.0.2", "classnames": "^2.3.2", "comlink": "^4.4.1", "compressible": "2.0.18", @@ -9396,6 +9396,471 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/@octokit/app": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@octokit/app/-/app-14.1.0.tgz", + "integrity": "sha512-g3uEsGOQCBl1+W1rgfwoRFUIR6PtvB2T1E4RpygeUU5LrLvlOqcxrt5lfykIeRpUPpupreGJUYl70fqMDXdTpw==", + "dependencies": { + "@octokit/auth-app": "^6.0.0", + "@octokit/auth-unauthenticated": "^5.0.0", + "@octokit/core": "^5.0.0", + "@octokit/oauth-app": "^6.0.0", + "@octokit/plugin-paginate-rest": "^9.0.0", + "@octokit/types": "^12.0.0", + "@octokit/webhooks": "^12.0.4" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/app/node_modules/@octokit/auth-token": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", + "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/app/node_modules/@octokit/core": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.0.tgz", + "integrity": "sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==", + "dependencies": { + "@octokit/auth-token": "^4.0.0", + "@octokit/graphql": "^7.1.0", + "@octokit/request": "^8.3.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/app/node_modules/@octokit/core/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" + }, + "node_modules/@octokit/app/node_modules/@octokit/core/node_modules/@octokit/types": { + "version": "13.6.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.1.tgz", + "integrity": "sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, + "node_modules/@octokit/app/node_modules/@octokit/endpoint": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz", + "integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==", + "dependencies": { + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/app/node_modules/@octokit/endpoint/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" + }, + "node_modules/@octokit/app/node_modules/@octokit/endpoint/node_modules/@octokit/types": { + "version": "13.6.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.1.tgz", + "integrity": "sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, + "node_modules/@octokit/app/node_modules/@octokit/graphql": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.0.tgz", + "integrity": "sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==", + "dependencies": { + "@octokit/request": "^8.3.0", + "@octokit/types": "^13.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/app/node_modules/@octokit/graphql/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" + }, + "node_modules/@octokit/app/node_modules/@octokit/graphql/node_modules/@octokit/types": { + "version": "13.6.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.1.tgz", + "integrity": "sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, + "node_modules/@octokit/app/node_modules/@octokit/openapi-types": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", + "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==" + }, + "node_modules/@octokit/app/node_modules/@octokit/plugin-paginate-rest": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.1.tgz", + "integrity": "sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw==", + "dependencies": { + "@octokit/types": "^12.6.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "5" + } + }, + "node_modules/@octokit/app/node_modules/@octokit/request": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz", + "integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==", + "dependencies": { + "@octokit/endpoint": "^9.0.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/app/node_modules/@octokit/request-error": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz", + "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==", + "dependencies": { + "@octokit/types": "^13.1.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/app/node_modules/@octokit/request-error/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" + }, + "node_modules/@octokit/app/node_modules/@octokit/request-error/node_modules/@octokit/types": { + "version": "13.6.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.1.tgz", + "integrity": "sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, + "node_modules/@octokit/app/node_modules/@octokit/request/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" + }, + "node_modules/@octokit/app/node_modules/@octokit/request/node_modules/@octokit/types": { + "version": "13.6.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.1.tgz", + "integrity": "sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, + "node_modules/@octokit/app/node_modules/@octokit/types": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", + "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", + "dependencies": { + "@octokit/openapi-types": "^20.0.0" + } + }, + "node_modules/@octokit/auth-app": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-6.1.2.tgz", + "integrity": "sha512-fWjIOpxnL8/YFY3kqquciFQ4o99aCqHw5kMFoGPYbz/h5HNZ11dJlV9zag5wS2nt0X1wJ5cs9BUo+CsAPfW4jQ==", + "dependencies": { + "@octokit/auth-oauth-app": "^7.1.0", + "@octokit/auth-oauth-user": "^4.1.0", + "@octokit/request": "^8.3.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.1.0", + "deprecation": "^2.3.1", + "lru-cache": "^10.0.0", + "universal-github-app-jwt": "^1.1.2", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-app/node_modules/@octokit/endpoint": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz", + "integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==", + "dependencies": { + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-app/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" + }, + "node_modules/@octokit/auth-app/node_modules/@octokit/request": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz", + "integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==", + "dependencies": { + "@octokit/endpoint": "^9.0.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-app/node_modules/@octokit/request-error": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz", + "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==", + "dependencies": { + "@octokit/types": "^13.1.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-app/node_modules/@octokit/types": { + "version": "13.6.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.1.tgz", + "integrity": "sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, + "node_modules/@octokit/auth-app/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + }, + "node_modules/@octokit/auth-oauth-app": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-7.1.0.tgz", + "integrity": "sha512-w+SyJN/b0l/HEb4EOPRudo7uUOSW51jcK1jwLa+4r7PA8FPFpoxEnHBHMITqCsc/3Vo2qqFjgQfz/xUUvsSQnA==", + "dependencies": { + "@octokit/auth-oauth-device": "^6.1.0", + "@octokit/auth-oauth-user": "^4.1.0", + "@octokit/request": "^8.3.1", + "@octokit/types": "^13.0.0", + "@types/btoa-lite": "^1.0.0", + "btoa-lite": "^1.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/endpoint": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz", + "integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==", + "dependencies": { + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" + }, + "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/request": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz", + "integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==", + "dependencies": { + "@octokit/endpoint": "^9.0.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/request-error": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz", + "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==", + "dependencies": { + "@octokit/types": "^13.1.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/types": { + "version": "13.6.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.1.tgz", + "integrity": "sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, + "node_modules/@octokit/auth-oauth-device": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-6.1.0.tgz", + "integrity": "sha512-FNQ7cb8kASufd6Ej4gnJ3f1QB5vJitkoV1O0/g6e6lUsQ7+VsSNRHRmFScN2tV4IgKA12frrr/cegUs0t+0/Lw==", + "dependencies": { + "@octokit/oauth-methods": "^4.1.0", + "@octokit/request": "^8.3.1", + "@octokit/types": "^13.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/endpoint": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz", + "integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==", + "dependencies": { + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" + }, + "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/request": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz", + "integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==", + "dependencies": { + "@octokit/endpoint": "^9.0.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/request-error": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz", + "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==", + "dependencies": { + "@octokit/types": "^13.1.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/types": { + "version": "13.6.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.1.tgz", + "integrity": "sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, + "node_modules/@octokit/auth-oauth-user": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-4.1.0.tgz", + "integrity": "sha512-FrEp8mtFuS/BrJyjpur+4GARteUCrPeR/tZJzD8YourzoVhRics7u7we/aDcKv+yywRNwNi/P4fRi631rG/OyQ==", + "dependencies": { + "@octokit/auth-oauth-device": "^6.1.0", + "@octokit/oauth-methods": "^4.1.0", + "@octokit/request": "^8.3.1", + "@octokit/types": "^13.0.0", + "btoa-lite": "^1.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/endpoint": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz", + "integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==", + "dependencies": { + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" + }, + "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/request": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz", + "integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==", + "dependencies": { + "@octokit/endpoint": "^9.0.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/request-error": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz", + "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==", + "dependencies": { + "@octokit/types": "^13.1.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/types": { + "version": "13.6.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.1.tgz", + "integrity": "sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, "node_modules/@octokit/auth-token": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.3.tgz", @@ -9408,6 +9873,57 @@ "node": ">= 14" } }, + "node_modules/@octokit/auth-unauthenticated": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@octokit/auth-unauthenticated/-/auth-unauthenticated-5.0.1.tgz", + "integrity": "sha512-oxeWzmBFxWd+XolxKTc4zr+h3mt+yofn4r7OfoIkR/Cj/o70eEGmPsFbueyJE2iBAGpjgTnEOKM3pnuEGVmiqg==", + "dependencies": { + "@octokit/request-error": "^5.0.0", + "@octokit/types": "^12.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-unauthenticated/node_modules/@octokit/openapi-types": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", + "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==" + }, + "node_modules/@octokit/auth-unauthenticated/node_modules/@octokit/request-error": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz", + "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==", + "dependencies": { + "@octokit/types": "^13.1.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-unauthenticated/node_modules/@octokit/request-error/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" + }, + "node_modules/@octokit/auth-unauthenticated/node_modules/@octokit/request-error/node_modules/@octokit/types": { + "version": "13.6.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.1.tgz", + "integrity": "sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, + "node_modules/@octokit/auth-unauthenticated/node_modules/@octokit/types": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", + "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", + "dependencies": { + "@octokit/openapi-types": "^20.0.0" + } + }, "node_modules/@octokit/core": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.0.tgz", @@ -9454,6 +9970,189 @@ "node": ">= 14" } }, + "node_modules/@octokit/oauth-app": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@octokit/oauth-app/-/oauth-app-6.1.0.tgz", + "integrity": "sha512-nIn/8eUJ/BKUVzxUXd5vpzl1rwaVxMyYbQkNZjHrF7Vk/yu98/YDF/N2KeWO7uZ0g3b5EyiFXFkZI8rJ+DH1/g==", + "dependencies": { + "@octokit/auth-oauth-app": "^7.0.0", + "@octokit/auth-oauth-user": "^4.0.0", + "@octokit/auth-unauthenticated": "^5.0.0", + "@octokit/core": "^5.0.0", + "@octokit/oauth-authorization-url": "^6.0.2", + "@octokit/oauth-methods": "^4.0.0", + "@types/aws-lambda": "^8.10.83", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/oauth-app/node_modules/@octokit/auth-token": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", + "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/oauth-app/node_modules/@octokit/core": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.0.tgz", + "integrity": "sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==", + "dependencies": { + "@octokit/auth-token": "^4.0.0", + "@octokit/graphql": "^7.1.0", + "@octokit/request": "^8.3.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/oauth-app/node_modules/@octokit/endpoint": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz", + "integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==", + "dependencies": { + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/oauth-app/node_modules/@octokit/graphql": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.0.tgz", + "integrity": "sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==", + "dependencies": { + "@octokit/request": "^8.3.0", + "@octokit/types": "^13.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/oauth-app/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" + }, + "node_modules/@octokit/oauth-app/node_modules/@octokit/request": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz", + "integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==", + "dependencies": { + "@octokit/endpoint": "^9.0.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/oauth-app/node_modules/@octokit/request-error": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz", + "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==", + "dependencies": { + "@octokit/types": "^13.1.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/oauth-app/node_modules/@octokit/types": { + "version": "13.6.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.1.tgz", + "integrity": "sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, + "node_modules/@octokit/oauth-authorization-url": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-6.0.2.tgz", + "integrity": "sha512-CdoJukjXXxqLNK4y/VOiVzQVjibqoj/xHgInekviUJV73y/BSIcwvJ/4aNHPBPKcPWFnd4/lO9uqRV65jXhcLA==", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/oauth-methods": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-4.1.0.tgz", + "integrity": "sha512-4tuKnCRecJ6CG6gr0XcEXdZtkTDbfbnD5oaHBmLERTjTMZNi2CbfEHZxPU41xXLDG4DfKf+sonu00zvKI9NSbw==", + "dependencies": { + "@octokit/oauth-authorization-url": "^6.0.2", + "@octokit/request": "^8.3.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.0.0", + "btoa-lite": "^1.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/oauth-methods/node_modules/@octokit/endpoint": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz", + "integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==", + "dependencies": { + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/oauth-methods/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" + }, + "node_modules/@octokit/oauth-methods/node_modules/@octokit/request": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz", + "integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==", + "dependencies": { + "@octokit/endpoint": "^9.0.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/oauth-methods/node_modules/@octokit/request-error": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz", + "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==", + "dependencies": { + "@octokit/types": "^13.1.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/oauth-methods/node_modules/@octokit/types": { + "version": "13.6.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.1.tgz", + "integrity": "sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, "node_modules/@octokit/openapi-types": { "version": "17.2.0", "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-17.2.0.tgz", @@ -9591,6 +10290,59 @@ "@octokit/openapi-types": "^17.1.2" } }, + "node_modules/@octokit/webhooks": { + "version": "12.3.1", + "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-12.3.1.tgz", + "integrity": "sha512-BVwtWE3rRXB9IugmQTfKspqjNa8q+ab73ddkV9k1Zok3XbuOxJUi4lTYk5zBZDhfWb/Y2H+RO9Iggm25gsqeow==", + "dependencies": { + "@octokit/request-error": "^5.0.0", + "@octokit/webhooks-methods": "^4.1.0", + "@octokit/webhooks-types": "7.6.1", + "aggregate-error": "^3.1.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/webhooks-methods": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-4.1.0.tgz", + "integrity": "sha512-zoQyKw8h9STNPqtm28UGOYFE7O6D4Il8VJwhAtMHFt2C4L0VQT1qGKLeefUOqHNs1mNRYSadVv7x0z8U2yyeWQ==", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/webhooks-types": { + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-7.6.1.tgz", + "integrity": "sha512-S8u2cJzklBC0FgTwWVLaM8tMrDuDMVE4xiTK4EYXM9GntyvrdbSoxqDQa+Fh57CCNApyIpyeqPhhFEmHPfrXgw==" + }, + "node_modules/@octokit/webhooks/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" + }, + "node_modules/@octokit/webhooks/node_modules/@octokit/request-error": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz", + "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==", + "dependencies": { + "@octokit/types": "^13.1.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/webhooks/node_modules/@octokit/types": { + "version": "13.6.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.1.tgz", + "integrity": "sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, "node_modules/@parcel/watcher": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz", @@ -9782,17 +10534,19 @@ } }, "node_modules/@php-wasm/fs-journal": { - "version": "0.9.39", - "resolved": "https://registry.npmjs.org/@php-wasm/fs-journal/-/fs-journal-0.9.39.tgz", - "integrity": "sha512-3Dghh14h1WtGTB3Y51+EhoyHKDIBrtbkIhbt6U6DOms9/DQvQuCJ80ts/Ri2thtxTgbk2JdHMmp7gx6NPpJU/g==", - "dependencies": { - "@php-wasm/logger": "0.9.39", - "@php-wasm/node": "0.9.39", - "@php-wasm/universal": "0.9.39", - "@php-wasm/util": "0.9.39", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@php-wasm/fs-journal/-/fs-journal-1.0.2.tgz", + "integrity": "sha512-0EOQcstMJy4GGqC5cnFwGG2k7pJizI40VTTWlglxaEBgLEq0PFltCX5WrclQI6h5Ogp8hfaUHxAGr/MnDIqhVg==", + "dependencies": { + "@php-wasm/logger": "1.0.2", + "@php-wasm/node": "1.0.2", + "@php-wasm/universal": "1.0.2", + "@php-wasm/util": "1.0.2", "comlink": "^4.4.1", + "events": "3.3.0", "express": "4.19.2", "ini": "4.1.2", + "wasm-feature-detect": "1.8.0", "ws": "8.18.0", "yargs": "17.7.2" }, @@ -9810,11 +10564,11 @@ } }, "node_modules/@php-wasm/logger": { - "version": "0.9.39", - "resolved": "https://registry.npmjs.org/@php-wasm/logger/-/logger-0.9.39.tgz", - "integrity": "sha512-uTsLYBioX1yT//XGbQsXX6hrg4zKvsSGSNb4dlLdV4zgvwTVYYePyQ6zPdiMtAzn4pLJBxnnYXHnc3n2yyJrSA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@php-wasm/logger/-/logger-1.0.2.tgz", + "integrity": "sha512-P/ZZI+7Q0YeeIJtqsdeJ4baoT0Ml33UH0jMzdQ68E/BXmGUPpkuzrTDuZXC/pd0xR2GS/qrKeZEdRHd8zX/uFQ==", "dependencies": { - "@php-wasm/node-polyfills": "0.9.39" + "@php-wasm/node-polyfills": "1.0.2" }, "engines": { "node": ">=18.18.0", @@ -9822,19 +10576,21 @@ } }, "node_modules/@php-wasm/node": { - "version": "0.9.39", - "resolved": "https://registry.npmjs.org/@php-wasm/node/-/node-0.9.39.tgz", - "integrity": "sha512-pB/soBPrNiHwVop3UlDLpezvklpQNFKUIFVMQdmAulrfzSUKFC+lT/JMIHpNnQCxbZmfW7aByfO1u6sRG4tuOw==", - "dependencies": { - "@php-wasm/logger": "0.9.39", - "@php-wasm/node-polyfills": "0.9.39", - "@php-wasm/universal": "0.9.39", - "@php-wasm/util": "0.9.39", - "@wp-playground/common": "0.9.39", - "@wp-playground/wordpress": "0.9.39", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@php-wasm/node/-/node-1.0.2.tgz", + "integrity": "sha512-84uUfIaS+aS/qnNMVQO8KdBSNVlPmu3SsTTolZqkpTk37+4yRfArckjQ0J25nsmjJGoBf/tgvRAcuwCFeAaPsA==", + "dependencies": { + "@php-wasm/logger": "1.0.2", + "@php-wasm/node-polyfills": "1.0.2", + "@php-wasm/universal": "1.0.2", + "@php-wasm/util": "1.0.2", + "@wp-playground/common": "1.0.2", + "@wp-playground/wordpress": "1.0.2", "comlink": "^4.4.1", + "events": "3.3.0", "express": "4.19.2", "ini": "4.1.2", + "wasm-feature-detect": "1.8.0", "ws": "8.18.0", "yargs": "17.7.2" }, @@ -9844,9 +10600,9 @@ } }, "node_modules/@php-wasm/node-polyfills": { - "version": "0.9.39", - "resolved": "https://registry.npmjs.org/@php-wasm/node-polyfills/-/node-polyfills-0.9.39.tgz", - "integrity": "sha512-WDMIEa761NzkI4Ydp83CYGPFwOwvztavMdFDyH/omcD800QpL1JDU/kT3p7MQBJLF9z+aV4CyY84HV0N7AGzUg==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@php-wasm/node-polyfills/-/node-polyfills-1.0.2.tgz", + "integrity": "sha512-fAih/FkVdO4AkdsDd5pZY5atSzRn3usNcx4nBBAW0Vel3BQlUAFZRuu4D+K5Pn/ehUdVjnl8sEI+qWWk+gGOYQ==" }, "node_modules/@php-wasm/node/node_modules/ini": { "version": "4.1.2", @@ -9857,46 +10613,37 @@ } }, "node_modules/@php-wasm/progress": { - "version": "0.9.39", - "resolved": "https://registry.npmjs.org/@php-wasm/progress/-/progress-0.9.39.tgz", - "integrity": "sha512-8HHbrloXI98eRB2ZOr27nUSZvp7fE8dKbmMD2WUE814zXevzV+W8CrZCH3gqYV3rczP1MG4rifGVdn7QQESynA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@php-wasm/progress/-/progress-1.0.2.tgz", + "integrity": "sha512-30q6Da0kNVlzdKA+8lFvXicA+ptr8Qt5rqQ/a1ZvcehJK8S2qv2lPPDsjqUaygTRZ1nBRSYxoxeP5ygZItC6dQ==", "dependencies": { - "@php-wasm/logger": "0.9.39", - "@php-wasm/node-polyfills": "0.9.39" + "@php-wasm/logger": "1.0.2", + "@php-wasm/node-polyfills": "1.0.2" }, "engines": { "node": ">=18.18.0", "npm": ">=8.11.0" } }, - "node_modules/@php-wasm/scopes": { - "version": "0.9.39", - "resolved": "https://registry.npmjs.org/@php-wasm/scopes/-/scopes-0.9.39.tgz", - "integrity": "sha512-6TPGsHEq9EVEPU4X1smc4N5tt1CORPISS//wlmIHaoWoHdAKCdOrlfoerbt9b3oIspaaSINATSrb3y8GgIR5nw==", - "engines": { - "node": ">=16.15.1", - "npm": ">=8.11.0" - } - }, "node_modules/@php-wasm/stream-compression": { - "version": "0.9.39", - "resolved": "https://registry.npmjs.org/@php-wasm/stream-compression/-/stream-compression-0.9.39.tgz", - "integrity": "sha512-GBP40Fi8bOvHygFUNW3B7QjgzGW6rEq6SOIZ/t2kI7XyCWNQSHiAoDIu9BgeX7wzB5CD82Bp0Est6IAwYLnhNA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@php-wasm/stream-compression/-/stream-compression-1.0.2.tgz", + "integrity": "sha512-PXaOD9+bPFAca99D2GheQux/9C3byP/zMnd45Wt22lrR/1NpEF7lerOPODRfUZOV44nnrzS6bcdm6WtO6/UClA==", "dependencies": { - "@php-wasm/node-polyfills": "0.9.39", - "@php-wasm/util": "0.9.39" + "@php-wasm/node-polyfills": "1.0.2", + "@php-wasm/util": "1.0.2" } }, "node_modules/@php-wasm/universal": { - "version": "0.9.39", - "resolved": "https://registry.npmjs.org/@php-wasm/universal/-/universal-0.9.39.tgz", - "integrity": "sha512-Hu6nPLEQbK10ZXFpSJzX0pHBr9lBfi4Kdvv7wsL7l4BQzpl25ToSKNNoqWelIq7m7xN32EqMzL68gxwXH+kd/g==", - "dependencies": { - "@php-wasm/logger": "0.9.39", - "@php-wasm/node-polyfills": "0.9.39", - "@php-wasm/progress": "0.9.39", - "@php-wasm/stream-compression": "0.9.39", - "@php-wasm/util": "0.9.39", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@php-wasm/universal/-/universal-1.0.2.tgz", + "integrity": "sha512-SeKZYaWHiGfwbhLRU2pxXzDdAzG1v/EXiqCeZ+NwqG3ATdsghqTSFFLzDEiDn8n13B8ha36YiE1kWnf7xrYeOw==", + "dependencies": { + "@php-wasm/logger": "1.0.2", + "@php-wasm/node-polyfills": "1.0.2", + "@php-wasm/progress": "1.0.2", + "@php-wasm/stream-compression": "1.0.2", + "@php-wasm/util": "1.0.2", "comlink": "^4.4.1", "ini": "4.1.2" }, @@ -9914,27 +10661,28 @@ } }, "node_modules/@php-wasm/util": { - "version": "0.9.39", - "resolved": "https://registry.npmjs.org/@php-wasm/util/-/util-0.9.39.tgz", - "integrity": "sha512-pIniF3N5IMKgOIUpoBwo5djULIMG54cYkWQPAKopCPCun2T9McjJ8AetTrvYrbldueBWsNi06YeD8LTQU45HCg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@php-wasm/util/-/util-1.0.2.tgz", + "integrity": "sha512-RvEdvzk1mIVxdZuP7r/gBUUVXtBH7RgA+UjrP4paK8xN/sOe5b7DI1r+myxocHBoC0mohA3j6aNOSAtCWS4lYg==", "engines": { "node": ">=18.18.0", "npm": ">=8.11.0" } }, "node_modules/@php-wasm/web": { - "version": "0.9.39", - "resolved": "https://registry.npmjs.org/@php-wasm/web/-/web-0.9.39.tgz", - "integrity": "sha512-F7KDGoJYnYO+CfBeUtcifDLiZj6YFoRC33YUX8xmMiYCM7Y+7kz4NToBdoONRX73MtnSaZPyS9IC535d/vPx9A==", - "dependencies": { - "@php-wasm/fs-journal": "0.9.39", - "@php-wasm/logger": "0.9.39", - "@php-wasm/universal": "0.9.39", - "@php-wasm/util": "0.9.39", - "@php-wasm/web-service-worker": "0.9.39", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@php-wasm/web/-/web-1.0.2.tgz", + "integrity": "sha512-Tfov6niyU0CN7TjhovuvXin4YwAC6OpsFNKQPgcIY0/n5lbaI/QgDuFS1hhKzcYSkQIuJvF0Hj5230xRVoh74A==", + "dependencies": { + "@php-wasm/fs-journal": "1.0.2", + "@php-wasm/logger": "1.0.2", + "@php-wasm/universal": "1.0.2", + "@php-wasm/util": "1.0.2", "comlink": "^4.4.1", + "events": "3.3.0", "express": "4.19.2", "ini": "4.1.2", + "wasm-feature-detect": "1.8.0", "ws": "8.18.0", "yargs": "17.7.2" }, @@ -9943,18 +10691,6 @@ "npm": ">=8.11.0" } }, - "node_modules/@php-wasm/web-service-worker": { - "version": "0.9.39", - "resolved": "https://registry.npmjs.org/@php-wasm/web-service-worker/-/web-service-worker-0.9.39.tgz", - "integrity": "sha512-I4pBDAmzzCRmINthMyiZoKdek2dtP/1YWgX9arRK7JAPDlZ4se63EgaJItvmJiFLxQ00B4UpkF0HiMreBzSGKA==", - "dependencies": { - "@php-wasm/scopes": "0.9.39" - }, - "engines": { - "node": ">=18.18.0", - "npm": ">=8.11.0" - } - }, "node_modules/@php-wasm/web/node_modules/ini": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz", @@ -12373,6 +13109,11 @@ "integrity": "sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==", "dev": true }, + "node_modules/@types/aws-lambda": { + "version": "8.10.145", + "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.145.tgz", + "integrity": "sha512-dtByW6WiFk5W5Jfgz1VM+YPA21xMXTuSFoLYIDY0L44jDLLflVPtZkYuu3/YxpGcvjzKFBZLU+GyKjR0HOYtyw==" + }, "node_modules/@types/babel__core": { "version": "7.20.0", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", @@ -12433,6 +13174,11 @@ "@types/node": "*" } }, + "node_modules/@types/btoa-lite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/btoa-lite/-/btoa-lite-1.0.2.tgz", + "integrity": "sha512-ZYbcE2x7yrvNFJiU7xJGrpF/ihpkM7zKgw8bha3LNJSesvTtUNxbpzaT7WXBIryf6jovisrxTBvymxMeLLj1Mg==" + }, "node_modules/@types/chai": { "version": "4.3.5", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", @@ -12687,6 +13433,14 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, + "node_modules/@types/jsonwebtoken": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.7.tgz", + "integrity": "sha512-ugo316mmTYBl2g81zDFnZ7cfxlut3o+/EQdaP7J8QN2kY6lJ22hmQYCK5EHcJHbrW+dkCGSCPgbG8JtYj6qSrg==", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/mdast": { "version": "3.0.11", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.11.tgz", @@ -18049,22 +18803,36 @@ "link": true }, "node_modules/@wp-playground/blueprints": { - "version": "0.9.39", - "resolved": "https://registry.npmjs.org/@wp-playground/blueprints/-/blueprints-0.9.39.tgz", - "integrity": "sha512-aIauzNdkYV7YCJSVFrLh3TjM+SqNgg9SElM4/2zUIwLvBa0z7KXReZps51Lx39BdYMu9uZ79Eo9u13hk1Te26A==", - "dependencies": { - "@php-wasm/logger": "0.9.39", - "@php-wasm/node": "0.9.39", - "@php-wasm/node-polyfills": "0.9.39", - "@php-wasm/progress": "0.9.39", - "@php-wasm/scopes": "0.9.39", - "@php-wasm/universal": "0.9.39", - "@php-wasm/util": "0.9.39", - "@wp-playground/common": "0.9.39", - "@wp-playground/wordpress": "0.9.39", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@wp-playground/blueprints/-/blueprints-1.0.2.tgz", + "integrity": "sha512-7ooXMZwGafU+rCUU6wS9Xmdra9vTybgneQt0Vb7ZGmOqbtHGiB3yvZm/rJ7bdRF0jhGkOyYbDoG3xZBt+3JQsQ==", + "dependencies": { + "@php-wasm/logger": "1.0.2", + "@php-wasm/node": "1.0.2", + "@php-wasm/node-polyfills": "1.0.2", + "@php-wasm/progress": "1.0.2", + "@php-wasm/universal": "1.0.2", + "@php-wasm/util": "1.0.2", + "@wp-playground/common": "1.0.2", + "@wp-playground/storage": "1.0.2", + "@wp-playground/wordpress": "1.0.2", "ajv": "8.12.0", + "async-lock": "1.4.1", + "buffer": "6.0.3", + "clean-git-ref": "2.0.1", "comlink": "^4.4.1", - "ini": "4.1.2" + "crc-32": "1.2.2", + "diff3": "0.0.4", + "ignore": "5.2.4", + "ini": "4.1.2", + "minimisted": "2.0.1", + "octokit": "3.1.1", + "pako": "1.0.10", + "pify": "5.0.0", + "readable-stream": "3.6.2", + "sha.js": "2.4.11", + "simple-get": "4.0.1", + "wasm-feature-detect": "1.8.0" }, "engines": { "node": ">=18.18.0", @@ -18100,12 +18868,12 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/@wp-playground/common": { - "version": "0.9.39", - "resolved": "https://registry.npmjs.org/@wp-playground/common/-/common-0.9.39.tgz", - "integrity": "sha512-Z7Co6aNnMDL2/YrAhw16AzY0jRohswmuY8rUsrm+HWrV+chMvwtJhpNXN0IPP7COW5wOU+EGo3iPCADEtKbXjQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@wp-playground/common/-/common-1.0.2.tgz", + "integrity": "sha512-iAeiVBKVDdtj7w30GCd6jM+OgFYvTZxhAmlBQHU4dPmcfTaB0pK+hFYBMw7wbG2KWR5stH8+RcbWB/oMC432pw==", "dependencies": { - "@php-wasm/universal": "0.9.39", - "@php-wasm/util": "0.9.39", + "@php-wasm/universal": "1.0.2", + "@php-wasm/util": "1.0.2", "comlink": "^4.4.1", "ini": "4.1.2" }, @@ -18126,18 +18894,71 @@ "resolved": "packages/interactive-code-block", "link": true }, + "node_modules/@wp-playground/storage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@wp-playground/storage/-/storage-1.0.2.tgz", + "integrity": "sha512-+pJdt14Gzd10qCqSoaNECmyvUjUAn+wml4NUMG/mZvUyGfjM6aNolwVnxgYXOawlZHk3wVHh2VZ9W8QmXB/yjw==", + "dependencies": { + "@php-wasm/universal": "1.0.2", + "@php-wasm/util": "1.0.2", + "@php-wasm/web": "1.0.2", + "async-lock": "^1.4.1", + "buffer": "6.0.3", + "clean-git-ref": "^2.0.1", + "comlink": "^4.4.1", + "crc-32": "^1.2.0", + "diff3": "0.0.3", + "events": "3.3.0", + "express": "4.19.2", + "ignore": "^5.1.4", + "ini": "4.1.2", + "minimisted": "^2.0.0", + "octokit": "3.1.1", + "pako": "^1.0.10", + "pify": "^4.0.1", + "readable-stream": "^3.4.0", + "sha.js": "^2.4.9", + "simple-get": "^4.0.1", + "wasm-feature-detect": "1.8.0", + "ws": "8.18.0", + "yargs": "17.7.2" + } + }, + "node_modules/@wp-playground/storage/node_modules/diff3": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/diff3/-/diff3-0.0.3.tgz", + "integrity": "sha512-iSq8ngPOt0K53A6eVr4d5Kn6GNrM2nQZtC740pzIriHtn4pOQ2lyzEXQMBeVcWERN0ye7fhBsk9PbLLQOnUx/g==" + }, + "node_modules/@wp-playground/storage/node_modules/ini": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz", + "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@wp-playground/storage/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "engines": { + "node": ">=6" + } + }, "node_modules/@wp-playground/wordpress": { - "version": "0.9.39", - "resolved": "https://registry.npmjs.org/@wp-playground/wordpress/-/wordpress-0.9.39.tgz", - "integrity": "sha512-SVvH6P6nD3+9YZyLtJFGf2VcyitLnUVJxoqLyT4J/jX94RKIb1woQrXRz32KdR9yQ6MxnqsaYytR7an2356abA==", - "dependencies": { - "@php-wasm/node": "0.9.39", - "@php-wasm/universal": "0.9.39", - "@php-wasm/util": "0.9.39", - "@wp-playground/common": "0.9.39", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@wp-playground/wordpress/-/wordpress-1.0.2.tgz", + "integrity": "sha512-jX1eb+FCGTd2B+IwqjZ/bUXVtSGNBX29bzZX8SoqfUIrqA5+jsdSFlFizM0zejitUHHMuX4dP7KkEOjnt2KtWA==", + "dependencies": { + "@php-wasm/node": "1.0.2", + "@php-wasm/universal": "1.0.2", + "@php-wasm/util": "1.0.2", + "@wp-playground/common": "1.0.2", "comlink": "^4.4.1", + "events": "3.3.0", "express": "4.19.2", "ini": "4.1.2", + "wasm-feature-detect": "1.8.0", "ws": "8.18.0", "yargs": "17.7.2" }, @@ -18341,7 +19162,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -18792,6 +19612,11 @@ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", "dev": true }, + "node_modules/async-lock": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.1.tgz", + "integrity": "sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==" + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -19252,7 +20077,6 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, "funding": [ { "type": "github", @@ -19304,8 +20128,7 @@ "node_modules/before-after-hook": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", - "dev": true + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" }, "node_modules/big-integer": { "version": "1.6.51", @@ -19518,6 +20341,11 @@ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true }, + "node_modules/bottleneck": { + "version": "2.19.5", + "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", + "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==" + }, "node_modules/boxen": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz", @@ -19786,6 +20614,11 @@ "node-int64": "^0.4.0" } }, + "node_modules/btoa-lite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", + "integrity": "sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==" + }, "node_modules/buble": { "version": "0.19.6", "resolved": "https://registry.npmjs.org/buble/-/buble-0.19.6.tgz", @@ -19913,7 +20746,6 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, "funding": [ { "type": "github", @@ -19942,6 +20774,11 @@ "node": "*" } }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -20836,11 +21673,15 @@ "node": ">=0.10.0" } }, + "node_modules/clean-git-ref": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/clean-git-ref/-/clean-git-ref-2.0.1.tgz", + "integrity": "sha512-bLSptAy2P0s6hU4PzuIMKmMJJSE6gLXGH1cntDu7bWJUksvuM+7ReOK61mozULErYvP6a15rnYl0zFDef+pyPw==" + }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, "engines": { "node": ">=6" } @@ -21998,6 +22839,17 @@ "node": ">=10" } }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/create-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", @@ -22707,7 +23559,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, "dependencies": { "mimic-response": "^3.1.0" }, @@ -23103,8 +23954,7 @@ "node_modules/deprecation": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" }, "node_modules/dequal": { "version": "2.0.3", @@ -23246,6 +24096,11 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/diff3": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/diff3/-/diff3-0.0.4.tgz", + "integrity": "sha512-f1rQ7jXDn/3i37hdwRk9ohqcvLRH3+gEIgmA6qEM280WUOh7cOr3GXV8Jm5sPwUs46Nzl48SE8YNLGJoaLuodg==" + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -23580,6 +24435,14 @@ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -27829,7 +28692,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, "funding": [ { "type": "github", @@ -28001,7 +28863,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, "engines": { "node": ">=8" } @@ -31217,6 +32078,27 @@ "node": "*" } }, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, "node_modules/jsx-ast-utils": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", @@ -31242,6 +32124,25 @@ "integrity": "sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==", "dev": true }, + "node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, "node_modules/keytar": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.9.0.tgz", @@ -32570,18 +33471,48 @@ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", "dev": true }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, "node_modules/lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", "dev": true }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, "node_modules/lodash.ismatch": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", "dev": true }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -32594,6 +33525,11 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", @@ -34087,7 +35023,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, "engines": { "node": ">=10" }, @@ -34172,6 +35107,14 @@ "node": ">= 6" } }, + "node_modules/minimisted": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minimisted/-/minimisted-2.0.1.tgz", + "integrity": "sha512-1oPjfuLQa2caorJUM8HV8lGgWCc0qqAO1MNv/k05G4qslmsndV/5WdNZrqCiyqiz3wohia2Ij2B7w2Dr7/IyrA==", + "dependencies": { + "minimist": "^1.2.5" + } + }, "node_modules/minipass": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", @@ -34524,8 +35467,7 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/multicast-dns": { "version": "7.2.5", @@ -36022,6 +36964,251 @@ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, + "node_modules/octokit": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/octokit/-/octokit-3.1.1.tgz", + "integrity": "sha512-AKJs5XYs7iAh7bskkYpxhUIpsYZdLqjnlnqrN5s9FFZuJ/a6ATUHivGpUKDpGB/xa+LGDtG9Lu8bOCfPM84vHQ==", + "dependencies": { + "@octokit/app": "^14.0.0", + "@octokit/core": "^5.0.0", + "@octokit/oauth-app": "^6.0.0", + "@octokit/plugin-paginate-graphql": "^4.0.0", + "@octokit/plugin-paginate-rest": "^9.0.0", + "@octokit/plugin-rest-endpoint-methods": "^10.0.0", + "@octokit/plugin-retry": "^6.0.0", + "@octokit/plugin-throttling": "^8.0.0", + "@octokit/request-error": "^5.0.0", + "@octokit/types": "^12.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/octokit/node_modules/@octokit/auth-token": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", + "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", + "engines": { + "node": ">= 18" + } + }, + "node_modules/octokit/node_modules/@octokit/core": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.0.tgz", + "integrity": "sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==", + "dependencies": { + "@octokit/auth-token": "^4.0.0", + "@octokit/graphql": "^7.1.0", + "@octokit/request": "^8.3.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/octokit/node_modules/@octokit/core/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" + }, + "node_modules/octokit/node_modules/@octokit/core/node_modules/@octokit/types": { + "version": "13.6.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.1.tgz", + "integrity": "sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, + "node_modules/octokit/node_modules/@octokit/endpoint": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz", + "integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==", + "dependencies": { + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/octokit/node_modules/@octokit/endpoint/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" + }, + "node_modules/octokit/node_modules/@octokit/endpoint/node_modules/@octokit/types": { + "version": "13.6.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.1.tgz", + "integrity": "sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, + "node_modules/octokit/node_modules/@octokit/graphql": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.0.tgz", + "integrity": "sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==", + "dependencies": { + "@octokit/request": "^8.3.0", + "@octokit/types": "^13.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/octokit/node_modules/@octokit/graphql/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" + }, + "node_modules/octokit/node_modules/@octokit/graphql/node_modules/@octokit/types": { + "version": "13.6.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.1.tgz", + "integrity": "sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, + "node_modules/octokit/node_modules/@octokit/openapi-types": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", + "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==" + }, + "node_modules/octokit/node_modules/@octokit/plugin-paginate-graphql": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-graphql/-/plugin-paginate-graphql-4.0.1.tgz", + "integrity": "sha512-R8ZQNmrIKKpHWC6V2gum4x9LG2qF1RxRjo27gjQcG3j+vf2tLsEfE7I/wRWEPzYMaenr1M+qDAtNcwZve1ce1A==", + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": ">=5" + } + }, + "node_modules/octokit/node_modules/@octokit/plugin-paginate-rest": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.1.tgz", + "integrity": "sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw==", + "dependencies": { + "@octokit/types": "^12.6.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "5" + } + }, + "node_modules/octokit/node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.4.1.tgz", + "integrity": "sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==", + "dependencies": { + "@octokit/types": "^12.6.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "5" + } + }, + "node_modules/octokit/node_modules/@octokit/plugin-retry": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-6.0.1.tgz", + "integrity": "sha512-SKs+Tz9oj0g4p28qkZwl/topGcb0k0qPNX/i7vBKmDsjoeqnVfFUquqrE/O9oJY7+oLzdCtkiWSXLpLjvl6uog==", + "dependencies": { + "@octokit/request-error": "^5.0.0", + "@octokit/types": "^12.0.0", + "bottleneck": "^2.15.3" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": ">=5" + } + }, + "node_modules/octokit/node_modules/@octokit/plugin-throttling": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-8.2.0.tgz", + "integrity": "sha512-nOpWtLayKFpgqmgD0y3GqXafMFuKcA4tRPZIfu7BArd2lEZeb1988nhWhwx4aZWmjDmUfdgVf7W+Tt4AmvRmMQ==", + "dependencies": { + "@octokit/types": "^12.2.0", + "bottleneck": "^2.15.3" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "^5.0.0" + } + }, + "node_modules/octokit/node_modules/@octokit/request": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz", + "integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==", + "dependencies": { + "@octokit/endpoint": "^9.0.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/octokit/node_modules/@octokit/request-error": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz", + "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==", + "dependencies": { + "@octokit/types": "^13.1.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/octokit/node_modules/@octokit/request-error/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" + }, + "node_modules/octokit/node_modules/@octokit/request-error/node_modules/@octokit/types": { + "version": "13.6.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.1.tgz", + "integrity": "sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, + "node_modules/octokit/node_modules/@octokit/request/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" + }, + "node_modules/octokit/node_modules/@octokit/request/node_modules/@octokit/types": { + "version": "13.6.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.1.tgz", + "integrity": "sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, + "node_modules/octokit/node_modules/@octokit/types": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", + "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", + "dependencies": { + "@octokit/openapi-types": "^20.0.0" + } + }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -36877,6 +38064,11 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, + "node_modules/pako": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", + "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==" + }, "node_modules/param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -37219,7 +38411,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", - "dev": true, "engines": { "node": ">=10" }, @@ -40226,7 +41417,6 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -42123,7 +43313,6 @@ "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -42159,7 +43348,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -42170,8 +43358,7 @@ "node_modules/semver/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/send": { "version": "0.18.0", @@ -42425,6 +43612,18 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", @@ -42886,7 +44085,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true, "funding": [ { "type": "github", @@ -42906,7 +44104,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", - "dev": true, "funding": [ { "type": "github", @@ -43487,7 +44684,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, "dependencies": { "safe-buffer": "~5.2.0" } @@ -46140,11 +47336,19 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/universal-github-app-jwt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-1.2.0.tgz", + "integrity": "sha512-dncpMpnsKBk0eetwfN8D8OUHGfiDhhJ+mtsbMl+7PfW7mYjiH8LIcqRmYMtzYLgSh47HjfdBtrBwIQ/gizKR3g==", + "dependencies": { + "@types/jsonwebtoken": "^9.0.0", + "jsonwebtoken": "^9.0.2" + } + }, "node_modules/universal-user-agent": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", - "dev": true + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" }, "node_modules/universalify": { "version": "2.0.0", @@ -47279,6 +48483,11 @@ "loose-envify": "^1.0.0" } }, + "node_modules/wasm-feature-detect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/wasm-feature-detect/-/wasm-feature-detect-1.8.0.tgz", + "integrity": "sha512-zksaLKM2fVlnB5jQQDqKXXwYHLQUVH9es+5TOOHwGOVJOCeRBCiPjwSg+3tN2AdTCzjgli4jijCH290kXb/zWQ==" + }, "node_modules/watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", diff --git a/package.json b/package.json index f4a6cc77..9eb7680e 100644 --- a/package.json +++ b/package.json @@ -33,14 +33,14 @@ "@codemirror/state": "6.4.1", "@codemirror/theme-one-dark": "6.1.2", "@codemirror/view": "6.28.1", - "@php-wasm/node": "0.9.39", - "@php-wasm/progress": "0.9.39", - "@php-wasm/universal": "0.9.39", - "@php-wasm/util": "0.9.39", - "@php-wasm/web": "0.9.39", + "@php-wasm/node": "1.0.2", + "@php-wasm/progress": "1.0.2", + "@php-wasm/universal": "1.0.2", + "@php-wasm/util": "1.0.2", + "@php-wasm/web": "1.0.2", "@uiw/react-codemirror": "4.22.2", "@webcontainer/env": "1.1.1", - "@wp-playground/blueprints": "0.9.39", + "@wp-playground/blueprints": "1.0.2", "classnames": "^2.3.2", "comlink": "^4.4.1", "compressible": "2.0.18", From 2dbb1a52589a383d8f51a158f803384e8b3fabe7 Mon Sep 17 00:00:00 2001 From: Antonio Sejas Date: Wed, 16 Oct 2024 23:37:24 +0100 Subject: [PATCH 22/24] force execute php cli to always work in index mode --- packages/wp-now/src/execute-php.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/wp-now/src/execute-php.ts b/packages/wp-now/src/execute-php.ts index 1c793eb2..9688acfd 100644 --- a/packages/wp-now/src/execute-php.ts +++ b/packages/wp-now/src/execute-php.ts @@ -1,6 +1,6 @@ import { useHostFilesystem } from '@php-wasm/node'; import startWPNow from './wp-now'; -import { WPNowOptions } from './config'; +import { WPNowMode, WPNowOptions } from './config'; import { disableOutput } from './output'; import * as path from 'path'; import fs from 'fs-extra'; @@ -26,8 +26,7 @@ export async function executePHP( disableOutput(); const { php, options: wpNowOptions } = await startWPNow({ ...options, - // @TODO: Any other mode throws WASM error - // mode: WPNowMode.INDEX, + mode: WPNowMode.INDEX, }); try { From a73938c241c3b85cfc4693d38a1e8d74d9faf7cc Mon Sep 17 00:00:00 2001 From: Antonio Sejas Date: Wed, 16 Oct 2024 23:48:44 +0100 Subject: [PATCH 23/24] fix tests express compressing assets --- packages/wp-now/src/start-server.ts | 2 +- .../src/tests/mode-examples/theme-with-assets/page.html | 8 ++++++++ packages/wp-now/src/tests/wp-now.spec.ts | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 packages/wp-now/src/tests/mode-examples/theme-with-assets/page.html diff --git a/packages/wp-now/src/start-server.ts b/packages/wp-now/src/start-server.ts index 4e59b484..325570b8 100644 --- a/packages/wp-now/src/start-server.ts +++ b/packages/wp-now/src/start-server.ts @@ -43,7 +43,7 @@ export async function startServer( ); } const app = express(); - app.use(compression({ filter: shouldCompress })); + app.use(compression({ filter: shouldCompress, threshold: 0 })); app.use(addTrailingSlash('/wp-admin')); const port = await portFinder.getOpenPort(); const { php, options: wpNowOptions } = await startWPNow(options); diff --git a/packages/wp-now/src/tests/mode-examples/theme-with-assets/page.html b/packages/wp-now/src/tests/mode-examples/theme-with-assets/page.html new file mode 100644 index 00000000..ec4935ab --- /dev/null +++ b/packages/wp-now/src/tests/mode-examples/theme-with-assets/page.html @@ -0,0 +1,8 @@ + + + + + + Test Page that should be compressed + + diff --git a/packages/wp-now/src/tests/wp-now.spec.ts b/packages/wp-now/src/tests/wp-now.spec.ts index b8f116af..b61520ff 100644 --- a/packages/wp-now/src/tests/wp-now.spec.ts +++ b/packages/wp-now/src/tests/wp-now.spec.ts @@ -707,7 +707,7 @@ describe('Test starting different modes', () => { * Test that startServer compresses the text files correctly. */ test.each([ - ['html', ''], + ['html', '/wp-content/themes/theme-with-assets/page.html'], ['css', '/wp-content/themes/theme-with-assets/style.css'], [ 'javascript', From 123551999a96aeb6b9abf688314b4ce6a937e394 Mon Sep 17 00:00:00 2001 From: Antonio Sejas Date: Thu, 17 Oct 2024 05:58:30 +0100 Subject: [PATCH 24/24] add type to codeEditorMode on wp playground block package --- .../components/playground-preview/download-zipped-package.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/wordpress-playground-block/src/components/playground-preview/download-zipped-package.ts b/packages/wordpress-playground-block/src/components/playground-preview/download-zipped-package.ts index e77ae3db..362a90c5 100644 --- a/packages/wordpress-playground-block/src/components/playground-preview/download-zipped-package.ts +++ b/packages/wordpress-playground-block/src/components/playground-preview/download-zipped-package.ts @@ -6,7 +6,7 @@ import { export default async function downloadZippedPackage( client: PlaygroundClient, - codeEditorMode + codeEditorMode: string ) { const docroot = await client.documentRoot;