From 4023eee5f787874ad9eafece71d0b1237f15814e Mon Sep 17 00:00:00 2001 From: efuller Date: Thu, 13 Jun 2024 15:59:11 -0400 Subject: [PATCH 01/25] Scaffold pre publish panel plugin --- plugin.php | 1 + plugins/pre-publish-checks/index.php | 42 +++++++++++++++++++ plugins/pre-publish-checks/index.ts | 6 +++ .../pre-publish-checks/pre-publish-panel.tsx | 12 ++++++ webpack.config.js | 1 + 5 files changed, 62 insertions(+) create mode 100644 plugins/pre-publish-checks/index.php create mode 100644 plugins/pre-publish-checks/index.ts create mode 100644 plugins/pre-publish-checks/pre-publish-panel.tsx diff --git a/plugin.php b/plugin.php index 5297e9e2..94a11f6b 100644 --- a/plugin.php +++ b/plugin.php @@ -55,6 +55,7 @@ function () { require_once __DIR__ . '/block-filters/list/index.php'; require_once __DIR__ . '/plugins/newsletter-from-post/index.php'; require_once __DIR__ . '/plugins/newsletter-status/index.php'; +require_once __DIR__ . '/plugins/pre-publish-checks/index.php'; /* class files get loaded by the autoloader */ diff --git a/plugins/pre-publish-checks/index.php b/plugins/pre-publish-checks/index.php new file mode 100644 index 00000000..26e3baa2 --- /dev/null +++ b/plugins/pre-publish-checks/index.php @@ -0,0 +1,42 @@ + +

Pre Publish Panel

+

Pre Publish Panel content

+ + ); +} + +export default PrePublishPanel; diff --git a/webpack.config.js b/webpack.config.js index 828cd8c1..ba8f686f 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -30,6 +30,7 @@ module.exports = (env, { mode }) => ({ 'wp-newsletter-builder-list/index': './block-filters/list', 'wp-newsletter-builder-from-post/index': './plugins/newsletter-from-post', 'newsletter-status/index': './plugins/newsletter-status', + 'pre-publish-checks/index': './plugins/pre-publish-checks', }), }; }, From 0e658dd9eabddb55dd7e1cad710aa468ae56f476 Mon Sep 17 00:00:00 2001 From: efuller Date: Fri, 14 Jun 2024 16:22:14 -0400 Subject: [PATCH 02/25] Add in a pre-publish check on newsletters for titles --- plugins/pre-publish-checks/index.php | 2 +- .../pre-publish-checks/pre-publish-panel.tsx | 32 +++++++++++++++++-- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/plugins/pre-publish-checks/index.php b/plugins/pre-publish-checks/index.php index 26e3baa2..962e33e7 100644 --- a/plugins/pre-publish-checks/index.php +++ b/plugins/pre-publish-checks/index.php @@ -35,7 +35,7 @@ function register_pre_publish_scripts(): void { */ function action_enqueue_pre_publish_assets(): void { $post_type = get_edit_post_type(); - if ( 'nb_template' !== $post_type ) { + if ( 'nb_newsletter' !== $post_type ) { return; } wp_enqueue_script( 'plugin-pre-publish-checks' ); diff --git a/plugins/pre-publish-checks/pre-publish-panel.tsx b/plugins/pre-publish-checks/pre-publish-panel.tsx index 20ce1ea8..76b964dc 100644 --- a/plugins/pre-publish-checks/pre-publish-panel.tsx +++ b/plugins/pre-publish-checks/pre-publish-panel.tsx @@ -1,10 +1,36 @@ import { PluginPrePublishPanel } from '@wordpress/edit-post'; +import { useDispatch, useSelect } from '@wordpress/data'; +import { __ } from '@wordpress/i18n'; function PrePublishPanel() { + // @ts-ignore + const postTitle = useSelect((select) => select('core/editor').getEditedPostAttribute('title')); + const isTitleOk = postTitle.length > 0; + + const { lockPostSaving, unlockPostSaving } = useDispatch('core/editor'); + const { createWarningNotice, removeNotice } = useDispatch('core/notices'); + + if (!isTitleOk) { + lockPostSaving('title-empty-lock'); + createWarningNotice( + __('Please enter a newsletter title before publishing.', 'wp-newsletter-builder'), + { id: 'title-empty-lock', isDismissible: false }, + ); + } else { + unlockPostSaving('title-empty-lock'); + removeNotice('title-empty-lock'); + } + return ( - -

Pre Publish Panel

-

Pre Publish Panel content

+ +

+ {isTitleOk + ? __('All headline requirements are met.', 'wp-newsletter-builder') + : __('Headline is required before publishing.', 'wp-newsletter-builder')} +

); } From 0f1f2401b992ae5c6f5092de636b744ef877c3b6 Mon Sep 17 00:00:00 2001 From: efuller Date: Mon, 17 Jun 2024 09:02:55 -0400 Subject: [PATCH 03/25] Rename pre-publish panel --- plugins/pre-publish-checks/pre-publish-panel.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/pre-publish-checks/pre-publish-panel.tsx b/plugins/pre-publish-checks/pre-publish-panel.tsx index 76b964dc..c873b827 100644 --- a/plugins/pre-publish-checks/pre-publish-panel.tsx +++ b/plugins/pre-publish-checks/pre-publish-panel.tsx @@ -23,7 +23,7 @@ function PrePublishPanel() { return (

From d0c94202eeba5fd13394320ee2104d6766e1c9f5 Mon Sep 17 00:00:00 2001 From: efuller Date: Mon, 17 Jun 2024 09:03:06 -0400 Subject: [PATCH 04/25] Check for empty title --- plugins/pre-publish-checks/pre-publish-panel.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/pre-publish-checks/pre-publish-panel.tsx b/plugins/pre-publish-checks/pre-publish-panel.tsx index c873b827..99c497f0 100644 --- a/plugins/pre-publish-checks/pre-publish-panel.tsx +++ b/plugins/pre-publish-checks/pre-publish-panel.tsx @@ -5,7 +5,7 @@ import { __ } from '@wordpress/i18n'; function PrePublishPanel() { // @ts-ignore const postTitle = useSelect((select) => select('core/editor').getEditedPostAttribute('title')); - const isTitleOk = postTitle.length > 0; + const isTitleOk = postTitle.trim().length > 0; const { lockPostSaving, unlockPostSaving } = useDispatch('core/editor'); const { createWarningNotice, removeNotice } = useDispatch('core/notices'); From e3abd0d3a24ae6b6e1594bd002ea5db3243e0ff8 Mon Sep 17 00:00:00 2001 From: efuller Date: Tue, 18 Jun 2024 14:46:46 -0400 Subject: [PATCH 05/25] Remove email settings from nb_template post type --- src/class-wp-newsletter-builder.php | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/class-wp-newsletter-builder.php b/src/class-wp-newsletter-builder.php index e509d388..4cfc0a99 100644 --- a/src/class-wp-newsletter-builder.php +++ b/src/class-wp-newsletter-builder.php @@ -74,17 +74,6 @@ public function register_post_types(): void { 'supports' => [ 'title', 'editor', 'custom-fields' ], 'show_in_rest' => true, 'exclude_from_search' => true, - 'template' => [ - [ - 'wp-newsletter-builder/email-settings', - [ - 'lock' => [ - 'move' => true, - 'remove' => true, - ], - ], - ], - ], 'menu_icon' => 'dashicons-admin-customizer', ], ); From d474c77b98f2d3850ce25e09606c6d0a95360cf0 Mon Sep 17 00:00:00 2001 From: efuller Date: Tue, 18 Jun 2024 14:47:41 -0400 Subject: [PATCH 06/25] Comment cleanup --- blocks/email-settings/edit.tsx | 35 +++------------------------------- 1 file changed, 3 insertions(+), 32 deletions(-) diff --git a/blocks/email-settings/edit.tsx b/blocks/email-settings/edit.tsx index 4b4c91cc..57814736 100644 --- a/blocks/email-settings/edit.tsx +++ b/blocks/email-settings/edit.tsx @@ -1,37 +1,16 @@ -/** - * Retrieves the translation of text. - * - * @see https://developer.wordpress.org/block-editor/reference-guides/packages/packages-i18n/ - */ +import { MultiSelect } from 'react-multi-select-component'; import { __ } from '@wordpress/i18n'; import { TextControl, Spinner, SelectControl } from '@wordpress/components'; import apiFetch from '@wordpress/api-fetch'; import { useEffect, useState } from '@wordpress/element'; -import { dispatch } from '@wordpress/data'; -import { parse } from '@wordpress/blocks'; - -/** - * React hook that is used to mark the block wrapper element. - * It provides all the necessary props like the class name. - * - * @see https://developer.wordpress.org/block-editor/reference-guides/packages/packages-block-editor/#useblockprops - */ +import { dispatch, useSelect } from '@wordpress/data'; +import { BlockInstance, parse } from '@wordpress/blocks'; import { useBlockProps } from '@wordpress/block-editor'; -// import { usePostMeta } from '@alleyinteractive/block-editor-tools'; - -import { MultiSelect } from 'react-multi-select-component'; - import EmailTypeSelector from '../../components/emailTypeSelector'; import usePostMeta from '../../hooks/usePostMeta'; -/** - * Lets webpack process CSS, SASS or SCSS files referenced in JavaScript files. - * Those files can contain any CSS code that gets applied to the editor. - * - * @see https://www.npmjs.com/package/@wordpress/scripts#using-css - */ import './index.scss'; interface ListResult { @@ -50,14 +29,6 @@ interface Window { }; } -/** - * The edit function describes the structure of your block in the context of the - * editor. This represents what the editor will render when the block is used. - * - * @see https://developer.wordpress.org/block-editor/reference-guides/block-api/block-edit-save/#edit - * - * @return {WPElement} Element to render. - */ export default function Edit() { const [meta, setMeta] = usePostMeta(); const { From b70d3c61564cb390f1c108a73f573842700a7ae6 Mon Sep 17 00:00:00 2001 From: efuller Date: Tue, 18 Jun 2024 14:48:32 -0400 Subject: [PATCH 07/25] Adjust the content handler Allow it to account for the email settings block being removed from the NB templated. --- blocks/email-settings/edit.tsx | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/blocks/email-settings/edit.tsx b/blocks/email-settings/edit.tsx index 57814736..03574fa8 100644 --- a/blocks/email-settings/edit.tsx +++ b/blocks/email-settings/edit.tsx @@ -8,11 +8,15 @@ import { BlockInstance, parse } from '@wordpress/blocks'; import { useBlockProps } from '@wordpress/block-editor'; import EmailTypeSelector from '../../components/emailTypeSelector'; - import usePostMeta from '../../hooks/usePostMeta'; import './index.scss'; +interface BlockEditor { + getBlocksByName: (attribute: string) => string[]; + getBlocksByClientId: (attribute: string) => BlockInstance[]; +} + interface ListResult { ListID: string; Name: string; @@ -41,6 +45,14 @@ export default function Edit() { nb_newsletter_suppression_group: suppressionGroup, } = meta; + const contentController = useSelect((select) => { + const { getBlocksByName, getBlocksByClientId } = select('core/block-editor') as BlockEditor; + return { + getEmailSettingsBlocks: () => getBlocksByName('wp-newsletter-builder/email-settings'), + getBlocksByClientId, + }; + }, []); + const { newsletterBuilder: { usesSuppressionLists = false, @@ -64,7 +76,22 @@ export default function Edit() { }; const contentHandler = (content: string) => { - dispatch('core/block-editor').resetBlocks(parse(content)); + const emailSettingsBlockIds = contentController.getEmailSettingsBlocks(); + const emailSettingsBlockInstances = contentController + .getBlocksByClientId(emailSettingsBlockIds[0]); + + const parsedContentFromTemplate = parse(content); + + const emailSettingsBlockAlreadyPresent = parsedContentFromTemplate.filter((parsedBlock) => parsedBlock.name === 'wp-newsletter-builder/email-settings'); + + let newBlocks: BlockInstance[] = []; + if (emailSettingsBlockAlreadyPresent.length === 0) { + newBlocks = [...emailSettingsBlockInstances, ...parsedContentFromTemplate]; + } else { + newBlocks = [...parsedContentFromTemplate]; + } + + dispatch('core/block-editor').resetBlocks(newBlocks); }; const [lists, setLists] = useState([]); From 6f0e4214dab92d06af456ff705ffe0ca1b8b8361 Mon Sep 17 00:00:00 2001 From: efuller Date: Tue, 18 Jun 2024 15:11:33 -0400 Subject: [PATCH 08/25] Npm audit fix --- package-lock.json | 937 ++++++++++++---------------------------------- 1 file changed, 249 insertions(+), 688 deletions(-) diff --git a/package-lock.json b/package-lock.json index fcee7bce..050cad9e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3713,13 +3713,13 @@ } }, "node_modules/@playwright/test": { - "version": "1.43.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.43.1.tgz", - "integrity": "sha512-HgtQzFgNEEo4TE22K/X7sYTYNqEMMTZmFS8kTq6m8hXj+m1D8TgwgIbumHddJa9h4yl4GkKb8/bgAl2+g7eDgA==", + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.44.1.tgz", + "integrity": "sha512-1hZ4TNvD5z9VuhNJ/walIjvMVvYkZKf71axoF/uiAqpntQJXpG64dlXhoDXE3OczPuTuvjf/M5KWFg5VAVUS3Q==", "dev": true, "peer": true, "dependencies": { - "playwright": "1.43.1" + "playwright": "1.44.1" }, "bin": { "playwright": "cli.js" @@ -5360,17 +5360,6 @@ "node": ">=12" } }, - "node_modules/@types/wordpress__block-editor/node_modules/@wordpress/hooks": { - "version": "3.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.56.0.tgz", - "integrity": "sha512-sxoNbXdqfhlRNduDqR5y5Cq7Rwm5ATZGIr5U9nrM5RHWd+8v7g8wpB/rpTSqi+HeCW3suiFuN6qJJZ4eFwRB2w==", - "dependencies": { - "@babel/runtime": "^7.16.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@types/wordpress__block-editor/node_modules/@wordpress/html-entities": { "version": "3.56.0", "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-3.56.0.tgz", @@ -5382,25 +5371,6 @@ "node": ">=12" } }, - "node_modules/@types/wordpress__block-editor/node_modules/@wordpress/i18n": { - "version": "4.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.56.0.tgz", - "integrity": "sha512-W+WL8vxwqUeicgXvIHZ3Htq6pYrJe2Dn/9SBsQ7gFPUrGWe2ww5IzPocLv4rAha3lca2ZVIX2q47rGaSs9t8Kw==", - "dependencies": { - "@babel/runtime": "^7.16.0", - "@wordpress/hooks": "^3.56.0", - "gettext-parser": "^1.3.1", - "memize": "^2.1.0", - "sprintf-js": "^1.1.1", - "tannin": "^1.2.0" - }, - "bin": { - "pot-to-php": "tools/pot-to-php.js" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@types/wordpress__block-editor/node_modules/@wordpress/icons": { "version": "9.47.0", "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-9.47.0.tgz", @@ -5425,18 +5395,6 @@ "node": ">=12" } }, - "node_modules/@types/wordpress__block-editor/node_modules/@wordpress/keycodes": { - "version": "3.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-3.56.0.tgz", - "integrity": "sha512-YIvqB0AEsu3fjkuQHNT7XladaTDE1Thntv+oqzkRejdNodH5tbPb3CAePAK3F7iQurZ0GCaqlmJTy9qcHwDU0Q==", - "dependencies": { - "@babel/runtime": "^7.16.0", - "@wordpress/i18n": "^4.56.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@types/wordpress__block-editor/node_modules/@wordpress/primitives": { "version": "3.54.0", "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-3.54.0.tgz", @@ -5491,14 +5449,6 @@ "node": ">=12" } }, - "node_modules/@types/wordpress__block-editor/node_modules/@wordpress/warning": { - "version": "2.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.56.0.tgz", - "integrity": "sha512-Bd1Zy5eWQPKoQsfQwD9T1KZWPpq+ZFyozirx+Z5MnX59J0i80p8KiEMcmXhPH+Os9An2PtlVV9j0gY9z5z0oAw==", - "engines": { - "node": ">=12" - } - }, "node_modules/@types/wordpress__block-editor/node_modules/date-fns": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", @@ -5787,17 +5737,6 @@ "node": ">=12" } }, - "node_modules/@types/wordpress__blocks/node_modules/@wordpress/hooks": { - "version": "3.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.56.0.tgz", - "integrity": "sha512-sxoNbXdqfhlRNduDqR5y5Cq7Rwm5ATZGIr5U9nrM5RHWd+8v7g8wpB/rpTSqi+HeCW3suiFuN6qJJZ4eFwRB2w==", - "dependencies": { - "@babel/runtime": "^7.16.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@types/wordpress__blocks/node_modules/@wordpress/html-entities": { "version": "3.56.0", "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-3.56.0.tgz", @@ -5809,25 +5748,6 @@ "node": ">=12" } }, - "node_modules/@types/wordpress__blocks/node_modules/@wordpress/i18n": { - "version": "4.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.56.0.tgz", - "integrity": "sha512-W+WL8vxwqUeicgXvIHZ3Htq6pYrJe2Dn/9SBsQ7gFPUrGWe2ww5IzPocLv4rAha3lca2ZVIX2q47rGaSs9t8Kw==", - "dependencies": { - "@babel/runtime": "^7.16.0", - "@wordpress/hooks": "^3.56.0", - "gettext-parser": "^1.3.1", - "memize": "^2.1.0", - "sprintf-js": "^1.1.1", - "tannin": "^1.2.0" - }, - "bin": { - "pot-to-php": "tools/pot-to-php.js" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@types/wordpress__blocks/node_modules/@wordpress/icons": { "version": "9.47.0", "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-9.47.0.tgz", @@ -5852,18 +5772,6 @@ "node": ">=12" } }, - "node_modules/@types/wordpress__blocks/node_modules/@wordpress/keycodes": { - "version": "3.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-3.56.0.tgz", - "integrity": "sha512-YIvqB0AEsu3fjkuQHNT7XladaTDE1Thntv+oqzkRejdNodH5tbPb3CAePAK3F7iQurZ0GCaqlmJTy9qcHwDU0Q==", - "dependencies": { - "@babel/runtime": "^7.16.0", - "@wordpress/i18n": "^4.56.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@types/wordpress__blocks/node_modules/@wordpress/primitives": { "version": "3.54.0", "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-3.54.0.tgz", @@ -5941,14 +5849,6 @@ "node": ">=12" } }, - "node_modules/@types/wordpress__blocks/node_modules/@wordpress/warning": { - "version": "2.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.56.0.tgz", - "integrity": "sha512-Bd1Zy5eWQPKoQsfQwD9T1KZWPpq+ZFyozirx+Z5MnX59J0i80p8KiEMcmXhPH+Os9An2PtlVV9j0gY9z5z0oAw==", - "engines": { - "node": ">=12" - } - }, "node_modules/@types/wordpress__blocks/node_modules/date-fns": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", @@ -6194,18 +6094,6 @@ "node": ">=12" } }, - "node_modules/@types/wordpress__edit-post/node_modules/@wordpress/hooks": { - "version": "3.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.56.0.tgz", - "integrity": "sha512-sxoNbXdqfhlRNduDqR5y5Cq7Rwm5ATZGIr5U9nrM5RHWd+8v7g8wpB/rpTSqi+HeCW3suiFuN6qJJZ4eFwRB2w==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.16.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@types/wordpress__edit-post/node_modules/@wordpress/html-entities": { "version": "3.56.0", "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-3.56.0.tgz", @@ -6218,26 +6106,6 @@ "node": ">=12" } }, - "node_modules/@types/wordpress__edit-post/node_modules/@wordpress/i18n": { - "version": "4.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.56.0.tgz", - "integrity": "sha512-W+WL8vxwqUeicgXvIHZ3Htq6pYrJe2Dn/9SBsQ7gFPUrGWe2ww5IzPocLv4rAha3lca2ZVIX2q47rGaSs9t8Kw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.16.0", - "@wordpress/hooks": "^3.56.0", - "gettext-parser": "^1.3.1", - "memize": "^2.1.0", - "sprintf-js": "^1.1.1", - "tannin": "^1.2.0" - }, - "bin": { - "pot-to-php": "tools/pot-to-php.js" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@types/wordpress__edit-post/node_modules/@wordpress/icons": { "version": "9.47.0", "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-9.47.0.tgz", @@ -6264,19 +6132,6 @@ "node": ">=12" } }, - "node_modules/@types/wordpress__edit-post/node_modules/@wordpress/keycodes": { - "version": "3.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-3.56.0.tgz", - "integrity": "sha512-YIvqB0AEsu3fjkuQHNT7XladaTDE1Thntv+oqzkRejdNodH5tbPb3CAePAK3F7iQurZ0GCaqlmJTy9qcHwDU0Q==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.16.0", - "@wordpress/i18n": "^4.56.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@types/wordpress__edit-post/node_modules/@wordpress/primitives": { "version": "3.54.0", "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-3.54.0.tgz", @@ -6359,15 +6214,6 @@ "node": ">=12" } }, - "node_modules/@types/wordpress__edit-post/node_modules/@wordpress/warning": { - "version": "2.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.56.0.tgz", - "integrity": "sha512-Bd1Zy5eWQPKoQsfQwD9T1KZWPpq+ZFyozirx+Z5MnX59J0i80p8KiEMcmXhPH+Os9An2PtlVV9j0gY9z5z0oAw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/@types/wordpress__edit-post/node_modules/date-fns": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", @@ -6971,13 +6817,13 @@ } }, "node_modules/@wordpress/api-fetch": { - "version": "6.48.1", - "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.48.1.tgz", - "integrity": "sha512-3EEmItYDi1hNujIkX2MT6LVbZEj2xCStI50QUTqWKLvDa/qOS2L9l1yV+Ol330ZRErIRNBZds/PuujGKA0LZQw==", + "version": "6.55.0", + "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.55.0.tgz", + "integrity": "sha512-1HrCUsJdeRY5Y0IjplotINwqMRO81e7O7VhBScuKk7iOuDm/E1ioKv2uLGnPNWziYu+Zf025byxOqVzXDyM2gw==", "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/i18n": "^4.51.1", - "@wordpress/url": "^3.52.1" + "@wordpress/i18n": "^4.58.0", + "@wordpress/url": "^3.59.0" }, "engines": { "node": ">=12" @@ -6995,9 +6841,9 @@ } }, "node_modules/@wordpress/babel-plugin-import-jsx-pragma": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/babel-plugin-import-jsx-pragma/-/babel-plugin-import-jsx-pragma-4.39.0.tgz", - "integrity": "sha512-yQySutPQq+Joa3ePzc9X8f5hZacmcn5e9KMiJYrXBUqj5VKl4RR8N3e+UOl1lWoB2NI/7bA9tW9TXJlDpHJX1w==", + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/@wordpress/babel-plugin-import-jsx-pragma/-/babel-plugin-import-jsx-pragma-4.41.0.tgz", + "integrity": "sha512-hYxj2Uobxk86ctlfaJou9v13XqXZ30yx4ZwRNu5cH5/LWXe2MIXBTPv7dUk6wqN/qFOjsFvP9jCB0NsW6MnkrA==", "dev": true, "engines": { "node": ">=14" @@ -7007,9 +6853,9 @@ } }, "node_modules/@wordpress/babel-preset-default": { - "version": "7.35.1", - "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-7.35.1.tgz", - "integrity": "sha512-fA/XOt6cxd6YdD8jBgbYRswse1GuoWdrVM5QruIZMoQMIqHqvRMzN1pdi5RccS5s11WM64J9pdVZ5lTy6wQcjg==", + "version": "7.42.0", + "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-7.42.0.tgz", + "integrity": "sha512-AWSxWuEuzazt/nWomKiaVhYQeXuqxTniPCKhvks58wB3P4UXvSe3hRnO+nujz20IuxIk2xHT6x47HgpDZy30jw==", "dev": true, "dependencies": { "@babel/core": "^7.16.0", @@ -7018,21 +6864,21 @@ "@babel/preset-env": "^7.16.0", "@babel/preset-typescript": "^7.16.0", "@babel/runtime": "^7.16.0", - "@wordpress/babel-plugin-import-jsx-pragma": "^4.34.1", - "@wordpress/browserslist-config": "^5.34.1", - "@wordpress/warning": "^2.51.1", + "@wordpress/babel-plugin-import-jsx-pragma": "^4.41.0", + "@wordpress/browserslist-config": "^5.41.0", + "@wordpress/warning": "^2.58.0", "browserslist": "^4.21.10", "core-js": "^3.31.0", - "react": "^18.2.0" + "react": "^18.3.0" }, "engines": { "node": ">=14" } }, "node_modules/@wordpress/base-styles": { - "version": "4.47.0", - "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-4.47.0.tgz", - "integrity": "sha512-1myPBFLuMnuxUE8M2VGZ+wbGhgasLNqFdxQnWfYDMRhaSESsZgaLaMoasNZ4+e/N7Nssl97ad/XGwZ721HXqvQ==", + "version": "4.49.0", + "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-4.49.0.tgz", + "integrity": "sha512-yFRYqNtd26ULZ0oAHhCu/IcaA0XHI3E7kRCKajZqUvyRQj7YprXnpD3o0/pnwvF6ZFTXzCX8pXHjUc2TIv97ig==", "dev": true }, "node_modules/@wordpress/blob": { @@ -7335,9 +7181,9 @@ } }, "node_modules/@wordpress/browserslist-config": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-5.39.0.tgz", - "integrity": "sha512-oy5CRWS3WsaFN/KAgOUIE6mmyuFu5qmKZZhQ+voCN+ifXTsj1J6ypR3RyY03Cbojy6kidyVYl3qRyMxbbUwWSQ==", + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-5.41.0.tgz", + "integrity": "sha512-J7ejzzDpPZddVIiq2YiK8J/pNTJDy3X1s+5ZtwkwklCxBMZJurxf9pEhtbaf7us0Q6c1j8Ubv7Fpx3lqk2ypxA==", "dev": true, "engines": { "node": ">=14" @@ -7573,17 +7419,6 @@ "node": ">=12" } }, - "node_modules/@wordpress/commands/node_modules/@wordpress/hooks": { - "version": "3.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.56.0.tgz", - "integrity": "sha512-sxoNbXdqfhlRNduDqR5y5Cq7Rwm5ATZGIr5U9nrM5RHWd+8v7g8wpB/rpTSqi+HeCW3suiFuN6qJJZ4eFwRB2w==", - "dependencies": { - "@babel/runtime": "^7.16.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@wordpress/commands/node_modules/@wordpress/html-entities": { "version": "3.56.0", "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-3.56.0.tgz", @@ -7595,25 +7430,6 @@ "node": ">=12" } }, - "node_modules/@wordpress/commands/node_modules/@wordpress/i18n": { - "version": "4.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.56.0.tgz", - "integrity": "sha512-W+WL8vxwqUeicgXvIHZ3Htq6pYrJe2Dn/9SBsQ7gFPUrGWe2ww5IzPocLv4rAha3lca2ZVIX2q47rGaSs9t8Kw==", - "dependencies": { - "@babel/runtime": "^7.16.0", - "@wordpress/hooks": "^3.56.0", - "gettext-parser": "^1.3.1", - "memize": "^2.1.0", - "sprintf-js": "^1.1.1", - "tannin": "^1.2.0" - }, - "bin": { - "pot-to-php": "tools/pot-to-php.js" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@wordpress/commands/node_modules/@wordpress/icons": { "version": "9.47.0", "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-9.47.0.tgz", @@ -7655,18 +7471,6 @@ "react": "^18.0.0" } }, - "node_modules/@wordpress/commands/node_modules/@wordpress/keycodes": { - "version": "3.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-3.56.0.tgz", - "integrity": "sha512-YIvqB0AEsu3fjkuQHNT7XladaTDE1Thntv+oqzkRejdNodH5tbPb3CAePAK3F7iQurZ0GCaqlmJTy9qcHwDU0Q==", - "dependencies": { - "@babel/runtime": "^7.16.0", - "@wordpress/i18n": "^4.56.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@wordpress/commands/node_modules/@wordpress/primitives": { "version": "3.54.0", "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-3.54.0.tgz", @@ -7744,14 +7548,6 @@ "node": ">=12" } }, - "node_modules/@wordpress/commands/node_modules/@wordpress/warning": { - "version": "2.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.56.0.tgz", - "integrity": "sha512-Bd1Zy5eWQPKoQsfQwD9T1KZWPpq+ZFyozirx+Z5MnX59J0i80p8KiEMcmXhPH+Os9An2PtlVV9j0gY9z5z0oAw==", - "engines": { - "node": ">=12" - } - }, "node_modules/@wordpress/commands/node_modules/date-fns": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", @@ -8233,9 +8029,9 @@ } }, "node_modules/@wordpress/dependency-extraction-webpack-plugin": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-5.7.0.tgz", - "integrity": "sha512-s/xUnAEKwXmSUZLqrvX4n3tBWegxaiQfXJwd264MRJUmz4JibWJnvevkxM6tooEetu36xGiVHAIPvfvEEEtntQ==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-5.9.0.tgz", + "integrity": "sha512-hXbCkbG1XES47t7hFSETRrLfaRSPyQPlCnhlCx7FfhYFD0wh1jVArApXX5dD+A6wTrayXX/a16MpfaNqE662XA==", "dev": true, "dependencies": { "json2php": "^0.0.7" @@ -8283,14 +8079,14 @@ } }, "node_modules/@wordpress/e2e-test-utils-playwright": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-0.19.2.tgz", - "integrity": "sha512-pB/WsJwtbKLrKEhdr8HEmjThP6XGuFJmEHfxSm76l/S5Hc0dzhFHAYojk3iu0VEZMUlgppUNYfXTab8JTCkwBA==", + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-0.26.0.tgz", + "integrity": "sha512-4KFyQ3IsYIJaIvOQ1qhAHhRISs9abNToF/bktfMNxQiEJsmbNn7lq/IbaY+shqwdBWVg8TQtLcL4MpSl0ISaxQ==", "dev": true, "dependencies": { - "@wordpress/api-fetch": "^6.48.1", - "@wordpress/keycodes": "^3.51.1", - "@wordpress/url": "^3.52.1", + "@wordpress/api-fetch": "^6.55.0", + "@wordpress/keycodes": "^3.58.0", + "@wordpress/url": "^3.59.0", "change-case": "^4.1.2", "form-data": "^4.0.0", "get-port": "^5.1.1", @@ -8624,19 +8420,6 @@ "node": ">=12" } }, - "node_modules/@wordpress/editor/node_modules/@wordpress/api-fetch": { - "version": "6.53.0", - "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.53.0.tgz", - "integrity": "sha512-jHYueGfGfe89akyw1A28WGl17qIKTukMTwol4rHkZY43ygUmSJiTF/FSsExzMwk/j7OmGGr+GTa1TPO/tc71Lw==", - "dependencies": { - "@babel/runtime": "^7.16.0", - "@wordpress/i18n": "^4.56.0", - "@wordpress/url": "^3.57.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@wordpress/editor/node_modules/@wordpress/autop": { "version": "3.56.0", "resolved": "https://registry.npmjs.org/@wordpress/autop/-/autop-3.56.0.tgz", @@ -8998,17 +8781,6 @@ "node": ">=12" } }, - "node_modules/@wordpress/editor/node_modules/@wordpress/hooks": { - "version": "3.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.56.0.tgz", - "integrity": "sha512-sxoNbXdqfhlRNduDqR5y5Cq7Rwm5ATZGIr5U9nrM5RHWd+8v7g8wpB/rpTSqi+HeCW3suiFuN6qJJZ4eFwRB2w==", - "dependencies": { - "@babel/runtime": "^7.16.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@wordpress/editor/node_modules/@wordpress/html-entities": { "version": "3.56.0", "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-3.56.0.tgz", @@ -9020,25 +8792,6 @@ "node": ">=12" } }, - "node_modules/@wordpress/editor/node_modules/@wordpress/i18n": { - "version": "4.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.56.0.tgz", - "integrity": "sha512-W+WL8vxwqUeicgXvIHZ3Htq6pYrJe2Dn/9SBsQ7gFPUrGWe2ww5IzPocLv4rAha3lca2ZVIX2q47rGaSs9t8Kw==", - "dependencies": { - "@babel/runtime": "^7.16.0", - "@wordpress/hooks": "^3.56.0", - "gettext-parser": "^1.3.1", - "memize": "^2.1.0", - "sprintf-js": "^1.1.1", - "tannin": "^1.2.0" - }, - "bin": { - "pot-to-php": "tools/pot-to-php.js" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@wordpress/editor/node_modules/@wordpress/icons": { "version": "9.47.0", "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-9.47.0.tgz", @@ -9108,18 +8861,6 @@ "react": "^18.0.0" } }, - "node_modules/@wordpress/editor/node_modules/@wordpress/keycodes": { - "version": "3.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-3.56.0.tgz", - "integrity": "sha512-YIvqB0AEsu3fjkuQHNT7XladaTDE1Thntv+oqzkRejdNodH5tbPb3CAePAK3F7iQurZ0GCaqlmJTy9qcHwDU0Q==", - "dependencies": { - "@babel/runtime": "^7.16.0", - "@wordpress/i18n": "^4.56.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@wordpress/editor/node_modules/@wordpress/media-utils": { "version": "4.47.0", "resolved": "https://registry.npmjs.org/@wordpress/media-utils/-/media-utils-4.47.0.tgz", @@ -9344,18 +9085,6 @@ "node": ">=12" } }, - "node_modules/@wordpress/editor/node_modules/@wordpress/url": { - "version": "3.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.57.0.tgz", - "integrity": "sha512-W3F0KVEaMoRENya7GGUPXrZGYnhAg3fuLSLpNcf1skSrM5rUVMNdeRlZj+jln1O/+qjboJnC+y+IzOlQRwlS6A==", - "dependencies": { - "@babel/runtime": "^7.16.0", - "remove-accents": "^0.5.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@wordpress/editor/node_modules/@wordpress/viewport": { "version": "5.33.0", "resolved": "https://registry.npmjs.org/@wordpress/viewport/-/viewport-5.33.0.tgz", @@ -9373,14 +9102,6 @@ "react": "^18.0.0" } }, - "node_modules/@wordpress/editor/node_modules/@wordpress/warning": { - "version": "2.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.56.0.tgz", - "integrity": "sha512-Bd1Zy5eWQPKoQsfQwD9T1KZWPpq+ZFyozirx+Z5MnX59J0i80p8KiEMcmXhPH+Os9An2PtlVV9j0gY9z5z0oAw==", - "engines": { - "node": ">=12" - } - }, "node_modules/@wordpress/editor/node_modules/@wordpress/wordcount": { "version": "3.56.0", "resolved": "https://registry.npmjs.org/@wordpress/wordcount/-/wordcount-3.56.0.tgz", @@ -9471,16 +9192,16 @@ } }, "node_modules/@wordpress/eslint-plugin": { - "version": "17.13.0", - "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-17.13.0.tgz", - "integrity": "sha512-QnG5HmOd+XsweKOvrqbOugm9rINUjcsh1jo2SN4cbbTWZJ6nPmcfLS0YJdrKkgOQUnKDPQgBPVEyI8tp19OtBw==", + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-18.1.0.tgz", + "integrity": "sha512-5eGpXEwaZsKbEh9040nVr4ggmrpPmltP+Ie4iGruWvCme6ZIFYw70CyWEV8S102IkqjH/BaH6d+CWg8tN7sc/g==", "dev": true, "dependencies": { "@babel/eslint-parser": "^7.16.0", "@typescript-eslint/eslint-plugin": "^6.4.1", "@typescript-eslint/parser": "^6.4.1", - "@wordpress/babel-preset-default": "^7.40.0", - "@wordpress/prettier-config": "^3.13.0", + "@wordpress/babel-preset-default": "^7.42.0", + "@wordpress/prettier-config": "^3.15.0", "cosmiconfig": "^7.0.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-import": "^2.25.2", @@ -9513,38 +9234,6 @@ } } }, - "node_modules/@wordpress/eslint-plugin/node_modules/@wordpress/babel-preset-default": { - "version": "7.40.0", - "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-7.40.0.tgz", - "integrity": "sha512-/guM3C4NMoLK0pNO5Epbm/50L/MqXB0k3+fLtPbw3BC3v8Aus7ktE2l85gilowNyE3kYAyjFR/BsG5tassnaVQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.16.0", - "@babel/plugin-transform-react-jsx": "^7.16.0", - "@babel/plugin-transform-runtime": "^7.16.0", - "@babel/preset-env": "^7.16.0", - "@babel/preset-typescript": "^7.16.0", - "@babel/runtime": "^7.16.0", - "@wordpress/babel-plugin-import-jsx-pragma": "^4.39.0", - "@wordpress/browserslist-config": "^5.39.0", - "@wordpress/warning": "^2.56.0", - "browserslist": "^4.21.10", - "core-js": "^3.31.0", - "react": "^18.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@wordpress/eslint-plugin/node_modules/@wordpress/warning": { - "version": "2.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.56.0.tgz", - "integrity": "sha512-Bd1Zy5eWQPKoQsfQwD9T1KZWPpq+ZFyozirx+Z5MnX59J0i80p8KiEMcmXhPH+Os9An2PtlVV9j0gY9z5z0oAw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/@wordpress/eslint-plugin/node_modules/cosmiconfig": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", @@ -9627,9 +9316,9 @@ } }, "node_modules/@wordpress/hooks": { - "version": "3.51.1", - "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.51.1.tgz", - "integrity": "sha512-LmSwXzd6FdQfB771lOtGFK0deTbP3Bstm/DX2IuJ4ywpgREzGjLJ9A/Yje4GiEYJJkiJT3mmq57crkVj4jNlkQ==", + "version": "3.58.0", + "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz", + "integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==", "dependencies": { "@babel/runtime": "^7.16.0" }, @@ -9649,12 +9338,12 @@ } }, "node_modules/@wordpress/i18n": { - "version": "4.51.1", - "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.51.1.tgz", - "integrity": "sha512-5dGvFOewlpw6d7Rf6sGt0MBJrRDxQr/fGreQQKU5mfYKeTLE6JKI/JIiGuyJ3nqeUGUEPgO53nKC1Sgt63xpHg==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz", + "integrity": "sha512-VfvS3BWv/RDjRKD6PscIcvYfWKnGJcI/DEqyDgUMhxCM6NRwoL478CsUKTiGJIymeyRodNRfprdcF086DpGKYw==", "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/hooks": "^3.51.1", + "@wordpress/hooks": "^3.58.0", "gettext-parser": "^1.3.1", "memize": "^2.1.0", "sprintf-js": "^1.1.1", @@ -9755,9 +9444,9 @@ } }, "node_modules/@wordpress/jest-console": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-7.27.0.tgz", - "integrity": "sha512-mzKShc0zUHyWsHt/fK2L3cJDWWAp9AttzENDTo7RuynqJWTDOGsqsnDr6zITyVcaL0my8ApVTiWu5OxzBXXvfg==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-7.29.0.tgz", + "integrity": "sha512-/9PZJhyszdRX4mka7t1WzoooM+Q/DwC4jkNVtJxqci5lbL3Lrhy1cCJGCgMr1n/9w+zs7eLmExFBvV4v44iyNw==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", @@ -9771,12 +9460,12 @@ } }, "node_modules/@wordpress/jest-preset-default": { - "version": "11.27.0", - "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-11.27.0.tgz", - "integrity": "sha512-5fyyKthW+BNpv+Ndtgl2+1uHsmEWqTtf3PN+FL3qRfYCTPbvasxZBkGx2bpnt0D9ajcrpGmbllwOoM0dhY8Q6w==", + "version": "11.29.0", + "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-11.29.0.tgz", + "integrity": "sha512-7LA0ZS5t0Thn7xrdwPL3hLgjB9LKloneGhMwnnDUTgJP330lyfdDfJ+O6Lnz3iL+bg68mkA3AzrT9Fs9f3WKww==", "dev": true, "dependencies": { - "@wordpress/jest-console": "^7.27.0", + "@wordpress/jest-console": "^7.29.0", "babel-jest": "^29.6.2" }, "engines": { @@ -9806,12 +9495,12 @@ } }, "node_modules/@wordpress/keycodes": { - "version": "3.51.1", - "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-3.51.1.tgz", - "integrity": "sha512-gY362TVIgP6WL8xwvLZRylbang0B4FKf5Lu1OWiisuT0Roaq4nZ2+Pqhlw4MKvxf0AF4SVzuVJDrPJioUJtnPg==", + "version": "3.58.0", + "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-3.58.0.tgz", + "integrity": "sha512-Q/LRKpx8ndzuHlkxSQ2BD+NTYYKQPIneNNMng8hTAfyU7RFwXpqj06HpeOFGh4XIdPKCs/8hmucoLJRmmLmZJA==", "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/i18n": "^4.51.1" + "@wordpress/i18n": "^4.58.0" }, "engines": { "node": ">=12" @@ -9914,9 +9603,9 @@ } }, "node_modules/@wordpress/npm-package-json-lint-config": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-4.41.0.tgz", - "integrity": "sha512-HStjqoxdB4zTU9i3BCzvbI0OyVZ3L6phSeoRwk2uU1cT41O883ouoBGE9DcEIzufKeuFCeqCBJf8NRk8S2h/sg==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-4.43.0.tgz", + "integrity": "sha512-XSb7AdDC7yGTBVYeRM4oqmOygEB+/+tk7lobLIGDmlZJs+M3F/NUvQq0Vcas1pojq2fyPYTUwOlu81ga33fNwQ==", "dev": true, "engines": { "node": ">=14" @@ -9990,19 +9679,6 @@ "node": ">=12" } }, - "node_modules/@wordpress/patterns/node_modules/@wordpress/api-fetch": { - "version": "6.53.0", - "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.53.0.tgz", - "integrity": "sha512-jHYueGfGfe89akyw1A28WGl17qIKTukMTwol4rHkZY43ygUmSJiTF/FSsExzMwk/j7OmGGr+GTa1TPO/tc71Lw==", - "dependencies": { - "@babel/runtime": "^7.16.0", - "@wordpress/i18n": "^4.56.0", - "@wordpress/url": "^3.57.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@wordpress/patterns/node_modules/@wordpress/autop": { "version": "3.56.0", "resolved": "https://registry.npmjs.org/@wordpress/autop/-/autop-3.56.0.tgz", @@ -10374,46 +10050,16 @@ "dependencies": { "@babel/runtime": "^7.16.0" }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@wordpress/patterns/node_modules/@wordpress/hooks": { - "version": "3.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.56.0.tgz", - "integrity": "sha512-sxoNbXdqfhlRNduDqR5y5Cq7Rwm5ATZGIr5U9nrM5RHWd+8v7g8wpB/rpTSqi+HeCW3suiFuN6qJJZ4eFwRB2w==", - "dependencies": { - "@babel/runtime": "^7.16.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@wordpress/patterns/node_modules/@wordpress/html-entities": { - "version": "3.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-3.56.0.tgz", - "integrity": "sha512-hWP0p/Q20YNQYOw3wfL2Vu22jcYbV9osbbiTBXQ5F4/ZDscIfEKwVkP8V5DSNEYlF4e0KuDMPe5eBykWX/ofLg==", - "dependencies": { - "@babel/runtime": "^7.16.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@wordpress/patterns/node_modules/@wordpress/i18n": { - "version": "4.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.56.0.tgz", - "integrity": "sha512-W+WL8vxwqUeicgXvIHZ3Htq6pYrJe2Dn/9SBsQ7gFPUrGWe2ww5IzPocLv4rAha3lca2ZVIX2q47rGaSs9t8Kw==", - "dependencies": { - "@babel/runtime": "^7.16.0", - "@wordpress/hooks": "^3.56.0", - "gettext-parser": "^1.3.1", - "memize": "^2.1.0", - "sprintf-js": "^1.1.1", - "tannin": "^1.2.0" - }, - "bin": { - "pot-to-php": "tools/pot-to-php.js" + "engines": { + "node": ">=12" + } + }, + "node_modules/@wordpress/patterns/node_modules/@wordpress/html-entities": { + "version": "3.56.0", + "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-3.56.0.tgz", + "integrity": "sha512-hWP0p/Q20YNQYOw3wfL2Vu22jcYbV9osbbiTBXQ5F4/ZDscIfEKwVkP8V5DSNEYlF4e0KuDMPe5eBykWX/ofLg==", + "dependencies": { + "@babel/runtime": "^7.16.0" }, "engines": { "node": ">=12" @@ -10460,18 +10106,6 @@ "react": "^18.0.0" } }, - "node_modules/@wordpress/patterns/node_modules/@wordpress/keycodes": { - "version": "3.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-3.56.0.tgz", - "integrity": "sha512-YIvqB0AEsu3fjkuQHNT7XladaTDE1Thntv+oqzkRejdNodH5tbPb3CAePAK3F7iQurZ0GCaqlmJTy9qcHwDU0Q==", - "dependencies": { - "@babel/runtime": "^7.16.0", - "@wordpress/i18n": "^4.56.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@wordpress/patterns/node_modules/@wordpress/notices": { "version": "4.24.0", "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-4.24.0.tgz", @@ -10608,26 +10242,6 @@ "node": ">=12" } }, - "node_modules/@wordpress/patterns/node_modules/@wordpress/url": { - "version": "3.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.57.0.tgz", - "integrity": "sha512-W3F0KVEaMoRENya7GGUPXrZGYnhAg3fuLSLpNcf1skSrM5rUVMNdeRlZj+jln1O/+qjboJnC+y+IzOlQRwlS6A==", - "dependencies": { - "@babel/runtime": "^7.16.0", - "remove-accents": "^0.5.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@wordpress/patterns/node_modules/@wordpress/warning": { - "version": "2.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.56.0.tgz", - "integrity": "sha512-Bd1Zy5eWQPKoQsfQwD9T1KZWPpq+ZFyozirx+Z5MnX59J0i80p8KiEMcmXhPH+Os9An2PtlVV9j0gY9z5z0oAw==", - "engines": { - "node": ">=12" - } - }, "node_modules/@wordpress/patterns/node_modules/@wordpress/wordcount": { "version": "3.56.0", "resolved": "https://registry.npmjs.org/@wordpress/wordcount/-/wordcount-3.56.0.tgz", @@ -10697,12 +10311,12 @@ } }, "node_modules/@wordpress/postcss-plugins-preset": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-4.40.0.tgz", - "integrity": "sha512-xnd+XZI5s9hyGtt314WgH3prxQVBMLEjmTTz0g1+9x1avrYxIwhv1ZxMNittrAq2IP1qBzT5IwsPzJ+wCgcEyw==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-4.42.0.tgz", + "integrity": "sha512-5xmKF7IUsqS5JcmJlHKHq7RaR6ZpaLj3n9c+X0X0/Oo7ZCIGp6WeDQngx13sH4NJoKXrZ9g4n1rbzhEKeo/Wtg==", "dev": true, "dependencies": { - "@wordpress/base-styles": "^4.47.0", + "@wordpress/base-styles": "^4.49.0", "autoprefixer": "^10.2.5" }, "engines": { @@ -10943,17 +10557,6 @@ "node": ">=12" } }, - "node_modules/@wordpress/preferences/node_modules/@wordpress/hooks": { - "version": "3.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.56.0.tgz", - "integrity": "sha512-sxoNbXdqfhlRNduDqR5y5Cq7Rwm5ATZGIr5U9nrM5RHWd+8v7g8wpB/rpTSqi+HeCW3suiFuN6qJJZ4eFwRB2w==", - "dependencies": { - "@babel/runtime": "^7.16.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@wordpress/preferences/node_modules/@wordpress/html-entities": { "version": "3.56.0", "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-3.56.0.tgz", @@ -10965,25 +10568,6 @@ "node": ">=12" } }, - "node_modules/@wordpress/preferences/node_modules/@wordpress/i18n": { - "version": "4.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.56.0.tgz", - "integrity": "sha512-W+WL8vxwqUeicgXvIHZ3Htq6pYrJe2Dn/9SBsQ7gFPUrGWe2ww5IzPocLv4rAha3lca2ZVIX2q47rGaSs9t8Kw==", - "dependencies": { - "@babel/runtime": "^7.16.0", - "@wordpress/hooks": "^3.56.0", - "gettext-parser": "^1.3.1", - "memize": "^2.1.0", - "sprintf-js": "^1.1.1", - "tannin": "^1.2.0" - }, - "bin": { - "pot-to-php": "tools/pot-to-php.js" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@wordpress/preferences/node_modules/@wordpress/icons": { "version": "9.47.0", "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-9.47.0.tgz", @@ -11008,18 +10592,6 @@ "node": ">=12" } }, - "node_modules/@wordpress/preferences/node_modules/@wordpress/keycodes": { - "version": "3.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-3.56.0.tgz", - "integrity": "sha512-YIvqB0AEsu3fjkuQHNT7XladaTDE1Thntv+oqzkRejdNodH5tbPb3CAePAK3F7iQurZ0GCaqlmJTy9qcHwDU0Q==", - "dependencies": { - "@babel/runtime": "^7.16.0", - "@wordpress/i18n": "^4.56.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@wordpress/preferences/node_modules/@wordpress/primitives": { "version": "3.54.0", "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-3.54.0.tgz", @@ -11097,14 +10669,6 @@ "node": ">=12" } }, - "node_modules/@wordpress/preferences/node_modules/@wordpress/warning": { - "version": "2.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.56.0.tgz", - "integrity": "sha512-Bd1Zy5eWQPKoQsfQwD9T1KZWPpq+ZFyozirx+Z5MnX59J0i80p8KiEMcmXhPH+Os9An2PtlVV9j0gY9z5z0oAw==", - "engines": { - "node": ">=12" - } - }, "node_modules/@wordpress/preferences/node_modules/date-fns": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", @@ -11123,9 +10687,9 @@ } }, "node_modules/@wordpress/prettier-config": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-3.13.0.tgz", - "integrity": "sha512-oNayHsdAhP3ER4T7KjNrmdtEIZjYJAdIDdScjNOKmK3Qvp02VP9TPfDGhLSjiYmOiQcyrIz/uuf9MJ9JCcdGng==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-3.15.0.tgz", + "integrity": "sha512-exC2rkEioTt//AnzPRyaaFv8FNYIvamPDytNol5bKQ6Qh65QSdZZE9V+GtRCrIPL7/Bq6xba03XuRVxl9TjtJg==", "dev": true, "engines": { "node": ">=14" @@ -11278,24 +10842,24 @@ } }, "node_modules/@wordpress/scripts": { - "version": "27.2.5", - "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-27.2.5.tgz", - "integrity": "sha512-XWxAa4mfWXpQb9G1vLiprCn9YaIXR69YKpS5VgUhCYqmRZFKXPhzMeBslpsbRhgx3Tiiz3depv1qtOOdVAQOog==", + "version": "27.9.0", + "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-27.9.0.tgz", + "integrity": "sha512-ohiDHMnfTTBTi7qS7AVJZUi1dxwg0k3Aav1a8CzUoOE8YoT8tvMQ3W89H9XgqMgMTWUCdgTUBYLTJTivfVVbXQ==", "dev": true, "dependencies": { "@babel/core": "^7.16.0", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11", "@svgr/webpack": "^8.0.1", - "@wordpress/babel-preset-default": "^7.35.1", - "@wordpress/browserslist-config": "^5.34.1", - "@wordpress/dependency-extraction-webpack-plugin": "^5.2.1", - "@wordpress/e2e-test-utils-playwright": "^0.19.2", - "@wordpress/eslint-plugin": "^17.8.1", - "@wordpress/jest-preset-default": "^11.22.1", - "@wordpress/npm-package-json-lint-config": "^4.36.1", - "@wordpress/postcss-plugins-preset": "^4.35.5", - "@wordpress/prettier-config": "^3.8.1", - "@wordpress/stylelint-config": "^21.34.1", + "@wordpress/babel-preset-default": "^7.42.0", + "@wordpress/browserslist-config": "^5.41.0", + "@wordpress/dependency-extraction-webpack-plugin": "^5.9.0", + "@wordpress/e2e-test-utils-playwright": "^0.26.0", + "@wordpress/eslint-plugin": "^18.1.0", + "@wordpress/jest-preset-default": "^11.29.0", + "@wordpress/npm-package-json-lint-config": "^4.43.0", + "@wordpress/postcss-plugins-preset": "^4.42.0", + "@wordpress/prettier-config": "^3.15.0", + "@wordpress/stylelint-config": "^21.41.0", "adm-zip": "^0.5.9", "babel-jest": "^29.6.2", "babel-loader": "^8.2.3", @@ -11323,7 +10887,6 @@ "minimist": "^1.2.0", "npm-package-json-lint": "^6.4.0", "npm-packlist": "^3.0.0", - "playwright-core": "1.39.0", "postcss": "^8.4.5", "postcss-loader": "^6.2.1", "prettier": "npm:wp-prettier@3.0.3", @@ -11331,6 +10894,7 @@ "react-refresh": "^0.14.0", "read-pkg-up": "^7.0.1", "resolve-bin": "^0.4.0", + "rtlcss-webpack-plugin": "^4.0.7", "sass": "^1.35.2", "sass-loader": "^12.1.0", "source-map-loader": "^3.0.0", @@ -11350,7 +10914,7 @@ "npm": ">=6.14.4" }, "peerDependencies": { - "@playwright/test": "^1.39.0", + "@playwright/test": "^1.43.0", "react": "^18.0.0", "react-dom": "^18.0.0" } @@ -11372,9 +10936,9 @@ } }, "node_modules/@wordpress/scripts/node_modules/@wordpress/stylelint-config": { - "version": "21.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-21.39.0.tgz", - "integrity": "sha512-MNFsOpriCtNXs1TfPQwPkU7/4Jo0e0IfGJdvRYHp8mSv0VqY1vn9CW8QJ8xqrWYqxCOG6Z+Zn9IPToEM5mqz5A==", + "version": "21.41.0", + "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-21.41.0.tgz", + "integrity": "sha512-2wxFu8ICeRGF3Lxz7H7o2SU1u6pTI4mjuog39DgtCNb+v+f6yhgREDuNQEeti3Svb0rjj63AJ7r2CqLZk+EQIQ==", "dev": true, "dependencies": { "stylelint-config-recommended": "^6.0.0", @@ -11933,9 +11497,9 @@ } }, "node_modules/@wordpress/url": { - "version": "3.52.1", - "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.52.1.tgz", - "integrity": "sha512-6jyR4iln6PG28cGq9L8j4Ii8jGQA9IoyFN96wQnBHmqv3ou02lcsRC3IzgXeQSZG40ZM8DnlYP8lkkuzNlndbw==", + "version": "3.59.0", + "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.59.0.tgz", + "integrity": "sha512-GxvoMjYCav0w4CiX0i0h3qflrE/9rhLIZg5aPCQjbrBdwTxYR3Exfw0IJYcmVaTKXQOUU8fOxlDxULsbLmKe9w==", "dependencies": { "@babel/runtime": "^7.16.0", "remove-accents": "^0.5.0" @@ -11962,9 +11526,9 @@ } }, "node_modules/@wordpress/warning": { - "version": "2.51.1", - "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.51.1.tgz", - "integrity": "sha512-De1ftiM7vdlE6evA+d/jv2wES9wXdvbck4fKi7qr7ckDzWjqGg7nV8A3OzGInWiAn9qTQZucCOUwzUvlWedpTQ==", + "version": "2.58.0", + "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.58.0.tgz", + "integrity": "sha512-9bZlORhyMY2nbWozeyC5kqJsFzEPP4DCLhGmjtbv+YWGHttUrxUZEfrKdqO+rUODA8rP5zeIly1nCQOUnkw4Lg==", "engines": { "node": ">=12" } @@ -12924,15 +12488,39 @@ "@babel/core": "^7.0.0" } }, + "node_modules/babel-runtime": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.25.0.tgz", + "integrity": "sha512-zeCYxDePWYAT/DfmQWIHsMSFW2vv45UIwIAMjGvQVsTd47RwsiRH0uK1yzyWZ7LDBKdhnGDPM6NYEO5CZyhPrg==", + "dev": true, + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.10.0" + } + }, + "node_modules/babel-runtime/node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true, + "hasInstallScript": true + }, + "node_modules/babel-runtime/node_modules/regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w==", + "dev": true + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/bare-events": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.2.tgz", - "integrity": "sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.4.2.tgz", + "integrity": "sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==", "dev": true, "optional": true }, @@ -16064,26 +15652,11 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint-plugin-jest/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-plugin-jest/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -16091,12 +15664,6 @@ "node": ">=10" } }, - "node_modules/eslint-plugin-jest/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/eslint-plugin-jsdoc": { "version": "46.10.1", "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.10.1.tgz", @@ -16120,26 +15687,11 @@ "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" } }, - "node_modules/eslint-plugin-jsdoc/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-plugin-jsdoc/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -16147,12 +15699,6 @@ "node": ">=10" } }, - "node_modules/eslint-plugin-jsdoc/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/eslint-plugin-jsx-a11y": { "version": "6.8.0", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", @@ -21623,9 +21169,9 @@ } }, "node_modules/lighthouse/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "dev": true, "engines": { "node": ">=8.3.0" @@ -22685,26 +22231,11 @@ "node": ">=10" } }, - "node_modules/normalize-package-data/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -22712,12 +22243,6 @@ "node": ">=10" } }, - "node_modules/normalize-package-data/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -22846,15 +22371,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/npm-package-json-lint/node_modules/builtins": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", - "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", - "dev": true, - "dependencies": { - "semver": "^7.0.0" - } - }, "node_modules/npm-package-json-lint/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -22904,26 +22420,11 @@ "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", "dev": true }, - "node_modules/npm-package-json-lint/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/npm-package-json-lint/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -22956,23 +22457,14 @@ } }, "node_modules/npm-package-json-lint/node_modules/validate-npm-package-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", - "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", "dev": true, - "dependencies": { - "builtins": "^5.0.0" - }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm-package-json-lint/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/npm-packlist": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz", @@ -23765,13 +23257,13 @@ } }, "node_modules/playwright": { - "version": "1.43.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.43.1.tgz", - "integrity": "sha512-V7SoH0ai2kNt1Md9E3Gwas5B9m8KR2GVvwZnAI6Pg0m3sh7UvgiYhRrhsziCmqMJNouPckiOhk8T+9bSAK0VIA==", + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.44.1.tgz", + "integrity": "sha512-qr/0UJ5CFAtloI3avF95Y0L1xQo6r3LQArLIg/z/PoGJ6xa+EwzrwO5lpNr/09STxdHuUoP2mvuELJS+hLdtgg==", "dev": true, "peer": true, "dependencies": { - "playwright-core": "1.43.1" + "playwright-core": "1.44.1" }, "bin": { "playwright": "cli.js" @@ -23784,10 +23276,11 @@ } }, "node_modules/playwright-core": { - "version": "1.39.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.39.0.tgz", - "integrity": "sha512-+k4pdZgs1qiM+OUkSjx96YiKsXsmb59evFoqv8SKO067qBA+Z2s/dCzJij/ZhdQcs2zlTAgRKfeiiLm8PQ2qvw==", + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.44.1.tgz", + "integrity": "sha512-wh0JWtYTrhv1+OSsLPgFzGzt67Y7BE/ZS3jEqgGBlp2ppp1ZDj8c+9IARNW4dwf1poq5MgHreEM2KV/GuR4cFA==", "dev": true, + "peer": true, "bin": { "playwright-core": "cli.js" }, @@ -23810,19 +23303,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/playwright/node_modules/playwright-core": { - "version": "1.43.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.43.1.tgz", - "integrity": "sha512-EI36Mto2Vrx6VF7rm708qSnesVQKbxEWvPrfA1IPY6HgczBplDx7ENtx+K2n4kJ41sLLkuGfmb0ZLSSXlDhqPg==", - "dev": true, - "peer": true, - "bin": { - "playwright-core": "cli.js" - }, - "engines": { - "node": ">=16" - } - }, "node_modules/plur": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz", @@ -25581,6 +25061,77 @@ "node": ">=10.0.0" } }, + "node_modules/rtlcss": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-3.5.0.tgz", + "integrity": "sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==", + "dev": true, + "dependencies": { + "find-up": "^5.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.3.11", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "rtlcss": "bin/rtlcss.js" + } + }, + "node_modules/rtlcss-webpack-plugin": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/rtlcss-webpack-plugin/-/rtlcss-webpack-plugin-4.0.7.tgz", + "integrity": "sha512-ouSbJtgcLBBQIsMgarxsDnfgRqm/AS4BKls/mz/Xb6HSl+PdEzefTR+Wz5uWQx4odoX0g261Z7yb3QBz0MTm0g==", + "dev": true, + "dependencies": { + "babel-runtime": "~6.25.0", + "rtlcss": "^3.5.0" + } + }, + "node_modules/rtlcss/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rtlcss/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rtlcss/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -26640,9 +26191,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", - "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", + "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", "dev": true }, "node_modules/spdy": { @@ -26729,13 +26280,14 @@ } }, "node_modules/streamx": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", - "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.18.0.tgz", + "integrity": "sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==", "dev": true, "dependencies": { - "fast-fifo": "^1.1.0", - "queue-tick": "^1.0.1" + "fast-fifo": "^1.3.2", + "queue-tick": "^1.0.1", + "text-decoder": "^1.1.0" }, "optionalDependencies": { "bare-events": "^2.2.0" @@ -27640,6 +27192,15 @@ "node": "*" } }, + "node_modules/text-decoder": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.1.0.tgz", + "integrity": "sha512-TmLJNj6UgX8xcUZo4UDStGQtDiTzF7BzWlzn9g7UWrjkpHr5uJTK1ld16wZ3LXb2vb6jH8qU89dW5whuMdXYdw==", + "dev": true, + "dependencies": { + "b4a": "^1.6.4" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -28690,9 +28251,9 @@ } }, "node_modules/webpack-bundle-analyzer/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "dev": true, "engines": { "node": ">=8.3.0" @@ -29370,9 +28931,9 @@ } }, "node_modules/ws": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", - "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "devOptional": true, "engines": { "node": ">=10.0.0" From ab80a8caf2a4e1dd6129ed615398c3cb44685fd4 Mon Sep 17 00:00:00 2001 From: efuller Date: Tue, 18 Jun 2024 15:22:18 -0400 Subject: [PATCH 09/25] Bump PHP to 8.1 --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 304002d1..31de9404 100644 --- a/composer.json +++ b/composer.json @@ -15,7 +15,7 @@ } ], "require": { - "php": "^8.0", + "php": "^8.1", "alleyinteractive/composer-wordpress-autoloader": "^1.0", "campaignmonitor/createsend-php": "^7.0", "sendgrid/sendgrid": "^8.1", From 933a49052ba1cd088aab342baa5ffcf72b6275c3 Mon Sep 17 00:00:00 2001 From: efuller Date: Tue, 18 Jun 2024 15:25:48 -0400 Subject: [PATCH 10/25] Remove 8.0 from PHP matrix --- .github/workflows/unit-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index 213fbb43..12b7eb1d 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -13,7 +13,7 @@ jobs: php-tests: strategy: matrix: - php: [8.0, 8.1, 8.2] + php: [8.1, 8.2] wordpress: ["latest"] uses: alleyinteractive/.github/.github/workflows/php-tests.yml@main with: From 88c9d7d29c761564da3923c6a9ad7ca26d7008b8 Mon Sep 17 00:00:00 2001 From: efuller Date: Tue, 18 Jun 2024 15:34:45 -0400 Subject: [PATCH 11/25] Adjust test file names to PSR-4 --- phpunit.xml | 2 +- tests/{test-example.php => MyExampleTest.php} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename tests/{test-example.php => MyExampleTest.php} (100%) diff --git a/phpunit.xml b/phpunit.xml index 03dba968..853e77b5 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -5,7 +5,7 @@ printerClass="NunoMaduro\Collision\Adapters\Phpunit\Printer"> - ./tests/ + ./tests/ diff --git a/tests/test-example.php b/tests/MyExampleTest.php similarity index 100% rename from tests/test-example.php rename to tests/MyExampleTest.php From bc8767aaeb366b4f0a6efb0fc0f7a0070c7bcdd8 Mon Sep 17 00:00:00 2001 From: efuller Date: Tue, 18 Jun 2024 15:46:58 -0400 Subject: [PATCH 12/25] Try updating phpunit.xml --- phpunit.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/phpunit.xml b/phpunit.xml index 853e77b5..990dda1b 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,11 +1,19 @@ + ./tests/ + + + inc + + From 21bcd225b5556c462a327871925767eb30affc93 Mon Sep 17 00:00:00 2001 From: efuller Date: Tue, 18 Jun 2024 15:51:11 -0400 Subject: [PATCH 13/25] Remove printerClass from phpunit.xml --- phpunit.xml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/phpunit.xml b/phpunit.xml index 990dda1b..205cb6b1 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -4,16 +4,10 @@ bootstrap="tests/bootstrap.php" backupGlobals="false" colors="true" - xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.5/phpunit.xsd" - printerClass="NunoMaduro\Collision\Adapters\Phpunit\Printer"> + xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.5/phpunit.xsd"> ./tests/ - - - inc - - From f76c050e0a9d66eaee45d6748540b69b84b6fc26 Mon Sep 17 00:00:00 2001 From: efuller Date: Tue, 18 Jun 2024 15:53:32 -0400 Subject: [PATCH 14/25] Change example test name --- tests/MyExampleTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/MyExampleTest.php b/tests/MyExampleTest.php index c1a02e95..ee23a95c 100644 --- a/tests/MyExampleTest.php +++ b/tests/MyExampleTest.php @@ -4,7 +4,7 @@ use WP_Newsletter_Builder\Tests\Test_Case; -class Test_Example extends Test_Case { +class MyExampleTest extends Test_Case { public function test_example() { $this->assertTrue( true ); } From 7b56983b2b51b8183d5f1a1fcc3c7ebc23b4139c Mon Sep 17 00:00:00 2001 From: efuller Date: Tue, 18 Jun 2024 16:38:05 -0400 Subject: [PATCH 15/25] Try removing schema --- phpunit.xml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/phpunit.xml b/phpunit.xml index 205cb6b1..95d64e75 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,10 +1,11 @@ - + bootstrap="tests/bootstrap.php" + backupGlobals="false" + colors="true" + convertErrorsToExceptions="true" + convertNoticesToExceptions="true" + convertWarningsToExceptions="true" +> ./tests/ From 4566a19f626c98fdde1b3b3c0472abdb1e34b1f8 Mon Sep 17 00:00:00 2001 From: efuller Date: Tue, 18 Jun 2024 16:46:11 -0400 Subject: [PATCH 16/25] Revert test files --- phpunit.xml | 2 +- tests/{MyExampleTest.php => test-example.php} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename tests/{MyExampleTest.php => test-example.php} (79%) diff --git a/phpunit.xml b/phpunit.xml index 95d64e75..d7444d59 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -8,7 +8,7 @@ > - ./tests/ + ./tests/ diff --git a/tests/MyExampleTest.php b/tests/test-example.php similarity index 79% rename from tests/MyExampleTest.php rename to tests/test-example.php index ee23a95c..71a2877a 100644 --- a/tests/MyExampleTest.php +++ b/tests/test-example.php @@ -4,7 +4,7 @@ use WP_Newsletter_Builder\Tests\Test_Case; -class MyExampleTest extends Test_Case { +class Text_Example extends Test_Case { public function test_example() { $this->assertTrue( true ); } From 41922726df1a950e8a2f929141c88cd68585288c Mon Sep 17 00:00:00 2001 From: efuller Date: Tue, 18 Jun 2024 16:49:41 -0400 Subject: [PATCH 17/25] Continue to use PHPUnit 9 --- composer.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/composer.json b/composer.json index 31de9404..c97a0ec3 100644 --- a/composer.json +++ b/composer.json @@ -25,6 +25,8 @@ "alleyinteractive/alley-coding-standards": "^2.0", "alleyinteractive/wordpress-fieldmanager": "^1.6", "mantle-framework/testkit": "^0.12", + "nunomaduro/collision": "^6", + "phpunit/phpunit": "^9", "szepeviktor/phpstan-wordpress": "^1.3" }, "config": { From 6a703f7dcb7112f8656c748442074001e7d08e3e Mon Sep 17 00:00:00 2001 From: efuller Date: Tue, 18 Jun 2024 17:07:20 -0400 Subject: [PATCH 18/25] Add printerClass back in --- phpunit.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/phpunit.xml b/phpunit.xml index d7444d59..9de20216 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -5,6 +5,7 @@ convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" + printerClass="NunoMaduro\Collision\Adapters\Phpunit\Printer" > From 753b409b323cddc6dd9da5eccef0e0995cc3d368 Mon Sep 17 00:00:00 2001 From: efuller Date: Thu, 20 Jun 2024 10:20:10 -0400 Subject: [PATCH 19/25] Downgrade testkit to v1.0.7 as there is a bug in v1.1 --- composer.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/composer.json b/composer.json index a14b5556..190637ec 100644 --- a/composer.json +++ b/composer.json @@ -24,9 +24,7 @@ "require-dev": { "alleyinteractive/alley-coding-standards": "^2.0", "alleyinteractive/wordpress-fieldmanager": "^1.6", - "mantle-framework/testkit": "^1.1", - "nunomaduro/collision": "^6", - "phpunit/phpunit": "^9", + "mantle-framework/testkit": "1.0.7", "szepeviktor/phpstan-wordpress": "^1.3" }, "config": { From 4f06836744edad3cb59a8edc659b63b4caaf37bd Mon Sep 17 00:00:00 2001 From: efuller Date: Thu, 20 Jun 2024 10:20:21 -0400 Subject: [PATCH 20/25] Configure tests --- phpunit.xml | 3 +-- tests/{test-example.php => ExampleTest.php} | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) rename tests/{test-example.php => ExampleTest.php} (79%) diff --git a/phpunit.xml b/phpunit.xml index 9de20216..95d64e75 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -5,11 +5,10 @@ convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" - printerClass="NunoMaduro\Collision\Adapters\Phpunit\Printer" > - ./tests/ + ./tests/ diff --git a/tests/test-example.php b/tests/ExampleTest.php similarity index 79% rename from tests/test-example.php rename to tests/ExampleTest.php index 71a2877a..3be9a3a6 100644 --- a/tests/test-example.php +++ b/tests/ExampleTest.php @@ -4,7 +4,7 @@ use WP_Newsletter_Builder\Tests\Test_Case; -class Text_Example extends Test_Case { +class Example_Test extends Test_Case { public function test_example() { $this->assertTrue( true ); } From 7d61a4be2d42087e0fa5aa879bb4a04602853153 Mon Sep 17 00:00:00 2001 From: efuller Date: Thu, 20 Jun 2024 10:30:30 -0400 Subject: [PATCH 21/25] Let's try falling back to PHPUnit v9 --- composer.json | 2 ++ phpunit.xml | 3 ++- tests/{ExampleTest.php => test-example.php} | 0 3 files changed, 4 insertions(+), 1 deletion(-) rename tests/{ExampleTest.php => test-example.php} (100%) diff --git a/composer.json b/composer.json index 190637ec..67355ba4 100644 --- a/composer.json +++ b/composer.json @@ -25,6 +25,8 @@ "alleyinteractive/alley-coding-standards": "^2.0", "alleyinteractive/wordpress-fieldmanager": "^1.6", "mantle-framework/testkit": "1.0.7", + "nunomaduro/collision": "^6", + "phpunit/phpunit": "^9", "szepeviktor/phpstan-wordpress": "^1.3" }, "config": { diff --git a/phpunit.xml b/phpunit.xml index 95d64e75..4fd36ac2 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -5,10 +5,11 @@ convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" + printerClass="NunoMaduro\Collision\Adapters\Phpunit\Printer" > - ./tests/ + tests diff --git a/tests/ExampleTest.php b/tests/test-example.php similarity index 100% rename from tests/ExampleTest.php rename to tests/test-example.php From af65ce9f718f18a6f5b702aeab9221c40450123f Mon Sep 17 00:00:00 2001 From: efuller Date: Thu, 20 Jun 2024 11:45:07 -0400 Subject: [PATCH 22/25] Upgrade testkit to 1.1.2 --- composer.json | 4 +--- phpunit.xml | 1 - 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/composer.json b/composer.json index 67355ba4..3cd275ce 100644 --- a/composer.json +++ b/composer.json @@ -24,9 +24,7 @@ "require-dev": { "alleyinteractive/alley-coding-standards": "^2.0", "alleyinteractive/wordpress-fieldmanager": "^1.6", - "mantle-framework/testkit": "1.0.7", - "nunomaduro/collision": "^6", - "phpunit/phpunit": "^9", + "mantle-framework/testkit": "^1.1.2", "szepeviktor/phpstan-wordpress": "^1.3" }, "config": { diff --git a/phpunit.xml b/phpunit.xml index 4fd36ac2..8ae9c04b 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -5,7 +5,6 @@ convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" - printerClass="NunoMaduro\Collision\Adapters\Phpunit\Printer" > From 6ae9b90e6fde621b4274a8ac1b2ac30a3e2e9326 Mon Sep 17 00:00:00 2001 From: efuller Date: Thu, 20 Jun 2024 12:04:37 -0400 Subject: [PATCH 23/25] Get tests working on PHPUnit 10 --- .gitignore | 1 + phpunit.xml | 10 +++++----- tests/{test-example.php => ExampleTest.php} | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) rename tests/{test-example.php => ExampleTest.php} (79%) diff --git a/.gitignore b/.gitignore index a8545793..5d26f623 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ node_modules # Cache files .phpcs/*.json .phpunit.result.cache +.phpunit.cache # Ignore temporary OS files .DS_Store diff --git a/phpunit.xml b/phpunit.xml index 8ae9c04b..618281d6 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,14 +1,14 @@ + + xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.5/phpunit.xsd" + cacheDirectory=".phpunit.cache"> - tests + tests diff --git a/tests/test-example.php b/tests/ExampleTest.php similarity index 79% rename from tests/test-example.php rename to tests/ExampleTest.php index 3be9a3a6..14ca4a23 100644 --- a/tests/test-example.php +++ b/tests/ExampleTest.php @@ -4,7 +4,7 @@ use WP_Newsletter_Builder\Tests\Test_Case; -class Example_Test extends Test_Case { +class ExampleTest extends Test_Case { public function test_example() { $this->assertTrue( true ); } From 21663a6057b84b79f73bdb1f7ab0fdecb5a95e88 Mon Sep 17 00:00:00 2001 From: efuller Date: Thu, 20 Jun 2024 12:44:10 -0400 Subject: [PATCH 24/25] A bit of code cleanup --- blocks/email-settings/edit.tsx | 3 ++- plugins/pre-publish-checks/index.php | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/blocks/email-settings/edit.tsx b/blocks/email-settings/edit.tsx index 03574fa8..484a2db2 100644 --- a/blocks/email-settings/edit.tsx +++ b/blocks/email-settings/edit.tsx @@ -82,7 +82,8 @@ export default function Edit() { const parsedContentFromTemplate = parse(content); - const emailSettingsBlockAlreadyPresent = parsedContentFromTemplate.filter((parsedBlock) => parsedBlock.name === 'wp-newsletter-builder/email-settings'); + const emailSettingsBlockAlreadyPresent = parsedContentFromTemplate + .filter((parsedBlock) => parsedBlock.name === 'wp-newsletter-builder/email-settings'); let newBlocks: BlockInstance[] = []; if (emailSettingsBlockAlreadyPresent.length === 0) { diff --git a/plugins/pre-publish-checks/index.php b/plugins/pre-publish-checks/index.php index 962e33e7..e572c854 100644 --- a/plugins/pre-publish-checks/index.php +++ b/plugins/pre-publish-checks/index.php @@ -1,6 +1,6 @@ Date: Fri, 21 Jun 2024 12:51:48 -0400 Subject: [PATCH 25/25] Bump version --- README.md | 2 +- plugin.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 35a64493..773475fa 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Contributors: alleyinteractive Tags: alleyinteractive, wp-newsletter-builder -Stable tag: 0.3.24 +Stable tag: 0.3.25 Requires at least: 6.2 diff --git a/plugin.php b/plugin.php index fe608b25..0618bc1d 100644 --- a/plugin.php +++ b/plugin.php @@ -3,7 +3,7 @@ * Plugin Name: Newsletter Builder * Plugin URI: https://github.com/alleyinteractive/wp-newsletter-builder * Description: Interface to manage email newsletters - * Version: 0.3.24 + * Version: 0.3.25 * Author: Alley Interactive * Author URI: https://github.com/alleyinteractive/wp-newsletter-builder * Requires at least: 6.2