diff --git a/.github/actions/tool-setup/action.yml b/.github/actions/tool-setup/action.yml
index 86402e50cfc3b..39f1f2faf1824 100644
--- a/.github/actions/tool-setup/action.yml
+++ b/.github/actions/tool-setup/action.yml
@@ -89,7 +89,7 @@ runs:
- name: Setup pnpm
if: steps.versions.outputs.node-version != 'false'
- uses: pnpm/action-setup@v3.0.0
+ uses: pnpm/action-setup@v4.0.0
with:
version: ${{ steps.versions.outputs.pnpm-version }}
- name: Setup Node
diff --git a/.github/workflows/build-docker.yml b/.github/workflows/build-docker.yml
index 3a4ba63d35b78..9ed172916a650 100644
--- a/.github/workflows/build-docker.yml
+++ b/.github/workflows/build-docker.yml
@@ -88,7 +88,7 @@ jobs:
org.opencontainers.image.documentation=${{ github.server_url }}/${{ github.repository }}/blob/trunk/tools/docker/README.md
- name: Build and push Docker image
- uses: docker/build-push-action@v5
+ uses: docker/build-push-action@v6
with:
context: tools/docker
platforms: linux/amd64,linux/arm64
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6879d98e66d1d..7d5b9abffbea8 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -273,11 +273,11 @@ importers:
specifier: 5.0.4
version: 5.0.4
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/js-packages/components:
dependencies:
@@ -415,11 +415,11 @@ importers:
specifier: 5.0.4
version: 5.0.4
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/js-packages/config:
devDependencies:
@@ -594,11 +594,11 @@ importers:
specifier: 5.0.4
version: 5.0.4
webpack:
- specifier: 5.76.0
- version: 5.76.0
+ specifier: 5.94.0
+ version: 5.94.0
webpack-dev-middleware:
specifier: 5.3.4
- version: 5.3.4(webpack@5.76.0)
+ version: 5.3.4(webpack@5.94.0)
projects/js-packages/eslint-changed:
dependencies:
@@ -663,11 +663,11 @@ importers:
specifier: 29.7.0
version: 29.7.0
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/js-packages/i18n-loader-webpack-plugin:
dependencies:
@@ -677,7 +677,7 @@ importers:
devDependencies:
'@wordpress/dependency-extraction-webpack-plugin':
specifier: 6.5.0
- version: 6.5.0(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 6.5.0(webpack@5.94.0(webpack-cli@4.9.1))
'@wordpress/i18n':
specifier: 5.5.0
version: 5.5.0
@@ -685,11 +685,11 @@ importers:
specifier: 29.7.0
version: 29.7.0
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/js-packages/idc:
dependencies:
@@ -818,11 +818,11 @@ importers:
specifier: 5.0.4
version: 5.0.4
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/js-packages/licensing:
dependencies:
@@ -1130,11 +1130,11 @@ importers:
specifier: 5.0.4
version: 5.0.4
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
zod:
specifier: 3.22.3
version: 3.22.3
@@ -1149,11 +1149,11 @@ importers:
specifier: 29.7.0
version: 29.7.0
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/js-packages/scan:
dependencies:
@@ -1405,7 +1405,7 @@ importers:
version: 8.2.9(storybook@8.2.9)
'@storybook/addon-webpack5-compiler-babel':
specifier: ^3.0.3
- version: 3.0.3(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 3.0.3(webpack@5.94.0(webpack-cli@4.9.1))
'@storybook/blocks':
specifier: 8.2.9
version: 8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9)
@@ -1420,7 +1420,7 @@ importers:
version: 8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9)(typescript@5.0.4)
'@storybook/react-webpack5':
specifier: 8.2.9
- version: 8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9)(typescript@5.0.4)(webpack-cli@4.9.1(webpack@5.76.0))
+ version: 8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9)(typescript@5.0.4)(webpack-cli@4.9.1(webpack@5.94.0))
'@storybook/source-loader':
specifier: 8.2.9
version: 8.2.9(storybook@8.2.9)
@@ -1459,16 +1459,16 @@ importers:
version: 2.9.2
babel-loader:
specifier: 9.1.2
- version: 9.1.2(@babel/core@7.24.7)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 9.1.2(@babel/core@7.24.7)(webpack@5.94.0(webpack-cli@4.9.1))
babel-plugin-inline-json-import:
specifier: 0.3.2
version: 0.3.2
css-loader:
specifier: 6.5.1
- version: 6.5.1(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 6.5.1(webpack@5.94.0(webpack-cli@4.9.1))
esbuild-loader:
specifier: 3.0.1
- version: 3.0.1(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 3.0.1(webpack@5.94.0(webpack-cli@4.9.1))
jest:
specifier: 29.7.0
version: 29.7.0
@@ -1480,7 +1480,7 @@ importers:
version: 8.4.31
postcss-loader:
specifier: 6.2.0
- version: 6.2.0(postcss@8.4.31)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 6.2.0(postcss@8.4.31)(webpack@5.94.0(webpack-cli@4.9.1))
react:
specifier: 18.3.1
version: 18.3.1
@@ -1498,7 +1498,7 @@ importers:
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
storybook:
specifier: 8.2.9
version: 8.2.9
@@ -1507,7 +1507,7 @@ importers:
version: 5.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
style-loader:
specifier: 2.0.0
- version: 2.0.0(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 2.0.0(webpack@5.94.0(webpack-cli@4.9.1))
ts-dedent:
specifier: 2.2.0
version: 2.2.0
@@ -1515,11 +1515,11 @@ importers:
specifier: 5.0.4
version: 5.0.4
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/js-packages/svelte-data-sync-client:
devDependencies:
@@ -1545,11 +1545,11 @@ importers:
specifier: 5.0.4
version: 5.0.4
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
zod:
specifier: 3.22.3
version: 3.22.3
@@ -1578,11 +1578,11 @@ importers:
specifier: 5.0.4
version: 5.0.4
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/js-packages/webpack-config:
dependencies:
@@ -1600,7 +1600,7 @@ importers:
version: link:../i18n-loader-webpack-plugin
'@automattic/webpack-rtl-plugin':
specifier: 6.0.0
- version: 6.0.0(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 6.0.0(webpack@5.94.0(webpack-cli@4.9.1))
'@babel/compat-data':
specifier: 7.24.7
version: 7.24.7
@@ -1621,37 +1621,37 @@ importers:
version: 7.24.7(@babel/core@7.24.7)
'@cerner/duplicate-package-checker-webpack-plugin':
specifier: 2.3.0
- version: 2.3.0(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 2.3.0(webpack@5.94.0(webpack-cli@4.9.1))
'@wordpress/browserslist-config':
specifier: 6.5.0
version: 6.5.0
'@wordpress/dependency-extraction-webpack-plugin':
specifier: 6.5.0
- version: 6.5.0(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 6.5.0(webpack@5.94.0(webpack-cli@4.9.1))
babel-loader:
specifier: 9.1.2
- version: 9.1.2(@babel/core@7.24.7)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 9.1.2(@babel/core@7.24.7)(webpack@5.94.0(webpack-cli@4.9.1))
browserslist:
specifier: 4.23.1
version: 4.23.1
css-loader:
specifier: 6.5.1
- version: 6.5.1(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 6.5.1(webpack@5.94.0(webpack-cli@4.9.1))
css-minimizer-webpack-plugin:
specifier: 5.0.1
- version: 5.0.1(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 5.0.1(webpack@5.94.0(webpack-cli@4.9.1))
fork-ts-checker-webpack-plugin:
specifier: 9.0.2
- version: 9.0.2(typescript@5.0.4)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 9.0.2(typescript@5.0.4)(webpack@5.94.0(webpack-cli@4.9.1))
mini-css-extract-plugin:
specifier: 2.4.5
- version: 2.4.5(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 2.4.5(webpack@5.94.0(webpack-cli@4.9.1))
terser-webpack-plugin:
specifier: 5.3.3
- version: 5.3.3(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 5.3.3(webpack@5.94.0(webpack-cli@4.9.1))
thread-loader:
specifier: 3.0.4
- version: 3.0.4(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 3.0.4(webpack@5.94.0(webpack-cli@4.9.1))
devDependencies:
'@babel/core':
specifier: 7.24.7
@@ -1663,11 +1663,11 @@ importers:
specifier: 5.0.4
version: 5.0.4
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/packages/admin-ui: {}
@@ -1693,11 +1693,11 @@ importers:
specifier: 1.8.2
version: 1.8.2
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/packages/backup:
dependencies:
@@ -1785,13 +1785,13 @@ importers:
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/packages/blaze:
dependencies:
@@ -1855,13 +1855,13 @@ importers:
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/packages/boost-core: {}
@@ -1885,13 +1885,13 @@ importers:
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/packages/chatbot: {}
@@ -1914,7 +1914,7 @@ importers:
version: 6.5.0
'@wordpress/dependency-extraction-webpack-plugin':
specifier: 6.5.0
- version: 6.5.0(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 6.5.0(webpack@5.94.0(webpack-cli@4.9.1))
autoprefixer:
specifier: 10.4.14
version: 10.4.14(postcss@8.4.31)
@@ -1929,19 +1929,19 @@ importers:
version: 8.4.31
postcss-loader:
specifier: 6.2.0
- version: 6.2.0(postcss@8.4.31)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 6.2.0(postcss@8.4.31)(webpack@5.94.0(webpack-cli@4.9.1))
sass:
specifier: 1.64.1
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/packages/connection:
dependencies:
@@ -1984,13 +1984,13 @@ importers:
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/packages/explat:
dependencies:
@@ -2035,11 +2035,11 @@ importers:
specifier: 5.0.4
version: 5.0.4
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/packages/forms:
dependencies:
@@ -2084,7 +2084,7 @@ importers:
version: 2.1.1
copy-webpack-plugin:
specifier: 11.0.0
- version: 11.0.0(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 11.0.0(webpack@5.94.0(webpack-cli@4.9.1))
email-validator:
specifier: 2.0.4
version: 2.0.4
@@ -2116,11 +2116,11 @@ importers:
specifier: 7.5.2
version: 7.5.2
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
optionalDependencies:
react:
specifier: 18.3.1
@@ -2188,10 +2188,10 @@ importers:
version: 8.4.31
postcss-loader:
specifier: 6.2.0
- version: 6.2.0(postcss@8.4.31)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 6.2.0(postcss@8.4.31)(webpack@5.94.0(webpack-cli@4.9.1))
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
typescript:
specifier: 5.0.4
version: 5.0.4
@@ -2341,16 +2341,16 @@ importers:
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
typescript:
specifier: ^5.0.4
version: 5.0.4
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/packages/jitm:
devDependencies:
@@ -2365,13 +2365,13 @@ importers:
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/packages/masterbar:
dependencies:
@@ -2402,7 +2402,7 @@ importers:
version: 6.5.0
'@wordpress/dependency-extraction-webpack-plugin':
specifier: 6.5.0
- version: 6.5.0(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 6.5.0(webpack@5.94.0(webpack-cli@4.9.1))
autoprefixer:
specifier: 10.4.14
version: 10.4.14(postcss@8.4.31)
@@ -2417,19 +2417,19 @@ importers:
version: 8.4.31
postcss-loader:
specifier: 6.2.0
- version: 6.2.0(postcss@8.4.31)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 6.2.0(postcss@8.4.31)(webpack@5.94.0(webpack-cli@4.9.1))
sass:
specifier: 1.64.1
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/packages/my-jetpack:
dependencies:
@@ -2559,7 +2559,7 @@ importers:
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
storybook:
specifier: 8.2.9
version: 8.2.9(@babel/preset-env@7.24.7(@babel/core@7.24.7))
@@ -2567,11 +2567,11 @@ importers:
specifier: 5.0.4
version: 5.0.4
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/packages/plans: {}
@@ -2585,7 +2585,7 @@ importers:
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
tslib:
specifier: 2.5.0
version: 2.5.0
@@ -2593,11 +2593,11 @@ importers:
specifier: 5.0.4
version: 5.0.4
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/packages/protect-models: {}
@@ -2619,11 +2619,11 @@ importers:
specifier: 7.6.0
version: 7.6.0
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/packages/search:
dependencies:
@@ -2759,7 +2759,7 @@ importers:
version: 6.5.0
'@wordpress/dependency-extraction-webpack-plugin':
specifier: 6.5.0
- version: 6.5.0(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 6.5.0(webpack@5.94.0(webpack-cli@4.9.1))
autoprefixer:
specifier: 10.4.14
version: 10.4.14(postcss@8.4.31)
@@ -2786,7 +2786,7 @@ importers:
version: 12.1.7(postcss@8.4.31)
postcss-loader:
specifier: 6.2.0
- version: 6.2.0(postcss@8.4.31)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 6.2.0(postcss@8.4.31)(webpack@5.94.0(webpack-cli@4.9.1))
prettier:
specifier: npm:wp-prettier@3.0.3
version: wp-prettier@3.0.3
@@ -2795,16 +2795,16 @@ importers:
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
size-limit:
specifier: 11.1.4
version: 11.1.4(@size-limit/preset-app@11.1.4)
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/packages/stats-admin: {}
@@ -2956,7 +2956,7 @@ importers:
version: 10.4.14(postcss@8.4.31)
copy-webpack-plugin:
specifier: 11.0.0
- version: 11.0.0(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 11.0.0(webpack@5.94.0(webpack-cli@4.9.1))
jest:
specifier: 29.7.0
version: 29.7.0
@@ -2971,7 +2971,7 @@ importers:
version: 12.1.7(postcss@8.4.31)
postcss-loader:
specifier: 6.2.0
- version: 6.2.0(postcss@8.4.31)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 6.2.0(postcss@8.4.31)(webpack@5.94.0(webpack-cli@4.9.1))
require-from-string:
specifier: 2.0.2
version: 2.0.2
@@ -2980,7 +2980,7 @@ importers:
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
storybook:
specifier: 8.2.9
version: 8.2.9
@@ -2988,11 +2988,11 @@ importers:
specifier: 5.0.4
version: 5.0.4
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/packages/wordads:
dependencies:
@@ -3116,7 +3116,7 @@ importers:
version: 6.5.0
'@wordpress/dependency-extraction-webpack-plugin':
specifier: 6.5.0
- version: 6.5.0(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 6.5.0(webpack@5.94.0(webpack-cli@4.9.1))
babel-jest:
specifier: 29.4.3
version: 29.4.3(@babel/core@7.24.7)
@@ -3140,13 +3140,13 @@ importers:
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/packages/wp-js-data-sync: {}
@@ -3206,13 +3206,13 @@ importers:
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/plugins/automattic-for-agencies-client:
dependencies:
@@ -3291,13 +3291,13 @@ importers:
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/plugins/automattic-for-agencies-client/tests/e2e:
devDependencies:
@@ -3348,7 +3348,7 @@ importers:
version: 2.1.1
copy-webpack-plugin:
specifier: 11.0.0
- version: 11.0.0(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 11.0.0(webpack@5.94.0(webpack-cli@4.9.1))
history:
specifier: 5.3.0
version: 5.3.0
@@ -3436,7 +3436,7 @@ importers:
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
storybook:
specifier: 8.2.9
version: 8.2.9(@babel/preset-env@7.24.7(@babel/core@7.24.7))
@@ -3447,11 +3447,11 @@ importers:
specifier: 5.0.4
version: 5.0.4
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/plugins/boost/tests/e2e:
devDependencies:
@@ -3536,13 +3536,13 @@ importers:
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/plugins/classic-theme-helper-plugin/tests/e2e:
devDependencies:
@@ -3645,7 +3645,7 @@ importers:
version: 29.3.1(@babel/core@7.24.7)
css-loader:
specifier: 6.5.1
- version: 6.5.1(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 6.5.1(webpack@5.94.0(webpack-cli@4.9.1))
glob:
specifier: 10.4.1
version: 10.4.1
@@ -3660,16 +3660,16 @@ importers:
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
typescript:
specifier: 5.0.4
version: 5.0.4
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/plugins/inspect:
dependencies:
@@ -3856,7 +3856,7 @@ importers:
version: 0.4.1
copy-webpack-plugin:
specifier: 11.0.0
- version: 11.0.0(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 11.0.0(webpack@5.94.0(webpack-cli@4.9.1))
crypto-js:
specifier: 4.2.0
version: 4.2.0
@@ -3939,11 +3939,11 @@ importers:
specifier: 2.3.0
version: 2.3.0
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
optionalDependencies:
react:
specifier: 18.3.1
@@ -4074,13 +4074,13 @@ importers:
version: 8.4.31
postcss-loader:
specifier: 6.2.0
- version: 6.2.0(postcss@8.4.31)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 6.2.0(postcss@8.4.31)(webpack@5.94.0(webpack-cli@4.9.1))
regenerator-runtime:
specifier: 0.13.9
version: 0.13.9
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
typescript:
specifier: 5.0.4
version: 5.0.4
@@ -4168,13 +4168,13 @@ importers:
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/plugins/migration/tests/e2e:
devDependencies:
@@ -4282,16 +4282,16 @@ importers:
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
typescript:
specifier: 5.0.4
version: 5.0.4
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/plugins/search: {}
@@ -4417,19 +4417,19 @@ importers:
version: 12.1.7(postcss@8.4.31)
postcss-loader:
specifier: 6.2.0
- version: 6.2.0(postcss@8.4.31)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 6.2.0(postcss@8.4.31)(webpack@5.94.0(webpack-cli@4.9.1))
sass:
specifier: 1.64.1
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/plugins/social/tests/e2e:
devDependencies:
@@ -4514,13 +4514,13 @@ importers:
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/plugins/starter-plugin/tests/e2e:
devDependencies:
@@ -4619,13 +4619,13 @@ importers:
version: 1.64.1
sass-loader:
specifier: 12.4.0
- version: 12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1))
+ version: 12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1))
webpack:
- specifier: 5.76.0
- version: 5.76.0(webpack-cli@4.9.1)
+ specifier: 5.94.0
+ version: 5.94.0(webpack-cli@4.9.1)
webpack-cli:
specifier: 4.9.1
- version: 4.9.1(webpack@5.76.0)
+ version: 4.9.1(webpack@5.94.0)
projects/plugins/videopress/tests/e2e:
devDependencies:
@@ -7324,12 +7324,6 @@ packages:
'@types/escodegen@0.0.6':
resolution: {integrity: sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig==}
- '@types/eslint-scope@3.7.7':
- resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
-
- '@types/eslint@9.6.0':
- resolution: {integrity: sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==}
-
'@types/estree@0.0.39':
resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==}
@@ -7637,50 +7631,50 @@ packages:
resolution: {integrity: sha512-S4cL7Taa9yb5qbv+6wLgiKVZ03Qfkc4jGRuiUQMQ8HGBD5pcNRnHeYM33zBvJE4/zJGjJJ8GScB+WmTsn9mORw==}
hasBin: true
- '@webassemblyjs/ast@1.11.1':
- resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==}
+ '@webassemblyjs/ast@1.12.1':
+ resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==}
- '@webassemblyjs/floating-point-hex-parser@1.11.1':
- resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==}
+ '@webassemblyjs/floating-point-hex-parser@1.11.6':
+ resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==}
- '@webassemblyjs/helper-api-error@1.11.1':
- resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==}
+ '@webassemblyjs/helper-api-error@1.11.6':
+ resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==}
- '@webassemblyjs/helper-buffer@1.11.1':
- resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==}
+ '@webassemblyjs/helper-buffer@1.12.1':
+ resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==}
- '@webassemblyjs/helper-numbers@1.11.1':
- resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==}
+ '@webassemblyjs/helper-numbers@1.11.6':
+ resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==}
- '@webassemblyjs/helper-wasm-bytecode@1.11.1':
- resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==}
+ '@webassemblyjs/helper-wasm-bytecode@1.11.6':
+ resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==}
- '@webassemblyjs/helper-wasm-section@1.11.1':
- resolution: {integrity: sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==}
+ '@webassemblyjs/helper-wasm-section@1.12.1':
+ resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==}
- '@webassemblyjs/ieee754@1.11.1':
- resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==}
+ '@webassemblyjs/ieee754@1.11.6':
+ resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==}
- '@webassemblyjs/leb128@1.11.1':
- resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==}
+ '@webassemblyjs/leb128@1.11.6':
+ resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==}
- '@webassemblyjs/utf8@1.11.1':
- resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==}
+ '@webassemblyjs/utf8@1.11.6':
+ resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==}
- '@webassemblyjs/wasm-edit@1.11.1':
- resolution: {integrity: sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==}
+ '@webassemblyjs/wasm-edit@1.12.1':
+ resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==}
- '@webassemblyjs/wasm-gen@1.11.1':
- resolution: {integrity: sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==}
+ '@webassemblyjs/wasm-gen@1.12.1':
+ resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==}
- '@webassemblyjs/wasm-opt@1.11.1':
- resolution: {integrity: sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==}
+ '@webassemblyjs/wasm-opt@1.12.1':
+ resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==}
- '@webassemblyjs/wasm-parser@1.11.1':
- resolution: {integrity: sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==}
+ '@webassemblyjs/wasm-parser@1.12.1':
+ resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==}
- '@webassemblyjs/wast-printer@1.11.1':
- resolution: {integrity: sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==}
+ '@webassemblyjs/wast-printer@1.12.1':
+ resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==}
'@webpack-cli/configtest@1.2.0':
resolution: {integrity: sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==}
@@ -8115,8 +8109,8 @@ packages:
acorn-globals@7.0.1:
resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
- acorn-import-assertions@1.9.0:
- resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==}
+ acorn-import-attributes@1.9.5:
+ resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==}
peerDependencies:
acorn: ^8
@@ -9473,9 +9467,6 @@ packages:
resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==}
engines: {node: '>= 0.4'}
- es-module-lexer@0.9.3:
- resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==}
-
es-module-lexer@1.5.4:
resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==}
@@ -13594,6 +13585,22 @@ packages:
resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==}
engines: {node: '>=14.16'}
+ terser-webpack-plugin@5.3.10:
+ resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==}
+ engines: {node: '>= 10.13.0'}
+ peerDependencies:
+ '@swc/core': '*'
+ esbuild: '*'
+ uglify-js: '*'
+ webpack: ^5.1.0
+ peerDependenciesMeta:
+ '@swc/core':
+ optional: true
+ esbuild:
+ optional: true
+ uglify-js:
+ optional: true
+
terser-webpack-plugin@5.3.3:
resolution: {integrity: sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==}
engines: {node: '>= 10.13.0'}
@@ -14124,8 +14131,8 @@ packages:
webpack-virtual-modules@0.6.2:
resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
- webpack@5.76.0:
- resolution: {integrity: sha512-l5sOdYBDunyf72HW8dF23rFtWq/7Zgvt/9ftMof71E/yUb1YLOBmTgA2K4vQthB3kotMrSj609txVE0dnr2fjA==}
+ webpack@5.94.0:
+ resolution: {integrity: sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==}
engines: {node: '>=10.13.0'}
hasBin: true
peerDependencies:
@@ -14528,10 +14535,10 @@ snapshots:
'@automattic/viewport@1.0.0': {}
- '@automattic/webpack-rtl-plugin@6.0.0(webpack@5.76.0(webpack-cli@4.9.1))':
+ '@automattic/webpack-rtl-plugin@6.0.0(webpack@5.94.0(webpack-cli@4.9.1))':
dependencies:
rtlcss: 3.5.0
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
'@babel/code-frame@7.24.7':
dependencies:
@@ -15425,13 +15432,13 @@ snapshots:
'@bcoe/v8-coverage@0.2.3': {}
- '@cerner/duplicate-package-checker-webpack-plugin@2.3.0(webpack@5.76.0(webpack-cli@4.9.1))':
+ '@cerner/duplicate-package-checker-webpack-plugin@2.3.0(webpack@5.94.0(webpack-cli@4.9.1))':
dependencies:
chalk: 4.1.2
find-root: 1.1.0
lodash.groupby: 4.6.0
semver: 7.5.2
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
'@colors/colors@1.6.0': {}
@@ -16859,10 +16866,10 @@ snapshots:
memoizerific: 1.11.3
storybook: 8.2.9
- '@storybook/addon-webpack5-compiler-babel@3.0.3(webpack@5.76.0(webpack-cli@4.9.1))':
+ '@storybook/addon-webpack5-compiler-babel@3.0.3(webpack@5.94.0(webpack-cli@4.9.1))':
dependencies:
'@babel/core': 7.24.7
- babel-loader: 9.1.3(@babel/core@7.24.7)(webpack@5.76.0(webpack-cli@4.9.1))
+ babel-loader: 9.1.3(@babel/core@7.24.7)(webpack@5.94.0(webpack-cli@4.9.1))
transitivePeerDependencies:
- supports-color
- webpack
@@ -16888,7 +16895,7 @@ snapshots:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- '@storybook/builder-webpack5@8.2.9(storybook@8.2.9)(typescript@5.0.4)(webpack-cli@4.9.1(webpack@5.76.0))':
+ '@storybook/builder-webpack5@8.2.9(storybook@8.2.9)(typescript@5.0.4)(webpack-cli@4.9.1(webpack@5.94.0))':
dependencies:
'@storybook/core-webpack': 8.2.9(storybook@8.2.9)
'@types/node': 18.19.44
@@ -16897,25 +16904,25 @@ snapshots:
case-sensitive-paths-webpack-plugin: 2.4.0
cjs-module-lexer: 1.3.1
constants-browserify: 1.0.0
- css-loader: 6.11.0(webpack@5.76.0(webpack-cli@4.9.1))
+ css-loader: 6.11.0(webpack@5.94.0(webpack-cli@4.9.1))
es-module-lexer: 1.5.4
express: 4.19.2
- fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.0.4)(webpack@5.76.0(webpack-cli@4.9.1))
+ fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.0.4)(webpack@5.94.0(webpack-cli@4.9.1))
fs-extra: 11.2.0
- html-webpack-plugin: 5.6.0(webpack@5.76.0(webpack-cli@4.9.1))
+ html-webpack-plugin: 5.6.0(webpack@5.94.0(webpack-cli@4.9.1))
magic-string: 0.30.11
path-browserify: 1.0.1
process: 0.11.10
semver: 7.5.2
storybook: 8.2.9
- style-loader: 3.3.4(webpack@5.76.0(webpack-cli@4.9.1))
- terser-webpack-plugin: 5.3.3(webpack@5.76.0(webpack-cli@4.9.1))
+ style-loader: 3.3.4(webpack@5.94.0(webpack-cli@4.9.1))
+ terser-webpack-plugin: 5.3.3(webpack@5.94.0(webpack-cli@4.9.1))
ts-dedent: 2.2.0
url: 0.11.4
util: 0.12.5
util-deprecate: 1.0.2
- webpack: 5.76.0(webpack-cli@4.9.1)
- webpack-dev-middleware: 6.1.3(webpack@5.76.0(webpack-cli@4.9.1))
+ webpack: 5.94.0(webpack-cli@4.9.1)
+ webpack-dev-middleware: 6.1.3(webpack@5.94.0(webpack-cli@4.9.1))
webpack-hot-middleware: 2.26.1
webpack-virtual-modules: 0.6.2
optionalDependencies:
@@ -17020,11 +17027,11 @@ snapshots:
dependencies:
storybook: 8.2.9
- '@storybook/preset-react-webpack@8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9)(typescript@5.0.4)(webpack-cli@4.9.1(webpack@5.76.0))':
+ '@storybook/preset-react-webpack@8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9)(typescript@5.0.4)(webpack-cli@4.9.1(webpack@5.94.0))':
dependencies:
'@storybook/core-webpack': 8.2.9(storybook@8.2.9)
'@storybook/react': 8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9)(typescript@5.0.4)
- '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.0.4)(webpack@5.76.0(webpack-cli@4.9.1))
+ '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.0.4)(webpack@5.94.0(webpack-cli@4.9.1))
'@types/node': 18.19.44
'@types/semver': 7.5.8
find-up: 5.0.0
@@ -17037,7 +17044,7 @@ snapshots:
semver: 7.5.2
storybook: 8.2.9
tsconfig-paths: 4.2.0
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
optionalDependencies:
typescript: 5.0.4
transitivePeerDependencies:
@@ -17055,7 +17062,7 @@ snapshots:
dependencies:
storybook: 8.2.9
- '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.0.4)(webpack@5.76.0(webpack-cli@4.9.1))':
+ '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.0.4)(webpack@5.94.0(webpack-cli@4.9.1))':
dependencies:
debug: 4.3.4
endent: 2.1.0
@@ -17065,7 +17072,7 @@ snapshots:
react-docgen-typescript: 2.2.2(typescript@5.0.4)
tslib: 2.5.0
typescript: 5.0.4
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
transitivePeerDependencies:
- supports-color
@@ -17081,10 +17088,10 @@ snapshots:
react-dom: 18.3.1(react@18.3.1)
storybook: 8.2.9
- '@storybook/react-webpack5@8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9)(typescript@5.0.4)(webpack-cli@4.9.1(webpack@5.76.0))':
+ '@storybook/react-webpack5@8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9)(typescript@5.0.4)(webpack-cli@4.9.1(webpack@5.94.0))':
dependencies:
- '@storybook/builder-webpack5': 8.2.9(storybook@8.2.9)(typescript@5.0.4)(webpack-cli@4.9.1(webpack@5.76.0))
- '@storybook/preset-react-webpack': 8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9)(typescript@5.0.4)(webpack-cli@4.9.1(webpack@5.76.0))
+ '@storybook/builder-webpack5': 8.2.9(storybook@8.2.9)(typescript@5.0.4)(webpack-cli@4.9.1(webpack@5.94.0))
+ '@storybook/preset-react-webpack': 8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9)(typescript@5.0.4)(webpack-cli@4.9.1(webpack@5.94.0))
'@storybook/react': 8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9)(typescript@5.0.4)
'@types/node': 18.19.44
react: 18.3.1
@@ -17533,16 +17540,6 @@ snapshots:
'@types/escodegen@0.0.6': {}
- '@types/eslint-scope@3.7.7':
- dependencies:
- '@types/eslint': 9.6.0
- '@types/estree': 1.0.5
-
- '@types/eslint@9.6.0':
- dependencies:
- '@types/estree': 1.0.5
- '@types/json-schema': 7.0.15
-
'@types/estree@0.0.39': {}
'@types/estree@0.0.51': {}
@@ -17956,95 +17953,95 @@ snapshots:
'@vercel/ncc@0.36.1': {}
- '@webassemblyjs/ast@1.11.1':
+ '@webassemblyjs/ast@1.12.1':
dependencies:
- '@webassemblyjs/helper-numbers': 1.11.1
- '@webassemblyjs/helper-wasm-bytecode': 1.11.1
+ '@webassemblyjs/helper-numbers': 1.11.6
+ '@webassemblyjs/helper-wasm-bytecode': 1.11.6
- '@webassemblyjs/floating-point-hex-parser@1.11.1': {}
+ '@webassemblyjs/floating-point-hex-parser@1.11.6': {}
- '@webassemblyjs/helper-api-error@1.11.1': {}
+ '@webassemblyjs/helper-api-error@1.11.6': {}
- '@webassemblyjs/helper-buffer@1.11.1': {}
+ '@webassemblyjs/helper-buffer@1.12.1': {}
- '@webassemblyjs/helper-numbers@1.11.1':
+ '@webassemblyjs/helper-numbers@1.11.6':
dependencies:
- '@webassemblyjs/floating-point-hex-parser': 1.11.1
- '@webassemblyjs/helper-api-error': 1.11.1
+ '@webassemblyjs/floating-point-hex-parser': 1.11.6
+ '@webassemblyjs/helper-api-error': 1.11.6
'@xtuc/long': 4.2.2
- '@webassemblyjs/helper-wasm-bytecode@1.11.1': {}
+ '@webassemblyjs/helper-wasm-bytecode@1.11.6': {}
- '@webassemblyjs/helper-wasm-section@1.11.1':
+ '@webassemblyjs/helper-wasm-section@1.12.1':
dependencies:
- '@webassemblyjs/ast': 1.11.1
- '@webassemblyjs/helper-buffer': 1.11.1
- '@webassemblyjs/helper-wasm-bytecode': 1.11.1
- '@webassemblyjs/wasm-gen': 1.11.1
+ '@webassemblyjs/ast': 1.12.1
+ '@webassemblyjs/helper-buffer': 1.12.1
+ '@webassemblyjs/helper-wasm-bytecode': 1.11.6
+ '@webassemblyjs/wasm-gen': 1.12.1
- '@webassemblyjs/ieee754@1.11.1':
+ '@webassemblyjs/ieee754@1.11.6':
dependencies:
'@xtuc/ieee754': 1.2.0
- '@webassemblyjs/leb128@1.11.1':
+ '@webassemblyjs/leb128@1.11.6':
dependencies:
'@xtuc/long': 4.2.2
- '@webassemblyjs/utf8@1.11.1': {}
+ '@webassemblyjs/utf8@1.11.6': {}
- '@webassemblyjs/wasm-edit@1.11.1':
+ '@webassemblyjs/wasm-edit@1.12.1':
dependencies:
- '@webassemblyjs/ast': 1.11.1
- '@webassemblyjs/helper-buffer': 1.11.1
- '@webassemblyjs/helper-wasm-bytecode': 1.11.1
- '@webassemblyjs/helper-wasm-section': 1.11.1
- '@webassemblyjs/wasm-gen': 1.11.1
- '@webassemblyjs/wasm-opt': 1.11.1
- '@webassemblyjs/wasm-parser': 1.11.1
- '@webassemblyjs/wast-printer': 1.11.1
+ '@webassemblyjs/ast': 1.12.1
+ '@webassemblyjs/helper-buffer': 1.12.1
+ '@webassemblyjs/helper-wasm-bytecode': 1.11.6
+ '@webassemblyjs/helper-wasm-section': 1.12.1
+ '@webassemblyjs/wasm-gen': 1.12.1
+ '@webassemblyjs/wasm-opt': 1.12.1
+ '@webassemblyjs/wasm-parser': 1.12.1
+ '@webassemblyjs/wast-printer': 1.12.1
- '@webassemblyjs/wasm-gen@1.11.1':
+ '@webassemblyjs/wasm-gen@1.12.1':
dependencies:
- '@webassemblyjs/ast': 1.11.1
- '@webassemblyjs/helper-wasm-bytecode': 1.11.1
- '@webassemblyjs/ieee754': 1.11.1
- '@webassemblyjs/leb128': 1.11.1
- '@webassemblyjs/utf8': 1.11.1
+ '@webassemblyjs/ast': 1.12.1
+ '@webassemblyjs/helper-wasm-bytecode': 1.11.6
+ '@webassemblyjs/ieee754': 1.11.6
+ '@webassemblyjs/leb128': 1.11.6
+ '@webassemblyjs/utf8': 1.11.6
- '@webassemblyjs/wasm-opt@1.11.1':
+ '@webassemblyjs/wasm-opt@1.12.1':
dependencies:
- '@webassemblyjs/ast': 1.11.1
- '@webassemblyjs/helper-buffer': 1.11.1
- '@webassemblyjs/wasm-gen': 1.11.1
- '@webassemblyjs/wasm-parser': 1.11.1
+ '@webassemblyjs/ast': 1.12.1
+ '@webassemblyjs/helper-buffer': 1.12.1
+ '@webassemblyjs/wasm-gen': 1.12.1
+ '@webassemblyjs/wasm-parser': 1.12.1
- '@webassemblyjs/wasm-parser@1.11.1':
+ '@webassemblyjs/wasm-parser@1.12.1':
dependencies:
- '@webassemblyjs/ast': 1.11.1
- '@webassemblyjs/helper-api-error': 1.11.1
- '@webassemblyjs/helper-wasm-bytecode': 1.11.1
- '@webassemblyjs/ieee754': 1.11.1
- '@webassemblyjs/leb128': 1.11.1
- '@webassemblyjs/utf8': 1.11.1
+ '@webassemblyjs/ast': 1.12.1
+ '@webassemblyjs/helper-api-error': 1.11.6
+ '@webassemblyjs/helper-wasm-bytecode': 1.11.6
+ '@webassemblyjs/ieee754': 1.11.6
+ '@webassemblyjs/leb128': 1.11.6
+ '@webassemblyjs/utf8': 1.11.6
- '@webassemblyjs/wast-printer@1.11.1':
+ '@webassemblyjs/wast-printer@1.12.1':
dependencies:
- '@webassemblyjs/ast': 1.11.1
+ '@webassemblyjs/ast': 1.12.1
'@xtuc/long': 4.2.2
- '@webpack-cli/configtest@1.2.0(webpack-cli@4.9.1(webpack@5.76.0))(webpack@5.76.0(webpack-cli@4.9.1))':
+ '@webpack-cli/configtest@1.2.0(webpack-cli@4.9.1(webpack@5.94.0))(webpack@5.94.0(webpack-cli@4.9.1))':
dependencies:
- webpack: 5.76.0(webpack-cli@4.9.1)
- webpack-cli: 4.9.1(webpack@5.76.0)
+ webpack: 5.94.0(webpack-cli@4.9.1)
+ webpack-cli: 4.9.1(webpack@5.94.0)
- '@webpack-cli/info@1.5.0(webpack-cli@4.9.1(webpack@5.76.0))':
+ '@webpack-cli/info@1.5.0(webpack-cli@4.9.1(webpack@5.94.0))':
dependencies:
envinfo: 7.13.0
- webpack-cli: 4.9.1(webpack@5.76.0)
+ webpack-cli: 4.9.1(webpack@5.94.0)
- '@webpack-cli/serve@1.7.0(webpack-cli@4.9.1(webpack@5.76.0))':
+ '@webpack-cli/serve@1.7.0(webpack-cli@4.9.1(webpack@5.94.0))':
dependencies:
- webpack-cli: 4.9.1(webpack@5.76.0)
+ webpack-cli: 4.9.1(webpack@5.94.0)
'@wordpress/a11y@4.5.0':
dependencies:
@@ -18916,10 +18913,10 @@ snapshots:
moment: 2.29.4
moment-timezone: 0.5.45
- '@wordpress/dependency-extraction-webpack-plugin@6.5.0(webpack@5.76.0(webpack-cli@4.9.1))':
+ '@wordpress/dependency-extraction-webpack-plugin@6.5.0(webpack@5.94.0(webpack-cli@4.9.1))':
dependencies:
json2php: 0.0.7
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
'@wordpress/deprecated@4.5.0':
dependencies:
@@ -19836,7 +19833,7 @@ snapshots:
acorn: 8.12.1
acorn-walk: 8.3.3
- acorn-import-assertions@1.9.0(acorn@8.12.1):
+ acorn-import-attributes@1.9.5(acorn@8.12.1):
dependencies:
acorn: 8.12.1
@@ -20149,19 +20146,19 @@ snapshots:
transitivePeerDependencies:
- supports-color
- babel-loader@9.1.2(@babel/core@7.24.7)(webpack@5.76.0(webpack-cli@4.9.1)):
+ babel-loader@9.1.2(@babel/core@7.24.7)(webpack@5.94.0(webpack-cli@4.9.1)):
dependencies:
'@babel/core': 7.24.7
find-cache-dir: 3.3.2
schema-utils: 4.2.0
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
- babel-loader@9.1.3(@babel/core@7.24.7)(webpack@5.76.0(webpack-cli@4.9.1)):
+ babel-loader@9.1.3(@babel/core@7.24.7)(webpack@5.94.0(webpack-cli@4.9.1)):
dependencies:
'@babel/core': 7.24.7
find-cache-dir: 4.0.0
schema-utils: 4.2.0
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
babel-plugin-inline-json-import@0.3.2:
dependencies:
@@ -20797,7 +20794,7 @@ snapshots:
cookie@0.6.0: {}
- copy-webpack-plugin@11.0.0(webpack@5.76.0(webpack-cli@4.9.1)):
+ copy-webpack-plugin@11.0.0(webpack@5.94.0(webpack-cli@4.9.1)):
dependencies:
fast-glob: 3.3.2
glob-parent: 6.0.2
@@ -20805,7 +20802,7 @@ snapshots:
normalize-path: 3.0.0
schema-utils: 4.2.0
serialize-javascript: 6.0.2
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
core-js-compat@3.38.0:
dependencies:
@@ -20882,7 +20879,7 @@ snapshots:
dependencies:
postcss: 8.4.31
- css-loader@6.11.0(webpack@5.76.0(webpack-cli@4.9.1)):
+ css-loader@6.11.0(webpack@5.94.0(webpack-cli@4.9.1)):
dependencies:
icss-utils: 5.1.0(postcss@8.4.41)
postcss: 8.4.41
@@ -20893,9 +20890,9 @@ snapshots:
postcss-value-parser: 4.2.0
semver: 7.6.3
optionalDependencies:
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
- css-loader@6.5.1(webpack@5.76.0(webpack-cli@4.9.1)):
+ css-loader@6.5.1(webpack@5.94.0(webpack-cli@4.9.1)):
dependencies:
icss-utils: 5.1.0(postcss@8.4.31)
postcss: 8.4.31
@@ -20905,9 +20902,9 @@ snapshots:
postcss-modules-values: 4.0.0(postcss@8.4.31)
postcss-value-parser: 4.2.0
semver: 7.5.2
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
- css-minimizer-webpack-plugin@5.0.1(webpack@5.76.0(webpack-cli@4.9.1)):
+ css-minimizer-webpack-plugin@5.0.1(webpack@5.94.0(webpack-cli@4.9.1)):
dependencies:
'@jridgewell/trace-mapping': 0.3.25
cssnano: 6.1.2(postcss@8.4.31)
@@ -20915,7 +20912,7 @@ snapshots:
postcss: 8.4.31
schema-utils: 4.2.0
serialize-javascript: 6.0.2
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
css-select@4.3.0:
dependencies:
@@ -21427,8 +21424,6 @@ snapshots:
iterator.prototype: 1.1.2
safe-array-concat: 1.1.2
- es-module-lexer@0.9.3: {}
-
es-module-lexer@1.5.4: {}
es-object-atoms@1.0.0:
@@ -21453,12 +21448,12 @@ snapshots:
es6-error@4.1.1: {}
- esbuild-loader@3.0.1(webpack@5.76.0(webpack-cli@4.9.1)):
+ esbuild-loader@3.0.1(webpack@5.94.0(webpack-cli@4.9.1)):
dependencies:
esbuild: 0.17.19
get-tsconfig: 4.7.6
loader-utils: 2.0.4
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
webpack-sources: 1.4.3
esbuild-register@3.6.0(esbuild@0.21.5):
@@ -22121,7 +22116,7 @@ snapshots:
cross-spawn: 7.0.3
signal-exit: 4.1.0
- fork-ts-checker-webpack-plugin@8.0.0(typescript@5.0.4)(webpack@5.76.0(webpack-cli@4.9.1)):
+ fork-ts-checker-webpack-plugin@8.0.0(typescript@5.0.4)(webpack@5.94.0(webpack-cli@4.9.1)):
dependencies:
'@babel/code-frame': 7.24.7
chalk: 4.1.2
@@ -22136,9 +22131,9 @@ snapshots:
semver: 7.5.2
tapable: 2.2.1
typescript: 5.0.4
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
- fork-ts-checker-webpack-plugin@9.0.2(typescript@5.0.4)(webpack@5.76.0(webpack-cli@4.9.1)):
+ fork-ts-checker-webpack-plugin@9.0.2(typescript@5.0.4)(webpack@5.94.0(webpack-cli@4.9.1)):
dependencies:
'@babel/code-frame': 7.24.7
chalk: 4.1.2
@@ -22153,7 +22148,7 @@ snapshots:
semver: 7.5.2
tapable: 2.2.1
typescript: 5.0.4
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
form-data@4.0.0:
dependencies:
@@ -22503,7 +22498,7 @@ snapshots:
html-tags@3.3.1: {}
- html-webpack-plugin@5.6.0(webpack@5.76.0(webpack-cli@4.9.1)):
+ html-webpack-plugin@5.6.0(webpack@5.94.0(webpack-cli@4.9.1)):
dependencies:
'@types/html-minifier-terser': 6.1.0
html-minifier-terser: 6.1.0
@@ -22511,7 +22506,7 @@ snapshots:
pretty-error: 4.0.0
tapable: 2.2.1
optionalDependencies:
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
htmlparser2@3.10.1:
dependencies:
@@ -24187,10 +24182,10 @@ snapshots:
min-indent@1.0.1: {}
- mini-css-extract-plugin@2.4.5(webpack@5.76.0(webpack-cli@4.9.1)):
+ mini-css-extract-plugin@2.4.5(webpack@5.94.0(webpack-cli@4.9.1)):
dependencies:
schema-utils: 4.2.0
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
minimatch@3.1.2:
dependencies:
@@ -24757,13 +24752,13 @@ snapshots:
optionalDependencies:
postcss: 8.4.41
- postcss-loader@6.2.0(postcss@8.4.31)(webpack@5.76.0(webpack-cli@4.9.1)):
+ postcss-loader@6.2.0(postcss@8.4.31)(webpack@5.94.0(webpack-cli@4.9.1)):
dependencies:
cosmiconfig: 7.1.0
klona: 2.0.6
postcss: 8.4.31
semver: 7.5.2
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
postcss-merge-longhand@6.0.5(postcss@8.4.31):
dependencies:
@@ -25724,11 +25719,11 @@ snapshots:
safer-buffer@2.1.2: {}
- sass-loader@12.4.0(sass@1.64.1)(webpack@5.76.0(webpack-cli@4.9.1)):
+ sass-loader@12.4.0(sass@1.64.1)(webpack@5.94.0(webpack-cli@4.9.1)):
dependencies:
klona: 2.0.6
neo-async: 2.6.2
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
optionalDependencies:
sass: 1.64.1
@@ -26248,15 +26243,15 @@ snapshots:
style-inject@0.3.0: {}
- style-loader@2.0.0(webpack@5.76.0(webpack-cli@4.9.1)):
+ style-loader@2.0.0(webpack@5.94.0(webpack-cli@4.9.1)):
dependencies:
loader-utils: 2.0.4
schema-utils: 3.3.0
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
- style-loader@3.3.4(webpack@5.76.0(webpack-cli@4.9.1)):
+ style-loader@3.3.4(webpack@5.94.0(webpack-cli@4.9.1)):
dependencies:
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
stylehacks@6.1.1(postcss@8.4.31):
dependencies:
@@ -26443,23 +26438,32 @@ snapshots:
type-fest: 2.19.0
unique-string: 3.0.0
- terser-webpack-plugin@5.3.3(webpack@5.76.0(webpack-cli@4.9.1)):
+ terser-webpack-plugin@5.3.10(webpack@5.94.0(webpack-cli@4.9.1)):
dependencies:
'@jridgewell/trace-mapping': 0.3.25
jest-worker: 27.5.1
schema-utils: 3.3.0
serialize-javascript: 6.0.2
terser: 5.31.6
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
- terser-webpack-plugin@5.3.3(webpack@5.76.0):
+ terser-webpack-plugin@5.3.10(webpack@5.94.0):
dependencies:
'@jridgewell/trace-mapping': 0.3.25
jest-worker: 27.5.1
schema-utils: 3.3.0
serialize-javascript: 6.0.2
terser: 5.31.6
- webpack: 5.76.0
+ webpack: 5.94.0
+
+ terser-webpack-plugin@5.3.3(webpack@5.94.0(webpack-cli@4.9.1)):
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.25
+ jest-worker: 27.5.1
+ schema-utils: 3.3.0
+ serialize-javascript: 6.0.2
+ terser: 5.31.6
+ webpack: 5.94.0(webpack-cli@4.9.1)
terser@5.31.6:
dependencies:
@@ -26482,14 +26486,14 @@ snapshots:
text-table@0.2.0: {}
- thread-loader@3.0.4(webpack@5.76.0(webpack-cli@4.9.1)):
+ thread-loader@3.0.4(webpack@5.94.0(webpack-cli@4.9.1)):
dependencies:
json-parse-better-errors: 1.0.2
loader-runner: 4.3.0
loader-utils: 2.0.4
neo-async: 2.6.2
schema-utils: 3.3.0
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
through@2.3.8: {}
@@ -26950,12 +26954,12 @@ snapshots:
webidl-conversions@7.0.0: {}
- webpack-cli@4.9.1(webpack@5.76.0):
+ webpack-cli@4.9.1(webpack@5.94.0):
dependencies:
'@discoveryjs/json-ext': 0.5.7
- '@webpack-cli/configtest': 1.2.0(webpack-cli@4.9.1(webpack@5.76.0))(webpack@5.76.0(webpack-cli@4.9.1))
- '@webpack-cli/info': 1.5.0(webpack-cli@4.9.1(webpack@5.76.0))
- '@webpack-cli/serve': 1.7.0(webpack-cli@4.9.1(webpack@5.76.0))
+ '@webpack-cli/configtest': 1.2.0(webpack-cli@4.9.1(webpack@5.94.0))(webpack@5.94.0(webpack-cli@4.9.1))
+ '@webpack-cli/info': 1.5.0(webpack-cli@4.9.1(webpack@5.94.0))
+ '@webpack-cli/serve': 1.7.0(webpack-cli@4.9.1(webpack@5.94.0))
colorette: 2.0.20
commander: 7.2.0
execa: 5.1.1
@@ -26963,19 +26967,19 @@ snapshots:
import-local: 3.2.0
interpret: 2.2.0
rechoir: 0.7.1
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
webpack-merge: 5.10.0
- webpack-dev-middleware@5.3.4(webpack@5.76.0):
+ webpack-dev-middleware@5.3.4(webpack@5.94.0):
dependencies:
colorette: 2.0.20
memfs: 3.5.3
mime-types: 2.1.35
range-parser: 1.2.1
schema-utils: 4.2.0
- webpack: 5.76.0
+ webpack: 5.94.0
- webpack-dev-middleware@6.1.3(webpack@5.76.0(webpack-cli@4.9.1)):
+ webpack-dev-middleware@6.1.3(webpack@5.94.0(webpack-cli@4.9.1)):
dependencies:
colorette: 2.0.20
memfs: 3.5.3
@@ -26983,7 +26987,7 @@ snapshots:
range-parser: 1.2.1
schema-utils: 4.2.0
optionalDependencies:
- webpack: 5.76.0(webpack-cli@4.9.1)
+ webpack: 5.94.0(webpack-cli@4.9.1)
webpack-hot-middleware@2.26.1:
dependencies:
@@ -27006,19 +27010,18 @@ snapshots:
webpack-virtual-modules@0.6.2: {}
- webpack@5.76.0:
+ webpack@5.94.0:
dependencies:
- '@types/eslint-scope': 3.7.7
- '@types/estree': 0.0.51
- '@webassemblyjs/ast': 1.11.1
- '@webassemblyjs/wasm-edit': 1.11.1
- '@webassemblyjs/wasm-parser': 1.11.1
+ '@types/estree': 1.0.5
+ '@webassemblyjs/ast': 1.12.1
+ '@webassemblyjs/wasm-edit': 1.12.1
+ '@webassemblyjs/wasm-parser': 1.12.1
acorn: 8.12.1
- acorn-import-assertions: 1.9.0(acorn@8.12.1)
+ acorn-import-attributes: 1.9.5(acorn@8.12.1)
browserslist: 4.23.1
chrome-trace-event: 1.0.4
enhanced-resolve: 5.17.1
- es-module-lexer: 0.9.3
+ es-module-lexer: 1.5.4
eslint-scope: 5.1.1
events: 3.3.0
glob-to-regexp: 0.4.1
@@ -27029,7 +27032,7 @@ snapshots:
neo-async: 2.6.2
schema-utils: 3.3.0
tapable: 2.2.1
- terser-webpack-plugin: 5.3.3(webpack@5.76.0)
+ terser-webpack-plugin: 5.3.10(webpack@5.94.0)
watchpack: 2.4.2
webpack-sources: 3.2.3
transitivePeerDependencies:
@@ -27037,19 +27040,18 @@ snapshots:
- esbuild
- uglify-js
- webpack@5.76.0(webpack-cli@4.9.1):
+ webpack@5.94.0(webpack-cli@4.9.1):
dependencies:
- '@types/eslint-scope': 3.7.7
- '@types/estree': 0.0.51
- '@webassemblyjs/ast': 1.11.1
- '@webassemblyjs/wasm-edit': 1.11.1
- '@webassemblyjs/wasm-parser': 1.11.1
+ '@types/estree': 1.0.5
+ '@webassemblyjs/ast': 1.12.1
+ '@webassemblyjs/wasm-edit': 1.12.1
+ '@webassemblyjs/wasm-parser': 1.12.1
acorn: 8.12.1
- acorn-import-assertions: 1.9.0(acorn@8.12.1)
+ acorn-import-attributes: 1.9.5(acorn@8.12.1)
browserslist: 4.23.1
chrome-trace-event: 1.0.4
enhanced-resolve: 5.17.1
- es-module-lexer: 0.9.3
+ es-module-lexer: 1.5.4
eslint-scope: 5.1.1
events: 3.3.0
glob-to-regexp: 0.4.1
@@ -27060,11 +27062,11 @@ snapshots:
neo-async: 2.6.2
schema-utils: 3.3.0
tapable: 2.2.1
- terser-webpack-plugin: 5.3.3(webpack@5.76.0(webpack-cli@4.9.1))
+ terser-webpack-plugin: 5.3.10(webpack@5.94.0(webpack-cli@4.9.1))
watchpack: 2.4.2
webpack-sources: 3.2.3
optionalDependencies:
- webpack-cli: 4.9.1(webpack@5.76.0)
+ webpack-cli: 4.9.1(webpack@5.94.0)
transitivePeerDependencies:
- '@swc/core'
- esbuild
diff --git a/projects/js-packages/babel-plugin-replace-textdomain/CHANGELOG.md b/projects/js-packages/babel-plugin-replace-textdomain/CHANGELOG.md
index d578cc5b2b5cc..4505c316a8040 100644
--- a/projects/js-packages/babel-plugin-replace-textdomain/CHANGELOG.md
+++ b/projects/js-packages/babel-plugin-replace-textdomain/CHANGELOG.md
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [1.0.36] - 2024-08-29
+### Changed
+- Internal updates.
+
## [1.0.35] - 2024-06-12
### Changed
- Updated package dependencies. [#37796]
@@ -161,6 +165,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Initial release.
- Replace missing domains too.
+[1.0.36]: https://github.com/Automattic/babel-plugin-replace-textdomain/compare/v1.0.35...v1.0.36
[1.0.35]: https://github.com/Automattic/babel-plugin-replace-textdomain/compare/v1.0.34...v1.0.35
[1.0.34]: https://github.com/Automattic/babel-plugin-replace-textdomain/compare/v1.0.33...v1.0.34
[1.0.33]: https://github.com/Automattic/babel-plugin-replace-textdomain/compare/v1.0.32...v1.0.33
diff --git a/projects/js-packages/babel-plugin-replace-textdomain/changelog/add-more-eslint-rules b/projects/js-packages/babel-plugin-replace-textdomain/changelog/add-more-eslint-rules
deleted file mode 100644
index 2b32cb03e644c..0000000000000
--- a/projects/js-packages/babel-plugin-replace-textdomain/changelog/add-more-eslint-rules
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: fixed
-Comment: Fix new eslint sniffs. Should be no change in functionality.
-
-
diff --git a/projects/js-packages/babel-plugin-replace-textdomain/package.json b/projects/js-packages/babel-plugin-replace-textdomain/package.json
index d4bf9ca63bcf9..13ceb793c3fa9 100644
--- a/projects/js-packages/babel-plugin-replace-textdomain/package.json
+++ b/projects/js-packages/babel-plugin-replace-textdomain/package.json
@@ -1,6 +1,6 @@
{
"name": "@automattic/babel-plugin-replace-textdomain",
- "version": "1.0.35",
+ "version": "1.0.36",
"description": "A Babel plugin to replace the textdomain in gettext-style function calls.",
"homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/js-packages/babel-plugin-replace-textdomain/#readme",
"bugs": {
diff --git a/projects/js-packages/boost-score-api/CHANGELOG.md b/projects/js-packages/boost-score-api/CHANGELOG.md
index 147b05cd016e7..eec17d7c86020 100644
--- a/projects/js-packages/boost-score-api/CHANGELOG.md
+++ b/projects/js-packages/boost-score-api/CHANGELOG.md
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [0.1.37] - 2024-08-29
+### Changed
+- Updated package dependencies. [#39111]
+
## [0.1.36] - 2024-08-23
### Changed
- Updated package dependencies. [#39004]
@@ -159,6 +163,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
- Create package for the boost score bar API [#30781]
+[0.1.37]: https://github.com/Automattic/jetpack-boost-score-api/compare/v0.1.36...v0.1.37
[0.1.36]: https://github.com/Automattic/jetpack-boost-score-api/compare/v0.1.35...v0.1.36
[0.1.35]: https://github.com/Automattic/jetpack-boost-score-api/compare/v0.1.34...v0.1.35
[0.1.34]: https://github.com/Automattic/jetpack-boost-score-api/compare/v0.1.33...v0.1.34
diff --git a/projects/js-packages/boost-score-api/changelog/add-more-eslint-rules b/projects/js-packages/boost-score-api/changelog/add-more-eslint-rules
deleted file mode 100644
index 2b32cb03e644c..0000000000000
--- a/projects/js-packages/boost-score-api/changelog/add-more-eslint-rules
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: fixed
-Comment: Fix new eslint sniffs. Should be no change in functionality.
-
-
diff --git a/projects/js-packages/boost-score-api/package.json b/projects/js-packages/boost-score-api/package.json
index 24d737578eb40..a918d7ada1852 100644
--- a/projects/js-packages/boost-score-api/package.json
+++ b/projects/js-packages/boost-score-api/package.json
@@ -1,6 +1,6 @@
{
"name": "@automattic/jetpack-boost-score-api",
- "version": "0.1.36",
+ "version": "0.1.37",
"description": "A package to get the Jetpack Boost score of a site",
"homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/js-packages/boost-score-api/#readme",
"bugs": {
@@ -30,7 +30,7 @@
"jest": "29.7.0",
"jest-environment-jsdom": "29.7.0",
"typescript": "5.0.4",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
},
"exports": {
diff --git a/projects/js-packages/components/CHANGELOG.md b/projects/js-packages/components/CHANGELOG.md
index 54b054e211266..826ff78f6e3c5 100644
--- a/projects/js-packages/components/CHANGELOG.md
+++ b/projects/js-packages/components/CHANGELOG.md
@@ -2,6 +2,10 @@
### This is a list detailing changes for the Jetpack RNA Components package releases.
+## [0.55.11] - 2024-08-29
+### Changed
+- Updated package dependencies. [#39111]
+
## [0.55.10] - 2024-08-23
### Changed
- Internal updates.
@@ -1137,6 +1141,7 @@
### Changed
- Update node version requirement to 14.16.1
+[0.55.11]: https://github.com/Automattic/jetpack-components/compare/0.55.10...0.55.11
[0.55.10]: https://github.com/Automattic/jetpack-components/compare/0.55.9...0.55.10
[0.55.9]: https://github.com/Automattic/jetpack-components/compare/0.55.8...0.55.9
[0.55.8]: https://github.com/Automattic/jetpack-components/compare/0.55.7...0.55.8
diff --git a/projects/js-packages/components/changelog/add-more-eslint-rules b/projects/js-packages/components/changelog/add-more-eslint-rules
deleted file mode 100644
index 2b32cb03e644c..0000000000000
--- a/projects/js-packages/components/changelog/add-more-eslint-rules
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: fixed
-Comment: Fix new eslint sniffs. Should be no change in functionality.
-
-
diff --git a/projects/js-packages/components/package.json b/projects/js-packages/components/package.json
index 668fd321e12f5..c5b00d1f3d21b 100644
--- a/projects/js-packages/components/package.json
+++ b/projects/js-packages/components/package.json
@@ -1,6 +1,6 @@
{
"name": "@automattic/jetpack-components",
- "version": "0.55.10",
+ "version": "0.55.11",
"description": "Jetpack Components Package",
"author": "Automattic",
"license": "GPL-2.0-or-later",
@@ -60,7 +60,7 @@
"storybook": "8.2.9",
"ts-dedent": "2.2.0",
"typescript": "5.0.4",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
},
"peerDependencies": {
diff --git a/projects/js-packages/config/CHANGELOG.md b/projects/js-packages/config/CHANGELOG.md
index 375e8665338e5..7b9294c9fc851 100644
--- a/projects/js-packages/config/CHANGELOG.md
+++ b/projects/js-packages/config/CHANGELOG.md
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [0.1.25] - 2024-08-29
+### Changed
+- Internal updates.
+
## [0.1.24] - 2023-12-03
### Changed
- Updated package dependencies. [#34427]
@@ -100,6 +104,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed
- fixed and improved README
+[0.1.25]: https://github.com/Automattic/jetpack-config-js/compare/v0.1.24...v0.1.25
[0.1.24]: https://github.com/Automattic/jetpack-config-js/compare/v0.1.23...v0.1.24
[0.1.23]: https://github.com/Automattic/jetpack-config-js/compare/v0.1.22...v0.1.23
[0.1.22]: https://github.com/Automattic/jetpack-config-js/compare/v0.1.21...v0.1.22
diff --git a/projects/js-packages/config/changelog/add-more-eslint-rules b/projects/js-packages/config/changelog/add-more-eslint-rules
deleted file mode 100644
index 2b32cb03e644c..0000000000000
--- a/projects/js-packages/config/changelog/add-more-eslint-rules
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: fixed
-Comment: Fix new eslint sniffs. Should be no change in functionality.
-
-
diff --git a/projects/js-packages/config/package.json b/projects/js-packages/config/package.json
index 8df5bee780985..2f89385ef4536 100644
--- a/projects/js-packages/config/package.json
+++ b/projects/js-packages/config/package.json
@@ -1,6 +1,6 @@
{
"name": "@automattic/jetpack-config",
- "version": "0.1.24",
+ "version": "0.1.25",
"description": "Handles Jetpack global configuration shared across all packages",
"homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/js-packages/config/#readme",
"bugs": {
diff --git a/projects/js-packages/image-guide/changelog/renovate-rollup-plugin-svelte-7.x b/projects/js-packages/critical-css-gen/changelog/renovate-npm-webpack-vulnerability
similarity index 100%
rename from projects/js-packages/image-guide/changelog/renovate-rollup-plugin-svelte-7.x
rename to projects/js-packages/critical-css-gen/changelog/renovate-npm-webpack-vulnerability
diff --git a/projects/js-packages/critical-css-gen/package.json b/projects/js-packages/critical-css-gen/package.json
index ad3cdef23e65c..3f0e3fb816e7f 100644
--- a/projects/js-packages/critical-css-gen/package.json
+++ b/projects/js-packages/critical-css-gen/package.json
@@ -47,7 +47,7 @@
"source-map-js": "1.2.0",
"tslib": "2.5.0",
"typescript": "5.0.4",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-dev-middleware": "5.3.4"
},
"exports": {
diff --git a/projects/js-packages/i18n-check-webpack-plugin/CHANGELOG.md b/projects/js-packages/i18n-check-webpack-plugin/CHANGELOG.md
index 94f1a901715f2..574f5639dbc3b 100644
--- a/projects/js-packages/i18n-check-webpack-plugin/CHANGELOG.md
+++ b/projects/js-packages/i18n-check-webpack-plugin/CHANGELOG.md
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [1.1.11] - 2024-08-29
+### Changed
+- Updated package dependencies. [#39111]
+
## [1.1.10] - 2024-08-21
### Changed
- Internal updates.
@@ -214,6 +218,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
- Initial release.
+[1.1.11]: https://github.com/Automattic/i18n-check-webpack-plugin/compare/v1.1.10...v1.1.11
[1.1.10]: https://github.com/Automattic/i18n-check-webpack-plugin/compare/v1.1.9...v1.1.10
[1.1.9]: https://github.com/Automattic/i18n-check-webpack-plugin/compare/v1.1.8...v1.1.9
[1.1.8]: https://github.com/Automattic/i18n-check-webpack-plugin/compare/v1.1.7...v1.1.8
diff --git a/projects/js-packages/i18n-check-webpack-plugin/changelog/add-more-eslint-rules b/projects/js-packages/i18n-check-webpack-plugin/changelog/add-more-eslint-rules
deleted file mode 100644
index 2b32cb03e644c..0000000000000
--- a/projects/js-packages/i18n-check-webpack-plugin/changelog/add-more-eslint-rules
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: fixed
-Comment: Fix new eslint sniffs. Should be no change in functionality.
-
-
diff --git a/projects/js-packages/i18n-check-webpack-plugin/package.json b/projects/js-packages/i18n-check-webpack-plugin/package.json
index d50f0dd4c19e2..05b891c900632 100644
--- a/projects/js-packages/i18n-check-webpack-plugin/package.json
+++ b/projects/js-packages/i18n-check-webpack-plugin/package.json
@@ -1,6 +1,6 @@
{
"name": "@automattic/i18n-check-webpack-plugin",
- "version": "1.1.10",
+ "version": "1.1.11",
"description": "A Webpack plugin to check that WordPress i18n hasn't been mangled by Webpack optimizations.",
"homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/js-packages/i18n-check-webpack-plugin/#readme",
"bugs": {
@@ -23,12 +23,12 @@
"@automattic/jetpack-webpack-config": "workspace:*",
"@babel/core": "7.24.7",
"jest": "29.7.0",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
},
"peerDependencies": {
"@babel/core": "^7.0.0",
- "webpack": "^5.0.0"
+ "webpack": "^5.94.0"
},
"exports": {
".": "./src/I18nCheckPlugin.js",
diff --git a/projects/js-packages/i18n-check-webpack-plugin/tests/__snapshots__/build.test.js.snap b/projects/js-packages/i18n-check-webpack-plugin/tests/__snapshots__/build.test.js.snap
index 8b8d785c2dc7f..c01f8541166ad 100644
--- a/projects/js-packages/i18n-check-webpack-plugin/tests/__snapshots__/build.test.js.snap
+++ b/projects/js-packages/i18n-check-webpack-plugin/tests/__snapshots__/build.test.js.snap
@@ -167,16 +167,16 @@ exports[`Webpack \`options-filter\`: Webpack build stats 1`] = `
{
"errors": [
{
- "message": "string/main.js:1:77: msgid argument is not a string literal: __(t?"arr is set":"arr is not set","domain")",
+ "message": "string/main.js:1:76: msgid argument is not a string literal: __(t?"arr is set":"arr is not set","domain")",
},
{
- "message": "string/main.js:1:187: msgid argument is not a string literal: __(t?"func is set":"func is not set","domain")",
+ "message": "string/main.js:1:186: msgid argument is not a string literal: __(t?"func is set":"func is not set","domain")",
},
{
- "message": "string/main.js:1:376: msgid argument is not a string literal: __(t?"regex is set":"regex is not set","domain")",
+ "message": "string/main.js:1:374: msgid argument is not a string literal: __(t?"regex is set":"regex is not set","domain")",
},
{
- "message": "string/main.js:1:490: msgid argument is not a string literal: __(t?"string is set":"string is not set","domain")",
+ "message": "string/main.js:1:488: msgid argument is not a string literal: __(t?"string is set":"string is not set","domain")",
},
{
"message": "string/main.js: Optimization seems to have broken the following translation strings:
@@ -190,16 +190,16 @@ exports[`Webpack \`options-filter\`: Webpack build stats 1`] = `
{
"errors": [
{
- "message": "regex/main.js:1:77: msgid argument is not a string literal: __(t?"arr is set":"arr is not set","domain")",
+ "message": "regex/main.js:1:76: msgid argument is not a string literal: __(t?"arr is set":"arr is not set","domain")",
},
{
- "message": "regex/main.js:1:187: msgid argument is not a string literal: __(t?"func is set":"func is not set","domain")",
+ "message": "regex/main.js:1:186: msgid argument is not a string literal: __(t?"func is set":"func is not set","domain")",
},
{
- "message": "regex/main.js:1:376: msgid argument is not a string literal: __(t?"regex is set":"regex is not set","domain")",
+ "message": "regex/main.js:1:374: msgid argument is not a string literal: __(t?"regex is set":"regex is not set","domain")",
},
{
- "message": "regex/main.js:1:490: msgid argument is not a string literal: __(t?"string is set":"string is not set","domain")",
+ "message": "regex/main.js:1:488: msgid argument is not a string literal: __(t?"string is set":"string is not set","domain")",
},
{
"message": "regex/main.js: Optimization seems to have broken the following translation strings:
@@ -213,16 +213,16 @@ exports[`Webpack \`options-filter\`: Webpack build stats 1`] = `
{
"errors": [
{
- "message": "function/main.js:1:77: msgid argument is not a string literal: __(t?"arr is set":"arr is not set","domain")",
+ "message": "function/main.js:1:76: msgid argument is not a string literal: __(t?"arr is set":"arr is not set","domain")",
},
{
- "message": "function/main.js:1:187: msgid argument is not a string literal: __(t?"func is set":"func is not set","domain")",
+ "message": "function/main.js:1:186: msgid argument is not a string literal: __(t?"func is set":"func is not set","domain")",
},
{
- "message": "function/main.js:1:376: msgid argument is not a string literal: __(t?"regex is set":"regex is not set","domain")",
+ "message": "function/main.js:1:374: msgid argument is not a string literal: __(t?"regex is set":"regex is not set","domain")",
},
{
- "message": "function/main.js:1:490: msgid argument is not a string literal: __(t?"string is set":"string is not set","domain")",
+ "message": "function/main.js:1:488: msgid argument is not a string literal: __(t?"string is set":"string is not set","domain")",
},
{
"message": "function/main.js: Optimization seems to have broken the following translation strings:
@@ -236,16 +236,16 @@ exports[`Webpack \`options-filter\`: Webpack build stats 1`] = `
{
"errors": [
{
- "message": "array/main.js:1:77: msgid argument is not a string literal: __(t?"arr is set":"arr is not set","domain")",
+ "message": "array/main.js:1:76: msgid argument is not a string literal: __(t?"arr is set":"arr is not set","domain")",
},
{
- "message": "array/main.js:1:187: msgid argument is not a string literal: __(t?"func is set":"func is not set","domain")",
+ "message": "array/main.js:1:186: msgid argument is not a string literal: __(t?"func is set":"func is not set","domain")",
},
{
- "message": "array/main.js:1:376: msgid argument is not a string literal: __(t?"regex is set":"regex is not set","domain")",
+ "message": "array/main.js:1:374: msgid argument is not a string literal: __(t?"regex is set":"regex is not set","domain")",
},
{
- "message": "array/main.js:1:490: msgid argument is not a string literal: __(t?"string is set":"string is not set","domain")",
+ "message": "array/main.js:1:488: msgid argument is not a string literal: __(t?"string is set":"string is not set","domain")",
},
{
"message": "array/main.js: Optimization seems to have broken the following translation strings:
@@ -259,16 +259,16 @@ exports[`Webpack \`options-filter\`: Webpack build stats 1`] = `
{
"errors": [
{
- "message": "undefined/main.js:1:77: msgid argument is not a string literal: __(t?"arr is set":"arr is not set","domain")",
+ "message": "undefined/main.js:1:76: msgid argument is not a string literal: __(t?"arr is set":"arr is not set","domain")",
},
{
- "message": "undefined/main.js:1:187: msgid argument is not a string literal: __(t?"func is set":"func is not set","domain")",
+ "message": "undefined/main.js:1:186: msgid argument is not a string literal: __(t?"func is set":"func is not set","domain")",
},
{
- "message": "undefined/main.js:1:376: msgid argument is not a string literal: __(t?"regex is set":"regex is not set","domain")",
+ "message": "undefined/main.js:1:374: msgid argument is not a string literal: __(t?"regex is set":"regex is not set","domain")",
},
{
- "message": "undefined/main.js:1:490: msgid argument is not a string literal: __(t?"string is set":"string is not set","domain")",
+ "message": "undefined/main.js:1:488: msgid argument is not a string literal: __(t?"string is set":"string is not set","domain")",
},
{
"message": "undefined/main.js: Optimization seems to have broken the following translation strings:
@@ -289,19 +289,19 @@ exports[`Webpack \`options-filter\`: Webpack build stats 1`] = `
"errors": [
{
"compilerPath": "string",
- "message": "string/main.js:1:77: msgid argument is not a string literal: __(t?"arr is set":"arr is not set","domain")",
+ "message": "string/main.js:1:76: msgid argument is not a string literal: __(t?"arr is set":"arr is not set","domain")",
},
{
"compilerPath": "string",
- "message": "string/main.js:1:187: msgid argument is not a string literal: __(t?"func is set":"func is not set","domain")",
+ "message": "string/main.js:1:186: msgid argument is not a string literal: __(t?"func is set":"func is not set","domain")",
},
{
"compilerPath": "string",
- "message": "string/main.js:1:376: msgid argument is not a string literal: __(t?"regex is set":"regex is not set","domain")",
+ "message": "string/main.js:1:374: msgid argument is not a string literal: __(t?"regex is set":"regex is not set","domain")",
},
{
"compilerPath": "string",
- "message": "string/main.js:1:490: msgid argument is not a string literal: __(t?"string is set":"string is not set","domain")",
+ "message": "string/main.js:1:488: msgid argument is not a string literal: __(t?"string is set":"string is not set","domain")",
},
{
"compilerPath": "string",
@@ -311,19 +311,19 @@ exports[`Webpack \`options-filter\`: Webpack build stats 1`] = `
},
{
"compilerPath": "regex",
- "message": "regex/main.js:1:77: msgid argument is not a string literal: __(t?"arr is set":"arr is not set","domain")",
+ "message": "regex/main.js:1:76: msgid argument is not a string literal: __(t?"arr is set":"arr is not set","domain")",
},
{
"compilerPath": "regex",
- "message": "regex/main.js:1:187: msgid argument is not a string literal: __(t?"func is set":"func is not set","domain")",
+ "message": "regex/main.js:1:186: msgid argument is not a string literal: __(t?"func is set":"func is not set","domain")",
},
{
"compilerPath": "regex",
- "message": "regex/main.js:1:376: msgid argument is not a string literal: __(t?"regex is set":"regex is not set","domain")",
+ "message": "regex/main.js:1:374: msgid argument is not a string literal: __(t?"regex is set":"regex is not set","domain")",
},
{
"compilerPath": "regex",
- "message": "regex/main.js:1:490: msgid argument is not a string literal: __(t?"string is set":"string is not set","domain")",
+ "message": "regex/main.js:1:488: msgid argument is not a string literal: __(t?"string is set":"string is not set","domain")",
},
{
"compilerPath": "regex",
@@ -333,19 +333,19 @@ exports[`Webpack \`options-filter\`: Webpack build stats 1`] = `
},
{
"compilerPath": "function",
- "message": "function/main.js:1:77: msgid argument is not a string literal: __(t?"arr is set":"arr is not set","domain")",
+ "message": "function/main.js:1:76: msgid argument is not a string literal: __(t?"arr is set":"arr is not set","domain")",
},
{
"compilerPath": "function",
- "message": "function/main.js:1:187: msgid argument is not a string literal: __(t?"func is set":"func is not set","domain")",
+ "message": "function/main.js:1:186: msgid argument is not a string literal: __(t?"func is set":"func is not set","domain")",
},
{
"compilerPath": "function",
- "message": "function/main.js:1:376: msgid argument is not a string literal: __(t?"regex is set":"regex is not set","domain")",
+ "message": "function/main.js:1:374: msgid argument is not a string literal: __(t?"regex is set":"regex is not set","domain")",
},
{
"compilerPath": "function",
- "message": "function/main.js:1:490: msgid argument is not a string literal: __(t?"string is set":"string is not set","domain")",
+ "message": "function/main.js:1:488: msgid argument is not a string literal: __(t?"string is set":"string is not set","domain")",
},
{
"compilerPath": "function",
@@ -355,19 +355,19 @@ exports[`Webpack \`options-filter\`: Webpack build stats 1`] = `
},
{
"compilerPath": "array",
- "message": "array/main.js:1:77: msgid argument is not a string literal: __(t?"arr is set":"arr is not set","domain")",
+ "message": "array/main.js:1:76: msgid argument is not a string literal: __(t?"arr is set":"arr is not set","domain")",
},
{
"compilerPath": "array",
- "message": "array/main.js:1:187: msgid argument is not a string literal: __(t?"func is set":"func is not set","domain")",
+ "message": "array/main.js:1:186: msgid argument is not a string literal: __(t?"func is set":"func is not set","domain")",
},
{
"compilerPath": "array",
- "message": "array/main.js:1:376: msgid argument is not a string literal: __(t?"regex is set":"regex is not set","domain")",
+ "message": "array/main.js:1:374: msgid argument is not a string literal: __(t?"regex is set":"regex is not set","domain")",
},
{
"compilerPath": "array",
- "message": "array/main.js:1:490: msgid argument is not a string literal: __(t?"string is set":"string is not set","domain")",
+ "message": "array/main.js:1:488: msgid argument is not a string literal: __(t?"string is set":"string is not set","domain")",
},
{
"compilerPath": "array",
@@ -377,19 +377,19 @@ exports[`Webpack \`options-filter\`: Webpack build stats 1`] = `
},
{
"compilerPath": "undefined",
- "message": "undefined/main.js:1:77: msgid argument is not a string literal: __(t?"arr is set":"arr is not set","domain")",
+ "message": "undefined/main.js:1:76: msgid argument is not a string literal: __(t?"arr is set":"arr is not set","domain")",
},
{
"compilerPath": "undefined",
- "message": "undefined/main.js:1:187: msgid argument is not a string literal: __(t?"func is set":"func is not set","domain")",
+ "message": "undefined/main.js:1:186: msgid argument is not a string literal: __(t?"func is set":"func is not set","domain")",
},
{
"compilerPath": "undefined",
- "message": "undefined/main.js:1:376: msgid argument is not a string literal: __(t?"regex is set":"regex is not set","domain")",
+ "message": "undefined/main.js:1:374: msgid argument is not a string literal: __(t?"regex is set":"regex is not set","domain")",
},
{
"compilerPath": "undefined",
- "message": "undefined/main.js:1:490: msgid argument is not a string literal: __(t?"string is set":"string is not set","domain")",
+ "message": "undefined/main.js:1:488: msgid argument is not a string literal: __(t?"string is set":"string is not set","domain")",
},
{
"compilerPath": "undefined",
diff --git a/projects/js-packages/i18n-loader-webpack-plugin/CHANGELOG.md b/projects/js-packages/i18n-loader-webpack-plugin/CHANGELOG.md
index ef45eb9ca8fec..218908cefe6b5 100644
--- a/projects/js-packages/i18n-loader-webpack-plugin/CHANGELOG.md
+++ b/projects/js-packages/i18n-loader-webpack-plugin/CHANGELOG.md
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [2.0.56] - 2024-08-29
+### Changed
+- Updated package dependencies. [#39111]
+
## [2.0.55] - 2024-08-21
### Changed
- Internal updates.
@@ -249,6 +253,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
- Initial release.
+[2.0.56]: https://github.com/Automattic/i18n-loader-webpack-plugin/compare/v2.0.55...v2.0.56
[2.0.55]: https://github.com/Automattic/i18n-loader-webpack-plugin/compare/v2.0.54...v2.0.55
[2.0.54]: https://github.com/Automattic/i18n-loader-webpack-plugin/compare/v2.0.53...v2.0.54
[2.0.53]: https://github.com/Automattic/i18n-loader-webpack-plugin/compare/v2.0.52...v2.0.53
diff --git a/projects/js-packages/i18n-loader-webpack-plugin/package.json b/projects/js-packages/i18n-loader-webpack-plugin/package.json
index 919c4d8e04ebf..2b757aee168a3 100644
--- a/projects/js-packages/i18n-loader-webpack-plugin/package.json
+++ b/projects/js-packages/i18n-loader-webpack-plugin/package.json
@@ -1,6 +1,6 @@
{
"name": "@automattic/i18n-loader-webpack-plugin",
- "version": "2.0.55",
+ "version": "2.0.56",
"description": "A Webpack plugin to load WordPress i18n when Webpack lazy-loads a bundle.",
"homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/js-packages/i18n-loader-webpack-plugin/#readme",
"bugs": {
@@ -23,11 +23,11 @@
"@wordpress/dependency-extraction-webpack-plugin": "6.5.0",
"@wordpress/i18n": "5.5.0",
"jest": "29.7.0",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
},
"peerDependencies": {
- "webpack": "^5.29.0"
+ "webpack": "^5.94.0"
},
"exports": {
".": "./src/I18nLoaderPlugin.js"
diff --git a/projects/js-packages/idc/CHANGELOG.md b/projects/js-packages/idc/CHANGELOG.md
index c6bcf4f939db8..72a6081ee7e1d 100644
--- a/projects/js-packages/idc/CHANGELOG.md
+++ b/projects/js-packages/idc/CHANGELOG.md
@@ -2,6 +2,10 @@
### This is a list detailing changes for the Jetpack RNA IDC package releases.
+## 0.11.9 - 2024-08-29
+### Changed
+- Internal updates.
+
## 0.11.8 - 2024-08-21
### Changed
- Internal updates.
diff --git a/projects/js-packages/idc/changelog/add-more-eslint-rules b/projects/js-packages/idc/changelog/add-more-eslint-rules
deleted file mode 100644
index 2b32cb03e644c..0000000000000
--- a/projects/js-packages/idc/changelog/add-more-eslint-rules
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: fixed
-Comment: Fix new eslint sniffs. Should be no change in functionality.
-
-
diff --git a/projects/js-packages/idc/package.json b/projects/js-packages/idc/package.json
index 67c6bfdeeb9da..6b9b7b6bece08 100644
--- a/projects/js-packages/idc/package.json
+++ b/projects/js-packages/idc/package.json
@@ -1,6 +1,6 @@
{
"name": "@automattic/jetpack-idc",
- "version": "0.11.8",
+ "version": "0.11.9",
"description": "Jetpack Connection Component",
"author": "Automattic",
"license": "GPL-2.0-or-later",
diff --git a/projects/js-packages/image-guide/CHANGELOG.md b/projects/js-packages/image-guide/CHANGELOG.md
index e773c91e2dbfb..51f3534157e22 100644
--- a/projects/js-packages/image-guide/CHANGELOG.md
+++ b/projects/js-packages/image-guide/CHANGELOG.md
@@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [0.5.11] - 2024-08-29
+### Changed
+- Updated package dependencies. [#38287]
+
+### Fixed
+- Fix: Handle uncaught exception for images with empty or no src attributes. [#39024]
+- Fixed a bug where image guide would show up for svg images. [#38329]
+
## [0.5.10] - 2024-07-10
### Changed
- Updated package dependencies. [#38092]
@@ -113,6 +121,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Removed
- Minor package.json change - removing private entry.
+[0.5.11]: https://github.com/Automattic/jetpack-image-guide/compare/v0.5.10...v0.5.11
[0.5.10]: https://github.com/Automattic/jetpack-image-guide/compare/v0.5.9...v0.5.10
[0.5.9]: https://github.com/Automattic/jetpack-image-guide/compare/v0.5.8...v0.5.9
[0.5.8]: https://github.com/Automattic/jetpack-image-guide/compare/v0.5.7...v0.5.8
diff --git a/projects/js-packages/image-guide/changelog/fix-uncaught-exception b/projects/js-packages/image-guide/changelog/fix-uncaught-exception
deleted file mode 100644
index e9ab1868e6296..0000000000000
--- a/projects/js-packages/image-guide/changelog/fix-uncaught-exception
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: patch
-Type: fixed
-
-Fix: Handle uncaught exception for images with empty or no src attributes.
diff --git a/projects/js-packages/image-guide/changelog/try-no-version-bumps-in-trunk b/projects/js-packages/image-guide/changelog/try-no-version-bumps-in-trunk
deleted file mode 100644
index 91efe85c55e06..0000000000000
--- a/projects/js-packages/image-guide/changelog/try-no-version-bumps-in-trunk
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: changed
-Comment: Un-bump version numbers in trunk. The build will now update the version numbers as needed for mirrors.
-
-
diff --git a/projects/js-packages/image-guide/changelog/update-fix-image-guide-svgs b/projects/js-packages/image-guide/changelog/update-fix-image-guide-svgs
deleted file mode 100644
index 694da4b8779ef..0000000000000
--- a/projects/js-packages/image-guide/changelog/update-fix-image-guide-svgs
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: patch
-Type: fixed
-
-Fixed a bug where image guide would show up for svg images.
diff --git a/projects/js-packages/image-guide/package.json b/projects/js-packages/image-guide/package.json
index e7bc461174a84..f88b9d1c663ed 100644
--- a/projects/js-packages/image-guide/package.json
+++ b/projects/js-packages/image-guide/package.json
@@ -1,6 +1,6 @@
{
"name": "@automattic/jetpack-image-guide",
- "version": "0.5.10",
+ "version": "0.5.11",
"description": "Go through the dom to analyze image size on screen vs actual file size.",
"homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/js-packages/image-guide/#readme",
"type": "module",
@@ -56,7 +56,7 @@
"svelte-preprocess": "6.0.2",
"tslib": "2.5.0",
"typescript": "5.0.4",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
},
"exports": {
diff --git a/projects/js-packages/publicize-components/CHANGELOG.md b/projects/js-packages/publicize-components/CHANGELOG.md
index 0f671ddae6f6e..a40b949dce544 100644
--- a/projects/js-packages/publicize-components/CHANGELOG.md
+++ b/projects/js-packages/publicize-components/CHANGELOG.md
@@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [0.64.0] - 2024-08-29
+### Added
+- Added share status info to Jetpack sidebar [#39073]
+- Added usePostPrePublishValue hook [#39119]
+
+### Changed
+- Social: Default to the current post ID for share status selector [#39112]
+- Social: Updated the share status modal to render it globally [#39116]
+
+### Fixed
+- Fixed a deadlock with media validation and media picker [#38933]
+
## [0.63.0] - 2024-08-26
### Added
- Added the new feature flag for the social share status [#39015]
@@ -861,6 +873,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- Updated package dependencies. [#24470]
+[0.64.0]: https://github.com/Automattic/jetpack-publicize-components/compare/v0.63.0...v0.64.0
[0.63.0]: https://github.com/Automattic/jetpack-publicize-components/compare/v0.62.0...v0.63.0
[0.62.0]: https://github.com/Automattic/jetpack-publicize-components/compare/v0.61.0...v0.62.0
[0.61.0]: https://github.com/Automattic/jetpack-publicize-components/compare/v0.60.0...v0.61.0
diff --git a/projects/js-packages/publicize-components/changelog/add-social-share-status-info b/projects/js-packages/publicize-components/changelog/add-social-share-status-info
deleted file mode 100644
index 0d38a15639ec3..0000000000000
--- a/projects/js-packages/publicize-components/changelog/add-social-share-status-info
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: patch
-Type: added
-
-Added share status info to Jetpack sidebar
diff --git a/projects/js-packages/publicize-components/changelog/add-social-share-status-shares-modal b/projects/js-packages/publicize-components/changelog/add-social-share-status-shares-modal
new file mode 100644
index 0000000000000..bf7d182e6814d
--- /dev/null
+++ b/projects/js-packages/publicize-components/changelog/add-social-share-status-shares-modal
@@ -0,0 +1,4 @@
+Significance: minor
+Type: added
+
+Add share status log modal to published posts
diff --git a/projects/js-packages/publicize-components/changelog/fix-social-hide-share-status-when-no-connection-is-on b/projects/js-packages/publicize-components/changelog/fix-social-hide-share-status-when-no-connection-is-on
new file mode 100644
index 0000000000000..4bc68b5f4acd1
--- /dev/null
+++ b/projects/js-packages/publicize-components/changelog/fix-social-hide-share-status-when-no-connection-is-on
@@ -0,0 +1,4 @@
+Significance: patch
+Type: fixed
+
+Fixed share status being shown even if no connection is enabled
diff --git a/projects/js-packages/publicize-components/changelog/try-no-version-bumps-in-trunk b/projects/js-packages/publicize-components/changelog/try-no-version-bumps-in-trunk
deleted file mode 100644
index 91efe85c55e06..0000000000000
--- a/projects/js-packages/publicize-components/changelog/try-no-version-bumps-in-trunk
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: changed
-Comment: Un-bump version numbers in trunk. The build will now update the version numbers as needed for mirrors.
-
-
diff --git a/projects/js-packages/publicize-components/changelog/update-socia-render-share-status-modal-globally b/projects/js-packages/publicize-components/changelog/update-socia-render-share-status-modal-globally
deleted file mode 100644
index b7d9c012f4521..0000000000000
--- a/projects/js-packages/publicize-components/changelog/update-socia-render-share-status-modal-globally
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: minor
-Type: changed
-
-Social: Updated the share status modal to render it globally
diff --git a/projects/js-packages/publicize-components/package.json b/projects/js-packages/publicize-components/package.json
index 94e3384c7834f..4235dbb072f2c 100644
--- a/projects/js-packages/publicize-components/package.json
+++ b/projects/js-packages/publicize-components/package.json
@@ -1,7 +1,7 @@
{
"private": true,
"name": "@automattic/jetpack-publicize-components",
- "version": "0.63.0",
+ "version": "0.64.0",
"description": "A library of JS components required by the Publicize editor plugin",
"homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/js-packages/publicize-components/#readme",
"bugs": {
diff --git a/projects/js-packages/publicize-components/src/components/form/index.tsx b/projects/js-packages/publicize-components/src/components/form/index.tsx
index 08abdbcc35ccd..d659d4afee780 100644
--- a/projects/js-packages/publicize-components/src/components/form/index.tsx
+++ b/projects/js-packages/publicize-components/src/components/form/index.tsx
@@ -9,6 +9,10 @@
import { Disabled, PanelRow } from '@wordpress/components';
import { Fragment } from '@wordpress/element';
import { usePublicizeConfig } from '../../..';
+import useAttachedMedia from '../../hooks/use-attached-media';
+import useFeaturedImage from '../../hooks/use-featured-image';
+import useMediaDetails from '../../hooks/use-media-details';
+import useMediaRestrictions from '../../hooks/use-media-restrictions';
import useSocialMediaConnections from '../../hooks/use-social-media-connections';
import { getSocialScriptData } from '../../utils/script-data';
import { ThemedConnectionsModal as ManageConnectionsModal } from '../manage-connections-modal';
@@ -24,8 +28,24 @@ import { SharePostForm } from './share-post-form';
* @return {object} - Publicize form component.
*/
export default function PublicizeForm() {
- const { hasConnections, hasEnabledConnections } = useSocialMediaConnections();
+ const { hasConnections, hasEnabledConnections, connections } = useSocialMediaConnections();
const { isPublicizeEnabled, isPublicizeDisabledBySitePlan } = usePublicizeConfig();
+ const { attachedMedia } = useAttachedMedia();
+ const featuredImageId = useFeaturedImage();
+
+ const mediaId = attachedMedia[ 0 ]?.id || featuredImageId;
+ const { validationErrors, isConvertible } = useMediaRestrictions(
+ connections,
+ useMediaDetails( mediaId )[ 0 ]
+ );
+
+ const showSharePostForm =
+ isPublicizeEnabled &&
+ ( hasEnabledConnections ||
+ // We show the form if there is any attached media or validation errors to let the user
+ // fix the issues with uploading an image.
+ attachedMedia.length > 0 ||
+ ( Object.keys( validationErrors ).length !== 0 && ! isConvertible ) );
const Wrapper = isPublicizeDisabledBySitePlan ? Disabled : Fragment;
@@ -50,9 +70,7 @@ export default function PublicizeForm() {
{ ! isPublicizeDisabledBySitePlan && (
- { isPublicizeEnabled && hasEnabledConnections && (
-
- ) }
+ { showSharePostForm && }
) }
diff --git a/projects/js-packages/publicize-components/src/components/post-publish-share-status/index.tsx b/projects/js-packages/publicize-components/src/components/post-publish-share-status/index.tsx
index 4877a81941ea1..304493afaf73f 100644
--- a/projects/js-packages/publicize-components/src/components/post-publish-share-status/index.tsx
+++ b/projects/js-packages/publicize-components/src/components/post-publish-share-status/index.tsx
@@ -2,6 +2,8 @@ import { useSelect } from '@wordpress/data';
import { PluginPostPublishPanel } from '@wordpress/edit-post';
import { store as editorStore } from '@wordpress/editor';
import { usePostMeta } from '../../hooks/use-post-meta';
+import { usePostPrePublishValue } from '../../hooks/use-post-pre-publish-value';
+import { store as socialStore } from '../../social-store';
import { ShareStatus } from './share-status';
/**
@@ -10,7 +12,7 @@ import { ShareStatus } from './share-status';
* @return {import('react').ReactNode} - Post publish share status component.
*/
export function PostPublishShareStatus() {
- const { isPublicizeEnabled: willPostBeShared } = usePostMeta();
+ const { isPublicizeEnabled } = usePostMeta();
const { postId, isPostPublised } = useSelect( select => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- `@wordpress/editor` is a nightmare to work with TypeScript
const _editorStore = select( editorStore ) as any;
@@ -21,6 +23,12 @@ export function PostPublishShareStatus() {
};
}, [] );
+ const enabledConnections = usePostPrePublishValue(
+ useSelect( select => select( socialStore ).getEnabledConnections(), [] )
+ );
+
+ const willPostBeShared = isPublicizeEnabled && enabledConnections.length > 0;
+
if ( ! willPostBeShared || ! isPostPublised ) {
return null;
}
diff --git a/projects/js-packages/publicize-components/src/components/share-status-modal/index.tsx b/projects/js-packages/publicize-components/src/components/share-status-modal/index.tsx
deleted file mode 100644
index d7db5ead4be80..0000000000000
--- a/projects/js-packages/publicize-components/src/components/share-status-modal/index.tsx
+++ /dev/null
@@ -1,23 +0,0 @@
-import { Button } from '@wordpress/components';
-import { __ } from '@wordpress/i18n';
-import { getSocialScriptData } from '../../utils/script-data';
-import styles from './styles.module.scss';
-
-/**
- * Share status modal component.
- *
- * @return {import('react').ReactNode} - Share status modal component.
- */
-export function ShareStatusModal() {
- const { feature_flags } = getSocialScriptData();
-
- if ( ! feature_flags.useShareStatus ) {
- return null;
- }
-
- return (
-
- { ' ' }
-
- );
-}
diff --git a/projects/js-packages/publicize-components/src/components/share-status-modal/styles.module.scss b/projects/js-packages/publicize-components/src/components/share-status-modal/styles.module.scss
deleted file mode 100644
index a4bdac5ae6174..0000000000000
--- a/projects/js-packages/publicize-components/src/components/share-status-modal/styles.module.scss
+++ /dev/null
@@ -1,4 +0,0 @@
-.wrapper {
- margin-top: 1rem;
- padding-block: 1rem;
-}
\ No newline at end of file
diff --git a/projects/js-packages/publicize-components/src/components/share-status/modal.tsx b/projects/js-packages/publicize-components/src/components/share-status/modal.tsx
index 9d204d1033418..cffdb48fcb257 100644
--- a/projects/js-packages/publicize-components/src/components/share-status/modal.tsx
+++ b/projects/js-packages/publicize-components/src/components/share-status/modal.tsx
@@ -3,6 +3,7 @@ import { Modal } from '@wordpress/components';
import { useDispatch, useSelect } from '@wordpress/data';
import { __ } from '@wordpress/i18n';
import { store as socialStore } from '../../social-store';
+import { ShareList } from './share-list';
import styles from './styles.module.scss';
/**
@@ -14,13 +15,15 @@ export function ShareStatusModal() {
const { closeShareStatusModal } = useDispatch( socialStore );
return (
-
- Content goes here
-
+
+
+
+
+
);
}
diff --git a/projects/js-packages/publicize-components/src/components/share-status/share-info.tsx b/projects/js-packages/publicize-components/src/components/share-status/share-info.tsx
new file mode 100644
index 0000000000000..9427778bf92b5
--- /dev/null
+++ b/projects/js-packages/publicize-components/src/components/share-status/share-info.tsx
@@ -0,0 +1,38 @@
+import { getDate, humanTimeDiff } from '@wordpress/date';
+import ConnectionIcon from '../connection-icon';
+import { ShareStatusAction } from './share-status-action';
+import { ShareStatusLabel } from './share-status-label';
+import styles from './styles.module.scss';
+
+/**
+ *
+ * ShareInfo component
+ *
+ * @param {object} props - component props
+ * @param {object} props.share - share object
+ * @return {import('react').ReactNode} - React element
+ */
+export function ShareInfo( { share } ) {
+ const { service, external_name, profile_picture, timestamp, status, message } = share;
+
+ return (
+
+
+
+
+ {
+ // @ts-expect-error - humanTimeDiff is incorrectly typed, first argument can be a timestamp
+ humanTimeDiff( timestamp * 1000, getDate() )
+ }
+
+
+
+
+ );
+}
diff --git a/projects/js-packages/publicize-components/src/components/share-status/share-list.tsx b/projects/js-packages/publicize-components/src/components/share-status/share-list.tsx
new file mode 100644
index 0000000000000..90714ab167389
--- /dev/null
+++ b/projects/js-packages/publicize-components/src/components/share-status/share-list.tsx
@@ -0,0 +1,46 @@
+import { Spinner } from '@wordpress/components';
+import { useSelect } from '@wordpress/data';
+import { store as editorStore } from '@wordpress/editor';
+import { __ } from '@wordpress/i18n';
+import { store as socialStore } from '../../social-store';
+import { ShareInfo } from './share-info';
+import styles from './styles.module.scss';
+
+/**
+ * ShareList component
+ *
+ * @return {import('react').ReactNode} - Share status modal component.
+ */
+export function ShareList() {
+ const { shareStatus } = useSelect( select => {
+ const store = select( socialStore );
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- `@wordpress/editor` is a nightmare to work with TypeScript
+ const _editorStore = select( editorStore ) as any;
+
+ return {
+ shareStatus: store.getPostShareStatus( _editorStore.getCurrentPostId() ),
+ };
+ }, [] );
+
+ return (
+
+ { shareStatus.loading && (
+
+ { __( 'Loading…', 'jetpack' ) }
+
+ ) }
+ { shareStatus.shares.length > 0 && (
+
+ { shareStatus.shares.map( ( share, idx ) => (
+ -
+
+
+ ) ) }
+
+ ) }
+
+ );
+}
diff --git a/projects/js-packages/publicize-components/src/components/share-status/share-status-action.tsx b/projects/js-packages/publicize-components/src/components/share-status/share-status-action.tsx
new file mode 100644
index 0000000000000..e81cae6506c55
--- /dev/null
+++ b/projects/js-packages/publicize-components/src/components/share-status/share-status-action.tsx
@@ -0,0 +1,26 @@
+import { ExternalLink } from '@wordpress/components';
+import { __ } from '@wordpress/i18n';
+import styles from './styles.module.scss';
+
+/**
+ *
+ * Share status action component.
+ *
+ * @param {object} props - component props
+ * @param {boolean} props.status - status of the share
+ * @param {string} props.shareLink - link to the share
+ * @return {import('react').ReactNode} - React element
+ */
+export function ShareStatusAction( { status, shareLink } ) {
+ return (
+
+ { 'success' !== status ? (
+ Retry
+ ) : (
+
+ { __( 'View', 'jetpack' ) }
+
+ ) }
+
+ );
+}
diff --git a/projects/js-packages/publicize-components/src/components/share-status/share-status-label.tsx b/projects/js-packages/publicize-components/src/components/share-status/share-status-label.tsx
new file mode 100644
index 0000000000000..c01703bad43c6
--- /dev/null
+++ b/projects/js-packages/publicize-components/src/components/share-status/share-status-label.tsx
@@ -0,0 +1,46 @@
+import { IconTooltip, Text } from '@automattic/jetpack-components';
+import { __, _x } from '@wordpress/i18n';
+import { Icon, check } from '@wordpress/icons';
+import clsx from 'clsx';
+import React from 'react';
+import styles from './styles.module.scss';
+
+/**
+ *
+ * Share status label component.
+ *
+ * @param {object} props - component props
+ * @param {boolean} props.status - status of the share
+ * @param {string} props.message - link to the share, or error message if failed
+ * @return {import('react').ReactNode} - React element
+ */
+export function ShareStatusLabel( { status, message } ) {
+ const isSuccessful = 'success' === status;
+
+ const icon = isSuccessful ? (
+
+ ) : (
+
+ { message }
+
+ );
+
+ return (
+
+
{ icon }
+
+ { isSuccessful
+ ? _x( 'Shared', 'The sharing is successful', 'jetpack' )
+ : __( 'Failed', 'jetpack' ) }
+
+
+ );
+}
diff --git a/projects/js-packages/publicize-components/src/components/share-status/styles.module.scss b/projects/js-packages/publicize-components/src/components/share-status/styles.module.scss
index 273f943790152..2018e13947793 100644
--- a/projects/js-packages/publicize-components/src/components/share-status/styles.module.scss
+++ b/projects/js-packages/publicize-components/src/components/share-status/styles.module.scss
@@ -2,3 +2,88 @@
margin-top: 1rem;
padding-block: 1rem;
}
+
+.wrapper {
+ margin-top: 1rem;
+ padding-block: 1rem;
+}
+
+.spinner{
+ margin: 0 1rem 1rem 1rem;
+}
+
+.modal {
+ width: 60rem;
+}
+
+.share-log-list {
+ outline: 1px solid var(--jp-gray-5);
+ border-radius: 4px;
+ margin: 0;
+ width: 100%;
+
+ .share-log-list-item {
+ margin-bottom: 0px;
+ padding: 0.8rem 1rem;
+
+ &:not(:last-child) {
+ border-bottom: 1px solid var(--jp-gray-5);
+ }
+ }
+
+ .share-item {
+ display: flex;
+ gap: 1rem;
+ align-items: center;
+ }
+}
+
+.share-item-name-wrapper {
+ display: flex;
+ flex-direction: column;
+ gap: 0.5rem;
+ flex: 1;
+ overflow: auto;
+}
+
+.share-item-name {
+ display: flex;
+ align-items: center;
+}
+
+.share-status-wrapper {
+ display: flex;
+ align-items: center;
+ width: 5rem;
+
+ &.share-status-success {
+ color: var(--jp-green-50);
+ }
+
+ &.share-status-failure {
+ color: var(--jp-red-50);
+ height: 29px;
+ }
+}
+
+.share-status-label {
+ flex: 1;
+}
+
+.share-status-icon-tooltip {
+ width: 24px;
+ top: 2px;
+ margin-inline-start: 2px;
+
+ > button {
+ color: var(--jp-red-50) !important;
+ }
+}
+
+.share-status-icon {
+ fill: var(--jp-green-50);
+}
+
+.share-status-action-wrapper {
+ width: 3rem;
+}
diff --git a/projects/js-packages/publicize-components/src/hooks/use-post-pre-publish-value/index.ts b/projects/js-packages/publicize-components/src/hooks/use-post-pre-publish-value/index.ts
new file mode 100644
index 0000000000000..60d80b8b9d97f
--- /dev/null
+++ b/projects/js-packages/publicize-components/src/hooks/use-post-pre-publish-value/index.ts
@@ -0,0 +1,39 @@
+import { useSelect } from '@wordpress/data';
+import { store as editorStore } from '@wordpress/editor';
+import { useEffect, useRef, useState } from '@wordpress/element';
+
+/**
+ * Preserve a value from the post pre-publish state.
+ *
+ * The value will stop updating after the post is published.
+ *
+ * @template V
+ * @param {V} value - The value to preserve.
+ *
+ * @return {V} The preserved value.
+ */
+export function usePostPrePublishValue< V >( value: V ) {
+ const isPublishing = useSelect(
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- `@wordpress/editor` is a nightmare to work with TypeScript
+ select => ( select( editorStore ) as any ).isPublishingPost(),
+ []
+ );
+
+ const [ currentValue, setCurrentValue ] = useState( value );
+
+ const valueFrozen = useRef( false );
+
+ useEffect( () => {
+ // Freeze the value after publishing starts.
+ if ( isPublishing ) {
+ valueFrozen.current = true;
+ }
+
+ // Since the value is not frozen yet, update the current value.
+ if ( ! valueFrozen.current ) {
+ setCurrentValue( value );
+ }
+ }, [ isPublishing, value ] );
+
+ return currentValue;
+}
diff --git a/projects/js-packages/publicize-components/src/hooks/use-post-pre-publish-value/test/index.test.js b/projects/js-packages/publicize-components/src/hooks/use-post-pre-publish-value/test/index.test.js
new file mode 100644
index 0000000000000..70b59a9ebdc08
--- /dev/null
+++ b/projects/js-packages/publicize-components/src/hooks/use-post-pre-publish-value/test/index.test.js
@@ -0,0 +1,79 @@
+import { act, renderHook } from '@testing-library/react';
+import { RegistryProvider } from '@wordpress/data';
+import { store as editorStore } from '@wordpress/editor';
+import { usePostPrePublishValue } from '../';
+import {
+ connections as connectionsList,
+ createRegistryWithStores,
+} from '../../../utils/test-utils';
+
+const connections = connectionsList.map( connection => ( { ...connection, enabled: true } ) );
+
+const post = {
+ jetpack_publicize_connections: [ connections[ 0 ] ],
+};
+
+describe( 'usePostPrePublishValue', () => {
+ it( 'should return the value by default', async () => {
+ const registry = createRegistryWithStores( post );
+
+ const { result } = renderHook( () => usePostPrePublishValue( 'test-value' ), {
+ wrapper: ( { children } ) => (
+ { children }
+ ),
+ } );
+
+ expect( result.current ).toBe( 'test-value' );
+ } );
+
+ it( 'should return the updated value when the post is not being published', async () => {
+ const registry = createRegistryWithStores( post );
+
+ const { rerender, result } = renderHook(
+ ( initialValue = 'first-value' ) => usePostPrePublishValue( initialValue ),
+ {
+ wrapper: ( { children } ) => (
+ { children }
+ ),
+ }
+ );
+
+ rerender( 'second-value' );
+
+ await act( async () => {
+ await registry.dispatch( editorStore ).editPost( {
+ status: 'draft',
+ content: 'Some test content',
+ } );
+ } );
+
+ expect( result.current ).toBe( 'second-value' );
+ } );
+
+ it( 'should preserve the pre-publish value', async () => {
+ const registry = createRegistryWithStores( post );
+
+ const { rerender, result } = renderHook(
+ ( initialValue = 'first-value' ) => usePostPrePublishValue( initialValue ),
+ {
+ wrapper: ( { children } ) => (
+ { children }
+ ),
+ }
+ );
+
+ rerender( 'second-value' );
+
+ await act( async () => {
+ registry.dispatch( editorStore ).editPost( {
+ status: 'publish',
+ content: 'Some test content',
+ } );
+ registry.dispatch( editorStore ).savePost();
+ } );
+
+ rerender( 'third-value' );
+
+ expect( result.current ).toBe( 'second-value' );
+ } );
+} );
diff --git a/projects/js-packages/publicize-components/src/hooks/use-sync-post-data-to-store/test/index.test.js b/projects/js-packages/publicize-components/src/hooks/use-sync-post-data-to-store/test/index.test.js
index 2593baa4d1c1d..c74bf768b4b3d 100644
--- a/projects/js-packages/publicize-components/src/hooks/use-sync-post-data-to-store/test/index.test.js
+++ b/projects/js-packages/publicize-components/src/hooks/use-sync-post-data-to-store/test/index.test.js
@@ -7,7 +7,7 @@ import { store as socialStore } from '../../../social-store';
import {
connections as connectionsList,
createRegistryWithStores,
- testPost,
+ postPublishFetchHandler,
} from '../../../utils/test-utils';
const connections = connectionsList.map( connection => ( { ...connection, enabled: true } ) );
@@ -16,9 +16,6 @@ const post = {
jetpack_publicize_connections: [ connections[ 0 ] ],
};
-const getMethod = options =>
- options.headers?.[ 'X-HTTP-Method-Override' ] || options.method || 'GET';
-
describe( 'useSyncPostDataToStore', () => {
it( 'should do nothing by default', async () => {
const registry = createRegistryWithStores( post );
@@ -67,37 +64,7 @@ describe( 'useSyncPostDataToStore', () => {
await registry.resolveSelect( socialStore ).getConnections();
// Mock apiFetch response.
- apiFetch.setFetchHandler( async options => {
- const method = getMethod( options );
- const { path, data, parse = true } = options;
-
- const wrapReturn = parse
- ? v => v
- : v =>
- // Ideally we'd do `new Response( JSON.stringify( v ) )` here, but jsdom deletes that. Sigh.
- // See https://github.com/jsdom/jsdom/issues/1724
- ( {
- async json() {
- return v;
- },
- } );
-
- if ( method === 'PUT' && path.startsWith( `/wp/v2/posts/${ testPost.id }` ) ) {
- return wrapReturn( { ...post, ...data } );
- } else if (
- // This URL is requested by the actions dispatched in this test.
- // They are safe to ignore and are only listed here to avoid triggeringan error.
- method === 'GET' &&
- path.startsWith( '/wp/v2/types/post' )
- ) {
- return wrapReturn( {} );
- }
-
- throw {
- code: 'unknown_path',
- message: `Unknown path: ${ method } ${ path }`,
- };
- } );
+ apiFetch.setFetchHandler( postPublishFetchHandler( post ) );
const prevConnections = registry.select( socialStore ).getConnections();
diff --git a/projects/js-packages/publicize-components/src/social-store/resolvers.js b/projects/js-packages/publicize-components/src/social-store/resolvers.js
index d251cf764d01e..ab2e6308d17a0 100644
--- a/projects/js-packages/publicize-components/src/social-store/resolvers.js
+++ b/projects/js-packages/publicize-components/src/social-store/resolvers.js
@@ -1,5 +1,6 @@
import apiFetch from '@wordpress/api-fetch';
import { store as editorStore } from '@wordpress/editor';
+import { normalizeShareStatus } from '../utils/share-status';
import { setConnections } from './actions/connection-data';
import { setJetpackSettings } from './actions/jetpack-settings';
import { fetchPostShareStatus, receivePostShareStaus } from './actions/share-status';
@@ -63,22 +64,23 @@ export function getConnections() {
/**
* Resolves the post share status.
*
- * @param {number} postId - The post ID.
+ * @param {number} _postId - The post ID.
*
* @return {Function} Resolver
*/
-export function getPostShareStatus( postId ) {
- return async ( { dispatch } ) => {
- if ( ! postId ) {
- return;
- }
+export function getPostShareStatus( _postId ) {
+ return async ( { dispatch, registry } ) => {
+ // Default to the current post ID if none is provided.
+ const postId = _postId || registry.select( editorStore ).getCurrentPostId();
try {
dispatch( fetchPostShareStatus( postId ) );
- const result = await apiFetch( {
+ let result = await apiFetch( {
path: `jetpack/v4/social/share-status/${ postId }`,
} );
+ result = normalizeShareStatus( result );
+
dispatch( receivePostShareStaus( result, postId ) );
} catch ( error ) {
dispatch( fetchPostShareStatus( postId, false ) );
diff --git a/projects/js-packages/publicize-components/src/social-store/selectors/share-status.ts b/projects/js-packages/publicize-components/src/social-store/selectors/share-status.ts
index 2bad3b71550a6..e12b27f345ac7 100644
--- a/projects/js-packages/publicize-components/src/social-store/selectors/share-status.ts
+++ b/projects/js-packages/publicize-components/src/social-store/selectors/share-status.ts
@@ -1,3 +1,5 @@
+import { createRegistrySelector } from '@wordpress/data';
+import { store as editorStore } from '@wordpress/editor';
import { PostShareStatus, SocialStoreState } from '../types';
/**
@@ -6,11 +8,17 @@ import { PostShareStatus, SocialStoreState } from '../types';
* @param {SocialStoreState} state - State object.
* @param {number} postId - The post ID.
*
- * @return {SocialStoreState[number]} - The post share status.
+ * @return {PostShareStatus} - The post share status.
*/
-export function getPostShareStatus( state: SocialStoreState, postId: number ): PostShareStatus {
- return state.shareStatus?.[ postId ] ?? { shares: [] };
-}
+export const getPostShareStatus = createRegistrySelector(
+ select =>
+ ( state: SocialStoreState, postId?: number ): PostShareStatus => {
+ // Default to the current post ID if none is provided.
+ const id = postId || select( editorStore ).getCurrentPostId();
+
+ return state.shareStatus?.[ id ] ?? { shares: [] };
+ }
+);
/**
* Whether the share status modal is open.
diff --git a/projects/js-packages/publicize-components/src/utils/share-status.ts b/projects/js-packages/publicize-components/src/utils/share-status.ts
new file mode 100644
index 0000000000000..8274971d1a172
--- /dev/null
+++ b/projects/js-packages/publicize-components/src/utils/share-status.ts
@@ -0,0 +1,16 @@
+import { PostShareStatus } from '../social-store/types';
+
+/**
+ * Normalizes the share status object.
+ *
+ * @param {PostShareStatus} shareStatus - Share status object.
+ * @return {PostShareStatus} - Normalized share status object.
+ */
+export function normalizeShareStatus( shareStatus: PostShareStatus ) {
+ if ( shareStatus && 'shares' in shareStatus && shareStatus.done ) {
+ // Sort shares to show the latest shares on the top.
+ shareStatus.shares.sort( ( a, b ) => b.timestamp - a.timestamp );
+ }
+
+ return shareStatus;
+}
diff --git a/projects/js-packages/publicize-components/src/utils/test-utils.js b/projects/js-packages/publicize-components/src/utils/test-utils.js
index 857e4ecc1585d..fa2f326be7bc6 100644
--- a/projects/js-packages/publicize-components/src/utils/test-utils.js
+++ b/projects/js-packages/publicize-components/src/utils/test-utils.js
@@ -118,3 +118,54 @@ export function createActiveConnections( count ) {
},
];
}
+
+const getMethod = options =>
+ options.headers?.[ 'X-HTTP-Method-Override' ] || options.method || 'GET';
+
+/**
+ * Get the mocked fetch handler for post publish fetch requests.
+ *
+ * @param {Record} postData - Data to be used in the fetch request.
+ *
+ * @return {(options: import('@wordpress/api-fetch/build-types/types').APIFetchOptions) => Promise} Promise resolving to the fetch response
+ */
+export function postPublishFetchHandler( postData ) {
+ /**
+ * The mocked fetch handler for post publish fetch requests.
+ *
+ * @param {import('@wordpress/api-fetch/build-types/types').APIFetchOptions} options - Fetch options.
+ *
+ * @return {Promise} Promise resolving to the fetch response
+ */
+ return async function ( options ) {
+ const method = getMethod( options );
+ const { path, data, parse = true } = options;
+
+ const wrapReturn = parse
+ ? v => v
+ : v =>
+ // Ideally we'd do `new Response( JSON.stringify( v ) )` here, but jsdom deletes that. Sigh.
+ // See https://github.com/jsdom/jsdom/issues/1724
+ ( {
+ async json() {
+ return v;
+ },
+ } );
+
+ if ( method === 'PUT' && path.startsWith( `/wp/v2/posts/${ testPost.id }` ) ) {
+ return wrapReturn( { ...postData, ...data } );
+ } else if (
+ // This URL is requested by the actions dispatched in this test.
+ // They are safe to ignore and are only listed here to avoid triggeringan error.
+ method === 'GET' &&
+ path.startsWith( '/wp/v2/types/post' )
+ ) {
+ return wrapReturn( {} );
+ }
+
+ throw {
+ code: 'unknown_path',
+ message: `Unknown path: ${ method } ${ path }`,
+ };
+ };
+}
diff --git a/projects/js-packages/react-data-sync-client/CHANGELOG.md b/projects/js-packages/react-data-sync-client/CHANGELOG.md
index 6f945c3c9ac8e..178b1e3fa0bb9 100644
--- a/projects/js-packages/react-data-sync-client/CHANGELOG.md
+++ b/projects/js-packages/react-data-sync-client/CHANGELOG.md
@@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [0.1.4] - 2024-08-29
+### Changed
+- Updated package dependencies. [#39004]
+- Updated package dependencies. [#39111]
+
## [0.1.3] - 2024-06-10
### Changed
- Updated package dependencies. [#37380]
@@ -42,6 +47,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed
- Added default param for callbacks to prevent crashes when none provided [#34910]
+[0.1.4]: https://github.com/Automattic/jetpack-react-data-sync-client/compare/v0.1.3...v0.1.4
[0.1.3]: https://github.com/Automattic/jetpack-react-data-sync-client/compare/v0.1.2...v0.1.3
[0.1.2]: https://github.com/Automattic/jetpack-react-data-sync-client/compare/v0.1.1...v0.1.2
[0.1.1]: https://github.com/Automattic/jetpack-react-data-sync-client/compare/v0.1.0...v0.1.1
diff --git a/projects/js-packages/react-data-sync-client/changelog/add-enable-more-eslint-rules b/projects/js-packages/react-data-sync-client/changelog/add-enable-more-eslint-rules
deleted file mode 100644
index db4cc1e54899d..0000000000000
--- a/projects/js-packages/react-data-sync-client/changelog/add-enable-more-eslint-rules
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: changed
-Comment: Resolve new eslint sniffs. Should be no changes to functionality.
-
-
diff --git a/projects/js-packages/react-data-sync-client/changelog/try-no-version-bumps-in-trunk b/projects/js-packages/react-data-sync-client/changelog/try-no-version-bumps-in-trunk
deleted file mode 100644
index 91efe85c55e06..0000000000000
--- a/projects/js-packages/react-data-sync-client/changelog/try-no-version-bumps-in-trunk
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: changed
-Comment: Un-bump version numbers in trunk. The build will now update the version numbers as needed for mirrors.
-
-
diff --git a/projects/js-packages/react-data-sync-client/changelog/update-jsdoc-comments-for-wp-coding-standards b/projects/js-packages/react-data-sync-client/changelog/update-jsdoc-comments-for-wp-coding-standards
deleted file mode 100644
index 0e655b2b8b7a3..0000000000000
--- a/projects/js-packages/react-data-sync-client/changelog/update-jsdoc-comments-for-wp-coding-standards
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: changed
-Comment: Reformat jsdoc comments. No change to meaning or functionality.
-
-
diff --git a/projects/js-packages/react-data-sync-client/package.json b/projects/js-packages/react-data-sync-client/package.json
index c87ed178ff0f9..87e2685262309 100644
--- a/projects/js-packages/react-data-sync-client/package.json
+++ b/projects/js-packages/react-data-sync-client/package.json
@@ -1,7 +1,7 @@
{
"private": true,
"name": "@automattic/jetpack-react-data-sync-client",
- "version": "0.1.3",
+ "version": "0.1.4",
"description": "DataSync client for React",
"homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/js-packages/react-data-sync-client/#readme",
"bugs": {
@@ -29,7 +29,7 @@
"react": "18.3.1",
"tslib": "2.5.0",
"typescript": "5.0.4",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1",
"zod": "3.22.3"
},
diff --git a/projects/js-packages/image-guide/changelog/renovate-svelte-4.x b/projects/js-packages/remove-asset-webpack-plugin/changelog/renovate-npm-webpack-vulnerability
similarity index 100%
rename from projects/js-packages/image-guide/changelog/renovate-svelte-4.x
rename to projects/js-packages/remove-asset-webpack-plugin/changelog/renovate-npm-webpack-vulnerability
diff --git a/projects/js-packages/remove-asset-webpack-plugin/package.json b/projects/js-packages/remove-asset-webpack-plugin/package.json
index 9c18f0c6a2ac5..82d6f1a93d3a1 100644
--- a/projects/js-packages/remove-asset-webpack-plugin/package.json
+++ b/projects/js-packages/remove-asset-webpack-plugin/package.json
@@ -21,11 +21,11 @@
},
"devDependencies": {
"jest": "29.7.0",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
},
"peerDependencies": {
- "webpack": "^5.8.0"
+ "webpack": "^5.94.0"
},
"exports": {
".": "./src/index.js"
diff --git a/projects/js-packages/image-guide/changelog/renovate-svelte-preprocess-6.x b/projects/js-packages/storybook/changelog/renovate-npm-webpack-vulnerability
similarity index 100%
rename from projects/js-packages/image-guide/changelog/renovate-svelte-preprocess-6.x
rename to projects/js-packages/storybook/changelog/renovate-npm-webpack-vulnerability
diff --git a/projects/js-packages/storybook/package.json b/projects/js-packages/storybook/package.json
index 729898c526148..6aeae685b5917 100644
--- a/projects/js-packages/storybook/package.json
+++ b/projects/js-packages/storybook/package.json
@@ -67,7 +67,7 @@
"style-loader": "2.0.0",
"ts-dedent": "2.2.0",
"typescript": "5.0.4",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
},
"dependencies": {
diff --git a/projects/js-packages/image-guide/changelog/renovate-yoast-phpunit-polyfills-1.x b/projects/js-packages/svelte-data-sync-client/changelog/renovate-npm-webpack-vulnerability
similarity index 100%
rename from projects/js-packages/image-guide/changelog/renovate-yoast-phpunit-polyfills-1.x
rename to projects/js-packages/svelte-data-sync-client/changelog/renovate-npm-webpack-vulnerability
diff --git a/projects/js-packages/svelte-data-sync-client/package.json b/projects/js-packages/svelte-data-sync-client/package.json
index 71d6112815637..25a51ea543517 100644
--- a/projects/js-packages/svelte-data-sync-client/package.json
+++ b/projects/js-packages/svelte-data-sync-client/package.json
@@ -31,7 +31,7 @@
"svelte": "4.2.18",
"tslib": "2.5.0",
"typescript": "5.0.4",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1",
"zod": "3.22.3"
},
diff --git a/projects/js-packages/react-data-sync-client/changelog/renovate-yoast-phpunit-polyfills-1.x b/projects/js-packages/videopress-core/changelog/renovate-npm-webpack-vulnerability
similarity index 100%
rename from projects/js-packages/react-data-sync-client/changelog/renovate-yoast-phpunit-polyfills-1.x
rename to projects/js-packages/videopress-core/changelog/renovate-npm-webpack-vulnerability
diff --git a/projects/js-packages/videopress-core/package.json b/projects/js-packages/videopress-core/package.json
index 311d09bb60c1c..90aeb4fbdb9a4 100644
--- a/projects/js-packages/videopress-core/package.json
+++ b/projects/js-packages/videopress-core/package.json
@@ -29,7 +29,7 @@
"@types/jest": "29.5.12",
"tslib": "2.5.0",
"typescript": "5.0.4",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
},
"exports": {
diff --git a/projects/js-packages/webpack-config/CHANGELOG.md b/projects/js-packages/webpack-config/CHANGELOG.md
index 1dbc2c8f4fc78..1c56c7a4d75be 100644
--- a/projects/js-packages/webpack-config/CHANGELOG.md
+++ b/projects/js-packages/webpack-config/CHANGELOG.md
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## 3.3.3 - 2024-08-29
+### Changed
+- Updated package dependencies. [#39111]
+
## 3.3.2 - 2024-08-21
### Changed
- Internal updates.
diff --git a/projects/js-packages/webpack-config/package.json b/projects/js-packages/webpack-config/package.json
index 97c9f2640d87d..73946fa946f12 100644
--- a/projects/js-packages/webpack-config/package.json
+++ b/projects/js-packages/webpack-config/package.json
@@ -1,7 +1,7 @@
{
"private": true,
"name": "@automattic/jetpack-webpack-config",
- "version": "3.3.2",
+ "version": "3.3.3",
"description": "Library of pieces for webpack config in Jetpack projects.",
"homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/js-packages/webpack-config/#readme",
"bugs": {
@@ -43,14 +43,14 @@
"@babel/core": "7.24.7",
"@babel/runtime": "7.24.7",
"typescript": "5.0.4",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
},
"peerDependencies": {
"@babel/core": "^7.0.0",
"@babel/runtime": "7.24.7",
"typescript": ">=4.9.5",
- "webpack": "^5.67.0"
+ "webpack": "^5.94.0"
},
"peerDependenciesMeta": {
"@babel/core": {
diff --git a/projects/packages/admin-ui/CHANGELOG.md b/projects/packages/admin-ui/CHANGELOG.md
index 45bad085e6ff2..4fcb27c498e96 100644
--- a/projects/packages/admin-ui/CHANGELOG.md
+++ b/projects/packages/admin-ui/CHANGELOG.md
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [0.4.4] - 2024-08-29
+### Changed
+- Admin menu: change order of Jetpack sub-menu items [#39095]
+
## [0.4.3] - 2024-08-23
### Changed
- Updated package dependencies. [#39004]
@@ -152,6 +156,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed
- Fixing menu visibility issues.
+[0.4.4]: https://github.com/Automattic/jetpack-admin-ui/compare/0.4.3...0.4.4
[0.4.3]: https://github.com/Automattic/jetpack-admin-ui/compare/0.4.2...0.4.3
[0.4.2]: https://github.com/Automattic/jetpack-admin-ui/compare/0.4.1...0.4.2
[0.4.1]: https://github.com/Automattic/jetpack-admin-ui/compare/0.4.0...0.4.1
diff --git a/projects/packages/admin-ui/package.json b/projects/packages/admin-ui/package.json
index 071d8a043b9d4..d507626bfdab0 100644
--- a/projects/packages/admin-ui/package.json
+++ b/projects/packages/admin-ui/package.json
@@ -1,7 +1,7 @@
{
"private": true,
"name": "@automattic/jetpack-admin-ui",
- "version": "0.4.3",
+ "version": "0.4.4",
"description": "Generic Jetpack wp-admin UI elements",
"homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/packages/admin-ui/#readme",
"bugs": {
diff --git a/projects/packages/admin-ui/src/class-admin-menu.php b/projects/packages/admin-ui/src/class-admin-menu.php
index caa7ceed4a461..407271c30c859 100644
--- a/projects/packages/admin-ui/src/class-admin-menu.php
+++ b/projects/packages/admin-ui/src/class-admin-menu.php
@@ -13,7 +13,7 @@
*/
class Admin_Menu {
- const PACKAGE_VERSION = '0.4.3';
+ const PACKAGE_VERSION = '0.4.4';
/**
* Whether this class has been initialized
@@ -58,7 +58,7 @@ function () {
remove_action( 'admin_menu', array( 'Akismet_Admin', 'admin_menu' ), 5 );
// Add an Anti-spam menu item for Jetpack.
- self::add_menu( __( 'Akismet Anti-spam', 'jetpack-admin-ui' ), __( 'Akismet Anti-spam', 'jetpack-admin-ui' ), 'manage_options', 'akismet-key-config', array( 'Akismet_Admin', 'display_page' ) );
+ self::add_menu( __( 'Akismet Anti-spam', 'jetpack-admin-ui' ), __( 'Akismet Anti-spam', 'jetpack-admin-ui' ), 'manage_options', 'akismet-key-config', array( 'Akismet_Admin', 'display_page' ), 6 );
},
4
);
diff --git a/projects/packages/assets/CHANGELOG.md b/projects/packages/assets/CHANGELOG.md
index e5c793def6a7f..9ec4e5ba4f68c 100644
--- a/projects/packages/assets/CHANGELOG.md
+++ b/projects/packages/assets/CHANGELOG.md
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [2.3.5] - 2024-08-29
+### Changed
+- Updated package dependencies. [#39111]
+
## [2.3.4] - 2024-08-23
### Changed
- Updated package dependencies. [#39004]
@@ -482,6 +486,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Statically access asset tools
+[2.3.5]: https://github.com/Automattic/jetpack-assets/compare/v2.3.4...v2.3.5
[2.3.4]: https://github.com/Automattic/jetpack-assets/compare/v2.3.3...v2.3.4
[2.3.3]: https://github.com/Automattic/jetpack-assets/compare/v2.3.2...v2.3.3
[2.3.2]: https://github.com/Automattic/jetpack-assets/compare/v2.3.1...v2.3.2
diff --git a/projects/packages/assets/package.json b/projects/packages/assets/package.json
index 7acf696dc8a5a..7ca99f8b70201 100644
--- a/projects/packages/assets/package.json
+++ b/projects/packages/assets/package.json
@@ -19,7 +19,7 @@
"@wordpress/browserslist-config": "6.5.0",
"jest": "29.7.0",
"md5-es": "1.8.2",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
}
}
diff --git a/projects/packages/plugin-deactivation/changelog/renovate-yoast-phpunit-polyfills-1.x b/projects/packages/backup/changelog/renovate-npm-webpack-vulnerability
similarity index 100%
rename from projects/packages/plugin-deactivation/changelog/renovate-yoast-phpunit-polyfills-1.x
rename to projects/packages/backup/changelog/renovate-npm-webpack-vulnerability
diff --git a/projects/packages/backup/changelog/update-jetpack-menu-item-order b/projects/packages/backup/changelog/update-jetpack-menu-item-order
new file mode 100644
index 0000000000000..4bfbd859ba2bf
--- /dev/null
+++ b/projects/packages/backup/changelog/update-jetpack-menu-item-order
@@ -0,0 +1,4 @@
+Significance: patch
+Type: changed
+
+Admin menu: change order of Jetpack sub-menu items
diff --git a/projects/packages/backup/package.json b/projects/packages/backup/package.json
index 65e4b10ee9a13..028ccc52c2f59 100644
--- a/projects/packages/backup/package.json
+++ b/projects/packages/backup/package.json
@@ -56,7 +56,7 @@
"jest-environment-jsdom": "29.7.0",
"sass": "1.64.1",
"sass-loader": "12.4.0",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
}
}
diff --git a/projects/packages/backup/src/class-jetpack-backup.php b/projects/packages/backup/src/class-jetpack-backup.php
index d75fb1717eaf7..b6e0fd3bafad7 100644
--- a/projects/packages/backup/src/class-jetpack-backup.php
+++ b/projects/packages/backup/src/class-jetpack-backup.php
@@ -124,7 +124,8 @@ public static function initialize() {
_x( 'VaultPress Backup', 'The Jetpack VaultPress Backup product name, without the Jetpack prefix', 'jetpack-backup-pkg' ),
'manage_options',
'jetpack-backup',
- array( __CLASS__, 'plugin_settings_page' )
+ array( __CLASS__, 'plugin_settings_page' ),
+ 7
);
add_action( 'load-' . $page_suffix, array( __CLASS__, 'admin_init' ) );
diff --git a/projects/packages/wp-js-data-sync/changelog/renovate-yoast-phpunit-polyfills-1.x b/projects/packages/blaze/changelog/renovate-npm-webpack-vulnerability
similarity index 100%
rename from projects/packages/wp-js-data-sync/changelog/renovate-yoast-phpunit-polyfills-1.x
rename to projects/packages/blaze/changelog/renovate-npm-webpack-vulnerability
diff --git a/projects/packages/blaze/package.json b/projects/packages/blaze/package.json
index c0d7396e24a05..88518163d68ed 100644
--- a/projects/packages/blaze/package.json
+++ b/projects/packages/blaze/package.json
@@ -44,7 +44,7 @@
"@wordpress/browserslist-config": "6.5.0",
"sass": "1.64.1",
"sass-loader": "12.4.0",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
},
"browserslist": [
diff --git a/projects/plugins/boost/changelog/renovate-definitelytyped b/projects/packages/calypsoify/changelog/renovate-npm-webpack-vulnerability
similarity index 100%
rename from projects/plugins/boost/changelog/renovate-definitelytyped
rename to projects/packages/calypsoify/changelog/renovate-npm-webpack-vulnerability
diff --git a/projects/packages/calypsoify/package.json b/projects/packages/calypsoify/package.json
index c2f1a6e4988ca..162bb378d404f 100644
--- a/projects/packages/calypsoify/package.json
+++ b/projects/packages/calypsoify/package.json
@@ -32,7 +32,7 @@
"core-js": "3.23.5",
"sass": "1.64.1",
"sass-loader": "12.4.0",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
}
}
diff --git a/projects/plugins/boost/changelog/renovate-lock-file-maintenance b/projects/packages/classic-theme-helper/changelog/renovate-npm-webpack-vulnerability
similarity index 100%
rename from projects/plugins/boost/changelog/renovate-lock-file-maintenance
rename to projects/packages/classic-theme-helper/changelog/renovate-npm-webpack-vulnerability
diff --git a/projects/packages/classic-theme-helper/package.json b/projects/packages/classic-theme-helper/package.json
index b4b114b097e25..542f68af2ec9a 100644
--- a/projects/packages/classic-theme-helper/package.json
+++ b/projects/packages/classic-theme-helper/package.json
@@ -37,7 +37,7 @@
"postcss-loader": "6.2.0",
"sass": "1.64.1",
"sass-loader": "12.4.0",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
}
}
diff --git a/projects/packages/connection/CHANGELOG.md b/projects/packages/connection/CHANGELOG.md
index f348d968148a1..ada08c2369ce1 100644
--- a/projects/packages/connection/CHANGELOG.md
+++ b/projects/packages/connection/CHANGELOG.md
@@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [2.12.5] - 2024-08-29
+### Changed
+- Sync: Remove the checksum for active plugins if present when sync is not active, so it gets recalculated when sync gets activated [#39098]
+- Updated package dependencies. [#39111]
+
## [2.12.4] - 2024-08-23
### Changed
- Updated package dependencies. [#39004]
@@ -1162,6 +1167,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Separate the connection library into its own package.
+[2.12.5]: https://github.com/Automattic/jetpack-connection/compare/v2.12.4...v2.12.5
[2.12.4]: https://github.com/Automattic/jetpack-connection/compare/v2.12.3...v2.12.4
[2.12.3]: https://github.com/Automattic/jetpack-connection/compare/v2.12.2...v2.12.3
[2.12.2]: https://github.com/Automattic/jetpack-connection/compare/v2.12.1...v2.12.2
diff --git a/projects/packages/connection/changelog/add-more-eslint-rules b/projects/packages/connection/changelog/add-more-eslint-rules
deleted file mode 100644
index 2b32cb03e644c..0000000000000
--- a/projects/packages/connection/changelog/add-more-eslint-rules
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: fixed
-Comment: Fix new eslint sniffs. Should be no change in functionality.
-
-
diff --git a/projects/packages/connection/package.json b/projects/packages/connection/package.json
index c4cb6197f782e..4d22c790c9fd7 100644
--- a/projects/packages/connection/package.json
+++ b/projects/packages/connection/package.json
@@ -40,7 +40,7 @@
"react-dom": "18.2.0",
"sass": "1.64.1",
"sass-loader": "12.4.0",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
}
}
diff --git a/projects/packages/connection/src/class-package-version.php b/projects/packages/connection/src/class-package-version.php
index 9444c3acb4b2c..05b648572d28a 100644
--- a/projects/packages/connection/src/class-package-version.php
+++ b/projects/packages/connection/src/class-package-version.php
@@ -12,7 +12,7 @@
*/
class Package_Version {
- const PACKAGE_VERSION = '2.12.4';
+ const PACKAGE_VERSION = '2.12.5';
const PACKAGE_SLUG = 'connection';
diff --git a/projects/packages/connection/src/class-plugin-storage.php b/projects/packages/connection/src/class-plugin-storage.php
index 3c5da0fa4db88..21d9402bf0e29 100644
--- a/projects/packages/connection/src/class-plugin-storage.php
+++ b/projects/packages/connection/src/class-plugin-storage.php
@@ -7,6 +7,7 @@
namespace Automattic\Jetpack\Connection;
+use Jetpack_Options;
use WP_Error;
/**
@@ -222,9 +223,14 @@ public static function maybe_update_active_connected_plugins() {
public static function update_active_plugins_option() {
// Note: Since this option is synced to wpcom, if you change its structure, you have to update the sanitizer at wpcom side.
update_option( self::ACTIVE_PLUGINS_OPTION_NAME, self::$plugins );
-
if ( ! class_exists( 'Automattic\Jetpack\Sync\Settings' ) || ! \Automattic\Jetpack\Sync\Settings::is_sync_enabled() ) {
self::update_active_plugins_wpcom_no_sync_fallback();
+ // Remove the checksum for active plugins, so it gets recalculated when sync gets activated.
+ $jetpack_callables_sync_checksum = Jetpack_Options::get_raw_option( 'jetpack_callables_sync_checksum' );
+ if ( isset( $jetpack_callables_sync_checksum['jetpack_connection_active_plugins'] ) ) {
+ unset( $jetpack_callables_sync_checksum['jetpack_connection_active_plugins'] );
+ Jetpack_Options::update_raw_option( 'jetpack_callables_sync_checksum', $jetpack_callables_sync_checksum );
+ }
}
}
diff --git a/projects/packages/explat/CHANGELOG.md b/projects/packages/explat/CHANGELOG.md
index c78f47ffc30fa..f21f4f6e5b5ca 100644
--- a/projects/packages/explat/CHANGELOG.md
+++ b/projects/packages/explat/CHANGELOG.md
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [0.1.5] - 2024-08-29
+### Changed
+- Updated package dependencies. [#39111]
+
## [0.1.4] - 2024-08-26
### Changed
- Updated package dependencies. [#39004]
@@ -31,6 +35,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- ExPlat: add condition to prevent fetching the experiment assignment if there's not anon id (meaning that Tracks is likely disabled) [#38327]
- Updated package dependencies. [#38132]
+[0.1.5]: https://github.com/Automattic/jetpack-explat/compare/v0.1.4...v0.1.5
[0.1.4]: https://github.com/Automattic/jetpack-explat/compare/v0.1.3...v0.1.4
[0.1.3]: https://github.com/Automattic/jetpack-explat/compare/v0.1.2...v0.1.3
[0.1.2]: https://github.com/Automattic/jetpack-explat/compare/v0.1.1...v0.1.2
diff --git a/projects/packages/explat/package.json b/projects/packages/explat/package.json
index 56a1a4dc5f259..ec471c50d61e8 100644
--- a/projects/packages/explat/package.json
+++ b/projects/packages/explat/package.json
@@ -1,7 +1,7 @@
{
"private": true,
"name": "@automattic/jetpack-explat",
- "version": "0.1.4",
+ "version": "0.1.5",
"description": "A package for running A/B tests on the Experimentation Platform (ExPlat) in the plugin.",
"homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/packages/explat/#readme",
"bugs": {
@@ -29,7 +29,7 @@
"@types/qs": "6.9.15",
"jest": "29.7.0",
"typescript": "5.0.4",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
},
"exports": {
diff --git a/projects/packages/explat/src/class-explat.php b/projects/packages/explat/src/class-explat.php
index 2e67a042d239b..4ca261a4dcf7e 100644
--- a/projects/packages/explat/src/class-explat.php
+++ b/projects/packages/explat/src/class-explat.php
@@ -20,7 +20,7 @@ class ExPlat {
*
* @var string
*/
- const PACKAGE_VERSION = '0.1.4';
+ const PACKAGE_VERSION = '0.1.5';
/**
* Initializer.
diff --git a/projects/packages/forms/changelog/fix-choice-field-caret b/projects/packages/forms/changelog/fix-choice-field-caret
new file mode 100644
index 0000000000000..93120cce24a34
--- /dev/null
+++ b/projects/packages/forms/changelog/fix-choice-field-caret
@@ -0,0 +1,5 @@
+Significance: patch
+Type: fixed
+Comment: Move Single and Multiple Choice input caret to the end on focus
+
+
diff --git a/projects/plugins/boost/changelog/renovate-storybook-monorepo b/projects/packages/forms/changelog/renovate-npm-webpack-vulnerability
similarity index 100%
rename from projects/plugins/boost/changelog/renovate-storybook-monorepo
rename to projects/packages/forms/changelog/renovate-npm-webpack-vulnerability
diff --git a/projects/packages/forms/package.json b/projects/packages/forms/package.json
index 8812adb7693aa..f2069286ad9d0 100644
--- a/projects/packages/forms/package.json
+++ b/projects/packages/forms/package.json
@@ -54,7 +54,7 @@
"redux-thunk": "2.3.0",
"sass": "1.64.1",
"semver": "7.5.2",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
},
"devDependencies": {
diff --git a/projects/packages/forms/src/blocks/contact-form/components/jetpack-field-option.js b/projects/packages/forms/src/blocks/contact-form/components/jetpack-field-option.js
index c96230db51222..9ba0c4477d69c 100644
--- a/projects/packages/forms/src/blocks/contact-form/components/jetpack-field-option.js
+++ b/projects/packages/forms/src/blocks/contact-form/components/jetpack-field-option.js
@@ -1,10 +1,12 @@
import { RichText, useBlockProps } from '@wordpress/block-editor';
import { createBlock } from '@wordpress/blocks';
import { useDispatch, useSelect } from '@wordpress/data';
+import { useEffect } from '@wordpress/element';
import { __ } from '@wordpress/i18n';
import clsx from 'clsx';
import { first } from 'lodash';
import { supportsParagraphSplitting } from '../util/block-support';
+import { moveCaretToEnd } from '../util/caret';
import { useParentAttributes } from '../util/use-parent-attributes';
import { useJetpackFieldStyles } from './use-jetpack-field-styles';
@@ -44,10 +46,22 @@ export const JetpackFieldOptionEdit = ( {
removeBlock( clientId );
};
+ const handleFocus = e => moveCaretToEnd( e.target );
+
const supportsSplitting = supportsParagraphSplitting();
const type = name.replace( 'jetpack/field-option-', '' );
const classes = clsx( 'jetpack-field-option', `field-option-${ type }` );
+ useEffect( () => {
+ const input = document.getElementById( blockProps.id );
+
+ input?.addEventListener( 'focus', handleFocus );
+
+ return () => {
+ input?.removeEventListener( 'focus', handleFocus );
+ };
+ }, [ blockProps.id ] );
+
return (
diff --git a/projects/packages/forms/src/blocks/contact-form/util/caret.js b/projects/packages/forms/src/blocks/contact-form/util/caret.js
index a5748ff3cd88b..253f0498d235d 100644
--- a/projects/packages/forms/src/blocks/contact-form/util/caret.js
+++ b/projects/packages/forms/src/blocks/contact-form/util/caret.js
@@ -20,3 +20,24 @@ export const getCaretPosition = target => {
return preCaretRange.toString().length;
};
+
+/**
+ * Move the caret position in an active contenteditable element to the end
+ *
+ * @param {HTMLElement} target - Contenteditable element of which to move the caret
+ */
+export const moveCaretToEnd = target => {
+ if ( 'undefined' === typeof window ) {
+ return;
+ }
+
+ // Add the contenteditable element to a new selection and collapse it to the end
+ const range = document.createRange();
+ range.selectNodeContents( target );
+ range.collapse( false );
+
+ // Clear the window selection object and add the new selection
+ const selection = window.getSelection();
+ selection.removeAllRanges();
+ selection.addRange( range );
+};
diff --git a/projects/packages/image-cdn/CHANGELOG.md b/projects/packages/image-cdn/CHANGELOG.md
index 81868c8b93be7..b658e82aba942 100644
--- a/projects/packages/image-cdn/CHANGELOG.md
+++ b/projects/packages/image-cdn/CHANGELOG.md
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [0.4.7] - 2024-08-29
+### Changed
+- Rely on WordPress HTML API to parse HTML instead of Regex [#32700]
+
## [0.4.6] - 2024-08-26
### Changed
- Updated package dependencies. [#39004]
@@ -114,6 +118,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
- Add image CDN package. [#29561]
+[0.4.7]: https://github.com/Automattic/jetpack-image-cdn/compare/v0.4.6...v0.4.7
[0.4.6]: https://github.com/Automattic/jetpack-image-cdn/compare/v0.4.5...v0.4.6
[0.4.5]: https://github.com/Automattic/jetpack-image-cdn/compare/v0.4.4...v0.4.5
[0.4.4]: https://github.com/Automattic/jetpack-image-cdn/compare/v0.4.3...v0.4.4
diff --git a/projects/packages/image-cdn/src/class-image-cdn.php b/projects/packages/image-cdn/src/class-image-cdn.php
index 2aa47aeada031..13921df4355a9 100644
--- a/projects/packages/image-cdn/src/class-image-cdn.php
+++ b/projects/packages/image-cdn/src/class-image-cdn.php
@@ -12,7 +12,7 @@
*/
final class Image_CDN {
- const PACKAGE_VERSION = '0.4.6';
+ const PACKAGE_VERSION = '0.4.7';
/**
* Singleton.
@@ -333,297 +333,360 @@ public static function parse_dimensions_from_filename( $src ) {
* @return string
*/
public static function filter_the_content( $content ) {
- $images = self::parse_images_from_html( $content );
+ static $image_tags = array( 'IMG', 'AMP-IMG', 'AMP-ANIM' );
+ $content_width = null;
+ $image_sizes = null;
+ $upload_dir = null;
+ $processor = new \WP_HTML_Tag_Processor( $content );
+ $nearest_preceding_href = null;
+
+ // Visit every image-containing tag in the document.
+ while ( $processor->next_tag( array( 'tag_closers' => 'visit' ) ) ) {
+ /*
+ * When an image is wrapped by an A element, the goal is to modify
+ * both elements. Thus it's important to track links that may be
+ * opened before reaching any image. In normative HTML this detection
+ * is reliable enough, but it could be confused in cases where other
+ * tags implicitly close the A. If this additional reliability is
+ * required, replace the Tag Processor with the HTML Processor.
+ */
+ if ( 'A' === $processor->get_tag() ) {
+ // If this is a closing tag the attribute will be `null`.
+ $nearest_preceding_href = $processor->get_attribute( 'href' );
+ $processor->set_bookmark( 'link' );
+ continue;
+ }
- if ( ! empty( $images ) ) {
- $content_width = Image_CDN_Core::get_jetpack_content_width();
+ /*
+ * Only examine tags that are considered an image. If encountering
+ * a closing tag then this is not the image being sought.
+ */
+ if ( $processor->is_tag_closer() || ! in_array( $processor->get_tag(), $image_tags, true ) ) {
+ continue;
+ }
- $image_sizes = self::image_sizes();
+ $processor->set_bookmark( 'image' );
- $upload_dir = wp_get_upload_dir();
+ /*
+ * At this point a target image has been found. Initialize the
+ * shared data and then process each image as it appears.
+ */
+ if ( null === $content_width ) {
+ $content_width = Image_CDN_Core::get_jetpack_content_width();
+ $image_sizes = self::image_sizes();
+ $upload_dir = wp_get_upload_dir();
+ }
- foreach ( $images[0] as $index => $tag ) {
- // Default to resize, though fit may be used in certain cases where a dimension cannot be ascertained.
- $transform = 'resize';
+ /*
+ * To preserve legacy behaviors for filtering by third-party plugins,
+ * create a normalized HTML string representing the tag. This will
+ * present all attributes as double-quoted attributes and include at
+ * most one copy of each attribute, escaping all values appropriately.
+ */
+ $tag_name = strtolower( $processor->get_tag() );
+ $tag = new \WP_HTML_Tag_Processor( "<{$tag_name}>" );
+ $tag->next_tag();
+ foreach ( $processor->get_attribute_names_with_prefix( '' ) ?? array() as $name ) {
+ $tag->set_attribute( $name, $processor->get_attribute( $name ) );
+ }
+ $tag = $tag->get_updated_html();
- // Start with a clean attachment ID each time.
- $attachment_id = false;
+ // Default to resize, though fit may be used in certain cases where a dimension cannot be ascertained.
+ $transform = 'resize';
- // Flag if we need to munge a fullsize URL.
- $fullsize_url = false;
+ // Flag if we need to munge a fullsize URL.
+ $fullsize_url = false;
- // Identify image source.
- $src_orig = $images['img_url'][ $index ];
- $src = $src_orig;
+ // Identify image source.
+ $src_orig = $processor->get_attribute( 'src' );
+ $src = $src_orig;
- /**
- * Allow specific images to be skipped by Photon.
- *
- * @module photon
- *
- * @since 2.0.3
- *
- * @param bool false Should Photon ignore this image. Default to false.
- * @param string $src Image URL.
- * @param string|array|null $tag Image Tag (Image HTML output) or array of image details for srcset.
- */
- if ( apply_filters( 'jetpack_photon_skip_image', false, $src, $tag ) ) {
- continue;
- }
-
- // Support Automattic's Lazy Load plugin.
- // Can't modify $tag yet as we need unadulterated version later.
- if ( preg_match( '#data-lazy-src=["\'](.+?)["\']#i', $images['img_tag'][ $index ], $lazy_load_src ) ) {
- $placeholder_src_orig = $src;
- $placeholder_src = $placeholder_src_orig;
- $src_orig = $lazy_load_src[1];
- $src = $src_orig;
- } elseif ( preg_match( '#data-lazy-original=["\'](.+?)["\']#i', $images['img_tag'][ $index ], $lazy_load_src ) ) {
- $placeholder_src_orig = $src;
- $placeholder_src = $placeholder_src_orig;
- $src_orig = $lazy_load_src[1];
- $src = $src_orig;
- }
-
- // Check if image URL should be used with Photon.
- if ( self::validate_image_url( $src ) ) {
- // Find the width and height attributes.
- $width = false;
- $height = false;
-
- // First, check the image tag. Note we only check for pixel sizes now; HTML4 percentages have never been correctly
- // supported, so we stopped pretending to support them in JP 9.1.0.
- if ( preg_match( '#[\s"\']width=["\']?([\d%]+)["\']?#i', $images['img_tag'][ $index ], $width_string ) ) {
- $width = str_contains( $width_string[1], '%' ) ? false : $width_string[1];
- }
+ /**
+ * Allow specific images to be skipped by Photon.
+ *
+ * @module photon
+ *
+ * @since 2.0.3
+ *
+ * @param bool false Should Photon ignore this image. Default to false.
+ * @param string $src Image URL.
+ * @param string|array|null $tag Image Tag (Image HTML output) or array of image details for srcset.
+ */
+ if ( apply_filters( 'jetpack_photon_skip_image', false, $src, $tag ) ) {
+ continue;
+ }
- if ( preg_match( '#[\s"\']height=["\']?([\d%]+)["\']?#i', $images['img_tag'][ $index ], $height_string ) ) {
- $height = str_contains( $height_string[1], '%' ) ? false : $height_string[1];
- }
+ $data_lazy_src = $processor->get_attribute( 'data-lazy-src' );
+ $data_lazy_original = $processor->get_attribute( 'data-lazy-original' );
- // Detect WP registered image size from HTML class.
- if ( preg_match( '#class=["\']?[^"\']*size-([^"\'\s]+)[^"\']*["\']?#i', $images['img_tag'][ $index ], $size ) ) {
- $size = array_pop( $size );
+ $source_type = 'src';
+ $chosen_data_src = null;
- if ( false === $width && false === $height && 'full' !== $size && array_key_exists( $size, $image_sizes ) ) {
- $width = (int) $image_sizes[ $size ]['width'];
- $height = (int) $image_sizes[ $size ]['height'];
- $transform = $image_sizes[ $size ]['crop'] ? 'resize' : 'fit';
- }
- } else {
- unset( $size );
- }
+ // Prefer a URL from the `data-lazy-src` attribute.
+ if ( null === $chosen_data_src && is_string( $data_lazy_src ) && ! empty( $data_lazy_src ) ) {
+ $source_type = 'data-lazy-src';
+ $chosen_data_src = $data_lazy_src;
+ }
- // WP Attachment ID, if uploaded to this site.
- if (
- preg_match( '#class=["\']?[^"\']*wp-image-([\d]+)[^"\']*["\']?#i', $images['img_tag'][ $index ], $attachment_id ) &&
- str_starts_with( $src, $upload_dir['baseurl'] ) &&
- /**
- * Filter whether an image using an attachment ID in its class has to be uploaded to the local site to go through Photon.
- *
- * @module photon
- *
- * @since 2.0.3
- *
- * @param bool false Was the image uploaded to the local site. Default to false.
- * @param array $args {
- * Array of image details.
- *
- * @type $src Image URL.
- * @type tag Image tag (Image HTML output).
- * @type $images Array of information about the image.
- * @type $index Image index.
- * }
- */
- apply_filters( 'jetpack_photon_image_is_local', false, compact( 'src', 'tag', 'images', 'index' ) )
- ) {
- $attachment_id = (int) array_pop( $attachment_id );
-
- if ( $attachment_id ) {
- $attachment = get_post( $attachment_id );
-
- // Basic check on returned post object.
- if ( is_object( $attachment ) && ! is_wp_error( $attachment ) && 'attachment' === $attachment->post_type ) {
- $src_per_wp = wp_get_attachment_image_src( $attachment_id, isset( $size ) ? $size : 'full' );
-
- if ( self::validate_image_url( $src_per_wp[0] ) ) {
- $src = $src_per_wp[0];
- $fullsize_url = true;
-
- // Prevent image distortion if a detected dimension exceeds the image's natural dimensions.
- if ( ( false !== $width && $width > $src_per_wp[1] ) || ( false !== $height && $height > $src_per_wp[2] ) ) {
- $width = false === $width ? false : min( $width, $src_per_wp[1] );
- $height = false === $height ? false : min( $height, $src_per_wp[2] );
- }
-
- // If no width and height are found, max out at source image's natural dimensions.
- // Otherwise, respect registered image sizes' cropping setting.
- if ( false === $width && false === $height ) {
- $width = $src_per_wp[1];
- $height = $src_per_wp[2];
- $transform = 'fit';
- } elseif ( isset( $size ) && array_key_exists( $size, $image_sizes ) && isset( $image_sizes[ $size ]['crop'] ) ) {
- $transform = (bool) $image_sizes[ $size ]['crop'] ? 'resize' : 'fit';
- }
- }
- } else {
- unset( $attachment_id );
- unset( $attachment );
- }
- }
- }
+ // Fall back to a URL from the `data-lazy-original` attribute.
+ if ( null === $chosen_data_src && is_string( $data_lazy_original ) && ! empty( $data_lazy_original ) ) {
+ $source_type = 'data-lazy-original';
+ $chosen_data_src = $data_lazy_original;
+ }
- // If image tag lacks width and height arguments, try to determine from strings WP appends to resized image filenames.
- if ( false === $width && false === $height ) {
- list( $width, $height ) = self::parse_dimensions_from_filename( $src );
- }
+ // Update the src if one was provided in the `data-lazy-` attributes.
+ if ( 'src' !== $source_type ) {
+ $placeholder_src_orig = $src;
+ $placeholder_src = $placeholder_src_orig;
+ $src_orig = $chosen_data_src;
+ $src = $src_orig;
+ }
- $width_orig = $width;
- $height_orig = $height;
- $transform_orig = $transform;
+ // Check if image URL should be used with Photon.
+ if ( self::validate_image_url( $src ) ) {
+ $width = $processor->get_attribute( 'width' );
+ $height = $processor->get_attribute( 'height' );
+
+ // First, check the image tag. Note we only check for pixel sizes now; HTML4 percentages have never been correctly
+ // supported, so we stopped pretending to support them in JP 9.1.0.
+ if ( ! is_string( $width ) || str_contains( $width, '%' ) ) {
+ $width = false;
+ }
- // If width is available, constrain to $content_width.
- if ( false !== $width && is_numeric( $content_width ) && $width > $content_width ) {
- if ( false !== $height ) {
- $height = round( ( $content_width * $height ) / $width );
- }
- $width = $content_width;
- }
+ if ( ! is_string( $height ) || str_contains( $height, '%' ) ) {
+ $height = false;
+ }
- // Set a width if none is found and $content_width is available.
- // If width is set in this manner and height is available, use `fit` instead of `resize` to prevent skewing.
- if ( false === $width && is_numeric( $content_width ) ) {
- $width = (int) $content_width;
+ $needs_sizing = false === $width && false === $height;
+ $size = null;
- if ( false !== $height ) {
- $transform = 'fit';
+ if ( $needs_sizing ) {
+ // Find the first CSS class listed with a prefix of `size-`, e.g. `size-full-width`
+ foreach ( $processor->class_list() ?? array() as $class_name ) {
+ if ( str_starts_with( $class_name, 'size-' ) ) {
+ $size = substr( $class_name, strlen( 'size-' ) );
+ break;
}
}
+ }
- // Detect if image source is for a custom-cropped thumbnail and prevent further URL manipulation.
- if ( ! $fullsize_url && preg_match_all( '#-e[a-z0-9]+(-\d+x\d+)?\.(' . implode( '|', self::$extensions ) . '){1}$#i', basename( $src ), $filename ) ) {
- $fullsize_url = true;
- }
-
- // Build URL, first maybe removing WP's resized string so we pass the original image to Photon.
- if ( ! $fullsize_url && str_starts_with( $src, $upload_dir['baseurl'] ) ) {
- $src = self::strip_image_dimensions_maybe( $src );
- }
-
- // Build array of Photon args and expose to filter before passing to Photon URL function.
- $args = array();
+ if ( $needs_sizing && 'full' !== $size && is_string( $size ) && isset( $image_sizes[ $size ] ) && is_array( $image_sizes[ $size ] ) ) {
+ $width = (int) $image_sizes[ $size ]['width'];
+ $height = (int) $image_sizes[ $size ]['height'];
+ $transform = $image_sizes[ $size ]['crop'] ? 'resize' : 'fit';
+ } else {
+ unset( $size );
+ }
- if ( false !== $width && false !== $height ) {
- $args[ $transform ] = $width . ',' . $height;
- } elseif ( false !== $width ) {
- $args['w'] = $width;
- } elseif ( false !== $height ) {
- $args['h'] = $height;
+ // WP Attachment ID, if uploaded to this site.
+ $attachment_id = null;
+ foreach ( $processor->class_list() ?? array() as $class_name ) {
+ if ( str_starts_with( $class_name, 'wp-image-' ) ) {
+ $attachment_id = substr( $class_name, strlen( 'wp-image-' ) );
+ break;
}
+ }
+ // These values have not been used for a very long time, but removing them could break something.
+ $images = array();
+ $index = 0;
+ if (
+ $attachment_id &&
+ preg_match( '#^[1-9][0-9]*$#', $attachment_id ) &&
+ is_array( $upload_dir ) &&
+ str_starts_with( $src, $upload_dir['baseurl'] ) &&
/**
- * Filter the array of Photon arguments added to an image when it goes through Photon.
- * By default, only includes width and height values.
- *
- * @see https://developer.wordpress.com/docs/photon/api/
+ * Filter whether an image using an attachment ID in its class has to be uploaded to the local site to go through Photon.
*
* @module photon
*
- * @since 2.0.0
+ * @since 2.0.3
*
- * @param array $args Array of Photon Arguments.
- * @param array $details {
- * Array of image details.
+ * @param bool false Was the image uploaded to the local site. Default to false.
+ * @param array $args {
+ * Array of image details.
*
- * @type string $tag Image tag (Image HTML output).
- * @type string $src Image URL.
- * @type string $src_orig Original Image URL.
- * @type int|false $width Image width.
- * @type int|false $height Image height.
- * @type int|false $width_orig Original image width before constrained by content_width.
- * @type int|false $height_orig Original Image height before constrained by content_width.
- * @type string $transform Transform.
- * @type string $transform_orig Original transform before constrained by content_width.
+ * @type $src Image URL.
+ * @type tag Image tag (Image HTML output).
* }
*/
- $args = apply_filters( 'jetpack_photon_post_image_args', $args, compact( 'tag', 'src', 'src_orig', 'width', 'height', 'width_orig', 'height_orig', 'transform', 'transform_orig' ) );
+ apply_filters( 'jetpack_photon_image_is_local', false, compact( 'src', 'tag', 'images', 'index' ) )
+ ) {
+ $attachment_id = (int) $attachment_id;
+ $attachment = get_post( $attachment_id );
+
+ // Basic check on returned post object.
+ if ( is_object( $attachment ) && ! is_wp_error( $attachment ) && 'attachment' === $attachment->post_type ) {
+ $src_per_wp = wp_get_attachment_image_src( $attachment_id, isset( $size ) ? $size : 'full' );
+
+ if ( self::validate_image_url( $src_per_wp[0] ) ) {
+ $src = $src_per_wp[0];
+ $fullsize_url = true;
+
+ // Prevent image distortion if a detected dimension exceeds the image's natural dimensions.
+ if ( ( false !== $width && $width > $src_per_wp[1] ) || ( false !== $height && $height > $src_per_wp[2] ) ) {
+ $width = false === $width ? false : min( $width, $src_per_wp[1] );
+ $height = false === $height ? false : min( $height, $src_per_wp[2] );
+ }
- $photon_url = Image_CDN_Core::cdn_url( $src, $args );
+ // If no width and height are found, max out at source image's natural dimensions.
+ // Otherwise, respect registered image sizes' cropping setting.
+ if ( false === $width && false === $height ) {
+ $width = $src_per_wp[1];
+ $height = $src_per_wp[2];
+ $transform = 'fit';
+ } elseif ( isset( $size ) && is_array( $image_sizes ) && array_key_exists( $size, $image_sizes ) && isset( $image_sizes[ $size ]['crop'] ) ) {
+ $transform = $image_sizes[ $size ]['crop'] ? 'resize' : 'fit';
+ }
+ }
+ } else {
+ unset( $attachment_id );
+ unset( $attachment );
+ }
+ }
- // Modify image tag if Photon function provides a URL
- // Ensure changes are only applied to the current image by copying and modifying the matched tag, then replacing the entire tag with our modified version.
- if ( $src !== $photon_url ) {
- $new_tag = $tag;
+ // If image tag lacks width and height arguments, try to determine from strings WP appends to resized image filenames.
+ if ( false === $width && false === $height ) {
+ list( $width, $height ) = self::parse_dimensions_from_filename( $src );
+ }
- // If present, replace the link href with a Photoned URL for the full-size image.
- if ( ! empty( $images['link_url'][ $index ] ) && self::validate_image_url( $images['link_url'][ $index ] ) ) {
- $new_tag = preg_replace( '#(href=["|\'])' . preg_quote( $images['link_url'][ $index ], '#' ) . '(["|\'])#i', '\1' . Image_CDN_Core::cdn_url( $images['link_url'][ $index ] ) . '\2', $new_tag, 1 );
- }
+ $width_orig = $width;
+ $height_orig = $height;
+ $transform_orig = $transform;
- // Supplant the original source value with our Photon URL.
- $photon_url = esc_url( $photon_url );
- $new_tag = str_replace( $src_orig, $photon_url, $new_tag );
+ // If width is available, constrain to $content_width.
+ if ( false !== $width && is_numeric( $content_width ) && $width > $content_width ) {
+ if ( false !== $height ) {
+ $height = round( ( $content_width * $height ) / $width );
+ }
+ $width = $content_width;
+ }
- // If Lazy Load is in use, pass placeholder image through Photon.
- if ( isset( $placeholder_src ) && self::validate_image_url( $placeholder_src ) ) {
- $placeholder_src = Image_CDN_Core::cdn_url( $placeholder_src );
+ // Set a width if none is found and $content_width is available.
+ // If width is set in this manner and height is available, use `fit` instead of `resize` to prevent skewing.
+ if ( false === $width && is_numeric( $content_width ) ) {
+ $width = (int) $content_width;
- if ( $placeholder_src !== $placeholder_src_orig ) {
- $new_tag = str_replace( $placeholder_src_orig, esc_url( $placeholder_src ), $new_tag );
- }
+ if ( false !== $height ) {
+ $transform = 'fit';
+ }
+ }
- unset( $placeholder_src );
- }
+ // Detect if image source is for a custom-cropped thumbnail and prevent further URL manipulation.
+ if ( ! $fullsize_url && preg_match_all( '#-e[a-z0-9]+(-\d+x\d+)?\.(' . implode( '|', self::$extensions ) . '){1}$#i', basename( $src ), $filename ) ) {
+ $fullsize_url = true;
+ }
- // If we are not transforming the image with resize, fit, or letterbox (lb), then we should remove
- // the width and height arguments (including HTML4 percentages) from the image to prevent distortion.
- // Even if $args['w'] and $args['h'] are present, Photon does not crop to those dimensions. Instead,
- // it appears to favor height.
- //
- // If we are transforming the image via one of those methods, let's update the width and height attributes.
- if ( empty( $args['resize'] ) && empty( $args['fit'] ) && empty( $args['lb'] ) ) {
- $new_tag = preg_replace( '#(?<=\s)(width|height)=["\']?[\d%]+["\']?\s?#i', '', $new_tag );
- } else {
- $resize_args = isset( $args['resize'] ) ? $args['resize'] : false;
- if ( false === $resize_args ) {
- $resize_args = ( ! $resize_args && isset( $args['fit'] ) )
- ? $args['fit']
- : false;
- }
- if ( false === $resize_args ) {
- $resize_args = ( ! $resize_args && isset( $args['lb'] ) )
- ? $args['lb']
- : false;
- }
+ // Build URL, first maybe removing WP's resized string so we pass the original image to Photon.
+ if ( ! $fullsize_url && is_array( $upload_dir ) && str_starts_with( $src, $upload_dir['baseurl'] ) ) {
+ $src = self::strip_image_dimensions_maybe( $src );
+ }
+
+ // Build array of Photon args and expose to filter before passing to Photon URL function.
+ $args = array();
+
+ if ( false !== $width && false !== $height ) {
+ $args[ $transform ] = $width . ',' . $height;
+ } elseif ( false !== $width ) {
+ $args['w'] = $width;
+ } elseif ( false !== $height ) {
+ $args['h'] = $height;
+ }
+
+ /**
+ * Filter the array of Photon arguments added to an image when it goes through Photon.
+ * By default, only includes width and height values.
+ *
+ * @see https://developer.wordpress.com/docs/photon/api/
+ *
+ * @module photon
+ *
+ * @since 2.0.0
+ * @since 0.4.7 Passes image tag name instead of full HTML of tag.
+ *
+ * @param array $args Array of Photon Arguments.
+ * @param array $details {
+ * Array of image details.
+ *
+ * @type string $tag Image tag (Image HTML output).
+ * @type string $src Image URL.
+ * @type string $src_orig Original Image URL.
+ * @type int|false $width Image width.
+ * @type int|false $height Image height.
+ * @type int|false $width_orig Original image width before constrained by content_width.
+ * @type int|false $height_orig Original Image height before constrained by content_width.
+ * @type string $transform Transform.
+ * @type string $transform_orig Original transform before constrained by content_width.
+ * }
+ */
+ $args = apply_filters( 'jetpack_photon_post_image_args', $args, compact( 'tag', 'src', 'src_orig', 'width', 'height', 'width_orig', 'height_orig', 'transform', 'transform_orig' ) );
+
+ $photon_url = Image_CDN_Core::cdn_url( $src, $args );
+
+ // Modify image tag if Photon function provides a URL
+ // Ensure changes are only applied to the current image by copying and modifying the matched tag, then replacing the entire tag with our modified version.
+ if ( $src !== $photon_url ) {
+ // If present, replace the link href with a Photoned URL for the full-size image.
+ if ( is_string( $nearest_preceding_href ) && self::validate_image_url( $nearest_preceding_href ) ) {
+ $processor->seek( 'link' );
+ $processor->set_attribute( 'href', Image_CDN_Core::cdn_url( $nearest_preceding_href ) );
+ $processor->seek( 'image' );
+ }
+
+ // Supplant the original source value with our Photon URL.
+ $processor->set_attribute( 'src', $photon_url );
- $resize_args = array_map( 'trim', explode( ',', $resize_args ) );
+ // If Lazy Load is in use, pass placeholder image through Photon.
+ if ( isset( $placeholder_src ) && self::validate_image_url( $placeholder_src ) ) {
+ $placeholder_src = Image_CDN_Core::cdn_url( $placeholder_src );
- // (?<=\s) - Ensure width or height attribute is preceded by a space
- // (width=["\']?) - Matches, and captures, width=, width=", or width='
- // [\d%]+ - Matches 1 or more digits or percent signs
- // (["\']?) - Matches, and captures, ", ', or empty string
- // \s - Ensures there's a space after the attribute
- $new_tag = preg_replace( '#(?<=\s)(width=["\']?)[\d%]+(["\']?)\s?#i', sprintf( '${1}%d${2} ', $resize_args[0] ), $new_tag );
- $new_tag = preg_replace( '#(?<=\s)(height=["\']?)[\d%]+(["\']?)\s?#i', sprintf( '${1}%d${2} ', $resize_args[1] ), $new_tag );
+ if ( $placeholder_src !== $placeholder_src_orig ) {
+ $processor->set_attribute( $source_type, $placeholder_src );
}
- // Tag an image for dimension checking.
- if ( ! self::is_amp_endpoint() ) {
- $new_tag = preg_replace( '#(\s?/)?>(\s*)?$#i', ' data-recalc-dims="1"\1>\2', $new_tag );
+ unset( $placeholder_src );
+ }
+
+ // If we are not transforming the image with resize, fit, or letterbox (lb), then we should remove
+ // the width and height arguments (including HTML4 percentages) from the image to prevent distortion.
+ // Even if $args['w'] and $args['h'] are present, Photon does not crop to those dimensions. Instead,
+ // it appears to favor height.
+ //
+ // If we are transforming the image via one of those methods, let's update the width and height attributes.
+ if ( empty( $args['resize'] ) && empty( $args['fit'] ) && empty( $args['lb'] ) ) {
+ $processor->remove_attribute( 'width' );
+ $processor->remove_attribute( 'height' );
+ } else {
+ $resize_args = isset( $args['resize'] ) ? $args['resize'] : false;
+ if ( false === $resize_args ) {
+ $resize_args = ( ! $resize_args && isset( $args['fit'] ) )
+ ? $args['fit']
+ : false;
+ }
+ if ( false === $resize_args ) {
+ $resize_args = ( ! $resize_args && isset( $args['lb'] ) )
+ ? $args['lb']
+ : false;
}
- // Replace original tag with modified version.
- $content = str_replace( $tag, $new_tag, $content );
+ list( $resize_width, $resize_height ) = explode( ',', $resize_args );
+ $processor->set_attribute( 'width', trim( $resize_width ) );
+ $processor->set_attribute( 'height', trim( $resize_height ) );
}
- } elseif ( preg_match( '#^http(s)?://i[\d]{1}.wp.com#', $src ) && ! empty( $images['link_url'][ $index ] ) && self::validate_image_url( $images['link_url'][ $index ] ) ) {
- $new_tag = preg_replace( '#(href=["\'])' . preg_quote( $images['link_url'][ $index ], '#' ) . '(["\'])#i', '\1' . Image_CDN_Core::cdn_url( $images['link_url'][ $index ] ) . '\2', $tag, 1 );
- $content = str_replace( $tag, $new_tag, $content );
+ // Tag an image for dimension checking.
+ if ( ! self::is_amp_endpoint() ) {
+ $processor->set_attribute( 'data-recalc-dims', '1' );
+ }
}
+ } elseif ( preg_match( '#^http(s)?://i[\d]{1}.wp.com#', $src ) && is_string( $nearest_preceding_href ) && self::validate_image_url( $nearest_preceding_href ) ) {
+ $processor->seek( 'link' );
+ $processor->set_attribute( 'href', Image_CDN_Core::cdn_url( $nearest_preceding_href ) );
+ $processor->seek( 'image' );
}
}
- return $content;
+ return $processor->get_updated_html();
}
/**
diff --git a/projects/packages/image-cdn/tests/php/sample-content/a-tags-with-hash-href.html b/projects/packages/image-cdn/tests/php/sample-content/a-tags-with-hash-href.html
index 4b2c58ea0ce9e..266fdcebd587a 100644
--- a/projects/packages/image-cdn/tests/php/sample-content/a-tags-with-hash-href.html
+++ b/projects/packages/image-cdn/tests/php/sample-content/a-tags-with-hash-href.html
@@ -1,5 +1,5 @@
--RESULTS--
-
+
diff --git a/projects/plugins/boost/changelog/renovate-wordpress-monorepo b/projects/packages/jetpack-mu-wpcom/changelog/renovate-npm-webpack-vulnerability
similarity index 100%
rename from projects/plugins/boost/changelog/renovate-wordpress-monorepo
rename to projects/packages/jetpack-mu-wpcom/changelog/renovate-npm-webpack-vulnerability
diff --git a/projects/packages/jetpack-mu-wpcom/package.json b/projects/packages/jetpack-mu-wpcom/package.json
index 4c572f2a9a109..48fb888c0042b 100644
--- a/projects/packages/jetpack-mu-wpcom/package.json
+++ b/projects/packages/jetpack-mu-wpcom/package.json
@@ -43,7 +43,7 @@
"sass": "1.64.1",
"sass-loader": "12.4.0",
"typescript": "^5.0.4",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
},
"dependencies": {
diff --git a/projects/packages/jitm/CHANGELOG.md b/projects/packages/jitm/CHANGELOG.md
index d6fbb0ef3d10d..13dcd5be77c4f 100644
--- a/projects/packages/jitm/CHANGELOG.md
+++ b/projects/packages/jitm/CHANGELOG.md
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [3.1.19] - 2024-08-29
+### Changed
+- Updated package dependencies. [#39111]
+
## [3.1.18] - 2024-08-23
### Changed
- Updated package dependencies. [#39004]
@@ -751,6 +755,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Update Jetpack to use new JITM package
+[3.1.19]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.18...v3.1.19
[3.1.18]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.17...v3.1.18
[3.1.17]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.16...v3.1.17
[3.1.16]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.15...v3.1.16
diff --git a/projects/packages/jitm/package.json b/projects/packages/jitm/package.json
index 34d050daac44b..9ce31fd30b742 100644
--- a/projects/packages/jitm/package.json
+++ b/projects/packages/jitm/package.json
@@ -27,7 +27,7 @@
"@wordpress/browserslist-config": "6.5.0",
"sass": "1.64.1",
"sass-loader": "12.4.0",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
}
}
diff --git a/projects/packages/jitm/src/class-jitm.php b/projects/packages/jitm/src/class-jitm.php
index c8da570a56f58..1e79af826c202 100644
--- a/projects/packages/jitm/src/class-jitm.php
+++ b/projects/packages/jitm/src/class-jitm.php
@@ -20,7 +20,7 @@
*/
class JITM {
- const PACKAGE_VERSION = '3.1.18';
+ const PACKAGE_VERSION = '3.1.19';
/**
* The configuration method that is called from the jetpack-config package.
diff --git a/projects/plugins/boost/changelog/renovate-yoast-phpunit-polyfills-1.x b/projects/packages/masterbar/changelog/renovate-npm-webpack-vulnerability
similarity index 100%
rename from projects/plugins/boost/changelog/renovate-yoast-phpunit-polyfills-1.x
rename to projects/packages/masterbar/changelog/renovate-npm-webpack-vulnerability
diff --git a/projects/packages/masterbar/package.json b/projects/packages/masterbar/package.json
index c239558812d16..542fc9fd1ab3a 100644
--- a/projects/packages/masterbar/package.json
+++ b/projects/packages/masterbar/package.json
@@ -42,7 +42,7 @@
"postcss-loader": "6.2.0",
"sass": "1.64.1",
"sass-loader": "12.4.0",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
}
}
diff --git a/projects/packages/my-jetpack/CHANGELOG.md b/projects/packages/my-jetpack/CHANGELOG.md
index bdc0bb51e90b7..c26f3b6f70b69 100644
--- a/projects/packages/my-jetpack/CHANGELOG.md
+++ b/projects/packages/my-jetpack/CHANGELOG.md
@@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [4.33.1] - 2024-08-29
+### Changed
+- Admin menu: change order of Jetpack sub-menu items [#39095]
+- My Jetpack: reflect tier filters properly on product class and UI. Fix little nuances with date constructor [#39074]
+- Updated package dependencies. [#39111]
+
+### Fixed
+- Don't consider user lifecycle status when repeating evaluation [#39069]
+- My Jetpack: Fix the popover and active button of the Bboost card are overlapping [#39067]
+
## [4.33.0] - 2024-08-26
### Added
- Add context switching to videopress card from yearly views to monthly views [#38979]
@@ -1669,6 +1679,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
- Created package
+[4.33.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.33.0...4.33.1
[4.33.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.32.4...4.33.0
[4.32.4]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.32.3...4.32.4
[4.32.3]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.32.2...4.32.3
diff --git a/projects/packages/my-jetpack/_inc/components/welcome-flow/index.tsx b/projects/packages/my-jetpack/_inc/components/welcome-flow/index.tsx
index 94719828bcb2e..deb312653e88f 100644
--- a/projects/packages/my-jetpack/_inc/components/welcome-flow/index.tsx
+++ b/projects/packages/my-jetpack/_inc/components/welcome-flow/index.tsx
@@ -23,7 +23,8 @@ export type WelcomeFlowExperiment = {
const WelcomeFlow: FC< PropsWithChildren > = ( { children } ) => {
const { recordEvent } = useAnalytics();
const { dismissWelcomeBanner } = useWelcomeBanner();
- const { submitEvaluation, saveEvaluationResult } = useEvaluationRecommendations();
+ const { recommendedModules, submitEvaluation, saveEvaluationResult } =
+ useEvaluationRecommendations();
const {
siteIsRegistered,
siteIsRegistering,
@@ -44,15 +45,27 @@ const WelcomeFlow: FC< PropsWithChildren > = ( { children } ) => {
if ( ! siteIsRegistered || welcomeFlowExperiment.isLoading ) {
return 'connection';
} else if ( ! isProcessingEvaluation ) {
- if ( ! isJetpackUserNew() || welcomeFlowExperiment.variation !== 'treatment' ) {
- // If the user is not new, we don't show the evaluation step
+ if (
+ ! recommendedModules &&
+ ( welcomeFlowExperiment.variation === 'control' || ! isJetpackUserNew() )
+ ) {
+ // If user is not new but doesn't have recommendations, we skip evaluation
+ // If user has recommendations, it means they were already in treatment group and they redo the evaluation
return null;
}
+
+ // Otherwise, it means user is either new or just repeats the recommendation
return 'evaluation';
}
return 'evaluation-processing';
- }, [ isProcessingEvaluation, siteIsRegistered, welcomeFlowExperiment ] );
+ }, [
+ isProcessingEvaluation,
+ recommendedModules,
+ siteIsRegistered,
+ welcomeFlowExperiment.isLoading,
+ welcomeFlowExperiment.variation,
+ ] );
useEffect( () => {
if ( prevStep !== currentStep ) {
diff --git a/projects/packages/my-jetpack/changelog/add-more-eslint-rules b/projects/packages/my-jetpack/changelog/add-more-eslint-rules
deleted file mode 100644
index 2b32cb03e644c..0000000000000
--- a/projects/packages/my-jetpack/changelog/add-more-eslint-rules
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: fixed
-Comment: Fix new eslint sniffs. Should be no change in functionality.
-
-
diff --git a/projects/packages/my-jetpack/changelog/change-my-jetpack-disabled-tiers-handle b/projects/packages/my-jetpack/changelog/change-my-jetpack-disabled-tiers-handle
deleted file mode 100644
index 49cd68c2f1c58..0000000000000
--- a/projects/packages/my-jetpack/changelog/change-my-jetpack-disabled-tiers-handle
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: patch
-Type: changed
-
-My Jetpack: reflect tier filters properly on product class and UI. Fix little nuances with date constructor
diff --git a/projects/packages/my-jetpack/changelog/fix-boost-score-popover b/projects/packages/my-jetpack/changelog/fix-boost-score-popover
deleted file mode 100644
index 8aaff1a860047..0000000000000
--- a/projects/packages/my-jetpack/changelog/fix-boost-score-popover
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: patch
-Type: fixed
-
-My Jetpack: Fix the popover and active button of the Bboost card are overlapping
diff --git a/projects/packages/my-jetpack/changelog/try-no-version-bumps-in-trunk b/projects/packages/my-jetpack/changelog/try-no-version-bumps-in-trunk
deleted file mode 100644
index 91efe85c55e06..0000000000000
--- a/projects/packages/my-jetpack/changelog/try-no-version-bumps-in-trunk
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: changed
-Comment: Un-bump version numbers in trunk. The build will now update the version numbers as needed for mirrors.
-
-
diff --git a/projects/packages/my-jetpack/package.json b/projects/packages/my-jetpack/package.json
index 3735b0ac72a5d..76706c2a685b9 100644
--- a/projects/packages/my-jetpack/package.json
+++ b/projects/packages/my-jetpack/package.json
@@ -1,7 +1,7 @@
{
"private": true,
"name": "@automattic/jetpack-my-jetpack",
- "version": "4.33.0",
+ "version": "4.33.1",
"description": "WP Admin page with information and configuration shared among all Jetpack stand-alone plugins",
"homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/packages/my-jetpack/#readme",
"bugs": {
@@ -75,7 +75,7 @@
"sass-loader": "12.4.0",
"storybook": "8.2.9",
"typescript": "5.0.4",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
}
}
diff --git a/projects/packages/my-jetpack/src/class-activitylog.php b/projects/packages/my-jetpack/src/class-activitylog.php
index 0e59226dbd508..4de90c075ded5 100644
--- a/projects/packages/my-jetpack/src/class-activitylog.php
+++ b/projects/packages/my-jetpack/src/class-activitylog.php
@@ -51,7 +51,7 @@ public static function add_submenu_jetpack() {
'manage_options',
esc_url( Redirect::get_url( 'cloud-activity-log-wp-menu', $args ) ),
null,
- 1
+ 8
);
}
}
diff --git a/projects/packages/my-jetpack/src/class-initializer.php b/projects/packages/my-jetpack/src/class-initializer.php
index b0be741ad3c7b..3e164192b9764 100644
--- a/projects/packages/my-jetpack/src/class-initializer.php
+++ b/projects/packages/my-jetpack/src/class-initializer.php
@@ -42,7 +42,7 @@ class Initializer {
*
* @var string
*/
- const PACKAGE_VERSION = '4.33.0';
+ const PACKAGE_VERSION = '4.33.1';
/**
* HTML container ID for the IDC screen on My Jetpack page.
diff --git a/projects/packages/my-jetpack/src/class-jetpack-manage.php b/projects/packages/my-jetpack/src/class-jetpack-manage.php
index be32839498d54..3a732192c90a9 100644
--- a/projects/packages/my-jetpack/src/class-jetpack-manage.php
+++ b/projects/packages/my-jetpack/src/class-jetpack-manage.php
@@ -49,7 +49,7 @@ public static function add_submenu_jetpack() {
'manage_options',
esc_url( Redirect::get_url( 'cloud-manage-dashboard-wp-menu', $args ) ),
null,
- 100
+ 15
);
}
diff --git a/projects/packages/plugin-deactivation/CHANGELOG.md b/projects/packages/plugin-deactivation/CHANGELOG.md
index b8c1a3a540873..59c5b3ee10414 100644
--- a/projects/packages/plugin-deactivation/CHANGELOG.md
+++ b/projects/packages/plugin-deactivation/CHANGELOG.md
@@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [0.2.2] - 2024-08-29
+### Changed
+- Updated package dependencies. [#39004]
+- Updated package dependencies. [#39111]
+
## [0.2.1] - 2024-03-15
### Changed
- Internal updates.
@@ -47,6 +52,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
- Added package to intercept plugin deactivation [#27081]
+[0.2.2]: https://github.com/Automattic/jetpack-plugin-deactivation/compare/v0.2.1...v0.2.2
[0.2.1]: https://github.com/Automattic/jetpack-plugin-deactivation/compare/v0.2.0...v0.2.1
[0.2.0]: https://github.com/Automattic/jetpack-plugin-deactivation/compare/v0.1.6...v0.2.0
[0.1.6]: https://github.com/Automattic/jetpack-plugin-deactivation/compare/v0.1.5...v0.1.6
diff --git a/projects/packages/plugin-deactivation/changelog/try-no-version-bumps-in-trunk b/projects/packages/plugin-deactivation/changelog/try-no-version-bumps-in-trunk
deleted file mode 100644
index 91efe85c55e06..0000000000000
--- a/projects/packages/plugin-deactivation/changelog/try-no-version-bumps-in-trunk
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: changed
-Comment: Un-bump version numbers in trunk. The build will now update the version numbers as needed for mirrors.
-
-
diff --git a/projects/packages/plugin-deactivation/package.json b/projects/packages/plugin-deactivation/package.json
index 7a21c67011c2c..9becad3698ca9 100644
--- a/projects/packages/plugin-deactivation/package.json
+++ b/projects/packages/plugin-deactivation/package.json
@@ -1,7 +1,7 @@
{
"private": true,
"name": "@automattic/jetpack-plugin-deactivation",
- "version": "0.2.1",
+ "version": "0.2.2",
"description": "Intercept plugin deactivation with a dialog",
"homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/packages/plugin-deactivation/#readme",
"bugs": {
@@ -27,7 +27,7 @@
"sass-loader": "12.4.0",
"tslib": "2.5.0",
"typescript": "5.0.4",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
}
}
diff --git a/projects/packages/plugin-deactivation/src/class-deactivation-handler.php b/projects/packages/plugin-deactivation/src/class-deactivation-handler.php
index dd0ce7517c1be..30eb420e8e29f 100644
--- a/projects/packages/plugin-deactivation/src/class-deactivation-handler.php
+++ b/projects/packages/plugin-deactivation/src/class-deactivation-handler.php
@@ -21,7 +21,7 @@ class Deactivation_Handler {
*
* @var string
*/
- const PACKAGE_VERSION = '0.2.1';
+ const PACKAGE_VERSION = '0.2.2';
/**
* Slug of the plugin to intercept deactivation for.
diff --git a/projects/packages/publicize/CHANGELOG.md b/projects/packages/publicize/CHANGELOG.md
index 3932e2d010018..7a33c43a78778 100644
--- a/projects/packages/publicize/CHANGELOG.md
+++ b/projects/packages/publicize/CHANGELOG.md
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [0.50.1] - 2024-08-29
+### Added
+- Added share status info to Jetpack sidebar [#39073]
+
+### Changed
+- Updated package dependencies. [#39111]
+
## [0.50.0] - 2024-08-26
### Added
- Added the new feature flag for the social share status [#39015]
@@ -666,6 +673,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Updated package dependencies.
- Update package.json metadata.
+[0.50.1]: https://github.com/Automattic/jetpack-publicize/compare/v0.50.0...v0.50.1
[0.50.0]: https://github.com/Automattic/jetpack-publicize/compare/v0.49.2...v0.50.0
[0.49.2]: https://github.com/Automattic/jetpack-publicize/compare/v0.49.1...v0.49.2
[0.49.1]: https://github.com/Automattic/jetpack-publicize/compare/v0.49.0...v0.49.1
diff --git a/projects/packages/publicize/changelog/add-social-share-status-info b/projects/packages/publicize/changelog/add-social-share-status-info
deleted file mode 100644
index 0d38a15639ec3..0000000000000
--- a/projects/packages/publicize/changelog/add-social-share-status-info
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: patch
-Type: added
-
-Added share status info to Jetpack sidebar
diff --git a/projects/packages/publicize/changelog/add-social-share-status-shares-modal b/projects/packages/publicize/changelog/add-social-share-status-shares-modal
new file mode 100644
index 0000000000000..bf7d182e6814d
--- /dev/null
+++ b/projects/packages/publicize/changelog/add-social-share-status-shares-modal
@@ -0,0 +1,4 @@
+Significance: minor
+Type: added
+
+Add share status log modal to published posts
diff --git a/projects/packages/publicize/changelog/try-no-version-bumps-in-trunk b/projects/packages/publicize/changelog/try-no-version-bumps-in-trunk
deleted file mode 100644
index 91efe85c55e06..0000000000000
--- a/projects/packages/publicize/changelog/try-no-version-bumps-in-trunk
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: changed
-Comment: Un-bump version numbers in trunk. The build will now update the version numbers as needed for mirrors.
-
-
diff --git a/projects/packages/publicize/package.json b/projects/packages/publicize/package.json
index b417481070cd8..1b8f123ea551a 100644
--- a/projects/packages/publicize/package.json
+++ b/projects/packages/publicize/package.json
@@ -1,7 +1,7 @@
{
"private": true,
"name": "@automattic/jetpack-publicize",
- "version": "0.50.0",
+ "version": "0.50.1",
"description": "Publicize makes it easy to share your site’s posts on several social media networks automatically when you publish a new post.",
"homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/packages/publicize/#readme",
"bugs": {
@@ -30,7 +30,7 @@
"@automattic/jetpack-webpack-config": "workspace:*",
"@wordpress/browserslist-config": "6.5.0",
"concurrently": "7.6.0",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
},
"dependencies": {
diff --git a/projects/packages/schema/CHANGELOG.md b/projects/packages/schema/CHANGELOG.md
index 411eeac18f4d6..4f89809afb93f 100644
--- a/projects/packages/schema/CHANGELOG.md
+++ b/projects/packages/schema/CHANGELOG.md
@@ -5,9 +5,15 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [0.1.1] - 2024-08-29
+### Changed
+- Cleanup utils [#39025]
+
## 0.1.0 - 2024-08-22
### Added
- Initial version. [#38563]
### Changed
- Updated package dependencies. [#39004]
+
+[0.1.1]: https://github.com/Automattic/jetpack-schema/compare/v0.1.0...v0.1.1
diff --git a/projects/packages/schema/changelog/try-no-version-bumps-in-trunk b/projects/packages/schema/changelog/try-no-version-bumps-in-trunk
deleted file mode 100644
index 91efe85c55e06..0000000000000
--- a/projects/packages/schema/changelog/try-no-version-bumps-in-trunk
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: changed
-Comment: Un-bump version numbers in trunk. The build will now update the version numbers as needed for mirrors.
-
-
diff --git a/projects/packages/schema/src/class-schema.php b/projects/packages/schema/src/class-schema.php
index a5bb133d15fa5..fe3b30f6e0be1 100644
--- a/projects/packages/schema/src/class-schema.php
+++ b/projects/packages/schema/src/class-schema.php
@@ -65,7 +65,7 @@
* $parsed_data = $my_schema->parse($input_data);
*/
class Schema {
- const PACKAGE_VERSION = '0.1.0';
+ const PACKAGE_VERSION = '0.1.1';
public static function as_string() {
return new Schema_Parser( new Type_String() );
diff --git a/projects/packages/search/changelog/add-allow-customizing-highlighted-fields b/projects/packages/search/changelog/add-allow-customizing-highlighted-fields
new file mode 100644
index 0000000000000..bc31a86a45be0
--- /dev/null
+++ b/projects/packages/search/changelog/add-allow-customizing-highlighted-fields
@@ -0,0 +1,4 @@
+Significance: minor
+Type: added
+
+Search: allow customizing highlighted fields
diff --git a/projects/plugins/social/changelog/renovate-definitelytyped b/projects/packages/search/changelog/renovate-npm-webpack-vulnerability
similarity index 100%
rename from projects/plugins/social/changelog/renovate-definitelytyped
rename to projects/packages/search/changelog/renovate-npm-webpack-vulnerability
diff --git a/projects/packages/search/changelog/update-jetpack-menu-item-order b/projects/packages/search/changelog/update-jetpack-menu-item-order
new file mode 100644
index 0000000000000..4bfbd859ba2bf
--- /dev/null
+++ b/projects/packages/search/changelog/update-jetpack-menu-item-order
@@ -0,0 +1,4 @@
+Significance: patch
+Type: changed
+
+Admin menu: change order of Jetpack sub-menu items
diff --git a/projects/packages/search/package.json b/projects/packages/search/package.json
index aeca4c9411f08..c370738adde1b 100644
--- a/projects/packages/search/package.json
+++ b/projects/packages/search/package.json
@@ -91,7 +91,7 @@
"sass": "1.64.1",
"sass-loader": "12.4.0",
"size-limit": "11.1.4",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
},
"browserslist": [
diff --git a/projects/packages/search/src/dashboard/class-dashboard.php b/projects/packages/search/src/dashboard/class-dashboard.php
index 8da1e6ea86254..ac6494edc6f23 100644
--- a/projects/packages/search/src/dashboard/class-dashboard.php
+++ b/projects/packages/search/src/dashboard/class-dashboard.php
@@ -102,7 +102,8 @@ public function add_wp_admin_submenu() {
_x( 'Search', 'product name shown in menu', 'jetpack-search-pkg' ),
'manage_options',
'jetpack-search',
- array( $this, 'render' )
+ array( $this, 'render' ),
+ 10
);
} else {
// always add the page, but hide it from the menu.
diff --git a/projects/packages/search/src/instant-search/components/search-app.jsx b/projects/packages/search/src/instant-search/components/search-app.jsx
index e00e8bfc89054..58423aaa4fae4 100644
--- a/projects/packages/search/src/instant-search/components/search-app.jsx
+++ b/projects/packages/search/src/instant-search/components/search-app.jsx
@@ -229,6 +229,7 @@ class SearchApp extends Component {
sort: this.props.sort,
postsPerPage: this.props.options.postsPerPage,
adminQueryFilter: this.props.options.adminQueryFilter,
+ highlightFields: this.props.options.highlightFields,
isInCustomizer: this.props.isInCustomizer,
} );
};
diff --git a/projects/packages/search/src/instant-search/components/search-result-expanded.jsx b/projects/packages/search/src/instant-search/components/search-result-expanded.jsx
index 7bb2af8a23cb7..c712740a56c40 100644
--- a/projects/packages/search/src/instant-search/components/search-result-expanded.jsx
+++ b/projects/packages/search/src/instant-search/components/search-result-expanded.jsx
@@ -89,7 +89,16 @@ export default function SearchResultExpanded( props ) {
className="jetpack-instant-search__search-result-expanded__content"
//eslint-disable-next-line react/no-danger
dangerouslySetInnerHTML={ {
- __html: highlight.content.join( ' ... ' ),
+ __html:
+ highlight && typeof highlight === 'object'
+ ? Object.entries( highlight )
+ .filter(
+ ( [ key, value ] ) =>
+ key !== 'comments' && key !== 'title' && Array.isArray( value )
+ )
+ .map( ( [ , array ] ) => array.join( ' ... ' ) )
+ .join( ' ... ' )
+ : '',
} }
/>
diff --git a/projects/packages/search/src/instant-search/components/search-result-minimal.jsx b/projects/packages/search/src/instant-search/components/search-result-minimal.jsx
index 7e0adff204a37..46739b9af523b 100644
--- a/projects/packages/search/src/instant-search/components/search-result-minimal.jsx
+++ b/projects/packages/search/src/instant-search/components/search-result-minimal.jsx
@@ -87,7 +87,16 @@ class SearchResultMinimal extends Component {
className="jetpack-instant-search__search-result-minimal-content"
//eslint-disable-next-line react/no-danger
dangerouslySetInnerHTML={ {
- __html: this.props.result.highlight.content.join( ' ... ' ),
+ __html:
+ this.props.result.highlight && typeof this.props.result.highlight === 'object'
+ ? Object.entries( this.props.result.highlight )
+ .filter(
+ ( [ key, value ] ) =>
+ key !== 'comments' && key !== 'title' && Array.isArray( value )
+ )
+ .map( ( [ , array ] ) => array.join( ' ... ' ) )
+ .join( ' ... ' )
+ : '',
} }
/>
);
@@ -98,7 +107,13 @@ class SearchResultMinimal extends Component {
if ( result_type !== 'post' ) {
return null;
}
- const noMatchingContent = ! highlight.content || highlight.content[ 0 ] === '';
+ const noMatchingContent =
+ ! highlight ||
+ typeof highlight !== 'object' ||
+ Object.entries( highlight ).every(
+ ( [ key, value ] ) =>
+ key === 'comments' || key === 'title' || ! Array.isArray( value ) || value[ 0 ] === ''
+ );
return (
0;
+ typeof highlight === 'object' &&
+ Object.entries( highlight ).some(
+ ( [ key, value ] ) =>
+ key !== 'title' && key !== 'comments' && Array.isArray( value ) && value[ 0 ]?.length > 0
+ );
return (
{
+ let foundIndex = -1;
+ subMenuItems.forEach( ( item, index ) => {
+ const href = item.href;
+ if (
+ ( matchType === 'end' && href.endsWith( urlPattern ) ) ||
+ ( matchType === 'start' && href.startsWith( urlPattern ) )
+ ) {
+ foundIndex = index + 1;
+ }
+ } );
+ return foundIndex;
+ };
+
+ urlPatterns.forEach( ( { key, pattern, matchType } ) => {
+ const index = findIndex( pattern, matchType );
+ pageOrder[ key ] = index;
+ } );
+ return pageOrder;
+ }
+ }
+}
+
/**
* Manages changing the visuals of the sub-nav items on the left sidebar when the React app changes routes
*
- * @param pageOrder
*/
-window.wpNavMenuClassChange = function (
- pageOrder = { myJetpack: 1, activityLog: 2, dashboard: 3, settings: 4 }
-) {
+window.wpNavMenuClassChange = function () {
+ const pageOrder = jetpackPageOrder();
+
let hash = window.location.hash;
let page = new URLSearchParams( window.location.search );
diff --git a/projects/plugins/jetpack/_inc/lib/admin-pages/class.jetpack-react-page.php b/projects/plugins/jetpack/_inc/lib/admin-pages/class.jetpack-react-page.php
index 56b96499d14a4..428108f4dcf3d 100644
--- a/projects/plugins/jetpack/_inc/lib/admin-pages/class.jetpack-react-page.php
+++ b/projects/plugins/jetpack/_inc/lib/admin-pages/class.jetpack-react-page.php
@@ -1,5 +1,6 @@
is_offline_mode()
+ || Jetpack::is_connection_ready()
+ ) {
+ remove_submenu_page( 'jetpack', 'jetpack' );
+ }
+ }
+
/**
* Add Jetpack Dashboard sub-link and point it to AAG if the user can view stats, manage modules or if Protect is active.
*
@@ -86,8 +102,14 @@ public function add_page_actions( $hook ) {
*/
public function jetpack_add_dashboard_sub_nav_item() {
if ( ( new Status() )->is_offline_mode() || Jetpack::is_connection_ready() ) {
- add_submenu_page( 'jetpack', __( 'Dashboard', 'jetpack' ), __( 'Dashboard', 'jetpack' ), 'jetpack_admin_page', 'jetpack#/dashboard', '__return_null', 1 );
- remove_submenu_page( 'jetpack', 'jetpack' );
+ Admin_Menu::add_menu(
+ __( 'Dashboard', 'jetpack' ),
+ __( 'Dashboard', 'jetpack' ),
+ 'jetpack_admin_page',
+ Jetpack::admin_url( array( 'page' => 'jetpack#/dashboard' ) ),
+ null, // @phan-suppress-current-line PhanTypeMismatchArgumentProbablyReal -- See https://core.trac.wordpress.org/ticket/52539.
+ 14
+ );
}
}
@@ -165,7 +187,14 @@ private function can_access_settings() {
*/
public function jetpack_add_settings_sub_nav_item() {
if ( $this->can_access_settings() ) {
- add_submenu_page( 'jetpack', __( 'Settings', 'jetpack' ), __( 'Settings', 'jetpack' ), 'jetpack_admin_page', 'jetpack#/settings', '__return_null' );
+ Admin_Menu::add_menu(
+ __( 'Settings', 'jetpack' ),
+ __( 'Settings', 'jetpack' ),
+ 'jetpack_admin_page',
+ Jetpack::admin_url( array( 'page' => 'jetpack#/settings' ) ),
+ null, // @phan-suppress-current-line PhanTypeMismatchArgumentProbablyReal -- See https://core.trac.wordpress.org/ticket/52539.
+ 13
+ );
}
}
diff --git a/projects/plugins/jetpack/changelog/add-monetize-add-wpcom-currencies b/projects/plugins/jetpack/changelog/add-monetize-add-wpcom-currencies
new file mode 100644
index 0000000000000..7d1631b31d4b2
--- /dev/null
+++ b/projects/plugins/jetpack/changelog/add-monetize-add-wpcom-currencies
@@ -0,0 +1,4 @@
+Significance: minor
+Type: other
+
+Monetize: support more currencies
diff --git a/projects/plugins/jetpack/changelog/change-ai-image-generation-unlimited-plan-hard-limit b/projects/plugins/jetpack/changelog/change-ai-image-generation-unlimited-plan-hard-limit
new file mode 100644
index 0000000000000..28255fb70ecb6
--- /dev/null
+++ b/projects/plugins/jetpack/changelog/change-ai-image-generation-unlimited-plan-hard-limit
@@ -0,0 +1,4 @@
+Significance: patch
+Type: other
+
+Jetpack AI: remove hardcoded limit on image generation, it's handled by backend
diff --git a/projects/plugins/jetpack/changelog/change-jetpack-ai-sidebar-hide-usage-panel-on-plans b/projects/plugins/jetpack/changelog/change-jetpack-ai-sidebar-hide-usage-panel-on-plans
new file mode 100644
index 0000000000000..10a3084411675
--- /dev/null
+++ b/projects/plugins/jetpack/changelog/change-jetpack-ai-sidebar-hide-usage-panel-on-plans
@@ -0,0 +1,4 @@
+Significance: minor
+Type: other
+
+Jetpack AI: hide usagepanel when tier plans are disabled. Show QuotaExceededMessage instead of nudges
diff --git a/projects/plugins/jetpack/changelog/fix-map-block-selection b/projects/plugins/jetpack/changelog/fix-map-block-selection
new file mode 100644
index 0000000000000..989aae81cfcda
--- /dev/null
+++ b/projects/plugins/jetpack/changelog/fix-map-block-selection
@@ -0,0 +1,4 @@
+Significance: patch
+Type: enhancement
+
+Map block: Allow maps on WordPress.com to be selectable.
diff --git a/projects/plugins/boost/changelog/prerelease b/projects/plugins/jetpack/changelog/renovate-npm-webpack-vulnerability
similarity index 80%
rename from projects/plugins/boost/changelog/prerelease
rename to projects/plugins/jetpack/changelog/renovate-npm-webpack-vulnerability
index 7d3f9cba4bc0e..1eaea6a769e84 100644
--- a/projects/plugins/boost/changelog/prerelease
+++ b/projects/plugins/jetpack/changelog/renovate-npm-webpack-vulnerability
@@ -1,4 +1,4 @@
Significance: patch
-Type: fixed
+Type: other
Updated package dependencies.
diff --git a/projects/plugins/jetpack/changelog/update-audit-usage-of-extensions-when-blocks-disabled b/projects/plugins/jetpack/changelog/update-audit-usage-of-extensions-when-blocks-disabled
new file mode 100644
index 0000000000000..5d17a625c878e
--- /dev/null
+++ b/projects/plugins/jetpack/changelog/update-audit-usage-of-extensions-when-blocks-disabled
@@ -0,0 +1,4 @@
+Significance: minor
+Type: other
+
+Blocks: Ensure function is loaded even if blocks aren't enabled
diff --git a/projects/plugins/jetpack/changelog/update-jetpack-ai-breve-anchorless-popover b/projects/plugins/jetpack/changelog/update-jetpack-ai-breve-anchorless-popover
new file mode 100644
index 0000000000000..b04e8b78a7564
--- /dev/null
+++ b/projects/plugins/jetpack/changelog/update-jetpack-ai-breve-anchorless-popover
@@ -0,0 +1,4 @@
+Significance: patch
+Type: other
+
+AI Assistant: Limit popover height and fix anchorless popover
diff --git a/projects/plugins/jetpack/changelog/update-jetpack-ai-breve-clean b/projects/plugins/jetpack/changelog/update-jetpack-ai-breve-clean
new file mode 100644
index 0000000000000..a0a449db0a03f
--- /dev/null
+++ b/projects/plugins/jetpack/changelog/update-jetpack-ai-breve-clean
@@ -0,0 +1,4 @@
+Significance: patch
+Type: other
+
+AI Assistant: Remove dead Breve code
diff --git a/projects/plugins/jetpack/changelog/update-jetpack-ai-update-sidebar-fair-usage-messaging b/projects/plugins/jetpack/changelog/update-jetpack-ai-update-sidebar-fair-usage-messaging
new file mode 100644
index 0000000000000..68a0489bb624c
--- /dev/null
+++ b/projects/plugins/jetpack/changelog/update-jetpack-ai-update-sidebar-fair-usage-messaging
@@ -0,0 +1,4 @@
+Significance: minor
+Type: other
+
+Jetpack AI: update fair usage messaging on the sidebar.
diff --git a/projects/plugins/jetpack/changelog/update-jetpack-menu-item-order b/projects/plugins/jetpack/changelog/update-jetpack-menu-item-order
new file mode 100644
index 0000000000000..c96aa7333e16a
--- /dev/null
+++ b/projects/plugins/jetpack/changelog/update-jetpack-menu-item-order
@@ -0,0 +1,4 @@
+Significance: patch
+Type: enhancement
+
+Admin menu: Change order of Jetpack sub-menu items
diff --git a/projects/plugins/jetpack/class.jetpack-admin.php b/projects/plugins/jetpack/class.jetpack-admin.php
index 73e437c1d83f3..60e1af1fd3747 100644
--- a/projects/plugins/jetpack/class.jetpack-admin.php
+++ b/projects/plugins/jetpack/class.jetpack-admin.php
@@ -64,6 +64,7 @@ private function __construct() {
add_action( 'admin_init', array( $jetpack_react, 'react_redirects' ), 0 );
add_action( 'admin_menu', array( $jetpack_react, 'add_actions' ), 998 );
+ add_action( 'admin_menu', array( $jetpack_react, 'remove_jetpack_menu' ), 2000 );
add_action( 'jetpack_admin_menu', array( $jetpack_react, 'jetpack_add_dashboard_sub_nav_item' ) );
add_action( 'jetpack_admin_menu', array( $jetpack_react, 'jetpack_add_settings_sub_nav_item' ) );
add_action( 'jetpack_admin_menu', array( $this, 'admin_menu_debugger' ) );
diff --git a/projects/plugins/jetpack/extensions/blocks/ai-assistant/components/quota-exceeded-message/index.tsx b/projects/plugins/jetpack/extensions/blocks/ai-assistant/components/quota-exceeded-message/index.tsx
index a7a8f17ce8e96..8163e41c2d46e 100644
--- a/projects/plugins/jetpack/extensions/blocks/ai-assistant/components/quota-exceeded-message/index.tsx
+++ b/projects/plugins/jetpack/extensions/blocks/ai-assistant/components/quota-exceeded-message/index.tsx
@@ -266,17 +266,36 @@ const VIPUpgradePrompt = ( {
);
};
+type FairUsageNoticeProps = {
+ variant?: 'error' | 'muted';
+};
+
/**
* The fair usage notice component.
+ * @param {FairUsageNoticeProps} props - Fair usage notice component props.
+ * @param {FairUsageNoticeProps.variant} props.variant - The variant of the notice to render.
* @return {ReactElement} the Notice component with the fair usage message.
*/
-const FairUsageNotice = () => {
+export const FairUsageNotice = ( { variant = 'error' }: FairUsageNoticeProps ) => {
const useFairUsageNoticeMessageElement = useFairUsageNoticeMessage();
- return (
-
- { useFairUsageNoticeMessageElement }
-
- );
+
+ if ( variant === 'muted' ) {
+ return (
+
+ { useFairUsageNoticeMessageElement }
+
+ );
+ }
+
+ if ( variant === 'error' ) {
+ return (
+
+ { useFairUsageNoticeMessageElement }
+
+ );
+ }
+
+ return null;
};
const QuotaExceededMessage = props => {
diff --git a/projects/plugins/jetpack/extensions/blocks/ai-assistant/components/quota-exceeded-message/style.scss b/projects/plugins/jetpack/extensions/blocks/ai-assistant/components/quota-exceeded-message/style.scss
index 5e04a8e519ec1..35b21b5ec6713 100644
--- a/projects/plugins/jetpack/extensions/blocks/ai-assistant/components/quota-exceeded-message/style.scss
+++ b/projects/plugins/jetpack/extensions/blocks/ai-assistant/components/quota-exceeded-message/style.scss
@@ -12,3 +12,24 @@
}
}
}
+
+.jetpack-ai-fair-usage-notice-muted-variant {
+ line-height: 1.4;
+ margin: 0px;
+ text-wrap: pretty;
+ font-size: calc(13px);
+ font-weight: normal;
+ color: #757575;
+
+ a {
+ color: #757575;
+ }
+}
+
+.jetpack-ai-fair-usage-notice {
+ color: #1E1E1E;
+
+ a {
+ color: #1E1E1E;
+ }
+}
diff --git a/projects/plugins/jetpack/extensions/blocks/ai-assistant/edit.js b/projects/plugins/jetpack/extensions/blocks/ai-assistant/edit.js
index b8e65c0df2338..f2bed94f0106d 100644
--- a/projects/plugins/jetpack/extensions/blocks/ai-assistant/edit.js
+++ b/projects/plugins/jetpack/extensions/blocks/ai-assistant/edit.js
@@ -26,10 +26,10 @@ import clsx from 'clsx';
*/
import UsagePanel from '../../plugins/ai-assistant-plugin/components/usage-panel';
import { USAGE_PANEL_PLACEMENT_BLOCK_SETTINGS_SIDEBAR } from '../../plugins/ai-assistant-plugin/components/usage-panel/types';
-import { PLAN_TYPE_FREE, usePlanType } from '../../shared/use-plan-type';
+import { PLAN_TYPE_FREE, PLAN_TYPE_UNLIMITED, usePlanType } from '../../shared/use-plan-type';
import ConnectPrompt from './components/connect-prompt';
import FeedbackControl from './components/feedback-control';
-import QuotaExceededMessage from './components/quota-exceeded-message';
+import QuotaExceededMessage, { FairUsageNotice } from './components/quota-exceeded-message';
import ToolbarControls from './components/toolbar-controls';
import { getStoreBlockId } from './extensions/ai-assistant/with-ai-assistant';
import useAIAssistant from './hooks/use-ai-assistant';
@@ -61,6 +61,7 @@ export default function AIAssistantEdit( { attributes, setAttributes, clientId,
requestsLimit,
currentTier,
loading: loadingAiFeature,
+ tierPlansEnabled,
} = useAiFeature();
const requestsRemaining = Math.max( requestsLimit - requestsCount, 0 );
@@ -322,6 +323,10 @@ export default function AIAssistantEdit( { attributes, setAttributes, clientId,
>
);
+ const fairUsageNotice = (
+ <>{ isOverLimit && planType === PLAN_TYPE_UNLIMITED && }>
+ );
+
const trackUpgradeClick = useCallback(
event => {
event.preventDefault();
@@ -353,6 +358,12 @@ export default function AIAssistantEdit( { attributes, setAttributes, clientId,
) }
+ { fairUsageNotice && (
+
+
+ { fairUsageNotice }
+
+ ) }
{ /* Mock BlockCard component styles to keep alignment */ }
@@ -360,11 +371,14 @@ export default function AIAssistantEdit( { attributes, setAttributes, clientId,
{ __( 'Discover all features', 'jetpack' ) }
-
-
-
-
-
+ { ( planType === PLAN_TYPE_FREE ||
+ ( tierPlansEnabled && planType !== PLAN_TYPE_UNLIMITED ) ) && (
+
+
+
+
+
+ ) }
diff --git a/projects/plugins/jetpack/extensions/blocks/ai-assistant/hooks/use-ai-feature/index.ts b/projects/plugins/jetpack/extensions/blocks/ai-assistant/hooks/use-ai-feature/index.ts
index 6a75e66bc5326..db84bbd4577c7 100644
--- a/projects/plugins/jetpack/extensions/blocks/ai-assistant/hooks/use-ai-feature/index.ts
+++ b/projects/plugins/jetpack/extensions/blocks/ai-assistant/hooks/use-ai-feature/index.ts
@@ -2,11 +2,7 @@
* External dependencies
*/
import { useDispatch, useSelect } from '@wordpress/data';
-import {
- PLAN_TYPE_FREE,
- PLAN_TYPE_TIERED,
- usePlanType as getPlanType,
-} from '../../../../shared/use-plan-type';
+import { PLAN_TYPE_FREE, usePlanType as getPlanType } from '../../../../shared/use-plan-type';
import type { WordPressPlansSelectors } from 'extensions/store/wordpress-com';
export default function useAiFeature() {
@@ -26,10 +22,11 @@ export default function useAiFeature() {
const planType = getPlanType( currentTier );
+ const currentTierLimit = currentTier?.limit || freeRequestsLimit;
+
const actualRequestsCount =
- planType === PLAN_TYPE_TIERED ? usagePeriod?.requestsCount : allTimeRequestsCount;
- const actualRequestsLimit =
- planType === PLAN_TYPE_FREE ? freeRequestsLimit : currentTier?.limit;
+ planType === PLAN_TYPE_FREE ? allTimeRequestsCount : usagePeriod?.requestsCount;
+ const actualRequestsLimit = planType === PLAN_TYPE_FREE ? freeRequestsLimit : currentTierLimit;
return {
data: featureData,
diff --git a/projects/plugins/jetpack/extensions/blocks/map/component/mapkit.js b/projects/plugins/jetpack/extensions/blocks/map/component/mapkit.js
index 0d70b9f2a7e11..37f6a44c57cac 100644
--- a/projects/plugins/jetpack/extensions/blocks/map/component/mapkit.js
+++ b/projects/plugins/jetpack/extensions/blocks/map/component/mapkit.js
@@ -1,4 +1,12 @@
-import { Children, forwardRef, memo, useCallback, useEffect, useRef } from '@wordpress/element';
+import {
+ Children,
+ forwardRef,
+ memo,
+ useCallback,
+ useEffect,
+ useRef,
+ useState,
+} from '@wordpress/element';
import { get } from 'lodash';
import { MapkitProvider } from '../mapkit/context';
import {
@@ -45,6 +53,7 @@ const MapkitComponent = forwardRef(
return child;
}
} );
+ const [ isSelected, setIsSelected ] = useState( false );
useEffect( () => {
if ( error ) {
@@ -52,6 +61,23 @@ const MapkitComponent = forwardRef(
}
}, [ error, onError ] );
+ const handleBlockClick = () => {
+ setIsSelected( true );
+ };
+
+ useEffect( () => {
+ const handleClickOutside = event => {
+ if ( ! mapRef.current.contains( event.target ) ) {
+ setIsSelected( false );
+ }
+ };
+
+ document.addEventListener( 'mousedown', handleClickOutside );
+ return () => {
+ document.removeEventListener( 'mousedown', handleClickOutside );
+ };
+ }, [ mapRef ] );
+
return (
) : null }
+
+ { /* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */ }
+ onClick={ handleBlockClick }
+ >
+ { ! isSelected && }
+ { /* Map container */ }
+
+
+
{ addPoint }
diff --git a/projects/plugins/jetpack/extensions/blocks/map/editor.scss b/projects/plugins/jetpack/extensions/blocks/map/editor.scss
index 810a5c9c0f8ca..e482a2e52bb77 100644
--- a/projects/plugins/jetpack/extensions/blocks/map/editor.scss
+++ b/projects/plugins/jetpack/extensions/blocks/map/editor.scss
@@ -42,6 +42,21 @@
// This matches the color that MapBox uses as a placeholder before map tiles have loaded.
background-color: #e4e2de;
}
+
+ .wp-block-jetpack-map__gm-container {
+ position: absolute;
+ inset: 0;
+ z-index: 0;
+ }
+
+ /* Overlay for block selection */
+ .wp-block-jetpack-map__select-overlay {
+ position: absolute;
+ inset: 0;
+ z-index: 2;
+ background-color: transparent;
+ pointer-events: auto;
+ }
}
.wp-block-jetpack-map__height_input {
diff --git a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/ai-assistant-plugin-sidebar/index.tsx b/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/ai-assistant-plugin-sidebar/index.tsx
index 4a9047e726ae7..0cfd93de39a81 100644
--- a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/ai-assistant-plugin-sidebar/index.tsx
+++ b/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/ai-assistant-plugin-sidebar/index.tsx
@@ -14,11 +14,13 @@ import React from 'react';
/**
* Internal dependencies
*/
+import { FairUsageNotice } from '../../../../blocks/ai-assistant/components/quota-exceeded-message';
import useAICheckout from '../../../../blocks/ai-assistant/hooks/use-ai-checkout';
import useAiFeature from '../../../../blocks/ai-assistant/hooks/use-ai-feature';
import useAiProductPage from '../../../../blocks/ai-assistant/hooks/use-ai-product-page';
import { getFeatureAvailability } from '../../../../blocks/ai-assistant/lib/utils/get-feature-availability';
import JetpackPluginSidebar from '../../../../shared/jetpack-plugin-sidebar';
+import { PLAN_TYPE_FREE, PLAN_TYPE_UNLIMITED, usePlanType } from '../../../../shared/use-plan-type';
import { FeaturedImage } from '../ai-image';
import { Breve, registerBreveHighlights, Highlight } from '../breve';
import useBreveAvailability from '../breve/hooks/use-breve-availability';
@@ -63,6 +65,8 @@ const JetpackAndSettingsContent = ( {
placement,
requireUpgrade,
upgradeType,
+ showUsagePanel,
+ showFairUsageNotice,
}: JetpackSettingsContentProps ) => {
const { checkoutUrl } = useAICheckout();
const { productPageUrl } = useAiProductPage();
@@ -76,6 +80,14 @@ const JetpackAndSettingsContent = ( {
return (
<>
+ { showFairUsageNotice && (
+
+
+
+
+
+ ) }
+
{ isBreveAvailable && (
@@ -109,7 +121,7 @@ const JetpackAndSettingsContent = ( {
) }
- { isUsagePanelAvailable && (
+ { isUsagePanelAvailable && showUsagePanel && (
@@ -137,7 +149,8 @@ const JetpackAndSettingsContent = ( {
};
export default function AiAssistantPluginSidebar() {
- const { requireUpgrade, upgradeType, currentTier } = useAiFeature();
+ const { requireUpgrade, upgradeType, currentTier, tierPlansEnabled, isOverLimit } =
+ useAiFeature();
const { checkoutUrl } = useAICheckout();
const { tracks } = useAnalytics();
const isBreveAvailable = useBreveAvailability();
@@ -152,6 +165,8 @@ export default function AiAssistantPluginSidebar() {
return postTypeObject?.viewable;
}, [] );
+ const planType = usePlanType( currentTier );
+
// If the post type is not viewable, do not render my plugin.
if ( ! isViewable ) {
return null;
@@ -164,6 +179,10 @@ export default function AiAssistantPluginSidebar() {
tracks.recordEvent( 'jetpack_ai_panel_open', { placement } );
};
+ const showUsagePanel =
+ planType === PLAN_TYPE_FREE || ( tierPlansEnabled && planType !== PLAN_TYPE_UNLIMITED );
+ const showFairUsageNotice = planType === PLAN_TYPE_UNLIMITED && isOverLimit;
+
return (
<>
{ isBreveAvailable && }
@@ -180,6 +199,8 @@ export default function AiAssistantPluginSidebar() {
placement={ PLACEMENT_JETPACK_SIDEBAR }
requireUpgrade={ requireUpgrade }
upgradeType={ upgradeType }
+ showUsagePanel={ showUsagePanel }
+ showFairUsageNotice={ showFairUsageNotice }
/>
@@ -193,6 +214,8 @@ export default function AiAssistantPluginSidebar() {
placement={ PLACEMENT_DOCUMENT_SETTINGS }
requireUpgrade={ requireUpgrade }
upgradeType={ upgradeType }
+ showUsagePanel={ showUsagePanel }
+ showFairUsageNotice={ showFairUsageNotice }
/>
@@ -214,7 +237,7 @@ export default function AiAssistantPluginSidebar() {
busy={ false }
disabled={ requireUpgrade }
/>
- { requireUpgrade && (
+ { requireUpgrade && tierPlansEnabled && (
{
const [ initialized, setInitialized ] = useState( false );
@@ -34,13 +38,13 @@ export const useInit = init => {
};
const Controls = ( { blocks, disabledFeatures } ) => {
- const [ gradeLevel, setGradeLevel ] = useState( null );
+ const [ gradeLevel, setGradeLevel ] = useState< string | null >( null );
const { toggleFeature, toggleProofread, setPopoverHover, setHighlightHover, setPopoverAnchor } =
useDispatch( 'jetpack/ai-breve' );
const { tracks } = useAnalytics();
const isProofreadEnabled = useSelect(
- select => select( 'jetpack/ai-breve' ).isProofreadEnabled(),
+ select => ( select( 'jetpack/ai-breve' ) as BreveSelect ).isProofreadEnabled(),
[]
);
@@ -64,7 +68,7 @@ const Controls = ( { blocks, disabledFeatures } ) => {
const debouncedGradeLevelUpdate = useDebounce( updateGradeLevel, 250 );
const handleToggleFeature = useCallback(
- feature => checked => {
+ ( feature: string ) => ( checked: boolean ) => {
tracks.recordEvent( 'jetpack_ai_breve_feature_toggle', { type: feature, on: checked } );
toggleFeature( feature, checked );
},
diff --git a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/dictionaries/adjectives.js b/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/dictionaries/adjectives.js
deleted file mode 100644
index d94a988a35541..0000000000000
--- a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/dictionaries/adjectives.js
+++ /dev/null
@@ -1,461 +0,0 @@
-const adjectives = [
- 'amazing',
- 'authentic',
- 'awesome',
- 'beautiful',
- 'best',
- 'breathtaking',
- 'brilliant',
- 'captivating',
- 'classic',
- 'compelling',
- 'creative',
- 'cutting-edge',
- 'dazzling',
- 'delightful',
- 'effective',
- 'efficient',
- 'elegant',
- 'elite',
- 'empowering',
- 'enchanting',
- 'endless',
- 'engaging',
- 'epic',
- 'exclusive',
- 'extraordinary',
- 'fabulous',
- 'fantastic',
- 'flawless',
- 'foolproof',
- 'foremost',
- 'glamorous',
- 'glorious',
- 'gorgeous',
- 'groundbreaking',
- 'guaranteed',
- 'hassle-free',
- 'heroic',
- 'incredible',
- 'ingenious',
- 'innovative',
- 'inspirational',
- 'inspiring',
- 'invincible',
- 'legendary',
- 'life-changing',
- 'luxurious',
- 'magical',
- 'magnificent',
- 'marvelous',
- 'miraculous',
- 'modern',
- 'must-have',
- 'one-of-a-kind',
- 'outstanding',
- 'phenomenal',
- 'premium',
- 'proven',
- 'remarkable',
- 'revolutionary',
- 'riveting',
- 'sensational',
- 'sleek',
- 'smart',
- 'sophisticated',
- 'stunning',
- 'superb',
- 'superior',
- 'supreme',
- 'transformative',
- 'unbelievable',
- 'unique',
- 'unmatched',
- 'unparalleled',
- 'unrivaled',
- 'unstoppable',
- 'untouchable',
- 'visionary',
- 'world-class',
- 'amazing',
- 'authentic',
- 'awesome',
- 'beautiful',
- 'best',
- 'breathtaking',
- 'brilliant',
- 'captivating',
- 'classic',
- 'compelling',
- 'creative',
- 'cutting-edge',
- 'dazzling',
- 'delightful',
- 'effective',
- 'efficient',
- 'elegant',
- 'elite',
- 'empowering',
- 'enchanting',
- 'endless',
- 'engaging',
- 'epic',
- 'exclusive',
- 'extraordinary',
- 'fabulous',
- 'fantastic',
- 'flawless',
- 'foolproof',
- 'foremost',
- 'glamorous',
- 'glorious',
- 'gorgeous',
- 'groundbreaking',
- 'guaranteed',
- 'hassle-free',
- 'heroic',
- 'incredible',
- 'ingenious',
- 'innovative',
- 'inspirational',
- 'inspiring',
- 'invincible',
- 'legendary',
- 'life-changing',
- 'luxurious',
- 'magical',
- 'magnificent',
- 'marvelous',
- 'miraculous',
- 'modern',
- 'must-have',
- 'one-of-a-kind',
- 'outstanding',
- 'phenomenal',
- 'premium',
- 'proven',
- 'remarkable',
- 'revolutionary',
- 'riveting',
- 'sensational',
- 'sleek',
- 'smart',
- 'sophisticated',
- 'stunning',
- 'superb',
- 'superior',
- 'supreme',
- 'transformative',
- 'unbelievable',
- 'unique',
- 'unmatched',
- 'unparalleled',
- 'unrivaled',
- 'unstoppable',
- 'untouchable',
- 'visionary',
- 'world-class',
- 'affordable',
- 'astounding',
- 'astounding',
- 'bargain',
- 'best-selling',
- 'bold',
- 'brilliant',
- 'captivating',
- 'charismatic',
- 'charming',
- 'commendable',
- 'confident',
- 'convenient',
- 'cool',
- 'coveted',
- 'creative',
- 'crisp',
- 'customizable',
- 'cutting-edge',
- 'daring',
- 'dazzling',
- 'dependable',
- 'desirable',
- 'distinctive',
- 'dynamic',
- 'efficient',
- 'effortless',
- 'elegant',
- 'elite',
- 'enduring',
- 'enlightening',
- 'enthralling',
- 'enticing',
- 'entrancing',
- 'epic',
- 'essential',
- 'eternal',
- 'euphoric',
- 'everlasting',
- 'exemplary',
- 'exhilarating',
- 'extraordinary',
- 'eye-catching',
- 'fabulous',
- 'fascinating',
- 'faultless',
- 'fearless',
- 'first-class',
- 'flawless',
- 'foremost',
- 'formidable',
- 'glamorous',
- 'gleaming',
- 'glorious',
- 'gorgeous',
- 'groundbreaking',
- 'guaranteed',
- 'hassle-free',
- 'heroic',
- 'high-quality',
- 'ideal',
- 'illustrious',
- 'impeccable',
- 'impressive',
- 'incomparable',
- 'incredible',
- 'indispensable',
- 'ingenious',
- 'inspirational',
- 'inspiring',
- 'intuitive',
- 'invincible',
- 'legendary',
- 'life-changing',
- 'luxurious',
- 'magical',
- 'magnificent',
- 'majestic',
- 'marvelous',
- 'mind-blowing',
- 'modern',
- 'must-have',
- 'noteworthy',
- 'one-of-a-kind',
- 'outstanding',
- 'peerless',
- 'perfect',
- 'phenomenal',
- 'pioneering',
- 'plush',
- 'popular',
- 'posh',
- 'powerful',
- 'premium',
- 'prestigious',
- 'priceless',
- 'profound',
- 'proven',
- 'quintessential',
- 'radiant',
- 'rare',
- 'reliable',
- 'remarkable',
- 'renowned',
- 'revolutionary',
- 'rich',
- 'riveting',
- 'sensational',
- 'simple',
- 'sleek',
- 'smart',
- 'smooth',
- 'sophisticated',
- 'special',
- 'spectacular',
- 'spellbinding',
- 'stellar',
- 'stunning',
- 'stylish',
- 'successful',
- 'superb',
- 'superior',
- 'supreme',
- 'timeless',
- 'top-notch',
- 'transformative',
- 'trendy',
- 'trustworthy',
- 'unbelievable',
- 'unforgettable',
- 'unique',
- 'unmatched',
- 'unparalleled',
- 'unrivaled',
- 'unseen',
- 'unstoppable',
- 'untouchable',
- 'uplifting',
- 'valiant',
- 'versatile',
- 'vibrant',
- 'visionary',
- 'vital',
- 'wholesome',
- 'world-class',
- 'youthful',
- 'zesty',
- 'admired',
- 'adored',
- 'amazing',
- 'appealing',
- 'astounding',
- 'astounding',
- 'awesome',
- 'beautiful',
- 'beloved',
- 'breathtaking',
- 'brilliant',
- 'captivating',
- 'classic',
- 'compelling',
- 'confident',
- 'cool',
- 'coveted',
- 'creative',
- 'crisp',
- 'cutting-edge',
- 'dazzling',
- 'delightful',
- 'dependable',
- 'desirable',
- 'distinctive',
- 'dynamic',
- 'effective',
- 'efficient',
- 'effortless',
- 'elegant',
- 'elite',
- 'empowering',
- 'enchanting',
- 'endless',
- 'enduring',
- 'engaging',
- 'enlightening',
- 'enthralling',
- 'enticing',
- 'entrancing',
- 'epic',
- 'essential',
- 'eternal',
- 'euphoric',
- 'everlasting',
- 'exemplary',
- 'exclusive',
- 'exhilarating',
- 'extraordinary',
- 'eye-catching',
- 'fabulous',
- 'fascinating',
- 'faultless',
- 'fearless',
- 'first-class',
- 'flawless',
- 'foremost',
- 'formidable',
- 'glamorous',
- 'gleaming',
- 'glorious',
- 'gorgeous',
- 'groundbreaking',
- 'guaranteed',
- 'hassle-free',
- 'heroic',
- 'high-quality',
- 'ideal',
- 'illustrious',
- 'impeccable',
- 'impressive',
- 'incomparable',
- 'incredible',
- 'indispensable',
- 'ingenious',
- 'inspirational',
- 'inspiring',
- 'intuitive',
- 'invincible',
- 'legendary',
- 'life-changing',
- 'luxurious',
- 'magical',
- 'magnificent',
- 'majestic',
- 'marvelous',
- 'mind-blowing',
- 'modern',
- 'must-have',
- 'noteworthy',
- 'one-of-a-kind',
- 'outstanding',
- 'peerless',
- 'perfect',
- 'phenomenal',
- 'pioneering',
- 'plush',
- 'popular',
- 'posh',
- 'powerful',
- 'premium',
- 'prestigious',
- 'priceless',
- 'profound',
- 'proven',
- 'quintessential',
- 'radiant',
- 'rare',
- 'reliable',
- 'remarkable',
- 'renowned',
- 'revolutionary',
- 'rich',
- 'riveting',
- 'sensational',
- 'simple',
- 'sleek',
- 'smart',
- 'smooth',
- 'sophisticated',
- 'special',
- 'spectacular',
- 'spellbinding',
- 'stellar',
- 'stunning',
- 'stylish',
- 'successful',
- 'superb',
- 'superior',
- 'supreme',
- 'timeless',
- 'top-notch',
- 'transformative',
- 'trendy',
- 'trustworthy',
- 'unbelievable',
- 'unforgettable',
- 'unique',
- 'unmatched',
- 'unparalleled',
- 'unrivaled',
- 'unseen',
- 'unstoppable',
- 'untouchable',
- 'uplifting',
- 'valiant',
- 'versatile',
- 'vibrant',
- 'visionary',
- 'vital',
- 'wholesome',
- 'world-class',
- 'youthful',
- 'zesty',
-];
-
-export default adjectives;
diff --git a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/dictionaries/adverbs.js b/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/dictionaries/adverbs.js
deleted file mode 100644
index f29561f391e23..0000000000000
--- a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/dictionaries/adverbs.js
+++ /dev/null
@@ -1,504 +0,0 @@
-const adverbs = [
- 'abruptly',
- 'accurately',
- 'actively',
- 'adaptively',
- 'aesthetically',
- 'asynchronously',
- 'automatically',
- 'autonomously',
- 'broadly',
- 'carefully',
- 'clearly',
- 'collaboratively',
- 'completely',
- 'comprehensively',
- 'consistently',
- 'constantly',
- 'continuously',
- 'correctly',
- 'creatively',
- 'critically',
- 'dynamically',
- 'effectively',
- 'efficiently',
- 'elegantly',
- 'energetically',
- 'enthusiastically',
- 'entirely',
- 'ergonomically',
- 'evolutionarily',
- 'exponentially',
- 'extensively',
- 'fault-tolerantly',
- 'flexibly',
- 'frequently',
- 'fundamentally',
- 'generally',
- 'globally',
- 'gracefully',
- 'graphically',
- 'holistically',
- 'immediately',
- 'independently',
- 'industrially',
- 'intelligently',
- 'interactively',
- 'intuitively',
- 'invariably',
- 'locally',
- 'logically',
- 'low-latency',
- 'massively',
- 'minimally',
- 'modularly',
- 'naturally',
- 'normally',
- 'objectively',
- 'optimally',
- 'partially',
- 'periodically',
- 'personally',
- 'precisely',
- 'predictively',
- 'primarily',
- 'privately',
- 'proactively',
- 'promptly',
- 'quickly',
- 'quietly',
- 'rapidly',
- 'readily',
- 'reliably',
- 'remotely',
- 'repeatedly',
- 'resiliently',
- 'robustly',
- 'scalably',
- 'securely',
- 'sequentially',
- 'smoothly',
- 'solely',
- 'specifically',
- 'speedily',
- 'steadily',
- 'strategically',
- 'strongly',
- 'structurally',
- 'successfully',
- 'synchronously',
- 'systematically',
- 'technically',
- 'thoroughly',
- 'transparently',
- 'uniformly',
- 'universally',
- 'uniquely',
- 'universally',
- 'user-centrically',
- 'virtually',
- 'visually',
- 'abundantly',
- 'accurately',
- 'actively',
- 'adaptively',
- 'aesthetically',
- 'aggressively',
- 'automatically',
- 'autonomously',
- 'broadly',
- 'carefully',
- 'clearly',
- 'collaboratively',
- 'completely',
- 'comprehensively',
- 'consistently',
- 'constantly',
- 'continuously',
- 'correctly',
- 'creatively',
- 'critically',
- 'dynamically',
- 'effectively',
- 'efficiently',
- 'elegantly',
- 'energetically',
- 'enthusiastically',
- 'entirely',
- 'ergonomically',
- 'evolutionarily',
- 'exponentially',
- 'extensively',
- 'fault-tolerantly',
- 'flexibly',
- 'frequently',
- 'fundamentally',
- 'generally',
- 'globally',
- 'gracefully',
- 'graphically',
- 'holistically',
- 'immediately',
- 'independently',
- 'industrially',
- 'intelligently',
- 'interactively',
- 'intuitively',
- 'invariably',
- 'locally',
- 'logically',
- 'low-latency',
- 'massively',
- 'minimally',
- 'modularly',
- 'naturally',
- 'normally',
- 'objectively',
- 'optimally',
- 'partially',
- 'periodically',
- 'personally',
- 'precisely',
- 'predictively',
- 'primarily',
- 'privately',
- 'proactively',
- 'promptly',
- 'quickly',
- 'quietly',
- 'rapidly',
- 'readily',
- 'reliably',
- 'remotely',
- 'repeatedly',
- 'resiliently',
- 'robustly',
- 'scalably',
- 'securely',
- 'sequentially',
- 'smoothly',
- 'solely',
- 'specifically',
- 'speedily',
- 'steadily',
- 'strategically',
- 'strongly',
- 'structurally',
- 'successfully',
- 'synchronously',
- 'systematically',
- 'technically',
- 'thoroughly',
- 'transparently',
- 'uniformly',
- 'universally',
- 'uniquely',
- 'universally',
- 'user-centrically',
- 'virtually',
- 'visually',
- 'abnormally',
- 'absentmindedly',
- 'accidentally',
- 'actually',
- 'adventurously',
- 'allegedly',
- 'almost',
- 'always',
- 'angrily',
- 'annually',
- 'anxiously',
- 'arrogantly',
- 'awkwardly',
- 'badly',
- 'barely',
- 'bashfully',
- 'beautifully',
- 'bitterly',
- 'bleakly',
- 'blindly',
- 'blissfully',
- 'boldly',
- 'bravely',
- 'briefly',
- 'brightly',
- 'briskly',
- 'broadly',
- 'busily',
- 'calmly',
- 'carelessly',
- 'cautiously',
- 'certainly',
- 'cheerfully',
- 'cleverly',
- 'closely',
- 'coaxingly',
- 'colorfully',
- 'commonly',
- 'continually',
- 'coolly',
- 'correctly',
- 'courageously',
- 'crossly',
- 'cruelly',
- 'curiously',
- 'daily',
- 'deceivingly',
- 'deeply',
- 'defiantly',
- 'deliberately',
- 'delightfully',
- 'diligently',
- 'dimly',
- 'dramatically',
- 'dreamily',
- 'easily',
- 'eloquently',
- 'endlessly',
- 'equally',
- 'especially',
- 'even',
- 'evenly',
- 'eventually',
- 'exactly',
- 'excitedly',
- 'extremely',
- 'fairly',
- 'faithfully',
- 'famously',
- 'far',
- 'fast',
- 'fatally',
- 'ferociously',
- 'fervently',
- 'fiercely',
- 'fondly',
- 'foolishly',
- 'fortunately',
- 'frankly',
- 'frantically',
- 'freely',
- 'frightfully',
- 'fully',
- 'generally',
- 'generously',
- 'gently',
- 'gladly',
- 'gleefully',
- 'gracefully',
- 'gratefully',
- 'greatly',
- 'greedily',
- 'happily',
- 'hastily',
- 'healthily',
- 'heavily',
- 'helpfully',
- 'helplessly',
- 'highly',
- 'honestly',
- 'hopelessly',
- 'hourly',
- 'hungrily',
- 'impatiently',
- 'innocently',
- 'inquisitively',
- 'irritably',
- 'jovially',
- 'joyfully',
- 'joyously',
- 'jubilantly',
- 'judgmentally',
- 'justly',
- 'keenly',
- 'kindly',
- 'knavishly',
- 'knowingly',
- 'knowledgeably',
- 'lazily',
- 'lightly',
- 'likely',
- 'limply',
- 'lively',
- 'loftily',
- 'longingly',
- 'loosely',
- 'loudly',
- 'lovingly',
- 'loyally',
- 'madly',
- 'majestically',
- 'meaningfully',
- 'mechanically',
- 'merrily',
- 'miserably',
- 'mockingly',
- 'monthly',
- 'morally',
- 'mortally',
- 'mysteriously',
- 'naturally',
- 'nearly',
- 'neatly',
- 'nervously',
- 'never',
- 'nicely',
- 'noisily',
- 'obediently',
- 'obnoxiously',
- 'oddly',
- 'offensively',
- 'officially',
- 'often',
- 'only',
- 'openly',
- 'optimistically',
- 'overconfidently',
- 'painfully',
- 'partially',
- 'patiently',
- 'perfectly',
- 'periodically',
- 'permanently',
- 'persistently',
- 'personally',
- 'physically',
- 'playfully',
- 'politely',
- 'poorly',
- 'positively',
- 'potentially',
- 'powerfully',
- 'promptly',
- 'properly',
- 'punctually',
- 'quaintly',
- 'queasily',
- 'questionably',
- 'questioningly',
- 'quickly',
- 'quietly',
- 'quintessentially',
- 'quizzically',
- 'randomly',
- 'rapidly',
- 'rarely',
- 'readily',
- 'really',
- 'reassuringly',
- 'recklessly',
- 'regularly',
- 'reliably',
- 'reluctantly',
- 'repeatedly',
- 'reproachfully',
- 'republically',
- 'resentfully',
- 'restfully',
- 'righteously',
- 'rightfully',
- 'rigidly',
- 'roughly',
- 'rudely',
- 'sadly',
- 'safely',
- 'seldom',
- 'selfishly',
- 'selflessly',
- 'separately',
- 'seriously',
- 'shakily',
- 'sharply',
- 'sheepishly',
- 'shrilly',
- 'shyly',
- 'sickly',
- 'silently',
- 'sleepily',
- 'slowly',
- 'smoothly',
- 'softly',
- 'solemnly',
- 'solidly',
- 'soon',
- 'speedily',
- 'stealthily',
- 'sternly',
- 'strictly',
- 'stubbornly',
- 'stylishly',
- 'substantially',
- 'successfully',
- 'suddenly',
- 'sufficiently',
- 'supposedly',
- 'surprisingly',
- 'suspiciously',
- 'sympathetically',
- 'tenderly',
- 'tensely',
- 'terribly',
- 'thankfully',
- 'thoroughly',
- 'thoughtfully',
- 'tightly',
- 'tomorrow',
- 'tremendously',
- 'triumphantly',
- 'truly',
- 'truthfully',
- 'ultimately',
- 'unabashedly',
- 'unaccountably',
- 'unbearably',
- 'unethically',
- 'unexpectedly',
- 'unfortunately',
- 'unimpressively',
- 'unnaturally',
- 'unnecessarily',
- 'upbeat',
- 'upliftingly',
- 'uprightly',
- 'upward',
- 'urgently',
- 'usefully',
- 'uselessly',
- 'usually',
- 'utterly',
- 'vacantly',
- 'vaguely',
- 'vainly',
- 'valiantly',
- 'vastly',
- 'verbally',
- 'very',
- 'viciously',
- 'victoriously',
- 'violently',
- 'vivaciously',
- 'voluntarily',
- 'warmly',
- 'weakly',
- 'wearily',
- 'weekly',
- 'weirdly',
- 'wetly',
- 'wholly',
- 'wildly',
- 'wisely',
- 'woefully',
- 'wonderfully',
- 'worriedly',
- 'wrongly',
- 'yearly',
- 'yearningly',
- 'yesterday',
- 'yieldingly',
- 'youthfully',
- 'zealously',
- 'zestfully',
- 'zestily',
-];
-
-export default adverbs;
diff --git a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/dictionaries/dictionaries-config.js b/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/dictionaries/dictionaries-config.js
deleted file mode 100644
index 23b0a1f3e5ad2..0000000000000
--- a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/dictionaries/dictionaries-config.js
+++ /dev/null
@@ -1,51 +0,0 @@
-import phrases from '../features/complex-words/phrases';
-import weaselWords from '../features/weasel-words/words';
-import { escapeRegExp } from '../utils/escapeRegExp';
-import adjectives from './adjectives';
-import adverbs from './adverbs';
-
-const config = {
- dictionaries: {
- phrase: {
- dictionary: phrases,
- type: 'key-value',
- tooltip: "Consider replacing with '{value}'.",
- label: 'Complex words',
- },
- 'long-sentence': {
- type: 'function',
- function: text => {
- const sentenceRegex = /[^.!?]+[.!?]+/g;
- const sentences = text.match( sentenceRegex ) || [];
- return sentences
- .filter( sentence => sentence.split( /\s+/ ).length > 20 )
- .map( sentence => ( {
- sentence,
- regex: new RegExp( escapeRegExp( sentence ), 'gi' ),
- } ) );
- },
- tooltip: 'Break this long sentence into shorter ones.',
- label: 'Long sentences',
- },
- weasel: {
- dictionary: weaselWords,
- type: 'list',
- tooltip: "Remove 'Weasel' words to add confidence.",
- label: 'Weasel words',
- },
- adverb: {
- dictionary: adverbs,
- type: 'list',
- tooltip: 'Adverbs make your writing less concise.',
- label: 'Adverbs',
- },
- adjective: {
- dictionary: adjectives,
- type: 'list',
- tooltip: 'Replace adjectives with data or remove them.',
- label: 'Adjectives',
- },
- },
-};
-
-export default config;
diff --git a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/highlight/index.tsx b/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/highlight/index.tsx
index 4152522bb8b17..aaa421188a3c7 100644
--- a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/highlight/index.tsx
+++ b/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/highlight/index.tsx
@@ -116,7 +116,7 @@ export default function Highlight() {
}, [] );
const isPopoverOpen = popoverOpen && virtual;
- const hasSuggestions = Boolean( suggestions?.suggestion );
+ const hasSuggestions = Boolean( suggestions?.suggestion ) || spellingSuggestions.length > 0;
const handleMouseEnter = () => {
setPopoverHover( true );
@@ -263,7 +263,7 @@ export default function Highlight() {
return (
<>
- { isPopoverOpen && (
+ { isPopoverOpen && anchor?.parentElement && (
) }
-
+
{ feature !== SPELLING_MISTAKES.name && hasSuggestions && (
) ) }
+
+
+ { feature === SPELLING_MISTAKES.name && (
+
+ ) }
-
- { feature === SPELLING_MISTAKES.name && (
-
- ) }
-
- { feature !== SPELLING_MISTAKES.name &&
- ( hasSuggestions
- ? __( 'Click on the suggestion to insert it.', 'jetpack' )
- : description ) }
+ { feature !== SPELLING_MISTAKES.name &&
+ ( hasSuggestions
+ ? __( 'Click on the suggestion to insert it.', 'jetpack' )
+ : description ) }
-
-
-
+
+
diff --git a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/highlight/style.scss b/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/highlight/style.scss
index 5c6097308e4ca..dec5b67a664c5 100644
--- a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/highlight/style.scss
+++ b/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/highlight/style.scss
@@ -32,8 +32,13 @@
&.jetpack-ai-breve__has-suggestions {
align-items: flex-start;
- padding-top: 8px;
- gap: 8px;
+
+ .jetpack-ai-breve__suggestions-container {
+ max-height: calc( 200px - 32px ); // 32px is the height of the helper buttons wrapper
+ overflow-y: auto;
+ overflow-x: hidden;
+ padding: 3px 0; // Space for the focus highlight
+ }
}
.jetpack-ai-breve__header-container {
@@ -41,6 +46,7 @@
width: 100%;
justify-content: space-between;
gap: 32px;
+ height: 40px;
.jetpack-ai-breve__title,
.jetpack-ai-breve__action {
@@ -75,17 +81,27 @@
padding-top: 0px;
padding-bottom: 0px;
padding-right: 0px;
- height: unset;
+ height: 24px;
& > svg,
path {
fill: #0277a8;
}
}
+
+ .jetpack-ai-breve__loading {
+ height: 24px;
+ display: flex;
+ align-items: center;
+
+ svg {
+ margin-top: 0;
+ }
+ }
}
}
- .jetpack-ai-breve__bottom-container {
+ .jetpack-ai-breve__suggestions-container {
display: flex;
flex-direction: column;
border-top: 1px solid #dcdcde;
@@ -101,30 +117,6 @@
}
}
- .jetpack-ai-breve__helper {
- padding: 4px 8px;
- background-color: #f6f7f7;
- white-space: nowrap;
- color: #646970;
- margin: 4px;
- border-radius: 4px;
- font-size: 12px;
- display: flex;
- justify-content: space-between;
- align-items: center;
- gap: 8px;
-
- .jetpack-ai-breve__helper-buttons-wrapper {
- display: flex;
- gap: 16px;
- }
-
- .components-button {
- padding: 0px;
- color: #646970;
- }
- }
-
.components-button.is-tertiary {
color: #000000;
white-space: break-spaces;
@@ -137,5 +129,30 @@
line-height: 20px;
}
}
+
+ .jetpack-ai-breve__helper {
+ padding: 4px 8px;
+ background-color: #f6f7f7;
+ white-space: nowrap;
+ color: #646970;
+ margin: 4px;
+ border-radius: 4px;
+ font-size: 12px;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ gap: 8px;
+ width: calc( 100% - 8px );
+
+ .jetpack-ai-breve__helper-buttons-wrapper {
+ display: flex;
+ gap: 16px;
+ }
+
+ .components-button {
+ padding: 0px;
+ color: #646970;
+ }
+ }
}
}
diff --git a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/FleschKincaidUtils.js b/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/FleschKincaidUtils.ts
similarity index 73%
rename from projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/FleschKincaidUtils.js
rename to projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/FleschKincaidUtils.ts
index fb0de09ed02b1..d08cc101493cb 100644
--- a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/FleschKincaidUtils.js
+++ b/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/FleschKincaidUtils.ts
@@ -1,12 +1,12 @@
-const countWords = text => {
+const countWords = ( text: string ) => {
return text.split( /\s+/ ).filter( word => word.length > 0 ).length;
};
-const countSentences = text => {
+const countSentences = ( text: string ) => {
return text.split( /[.!?]+/ ).filter( sentence => sentence.length > 0 ).length;
};
-const countSyllables = word => {
+const countSyllables = ( word: string ) => {
if ( word.length <= 3 ) {
return 1;
}
@@ -21,11 +21,11 @@ const countSyllables = word => {
return syllables ? syllables.length : 1;
};
-const countTotalSyllables = text => {
+const countTotalSyllables = ( text: string ) => {
return text.split( /\s+/ ).reduce( ( total, word ) => total + countSyllables( word ), 0 );
};
-const fleschKincaidGrade = ( words, sentences, syllables ) => {
+const fleschKincaidGrade = ( words: number, sentences: number, syllables: number ) => {
if ( words === 0 || sentences === 0 ) {
return null;
}
@@ -33,7 +33,7 @@ const fleschKincaidGrade = ( words, sentences, syllables ) => {
return 0.39 * ( words / sentences ) + 11.8 * ( syllables / words ) - 15.59;
};
-const calculateFleschKincaid = text => {
+const calculateFleschKincaid = ( text: string ) => {
const words = countWords( text );
const sentences = countSentences( text );
const syllables = countTotalSyllables( text );
diff --git a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/escapeRegExp.js b/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/escapeRegExp.ts
similarity index 53%
rename from projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/escapeRegExp.js
rename to projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/escapeRegExp.ts
index d22279c125399..733295ea3a8ed 100644
--- a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/escapeRegExp.js
+++ b/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/escapeRegExp.ts
@@ -1,3 +1,3 @@
-export const escapeRegExp = string => {
+export const escapeRegExp = ( string: string ) => {
return string.replace( /[.*+?^${}()|[\]\\/]/g, '\\$&' );
};
diff --git a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/getClientId.js b/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/getClientId.js
deleted file mode 100644
index 411ffaae84976..0000000000000
--- a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/getClientId.js
+++ /dev/null
@@ -1,13 +0,0 @@
-export const getClientId = element => {
- if ( ! element ) {
- return null;
- }
-
- const clientId = element.getAttribute( 'data-block' );
-
- if ( clientId ) {
- return clientId;
- }
-
- return getClientId( element.parentElement );
-};
diff --git a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/getHighlightRects.js b/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/getHighlightRects.js
deleted file mode 100644
index a32f3a4749ece..0000000000000
--- a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/getHighlightRects.js
+++ /dev/null
@@ -1,96 +0,0 @@
-import config from '../dictionaries/dictionaries-config';
-import { escapeRegExp } from './escapeRegExp';
-
-const getWordRects = ( content, regex ) => {
- const ranges = [];
- const nodeIterator = document.createNodeIterator( content, window.NodeFilter.SHOW_TEXT );
- let currentNode;
- while ( ( currentNode = nodeIterator.nextNode() ) ) {
- let match;
- while ( ( match = regex.exec( currentNode.nodeValue ) ) ) {
- const range = document.createRange();
- range.setStart( currentNode, match.index );
- range.setEnd( currentNode, match.index + match[ 0 ].length );
- ranges.push( { range, text: match[ 0 ] } );
- }
- }
- return ranges;
-};
-
-export const getHighlightRects = element => {
- const rects = [];
- const textContent = element.innerText || element.textContent;
-
- const allRanges = [];
-
- for ( const key in config.dictionaries ) {
- const dictConfig = config.dictionaries[ key ];
- if ( dictConfig.type === 'function' ) {
- const ranges = dictConfig
- .function( textContent )
- .map( ( { regex } ) => getWordRects( element, regex ) )
- .flat();
- allRanges.push( ...ranges );
- } else {
- const dictionary = dictConfig.dictionary;
- let regex;
- if ( dictConfig.type === 'key-value' ) {
- regex = new RegExp(
- `\\b(${ Object.keys( dictionary ).map( escapeRegExp ).join( '|' ) })\\b`,
- 'gi'
- );
- } else if ( dictConfig.type === 'list' ) {
- regex = new RegExp( `\\b(${ dictionary.map( escapeRegExp ).join( '|' ) })\\b`, 'gi' );
- }
- const ranges = getWordRects( element, regex );
- allRanges.push( ...ranges );
- }
- }
-
- allRanges.forEach( ( { range, text } ) => {
- const clientRects = Array.from( range.getClientRects() );
- clientRects.forEach( ( rect, rangeIndex ) => {
- let type;
- let replacement = text.toLowerCase();
-
- for ( const key in config.dictionaries ) {
- const dictConfig = config.dictionaries[ key ];
- if ( dictConfig.type === 'key-value' && dictConfig.dictionary[ text.toLowerCase() ] ) {
- type = key;
- replacement = dictConfig.dictionary[ text.toLowerCase() ];
- break;
- } else if (
- dictConfig.type === 'list' &&
- dictConfig.dictionary.includes( text.toLowerCase() )
- ) {
- type = key;
- break;
- } else if ( dictConfig.type === 'function' && key === 'long-sentence' ) {
- const longSentences = dictConfig
- .function( textContent )
- .map( ( { sentence } ) => sentence );
- if ( longSentences.includes( text ) ) {
- type = key;
- break;
- }
- }
- }
-
- if ( ! type ) {
- type = 'phrase';
- }
-
- rects.push( {
- rect,
- rangeIndex,
- range,
- target: `${ text }`, // The original text
- replacement, // It's replacement
- type,
- highlightId: `${ range.startOffset }${ text }${ range.endOffset }`,
- } );
- } );
- } );
-
- return rects;
-};
diff --git a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/handleMessage.js b/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/handleMessage.js
deleted file mode 100644
index 18780d7294e71..0000000000000
--- a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/handleMessage.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/**
- * WordPress dependencies
- */
-import { select, dispatch } from '@wordpress/data';
-
-export const findBlockRecursively = ( clientId, blocks ) => {
- const block = blocks.find( currentBlock => currentBlock.clientId === clientId );
-
- if ( block ) {
- return block;
- }
-
- // If the block was not found, check the inner blocks
- for ( const currentBlock of blocks ) {
- if ( currentBlock.innerBlocks?.length > 0 ) {
- const innerBlock = findBlockRecursively( clientId, currentBlock.innerBlocks );
-
- if ( innerBlock ) {
- return innerBlock;
- }
- }
- }
-
- return null;
-};
-
-// messageHandler.js
-export const handleMessage = event => {
- const { clientId, aiReplacementText, updateFunc } = event;
- const { getBlocks } = select( 'core/block-editor' );
- const { selectBlock, updateBlockAttributes } = dispatch( 'core/block-editor' );
-
- const updateBlocks = attributes => {
- selectBlock( clientId );
- updateBlockAttributes( clientId, attributes );
- };
-
- const block = findBlockRecursively( clientId, getBlocks() );
-
- if ( block ) {
- updateBlocks( { content: aiReplacementText } );
- updateFunc();
- }
-};
diff --git a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/requestAnimationFrame.js b/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/requestAnimationFrame.js
deleted file mode 100644
index 6c9b3c5a00298..0000000000000
--- a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/requestAnimationFrame.js
+++ /dev/null
@@ -1 +0,0 @@
-export const requestAnimationFrame = window.requestAnimationFrame || ( cb => cb() );
diff --git a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/textEditingHelpers.js b/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/textEditingHelpers.js
deleted file mode 100644
index 220a50a66deab..0000000000000
--- a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/breve/utils/textEditingHelpers.js
+++ /dev/null
@@ -1,106 +0,0 @@
-import { requestAnimationFrame } from './requestAnimationFrame';
-
-export const saveCaretPosition = ( containerEl, caretPositionRef ) => {
- const selection = containerEl.ownerDocument.defaultView.getSelection();
-
- if ( selection.rangeCount > 0 ) {
- const range = selection.getRangeAt( 0 );
- const preCaretRange = range.cloneRange();
- preCaretRange.selectNodeContents( range.startContainer );
- preCaretRange.setEnd( range.startContainer, range.startOffset );
- const caretOffset = preCaretRange.toString().length;
-
- caretPositionRef.current = {
- container: range.startContainer,
- offset: caretOffset,
- };
- }
-};
-
-export const restoreCaretPosition = ( containerEl, caretPositionRef ) => {
- const { container, offset } = caretPositionRef.current || {};
-
- if ( container && typeof offset === 'number' ) {
- const range = containerEl.ownerDocument.createRange();
- const selection = containerEl.ownerDocument.defaultView.getSelection();
- range.setStart( container, offset );
- range.collapse( true );
- selection.removeAllRanges();
- selection.addRange( range );
- }
-};
-
-export const getChildTextNodes = element => {
- const textNodes = [];
-
- for ( let i = 0; i < element.childNodes.length; i++ ) {
- const childNode = element.childNodes[ i ];
-
- if ( childNode.nodeType === Node.TEXT_NODE ) {
- textNodes.push( childNode );
- } else if ( childNode.nodeType === Node.ELEMENT_NODE ) {
- const childNodeTextNodes = getChildTextNodes( childNode );
- textNodes.push( ...childNodeTextNodes );
- }
- }
-
- return textNodes;
-};
-
-export const simulateClick = ( event, blockElement ) => {
- blockElement.focus();
-
- requestAnimationFrame( () => {
- const selectedText = blockElement.ownerDocument.getSelection();
- const clickRange = blockElement.ownerDocument.createRange();
- const textNodes = getChildTextNodes( blockElement );
-
- // Get the mouse click position relative to the block
- const clickRect = blockElement.getBoundingClientRect();
- const x = event.clientX - clickRect.left;
-
- // Translate event.nativeEvent.pageY to local block coordinate
- const y =
- event.nativeEvent.pageY -
- blockElement.ownerDocument.documentElement.scrollTop -
- clickRect.top;
-
- // Get the text node and determine the character offset based on the click position
- let offset = 0;
- let accumulatedWidth = 0;
-
- // Create a temporary range to measure text width
- let textNode;
-
- for ( let i = 0; i < textNodes.length; i++ ) {
- textNode = textNodes[ i ];
-
- for ( let j = 0; j < textNode.textContent.length; j++ ) {
- clickRange.setStart( textNode, j );
- clickRange.setEnd( textNode, j + 1 );
- const charRect = clickRange.getBoundingClientRect();
-
- if ( y >= charRect.top - clickRect.top && y <= charRect.bottom - clickRect.top ) {
- accumulatedWidth += charRect.width;
- // If x is between the accumulated width minus half the character width and the full accumulated width, then the click is closer to the next character
- if ( x >= accumulatedWidth - charRect.width / 2 && x <= accumulatedWidth ) {
- offset = j + 1;
- break;
- }
- // if x is less than the accumulated width, then the click is closer to the previous character
- else if ( x < accumulatedWidth ) {
- offset = j;
- break;
- }
- }
- }
- }
-
- // Set the caret at the exact position where the click occurred
- clickRange.setStart( textNode, offset );
- clickRange.collapse( true );
-
- selectedText.removeAllRanges();
- selectedText.addRange( clickRange );
- } );
-};
diff --git a/projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php b/projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php
index 56b87ca7513d0..7baf274254fd5 100644
--- a/projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php
+++ b/projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php
@@ -1002,6 +1002,9 @@ private function dtp_fb_preprocess_post( $post, $metadata ) {
'title' => $fb_point['name'],
);
}
+ if ( ! function_exists( 'map_block_from_geo_points' ) ) {
+ require_once JETPACK__PLUGIN_DIR . 'extensions/blocks/map/map.php';
+ }
$map_block = map_block_from_geo_points( $geo_points );
$post['post_content'] = $map_block . $post['post_content'];
diff --git a/projects/plugins/jetpack/modules/memberships/class-jetpack-memberships.php b/projects/plugins/jetpack/modules/memberships/class-jetpack-memberships.php
index 30619a296ef1f..70e1567f3c036 100644
--- a/projects/plugins/jetpack/modules/memberships/class-jetpack-memberships.php
+++ b/projects/plugins/jetpack/modules/memberships/class-jetpack-memberships.php
@@ -148,6 +148,14 @@ public static function clear_post_access_level_cache() {
'PLN' => 2.0,
'SEK' => 3.0,
'SGD' => 0.5,
+ 'CZK' => 15.0,
+ 'HUF' => 175.0,
+ 'TWD' => 10.0,
+ 'IDR' => 0,
+ 'ILS' => 0,
+ 'PHP' => 0,
+ 'RUB' => 0,
+ 'TRY' => 0,
);
/**
diff --git a/projects/plugins/jetpack/modules/scan/class-admin-sidebar-link.php b/projects/plugins/jetpack/modules/scan/class-admin-sidebar-link.php
index 925b1050b0ca9..2c78af6ba64e5 100644
--- a/projects/plugins/jetpack/modules/scan/class-admin-sidebar-link.php
+++ b/projects/plugins/jetpack/modules/scan/class-admin-sidebar-link.php
@@ -7,6 +7,7 @@
namespace Automattic\Jetpack\Scan;
+use Automattic\Jetpack\Admin_UI\Admin_Menu;
use Automattic\Jetpack\My_Jetpack\Products\Backup;
use Automattic\Jetpack\Redirect;
use Automattic\Jetpack\Status\Host;
@@ -68,22 +69,37 @@ public function maybe_add_admin_link() {
}
if ( $this->should_show_scan() ) {
- $menu_label = __( 'Scan', 'jetpack' );
- $url = Redirect::get_url( 'calypso-scanner' );
- add_submenu_page( 'jetpack', $menu_label, esc_html( $menu_label ) . '
', 'manage_options', esc_url( $url ), null, $this->get_link_offset() );
+ Admin_Menu::add_menu(
+ __( 'Scan', 'jetpack' ),
+ __( 'Scan', 'jetpack' ) . '
',
+ 'manage_options',
+ esc_url( Redirect::get_url( 'cloud-scan-history-wp-menu' ) ),
+ null,
+ $this->get_link_offset()
+ );
}
// Add scan item which shows history page only. This is mutally exclusive from the scan item above and is only shown for Atomic sitse.
if ( $this->should_show_scan_history_only() ) {
- $menu_label = __( 'Scan', 'jetpack' );
- $url = Redirect::get_url( 'cloud-scan-history-wp-menu' );
- add_submenu_page( 'jetpack', $menu_label, esc_html( $menu_label ) . '
', 'manage_options', esc_url( $url ), null, $this->get_link_offset() );
+ Admin_Menu::add_menu(
+ __( 'Scan', 'jetpack' ),
+ __( 'Scan', 'jetpack' ) . '
',
+ 'manage_options',
+ esc_url( Redirect::get_url( 'cloud-scan-history-wp-menu' ) ),
+ null,
+ $this->get_link_offset()
+ );
}
if ( $this->should_show_backup() ) {
- $menu_label = __( 'VaultPress', 'jetpack' );
- $url = Redirect::get_url( 'calypso-backups' );
- add_submenu_page( 'jetpack', $menu_label, esc_html( $menu_label ) . '
', 'manage_options', esc_url( $url ), null, $this->get_link_offset() );
+ Admin_Menu::add_menu(
+ __( 'VaultPress', 'jetpack' ),
+ __( 'VaultPress', 'jetpack' ) . '
',
+ 'manage_options',
+ esc_url( Redirect::get_url( 'calypso-backups' ) ),
+ null,
+ $this->get_link_offset()
+ );
}
}
@@ -96,7 +112,7 @@ public function maybe_add_admin_link() {
*/
private function get_link_offset() {
global $submenu;
- $offset = 0;
+ $offset = 9;
if ( ! array_key_exists( 'jetpack', $submenu ) ) {
return $offset;
diff --git a/projects/plugins/jetpack/modules/subscriptions.php b/projects/plugins/jetpack/modules/subscriptions.php
index a67cb3fd27148..87801f8868919 100644
--- a/projects/plugins/jetpack/modules/subscriptions.php
+++ b/projects/plugins/jetpack/modules/subscriptions.php
@@ -15,6 +15,7 @@
// phpcs:disable Universal.Files.SeparateFunctionsFromOO.Mixed -- TODO: Move classes to appropriately-named class files.
+use Automattic\Jetpack\Admin_UI\Admin_Menu;
use Automattic\Jetpack\Connection\Manager as Connection_Manager;
use Automattic\Jetpack\Connection\XMLRPC_Async_Call;
use Automattic\Jetpack\Redirect;
@@ -1000,13 +1001,13 @@ public function add_subscribers_menu() {
array( 'site' => $blog_id ? $blog_id : $status->get_site_suffix() )
);
- add_submenu_page(
- 'jetpack',
- esc_attr__( 'Subscribers', 'jetpack' ),
+ Admin_Menu::add_menu(
+ __( 'Subscribers', 'jetpack' ),
__( 'Subscribers', 'jetpack' ) . '
',
'manage_options',
esc_url( $link ),
- null
+ null,
+ 11
);
}
diff --git a/projects/plugins/jetpack/package.json b/projects/plugins/jetpack/package.json
index b21e808d0eb26..604eec2436e21 100644
--- a/projects/plugins/jetpack/package.json
+++ b/projects/plugins/jetpack/package.json
@@ -113,7 +113,7 @@
"swiper": "6.7.0",
"tinycolor2": "1.4.2",
"tus-js-client": "2.3.0",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
},
"devDependencies": {
diff --git a/projects/plugins/migration/changelog/renovate-npm-webpack-vulnerability b/projects/plugins/migration/changelog/renovate-npm-webpack-vulnerability
new file mode 100644
index 0000000000000..c47cb18e82997
--- /dev/null
+++ b/projects/plugins/migration/changelog/renovate-npm-webpack-vulnerability
@@ -0,0 +1,4 @@
+Significance: patch
+Type: changed
+
+Updated package dependencies.
diff --git a/projects/plugins/migration/package.json b/projects/plugins/migration/package.json
index cf19140aa39ed..ea87c0affcfbc 100644
--- a/projects/plugins/migration/package.json
+++ b/projects/plugins/migration/package.json
@@ -49,7 +49,7 @@
"concurrently": "7.6.0",
"sass": "1.64.1",
"sass-loader": "12.4.0",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
}
}
diff --git a/projects/plugins/protect/changelog/renovate-npm-webpack-vulnerability b/projects/plugins/protect/changelog/renovate-npm-webpack-vulnerability
new file mode 100644
index 0000000000000..c47cb18e82997
--- /dev/null
+++ b/projects/plugins/protect/changelog/renovate-npm-webpack-vulnerability
@@ -0,0 +1,4 @@
+Significance: patch
+Type: changed
+
+Updated package dependencies.
diff --git a/projects/plugins/protect/changelog/update-jetpack-menu-item-order b/projects/plugins/protect/changelog/update-jetpack-menu-item-order
new file mode 100644
index 0000000000000..4bfbd859ba2bf
--- /dev/null
+++ b/projects/plugins/protect/changelog/update-jetpack-menu-item-order
@@ -0,0 +1,4 @@
+Significance: patch
+Type: changed
+
+Admin menu: change order of Jetpack sub-menu items
diff --git a/projects/plugins/protect/package.json b/projects/plugins/protect/package.json
index 132e63bbbc6ce..639e586f71945 100644
--- a/projects/plugins/protect/package.json
+++ b/projects/plugins/protect/package.json
@@ -57,7 +57,7 @@
"sass": "1.64.1",
"sass-loader": "12.4.0",
"typescript": "5.0.4",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
}
}
diff --git a/projects/plugins/protect/src/class-jetpack-protect.php b/projects/plugins/protect/src/class-jetpack-protect.php
index 300886a9bed03..b2db8472267ea 100644
--- a/projects/plugins/protect/src/class-jetpack-protect.php
+++ b/projects/plugins/protect/src/class-jetpack-protect.php
@@ -156,7 +156,8 @@ public function admin_page_init() {
$menu_label,
'manage_options',
'jetpack-protect',
- array( $this, 'plugin_settings_page' )
+ array( $this, 'plugin_settings_page' ),
+ 5
);
add_action( 'load-' . $page_suffix, array( $this, 'enqueue_admin_scripts' ) );
diff --git a/projects/plugins/social/CHANGELOG.md b/projects/plugins/social/CHANGELOG.md
index 0f66218a0ce1f..a65d961faf62a 100644
--- a/projects/plugins/social/CHANGELOG.md
+++ b/projects/plugins/social/CHANGELOG.md
@@ -5,57 +5,97 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## 5.2.0 - 2024-08-29
+
+### Changed
+
+- Admin menu: change order of Jetpack sub-menu items [#39095]
+- Moved PostPublishPanels component to publicize-components package [#39049]
+- Social: Migrated shares data to the new script data [#38988]
+- Social: Updated intial state logic to use the new consolidated initial state [#38606]
+- Social: Updated the share status modal to render it globally [#39116]
+- Update composer lock file [#38942]
+- Updated package dependencies. [#38662] [#38665] [#38822] [#38822] [#39111]
+
+### Removed
+
+- Remove the unused Advanced plan nudge [#38926]
+- Social: Removed share limits UI and data logic [#38904]
+
+### Fixed
+
+- Revert recent SVG image optimizations. [#38981]
+
## 5.1.0 - 2024-08-08
+
### Added
+
- Added feature flag management for social [#38669]
### Fixed
+
- Lossless image optimization of images in projects/plugins [subdirectories from a* through social] [#38573]
## 5.0.0 - 2024-08-01
+
### Changed
+
- Social: Removed unnecessary feature checks for social connections [#38216]
- Updated package dependencies. [#38228] [#38235] [#38464]
### Removed
+
- General: update WordPress version requirements to WordPress 6.5. [#38382]
- Removed the unused code for image auto-conversion from social store [#38609]
- Social | Removed the media auto-conversion UI [#38497]
## 4.5.2 - 2024-07-03
+
### Changed
+
- General: indicate compatibility with the upcoming version of WordPress - 6.6. [#37962]
- Updated package dependencies. [#37917] [#38132]
### Fixed
+
- Fixed E2E tests navigating to block editor [#37875]
- Fixed the admin page pricing table not shown [#37877]
- Social: Fixed broken connections reconnect link to point it to new connections UI [#37869]
## 4.5.1 - 2024-06-18
+
### Fixed
+
- My Jetpack: Update My Jetpack to a more stable version. [#37911]
## 4.5.0 - 2024-06-13
+
### Changed
+
- Move the admin upsell to the toggle section [#37731]
- Updated package dependencies. [#37767] [#37776] [#37796]
### Removed
+
- Removed the social basic plan from the admin page [#36846]
### Fixed
+
- Updated wp.org screenshots [#37726]
## 4.4.0 - 2024-06-05
+
### Changed
+
- Social | Removed the top "Connect accounts" on the admin page [#37697]
- Social | Updated upgrade nudges to use the new plan [#37638]
- Updated package dependencies. [#37669]
- Updated the editor nudge text and logic [#37644]
## 4.3.0 - 2024-05-29
+
### Added
+
- Add connect form/button for connection management [#37196]
- Added a CTA button to create a social note [#36972]
- Added and rendered GlobalNotices component [#37237]
@@ -69,6 +109,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Social Limits: Added clarification of cycle reset [#37350]
### Changed
+
- General: update WordPress version requirements to WordPress 6.4. [#37047]
- General: use wp_admin_notice function introduced in WP 6.4 to display notices. [#37051]
- Remove explicit Plugin Install package dependency. [#37430]
@@ -78,12 +119,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Update the Social sidebar share post panel to direct non-admin authors to user connection if there is no user connection. [#36976]
### Fixed
+
- Adjusted the webpack config so the social icon colours are picked up by PostCSS [#37327]
- Fixed CSS variables not loaded for modals on Social admin page [#37391]
- Fixed timeouts in E2E tests [#37045]
## 4.2.0 - 2024-04-11
+
### Added
+
- Added functions to display share urls [#36328]
- Added options and UI for link formatting [#36671]
- Added support for comments on Social Notes [#36428]
@@ -91,6 +135,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Trigger red bubble notification when bad install is detected [#36449]
### Changed
+
- Allow multiple paragraphs for Social Notes [#36522]
- Only show custom media picker for normal posts [#36640]
- Only show installation errors on plugins page [#36390]
@@ -101,11 +146,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Update to the most recent version of the @automattic/calypso-color-schemes package. [#36227]
### Fixed
+
- Fixed typos [#36554]
- Prevent enqueuing of admin styles on the frontend [#36552]
## 4.1.0 - 2024-03-07
+
### Added
+
- Added a template lock to our Social Note CPT [#35619]
- Added endpoint to update post meta [#35822]
- Added feature support for the new CPT to support activitypub. [#35442]
@@ -117,6 +165,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Social: Added archive page support to notes [#35592]
### Changed
+
- Changed the admin page 'Write a post' button to primary if the site has connections [#36031]
- General: indicate compatibility with the upcoming version of WordPress, 6.5. [#35820]
- Social Notes: Added the post list enhancements [#35819]
@@ -127,11 +176,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Use Blog ID in links to WPCOM instead of site slug. [#35006]
### Fixed
+
- Fixed no title from showing up in og:title [#35624]
- Fixed og:title having word-breaks. [#36068]
## 4.0.0 - 2024-01-18
+
### Changed
+
- Changed dismissed notices endpoint to be a core endpoint [#34544]
- Social: Changed the illustration on the admin page [#34454]
- Social: Refactored storing of feature options to use core functions [#34113]
@@ -141,16 +193,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Updated the design for Quick Share buttons and fixed its a11y [#34754]
### Fixed
+
- Fixed a bug with the initial state script [#34861]
- Fixed Jetpack Social scheduled post messaging [#34182]
## 3.0.0 - 2023-12-06
+
### Added
+
- Added a new post-publish panel for quick sharing [#33231]
- Added Nextdoor to Social Previews [#33907]
- Added traking for social sharing buttons [#33231]
### Changed
+
- Code Modernization: Replace usage of strpos() with str_contains() [#34137]
- General: updated PHP requirement to PHP 7.0+ [#34126]
- General: update WordPress version requirements to WordPress 6.3 and compatible with 6.4. [#34127] [#33776]
@@ -159,19 +215,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Updated Social admin pricing page [#33176]
### Removed
+
- Removed unused code [#34111] [#34241]
### Fixed
+
- Fixed an issue where initial state is not in sync [#33969]
- Fixed broken connections UI [#34391]
- Fixed pre-publish UI reactivity for Jetpack Social [#34243]
- Fixed the issue of publicize remaining ON after the post is published [#34289]
## 2.3.0 - 2023-09-20
+
### Added
+
- Add the change settings logic in Social for the auto conversion feature. [#32712]
### Changed
+
- Changed logic that disables the connections based on the auto-conversion feature. [#32671]
- General: remove WP 6.1 backwards compatibility checks. [#32772]
- General: update WordPress version requirements to WordPress 6.2. [#32762]
@@ -180,7 +241,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Updated package dependencies. [#33001]
## 2.2.0 - 2023-08-23
+
### Added
+
- Add admin-page upsell notice [#32128]
- Add new nudge in the editor to upgrade to the Advanced plan that will appear every 3 months [#32087]
- Add SIG toggle for Jetpack Settings [#32475]
@@ -188,6 +251,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Add check for checking if user is on Basic plan [#32112]
### Changed
+
- Changed JITM so it can be properly dismissed. [#32033]
- Jetpack editor extensions: use shared component for the logo. [#32257]
- Moved store to publicize-components package. [#32317]
@@ -196,84 +260,109 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Use a new method to render Connection initial state. [#32499]
### Fixed
+
- Fixed checkout link so it's not siteless. [#32254]
## 2.1.0 - 2023-08-01
+
### Changed
+
- General: indicate full compatibility with the latest version of WordPress, 6.3. [#31910]
- Refactor TemplatePicker component, so inner part can be use in it's own without a modal. [#31740]
- Social: Update the screenshots to reflect the current UI [#31832]
- Updated package dependencies. [#31659, #31661, #31769, #31785, #31872, #31923, #32040]
### Fixed
+
- Fix admin page unit test [#31417]
## 2.0.0 - 2023-07-05
+
### Added
+
- Add authentication to Zendesk chat widget. [#31339]
### Changed
+
- Social: change the admin page plan redirect link. [#31195]
- Social: update the Readme to better reflect new features. [#31686]
- Updated package dependencies.
### Fixed
+
- Social: fix the connection state to ensure that new connections are disabled by default when there are no shares left. [#31168]
- Social Review Prompt: fix the state so it is shown when Jetpack is also active. [#31456]
## 1.11.0 - 2023-06-06
+
### Added
+
- Added feature flag for Mastodon preview [#30919]
- Jetpack Social: Add a notice to let users know Instagram is available [#30777]
### Changed
+
- Remove conditional rendering from zendesk chat widget component due to it being handled by an api endpoint now [#29942]
- Updated package dependencies.
- Updates the enhanced publishing feature check [#29881]
### Deprecated
+
- Minor changes around upcoming functionality change in Twitter. [#30272]
## 1.10.0 - 2023-05-02
+
### Added
+
- Social: Updating plugin version. [#30158]
### Changed
+
- Added dynamic pricing to Social admin page. [#30105]
- Updated package dependencies. [#29565, #29854, #29857, #30019]
- Update WordPress version requirements. Now requires version 6.1. [#30120]
### Fixed
+
- Dashboard: ensure the link to the post editor works, even when WordPress is installed in a subdirectory. [#30159]
- Jetpack Social: Render Social Image Generator panel even when SIG's default is disabled [#30358]
- Temporarily removed review prompts to fix the plugin's UI state. [#30101]
## 1.9.1 - 2023-04-06
+
### Fixed
+
- Reinstated is_social_image_generator_enabled for backwards compatibility. [#29952]
## 1.9.0 - 2023-04-04
+
### Added
+
- (Backup, Boost, Search, Social) Add links on upgrade pages to activate a license key, if you already have one. [#29443]
- Added option for CUT component to have a tooltip. [#29609]
- Added SIG image to the post media array if it's enabled. [#29093]
- Added toggle to Social admin page to enable or disable Social Image Generator as well as an option to pick a default template. [#29722]
### Changed
+
- General: indicate full compatibility with the latest version of WordPress, 6.2. [#29341]
- Jetpack Social: Enable Social Image Generator by default when it's available. [#29742]
- Refactored the ToggleSection component to decouple it from other logic. [#29619]
- Updated package dependencies. [#29216, #29289, #29297, #29434, #29471, #29480]
### Other changes
+
- Updated composer.lock. [#29762]
## 1.8.0 - 2023-03-07
+
### Added
+
- Add Social Image Generator editor panel to post sidebar [#28737]
- Add Social Image Generator feature flag to Jetpack Social [#29001]
### Changed
+
- Changed remaining shares phrasing [#28688]
- Remove `ci.targets` from package.json. Better scoping of e2e tests. [#28913]
- Update billing language [#29126]
@@ -281,67 +370,90 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Update to React 18. [#28710]
### Fixed
+
- Revise Jetpack connection agreement text to comply with our User Agreement [#28403]
- Use External Link icons for external links [#28922]
## 1.7.0 - 2023-02-07
+
### Added
+
- Added Advanced Social plan to pricing table [#28258]
### Changed
+
- Moved resharing to be available in the free plan [#28661]
- Updated package dependencies.
- Update playwright dependency [#28094]
- Use `flex-end` instead of `end` for better browser compatibility. [#28530]
## 1.6.0 - 2023-01-10
+
### Added
+
- Add a review request prompt for Jetpack Social plugin. [#28072]
- Add simple JS React test. [#27122]
- Add the adminUrl to the initial editor state. [#27617]
- Redirect to admin page on plugin activation, and add link to admin page from plugins page. [#24586]
### Changed
+
- Updated package dependencies. [#27340, #27688, #27689, #27696, #27697, #27874, #27887, #27916, #27962]
## 1.5.1 - 2022-12-06
+
### Changed
+
- Updated package dependencies. [#26069]
### Fixed
+
- Fix alignment issues on social admin page [#27146]
## 1.5.0 - 2022-11-08
+
### Changed
+
- Compatibility: WordPress 6.1 compatibility [#27084]
### Other changes
+
- Social: Updated the plugin versions to start the new cycle [#27114]
- Updated package dependencies. [#27182, #27196, #27278, #27289]
## 1.5.0-beta - 2022-10-27
+
### Added
+
- Display broken connections to user in editor [#25803]
- Integrate the ConnectionError react component to the Social plugin. [#26904]
- Reshare: Added the reshare UI to the block editor extension [#25993]
### Changed
+
- Updated package dependencies. [#25993, #26640, #26683, #26705, #26716, #26790, #26791, #26808, #26826, #26829, #26851, #27089]
### Fixed
+
- Social: Fix the connection test endpoint URL [#26892]
- Social: Fix the path to the connections URL in the editor [#26932]
## 1.4.2 - 2022-10-20
+
### Fixed
+
- Social: Fix the path to the connections URL in the editor [#26932]
## 1.4.1 - 2022-10-19
+
### Fixed
+
- Social: Fix the connection test endpoint URL [#26892]
## 1.4.0 - 2022-10-06
+
### Added
+
- Add ContextualUpgradeTrigger to Jetpack Social admin page [#26115]
- Added check to not show the share metre if someone has a paid plan. [#26310]
- Added Jetpack social redirect urls. [#26135]
@@ -350,6 +462,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Enforce sharing limits in the Classic Editor [#26039]
### Changed
+
- Changed the values on the pricing table, and fixed a redirect [#26605]
- Move share limits code to the Publicize package [#26294]
- Set version to 1.4.0-alpha [#25955]
@@ -360,26 +473,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Use Jetpack logo in Jetpack Social pre-publish screen for Publicize and Social Preview features [#26044]
### Fixed
+
- Social: Require a user connection to use the plugin. [#26543]
- Store: Added the missing showNudge reducer [#26635]
## 1.3.0 - 2022-09-07
+
### Added
+
- Added scheduled post calculation on plugin activation. [#25334]
- Added Social Previews. [#25931]
- Added support for JITMs. [#25880]
- Enforce sharing limits in the block editor, if it is enabled for a site. [#25661]
### Changed
+
- Updated package dependencies. [#24477, #25265, #25300, #25315, #25334, #25338, #25339, #25377, #25406, #25628, #25661, #25665, #25694, #25762, #25769, #25787, #25814, #25931]
### Removed
+
- Packages: remove deprecated package. [#25883]
### Fixed
+
- Avoid PHP warnings when OG description is not set. [#25777]
### Other
+
- My Jetpack includes JITMs [#22452]
- Post release tasks. [#25364]
- Start a new release cycle. [#25289]
@@ -389,7 +509,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Enables autotag, autorelease, and autosvn actions
## 1.2.0 - 2022-08-03
+
### Added
+
- Added shares meter to Jetpack Social admin page.
- Updated package dependencies.
- Added the posts box to the Jetpack Social admin page
@@ -397,12 +519,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Updated publicize package version.
### Changed
+
- Rework the admin page to use new components
- Start the 1.2.0 release cycle
- Updated the tagline on the admin page.
## 1.1.0-beta - 2022-06-29
+
### Changed
+
- Renaming master to trunk.
- Renaming `master` references to `trunk`
- Reorder JS imports for `import/order` eslint rule.
@@ -410,5 +535,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Updated the design of the admin page to include share counters.
## 1.0.0 - 2022-05-31
+
### Added
+
- Initial release.
diff --git a/projects/plugins/social/changelog/add-filter-for-filtered-order-data b/projects/plugins/social/changelog/add-filter-for-filtered-order-data
deleted file mode 100644
index 9aa70e3ec1f75..0000000000000
--- a/projects/plugins/social/changelog/add-filter-for-filtered-order-data
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: changed
-Comment: Updated composer.lock.
-
-
diff --git a/projects/plugins/social/changelog/add-new-sync-active-modules-callable b/projects/plugins/social/changelog/add-new-sync-active-modules-callable
deleted file mode 100644
index 9aa70e3ec1f75..0000000000000
--- a/projects/plugins/social/changelog/add-new-sync-active-modules-callable
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: changed
-Comment: Updated composer.lock.
-
-
diff --git a/projects/plugins/social/changelog/add-protect-threat-history b/projects/plugins/social/changelog/add-protect-threat-history
deleted file mode 100644
index 9aa70e3ec1f75..0000000000000
--- a/projects/plugins/social/changelog/add-protect-threat-history
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: changed
-Comment: Updated composer.lock.
-
-
diff --git a/projects/plugins/social/changelog/add-social-share-status-feature-flag b/projects/plugins/social/changelog/add-social-share-status-feature-flag
deleted file mode 100644
index 9aa70e3ec1f75..0000000000000
--- a/projects/plugins/social/changelog/add-social-share-status-feature-flag
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: changed
-Comment: Updated composer.lock.
-
-
diff --git a/projects/plugins/social/changelog/fix-my-jetpack-currency b/projects/plugins/social/changelog/fix-my-jetpack-currency
deleted file mode 100644
index 9aa70e3ec1f75..0000000000000
--- a/projects/plugins/social/changelog/fix-my-jetpack-currency
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: changed
-Comment: Updated composer.lock.
-
-
diff --git a/projects/plugins/social/changelog/refactor-social-post-publish-panel b/projects/plugins/social/changelog/refactor-social-post-publish-panel
deleted file mode 100644
index c2d9eb2e4c754..0000000000000
--- a/projects/plugins/social/changelog/refactor-social-post-publish-panel
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: minor
-Type: changed
-
-Moved PostPublishPanels component to publicize-components package
diff --git a/projects/plugins/social/changelog/remove-social-advanced-plan-nudge b/projects/plugins/social/changelog/remove-social-advanced-plan-nudge
deleted file mode 100644
index 5a418563a57a9..0000000000000
--- a/projects/plugins/social/changelog/remove-social-advanced-plan-nudge
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: patch
-Type: removed
-
-Remove the unused Advanced plan nudge
diff --git a/projects/plugins/social/changelog/revert-svg-image-optimizations b/projects/plugins/social/changelog/revert-svg-image-optimizations
deleted file mode 100644
index 356496f8a1f8f..0000000000000
--- a/projects/plugins/social/changelog/revert-svg-image-optimizations
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: patch
-Type: fixed
-
-Revert recent SVG image optimizations.
diff --git a/projects/plugins/social/changelog/try-no-version-bumps-in-trunk b/projects/plugins/social/changelog/try-no-version-bumps-in-trunk
deleted file mode 100644
index 91efe85c55e06..0000000000000
--- a/projects/plugins/social/changelog/try-no-version-bumps-in-trunk
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: changed
-Comment: Un-bump version numbers in trunk. The build will now update the version numbers as needed for mirrors.
-
-
diff --git a/projects/plugins/social/changelog/update-connection-initial-state b/projects/plugins/social/changelog/update-connection-initial-state
deleted file mode 100644
index 9aa70e3ec1f75..0000000000000
--- a/projects/plugins/social/changelog/update-connection-initial-state
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: changed
-Comment: Updated composer.lock.
-
-
diff --git a/projects/plugins/social/changelog/update-consolidate-social-state b/projects/plugins/social/changelog/update-consolidate-social-state
deleted file mode 100644
index 688c9484e12ef..0000000000000
--- a/projects/plugins/social/changelog/update-consolidate-social-state
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: minor
-Type: changed
-
-Social: Updated intial state logic to use the new consolidated initial state
diff --git a/projects/plugins/social/changelog/update-jsdoc-comments-for-wp-coding-standards b/projects/plugins/social/changelog/update-jsdoc-comments-for-wp-coding-standards
deleted file mode 100644
index 0e655b2b8b7a3..0000000000000
--- a/projects/plugins/social/changelog/update-jsdoc-comments-for-wp-coding-standards
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: changed
-Comment: Reformat jsdoc comments. No change to meaning or functionality.
-
-
diff --git a/projects/plugins/social/changelog/update-my-jetpack-protect-card-waf-dependency b/projects/plugins/social/changelog/update-my-jetpack-protect-card-waf-dependency
deleted file mode 100644
index 59c80f69574e5..0000000000000
--- a/projects/plugins/social/changelog/update-my-jetpack-protect-card-waf-dependency
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: patch
-Type: changed
-
-Update composer lock file
diff --git a/projects/plugins/social/changelog/update-socia-render-share-status-modal-globally b/projects/plugins/social/changelog/update-socia-render-share-status-modal-globally
deleted file mode 100644
index b7d9c012f4521..0000000000000
--- a/projects/plugins/social/changelog/update-socia-render-share-status-modal-globally
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: minor
-Type: changed
-
-Social: Updated the share status modal to render it globally
diff --git a/projects/plugins/social/changelog/update-social-initial-stat-migrate-shares-data b/projects/plugins/social/changelog/update-social-initial-stat-migrate-shares-data
deleted file mode 100644
index b1cfb12b7f277..0000000000000
--- a/projects/plugins/social/changelog/update-social-initial-stat-migrate-shares-data
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: minor
-Type: removed
-
-Social: Removed share limits UI and data logic
diff --git a/projects/plugins/social/changelog/update-social-initial-state-migrate-shares-data b/projects/plugins/social/changelog/update-social-initial-state-migrate-shares-data
deleted file mode 100644
index 40880a44a4eaa..0000000000000
--- a/projects/plugins/social/changelog/update-social-initial-state-migrate-shares-data
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: patch
-Type: changed
-
-Social: Migrated shares data to the new script data
diff --git a/projects/plugins/social/changelog/update-sync-hpos-add-shop-subscription-to-types b/projects/plugins/social/changelog/update-sync-hpos-add-shop-subscription-to-types
deleted file mode 100644
index 9aa70e3ec1f75..0000000000000
--- a/projects/plugins/social/changelog/update-sync-hpos-add-shop-subscription-to-types
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: changed
-Comment: Updated composer.lock.
-
-
diff --git a/projects/plugins/social/composer.json b/projects/plugins/social/composer.json
index 9d0f2deb98628..7b3ba059a6152 100644
--- a/projects/plugins/social/composer.json
+++ b/projects/plugins/social/composer.json
@@ -84,6 +84,6 @@
"automattic/jetpack-autoloader": true,
"automattic/jetpack-composer-plugin": true
},
- "autoloader-suffix": "c4802e05bbcf59fd3b6350e8d3e5482c_socialⓥ5_1_0"
+ "autoloader-suffix": "c4802e05bbcf59fd3b6350e8d3e5482c_socialⓥ5_2_0"
}
}
diff --git a/projects/plugins/social/jetpack-social.php b/projects/plugins/social/jetpack-social.php
index 22eef18bb6641..f18c302c72ce3 100644
--- a/projects/plugins/social/jetpack-social.php
+++ b/projects/plugins/social/jetpack-social.php
@@ -4,7 +4,7 @@
* Plugin Name: Jetpack Social
* Plugin URI: https://wordpress.org/plugins/jetpack-social
* Description: Share your site’s posts on several social media networks automatically when you publish a new post.
- * Version: 5.1.0
+ * Version: 5.2.0
* Author: Automattic - Jetpack Social team
* Author URI: https://jetpack.com/social/
* License: GPLv2 or later
diff --git a/projects/plugins/social/package.json b/projects/plugins/social/package.json
index 1a930f58e08b5..b3330a186a63a 100644
--- a/projects/plugins/social/package.json
+++ b/projects/plugins/social/package.json
@@ -65,7 +65,7 @@
"postcss-loader": "6.2.0",
"sass": "1.64.1",
"sass-loader": "12.4.0",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
}
}
diff --git a/projects/plugins/social/readme.txt b/projects/plugins/social/readme.txt
index 329da21e4468a..b93c5e8cb612e 100644
--- a/projects/plugins/social/readme.txt
+++ b/projects/plugins/social/readme.txt
@@ -102,12 +102,26 @@ The easiest way is to use the Custom Message option in the publishing options bo
6. Managing Social media accounts in the post editor
== Changelog ==
-### 5.1.0 - 2024-08-08
-#### Added
-- Added feature flag management for social
+### 5.2.0 - 2024-08-29
+
+#### Changed
+
+- Admin menu: change order of Jetpack sub-menu items
+- Moved PostPublishPanels component to publicize-components package
+- Social: Migrated shares data to the new script data
+- Social: Updated intial state logic to use the new consolidated initial state
+- Social: Updated the share status modal to render it globally
+- Update composer lock file
+- Updated package dependencies.
+
+#### Removed
+
+- Remove the unused Advanced plan nudge
+- Social: Removed share limits UI and data logic
#### Fixed
-- Lossless image optimization of images in projects/plugins [subdirectories from a* through social]
+
+- Revert recent SVG image optimizations.
== Upgrade Notice ==
diff --git a/projects/plugins/social/src/class-jetpack-social.php b/projects/plugins/social/src/class-jetpack-social.php
index 60c80835cdced..9a4954d4c55eb 100644
--- a/projects/plugins/social/src/class-jetpack-social.php
+++ b/projects/plugins/social/src/class-jetpack-social.php
@@ -52,7 +52,8 @@ public function __construct( $connection_manager = null ) {
_x( 'Social', 'The Jetpack Social product name, without the Jetpack prefix', 'jetpack-social' ),
'manage_options',
'jetpack-social',
- array( $this, 'plugin_settings_page' )
+ array( $this, 'plugin_settings_page' ),
+ 4
);
add_action( 'load-' . $page_suffix, array( $this, 'admin_init' ) );
diff --git a/projects/plugins/starter-plugin/changelog/renovate-npm-webpack-vulnerability b/projects/plugins/starter-plugin/changelog/renovate-npm-webpack-vulnerability
new file mode 100644
index 0000000000000..c47cb18e82997
--- /dev/null
+++ b/projects/plugins/starter-plugin/changelog/renovate-npm-webpack-vulnerability
@@ -0,0 +1,4 @@
+Significance: patch
+Type: changed
+
+Updated package dependencies.
diff --git a/projects/plugins/starter-plugin/package.json b/projects/plugins/starter-plugin/package.json
index 9a3634c378eb0..070c5f753e392 100644
--- a/projects/plugins/starter-plugin/package.json
+++ b/projects/plugins/starter-plugin/package.json
@@ -50,7 +50,7 @@
"jest-environment-jsdom": "29.7.0",
"sass": "1.64.1",
"sass-loader": "12.4.0",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
}
}
diff --git a/projects/plugins/videopress/changelog/renovate-npm-webpack-vulnerability b/projects/plugins/videopress/changelog/renovate-npm-webpack-vulnerability
new file mode 100644
index 0000000000000..c47cb18e82997
--- /dev/null
+++ b/projects/plugins/videopress/changelog/renovate-npm-webpack-vulnerability
@@ -0,0 +1,4 @@
+Significance: patch
+Type: changed
+
+Updated package dependencies.
diff --git a/projects/plugins/videopress/package.json b/projects/plugins/videopress/package.json
index b2f11b6df655f..068ef40fbbf6d 100644
--- a/projects/plugins/videopress/package.json
+++ b/projects/plugins/videopress/package.json
@@ -35,7 +35,7 @@
"concurrently": "7.6.0",
"sass": "1.64.1",
"sass-loader": "12.4.0",
- "webpack": "5.76.0",
+ "webpack": "5.94.0",
"webpack-cli": "4.9.1"
}
}
diff --git a/tools/composer-update-monorepo.sh b/tools/composer-update-monorepo.sh
index 224f198ac147d..97e25d1de5b27 100755
--- a/tools/composer-update-monorepo.sh
+++ b/tools/composer-update-monorepo.sh
@@ -25,9 +25,9 @@ function check_dir {
return 1
elif [[ -d "$1" ]]; then
DIR="${1%/}"
- elif [[ "$1" == "*/composer.json" && -f "$1" ]]; then # DWIM
+ elif [[ "$1" == */composer.json && -f "$1" ]]; then # DWIM
DIR="$(dirname "$1")"
- elif [[ "$1" == "*/composer.lock" && -f "$1" ]]; then # DWIM
+ elif [[ "$1" == */composer.lock && -f "$1" ]]; then # DWIM
DIR="$(dirname "$1")"
else
error "Directory $1 does not exist."
diff --git a/tools/version-packages.sh b/tools/version-packages.sh
index e562c8e1c5a06..c76ddec94cc93 100755
--- a/tools/version-packages.sh
+++ b/tools/version-packages.sh
@@ -35,7 +35,7 @@ function check_dir {
error "$DIR does not contain composer.json."
return 1
fi
- elif [[ "$1" == "*/composer.json" && -f "$1" ]]; then # DWIM
+ elif [[ "$1" == */composer.json && -f "$1" ]]; then # DWIM
DIR="$(dirname "$1")"
else
error "Directory $1 does not exist."