From 5892e037b69e9da7bf178f2e606258b82f1ebd04 Mon Sep 17 00:00:00 2001 From: dkmyta Date: Tue, 10 Dec 2024 10:33:25 -0800 Subject: [PATCH 01/98] Restore history header --- .../scan/history-admin-section-hero.tsx | 68 +++++++++++++++++++ .../protect/src/js/routes/scan/index.jsx | 4 +- 2 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 projects/plugins/protect/src/js/routes/scan/history-admin-section-hero.tsx diff --git a/projects/plugins/protect/src/js/routes/scan/history-admin-section-hero.tsx b/projects/plugins/protect/src/js/routes/scan/history-admin-section-hero.tsx new file mode 100644 index 0000000000000..b6222d6317a94 --- /dev/null +++ b/projects/plugins/protect/src/js/routes/scan/history-admin-section-hero.tsx @@ -0,0 +1,68 @@ +import { Text } from '@automattic/jetpack-components'; +import { dateI18n } from '@wordpress/date'; +import { __, sprintf } from '@wordpress/i18n'; +import { useMemo } from 'react'; +import AdminSectionHero from '../../components/admin-section-hero'; +import ErrorAdminSectionHero from '../../components/error-admin-section-hero'; +import useHistoryQuery from '../../data/scan/use-history-query'; +import styles from './styles.module.scss'; + +const HistoryAdminSectionHero: React.FC = () => { + const { data: history } = useHistoryQuery(); + const numThreats = history ? history.threats.length : 0; + + const oldestFirstDetected = useMemo( () => { + if ( ! history ) { + return null; + } + + return history.threats.reduce( ( oldest, current ) => { + return new Date( current.firstDetected ) < new Date( oldest.firstDetected ) + ? current + : oldest; + } ).firstDetected; + }, [ history ] ); + + if ( history && ! history.error ) { + return ( + + ); + } + + return ( + + + + { oldestFirstDetected ? ( + + { sprintf( + /* translators: %s: Oldest first detected date */ + __( '%s - Today', 'jetpack-protect' ), + dateI18n( 'F jS g:i A', oldestFirstDetected, false ) + ) } + + ) : ( + __( 'Most recent results', 'jetpack-protect' ) + ) } + + 0 ? 'error' : 'success' }> + { numThreats > 0 + ? sprintf( + /* translators: %s: Total number of threats */ + __( '%1$s previously active %2$s', 'jetpack-protect' ), + numThreats, + numThreats === 1 ? 'threat' : 'threats' + ) + : __( 'No previously active threats', 'jetpack-protect' ) } + + { __( 'Here you can view all of your threats to date.', 'jetpack-protect' ) } + + + ); +}; + +export default HistoryAdminSectionHero; diff --git a/projects/plugins/protect/src/js/routes/scan/index.jsx b/projects/plugins/protect/src/js/routes/scan/index.jsx index c56ae3c747f3e..120bf61930a8d 100644 --- a/projects/plugins/protect/src/js/routes/scan/index.jsx +++ b/projects/plugins/protect/src/js/routes/scan/index.jsx @@ -7,6 +7,7 @@ import useScanStatusQuery, { isScanInProgress } from '../../data/scan/use-scan-s import useAnalyticsTracks from '../../hooks/use-analytics-tracks'; import { OnboardingContext } from '../../hooks/use-onboarding'; import usePlan from '../../hooks/use-plan'; +import HistoryAdminSectionHero from './history-admin-section-hero'; import onboardingSteps from './onboarding-steps'; import ScanAdminSectionHero from './scan-admin-section-hero'; import ScanResultsDataView from './scan-results-data-view'; @@ -26,6 +27,7 @@ const ScanPage = () => { const { data: status } = useScanStatusQuery( { usePolling: true } ); const [ scanResultsAnchor, setScanResultsAnchor ] = useState( null ); + const [ isViewingHistory, setIsViewingHistory ] = useState( false ); let currentScanStatus; if ( status.error ) { @@ -68,7 +70,7 @@ const ScanPage = () => { return ( - + { isViewingHistory ? : } Date: Tue, 10 Dec 2024 11:47:02 -0800 Subject: [PATCH 02/98] Pass status filter presets to consumer --- .../components/threats-data-views/index.tsx | 40 +++++++++++++++- .../threats-status-toggle-group-control.tsx | 47 ++++--------------- .../scan/history-admin-section-hero.tsx | 2 +- .../protect/src/js/routes/scan/index.jsx | 15 ++++-- .../js/routes/scan/scan-results-data-view.tsx | 8 +++- 5 files changed, 66 insertions(+), 46 deletions(-) diff --git a/projects/js-packages/components/components/threats-data-views/index.tsx b/projects/js-packages/components/components/threats-data-views/index.tsx index 6af7c028f4c3a..cdf737316334c 100644 --- a/projects/js-packages/components/components/threats-data-views/index.tsx +++ b/projects/js-packages/components/components/threats-data-views/index.tsx @@ -1,4 +1,4 @@ -import { getThreatType, type Threat } from '@automattic/jetpack-scan'; +import { getThreatType, type Threat, type ThreatStatus } from '@automattic/jetpack-scan'; import { type Action, type ActionButton, @@ -14,7 +14,7 @@ import { import { dateI18n } from '@wordpress/date'; import { __ } from '@wordpress/i18n'; import { Icon } from '@wordpress/icons'; -import { useCallback, useMemo, useState } from 'react'; +import { useCallback, useMemo, useState, useEffect } from 'react'; import Badge from '../badge'; import ThreatFixerButton from '../threat-fixer-button'; import ThreatSeverityBadge from '../threat-severity-badge'; @@ -56,6 +56,7 @@ import ThreatsStatusToggleGroupControl from './threats-status-toggle-group-contr * @param {Function} props.isThreatEligibleForFix - Function to determine if a threat is eligible for fixing. * @param {Function} props.isThreatEligibleForIgnore - Function to determine if a threat is eligible for ignoring. * @param {Function} props.isThreatEligibleForUnignore - Function to determine if a threat is eligible for unignoring. + * @param {Function} props.onStatusFilterChange - Callback function run when the status filter changes. * * @return {JSX.Element} The ThreatsDataViews component. */ @@ -69,6 +70,7 @@ export default function ThreatsDataViews( { onFixThreats, onIgnoreThreats, onUnignoreThreats, + onStatusFilterChange, }: { data: Threat[]; filters?: Filter[]; @@ -79,6 +81,7 @@ export default function ThreatsDataViews( { onFixThreats?: ( threats: Threat[] ) => void; onIgnoreThreats?: ActionButton< Threat >[ 'callback' ]; onUnignoreThreats?: ActionButton< Threat >[ 'callback' ]; + onStatusFilterChange?: ( newStatus: 'active' | 'historic' | null ) => void; } ): JSX.Element { const baseView = { sort: { @@ -501,6 +504,33 @@ export default function ThreatsDataViews( { isThreatEligibleForUnignore, ] ); + /** + * Memoized function to determine if a status filter is selected. + * + * @param {Array} threatStatuses - List of threat statuses. + */ + const isStatusFilterSelected = useMemo( + () => ( threatStatuses: ThreatStatus[] ) => + view.filters.some( + filter => + filter.field === 'status' && + Array.isArray( filter.value ) && + filter.value.length === threatStatuses.length && + threatStatuses.every( threatStatus => filter.value.includes( threatStatus ) ) + ), + [ view.filters ] + ); + + const selectedStatusFilter = useMemo( () => { + if ( isStatusFilterSelected( [ 'current' ] ) ) { + return 'active' as const; + } + if ( isStatusFilterSelected( [ 'fixed', 'ignored' ] ) ) { + return 'historic' as const; + } + return null; + }, [ isStatusFilterSelected ] ); + /** * Apply the view settings (i.e. filters, sorting, pagination) to the dataset. * @@ -526,6 +556,11 @@ export default function ThreatsDataViews( { */ const getItemId = useCallback( ( item: Threat ) => item.id.toString(), [] ); + // Notify the consumer whenever the selectedStatusFilter changes + useEffect( () => { + onStatusFilterChange?.( selectedStatusFilter ); + }, [ selectedStatusFilter, onStatusFilterChange ] ); + return ( } /> diff --git a/projects/js-packages/components/components/threats-data-views/threats-status-toggle-group-control.tsx b/projects/js-packages/components/components/threats-data-views/threats-status-toggle-group-control.tsx index be7b252b80c22..8facad3447ecc 100644 --- a/projects/js-packages/components/components/threats-data-views/threats-status-toggle-group-control.tsx +++ b/projects/js-packages/components/components/threats-data-views/threats-status-toggle-group-control.tsx @@ -1,4 +1,4 @@ -import { type Threat, type ThreatStatus } from '@automattic/jetpack-scan'; +import { type Threat } from '@automattic/jetpack-scan'; import { __experimentalToggleGroupControl as ToggleGroupControl, // eslint-disable-line @wordpress/no-unsafe-wp-apis __experimentalToggleGroupControlOption as ToggleGroupControlOption, // eslint-disable-line @wordpress/no-unsafe-wp-apis @@ -10,19 +10,23 @@ import styles from './styles.module.scss'; /** * ToggleGroupControl component for filtering threats by status. - * @param {object} props - Component props. - * @param { Threat[]} props.data - Threats data. - * @param { View } props.view - The current view. - * @param { Function } props.onChangeView - Callback function to handle view changes. + * @param {object} props - Component props. + * @param { Threat[]} props.data - Threats data. + * @param { View } props.view - The current view. + * @param { string } props.selectedStatusFilter - The selected status filter. + * @param { Function } props.onChangeView - Callback function to handle view changes. + * * @return {JSX.Element|null} The component or null. */ export default function ThreatsStatusToggleGroupControl( { data, view, + selectedStatusFilter, onChangeView, }: { data: Threat[]; view: View; + selectedStatusFilter: string; onChangeView: ( newView: View ) => void; } ): JSX.Element { /** @@ -87,43 +91,12 @@ export default function ThreatsStatusToggleGroupControl( { [ view, onChangeView ] ); - /** - * Memoized function to determine if a status filter is selected. - * - * @param {Array} threatStatuses - List of threat statuses. - */ - const isStatusFilterSelected = useMemo( - () => ( threatStatuses: ThreatStatus[] ) => - view.filters.some( - filter => - filter.field === 'status' && - Array.isArray( filter.value ) && - filter.value.length === threatStatuses.length && - threatStatuses.every( threatStatus => filter.value.includes( threatStatus ) ) - ), - [ view.filters ] - ); - - const selectedValue = useMemo( () => { - if ( isStatusFilterSelected( [ 'current' ] ) ) { - return 'active' as const; - } - if ( isStatusFilterSelected( [ 'fixed', 'ignored' ] ) ) { - return 'historic' as const; - } - return '' as const; - }, [ isStatusFilterSelected ] ); - - if ( ! ( activeThreatsCount + historicThreatsCount ) ) { - return null; - } - try { return (
{ } ).firstDetected; }, [ history ] ); - if ( history && ! history.error ) { + if ( history && history.error ) { return ( { const { data: status } = useScanStatusQuery( { usePolling: true } ); const [ scanResultsAnchor, setScanResultsAnchor ] = useState( null ); - const [ isViewingHistory, setIsViewingHistory ] = useState( false ); + const [ statusFilter, setStatusFilter ] = useState( 'active' ); + + const handleStatusFilterChange = useCallback( newStatusFilter => { + setStatusFilter( newStatusFilter ); + }, [] ); let currentScanStatus; if ( status.error ) { @@ -70,7 +74,7 @@ const ScanPage = () => { return ( - { isViewingHistory ? : } + { 'historic' === statusFilter ? : } { >
- +
{ !! status && ! isScanInProgress( status ) && ( [ 'filters' ]; + onStatusFilterChange: ( newStatus: 'active' | 'historic' | null ) => void; } ) { const { setModal } = useModal(); @@ -51,6 +54,7 @@ export default function ScanResultsDataView( { onFixThreats={ onFixThreats } onIgnoreThreats={ onIgnoreThreats } onUnignoreThreats={ onUnignoreThreats } + onStatusFilterChange={ onStatusFilterChange } /> ); } From 3ad2ee88cc1ca490b3e29c3593767f556f5ccf77 Mon Sep 17 00:00:00 2001 From: dkmyta Date: Tue, 10 Dec 2024 11:50:26 -0800 Subject: [PATCH 03/98] Restore early return --- .../threats-status-toggle-group-control.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/projects/js-packages/components/components/threats-data-views/threats-status-toggle-group-control.tsx b/projects/js-packages/components/components/threats-data-views/threats-status-toggle-group-control.tsx index 8facad3447ecc..fb88f1d3b8077 100644 --- a/projects/js-packages/components/components/threats-data-views/threats-status-toggle-group-control.tsx +++ b/projects/js-packages/components/components/threats-data-views/threats-status-toggle-group-control.tsx @@ -91,6 +91,10 @@ export default function ThreatsStatusToggleGroupControl( { [ view, onChangeView ] ); + if ( ! ( activeThreatsCount + historicThreatsCount ) ) { + return null; + } + try { return (
From 7ca9b4148801d4f3275f92de1f5c30ffad8db116 Mon Sep 17 00:00:00 2001 From: dkmyta Date: Tue, 10 Dec 2024 12:04:57 -0800 Subject: [PATCH 04/98] Add plan level restrictions --- .../components/threats-data-views/index.tsx | 49 ++++++++++--------- .../protect/src/js/routes/scan/index.jsx | 4 +- 2 files changed, 29 insertions(+), 24 deletions(-) diff --git a/projects/js-packages/components/components/threats-data-views/index.tsx b/projects/js-packages/components/components/threats-data-views/index.tsx index cdf737316334c..41e608dc2434a 100644 --- a/projects/js-packages/components/components/threats-data-views/index.tsx +++ b/projects/js-packages/components/components/threats-data-views/index.tsx @@ -256,28 +256,6 @@ export default function ThreatsDataViews( { ); }, }, - { - id: THREAT_FIELD_STATUS, - label: __( 'Status', 'jetpack-components' ), - elements: THREAT_STATUSES, - getValue( { item }: { item: Threat } ) { - if ( ! item.status ) { - return 'current'; - } - return ( - THREAT_STATUSES.find( ( { value } ) => value === item.status )?.value ?? item.status - ); - }, - render( { item }: { item: Threat } ) { - if ( item.status ) { - const status = THREAT_STATUSES.find( ( { value } ) => value === item.status ); - if ( status ) { - return { status.label }; - } - } - return { __( 'Active', 'jetpack-components' ) }; - }, - }, { id: THREAT_FIELD_TYPE, label: __( 'Type', 'jetpack-components' ), @@ -329,6 +307,33 @@ export default function ThreatsDataViews( { return item.extension ? item.extension.slug : ''; }, }, + ...( dataFields.includes( 'status' ) + ? [ + { + id: THREAT_FIELD_STATUS, + label: __( 'Status', 'jetpack-components' ), + elements: THREAT_STATUSES, + getValue( { item }: { item: Threat } ) { + if ( ! item.status ) { + return 'current'; + } + return ( + THREAT_STATUSES.find( ( { value } ) => value === item.status )?.value ?? + item.status + ); + }, + render( { item }: { item: Threat } ) { + if ( item.status ) { + const status = THREAT_STATUSES.find( ( { value } ) => value === item.status ); + if ( status ) { + return { status.label }; + } + } + return { __( 'Active', 'jetpack-components' ) }; + }, + }, + ] + : [] ), ...( dataFields.includes( 'severity' ) ? [ { diff --git a/projects/plugins/protect/src/js/routes/scan/index.jsx b/projects/plugins/protect/src/js/routes/scan/index.jsx index 7fe21dfb44cb8..3236f717a51eb 100644 --- a/projects/plugins/protect/src/js/routes/scan/index.jsx +++ b/projects/plugins/protect/src/js/routes/scan/index.jsx @@ -84,8 +84,8 @@ const ScanPage = () => {
{ !! status && ! isScanInProgress( status ) && ( From 136cbcda4e03f19caf3d87ede02463b050fb7bf2 Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Wed, 1 Jan 2025 03:50:56 +0100 Subject: [PATCH 05/98] Update babel monorepo to v7.26.3 (#40797) Co-authored-by: Renovate Bot --- pnpm-lock.yaml | 92 +++++++++---------- .../changelog/renovate-babel-monorepo | 4 + projects/js-packages/components/package.json | 2 +- .../changelog/renovate-babel-monorepo | 4 + projects/js-packages/connection/package.json | 2 +- .../idc/changelog/renovate-babel-monorepo | 4 + projects/js-packages/idc/package.json | 2 +- .../changelog/renovate-babel-monorepo | 4 + projects/js-packages/image-guide/package.json | 2 +- .../changelog/renovate-babel-monorepo | 4 + projects/js-packages/licensing/package.json | 2 +- .../changelog/renovate-babel-monorepo | 4 + .../js-packages/partner-coupon/package.json | 2 +- .../changelog/renovate-babel-monorepo | 4 + .../publicize-components/package.json | 2 +- .../changelog/renovate-babel-monorepo | 4 + .../shared-extension-utils/package.json | 2 +- .../changelog/renovate-babel-monorepo | 4 + projects/js-packages/storybook/package.json | 2 +- .../changelog/renovate-babel-monorepo | 4 + .../js-packages/videopress-core/package.json | 2 +- .../changelog/renovate-babel-monorepo | 4 + .../js-packages/webpack-config/package.json | 4 +- .../changelog/renovate-babel-monorepo | 4 + .../packages/jetpack-mu-wpcom/package.json | 2 +- .../search/changelog/renovate-babel-monorepo | 4 + projects/packages/search/package.json | 2 +- .../changelog/renovate-babel-monorepo | 4 + projects/packages/videopress/package.json | 2 +- .../wordads/changelog/renovate-babel-monorepo | 4 + projects/packages/wordads/package.json | 2 +- .../boost/changelog/renovate-babel-monorepo | 4 + projects/plugins/boost/package.json | 2 +- tools/js-tools/package.json | 2 +- 34 files changed, 128 insertions(+), 64 deletions(-) create mode 100644 projects/js-packages/components/changelog/renovate-babel-monorepo create mode 100644 projects/js-packages/connection/changelog/renovate-babel-monorepo create mode 100644 projects/js-packages/idc/changelog/renovate-babel-monorepo create mode 100644 projects/js-packages/image-guide/changelog/renovate-babel-monorepo create mode 100644 projects/js-packages/licensing/changelog/renovate-babel-monorepo create mode 100644 projects/js-packages/partner-coupon/changelog/renovate-babel-monorepo create mode 100644 projects/js-packages/publicize-components/changelog/renovate-babel-monorepo create mode 100644 projects/js-packages/shared-extension-utils/changelog/renovate-babel-monorepo create mode 100644 projects/js-packages/storybook/changelog/renovate-babel-monorepo create mode 100644 projects/js-packages/videopress-core/changelog/renovate-babel-monorepo create mode 100644 projects/js-packages/webpack-config/changelog/renovate-babel-monorepo create mode 100644 projects/packages/jetpack-mu-wpcom/changelog/renovate-babel-monorepo create mode 100644 projects/packages/search/changelog/renovate-babel-monorepo create mode 100644 projects/packages/videopress/changelog/renovate-babel-monorepo create mode 100644 projects/packages/wordads/changelog/renovate-babel-monorepo create mode 100644 projects/plugins/boost/changelog/renovate-babel-monorepo diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 889049053da1f..c15e1d3a1a66f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -460,8 +460,8 @@ importers: specifier: 7.26.0 version: 7.26.0 '@babel/preset-react': - specifier: 7.25.9 - version: 7.25.9(@babel/core@7.26.0) + specifier: 7.26.3 + version: 7.26.3(@babel/core@7.26.0) '@jest/globals': specifier: 29.4.3 version: 29.4.3 @@ -596,8 +596,8 @@ importers: specifier: 7.26.0 version: 7.26.0 '@babel/preset-react': - specifier: 7.25.9 - version: 7.25.9(@babel/core@7.26.0) + specifier: 7.26.3 + version: 7.26.3(@babel/core@7.26.0) '@storybook/addon-actions': specifier: 8.3.5 version: 8.3.5(storybook@8.3.5) @@ -833,8 +833,8 @@ importers: specifier: 7.26.0 version: 7.26.0 '@babel/preset-react': - specifier: 7.25.9 - version: 7.25.9(@babel/core@7.26.0) + specifier: 7.26.3 + version: 7.26.3(@babel/core@7.26.0) react: specifier: 18.3.1 version: 18.3.1 @@ -851,8 +851,8 @@ importers: specifier: 7.26.0 version: 7.26.0(@babel/core@7.26.0) '@babel/preset-react': - specifier: 7.25.9 - version: 7.25.9(@babel/core@7.26.0) + specifier: 7.26.3 + version: 7.26.3(@babel/core@7.26.0) '@babel/preset-typescript': specifier: 7.26.0 version: 7.26.0(@babel/core@7.26.0) @@ -963,8 +963,8 @@ importers: specifier: 7.25.9 version: 7.25.9(@babel/core@7.26.0) '@babel/preset-react': - specifier: 7.25.9 - version: 7.25.9(@babel/core@7.26.0) + specifier: 7.26.3 + version: 7.26.3(@babel/core@7.26.0) '@testing-library/dom': specifier: 10.4.0 version: 10.4.0 @@ -1021,8 +1021,8 @@ importers: specifier: 7.26.0 version: 7.26.0 '@babel/preset-react': - specifier: 7.25.9 - version: 7.25.9(@babel/core@7.26.0) + specifier: 7.26.3 + version: 7.26.3(@babel/core@7.26.0) '@testing-library/dom': specifier: 10.4.0 version: 10.4.0 @@ -1163,8 +1163,8 @@ importers: specifier: 7.25.9 version: 7.25.9(@babel/core@7.26.0) '@babel/preset-react': - specifier: 7.25.9 - version: 7.25.9(@babel/core@7.26.0) + specifier: 7.26.3 + version: 7.26.3(@babel/core@7.26.0) '@babel/runtime': specifier: 7.26.0 version: 7.26.0 @@ -1363,8 +1363,8 @@ importers: specifier: 7.25.9 version: 7.25.9(@babel/core@7.26.0) '@babel/preset-react': - specifier: 7.25.9 - version: 7.25.9(@babel/core@7.26.0) + specifier: 7.26.3 + version: 7.26.3(@babel/core@7.26.0) '@testing-library/dom': specifier: 10.4.0 version: 10.4.0 @@ -1458,8 +1458,8 @@ importers: specifier: 7.25.9 version: 7.25.9(@babel/core@7.26.0) '@babel/preset-react': - specifier: 7.25.9 - version: 7.25.9(@babel/core@7.26.0) + specifier: 7.26.3 + version: 7.26.3(@babel/core@7.26.0) '@babel/runtime': specifier: 7.26.0 version: 7.26.0 @@ -1629,8 +1629,8 @@ importers: specifier: 7.26.0 version: 7.26.0 '@babel/preset-react': - specifier: 7.25.9 - version: 7.25.9(@babel/core@7.26.0) + specifier: 7.26.3 + version: 7.26.3(@babel/core@7.26.0) '@types/jest': specifier: 29.5.12 version: 29.5.12 @@ -1668,8 +1668,8 @@ importers: specifier: 6.0.0 version: 6.0.0(webpack@5.94.0) '@babel/compat-data': - specifier: 7.26.2 - version: 7.26.2 + specifier: 7.26.3 + version: 7.26.3 '@babel/helper-compilation-targets': specifier: 7.25.9 version: 7.25.9 @@ -1680,8 +1680,8 @@ importers: specifier: 7.26.0 version: 7.26.0(@babel/core@7.26.0) '@babel/preset-react': - specifier: 7.25.9 - version: 7.25.9(@babel/core@7.26.0) + specifier: 7.26.3 + version: 7.26.3(@babel/core@7.26.0) '@babel/preset-typescript': specifier: 7.26.0 version: 7.26.0(@babel/core@7.26.0) @@ -2400,8 +2400,8 @@ importers: specifier: 7.25.9 version: 7.25.9(@babel/core@7.26.0) '@babel/preset-react': - specifier: 7.25.9 - version: 7.25.9(@babel/core@7.26.0) + specifier: 7.26.3 + version: 7.26.3(@babel/core@7.26.0) '@playwright/test': specifier: 1.48.2 version: 1.48.2 @@ -2812,8 +2812,8 @@ importers: specifier: 7.26.0 version: 7.26.0(@babel/core@7.26.0) '@babel/preset-react': - specifier: 7.25.9 - version: 7.25.9(@babel/core@7.26.0) + specifier: 7.26.3 + version: 7.26.3(@babel/core@7.26.0) '@babel/preset-typescript': specifier: 7.26.0 version: 7.26.0(@babel/core@7.26.0) @@ -2991,8 +2991,8 @@ importers: specifier: 7.26.0 version: 7.26.0 '@babel/preset-react': - specifier: 7.25.9 - version: 7.25.9(@babel/core@7.26.0) + specifier: 7.26.3 + version: 7.26.3(@babel/core@7.26.0) '@csstools/postcss-global-data': specifier: 2.1.1 version: 2.1.1(postcss@8.4.47) @@ -3172,8 +3172,8 @@ importers: specifier: 7.26.0 version: 7.26.0(@babel/core@7.26.0) '@babel/preset-react': - specifier: 7.25.9 - version: 7.25.9(@babel/core@7.26.0) + specifier: 7.26.3 + version: 7.26.3(@babel/core@7.26.0) '@babel/preset-typescript': specifier: 7.26.0 version: 7.26.0(@babel/core@7.26.0) @@ -3468,8 +3468,8 @@ importers: specifier: 7.26.0 version: 7.26.0(@babel/core@7.26.0) '@babel/preset-react': - specifier: 7.25.9 - version: 7.25.9(@babel/core@7.26.0) + specifier: 7.26.3 + version: 7.26.3(@babel/core@7.26.0) '@storybook/react': specifier: 8.3.5 version: 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5)(typescript@5.0.4) @@ -4804,8 +4804,8 @@ importers: specifier: 7.25.9 version: 7.25.9(@babel/core@7.26.0)(eslint@9.16.0) '@babel/preset-react': - specifier: 7.25.9 - version: 7.25.9(@babel/core@7.26.0) + specifier: 7.26.3 + version: 7.26.3(@babel/core@7.26.0) '@babel/preset-typescript': specifier: 7.26.0 version: 7.26.0(@babel/core@7.26.0) @@ -5052,8 +5052,8 @@ packages: resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.26.2': - resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==} + '@babel/compat-data@7.26.3': + resolution: {integrity: sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==} engines: {node: '>=6.9.0'} '@babel/core@7.26.0': @@ -5651,8 +5651,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - '@babel/preset-react@7.25.9': - resolution: {integrity: sha512-D3to0uSPiWE7rBrdIICCd0tJSIGpLaaGptna2+w7Pft5xMqLpA1sz99DK5TZ1TjGbdQ/VI1eCSZ06dv3lT4JOw==} + '@babel/preset-react@7.26.3': + resolution: {integrity: sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -15351,7 +15351,7 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.26.2': {} + '@babel/compat-data@7.26.3': {} '@babel/core@7.26.0': dependencies: @@ -15395,7 +15395,7 @@ snapshots: '@babel/helper-compilation-targets@7.25.9': dependencies: - '@babel/compat-data': 7.26.2 + '@babel/compat-data': 7.26.3 '@babel/helper-validator-option': 7.25.9 browserslist: 4.24.2 lru-cache: 5.1.1 @@ -16022,7 +16022,7 @@ snapshots: '@babel/preset-env@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/compat-data': 7.26.2 + '@babel/compat-data': 7.26.3 '@babel/core': 7.26.0 '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 @@ -16102,7 +16102,7 @@ snapshots: '@babel/types': 7.26.3 esutils: 2.0.3 - '@babel/preset-react@7.25.9(@babel/core@7.26.0)': + '@babel/preset-react@7.26.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 @@ -18409,7 +18409,7 @@ snapshots: '@babel/core': 7.26.0 '@babel/plugin-transform-react-constant-elements': 7.25.9(@babel/core@7.26.0) '@babel/preset-env': 7.26.0(@babel/core@7.26.0) - '@babel/preset-react': 7.25.9(@babel/core@7.26.0) + '@babel/preset-react': 7.26.3(@babel/core@7.26.0) '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) '@svgr/core': 7.0.0(typescript@5.0.4) '@svgr/plugin-jsx': 7.0.0 @@ -21745,7 +21745,7 @@ snapshots: babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.0): dependencies: - '@babel/compat-data': 7.26.2 + '@babel/compat-data': 7.26.3 '@babel/core': 7.26.0 '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) semver: 6.3.1 diff --git a/projects/js-packages/components/changelog/renovate-babel-monorepo b/projects/js-packages/components/changelog/renovate-babel-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/components/changelog/renovate-babel-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/components/package.json b/projects/js-packages/components/package.json index 9b2982eb5079d..9d6458f24ba29 100644 --- a/projects/js-packages/components/package.json +++ b/projects/js-packages/components/package.json @@ -39,7 +39,7 @@ "devDependencies": { "@automattic/jetpack-base-styles": "workspace:*", "@babel/core": "7.26.0", - "@babel/preset-react": "7.25.9", + "@babel/preset-react": "7.26.3", "@jest/globals": "29.4.3", "@storybook/addon-actions": "8.3.5", "@storybook/blocks": "8.3.5", diff --git a/projects/js-packages/connection/changelog/renovate-babel-monorepo b/projects/js-packages/connection/changelog/renovate-babel-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/connection/changelog/renovate-babel-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/connection/package.json b/projects/js-packages/connection/package.json index fc0a69f1fe213..180c61fdce727 100644 --- a/projects/js-packages/connection/package.json +++ b/projects/js-packages/connection/package.json @@ -33,7 +33,7 @@ "devDependencies": { "@automattic/jetpack-base-styles": "workspace:*", "@babel/core": "7.26.0", - "@babel/preset-react": "7.25.9", + "@babel/preset-react": "7.26.3", "@storybook/addon-actions": "8.3.5", "@testing-library/dom": "10.4.0", "@testing-library/react": "16.0.1", diff --git a/projects/js-packages/idc/changelog/renovate-babel-monorepo b/projects/js-packages/idc/changelog/renovate-babel-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/idc/changelog/renovate-babel-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/idc/package.json b/projects/js-packages/idc/package.json index 539002a3cc77e..40f52e90b90e1 100644 --- a/projects/js-packages/idc/package.json +++ b/projects/js-packages/idc/package.json @@ -20,7 +20,7 @@ }, "devDependencies": { "@babel/core": "7.26.0", - "@babel/preset-react": "7.25.9", + "@babel/preset-react": "7.26.3", "react": "18.3.1", "react-dom": "18.3.1" }, diff --git a/projects/js-packages/image-guide/changelog/renovate-babel-monorepo b/projects/js-packages/image-guide/changelog/renovate-babel-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/image-guide/changelog/renovate-babel-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/image-guide/package.json b/projects/js-packages/image-guide/package.json index 9e121c7254f01..fc8daf78f9812 100644 --- a/projects/js-packages/image-guide/package.json +++ b/projects/js-packages/image-guide/package.json @@ -33,7 +33,7 @@ "devDependencies": { "@babel/core": "^7.0.0", "@babel/preset-env": "7.26.0", - "@babel/preset-react": "7.25.9", + "@babel/preset-react": "7.26.3", "@babel/preset-typescript": "7.26.0", "@rollup/plugin-babel": "6.0.4", "@rollup/plugin-commonjs": "26.0.1", diff --git a/projects/js-packages/licensing/changelog/renovate-babel-monorepo b/projects/js-packages/licensing/changelog/renovate-babel-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/licensing/changelog/renovate-babel-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/licensing/package.json b/projects/js-packages/licensing/package.json index b80b77578f1fd..df83e072551ff 100644 --- a/projects/js-packages/licensing/package.json +++ b/projects/js-packages/licensing/package.json @@ -36,7 +36,7 @@ "@automattic/jetpack-webpack-config": "workspace:*", "@babel/core": "7.26.0", "@babel/plugin-transform-react-jsx": "7.25.9", - "@babel/preset-react": "7.25.9", + "@babel/preset-react": "7.26.3", "@testing-library/dom": "10.4.0", "@testing-library/react": "16.0.1", "@testing-library/user-event": "14.5.2", diff --git a/projects/js-packages/partner-coupon/changelog/renovate-babel-monorepo b/projects/js-packages/partner-coupon/changelog/renovate-babel-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/partner-coupon/changelog/renovate-babel-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/partner-coupon/package.json b/projects/js-packages/partner-coupon/package.json index d8f25f990a018..9fb5f1fe42a3d 100644 --- a/projects/js-packages/partner-coupon/package.json +++ b/projects/js-packages/partner-coupon/package.json @@ -23,7 +23,7 @@ "@automattic/jetpack-analytics": "workspace:*", "@automattic/jetpack-base-styles": "workspace:*", "@babel/core": "7.26.0", - "@babel/preset-react": "7.25.9", + "@babel/preset-react": "7.26.3", "@testing-library/dom": "10.4.0", "@testing-library/react": "16.0.1", "@testing-library/user-event": "14.5.2", diff --git a/projects/js-packages/publicize-components/changelog/renovate-babel-monorepo b/projects/js-packages/publicize-components/changelog/renovate-babel-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/publicize-components/changelog/renovate-babel-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/publicize-components/package.json b/projects/js-packages/publicize-components/package.json index 55e03a65b08d9..d7ab694f9170f 100644 --- a/projects/js-packages/publicize-components/package.json +++ b/projects/js-packages/publicize-components/package.json @@ -56,7 +56,7 @@ "@automattic/jetpack-webpack-config": "workspace:*", "@babel/core": "7.26.0", "@babel/plugin-transform-react-jsx": "7.25.9", - "@babel/preset-react": "7.25.9", + "@babel/preset-react": "7.26.3", "@babel/runtime": "7.26.0", "@testing-library/dom": "10.4.0", "@testing-library/react": "16.0.1", diff --git a/projects/js-packages/shared-extension-utils/changelog/renovate-babel-monorepo b/projects/js-packages/shared-extension-utils/changelog/renovate-babel-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/shared-extension-utils/changelog/renovate-babel-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/shared-extension-utils/package.json b/projects/js-packages/shared-extension-utils/package.json index bbb3e1f0bfe42..2c7c63afb822b 100644 --- a/projects/js-packages/shared-extension-utils/package.json +++ b/projects/js-packages/shared-extension-utils/package.json @@ -34,7 +34,7 @@ "@automattic/jetpack-webpack-config": "workspace:*", "@babel/core": "7.26.0", "@babel/plugin-transform-react-jsx": "7.25.9", - "@babel/preset-react": "7.25.9", + "@babel/preset-react": "7.26.3", "@testing-library/dom": "10.4.0", "@testing-library/react": "16.0.1", "@testing-library/user-event": "14.5.2", diff --git a/projects/js-packages/storybook/changelog/renovate-babel-monorepo b/projects/js-packages/storybook/changelog/renovate-babel-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/storybook/changelog/renovate-babel-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/storybook/package.json b/projects/js-packages/storybook/package.json index 82541f0584358..3722baa4dd6ed 100644 --- a/projects/js-packages/storybook/package.json +++ b/projects/js-packages/storybook/package.json @@ -23,7 +23,7 @@ "@automattic/jetpack-webpack-config": "workspace:*", "@babel/core": "7.26.0", "@babel/plugin-syntax-jsx": "7.25.9", - "@babel/preset-react": "7.25.9", + "@babel/preset-react": "7.26.3", "@babel/runtime": "7.26.0", "@playwright/test": "1.48.2", "@storybook/addon-a11y": "8.3.5", diff --git a/projects/js-packages/videopress-core/changelog/renovate-babel-monorepo b/projects/js-packages/videopress-core/changelog/renovate-babel-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/videopress-core/changelog/renovate-babel-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/videopress-core/package.json b/projects/js-packages/videopress-core/package.json index b6bace21725bb..6def65c04d1d4 100644 --- a/projects/js-packages/videopress-core/package.json +++ b/projects/js-packages/videopress-core/package.json @@ -24,7 +24,7 @@ "jest": "*", "@automattic/jetpack-webpack-config": "workspace:*", "@babel/core": "7.26.0", - "@babel/preset-react": "7.25.9", + "@babel/preset-react": "7.26.3", "@types/jest": "29.5.12", "tslib": "2.5.0", "typescript": "5.0.4", diff --git a/projects/js-packages/webpack-config/changelog/renovate-babel-monorepo b/projects/js-packages/webpack-config/changelog/renovate-babel-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/webpack-config/changelog/renovate-babel-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/webpack-config/package.json b/projects/js-packages/webpack-config/package.json index 2d81edcf5fd06..99ee290637686 100644 --- a/projects/js-packages/webpack-config/package.json +++ b/projects/js-packages/webpack-config/package.json @@ -21,11 +21,11 @@ "@automattic/i18n-check-webpack-plugin": "workspace:*", "@automattic/i18n-loader-webpack-plugin": "workspace:*", "@automattic/webpack-rtl-plugin": "6.0.0", - "@babel/compat-data": "7.26.2", + "@babel/compat-data": "7.26.3", "@babel/helper-compilation-targets": "7.25.9", "@babel/plugin-transform-runtime": "7.25.9", "@babel/preset-env": "7.26.0", - "@babel/preset-react": "7.25.9", + "@babel/preset-react": "7.26.3", "@babel/preset-typescript": "7.26.0", "@cerner/duplicate-package-checker-webpack-plugin": "2.3.0", "@wordpress/browserslist-config": "6.14.0", diff --git a/projects/packages/jetpack-mu-wpcom/changelog/renovate-babel-monorepo b/projects/packages/jetpack-mu-wpcom/changelog/renovate-babel-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/jetpack-mu-wpcom/changelog/renovate-babel-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/jetpack-mu-wpcom/package.json b/projects/packages/jetpack-mu-wpcom/package.json index 8dad01437fe0a..789e715f626c2 100644 --- a/projects/packages/jetpack-mu-wpcom/package.json +++ b/projects/packages/jetpack-mu-wpcom/package.json @@ -32,7 +32,7 @@ "@automattic/jetpack-webpack-config": "workspace:*", "@babel/core": "7.26.0", "@babel/plugin-transform-react-jsx": "7.25.9", - "@babel/preset-react": "7.25.9", + "@babel/preset-react": "7.26.3", "@playwright/test": "1.48.2", "@types/node": "^20.4.2", "@types/react": "^18.2.28", diff --git a/projects/packages/search/changelog/renovate-babel-monorepo b/projects/packages/search/changelog/renovate-babel-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/search/changelog/renovate-babel-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/search/package.json b/projects/packages/search/package.json index 361d561a79fe2..c532645ea7f21 100644 --- a/projects/packages/search/package.json +++ b/projects/packages/search/package.json @@ -68,7 +68,7 @@ "@babel/core": "7.26.0", "@babel/plugin-transform-react-jsx": "7.25.9", "@babel/preset-env": "7.26.0", - "@babel/preset-react": "7.25.9", + "@babel/preset-react": "7.26.3", "@babel/preset-typescript": "7.26.0", "@babel/runtime": "7.26.0", "@csstools/postcss-global-data": "2.1.1", diff --git a/projects/packages/videopress/changelog/renovate-babel-monorepo b/projects/packages/videopress/changelog/renovate-babel-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/videopress/changelog/renovate-babel-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/videopress/package.json b/projects/packages/videopress/package.json index b9036e3e04033..eee7f5d29d8cf 100644 --- a/projects/packages/videopress/package.json +++ b/projects/packages/videopress/package.json @@ -28,7 +28,7 @@ "@automattic/jetpack-base-styles": "workspace:*", "@automattic/jetpack-webpack-config": "workspace:*", "@babel/core": "7.26.0", - "@babel/preset-react": "7.25.9", + "@babel/preset-react": "7.26.3", "@csstools/postcss-global-data": "2.1.1", "@jest/globals": "29.4.3", "@storybook/addon-actions": "8.3.5", diff --git a/projects/packages/wordads/changelog/renovate-babel-monorepo b/projects/packages/wordads/changelog/renovate-babel-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/wordads/changelog/renovate-babel-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/wordads/package.json b/projects/packages/wordads/package.json index 2c5e5db77eaa9..acbc65a938fb0 100644 --- a/projects/packages/wordads/package.json +++ b/projects/packages/wordads/package.json @@ -63,7 +63,7 @@ "@babel/core": "7.26.0", "@babel/plugin-transform-react-jsx": "7.25.9", "@babel/preset-env": "7.26.0", - "@babel/preset-react": "7.25.9", + "@babel/preset-react": "7.26.3", "@babel/preset-typescript": "7.26.0", "@babel/runtime": "7.26.0", "@testing-library/dom": "10.4.0", diff --git a/projects/plugins/boost/changelog/renovate-babel-monorepo b/projects/plugins/boost/changelog/renovate-babel-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/boost/changelog/renovate-babel-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/boost/package.json b/projects/plugins/boost/package.json index 1021541420241..8fb45bc7ef16a 100644 --- a/projects/plugins/boost/package.json +++ b/projects/plugins/boost/package.json @@ -32,7 +32,7 @@ "@automattic/jetpack-webpack-config": "workspace:*", "@babel/core": "7.26.0", "@babel/preset-env": "7.26.0", - "@babel/preset-react": "7.25.9", + "@babel/preset-react": "7.26.3", "@storybook/react": "8.3.5", "@types/jest": "29.5.12", "@types/jquery": "3.5.32", diff --git a/tools/js-tools/package.json b/tools/js-tools/package.json index ebd555c211ba8..9dd198337be3a 100644 --- a/tools/js-tools/package.json +++ b/tools/js-tools/package.json @@ -14,7 +14,7 @@ "@automattic/eslint-config-target-es": "workspace:*", "@babel/core": "7.26.0", "@babel/eslint-parser": "7.25.9", - "@babel/preset-react": "7.25.9", + "@babel/preset-react": "7.26.3", "@babel/preset-typescript": "7.26.0", "@eslint/compat": "1.2.4", "@eslint/eslintrc": "3.2.0", From fdc21befa3a43f55bc01dd3b9bba4beb168e5024 Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Wed, 1 Jan 2025 03:58:33 +0100 Subject: [PATCH 06/98] Update dependency @automattic/color-studio to v4 (#40792) Co-authored-by: Renovate Bot --- pnpm-lock.yaml | 41 +++++++++++-------- .../renovate-automattic-color-studio-4.x | 4 ++ .../publicize-components/package.json | 2 +- .../renovate-automattic-color-studio-4.x | 4 ++ projects/packages/forms/package.json | 2 +- .../renovate-automattic-color-studio-4.x | 4 ++ .../packages/jetpack-mu-wpcom/package.json | 2 +- .../renovate-automattic-color-studio-4.x | 4 ++ projects/packages/masterbar/package.json | 2 +- .../renovate-automattic-color-studio-4.x | 4 ++ projects/packages/search/package.json | 2 +- .../renovate-automattic-color-studio-4.x | 4 ++ projects/packages/wordads/package.json | 2 +- .../renovate-automattic-color-studio-4.x | 4 ++ .../package.json | 2 +- .../renovate-automattic-color-studio-4.x | 4 ++ projects/plugins/jetpack/package.json | 2 +- .../renovate-automattic-color-studio-4.x | 4 ++ projects/plugins/social/package.json | 2 +- 19 files changed, 68 insertions(+), 27 deletions(-) create mode 100644 projects/js-packages/publicize-components/changelog/renovate-automattic-color-studio-4.x create mode 100644 projects/packages/forms/changelog/renovate-automattic-color-studio-4.x create mode 100644 projects/packages/jetpack-mu-wpcom/changelog/renovate-automattic-color-studio-4.x create mode 100644 projects/packages/masterbar/changelog/renovate-automattic-color-studio-4.x create mode 100644 projects/packages/search/changelog/renovate-automattic-color-studio-4.x create mode 100644 projects/packages/wordads/changelog/renovate-automattic-color-studio-4.x create mode 100644 projects/plugins/automattic-for-agencies-client/changelog/renovate-automattic-color-studio-4.x create mode 100644 projects/plugins/jetpack/changelog/renovate-automattic-color-studio-4.x create mode 100644 projects/plugins/social/changelog/renovate-automattic-color-studio-4.x diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c15e1d3a1a66f..bc9db825b0692 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1148,8 +1148,8 @@ importers: version: 4.0.1 devDependencies: '@automattic/color-studio': - specifier: 2.6.0 - version: 2.6.0 + specifier: 4.0.0 + version: 4.0.0 '@automattic/jetpack-base-styles': specifier: workspace:* version: link:../base-styles @@ -2211,8 +2211,8 @@ importers: version: 18.3.1(react@18.3.1) devDependencies: '@automattic/color-studio': - specifier: 2.6.0 - version: 2.6.0 + specifier: 4.0.0 + version: 4.0.0 '@automattic/jetpack-base-styles': specifier: workspace:* version: link:../../js-packages/base-styles @@ -2287,8 +2287,8 @@ importers: specifier: 3.1.3 version: 3.1.3 '@automattic/color-studio': - specifier: 2.6.0 - version: 2.6.0 + specifier: 4.0.0 + version: 4.0.0 '@automattic/i18n-utils': specifier: 1.2.3 version: 1.2.3 @@ -2463,8 +2463,8 @@ importers: specifier: 3.1.3 version: 3.1.3 '@automattic/color-studio': - specifier: 2.6.0 - version: 2.6.0 + specifier: 4.0.0 + version: 4.0.0 postcss-custom-properties: specifier: 12.1.7 version: 12.1.7(postcss@8.4.47) @@ -2715,8 +2715,8 @@ importers: specifier: 3.1.3 version: 3.1.3 '@automattic/color-studio': - specifier: 2.6.0 - version: 2.6.0 + specifier: 4.0.0 + version: 4.0.0 '@automattic/format-currency': specifier: 1.0.1 version: 1.0.1 @@ -3081,8 +3081,8 @@ importers: specifier: 3.1.3 version: 3.1.3 '@automattic/color-studio': - specifier: 2.6.0 - version: 2.6.0 + specifier: 4.0.0 + version: 4.0.0 '@automattic/jetpack-analytics': specifier: workspace:* version: link:../../js-packages/analytics @@ -3292,8 +3292,8 @@ importers: projects/plugins/automattic-for-agencies-client: dependencies: '@automattic/color-studio': - specifier: 2.6.0 - version: 2.6.0 + specifier: 4.0.0 + version: 4.0.0 '@automattic/jetpack-api': specifier: workspace:* version: link:../../js-packages/api @@ -4040,8 +4040,8 @@ importers: version: 18.3.1(react@18.3.1) devDependencies: '@automattic/color-studio': - specifier: 2.6.0 - version: 2.6.0 + specifier: 4.0.0 + version: 4.0.0 '@automattic/jetpack-base-styles': specifier: workspace:* version: link:../../js-packages/base-styles @@ -4364,8 +4364,8 @@ importers: specifier: 3.1.3 version: 3.1.3 '@automattic/color-studio': - specifier: 2.6.0 - version: 2.6.0 + specifier: 4.0.0 + version: 4.0.0 '@automattic/jetpack-webpack-config': specifier: workspace:* version: link:../../js-packages/webpack-config @@ -4999,6 +4999,9 @@ packages: '@automattic/color-studio@2.6.0': resolution: {integrity: sha512-2LzB6bbQw1vayZxZy5Y+DnCYU7x8tPu+rZhNkWD7V8QZTSJMJO65XKZhYaCByC+C5OegXyGyZzcqEOHHdj5iiQ==} + '@automattic/color-studio@4.0.0': + resolution: {integrity: sha512-L49rqIzCLnqLFoNJsANUXfmIWqlfgsEaDWcgXHt+lUbpZYDtWphUCVS/kIkSlAPHo3LmcRRzCTIq/DyU5C/nEA==} + '@automattic/explat-client-react-helpers@0.1.1': resolution: {integrity: sha512-ilebWXmuleHg3BYThJvKW/iraS5kV9iQvm+vtJn6Mkl01rkMDCmsl4MGYOYiKLi/BpUq0QVlD8qKapOsz5g3Vg==} @@ -15255,6 +15258,8 @@ snapshots: '@automattic/color-studio@2.6.0': {} + '@automattic/color-studio@4.0.0': {} + '@automattic/explat-client-react-helpers@0.1.1': dependencies: '@automattic/explat-client': 0.1.0 diff --git a/projects/js-packages/publicize-components/changelog/renovate-automattic-color-studio-4.x b/projects/js-packages/publicize-components/changelog/renovate-automattic-color-studio-4.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/publicize-components/changelog/renovate-automattic-color-studio-4.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/publicize-components/package.json b/projects/js-packages/publicize-components/package.json index d7ab694f9170f..559f0711beede 100644 --- a/projects/js-packages/publicize-components/package.json +++ b/projects/js-packages/publicize-components/package.json @@ -51,7 +51,7 @@ "rememo": "4.0.1" }, "devDependencies": { - "@automattic/color-studio": "2.6.0", + "@automattic/color-studio": "4.0.0", "@automattic/jetpack-base-styles": "workspace:*", "@automattic/jetpack-webpack-config": "workspace:*", "@babel/core": "7.26.0", diff --git a/projects/packages/forms/changelog/renovate-automattic-color-studio-4.x b/projects/packages/forms/changelog/renovate-automattic-color-studio-4.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/forms/changelog/renovate-automattic-color-studio-4.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/forms/package.json b/projects/packages/forms/package.json index 5dbb698daceaa..ee32521191968 100644 --- a/projects/packages/forms/package.json +++ b/projects/packages/forms/package.json @@ -59,7 +59,7 @@ "webpack-cli": "4.9.1" }, "devDependencies": { - "@automattic/color-studio": "2.6.0", + "@automattic/color-studio": "4.0.0", "@automattic/jetpack-base-styles": "workspace:*", "@automattic/jetpack-webpack-config": "workspace:*", "@automattic/remove-asset-webpack-plugin": "workspace:*", diff --git a/projects/packages/jetpack-mu-wpcom/changelog/renovate-automattic-color-studio-4.x b/projects/packages/jetpack-mu-wpcom/changelog/renovate-automattic-color-studio-4.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/jetpack-mu-wpcom/changelog/renovate-automattic-color-studio-4.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/jetpack-mu-wpcom/package.json b/projects/packages/jetpack-mu-wpcom/package.json index 789e715f626c2..93cc3b73a6cdb 100644 --- a/projects/packages/jetpack-mu-wpcom/package.json +++ b/projects/packages/jetpack-mu-wpcom/package.json @@ -47,7 +47,7 @@ }, "dependencies": { "@automattic/calypso-color-schemes": "3.1.3", - "@automattic/color-studio": "2.6.0", + "@automattic/color-studio": "4.0.0", "@automattic/i18n-utils": "1.2.3", "@automattic/jetpack-base-styles": "workspace:*", "@automattic/jetpack-shared-extension-utils": "workspace:*", diff --git a/projects/packages/masterbar/changelog/renovate-automattic-color-studio-4.x b/projects/packages/masterbar/changelog/renovate-automattic-color-studio-4.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/masterbar/changelog/renovate-automattic-color-studio-4.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/masterbar/package.json b/projects/packages/masterbar/package.json index 5c698cef9de66..978e9307f7d80 100644 --- a/projects/packages/masterbar/package.json +++ b/projects/packages/masterbar/package.json @@ -25,7 +25,7 @@ }, "dependencies": { "@automattic/calypso-color-schemes": "3.1.3", - "@automattic/color-studio": "2.6.0", + "@automattic/color-studio": "4.0.0", "postcss-custom-properties": "12.1.7" }, "devDependencies": { diff --git a/projects/packages/search/changelog/renovate-automattic-color-studio-4.x b/projects/packages/search/changelog/renovate-automattic-color-studio-4.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/search/changelog/renovate-automattic-color-studio-4.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/search/package.json b/projects/packages/search/package.json index c532645ea7f21..a54f42b1a38b9 100644 --- a/projects/packages/search/package.json +++ b/projects/packages/search/package.json @@ -34,7 +34,7 @@ "homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/packages/search/#readme", "dependencies": { "@automattic/calypso-color-schemes": "3.1.3", - "@automattic/color-studio": "2.6.0", + "@automattic/color-studio": "4.0.0", "@automattic/format-currency": "1.0.1", "@automattic/jetpack-analytics": "workspace:*", "@automattic/jetpack-api": "workspace:*", diff --git a/projects/packages/wordads/changelog/renovate-automattic-color-studio-4.x b/projects/packages/wordads/changelog/renovate-automattic-color-studio-4.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/wordads/changelog/renovate-automattic-color-studio-4.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/wordads/package.json b/projects/packages/wordads/package.json index acbc65a938fb0..4cd4d915b0fb9 100644 --- a/projects/packages/wordads/package.json +++ b/projects/packages/wordads/package.json @@ -31,7 +31,7 @@ }, "dependencies": { "@automattic/calypso-color-schemes": "3.1.3", - "@automattic/color-studio": "2.6.0", + "@automattic/color-studio": "4.0.0", "@automattic/jetpack-analytics": "workspace:*", "@automattic/jetpack-api": "workspace:*", "@automattic/jetpack-components": "workspace:*", diff --git a/projects/plugins/automattic-for-agencies-client/changelog/renovate-automattic-color-studio-4.x b/projects/plugins/automattic-for-agencies-client/changelog/renovate-automattic-color-studio-4.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/automattic-for-agencies-client/changelog/renovate-automattic-color-studio-4.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/automattic-for-agencies-client/package.json b/projects/plugins/automattic-for-agencies-client/package.json index e8a21a71802a0..2b45a0aedf1b0 100644 --- a/projects/plugins/automattic-for-agencies-client/package.json +++ b/projects/plugins/automattic-for-agencies-client/package.json @@ -27,7 +27,7 @@ "extends @wordpress/browserslist-config" ], "dependencies": { - "@automattic/color-studio": "2.6.0", + "@automattic/color-studio": "4.0.0", "@automattic/jetpack-api": "workspace:*", "@automattic/jetpack-base-styles": "workspace:*", "@automattic/jetpack-components": "workspace:*", diff --git a/projects/plugins/jetpack/changelog/renovate-automattic-color-studio-4.x b/projects/plugins/jetpack/changelog/renovate-automattic-color-studio-4.x new file mode 100644 index 0000000000000..1eaea6a769e84 --- /dev/null +++ b/projects/plugins/jetpack/changelog/renovate-automattic-color-studio-4.x @@ -0,0 +1,4 @@ +Significance: patch +Type: other + +Updated package dependencies. diff --git a/projects/plugins/jetpack/package.json b/projects/plugins/jetpack/package.json index 7a5e3fdc66067..1a1afa8f44623 100644 --- a/projects/plugins/jetpack/package.json +++ b/projects/plugins/jetpack/package.json @@ -119,7 +119,7 @@ "webpack-cli": "4.9.1" }, "devDependencies": { - "@automattic/color-studio": "2.6.0", + "@automattic/color-studio": "4.0.0", "@automattic/jetpack-base-styles": "workspace:*", "@automattic/jetpack-webpack-config": "workspace:*", "@automattic/remove-asset-webpack-plugin": "workspace:*", diff --git a/projects/plugins/social/changelog/renovate-automattic-color-studio-4.x b/projects/plugins/social/changelog/renovate-automattic-color-studio-4.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/social/changelog/renovate-automattic-color-studio-4.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/social/package.json b/projects/plugins/social/package.json index 5980effb41fef..39344be90877a 100644 --- a/projects/plugins/social/package.json +++ b/projects/plugins/social/package.json @@ -46,7 +46,7 @@ }, "devDependencies": { "@automattic/calypso-color-schemes": "3.1.3", - "@automattic/color-studio": "2.6.0", + "@automattic/color-studio": "4.0.0", "@automattic/jetpack-webpack-config": "workspace:*", "@babel/core": "7.26.0", "@babel/preset-env": "7.26.0", From 766f8d3f9eac6a87995f7af64af6cf6a3914d7bc Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Wed, 1 Jan 2025 04:07:10 +0100 Subject: [PATCH 07/98] Update definitelyTyped (#40798) Co-authored-by: Renovate Bot --- pnpm-lock.yaml | 1308 ++++++----------- .../changelog/renovate-definitelytyped | 4 + projects/js-packages/ai-client/package.json | 4 +- .../charts/changelog/renovate-definitelytyped | 4 + projects/js-packages/charts/package.json | 4 +- .../changelog/renovate-definitelytyped | 4 + projects/js-packages/components/package.json | 4 +- .../changelog/renovate-definitelytyped | 4 + projects/js-packages/connection/package.json | 2 +- .../changelog/renovate-definitelytyped#2 | 4 + .../js-packages/critical-css-gen/package.json | 2 +- .../changelog/renovate-definitelytyped | 4 + .../publicize-components/package.json | 2 +- .../scan/changelog/renovate-definitelytyped | 4 + projects/js-packages/scan/package.json | 2 +- .../changelog/renovate-definitelytyped | 4 + .../js-packages/social-logos/package.json | 4 +- .../backup/changelog/renovate-definitelytyped | 4 + projects/packages/backup/package.json | 2 +- .../changelog/renovate-definitelytyped | 4 + .../packages/jetpack-mu-wpcom/package.json | 2 +- .../changelog/renovate-definitelytyped | 4 + projects/packages/my-jetpack/package.json | 2 +- .../changelog/renovate-definitelytyped | 4 + projects/packages/videopress/package.json | 4 +- .../boost/changelog/renovate-definitelytyped | 4 + projects/plugins/boost/package.json | 2 +- .../crm/changelog/renovate-definitelytyped#3 | 4 + projects/plugins/crm/package.json | 4 +- .../changelog/renovate-definitelytyped | 4 + projects/plugins/jetpack/package.json | 4 +- .../changelog/renovate-definitelytyped#2 | 4 + projects/plugins/protect/package.json | 2 +- .../changelog/renovate-definitelytyped#2 | 4 + projects/plugins/social/package.json | 4 +- 35 files changed, 549 insertions(+), 877 deletions(-) create mode 100644 projects/js-packages/ai-client/changelog/renovate-definitelytyped create mode 100644 projects/js-packages/charts/changelog/renovate-definitelytyped create mode 100644 projects/js-packages/components/changelog/renovate-definitelytyped create mode 100644 projects/js-packages/connection/changelog/renovate-definitelytyped create mode 100644 projects/js-packages/critical-css-gen/changelog/renovate-definitelytyped#2 create mode 100644 projects/js-packages/publicize-components/changelog/renovate-definitelytyped create mode 100644 projects/js-packages/scan/changelog/renovate-definitelytyped create mode 100644 projects/js-packages/social-logos/changelog/renovate-definitelytyped create mode 100644 projects/packages/backup/changelog/renovate-definitelytyped create mode 100644 projects/packages/jetpack-mu-wpcom/changelog/renovate-definitelytyped create mode 100644 projects/packages/my-jetpack/changelog/renovate-definitelytyped create mode 100644 projects/packages/videopress/changelog/renovate-definitelytyped create mode 100644 projects/plugins/boost/changelog/renovate-definitelytyped create mode 100644 projects/plugins/crm/changelog/renovate-definitelytyped#3 create mode 100644 projects/plugins/jetpack/changelog/renovate-definitelytyped create mode 100644 projects/plugins/protect/changelog/renovate-definitelytyped#2 create mode 100644 projects/plugins/social/changelog/renovate-definitelytyped#2 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bc9db825b0692..9c3e5cf1c3bba 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -130,11 +130,11 @@ importers: specifier: 2.0.1 version: 2.0.1 '@types/react': - specifier: 18.3.12 - version: 18.3.12 + specifier: 18.3.18 + version: 18.3.18 '@types/wordpress__block-editor': - specifier: 11.5.15 - version: 11.5.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 11.5.16 + version: 11.5.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/api-fetch': specifier: 7.14.0 version: 7.14.0 @@ -146,10 +146,10 @@ importers: version: 4.14.0 '@wordpress/block-editor': specifier: 14.9.0 - version: 14.9.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.9.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/components': specifier: 29.0.0 - version: 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': specifier: 7.14.0 version: 7.14.0(react@18.3.1) @@ -342,11 +342,11 @@ importers: specifier: 8.4.6 version: 8.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.6)(typescript@5.7.2) '@types/react': - specifier: 18.3.13 - version: 18.3.13 + specifier: 18.3.18 + version: 18.3.18 '@types/react-dom': - specifier: 18.3.1 - version: 18.3.1 + specifier: 18.3.5 + version: 18.3.5(@types/react@18.3.18) esbuild: specifier: 0.24.2 version: 0.24.2 @@ -406,7 +406,7 @@ importers: version: 6.14.0 '@wordpress/components': specifier: 29.0.0 - version: 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': specifier: 7.14.0 version: 7.14.0(react@18.3.1) @@ -415,7 +415,7 @@ importers: version: 10.14.0(react@18.3.1) '@wordpress/dataviews': specifier: 4.10.0 - version: 4.10.0(patch_hash=of6mtpeubmoicukrgy5ohupf6a)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 4.10.0(patch_hash=of6mtpeubmoicukrgy5ohupf6a)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/date': specifier: 5.14.0 version: 5.14.0 @@ -479,7 +479,7 @@ importers: version: 10.4.0 '@testing-library/react': specifier: 16.0.1 - version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@testing-library/user-event': specifier: 14.5.2 version: 14.5.2(@testing-library/dom@10.4.0) @@ -490,11 +490,11 @@ importers: specifier: 1.0.5 version: 1.0.5 '@types/react': - specifier: 18.3.12 - version: 18.3.12 + specifier: 18.3.18 + version: 18.3.18 '@types/react-dom': - specifier: 18.3.1 - version: 18.3.1 + specifier: 18.3.5 + version: 18.3.5(@types/react@18.3.18) '@types/react-slider': specifier: 1.3.6 version: 1.3.6 @@ -566,7 +566,7 @@ importers: version: 6.14.0 '@wordpress/components': specifier: 29.0.0 - version: 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': specifier: 10.14.0 version: 10.14.0(react@18.3.1) @@ -606,13 +606,13 @@ importers: version: 10.4.0 '@testing-library/react': specifier: 16.0.1 - version: 16.0.1(@testing-library/dom@10.4.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 16.0.1(@testing-library/dom@10.4.0)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@testing-library/user-event': specifier: 14.5.2 version: 14.5.2(@testing-library/dom@10.4.0) '@types/react': - specifier: 18.3.12 - version: 18.3.12 + specifier: 18.3.18 + version: 18.3.18 jest: specifier: 29.7.0 version: 29.7.0 @@ -654,17 +654,17 @@ importers: specifier: 4.2.11 version: 4.2.11 '@types/css-tree': - specifier: 2.3.9 - version: 2.3.9 + specifier: 2.3.10 + version: 2.3.10 '@types/node': specifier: ^20.4.2 - version: 20.17.9 + version: 20.17.11 express: specifier: 4.21.2 version: 4.21.2 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@20.17.9) + version: 29.7.0(@types/node@20.17.11) path-browserify: specifier: 1.0.1 version: 1.0.1 @@ -1076,7 +1076,7 @@ importers: version: 1.0.2 '@automattic/social-previews': specifier: 2.1.0-beta.8 - version: 2.1.0-beta.8(@babel/runtime@7.26.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.1.0-beta.8(@babel/runtime@7.26.0)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/annotations': specifier: 3.14.0 version: 3.14.0(react@18.3.1) @@ -1085,34 +1085,34 @@ importers: version: 7.14.0 '@wordpress/block-editor': specifier: 14.9.0 - version: 14.9.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.9.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/blocks': specifier: 14.3.0 version: 14.3.0(react@18.3.1) '@wordpress/components': specifier: 29.0.0 - version: 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': specifier: 7.14.0 version: 7.14.0(react@18.3.1) '@wordpress/core-data': specifier: 7.14.0 - version: 7.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': specifier: 10.14.0 version: 10.14.0(react@18.3.1) '@wordpress/dataviews': specifier: 4.10.0 - version: 4.10.0(patch_hash=of6mtpeubmoicukrgy5ohupf6a)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 4.10.0(patch_hash=of6mtpeubmoicukrgy5ohupf6a)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/date': specifier: 5.14.0 version: 5.14.0 '@wordpress/edit-post': specifier: 8.14.0 - version: 8.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 8.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/editor': specifier: 14.14.0 - version: 14.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/element': specifier: 6.14.0 version: 6.14.0 @@ -1173,7 +1173,7 @@ importers: version: 10.4.0 '@testing-library/react': specifier: 16.0.1 - version: 16.0.1(@testing-library/dom@10.4.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 16.0.1(@testing-library/dom@10.4.0)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@testing-library/user-event': specifier: 14.5.2 version: 14.5.2(@testing-library/dom@10.4.0) @@ -1181,8 +1181,8 @@ importers: specifier: 29.5.12 version: 29.5.12 '@types/react': - specifier: 18.3.12 - version: 18.3.12 + specifier: 18.3.18 + version: 18.3.18 '@wordpress/babel-plugin-import-jsx-pragma': specifier: 5.14.0 version: 5.14.0(@babel/core@7.26.0) @@ -1295,13 +1295,13 @@ importers: version: 10.4.0 '@testing-library/react': specifier: 16.0.1 - version: 16.0.1(@testing-library/dom@10.4.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 16.0.1(@testing-library/dom@10.4.0)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/jest': specifier: 29.5.12 version: 29.5.12 '@types/react': - specifier: 18.3.12 - version: 18.3.12 + specifier: 18.3.18 + version: 18.3.18 jest: specifier: ^29.7.0 version: 29.7.0 @@ -1409,11 +1409,11 @@ importers: version: 18.3.1(react@18.3.1) devDependencies: '@types/react': - specifier: 18.3.12 - version: 18.3.12 + specifier: 18.3.18 + version: 18.3.18 '@types/react-dom': - specifier: 18.3.1 - version: 18.3.1 + specifier: 18.3.5 + version: 18.3.5(@types/react@18.3.18) glob: specifier: 10.4.1 version: 10.4.1 @@ -1799,7 +1799,7 @@ importers: version: 7.14.0 '@wordpress/components': specifier: 29.0.0 - version: 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': specifier: 10.14.0 version: 10.14.0(react@18.3.1) @@ -1845,13 +1845,13 @@ importers: version: 10.4.0 '@testing-library/react': specifier: 16.0.1 - version: 16.0.1(@testing-library/dom@10.4.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 16.0.1(@testing-library/dom@10.4.0)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@testing-library/user-event': specifier: 14.5.2 version: 14.5.2(@testing-library/dom@10.4.0) '@types/react': - specifier: 18.3.12 - version: 18.3.12 + specifier: 18.3.18 + version: 18.3.18 '@wordpress/browserslist-config': specifier: 6.14.0 version: 6.14.0 @@ -2102,7 +2102,7 @@ importers: version: 7.26.0 '@types/node': specifier: ^20.4.2 - version: 20.17.9 + version: 20.17.11 '@types/qs': specifier: 6.9.17 version: 6.9.17 @@ -2111,7 +2111,7 @@ importers: version: 7.6.0 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@20.17.9) + version: 29.7.0(@types/node@20.17.11) typescript: specifier: 5.0.4 version: 5.0.4 @@ -2300,7 +2300,7 @@ importers: version: link:../../js-packages/shared-extension-utils '@automattic/page-pattern-modal': specifier: 1.1.5 - version: 1.1.5(@types/react-dom@18.3.1)(@types/react@18.3.13)(@wordpress/data@10.14.0(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1) + version: 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(@wordpress/data@10.14.0(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1) '@automattic/typography': specifier: 1.0.0 version: 1.0.0 @@ -2327,7 +2327,7 @@ importers: version: 14.3.0(react@18.3.1) '@wordpress/components': specifier: 29.0.0 - version: 29.0.0(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': specifier: 10.14.0 version: 10.14.0(react@18.3.1) @@ -2348,7 +2348,7 @@ importers: version: 10.14.0(react@18.3.1) '@wordpress/plugins': specifier: 7.14.0 - version: 7.14.0(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/private-apis': specifier: ^1.8.1 version: 1.14.0 @@ -2407,13 +2407,13 @@ importers: version: 1.48.2 '@types/node': specifier: ^20.4.2 - version: 20.17.9 + version: 20.17.11 '@types/react': specifier: ^18.2.28 - version: 18.3.13 + version: 18.3.18 '@types/react-dom': - specifier: 18.3.1 - version: 18.3.1 + specifier: 18.3.5 + version: 18.3.5(@types/react@18.3.18) babel-plugin-transform-rename-properties: specifier: 0.1.0 version: 0.1.0(@babel/core@7.26.0) @@ -2546,7 +2546,7 @@ importers: version: 7.14.0 '@wordpress/components': specifier: 29.0.0 - version: 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': specifier: 7.14.0 version: 7.14.0(react@18.3.1) @@ -2607,7 +2607,7 @@ importers: version: 6.5.0 '@testing-library/react': specifier: 16.0.1 - version: 16.0.1(@testing-library/dom@10.4.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 16.0.1(@testing-library/dom@10.4.0)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@testing-library/user-event': specifier: 14.5.2 version: 14.5.2(@testing-library/dom@10.4.0) @@ -2615,8 +2615,8 @@ importers: specifier: 29.5.12 version: 29.5.12 '@types/react': - specifier: 18.3.12 - version: 18.3.12 + specifier: 18.3.18 + version: 18.3.18 concurrently: specifier: 7.6.0 version: 7.6.0 @@ -2919,19 +2919,19 @@ importers: version: 4.14.0 '@wordpress/block-editor': specifier: 14.9.0 - version: 14.9.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.9.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/blocks': specifier: 14.3.0 version: 14.3.0(react@18.3.1) '@wordpress/components': specifier: 29.0.0 - version: 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': specifier: 7.14.0 version: 7.14.0(react@18.3.1) '@wordpress/core-data': specifier: 7.14.0 - version: 7.14.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.14.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': specifier: 10.14.0 version: 10.14.0(react@18.3.1) @@ -2943,7 +2943,7 @@ importers: version: 4.14.0 '@wordpress/editor': specifier: 14.14.0 - version: 14.14.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.14.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/element': specifier: 6.14.0 version: 6.14.0 @@ -3016,16 +3016,16 @@ importers: version: 10.4.0 '@testing-library/react': specifier: 16.0.1 - version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/jest': specifier: 29.5.12 version: 29.5.12 '@types/react': - specifier: 18.3.12 - version: 18.3.12 + specifier: 18.3.18 + version: 18.3.18 '@types/react-dom': - specifier: 18.3.1 - version: 18.3.1 + specifier: 18.3.5 + version: 18.3.5(@types/react@18.3.18) '@wordpress/browserslist-config': specifier: 6.14.0 version: 6.14.0 @@ -3410,14 +3410,14 @@ importers: specifier: 9.7.3 version: 9.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/react': - specifier: 18.3.12 - version: 18.3.12 + specifier: 18.3.18 + version: 18.3.18 '@types/react-router-dom': specifier: 5.3.3 version: 5.3.3 '@wordpress/components': specifier: 29.0.0 - version: 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/element': specifier: 6.14.0 version: 6.14.0 @@ -3662,7 +3662,7 @@ importers: version: 5.14.0 '@wordpress/components': specifier: 29.0.0 - version: 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': specifier: 10.14.0 version: 10.14.0(react@18.3.1) @@ -3711,16 +3711,16 @@ importers: version: 10.4.0 '@testing-library/react': specifier: 16.0.1 - version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/jest': specifier: 29.5.12 version: 29.5.12 '@types/react': - specifier: 18.3.12 - version: 18.3.12 + specifier: 18.3.18 + version: 18.3.18 '@types/react-dom': - specifier: 18.3.1 - version: 18.3.1 + specifier: 18.3.5 + version: 18.3.5(@types/react@18.3.18) babel-jest: specifier: 29.3.1 version: 29.3.1(@babel/core@7.26.0) @@ -3865,7 +3865,7 @@ importers: version: 1.0.0 '@automattic/social-previews': specifier: 2.1.0-beta.8 - version: 2.1.0-beta.8(@babel/runtime@7.26.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.1.0-beta.8(@babel/runtime@7.26.0)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@automattic/viewport': specifier: 1.0.0 version: 1.0.0 @@ -3877,7 +3877,7 @@ importers: version: 5.14.0 '@wordpress/block-editor': specifier: 14.9.0 - version: 14.9.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.9.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/blocks': specifier: 14.3.0 version: 14.3.0(react@18.3.1) @@ -3895,7 +3895,7 @@ importers: version: 5.14.0 '@wordpress/edit-post': specifier: 8.14.0 - version: 8.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 8.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/element': specifier: 6.14.0 version: 6.14.0 @@ -3922,7 +3922,7 @@ importers: version: 6.14.0(react@18.3.1) '@wordpress/widgets': specifier: 4.14.0 - version: 4.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 4.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/wordcount': specifier: 4.14.0 version: 4.14.0 @@ -4077,7 +4077,7 @@ importers: version: 10.4.0 '@testing-library/react': specifier: 16.0.1 - version: 16.0.1(@testing-library/dom@10.4.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 16.0.1(@testing-library/dom@10.4.0)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@testing-library/user-event': specifier: 14.5.2 version: 14.5.2(@testing-library/dom@10.4.0) @@ -4085,11 +4085,11 @@ importers: specifier: 29.5.12 version: 29.5.12 '@types/react': - specifier: 18.3.12 - version: 18.3.12 + specifier: 18.3.18 + version: 18.3.18 '@types/wordpress__block-editor': - specifier: 11.5.15 - version: 11.5.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 11.5.16 + version: 11.5.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/api-fetch': specifier: 7.14.0 version: 7.14.0 @@ -4104,16 +4104,16 @@ importers: version: 5.14.0 '@wordpress/components': specifier: 29.0.0 - version: 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/core-data': specifier: 7.14.0 - version: 7.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/dom-ready': specifier: 4.14.0 version: 4.14.0 '@wordpress/editor': specifier: 14.14.0 - version: 14.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/escape-html': specifier: 3.14.0 version: 3.14.0 @@ -4214,7 +4214,7 @@ importers: version: 7.14.0 '@wordpress/components': specifier: 29.0.0 - version: 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': specifier: 10.14.0 version: 10.14.0(react@18.3.1) @@ -4268,8 +4268,8 @@ importers: specifier: 7.26.0 version: 7.26.0 '@types/react': - specifier: 18.3.12 - version: 18.3.12 + specifier: 18.3.18 + version: 18.3.18 '@wordpress/browserslist-config': specifier: 6.14.0 version: 6.14.0 @@ -4334,7 +4334,7 @@ importers: version: 7.14.0 '@wordpress/components': specifier: 29.0.0 - version: 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': specifier: 10.14.0 version: 10.14.0(react@18.3.1) @@ -4386,13 +4386,13 @@ importers: version: 10.4.0 '@testing-library/react': specifier: 16.0.1 - version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/react': - specifier: 18.3.12 - version: 18.3.12 + specifier: 18.3.18 + version: 18.3.18 '@types/react-dom': - specifier: 18.3.1 - version: 18.3.1 + specifier: 18.3.5 + version: 18.3.5(@types/react@18.3.18) '@wordpress/browserslist-config': specifier: 6.14.0 version: 6.14.0 @@ -7726,8 +7726,8 @@ packages: '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - '@types/css-tree@2.3.9': - resolution: {integrity: sha512-g1FE6xkPDP4tsccmTd6jIugjKZdxIDqAf9h2pc+4LsGgYbOyfa9phNjBHYbm6FtwIlNfT1NBx3f2zSeqO7aRAw==} + '@types/css-tree@2.3.10': + resolution: {integrity: sha512-WcaBazJ84RxABvRttQjjFWgTcHvZR9jGr0Y3hccPkHjFyk/a3N8EuxjKr+QfrwjoM5b1yI1Uj1i7EzOAAwBwag==} '@types/d3-array@3.0.3': resolution: {integrity: sha512-Reoy+pKnvsksN0lQUlcH6dOGjRZ/3WRwXR//m+/8lt1BXeI4xyaUZoqULNjyXXRuh0Mj4LNpkCvhUpQlY3X5xQ==} @@ -7879,11 +7879,11 @@ packages: '@types/node@18.19.67': resolution: {integrity: sha512-wI8uHusga+0ZugNp0Ol/3BqQfEcCCNfojtO6Oou9iVNGPTL6QNSdnUdqq85fRgIorLhLMuPIKpsN98QE9Nh+KQ==} - '@types/node@20.17.9': - resolution: {integrity: sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==} + '@types/node@20.17.11': + resolution: {integrity: sha512-Ept5glCK35R8yeyIeYlRIZtX6SLRyqMhOFTgj5SOkMpLTdw3SEHI9fHx60xaUZ+V1aJxQJODE+7/j5ocZydYTg==} - '@types/node@22.10.1': - resolution: {integrity: sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==} + '@types/node@22.10.3': + resolution: {integrity: sha512-DifAyw4BkrufCILvD3ucnuN8eydUfc/C1GlyrnI+LK6543w5/L3VeVgf05o3B4fqSXP1dKYLOZsKfutpxPzZrw==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -7900,8 +7900,10 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-dom@18.3.1': - resolution: {integrity: sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==} + '@types/react-dom@18.3.5': + resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==} + peerDependencies: + '@types/react': ^18.0.0 '@types/react-redux@7.1.34': resolution: {integrity: sha512-GdFaVjEbYv4Fthm2ZLvj1VSCedV7TqE5y1kNwnjSdBOTXuRSgowux6J8TAct15T3CKBr63UMk+2CO7ilRhyrAQ==} @@ -7915,11 +7917,8 @@ packages: '@types/react-slider@1.3.6': resolution: {integrity: sha512-RS8XN5O159YQ6tu3tGZIQz1/9StMLTg/FCIPxwqh2gwVixJnlfIodtVx+fpXVMZHe7A58lAX1Q4XTgAGOQaCQg==} - '@types/react@18.3.12': - resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==} - - '@types/react@18.3.13': - resolution: {integrity: sha512-ii/gswMmOievxAJed4PAHT949bpYjPKXvXo1v6cRB/kqc2ZR4n+SgyCyvyc5Fec5ez8VnUumI1Vk7j6fRyRogg==} + '@types/react@18.3.18': + resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} '@types/resolve@1.20.2': resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} @@ -7972,8 +7971,8 @@ packages: '@types/wait-on@5.3.4': resolution: {integrity: sha512-EBsPjFMrFlMbbUFf9D1Fp+PAB2TwmUn7a3YtHyD9RLuTIk1jDd8SxXVAoez2Ciy+8Jsceo2MYEYZzJ/DvorOKw==} - '@types/wordpress__block-editor@11.5.15': - resolution: {integrity: sha512-RaVPHOaSq9jsrdOkbtsx3Ly/IivD1CgKrshnNvlYtLZfXHe5H1g9Nw3UQtI0S4AW1XQCiCu67i4qgq4FfdR1kg==} + '@types/wordpress__block-editor@11.5.16': + resolution: {integrity: sha512-E/HU2zRiw09QvS1To0e1Noi61+klIIfQAwGK7zp+EWcuBoHHNsayXLjBmVGW6C/P2aPeHmqm2duVomPHMEFQcg==} '@types/wordpress__blocks@12.5.16': resolution: {integrity: sha512-WA6lsGY/DBR918wxWClG0rhg1o0qByYjfRzsXkQkKbbKb5RoCZV8ZTV5NyUHxaJUSI+PGjAX1DThQJESLWJkKQ==} @@ -15290,14 +15289,14 @@ snapshots: dependencies: tslib: 2.5.0 - '@automattic/page-pattern-modal@1.1.5(@types/react-dom@18.3.1)(@types/react@18.3.13)(@wordpress/data@10.14.0(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)': + '@automattic/page-pattern-modal@1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(@wordpress/data@10.14.0(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)': dependencies: '@automattic/color-studio': 2.6.0 '@automattic/typography': 1.0.0 '@wordpress/base-styles': 5.2.0 - '@wordpress/block-editor': 14.9.0(@types/react-dom@18.3.1)(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/block-editor': 14.9.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/blocks': 14.3.0(react@18.3.1) - '@wordpress/components': 29.0.0(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': 7.14.0(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) '@wordpress/element': 6.14.0 @@ -15323,10 +15322,10 @@ snapshots: dependencies: '@automattic/popup-monitor': 1.0.2 - '@automattic/social-previews@2.1.0-beta.8(@babel/runtime@7.26.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@automattic/social-previews@2.1.0-beta.8(@babel/runtime@7.26.0)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@emotion/react': 11.14.0(@types/react@18.3.12)(react@18.3.1) - '@wordpress/components': 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@emotion/react': 11.14.0(@types/react@18.3.18)(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/element': 6.14.0 '@wordpress/i18n': 5.14.0 clsx: 2.1.1 @@ -16231,7 +16230,7 @@ snapshots: '@emotion/memoize@0.9.0': {} - '@emotion/react@11.14.0(@types/react@18.3.12)(react@18.3.1)': + '@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 '@emotion/babel-plugin': 11.13.5 @@ -16243,23 +16242,7 @@ snapshots: hoist-non-react-statics: 3.3.2 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.12 - transitivePeerDependencies: - - supports-color - - '@emotion/react@11.14.0(@types/react@18.3.13)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.0 - '@emotion/babel-plugin': 11.13.5 - '@emotion/cache': 11.14.0 - '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) - '@emotion/utils': 1.4.2 - '@emotion/weak-memoize': 0.4.0 - hoist-non-react-statics: 3.3.2 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 transitivePeerDependencies: - supports-color @@ -16287,33 +16270,18 @@ snapshots: '@emotion/sheet@1.4.0': {} - '@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1)': + '@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 '@emotion/babel-plugin': 11.13.5 '@emotion/is-prop-valid': 1.3.1 - '@emotion/react': 11.14.0(@types/react@18.3.12)(react@18.3.1) + '@emotion/react': 11.14.0(@types/react@18.3.18)(react@18.3.1) '@emotion/serialize': 1.3.3 '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) '@emotion/utils': 1.4.2 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.12 - transitivePeerDependencies: - - supports-color - - '@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.13)(react@18.3.1))(@types/react@18.3.13)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.0 - '@emotion/babel-plugin': 11.13.5 - '@emotion/is-prop-valid': 1.3.1 - '@emotion/react': 11.14.0(@types/react@18.3.13)(react@18.3.1) - '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) - '@emotion/utils': 1.4.2 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 transitivePeerDependencies: - supports-color @@ -16664,7 +16632,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 20.17.9 + '@types/node': 20.17.11 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -16677,14 +16645,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.9 + '@types/node': 20.17.11 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.17.9) + jest-config: 29.7.0(@types/node@20.17.11) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -16713,7 +16681,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.9 + '@types/node': 20.17.11 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -16731,7 +16699,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.17.9 + '@types/node': 20.17.11 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -16762,7 +16730,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 20.17.9 + '@types/node': 20.17.11 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -16832,7 +16800,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.17.9 + '@types/node': 20.17.11 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -16885,10 +16853,10 @@ snapshots: '@mdn/browser-compat-data@5.5.49': {} - '@mdx-js/react@3.1.0(@types/react@18.3.13)(react@18.3.1)': + '@mdx-js/react@3.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 18.3.13 + '@types/react': 18.3.18 react: 18.3.1 '@microsoft/fetch-event-source@2.0.1': {} @@ -17104,102 +17072,68 @@ snapshots: '@radix-ui/primitive@1.1.0': {} - '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.12)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.12 - - '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.13)(react@18.3.1)': + '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@radix-ui/react-compose-refs@1.1.0(react@18.3.1)': dependencies: react: 18.3.1 - '@radix-ui/react-context@1.1.1(@types/react@18.3.12)(react@18.3.1)': + '@radix-ui/react-context@1.1.1(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.12 - - '@radix-ui/react-context@1.1.1(@types/react@18.3.13)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@radix-ui/react-context@1.1.1(react@18.3.1)': dependencies: react: 18.3.1 - '@radix-ui/react-dialog@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.12)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1) - '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1) - aria-hidden: 1.2.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.6.0(@types/react@18.3.12)(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 - - '@radix-ui/react-dialog@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dialog@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.13)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.13)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.13)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.13)(react@18.3.1) - '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.13)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.13)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.6.0(@types/react@18.3.13)(react@18.3.1) + react-remove-scroll: 2.6.0(@types/react@18.3.18)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.13 - '@types/react-dom': 18.3.1 + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-dialog@1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dialog@1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.12)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1) - '@radix-ui/react-portal': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.1(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-portal': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.1(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.6.0(@types/react@18.3.12)(react@18.3.1) + react-remove-scroll: 2.6.0(@types/react@18.3.18)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.12 + '@types/react': 18.3.18 '@radix-ui/react-dialog@1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -17220,43 +17154,30 @@ snapshots: react-dom: 18.3.1(react@18.3.1) react-remove-scroll: 2.6.0(react@18.3.1) - '@radix-ui/react-dismissable-layer@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dismissable-layer@1.1.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-dismissable-layer@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dismissable-layer@1.1.1(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.13)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.13)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.13)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.13 - '@types/react-dom': 18.3.1 - - '@radix-ui/react-dismissable-layer@1.1.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.12)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.12 + '@types/react': 18.3.18 '@radix-ui/react-dismissable-layer@1.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -17268,53 +17189,36 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.12)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.12 - - '@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.13)(react@18.3.1)': + '@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@radix-ui/react-focus-guards@1.1.1(react@18.3.1)': dependencies: react: 18.3.1 - '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-focus-scope@1.1.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.13)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.13)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.13 - '@types/react-dom': 18.3.1 - - '@radix-ui/react-focus-scope@1.1.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.12 + '@types/react': 18.3.18 '@radix-ui/react-focus-scope@1.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -17324,53 +17228,36 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@radix-ui/react-id@1.1.0(@types/react@18.3.12)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.12 - - '@radix-ui/react-id@1.1.0(@types/react@18.3.13)(react@18.3.1)': + '@radix-ui/react-id@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.13)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@radix-ui/react-id@1.1.0(react@18.3.1)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.0(react@18.3.1) react: 18.3.1 - '@radix-ui/react-portal@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-portal@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.13)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.13 - '@types/react-dom': 18.3.1 - - '@radix-ui/react-portal@1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.12 + '@types/react': 18.3.18 '@radix-ui/react-portal@1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -17379,34 +17266,24 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@radix-ui/react-presence@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 - - '@radix-ui/react-presence@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-presence@1.1.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.13)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.13)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.13 - '@types/react-dom': 18.3.1 + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-presence@1.1.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-presence@1.1.1(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.12 + '@types/react': 18.3.18 '@radix-ui/react-presence@1.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -17415,31 +17292,22 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@2.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.13)(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.13 - '@types/react-dom': 18.3.1 - - '@radix-ui/react-primitive@2.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.12 + '@types/react': 18.3.18 '@radix-ui/react-primitive@2.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -17447,90 +17315,57 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@radix-ui/react-slot@1.1.0(@types/react@18.3.12)(react@18.3.1)': + '@radix-ui/react-slot@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.12 - - '@radix-ui/react-slot@1.1.0(@types/react@18.3.13)(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.13)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@radix-ui/react-slot@1.1.0(react@18.3.1)': dependencies: '@radix-ui/react-compose-refs': 1.1.0(react@18.3.1) react: 18.3.1 - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.12)(react@18.3.1)': + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.12 - - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.13)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@radix-ui/react-use-callback-ref@1.1.0(react@18.3.1)': dependencies: react: 18.3.1 - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.12)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.12 - - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.13)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.13)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@radix-ui/react-use-controllable-state@1.1.0(react@18.3.1)': dependencies: '@radix-ui/react-use-callback-ref': 1.1.0(react@18.3.1) react: 18.3.1 - '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.12)(react@18.3.1)': + '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.12 - - '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.13)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.13)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@radix-ui/react-use-escape-keydown@1.1.0(react@18.3.1)': dependencies: '@radix-ui/react-use-callback-ref': 1.1.0(react@18.3.1) react: 18.3.1 - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.12)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.12 - - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.13)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@radix-ui/react-use-layout-effect@1.1.0(react@18.3.1)': dependencies: @@ -17840,7 +17675,7 @@ snapshots: '@slack/logger@4.0.0': dependencies: - '@types/node': 20.17.9 + '@types/node': 20.17.11 '@slack/types@2.14.0': {} @@ -17848,7 +17683,7 @@ snapshots: dependencies: '@slack/logger': 4.0.0 '@slack/types': 2.14.0 - '@types/node': 20.17.9 + '@types/node': 20.17.11 '@types/retry': 0.12.0 axios: 1.7.4 eventemitter3: 5.0.1 @@ -17865,7 +17700,7 @@ snapshots: dependencies: '@slack/logger': 4.0.0 '@slack/types': 2.14.0 - '@types/node': 20.17.9 + '@types/node': 20.17.11 '@types/retry': 0.12.0 axios: 1.7.4 eventemitter3: 5.0.1 @@ -17910,12 +17745,12 @@ snapshots: '@storybook/addon-docs@8.3.5(storybook@8.3.5)': dependencies: - '@mdx-js/react': 3.1.0(@types/react@18.3.13)(react@18.3.1) + '@mdx-js/react': 3.1.0(@types/react@18.3.18)(react@18.3.1) '@storybook/blocks': 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5) '@storybook/csf-plugin': 8.3.5(storybook@8.3.5) '@storybook/global': 5.0.0 '@storybook/react-dom-shim': 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5) - '@types/react': 18.3.13 + '@types/react': 18.3.18 fs-extra: 11.2.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -18013,7 +17848,7 @@ snapshots: '@storybook/builder-webpack5@8.3.5(storybook@8.3.5)(typescript@5.0.4)(webpack-cli@4.9.1)': dependencies: '@storybook/core-webpack': 8.3.5(storybook@8.3.5) - '@types/node': 22.10.1 + '@types/node': 22.10.3 '@types/semver': 7.5.8 browser-assert: 1.2.1 case-sensitive-paths-webpack-plugin: 2.4.0 @@ -18076,7 +17911,7 @@ snapshots: '@storybook/core-webpack@8.3.5(storybook@8.3.5)': dependencies: - '@types/node': 22.10.1 + '@types/node': 22.10.3 storybook: 8.3.5 ts-dedent: 2.2.0 @@ -18155,7 +17990,7 @@ snapshots: '@storybook/core-webpack': 8.3.5(storybook@8.3.5) '@storybook/react': 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5)(typescript@5.0.4) '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.0.4)(webpack@5.94.0) - '@types/node': 22.10.1 + '@types/node': 22.10.3 '@types/semver': 7.5.8 find-up: 5.0.0 fs-extra: 11.2.0 @@ -18221,7 +18056,7 @@ snapshots: '@storybook/builder-webpack5': 8.3.5(storybook@8.3.5)(typescript@5.0.4)(webpack-cli@4.9.1) '@storybook/preset-react-webpack': 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5)(typescript@5.0.4)(webpack-cli@4.9.1) '@storybook/react': 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5)(typescript@5.0.4) - '@types/node': 22.10.1 + '@types/node': 22.10.3 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) storybook: 8.3.5 @@ -18246,7 +18081,7 @@ snapshots: '@storybook/theming': 8.3.5(storybook@8.3.5) '@types/escodegen': 0.0.6 '@types/estree': 0.0.51 - '@types/node': 22.10.1 + '@types/node': 22.10.3 acorn: 7.4.1 acorn-jsx: 5.3.2(acorn@7.4.1) acorn-walk: 7.2.0 @@ -18564,24 +18399,24 @@ snapshots: '@testing-library/dom': 8.20.1 preact: 10.22.1 - '@testing-library/react@16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@testing-library/react@16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 '@testing-library/dom': 10.4.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@testing-library/react@16.0.1(@testing-library/dom@10.4.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@testing-library/react@16.0.1(@testing-library/dom@10.4.0)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 '@testing-library/dom': 10.4.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.12 + '@types/react': 18.3.18 '@testing-library/react@16.0.1(@testing-library/dom@10.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -18626,18 +18461,18 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 20.17.9 + '@types/node': 20.17.11 '@types/clean-css@4.2.11': dependencies: - '@types/node': 20.17.9 + '@types/node': 20.17.11 source-map: 0.6.1 '@types/connect@3.4.38': dependencies: - '@types/node': 20.17.9 + '@types/node': 20.17.11 - '@types/css-tree@2.3.9': {} + '@types/css-tree@2.3.10': {} '@types/d3-array@3.0.3': {} @@ -18685,7 +18520,7 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 20.17.9 + '@types/node': 20.17.11 '@types/qs': 6.9.17 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -18702,11 +18537,11 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.17.9 + '@types/node': 20.17.11 '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 20.17.9 + '@types/node': 20.17.11 '@types/gradient-parser@0.1.3': {} @@ -18720,7 +18555,7 @@ snapshots: '@types/hoist-non-react-statics@3.3.6': dependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 hoist-non-react-statics: 3.3.2 '@types/html-minifier-terser@6.1.0': {} @@ -18748,7 +18583,7 @@ snapshots: '@types/jsdom@20.0.1': dependencies: - '@types/node': 20.17.9 + '@types/node': 20.17.11 '@types/tough-cookie': 4.0.5 parse5: 7.2.1 @@ -18787,18 +18622,18 @@ snapshots: '@types/node-fetch@2.6.12': dependencies: - '@types/node': 20.17.9 + '@types/node': 20.17.11 form-data: 4.0.1 '@types/node@18.19.67': dependencies: undici-types: 5.26.5 - '@types/node@20.17.9': + '@types/node@20.17.11': dependencies: undici-types: 6.19.8 - '@types/node@22.10.1': + '@types/node@22.10.3': dependencies: undici-types: 6.20.0 @@ -18808,44 +18643,39 @@ snapshots: '@types/qrcode.react@1.0.5': dependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@types/qs@6.9.17': {} '@types/range-parser@1.2.7': {} - '@types/react-dom@18.3.1': + '@types/react-dom@18.3.5(@types/react@18.3.18)': dependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@types/react-redux@7.1.34': dependencies: '@types/hoist-non-react-statics': 3.3.6 - '@types/react': 18.3.13 + '@types/react': 18.3.18 hoist-non-react-statics: 3.3.2 redux: 4.2.1 '@types/react-router-dom@5.3.3': dependencies: '@types/history': 4.7.11 - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@types/react-router': 5.1.20 '@types/react-router@5.1.20': dependencies: '@types/history': 4.7.11 - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@types/react-slider@1.3.6': dependencies: - '@types/react': 18.3.13 - - '@types/react@18.3.12': - dependencies: - '@types/prop-types': 15.7.14 - csstype: 3.1.3 + '@types/react': 18.3.18 - '@types/react@18.3.13': + '@types/react@18.3.18': dependencies: '@types/prop-types': 15.7.14 csstype: 3.1.3 @@ -18858,7 +18688,7 @@ snapshots: '@types/sax@1.2.7': dependencies: - '@types/node': 20.17.9 + '@types/node': 20.17.11 '@types/seed-random@2.2.4': {} @@ -18867,17 +18697,17 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 20.17.9 + '@types/node': 20.17.11 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 20.17.9 + '@types/node': 20.17.11 '@types/send': 0.17.4 '@types/simple-peer@9.11.8': dependencies: - '@types/node': 20.17.9 + '@types/node': 20.17.11 '@types/sizzle@2.3.9': {} @@ -18895,13 +18725,13 @@ snapshots: '@types/wait-on@5.3.4': dependencies: - '@types/node': 20.17.9 + '@types/node': 20.17.11 - '@types/wordpress__block-editor@11.5.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@types/wordpress__block-editor@11.5.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@types/wordpress__blocks': 12.5.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/components': 29.0.0(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) '@wordpress/element': 6.14.0 '@wordpress/keycodes': 4.14.0 @@ -18914,9 +18744,9 @@ snapshots: '@types/wordpress__blocks@12.5.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@types/wordpress__shortcode': 2.3.6 - '@wordpress/components': 29.0.0(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) '@wordpress/element': 6.14.0 transitivePeerDependencies: @@ -18935,7 +18765,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 20.17.9 + '@types/node': 20.17.11 optional: true '@typescript-eslint/eslint-plugin@8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.0.4))(eslint@9.16.0)(typescript@5.0.4)': @@ -19070,7 +18900,7 @@ snapshots: '@visx/annotation@3.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@visx/drag': 3.12.0(react@18.3.1) '@visx/group': 3.12.0(react@18.3.1) '@visx/text': 3.12.0(react@18.3.1) @@ -19083,7 +18913,7 @@ snapshots: '@visx/axis@3.12.0(react@18.3.1)': dependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@visx/group': 3.12.0(react@18.3.1) '@visx/point': 3.12.0 '@visx/scale': 3.12.0 @@ -19095,8 +18925,8 @@ snapshots: '@visx/bounds@3.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@types/react': 18.3.13 - '@types/react-dom': 18.3.1 + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) prop-types: 15.8.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -19108,7 +18938,7 @@ snapshots: '@visx/drag@3.12.0(react@18.3.1)': dependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@visx/event': 3.12.0 '@visx/point': 3.12.0 prop-types: 15.8.1 @@ -19116,13 +18946,13 @@ snapshots: '@visx/event@3.12.0': dependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@visx/point': 3.12.0 '@visx/glyph@3.12.0(react@18.3.1)': dependencies: '@types/d3-shape': 1.3.12 - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@visx/group': 3.12.0(react@18.3.1) classnames: 2.5.1 d3-shape: 1.3.7 @@ -19131,7 +18961,7 @@ snapshots: '@visx/grid@3.12.0(react@18.3.1)': dependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@visx/curve': 3.12.0 '@visx/group': 3.12.0(react@18.3.1) '@visx/point': 3.12.0 @@ -19143,14 +18973,14 @@ snapshots: '@visx/group@3.12.0(react@18.3.1)': dependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 classnames: 2.5.1 prop-types: 15.8.1 react: 18.3.1 '@visx/legend@3.12.0(react@18.3.1)': dependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@visx/group': 3.12.0(react@18.3.1) '@visx/scale': 3.12.0 classnames: 2.5.1 @@ -19162,7 +18992,7 @@ snapshots: '@visx/react-spring@3.12.0(@react-spring/web@9.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': dependencies: '@react-spring/web': 9.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@visx/axis': 3.12.0(react@18.3.1) '@visx/grid': 3.12.0(react@18.3.1) '@visx/scale': 3.12.0 @@ -19174,7 +19004,7 @@ snapshots: '@visx/responsive@3.12.0(react@18.3.1)': dependencies: '@types/lodash': 4.17.13 - '@types/react': 18.3.13 + '@types/react': 18.3.18 lodash: 4.17.21 prop-types: 15.8.1 react: 18.3.1 @@ -19188,7 +19018,7 @@ snapshots: '@types/d3-path': 1.0.11 '@types/d3-shape': 1.3.12 '@types/lodash': 4.17.13 - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@visx/curve': 3.12.0 '@visx/group': 3.12.0(react@18.3.1) '@visx/scale': 3.12.0 @@ -19202,7 +19032,7 @@ snapshots: '@visx/text@3.12.0(react@18.3.1)': dependencies: '@types/lodash': 4.17.13 - '@types/react': 18.3.13 + '@types/react': 18.3.18 classnames: 2.5.1 lodash: 4.17.21 prop-types: 15.8.1 @@ -19211,7 +19041,7 @@ snapshots: '@visx/tooltip@3.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@visx/bounds': 3.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: 2.5.1 prop-types: 15.8.1 @@ -19244,7 +19074,7 @@ snapshots: '@visx/voronoi@3.12.0(react@18.3.1)': dependencies: '@types/d3-voronoi': 1.1.12 - '@types/react': 18.3.13 + '@types/react': 18.3.18 classnames: 2.5.1 d3-voronoi: 1.1.4 prop-types: 15.8.1 @@ -19254,7 +19084,7 @@ snapshots: dependencies: '@react-spring/web': 9.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/lodash': 4.17.13 - '@types/react': 18.3.13 + '@types/react': 18.3.18 '@visx/annotation': 3.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@visx/axis': 3.12.0(react@18.3.1) '@visx/event': 3.12.0 @@ -19422,19 +19252,19 @@ snapshots: dependencies: '@babel/runtime': 7.25.7 - '@wordpress/block-editor@14.9.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/block-editor@14.9.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.7 - '@emotion/react': 11.14.0(@types/react@18.3.12)(react@18.3.1) - '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) + '@emotion/react': 11.14.0(@types/react@18.3.18)(react@18.3.1) + '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1) '@react-spring/web': 9.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/a11y': 4.13.0 '@wordpress/api-fetch': 7.14.0 '@wordpress/blob': 4.14.0 '@wordpress/block-serialization-default-parser': 5.14.0 '@wordpress/blocks': 14.3.0(react@18.3.1) - '@wordpress/commands': 1.13.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/components': 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/commands': 1.13.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': 7.14.0(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) '@wordpress/date': 5.14.0 @@ -19450,7 +19280,7 @@ snapshots: '@wordpress/keyboard-shortcuts': 5.13.0(react@18.3.1) '@wordpress/keycodes': 4.14.0 '@wordpress/notices': 5.14.0(react@18.3.1) - '@wordpress/preferences': 4.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/preferences': 4.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/priority-queue': 3.13.0 '@wordpress/private-apis': 1.14.0 '@wordpress/rich-text': 7.14.0(react@18.3.1) @@ -19481,19 +19311,19 @@ snapshots: - '@types/react-dom' - supports-color - '@wordpress/block-editor@14.9.0(@types/react-dom@18.3.1)(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/block-editor@14.9.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.7 - '@emotion/react': 11.14.0(@types/react@18.3.13)(react@18.3.1) - '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.13)(react@18.3.1))(@types/react@18.3.13)(react@18.3.1) + '@emotion/react': 11.14.0(@types/react@18.3.18)(react@18.3.1) + '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1) '@react-spring/web': 9.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/a11y': 4.13.0 '@wordpress/api-fetch': 7.14.0 '@wordpress/blob': 4.14.0 '@wordpress/block-serialization-default-parser': 5.14.0 '@wordpress/blocks': 14.3.0(react@18.3.1) - '@wordpress/commands': 1.13.0(@types/react-dom@18.3.1)(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/components': 29.0.0(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/commands': 1.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': 7.14.0(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) '@wordpress/date': 5.14.0 @@ -19509,66 +19339,7 @@ snapshots: '@wordpress/keyboard-shortcuts': 5.13.0(react@18.3.1) '@wordpress/keycodes': 4.14.0 '@wordpress/notices': 5.14.0(react@18.3.1) - '@wordpress/preferences': 4.13.0(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/priority-queue': 3.13.0 - '@wordpress/private-apis': 1.14.0 - '@wordpress/rich-text': 7.14.0(react@18.3.1) - '@wordpress/style-engine': 2.13.0 - '@wordpress/token-list': 3.14.0 - '@wordpress/url': 4.14.0 - '@wordpress/warning': 3.13.0 - '@wordpress/wordcount': 4.14.0 - change-case: 4.1.2 - clsx: 2.1.1 - colord: 2.9.3 - deepmerge: 4.3.1 - diff: 4.0.2 - fast-deep-equal: 3.1.3 - memize: 2.1.0 - parsel-js: 1.2.1 - postcss: 8.4.47 - postcss-prefix-selector: 1.16.1(postcss@8.4.47) - postcss-urlrebase: 1.4.0(postcss@8.4.47) - react: 18.3.1 - react-autosize-textarea: 7.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-dom: 18.3.1(react@18.3.1) - react-easy-crop: 5.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - remove-accents: 0.5.0 - transitivePeerDependencies: - - '@emotion/is-prop-valid' - - '@types/react' - - '@types/react-dom' - - supports-color - - '@wordpress/block-editor@14.9.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.25.7 - '@emotion/react': 11.14.0(@types/react@18.3.12)(react@18.3.1) - '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) - '@react-spring/web': 9.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/a11y': 4.13.0 - '@wordpress/api-fetch': 7.14.0 - '@wordpress/blob': 4.14.0 - '@wordpress/block-serialization-default-parser': 5.14.0 - '@wordpress/blocks': 14.3.0(react@18.3.1) - '@wordpress/commands': 1.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/components': 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/compose': 7.14.0(react@18.3.1) - '@wordpress/data': 10.14.0(react@18.3.1) - '@wordpress/date': 5.14.0 - '@wordpress/deprecated': 4.13.0 - '@wordpress/dom': 4.13.0 - '@wordpress/element': 6.14.0 - '@wordpress/escape-html': 3.14.0 - '@wordpress/hooks': 4.14.0 - '@wordpress/html-entities': 4.14.0 - '@wordpress/i18n': 5.14.0 - '@wordpress/icons': 10.14.0(react@18.3.1) - '@wordpress/is-shallow-equal': 5.13.0 - '@wordpress/keyboard-shortcuts': 5.13.0(react@18.3.1) - '@wordpress/keycodes': 4.14.0 - '@wordpress/notices': 5.14.0(react@18.3.1) - '@wordpress/preferences': 4.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/preferences': 4.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/priority-queue': 3.13.0 '@wordpress/private-apis': 1.14.0 '@wordpress/rich-text': 7.14.0(react@18.3.1) @@ -19658,18 +19429,18 @@ snapshots: - '@types/react-dom' - supports-color - '@wordpress/block-library@9.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/block-library@9.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.7 '@wordpress/a11y': 4.13.0 '@wordpress/api-fetch': 7.14.0 '@wordpress/autop': 4.13.0 '@wordpress/blob': 4.14.0 - '@wordpress/block-editor': 14.9.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/block-editor': 14.9.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/blocks': 14.3.0(react@18.3.1) - '@wordpress/components': 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': 7.14.0(react@18.3.1) - '@wordpress/core-data': 7.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/core-data': 7.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) '@wordpress/date': 5.14.0 '@wordpress/deprecated': 4.13.0 @@ -19685,12 +19456,12 @@ snapshots: '@wordpress/keyboard-shortcuts': 5.13.0(react@18.3.1) '@wordpress/keycodes': 4.14.0 '@wordpress/notices': 5.14.0(react@18.3.1) - '@wordpress/patterns': 2.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/patterns': 2.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/primitives': 4.14.0(react@18.3.1) '@wordpress/private-apis': 1.14.0 - '@wordpress/reusable-blocks': 5.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/reusable-blocks': 5.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/rich-text': 7.14.0(react@18.3.1) - '@wordpress/server-side-render': 5.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/server-side-render': 5.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/url': 4.14.0 '@wordpress/viewport': 6.14.0(react@18.3.1) '@wordpress/wordcount': 4.14.0 @@ -19805,10 +19576,10 @@ snapshots: '@wordpress/browserslist-config@6.14.0': {} - '@wordpress/commands@1.13.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/commands@1.13.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.7 - '@wordpress/components': 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) '@wordpress/element': 6.14.0 '@wordpress/i18n': 5.14.0 @@ -19816,7 +19587,7 @@ snapshots: '@wordpress/keyboard-shortcuts': 5.13.0(react@18.3.1) '@wordpress/private-apis': 1.14.0 clsx: 2.1.1 - cmdk: 1.0.4(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + cmdk: 1.0.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: @@ -19825,10 +19596,10 @@ snapshots: - '@types/react-dom' - supports-color - '@wordpress/commands@1.13.0(@types/react-dom@18.3.1)(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/commands@1.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.7 - '@wordpress/components': 29.0.0(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) '@wordpress/element': 6.14.0 '@wordpress/i18n': 5.14.0 @@ -19836,27 +19607,7 @@ snapshots: '@wordpress/keyboard-shortcuts': 5.13.0(react@18.3.1) '@wordpress/private-apis': 1.14.0 clsx: 2.1.1 - cmdk: 1.0.4(@types/react-dom@18.3.1)(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - transitivePeerDependencies: - - '@emotion/is-prop-valid' - - '@types/react' - - '@types/react-dom' - - supports-color - - '@wordpress/commands@1.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.25.7 - '@wordpress/components': 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/data': 10.14.0(react@18.3.1) - '@wordpress/element': 6.14.0 - '@wordpress/i18n': 5.14.0 - '@wordpress/icons': 10.14.0(react@18.3.1) - '@wordpress/keyboard-shortcuts': 5.13.0(react@18.3.1) - '@wordpress/private-apis': 1.14.0 - clsx: 2.1.1 - cmdk: 1.0.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + cmdk: 1.0.4(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: @@ -19885,69 +19636,15 @@ snapshots: - '@types/react-dom' - supports-color - '@wordpress/components@29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/components@29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@ariakit/react': 0.4.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@babel/runtime': 7.25.7 '@emotion/cache': 11.14.0 '@emotion/css': 11.13.5 - '@emotion/react': 11.14.0(@types/react@18.3.12)(react@18.3.1) + '@emotion/react': 11.14.0(@types/react@18.3.18)(react@18.3.1) '@emotion/serialize': 1.3.3 - '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) - '@emotion/utils': 1.4.2 - '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@types/gradient-parser': 0.1.3 - '@types/highlight-words-core': 1.2.1 - '@use-gesture/react': 10.3.1(react@18.3.1) - '@wordpress/a11y': 4.13.0 - '@wordpress/compose': 7.14.0(react@18.3.1) - '@wordpress/date': 5.14.0 - '@wordpress/deprecated': 4.13.0 - '@wordpress/dom': 4.13.0 - '@wordpress/element': 6.14.0 - '@wordpress/escape-html': 3.14.0 - '@wordpress/hooks': 4.14.0 - '@wordpress/html-entities': 4.14.0 - '@wordpress/i18n': 5.14.0 - '@wordpress/icons': 10.14.0(react@18.3.1) - '@wordpress/is-shallow-equal': 5.13.0 - '@wordpress/keycodes': 4.14.0 - '@wordpress/primitives': 4.14.0(react@18.3.1) - '@wordpress/private-apis': 1.14.0 - '@wordpress/rich-text': 7.14.0(react@18.3.1) - '@wordpress/warning': 3.13.0 - change-case: 4.1.2 - clsx: 2.1.1 - colord: 2.9.3 - date-fns: 3.6.0 - deepmerge: 4.3.1 - fast-deep-equal: 3.1.3 - framer-motion: 11.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - gradient-parser: 0.1.5 - highlight-words-core: 1.2.3 - is-plain-object: 5.0.0 - memize: 2.1.0 - path-to-regexp: 6.3.0 - re-resizable: 6.10.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-colorful: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-dom: 18.3.1(react@18.3.1) - remove-accents: 0.5.0 - uuid: 9.0.1 - transitivePeerDependencies: - - '@emotion/is-prop-valid' - - '@types/react' - - supports-color - - '@wordpress/components@29.0.0(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@ariakit/react': 0.4.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@babel/runtime': 7.25.7 - '@emotion/cache': 11.14.0 - '@emotion/css': 11.13.5 - '@emotion/react': 11.14.0(@types/react@18.3.13)(react@18.3.1) - '@emotion/serialize': 1.3.3 - '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.13)(react@18.3.1))(@types/react@18.3.13)(react@18.3.1) + '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1) '@emotion/utils': 1.4.2 '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/gradient-parser': 0.1.3 @@ -20081,13 +19778,13 @@ snapshots: react: 18.3.1 use-memo-one: 1.1.3(react@18.3.1) - '@wordpress/core-commands@1.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/core-commands@1.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.7 - '@wordpress/block-editor': 14.9.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/commands': 1.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/block-editor': 14.9.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/commands': 1.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': 7.14.0(react@18.3.1) - '@wordpress/core-data': 7.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/core-data': 7.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) '@wordpress/element': 6.14.0 '@wordpress/html-entities': 4.14.0 @@ -20133,11 +19830,11 @@ snapshots: - supports-color - utf-8-validate - '@wordpress/core-data@7.14.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/core-data@7.14.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.7 '@wordpress/api-fetch': 7.14.0 - '@wordpress/block-editor': 14.9.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/block-editor': 14.9.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/blocks': 14.3.0(react@18.3.1) '@wordpress/compose': 7.14.0(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) @@ -20167,11 +19864,11 @@ snapshots: - supports-color - utf-8-validate - '@wordpress/core-data@7.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/core-data@7.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.7 '@wordpress/api-fetch': 7.14.0 - '@wordpress/block-editor': 14.9.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/block-editor': 14.9.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/blocks': 14.3.0(react@18.3.1) '@wordpress/compose': 7.14.0(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) @@ -20273,11 +19970,11 @@ snapshots: rememo: 4.0.2 use-memo-one: 1.1.3(react@18.3.1) - '@wordpress/dataviews@4.10.0(patch_hash=of6mtpeubmoicukrgy5ohupf6a)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/dataviews@4.10.0(patch_hash=of6mtpeubmoicukrgy5ohupf6a)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@ariakit/react': 0.4.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@babel/runtime': 7.25.7 - '@wordpress/components': 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': 7.14.0(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) '@wordpress/element': 6.14.0 @@ -20343,23 +20040,23 @@ snapshots: '@babel/runtime': 7.25.7 '@wordpress/deprecated': 4.13.0 - '@wordpress/edit-post@8.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/edit-post@8.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.7 '@wordpress/a11y': 4.13.0 '@wordpress/api-fetch': 7.14.0 - '@wordpress/block-editor': 14.9.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/block-library': 9.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/block-editor': 14.9.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/block-library': 9.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/blocks': 14.3.0(react@18.3.1) - '@wordpress/commands': 1.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/components': 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/commands': 1.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': 7.14.0(react@18.3.1) - '@wordpress/core-commands': 1.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/core-data': 7.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/core-commands': 1.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/core-data': 7.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) '@wordpress/deprecated': 4.13.0 '@wordpress/dom': 4.13.0 - '@wordpress/editor': 14.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/editor': 14.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/element': 6.14.0 '@wordpress/hooks': 4.14.0 '@wordpress/html-entities': 4.14.0 @@ -20368,13 +20065,13 @@ snapshots: '@wordpress/keyboard-shortcuts': 5.13.0(react@18.3.1) '@wordpress/keycodes': 4.14.0 '@wordpress/notices': 5.14.0(react@18.3.1) - '@wordpress/plugins': 7.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/preferences': 4.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/plugins': 7.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/preferences': 4.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/private-apis': 1.14.0 '@wordpress/url': 4.14.0 '@wordpress/viewport': 6.14.0(react@18.3.1) '@wordpress/warning': 3.13.0 - '@wordpress/widgets': 4.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/widgets': 4.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) clsx: 2.1.1 memize: 2.1.0 react: 18.3.1 @@ -20431,41 +20128,41 @@ snapshots: - supports-color - utf-8-validate - '@wordpress/editor@14.14.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/editor@14.14.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.7 '@wordpress/a11y': 4.13.0 '@wordpress/api-fetch': 7.14.0 '@wordpress/blob': 4.14.0 - '@wordpress/block-editor': 14.9.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/block-editor': 14.9.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/blocks': 14.3.0(react@18.3.1) - '@wordpress/commands': 1.13.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/components': 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/commands': 1.13.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': 7.14.0(react@18.3.1) - '@wordpress/core-data': 7.14.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/core-data': 7.14.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) - '@wordpress/dataviews': 4.10.0(patch_hash=of6mtpeubmoicukrgy5ohupf6a)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/dataviews': 4.10.0(patch_hash=of6mtpeubmoicukrgy5ohupf6a)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/date': 5.14.0 '@wordpress/deprecated': 4.13.0 '@wordpress/dom': 4.13.0 '@wordpress/element': 6.14.0 - '@wordpress/fields': 0.5.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/fields': 0.5.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/hooks': 4.14.0 '@wordpress/html-entities': 4.14.0 '@wordpress/i18n': 5.14.0 '@wordpress/icons': 10.14.0(react@18.3.1) - '@wordpress/interface': 8.2.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/interface': 8.2.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/keyboard-shortcuts': 5.13.0(react@18.3.1) '@wordpress/keycodes': 4.14.0 '@wordpress/media-utils': 5.14.0 '@wordpress/notices': 5.14.0(react@18.3.1) - '@wordpress/patterns': 2.13.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/plugins': 7.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/preferences': 4.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/patterns': 2.13.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/plugins': 7.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/preferences': 4.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/private-apis': 1.14.0 - '@wordpress/reusable-blocks': 5.13.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/reusable-blocks': 5.13.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/rich-text': 7.14.0(react@18.3.1) - '@wordpress/server-side-render': 5.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/server-side-render': 5.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/url': 4.14.0 '@wordpress/warning': 3.13.0 '@wordpress/wordcount': 4.14.0 @@ -20490,41 +20187,41 @@ snapshots: - supports-color - utf-8-validate - '@wordpress/editor@14.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/editor@14.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.7 '@wordpress/a11y': 4.13.0 '@wordpress/api-fetch': 7.14.0 '@wordpress/blob': 4.14.0 - '@wordpress/block-editor': 14.9.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/block-editor': 14.9.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/blocks': 14.3.0(react@18.3.1) - '@wordpress/commands': 1.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/components': 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/commands': 1.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': 7.14.0(react@18.3.1) - '@wordpress/core-data': 7.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/core-data': 7.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) - '@wordpress/dataviews': 4.10.0(patch_hash=of6mtpeubmoicukrgy5ohupf6a)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/dataviews': 4.10.0(patch_hash=of6mtpeubmoicukrgy5ohupf6a)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/date': 5.14.0 '@wordpress/deprecated': 4.13.0 '@wordpress/dom': 4.13.0 '@wordpress/element': 6.14.0 - '@wordpress/fields': 0.5.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/fields': 0.5.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/hooks': 4.14.0 '@wordpress/html-entities': 4.14.0 '@wordpress/i18n': 5.14.0 '@wordpress/icons': 10.14.0(react@18.3.1) - '@wordpress/interface': 8.2.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/interface': 8.2.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/keyboard-shortcuts': 5.13.0(react@18.3.1) '@wordpress/keycodes': 4.14.0 '@wordpress/media-utils': 5.14.0 '@wordpress/notices': 5.14.0(react@18.3.1) - '@wordpress/patterns': 2.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/plugins': 7.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/preferences': 4.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/patterns': 2.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/plugins': 7.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/preferences': 4.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/private-apis': 1.14.0 - '@wordpress/reusable-blocks': 5.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/reusable-blocks': 5.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/rich-text': 7.14.0(react@18.3.1) - '@wordpress/server-side-render': 5.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/server-side-render': 5.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/url': 4.14.0 '@wordpress/warning': 3.13.0 '@wordpress/wordcount': 4.14.0 @@ -20611,8 +20308,8 @@ snapshots: '@wordpress/element@6.14.0': dependencies: '@babel/runtime': 7.25.7 - '@types/react': 18.3.13 - '@types/react-dom': 18.3.1 + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) '@wordpress/escape-html': 3.14.0 change-case: 4.1.2 is-plain-object: 5.0.0 @@ -20648,17 +20345,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@wordpress/fields@0.5.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/fields@0.5.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.7 '@wordpress/api-fetch': 7.14.0 '@wordpress/blob': 4.14.0 '@wordpress/blocks': 14.3.0(react@18.3.1) - '@wordpress/components': 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': 7.14.0(react@18.3.1) - '@wordpress/core-data': 7.14.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/core-data': 7.14.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) - '@wordpress/dataviews': 4.10.0(patch_hash=of6mtpeubmoicukrgy5ohupf6a)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/dataviews': 4.10.0(patch_hash=of6mtpeubmoicukrgy5ohupf6a)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/date': 5.14.0 '@wordpress/element': 6.14.0 '@wordpress/hooks': 4.14.0 @@ -20667,7 +20364,7 @@ snapshots: '@wordpress/icons': 10.14.0(react@18.3.1) '@wordpress/media-utils': 5.14.0 '@wordpress/notices': 5.14.0(react@18.3.1) - '@wordpress/patterns': 2.13.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/patterns': 2.13.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/primitives': 4.14.0(react@18.3.1) '@wordpress/private-apis': 1.14.0 '@wordpress/router': 1.14.0(react@18.3.1) @@ -20687,17 +20384,17 @@ snapshots: - supports-color - utf-8-validate - '@wordpress/fields@0.5.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/fields@0.5.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.7 '@wordpress/api-fetch': 7.14.0 '@wordpress/blob': 4.14.0 '@wordpress/blocks': 14.3.0(react@18.3.1) - '@wordpress/components': 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': 7.14.0(react@18.3.1) - '@wordpress/core-data': 7.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/core-data': 7.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) - '@wordpress/dataviews': 4.10.0(patch_hash=of6mtpeubmoicukrgy5ohupf6a)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/dataviews': 4.10.0(patch_hash=of6mtpeubmoicukrgy5ohupf6a)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/date': 5.14.0 '@wordpress/element': 6.14.0 '@wordpress/hooks': 4.14.0 @@ -20706,7 +20403,7 @@ snapshots: '@wordpress/icons': 10.14.0(react@18.3.1) '@wordpress/media-utils': 5.14.0 '@wordpress/notices': 5.14.0(react@18.3.1) - '@wordpress/patterns': 2.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/patterns': 2.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/primitives': 4.14.0(react@18.3.1) '@wordpress/private-apis': 1.14.0 '@wordpress/router': 1.14.0(react@18.3.1) @@ -20822,19 +20519,19 @@ snapshots: '@preact/signals': 1.3.1(preact@10.25.1) preact: 10.25.1 - '@wordpress/interface@8.2.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/interface@8.2.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.7 '@wordpress/a11y': 4.13.0 - '@wordpress/components': 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': 7.14.0(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) '@wordpress/deprecated': 4.13.0 '@wordpress/element': 6.14.0 '@wordpress/i18n': 5.14.0 '@wordpress/icons': 10.14.0(react@18.3.1) - '@wordpress/plugins': 7.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/preferences': 4.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/plugins': 7.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/preferences': 4.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/viewport': 6.14.0(react@18.3.1) clsx: 2.1.1 react: 18.3.1 @@ -20905,15 +20602,15 @@ snapshots: '@wordpress/data': 10.14.0(react@18.3.1) react: 18.3.1 - '@wordpress/patterns@2.13.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/patterns@2.13.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.7 '@wordpress/a11y': 4.13.0 - '@wordpress/block-editor': 14.9.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/block-editor': 14.9.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/blocks': 14.3.0(react@18.3.1) - '@wordpress/components': 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': 7.14.0(react@18.3.1) - '@wordpress/core-data': 7.14.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/core-data': 7.14.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) '@wordpress/element': 6.14.0 '@wordpress/html-entities': 4.14.0 @@ -20932,15 +20629,15 @@ snapshots: - supports-color - utf-8-validate - '@wordpress/patterns@2.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/patterns@2.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.7 '@wordpress/a11y': 4.13.0 - '@wordpress/block-editor': 14.9.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/block-editor': 14.9.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/blocks': 14.3.0(react@18.3.1) - '@wordpress/components': 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': 7.14.0(react@18.3.1) - '@wordpress/core-data': 7.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/core-data': 7.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) '@wordpress/element': 6.14.0 '@wordpress/html-entities': 4.14.0 @@ -20986,28 +20683,10 @@ snapshots: - supports-color - utf-8-validate - '@wordpress/plugins@7.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.25.7 - '@wordpress/components': 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/compose': 7.14.0(react@18.3.1) - '@wordpress/deprecated': 4.13.0 - '@wordpress/element': 6.14.0 - '@wordpress/hooks': 4.14.0 - '@wordpress/icons': 10.14.0(react@18.3.1) - '@wordpress/is-shallow-equal': 5.13.0 - memize: 2.1.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - transitivePeerDependencies: - - '@emotion/is-prop-valid' - - '@types/react' - - supports-color - - '@wordpress/plugins@7.14.0(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/plugins@7.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.7 - '@wordpress/components': 29.0.0(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': 7.14.0(react@18.3.1) '@wordpress/deprecated': 4.13.0 '@wordpress/element': 6.14.0 @@ -21046,31 +20725,11 @@ snapshots: autoprefixer: 10.4.20(postcss@8.4.47) postcss: 8.4.47 - '@wordpress/preferences@4.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.25.7 - '@wordpress/a11y': 4.13.0 - '@wordpress/components': 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/compose': 7.14.0(react@18.3.1) - '@wordpress/data': 10.14.0(react@18.3.1) - '@wordpress/deprecated': 4.13.0 - '@wordpress/element': 6.14.0 - '@wordpress/i18n': 5.14.0 - '@wordpress/icons': 10.14.0(react@18.3.1) - '@wordpress/private-apis': 1.14.0 - clsx: 2.1.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - transitivePeerDependencies: - - '@emotion/is-prop-valid' - - '@types/react' - - supports-color - - '@wordpress/preferences@4.13.0(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/preferences@4.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.7 '@wordpress/a11y': 4.13.0 - '@wordpress/components': 29.0.0(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': 7.14.0(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) '@wordpress/deprecated': 4.13.0 @@ -21134,13 +20793,13 @@ snapshots: redux: 5.0.1 rungen: 0.3.2 - '@wordpress/reusable-blocks@5.13.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/reusable-blocks@5.13.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.7 - '@wordpress/block-editor': 14.9.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/block-editor': 14.9.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/blocks': 14.3.0(react@18.3.1) - '@wordpress/components': 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/core-data': 7.14.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/core-data': 7.14.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) '@wordpress/element': 6.14.0 '@wordpress/i18n': 5.14.0 @@ -21158,13 +20817,13 @@ snapshots: - supports-color - utf-8-validate - '@wordpress/reusable-blocks@5.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/reusable-blocks@5.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.7 - '@wordpress/block-editor': 14.9.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/block-editor': 14.9.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/blocks': 14.3.0(react@18.3.1) - '@wordpress/components': 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/core-data': 7.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/core-data': 7.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) '@wordpress/element': 6.14.0 '@wordpress/i18n': 5.14.0 @@ -21231,12 +20890,12 @@ snapshots: react: 18.3.1 route-recognizer: 0.3.4 - '@wordpress/server-side-render@5.13.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/server-side-render@5.13.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.7 '@wordpress/api-fetch': 7.14.0 '@wordpress/blocks': 14.3.0(react@18.3.1) - '@wordpress/components': 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': 7.14.0(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) '@wordpress/deprecated': 4.13.0 @@ -21322,15 +20981,15 @@ snapshots: '@wordpress/warning@3.13.0': {} - '@wordpress/widgets@4.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/widgets@4.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.7 '@wordpress/api-fetch': 7.14.0 - '@wordpress/block-editor': 14.9.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/block-editor': 14.9.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/blocks': 14.3.0(react@18.3.1) - '@wordpress/components': 29.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': 7.14.0(react@18.3.1) - '@wordpress/core-data': 7.14.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/core-data': 7.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) '@wordpress/element': 6.14.0 '@wordpress/i18n': 5.14.0 @@ -22173,23 +21832,11 @@ snapshots: clsx@2.1.1: {} - cmdk@1.0.4(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@radix-ui/react-dialog': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - use-sync-external-store: 1.4.0(react@18.3.1) - transitivePeerDependencies: - - '@types/react' - - '@types/react-dom' - - cmdk@1.0.4(@types/react-dom@18.3.1)(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + cmdk@1.0.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@radix-ui/react-dialog': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.13)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dialog': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) use-sync-external-store: 1.4.0(react@18.3.1) @@ -22197,11 +21844,11 @@ snapshots: - '@types/react' - '@types/react-dom' - cmdk@1.0.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + cmdk@1.0.4(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@radix-ui/react-dialog': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dialog': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) use-sync-external-store: 1.4.0(react@18.3.1) @@ -22412,13 +22059,13 @@ snapshots: - supports-color - ts-node - create-jest@29.7.0(@types/node@20.17.9): + create-jest@29.7.0(@types/node@20.17.11): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.17.9) + jest-config: 29.7.0(@types/node@20.17.11) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -23532,7 +23179,7 @@ snapshots: eval@0.1.8: dependencies: - '@types/node': 20.17.9 + '@types/node': 20.17.11 require-like: 0.1.2 event-target-shim@5.0.1: {} @@ -24625,7 +24272,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.9 + '@types/node': 20.17.11 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3 @@ -24664,16 +24311,16 @@ snapshots: - supports-color - ts-node - jest-cli@29.7.0(@types/node@20.17.9): + jest-cli@29.7.0(@types/node@20.17.11): dependencies: '@jest/core': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.17.9) + create-jest: 29.7.0(@types/node@20.17.11) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@20.17.9) + jest-config: 29.7.0(@types/node@20.17.11) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.6.2 @@ -24711,7 +24358,7 @@ snapshots: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@20.17.9): + jest-config@29.7.0(@types/node@20.17.11): dependencies: '@babel/core': 7.26.0 '@jest/test-sequencer': 29.7.0 @@ -24736,7 +24383,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.17.9 + '@types/node': 20.17.11 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -24766,7 +24413,7 @@ snapshots: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 20.17.9 + '@types/node': 20.17.11 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3 @@ -24780,7 +24427,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.9 + '@types/node': 20.17.11 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -24797,7 +24444,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.17.9 + '@types/node': 20.17.11 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -24843,7 +24490,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.17.9 + '@types/node': 20.17.11 jest-util: 29.7.0 jest-playwright-preset@4.0.0(jest-circus@29.7.0)(jest-environment-node@29.7.0)(jest-runner@29.7.0)(jest@29.7.0): @@ -24910,7 +24557,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.9 + '@types/node': 20.17.11 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -24938,7 +24585,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.9 + '@types/node': 20.17.11 chalk: 4.1.2 cjs-module-lexer: 1.4.1 collect-v8-coverage: 1.0.2 @@ -24988,7 +24635,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.17.9 + '@types/node': 20.17.11 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -25018,7 +24665,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.9 + '@types/node': 20.17.11 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -25027,13 +24674,13 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 20.17.9 + '@types/node': 20.17.11 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 20.17.9 + '@types/node': 20.17.11 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -25050,12 +24697,12 @@ snapshots: - supports-color - ts-node - jest@29.7.0(@types/node@20.17.9): + jest@29.7.0(@types/node@20.17.11): dependencies: '@jest/core': 29.7.0 '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@20.17.9) + jest-cli: 29.7.0(@types/node@20.17.11) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -26871,21 +26518,13 @@ snapshots: optionalDependencies: react-dom: 18.3.1(react@18.3.1) - react-remove-scroll-bar@2.3.6(@types/react@18.3.12)(react@18.3.1): + react-remove-scroll-bar@2.3.6(@types/react@18.3.18)(react@18.3.1): dependencies: react: 18.3.1 - react-style-singleton: 2.2.1(@types/react@18.3.12)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.18)(react@18.3.1) tslib: 2.5.0 optionalDependencies: - '@types/react': 18.3.12 - - react-remove-scroll-bar@2.3.6(@types/react@18.3.13)(react@18.3.1): - dependencies: - react: 18.3.1 - react-style-singleton: 2.2.1(@types/react@18.3.13)(react@18.3.1) - tslib: 2.5.0 - optionalDependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 react-remove-scroll-bar@2.3.6(react@18.3.1): dependencies: @@ -26893,27 +26532,16 @@ snapshots: react-style-singleton: 2.2.1(react@18.3.1) tslib: 2.5.0 - react-remove-scroll@2.6.0(@types/react@18.3.12)(react@18.3.1): - dependencies: - react: 18.3.1 - react-remove-scroll-bar: 2.3.6(@types/react@18.3.12)(react@18.3.1) - react-style-singleton: 2.2.1(@types/react@18.3.12)(react@18.3.1) - tslib: 2.5.0 - use-callback-ref: 1.3.2(@types/react@18.3.12)(react@18.3.1) - use-sidecar: 1.1.2(@types/react@18.3.12)(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.12 - - react-remove-scroll@2.6.0(@types/react@18.3.13)(react@18.3.1): + react-remove-scroll@2.6.0(@types/react@18.3.18)(react@18.3.1): dependencies: react: 18.3.1 - react-remove-scroll-bar: 2.3.6(@types/react@18.3.13)(react@18.3.1) - react-style-singleton: 2.2.1(@types/react@18.3.13)(react@18.3.1) + react-remove-scroll-bar: 2.3.6(@types/react@18.3.18)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.18)(react@18.3.1) tslib: 2.5.0 - use-callback-ref: 1.3.2(@types/react@18.3.13)(react@18.3.1) - use-sidecar: 1.1.2(@types/react@18.3.13)(react@18.3.1) + use-callback-ref: 1.3.2(@types/react@18.3.18)(react@18.3.1) + use-sidecar: 1.1.2(@types/react@18.3.18)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 react-remove-scroll@2.6.0(react@18.3.1): dependencies: @@ -27026,23 +26654,14 @@ snapshots: prop-types: 15.8.1 react: 18.3.1 - react-style-singleton@2.2.1(@types/react@18.3.12)(react@18.3.1): - dependencies: - get-nonce: 1.0.1 - invariant: 2.2.4 - react: 18.3.1 - tslib: 2.5.0 - optionalDependencies: - '@types/react': 18.3.12 - - react-style-singleton@2.2.1(@types/react@18.3.13)(react@18.3.1): + react-style-singleton@2.2.1(@types/react@18.3.18)(react@18.3.1): dependencies: get-nonce: 1.0.1 invariant: 2.2.4 react: 18.3.1 tslib: 2.5.0 optionalDependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 react-style-singleton@2.2.1(react@18.3.1): dependencies: @@ -28614,19 +28233,12 @@ snapshots: urlpattern-polyfill@10.0.0: {} - use-callback-ref@1.3.2(@types/react@18.3.12)(react@18.3.1): + use-callback-ref@1.3.2(@types/react@18.3.18)(react@18.3.1): dependencies: react: 18.3.1 tslib: 2.5.0 optionalDependencies: - '@types/react': 18.3.12 - - use-callback-ref@1.3.2(@types/react@18.3.13)(react@18.3.1): - dependencies: - react: 18.3.1 - tslib: 2.5.0 - optionalDependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 use-callback-ref@1.3.2(react@18.3.1): dependencies: @@ -28645,21 +28257,13 @@ snapshots: dependencies: react: 18.3.1 - use-sidecar@1.1.2(@types/react@18.3.12)(react@18.3.1): - dependencies: - detect-node-es: 1.1.0 - react: 18.3.1 - tslib: 2.5.0 - optionalDependencies: - '@types/react': 18.3.12 - - use-sidecar@1.1.2(@types/react@18.3.13)(react@18.3.1): + use-sidecar@1.1.2(@types/react@18.3.18)(react@18.3.1): dependencies: detect-node-es: 1.1.0 react: 18.3.1 tslib: 2.5.0 optionalDependencies: - '@types/react': 18.3.13 + '@types/react': 18.3.18 use-sidecar@1.1.2(react@18.3.1): dependencies: diff --git a/projects/js-packages/ai-client/changelog/renovate-definitelytyped b/projects/js-packages/ai-client/changelog/renovate-definitelytyped new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/ai-client/changelog/renovate-definitelytyped @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/ai-client/package.json b/projects/js-packages/ai-client/package.json index d61e07822eea0..62a760cafa27f 100644 --- a/projects/js-packages/ai-client/package.json +++ b/projects/js-packages/ai-client/package.json @@ -49,8 +49,8 @@ "@automattic/jetpack-connection": "workspace:*", "@automattic/jetpack-shared-extension-utils": "workspace:*", "@microsoft/fetch-event-source": "2.0.1", - "@types/react": "18.3.12", - "@types/wordpress__block-editor": "11.5.15", + "@types/react": "18.3.18", + "@types/wordpress__block-editor": "11.5.16", "@wordpress/api-fetch": "7.14.0", "@wordpress/base-styles": "5.14.0", "@wordpress/blob": "4.14.0", diff --git a/projects/js-packages/charts/changelog/renovate-definitelytyped b/projects/js-packages/charts/changelog/renovate-definitelytyped new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/charts/changelog/renovate-definitelytyped @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/charts/package.json b/projects/js-packages/charts/package.json index db0896175eb4e..70e3424c11d47 100644 --- a/projects/js-packages/charts/package.json +++ b/projects/js-packages/charts/package.json @@ -41,8 +41,8 @@ "devDependencies": { "@storybook/blocks": "8.4.6", "@storybook/react": "8.4.6", - "@types/react": "18.3.13", - "@types/react-dom": "18.3.1", + "@types/react": "18.3.18", + "@types/react-dom": "18.3.5", "esbuild": "0.24.2", "esbuild-sass-plugin": "3.3.1", "jest": "29.7.0", diff --git a/projects/js-packages/components/changelog/renovate-definitelytyped b/projects/js-packages/components/changelog/renovate-definitelytyped new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/components/changelog/renovate-definitelytyped @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/components/package.json b/projects/js-packages/components/package.json index 9d6458f24ba29..920f76613c76e 100644 --- a/projects/js-packages/components/package.json +++ b/projects/js-packages/components/package.json @@ -49,8 +49,8 @@ "@testing-library/user-event": "14.5.2", "@types/jest": "29.5.12", "@types/qrcode.react": "1.0.5", - "@types/react": "18.3.12", - "@types/react-dom": "18.3.1", + "@types/react": "18.3.18", + "@types/react-dom": "18.3.5", "@types/react-slider": "1.3.6", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", diff --git a/projects/js-packages/connection/changelog/renovate-definitelytyped b/projects/js-packages/connection/changelog/renovate-definitelytyped new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/connection/changelog/renovate-definitelytyped @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/connection/package.json b/projects/js-packages/connection/package.json index 180c61fdce727..03ef6b95d6a64 100644 --- a/projects/js-packages/connection/package.json +++ b/projects/js-packages/connection/package.json @@ -38,7 +38,7 @@ "@testing-library/dom": "10.4.0", "@testing-library/react": "16.0.1", "@testing-library/user-event": "14.5.2", - "@types/react": "18.3.12", + "@types/react": "18.3.18", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "react": "18.3.1", diff --git a/projects/js-packages/critical-css-gen/changelog/renovate-definitelytyped#2 b/projects/js-packages/critical-css-gen/changelog/renovate-definitelytyped#2 new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/critical-css-gen/changelog/renovate-definitelytyped#2 @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/critical-css-gen/package.json b/projects/js-packages/critical-css-gen/package.json index 861323500e52f..27d706cdb4340 100644 --- a/projects/js-packages/critical-css-gen/package.json +++ b/projects/js-packages/critical-css-gen/package.json @@ -29,7 +29,7 @@ "@babel/preset-env": "7.26.0", "@babel/preset-typescript": "7.26.0", "@types/clean-css": "4.2.11", - "@types/css-tree": "2.3.9", + "@types/css-tree": "2.3.10", "@types/node": "^20.4.2", "express": "4.21.2", "jest": "29.7.0", diff --git a/projects/js-packages/publicize-components/changelog/renovate-definitelytyped b/projects/js-packages/publicize-components/changelog/renovate-definitelytyped new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/publicize-components/changelog/renovate-definitelytyped @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/publicize-components/package.json b/projects/js-packages/publicize-components/package.json index 559f0711beede..e3004dac61d0a 100644 --- a/projects/js-packages/publicize-components/package.json +++ b/projects/js-packages/publicize-components/package.json @@ -62,7 +62,7 @@ "@testing-library/react": "16.0.1", "@testing-library/user-event": "14.5.2", "@types/jest": "29.5.12", - "@types/react": "18.3.12", + "@types/react": "18.3.18", "@wordpress/babel-plugin-import-jsx-pragma": "5.14.0", "babel-jest": "29.4.3", "jest": "29.7.0", diff --git a/projects/js-packages/scan/changelog/renovate-definitelytyped b/projects/js-packages/scan/changelog/renovate-definitelytyped new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/scan/changelog/renovate-definitelytyped @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/scan/package.json b/projects/js-packages/scan/package.json index d0e91a3b7e36a..b25d22b964a2c 100644 --- a/projects/js-packages/scan/package.json +++ b/projects/js-packages/scan/package.json @@ -30,7 +30,7 @@ "@testing-library/dom": "10.4.0", "@testing-library/react": "16.0.1", "@types/jest": "29.5.12", - "@types/react": "18.3.12", + "@types/react": "18.3.18", "jest": "^29.7.0", "jest-environment-jsdom": "29.7.0", "storybook": "8.3.5", diff --git a/projects/js-packages/social-logos/changelog/renovate-definitelytyped b/projects/js-packages/social-logos/changelog/renovate-definitelytyped new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/social-logos/changelog/renovate-definitelytyped @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/social-logos/package.json b/projects/js-packages/social-logos/package.json index d4968eaaa663e..52c1349716bcc 100644 --- a/projects/js-packages/social-logos/package.json +++ b/projects/js-packages/social-logos/package.json @@ -34,8 +34,8 @@ "react-dom": "18.3.1" }, "devDependencies": { - "@types/react": "18.3.12", - "@types/react-dom": "18.3.1", + "@types/react": "18.3.18", + "@types/react-dom": "18.3.5", "glob": "10.4.1", "svg2ttf": "^6.0.3", "svgicons2svgfont": "^14.0.0", diff --git a/projects/packages/backup/changelog/renovate-definitelytyped b/projects/packages/backup/changelog/renovate-definitelytyped new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/backup/changelog/renovate-definitelytyped @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/backup/package.json b/projects/packages/backup/package.json index 4984ca8e875fc..e888ee09c7871 100644 --- a/projects/packages/backup/package.json +++ b/projects/packages/backup/package.json @@ -53,7 +53,7 @@ "@testing-library/dom": "10.4.0", "@testing-library/react": "16.0.1", "@testing-library/user-event": "14.5.2", - "@types/react": "18.3.12", + "@types/react": "18.3.18", "@wordpress/browserslist-config": "6.14.0", "concurrently": "7.6.0", "jest": "29.7.0", diff --git a/projects/packages/jetpack-mu-wpcom/changelog/renovate-definitelytyped b/projects/packages/jetpack-mu-wpcom/changelog/renovate-definitelytyped new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/jetpack-mu-wpcom/changelog/renovate-definitelytyped @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/jetpack-mu-wpcom/package.json b/projects/packages/jetpack-mu-wpcom/package.json index 93cc3b73a6cdb..0edf6d986809b 100644 --- a/projects/packages/jetpack-mu-wpcom/package.json +++ b/projects/packages/jetpack-mu-wpcom/package.json @@ -36,7 +36,7 @@ "@playwright/test": "1.48.2", "@types/node": "^20.4.2", "@types/react": "^18.2.28", - "@types/react-dom": "18.3.1", + "@types/react-dom": "18.3.5", "babel-plugin-transform-rename-properties": "0.1.0", "pkg-dir": "^5.0.0", "sass": "1.64.1", diff --git a/projects/packages/my-jetpack/changelog/renovate-definitelytyped b/projects/packages/my-jetpack/changelog/renovate-definitelytyped new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/my-jetpack/changelog/renovate-definitelytyped @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/my-jetpack/package.json b/projects/packages/my-jetpack/package.json index 306cd6eed7c0a..ca0e358443927 100644 --- a/projects/packages/my-jetpack/package.json +++ b/projects/packages/my-jetpack/package.json @@ -66,7 +66,7 @@ "@testing-library/react": "16.0.1", "@testing-library/user-event": "14.5.2", "@types/jest": "29.5.12", - "@types/react": "18.3.12", + "@types/react": "18.3.18", "concurrently": "7.6.0", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", diff --git a/projects/packages/videopress/changelog/renovate-definitelytyped b/projects/packages/videopress/changelog/renovate-definitelytyped new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/videopress/changelog/renovate-definitelytyped @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/videopress/package.json b/projects/packages/videopress/package.json index eee7f5d29d8cf..adeaa7f41a4a1 100644 --- a/projects/packages/videopress/package.json +++ b/projects/packages/videopress/package.json @@ -38,8 +38,8 @@ "@testing-library/dom": "10.4.0", "@testing-library/react": "16.0.1", "@types/jest": "29.5.12", - "@types/react": "18.3.12", - "@types/react-dom": "18.3.1", + "@types/react": "18.3.18", + "@types/react-dom": "18.3.5", "@wordpress/browserslist-config": "6.14.0", "autoprefixer": "10.4.20", "concurrently": "7.6.0", diff --git a/projects/plugins/boost/changelog/renovate-definitelytyped b/projects/plugins/boost/changelog/renovate-definitelytyped new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/boost/changelog/renovate-definitelytyped @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/boost/package.json b/projects/plugins/boost/package.json index 8fb45bc7ef16a..e88078e2ed325 100644 --- a/projects/plugins/boost/package.json +++ b/projects/plugins/boost/package.json @@ -11,7 +11,7 @@ "@automattic/jetpack-react-data-sync-client": "workspace:*", "@react-spring/core": "9.7.5", "@react-spring/web": "9.7.3", - "@types/react": "18.3.12", + "@types/react": "18.3.18", "@types/react-router-dom": "5.3.3", "@wordpress/components": "29.0.0", "@wordpress/element": "6.14.0", diff --git a/projects/plugins/crm/changelog/renovate-definitelytyped#3 b/projects/plugins/crm/changelog/renovate-definitelytyped#3 new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/crm/changelog/renovate-definitelytyped#3 @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/crm/package.json b/projects/plugins/crm/package.json index 858ecec82e0f0..f02be59bf90ec 100644 --- a/projects/plugins/crm/package.json +++ b/projects/plugins/crm/package.json @@ -44,8 +44,8 @@ "@testing-library/dom": "10.4.0", "@testing-library/react": "16.0.1", "@types/jest": "29.5.12", - "@types/react": "18.3.12", - "@types/react-dom": "18.3.1", + "@types/react": "18.3.18", + "@types/react-dom": "18.3.5", "babel-jest": "29.3.1", "css-loader": "6.5.1", "glob": "10.4.1", diff --git a/projects/plugins/jetpack/changelog/renovate-definitelytyped b/projects/plugins/jetpack/changelog/renovate-definitelytyped new file mode 100644 index 0000000000000..1eaea6a769e84 --- /dev/null +++ b/projects/plugins/jetpack/changelog/renovate-definitelytyped @@ -0,0 +1,4 @@ +Significance: patch +Type: other + +Updated package dependencies. diff --git a/projects/plugins/jetpack/package.json b/projects/plugins/jetpack/package.json index 1a1afa8f44623..7649c32bd0143 100644 --- a/projects/plugins/jetpack/package.json +++ b/projects/plugins/jetpack/package.json @@ -134,8 +134,8 @@ "@testing-library/react": "16.0.1", "@testing-library/user-event": "14.5.2", "@types/jest": "29.5.12", - "@types/react": "18.3.12", - "@types/wordpress__block-editor": "11.5.15", + "@types/react": "18.3.18", + "@types/wordpress__block-editor": "11.5.16", "@wordpress/api-fetch": "7.14.0", "@wordpress/babel-plugin-import-jsx-pragma": "5.14.0", "@wordpress/blob": "4.14.0", diff --git a/projects/plugins/protect/changelog/renovate-definitelytyped#2 b/projects/plugins/protect/changelog/renovate-definitelytyped#2 new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/protect/changelog/renovate-definitelytyped#2 @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/protect/package.json b/projects/plugins/protect/package.json index e408077e068bf..98985429c9097 100644 --- a/projects/plugins/protect/package.json +++ b/projects/plugins/protect/package.json @@ -53,7 +53,7 @@ "@babel/core": "7.26.0", "@babel/preset-env": "7.26.0", "@babel/runtime": "7.26.0", - "@types/react": "18.3.12", + "@types/react": "18.3.18", "@wordpress/browserslist-config": "6.14.0", "concurrently": "7.6.0", "sass": "1.64.1", diff --git a/projects/plugins/social/changelog/renovate-definitelytyped#2 b/projects/plugins/social/changelog/renovate-definitelytyped#2 new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/social/changelog/renovate-definitelytyped#2 @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/social/package.json b/projects/plugins/social/package.json index 39344be90877a..3c7107c889539 100644 --- a/projects/plugins/social/package.json +++ b/projects/plugins/social/package.json @@ -54,8 +54,8 @@ "@csstools/postcss-global-data": "2.1.1", "@testing-library/dom": "10.4.0", "@testing-library/react": "16.0.1", - "@types/react": "18.3.12", - "@types/react-dom": "18.3.1", + "@types/react": "18.3.18", + "@types/react-dom": "18.3.5", "@wordpress/browserslist-config": "6.14.0", "autoprefixer": "10.4.20", "babel-jest": "29.4.3", From e6ee451b5254458b4e1a8800980d212bec56cf39 Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Wed, 1 Jan 2025 04:11:47 +0100 Subject: [PATCH 08/98] Update dependency chokidar to v4 (#40795) Co-authored-by: Renovate Bot --- pnpm-lock.yaml | 16 ++++++++-------- tools/cli/package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9c3e5cf1c3bba..73df04f41af90 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4677,8 +4677,8 @@ importers: specifier: 5.4.1 version: 5.4.1 chokidar: - specifier: 3.5.3 - version: 3.5.3 + specifier: 4.0.3 + version: 4.0.3 configstore: specifier: 5.0.1 version: 5.0.1 @@ -9246,8 +9246,8 @@ packages: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} - chokidar@4.0.1: - resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} chrome-trace-event@1.0.4: @@ -21758,7 +21758,7 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - chokidar@4.0.1: + chokidar@4.0.3: dependencies: readdirp: 4.0.2 @@ -27163,7 +27163,7 @@ snapshots: sass@1.83.0: dependencies: - chokidar: 4.0.1 + chokidar: 4.0.3 immutable: 5.0.3 source-map-js: 1.2.0 optionalDependencies: @@ -27313,7 +27313,7 @@ snapshots: size-limit@11.1.6(@size-limit/preset-app@11.1.6): dependencies: bytes-iec: 3.1.1 - chokidar: 4.0.1 + chokidar: 4.0.3 jiti: 2.4.1 lilconfig: 3.1.3 nanospinner: 1.2.2 @@ -27975,7 +27975,7 @@ snapshots: dependencies: bundle-require: 5.1.0(esbuild@0.24.2) cac: 6.7.14 - chokidar: 4.0.1 + chokidar: 4.0.3 consola: 3.3.3 debug: 4.4.0 esbuild: 0.24.2 diff --git a/tools/cli/package.json b/tools/cli/package.json index fbd9e897debec..c72525d21b419 100644 --- a/tools/cli/package.json +++ b/tools/cli/package.json @@ -24,7 +24,7 @@ "@octokit/auth-token": "5.1.1", "@octokit/rest": "20.1.1", "chalk": "5.4.1", - "chokidar": "3.5.3", + "chokidar": "4.0.3", "configstore": "5.0.1", "enquirer": "2.4.1", "envfile": "6.17.0", From 5994b88078dfbd575b043b599f0a51a081e009e5 Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Wed, 1 Jan 2025 04:27:25 +0100 Subject: [PATCH 09/98] Update dependency svgicons2svgfont to v15 (#40796) Co-authored-by: Renovate Bot --- pnpm-lock.yaml | 11 +++++------ .../changelog/renovate-svgicons2svgfont-15.x | 4 ++++ projects/js-packages/social-logos/package.json | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) create mode 100644 projects/js-packages/social-logos/changelog/renovate-svgicons2svgfont-15.x diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 73df04f41af90..a835154ed8b83 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1421,8 +1421,8 @@ importers: specifier: ^6.0.3 version: 6.0.3 svgicons2svgfont: - specifier: ^14.0.0 - version: 14.0.2 + specifier: ^15.0.0 + version: 15.0.0 svgo: specifier: ^3.3.2 version: 3.3.2 @@ -14296,8 +14296,8 @@ packages: resolution: {integrity: sha512-CgqMyZrbOPpc+WqH7aga4JWkDPso23EgypLsbQ6gN3uoPWwwiLjXvzgrwGADBExvCRJrWFzAeK1bSoSpE7ixSQ==} hasBin: true - svgicons2svgfont@14.0.2: - resolution: {integrity: sha512-NwbAbOMZvLN/3ycAnaDA8RRbovgtjoVqjW6bnGVaNHTG3dcnNLwRXGD/e11V37Tv48SlAjBTEWCNJRf+qdS1nA==} + svgicons2svgfont@15.0.0: + resolution: {integrity: sha512-X5iL08aZJRKwYAGcl6ykQg0T6ce8yGpLdccqMXp6mreObpSdjlME9dRKPFIvFWX9/KTvPFAuYnX1gCaqjw7QUA==} engines: {node: '>=20.11.1'} hasBin: true @@ -27735,13 +27735,12 @@ snapshots: microbuffer: 1.0.0 svgpath: 2.6.0 - svgicons2svgfont@14.0.2: + svgicons2svgfont@15.0.0: dependencies: '@types/sax': 1.2.7 commander: 12.1.0 debug: 4.4.0 glob: 11.0.0 - punycode: 2.3.1 sax: 1.4.1 svg-pathdata: 7.1.0 transformation-matrix-js: 2.7.6 diff --git a/projects/js-packages/social-logos/changelog/renovate-svgicons2svgfont-15.x b/projects/js-packages/social-logos/changelog/renovate-svgicons2svgfont-15.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/social-logos/changelog/renovate-svgicons2svgfont-15.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/social-logos/package.json b/projects/js-packages/social-logos/package.json index 52c1349716bcc..dd0b84463a15a 100644 --- a/projects/js-packages/social-logos/package.json +++ b/projects/js-packages/social-logos/package.json @@ -38,7 +38,7 @@ "@types/react-dom": "18.3.5", "glob": "10.4.1", "svg2ttf": "^6.0.3", - "svgicons2svgfont": "^14.0.0", + "svgicons2svgfont": "^15.0.0", "svgo": "^3.3.2", "svgstore": "^3.0.1", "typescript": "5.0.4", From c9e392136f1e8c13dd6f573cbcbbaa028b03e390 Mon Sep 17 00:00:00 2001 From: Ian Ramos <5714212+IanRamosC@users.noreply.github.com> Date: Wed, 1 Jan 2025 12:47:27 -0300 Subject: [PATCH 10/98] My Jetpack: add feature as possible recommendations (#40639) * My Jetpack: add feature as possible module recommendation * Add config for feature modules * Refactor module product class * Add basic structure for feature recommendations card * Add actions for each status * changelog * Add return type for activate_plugin method * Cover free offerings in recommendations cards * Fix types * Refactor getPrimaryAction --- .../evaluation-recommendations/index.tsx | 3 +- .../product-card/pricing-component.tsx | 15 +++-- .../product-card/recommendation-actions.tsx | 21 ++++-- .../product-card/use-pricing-data.ts | 66 ++++++++++++++++++- .../components/product-cards-section/all.ts | 7 ++ .../product-cards-section/index.tsx | 12 +++- .../product-cards-section/newsletter-card.tsx | 20 ++++++ .../related-posts-card.tsx | 20 ++++++ .../site-accelerator-card.tsx | 20 ++++++ .../my-jetpack/_inc/data/constants.ts | 10 ++- .../add-feature-recommendations-cards | 4 ++ projects/packages/my-jetpack/global.d.ts | 12 ++-- .../src/products/class-module-product.php | 7 -- .../src/products/class-newsletter.php | 2 +- .../my-jetpack/src/products/class-product.php | 8 +++ .../src/products/class-related-posts.php | 2 +- .../src/products/class-site-accelerator.php | 2 +- 17 files changed, 199 insertions(+), 32 deletions(-) create mode 100644 projects/packages/my-jetpack/_inc/components/product-cards-section/newsletter-card.tsx create mode 100644 projects/packages/my-jetpack/_inc/components/product-cards-section/related-posts-card.tsx create mode 100644 projects/packages/my-jetpack/_inc/components/product-cards-section/site-accelerator-card.tsx create mode 100644 projects/packages/my-jetpack/changelog/add-feature-recommendations-cards diff --git a/projects/packages/my-jetpack/_inc/components/evaluation-recommendations/index.tsx b/projects/packages/my-jetpack/_inc/components/evaluation-recommendations/index.tsx index 9716c4c9df675..0bb115f658e9e 100644 --- a/projects/packages/my-jetpack/_inc/components/evaluation-recommendations/index.tsx +++ b/projects/packages/my-jetpack/_inc/components/evaluation-recommendations/index.tsx @@ -131,7 +131,8 @@ const EvaluationRecommendations: FC = () => { fluid > { recommendedModules.map( module => { - const Card = JetpackModuleToProductCard[ module ]; + const moduleName = module.replace( 'feature_', '' ); + const Card = JetpackModuleToProductCard[ moduleName ]; return ( Card && ( diff --git a/projects/packages/my-jetpack/_inc/components/product-card/pricing-component.tsx b/projects/packages/my-jetpack/_inc/components/product-card/pricing-component.tsx index e6af2ff237f4f..4c46c83f7ac89 100644 --- a/projects/packages/my-jetpack/_inc/components/product-card/pricing-component.tsx +++ b/projects/packages/my-jetpack/_inc/components/product-card/pricing-component.tsx @@ -5,16 +5,23 @@ import styles from './style.module.scss'; import usePricingData from './use-pricing-data'; const PriceComponent = ( { slug }: { slug: string } ) => { - const { discountPrice, fullPrice, currencyCode } = usePricingData( slug ); + const { discountPrice, fullPrice, currencyCode, isFeature, hasFreeOffering } = + usePricingData( slug ); + const isFreeFeature = isFeature && hasFreeOffering && ! fullPrice; return (
{ discountPrice && ( { formatCurrency( discountPrice, currencyCode ) } ) } - - { formatCurrency( fullPrice, currencyCode ) } + + { ! isFreeFeature && formatCurrency( fullPrice, currencyCode ) } + { isFreeFeature && __( 'Free', 'jetpack-my-jetpack' ) } - { __( '/month, billed yearly', 'jetpack-my-jetpack' ) } + { ! isFreeFeature && ( + + { __( '/month, billed yearly', 'jetpack-my-jetpack' ) } + + ) }
); }; diff --git a/projects/packages/my-jetpack/_inc/components/product-card/recommendation-actions.tsx b/projects/packages/my-jetpack/_inc/components/product-card/recommendation-actions.tsx index c0d84ace2116b..e01ebd9ba9b8c 100644 --- a/projects/packages/my-jetpack/_inc/components/product-card/recommendation-actions.tsx +++ b/projects/packages/my-jetpack/_inc/components/product-card/recommendation-actions.tsx @@ -4,19 +4,26 @@ import styles from './style.module.scss'; import usePricingData from './use-pricing-data'; const RecommendationActions = ( { slug }: { slug: string } ) => { - const { secondaryAction, purchaseAction, isActivating } = usePricingData( slug ); + const { secondaryAction, primaryAction, isFeature, isActivating, isInstalling } = + usePricingData( slug ); return (
- { purchaseAction && ( - + ) } + { secondaryAction && ( + ) } -
); diff --git a/projects/packages/my-jetpack/_inc/components/product-card/use-pricing-data.ts b/projects/packages/my-jetpack/_inc/components/product-card/use-pricing-data.ts index 06e6beb1c01e9..1105c8ece68d2 100644 --- a/projects/packages/my-jetpack/_inc/components/product-card/use-pricing-data.ts +++ b/projects/packages/my-jetpack/_inc/components/product-card/use-pricing-data.ts @@ -3,6 +3,7 @@ import { __ } from '@wordpress/i18n'; import { useCallback } from 'react'; import { PRODUCT_STATUSES } from '../../constants'; import useActivate from '../../data/products/use-activate'; +import useInstallStandalonePlugin from '../../data/products/use-install-standalone-plugin'; import useProduct from '../../data/products/use-product'; import { ProductCamelCase } from '../../data/types'; import { getMyJetpackWindowInitialState } from '../../data/utils/get-my-jetpack-window-state'; @@ -52,7 +53,38 @@ const parsePricingData = ( pricingForUi: ProductCamelCase[ 'pricingForUi' ] ) => }; }; -const getPurchaseAction = ( detail: ProductCamelCase, onCheckout: () => void ) => { +// type for onCheckout and onActivate +type Actions = { + onCheckout: () => void; + onActivate: () => void; + onInstall: () => void; + onManage: () => void; +}; + +const getFeaturePrimaryAction = ( + detail: ProductCamelCase, + { onActivate, onInstall, onManage }: Omit< Actions, 'onCheckout' > +) => { + switch ( detail.status ) { + case PRODUCT_STATUSES.MODULE_DISABLED: + return { label: __( 'Activate', 'jetpack-my-jetpack' ), onClick: onActivate }; + case PRODUCT_STATUSES.ABSENT: + return { label: __( 'Install', 'jetpack-my-jetpack' ), onClick: onInstall }; + case PRODUCT_STATUSES.USER_CONNECTION_ERROR: + return { label: __( 'Connect', 'jetpack-my-jetpack' ), href: '#/connection' }; + default: + return { + label: __( 'Manage', 'jetpack-my-jetpack' ), + href: detail.manageUrl, + onClick: onManage, + }; + } +}; + +const getPrimaryAction = ( + detail: ProductCamelCase, + { onCheckout, onActivate, onInstall, onManage }: Actions +) => { const isUpgradable = detail.status === PRODUCT_STATUSES.ACTIVE && ( detail.isUpgradableByBundle.length || detail.isUpgradable ); @@ -66,10 +98,18 @@ const getPurchaseAction = ( detail: ProductCamelCase, onCheckout: () => void ) = return null; } + if ( detail.isFeature ) { + return getFeaturePrimaryAction( detail, { onActivate, onInstall, onManage } ); + } + return { label: __( 'Purchase', 'jetpack-my-jetpack' ), onClick: onCheckout }; }; const getSecondaryAction = ( detail: ProductCamelCase, onActivate: () => void ) => { + if ( detail.isFeature ) { + return null; + } + const START_FOR_FREE_FEATURE_FLAG = false; const isNotActiveOrNeedsExplicitFreePlan = ! detail.isPluginActive || @@ -98,6 +138,7 @@ const usePricingData = ( slug: string ) => { const { wpcomProductSlug, wpcomFreeProductSlug, ...data } = parsePricingData( detail.pricingForUi ); + const { install: installPlugin, isPending: isInstalling } = useInstallStandalonePlugin( slug ); const { isUserConnected } = useMyJetpackConnection(); const { myJetpackUrl, siteSuffix } = getMyJetpackWindowInitialState(); @@ -135,10 +176,31 @@ const usePricingData = ( slug: string ) => { runCheckout(); }, [ activate, recordEvent, runCheckout, slug ] ); + const handleInstall = useCallback( () => { + recordEvent( 'jetpack_myjetpack_evaluation_recommendations_install_plugin_click', { + product: slug, + } ); + installPlugin(); + }, [ slug, installPlugin, recordEvent ] ); + + const handleManage = useCallback( () => { + recordEvent( 'jetpack_myjetpack_evaluation_recommendations_manage_click', { + product: slug, + } ); + }, [ slug, recordEvent ] ); + return { secondaryAction: getSecondaryAction( detail, handleActivate ), - purchaseAction: getPurchaseAction( detail, handleCheckout ), + primaryAction: getPrimaryAction( detail, { + onCheckout: handleCheckout, + onActivate: handleActivate, + onInstall: handleInstall, + onManage: handleManage, + } ), + isFeature: detail.isFeature, + hasFreeOffering: detail.hasFreeOffering, isActivating, + isInstalling, ...data, }; }; diff --git a/projects/packages/my-jetpack/_inc/components/product-cards-section/all.ts b/projects/packages/my-jetpack/_inc/components/product-cards-section/all.ts index 18169a3e57272..19a5c3cf4fd5a 100644 --- a/projects/packages/my-jetpack/_inc/components/product-cards-section/all.ts +++ b/projects/packages/my-jetpack/_inc/components/product-cards-section/all.ts @@ -5,9 +5,12 @@ import BoostCard from './boost-card'; import CompleteCard from './complete-card'; import CrmCard from './crm-card'; import GrowthCard from './growth-card'; +import NewsletterCard from './newsletter-card'; import ProtectCard from './protect-card'; +import RelatedPostsCard from './related-posts-card'; import SearchCard from './search-card'; import SecurityCard from './security-card'; +import SiteAcceleratorCard from './site-accelerator-card'; import SocialCard from './social-card'; import StatsCard from './stats-card'; import VideopressCard from './videopress-card'; @@ -33,4 +36,8 @@ export const JetpackModuleToProductCard: { extras: null, scan: null, creator: null, + // Features: + newsletter: NewsletterCard, + 'related-posts': RelatedPostsCard, + 'site-accelerator': SiteAcceleratorCard, }; diff --git a/projects/packages/my-jetpack/_inc/components/product-cards-section/index.tsx b/projects/packages/my-jetpack/_inc/components/product-cards-section/index.tsx index 093b2cfe47a7b..bf9f9724c6a16 100644 --- a/projects/packages/my-jetpack/_inc/components/product-cards-section/index.tsx +++ b/projects/packages/my-jetpack/_inc/components/product-cards-section/index.tsx @@ -26,9 +26,19 @@ type DisplayItemType = Record< // We don't have a card for these products/bundles, and scan is displayed as protect. // 'jetpack-ai' is the official slug for the AI module, so we also exclude 'ai'. // The backend still supports the 'ai' slug, so it is part of the JetpackModule type. + // Related-posts, newsletter, and site-accelerator are features, not products. Exclude< JetpackModule, - 'extras' | 'scan' | 'security' | 'ai' | 'creator' | 'growth' | 'complete' + | 'extras' + | 'scan' + | 'security' + | 'ai' + | 'creator' + | 'growth' + | 'complete' + | 'site-accelerator' + | 'newsletter' + | 'related-posts' >, FC< { admin: boolean } > >; diff --git a/projects/packages/my-jetpack/_inc/components/product-cards-section/newsletter-card.tsx b/projects/packages/my-jetpack/_inc/components/product-cards-section/newsletter-card.tsx new file mode 100644 index 0000000000000..d3273867cdc9f --- /dev/null +++ b/projects/packages/my-jetpack/_inc/components/product-cards-section/newsletter-card.tsx @@ -0,0 +1,20 @@ +import { PRODUCT_SLUGS } from '../../data/constants'; +import ProductCard from '../connected-product-card'; +import type { FC } from 'react'; + +interface NewsletterCardProps { + admin?: boolean; + recommendation?: boolean; +} + +const NewsletterCard: FC< NewsletterCardProps > = ( { admin, recommendation } ) => { + return ( + + ); +}; + +export default NewsletterCard; diff --git a/projects/packages/my-jetpack/_inc/components/product-cards-section/related-posts-card.tsx b/projects/packages/my-jetpack/_inc/components/product-cards-section/related-posts-card.tsx new file mode 100644 index 0000000000000..3e94849ae406f --- /dev/null +++ b/projects/packages/my-jetpack/_inc/components/product-cards-section/related-posts-card.tsx @@ -0,0 +1,20 @@ +import { PRODUCT_SLUGS } from '../../data/constants'; +import ProductCard from '../connected-product-card'; +import type { FC } from 'react'; + +interface RelatedPostsCardProps { + admin?: boolean; + recommendation?: boolean; +} + +const RelatedPostsCard: FC< RelatedPostsCardProps > = ( { admin, recommendation } ) => { + return ( + + ); +}; + +export default RelatedPostsCard; diff --git a/projects/packages/my-jetpack/_inc/components/product-cards-section/site-accelerator-card.tsx b/projects/packages/my-jetpack/_inc/components/product-cards-section/site-accelerator-card.tsx new file mode 100644 index 0000000000000..a4ee55af84cb1 --- /dev/null +++ b/projects/packages/my-jetpack/_inc/components/product-cards-section/site-accelerator-card.tsx @@ -0,0 +1,20 @@ +import { PRODUCT_SLUGS } from '../../data/constants'; +import ProductCard from '../connected-product-card'; +import type { FC } from 'react'; + +interface SiteAcceleratorCardProps { + admin?: boolean; + recommendation?: boolean; +} + +const SiteAcceleratorCard: FC< SiteAcceleratorCardProps > = ( { admin, recommendation } ) => { + return ( + + ); +}; + +export default SiteAcceleratorCard; diff --git a/projects/packages/my-jetpack/_inc/data/constants.ts b/projects/packages/my-jetpack/_inc/data/constants.ts index c5dd1a84a63f7..bf718b02dc97d 100644 --- a/projects/packages/my-jetpack/_inc/data/constants.ts +++ b/projects/packages/my-jetpack/_inc/data/constants.ts @@ -40,17 +40,21 @@ export const PRODUCT_SLUGS = { ANTI_SPAM: 'anti-spam', BACKUP: 'backup', BOOST: 'boost', + BRUTE_FORCE: 'brute-force', CRM: 'crm', CREATOR: 'creator', EXTRAS: 'extras', JETPACK_AI: 'jetpack-ai', + NEWSLETTER: 'newsletter', + PROTECT: 'protect', + RELATED_POSTS: 'related-posts', SCAN: 'scan', SEARCH: 'search', + SITE_ACCELERATOR: 'site-accelerator', SOCIAL: 'social', - SECURITY: 'security', - PROTECT: 'protect', - VIDEOPRESS: 'videopress', STATS: 'stats', + VIDEOPRESS: 'videopress', + SECURITY: 'security', GROWTH: 'growth', COMPLETE: 'complete', } satisfies Record< string, JetpackModule >; diff --git a/projects/packages/my-jetpack/changelog/add-feature-recommendations-cards b/projects/packages/my-jetpack/changelog/add-feature-recommendations-cards new file mode 100644 index 0000000000000..38a8435a85bd8 --- /dev/null +++ b/projects/packages/my-jetpack/changelog/add-feature-recommendations-cards @@ -0,0 +1,4 @@ +Significance: minor +Type: added + +My Jetpack: introduce feature cards for recommendations in My Jetpack. diff --git a/projects/packages/my-jetpack/global.d.ts b/projects/packages/my-jetpack/global.d.ts index 134f55d8e4ef0..5c1fb22486671 100644 --- a/projects/packages/my-jetpack/global.d.ts +++ b/projects/packages/my-jetpack/global.d.ts @@ -36,15 +36,18 @@ type JetpackModule = | 'extras' | 'ai' | 'jetpack-ai' + | 'protect' | 'scan' | 'search' | 'social' - | 'security' - | 'protect' - | 'videopress' | 'stats' + | 'videopress' + | 'security' | 'growth' - | 'complete'; + | 'complete' + | 'site-accelerator' + | 'newsletter' + | 'related-posts'; type ThreatItem = { // Protect API properties (free plan) @@ -174,6 +177,7 @@ interface Window { has_paid_plan_for_product: boolean; features_by_tier: Array< string >; is_bundle: boolean; + is_feature: boolean; is_plugin_active: boolean; is_upgradable: boolean; is_upgradable_by_bundle: string[]; diff --git a/projects/packages/my-jetpack/src/products/class-module-product.php b/projects/packages/my-jetpack/src/products/class-module-product.php index 9d1a14f0fee86..40e4ef7f4c6d5 100644 --- a/projects/packages/my-jetpack/src/products/class-module-product.php +++ b/projects/packages/my-jetpack/src/products/class-module-product.php @@ -27,13 +27,6 @@ abstract class Module_Product extends Product { */ public static $module_name = null; - /** - * Whether this module is a Jetpack feature - * - * @var boolean - */ - public static $is_feature = false; - /** * Get the plugin slug - ovewrite it ans return Jetpack's * diff --git a/projects/packages/my-jetpack/src/products/class-newsletter.php b/projects/packages/my-jetpack/src/products/class-newsletter.php index 66d806d5ea6ca..61a5736b77c61 100644 --- a/projects/packages/my-jetpack/src/products/class-newsletter.php +++ b/projects/packages/my-jetpack/src/products/class-newsletter.php @@ -169,7 +169,7 @@ public static function get_manage_url() { * * @return null|WP_Error Null on success, WP_Error on invalid file. */ - public static function activate_plugin() { + public static function activate_plugin(): ?WP_Error { $plugin_filename = static::get_installed_plugin_filename( self::JETPACK_PLUGIN_SLUG ); if ( $plugin_filename ) { diff --git a/projects/packages/my-jetpack/src/products/class-product.php b/projects/packages/my-jetpack/src/products/class-product.php index b2262eddd6b4a..de36694475714 100644 --- a/projects/packages/my-jetpack/src/products/class-product.php +++ b/projects/packages/my-jetpack/src/products/class-product.php @@ -73,6 +73,13 @@ abstract class Product { */ const EXPIRATION_CUTOFF_TIME = '+2 months'; + /** + * Whether this module is a Jetpack feature + * + * @var boolean + */ + public static $is_feature = false; + /** * Whether this product requires a site connection * @@ -182,6 +189,7 @@ public static function get_info() { 'is_plugin_active' => static::is_plugin_active(), 'is_upgradable' => static::is_upgradable(), 'is_upgradable_by_bundle' => static::is_upgradable_by_bundle(), + 'is_feature' => static::$is_feature, 'supported_products' => static::get_supported_products(), 'wpcom_product_slug' => static::get_wpcom_product_slug(), 'requires_user_connection' => static::$requires_user_connection, diff --git a/projects/packages/my-jetpack/src/products/class-related-posts.php b/projects/packages/my-jetpack/src/products/class-related-posts.php index e5b10ec989931..a12a5715b2a91 100644 --- a/projects/packages/my-jetpack/src/products/class-related-posts.php +++ b/projects/packages/my-jetpack/src/products/class-related-posts.php @@ -169,7 +169,7 @@ public static function get_manage_url() { * * @return null|WP_Error Null on success, WP_Error on invalid file. */ - public static function activate_plugin() { + public static function activate_plugin(): ?WP_Error { $plugin_filename = static::get_installed_plugin_filename( self::JETPACK_PLUGIN_SLUG ); if ( $plugin_filename ) { diff --git a/projects/packages/my-jetpack/src/products/class-site-accelerator.php b/projects/packages/my-jetpack/src/products/class-site-accelerator.php index 42cda9bc8a798..72e65b9ff3d49 100644 --- a/projects/packages/my-jetpack/src/products/class-site-accelerator.php +++ b/projects/packages/my-jetpack/src/products/class-site-accelerator.php @@ -169,7 +169,7 @@ public static function get_manage_url() { * * @return null|WP_Error Null on success, WP_Error on invalid file. */ - public static function activate_plugin() { + public static function activate_plugin(): ?WP_Error { $plugin_filename = static::get_installed_plugin_filename( self::JETPACK_PLUGIN_SLUG ); if ( $plugin_filename ) { From d62fe3124def5ca80c8e1c2477139a338e35ec47 Mon Sep 17 00:00:00 2001 From: tbradsha <32492176+tbradsha@users.noreply.github.com> Date: Wed, 1 Jan 2025 10:04:18 -0700 Subject: [PATCH 11/98] Resolves #40765 - Prevent SoundCloud shortcode conflict (#40789) * Only load SoundCloud shortcode if it doesn't exist * Add changelog * Comment tweak --- ...jetpack-40765-prevent_soundcloud_shortcode_conflict | 4 ++++ projects/plugins/jetpack/modules/shortcodes.php | 10 +++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 projects/plugins/jetpack/changelog/fix-jetpack-40765-prevent_soundcloud_shortcode_conflict diff --git a/projects/plugins/jetpack/changelog/fix-jetpack-40765-prevent_soundcloud_shortcode_conflict b/projects/plugins/jetpack/changelog/fix-jetpack-40765-prevent_soundcloud_shortcode_conflict new file mode 100644 index 0000000000000..d719a0dcde458 --- /dev/null +++ b/projects/plugins/jetpack/changelog/fix-jetpack-40765-prevent_soundcloud_shortcode_conflict @@ -0,0 +1,4 @@ +Significance: patch +Type: bugfix + +Shortcodes: Prevent conflict with third-party SoundCloud shortcodes. diff --git a/projects/plugins/jetpack/modules/shortcodes.php b/projects/plugins/jetpack/modules/shortcodes.php index 87fb9116887dd..6d45d8bc8e4fe 100644 --- a/projects/plugins/jetpack/modules/shortcodes.php +++ b/projects/plugins/jetpack/modules/shortcodes.php @@ -46,12 +46,20 @@ function shortcode_new_to_old_params( $params, $old_format_support = false ) { * Load all available Jetpack shortcode files. */ function jetpack_load_shortcodes() { + // Prevent third-party shortcode plugins when loading shortcode files. + // Format: shortcode => condition_when_to_skip + $shortcode_skips = array( + 'soundcloud' => function_exists( 'soundcloud_shortcode' ), // SoundCloud Shortcodes plugin + ); + $shortcode_includes = array(); foreach ( Jetpack::glob_php( __DIR__ . '/shortcodes' ) as $file ) { $filename = substr( basename( $file ), 0, -4 ); - $shortcode_includes[ $filename ] = $file; + if ( empty( $shortcode_skips[ $filename ] ) ) { + $shortcode_includes[ $filename ] = $file; + } } /** From 2052ac92280ac733ba46cf2fb74004acf50635ad Mon Sep 17 00:00:00 2001 From: tbradsha <32492176+tbradsha@users.noreply.github.com> Date: Wed, 1 Jan 2025 10:04:30 -0700 Subject: [PATCH 12/98] Resolves #40766 - Prevent TypeError in VideoPress shortcode (#40790) * Prevent int operation on string * Add changelog --- .../jetpack/changelog/fix-jetpack-40766-catch_typeerror | 4 ++++ projects/plugins/jetpack/modules/videopress/shortcode.php | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 projects/plugins/jetpack/changelog/fix-jetpack-40766-catch_typeerror diff --git a/projects/plugins/jetpack/changelog/fix-jetpack-40766-catch_typeerror b/projects/plugins/jetpack/changelog/fix-jetpack-40766-catch_typeerror new file mode 100644 index 0000000000000..ed64cfefd76a3 --- /dev/null +++ b/projects/plugins/jetpack/changelog/fix-jetpack-40766-catch_typeerror @@ -0,0 +1,4 @@ +Significance: patch +Type: other + +VideoPress: Catch TypeError when theme specifies $content_width as a string. diff --git a/projects/plugins/jetpack/modules/videopress/shortcode.php b/projects/plugins/jetpack/modules/videopress/shortcode.php index 25f94f6736c12..37af63c349864 100644 --- a/projects/plugins/jetpack/modules/videopress/shortcode.php +++ b/projects/plugins/jetpack/modules/videopress/shortcode.php @@ -127,7 +127,7 @@ public function shortcode_callback( $attr ) { * If there was an invalid or unspecified width, set the width equal to the theme's `$content_width`. */ if ( 0 === $attr['width'] && isset( $content_width ) && $content_width >= VIDEOPRESS_MIN_WIDTH ) { - $attr['width'] = $content_width; + $attr['width'] = (int) $content_width; } /** From 4b52dc9d5ba0812a38eda9f8bd24a35428a8bab3 Mon Sep 17 00:00:00 2001 From: tbradsha <32492176+tbradsha@users.noreply.github.com> Date: Wed, 1 Jan 2025 10:04:47 -0700 Subject: [PATCH 13/98] Resolves #40767 - Prevent error with http_request_timeout filter (#40791) * Add default blank URL * Add changelog --- .../fix-jetpack-40767-prevent_error_on_http_override_filter | 4 ++++ projects/plugins/jetpack/modules/shortcodes/others.php | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 projects/plugins/jetpack/changelog/fix-jetpack-40767-prevent_error_on_http_override_filter diff --git a/projects/plugins/jetpack/changelog/fix-jetpack-40767-prevent_error_on_http_override_filter b/projects/plugins/jetpack/changelog/fix-jetpack-40767-prevent_error_on_http_override_filter new file mode 100644 index 0000000000000..d36349280ecc7 --- /dev/null +++ b/projects/plugins/jetpack/changelog/fix-jetpack-40767-prevent_error_on_http_override_filter @@ -0,0 +1,4 @@ +Significance: patch +Type: other + +Filters: Prevent error when `http_request_timeout` filter is used incorrectly. diff --git a/projects/plugins/jetpack/modules/shortcodes/others.php b/projects/plugins/jetpack/modules/shortcodes/others.php index 3aa90f2debb85..066246ee7921a 100644 --- a/projects/plugins/jetpack/modules/shortcodes/others.php +++ b/projects/plugins/jetpack/modules/shortcodes/others.php @@ -26,7 +26,7 @@ * * @return int The timeout value in seconds. */ -function jetpack_oembed_timeout_override( $timeout, $url ) { +function jetpack_oembed_timeout_override( $timeout, $url = '' ) { if ( is_string( $url ) && str_contains( $url, 'iwmb.icloud.com' ) From a4be4fba53cd98112e83b424a967b7d7d12a9a79 Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Wed, 1 Jan 2025 18:35:14 +0100 Subject: [PATCH 14/98] Update dependency semver to v7.6.3 (#40800) Co-authored-by: Renovate Bot --- pnpm-lock.yaml | 56 ++++++------------- .../forms/changelog/renovate-semver-7.x | 4 ++ projects/packages/forms/package.json | 2 +- .../jetpack/changelog/renovate-semver-7.x | 4 ++ projects/plugins/jetpack/package.json | 2 +- tools/cli/package.json | 2 +- tools/js-tools/package.json | 2 +- 7 files changed, 29 insertions(+), 43 deletions(-) create mode 100644 projects/packages/forms/changelog/renovate-semver-7.x create mode 100644 projects/plugins/jetpack/changelog/renovate-semver-7.x diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a835154ed8b83..eb729979d4610 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -728,7 +728,7 @@ importers: version: 4.3.4 semver: specifier: ^7.3.5 - version: 7.5.2 + version: 7.6.3 devDependencies: '@wordpress/browserslist-config': specifier: 6.14.0 @@ -2194,8 +2194,8 @@ importers: specifier: 1.64.1 version: 1.64.1 semver: - specifier: 7.5.2 - version: 7.5.2 + specifier: 7.6.3 + version: 7.6.3 webpack: specifier: 5.94.0 version: 5.94.0(webpack-cli@4.9.1) @@ -4011,8 +4011,8 @@ importers: specifier: 1.64.1 version: 1.64.1 semver: - specifier: 7.5.2 - version: 7.5.2 + specifier: 7.6.3 + version: 7.6.3 social-logos: specifier: workspace:* version: link:../../js-packages/social-logos @@ -4728,8 +4728,8 @@ importers: specifier: 0.11.10 version: 0.11.10 semver: - specifier: 7.5.2 - version: 7.5.2 + specifier: 7.6.3 + version: 7.6.3 sprintf-js: specifier: 1.1.2 version: 1.1.2 @@ -4927,8 +4927,8 @@ importers: specifier: 3.3.2 version: 3.3.2(svelte@4.2.19)(wp-prettier@3.0.3) semver: - specifier: 7.5.2 - version: 7.5.2 + specifier: 7.6.3 + version: 7.6.3 sort-package-json: specifier: 1.50.0 version: 1.50.0 @@ -11906,10 +11906,6 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} @@ -13814,11 +13810,6 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.5.2: - resolution: {integrity: sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==} - engines: {node: '>=10'} - hasBin: true - semver@7.6.3: resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} @@ -15135,9 +15126,6 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} @@ -16171,7 +16159,7 @@ snapshots: chalk: 4.1.2 find-root: 1.1.0 lodash.groupby: 4.6.0 - semver: 7.5.2 + semver: 7.6.3 webpack: 5.94.0(webpack-cli@4.9.1) '@colors/colors@1.6.0': {} @@ -17863,7 +17851,7 @@ snapshots: magic-string: 0.30.14 path-browserify: 1.0.1 process: 0.11.10 - semver: 7.5.2 + semver: 7.6.3 storybook: 8.3.5 style-loader: 3.3.4(webpack@5.94.0) terser-webpack-plugin: 5.3.3(webpack@5.94.0) @@ -17999,7 +17987,7 @@ snapshots: react-docgen: 7.1.0 react-dom: 18.3.1(react@18.3.1) resolve: 1.22.8 - semver: 7.5.2 + semver: 7.6.3 storybook: 8.3.5 tsconfig-paths: 4.2.0 webpack: 5.94.0(webpack-cli@4.9.1) @@ -18091,7 +18079,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-element-to-jsx-string: 15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - semver: 7.5.2 + semver: 7.6.3 storybook: 8.3.5 ts-dedent: 2.2.0 type-fest: 2.19.0 @@ -22110,7 +22098,7 @@ snapshots: postcss-modules-scope: 3.2.1(postcss@8.4.47) postcss-modules-values: 4.0.0(postcss@8.4.47) postcss-value-parser: 4.2.0 - semver: 7.5.2 + semver: 7.6.3 webpack: 5.94.0(webpack-cli@4.9.1) css-minimizer-webpack-plugin@5.0.1(webpack@5.94.0): @@ -23465,7 +23453,7 @@ snapshots: minimatch: 3.1.2 node-abort-controller: 3.1.1 schema-utils: 3.3.0 - semver: 7.5.2 + semver: 7.6.3 tapable: 2.2.1 typescript: 5.0.4 webpack: 5.94.0(webpack-cli@4.9.1) @@ -23482,7 +23470,7 @@ snapshots: minimatch: 3.1.2 node-abort-controller: 3.1.1 schema-utils: 3.3.0 - semver: 7.5.2 + semver: 7.6.3 tapable: 2.2.1 typescript: 5.0.4 webpack: 5.94.0(webpack-cli@4.9.1) @@ -25045,10 +25033,6 @@ snapshots: dependencies: yallist: 3.1.1 - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - lru-cache@7.18.3: {} lz-string@1.5.0: {} @@ -26055,7 +26039,7 @@ snapshots: cosmiconfig: 7.1.0 klona: 2.0.6 postcss: 8.4.47 - semver: 7.5.2 + semver: 7.6.3 webpack: 5.94.0(webpack-cli@4.9.1) postcss-merge-longhand@6.0.5(postcss@8.4.47): @@ -27198,10 +27182,6 @@ snapshots: semver@6.3.1: {} - semver@7.5.2: - dependencies: - lru-cache: 6.0.0 - semver@7.6.3: {} send@0.19.0: @@ -28657,8 +28637,6 @@ snapshots: yallist@3.1.1: {} - yallist@4.0.0: {} - yaml@1.10.2: {} yaml@2.2.2: {} diff --git a/projects/packages/forms/changelog/renovate-semver-7.x b/projects/packages/forms/changelog/renovate-semver-7.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/forms/changelog/renovate-semver-7.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/forms/package.json b/projects/packages/forms/package.json index ee32521191968..dd5b9db741e9f 100644 --- a/projects/packages/forms/package.json +++ b/projects/packages/forms/package.json @@ -54,7 +54,7 @@ "redux": "4.0.5", "redux-thunk": "2.3.0", "sass": "1.64.1", - "semver": "7.5.2", + "semver": "7.6.3", "webpack": "5.94.0", "webpack-cli": "4.9.1" }, diff --git a/projects/plugins/jetpack/changelog/renovate-semver-7.x b/projects/plugins/jetpack/changelog/renovate-semver-7.x new file mode 100644 index 0000000000000..1eaea6a769e84 --- /dev/null +++ b/projects/plugins/jetpack/changelog/renovate-semver-7.x @@ -0,0 +1,4 @@ +Significance: patch +Type: other + +Updated package dependencies. diff --git a/projects/plugins/jetpack/package.json b/projects/plugins/jetpack/package.json index 7649c32bd0143..2bd7973da4010 100644 --- a/projects/plugins/jetpack/package.json +++ b/projects/plugins/jetpack/package.json @@ -110,7 +110,7 @@ "refx": "3.1.1", "resize-observer-polyfill": "1.5.1", "sass": "1.64.1", - "semver": "7.5.2", + "semver": "7.6.3", "social-logos": "workspace:*", "swiper": "6.7.0", "tinycolor2": "1.4.2", diff --git a/tools/cli/package.json b/tools/cli/package.json index c72525d21b419..bc1493c78289e 100644 --- a/tools/cli/package.json +++ b/tools/cli/package.json @@ -41,7 +41,7 @@ "path-name": "1.0.0", "pluralize": "8.0.0", "process": "0.11.10", - "semver": "7.5.2", + "semver": "7.6.3", "sprintf-js": "1.1.2", "tmp": "0.2.3", "yargs": "17.6.2" diff --git a/tools/js-tools/package.json b/tools/js-tools/package.json index 9dd198337be3a..3b4ca9a173da6 100644 --- a/tools/js-tools/package.json +++ b/tools/js-tools/package.json @@ -55,7 +55,7 @@ "parse-diff": "0.8.1", "prettier": "npm:wp-prettier@3.0.3", "prettier-plugin-svelte": "3.3.2", - "semver": "7.5.2", + "semver": "7.6.3", "sort-package-json": "1.50.0", "svelte": "4.2.19", "svelte-eslint-parser": "0.39.2", From aaef9a48e1356673bb4405e99f669d0a40c49951 Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Wed, 1 Jan 2025 18:35:52 +0100 Subject: [PATCH 15/98] Update dependency composer/semver to v3.4.3 (#40799) * Update dependency composer/semver to v3.4.3 * Generate lockfile --------- Co-authored-by: Renovate Bot Co-authored-by: tbradsha <32492176+tbradsha@users.noreply.github.com> --- .../changelog/renovate-composer-semver-3.x | 4 ++ projects/plugins/beta/composer.json | 2 +- projects/plugins/beta/composer.lock | 52 +++++++++---------- 3 files changed, 31 insertions(+), 27 deletions(-) create mode 100644 projects/plugins/beta/changelog/renovate-composer-semver-3.x diff --git a/projects/plugins/beta/changelog/renovate-composer-semver-3.x b/projects/plugins/beta/changelog/renovate-composer-semver-3.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/beta/changelog/renovate-composer-semver-3.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/beta/composer.json b/projects/plugins/beta/composer.json index 061f1afbdd9c5..44f6cb54df774 100644 --- a/projects/plugins/beta/composer.json +++ b/projects/plugins/beta/composer.json @@ -10,7 +10,7 @@ "require": { "automattic/jetpack-admin-ui": "@dev", "automattic/jetpack-autoloader": "@dev", - "composer/semver": "3.3.2", + "composer/semver": "3.4.3", "erusev/parsedown": "1.7.4" }, "require-dev": { diff --git a/projects/plugins/beta/composer.lock b/projects/plugins/beta/composer.lock index 24f1bab32dedb..6df34fa74f455 100644 --- a/projects/plugins/beta/composer.lock +++ b/projects/plugins/beta/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "92efc2ebd18c5e82b5a0160a2e03169a", + "content-hash": "961751f60b067f5bfd4872ff7ef7ddb8", "packages": [ { "name": "automattic/jetpack-admin-ui", @@ -141,24 +141,24 @@ }, { "name": "composer/semver", - "version": "3.3.2", + "version": "3.4.3", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" + "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", + "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", + "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^1.4", - "symfony/phpunit-bridge": "^4.2 || ^5" + "phpstan/phpstan": "^1.11", + "symfony/phpunit-bridge": "^3 || ^7" }, "type": "library", "extra": { @@ -200,9 +200,9 @@ "versioning" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.3.2" + "source": "https://github.com/composer/semver/tree/3.4.3" }, "funding": [ { @@ -218,7 +218,7 @@ "type": "tidelift" } ], - "time": "2022-04-01T19:23:25+00:00" + "time": "2024-09-19T14:15:21+00:00" }, { "name": "erusev/parsedown", @@ -404,16 +404,16 @@ }, { "name": "symfony/console", - "version": "v7.2.0", + "version": "v7.2.1", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "23c8aae6d764e2bae02d2a99f7532a7f6ed619cf" + "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/23c8aae6d764e2bae02d2a99f7532a7f6ed619cf", - "reference": "23c8aae6d764e2bae02d2a99f7532a7f6ed619cf", + "url": "https://api.github.com/repos/symfony/console/zipball/fefcc18c0f5d0efe3ab3152f15857298868dc2c3", + "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3", "shasum": "" }, "require": { @@ -477,7 +477,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.2.0" + "source": "https://github.com/symfony/console/tree/v7.2.1" }, "funding": [ { @@ -493,7 +493,7 @@ "type": "tidelift" } ], - "time": "2024-11-06T14:24:19+00:00" + "time": "2024-12-11T03:49:26+00:00" }, { "name": "symfony/deprecation-contracts", @@ -514,12 +514,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -826,8 +826,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -965,12 +965,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { From 54de722db8aa6b51fdd85ed4dd33285f1b615c54 Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Wed, 1 Jan 2025 19:40:00 +0100 Subject: [PATCH 16/98] Update dependency picomatch to v4 (#40806) Co-authored-by: Renovate Bot --- pnpm-lock.yaml | 18 ++++++------------ .../changelog/renovate-picomatch-4.x | 4 ++++ .../required-review/package.json | 2 +- 3 files changed, 11 insertions(+), 13 deletions(-) create mode 100644 projects/github-actions/required-review/changelog/renovate-picomatch-4.x diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eb729979d4610..9141faca48adf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -80,8 +80,8 @@ importers: specifier: 4.1.0 version: 4.1.0 picomatch: - specifier: 2.2.3 - version: 2.2.3 + specifier: 4.0.2 + version: 4.0.2 devDependencies: '@vercel/ncc': specifier: 0.36.1 @@ -12606,10 +12606,6 @@ packages: picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - picomatch@2.2.3: - resolution: {integrity: sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==} - engines: {node: '>=8.6'} - picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -17490,7 +17486,7 @@ snapshots: '@rollup/pluginutils@4.2.1': dependencies: estree-walker: 2.0.2 - picomatch: 2.2.3 + picomatch: 2.3.1 '@rollup/pluginutils@5.1.3(rollup@3.29.5)': dependencies: @@ -21164,7 +21160,7 @@ snapshots: anymatch@3.1.3: dependencies: normalize-path: 3.0.0 - picomatch: 2.2.3 + picomatch: 2.3.1 append-transform@2.0.0: dependencies: @@ -24627,7 +24623,7 @@ snapshots: chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 - picomatch: 2.2.3 + picomatch: 2.3.1 jest-validate@29.7.0: dependencies: @@ -25940,8 +25936,6 @@ snapshots: picocolors@1.1.1: {} - picomatch@2.2.3: {} - picomatch@2.3.1: {} picomatch@4.0.2: {} @@ -26685,7 +26679,7 @@ snapshots: readdirp@3.6.0: dependencies: - picomatch: 2.2.3 + picomatch: 2.3.1 readdirp@4.0.2: {} diff --git a/projects/github-actions/required-review/changelog/renovate-picomatch-4.x b/projects/github-actions/required-review/changelog/renovate-picomatch-4.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/github-actions/required-review/changelog/renovate-picomatch-4.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/github-actions/required-review/package.json b/projects/github-actions/required-review/package.json index 25f8302170b37..089447d608732 100644 --- a/projects/github-actions/required-review/package.json +++ b/projects/github-actions/required-review/package.json @@ -10,7 +10,7 @@ "@actions/github": "6.0.0", "error": "10.4.0", "js-yaml": "4.1.0", - "picomatch": "2.2.3" + "picomatch": "4.0.2" }, "devDependencies": { "@vercel/ncc": "0.36.1" From 8558d9c919637d7b1a9fcff4e84fdf563372e56c Mon Sep 17 00:00:00 2001 From: Christian Gastrell Date: Wed, 1 Jan 2025 17:00:05 -0300 Subject: [PATCH 17/98] AI Client: add first logo generation style (#40807) * add a style value on first generation so we don't fall in a dall-e case * add changelog --- .../changelog/fix-jetpack-ai-first-logo-generation-style | 4 ++++ .../src/logo-generator/components/generator-modal.tsx | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 projects/js-packages/ai-client/changelog/fix-jetpack-ai-first-logo-generation-style diff --git a/projects/js-packages/ai-client/changelog/fix-jetpack-ai-first-logo-generation-style b/projects/js-packages/ai-client/changelog/fix-jetpack-ai-first-logo-generation-style new file mode 100644 index 0000000000000..4bac0a451049e --- /dev/null +++ b/projects/js-packages/ai-client/changelog/fix-jetpack-ai-first-logo-generation-style @@ -0,0 +1,4 @@ +Significance: patch +Type: fixed + +AI Client: add style parameter to first logo generator so it doesn't fall in a dall-e situation diff --git a/projects/js-packages/ai-client/src/logo-generator/components/generator-modal.tsx b/projects/js-packages/ai-client/src/logo-generator/components/generator-modal.tsx index d9c140e60d5c2..d58ca1c509374 100644 --- a/projects/js-packages/ai-client/src/logo-generator/components/generator-modal.tsx +++ b/projects/js-packages/ai-client/src/logo-generator/components/generator-modal.tsx @@ -91,7 +91,7 @@ export const GeneratorModal: React.FC< GeneratorModalProps > = ( { // Then generate the logo based on the prompt. setLoadingState( 'generating' ); - await generateLogo( { prompt } ); + await generateLogo( { prompt, style: 'none' } ); setLoadingState( null ); } catch ( error ) { debug( 'Error generating first logo', error ); From 97df6873a4f15ed4d92ae58d19c641a9c3e40217 Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Wed, 1 Jan 2025 21:45:08 +0100 Subject: [PATCH 18/98] Update dependency moment to v2.30.1 (#40812) Co-authored-by: Renovate Bot --- pnpm-lock.yaml | 22 +++++++++---------- .../changelog/renovate-moment-2.x | 4 ++++ .../repo-gardening/package.json | 2 +- .../backup/changelog/renovate-moment-2.x | 4 ++++ projects/packages/backup/package.json | 2 +- .../protect/changelog/renovate-moment-2.x | 4 ++++ projects/plugins/protect/package.json | 2 +- 7 files changed, 26 insertions(+), 14 deletions(-) create mode 100644 projects/github-actions/repo-gardening/changelog/renovate-moment-2.x create mode 100644 projects/packages/backup/changelog/renovate-moment-2.x create mode 100644 projects/plugins/protect/changelog/renovate-moment-2.x diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9141faca48adf..d3fb883aae296 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -55,8 +55,8 @@ importers: specifier: 10.4.1 version: 10.4.1 moment: - specifier: 2.29.4 - version: 2.29.4 + specifier: 2.30.1 + version: 2.30.1 openai: specifier: 4.56.1 version: 4.56.1 @@ -1813,8 +1813,8 @@ importers: specifier: 5.14.0 version: 5.14.0 moment: - specifier: 2.29.4 - version: 2.29.4 + specifier: 2.30.1 + version: 2.30.1 prop-types: specifier: ^15.8.1 version: 15.8.1 @@ -4240,8 +4240,8 @@ importers: specifier: 2.1.1 version: 2.1.1 moment: - specifier: 2.29.4 - version: 2.29.4 + specifier: 2.30.1 + version: 2.30.1 prop-types: specifier: 15.8.1 version: 15.8.1 @@ -12204,8 +12204,8 @@ packages: moment-timezone@0.5.46: resolution: {integrity: sha512-ZXm9b36esbe7OmdABqIWJuBBiLLwAjrN7CE+7sYdCCx82Nabt1wHDj8TVseS59QIlfFPbOoiBPm6ca9BioG4hw==} - moment@2.29.4: - resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} + moment@2.30.1: + resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} mousetrap@1.6.5: resolution: {integrity: sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==} @@ -20002,7 +20002,7 @@ snapshots: dependencies: '@babel/runtime': 7.25.7 '@wordpress/deprecated': 4.13.0 - moment: 2.29.4 + moment: 2.30.1 moment-timezone: 0.5.46 '@wordpress/dependency-extraction-webpack-plugin@6.14.0(webpack@5.94.0)': @@ -25486,9 +25486,9 @@ snapshots: moment-timezone@0.5.46: dependencies: - moment: 2.29.4 + moment: 2.30.1 - moment@2.29.4: {} + moment@2.30.1: {} mousetrap@1.6.5: {} diff --git a/projects/github-actions/repo-gardening/changelog/renovate-moment-2.x b/projects/github-actions/repo-gardening/changelog/renovate-moment-2.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/github-actions/repo-gardening/changelog/renovate-moment-2.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/github-actions/repo-gardening/package.json b/projects/github-actions/repo-gardening/package.json index d01a2db4bfcd9..cecb8c3255a45 100644 --- a/projects/github-actions/repo-gardening/package.json +++ b/projects/github-actions/repo-gardening/package.json @@ -18,7 +18,7 @@ "@slack/web-api": "7.7.0", "compare-versions": "6.1.1", "glob": "10.4.1", - "moment": "2.29.4", + "moment": "2.30.1", "openai": "4.56.1" }, "devDependencies": { diff --git a/projects/packages/backup/changelog/renovate-moment-2.x b/projects/packages/backup/changelog/renovate-moment-2.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/backup/changelog/renovate-moment-2.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/backup/package.json b/projects/packages/backup/package.json index e888ee09c7871..b7a0ff2bbb412 100644 --- a/projects/packages/backup/package.json +++ b/projects/packages/backup/package.json @@ -39,7 +39,7 @@ "@wordpress/date": "5.14.0", "@wordpress/element": "6.14.0", "@wordpress/i18n": "5.14.0", - "moment": "2.29.4", + "moment": "2.30.1", "prop-types": "^15.8.1", "react": "18.3.1", "react-dom": "18.3.1" diff --git a/projects/plugins/protect/changelog/renovate-moment-2.x b/projects/plugins/protect/changelog/renovate-moment-2.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/protect/changelog/renovate-moment-2.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/protect/package.json b/projects/plugins/protect/package.json index 98985429c9097..519505ff38064 100644 --- a/projects/plugins/protect/package.json +++ b/projects/plugins/protect/package.json @@ -42,7 +42,7 @@ "@wordpress/url": "4.14.0", "camelize": "1.0.1", "clsx": "2.1.1", - "moment": "2.29.4", + "moment": "2.30.1", "prop-types": "15.8.1", "react": "18.3.1", "react-dom": "18.3.1", From 4992db886ed5d77603eba44b2ab544f8d875a0c2 Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Wed, 1 Jan 2025 21:47:18 +0100 Subject: [PATCH 19/98] Update dependency prop-types to v15.8.1 (#40813) Co-authored-by: Renovate Bot --- pnpm-lock.yaml | 29 +++++++------------ .../changelog/renovate-prop-types-15.x | 4 +++ projects/js-packages/licensing/package.json | 2 +- .../changelog/renovate-prop-types-15.x | 4 +++ .../js-packages/partner-coupon/package.json | 2 +- .../search/changelog/renovate-prop-types-15.x | 4 +++ projects/packages/search/package.json | 2 +- .../changelog/renovate-prop-types-15.x | 4 +++ projects/packages/wordads/package.json | 2 +- .../changelog/renovate-prop-types-15.x | 4 +++ projects/plugins/jetpack/package.json | 2 +- 11 files changed, 35 insertions(+), 24 deletions(-) create mode 100644 projects/js-packages/licensing/changelog/renovate-prop-types-15.x create mode 100644 projects/js-packages/partner-coupon/changelog/renovate-prop-types-15.x create mode 100644 projects/packages/search/changelog/renovate-prop-types-15.x create mode 100644 projects/packages/wordads/changelog/renovate-prop-types-15.x create mode 100644 projects/plugins/jetpack/changelog/renovate-prop-types-15.x diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d3fb883aae296..f1a7988716bae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -947,8 +947,8 @@ importers: specifier: 2.1.1 version: 2.1.1 prop-types: - specifier: 15.7.2 - version: 15.7.2 + specifier: 15.8.1 + version: 15.8.1 devDependencies: '@automattic/jetpack-base-styles': specifier: workspace:* @@ -1008,8 +1008,8 @@ importers: specifier: 2.1.1 version: 2.1.1 prop-types: - specifier: 15.7.2 - version: 15.7.2 + specifier: 15.8.1 + version: 15.8.1 devDependencies: '@automattic/jetpack-analytics': specifier: workspace:* @@ -2769,8 +2769,8 @@ importers: specifier: 10.22.1 version: 10.22.1 prop-types: - specifier: 15.7.2 - version: 15.7.2 + specifier: 15.8.1 + version: 15.8.1 q-flat: specifier: 1.0.7 version: 1.0.7 @@ -3129,8 +3129,8 @@ importers: specifier: 10.22.1 version: 10.22.1 prop-types: - specifier: 15.7.2 - version: 15.7.2 + specifier: 15.8.1 + version: 15.8.1 q-flat: specifier: 1.0.7 version: 1.0.7 @@ -3987,8 +3987,8 @@ importers: specifier: 12.1.7 version: 12.1.7(postcss@8.4.47) prop-types: - specifier: 15.7.2 - version: 15.7.2 + specifier: 15.8.1 + version: 15.8.1 react-redux: specifier: 7.2.8 version: 7.2.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -13001,9 +13001,6 @@ packages: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} - prop-types@15.7.2: - resolution: {integrity: sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==} - prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} @@ -26280,12 +26277,6 @@ snapshots: kleur: 3.0.3 sisteransi: 1.0.5 - prop-types@15.7.2: - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - prop-types@15.8.1: dependencies: loose-envify: 1.4.0 diff --git a/projects/js-packages/licensing/changelog/renovate-prop-types-15.x b/projects/js-packages/licensing/changelog/renovate-prop-types-15.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/licensing/changelog/renovate-prop-types-15.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/licensing/package.json b/projects/js-packages/licensing/package.json index df83e072551ff..4e55439f15fc4 100644 --- a/projects/js-packages/licensing/package.json +++ b/projects/js-packages/licensing/package.json @@ -29,7 +29,7 @@ "@wordpress/i18n": "5.14.0", "@wordpress/icons": "10.14.0", "clsx": "2.1.1", - "prop-types": "15.7.2" + "prop-types": "15.8.1" }, "devDependencies": { "@automattic/jetpack-base-styles": "workspace:*", diff --git a/projects/js-packages/partner-coupon/changelog/renovate-prop-types-15.x b/projects/js-packages/partner-coupon/changelog/renovate-prop-types-15.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/partner-coupon/changelog/renovate-prop-types-15.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/partner-coupon/package.json b/projects/js-packages/partner-coupon/package.json index 9fb5f1fe42a3d..5182a97174f27 100644 --- a/projects/js-packages/partner-coupon/package.json +++ b/projects/js-packages/partner-coupon/package.json @@ -44,7 +44,7 @@ "@automattic/jetpack-connection": "workspace:*", "@wordpress/i18n": "5.14.0", "clsx": "2.1.1", - "prop-types": "15.7.2" + "prop-types": "15.8.1" }, "exports": { ".": "./index.jsx" diff --git a/projects/packages/search/changelog/renovate-prop-types-15.x b/projects/packages/search/changelog/renovate-prop-types-15.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/search/changelog/renovate-prop-types-15.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/search/package.json b/projects/packages/search/package.json index a54f42b1a38b9..afef372f18104 100644 --- a/projects/packages/search/package.json +++ b/projects/packages/search/package.json @@ -52,7 +52,7 @@ "lodash": "4.17.21", "photon": "4.1.1", "preact": "10.22.1", - "prop-types": "15.7.2", + "prop-types": "15.8.1", "q-flat": "1.0.7", "qss": "2.0.3", "react": "18.3.1", diff --git a/projects/packages/wordads/changelog/renovate-prop-types-15.x b/projects/packages/wordads/changelog/renovate-prop-types-15.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/wordads/changelog/renovate-prop-types-15.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/wordads/package.json b/projects/packages/wordads/package.json index 4cd4d915b0fb9..09d2eaaba3258 100644 --- a/projects/packages/wordads/package.json +++ b/projects/packages/wordads/package.json @@ -47,7 +47,7 @@ "lodash": "4.17.21", "photon": "4.1.1", "preact": "10.22.1", - "prop-types": "15.7.2", + "prop-types": "15.8.1", "q-flat": "1.0.7", "qss": "2.0.3", "react": "18.3.1", diff --git a/projects/plugins/jetpack/changelog/renovate-prop-types-15.x b/projects/plugins/jetpack/changelog/renovate-prop-types-15.x new file mode 100644 index 0000000000000..1eaea6a769e84 --- /dev/null +++ b/projects/plugins/jetpack/changelog/renovate-prop-types-15.x @@ -0,0 +1,4 @@ +Significance: patch +Type: other + +Updated package dependencies. diff --git a/projects/plugins/jetpack/package.json b/projects/plugins/jetpack/package.json index 2bd7973da4010..a46d4fcb0d386 100644 --- a/projects/plugins/jetpack/package.json +++ b/projects/plugins/jetpack/package.json @@ -102,7 +102,7 @@ "nspell": "2.1.5", "photon": "4.1.1", "postcss-custom-properties": "12.1.7", - "prop-types": "15.7.2", + "prop-types": "15.8.1", "react-redux": "7.2.8", "react-router-dom": "5.3.4", "redux": "4.0.5", From df2c96ecba4d83d71b72c154623f2da42acb6592 Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Wed, 1 Jan 2025 21:51:41 +0100 Subject: [PATCH 20/98] Update dependency debug to v4.4.0 (#40810) Co-authored-by: Renovate Bot --- pnpm-lock.yaml | 142 ++++++++---------- .../ai-client/changelog/renovate-debug-4.x | 4 + projects/js-packages/ai-client/package.json | 2 +- .../analytics/changelog/renovate-debug-4.x | 4 + projects/js-packages/analytics/package.json | 2 +- .../connection/changelog/renovate-debug-4.x | 4 + projects/js-packages/connection/package.json | 2 +- .../scan/changelog/renovate-debug-4.x | 4 + projects/js-packages/scan/package.json | 2 +- .../changelog/renovate-debug-4.x | 4 + .../packages/jetpack-mu-wpcom/package.json | 2 +- .../my-jetpack/changelog/renovate-debug-4.x | 4 + projects/packages/my-jetpack/package.json | 2 +- .../videopress/changelog/renovate-debug-4.x | 4 + projects/packages/videopress/package.json | 2 +- .../jetpack/changelog/renovate-debug-4.x | 4 + projects/plugins/jetpack/package.json | 2 +- tools/js-tools/package.json | 2 +- 18 files changed, 103 insertions(+), 89 deletions(-) create mode 100644 projects/js-packages/ai-client/changelog/renovate-debug-4.x create mode 100644 projects/js-packages/analytics/changelog/renovate-debug-4.x create mode 100644 projects/js-packages/connection/changelog/renovate-debug-4.x create mode 100644 projects/js-packages/scan/changelog/renovate-debug-4.x create mode 100644 projects/packages/jetpack-mu-wpcom/changelog/renovate-debug-4.x create mode 100644 projects/packages/my-jetpack/changelog/renovate-debug-4.x create mode 100644 projects/packages/videopress/changelog/renovate-debug-4.x create mode 100644 projects/plugins/jetpack/changelog/renovate-debug-4.x diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f1a7988716bae..86a393be04d12 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,8 +169,8 @@ importers: specifier: 2.1.1 version: 2.1.1 debug: - specifier: 4.3.4 - version: 4.3.4 + specifier: 4.4.0 + version: 4.4.0 markdown-it: specifier: 14.0.0 version: 14.0.0 @@ -218,8 +218,8 @@ importers: projects/js-packages/analytics: devDependencies: debug: - specifier: 4.3.4 - version: 4.3.4 + specifier: 4.4.0 + version: 4.4.0 jest: specifier: 29.7.0 version: 29.7.0 @@ -247,7 +247,7 @@ importers: dependencies: debug: specifier: ^4.3.2 - version: 4.3.4 + version: 4.4.0 devDependencies: '@babel/core': specifier: 7.26.0 @@ -583,8 +583,8 @@ importers: specifier: 2.1.1 version: 2.1.1 debug: - specifier: 4.3.4 - version: 4.3.4 + specifier: 4.4.0 + version: 4.4.0 prop-types: specifier: ^15.7.2 version: 15.8.1 @@ -725,7 +725,7 @@ importers: version: 4.23.1 debug: specifier: ^4.3.2 - version: 4.3.4 + version: 4.4.0 semver: specifier: ^7.3.5 version: 7.6.3 @@ -750,7 +750,7 @@ importers: dependencies: debug: specifier: ^4.3.2 - version: 4.3.4 + version: 4.4.0 devDependencies: '@automattic/jetpack-webpack-config': specifier: workspace:* @@ -772,7 +772,7 @@ importers: dependencies: debug: specifier: ^4.3.2 - version: 4.3.4 + version: 4.4.0 devDependencies: '@wordpress/dependency-extraction-webpack-plugin': specifier: 6.14.0 @@ -1236,7 +1236,7 @@ importers: dependencies: debug: specifier: ^4.3.2 - version: 4.3.4 + version: 4.4.0 devDependencies: jest: specifier: 29.7.0 @@ -1269,8 +1269,8 @@ importers: specifier: 4.14.0 version: 4.14.0 debug: - specifier: 4.3.4 - version: 4.3.4 + specifier: 4.4.0 + version: 4.4.0 react: specifier: ^18.2.0 version: 18.3.1 @@ -2362,8 +2362,8 @@ importers: specifier: 2.1.1 version: 2.1.1 debug: - specifier: 4.3.4 - version: 4.3.4 + specifier: 4.4.0 + version: 4.4.0 preact: specifier: ^10.13.1 version: 10.22.1 @@ -2572,8 +2572,8 @@ importers: specifier: 2.1.1 version: 2.1.1 debug: - specifier: 4.3.4 - version: 4.3.4 + specifier: 4.4.0 + version: 4.4.0 gridicons: specifier: 3.4.1 version: 3.4.1(react@18.3.1) @@ -2963,8 +2963,8 @@ importers: specifier: 2.1.1 version: 2.1.1 debug: - specifier: 4.3.4 - version: 4.3.4 + specifier: 4.4.0 + version: 4.4.0 filesize: specifier: 8.0.6 version: 8.0.6 @@ -3948,8 +3948,8 @@ importers: specifier: 4.2.0 version: 4.2.0 debug: - specifier: 4.3.4 - version: 4.3.4 + specifier: 4.4.0 + version: 4.4.0 email-validator: specifier: 2.0.4 version: 2.0.4 @@ -4840,8 +4840,8 @@ importers: specifier: 5.4.1 version: 5.4.1 debug: - specifier: 4.3.4 - version: 4.3.4 + specifier: 4.4.0 + version: 4.4.0 enquirer: specifier: 2.4.1 version: 2.4.1 @@ -9748,15 +9748,6 @@ packages: supports-color: optional: true - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.4.0: resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} @@ -12213,9 +12204,6 @@ packages: ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -15283,7 +15271,7 @@ snapshots: '@wordpress/element': 6.14.0 '@wordpress/i18n': 5.14.0 clsx: 2.1.1 - debug: 4.3.4 + debug: 4.4.0 lodash: 4.17.21 react: 18.3.1 redux: 4.2.1 @@ -15351,7 +15339,7 @@ snapshots: '@babel/traverse': 7.26.4 '@babel/types': 7.26.3 convert-source-map: 2.0.0 - debug: 4.3.4 + debug: 4.4.0 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -15411,7 +15399,7 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 - debug: 4.3.4 + debug: 4.4.0 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -16131,7 +16119,7 @@ snapshots: '@babel/parser': 7.26.3 '@babel/template': 7.25.9 '@babel/types': 7.26.3 - debug: 4.3.4 + debug: 4.4.0 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -16522,7 +16510,7 @@ snapshots: '@eslint/config-array@0.19.1': dependencies: '@eslint/object-schema': 2.1.5 - debug: 4.3.4 + debug: 4.4.0 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -16534,7 +16522,7 @@ snapshots: '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 - debug: 4.3.4 + debug: 4.4.0 espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 @@ -17627,7 +17615,7 @@ snapshots: '@sitespeed.io/tracium@0.3.3': dependencies: - debug: 4.3.4 + debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -18008,7 +17996,7 @@ snapshots: '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.0.4)(webpack@5.94.0)': dependencies: - debug: 4.3.4 + debug: 4.4.0 endent: 2.1.0 find-cache-dir: 3.3.2 flat-cache: 3.2.0 @@ -18773,7 +18761,7 @@ snapshots: '@typescript-eslint/types': 8.17.0 '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.0.4) '@typescript-eslint/visitor-keys': 8.17.0 - debug: 4.3.4 + debug: 4.4.0 eslint: 9.16.0 optionalDependencies: typescript: 5.0.4 @@ -18794,7 +18782,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.0.4) '@typescript-eslint/utils': 8.17.0(eslint@9.16.0)(typescript@5.0.4) - debug: 4.3.4 + debug: 4.4.0 eslint: 9.16.0 ts-api-utils: 1.4.3(typescript@5.0.4) optionalDependencies: @@ -18810,7 +18798,7 @@ snapshots: dependencies: '@typescript-eslint/types': 8.17.0 '@typescript-eslint/visitor-keys': 8.17.0 - debug: 4.3.4 + debug: 4.4.0 fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 @@ -18825,7 +18813,7 @@ snapshots: dependencies: '@typescript-eslint/types': 8.18.0 '@typescript-eslint/visitor-keys': 8.18.0 - debug: 4.3.4 + debug: 4.4.0 fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 @@ -21062,7 +21050,7 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.3.4 + debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -21296,9 +21284,9 @@ snapshots: transitivePeerDependencies: - debug - axios@1.7.4(debug@4.3.4): + axios@1.7.4(debug@4.4.0): dependencies: - follow-redirects: 1.15.9(debug@4.3.4) + follow-redirects: 1.15.9(debug@4.4.0) form-data: 4.0.1 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -21416,7 +21404,7 @@ snapshots: dependencies: '@babel/core': 7.26.0 core-js: 3.38.1 - debug: 4.3.4 + debug: 4.4.0 lodash.mergewith: 4.6.2 prettier: 2.8.8 strip-indent: 3.0.0 @@ -22303,10 +22291,6 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.3.4: - dependencies: - ms: 2.1.2 - debug@4.4.0: dependencies: ms: 2.1.3 @@ -22714,14 +22698,14 @@ snapshots: esbuild-register@3.6.0(esbuild@0.23.1): dependencies: - debug: 4.3.4 + debug: 4.4.0 esbuild: 0.23.1 transitivePeerDependencies: - supports-color esbuild-register@3.6.0(esbuild@0.24.2): dependencies: - debug: 4.3.4 + debug: 4.4.0 esbuild: 0.24.2 transitivePeerDependencies: - supports-color @@ -23086,7 +23070,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.3.4 + debug: 4.4.0 escape-string-regexp: 4.0.0 eslint-scope: 8.2.0 eslint-visitor-keys: 4.2.0 @@ -23251,7 +23235,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.3.4 + debug: 4.4.0 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -23368,7 +23352,7 @@ snapshots: dependencies: chalk: 4.1.2 commander: 5.1.0 - debug: 4.3.4 + debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -23416,9 +23400,9 @@ snapshots: follow-redirects@1.15.9: {} - follow-redirects@1.15.9(debug@4.3.4): + follow-redirects@1.15.9(debug@4.4.0): optionalDependencies: - debug: 4.3.4 + debug: 4.4.0 for-each@0.3.3: dependencies: @@ -23580,7 +23564,7 @@ snapshots: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.3.4 + debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -23840,28 +23824,28 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.4.0 transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.3 - debug: 4.3.4 + debug: 4.4.0 transitivePeerDependencies: - supports-color https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.4.0 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.3 - debug: 4.3.4 + debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -24196,7 +24180,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.3.4 + debug: 4.4.0 istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -24915,8 +24899,8 @@ snapshots: localtunnel@2.0.2: dependencies: - axios: 1.7.4(debug@4.3.4) - debug: 4.3.4 + axios: 1.7.4(debug@4.4.0) + debug: 4.4.0 openurl: 1.1.1 yargs: 17.6.2 transitivePeerDependencies: @@ -25403,7 +25387,7 @@ snapshots: micromark@4.0.1: dependencies: '@types/debug': 4.1.12 - debug: 4.3.4 + debug: 4.4.0 decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.2 @@ -25491,8 +25475,6 @@ snapshots: ms@2.0.0: {} - ms@2.1.2: {} - ms@2.1.3: {} murmurhash-js@1.0.0: {} @@ -25793,7 +25775,7 @@ snapshots: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.3 - debug: 4.3.4 + debug: 4.4.0 get-uri: 6.0.4 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -25925,7 +25907,7 @@ snapshots: dependencies: '@types/seed-random': 2.2.4 crc32: 0.2.2 - debug: 4.3.4 + debug: 4.4.0 seed-random: 2.2.0 tslib: 2.5.0 transitivePeerDependencies: @@ -26306,7 +26288,7 @@ snapshots: proxy-agent@6.5.0: dependencies: agent-base: 7.1.3 - debug: 4.3.4 + debug: 4.4.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 lru-cache: 7.18.3 @@ -27260,7 +27242,7 @@ snapshots: simple-peer@9.11.1: dependencies: buffer: 6.0.3 - debug: 4.3.4 + debug: 4.4.0 err-code: 3.0.1 get-browser-rtc: 1.1.0 queue-microtask: 1.2.3 @@ -27309,7 +27291,7 @@ snapshots: socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.3 - debug: 4.3.4 + debug: 4.4.0 socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -28303,7 +28285,7 @@ snapshots: dependencies: chalk: 2.4.2 commander: 3.0.2 - debug: 4.3.4 + debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -28525,7 +28507,7 @@ snapshots: wpcom-proxy-request@7.0.6: dependencies: - debug: 4.3.4 + debug: 4.4.0 uuid: 9.0.1 wp-error: 1.3.0 transitivePeerDependencies: diff --git a/projects/js-packages/ai-client/changelog/renovate-debug-4.x b/projects/js-packages/ai-client/changelog/renovate-debug-4.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/ai-client/changelog/renovate-debug-4.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/ai-client/package.json b/projects/js-packages/ai-client/package.json index 62a760cafa27f..6e1df14933c54 100644 --- a/projects/js-packages/ai-client/package.json +++ b/projects/js-packages/ai-client/package.json @@ -62,7 +62,7 @@ "@wordpress/i18n": "5.14.0", "@wordpress/icons": "10.14.0", "clsx": "2.1.1", - "debug": "4.3.4", + "debug": "4.4.0", "markdown-it": "14.0.0", "react": "18.3.1", "react-dom": "18.3.1", diff --git a/projects/js-packages/analytics/changelog/renovate-debug-4.x b/projects/js-packages/analytics/changelog/renovate-debug-4.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/analytics/changelog/renovate-debug-4.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/analytics/package.json b/projects/js-packages/analytics/package.json index f5a04b9172c52..0e9535087bacf 100644 --- a/projects/js-packages/analytics/package.json +++ b/projects/js-packages/analytics/package.json @@ -15,7 +15,7 @@ "license": "GPL-2.0-or-later", "dependencies": {}, "devDependencies": { - "debug": "4.3.4", + "debug": "4.4.0", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0" }, diff --git a/projects/js-packages/connection/changelog/renovate-debug-4.x b/projects/js-packages/connection/changelog/renovate-debug-4.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/connection/changelog/renovate-debug-4.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/connection/package.json b/projects/js-packages/connection/package.json index 03ef6b95d6a64..1251774be92f8 100644 --- a/projects/js-packages/connection/package.json +++ b/projects/js-packages/connection/package.json @@ -27,7 +27,7 @@ "@wordpress/i18n": "5.14.0", "@wordpress/icons": "10.14.0", "clsx": "2.1.1", - "debug": "4.3.4", + "debug": "4.4.0", "prop-types": "^15.7.2" }, "devDependencies": { diff --git a/projects/js-packages/scan/changelog/renovate-debug-4.x b/projects/js-packages/scan/changelog/renovate-debug-4.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/scan/changelog/renovate-debug-4.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/scan/package.json b/projects/js-packages/scan/package.json index b25d22b964a2c..20fd109b6a204 100644 --- a/projects/js-packages/scan/package.json +++ b/projects/js-packages/scan/package.json @@ -52,7 +52,7 @@ "@wordpress/element": "6.14.0", "@wordpress/i18n": "5.14.0", "@wordpress/url": "4.14.0", - "debug": "4.3.4", + "debug": "4.4.0", "react": "^18.2.0", "react-dom": "^18.2.0" }, diff --git a/projects/packages/jetpack-mu-wpcom/changelog/renovate-debug-4.x b/projects/packages/jetpack-mu-wpcom/changelog/renovate-debug-4.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/jetpack-mu-wpcom/changelog/renovate-debug-4.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/jetpack-mu-wpcom/package.json b/projects/packages/jetpack-mu-wpcom/package.json index 0edf6d986809b..a2c12246bc23f 100644 --- a/projects/packages/jetpack-mu-wpcom/package.json +++ b/projects/packages/jetpack-mu-wpcom/package.json @@ -72,7 +72,7 @@ "@wordpress/router": "^1.8.11", "@wordpress/url": "4.14.0", "clsx": "2.1.1", - "debug": "4.3.4", + "debug": "4.4.0", "preact": "^10.13.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/projects/packages/my-jetpack/changelog/renovate-debug-4.x b/projects/packages/my-jetpack/changelog/renovate-debug-4.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/my-jetpack/changelog/renovate-debug-4.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/my-jetpack/package.json b/projects/packages/my-jetpack/package.json index ca0e358443927..2966371966e50 100644 --- a/projects/packages/my-jetpack/package.json +++ b/projects/packages/my-jetpack/package.json @@ -43,7 +43,7 @@ "@wordpress/icons": "10.14.0", "@wordpress/url": "4.14.0", "clsx": "2.1.1", - "debug": "4.3.4", + "debug": "4.4.0", "gridicons": "3.4.1", "prop-types": "15.8.1", "react-router-dom": "6.6.2" diff --git a/projects/packages/videopress/changelog/renovate-debug-4.x b/projects/packages/videopress/changelog/renovate-debug-4.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/videopress/changelog/renovate-debug-4.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/videopress/package.json b/projects/packages/videopress/package.json index adeaa7f41a4a1..abd5d66891ab2 100644 --- a/projects/packages/videopress/package.json +++ b/projects/packages/videopress/package.json @@ -81,7 +81,7 @@ "@wordpress/icons": "10.14.0", "@wordpress/url": "4.14.0", "clsx": "2.1.1", - "debug": "4.3.4", + "debug": "4.4.0", "filesize": "8.0.6", "react": "18.3.1", "react-dom": "18.3.1", diff --git a/projects/plugins/jetpack/changelog/renovate-debug-4.x b/projects/plugins/jetpack/changelog/renovate-debug-4.x new file mode 100644 index 0000000000000..1eaea6a769e84 --- /dev/null +++ b/projects/plugins/jetpack/changelog/renovate-debug-4.x @@ -0,0 +1,4 @@ +Significance: patch +Type: other + +Updated package dependencies. diff --git a/projects/plugins/jetpack/package.json b/projects/plugins/jetpack/package.json index a46d4fcb0d386..a97bad764d15e 100644 --- a/projects/plugins/jetpack/package.json +++ b/projects/plugins/jetpack/package.json @@ -89,7 +89,7 @@ "cookie": "1.0.1", "copy-webpack-plugin": "11.0.0", "crypto-js": "4.2.0", - "debug": "4.3.4", + "debug": "4.4.0", "email-validator": "2.0.4", "events": "3.3.0", "filesize": "8.0.6", diff --git a/tools/js-tools/package.json b/tools/js-tools/package.json index 3b4ca9a173da6..7d0b486ed04fd 100644 --- a/tools/js-tools/package.json +++ b/tools/js-tools/package.json @@ -26,7 +26,7 @@ "@wordpress/jest-console": "8.14.0", "babel-jest": "29.4.3", "chalk": "5.4.1", - "debug": "4.3.4", + "debug": "4.4.0", "enquirer": "2.4.1", "eslint": "9.16.0", "eslint-config-prettier": "9.1.0", From c0cb5e5214193bcf172801be2a39721d05b78e42 Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Wed, 1 Jan 2025 22:18:16 +0100 Subject: [PATCH 21/98] Update dependency wordpress/classic-editor-plugin to v1.6.7 (#40814) * Update dependency wordpress/classic-editor-plugin to v1.6.7 * Update lockfile --------- Co-authored-by: Renovate Bot Co-authored-by: tbradsha <32492176+tbradsha@users.noreply.github.com> --- .../renovate-wordpress-classic-editor-plugin-1.x | 4 ++++ projects/plugins/wpcomsh/composer.json | 8 ++++---- projects/plugins/wpcomsh/composer.lock | 8 ++++---- 3 files changed, 12 insertions(+), 8 deletions(-) create mode 100644 projects/plugins/wpcomsh/changelog/renovate-wordpress-classic-editor-plugin-1.x diff --git a/projects/plugins/wpcomsh/changelog/renovate-wordpress-classic-editor-plugin-1.x b/projects/plugins/wpcomsh/changelog/renovate-wordpress-classic-editor-plugin-1.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/wpcomsh/changelog/renovate-wordpress-classic-editor-plugin-1.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/wpcomsh/composer.json b/projects/plugins/wpcomsh/composer.json index b730569d4d8cf..2a3ec17bd1074 100644 --- a/projects/plugins/wpcomsh/composer.json +++ b/projects/plugins/wpcomsh/composer.json @@ -10,7 +10,7 @@ "automattic/custom-fonts-typekit": "^2.0", "automattic/text-media-widget-styles": "^2.0", "automattic/wc-calypso-bridge": "2.8.1", - "wordpress/classic-editor-plugin": "1.5", + "wordpress/classic-editor-plugin": "1.6.7", "automattic/jetpack-config": "@dev", "automattic/jetpack-post-list": "@dev", "automattic/jetpack-mu-wpcom": "@dev", @@ -104,15 +104,15 @@ "type": "package", "package": { "name": "wordpress/classic-editor-plugin", - "version": "1.5", + "version": "1.6.7", "dist": { - "url": "https://downloads.wordpress.org/plugin/classic-editor.1.5.zip", + "url": "https://downloads.wordpress.org/plugin/classic-editor.1.6.7.zip", "type": "zip" }, "source": { "url": "https://plugins.svn.wordpress.org/classic-editor/", "type": "svn", - "reference": "tags/1.5/" + "reference": "tags/1.6.7/" }, "autoload": { "classmap": [] diff --git a/projects/plugins/wpcomsh/composer.lock b/projects/plugins/wpcomsh/composer.lock index b1f66cadbde5d..b3c2e266f04c9 100644 --- a/projects/plugins/wpcomsh/composer.lock +++ b/projects/plugins/wpcomsh/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "968ee97b016c98ecc588293d5e0b4d65", + "content-hash": "8c59e3217b08130af57bb70a9a912b62", "packages": [ { "name": "automattic/at-pressable-podcasting", @@ -2140,15 +2140,15 @@ }, { "name": "wordpress/classic-editor-plugin", - "version": "1.5", + "version": "1.6.7", "source": { "type": "svn", "url": "https://plugins.svn.wordpress.org/classic-editor/", - "reference": "tags/1.5/" + "reference": "tags/1.6.7/" }, "dist": { "type": "zip", - "url": "https://downloads.wordpress.org/plugin/classic-editor.1.5.zip" + "url": "https://downloads.wordpress.org/plugin/classic-editor.1.6.7.zip" }, "type": "library", "autoload": { From e1ad4007669e8d2642f086feb9efe7817631b771 Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Wed, 1 Jan 2025 22:40:31 +0100 Subject: [PATCH 22/98] Update dependency browserslist to v4.24.3 (#40809) * Update dependency browserslist to v4.24.3 * Fix test * Add changelog --------- Co-authored-by: Renovate Bot Co-authored-by: tbradsha <32492176+tbradsha@users.noreply.github.com> --- pnpm-lock.yaml | 92 ++++++++----------- .../changelog/renovate-browserslist-4.x | 4 + .../tests/funcs.test.js | 2 +- .../changelog/renovate-browserslist-4.x | 4 + .../js-packages/webpack-config/package.json | 2 +- 5 files changed, 47 insertions(+), 57 deletions(-) create mode 100644 projects/js-packages/eslint-config-target-es/changelog/renovate-browserslist-4.x create mode 100644 projects/js-packages/webpack-config/changelog/renovate-browserslist-4.x diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 86a393be04d12..7b8b406f83e93 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -722,7 +722,7 @@ importers: version: 5.5.49 browserslist: specifier: ^4.17.6 - version: 4.23.1 + version: 4.24.3 debug: specifier: ^4.3.2 version: 4.4.0 @@ -1701,8 +1701,8 @@ importers: specifier: 0.10.6 version: 0.10.6(@babel/core@7.26.0) browserslist: - specifier: 4.23.1 - version: 4.23.1 + specifier: 4.24.3 + version: 4.24.3 core-js: specifier: 3.38.1 version: 3.38.1 @@ -9082,13 +9082,8 @@ packages: browser-assert@1.2.1: resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} - browserslist@4.23.1: - resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - browserslist@4.24.2: - resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} + browserslist@4.24.3: + resolution: {integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -9178,8 +9173,8 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001687: - resolution: {integrity: sha512-0S/FDhf4ZiqrTUiQ39dKeUjYRjkv7lOZU1Dgif2rIqrTzX/1wV2hfKu9TOm1IHkdSijfLswxTFzl/cvir+SLSQ==} + caniuse-lite@1.0.30001690: + resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==} capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} @@ -9972,8 +9967,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.71: - resolution: {integrity: sha512-dB68l59BI75W1BUGVTAEJy45CEVuEGy9qPVVQ8pnHyHMn36PLPPoE1mjLH+lo9rKulO3HC2OhbACI/8tCqJBcA==} + electron-to-chromium@1.5.76: + resolution: {integrity: sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==} elegant-spinner@1.0.1: resolution: {integrity: sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==} @@ -12269,8 +12264,8 @@ packages: resolution: {integrity: sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==} engines: {node: '>=8'} - node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} @@ -15370,7 +15365,7 @@ snapshots: dependencies: '@babel/compat-data': 7.26.3 '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.2 + browserslist: 4.24.3 lru-cache: 5.1.1 semver: 6.3.1 @@ -19207,7 +19202,7 @@ snapshots: '@babel/runtime': 7.26.0 '@wordpress/browserslist-config': 6.14.0 '@wordpress/warning': 3.13.0 - browserslist: 4.23.1 + browserslist: 4.24.3 core-js: 3.38.1 react: 18.3.1 transitivePeerDependencies: @@ -21260,8 +21255,8 @@ snapshots: autoprefixer@10.4.20(postcss@8.4.47): dependencies: - browserslist: 4.24.2 - caniuse-lite: 1.0.30001687 + browserslist: 4.24.3 + caniuse-lite: 1.0.30001690 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -21521,19 +21516,12 @@ snapshots: browser-assert@1.2.1: {} - browserslist@4.23.1: - dependencies: - caniuse-lite: 1.0.30001687 - electron-to-chromium: 1.5.71 - node-releases: 2.0.18 - update-browserslist-db: 1.1.1(browserslist@4.23.1) - - browserslist@4.24.2: + browserslist@4.24.3: dependencies: - caniuse-lite: 1.0.30001687 - electron-to-chromium: 1.5.71 - node-releases: 2.0.18 - update-browserslist-db: 1.1.1(browserslist@4.24.2) + caniuse-lite: 1.0.30001690 + electron-to-chromium: 1.5.76 + node-releases: 2.0.19 + update-browserslist-db: 1.1.1(browserslist@4.24.3) bs-logger@0.2.6: dependencies: @@ -21612,12 +21600,12 @@ snapshots: caniuse-api@3.0.0: dependencies: - browserslist: 4.23.1 - caniuse-lite: 1.0.30001687 + browserslist: 4.24.3 + caniuse-lite: 1.0.30001690 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001687: {} + caniuse-lite@1.0.30001690: {} capital-case@1.0.4: dependencies: @@ -21990,7 +21978,7 @@ snapshots: core-js-compat@3.39.0: dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 core-js@3.38.1: {} @@ -22128,7 +22116,7 @@ snapshots: cssnano-preset-default@6.1.2(postcss@8.4.47): dependencies: - browserslist: 4.23.1 + browserslist: 4.24.3 css-declaration-sorter: 7.2.0(postcss@8.4.47) cssnano-utils: 4.0.2(postcss@8.4.47) postcss: 8.4.47 @@ -22515,7 +22503,7 @@ snapshots: dependencies: jake: 10.9.2 - electron-to-chromium@1.5.71: {} + electron-to-chromium@1.5.76: {} elegant-spinner@1.0.1: {} @@ -25523,7 +25511,7 @@ snapshots: dependencies: process-on-spawn: 1.1.0 - node-releases@2.0.18: {} + node-releases@2.0.19: {} normalize-path@3.0.0: {} @@ -25961,7 +25949,7 @@ snapshots: postcss-colormin@6.1.0(postcss@8.4.47): dependencies: - browserslist: 4.23.1 + browserslist: 4.24.3 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.4.47 @@ -25969,7 +25957,7 @@ snapshots: postcss-convert-values@6.1.0(postcss@8.4.47): dependencies: - browserslist: 4.23.1 + browserslist: 4.24.3 postcss: 8.4.47 postcss-value-parser: 4.2.0 @@ -26023,7 +26011,7 @@ snapshots: postcss-merge-rules@6.1.1(postcss@8.4.47): dependencies: - browserslist: 4.23.1 + browserslist: 4.24.3 caniuse-api: 3.0.0 cssnano-utils: 4.0.2(postcss@8.4.47) postcss: 8.4.47 @@ -26043,7 +26031,7 @@ snapshots: postcss-minify-params@6.1.0(postcss@8.4.47): dependencies: - browserslist: 4.23.1 + browserslist: 4.24.3 cssnano-utils: 4.0.2(postcss@8.4.47) postcss: 8.4.47 postcss-value-parser: 4.2.0 @@ -26129,7 +26117,7 @@ snapshots: postcss-normalize-unicode@6.1.0(postcss@8.4.47): dependencies: - browserslist: 4.23.1 + browserslist: 4.24.3 postcss: 8.4.47 postcss-value-parser: 4.2.0 @@ -26155,7 +26143,7 @@ snapshots: postcss-reduce-initial@6.1.0(postcss@8.4.47): dependencies: - browserslist: 4.23.1 + browserslist: 4.24.3 caniuse-api: 3.0.0 postcss: 8.4.47 @@ -27585,7 +27573,7 @@ snapshots: stylehacks@6.1.1(postcss@8.4.47): dependencies: - browserslist: 4.23.1 + browserslist: 4.24.3 postcss: 8.4.47 postcss-selector-parser: 6.1.2 @@ -28132,15 +28120,9 @@ snapshots: acorn: 8.14.0 webpack-virtual-modules: 0.6.2 - update-browserslist-db@1.1.1(browserslist@4.23.1): - dependencies: - browserslist: 4.23.1 - escalade: 3.2.0 - picocolors: 1.1.1 - - update-browserslist-db@1.1.1(browserslist@4.24.2): + update-browserslist-db@1.1.1(browserslist@4.24.3): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 escalade: 3.2.0 picocolors: 1.1.1 @@ -28378,7 +28360,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.14.0 acorn-import-attributes: 1.9.5(acorn@8.14.0) - browserslist: 4.23.1 + browserslist: 4.24.3 chrome-trace-event: 1.0.4 enhanced-resolve: 5.17.1 es-module-lexer: 1.5.4 diff --git a/projects/js-packages/eslint-config-target-es/changelog/renovate-browserslist-4.x b/projects/js-packages/eslint-config-target-es/changelog/renovate-browserslist-4.x new file mode 100644 index 0000000000000..70e49af418e3d --- /dev/null +++ b/projects/js-packages/eslint-config-target-es/changelog/renovate-browserslist-4.x @@ -0,0 +1,4 @@ +Significance: patch +Type: fixed + +Tests: Adjust test to account for iOS Safari version ranges. diff --git a/projects/js-packages/eslint-config-target-es/tests/funcs.test.js b/projects/js-packages/eslint-config-target-es/tests/funcs.test.js index a88b667b1d7ce..00aa293709133 100644 --- a/projects/js-packages/eslint-config-target-es/tests/funcs.test.js +++ b/projects/js-packages/eslint-config-target-es/tests/funcs.test.js @@ -18,7 +18,7 @@ test( 'getBrowsers', () => { chrome: '21.0.0', firefox: '21.0.0', ie: '10.0.0', - safari_ios: '14.5.0', + safari_ios: '14.0.0', } ); } ); diff --git a/projects/js-packages/webpack-config/changelog/renovate-browserslist-4.x b/projects/js-packages/webpack-config/changelog/renovate-browserslist-4.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/webpack-config/changelog/renovate-browserslist-4.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/webpack-config/package.json b/projects/js-packages/webpack-config/package.json index 99ee290637686..fe1949211d6a0 100644 --- a/projects/js-packages/webpack-config/package.json +++ b/projects/js-packages/webpack-config/package.json @@ -32,7 +32,7 @@ "@wordpress/dependency-extraction-webpack-plugin": "6.14.0", "babel-loader": "9.1.2", "babel-plugin-polyfill-corejs3": "0.10.6", - "browserslist": "4.23.1", + "browserslist": "4.24.3", "core-js": "3.38.1", "css-loader": "6.5.1", "css-minimizer-webpack-plugin": "5.0.1", From cfeaf5639316ff027636c62441126c5346529b39 Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Wed, 1 Jan 2025 22:41:35 +0100 Subject: [PATCH 23/98] Update dependency markdown-it to v14.1.0 (#40811) Co-authored-by: Renovate Bot Co-authored-by: tbradsha <32492176+tbradsha@users.noreply.github.com> --- pnpm-lock.yaml | 14 +++++++------- .../ai-client/changelog/renovate-markdown-it-14.x | 4 ++++ projects/js-packages/ai-client/package.json | 2 +- .../jetpack/changelog/renovate-markdown-it-14.x | 4 ++++ projects/plugins/jetpack/package.json | 2 +- 5 files changed, 17 insertions(+), 9 deletions(-) create mode 100644 projects/js-packages/ai-client/changelog/renovate-markdown-it-14.x create mode 100644 projects/plugins/jetpack/changelog/renovate-markdown-it-14.x diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7b8b406f83e93..c6fed86e30d02 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -172,8 +172,8 @@ importers: specifier: 4.4.0 version: 4.4.0 markdown-it: - specifier: 14.0.0 - version: 14.0.0 + specifier: 14.1.0 + version: 14.1.0 react: specifier: 18.3.1 version: 18.3.1 @@ -3972,8 +3972,8 @@ importers: specifier: 1.13.0 version: 1.13.0 markdown-it: - specifier: 14.0.0 - version: 14.0.0 + specifier: 14.1.0 + version: 14.1.0 markdown-it-footnote: specifier: 3.0.3 version: 3.0.3 @@ -11931,8 +11931,8 @@ packages: markdown-it-footnote@3.0.3: resolution: {integrity: sha512-YZMSuCGVZAjzKMn+xqIco9d1cLGxbELHZ9do/TSYVzraooV8ypsppKNmUJ0fVH5ljkCInQAtFpm8Rb3eXSrt5w==} - markdown-it@14.0.0: - resolution: {integrity: sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw==} + markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} hasBin: true markdown-table@3.0.4: @@ -25054,7 +25054,7 @@ snapshots: markdown-it-footnote@3.0.3: {} - markdown-it@14.0.0: + markdown-it@14.1.0: dependencies: argparse: 2.0.1 entities: 4.5.0 diff --git a/projects/js-packages/ai-client/changelog/renovate-markdown-it-14.x b/projects/js-packages/ai-client/changelog/renovate-markdown-it-14.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/ai-client/changelog/renovate-markdown-it-14.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/ai-client/package.json b/projects/js-packages/ai-client/package.json index 6e1df14933c54..1fedd1be07832 100644 --- a/projects/js-packages/ai-client/package.json +++ b/projects/js-packages/ai-client/package.json @@ -63,7 +63,7 @@ "@wordpress/icons": "10.14.0", "clsx": "2.1.1", "debug": "4.4.0", - "markdown-it": "14.0.0", + "markdown-it": "14.1.0", "react": "18.3.1", "react-dom": "18.3.1", "turndown": "7.1.2" diff --git a/projects/plugins/jetpack/changelog/renovate-markdown-it-14.x b/projects/plugins/jetpack/changelog/renovate-markdown-it-14.x new file mode 100644 index 0000000000000..1eaea6a769e84 --- /dev/null +++ b/projects/plugins/jetpack/changelog/renovate-markdown-it-14.x @@ -0,0 +1,4 @@ +Significance: patch +Type: other + +Updated package dependencies. diff --git a/projects/plugins/jetpack/package.json b/projects/plugins/jetpack/package.json index a97bad764d15e..bfcec1362d5fd 100644 --- a/projects/plugins/jetpack/package.json +++ b/projects/plugins/jetpack/package.json @@ -97,7 +97,7 @@ "gridicons": "3.4.1", "jsdom": "20.0.3", "mapbox-gl": "1.13.0", - "markdown-it": "14.0.0", + "markdown-it": "14.1.0", "markdown-it-footnote": "3.0.3", "nspell": "2.1.5", "photon": "4.1.1", From 9a96a302b7e6229a49578102f59cc7292ae49cf9 Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Wed, 1 Jan 2025 23:11:52 +0100 Subject: [PATCH 24/98] Update dependency config to v3.3.12 (#40815) Co-authored-by: Renovate Bot --- pnpm-lock.yaml | 42 +++++++++---------- .../changelog/renovate-config-3.x | 4 ++ .../tests/e2e/package.json | 2 +- .../boost/changelog/renovate-config-3.x | 4 ++ projects/plugins/boost/tests/e2e/package.json | 2 +- .../changelog/renovate-config-3.x | 4 ++ .../tests/e2e/package.json | 2 +- .../jetpack/changelog/renovate-config-3.x | 4 ++ .../plugins/jetpack/tests/e2e/package.json | 2 +- .../search/changelog/renovate-config-3.x | 4 ++ .../plugins/search/tests/e2e/package.json | 2 +- .../social/changelog/renovate-config-3.x | 4 ++ .../plugins/social/tests/e2e/package.json | 2 +- .../changelog/renovate-config-3.x | 4 ++ .../starter-plugin/tests/e2e/package.json | 2 +- .../videopress/changelog/renovate-config-3.x | 4 ++ .../plugins/videopress/tests/e2e/package.json | 2 +- tools/e2e-commons/package.json | 2 +- 18 files changed, 62 insertions(+), 30 deletions(-) create mode 100644 projects/plugins/automattic-for-agencies-client/changelog/renovate-config-3.x create mode 100644 projects/plugins/boost/changelog/renovate-config-3.x create mode 100644 projects/plugins/classic-theme-helper-plugin/changelog/renovate-config-3.x create mode 100644 projects/plugins/jetpack/changelog/renovate-config-3.x create mode 100644 projects/plugins/search/changelog/renovate-config-3.x create mode 100644 projects/plugins/social/changelog/renovate-config-3.x create mode 100644 projects/plugins/starter-plugin/changelog/renovate-config-3.x create mode 100644 projects/plugins/videopress/changelog/renovate-config-3.x diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c6fed86e30d02..4802adb4d71cc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3386,8 +3386,8 @@ importers: specifier: 2.9.2 version: 2.9.2 config: - specifier: 3.3.7 - version: 3.3.7 + specifier: 3.3.12 + version: 3.3.12 jetpack-e2e-commons: specifier: workspace:* version: link:../../../../../tools/e2e-commons @@ -3543,8 +3543,8 @@ importers: specifier: 2.9.2 version: 2.9.2 config: - specifier: 3.3.7 - version: 3.3.7 + specifier: 3.3.12 + version: 3.3.12 jetpack-e2e-commons: specifier: workspace:* version: link:../../../../../tools/e2e-commons @@ -3634,8 +3634,8 @@ importers: specifier: 2.9.2 version: 2.9.2 config: - specifier: 3.3.7 - version: 3.3.7 + specifier: 3.3.12 + version: 3.3.12 jetpack-e2e-commons: specifier: workspace:* version: link:../../../../../tools/e2e-commons @@ -4178,8 +4178,8 @@ importers: specifier: 2.9.2 version: 2.9.2 config: - specifier: 3.3.7 - version: 3.3.7 + specifier: 3.3.12 + version: 3.3.12 jetpack-e2e-commons: specifier: workspace:* version: link:../../../../../tools/e2e-commons @@ -4303,8 +4303,8 @@ importers: specifier: 2.9.2 version: 2.9.2 config: - specifier: 3.3.7 - version: 3.3.7 + specifier: 3.3.12 + version: 3.3.12 jetpack-e2e-commons: specifier: workspace:* version: link:../../../../../tools/e2e-commons @@ -4442,8 +4442,8 @@ importers: specifier: 2.9.2 version: 2.9.2 config: - specifier: 3.3.7 - version: 3.3.7 + specifier: 3.3.12 + version: 3.3.12 jetpack-e2e-commons: specifier: workspace:* version: link:../../../../../tools/e2e-commons @@ -4533,8 +4533,8 @@ importers: specifier: 2.9.2 version: 2.9.2 config: - specifier: 3.3.7 - version: 3.3.7 + specifier: 3.3.12 + version: 3.3.12 jetpack-e2e-commons: specifier: workspace:* version: link:../../../../../tools/e2e-commons @@ -4638,8 +4638,8 @@ importers: specifier: 2.9.2 version: 2.9.2 config: - specifier: 3.3.7 - version: 3.3.7 + specifier: 3.3.12 + version: 3.3.12 jetpack-e2e-commons: specifier: workspace:* version: link:../../../../../tools/e2e-commons @@ -4768,8 +4768,8 @@ importers: specifier: 5.4.1 version: 5.4.1 config: - specifier: 3.3.7 - version: 3.3.7 + specifier: 3.3.12 + version: 3.3.12 localtunnel: specifier: 2.0.2 version: 2.0.2 @@ -9425,8 +9425,8 @@ packages: engines: {node: ^12.20.0 || ^14.13.0 || >=16.0.0} hasBin: true - config@3.3.7: - resolution: {integrity: sha512-mX/n7GKDYZMqvvkY6e6oBY49W8wxdmQt+ho/5lhwFDXqQW9gI+Ahp8EKp8VAbISPnmf2+Bv5uZK7lKXZ6pf1aA==} + config@3.3.12: + resolution: {integrity: sha512-Vmx389R/QVM3foxqBzXO8t2tUikYZP64Q6vQxGrsMpREeJc/aWRnPRERXWsYzOHAumx/AOoILWe6nU3ZJL+6Sw==} engines: {node: '>= 10.0.0'} configstore@5.0.1: @@ -21927,7 +21927,7 @@ snapshots: tree-kill: 1.2.2 yargs: 17.6.2 - config@3.3.7: + config@3.3.12: dependencies: json5: 2.2.3 diff --git a/projects/plugins/automattic-for-agencies-client/changelog/renovate-config-3.x b/projects/plugins/automattic-for-agencies-client/changelog/renovate-config-3.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/automattic-for-agencies-client/changelog/renovate-config-3.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/automattic-for-agencies-client/tests/e2e/package.json b/projects/plugins/automattic-for-agencies-client/tests/e2e/package.json index 9d667215dfbb5..aa25869d186ce 100644 --- a/projects/plugins/automattic-for-agencies-client/tests/e2e/package.json +++ b/projects/plugins/automattic-for-agencies-client/tests/e2e/package.json @@ -30,7 +30,7 @@ "devDependencies": { "@playwright/test": "1.48.2", "allure-playwright": "2.9.2", - "config": "3.3.7", + "config": "3.3.12", "jetpack-e2e-commons": "workspace:*" }, "browserslist": [], diff --git a/projects/plugins/boost/changelog/renovate-config-3.x b/projects/plugins/boost/changelog/renovate-config-3.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/boost/changelog/renovate-config-3.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/boost/tests/e2e/package.json b/projects/plugins/boost/tests/e2e/package.json index db9a81ef6e877..7492f61b3921e 100644 --- a/projects/plugins/boost/tests/e2e/package.json +++ b/projects/plugins/boost/tests/e2e/package.json @@ -30,7 +30,7 @@ "devDependencies": { "@playwright/test": "1.48.2", "allure-playwright": "2.9.2", - "config": "3.3.7", + "config": "3.3.12", "jetpack-e2e-commons": "workspace:*" }, "browserslist": [], diff --git a/projects/plugins/classic-theme-helper-plugin/changelog/renovate-config-3.x b/projects/plugins/classic-theme-helper-plugin/changelog/renovate-config-3.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/classic-theme-helper-plugin/changelog/renovate-config-3.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/classic-theme-helper-plugin/tests/e2e/package.json b/projects/plugins/classic-theme-helper-plugin/tests/e2e/package.json index ac579fe0f32ba..40e6a78c29b0c 100644 --- a/projects/plugins/classic-theme-helper-plugin/tests/e2e/package.json +++ b/projects/plugins/classic-theme-helper-plugin/tests/e2e/package.json @@ -30,7 +30,7 @@ "devDependencies": { "@playwright/test": "1.48.2", "allure-playwright": "2.9.2", - "config": "3.3.7", + "config": "3.3.12", "jetpack-e2e-commons": "workspace:*" }, "browserslist": [], diff --git a/projects/plugins/jetpack/changelog/renovate-config-3.x b/projects/plugins/jetpack/changelog/renovate-config-3.x new file mode 100644 index 0000000000000..1eaea6a769e84 --- /dev/null +++ b/projects/plugins/jetpack/changelog/renovate-config-3.x @@ -0,0 +1,4 @@ +Significance: patch +Type: other + +Updated package dependencies. diff --git a/projects/plugins/jetpack/tests/e2e/package.json b/projects/plugins/jetpack/tests/e2e/package.json index 3af8c58958fc4..b1f02eefeff19 100644 --- a/projects/plugins/jetpack/tests/e2e/package.json +++ b/projects/plugins/jetpack/tests/e2e/package.json @@ -36,7 +36,7 @@ "devDependencies": { "@playwright/test": "1.48.2", "allure-playwright": "2.9.2", - "config": "3.3.7", + "config": "3.3.12", "jetpack-e2e-commons": "workspace:*" }, "browserslist": [], diff --git a/projects/plugins/search/changelog/renovate-config-3.x b/projects/plugins/search/changelog/renovate-config-3.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/search/changelog/renovate-config-3.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/search/tests/e2e/package.json b/projects/plugins/search/tests/e2e/package.json index 6440f8675589e..b8ee87c5b7fda 100644 --- a/projects/plugins/search/tests/e2e/package.json +++ b/projects/plugins/search/tests/e2e/package.json @@ -28,7 +28,7 @@ "devDependencies": { "@playwright/test": "1.48.2", "allure-playwright": "2.9.2", - "config": "3.3.7", + "config": "3.3.12", "jetpack-e2e-commons": "workspace:*" }, "browserslist": [], diff --git a/projects/plugins/social/changelog/renovate-config-3.x b/projects/plugins/social/changelog/renovate-config-3.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/social/changelog/renovate-config-3.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/social/tests/e2e/package.json b/projects/plugins/social/tests/e2e/package.json index b478405ef1752..560f8245badd8 100644 --- a/projects/plugins/social/tests/e2e/package.json +++ b/projects/plugins/social/tests/e2e/package.json @@ -32,7 +32,7 @@ "devDependencies": { "@playwright/test": "1.48.2", "allure-playwright": "2.9.2", - "config": "3.3.7", + "config": "3.3.12", "jetpack-e2e-commons": "workspace:*" }, "browserslist": [], diff --git a/projects/plugins/starter-plugin/changelog/renovate-config-3.x b/projects/plugins/starter-plugin/changelog/renovate-config-3.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/starter-plugin/changelog/renovate-config-3.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/starter-plugin/tests/e2e/package.json b/projects/plugins/starter-plugin/tests/e2e/package.json index 68195c8b5978c..d2d6f875dff04 100644 --- a/projects/plugins/starter-plugin/tests/e2e/package.json +++ b/projects/plugins/starter-plugin/tests/e2e/package.json @@ -30,7 +30,7 @@ "devDependencies": { "@playwright/test": "1.48.2", "allure-playwright": "2.9.2", - "config": "3.3.7", + "config": "3.3.12", "jetpack-e2e-commons": "workspace:*" }, "browserslist": [], diff --git a/projects/plugins/videopress/changelog/renovate-config-3.x b/projects/plugins/videopress/changelog/renovate-config-3.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/videopress/changelog/renovate-config-3.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/videopress/tests/e2e/package.json b/projects/plugins/videopress/tests/e2e/package.json index c7c9f604db86b..46885a9481338 100644 --- a/projects/plugins/videopress/tests/e2e/package.json +++ b/projects/plugins/videopress/tests/e2e/package.json @@ -30,7 +30,7 @@ "devDependencies": { "@playwright/test": "1.48.2", "allure-playwright": "2.9.2", - "config": "3.3.7", + "config": "3.3.12", "jetpack-e2e-commons": "workspace:*" }, "browserslist": [], diff --git a/tools/e2e-commons/package.json b/tools/e2e-commons/package.json index e26c5a1430704..ba94f3a366a03 100644 --- a/tools/e2e-commons/package.json +++ b/tools/e2e-commons/package.json @@ -25,7 +25,7 @@ "allure-playwright": "2.9.2", "axios": "1.7.4", "chalk": "5.4.1", - "config": "3.3.7", + "config": "3.3.12", "localtunnel": "2.0.2", "lodash-es": "4.17.21", "node-fetch": "2.6.7", From dc663415e8269966f361f8beaf09783c9abf07f2 Mon Sep 17 00:00:00 2001 From: Manzoor Wani Date: Wed, 1 Jan 2025 18:55:42 -0800 Subject: [PATCH 25/98] Social Logos | Fix package.json exports to expose built in types (#40801) * Social Logos | Fix package.json exports to expose built in types * Deprecate default import * Update docs --------- Co-authored-by: tbradsha <32492176+tbradsha@users.noreply.github.com> --- projects/js-packages/social-logos/README.md | 2 +- .../social-logos/changelog/deprecate-default-import | 9 +++++++++ .../changelog/fix-types-export-for-social-logos | 4 ++++ projects/js-packages/social-logos/package.json | 7 +++++-- projects/js-packages/social-logos/src/react/index.ts | 9 ++++++++- 5 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 projects/js-packages/social-logos/changelog/deprecate-default-import create mode 100644 projects/js-packages/social-logos/changelog/fix-types-export-for-social-logos diff --git a/projects/js-packages/social-logos/README.md b/projects/js-packages/social-logos/README.md index 52e3af01048c1..d59edf56290cf 100644 --- a/projects/js-packages/social-logos/README.md +++ b/projects/js-packages/social-logos/README.md @@ -21,7 +21,7 @@ npm install social-logos --save #### Usage ``` -import SocialLogo from 'social-logos'; +import { SocialLogo } from 'social-logos'; function MyComponent() { return ; } diff --git a/projects/js-packages/social-logos/changelog/deprecate-default-import b/projects/js-packages/social-logos/changelog/deprecate-default-import new file mode 100644 index 0000000000000..6464460c36429 --- /dev/null +++ b/projects/js-packages/social-logos/changelog/deprecate-default-import @@ -0,0 +1,9 @@ +Significance: patch +Type: deprecated + +Default import is now deprecated in favor of named import and will be removed in future. + +```diff +- import SocialLogos from 'social-logos'; ++ import { SocialLogo } from 'social-logos'; +``` diff --git a/projects/js-packages/social-logos/changelog/fix-types-export-for-social-logos b/projects/js-packages/social-logos/changelog/fix-types-export-for-social-logos new file mode 100644 index 0000000000000..618e4adac19ff --- /dev/null +++ b/projects/js-packages/social-logos/changelog/fix-types-export-for-social-logos @@ -0,0 +1,4 @@ +Significance: patch +Type: fixed + +Fixed package.json exports to expose built in types diff --git a/projects/js-packages/social-logos/package.json b/projects/js-packages/social-logos/package.json index dd0b84463a15a..de7e6e6aa5644 100644 --- a/projects/js-packages/social-logos/package.json +++ b/projects/js-packages/social-logos/package.json @@ -6,13 +6,16 @@ "bugs": { "url": "https://github.com/Automattic/jetpack/labels/[JS Package] Social Logos" }, + "main": "build/react/index.js", + "module": "build/react/index.js", + "types": "build/react/index.d.ts", "exports": { ".": { "jetpack:src": "./src/react/index.ts", "default": "./build/react/index.js" }, - "./svg-sprite/social-logos.svg": { - "default": "./build/svg-sprite/social-logos.svg" + "./svg-sprite/*": { + "default": "./build/svg-sprite/*" }, "./font/*": { "default": "./build/font/*" diff --git a/projects/js-packages/social-logos/src/react/index.ts b/projects/js-packages/social-logos/src/react/index.ts index e6143b8569326..6f56c764e33d9 100644 --- a/projects/js-packages/social-logos/src/react/index.ts +++ b/projects/js-packages/social-logos/src/react/index.ts @@ -2,5 +2,12 @@ * Export components. */ export * from './social-logo'; -export { SocialLogo as default } from './social-logo'; +import { SocialLogo } from './social-logo'; export { SocialLogoData } from './social-logo-data'; + +/** + * @deprecated Use named import instead - `import { SocialLogo } from 'social-logos';` + */ +const DeprecatedDefaultImport = SocialLogo; + +export default DeprecatedDefaultImport; From 9f11871fd036c7b95869fe63b24ba4c03319ce07 Mon Sep 17 00:00:00 2001 From: Nik Tsekouras Date: Thu, 2 Jan 2025 09:21:34 +0200 Subject: [PATCH 26/98] Fix/form block submit button styles when errors (#40762) * Form block: Fix submit button styles when there are errors * add changelog entry --- .../fix-form-block-submit-button-styles-when-errors | 4 ++++ .../packages/forms/src/contact-form/css/grunion.css | 13 ++++++------- .../forms/src/contact-form/js/accessible-form.js | 2 +- 3 files changed, 11 insertions(+), 8 deletions(-) create mode 100644 projects/packages/forms/changelog/fix-form-block-submit-button-styles-when-errors diff --git a/projects/packages/forms/changelog/fix-form-block-submit-button-styles-when-errors b/projects/packages/forms/changelog/fix-form-block-submit-button-styles-when-errors new file mode 100644 index 0000000000000..d9d7d5ed0de2a --- /dev/null +++ b/projects/packages/forms/changelog/fix-form-block-submit-button-styles-when-errors @@ -0,0 +1,4 @@ +Significance: patch +Type: fixed + +Form block: Fix submit button styles when there are errors diff --git a/projects/packages/forms/src/contact-form/css/grunion.css b/projects/packages/forms/src/contact-form/css/grunion.css index 660dbbd5cf428..885326a247da1 100644 --- a/projects/packages/forms/src/contact-form/css/grunion.css +++ b/projects/packages/forms/src/contact-form/css/grunion.css @@ -321,16 +321,16 @@ .contact-form .contact-form__select-wrapper::after { position: absolute; inset-inline-end: calc(var(--jetpack--contact-form--input-padding-left) + 4px); - top: calc(var(--jetpack--contact-form--input-padding-top) + var(--jetpack--contact-form--line-height) / 2); + top: calc(var(--jetpack--contact-form--input-padding-top) + var(--jetpack--contact-form--line-height) / 2); content: ""; display: block; width: 8px; height: 8px; - + border-bottom: 2px solid; border-right: 2px solid; - + transform: translateY(-50%) rotate(45deg); transform-origin: center center; @@ -594,7 +594,7 @@ on production builds, the attributes are being reordered, causing side-effects .contact-form .grunion-field-wrap input.checkbox-multiple:checked::before { content: "\2713"; - + position: absolute; top: calc(var(--jetpack--contact-form--font-size) / 2); left: calc(var(--jetpack--contact-form--font-size) / 2); @@ -603,7 +603,7 @@ on production builds, the attributes are being reordered, causing side-effects font-size: var(--jetpack--contact-form--font-size); line-height: 1; - + transform: translate(-50%, -50%); } @@ -714,7 +714,6 @@ on production builds, the attributes are being reordered, causing side-effects } .contact-form__error { - margin-bottom: var(--wp--style--block-gap, 1.5rem); padding: 1em; gap: var(--warning-icon-margin); @@ -815,4 +814,4 @@ on production builds, the attributes are being reordered, causing side-effects position: absolute; white-space: nowrap; width: 1px; -} \ No newline at end of file +} diff --git a/projects/packages/forms/src/contact-form/js/accessible-form.js b/projects/packages/forms/src/contact-form/js/accessible-form.js index 20a1d6ff43d86..229b553bd415b 100644 --- a/projects/packages/forms/src/contact-form/js/accessible-form.js +++ b/projects/packages/forms/src/contact-form/js/accessible-form.js @@ -897,7 +897,7 @@ const setFormError = ( form, invalidFields, opts = {} ) => { const submitBtn = getFormSubmitBtn( form ); if ( submitBtn ) { - submitBtn.parentNode.insertBefore( error, submitBtn ); + submitBtn.parentNode.parentNode.insertBefore( error, submitBtn.parentNode ); } else { form.appendChild( error ); } From 639f1fd467a62fd2fbb52ab9e300eeaab94242de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20P=C3=A9rez=20Pellicer?= <5908855+puntope@users.noreply.github.com> Date: Thu, 2 Jan 2025 16:41:40 +0100 Subject: [PATCH 27/98] [WooCommerce Analytics] Support for Search and Landing Page (#40698) * Support for Search event and Landing Page tracking in WooCommerce Analytics package --- .../woocommerce-analytics/.phan/baseline.php | 1 - .../changelog/add-search-event | 4 + .../src/class-checkout-flow.php | 201 ---------------- .../src/class-universal.php | 217 +++++++++++++++++- .../src/class-woo-analytics-trait.php | 13 +- .../src/class-woocommerce-analytics.php | 7 - 6 files changed, 228 insertions(+), 215 deletions(-) create mode 100644 projects/packages/woocommerce-analytics/changelog/add-search-event delete mode 100644 projects/packages/woocommerce-analytics/src/class-checkout-flow.php diff --git a/projects/packages/woocommerce-analytics/.phan/baseline.php b/projects/packages/woocommerce-analytics/.phan/baseline.php index 70713ab5b9bc7..5a8d2bf30e5fd 100644 --- a/projects/packages/woocommerce-analytics/.phan/baseline.php +++ b/projects/packages/woocommerce-analytics/.phan/baseline.php @@ -16,7 +16,6 @@ // Currently, file_suppressions and directory_suppressions are the only supported suppressions 'file_suppressions' => [ - 'src/class-checkout-flow.php' => ['PhanPluginRedundantAssignment'], 'src/class-universal.php' => ['PhanPluginRedundantAssignment', 'PhanUndeclaredMethodInCallable'], 'src/class-woo-analytics-trait.php' => ['PhanTypeSuspiciousNonTraversableForeach', 'PhanUndeclaredMethod'], ], diff --git a/projects/packages/woocommerce-analytics/changelog/add-search-event b/projects/packages/woocommerce-analytics/changelog/add-search-event new file mode 100644 index 0000000000000..e0003b7ccf8fa --- /dev/null +++ b/projects/packages/woocommerce-analytics/changelog/add-search-event @@ -0,0 +1,4 @@ +Significance: minor +Type: added + +Add Search Event & landing Page support diff --git a/projects/packages/woocommerce-analytics/src/class-checkout-flow.php b/projects/packages/woocommerce-analytics/src/class-checkout-flow.php deleted file mode 100644 index efdb2cb5ce7bb..0000000000000 --- a/projects/packages/woocommerce-analytics/src/class-checkout-flow.php +++ /dev/null @@ -1,201 +0,0 @@ -find_cart_checkout_content_sources(); - $this->additional_blocks_on_cart_page = $this->get_additional_blocks_on_page( 'cart' ); - $this->additional_blocks_on_checkout_page = $this->get_additional_blocks_on_page( 'checkout' ); - - // single product page view. - add_action( 'woocommerce_after_single_product', array( $this, 'capture_product_view' ) ); - - // order confirmed page view - add_action( 'woocommerce_thankyou', array( $this, 'capture_order_confirmation_view' ), 10, 1 ); - - // cart page view - add_action( 'wp_footer', array( $this, 'capture_cart_view' ) ); - - // checkout page view - add_action( 'wp_footer', array( $this, 'capture_checkout_view' ) ); - } - - /** - * Track a product page view - */ - public function capture_product_view() { - global $product; - if ( ! $product instanceof WC_Product ) { - return; - } - - $this->record_event( - 'woocommerceanalytics_product_view', - array(), - $product->get_id() - ); - } - - /** - * Track the order confirmation page view - */ - public function capture_order_confirmation_view() { - $order_id = absint( get_query_var( 'order-received' ) ); - if ( ! $order_id ) { - return; - } - - if ( ! is_order_received_page() ) { - return; - } - - $order = wc_get_order( $order_id ); - - $order_source = $order->get_created_via(); - $checkout_page_contains_checkout_block = '0'; - $checkout_page_contains_checkout_shortcode = '0'; - - if ( 'store-api' === $order_source ) { - $checkout_page_contains_checkout_block = '1'; - $checkout_page_contains_checkout_shortcode = '0'; - } elseif ( 'checkout' === $order_source ) { - $checkout_page_contains_checkout_block = '0'; - $checkout_page_contains_checkout_shortcode = '1'; - } - - $coupons = $order->get_coupons(); - $coupon_used = 0; - if ( is_countable( $coupons ) ) { - $coupon_used = count( $coupons ) ? 1 : 0; - } - - if ( is_object( WC()->session ) ) { - $create_account = true === WC()->session->get( 'wc_checkout_createaccount_used' ) ? 'Yes' : 'No'; - $checkout_page_used = true === WC()->session->get( 'checkout_page_used' ) ? 'Yes' : 'No'; - } else { - $create_account = 'No'; - $checkout_page_used = 'No'; - } - - $delayed_account_creation = ucfirst( get_option( 'woocommerce_enable_delayed_account_creation', 'Yes' ) ); - $this->record_event( - 'woocommerceanalytics_order_confirmation_view', - array( - 'coupon_used' => $coupon_used, - 'create_account' => $create_account, - 'express_checkout' => 'null', // TODO: not solved yet. - 'guest_checkout' => $order->get_customer_id() ? 'No' : 'Yes', - 'delayed_account_creation' => $delayed_account_creation, - 'oi' => $order->get_id(), - 'order_value' => $order->get_subtotal(), - 'order_total' => $order->get_total(), - 'products_count' => $order->get_item_count(), - 'total_discount' => $order->get_discount_total(), - 'total_shipping' => $order->get_shipping_total(), - 'total_tax' => $order->get_total_tax(), - 'payment_option' => $order->get_payment_method(), - 'products' => $this->format_items_to_json( $order->get_items() ), - 'order_note' => $order->get_customer_note(), - 'shipping_option' => $order->get_shipping_method(), - 'from_checkout' => $checkout_page_used, - 'checkout_page_contains_checkout_block' => $checkout_page_contains_checkout_block, - 'checkout_page_contains_checkout_shortcode' => $checkout_page_contains_checkout_shortcode, - ) - ); - } - - /** - * Track the cart page view - */ - public function capture_cart_view() { - global $post; - $cart_page_id = wc_get_page_id( 'cart' ); - - $is_cart = $cart_page_id && is_page( $cart_page_id ) - || wc_post_content_has_shortcode( 'woocommerce_cart' ) - || has_block( 'woocommerce/cart', $post ) - || apply_filters( 'woocommerce_is_cart', false ) - || Constants::is_defined( 'WOOCOMMERCE_CART' ) - || is_cart(); - - if ( ! $is_cart ) { - return; - } - - $this->record_event( - 'woocommerceanalytics_cart_view', - array_merge( - $this->get_cart_checkout_shared_data(), - array() - ) - ); - } - - /** - * Track the checkout page view - */ - public function capture_checkout_view() { - global $post; - $checkout_page_id = wc_get_page_id( 'checkout' ); - - $is_checkout = $checkout_page_id && is_page( $checkout_page_id ) - || wc_post_content_has_shortcode( 'woocommerce_checkout' ) - || has_block( 'woocommerce/checkout', $post ) - || apply_filters( 'woocommerce_is_checkout', false ) - || Constants::is_defined( 'WOOCOMMERCE_CHECKOUT' ); - - if ( ! $is_checkout ) { - return; - } - - $is_in_checkout_page = $checkout_page_id === $post->ID ? 'Yes' : 'No'; - $checkout_page_contains_checkout_block = '0'; - $checkout_page_contains_checkout_shortcode = '1'; - - $session = WC()->session; - if ( is_object( $session ) ) { - $session->set( 'checkout_page_used', true ); - $session->save_data(); - $draft_order_id = $session->get( 'store_api_draft_order', 0 ); - if ( $draft_order_id ) { - $checkout_page_contains_checkout_block = '1'; - $checkout_page_contains_checkout_shortcode = '0'; - } - } - - // Order received page is also a checkout page, so we need to bail out if we are on that page. - if ( is_order_received_page() ) { - return; - } - - $this->record_event( - 'woocommerceanalytics_checkout_view', - array_merge( - $this->get_cart_checkout_shared_data(), - array( - 'from_checkout' => $is_in_checkout_page, - 'checkout_page_contains_checkout_block' => $checkout_page_contains_checkout_block, - 'checkout_page_contains_checkout_shortcode' => $checkout_page_contains_checkout_shortcode, - ) - ) - ); - } -} diff --git a/projects/packages/woocommerce-analytics/src/class-universal.php b/projects/packages/woocommerce-analytics/src/class-universal.php index 713657256420e..35a9ef63390a6 100644 --- a/projects/packages/woocommerce-analytics/src/class-universal.php +++ b/projects/packages/woocommerce-analytics/src/class-universal.php @@ -7,6 +7,7 @@ namespace Automattic\Woocommerce_Analytics; +use Automattic\Jetpack\Constants; use WC_Order; use WC_Product; @@ -31,7 +32,10 @@ public function init_hooks() { add_action( 'wp_head', array( $this, 'loop_session_events' ), 2 ); // Initialize session - add_action( 'send_headers', array( $this, 'initialize_woocommerceanalytics_session' ) ); + add_action( 'template_redirect', array( $this, 'initialize_woocommerceanalytics_session' ) ); + + // Capture search + add_action( 'template_redirect', array( $this, 'capture_search_query' ), 11 ); // Capture cart events. add_action( 'woocommerce_add_to_cart', array( $this, 'capture_add_to_cart' ), 10, 6 ); @@ -56,16 +60,42 @@ public function init_hooks() { add_action( 'woocommerce_created_customer', array( $this, 'capture_created_customer' ), 10, 2 ); add_action( 'woocommerce_created_customer', array( $this, 'capture_post_checkout_created_customer' ), 10, 2 ); + + // single product page view. + add_action( 'woocommerce_after_single_product', array( $this, 'capture_product_view' ) ); + + // order confirmed page view + add_action( 'woocommerce_thankyou', array( $this, 'capture_order_confirmation_view' ), 10, 1 ); + + // checkout page view + add_action( 'wp_footer', array( $this, 'capture_checkout_view' ), 11 ); + + // cart page view + add_action( 'wp_footer', array( $this, 'capture_cart_view' ), 11 ); } /** * Set a UUID for the current session if is not yet loaded and record the session started event */ public function initialize_woocommerceanalytics_session() { - if ( ! isset( $_COOKIE['woocommerceanalytics_session_id'] ) ) { - $session_id = wp_generate_uuid4(); - $this->session_id = $session_id; - setcookie( 'woocommerceanalytics_session_id', $session_id, 0, COOKIEPATH, COOKIE_DOMAIN, is_ssl(), true ); + if ( ! isset( $_COOKIE['woocommerceanalytics_session'] ) ) { + $session_id = wp_generate_uuid4(); + $this->session_id = $session_id; + $this->landing_page = sanitize_url( wp_unslash( ( empty( $_SERVER['HTTPS'] ) ? 'http' : 'https' ) . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]" ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotValidatedNotSanitized -- actually escaped with sanitize_url. + setcookie( + 'woocommerceanalytics_session', + wp_json_encode( + array( + 'session_id' => $this->session_id, + 'landing_page' => $this->landing_page, + ) + ), + 0, + COOKIEPATH, + COOKIE_DOMAIN, + is_ssl(), + true + ); $this->record_event( 'woocommerceanalytics_session_started' ); } } @@ -523,4 +553,181 @@ public function capture_post_checkout_created_customer( $customer_id, $new_custo ); } } + + /** + * Capture a search event. + */ + public function capture_search_query() { + if ( is_search() ) { + global $wp_query; + $this->record_event( + 'woocommerceanalytics_search', + array( + 'search_query' => $wp_query->get( 's' ), + 'qty' => $wp_query->found_posts, + ) + ); + } + } + + /** + * Track the cart page view + */ + public function capture_cart_view() { + global $post; + $cart_page_id = wc_get_page_id( 'cart' ); + + $is_cart = $cart_page_id && is_page( $cart_page_id ) + || wc_post_content_has_shortcode( 'woocommerce_cart' ) + || has_block( 'woocommerce/cart', $post ) + || apply_filters( 'woocommerce_is_cart', false ) + || Constants::is_defined( 'WOOCOMMERCE_CART' ) + || is_cart(); + + if ( ! $is_cart ) { + return; + } + + $this->record_event( + 'woocommerceanalytics_cart_view', + array_merge( + $this->get_cart_checkout_shared_data(), + array() + ) + ); + } + + /** + * Track a product page view + */ + public function capture_product_view() { + global $product; + if ( ! $product instanceof WC_Product ) { + return; + } + + $this->record_event( + 'woocommerceanalytics_product_view', + array(), + $product->get_id() + ); + } + + /** + * Track the order confirmation page view + */ + public function capture_order_confirmation_view() { + $order_id = absint( get_query_var( 'order-received' ) ); + if ( ! $order_id ) { + return; + } + + if ( ! is_order_received_page() ) { + return; + } + + $order = wc_get_order( $order_id ); + + $order_source = $order->get_created_via(); + $checkout_page_contains_checkout_block = '0'; + $checkout_page_contains_checkout_shortcode = '0'; + + if ( 'store-api' === $order_source ) { + $checkout_page_contains_checkout_block = '1'; + $checkout_page_contains_checkout_shortcode = '0'; + } elseif ( 'checkout' === $order_source ) { + $checkout_page_contains_checkout_block = '0'; + $checkout_page_contains_checkout_shortcode = '1'; + } + + $coupons = $order->get_coupons(); + $coupon_used = 0; + if ( is_countable( $coupons ) ) { + $coupon_used = count( $coupons ) ? 1 : 0; + } + + if ( is_object( WC()->session ) ) { + $create_account = true === WC()->session->get( 'wc_checkout_createaccount_used' ) ? 'Yes' : 'No'; + $checkout_page_used = true === WC()->session->get( 'checkout_page_used' ) ? 'Yes' : 'No'; + } else { + $create_account = 'No'; + $checkout_page_used = 'No'; + } + + $delayed_account_creation = ucfirst( get_option( 'woocommerce_enable_delayed_account_creation', 'Yes' ) ); + $this->record_event( + 'woocommerceanalytics_order_confirmation_view', + array( + 'coupon_used' => $coupon_used, + 'create_account' => $create_account, + 'express_checkout' => 'null', // TODO: not solved yet. + 'guest_checkout' => $order->get_customer_id() ? 'No' : 'Yes', + 'delayed_account_creation' => $delayed_account_creation, + 'oi' => $order->get_id(), + 'order_value' => $order->get_subtotal(), + 'order_total' => $order->get_total(), + 'products_count' => $order->get_item_count(), + 'total_discount' => $order->get_discount_total(), + 'total_shipping' => $order->get_shipping_total(), + 'total_tax' => $order->get_total_tax(), + 'payment_option' => $order->get_payment_method(), + 'products' => $this->format_items_to_json( $order->get_items() ), + 'order_note' => $order->get_customer_note(), + 'shipping_option' => $order->get_shipping_method(), + 'from_checkout' => $checkout_page_used, + 'checkout_page_contains_checkout_block' => $checkout_page_contains_checkout_block, + 'checkout_page_contains_checkout_shortcode' => $checkout_page_contains_checkout_shortcode, + ) + ); + } + + /** + * Track the checkout page view + */ + public function capture_checkout_view() { + global $post; + $checkout_page_id = wc_get_page_id( 'checkout' ); + + $is_checkout = $checkout_page_id && is_page( $checkout_page_id ) + || wc_post_content_has_shortcode( 'woocommerce_checkout' ) + || has_block( 'woocommerce/checkout', $post ) + || apply_filters( 'woocommerce_is_checkout', false ) + || Constants::is_defined( 'WOOCOMMERCE_CHECKOUT' ); + + if ( ! $is_checkout ) { + return; + } + + $is_in_checkout_page = $checkout_page_id === $post->ID ? 'Yes' : 'No'; + $checkout_page_contains_checkout_block = '0'; + $checkout_page_contains_checkout_shortcode = '1'; + + $session = WC()->session; + if ( is_object( $session ) ) { + $session->set( 'checkout_page_used', true ); + $session->save_data(); + $draft_order_id = $session->get( 'store_api_draft_order', 0 ); + if ( $draft_order_id ) { + $checkout_page_contains_checkout_block = '1'; + $checkout_page_contains_checkout_shortcode = '0'; + } + } + + // Order received page is also a checkout page, so we need to bail out if we are on that page. + if ( is_order_received_page() ) { + return; + } + + $this->record_event( + 'woocommerceanalytics_checkout_view', + array_merge( + $this->get_cart_checkout_shared_data(), + array( + 'from_checkout' => $is_in_checkout_page, + 'checkout_page_contains_checkout_block' => $checkout_page_contains_checkout_block, + 'checkout_page_contains_checkout_shortcode' => $checkout_page_contains_checkout_shortcode, + ) + ) + ); + } } diff --git a/projects/packages/woocommerce-analytics/src/class-woo-analytics-trait.php b/projects/packages/woocommerce-analytics/src/class-woo-analytics-trait.php index d726bbf8ed1fc..7e6d3c96b22b8 100644 --- a/projects/packages/woocommerce-analytics/src/class-woo-analytics-trait.php +++ b/projects/packages/woocommerce-analytics/src/class-woo-analytics-trait.php @@ -59,6 +59,13 @@ trait Woo_Analytics_Trait { */ protected $session_id; + /** + * Landing page where session started. + * + * @var string + */ + protected $landing_page; + /** * Format Cart Items or Order Items to an array * @@ -256,12 +263,16 @@ public function find_cart_checkout_content_sources() { * @return array Array of standard event props. */ public function get_common_properties() { + $session_data = json_decode( sanitize_text_field( wp_unslash( $_COOKIE['woocommerceanalytics_session'] ?? '' ) ), true ) ?? array(); + $session_id = sanitize_text_field( $session_data['session_id'] ?? $this->session_id ); + $landing_page = sanitize_url( $session_data['landing_page'] ?? $this->landing_page ); $site_info = array( - 'session_id' => sanitize_text_field( wp_unslash( $_COOKIE['woocommerceanalytics_session_id'] ?? $this->session_id ) ), + 'session_id' => $session_id, 'blog_id' => Jetpack_Connection::get_site_id(), 'store_id' => defined( '\\WC_Install::STORE_ID_OPTION' ) ? get_option( \WC_Install::STORE_ID_OPTION ) : false, 'ui' => $this->get_user_id(), 'url' => home_url(), + 'landing_page' => $landing_page, 'woo_version' => WC()->version, 'wp_version' => get_bloginfo( 'version' ), 'store_admin' => in_array( array( 'administrator', 'shop_manager' ), wp_get_current_user()->roles, true ) ? 1 : 0, diff --git a/projects/packages/woocommerce-analytics/src/class-woocommerce-analytics.php b/projects/packages/woocommerce-analytics/src/class-woocommerce-analytics.php index afa5c0277ab39..553b84cc27342 100644 --- a/projects/packages/woocommerce-analytics/src/class-woocommerce-analytics.php +++ b/projects/packages/woocommerce-analytics/src/class-woocommerce-analytics.php @@ -9,7 +9,6 @@ namespace Automattic; use Automattic\Jetpack\Connection\Manager as Jetpack_Connection; -use Automattic\Woocommerce_Analytics\Checkout_Flow; use Automattic\Woocommerce_Analytics\My_Account; use Automattic\Woocommerce_Analytics\Universal; @@ -42,12 +41,6 @@ public static function init() { // Initialize general store tracking actions. add_action( 'init', array( new Universal(), 'init_hooks' ) ); add_action( 'init', array( new My_Account(), 'init_hooks' ) ); - if ( - class_exists( '\Automattic\WooCommerce\Blocks\Package' ) - && version_compare( \Automattic\WooCommerce\Blocks\Package::get_version(), '11.6.2', '>=' ) - ) { - add_action( 'init', array( new Checkout_Flow(), 'init_hooks' ) ); - } /** * Fires after the WooCommerce Analytics package is initialized From 3d51994f7c9a8982e5a8fbd634d89bb6aca84ed6 Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Thu, 2 Jan 2025 17:23:07 +0100 Subject: [PATCH 28/98] Update dependency react-router-dom to v6.28.1 (#40705) Co-authored-by: Renovate Bot --- pnpm-lock.yaml | 185 ++---------------- .../changelog/renovate-react-router-monorepo | 4 + projects/packages/forms/package.json | 2 +- .../changelog/renovate-react-router-monorepo | 4 + projects/packages/my-jetpack/package.json | 2 +- .../changelog/renovate-react-router-monorepo | 4 + projects/packages/videopress/package.json | 2 +- .../changelog/renovate-react-router-monorepo | 4 + projects/plugins/boost/package.json | 2 +- .../changelog/renovate-react-router-monorepo | 4 + projects/plugins/crm/package.json | 2 +- .../changelog/renovate-react-router-monorepo | 4 + projects/plugins/protect/package.json | 2 +- 13 files changed, 49 insertions(+), 172 deletions(-) create mode 100644 projects/packages/forms/changelog/renovate-react-router-monorepo create mode 100644 projects/packages/my-jetpack/changelog/renovate-react-router-monorepo create mode 100644 projects/packages/videopress/changelog/renovate-react-router-monorepo create mode 100644 projects/plugins/boost/changelog/renovate-react-router-monorepo create mode 100644 projects/plugins/crm/changelog/renovate-react-router-monorepo create mode 100644 projects/plugins/protect/changelog/renovate-react-router-monorepo diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4802adb4d71cc..cbc53f6c1ebfc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2179,8 +2179,8 @@ importers: specifier: 7.2.8 version: 7.2.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-router-dom: - specifier: 6.10.0 - version: 6.10.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 6.28.1 + version: 6.28.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-transition-group: specifier: ^4.4.5 version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -2581,8 +2581,8 @@ importers: specifier: 15.8.1 version: 15.8.1 react-router-dom: - specifier: 6.6.2 - version: 6.6.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 6.28.1 + version: 6.28.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@automattic/jetpack-webpack-config': specifier: workspace:* @@ -2975,8 +2975,8 @@ importers: specifier: 18.3.1 version: 18.3.1(react@18.3.1) react-router-dom: - specifier: 6.28.0 - version: 6.28.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 6.28.1 + version: 6.28.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tus-js-client: specifier: 4.1.0 version: 4.1.0 @@ -3431,8 +3431,8 @@ importers: specifier: 5.3.0 version: 5.3.0 react-router-dom: - specifier: 6.21.0 - version: 6.21.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 6.28.1 + version: 6.28.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-use-measure: specifier: 2.1.1 version: 2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -3688,8 +3688,8 @@ importers: specifier: 18.3.1 version: 18.3.1(react@18.3.1) react-router-dom: - specifier: 6.14.1 - version: 6.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 6.28.1 + version: 6.28.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@automattic/jetpack-webpack-config': specifier: workspace:* @@ -4252,8 +4252,8 @@ importers: specifier: 18.3.1 version: 18.3.1(react@18.3.1) react-router-dom: - specifier: 6.2.2 - version: 6.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 6.28.1 + version: 6.28.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@automattic/jetpack-webpack-config': specifier: workspace:* @@ -6860,26 +6860,10 @@ packages: '@redux-saga/types@1.2.1': resolution: {integrity: sha512-1dgmkh+3so0+LlBWRhGA33ua4MYr7tUOj+a9Si28vUi0IUFNbff1T3sgpeDJI/LaC75bBYnQ0A3wXjn0OrRNBA==} - '@remix-run/router@1.14.0': - resolution: {integrity: sha512-WOHih+ClN7N8oHk9N4JUiMxQJmRVaOxcg8w7F/oHUXzJt920ekASLI/7cYX8XkntDWRhLZtsk6LbGrkgOAvi5A==} - engines: {node: '>=14.0.0'} - - '@remix-run/router@1.2.1': - resolution: {integrity: sha512-XiY0IsyHR+DXYS5vBxpoBe/8veTeoRpMHP+vDosLZxL5bnpetzI0igkxkLZS235ldLzyfkxF+2divEwWHP3vMQ==} - engines: {node: '>=14'} - '@remix-run/router@1.21.0': resolution: {integrity: sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA==} engines: {node: '>=14.0.0'} - '@remix-run/router@1.5.0': - resolution: {integrity: sha512-bkUDCp8o1MvFO+qxkODcbhSqRa6P2GXgrGZVpt0dCXNW2HCSCqYI0ZoAqEOSAjRWmmlKcYgFvN4B4S+zo/f8kg==} - engines: {node: '>=14'} - - '@remix-run/router@1.7.1': - resolution: {integrity: sha512-bgVQM4ZJ2u2CM8k1ey70o1ePFXsEzYVZoWghh6WjM8p59jQ7HxzbHW4SbnWFG7V9ig9chLawQxDTZ3xzOF8MkQ==} - engines: {node: '>=14'} - '@rollup/plugin-babel@6.0.4': resolution: {integrity: sha512-YF7Y52kFdFT/xVSuVdjkV5ZdX/3YtmX0QulG+x0taQOtJdHYzVU61aSSkAgVJ7NOv6qPkIYiJSgSWWN/DM5sGw==} engines: {node: '>=14.0.0'} @@ -13197,87 +13181,24 @@ packages: peerDependencies: react: '>=15' - react-router-dom@6.10.0: - resolution: {integrity: sha512-E5dfxRPuXKJqzwSe/qGcqdwa18QiWC6f3H3cWXM24qj4N0/beCIf/CWTipop2xm7mR0RCS99NnaqPNjHtrAzCg==} - engines: {node: '>=14'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - - react-router-dom@6.14.1: - resolution: {integrity: sha512-ssF6M5UkQjHK70fgukCJyjlda0Dgono2QGwqGvuk7D+EDGHdacEN3Yke2LTMjkrpHuFwBfDFsEjGVXBDmL+bWw==} - engines: {node: '>=14'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - - react-router-dom@6.2.2: - resolution: {integrity: sha512-AtYEsAST7bDD4dLSQHDnk/qxWLJdad5t1HFa1qJyUrCeGgEuCSw0VB/27ARbF9Fi/W5598ujvJOm3ujUCVzuYQ==} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - - react-router-dom@6.21.0: - resolution: {integrity: sha512-1dUdVj3cwc1npzJaf23gulB562ESNvxf7E4x8upNJycqyUm5BRRZ6dd3LrlzhtLaMrwOCO8R0zoiYxdaJx4LlQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - - react-router-dom@6.28.0: - resolution: {integrity: sha512-kQ7Unsl5YdyOltsPGl31zOjLrDv+m2VcIEcIHqYYD3Lp0UppLjrzcfJqDJwXxFw3TH/yvapbnUvPlAj7Kx5nbg==} + react-router-dom@6.28.1: + resolution: {integrity: sha512-YraE27C/RdjcZwl5UCqF/ffXnZDxpJdk9Q6jw38SZHjXs7NNdpViq2l2c7fO7+4uWaEfcwfGCv3RSg4e1By/fQ==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' - react-router-dom@6.6.2: - resolution: {integrity: sha512-6SCDXxRQqW5af8ImOqKza7icmQ47/EMbz572uFjzvcArg3lZ+04PxSPp8qGs+p2Y+q+b+S/AjXv8m8dyLndIIA==} - engines: {node: '>=14'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - react-router@5.3.4: resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==} peerDependencies: react: '>=15' - react-router@6.10.0: - resolution: {integrity: sha512-Nrg0BWpQqrC3ZFFkyewrflCud9dio9ME3ojHCF/WLsprJVzkq3q3UeEhMCAW1dobjeGbWgjNn/PVF6m46ANxXQ==} - engines: {node: '>=14'} - peerDependencies: - react: '>=16.8' - - react-router@6.14.1: - resolution: {integrity: sha512-U4PfgvG55LdvbQjg5Y9QRWyVxIdO1LlpYT7x+tMAxd9/vmiPuJhIwdxZuIQLN/9e3O4KFDHYfR9gzGeYMasW8g==} - engines: {node: '>=14'} - peerDependencies: - react: '>=16.8' - - react-router@6.2.2: - resolution: {integrity: sha512-/MbxyLzd7Q7amp4gDOGaYvXwhEojkJD5BtExkuKmj39VEE0m3l/zipf6h2WIB2jyAO0lI6NGETh4RDcktRm4AQ==} - peerDependencies: - react: '>=16.8' - - react-router@6.21.0: - resolution: {integrity: sha512-hGZ0HXbwz3zw52pLZV3j3+ec+m/PQ9cTpBvqjFQmy2XVUWGn5MD+31oXHb6dVTxYzmAeaiUBYjkoNz66n3RGCg==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' - - react-router@6.28.0: - resolution: {integrity: sha512-HrYdIFqdrnhDw0PqG/AKjAqEqM7AvxCz0DQ4h2W8k6nqmc5uRBYDag0SBxx9iYz5G8gnuNVLzUe13wl9eAsXXg==} + react-router@6.28.1: + resolution: {integrity: sha512-2omQTA3rkMljmrvvo6WtewGdVh45SpL9hGiCI9uUrwGGfNFDIvGK4gYJsKlJoNVi6AQZcopSCballL+QGOm7fA==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' - react-router@6.6.2: - resolution: {integrity: sha512-uJPG55Pek3orClbURDvfljhqFvMgJRo59Pktywkk8hUUkTY2aRfza8Yhl/vZQXs+TNQyr6tu+uqz/fLxPICOGQ==} - engines: {node: '>=14'} - peerDependencies: - react: '>=16.8' - react-slider@2.0.5: resolution: {integrity: sha512-MU5gaK1yYCKnbDDN3CMiVcgkKZwMvdqK2xUEW7fFU37NAzRgS1FZbF9N7vP08E3XXNVhiuZnwVzUa3PYQAZIMg==} peerDependencies: @@ -17392,16 +17313,8 @@ snapshots: '@redux-saga/types@1.2.1': {} - '@remix-run/router@1.14.0': {} - - '@remix-run/router@1.2.1': {} - '@remix-run/router@1.21.0': {} - '@remix-run/router@1.5.0': {} - - '@remix-run/router@1.7.1': {} - '@rollup/plugin-babel@6.0.4(@babel/core@7.26.0)(rollup@3.29.5)': dependencies: '@babel/core': 7.26.0 @@ -26502,47 +26415,12 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - react-router-dom@6.10.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@remix-run/router': 1.5.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-router: 6.10.0(react@18.3.1) - - react-router-dom@6.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@remix-run/router': 1.7.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-router: 6.14.1(react@18.3.1) - - react-router-dom@6.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - history: 5.3.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-router: 6.2.2(react@18.3.1) - - react-router-dom@6.21.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@remix-run/router': 1.14.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-router: 6.21.0(react@18.3.1) - - react-router-dom@6.28.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-router-dom@6.28.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@remix-run/router': 1.21.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-router: 6.28.0(react@18.3.1) - - react-router-dom@6.6.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@remix-run/router': 1.2.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-router: 6.6.2(react@18.3.1) + react-router: 6.28.1(react@18.3.1) react-router@5.3.4(react@18.3.1): dependencies: @@ -26557,36 +26435,11 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - react-router@6.10.0(react@18.3.1): - dependencies: - '@remix-run/router': 1.5.0 - react: 18.3.1 - - react-router@6.14.1(react@18.3.1): - dependencies: - '@remix-run/router': 1.7.1 - react: 18.3.1 - - react-router@6.2.2(react@18.3.1): - dependencies: - history: 5.3.0 - react: 18.3.1 - - react-router@6.21.0(react@18.3.1): - dependencies: - '@remix-run/router': 1.14.0 - react: 18.3.1 - - react-router@6.28.0(react@18.3.1): + react-router@6.28.1(react@18.3.1): dependencies: '@remix-run/router': 1.21.0 react: 18.3.1 - react-router@6.6.2(react@18.3.1): - dependencies: - '@remix-run/router': 1.2.1 - react: 18.3.1 - react-slider@2.0.5(@babel/runtime@7.26.0)(react@18.3.1): dependencies: '@babel/runtime': 7.26.0 diff --git a/projects/packages/forms/changelog/renovate-react-router-monorepo b/projects/packages/forms/changelog/renovate-react-router-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/forms/changelog/renovate-react-router-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/forms/package.json b/projects/packages/forms/package.json index dd5b9db741e9f..0ea2f7e4a43f5 100644 --- a/projects/packages/forms/package.json +++ b/projects/packages/forms/package.json @@ -49,7 +49,7 @@ "gridicons": "3.4.1", "lodash": "4.17.21", "react-redux": "7.2.8", - "react-router-dom": "6.10.0", + "react-router-dom": "6.28.1", "react-transition-group": "^4.4.5", "redux": "4.0.5", "redux-thunk": "2.3.0", diff --git a/projects/packages/my-jetpack/changelog/renovate-react-router-monorepo b/projects/packages/my-jetpack/changelog/renovate-react-router-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/my-jetpack/changelog/renovate-react-router-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/my-jetpack/package.json b/projects/packages/my-jetpack/package.json index 2966371966e50..2065dc9253a1b 100644 --- a/projects/packages/my-jetpack/package.json +++ b/projects/packages/my-jetpack/package.json @@ -46,7 +46,7 @@ "debug": "4.4.0", "gridicons": "3.4.1", "prop-types": "15.8.1", - "react-router-dom": "6.6.2" + "react-router-dom": "6.28.1" }, "exports": { "./components/*": "./_inc/components/*" diff --git a/projects/packages/videopress/changelog/renovate-react-router-monorepo b/projects/packages/videopress/changelog/renovate-react-router-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/videopress/changelog/renovate-react-router-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/videopress/package.json b/projects/packages/videopress/package.json index abd5d66891ab2..f597b34855066 100644 --- a/projects/packages/videopress/package.json +++ b/projects/packages/videopress/package.json @@ -85,7 +85,7 @@ "filesize": "8.0.6", "react": "18.3.1", "react-dom": "18.3.1", - "react-router-dom": "6.28.0", + "react-router-dom": "6.28.1", "tus-js-client": "4.1.0" } } diff --git a/projects/plugins/boost/changelog/renovate-react-router-monorepo b/projects/plugins/boost/changelog/renovate-react-router-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/boost/changelog/renovate-react-router-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/boost/package.json b/projects/plugins/boost/package.json index e88078e2ed325..22ccdc520e315 100644 --- a/projects/plugins/boost/package.json +++ b/projects/plugins/boost/package.json @@ -18,7 +18,7 @@ "clsx": "2.1.1", "copy-webpack-plugin": "11.0.0", "history": "5.3.0", - "react-router-dom": "6.21.0", + "react-router-dom": "6.28.1", "react-use-measure": "2.1.1", "use-debounce": "10.0.0", "zod": "3.22.3" diff --git a/projects/plugins/crm/changelog/renovate-react-router-monorepo b/projects/plugins/crm/changelog/renovate-react-router-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/crm/changelog/renovate-react-router-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/crm/package.json b/projects/plugins/crm/package.json index f02be59bf90ec..2da272f987904 100644 --- a/projects/plugins/crm/package.json +++ b/projects/plugins/crm/package.json @@ -33,7 +33,7 @@ "prop-types": "15.8.1", "react": "18.3.1", "react-dom": "18.3.1", - "react-router-dom": "6.14.1" + "react-router-dom": "6.28.1" }, "devDependencies": { "@automattic/jetpack-webpack-config": "workspace:*", diff --git a/projects/plugins/protect/changelog/renovate-react-router-monorepo b/projects/plugins/protect/changelog/renovate-react-router-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/protect/changelog/renovate-react-router-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/protect/package.json b/projects/plugins/protect/package.json index 519505ff38064..81cacdb7f7ba4 100644 --- a/projects/plugins/protect/package.json +++ b/projects/plugins/protect/package.json @@ -46,7 +46,7 @@ "prop-types": "15.8.1", "react": "18.3.1", "react-dom": "18.3.1", - "react-router-dom": "6.2.2" + "react-router-dom": "6.28.1" }, "devDependencies": { "@automattic/jetpack-webpack-config": "workspace:*", From d033fa171b51a7fa32e18ac91c43a6def58baac5 Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Thu, 2 Jan 2025 21:51:18 +0100 Subject: [PATCH 29/98] Update dependency envfile to v7 (#40829) Co-authored-by: Renovate Bot --- pnpm-lock.yaml | 12 ++++++------ tools/cli/package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cbc53f6c1ebfc..1eca1d5ad7286 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4686,8 +4686,8 @@ importers: specifier: 2.4.1 version: 2.4.1 envfile: - specifier: 6.17.0 - version: 6.17.0 + specifier: 7.1.0 + version: 7.1.0 execa: specifier: 7.0.0 version: 7.0.0 @@ -10017,9 +10017,9 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - envfile@6.17.0: - resolution: {integrity: sha512-RnhtVw3auDZeeh5VtaNrbE7s6Kq8BoRtGIzcbMpMsJ+wIpRgs5jiDG4gQjW+vfws5QPlizE57/fUU0Tj6Nrs8A==} - engines: {node: '>=10'} + envfile@7.1.0: + resolution: {integrity: sha512-dyH4QnnZsArCLhPASr29eqBWDvKpq0GggQFTmysTT/S9TTmt1JrEKNvTBc09Cd7ujVZQful2HBGRMe2agu7Krg==} + engines: {node: '>=8'} hasBin: true envinfo@7.14.0: @@ -22468,7 +22468,7 @@ snapshots: entities@4.5.0: {} - envfile@6.17.0: {} + envfile@7.1.0: {} envinfo@7.14.0: {} diff --git a/tools/cli/package.json b/tools/cli/package.json index bc1493c78289e..89345a4e8cbb2 100644 --- a/tools/cli/package.json +++ b/tools/cli/package.json @@ -27,7 +27,7 @@ "chokidar": "4.0.3", "configstore": "5.0.1", "enquirer": "2.4.1", - "envfile": "6.17.0", + "envfile": "7.1.0", "execa": "7.0.0", "glob": "10.4.1", "ignore": "7.0.0", From 3f0284a3eee5d1823e0191528c5a032c17308485 Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Thu, 2 Jan 2025 21:54:04 +0100 Subject: [PATCH 30/98] Update dependency glob to v11 (#40831) Co-authored-by: Renovate Bot --- pnpm-lock.yaml | 44 +++++++++---------- .../changelog/renovate-glob-11.x | 4 ++ .../repo-gardening/package.json | 2 +- .../changelog/renovate-glob-11.x | 4 ++ .../test-results-to-slack/package.json | 2 +- .../social-logos/changelog/renovate-glob-11.x | 4 ++ .../js-packages/social-logos/package.json | 2 +- .../changelog/renovate-glob-11.x | 4 ++ .../classic-theme-helper/package.json | 2 +- .../connection/changelog/renovate-glob-11.x | 4 ++ projects/packages/connection/package.json | 2 +- .../forms/changelog/renovate-glob-11.x | 4 ++ projects/packages/forms/package.json | 2 +- .../masterbar/changelog/renovate-glob-11.x | 4 ++ projects/packages/masterbar/package.json | 2 +- .../plugins/crm/changelog/renovate-glob-11.x | 4 ++ projects/plugins/crm/package.json | 2 +- .../jetpack/changelog/renovate-glob-11.x | 4 ++ projects/plugins/jetpack/package.json | 2 +- tools/cli/package.json | 2 +- tools/js-tools/package.json | 2 +- 21 files changed, 69 insertions(+), 33 deletions(-) create mode 100644 projects/github-actions/repo-gardening/changelog/renovate-glob-11.x create mode 100644 projects/github-actions/test-results-to-slack/changelog/renovate-glob-11.x create mode 100644 projects/js-packages/social-logos/changelog/renovate-glob-11.x create mode 100644 projects/packages/classic-theme-helper/changelog/renovate-glob-11.x create mode 100644 projects/packages/connection/changelog/renovate-glob-11.x create mode 100644 projects/packages/forms/changelog/renovate-glob-11.x create mode 100644 projects/packages/masterbar/changelog/renovate-glob-11.x create mode 100644 projects/plugins/crm/changelog/renovate-glob-11.x create mode 100644 projects/plugins/jetpack/changelog/renovate-glob-11.x diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1eca1d5ad7286..42ca8e6cf9583 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,8 +52,8 @@ importers: specifier: 6.1.1 version: 6.1.1 glob: - specifier: 10.4.1 - version: 10.4.1 + specifier: 11.0.0 + version: 11.0.0 moment: specifier: 2.30.1 version: 2.30.1 @@ -99,8 +99,8 @@ importers: specifier: 7.3.2 version: 7.3.2 glob: - specifier: 10.4.1 - version: 10.4.1 + specifier: 11.0.0 + version: 11.0.0 minimatch: specifier: 5.1.0 version: 5.1.0 @@ -1415,8 +1415,8 @@ importers: specifier: 18.3.5 version: 18.3.5(@types/react@18.3.18) glob: - specifier: 10.4.1 - version: 10.4.1 + specifier: 11.0.0 + version: 11.0.0 svg2ttf: specifier: ^6.0.3 version: 6.0.3 @@ -2000,8 +2000,8 @@ importers: specifier: 10.4.20 version: 10.4.20(postcss@8.4.47) glob: - specifier: 10.4.1 - version: 10.4.1 + specifier: 11.0.0 + version: 11.0.0 postcss: specifier: 8.4.47 version: 8.4.47 @@ -2052,8 +2052,8 @@ importers: specifier: 6.14.0 version: 6.14.0 glob: - specifier: 10.4.1 - version: 10.4.1 + specifier: 11.0.0 + version: 11.0.0 react: specifier: 18.2.0 version: 18.2.0 @@ -2253,8 +2253,8 @@ importers: specifier: 7.6.0 version: 7.6.0 glob: - specifier: 10.4.1 - version: 10.4.1 + specifier: 11.0.0 + version: 11.0.0 jest: specifier: 29.7.0 version: 29.7.0 @@ -2488,8 +2488,8 @@ importers: specifier: 10.4.20 version: 10.4.20(postcss@8.4.47) glob: - specifier: 10.4.1 - version: 10.4.1 + specifier: 11.0.0 + version: 11.0.0 postcss: specifier: 8.4.47 version: 8.4.47 @@ -3728,8 +3728,8 @@ importers: specifier: 6.5.1 version: 6.5.1(webpack@5.94.0) glob: - specifier: 10.4.1 - version: 10.4.1 + specifier: 11.0.0 + version: 11.0.0 jest: specifier: 29.7.0 version: 29.7.0 @@ -4139,8 +4139,8 @@ importers: specifier: 0.1.8 version: 0.1.8 glob: - specifier: 10.4.1 - version: 10.4.1 + specifier: 11.0.0 + version: 11.0.0 jest: specifier: 29.7.0 version: 29.7.0 @@ -4692,8 +4692,8 @@ importers: specifier: 7.0.0 version: 7.0.0 glob: - specifier: 10.4.1 - version: 10.4.1 + specifier: 11.0.0 + version: 11.0.0 ignore: specifier: 7.0.0 version: 7.0.0 @@ -4897,8 +4897,8 @@ importers: specifier: 7.1.1 version: 7.1.1(eslint@9.16.0)(typescript@5.0.4) glob: - specifier: 10.4.1 - version: 10.4.1 + specifier: 11.0.0 + version: 11.0.0 globals: specifier: 15.13.0 version: 15.13.0 diff --git a/projects/github-actions/repo-gardening/changelog/renovate-glob-11.x b/projects/github-actions/repo-gardening/changelog/renovate-glob-11.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/github-actions/repo-gardening/changelog/renovate-glob-11.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/github-actions/repo-gardening/package.json b/projects/github-actions/repo-gardening/package.json index cecb8c3255a45..88f0f419d6010 100644 --- a/projects/github-actions/repo-gardening/package.json +++ b/projects/github-actions/repo-gardening/package.json @@ -17,7 +17,7 @@ "@actions/github": "6.0.0", "@slack/web-api": "7.7.0", "compare-versions": "6.1.1", - "glob": "10.4.1", + "glob": "11.0.0", "moment": "2.30.1", "openai": "4.56.1" }, diff --git a/projects/github-actions/test-results-to-slack/changelog/renovate-glob-11.x b/projects/github-actions/test-results-to-slack/changelog/renovate-glob-11.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/github-actions/test-results-to-slack/changelog/renovate-glob-11.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/github-actions/test-results-to-slack/package.json b/projects/github-actions/test-results-to-slack/package.json index d5abf95c33679..9151411489b69 100644 --- a/projects/github-actions/test-results-to-slack/package.json +++ b/projects/github-actions/test-results-to-slack/package.json @@ -17,7 +17,7 @@ "@actions/core": "1.10.1", "@actions/github": "6.0.0", "@slack/web-api": "7.3.2", - "glob": "10.4.1", + "glob": "11.0.0", "minimatch": "5.1.0" }, "devDependencies": { diff --git a/projects/js-packages/social-logos/changelog/renovate-glob-11.x b/projects/js-packages/social-logos/changelog/renovate-glob-11.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/social-logos/changelog/renovate-glob-11.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/social-logos/package.json b/projects/js-packages/social-logos/package.json index de7e6e6aa5644..c42e20d44dc19 100644 --- a/projects/js-packages/social-logos/package.json +++ b/projects/js-packages/social-logos/package.json @@ -39,7 +39,7 @@ "devDependencies": { "@types/react": "18.3.18", "@types/react-dom": "18.3.5", - "glob": "10.4.1", + "glob": "11.0.0", "svg2ttf": "^6.0.3", "svgicons2svgfont": "^15.0.0", "svgo": "^3.3.2", diff --git a/projects/packages/classic-theme-helper/changelog/renovate-glob-11.x b/projects/packages/classic-theme-helper/changelog/renovate-glob-11.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/classic-theme-helper/changelog/renovate-glob-11.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/classic-theme-helper/package.json b/projects/packages/classic-theme-helper/package.json index f72cc4cbb4ac2..a23c066467b36 100644 --- a/projects/packages/classic-theme-helper/package.json +++ b/projects/packages/classic-theme-helper/package.json @@ -30,7 +30,7 @@ "@csstools/postcss-global-data": "2.1.1", "@wordpress/browserslist-config": "6.14.0", "autoprefixer": "10.4.20", - "glob": "10.4.1", + "glob": "11.0.0", "postcss": "8.4.47", "postcss-loader": "6.2.0", "sass": "1.64.1", diff --git a/projects/packages/connection/changelog/renovate-glob-11.x b/projects/packages/connection/changelog/renovate-glob-11.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/connection/changelog/renovate-glob-11.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/connection/package.json b/projects/packages/connection/package.json index c1b2b310559cb..837e4e6b1f370 100644 --- a/projects/packages/connection/package.json +++ b/projects/packages/connection/package.json @@ -36,7 +36,7 @@ "@babel/preset-env": "7.26.0", "@babel/runtime": "7.26.0", "@wordpress/browserslist-config": "6.14.0", - "glob": "10.4.1", + "glob": "11.0.0", "react": "18.2.0", "react-dom": "18.2.0", "sass": "1.64.1", diff --git a/projects/packages/forms/changelog/renovate-glob-11.x b/projects/packages/forms/changelog/renovate-glob-11.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/forms/changelog/renovate-glob-11.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/forms/package.json b/projects/packages/forms/package.json index 0ea2f7e4a43f5..2253b9e494081 100644 --- a/projects/packages/forms/package.json +++ b/projects/packages/forms/package.json @@ -73,7 +73,7 @@ "@wordpress/date": "5.14.0", "autoprefixer": "10.4.20", "concurrently": "7.6.0", - "glob": "10.4.1", + "glob": "11.0.0", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "jquery": "3.6.0", diff --git a/projects/packages/masterbar/changelog/renovate-glob-11.x b/projects/packages/masterbar/changelog/renovate-glob-11.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/masterbar/changelog/renovate-glob-11.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/masterbar/package.json b/projects/packages/masterbar/package.json index 978e9307f7d80..ba188bf9f78da 100644 --- a/projects/packages/masterbar/package.json +++ b/projects/packages/masterbar/package.json @@ -35,7 +35,7 @@ "@csstools/postcss-global-data": "2.1.1", "@wordpress/browserslist-config": "6.14.0", "autoprefixer": "10.4.20", - "glob": "10.4.1", + "glob": "11.0.0", "postcss": "8.4.47", "postcss-loader": "6.2.0", "sass": "1.64.1", diff --git a/projects/plugins/crm/changelog/renovate-glob-11.x b/projects/plugins/crm/changelog/renovate-glob-11.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/crm/changelog/renovate-glob-11.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/crm/package.json b/projects/plugins/crm/package.json index 2da272f987904..3de41eae9ddd4 100644 --- a/projects/plugins/crm/package.json +++ b/projects/plugins/crm/package.json @@ -48,7 +48,7 @@ "@types/react-dom": "18.3.5", "babel-jest": "29.3.1", "css-loader": "6.5.1", - "glob": "10.4.1", + "glob": "11.0.0", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "sass": "1.64.1", diff --git a/projects/plugins/jetpack/changelog/renovate-glob-11.x b/projects/plugins/jetpack/changelog/renovate-glob-11.x new file mode 100644 index 0000000000000..1eaea6a769e84 --- /dev/null +++ b/projects/plugins/jetpack/changelog/renovate-glob-11.x @@ -0,0 +1,4 @@ +Significance: patch +Type: other + +Updated package dependencies. diff --git a/projects/plugins/jetpack/package.json b/projects/plugins/jetpack/package.json index bfcec1362d5fd..f4a29bb2443c4 100644 --- a/projects/plugins/jetpack/package.json +++ b/projects/plugins/jetpack/package.json @@ -152,7 +152,7 @@ "babel-jest": "29.4.3", "concurrently": "7.6.0", "eval": "0.1.8", - "glob": "10.4.1", + "glob": "11.0.0", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "jquery": "3.6.0", diff --git a/tools/cli/package.json b/tools/cli/package.json index 89345a4e8cbb2..114ba971a11c5 100644 --- a/tools/cli/package.json +++ b/tools/cli/package.json @@ -29,7 +29,7 @@ "enquirer": "2.4.1", "envfile": "7.1.0", "execa": "7.0.0", - "glob": "10.4.1", + "glob": "11.0.0", "ignore": "7.0.0", "js-yaml": "4.1.0", "listr": "0.14.3", diff --git a/tools/js-tools/package.json b/tools/js-tools/package.json index 7d0b486ed04fd..2ce3575ef90a3 100644 --- a/tools/js-tools/package.json +++ b/tools/js-tools/package.json @@ -45,7 +45,7 @@ "eslint-plugin-react-hooks": "5.1.0", "eslint-plugin-svelte": "2.46.1", "eslint-plugin-testing-library": "7.1.1", - "glob": "10.4.1", + "glob": "11.0.0", "globals": "15.13.0", "ignore": "7.0.0", "jest": "29.7.0", From bccd52160393b58052d318cdbb0179a6f1601a89 Mon Sep 17 00:00:00 2001 From: Douglas Henri Date: Thu, 2 Jan 2025 18:35:35 -0300 Subject: [PATCH 31/98] AI Assistant: Fix block inserter position for Form block with AI extension (#40834) * enable input position adjustment for form extension * changelog --- .../changelog/fix-jetpack-ai-extension-form-adjustment | 4 ++++ .../blocks/ai-assistant/extensions/jetpack-form/index.tsx | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 projects/plugins/jetpack/changelog/fix-jetpack-ai-extension-form-adjustment diff --git a/projects/plugins/jetpack/changelog/fix-jetpack-ai-extension-form-adjustment b/projects/plugins/jetpack/changelog/fix-jetpack-ai-extension-form-adjustment new file mode 100644 index 0000000000000..399ce50a84a9e --- /dev/null +++ b/projects/plugins/jetpack/changelog/fix-jetpack-ai-extension-form-adjustment @@ -0,0 +1,4 @@ +Significance: patch +Type: other + +AI Assistant: Fix block inserter position for Form block with AI extension diff --git a/projects/plugins/jetpack/extensions/blocks/ai-assistant/extensions/jetpack-form/index.tsx b/projects/plugins/jetpack/extensions/blocks/ai-assistant/extensions/jetpack-form/index.tsx index 31125eecaaeab..ebacbfe7dc042 100644 --- a/projects/plugins/jetpack/extensions/blocks/ai-assistant/extensions/jetpack-form/index.tsx +++ b/projects/plugins/jetpack/extensions/blocks/ai-assistant/extensions/jetpack-form/index.tsx @@ -22,7 +22,6 @@ export class JetpackFormHandler extends BlockHandler { super( clientId, [] ); this.behavior = 'action'; this.feature = 'jetpack-form-ai-extension'; - this.adjustPosition = false; this.startOpen = true; this.hideOnBlockFocus = false; } From 3947e3c8aabce12116b038fdcbc7e8efd9dd9773 Mon Sep 17 00:00:00 2001 From: Grzegorz Chudzinski-Pawlowski <112354940+grzegorz-cp@users.noreply.github.com> Date: Fri, 3 Jan 2025 12:03:54 +1300 Subject: [PATCH 32/98] Charts: Adding Rollup (#40817) * Charts: Adding Rollup config * changelog * Charts: Removing tsup * Charts: Fixing tsconfig --- pnpm-lock.yaml | 652 ++---------------- .../charts/changelog/add-charts-rollup | 4 + projects/js-packages/charts/package.json | 43 +- projects/js-packages/charts/rollup.config.mjs | 142 ++++ .../src/components/bar-chart/bar-chart.tsx | 14 +- .../src/components/pie-chart/pie-chart.tsx | 22 +- .../pie-semi-circle-chart.tsx | 8 +- .../src/components/tooltip/base-tooltip.tsx | 2 +- .../src/hooks/use-chart-mouse-handler.ts | 2 +- .../src/providers/theme/theme-provider.tsx | 2 +- projects/js-packages/charts/tsconfig.json | 18 +- projects/js-packages/charts/tsup.config.js | 26 - 12 files changed, 290 insertions(+), 645 deletions(-) create mode 100644 projects/js-packages/charts/changelog/add-charts-rollup create mode 100644 projects/js-packages/charts/rollup.config.mjs delete mode 100644 projects/js-packages/charts/tsup.config.js diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 42ca8e6cf9583..05d026f29c189 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -334,7 +334,25 @@ importers: clsx: specifier: 2.1.1 version: 2.1.1 + tslib: + specifier: 2.5.0 + version: 2.5.0 devDependencies: + '@rollup/plugin-commonjs': + specifier: 26.0.1 + version: 26.0.1(rollup@3.29.5) + '@rollup/plugin-json': + specifier: 6.1.0 + version: 6.1.0(rollup@3.29.5) + '@rollup/plugin-node-resolve': + specifier: 15.3.0 + version: 15.3.0(rollup@3.29.5) + '@rollup/plugin-terser': + specifier: 0.4.3 + version: 0.4.3(rollup@3.29.5) + '@rollup/plugin-typescript': + specifier: 12.1.0 + version: 12.1.0(rollup@3.29.5)(tslib@2.5.0)(typescript@5.7.2) '@storybook/blocks': specifier: 8.4.6 version: 8.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.6) @@ -347,12 +365,6 @@ importers: '@types/react-dom': specifier: 18.3.5 version: 18.3.5(@types/react@18.3.18) - esbuild: - specifier: 0.24.2 - version: 0.24.2 - esbuild-sass-plugin: - specifier: 3.3.1 - version: 3.3.1(esbuild@0.24.2)(sass-embedded@1.83.0) jest: specifier: 29.7.0 version: 29.7.0 @@ -374,15 +386,27 @@ importers: react-dom: specifier: 18.3.1 version: 18.3.1(react@18.3.1) + rollup: + specifier: 3.29.5 + version: 3.29.5 + rollup-plugin-dts: + specifier: 6.1.1 + version: 6.1.1(rollup@3.29.5)(typescript@5.7.2) + rollup-plugin-peer-deps-external: + specifier: 2.2.4 + version: 2.2.4(rollup@3.29.5) + rollup-plugin-postcss: + specifier: 4.0.2 + version: 4.0.2(postcss@8.4.47) + sass: + specifier: 1.64.1 + version: 1.64.1 sass-embedded: specifier: 1.83.0 version: 1.83.0 storybook: specifier: 8.4.6 version: 8.4.6 - tsup: - specifier: 8.3.5 - version: 8.3.5(postcss@8.4.47)(typescript@5.7.2) typescript: specifier: 5.7.2 version: 5.7.2 @@ -6537,88 +6561,6 @@ packages: '@octokit/types@13.6.2': resolution: {integrity: sha512-WpbZfZUcZU77DrSW4wbsSgTPfKcp286q3ItaIgvSbBpZJlu6mnYXAkjZz6LVZPXkEvLIM8McanyZejKTYUHipA==} - '@parcel/watcher-android-arm64@2.5.0': - resolution: {integrity: sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [android] - - '@parcel/watcher-darwin-arm64@2.5.0': - resolution: {integrity: sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [darwin] - - '@parcel/watcher-darwin-x64@2.5.0': - resolution: {integrity: sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [darwin] - - '@parcel/watcher-freebsd-x64@2.5.0': - resolution: {integrity: sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [freebsd] - - '@parcel/watcher-linux-arm-glibc@2.5.0': - resolution: {integrity: sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - - '@parcel/watcher-linux-arm-musl@2.5.0': - resolution: {integrity: sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - - '@parcel/watcher-linux-arm64-glibc@2.5.0': - resolution: {integrity: sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - - '@parcel/watcher-linux-arm64-musl@2.5.0': - resolution: {integrity: sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - - '@parcel/watcher-linux-x64-glibc@2.5.0': - resolution: {integrity: sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - - '@parcel/watcher-linux-x64-musl@2.5.0': - resolution: {integrity: sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - - '@parcel/watcher-win32-arm64@2.5.0': - resolution: {integrity: sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [win32] - - '@parcel/watcher-win32-ia32@2.5.0': - resolution: {integrity: sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==} - engines: {node: '>= 10.0.0'} - cpu: [ia32] - os: [win32] - - '@parcel/watcher-win32-x64@2.5.0': - resolution: {integrity: sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [win32] - - '@parcel/watcher@2.5.0': - resolution: {integrity: sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==} - engines: {node: '>= 10.0.0'} - '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -6948,101 +6890,6 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.29.1': - resolution: {integrity: sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.29.1': - resolution: {integrity: sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.29.1': - resolution: {integrity: sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.29.1': - resolution: {integrity: sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-freebsd-arm64@4.29.1': - resolution: {integrity: sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==} - cpu: [arm64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.29.1': - resolution: {integrity: sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==} - cpu: [x64] - os: [freebsd] - - '@rollup/rollup-linux-arm-gnueabihf@4.29.1': - resolution: {integrity: sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.29.1': - resolution: {integrity: sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.29.1': - resolution: {integrity: sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.29.1': - resolution: {integrity: sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-loongarch64-gnu@4.29.1': - resolution: {integrity: sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==} - cpu: [loong64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': - resolution: {integrity: sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.29.1': - resolution: {integrity: sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.29.1': - resolution: {integrity: sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.29.1': - resolution: {integrity: sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.29.1': - resolution: {integrity: sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.29.1': - resolution: {integrity: sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.29.1': - resolution: {integrity: sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.29.1': - resolution: {integrity: sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==} - cpu: [x64] - os: [win32] - '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} @@ -8792,9 +8639,6 @@ packages: zenObservable: optional: true - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -9099,12 +8943,6 @@ packages: builtin-status-codes@2.0.0: resolution: {integrity: sha512-8KPx+JfZWi0K8L5sycIOA6/ZFZbaFKXDeUIXaqwUnhed1Ge1cB0wyq+bNDjKnL9AR2Uj3m/khkF6CDolsyMitA==} - bundle-require@5.1.0: - resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - peerDependencies: - esbuild: '>=0.18' - bytes-iec@3.1.1: resolution: {integrity: sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==} engines: {node: '>= 0.8'} @@ -9113,10 +8951,6 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - caching-transform@4.0.0: resolution: {integrity: sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==} engines: {node: '>=8'} @@ -9359,10 +9193,6 @@ packages: commander@3.0.2: resolution: {integrity: sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==} - commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - commander@5.1.0: resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} engines: {node: '>= 6'} @@ -9417,10 +9247,6 @@ packages: resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} engines: {node: '>=8'} - consola@3.3.3: - resolution: {integrity: sha512-Qil5KwghMzlqd51UXM0b6fyaGHtOC22scxrwrz4A2882LyUMwQjnvaedN1HAeXzphspQ6CpHkzMAWxBTUruDLg==} - engines: {node: ^14.18.0 || >=16.10.0} - constant-case@3.0.4: resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} @@ -9820,11 +9646,6 @@ packages: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} - detect-libc@1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} - engines: {node: '>=0.10'} - hasBin: true - detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} @@ -10089,12 +9910,6 @@ packages: peerDependencies: esbuild: '>=0.12 <1' - esbuild-sass-plugin@3.3.1: - resolution: {integrity: sha512-SnO1ls+d52n6j8gRRpjexXI8MsHEaumS0IdDHaYM29Y6gakzZYMls6i9ql9+AWMSQk/eryndmUpXEgT34QrX1A==} - peerDependencies: - esbuild: '>=0.20.1' - sass-embedded: ^1.71.1 - esbuild@0.17.19: resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} engines: {node: '>=12'} @@ -11564,10 +11379,6 @@ packages: joi@17.13.3: resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} - joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} - engines: {node: '>=10'} - jquery@3.6.0: resolution: {integrity: sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==} @@ -11747,10 +11558,6 @@ packages: engines: {node: '>=8.0.0'} hasBin: true - load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - loader-runner@4.3.0: resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} engines: {node: '>=6.11.5'} @@ -11829,9 +11636,6 @@ packages: lodash.mergewith@4.6.2: resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} - lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - lodash.throttle@4.1.1: resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} @@ -12189,9 +11993,6 @@ packages: murmurhash-js@1.0.0: resolution: {integrity: sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==} - mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nanoid@3.3.8: resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -12225,9 +12026,6 @@ packages: node-abort-controller@3.1.1: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} - node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} @@ -12688,24 +12486,6 @@ packages: ts-node: optional: true - postcss-load-config@6.0.1: - resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} - engines: {node: '>= 18'} - peerDependencies: - jiti: '>=1.21.0' - postcss: '>=8.0.9' - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - jiti: - optional: true - postcss: - optional: true - tsx: - optional: true - yaml: - optional: true - postcss-loader@6.2.0: resolution: {integrity: sha512-H9hv447QjQJVDbHj3OUdciyAXY3v5+UDduzEytAlZCVHCpNAAg/mCSwhYYqZr9BiGYhmYspU8QXxZwiHTLn3yA==} engines: {node: '>= 12.13.0'} @@ -13449,10 +13229,22 @@ packages: robust-predicates@3.0.2: resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} + rollup-plugin-dts@6.1.1: + resolution: {integrity: sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA==} + engines: {node: '>=16'} + peerDependencies: + rollup: ^3.29.4 || ^4 + typescript: ^4.5 || ^5.0 + rollup-plugin-livereload@2.0.5: resolution: {integrity: sha512-vqQZ/UQowTW7VoiKEM5ouNW90wE5/GZLfdWuR0ELxyKOJUIaj+uismPZZaICU4DnWPVjnpCDDxEqwU7pcKY/PA==} engines: {node: '>=8.3'} + rollup-plugin-peer-deps-external@2.2.4: + resolution: {integrity: sha512-AWdukIM1+k5JDdAqV/Cxd+nejvno2FVLVeZ74NKggm3Q5s9cbbcOgUPGdbxPi4BXu7xGaZ8HG12F+thImYu/0g==} + peerDependencies: + rollup: '*' + rollup-plugin-postcss@4.0.2: resolution: {integrity: sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w==} engines: {node: '>=10'} @@ -13479,11 +13271,6 @@ packages: engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true - rollup@4.29.1: - resolution: {integrity: sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - route-recognizer@0.3.4: resolution: {integrity: sha512-2+MhsfPhvauN1O8KaXpXAOfR/fwe8dnUXVM+xw7yt40lJRfPVQxV6yryZm0cgRvAj5fMF/mdRZbL2ptwbs5i2g==} @@ -13674,11 +13461,6 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - sass@1.83.0: - resolution: {integrity: sha512-qsSxlayzoOjdvXMVLkzF84DJFc2HZEL/rFyGIKbbilYtAvlCxyuzUeff9LawTn4btVnLKg75Z8MMr1lxU1lfGw==} - engines: {node: '>=14.0.0'} - hasBin: true - sax@1.4.1: resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} @@ -13869,10 +13651,6 @@ packages: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} - source-map@0.8.0-beta.0: - resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} - engines: {node: '>= 8'} - space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} @@ -14086,11 +13864,6 @@ packages: stylis@4.2.0: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} - sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - supercluster@7.1.5: resolution: {integrity: sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==} @@ -14294,13 +14067,6 @@ packages: text-hex@1.0.0: resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} - thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - - thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - thread-loader@3.0.4: resolution: {integrity: sha512-ByaL2TPb+m6yArpqQUZvP+5S1mZtXsEP7nWKKlAUTm7fCml8kB5s1uI3+eHRP2bk5mVYfRSBI7FFf+tWEyLZwA==} engines: {node: '>= 10.13.0'} @@ -14326,9 +14092,6 @@ packages: tinycolor2@1.4.2: resolution: {integrity: sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==} - tinyexec@0.3.2: - resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinyglobby@0.2.10: resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} engines: {node: '>=12.0.0'} @@ -14358,9 +14121,6 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - tr46@3.0.0: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} @@ -14390,9 +14150,6 @@ packages: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - ts-jest-resolver@2.0.1: resolution: {integrity: sha512-FolE73BqVZCs8/RbLKxC67iaAtKpBWx7PeLKFW2zJQlOf9j851I7JRxSDenri2NFvVH3QP7v3S8q1AmL24Zb9Q==} @@ -14436,25 +14193,6 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsup@8.3.5: - resolution: {integrity: sha512-Tunf6r6m6tnZsG9GYWndg0z8dEV7fD733VBFzFJ5Vcm1FtlXB8xBD/rtrBi2a3YKEV7hHtxiZtW5EAVADoe1pA==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - '@microsoft/api-extractor': ^7.36.0 - '@swc/core': ^1 - postcss: ^8.4.12 - typescript: '>=4.5.0' - peerDependenciesMeta: - '@microsoft/api-extractor': - optional: true - '@swc/core': - optional: true - postcss: - optional: true - typescript: - optional: true - tunnel@0.0.6: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} @@ -14774,9 +14512,6 @@ packages: webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} @@ -14861,9 +14596,6 @@ packages: whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} - which-boxed-primitive@1.1.0: resolution: {integrity: sha512-Ei7Miu/AXe2JJ4iNF5j/UphAgRoma4trE6PtisM09bPygb3egMH3YLW/befsWb1A1AxvNSFidOFTB18XtnIIng==} engines: {node: '>= 0.4'} @@ -16845,67 +16577,6 @@ snapshots: dependencies: '@octokit/openapi-types': 22.2.0 - '@parcel/watcher-android-arm64@2.5.0': - optional: true - - '@parcel/watcher-darwin-arm64@2.5.0': - optional: true - - '@parcel/watcher-darwin-x64@2.5.0': - optional: true - - '@parcel/watcher-freebsd-x64@2.5.0': - optional: true - - '@parcel/watcher-linux-arm-glibc@2.5.0': - optional: true - - '@parcel/watcher-linux-arm-musl@2.5.0': - optional: true - - '@parcel/watcher-linux-arm64-glibc@2.5.0': - optional: true - - '@parcel/watcher-linux-arm64-musl@2.5.0': - optional: true - - '@parcel/watcher-linux-x64-glibc@2.5.0': - optional: true - - '@parcel/watcher-linux-x64-musl@2.5.0': - optional: true - - '@parcel/watcher-win32-arm64@2.5.0': - optional: true - - '@parcel/watcher-win32-ia32@2.5.0': - optional: true - - '@parcel/watcher-win32-x64@2.5.0': - optional: true - - '@parcel/watcher@2.5.0': - dependencies: - detect-libc: 1.0.3 - is-glob: 4.0.3 - micromatch: 4.0.8 - node-addon-api: 7.1.1 - optionalDependencies: - '@parcel/watcher-android-arm64': 2.5.0 - '@parcel/watcher-darwin-arm64': 2.5.0 - '@parcel/watcher-darwin-x64': 2.5.0 - '@parcel/watcher-freebsd-x64': 2.5.0 - '@parcel/watcher-linux-arm-glibc': 2.5.0 - '@parcel/watcher-linux-arm-musl': 2.5.0 - '@parcel/watcher-linux-arm64-glibc': 2.5.0 - '@parcel/watcher-linux-arm64-musl': 2.5.0 - '@parcel/watcher-linux-x64-glibc': 2.5.0 - '@parcel/watcher-linux-x64-musl': 2.5.0 - '@parcel/watcher-win32-arm64': 2.5.0 - '@parcel/watcher-win32-ia32': 2.5.0 - '@parcel/watcher-win32-x64': 2.5.0 - optional: true - '@pkgjs/parseargs@0.11.0': optional: true @@ -17376,6 +17047,15 @@ snapshots: rollup: 3.29.5 tslib: 2.5.0 + '@rollup/plugin-typescript@12.1.0(rollup@3.29.5)(tslib@2.5.0)(typescript@5.7.2)': + dependencies: + '@rollup/pluginutils': 5.1.3(rollup@3.29.5) + resolve: 1.22.8 + typescript: 5.7.2 + optionalDependencies: + rollup: 3.29.5 + tslib: 2.5.0 + '@rollup/pluginutils@4.2.1': dependencies: estree-walker: 2.0.2 @@ -17389,63 +17069,6 @@ snapshots: optionalDependencies: rollup: 3.29.5 - '@rollup/rollup-android-arm-eabi@4.29.1': - optional: true - - '@rollup/rollup-android-arm64@4.29.1': - optional: true - - '@rollup/rollup-darwin-arm64@4.29.1': - optional: true - - '@rollup/rollup-darwin-x64@4.29.1': - optional: true - - '@rollup/rollup-freebsd-arm64@4.29.1': - optional: true - - '@rollup/rollup-freebsd-x64@4.29.1': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.29.1': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.29.1': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.29.1': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.29.1': - optional: true - - '@rollup/rollup-linux-loongarch64-gnu@4.29.1': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.29.1': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.29.1': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.29.1': - optional: true - - '@rollup/rollup-linux-x64-musl@4.29.1': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.29.1': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.29.1': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.29.1': - optional: true - '@rtsao/scc@1.1.0': {} '@samverschueren/stream-to-observable@0.3.1(rxjs@6.6.7)': @@ -21048,8 +20671,6 @@ snapshots: optionalDependencies: rxjs: 6.6.7 - any-promise@1.3.0: {} - anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -21160,7 +20781,7 @@ snapshots: ast-types@0.16.1: dependencies: - tslib: 2.5.0 + tslib: 2.8.1 async@3.2.6: {} @@ -21464,17 +21085,10 @@ snapshots: builtin-status-codes@2.0.0: {} - bundle-require@5.1.0(esbuild@0.24.2): - dependencies: - esbuild: 0.24.2 - load-tsconfig: 0.2.5 - bytes-iec@3.1.1: {} bytes@3.1.2: {} - cac@6.7.14: {} - caching-transform@4.0.0: dependencies: hasha: 5.2.2 @@ -21800,8 +21414,6 @@ snapshots: commander@3.0.2: {} - commander@4.1.1: {} - commander@5.1.0: {} commander@7.2.0: {} @@ -21853,8 +21465,6 @@ snapshots: write-file-atomic: 3.0.3 xdg-basedir: 4.0.0 - consola@3.3.3: {} - constant-case@3.0.4: dependencies: no-case: 3.0.4 @@ -22012,12 +21622,12 @@ snapshots: css-tree@2.2.1: dependencies: mdn-data: 2.0.28 - source-map-js: 1.2.0 + source-map-js: 1.2.1 css-tree@2.3.1: dependencies: mdn-data: 2.0.30 - source-map-js: 1.2.0 + source-map-js: 1.2.1 css-what@6.1.0: {} @@ -22279,9 +21889,6 @@ snapshots: detect-indent@6.1.0: {} - detect-libc@1.0.3: - optional: true - detect-newline@3.1.0: {} detect-node-es@1.1.0: {} @@ -22611,14 +22218,6 @@ snapshots: transitivePeerDependencies: - supports-color - esbuild-sass-plugin@3.3.1(esbuild@0.24.2)(sass-embedded@1.83.0): - dependencies: - esbuild: 0.24.2 - resolve: 1.22.8 - safe-identifier: 0.4.2 - sass: 1.83.0 - sass-embedded: 1.83.0 - esbuild@0.17.19: optionalDependencies: '@esbuild/android-arm': 0.17.19 @@ -24585,8 +24184,6 @@ snapshots: '@sideway/formula': 3.0.1 '@sideway/pinpoint': 2.0.0 - joycon@3.1.1: {} - jquery@3.6.0: {} js-base64@2.6.4: {} @@ -24786,8 +24383,6 @@ snapshots: - bufferutil - utf-8-validate - load-tsconfig@0.2.5: {} - loader-runner@4.3.0: {} loader-utils@2.0.4: @@ -24861,8 +24456,6 @@ snapshots: lodash.mergewith@4.6.2: {} - lodash.sortby@4.7.0: {} - lodash.throttle@4.1.1: {} lodash.uniq@4.5.0: {} @@ -25380,12 +24973,6 @@ snapshots: murmurhash-js@1.0.0: {} - mz@2.7.0: - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - nanoid@3.3.8: {} nanoid@5.0.9: {} @@ -25409,9 +24996,6 @@ snapshots: node-abort-controller@3.1.1: {} - node-addon-api@7.1.1: - optional: true - node-domexception@1.0.0: {} node-fetch@2.6.7: @@ -25902,12 +25486,6 @@ snapshots: optionalDependencies: postcss: 8.4.47 - postcss-load-config@6.0.1(postcss@8.4.47): - dependencies: - lilconfig: 3.1.3 - optionalDependencies: - postcss: 8.4.47 - postcss-loader@6.2.0(postcss@8.4.47)(webpack@5.94.0): dependencies: cosmiconfig: 7.1.0 @@ -26503,7 +26081,7 @@ snapshots: esprima: 4.0.1 source-map: 0.6.1 tiny-invariant: 1.3.3 - tslib: 2.5.0 + tslib: 2.8.1 rechoir@0.7.1: dependencies: @@ -26729,6 +26307,14 @@ snapshots: robust-predicates@3.0.2: {} + rollup-plugin-dts@6.1.1(rollup@3.29.5)(typescript@5.7.2): + dependencies: + magic-string: 0.30.14 + rollup: 3.29.5 + typescript: 5.7.2 + optionalDependencies: + '@babel/code-frame': 7.26.2 + rollup-plugin-livereload@2.0.5: dependencies: livereload: 0.9.3 @@ -26736,6 +26322,10 @@ snapshots: - bufferutil - utf-8-validate + rollup-plugin-peer-deps-external@2.2.4(rollup@3.29.5): + dependencies: + rollup: 3.29.5 + rollup-plugin-postcss@4.0.2(postcss@8.4.47): dependencies: chalk: 4.1.2 @@ -26776,31 +26366,6 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - rollup@4.29.1: - dependencies: - '@types/estree': 1.0.6 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.29.1 - '@rollup/rollup-android-arm64': 4.29.1 - '@rollup/rollup-darwin-arm64': 4.29.1 - '@rollup/rollup-darwin-x64': 4.29.1 - '@rollup/rollup-freebsd-arm64': 4.29.1 - '@rollup/rollup-freebsd-x64': 4.29.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.29.1 - '@rollup/rollup-linux-arm-musleabihf': 4.29.1 - '@rollup/rollup-linux-arm64-gnu': 4.29.1 - '@rollup/rollup-linux-arm64-musl': 4.29.1 - '@rollup/rollup-linux-loongarch64-gnu': 4.29.1 - '@rollup/rollup-linux-powerpc64le-gnu': 4.29.1 - '@rollup/rollup-linux-riscv64-gnu': 4.29.1 - '@rollup/rollup-linux-s390x-gnu': 4.29.1 - '@rollup/rollup-linux-x64-gnu': 4.29.1 - '@rollup/rollup-linux-x64-musl': 4.29.1 - '@rollup/rollup-win32-arm64-msvc': 4.29.1 - '@rollup/rollup-win32-ia32-msvc': 4.29.1 - '@rollup/rollup-win32-x64-msvc': 4.29.1 - fsevents: 2.3.3 - route-recognizer@0.3.4: {} rtlcss@3.5.0: @@ -26824,7 +26389,7 @@ snapshots: rxjs@7.8.1: dependencies: - tslib: 2.5.0 + tslib: 2.8.1 safe-array-concat@1.1.2: dependencies: @@ -26951,15 +26516,7 @@ snapshots: dependencies: chokidar: 3.5.3 immutable: 4.3.7 - source-map-js: 1.2.0 - - sass@1.83.0: - dependencies: - chokidar: 4.0.3 - immutable: 5.0.3 - source-map-js: 1.2.0 - optionalDependencies: - '@parcel/watcher': 2.5.0 + source-map-js: 1.2.1 sax@1.4.1: {} @@ -27175,10 +26732,6 @@ snapshots: source-map@0.7.4: {} - source-map@0.8.0-beta.0: - dependencies: - whatwg-url: 7.1.0 - space-separated-tokens@2.0.2: {} spawn-command@0.0.2: {} @@ -27432,16 +26985,6 @@ snapshots: stylis@4.2.0: {} - sucrase@3.35.0: - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - commander: 4.1.1 - glob: 10.4.1 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.6 - ts-interface-checker: 0.1.13 - supercluster@7.1.5: dependencies: kdbush: 3.0.0 @@ -27640,14 +27183,6 @@ snapshots: text-hex@1.0.0: {} - thenify-all@1.6.0: - dependencies: - thenify: 3.3.1 - - thenify@3.3.1: - dependencies: - any-promise: 1.3.0 - thread-loader@3.0.4(webpack@5.94.0): dependencies: json-parse-better-errors: 1.0.2 @@ -27669,8 +27204,6 @@ snapshots: tinycolor2@1.4.2: {} - tinyexec@0.3.2: {} - tinyglobby@0.2.10: dependencies: fdir: 6.4.2(picomatch@4.0.2) @@ -27697,10 +27230,6 @@ snapshots: tr46@0.0.3: {} - tr46@1.0.1: - dependencies: - punycode: 2.3.1 - tr46@3.0.0: dependencies: punycode: 2.3.1 @@ -27719,8 +27248,6 @@ snapshots: ts-dedent@2.2.0: {} - ts-interface-checker@0.1.13: {} - ts-jest-resolver@2.0.1: dependencies: jest-resolve: 29.7.0 @@ -27758,33 +27285,6 @@ snapshots: tslib@2.8.1: {} - tsup@8.3.5(postcss@8.4.47)(typescript@5.7.2): - dependencies: - bundle-require: 5.1.0(esbuild@0.24.2) - cac: 6.7.14 - chokidar: 4.0.3 - consola: 3.3.3 - debug: 4.4.0 - esbuild: 0.24.2 - joycon: 3.1.1 - picocolors: 1.1.1 - postcss-load-config: 6.0.1(postcss@8.4.47) - resolve-from: 5.0.0 - rollup: 4.29.1 - source-map: 0.8.0-beta.0 - sucrase: 3.35.0 - tinyexec: 0.3.2 - tinyglobby: 0.2.10 - tree-kill: 1.2.2 - optionalDependencies: - postcss: 8.4.47 - typescript: 5.7.2 - transitivePeerDependencies: - - jiti - - supports-color - - tsx - - yaml - tunnel@0.0.6: {} turndown@7.1.2: @@ -28145,8 +27645,6 @@ snapshots: webidl-conversions@3.0.1: {} - webidl-conversions@4.0.2: {} - webidl-conversions@7.0.0: {} webpack-cli@4.9.1(webpack@5.94.0): @@ -28255,12 +27753,6 @@ snapshots: tr46: 0.0.3 webidl-conversions: 3.0.1 - whatwg-url@7.1.0: - dependencies: - lodash.sortby: 4.7.0 - tr46: 1.0.1 - webidl-conversions: 4.0.2 - which-boxed-primitive@1.1.0: dependencies: is-bigint: 1.1.0 diff --git a/projects/js-packages/charts/changelog/add-charts-rollup b/projects/js-packages/charts/changelog/add-charts-rollup new file mode 100644 index 0000000000000..f2b643d3aac75 --- /dev/null +++ b/projects/js-packages/charts/changelog/add-charts-rollup @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Switching esbuild to rollup for better treeshaking. diff --git a/projects/js-packages/charts/package.json b/projects/js-packages/charts/package.json index 70e3424c11d47..3e5ad7be5f32f 100644 --- a/projects/js-packages/charts/package.json +++ b/projects/js-packages/charts/package.json @@ -19,8 +19,10 @@ "test-coverage": "pnpm run test --coverage", "storybook": "cd ../storybook && pnpm run storybook:dev", "compile-ts": "tsc --pretty", - "build": "pnpm run clean-build && pnpm run compile-ts", - "build:prod": "tsup src/index.ts --minify --dts", + "build": "rollup -c", + "build:prod": "rollup -c --environment NODE_ENV:production", + "build:dev": "rollup -c --environment NODE_ENV:development", + "build:watch": "rollup -c -w", "clean-build": "rm -rf dist/" }, "dependencies": { @@ -36,15 +38,19 @@ "@visx/text": "3.12.0", "@visx/tooltip": "^3.8.0", "@visx/xychart": "3.12.0", - "clsx": "2.1.1" + "clsx": "2.1.1", + "tslib": "2.5.0" }, "devDependencies": { + "@rollup/plugin-commonjs": "26.0.1", + "@rollup/plugin-json": "6.1.0", + "@rollup/plugin-node-resolve": "15.3.0", + "@rollup/plugin-terser": "0.4.3", + "@rollup/plugin-typescript": "12.1.0", "@storybook/blocks": "8.4.6", "@storybook/react": "8.4.6", "@types/react": "18.3.18", "@types/react-dom": "18.3.5", - "esbuild": "0.24.2", - "esbuild-sass-plugin": "3.3.1", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "jest-extended": "4.0.2", @@ -52,9 +58,13 @@ "postcss-modules": "6.0.1", "react": "18.3.1", "react-dom": "18.3.1", + "rollup": "3.29.5", + "rollup-plugin-dts": "6.1.1", + "rollup-plugin-peer-deps-external": "2.2.4", + "rollup-plugin-postcss": "4.0.2", + "sass": "1.64.1", "sass-embedded": "1.83.0", "storybook": "8.4.6", - "tsup": "8.3.5", "typescript": "5.7.2" }, "peerDependencies": { @@ -63,11 +73,22 @@ }, "exports": { ".": { - "jetpack:src": "./src/index.ts", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } + "import": "./dist/index.mjs", + "require": "./dist/index.js", + "types": "./dist/index.d.ts" + }, + "./components/*": { + "import": "./dist/components/*/index.js", + "require": "./dist/components/*/index.cjs.js", + "types": "./dist/components/*/index.d.ts" + }, + "./style.css": "./dist/style.css" }, "main": "./dist/index.js", - "types": "./dist/index.d.ts" + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "sideEffects": [ + "*.css", + "*.scss" + ] } diff --git a/projects/js-packages/charts/rollup.config.mjs b/projects/js-packages/charts/rollup.config.mjs new file mode 100644 index 0000000000000..38123bdd7bd63 --- /dev/null +++ b/projects/js-packages/charts/rollup.config.mjs @@ -0,0 +1,142 @@ +// Import necessary plugins for building the library +import commonjs from '@rollup/plugin-commonjs'; +import json from '@rollup/plugin-json'; +import resolve from '@rollup/plugin-node-resolve'; +import terser from '@rollup/plugin-terser'; +import typescript from '@rollup/plugin-typescript'; +import { defineConfig } from 'rollup'; +import dts from 'rollup-plugin-dts'; +import peerDepsExternal from 'rollup-plugin-peer-deps-external'; +import postcss from 'rollup-plugin-postcss'; + +// Common plugins used across all build configurations +const commonPlugins = [ + // Automatically externalize peer dependencies + peerDepsExternal( { + includeDependencies: true, + } ), + // Locate and bundle third-party dependencies from node_modules + resolve( { + preferBuiltins: true, + extensions: [ '.tsx', '.ts', '.js', '.jsx' ], + } ), + // Convert CommonJS modules to ES6 + commonjs(), + // Allow importing JSON files + json(), + // Process SCSS/CSS modules + postcss( { + // Configure CSS modules with scoped names + modules: { + generateScopedName: '[name]__[local]__[hash:base64:5]', + }, + extract: 'style.css', + autoModules: false, + use: [ 'sass' ], + } ), +]; + +// Main bundle configuration for the entire library +const mainConfig = { + // Entry point for the bundle + input: 'src/index.ts', + // Output configuration for different module formats + output: [ + { + file: './dist/index.js', + format: 'cjs', // CommonJS format for Node.js + sourcemap: true, + sourcemapPathTransform: relativeSourcePath => { + return `/@automattic/charts/${ relativeSourcePath }`; + }, + }, + { + file: './dist/index.mjs', + format: 'esm', // ES modules for modern bundlers + sourcemap: true, + }, + ], + // Mark all dependencies as external to avoid bundling them + external: [ 'react', 'react-dom', /^@visx\/.*/, '@react-spring/web', 'clsx', 'tslib' ], + plugins: [ + ...commonPlugins, + // TypeScript compilation + typescript( { + tsconfig: './tsconfig.json', + declaration: false, // Declarations handled by dts plugin + sourceMap: true, + compilerOptions: { + verbatimModuleSyntax: true, + }, + } ), + terser(), + ], + // Handle circular dependencies warning + onwarn( warning, warn ) { + if ( warning.code === 'CIRCULAR_DEPENDENCY' ) { + return; + } + warn( warning ); + }, +}; + +// List of components to build individually +const components = [ + 'components/bar-chart', + 'components/line-chart', + 'components/pie-chart', + 'components/pie-semi-circle-chart', + 'components/tooltip', + 'components/legend', + 'components/grid-control', + 'providers/theme', +]; + +// Generate individual bundles for each component +const componentConfigs = components.map( component => ( { + // Component entry point - try both .tsx and .ts extensions + input: `src/${ component }/index`, + // Output both ESM and CJS formats + output: [ + { + file: `dist/${ component }/index.js`, + format: 'esm', + sourcemap: true, + }, + { + file: `dist/${ component }/index.cjs.js`, + format: 'cjs', + sourcemap: true, + }, + ], + // Same external config as main bundle + external: [ 'react', 'react-dom', /^@visx\/.*/, '@react-spring/web', 'clsx', 'tslib' ], + plugins: [ + ...commonPlugins, + typescript( { + tsconfig: './tsconfig.json', + declaration: false, + sourceMap: true, + compilerOptions: { + verbatimModuleSyntax: true, + }, + } ), + terser(), + ], +} ) ); + +// Configuration for generating TypeScript declaration files +const typesConfig = { + input: 'src/index.ts', + output: [ { file: 'dist/index.d.ts', format: 'es' } ], + plugins: [ + dts( { + respectExternal: true, + } ), + ], + // Don't include style imports in type definitions + external: [ /\.scss$/, /\.css$/, 'react', '@types/react' ], +}; + +// Export all configurations to be built in parallel +export default defineConfig( [ mainConfig, ...componentConfigs, typesConfig ] ); diff --git a/projects/js-packages/charts/src/components/bar-chart/bar-chart.tsx b/projects/js-packages/charts/src/components/bar-chart/bar-chart.tsx index 4e95bc5c9b122..37531106b542e 100644 --- a/projects/js-packages/charts/src/components/bar-chart/bar-chart.tsx +++ b/projects/js-packages/charts/src/components/bar-chart/bar-chart.tsx @@ -19,8 +19,8 @@ type BarChartTooltipData = { value: number; xLabel: string; yLabel: string; seri const BarChart: FC< BarChartProps > = ( { data, - width, - height, + width = 500, //TODO: replace when making the components responsive + height = 500, //TODO: replace when making the components responsive margin = { top: 20, right: 20, bottom: 40, left: 40 }, withTooltips = false, showLegend = false, @@ -65,7 +65,7 @@ const BarChart: FC< BarChartProps > = ( { const yMax = height - margins.top - margins.bottom; // Get labels for x-axis from the first series (assuming all series have same labels) - const labels = data[ 0 ].data?.map( d => d?.label ); + const labels = data[ 0 ].data?.map( d => d?.label || '' ); // Create scales const xScale = scaleBand< string >( { @@ -109,14 +109,14 @@ const BarChart: FC< BarChartProps > = ( { { data.map( ( series, seriesIndex ) => ( { series.data.map( d => { - const xPos = xScale( d.label ); + const xPos = xScale( d?.label || '' ); if ( xPos === undefined ) return null; const barWidth = innerScale.bandwidth(); const barX = xPos + ( innerScale( seriesIndex.toString() ) ?? 0 ); - const handleBarMouseMove = event => - handleMouseMove( event, d.value, d.label, series.label, seriesIndex ); + const handleBarMouseMove = ( event: MouseEvent< SVGRectElement > ) => + handleMouseMove( event, d.value, d?.label || '', series.label, seriesIndex ); return ( = ( { { withTooltips && tooltipOpen && tooltipData && ( - +
{ tooltipData.yLabel }
diff --git a/projects/js-packages/charts/src/components/pie-chart/pie-chart.tsx b/projects/js-packages/charts/src/components/pie-chart/pie-chart.tsx index 74fdcefe4711e..f925ea7faa4c0 100644 --- a/projects/js-packages/charts/src/components/pie-chart/pie-chart.tsx +++ b/projects/js-packages/charts/src/components/pie-chart/pie-chart.tsx @@ -1,17 +1,18 @@ import { Group } from '@visx/group'; import { Pie } from '@visx/shape'; import clsx from 'clsx'; -import { SVGProps } from 'react'; +import { SVGProps, type MouseEvent } from 'react'; import useChartMouseHandler from '../../hooks/use-chart-mouse-handler'; import { useChartTheme, defaultTheme } from '../../providers/theme'; import { Legend } from '../legend'; import { BaseTooltip } from '../tooltip'; import styles from './pie-chart.module.scss'; -import type { BaseChartProps, DataPoint } from '../shared/types'; +import type { BaseChartProps, DataPointPercentage } from '../shared/types'; +import type { PieArcDatum } from '@visx/shape/lib/shapes/Pie'; // TODO: add animation -interface PieChartProps extends BaseChartProps< DataPoint[] > { +interface PieChartProps extends BaseChartProps< DataPointPercentage[] > { /** * Inner radius in pixels. If > 0, creates a donut chart. Defaults to 0. */ @@ -26,8 +27,8 @@ interface PieChartProps extends BaseChartProps< DataPoint[] > { */ const PieChart = ( { data, - width, - height, + width = 500, //TODO: replace when making the components responsive + height = 500, //TODO: replace when making the components responsive withTooltips = false, innerRadius = 0, className, @@ -46,9 +47,9 @@ const PieChart = ( { const centerY = height / 2; const accessors = { - value: d => d.value, + value: ( d: PieArcDatum< DataPointPercentage > ) => d.value, // Use the color property from the data object as a last resort. The theme provides colours by default. - fill: d => d.color || providerTheme.colors[ d.index ], + fill: ( d: PieArcDatum< DataPointPercentage > ) => d?.color || providerTheme.colors[ d.index ], }; // Create legend items from data @@ -72,7 +73,8 @@ const PieChart = ( { return pie.arcs.map( ( arc, index ) => { const [ centroidX, centroidY ] = pie.path.centroid( arc ); const hasSpaceForLabel = arc.endAngle - arc.startAngle >= 0.25; - const handleMouseMove = event => onMouseMove( event, arc.data ); + const handleMouseMove = ( event: MouseEvent< SVGElement > ) => + onMouseMove( event, arc.data ); const pathProps: SVGProps< SVGPathElement > = { d: pie.path( arc ) || '', @@ -121,8 +123,8 @@ const PieChart = ( { { withTooltips && tooltipOpen && tooltipData && ( ; const PieSemiCircleChart: FC< PieSemiCircleChartProps > = ( { data, - width, + width = 500, //TODO: replace when making the components responsive label, note, className, @@ -168,8 +168,8 @@ const PieSemiCircleChart: FC< PieSemiCircleChartProps > = ( { value: tooltipData.value, valueDisplay: tooltipData.valueDisplay, } } - top={ tooltipTop } - left={ tooltipLeft } + top={ tooltipTop || 0 } + left={ tooltipLeft || 0 } /> ) } diff --git a/projects/js-packages/charts/src/components/tooltip/base-tooltip.tsx b/projects/js-packages/charts/src/components/tooltip/base-tooltip.tsx index 0fe814a9cd790..38d905b20fbdf 100644 --- a/projects/js-packages/charts/src/components/tooltip/base-tooltip.tsx +++ b/projects/js-packages/charts/src/components/tooltip/base-tooltip.tsx @@ -49,7 +49,7 @@ export const BaseTooltip = ( { }: BaseTooltipProps ) => { return (
- { children || } + { children || ( data && ) }
); }; diff --git a/projects/js-packages/charts/src/hooks/use-chart-mouse-handler.ts b/projects/js-packages/charts/src/hooks/use-chart-mouse-handler.ts index 8a1739a90e4ec..b229f1d0ad41c 100644 --- a/projects/js-packages/charts/src/hooks/use-chart-mouse-handler.ts +++ b/projects/js-packages/charts/src/hooks/use-chart-mouse-handler.ts @@ -81,7 +81,7 @@ const useChartMouseHandler = ( { onMouseMove, onMouseLeave, tooltipOpen, - tooltipData, + tooltipData: tooltipData || null, tooltipLeft, tooltipTop, }; diff --git a/projects/js-packages/charts/src/providers/theme/theme-provider.tsx b/projects/js-packages/charts/src/providers/theme/theme-provider.tsx index 88584dda80aae..211499ae73583 100644 --- a/projects/js-packages/charts/src/providers/theme/theme-provider.tsx +++ b/projects/js-packages/charts/src/providers/theme/theme-provider.tsx @@ -1,4 +1,4 @@ -import { createContext, useContext, FC, ReactNode } from 'react'; +import { createContext, useContext, FC, type ReactNode } from 'react'; import { defaultTheme } from './themes'; import type { ChartTheme } from '../../components/shared/types'; diff --git a/projects/js-packages/charts/tsconfig.json b/projects/js-packages/charts/tsconfig.json index 6fa28c02613bd..60269373fd55a 100644 --- a/projects/js-packages/charts/tsconfig.json +++ b/projects/js-packages/charts/tsconfig.json @@ -1,9 +1,19 @@ { "extends": "jetpack-js-tools/tsconfig.base.json", "compilerOptions": { - "typeRoots": [ "./node_modules/@types/", "src/*" ], - "outDir": "./build/" + "target": "es2018", + "lib": [ "dom", "esnext" ], + "jsx": "react-jsx", + "sourceMap": true, + "declaration": true, + "esModuleInterop": true, + "skipLibCheck": true, + "strict": true, + "resolveJsonModule": true, + "allowSyntheticDefaultImports": true, + "downlevelIteration": true, + "typeRoots": [ "./node_modules/@types/", "src/*" ] }, - // List all sources and source-containing subdirs. - "include": [ "./index.ts", "./src" ] + "include": [ "src" ], + "exclude": [ "node_modules", "dist" ] } diff --git a/projects/js-packages/charts/tsup.config.js b/projects/js-packages/charts/tsup.config.js deleted file mode 100644 index aa6ce8e5e1970..0000000000000 --- a/projects/js-packages/charts/tsup.config.js +++ /dev/null @@ -1,26 +0,0 @@ -import path from 'path'; -import { sassPlugin, postcssModules } from 'esbuild-sass-plugin'; -import { defineConfig } from 'tsup'; - -export default defineConfig( { - entry: [ 'src/index.ts' ], - format: [ 'cjs', 'esm' ], - dts: true, - splitting: false, - sourcemap: true, - clean: true, - external: [ 'react' ], - outDir: 'dist', - esbuildPlugins: [ - sassPlugin( { - filter: /\.module\.scss$/, - transform: postcssModules( { - basedir: path.resolve( __dirname ), - generateScopedName: '[name]__[local]___[hash:base64:5]', - } ), - } ), - sassPlugin( { - filter: /\.scss$/, - } ), - ], -} ); From 4fe90fa773eb1e2074fd048c144d49410747a50b Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Fri, 3 Jan 2025 00:57:42 +0100 Subject: [PATCH 33/98] Update dependency filesize to v10 (#40830) * Update dependency filesize to v10 * Switch to named exports --------- Co-authored-by: Renovate Bot Co-authored-by: tbradsha <32492176+tbradsha@users.noreply.github.com> --- pnpm-lock.yaml | 16 ++++++++-------- .../videopress/changelog/renovate-filesize-10.x | 4 ++++ projects/packages/videopress/package.json | 2 +- .../components/video-storage-meter/index.tsx | 2 +- .../videopress-uploader/uploader-progress.js | 2 +- .../jetpack/changelog/renovate-filesize-10.x | 4 ++++ .../blocks/videopress/resumable-upload/index.js | 2 +- projects/plugins/jetpack/package.json | 2 +- 8 files changed, 21 insertions(+), 13 deletions(-) create mode 100644 projects/packages/videopress/changelog/renovate-filesize-10.x create mode 100644 projects/plugins/jetpack/changelog/renovate-filesize-10.x diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 05d026f29c189..646f627c84a5f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2990,8 +2990,8 @@ importers: specifier: 4.4.0 version: 4.4.0 filesize: - specifier: 8.0.6 - version: 8.0.6 + specifier: 10.1.6 + version: 10.1.6 react: specifier: 18.3.1 version: 18.3.1 @@ -3981,8 +3981,8 @@ importers: specifier: 3.3.0 version: 3.3.0 filesize: - specifier: 8.0.6 - version: 8.0.6 + specifier: 10.1.6 + version: 10.1.6 focus-trap: specifier: 6.3.0 version: 6.3.0 @@ -10319,9 +10319,9 @@ packages: filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} - filesize@8.0.6: - resolution: {integrity: sha512-sHvRqTiwdmcuzqet7iVwsbwF6UrV3wIgDf2SHNdY1Hgl8PC45HZg/0xtdw6U2izIV4lccnrY9ftl6wZFNdjYMg==} - engines: {node: '>= 0.4.0'} + filesize@10.1.6: + resolution: {integrity: sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==} + engines: {node: '>= 10.4.0'} fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} @@ -22804,7 +22804,7 @@ snapshots: dependencies: minimatch: 5.1.0 - filesize@8.0.6: {} + filesize@10.1.6: {} fill-range@7.1.1: dependencies: diff --git a/projects/packages/videopress/changelog/renovate-filesize-10.x b/projects/packages/videopress/changelog/renovate-filesize-10.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/videopress/changelog/renovate-filesize-10.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/videopress/package.json b/projects/packages/videopress/package.json index f597b34855066..504664c0e0202 100644 --- a/projects/packages/videopress/package.json +++ b/projects/packages/videopress/package.json @@ -82,7 +82,7 @@ "@wordpress/url": "4.14.0", "clsx": "2.1.1", "debug": "4.4.0", - "filesize": "8.0.6", + "filesize": "10.1.6", "react": "18.3.1", "react-dom": "18.3.1", "react-router-dom": "6.28.1", diff --git a/projects/packages/videopress/src/client/admin/components/video-storage-meter/index.tsx b/projects/packages/videopress/src/client/admin/components/video-storage-meter/index.tsx index cb1486e5b85c3..11bea31208ae5 100644 --- a/projects/packages/videopress/src/client/admin/components/video-storage-meter/index.tsx +++ b/projects/packages/videopress/src/client/admin/components/video-storage-meter/index.tsx @@ -4,7 +4,7 @@ import { ProgressBar, Text } from '@automattic/jetpack-components'; import { __, sprintf } from '@wordpress/i18n'; import clsx from 'clsx'; -import filesize from 'filesize'; +import { filesize } from 'filesize'; /** * Internal dependencies */ diff --git a/projects/packages/videopress/src/client/block-editor/blocks/video/components/videopress-uploader/uploader-progress.js b/projects/packages/videopress/src/client/block-editor/blocks/video/components/videopress-uploader/uploader-progress.js index 5210489575053..a87025e06c91b 100644 --- a/projects/packages/videopress/src/client/block-editor/blocks/video/components/videopress-uploader/uploader-progress.js +++ b/projects/packages/videopress/src/client/block-editor/blocks/video/components/videopress-uploader/uploader-progress.js @@ -8,7 +8,7 @@ import { useState, useEffect } from '@wordpress/element'; import { escapeHTML } from '@wordpress/escape-html'; import { __, sprintf } from '@wordpress/i18n'; import debugFactory from 'debug'; -import filesize from 'filesize'; +import { filesize } from 'filesize'; /** * Internal dependencies */ diff --git a/projects/plugins/jetpack/changelog/renovate-filesize-10.x b/projects/plugins/jetpack/changelog/renovate-filesize-10.x new file mode 100644 index 0000000000000..1eaea6a769e84 --- /dev/null +++ b/projects/plugins/jetpack/changelog/renovate-filesize-10.x @@ -0,0 +1,4 @@ +Significance: patch +Type: other + +Updated package dependencies. diff --git a/projects/plugins/jetpack/extensions/blocks/videopress/resumable-upload/index.js b/projects/plugins/jetpack/extensions/blocks/videopress/resumable-upload/index.js index d4ac91ee6cd9a..8fe8e71118ac3 100644 --- a/projects/plugins/jetpack/extensions/blocks/videopress/resumable-upload/index.js +++ b/projects/plugins/jetpack/extensions/blocks/videopress/resumable-upload/index.js @@ -4,7 +4,7 @@ import { Button, ExternalLink } from '@wordpress/components'; import { useCallback, useContext, useEffect, useRef, useState } from '@wordpress/element'; import { __, sprintf } from '@wordpress/i18n'; -import filesize from 'filesize'; +import { filesize } from 'filesize'; /** * Internal Dependencies */ diff --git a/projects/plugins/jetpack/package.json b/projects/plugins/jetpack/package.json index f4a29bb2443c4..beb1a705e5f6f 100644 --- a/projects/plugins/jetpack/package.json +++ b/projects/plugins/jetpack/package.json @@ -92,7 +92,7 @@ "debug": "4.4.0", "email-validator": "2.0.4", "events": "3.3.0", - "filesize": "8.0.6", + "filesize": "10.1.6", "focus-trap": "6.3.0", "gridicons": "3.4.1", "jsdom": "20.0.3", From 50d9df032decc68da771fec2d1ea2e585662fad4 Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Fri, 3 Jan 2025 00:57:56 +0100 Subject: [PATCH 34/98] Update dependency commander to v13 (#40828) * Update dependency commander to v13 * Allow undocumented args for now * Add comment about why we don't document arguments at the moment --------- Co-authored-by: Renovate Bot Co-authored-by: tbradsha <32492176+tbradsha@users.noreply.github.com> --- pnpm-lock.yaml | 16 ++++++++-------- .../changelog/renovate-commander-13.x | 4 ++++ projects/js-packages/eslint-changed/package.json | 2 +- projects/js-packages/eslint-changed/src/cli.js | 5 +++++ 4 files changed, 18 insertions(+), 9 deletions(-) create mode 100644 projects/js-packages/eslint-changed/changelog/renovate-commander-13.x diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 646f627c84a5f..262a0763dd454 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -729,8 +729,8 @@ importers: specifier: 5.4.1 version: 5.4.1 commander: - specifier: 9.3.0 - version: 9.3.0 + specifier: 13.0.0 + version: 13.0.0 parse-diff: specifier: 0.8.1 version: 0.8.1 @@ -9187,6 +9187,10 @@ packages: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} + commander@13.0.0: + resolution: {integrity: sha512-oPYleIY8wmTVzkvQq10AEok6YcTC4sRUBl8F9gVuwchGVUCTbl/vhLTaQqutuuySYOsu8YTgV+OxKc/8Yvx+mQ==} + engines: {node: '>=18'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -9205,10 +9209,6 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} - commander@9.3.0: - resolution: {integrity: sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==} - engines: {node: ^12.20.0 || >=14} - comment-parser@1.4.1: resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} engines: {node: '>= 12.0.0'} @@ -21410,6 +21410,8 @@ snapshots: commander@12.1.0: {} + commander@13.0.0: {} + commander@2.20.3: {} commander@3.0.2: {} @@ -21420,8 +21422,6 @@ snapshots: commander@8.3.0: {} - commander@9.3.0: {} - comment-parser@1.4.1: {} common-path-prefix@3.0.0: {} diff --git a/projects/js-packages/eslint-changed/changelog/renovate-commander-13.x b/projects/js-packages/eslint-changed/changelog/renovate-commander-13.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/eslint-changed/changelog/renovate-commander-13.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/eslint-changed/package.json b/projects/js-packages/eslint-changed/package.json index 7844d8d10e1bc..63577048991d0 100644 --- a/projects/js-packages/eslint-changed/package.json +++ b/projects/js-packages/eslint-changed/package.json @@ -23,7 +23,7 @@ }, "dependencies": { "chalk": "5.4.1", - "commander": "9.3.0", + "commander": "13.0.0", "parse-diff": "0.8.1" }, "devDependencies": { diff --git a/projects/js-packages/eslint-changed/src/cli.js b/projects/js-packages/eslint-changed/src/cli.js index ab1fab56b3ba3..26d0a2f19e7ad 100755 --- a/projects/js-packages/eslint-changed/src/cli.js +++ b/projects/js-packages/eslint-changed/src/cli.js @@ -71,9 +71,14 @@ export function createProgram( process = global.process ) { 'Only include messages on lines changed in the diff. This may miss things like deleting a `var` that leads to a new `no-undef` elsewhere.' ) .option( '--format ', 'ESLint format to use for output.', 'stylish' ) + // If we uncomment this line, `program` becomes a simple object when passed to main() rather than a `Command` object. + // .argument( '[filenames...]', 'Specified filenames to check.' ) .version( APP_VERSION ) .action( main.bind( program, process ) ); + // We should document the optional extra args with `program.argument()` but this doesn't seem to work (see above). + program.allowExcessArguments(); + return program; } From 22ed56995e4f3a4be966b6a7154bf28d25c510cc Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Fri, 3 Jan 2025 01:09:37 +0100 Subject: [PATCH 35/98] Update dependency qrcode.react to v4.2.0 (#40835) * Update dependency qrcode.react to v3.2.0 * Bump to 4.2.0 and remove unneeded @types package * Maintain same behavior after default export was removed --------- Co-authored-by: Renovate Bot Co-authored-by: tbradsha <32492176+tbradsha@users.noreply.github.com> --- pnpm-lock.yaml | 22 +++-------- .../changelog/renovate-qrcode.react-3.x | 4 ++ .../components/components/qr-code/index.tsx | 37 ++++++++++--------- projects/js-packages/components/package.json | 3 +- 4 files changed, 31 insertions(+), 35 deletions(-) create mode 100644 projects/js-packages/components/changelog/renovate-qrcode.react-3.x diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 262a0763dd454..0b98a1b3dbdb7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -462,8 +462,8 @@ importers: specifier: ^15.7.2 version: 15.8.1 qrcode.react: - specifier: 3.1.0 - version: 3.1.0(react@18.3.1) + specifier: 4.2.0 + version: 4.2.0(react@18.3.1) react-slider: specifier: 2.0.5 version: 2.0.5(@babel/runtime@7.26.0)(react@18.3.1) @@ -510,9 +510,6 @@ importers: '@types/jest': specifier: 29.5.12 version: 29.5.12 - '@types/qrcode.react': - specifier: 1.0.5 - version: 1.0.5 '@types/react': specifier: 18.3.18 version: 18.3.18 @@ -7722,9 +7719,6 @@ packages: '@types/prop-types@15.7.14': resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} - '@types/qrcode.react@1.0.5': - resolution: {integrity: sha512-BghPtnlwvrvq8QkGa1H25YnN+5OIgCKFuQruncGWLGJYOzeSKiix/4+B9BtfKF2wf5ja8yfyWYA3OXju995G8w==} - '@types/qs@6.9.17': resolution: {integrity: sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==} @@ -12803,10 +12797,10 @@ packages: q-flat@1.0.7: resolution: {integrity: sha512-Ug+B6yajVE5HF7eAszOvAcYmQ+DbYaDcQlxYuW9RaAqwZTRZQq+lHMGqHlnaxKP7CfuGCpXQXOb4qymRYMkYEQ==} - qrcode.react@3.1.0: - resolution: {integrity: sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==} + qrcode.react@4.2.0: + resolution: {integrity: sha512-QpgqWi8rD9DsS9EP3z7BT+5lY5SFhsqGjpgW5DY/i3mK4M9DTBNz3ErMi8BWYEfI3L0d8GIbGmcdFAS1uIRGjA==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 qs@6.12.1: resolution: {integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==} @@ -18141,10 +18135,6 @@ snapshots: '@types/prop-types@15.7.14': {} - '@types/qrcode.react@1.0.5': - dependencies: - '@types/react': 18.3.18 - '@types/qs@6.9.17': {} '@types/range-parser@1.2.7': {} @@ -25810,7 +25800,7 @@ snapshots: q-flat@1.0.7: {} - qrcode.react@3.1.0(react@18.3.1): + qrcode.react@4.2.0(react@18.3.1): dependencies: react: 18.3.1 diff --git a/projects/js-packages/components/changelog/renovate-qrcode.react-3.x b/projects/js-packages/components/changelog/renovate-qrcode.react-3.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/components/changelog/renovate-qrcode.react-3.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/components/components/qr-code/index.tsx b/projects/js-packages/components/components/qr-code/index.tsx index 08ac1263a01eb..fb7e74c713635 100644 --- a/projects/js-packages/components/components/qr-code/index.tsx +++ b/projects/js-packages/components/components/qr-code/index.tsx @@ -1,7 +1,8 @@ -import QRCodeLib from 'qrcode.react'; +import { QRCodeCanvas, QRCodeSVG } from 'qrcode.react'; import type React from 'react'; -type QRCodeLibProps = React.ComponentProps< typeof QRCodeLib >; +type QRCodeCanvasProps = React.ComponentProps< typeof QRCodeCanvas >; +type QRCodeSVGProps = React.ComponentProps< typeof QRCodeSVG >; export type QRCodeProps = { /** @@ -22,7 +23,7 @@ export type QRCodeProps = { /** * Error correction level of the QR code. */ - level?: QRCodeLibProps[ 'level' ]; + level?: QRCodeCanvasProps[ 'level' ] | QRCodeSVGProps[ 'level' ]; /** * Whether to include margin in the QR code. @@ -32,7 +33,7 @@ export type QRCodeProps = { /** * Render the QR code as a `canvas` or `svg`. */ - renderAs?: QRCodeLibProps[ 'renderAs' ]; + renderAs?: 'canvas' | 'svg'; /** * Size of the QR code. @@ -42,7 +43,7 @@ export type QRCodeProps = { /** * Image settings for the QR code. */ - imageSettings?: QRCodeLibProps[ 'imageSettings' ]; + imageSettings?: QRCodeCanvasProps[ 'imageSettings' ] | QRCodeSVGProps[ 'imageSettings' ]; }; /** @@ -53,25 +54,27 @@ export type QRCodeProps = { */ const QRCode: React.FC< QRCodeProps > = ( { value = 'https://jetpack.com', + size = 248, bgColor, fgColor, level, includeMargin, imageSettings, renderAs = 'canvas', - size = 248, } ) => { - return ( - + const commonProps = { + value, + size, + bgColor, + fgColor, + level, + includeMargin, + imageSettings, + }; + return renderAs === 'svg' ? ( + + ) : ( + ); }; diff --git a/projects/js-packages/components/package.json b/projects/js-packages/components/package.json index 920f76613c76e..45ab8fe77e941 100644 --- a/projects/js-packages/components/package.json +++ b/projects/js-packages/components/package.json @@ -30,7 +30,7 @@ "@wordpress/notices": "5.14.0", "clsx": "2.1.1", "prop-types": "^15.7.2", - "qrcode.react": "3.1.0", + "qrcode.react": "4.2.0", "react-slider": "2.0.5", "social-logos": "workspace:*", "uplot": "1.6.31", @@ -48,7 +48,6 @@ "@testing-library/react": "16.0.1", "@testing-library/user-event": "14.5.2", "@types/jest": "29.5.12", - "@types/qrcode.react": "1.0.5", "@types/react": "18.3.18", "@types/react-dom": "18.3.5", "@types/react-slider": "1.3.6", From 4b0d4f09a65b0ff07368975505cc271e148cf948 Mon Sep 17 00:00:00 2001 From: Grzegorz Chudzinski-Pawlowski <112354940+grzegorz-cp@users.noreply.github.com> Date: Fri, 3 Jan 2025 16:36:32 +1300 Subject: [PATCH 36/98] Release Charts v0.2.2 (#40836) --- projects/js-packages/charts/CHANGELOG.md | 6 ++++++ projects/js-packages/charts/changelog/add-charts-rollup | 4 ---- .../js-packages/charts/changelog/renovate-definitelytyped | 4 ---- projects/js-packages/charts/package.json | 2 +- 4 files changed, 7 insertions(+), 9 deletions(-) delete mode 100644 projects/js-packages/charts/changelog/add-charts-rollup delete mode 100644 projects/js-packages/charts/changelog/renovate-definitelytyped diff --git a/projects/js-packages/charts/CHANGELOG.md b/projects/js-packages/charts/CHANGELOG.md index 5b82f6a296aa8..98eafba30b5f5 100644 --- a/projects/js-packages/charts/CHANGELOG.md +++ b/projects/js-packages/charts/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] - 2025-01-03 +### Changed +- Switching esbuild to rollup for better treeshaking. [#40817] +- Updated package dependencies. [#40798] + ## [0.2.1] - 2024-12-31 ### Added - Added dist to mirror repo [#40776] @@ -37,5 +42,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Fixed lints following ESLint rule changes for TS [#40584] - Fixing a bug in Chart storybook data. [#40640] +[0.2.2]: https://github.com/Automattic/charts/compare/v0.2.1...v0.2.2 [0.2.1]: https://github.com/Automattic/charts/compare/v0.2.0...v0.2.1 [0.2.0]: https://github.com/Automattic/charts/compare/v0.1.0...v0.2.0 diff --git a/projects/js-packages/charts/changelog/add-charts-rollup b/projects/js-packages/charts/changelog/add-charts-rollup deleted file mode 100644 index f2b643d3aac75..0000000000000 --- a/projects/js-packages/charts/changelog/add-charts-rollup +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Switching esbuild to rollup for better treeshaking. diff --git a/projects/js-packages/charts/changelog/renovate-definitelytyped b/projects/js-packages/charts/changelog/renovate-definitelytyped deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/charts/changelog/renovate-definitelytyped +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/charts/package.json b/projects/js-packages/charts/package.json index 3e5ad7be5f32f..c3132e710b585 100644 --- a/projects/js-packages/charts/package.json +++ b/projects/js-packages/charts/package.json @@ -1,6 +1,6 @@ { "name": "@automattic/charts", - "version": "0.2.1", + "version": "0.2.2", "description": "Display charts within Automattic products.", "homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/js-packages/charts/#readme", "bugs": { From e82934ddc60d6b10ca5f446ac46da8cb431c8b49 Mon Sep 17 00:00:00 2001 From: Nik Tsekouras Date: Fri, 3 Jan 2025 13:59:12 +0200 Subject: [PATCH 37/98] Map block: UI updates to inspector controls (#40837) * Map block: Inspector controls UI improvements * changelog entry --- .../jetpack/changelog/map-block-ui-updates | 4 + .../jetpack/extensions/blocks/map/controls.js | 75 ++++--------------- .../jetpack/extensions/blocks/map/edit.js | 25 ++----- .../jetpack/extensions/blocks/map/editor.scss | 4 - .../extensions/blocks/map/test/controls.js | 8 +- 5 files changed, 28 insertions(+), 88 deletions(-) create mode 100644 projects/plugins/jetpack/changelog/map-block-ui-updates diff --git a/projects/plugins/jetpack/changelog/map-block-ui-updates b/projects/plugins/jetpack/changelog/map-block-ui-updates new file mode 100644 index 0000000000000..4c7a935630494 --- /dev/null +++ b/projects/plugins/jetpack/changelog/map-block-ui-updates @@ -0,0 +1,4 @@ +Significance: minor +Type: other + +Map block: Inspector controls UI improvements diff --git a/projects/plugins/jetpack/extensions/blocks/map/controls.js b/projects/plugins/jetpack/extensions/blocks/map/controls.js index bf5b1a34e2171..f9c5181ce73f8 100644 --- a/projects/plugins/jetpack/extensions/blocks/map/controls.js +++ b/projects/plugins/jetpack/extensions/blocks/map/controls.js @@ -9,11 +9,12 @@ import { ToolbarButton, ToolbarGroup, RangeControl, - BaseControl, SVG, G, Polygon, Path, + // eslint-disable-next-line @wordpress/no-unsafe-wp-apis + __experimentalNumberControl as NumberControl, } from '@wordpress/components'; import { __ } from '@wordpress/i18n'; import Locations from './locations'; @@ -44,7 +45,6 @@ export default ( { onKeyChange, context, mapRef, - instanceId, minHeight, removeAPIKey, updateAPIKey, @@ -60,38 +60,6 @@ export default ( { } }; - /** - * Change event handler for the map height sidebar control. Ensures the height is valid, - * and updates both the height attribute, and the map component's height in the DOM. - * - * @param {Event} event - The change event object. - */ - const onHeightChange = event => { - const { mapHeight } = attributes; - - let height = parseInt( event.target.value, 10 ); - - if ( isNaN( height ) ) { - // Set map height to default size and input box to empty string - height = null; - } else if ( null == mapHeight ) { - // There was previously no height defined, so set the default. - const ref = mapRef?.current?.mapRef ?? mapRef; - height = ref?.current.offsetHeight; - } else if ( height < minHeight ) { - // Set map height to minimum size - height = minHeight; - } - - setAttributes( { - mapHeight: height, - } ); - - if ( mapRef.current.sizeMap ) { - setTimeout( mapRef.current.sizeMap, 0 ); - } - }; - if ( context === 'toolbar' ) { return ( <> @@ -120,36 +88,21 @@ export default ( { { value: attributes.markerColor, onChange: value => setAttributes( { markerColor: value } ), - label: __( 'Marker Color', 'jetpack' ), + label: __( 'Marker', 'jetpack' ), }, ] } /> - - + - { - setAttributes( { mapHeight: event.target.value } ); - // If this input isn't focussed, the onBlur handler won't be triggered - // to commit the map size, so we need to check for that. - if ( event.target !== event.target.ownerDocument.activeElement ) { - if ( mapRef.current ) { - setTimeout( mapRef.current.sizeMap, 0 ); - } - } - } } - onBlur={ onHeightChange } - value={ attributes.mapHeight || '' } - min={ minHeight } - step="10" - /> - + value={ attributes.mapHeight || '' } + min={ minHeight } + onChange={ newValue => { + setAttributes( { mapHeight: newValue } ); + } } + size="__unstable-large" + step={ 10 } + /> setAttributes( { mapDetails: value } ) } /> diff --git a/projects/plugins/jetpack/extensions/blocks/map/edit.js b/projects/plugins/jetpack/extensions/blocks/map/edit.js index 9d5891bb9e587..496aaff57ae74 100644 --- a/projects/plugins/jetpack/extensions/blocks/map/edit.js +++ b/projects/plugins/jetpack/extensions/blocks/map/edit.js @@ -15,7 +15,7 @@ import { ResizableBox, } from '@wordpress/components'; import { compose } from '@wordpress/compose'; -import { withDispatch, useSelect } from '@wordpress/data'; +import { useDispatch, useSelect } from '@wordpress/data'; import { useEffect, useRef, useState } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; import { getActiveStyleName } from '../../shared/block-styles'; @@ -55,9 +55,6 @@ const MapEdit = ( { noticeUI, notices, isSelected, - instanceId, - onResizeStart, - onResizeStop, noticeOperations, } ) => { const { @@ -71,6 +68,8 @@ const MapEdit = ( { showFullscreenButton, } = attributes; + const { toggleSelection } = useDispatch( 'core/block-editor' ); + const { isPreviewMode } = useSelect( select => { const { getSettings } = select( blockEditorStore ); const settings = getSettings(); @@ -195,8 +194,7 @@ const MapEdit = ( { * @param {object} delta - Information about how far the element was resized. */ const onMapResize = ( event, direction, elt, delta ) => { - onResizeStop(); - + toggleSelection( true ); const ref = mapRef?.current?.mapRef ?? mapRef; if ( ref ) { @@ -322,7 +320,6 @@ const MapEdit = ( { apiKeyControl={ apiKeyControl } onKeyChange={ onKeyChange } mapRef={ mapRef } - instanceId={ instanceId } minHeight={ MIN_HEIGHT } removeAPIKey={ removeAPIKey } updateAPIKey={ updateAPIKey } @@ -339,7 +336,7 @@ const MapEdit = ( { showHandle={ isSelected } minHeight={ MIN_HEIGHT } enable={ RESIZABLE_BOX_ENABLE_OPTION } - onResizeStart={ onResizeStart } + onResizeStart={ () => toggleSelection( false ) } onResizeStop={ onMapResize } >
@@ -392,14 +389,4 @@ const MapEdit = ( { ); }; -export default compose( [ - withNotices, - withDispatch( dispatch => { - const { toggleSelection } = dispatch( 'core/block-editor' ); - - return { - onResizeStart: () => toggleSelection( false ), - onResizeStop: () => toggleSelection( true ), - }; - } ), -] )( MapEdit ); +export default compose( withNotices )( MapEdit ); diff --git a/projects/plugins/jetpack/extensions/blocks/map/editor.scss b/projects/plugins/jetpack/extensions/blocks/map/editor.scss index 91a5291613cef..eb1c5e0030f01 100644 --- a/projects/plugins/jetpack/extensions/blocks/map/editor.scss +++ b/projects/plugins/jetpack/extensions/blocks/map/editor.scss @@ -58,10 +58,6 @@ } } -.wp-block-jetpack-map__height_input { - display: block; -} - .component__add-point__popover { .components-popover__content { width: 250px; diff --git a/projects/plugins/jetpack/extensions/blocks/map/test/controls.js b/projects/plugins/jetpack/extensions/blocks/map/test/controls.js index b178c98a4f90f..83140e4e47e18 100644 --- a/projects/plugins/jetpack/extensions/blocks/map/test/controls.js +++ b/projects/plugins/jetpack/extensions/blocks/map/test/controls.js @@ -63,11 +63,11 @@ describe( 'Inspector controls', () => { test( 'displays marker colors correctly', () => { render( ); - expect( screen.getByText( 'Marker Color' ) ).toBeInTheDocument(); + expect( screen.getByText( 'Marker' ) ).toBeInTheDocument(); } ); } ); - describe( 'Map settings panel', () => { + describe( 'Settings panel', () => { test( 'height input shows correctly', () => { render( ); @@ -83,7 +83,7 @@ describe( 'Inspector controls', () => { test( 'street names toggle shows correctly when mapProvider is mapbox', () => { render( ); - expect( screen.getByText( 'Show street names' ) ).toBeInTheDocument(); + expect( screen.getByText( 'Show labels' ) ).toBeInTheDocument(); } ); test( "street names toggle shows doesn't show when mapProvider is mapkit", () => { @@ -91,7 +91,7 @@ describe( 'Inspector controls', () => { render( ); - expect( screen.queryByText( 'Show street names' ) ).not.toBeInTheDocument(); + expect( screen.queryByText( 'Show labels' ) ).not.toBeInTheDocument(); } ); test( 'scroll to zoom toggle shows correctly when mapProvider is mapbox', () => { From 681e85c06f8b28b948fff347982a63cc58abf9da Mon Sep 17 00:00:00 2001 From: Bryan Elliott Date: Fri, 3 Jan 2025 10:55:39 -0500 Subject: [PATCH 38/98] My Jetpack: Add a Protect 'needs-attention' status when Threats are detected. (#40628) * Add a error/warning status and a "Fix threats" CTA when Protect has threats. --- .../components/product-card/action-button.tsx | 96 +++++++++++-------- .../_inc/components/product-card/index.tsx | 7 +- .../_inc/components/product-card/status.tsx | 57 ++++++++--- .../backup-card/index.jsx | 2 +- .../protect-card/use-protect-tooltip-copy.ts | 19 ++-- .../packages/my-jetpack/_inc/constants.ts | 3 +- .../use-backup-needs-attention-notice.tsx | 8 +- .../use-get-readable-failed-backup-reason.tsx | 4 +- .../changelog/add-protect-fix-threats-status | 4 + projects/packages/my-jetpack/global.d.ts | 9 +- .../my-jetpack/src/class-initializer.php | 5 +- .../my-jetpack/src/class-products.php | 9 +- .../my-jetpack/src/products/class-backup.php | 18 ++-- .../my-jetpack/src/products/class-product.php | 9 +- .../my-jetpack/src/products/class-protect.php | 47 +++++++++ 15 files changed, 212 insertions(+), 85 deletions(-) create mode 100644 projects/packages/my-jetpack/changelog/add-protect-fix-threats-status diff --git a/projects/packages/my-jetpack/_inc/components/product-card/action-button.tsx b/projects/packages/my-jetpack/_inc/components/product-card/action-button.tsx index eb77e4e25c744..eb1650872143e 100644 --- a/projects/packages/my-jetpack/_inc/components/product-card/action-button.tsx +++ b/projects/packages/my-jetpack/_inc/components/product-card/action-button.tsx @@ -88,9 +88,7 @@ const ActionButton: FC< ActionButtonProps > = ( { variant: 'primary', label: buttonText, onClick: onLearnMore, - ...( primaryActionOverride && - PRODUCT_STATUSES.ABSENT in primaryActionOverride && - primaryActionOverride[ PRODUCT_STATUSES.ABSENT ] ), + ...( primaryActionOverride?.[ PRODUCT_STATUSES.ABSENT ] ?? {} ), }; } case PRODUCT_STATUSES.ABSENT_WITH_PLAN: { @@ -100,9 +98,7 @@ const ActionButton: FC< ActionButtonProps > = ( { variant: 'primary', label: buttonText, onClick: onInstall, - ...( primaryActionOverride && - PRODUCT_STATUSES.ABSENT_WITH_PLAN in primaryActionOverride && - primaryActionOverride[ PRODUCT_STATUSES.ABSENT_WITH_PLAN ] ), + ...( primaryActionOverride?.[ PRODUCT_STATUSES.ABSENT_WITH_PLAN ] ?? {} ), }; } // The site or user have never been connected before and the connection is required @@ -113,9 +109,7 @@ const ActionButton: FC< ActionButtonProps > = ( { variant: 'primary', label: __( 'Learn more', 'jetpack-my-jetpack' ), onClick: onAdd, - ...( primaryActionOverride && - PRODUCT_STATUSES.NEEDS_FIRST_SITE_CONNECTION in primaryActionOverride && - primaryActionOverride[ PRODUCT_STATUSES.NEEDS_FIRST_SITE_CONNECTION ] ), + ...( primaryActionOverride?.[ PRODUCT_STATUSES.NEEDS_FIRST_SITE_CONNECTION ] ?? {} ), }; case PRODUCT_STATUSES.NEEDS_PLAN: { const getPlanText = __( 'Get plan', 'jetpack-my-jetpack' ); @@ -128,9 +122,7 @@ const ActionButton: FC< ActionButtonProps > = ( { variant: 'primary', label: buttonText, onClick: onAdd, - ...( primaryActionOverride && - PRODUCT_STATUSES.NEEDS_PLAN in primaryActionOverride && - primaryActionOverride[ PRODUCT_STATUSES.NEEDS_PLAN ] ), + ...( primaryActionOverride?.[ PRODUCT_STATUSES.NEEDS_PLAN ] ?? {} ), }; } case PRODUCT_STATUSES.CAN_UPGRADE: { @@ -144,9 +136,7 @@ const ActionButton: FC< ActionButtonProps > = ( { variant: 'primary', label: buttonText, onClick: onAdd, - ...( primaryActionOverride && - PRODUCT_STATUSES.CAN_UPGRADE in primaryActionOverride && - primaryActionOverride[ PRODUCT_STATUSES.CAN_UPGRADE ] ), + ...( primaryActionOverride?.[ PRODUCT_STATUSES.CAN_UPGRADE ] ?? {} ), }; } case PRODUCT_STATUSES.ACTIVE: { @@ -159,9 +149,7 @@ const ActionButton: FC< ActionButtonProps > = ( { variant: 'secondary', label: buttonText, onClick: onManage, - ...( primaryActionOverride && - PRODUCT_STATUSES.ACTIVE in primaryActionOverride && - primaryActionOverride[ PRODUCT_STATUSES.ACTIVE ] ), + ...( primaryActionOverride?.[ PRODUCT_STATUSES.ACTIVE ] ?? {} ), }; } case PRODUCT_STATUSES.SITE_CONNECTION_ERROR: @@ -170,9 +158,7 @@ const ActionButton: FC< ActionButtonProps > = ( { variant: 'primary', label: __( 'Connect', 'jetpack-my-jetpack' ), onClick: onFixSiteConnection, - ...( primaryActionOverride && - PRODUCT_STATUSES.SITE_CONNECTION_ERROR in primaryActionOverride && - primaryActionOverride[ PRODUCT_STATUSES.SITE_CONNECTION_ERROR ] ), + ...( primaryActionOverride?.[ PRODUCT_STATUSES.SITE_CONNECTION_ERROR ] ?? {} ), }; case PRODUCT_STATUSES.USER_CONNECTION_ERROR: return { @@ -180,9 +166,7 @@ const ActionButton: FC< ActionButtonProps > = ( { variant: 'primary', label: __( 'Connect', 'jetpack-my-jetpack' ), onClick: onFixUserConnection, - ...( primaryActionOverride && - PRODUCT_STATUSES.USER_CONNECTION_ERROR in primaryActionOverride && - primaryActionOverride[ PRODUCT_STATUSES.USER_CONNECTION_ERROR ] ), + ...( primaryActionOverride?.[ PRODUCT_STATUSES.USER_CONNECTION_ERROR ] ?? {} ), }; case PRODUCT_STATUSES.INACTIVE: case PRODUCT_STATUSES.MODULE_DISABLED: @@ -192,9 +176,7 @@ const ActionButton: FC< ActionButtonProps > = ( { variant: 'secondary', label: __( 'Activate', 'jetpack-my-jetpack' ), onClick: onActivate, - ...( primaryActionOverride && - PRODUCT_STATUSES.INACTIVE in primaryActionOverride && - primaryActionOverride[ PRODUCT_STATUSES.INACTIVE ] ), + ...( primaryActionOverride?.[ PRODUCT_STATUSES.INACTIVE ] ?? {} ), }; case PRODUCT_STATUSES.EXPIRING_SOON: return { @@ -202,9 +184,7 @@ const ActionButton: FC< ActionButtonProps > = ( { href: renewPaidPlanPurchaseUrl, variant: 'primary', label: __( 'Renew my plan', 'jetpack-my-jetpack' ), - ...( primaryActionOverride && - PRODUCT_STATUSES.EXPIRING_SOON in primaryActionOverride && - primaryActionOverride[ PRODUCT_STATUSES.EXPIRING_SOON ] ), + ...( primaryActionOverride?.[ PRODUCT_STATUSES.EXPIRING_SOON ] ?? {} ), }; case PRODUCT_STATUSES.EXPIRED: return { @@ -212,22 +192,58 @@ const ActionButton: FC< ActionButtonProps > = ( { href: managePaidPlanPurchaseUrl, variant: 'primary', label: __( 'Resume my plan', 'jetpack-my-jetpack' ), - ...( primaryActionOverride && - PRODUCT_STATUSES.EXPIRED in primaryActionOverride && - primaryActionOverride[ PRODUCT_STATUSES.EXPIRED ] ), + ...( primaryActionOverride?.[ PRODUCT_STATUSES.EXPIRED ] ?? {} ), }; - case PRODUCT_STATUSES.NEEDS_ATTENTION: - return { + case PRODUCT_STATUSES.NEEDS_ATTENTION__ERROR: { + const defaultButton: Partial< SecondaryButtonProps > = { ...buttonState, - href: troubleshootBackupsUrl, + href: manageUrl, + variant: 'primary', + label: __( 'Troubleshoot', 'jetpack-my-jetpack' ), + ...( primaryActionOverride?.[ PRODUCT_STATUSES.NEEDS_ATTENTION__ERROR ] ?? {} ), + }; + switch ( slug ) { + case 'backup': + return { + ...defaultButton, + href: troubleshootBackupsUrl, + }; + case 'protect': + return { + ...defaultButton, + label: __( 'Fix threats', 'jetpack-my-jetpack' ), + }; + default: + return defaultButton; + } + } + case PRODUCT_STATUSES.NEEDS_ATTENTION__WARNING: { + const defaultButton: Partial< SecondaryButtonProps > = { + ...buttonState, + href: manageUrl, variant: 'primary', label: __( 'Troubleshoot', 'jetpack-my-jetpack' ), - ...( primaryActionOverride && - PRODUCT_STATUSES.NEEDS_ATTENTION in primaryActionOverride && - primaryActionOverride[ PRODUCT_STATUSES.NEEDS_ATTENTION ] ), + ...( primaryActionOverride?.[ PRODUCT_STATUSES.NEEDS_ATTENTION__WARNING ] ?? {} ), }; + switch ( slug ) { + case 'protect': + return { + ...defaultButton, + label: __( 'Fix threats', 'jetpack-my-jetpack' ), + }; + default: + return { + ...defaultButton, + }; + } + } default: - return null; + return { + ...buttonState, + href: purchaseUrl || `#/add-${ slug }`, + label: __( 'Learn more', 'jetpack-my-jetpack' ), + onClick: onAdd, + }; } }, [ status, diff --git a/projects/packages/my-jetpack/_inc/components/product-card/index.tsx b/projects/packages/my-jetpack/_inc/components/product-card/index.tsx index ba235dfd9fa8b..c05126d83b359 100644 --- a/projects/packages/my-jetpack/_inc/components/product-card/index.tsx +++ b/projects/packages/my-jetpack/_inc/components/product-card/index.tsx @@ -73,8 +73,10 @@ const ProductCard: FC< ProductCardProps > = props => { const isOwned = ownedProducts?.includes( slug ); const isError = - status === PRODUCT_STATUSES.EXPIRED || status === PRODUCT_STATUSES.NEEDS_ATTENTION; - const isWarning = status === PRODUCT_STATUSES.EXPIRING_SOON; + status === PRODUCT_STATUSES.EXPIRED || status === PRODUCT_STATUSES.NEEDS_ATTENTION__ERROR; + const isWarning = + status === PRODUCT_STATUSES.EXPIRING_SOON || + status === PRODUCT_STATUSES.NEEDS_ATTENTION__WARNING; const isAbsent = status === PRODUCT_STATUSES.ABSENT || status === PRODUCT_STATUSES.ABSENT_WITH_PLAN; const isPurchaseRequired = status === PRODUCT_STATUSES.NEEDS_PLAN; @@ -223,6 +225,7 @@ const ProductCard: FC< ProductCardProps > = props => { isFetching={ isLoading } isInstallingStandalone={ isInstallingStandalone } isOwned={ isOwned } + suppressNeedsAttention={ slug === 'protect' } />
) } diff --git a/projects/packages/my-jetpack/_inc/components/product-card/status.tsx b/projects/packages/my-jetpack/_inc/components/product-card/status.tsx index f46baca25a7d3..6ef4c935173a9 100644 --- a/projects/packages/my-jetpack/_inc/components/product-card/status.tsx +++ b/projects/packages/my-jetpack/_inc/components/product-card/status.tsx @@ -10,11 +10,16 @@ interface StatusProps { isFetching: boolean; isInstallingStandalone: boolean; isOwned: boolean; + suppressNeedsAttention?: boolean; } -type StatusStateFunction = ( status: ProductStatus, isOwned: boolean ) => string; +type StatusStateFunction = ( + status: ProductStatus, + isOwned: boolean, + suppressNeedsAttention: boolean +) => string; -const getStatusLabel: StatusStateFunction = ( status, isOwned ) => { +const getStatusLabel: StatusStateFunction = ( status, isOwned, suppressNeedsAttention ) => { switch ( status ) { case PRODUCT_STATUSES.ACTIVE: case PRODUCT_STATUSES.CAN_UPGRADE: @@ -40,14 +45,21 @@ const getStatusLabel: StatusStateFunction = ( status, isOwned ) => { const inactiveText = __( 'Inactive', 'jetpack-my-jetpack' ); return isOwned ? needsPlanText : inactiveText; } - case PRODUCT_STATUSES.NEEDS_ATTENTION: - return __( 'Needs attention', 'jetpack-my-jetpack' ); + case PRODUCT_STATUSES.NEEDS_ATTENTION__WARNING: + case PRODUCT_STATUSES.NEEDS_ATTENTION__ERROR: { + const activeText = __( 'Active', 'jetpack-my-jetpack' ); + const needsAttentionText = __( 'Needs attention', 'jetpack-my-jetpack' ); + if ( suppressNeedsAttention ) { + return activeText; + } + return needsAttentionText; + } default: return __( 'Inactive', 'jetpack-my-jetpack' ); } }; -const getStatusClassName: StatusStateFunction = ( status, isOwned ) => { +const getStatusClassName: StatusStateFunction = ( status, isOwned, suppressNeedsAttention ) => { switch ( status ) { case PRODUCT_STATUSES.ACTIVE: case PRODUCT_STATUSES.CAN_UPGRADE: @@ -64,18 +76,41 @@ const getStatusClassName: StatusStateFunction = ( status, isOwned ) => { case PRODUCT_STATUSES.NEEDS_PLAN: return isOwned ? styles.warning : styles.inactive; case PRODUCT_STATUSES.EXPIRED: - case PRODUCT_STATUSES.NEEDS_ATTENTION: + case PRODUCT_STATUSES.NEEDS_ATTENTION__WARNING: + /** + * For the Protect card, even when it has a NEEDS_ATTENTION__{WARNING | ERROR} + * status (it means Threats have been detected), we still want to show the card + * status as 'Active'. + */ + if ( suppressNeedsAttention ) { + return styles.active; + } + return styles.warning; + case PRODUCT_STATUSES.NEEDS_ATTENTION__ERROR: + if ( suppressNeedsAttention ) { + return styles.active; + } return styles.error; default: return styles.inactive; } }; -const Status: FC< StatusProps > = ( { status, isFetching, isInstallingStandalone, isOwned } ) => { - const flagLabel = getStatusLabel( status, isOwned ); - const statusClassName = clsx( styles.status, getStatusClassName( status, isOwned ), { - [ styles[ 'is-fetching' ] ]: isFetching || isInstallingStandalone, - } ); +const Status: FC< StatusProps > = ( { + status, + isFetching, + isInstallingStandalone, + isOwned, + suppressNeedsAttention = false, +} ) => { + const flagLabel = getStatusLabel( status, isOwned, suppressNeedsAttention ); + const statusClassName = clsx( + styles.status, + getStatusClassName( status, isOwned, suppressNeedsAttention ), + { + [ styles[ 'is-fetching' ] ]: isFetching || isInstallingStandalone, + } + ); return ( diff --git a/projects/packages/my-jetpack/_inc/components/product-cards-section/backup-card/index.jsx b/projects/packages/my-jetpack/_inc/components/product-cards-section/backup-card/index.jsx index 03b669c4d4421..0c4477fe38257 100644 --- a/projects/packages/my-jetpack/_inc/components/product-cards-section/backup-card/index.jsx +++ b/projects/packages/my-jetpack/_inc/components/product-cards-section/backup-card/index.jsx @@ -145,7 +145,7 @@ const BackupCard = props => { return ( // eslint-disable-next-line react/jsx-no-bind - { status === PRODUCT_STATUSES.NEEDS_ATTENTION && backupFailure && ( + { status === PRODUCT_STATUSES.NEEDS_ATTENTION__ERROR && backupFailure && (
diff --git a/projects/packages/my-jetpack/_inc/components/product-cards-section/protect-card/use-protect-tooltip-copy.ts b/projects/packages/my-jetpack/_inc/components/product-cards-section/protect-card/use-protect-tooltip-copy.ts index c6bdab86dcfc9..d79132a0945d9 100644 --- a/projects/packages/my-jetpack/_inc/components/product-cards-section/protect-card/use-protect-tooltip-copy.ts +++ b/projects/packages/my-jetpack/_inc/components/product-cards-section/protect-card/use-protect-tooltip-copy.ts @@ -28,10 +28,11 @@ export function useProtectTooltipCopy(): TooltipContent { const slug = PRODUCT_SLUGS.PROTECT; const { detail } = useProduct( slug ); const { - isPluginActive: isProtectPluginActive, + standalonePluginInfo, hasPaidPlanForProduct: hasProtectPaidPlan, manageUrl: protectDashboardUrl, } = detail || {}; + const { isStandaloneActive } = standalonePluginInfo || {}; const { recordEvent } = useAnalytics(); const { plugins, @@ -60,11 +61,11 @@ export function useProtectTooltipCopy(): TooltipContent { }, [ threats ] ); const settingsLink = useMemo( () => { - if ( isProtectPluginActive ) { + if ( isStandaloneActive ) { return 'admin.php?page=jetpack-protect#/firewall'; } return isJetpackPluginActive() ? 'admin.php?page=jetpack#/settings' : null; - }, [ isProtectPluginActive ] ); + }, [ isStandaloneActive ] ); const trackFirewallSettingsLinkClick = useCallback( () => { recordEvent( 'jetpack_protect_card_tooltip_content_link_click', { @@ -84,7 +85,7 @@ export function useProtectTooltipCopy(): TooltipContent { } ); }, [ recordEvent, protectDashboardUrl ] ); - const isBruteForcePluginsActive = isProtectPluginActive || isJetpackPluginActive(); + const isBruteForcePluginsActive = isStandaloneActive || isJetpackPluginActive(); const blockedLoginsTooltip = useMemo( () => { if ( blockedLoginsCount === 0 ) { @@ -107,7 +108,7 @@ export function useProtectTooltipCopy(): TooltipContent { 'Brute Force Protection is disabled and not actively blocking malicious login attempts. Go to %s to activate it.', 'jetpack-my-jetpack' ), - isProtectPluginActive ? 'firewall settings' : 'Jetpack settings' + isStandaloneActive ? 'firewall settings' : 'Jetpack settings' ), { a: createElement( 'a', { @@ -143,7 +144,7 @@ export function useProtectTooltipCopy(): TooltipContent { 'Brute Force Protection is disabled and not actively blocking malicious login attempts. Go to %s to activate it.', 'jetpack-my-jetpack' ), - isProtectPluginActive ? 'firewall settings' : 'Jetpack settings' + isStandaloneActive ? 'firewall settings' : 'Jetpack settings' ), { a: createElement( 'a', { @@ -162,7 +163,7 @@ export function useProtectTooltipCopy(): TooltipContent { blockedLoginsCount, hasBruteForceProtection, isBruteForcePluginsActive, - isProtectPluginActive, + isStandaloneActive, settingsLink, trackFirewallSettingsLinkClick, ] ); @@ -206,7 +207,7 @@ export function useProtectTooltipCopy(): TooltipContent { numThreats ), criticalThreatCount, - isProtectPluginActive ? 'Protect' : 'Scan' + isStandaloneActive ? 'Protect' : 'Scan' ), { a: createElement( 'a', { @@ -227,7 +228,7 @@ export function useProtectTooltipCopy(): TooltipContent { _n( '%d threat', '%d threats', numThreats, 'jetpack-my-jetpack' ), numThreats ), - isProtectPluginActive ? 'Protect' : 'Scan' + isStandaloneActive ? 'Protect' : 'Scan' ), { a: createElement( 'a', { diff --git a/projects/packages/my-jetpack/_inc/constants.ts b/projects/packages/my-jetpack/_inc/constants.ts index c85bd53950bd8..9ab572b0d6d99 100644 --- a/projects/packages/my-jetpack/_inc/constants.ts +++ b/projects/packages/my-jetpack/_inc/constants.ts @@ -42,5 +42,6 @@ export const PRODUCT_STATUSES = { CAN_UPGRADE: 'can_upgrade', EXPIRING_SOON: 'expiring', EXPIRED: 'expired', - NEEDS_ATTENTION: 'needs_attention', + NEEDS_ATTENTION__ERROR: 'needs_attention_error', + NEEDS_ATTENTION__WARNING: 'needs_attention_warning', }; diff --git a/projects/packages/my-jetpack/_inc/hooks/use-notification-watcher/use-backup-needs-attention-notice.tsx b/projects/packages/my-jetpack/_inc/hooks/use-notification-watcher/use-backup-needs-attention-notice.tsx index 0940ea6ff9438..061233360b7a2 100644 --- a/projects/packages/my-jetpack/_inc/hooks/use-notification-watcher/use-backup-needs-attention-notice.tsx +++ b/projects/packages/my-jetpack/_inc/hooks/use-notification-watcher/use-backup-needs-attention-notice.tsx @@ -16,7 +16,10 @@ const useBackupNeedsAttentionNotice = ( redBubbleAlerts: RedBubbleAlerts ) => { const { recordEvent } = useAnalytics(); const { setNotice } = useContext( NoticeContext ); - const { status, last_updated: lastUpdated } = redBubbleAlerts?.backup_failure || {}; + const { + type, + data: { status, last_updated: lastUpdated }, + } = redBubbleAlerts?.backup_failure || { type: 'error', data: {} }; const { text: errorDescription } = useGetReadableFailedBackupReason() || {}; const { @@ -79,7 +82,7 @@ const useBackupNeedsAttentionNotice = ( redBubbleAlerts: RedBubbleAlerts ) => { const noticeOptions: NoticeOptions = { id: 'backup-needs-attention-notice', - level: 'error', + level: type, actions: [ { label: __( 'Read troubleshooting guide', 'jetpack-my-jetpack' ), @@ -108,6 +111,7 @@ const useBackupNeedsAttentionNotice = ( redBubbleAlerts: RedBubbleAlerts ) => { onSecondaryCtaClick, noticeTitle, backupStatusLastUpdatedDate, + type, errorDescription, ] ); }; diff --git a/projects/packages/my-jetpack/_inc/hooks/use-notification-watcher/use-get-readable-failed-backup-reason.tsx b/projects/packages/my-jetpack/_inc/hooks/use-notification-watcher/use-get-readable-failed-backup-reason.tsx index 23e1f2fb7b51f..efc837b569697 100644 --- a/projects/packages/my-jetpack/_inc/hooks/use-notification-watcher/use-get-readable-failed-backup-reason.tsx +++ b/projects/packages/my-jetpack/_inc/hooks/use-notification-watcher/use-get-readable-failed-backup-reason.tsx @@ -15,7 +15,9 @@ export type ReasonContent = { export function useGetReadableFailedBackupReason(): ReasonContent { const { backup_failure: backupFailure } = getMyJetpackWindowInitialState( 'redBubbleAlerts' ) || {}; - const { status } = backupFailure || {}; + const { + data: { status }, + } = backupFailure || { data: {} }; const reasonContent = useMemo( () => { switch ( status ) { diff --git a/projects/packages/my-jetpack/changelog/add-protect-fix-threats-status b/projects/packages/my-jetpack/changelog/add-protect-fix-threats-status new file mode 100644 index 0000000000000..b312e6dfc1bcf --- /dev/null +++ b/projects/packages/my-jetpack/changelog/add-protect-fix-threats-status @@ -0,0 +1,4 @@ +Significance: patch +Type: added + +My Jetpack: Added a new status for when Protect detects threats on the site. diff --git a/projects/packages/my-jetpack/global.d.ts b/projects/packages/my-jetpack/global.d.ts index 5c1fb22486671..7c72d7535904b 100644 --- a/projects/packages/my-jetpack/global.d.ts +++ b/projects/packages/my-jetpack/global.d.ts @@ -393,9 +393,12 @@ interface Window { }; }; backup_failure?: { - source: 'rewind' | 'last_backup'; - status: RewindStatus | BackupStatus; - last_updated: string; + type: 'warning' | 'error'; + data: { + source: 'rewind' | 'last_backup'; + status: RewindStatus | BackupStatus; + last_updated: string; + }; }; [ key: `${ string }--plan_expired` ]: { product_slug: string; diff --git a/projects/packages/my-jetpack/src/class-initializer.php b/projects/packages/my-jetpack/src/class-initializer.php index 6ad805d4697d3..78a64cc37106f 100644 --- a/projects/packages/my-jetpack/src/class-initializer.php +++ b/projects/packages/my-jetpack/src/class-initializer.php @@ -21,7 +21,6 @@ use Automattic\Jetpack\Licensing; use Automattic\Jetpack\Modules; use Automattic\Jetpack\Plugins_Installer; -use Automattic\Jetpack\Protect_Status\Status as Protect_Status; use Automattic\Jetpack\Status; use Automattic\Jetpack\Status\Host as Status_Host; use Automattic\Jetpack\Sync\Functions as Sync_Functions; @@ -234,7 +233,7 @@ public static function enqueue_scripts() { $previous_score = $speed_score_history->latest( 1 ); } $latest_score['previousScores'] = $previous_score['scores'] ?? array(); - $scan_data = Protect_Status::get_status(); + $scan_data = Products\Protect::get_protect_data(); self::update_historically_active_jetpack_modules(); $waf_config = array(); @@ -1045,7 +1044,7 @@ public static function alert_if_paid_plan_expiring( array $red_bubble_slugs ) { * @return array */ public static function alert_if_last_backup_failed( array $red_bubble_slugs ) { - // Make sure we're dealing with the backup product only + // Make sure we're dealing with the Backup product only if ( ! Products\Backup::has_paid_plan_for_product() ) { return $red_bubble_slugs; } diff --git a/projects/packages/my-jetpack/src/class-products.php b/projects/packages/my-jetpack/src/class-products.php index b6a96e4304ce1..f45ad5b9d1237 100644 --- a/projects/packages/my-jetpack/src/class-products.php +++ b/projects/packages/my-jetpack/src/class-products.php @@ -29,7 +29,8 @@ class Products { const STATUS_NEEDS_PLAN = 'needs_plan'; const STATUS_NEEDS_ACTIVATION = 'needs_activation'; const STATUS_NEEDS_FIRST_SITE_CONNECTION = 'needs_first_site_connection'; - const STATUS_NEEDS_ATTENTION = 'needs_attention'; + const STATUS_NEEDS_ATTENTION__WARNING = 'needs_attention_warning'; + const STATUS_NEEDS_ATTENTION__ERROR = 'needs_attention_error'; /** * List of statuses that display the module as disabled @@ -67,7 +68,8 @@ class Products { self::STATUS_USER_CONNECTION_ERROR, self::STATUS_PLUGIN_ABSENT_WITH_PLAN, self::STATUS_NEEDS_PLAN, - self::STATUS_NEEDS_ATTENTION, + self::STATUS_NEEDS_ATTENTION__ERROR, + self::STATUS_NEEDS_ATTENTION__WARNING, ); /** @@ -109,7 +111,8 @@ class Products { self::STATUS_NEEDS_PLAN, self::STATUS_NEEDS_ACTIVATION, self::STATUS_NEEDS_FIRST_SITE_CONNECTION, - self::STATUS_NEEDS_ATTENTION, + self::STATUS_NEEDS_ATTENTION__WARNING, + self::STATUS_NEEDS_ATTENTION__ERROR, ); /** diff --git a/projects/packages/my-jetpack/src/products/class-backup.php b/projects/packages/my-jetpack/src/products/class-backup.php index 829044b11d5ec..b4b267a255ad2 100644 --- a/projects/packages/my-jetpack/src/products/class-backup.php +++ b/projects/packages/my-jetpack/src/products/class-backup.php @@ -249,9 +249,12 @@ public static function does_module_need_attention() { if ( ! is_wp_error( $rewind_state ) ) { if ( $rewind_state->state !== 'active' && $rewind_state->state !== 'provisioning' && $rewind_state->state !== 'awaiting_credentials' ) { $backup_failed_status = array( - 'source' => 'rewind', - 'status' => isset( $rewind_state->reason ) && ! empty( $rewind_state->reason ) ? $rewind_state->reason : $rewind_state->state, - 'last_updated' => $rewind_state->last_updated, + 'type' => 'error', + 'data' => array( + 'source' => 'rewind', + 'status' => isset( $rewind_state->reason ) && ! empty( $rewind_state->reason ) ? $rewind_state->reason : $rewind_state->state, + 'last_updated' => $rewind_state->last_updated, + ), ); } } @@ -270,9 +273,12 @@ public static function does_module_need_attention() { if ( $last_backup && isset( $last_backup->status ) ) { if ( $last_backup->status !== 'started' && ! preg_match( '/-will-retry$/', $last_backup->status ) && $last_backup->status !== 'finished' ) { $backup_failed_status = array( - 'source' => 'last_backup', - 'status' => $last_backup->status, - 'last_updated' => $last_backup->last_updated, + 'type' => 'error', + 'data' => array( + 'source' => 'last_backup', + 'status' => $last_backup->status, + 'last_updated' => $last_backup->last_updated, + ), ); } } diff --git a/projects/packages/my-jetpack/src/products/class-product.php b/projects/packages/my-jetpack/src/products/class-product.php index de36694475714..e8d2ca67cb7cd 100644 --- a/projects/packages/my-jetpack/src/products/class-product.php +++ b/projects/packages/my-jetpack/src/products/class-product.php @@ -10,7 +10,6 @@ use Automattic\Jetpack\Connection\Client; use Automattic\Jetpack\Connection\Manager as Connection_Manager; use Automattic\Jetpack\Modules; -use Automattic\Jetpack\My_Jetpack\Products\Backup; use Automattic\Jetpack\Plugins_Installer; use Automattic\Jetpack\Status; use Jetpack_Options; @@ -725,8 +724,12 @@ public static function get_status() { } elseif ( static::$requires_user_connection && ! ( new Connection_Manager() )->has_connected_owner() ) { $status = Products::STATUS_USER_CONNECTION_ERROR; } elseif ( static::has_paid_plan_for_product() ) { - if ( static::$slug === 'backup' && Backup::does_module_need_attention() ) { - $status = Products::STATUS_NEEDS_ATTENTION; + $needs_attention = static::does_module_need_attention(); + if ( ! empty( $needs_attention ) && is_array( $needs_attention ) ) { + $status = Products::STATUS_NEEDS_ATTENTION__WARNING; + if ( isset( $needs_attention['type'] ) && 'error' === $needs_attention['type'] ) { + $status = Products::STATUS_NEEDS_ATTENTION__ERROR; + } } if ( static::is_paid_plan_expired() ) { $status = Products::STATUS_EXPIRED; diff --git a/projects/packages/my-jetpack/src/products/class-protect.php b/projects/packages/my-jetpack/src/products/class-protect.php index b3e14499ddda9..36a1496f55a16 100644 --- a/projects/packages/my-jetpack/src/products/class-protect.php +++ b/projects/packages/my-jetpack/src/products/class-protect.php @@ -10,6 +10,7 @@ use Automattic\Jetpack\Connection\Client; use Automattic\Jetpack\My_Jetpack\Hybrid_Product; use Automattic\Jetpack\My_Jetpack\Wpcom_Products; +use Automattic\Jetpack\Protect_Status\Status as Protect_Status; use Automattic\Jetpack\Redirect; use Jetpack_Options; use WP_Error; @@ -156,6 +157,15 @@ private static function get_state_from_wpcom() { return $status; } + /** + * Get the normalized protect/scan data + * + * @return Object|WP_Error + */ + public static function get_protect_data() { + return Protect_Status::get_status(); + } + /** * Get the product's available tiers * @@ -272,6 +282,43 @@ public static function get_pricing_for_ui() { ); } + /** + * Determines whether the module/plugin/product needs the users attention. + * Typically due to some sort of error where user troubleshooting is needed. + * + * @return boolean|array + */ + public static function does_module_need_attention() { + $protect_threat_status = false; + + // Check if there are scan threats. + $protect_data = self::get_protect_data(); + if ( is_wp_error( $protect_data ) ) { + return $protect_threat_status; // false + } + $critical_threat_count = false; + if ( ! empty( $protect_data->threats ) ) { + $critical_threat_count = array_reduce( + $protect_data->threats, + function ( $accum, $threat ) { + return $threat->severity >= 5 ? ++$accum : $accum; + }, + 0 + ); + + $protect_threat_status = array( + 'type' => $critical_threat_count ? 'error' : 'warning', + 'data' => array( + 'threat_count' => count( $protect_data->threats ), + 'critical_threat_count' => $critical_threat_count, + 'fixable_threat_ids' => $protect_data->fixable_threat_ids, + ), + ); + } + + return $protect_threat_status; + } + /** * Get the product-slugs of the paid plans for this product. * (Do not include bundle plans, unless it's a bundle plan itself). From 0655fb30d3cd2173ad94ed13726c56cf139fd440 Mon Sep 17 00:00:00 2001 From: Bryan Elliott Date: Fri, 3 Jan 2025 11:21:31 -0500 Subject: [PATCH 39/98] My Jetpack: Add red bubble & notice when Protect threats detected (#40719) * Add redbubble & notice when protect threats are detected. --- .../hooks/use-notification-watcher/index.ts | 2 + .../use-protect-threats-detected-notice.tsx | 126 ++++++++++++++++++ .../add-protect-redbubble-and-notice | 4 + projects/packages/my-jetpack/global.d.ts | 8 ++ .../my-jetpack/src/class-initializer.php | 23 +++- 5 files changed, 162 insertions(+), 1 deletion(-) create mode 100644 projects/packages/my-jetpack/_inc/hooks/use-notification-watcher/use-protect-threats-detected-notice.tsx create mode 100644 projects/packages/my-jetpack/changelog/add-protect-redbubble-and-notice diff --git a/projects/packages/my-jetpack/_inc/hooks/use-notification-watcher/index.ts b/projects/packages/my-jetpack/_inc/hooks/use-notification-watcher/index.ts index 0efbfe8f3da00..37c1be01d288b 100644 --- a/projects/packages/my-jetpack/_inc/hooks/use-notification-watcher/index.ts +++ b/projects/packages/my-jetpack/_inc/hooks/use-notification-watcher/index.ts @@ -4,11 +4,13 @@ import useBadInstallNotice from './use-bad-install-notice'; import useConnectionErrorsNotice from './use-connection-errors-notice'; import useDeprecateFeatureNotice from './use-deprecate-feature-notice'; import useExpiringPlansNotice from './use-expiring-plans-notice'; +import useProtectThreatsDetectedNotice from './use-protect-threats-detected-notice'; import useSiteConnectionNotice from './use-site-connection-notice'; const useNotificationWatcher = () => { const { redBubbleAlerts } = getMyJetpackWindowInitialState(); + useProtectThreatsDetectedNotice( redBubbleAlerts ); useExpiringPlansNotice( redBubbleAlerts ); useBackupNeedsAttentionNotice( redBubbleAlerts ); useDeprecateFeatureNotice( redBubbleAlerts ); diff --git a/projects/packages/my-jetpack/_inc/hooks/use-notification-watcher/use-protect-threats-detected-notice.tsx b/projects/packages/my-jetpack/_inc/hooks/use-notification-watcher/use-protect-threats-detected-notice.tsx new file mode 100644 index 0000000000000..1674368333318 --- /dev/null +++ b/projects/packages/my-jetpack/_inc/hooks/use-notification-watcher/use-protect-threats-detected-notice.tsx @@ -0,0 +1,126 @@ +import { Col, getRedirectUrl, Text } from '@automattic/jetpack-components'; +import { __, sprintf } from '@wordpress/i18n'; +import { useContext, useEffect, useCallback } from 'react'; +import { NOTICE_PRIORITY_MEDIUM } from '../../context/constants'; +import { NoticeContext } from '../../context/notices/noticeContext'; +import useProduct from '../../data/products/use-product'; +import preventWidows from '../../utils/prevent-widows'; +import useAnalytics from '../use-analytics'; +import type { NoticeOptions } from '../../context/notices/types'; + +type RedBubbleAlerts = Window[ 'myJetpackInitialState' ][ 'redBubbleAlerts' ]; + +const useProtectThreatsDetectedNotice = ( redBubbleAlerts: RedBubbleAlerts ) => { + const { recordEvent } = useAnalytics(); + const { setNotice } = useContext( NoticeContext ); + const { detail } = useProduct( 'protect' ); + const { + hasPaidPlanForProduct, + standalonePluginInfo, + manageUrl: protectDashboardUrl, + } = detail || {}; + const { isStandaloneActive } = standalonePluginInfo || {}; + + const { + type, + data: { + threat_count: threatCount, + critical_threat_count: criticalThreatCount, + fixable_threat_ids: fixableThreatIds, + }, + } = redBubbleAlerts?.protect_has_threats || { type: 'warning', data: {} }; + + const fixThreatsLearnMoreUrl = getRedirectUrl( 'protect-footer-learn-more-scan', { + anchor: 'how-do-i-fix-threats', + } ); + + const noticeTitle = sprintf( + // translators: %s is the product name. Can be either "Scan" or "Protect". + __( '%s found threats on your site', 'jetpack-my-jetpack' ), + hasPaidPlanForProduct && isStandaloneActive ? 'Protect' : 'Scan' + ); + + const onPrimaryCtaClick = useCallback( () => { + window.open( protectDashboardUrl ); + recordEvent( 'jetpack_my_jetpack_protect_threats_detected_notice_primary_cta_click', { + threat_count: threatCount, + critical_threat_count: criticalThreatCount, + fixable_threat_ids: fixableThreatIds, + } ); + }, [ criticalThreatCount, fixableThreatIds, protectDashboardUrl, recordEvent, threatCount ] ); + + const onSecondaryCtaClick = useCallback( () => { + window.open( fixThreatsLearnMoreUrl ); + recordEvent( 'jetpack_my_jetpack_protect_threats_detected_notice_secondary_cta_click', { + threat_count: threatCount, + critical_threat_count: criticalThreatCount, + fixable_threat_ids: fixableThreatIds, + } ); + }, [ criticalThreatCount, fixThreatsLearnMoreUrl, fixableThreatIds, recordEvent, threatCount ] ); + + useEffect( () => { + if ( ! redBubbleAlerts?.protect_has_threats ) { + return; + } + + const noticeMessage = ( + + + { preventWidows( + __( + 'We’ve detected some security threats that need your attention.', + 'jetpack-my-jetpack' + ) + ) } + + + { preventWidows( + sprintf( + // translators: %s is the product name. Can be either "Scan" or "Protect". + __( + 'Visit the %s dashboard to view threat details, auto-fix threats, and keep your site safe.', + 'jetpack-my-jetpack' + ), + hasPaidPlanForProduct && isStandaloneActive ? 'Protect' : 'Scan' + ) + ) } + + + ); + + const noticeOptions: NoticeOptions = { + id: 'protect-threats-detected-notice', + level: type, + actions: [ + { + label: __( 'Fix threats', 'jetpack-my-jetpack' ), + onClick: onPrimaryCtaClick, + noDefaultClasses: true, + }, + { + label: __( 'Learn more', 'jetpack-my-jetpack' ), + onClick: onSecondaryCtaClick, + isExternalLink: true, + }, + ], + priority: NOTICE_PRIORITY_MEDIUM, + }; + + setNotice( { + title: noticeTitle, + message: noticeMessage, + options: noticeOptions, + } ); + }, [ + hasPaidPlanForProduct, + isStandaloneActive, + noticeTitle, + onPrimaryCtaClick, + onSecondaryCtaClick, + redBubbleAlerts?.protect_has_threats, + setNotice, + type, + ] ); +}; + +export default useProtectThreatsDetectedNotice; diff --git a/projects/packages/my-jetpack/changelog/add-protect-redbubble-and-notice b/projects/packages/my-jetpack/changelog/add-protect-redbubble-and-notice new file mode 100644 index 0000000000000..8149be99c3828 --- /dev/null +++ b/projects/packages/my-jetpack/changelog/add-protect-redbubble-and-notice @@ -0,0 +1,4 @@ +Significance: patch +Type: added + +My Jetpack: Adds a red bubble and notice when Protect threats are detected. diff --git a/projects/packages/my-jetpack/global.d.ts b/projects/packages/my-jetpack/global.d.ts index 7c72d7535904b..cc0373cc75204 100644 --- a/projects/packages/my-jetpack/global.d.ts +++ b/projects/packages/my-jetpack/global.d.ts @@ -416,6 +416,14 @@ interface Window { manage_url?: string; products_effected?: string[]; }; + protect_has_threats?: { + type: 'warning' | 'error'; + data: { + threat_count: number; + critical_threat_count: number; + fixable_threat_ids: number[]; + }; + }; }; recommendedModules: { modules: JetpackModule[] | null; diff --git a/projects/packages/my-jetpack/src/class-initializer.php b/projects/packages/my-jetpack/src/class-initializer.php index 78a64cc37106f..d80e8549de55a 100644 --- a/projects/packages/my-jetpack/src/class-initializer.php +++ b/projects/packages/my-jetpack/src/class-initializer.php @@ -929,7 +929,8 @@ public static function add_red_bubble_alerts( array $red_bubble_slugs ) { return array_merge( self::alert_if_missing_connection( $red_bubble_slugs ), self::alert_if_last_backup_failed( $red_bubble_slugs ), - self::alert_if_paid_plan_expiring( $red_bubble_slugs ) + self::alert_if_paid_plan_expiring( $red_bubble_slugs ), + self::alert_if_protect_has_threats( $red_bubble_slugs ) ); } } @@ -1056,4 +1057,24 @@ public static function alert_if_last_backup_failed( array $red_bubble_slugs ) { return $red_bubble_slugs; } + + /** + * Add an alert slug if Protect has scan threats/vulnerabilities. + * + * @param array $red_bubble_slugs - slugs that describe the reasons the red bubble is showing. + * @return array + */ + public static function alert_if_protect_has_threats( array $red_bubble_slugs ) { + // Make sure we're dealing with the Protect product only + if ( ! Products\Protect::has_paid_plan_for_product() ) { + return $red_bubble_slugs; + } + + $protect_threats_status = Products\Protect::does_module_need_attention(); + if ( $protect_threats_status ) { + $red_bubble_slugs['protect_has_threats'] = $protect_threats_status; + } + + return $red_bubble_slugs; + } } From 3dae6d47bdca528f29455c6bbf3057b03da9cf36 Mon Sep 17 00:00:00 2001 From: dkmyta Date: Fri, 3 Jan 2025 08:59:14 -0800 Subject: [PATCH 40/98] Separate scan and history DataViews --- .../components/threats-data-views/index.tsx | 72 +++------- .../threats-data-views/styles.module.scss | 4 - .../threats-status-toggle-group-control.tsx | 135 ------------------ .../protect/src/js/routes/scan/index.jsx | 37 +++-- .../js/routes/scan/scan-history-data-view.tsx | 35 +++++ .../js/routes/scan/scan-results-data-view.tsx | 12 +- .../scan/status-toggle-group-control.tsx | 70 +++++++++ .../src/js/routes/scan/styles.module.scss | 4 + 8 files changed, 159 insertions(+), 210 deletions(-) delete mode 100644 projects/js-packages/components/components/threats-data-views/threats-status-toggle-group-control.tsx create mode 100644 projects/plugins/protect/src/js/routes/scan/scan-history-data-view.tsx create mode 100644 projects/plugins/protect/src/js/routes/scan/status-toggle-group-control.tsx diff --git a/projects/js-packages/components/components/threats-data-views/index.tsx b/projects/js-packages/components/components/threats-data-views/index.tsx index dddd8fc354182..cd09be6fa2d10 100644 --- a/projects/js-packages/components/components/threats-data-views/index.tsx +++ b/projects/js-packages/components/components/threats-data-views/index.tsx @@ -1,4 +1,4 @@ -import { getThreatType, type Threat, type ThreatStatus } from '@automattic/jetpack-scan'; +import { getThreatType, type Threat } from '@automattic/jetpack-scan'; import { type Action, type ActionButton, @@ -14,7 +14,7 @@ import { import { dateI18n } from '@wordpress/date'; import { __ } from '@wordpress/i18n'; import { Icon } from '@wordpress/icons'; -import { useCallback, useMemo, useState, useEffect } from 'react'; +import { useCallback, useMemo, useState } from 'react'; import Badge from '../badge'; import ThreatFixerButton from '../threat-fixer-button'; import ThreatSeverityBadge from '../threat-severity-badge'; @@ -40,22 +40,21 @@ import { THREAT_TYPES, } from './constants'; import styles from './styles.module.scss'; -import ThreatsStatusToggleGroupControl from './threats-status-toggle-group-control'; /** * DataViews component for displaying security threats. * - * @param {object} props - Component props. - * @param {Array} props.data - Threats data. - * @param {Array} props.filters - Initial DataView filters. - * @param {Function} props.onChangeSelection - Callback function run when an item is selected. - * @param {Function} props.onFixThreats - Threat fix action callback. - * @param {Function} props.onIgnoreThreats - Threat ignore action callback. - * @param {Function} props.onUnignoreThreats - Threat unignore action callback. - * @param {Function} props.isThreatEligibleForFix - Function to determine if a threat is eligible for fixing. - * @param {Function} props.isThreatEligibleForIgnore - Function to determine if a threat is eligible for ignoring. - * @param {Function} props.isThreatEligibleForUnignore - Function to determine if a threat is eligible for unignoring. - * @param {Function} props.onStatusFilterChange - Callback function run when the status filter changes. + * @param {object} props - Component props. + * @param {Array} props.data - Threats data. + * @param {Array} props.filters - Initial DataView filters. + * @param {Function} props.onChangeSelection - Callback function run when an item is selected. + * @param {Function} props.onFixThreats - Threat fix action callback. + * @param {Function} props.onIgnoreThreats - Threat ignore action callback. + * @param {Function} props.onUnignoreThreats - Threat unignore action callback. + * @param {Function} props.isThreatEligibleForFix - Function to determine if a threat is eligible for fixing. + * @param {Function} props.isThreatEligibleForIgnore - Function to determine if a threat is eligible for ignoring. + * @param {Function} props.isThreatEligibleForUnignore - Function to determine if a threat is eligible for unignoring. + * @param {JSX.Element} props.header - Header component. * * @return {JSX.Element} The ThreatsDataViews component. */ @@ -69,7 +68,7 @@ export default function ThreatsDataViews( { onFixThreats, onIgnoreThreats, onUnignoreThreats, - onStatusFilterChange, + header, }: { data: Threat[]; filters?: Filter[]; @@ -80,7 +79,7 @@ export default function ThreatsDataViews( { onFixThreats?: ( threats: Threat[] ) => void; onIgnoreThreats?: ActionButton< Threat >[ 'callback' ]; onUnignoreThreats?: ActionButton< Threat >[ 'callback' ]; - onStatusFilterChange?: ( newStatus: 'active' | 'historic' | null ) => void; + header?: JSX.Element; } ): JSX.Element { const baseView = { sort: { @@ -483,33 +482,6 @@ export default function ThreatsDataViews( { isThreatEligibleForUnignore, ] ); - /** - * Memoized function to determine if a status filter is selected. - * - * @param {Array} threatStatuses - List of threat statuses. - */ - const isStatusFilterSelected = useMemo( - () => ( threatStatuses: ThreatStatus[] ) => - view.filters.some( - filter => - filter.field === 'status' && - Array.isArray( filter.value ) && - filter.value.length === threatStatuses.length && - threatStatuses.every( threatStatus => filter.value.includes( threatStatus ) ) - ), - [ view.filters ] - ); - - const selectedStatusFilter = useMemo( () => { - if ( isStatusFilterSelected( [ 'current' ] ) ) { - return 'active' as const; - } - if ( isStatusFilterSelected( [ 'fixed', 'ignored' ] ) ) { - return 'historic' as const; - } - return null; - }, [ isStatusFilterSelected ] ); - /** * Apply the view settings (i.e. filters, sorting, pagination) to the dataset. * @@ -535,11 +507,6 @@ export default function ThreatsDataViews( { */ const getItemId = useCallback( ( item: Threat ) => item.id.toString(), [] ); - // Notify the consumer whenever the selectedStatusFilter changes - useEffect( () => { - onStatusFilterChange?.( selectedStatusFilter ); - }, [ selectedStatusFilter, onStatusFilterChange ] ); - return ( - } + header={ header } /> ); } diff --git a/projects/js-packages/components/components/threats-data-views/styles.module.scss b/projects/js-packages/components/components/threats-data-views/styles.module.scss index 7d97f69b25ccd..7da6717e97f97 100644 --- a/projects/js-packages/components/components/threats-data-views/styles.module.scss +++ b/projects/js-packages/components/components/threats-data-views/styles.module.scss @@ -34,7 +34,3 @@ fill: var( --jp-black ); } } - -.toggle-group-control { - min-width: 300px; -} diff --git a/projects/js-packages/components/components/threats-data-views/threats-status-toggle-group-control.tsx b/projects/js-packages/components/components/threats-data-views/threats-status-toggle-group-control.tsx deleted file mode 100644 index fb88f1d3b8077..0000000000000 --- a/projects/js-packages/components/components/threats-data-views/threats-status-toggle-group-control.tsx +++ /dev/null @@ -1,135 +0,0 @@ -import { type Threat } from '@automattic/jetpack-scan'; -import { - __experimentalToggleGroupControl as ToggleGroupControl, // eslint-disable-line @wordpress/no-unsafe-wp-apis - __experimentalToggleGroupControlOption as ToggleGroupControlOption, // eslint-disable-line @wordpress/no-unsafe-wp-apis -} from '@wordpress/components'; -import { type View } from '@wordpress/dataviews'; -import { useMemo, useCallback } from '@wordpress/element'; -import { __, sprintf } from '@wordpress/i18n'; -import styles from './styles.module.scss'; - -/** - * ToggleGroupControl component for filtering threats by status. - * @param {object} props - Component props. - * @param { Threat[]} props.data - Threats data. - * @param { View } props.view - The current view. - * @param { string } props.selectedStatusFilter - The selected status filter. - * @param { Function } props.onChangeView - Callback function to handle view changes. - * - * @return {JSX.Element|null} The component or null. - */ -export default function ThreatsStatusToggleGroupControl( { - data, - view, - selectedStatusFilter, - onChangeView, -}: { - data: Threat[]; - view: View; - selectedStatusFilter: string; - onChangeView: ( newView: View ) => void; -} ): JSX.Element { - /** - * Compute values from the provided threats data. - * - * @member {number} activeThreatsCount - Count of active threats. - * @member {number} historicThreatsCount - Count of historic threats. - */ - const { - activeThreatsCount, - historicThreatsCount, - }: { - activeThreatsCount: number; - historicThreatsCount: number; - } = useMemo( () => { - return data.reduce( - ( acc, threat ) => { - if ( threat.status ) { - if ( threat.status === 'current' ) { - acc.activeThreatsCount++; - } else { - acc.historicThreatsCount++; - } - } - return acc; - }, - { - activeThreatsCount: 0, - historicThreatsCount: 0, - } - ); - }, [ data ] ); - - /** - * Callback function to handle the status change filter. - * - * @param {string} newStatus - The new status filter value. - */ - const onStatusFilterChange = useCallback( - ( newStatus: string ) => { - const updatedFilters = view.filters.filter( filter => filter.field !== 'status' ); - - if ( newStatus === 'active' ) { - updatedFilters.push( { - field: 'status', - operator: 'isAny', - value: [ 'current' ], - } ); - } else if ( newStatus === 'historic' ) { - updatedFilters.push( { - field: 'status', - operator: 'isAny', - value: [ 'fixed', 'ignored' ], - } ); - } - - onChangeView( { - ...view, - filters: updatedFilters, - } ); - }, - [ view, onChangeView ] - ); - - if ( ! ( activeThreatsCount + historicThreatsCount ) ) { - return null; - } - - try { - return ( -
-
- - - - -
-
- ); - } catch { - return null; - } -} diff --git a/projects/plugins/protect/src/js/routes/scan/index.jsx b/projects/plugins/protect/src/js/routes/scan/index.jsx index 5290117e36cdc..e3baa5ae99bce 100644 --- a/projects/plugins/protect/src/js/routes/scan/index.jsx +++ b/projects/plugins/protect/src/js/routes/scan/index.jsx @@ -11,7 +11,9 @@ import usePlan from '../../hooks/use-plan'; import HistoryAdminSectionHero from './history-admin-section-hero'; import onboardingSteps from './onboarding-steps'; import ScanAdminSectionHero from './scan-admin-section-hero'; +import ScanHistoryDataView from './scan-history-data-view'; import ScanResultsDataView from './scan-results-data-view'; +import StatusToggleGroupControl from './status-toggle-group-control'; import styles from './styles.module.scss'; /** @@ -29,11 +31,11 @@ const ScanPage = () => { const { data: history } = useHistoryQuery(); const [ scanResultsAnchor, setScanResultsAnchor ] = useState( null ); - const [ statusFilter, setStatusFilter ] = useState( 'active' ); + const [ currentFilter, setCurrentFilter ] = useState( 'active' ); - const handleStatusFilterChange = useCallback( newStatusFilter => { - setStatusFilter( newStatusFilter ); - }, [] ); + const toggleViewingHistory = useCallback( newFilter => { + setCurrentFilter( newFilter ); + }, [] ); // TODO: Improve this remove, no longer necessary code from the main component, set/remove fields, add counts, optimize let currentScanStatus; if ( status.error ) { @@ -80,7 +82,7 @@ const ScanPage = () => { return ( - { 'historic' === statusFilter ? ( + { 'historic' === currentFilter ? ( ) : ( @@ -94,10 +96,27 @@ const ScanPage = () => { >
- + { 'historic' === currentFilter ? ( + + } + /> + ) : ( + + } + /> + ) }
{ !! status && ! isScanInProgress( status ) && ( { + setModal( { type: 'UNIGNORE_THREAT', props: { threat: threats[ 0 ] } } ); + }, + [ setModal ] + ); + + return ( + + ); +} diff --git a/projects/plugins/protect/src/js/routes/scan/scan-results-data-view.tsx b/projects/plugins/protect/src/js/routes/scan/scan-results-data-view.tsx index f4456501ebe64..1c68cb15b49eb 100644 --- a/projects/plugins/protect/src/js/routes/scan/scan-results-data-view.tsx +++ b/projects/plugins/protect/src/js/routes/scan/scan-results-data-view.tsx @@ -8,18 +8,18 @@ import useModal from '../../hooks/use-modal'; /** * Scan Results Data View * - * @param {object} props - Component props. - * @param {Array} props.filters - Default filters to apply to the data view. - * @param {Function} props.onStatusFilterChange - Callback function to handle status filter changes. + * @param {object} props - Component props. + * @param {Array} props.filters - Default filters to apply to the data view. + * @param {JSX.Element} props.header - Header component. * * @return {JSX.Element} ScanResultDataView component. */ export default function ScanResultsDataView( { filters = [], - onStatusFilterChange, + header, }: { filters: React.ComponentProps< typeof ThreatsDataViews >[ 'filters' ]; - onStatusFilterChange: ( newStatus: 'active' | 'historic' | null ) => void; + header: JSX.Element; } ) { const { setModal } = useModal(); @@ -54,7 +54,7 @@ export default function ScanResultsDataView( { onFixThreats={ onFixThreats } onIgnoreThreats={ onIgnoreThreats } onUnignoreThreats={ onUnignoreThreats } - onStatusFilterChange={ onStatusFilterChange } + header={ header } /> ); } diff --git a/projects/plugins/protect/src/js/routes/scan/status-toggle-group-control.tsx b/projects/plugins/protect/src/js/routes/scan/status-toggle-group-control.tsx new file mode 100644 index 0000000000000..29e35e2b7da4e --- /dev/null +++ b/projects/plugins/protect/src/js/routes/scan/status-toggle-group-control.tsx @@ -0,0 +1,70 @@ +import { + __experimentalToggleGroupControl as ToggleGroupControl, // eslint-disable-line @wordpress/no-unsafe-wp-apis + __experimentalToggleGroupControlOption as ToggleGroupControlOption, // eslint-disable-line @wordpress/no-unsafe-wp-apis +} from '@wordpress/components'; +import { __, sprintf } from '@wordpress/i18n'; +import styles from './styles.module.scss'; + +/** + * ToggleGroupControl component for filtering threats by status. + * @param {object} props - Component props. + * @param {number} props.activeThreatsCount - Count of active threats. + * @param {number} props.historicThreatsCount - Count of historic threats. + * @param {string} props.selectedValue - The selected value. + * @param {Function} props.onStatusFilterChange - Callback function to handle status filter changes. + * + * @return {JSX.Element|null} The component or null. + */ +export default function StatusToggleGroupControl( { + activeThreatsCount = 1, + historicThreatsCount = 1, + selectedValue = 'active', + onStatusFilterChange, +}: { + activeThreatsCount?: number; + historicThreatsCount?: number; + selectedValue?: string; + onStatusFilterChange?: ( newStatus: string ) => void; +} ): JSX.Element { + if ( ! ( activeThreatsCount + historicThreatsCount ) ) { + return null; + } + + try { + return ( +
+
+ + + + +
+
+ ); + } catch { + return null; + } +} diff --git a/projects/plugins/protect/src/js/routes/scan/styles.module.scss b/projects/plugins/protect/src/js/routes/scan/styles.module.scss index 6a04aedcda048..892478dcf85d9 100644 --- a/projects/plugins/protect/src/js/routes/scan/styles.module.scss +++ b/projects/plugins/protect/src/js/routes/scan/styles.module.scss @@ -33,3 +33,7 @@ .last-checked { width: fit-content; } + +.toggle-group-control { + min-width: 300px; +} \ No newline at end of file From fbfe605e08f873e310ebe8e3c09c7ed8b94a07b0 Mon Sep 17 00:00:00 2001 From: dkmyta Date: Fri, 3 Jan 2025 10:15:38 -0800 Subject: [PATCH 41/98] Reapply history routes --- projects/plugins/protect/src/js/index.tsx | 5 +- .../history-admin-section-hero.tsx | 19 ++++-- .../history-data-views.tsx} | 17 +++-- .../src/js/routes/scan/history/index.jsx | 46 +++++++++++++ .../js/routes/scan/history/styles.module.scss | 20 ++++++ .../protect/src/js/routes/scan/index.jsx | 64 ++----------------- .../js/routes/scan/scan-results-data-view.tsx | 60 ----------------- .../routes/scan/scan-results-data-views.tsx | 42 ++++++++++++ .../scan/status-toggle-group-control.tsx | 27 ++++---- .../src/js/routes/scan/styles.module.scss | 2 +- 10 files changed, 154 insertions(+), 148 deletions(-) rename projects/plugins/protect/src/js/routes/scan/{ => history}/history-admin-section-hero.tsx (79%) rename projects/plugins/protect/src/js/routes/scan/{scan-history-data-view.tsx => history/history-data-views.tsx} (64%) create mode 100644 projects/plugins/protect/src/js/routes/scan/history/index.jsx create mode 100644 projects/plugins/protect/src/js/routes/scan/history/styles.module.scss delete mode 100644 projects/plugins/protect/src/js/routes/scan/scan-results-data-view.tsx create mode 100644 projects/plugins/protect/src/js/routes/scan/scan-results-data-views.tsx diff --git a/projects/plugins/protect/src/js/index.tsx b/projects/plugins/protect/src/js/index.tsx index 4438d5021a664..18bc1fa09e2f5 100644 --- a/projects/plugins/protect/src/js/index.tsx +++ b/projects/plugins/protect/src/js/index.tsx @@ -13,6 +13,7 @@ import { CheckoutProvider } from './hooks/use-plan'; import FirewallRoute from './routes/firewall'; import HomeRoute from './routes/home'; import ScanRoute from './routes/scan'; +import HistoryRoute from './routes/scan/history'; import SetupRoute from './routes/setup'; import './styles.module.scss'; @@ -63,7 +64,7 @@ function render() { path="/scan/history" element={ - + } /> @@ -71,7 +72,7 @@ function render() { path="/scan/history/:filter" element={ - + } /> diff --git a/projects/plugins/protect/src/js/routes/scan/history-admin-section-hero.tsx b/projects/plugins/protect/src/js/routes/scan/history/history-admin-section-hero.tsx similarity index 79% rename from projects/plugins/protect/src/js/routes/scan/history-admin-section-hero.tsx rename to projects/plugins/protect/src/js/routes/scan/history/history-admin-section-hero.tsx index 54d24e27afac9..670bd1c56d281 100644 --- a/projects/plugins/protect/src/js/routes/scan/history-admin-section-hero.tsx +++ b/projects/plugins/protect/src/js/routes/scan/history/history-admin-section-hero.tsx @@ -1,13 +1,18 @@ import { Text } from '@automattic/jetpack-components'; import { dateI18n } from '@wordpress/date'; import { __, sprintf } from '@wordpress/i18n'; +import clsx from 'clsx'; import { useMemo } from 'react'; -import AdminSectionHero from '../../components/admin-section-hero'; -import ErrorAdminSectionHero from '../../components/error-admin-section-hero'; -import useHistoryQuery from '../../data/scan/use-history-query'; +import AdminSectionHero from '../../../components/admin-section-hero'; +import ErrorAdminSectionHero from '../../../components/error-admin-section-hero'; +import useHistoryQuery from '../../../data/scan/use-history-query'; import styles from './styles.module.scss'; -const HistoryAdminSectionHero: React.FC = () => { +const HistoryAdminSectionHero: React.FC = ( { + size = 'normal', +}: { + size?: 'normal' | 'large'; +} ) => { const { data: history } = useHistoryQuery(); const numThreats = history ? history.threats.length : 0; @@ -35,7 +40,11 @@ const HistoryAdminSectionHero: React.FC = () => { return ( - + { oldestFirstDetected ? ( diff --git a/projects/plugins/protect/src/js/routes/scan/scan-history-data-view.tsx b/projects/plugins/protect/src/js/routes/scan/history/history-data-views.tsx similarity index 64% rename from projects/plugins/protect/src/js/routes/scan/scan-history-data-view.tsx rename to projects/plugins/protect/src/js/routes/scan/history/history-data-views.tsx index 4b42d1482afa0..7574b519f5de5 100644 --- a/projects/plugins/protect/src/js/routes/scan/scan-history-data-view.tsx +++ b/projects/plugins/protect/src/js/routes/scan/history/history-data-views.tsx @@ -1,22 +1,22 @@ import { ThreatsDataViews } from '@automattic/jetpack-components'; -import { Threat } from '@automattic/jetpack-scan'; +import { type Threat } from '@automattic/jetpack-scan'; import { useCallback } from 'react'; -import useHistoryQuery from '../../data/scan/use-history-query'; -import useModal from '../../hooks/use-modal'; +import useHistoryQuery from '../../../data/scan/use-history-query'; +import useModal from '../../../hooks/use-modal'; /** - * Scan History Data View + * Scan Results Data View * * @param {object} props - Component props. * @param {JSX.Element} props.header - Header component. * - * @return {JSX.Element} ScanHistoryDataView component. + * @return {JSX.Element} ScanResultDataView component. */ -export default function ScanHistoryDataView( { header }: { header: JSX.Element } ) { - const { setModal } = useModal(); - +export default function HistoryDataViews( { header }: { header?: JSX.Element } ) { const { data: history } = useHistoryQuery(); + const { setModal } = useModal(); + const onUnignoreThreats = useCallback( ( threats: Threat[] ) => { setModal( { type: 'UNIGNORE_THREAT', props: { threat: threats[ 0 ] } } ); @@ -27,7 +27,6 @@ export default function ScanHistoryDataView( { header }: { header: JSX.Element } return ( diff --git a/projects/plugins/protect/src/js/routes/scan/history/index.jsx b/projects/plugins/protect/src/js/routes/scan/history/index.jsx new file mode 100644 index 0000000000000..16945f716ac5a --- /dev/null +++ b/projects/plugins/protect/src/js/routes/scan/history/index.jsx @@ -0,0 +1,46 @@ +import { AdminSection, Container, Col } from '@automattic/jetpack-components'; +import AdminPage from '../../../components/admin-page'; +import useHistoryQuery from '../../../data/scan/use-history-query'; +import useScanStatusQuery from '../../../data/scan/use-scan-status-query'; +import HistoryAdminSectionHero from './history-admin-section-hero'; +import HistoryDataViews from './history-data-views'; +// import StatusToggleGroupControl from './status-toggle-group-control'; +import styles from './styles.module.scss'; + +/** + * History Page + * + * The entry point for the History page. + * + * @return {Component} The root component for the scan page. + */ +const HistoryPage = () => { + const { data: status } = useScanStatusQuery(); + const { data: history } = useHistoryQuery(); + + const hasActiveThreats = status && status.threats.length; + const hasHistory = history && history.threats.length; + const showResults = hasActiveThreats || hasHistory; + + return ( + + + { showResults && ( + + + + { /* TODO: Pass header */ } + + + + + ) } + + ); +}; + +export default HistoryPage; diff --git a/projects/plugins/protect/src/js/routes/scan/history/styles.module.scss b/projects/plugins/protect/src/js/routes/scan/history/styles.module.scss new file mode 100644 index 0000000000000..d26a18f627df1 --- /dev/null +++ b/projects/plugins/protect/src/js/routes/scan/history/styles.module.scss @@ -0,0 +1,20 @@ +.hero-main { + max-width: 550px; +} + +.hero-main--large { + flex: 1 auto; + align-content: center; + height: calc( 100vh - 408px ); +} + +.history-container { + padding-left: 0; + padding-right: 0; + overflow: hidden; + + > * { + margin-left: calc( var( --spacing-base ) * -3 ); // -24px + margin-right: calc( var( --spacing-base ) * -3 ); // -24px + } +} \ No newline at end of file diff --git a/projects/plugins/protect/src/js/routes/scan/index.jsx b/projects/plugins/protect/src/js/routes/scan/index.jsx index e3baa5ae99bce..6646865ac21bd 100644 --- a/projects/plugins/protect/src/js/routes/scan/index.jsx +++ b/projects/plugins/protect/src/js/routes/scan/index.jsx @@ -1,6 +1,5 @@ import { AdminSection, Container, Col } from '@automattic/jetpack-components'; -import { useMemo, useState, useCallback } from 'react'; -import { useLocation, useParams } from 'react-router-dom'; +import { useState } from 'react'; import AdminPage from '../../components/admin-page'; import OnboardingPopover from '../../components/onboarding-popover'; import useHistoryQuery from '../../data/scan/use-history-query'; @@ -8,12 +7,9 @@ import useScanStatusQuery, { isScanInProgress } from '../../data/scan/use-scan-s import useAnalyticsTracks from '../../hooks/use-analytics-tracks'; import { OnboardingContext } from '../../hooks/use-onboarding'; import usePlan from '../../hooks/use-plan'; -import HistoryAdminSectionHero from './history-admin-section-hero'; import onboardingSteps from './onboarding-steps'; import ScanAdminSectionHero from './scan-admin-section-hero'; -import ScanHistoryDataView from './scan-history-data-view'; -import ScanResultsDataView from './scan-results-data-view'; -import StatusToggleGroupControl from './status-toggle-group-control'; +import ScanResultsDataViews from './scan-results-data-views'; import styles from './styles.module.scss'; /** @@ -25,17 +21,10 @@ import styles from './styles.module.scss'; */ const ScanPage = () => { const { hasPlan } = usePlan(); - const location = useLocation(); - const { filter } = useParams(); const { data: status } = useScanStatusQuery( { usePolling: true } ); const { data: history } = useHistoryQuery(); const [ scanResultsAnchor, setScanResultsAnchor ] = useState( null ); - const [ currentFilter, setCurrentFilter ] = useState( 'active' ); - - const toggleViewingHistory = useCallback( newFilter => { - setCurrentFilter( newFilter ); - }, [] ); // TODO: Improve this remove, no longer necessary code from the main component, set/remove fields, add counts, optimize let currentScanStatus; if ( status.error ) { @@ -50,26 +39,6 @@ const ScanPage = () => { const hasHistory = history && history.threats.length; const showResults = hasActiveThreats || hasHistory; - const filters = useMemo( () => { - if ( location.pathname.includes( '/scan/history' ) ) { - return [ - { - field: 'status', - value: filter ? [ filter ] : [ 'fixed', 'ignored' ], - operator: 'isAny', - }, - ]; - } - - return [ - { - field: 'status', - value: [ 'current' ], - operator: 'isAny', - }, - ]; - }, [ filter, location.pathname ] ); - // Track view for Protect admin page. useAnalyticsTracks( { pageViewEventName: 'protect_admin', @@ -82,11 +51,7 @@ const ScanPage = () => { return ( - { 'historic' === currentFilter ? ( - - ) : ( - - ) } + { showResults && ( { >
- { 'historic' === currentFilter ? ( - - } - /> - ) : ( - - } - /> - ) } + { /* TODO: Pass header */ } +
{ !! status && ! isScanInProgress( status ) && ( [ 'filters' ]; - header: JSX.Element; -} ) { - const { setModal } = useModal(); - - const { data: scanStatus } = useScanStatusQuery(); - const { data: history } = useHistoryQuery(); - - const onFixThreats = useCallback( - ( threats: Threat[] ) => { - setModal( { type: 'FIX_THREAT', props: { threat: threats[ 0 ] } } ); - }, - [ setModal ] - ); - - const onIgnoreThreats = useCallback( - ( threats: Threat[] ) => { - setModal( { type: 'IGNORE_THREAT', props: { threat: threats[ 0 ] } } ); - }, - [ setModal ] - ); - - const onUnignoreThreats = useCallback( - ( threats: Threat[] ) => { - setModal( { type: 'UNIGNORE_THREAT', props: { threat: threats[ 0 ] } } ); - }, - [ setModal ] - ); - - return ( - - ); -} diff --git a/projects/plugins/protect/src/js/routes/scan/scan-results-data-views.tsx b/projects/plugins/protect/src/js/routes/scan/scan-results-data-views.tsx new file mode 100644 index 0000000000000..29dac38140a8c --- /dev/null +++ b/projects/plugins/protect/src/js/routes/scan/scan-results-data-views.tsx @@ -0,0 +1,42 @@ +import { ThreatsDataViews } from '@automattic/jetpack-components'; +import { type Threat } from '@automattic/jetpack-scan'; +import { useCallback } from 'react'; +import useScanStatusQuery from '../../data/scan/use-scan-status-query'; +import useModal from '../../hooks/use-modal'; + +/** + * Scan Results Data View + * + * @param {object} props - Component props. + * @param {JSX.Element} props.header - Header component. + * + * @return {JSX.Element} ScanResultDataView component. + */ +export default function ScanResultsDataViews( { header }: { header: JSX.Element } ) { + const { data: status } = useScanStatusQuery( { usePolling: true } ); + + const { setModal } = useModal(); + + const onFixThreats = useCallback( + ( threats: Threat[] ) => { + setModal( { type: 'FIX_THREAT', props: { threat: threats[ 0 ] } } ); + }, + [ setModal ] + ); + + const onIgnoreThreats = useCallback( + ( threats: Threat[] ) => { + setModal( { type: 'IGNORE_THREAT', props: { threat: threats[ 0 ] } } ); + }, + [ setModal ] + ); + + return ( + + ); +} diff --git a/projects/plugins/protect/src/js/routes/scan/status-toggle-group-control.tsx b/projects/plugins/protect/src/js/routes/scan/status-toggle-group-control.tsx index 29e35e2b7da4e..bd60d20d0d4e6 100644 --- a/projects/plugins/protect/src/js/routes/scan/status-toggle-group-control.tsx +++ b/projects/plugins/protect/src/js/routes/scan/status-toggle-group-control.tsx @@ -3,33 +3,36 @@ import { __experimentalToggleGroupControlOption as ToggleGroupControlOption, // eslint-disable-line @wordpress/no-unsafe-wp-apis } from '@wordpress/components'; import { __, sprintf } from '@wordpress/i18n'; +import useHistoryQuery from '../../data/scan/use-history-query'; +import useScanStatusQuery from '../../data/scan/use-scan-status-query'; import styles from './styles.module.scss'; /** * ToggleGroupControl component for filtering threats by status. * @param {object} props - Component props. - * @param {number} props.activeThreatsCount - Count of active threats. - * @param {number} props.historicThreatsCount - Count of historic threats. - * @param {string} props.selectedValue - The selected value. + * @param {boolean} props.viewingHistory - Whether the user is viewing the history. * @param {Function} props.onStatusFilterChange - Callback function to handle status filter changes. * * @return {JSX.Element|null} The component or null. */ export default function StatusToggleGroupControl( { - activeThreatsCount = 1, - historicThreatsCount = 1, - selectedValue = 'active', + viewingHistory = true, onStatusFilterChange, }: { - activeThreatsCount?: number; - historicThreatsCount?: number; - selectedValue?: string; + viewingHistory?: boolean; onStatusFilterChange?: ( newStatus: string ) => void; } ): JSX.Element { - if ( ! ( activeThreatsCount + historicThreatsCount ) ) { + const { data: status } = useScanStatusQuery(); + const { data: history } = useHistoryQuery(); + const numActiveThreats = status ? status.threats.length : 0; + const numHistoricThreats = history ? history.threats.length : 0; + + if ( ! ( numHistoricThreats + numActiveThreats ) ) { return null; } + const selectedValue = viewingHistory === true ? 'historic' : 'active'; + try { return (
@@ -49,7 +52,7 @@ export default function StatusToggleGroupControl( { 'Active threats (%d)', 'jetpack-protect' ), - activeThreatsCount + numActiveThreats ) } /> diff --git a/projects/plugins/protect/src/js/routes/scan/styles.module.scss b/projects/plugins/protect/src/js/routes/scan/styles.module.scss index 892478dcf85d9..29d5928288b12 100644 --- a/projects/plugins/protect/src/js/routes/scan/styles.module.scss +++ b/projects/plugins/protect/src/js/routes/scan/styles.module.scss @@ -1,5 +1,5 @@ .hero-main { - max-width: 512px; + max-width: 550px; } .hero-main--large { From f2bcbe727aeb9c4f498e44bc883db234efe613f6 Mon Sep 17 00:00:00 2001 From: dkmyta Date: Fri, 3 Jan 2025 10:32:26 -0800 Subject: [PATCH 42/98] Add filters --- .../routes/scan/history/history-data-views.tsx | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/projects/plugins/protect/src/js/routes/scan/history/history-data-views.tsx b/projects/plugins/protect/src/js/routes/scan/history/history-data-views.tsx index 7574b519f5de5..dd795c6d54db4 100644 --- a/projects/plugins/protect/src/js/routes/scan/history/history-data-views.tsx +++ b/projects/plugins/protect/src/js/routes/scan/history/history-data-views.tsx @@ -1,6 +1,7 @@ import { ThreatsDataViews } from '@automattic/jetpack-components'; import { type Threat } from '@automattic/jetpack-scan'; -import { useCallback } from 'react'; +import { useCallback, useMemo } from 'react'; +import { useParams } from 'react-router-dom'; import useHistoryQuery from '../../../data/scan/use-history-query'; import useModal from '../../../hooks/use-modal'; @@ -13,10 +14,22 @@ import useModal from '../../../hooks/use-modal'; * @return {JSX.Element} ScanResultDataView component. */ export default function HistoryDataViews( { header }: { header?: JSX.Element } ) { + const { filter } = useParams(); const { data: history } = useHistoryQuery(); - const { setModal } = useModal(); + const filters = useMemo( () => { + if ( filter ) { + return [ + { + field: 'status', + value: filter, + operator: 'isAny', + }, + ]; + } + }, [ filter ] ); + const onUnignoreThreats = useCallback( ( threats: Threat[] ) => { setModal( { type: 'UNIGNORE_THREAT', props: { threat: threats[ 0 ] } } ); @@ -27,6 +40,7 @@ export default function HistoryDataViews( { header }: { header?: JSX.Element } ) return ( From 4afa6fcfd6b85816ef4216e6bc2a95a36d301e7b Mon Sep 17 00:00:00 2001 From: dkmyta Date: Fri, 3 Jan 2025 11:03:25 -0800 Subject: [PATCH 43/98] Add toggle group control --- .../scan/history/history-data-views.tsx | 12 ++++---- .../src/js/routes/scan/history/index.jsx | 2 -- .../protect/src/js/routes/scan/index.jsx | 1 - .../routes/scan/scan-results-data-views.tsx | 12 ++++---- ...trol.tsx => scan-toggle-group-control.tsx} | 28 ++++++++++--------- 5 files changed, 25 insertions(+), 30 deletions(-) rename projects/plugins/protect/src/js/routes/scan/{status-toggle-group-control.tsx => scan-toggle-group-control.tsx} (75%) diff --git a/projects/plugins/protect/src/js/routes/scan/history/history-data-views.tsx b/projects/plugins/protect/src/js/routes/scan/history/history-data-views.tsx index dd795c6d54db4..239f0ef04f094 100644 --- a/projects/plugins/protect/src/js/routes/scan/history/history-data-views.tsx +++ b/projects/plugins/protect/src/js/routes/scan/history/history-data-views.tsx @@ -4,16 +4,14 @@ import { useCallback, useMemo } from 'react'; import { useParams } from 'react-router-dom'; import useHistoryQuery from '../../../data/scan/use-history-query'; import useModal from '../../../hooks/use-modal'; +import ScanToggleGroupControl from '../scan-toggle-group-control'; /** - * Scan Results Data View + * Scan History Data Viewd * - * @param {object} props - Component props. - * @param {JSX.Element} props.header - Header component. - * - * @return {JSX.Element} ScanResultDataView component. + * @return {JSX.Element} HistoryDataViews component. */ -export default function HistoryDataViews( { header }: { header?: JSX.Element } ) { +export default function HistoryDataViews() { const { filter } = useParams(); const { data: history } = useHistoryQuery(); const { setModal } = useModal(); @@ -42,7 +40,7 @@ export default function HistoryDataViews( { header }: { header?: JSX.Element } ) data={ history ? history.threats : [] } filters={ filters } onUnignoreThreats={ onUnignoreThreats } - header={ header } + header={ } /> ); } diff --git a/projects/plugins/protect/src/js/routes/scan/history/index.jsx b/projects/plugins/protect/src/js/routes/scan/history/index.jsx index 16945f716ac5a..a1f3646f6aa2c 100644 --- a/projects/plugins/protect/src/js/routes/scan/history/index.jsx +++ b/projects/plugins/protect/src/js/routes/scan/history/index.jsx @@ -4,7 +4,6 @@ import useHistoryQuery from '../../../data/scan/use-history-query'; import useScanStatusQuery from '../../../data/scan/use-scan-status-query'; import HistoryAdminSectionHero from './history-admin-section-hero'; import HistoryDataViews from './history-data-views'; -// import StatusToggleGroupControl from './status-toggle-group-control'; import styles from './styles.module.scss'; /** @@ -33,7 +32,6 @@ const HistoryPage = () => { horizontalGap={ 4 } > - { /* TODO: Pass header */ } diff --git a/projects/plugins/protect/src/js/routes/scan/index.jsx b/projects/plugins/protect/src/js/routes/scan/index.jsx index 6646865ac21bd..425bd02db8212 100644 --- a/projects/plugins/protect/src/js/routes/scan/index.jsx +++ b/projects/plugins/protect/src/js/routes/scan/index.jsx @@ -61,7 +61,6 @@ const ScanPage = () => { >
- { /* TODO: Pass header */ }
{ !! status && ! isScanInProgress( status ) && ( diff --git a/projects/plugins/protect/src/js/routes/scan/scan-results-data-views.tsx b/projects/plugins/protect/src/js/routes/scan/scan-results-data-views.tsx index 29dac38140a8c..587f1131a74ea 100644 --- a/projects/plugins/protect/src/js/routes/scan/scan-results-data-views.tsx +++ b/projects/plugins/protect/src/js/routes/scan/scan-results-data-views.tsx @@ -3,16 +3,14 @@ import { type Threat } from '@automattic/jetpack-scan'; import { useCallback } from 'react'; import useScanStatusQuery from '../../data/scan/use-scan-status-query'; import useModal from '../../hooks/use-modal'; +import ScanToggleGroupControl from './scan-toggle-group-control'; /** - * Scan Results Data View + * Scan Results Data Views * - * @param {object} props - Component props. - * @param {JSX.Element} props.header - Header component. - * - * @return {JSX.Element} ScanResultDataView component. + * @return {JSX.Element} ScanResultDataViews component. */ -export default function ScanResultsDataViews( { header }: { header: JSX.Element } ) { +export default function ScanResultsDataViews() { const { data: status } = useScanStatusQuery( { usePolling: true } ); const { setModal } = useModal(); @@ -36,7 +34,7 @@ export default function ScanResultsDataViews( { header }: { header: JSX.Element data={ status ? status.threats : [] } onFixThreats={ onFixThreats } onIgnoreThreats={ onIgnoreThreats } - header={ header } + header={ } /> ); } diff --git a/projects/plugins/protect/src/js/routes/scan/status-toggle-group-control.tsx b/projects/plugins/protect/src/js/routes/scan/scan-toggle-group-control.tsx similarity index 75% rename from projects/plugins/protect/src/js/routes/scan/status-toggle-group-control.tsx rename to projects/plugins/protect/src/js/routes/scan/scan-toggle-group-control.tsx index bd60d20d0d4e6..c96fe500f3557 100644 --- a/projects/plugins/protect/src/js/routes/scan/status-toggle-group-control.tsx +++ b/projects/plugins/protect/src/js/routes/scan/scan-toggle-group-control.tsx @@ -3,43 +3,45 @@ import { __experimentalToggleGroupControlOption as ToggleGroupControlOption, // eslint-disable-line @wordpress/no-unsafe-wp-apis } from '@wordpress/components'; import { __, sprintf } from '@wordpress/i18n'; +import { useCallback } from 'react'; +import { useLocation, useNavigate } from 'react-router-dom'; import useHistoryQuery from '../../data/scan/use-history-query'; import useScanStatusQuery from '../../data/scan/use-scan-status-query'; import styles from './styles.module.scss'; /** * ToggleGroupControl component for filtering threats by status. - * @param {object} props - Component props. - * @param {boolean} props.viewingHistory - Whether the user is viewing the history. - * @param {Function} props.onStatusFilterChange - Callback function to handle status filter changes. * * @return {JSX.Element|null} The component or null. */ -export default function StatusToggleGroupControl( { - viewingHistory = true, - onStatusFilterChange, -}: { - viewingHistory?: boolean; - onStatusFilterChange?: ( newStatus: string ) => void; -} ): JSX.Element { +export default function ScanToggleGroupControl(): JSX.Element { + const location = useLocation(); + const navigate = useNavigate(); const { data: status } = useScanStatusQuery(); const { data: history } = useHistoryQuery(); const numActiveThreats = status ? status.threats.length : 0; const numHistoricThreats = history ? history.threats.length : 0; + const selectedValue = location.pathname.includes( '/history' ) ? 'historic' : 'active'; + + const onChange = useCallback( + ( value: string ) => { + navigate( value === 'active' ? '/scan' : '/scan/history' ); + }, + [ navigate ] + ); + if ( ! ( numHistoricThreats + numActiveThreats ) ) { return null; } - const selectedValue = viewingHistory === true ? 'historic' : 'active'; - try { return (
Date: Fri, 3 Jan 2025 20:07:14 +0100 Subject: [PATCH 44/98] Update dependency qss to v3 (#40843) Co-authored-by: Renovate Bot --- pnpm-lock.yaml | 26 +++++++++---------- ...te-major-instant-search-dependency-updates | 4 +++ projects/packages/search/package.json | 2 +- ...te-major-instant-search-dependency-updates | 4 +++ projects/packages/wordads/package.json | 2 +- 5 files changed, 23 insertions(+), 15 deletions(-) create mode 100644 projects/packages/search/changelog/renovate-major-instant-search-dependency-updates create mode 100644 projects/packages/wordads/changelog/renovate-major-instant-search-dependency-updates diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0b98a1b3dbdb7..7dfbfef9f2408 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2796,8 +2796,8 @@ importers: specifier: 1.0.7 version: 1.0.7 qss: - specifier: 2.0.3 - version: 2.0.3 + specifier: 3.0.0 + version: 3.0.0 react: specifier: 18.3.1 version: 18.3.1 @@ -3156,8 +3156,8 @@ importers: specifier: 1.0.7 version: 1.0.7 qss: - specifier: 2.0.3 - version: 2.0.3 + specifier: 3.0.0 + version: 3.0.0 react: specifier: 18.3.1 version: 18.3.1 @@ -12814,8 +12814,8 @@ packages: resolution: {integrity: sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==} engines: {node: '>=0.6'} - qss@2.0.3: - resolution: {integrity: sha512-j48ZBT5IZbSqJiSU8EX4XrN8nXiflHvmMvv2XpFc31gh7n6EpSs75bNr6+oj3FOLWyT8m09pTmqLNl34L7/uPQ==} + qss@3.0.0: + resolution: {integrity: sha512-ZHoCB3M/3Voev64zhLLUOKDtaEdJ/lymsJJ7R3KBusVZ2ovNiIB7XOq3Xh6V1a8O+Vho+g2B5YElq9zW7D8aQw==} engines: {node: '>=4'} querystringify@2.2.0: @@ -20771,7 +20771,7 @@ snapshots: ast-types@0.16.1: dependencies: - tslib: 2.8.1 + tslib: 2.5.0 async@3.2.6: {} @@ -21612,12 +21612,12 @@ snapshots: css-tree@2.2.1: dependencies: mdn-data: 2.0.28 - source-map-js: 1.2.1 + source-map-js: 1.2.0 css-tree@2.3.1: dependencies: mdn-data: 2.0.30 - source-map-js: 1.2.1 + source-map-js: 1.2.0 css-what@6.1.0: {} @@ -25816,7 +25816,7 @@ snapshots: dependencies: side-channel: 1.0.6 - qss@2.0.3: {} + qss@3.0.0: {} querystringify@2.2.0: {} @@ -26071,7 +26071,7 @@ snapshots: esprima: 4.0.1 source-map: 0.6.1 tiny-invariant: 1.3.3 - tslib: 2.8.1 + tslib: 2.5.0 rechoir@0.7.1: dependencies: @@ -26379,7 +26379,7 @@ snapshots: rxjs@7.8.1: dependencies: - tslib: 2.8.1 + tslib: 2.5.0 safe-array-concat@1.1.2: dependencies: @@ -26506,7 +26506,7 @@ snapshots: dependencies: chokidar: 3.5.3 immutable: 4.3.7 - source-map-js: 1.2.1 + source-map-js: 1.2.0 sax@1.4.1: {} diff --git a/projects/packages/search/changelog/renovate-major-instant-search-dependency-updates b/projects/packages/search/changelog/renovate-major-instant-search-dependency-updates new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/search/changelog/renovate-major-instant-search-dependency-updates @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/search/package.json b/projects/packages/search/package.json index afef372f18104..63b366927136c 100644 --- a/projects/packages/search/package.json +++ b/projects/packages/search/package.json @@ -54,7 +54,7 @@ "preact": "10.22.1", "prop-types": "15.8.1", "q-flat": "1.0.7", - "qss": "2.0.3", + "qss": "3.0.0", "react": "18.3.1", "react-dom": "18.3.1", "react-redux": "7.2.8", diff --git a/projects/packages/wordads/changelog/renovate-major-instant-search-dependency-updates b/projects/packages/wordads/changelog/renovate-major-instant-search-dependency-updates new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/wordads/changelog/renovate-major-instant-search-dependency-updates @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/wordads/package.json b/projects/packages/wordads/package.json index 09d2eaaba3258..71f5e9a68001c 100644 --- a/projects/packages/wordads/package.json +++ b/projects/packages/wordads/package.json @@ -49,7 +49,7 @@ "preact": "10.22.1", "prop-types": "15.8.1", "q-flat": "1.0.7", - "qss": "2.0.3", + "qss": "3.0.0", "react": "18.3.1", "react-dom": "18.3.1", "react-redux": "7.2.8", From 7d3e8480487c3d3bcaa746eaabe9b74f91bfdc6a Mon Sep 17 00:00:00 2001 From: tbradsha <32492176+tbradsha@users.noreply.github.com> Date: Fri, 3 Jan 2025 12:07:21 -0700 Subject: [PATCH 45/98] E2E Tests: Only install Chromium and its deps for Playwright (#40827) * Only install Chromium for playwright, but with deps * Add changelogs --- .../changelog/fix-playwright_install_tweaks | 4 ++++ .../automattic-for-agencies-client/tests/e2e/package.json | 2 +- .../plugins/boost/changelog/fix-playwright_install_tweaks | 4 ++++ projects/plugins/boost/tests/e2e/package.json | 2 +- .../changelog/fix-playwright_install_tweaks | 4 ++++ .../classic-theme-helper-plugin/tests/e2e/package.json | 2 +- .../plugins/jetpack/changelog/fix-playwright_install_tweaks | 4 ++++ projects/plugins/jetpack/tests/e2e/package.json | 2 +- .../plugins/search/changelog/fix-playwright_install_tweaks | 4 ++++ projects/plugins/search/tests/e2e/package.json | 2 +- .../plugins/social/changelog/fix-playwright_install_tweaks | 4 ++++ projects/plugins/social/tests/e2e/package.json | 2 +- .../starter-plugin/changelog/fix-playwright_install_tweaks | 4 ++++ projects/plugins/starter-plugin/tests/e2e/package.json | 2 +- .../videopress/changelog/fix-playwright_install_tweaks | 4 ++++ projects/plugins/videopress/tests/e2e/package.json | 2 +- 16 files changed, 40 insertions(+), 8 deletions(-) create mode 100644 projects/plugins/automattic-for-agencies-client/changelog/fix-playwright_install_tweaks create mode 100644 projects/plugins/boost/changelog/fix-playwright_install_tweaks create mode 100644 projects/plugins/classic-theme-helper-plugin/changelog/fix-playwright_install_tweaks create mode 100644 projects/plugins/jetpack/changelog/fix-playwright_install_tweaks create mode 100644 projects/plugins/search/changelog/fix-playwright_install_tweaks create mode 100644 projects/plugins/social/changelog/fix-playwright_install_tweaks create mode 100644 projects/plugins/starter-plugin/changelog/fix-playwright_install_tweaks create mode 100644 projects/plugins/videopress/changelog/fix-playwright_install_tweaks diff --git a/projects/plugins/automattic-for-agencies-client/changelog/fix-playwright_install_tweaks b/projects/plugins/automattic-for-agencies-client/changelog/fix-playwright_install_tweaks new file mode 100644 index 0000000000000..ebeba9b69f473 --- /dev/null +++ b/projects/plugins/automattic-for-agencies-client/changelog/fix-playwright_install_tweaks @@ -0,0 +1,4 @@ +Significance: patch +Type: fixed + +E2E Tests: Only install single browser used by Playwright. diff --git a/projects/plugins/automattic-for-agencies-client/tests/e2e/package.json b/projects/plugins/automattic-for-agencies-client/tests/e2e/package.json index aa25869d186ce..764e9d8bc18cb 100644 --- a/projects/plugins/automattic-for-agencies-client/tests/e2e/package.json +++ b/projects/plugins/automattic-for-agencies-client/tests/e2e/package.json @@ -25,7 +25,7 @@ "tunnel:reset": "tunnel reset", "tunnel:down": "tunnel down", "pretest:run": "pnpm run clean", - "test:run": ". ./node_modules/jetpack-e2e-commons/bin/app-password.sh && playwright install && NODE_CONFIG_DIR='./config' ALLURE_RESULTS_DIR=./output/allure-results NODE_PATH=\"$PWD/node_modules\" playwright test --config=./playwright.config.mjs" + "test:run": ". ./node_modules/jetpack-e2e-commons/bin/app-password.sh && playwright install --with-deps chromium && NODE_CONFIG_DIR='./config' ALLURE_RESULTS_DIR=./output/allure-results NODE_PATH=\"$PWD/node_modules\" playwright test --config=./playwright.config.mjs" }, "devDependencies": { "@playwright/test": "1.48.2", diff --git a/projects/plugins/boost/changelog/fix-playwright_install_tweaks b/projects/plugins/boost/changelog/fix-playwright_install_tweaks new file mode 100644 index 0000000000000..ebeba9b69f473 --- /dev/null +++ b/projects/plugins/boost/changelog/fix-playwright_install_tweaks @@ -0,0 +1,4 @@ +Significance: patch +Type: fixed + +E2E Tests: Only install single browser used by Playwright. diff --git a/projects/plugins/boost/tests/e2e/package.json b/projects/plugins/boost/tests/e2e/package.json index 7492f61b3921e..0121aa55e79da 100644 --- a/projects/plugins/boost/tests/e2e/package.json +++ b/projects/plugins/boost/tests/e2e/package.json @@ -24,7 +24,7 @@ "tunnel:reset": "tunnel reset", "tunnel:down": "tunnel down", "pretest:run": "pnpm run clean", - "test:run": ". ./node_modules/jetpack-e2e-commons/bin/app-password.sh && playwright install && NODE_CONFIG_DIR='./config' ALLURE_RESULTS_DIR=./output/allure-results NODE_PATH=\"$PWD/node_modules\" playwright test --config=./playwright.config.mjs", + "test:run": ". ./node_modules/jetpack-e2e-commons/bin/app-password.sh && playwright install --with-deps chromium && NODE_CONFIG_DIR='./config' ALLURE_RESULTS_DIR=./output/allure-results NODE_PATH=\"$PWD/node_modules\" playwright test --config=./playwright.config.mjs", "prepare:e2e": "pnpm jetpack docker --type e2e --name t1 exec-silent -- chown -R www-data .htaccess wp-config.php wp-content" }, "devDependencies": { diff --git a/projects/plugins/classic-theme-helper-plugin/changelog/fix-playwright_install_tweaks b/projects/plugins/classic-theme-helper-plugin/changelog/fix-playwright_install_tweaks new file mode 100644 index 0000000000000..ebeba9b69f473 --- /dev/null +++ b/projects/plugins/classic-theme-helper-plugin/changelog/fix-playwright_install_tweaks @@ -0,0 +1,4 @@ +Significance: patch +Type: fixed + +E2E Tests: Only install single browser used by Playwright. diff --git a/projects/plugins/classic-theme-helper-plugin/tests/e2e/package.json b/projects/plugins/classic-theme-helper-plugin/tests/e2e/package.json index 40e6a78c29b0c..1abf3ffd9f812 100644 --- a/projects/plugins/classic-theme-helper-plugin/tests/e2e/package.json +++ b/projects/plugins/classic-theme-helper-plugin/tests/e2e/package.json @@ -25,7 +25,7 @@ "tunnel:reset": "tunnel reset", "tunnel:down": "tunnel down", "pretest:run": "pnpm run clean", - "test:run": ". ./node_modules/jetpack-e2e-commons/bin/app-password.sh && playwright install && NODE_CONFIG_DIR='./config' ALLURE_RESULTS_DIR=./output/allure-results NODE_PATH=\"$PWD/node_modules\" playwright test --config=./playwright.config.mjs" + "test:run": ". ./node_modules/jetpack-e2e-commons/bin/app-password.sh && playwright install --with-deps chromium && NODE_CONFIG_DIR='./config' ALLURE_RESULTS_DIR=./output/allure-results NODE_PATH=\"$PWD/node_modules\" playwright test --config=./playwright.config.mjs" }, "devDependencies": { "@playwright/test": "1.48.2", diff --git a/projects/plugins/jetpack/changelog/fix-playwright_install_tweaks b/projects/plugins/jetpack/changelog/fix-playwright_install_tweaks new file mode 100644 index 0000000000000..dedbcb7e44a99 --- /dev/null +++ b/projects/plugins/jetpack/changelog/fix-playwright_install_tweaks @@ -0,0 +1,4 @@ +Significance: patch +Type: other + +E2E Tests: Only install single browser used by Playwright. diff --git a/projects/plugins/jetpack/tests/e2e/package.json b/projects/plugins/jetpack/tests/e2e/package.json index b1f02eefeff19..d45561b038e83 100644 --- a/projects/plugins/jetpack/tests/e2e/package.json +++ b/projects/plugins/jetpack/tests/e2e/package.json @@ -26,7 +26,7 @@ "tunnel:reset": "tunnel reset", "tunnel:down": "tunnel down", "pretest:run": "pnpm run clean", - "test:run": ". ./node_modules/jetpack-e2e-commons/bin/app-password.sh && playwright install && NODE_CONFIG_DIR='./config' ALLURE_RESULTS_DIR=./output/allure-results NODE_PATH=\"$PWD/node_modules\" playwright test --config=playwright.config.mjs", + "test:run": ". ./node_modules/jetpack-e2e-commons/bin/app-password.sh && playwright install --with-deps chromium && NODE_CONFIG_DIR='./config' ALLURE_RESULTS_DIR=./output/allure-results NODE_PATH=\"$PWD/node_modules\" playwright test --config=playwright.config.mjs", "test-decrypt-default-config": "openssl enc -md sha1 -aes-256-cbc -d -pass env:CONFIG_KEY -in ./node_modules/jetpack-e2e-commons/config/encrypted.enc -out ./node_modules/jetpack-e2e-commons/config/local.cjs", "test-decrypt-config": "openssl enc -md sha1 -aes-256-cbc -d -pass env:CONFIG_KEY -in ./config/encrypted.enc -out config/local.cjs", "test-decrypt-all-config": "pnpm test-decrypt-default-config && pnpm test-decrypt-config", diff --git a/projects/plugins/search/changelog/fix-playwright_install_tweaks b/projects/plugins/search/changelog/fix-playwright_install_tweaks new file mode 100644 index 0000000000000..ebeba9b69f473 --- /dev/null +++ b/projects/plugins/search/changelog/fix-playwright_install_tweaks @@ -0,0 +1,4 @@ +Significance: patch +Type: fixed + +E2E Tests: Only install single browser used by Playwright. diff --git a/projects/plugins/search/tests/e2e/package.json b/projects/plugins/search/tests/e2e/package.json index b8ee87c5b7fda..56ce4e0989500 100644 --- a/projects/plugins/search/tests/e2e/package.json +++ b/projects/plugins/search/tests/e2e/package.json @@ -23,7 +23,7 @@ "tunnel:reset": "tunnel reset", "tunnel:down": "tunnel down", "pretest:run": "pnpm run clean", - "test:run": ". ./node_modules/jetpack-e2e-commons/bin/app-password.sh && playwright install && NODE_CONFIG_DIR='./config' ALLURE_RESULTS_DIR=./output/allure-results NODE_PATH=\"$PWD/node_modules\" playwright test --config=playwright.config.mjs" + "test:run": ". ./node_modules/jetpack-e2e-commons/bin/app-password.sh && playwright install --with-deps chromium && NODE_CONFIG_DIR='./config' ALLURE_RESULTS_DIR=./output/allure-results NODE_PATH=\"$PWD/node_modules\" playwright test --config=playwright.config.mjs" }, "devDependencies": { "@playwright/test": "1.48.2", diff --git a/projects/plugins/social/changelog/fix-playwright_install_tweaks b/projects/plugins/social/changelog/fix-playwright_install_tweaks new file mode 100644 index 0000000000000..ebeba9b69f473 --- /dev/null +++ b/projects/plugins/social/changelog/fix-playwright_install_tweaks @@ -0,0 +1,4 @@ +Significance: patch +Type: fixed + +E2E Tests: Only install single browser used by Playwright. diff --git a/projects/plugins/social/tests/e2e/package.json b/projects/plugins/social/tests/e2e/package.json index 560f8245badd8..f15c2a56b88f1 100644 --- a/projects/plugins/social/tests/e2e/package.json +++ b/projects/plugins/social/tests/e2e/package.json @@ -27,7 +27,7 @@ "tunnel:reset": "tunnel reset", "tunnel:down": "tunnel down", "pretest:run": "pnpm run clean", - "test:run": ". ./node_modules/jetpack-e2e-commons/bin/app-password.sh && playwright install && NODE_CONFIG_DIR='./config' ALLURE_RESULTS_DIR=./output/allure-results NODE_PATH=\"$PWD/node_modules\" playwright test --config=./playwright.config.mjs" + "test:run": ". ./node_modules/jetpack-e2e-commons/bin/app-password.sh && playwright install --with-deps chromium && NODE_CONFIG_DIR='./config' ALLURE_RESULTS_DIR=./output/allure-results NODE_PATH=\"$PWD/node_modules\" playwright test --config=./playwright.config.mjs" }, "devDependencies": { "@playwright/test": "1.48.2", diff --git a/projects/plugins/starter-plugin/changelog/fix-playwright_install_tweaks b/projects/plugins/starter-plugin/changelog/fix-playwright_install_tweaks new file mode 100644 index 0000000000000..ebeba9b69f473 --- /dev/null +++ b/projects/plugins/starter-plugin/changelog/fix-playwright_install_tweaks @@ -0,0 +1,4 @@ +Significance: patch +Type: fixed + +E2E Tests: Only install single browser used by Playwright. diff --git a/projects/plugins/starter-plugin/tests/e2e/package.json b/projects/plugins/starter-plugin/tests/e2e/package.json index d2d6f875dff04..41cbbf0950ed3 100644 --- a/projects/plugins/starter-plugin/tests/e2e/package.json +++ b/projects/plugins/starter-plugin/tests/e2e/package.json @@ -25,7 +25,7 @@ "tunnel:reset": "tunnel reset", "tunnel:down": "tunnel down", "pretest:run": "pnpm run clean", - "test:run": ". ./node_modules/jetpack-e2e-commons/bin/app-password.sh && playwright install && NODE_CONFIG_DIR='./config' ALLURE_RESULTS_DIR=./output/allure-results NODE_PATH=\"$PWD/node_modules\" playwright test --config=./playwright.config.mjs" + "test:run": ". ./node_modules/jetpack-e2e-commons/bin/app-password.sh && playwright install --with-deps chromium && NODE_CONFIG_DIR='./config' ALLURE_RESULTS_DIR=./output/allure-results NODE_PATH=\"$PWD/node_modules\" playwright test --config=./playwright.config.mjs" }, "devDependencies": { "@playwright/test": "1.48.2", diff --git a/projects/plugins/videopress/changelog/fix-playwright_install_tweaks b/projects/plugins/videopress/changelog/fix-playwright_install_tweaks new file mode 100644 index 0000000000000..ebeba9b69f473 --- /dev/null +++ b/projects/plugins/videopress/changelog/fix-playwright_install_tweaks @@ -0,0 +1,4 @@ +Significance: patch +Type: fixed + +E2E Tests: Only install single browser used by Playwright. diff --git a/projects/plugins/videopress/tests/e2e/package.json b/projects/plugins/videopress/tests/e2e/package.json index 46885a9481338..7ebc72623571e 100644 --- a/projects/plugins/videopress/tests/e2e/package.json +++ b/projects/plugins/videopress/tests/e2e/package.json @@ -25,7 +25,7 @@ "tunnel:reset": "tunnel reset", "tunnel:down": "tunnel down", "pretest:run": "pnpm run clean", - "test:run": ". ./node_modules/jetpack-e2e-commons/bin/app-password.sh && playwright install && NODE_CONFIG_DIR='./config' ALLURE_RESULTS_DIR=./output/allure-results NODE_PATH=\"$PWD/node_modules\" playwright test --config=./playwright.config.mjs" + "test:run": ". ./node_modules/jetpack-e2e-commons/bin/app-password.sh && playwright install --with-deps chromium && NODE_CONFIG_DIR='./config' ALLURE_RESULTS_DIR=./output/allure-results NODE_PATH=\"$PWD/node_modules\" playwright test --config=./playwright.config.mjs" }, "devDependencies": { "@playwright/test": "1.48.2", From 6f714fd7a68b41894582a9b4331aa42e5b826819 Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Fri, 3 Jan 2025 20:07:27 +0100 Subject: [PATCH 46/98] Update dependency configstore to v7 (#40842) Co-authored-by: Renovate Bot --- pnpm-lock.yaml | 82 +++++++++++++++++++++--------------------- tools/cli/package.json | 2 +- 2 files changed, 43 insertions(+), 41 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7dfbfef9f2408..d7531b9fbc937 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4701,8 +4701,8 @@ importers: specifier: 4.0.3 version: 4.0.3 configstore: - specifier: 5.0.1 - version: 5.0.1 + specifier: 7.0.0 + version: 7.0.0 enquirer: specifier: 2.4.1 version: 2.4.1 @@ -8724,6 +8724,9 @@ packages: asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + atomically@2.0.3: + resolution: {integrity: sha512-kU6FmrwZ3Lx7/7y3hPS5QnbJfaohcIul5fGqf7ok+4KklIEk9tJ0C2IQPdacSbVUWv6zVHXEBWoWd6NrVMT7Cw==} + autoprefixer@10.4.20: resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} engines: {node: ^10 || ^12 || >=14} @@ -9237,9 +9240,9 @@ packages: resolution: {integrity: sha512-Vmx389R/QVM3foxqBzXO8t2tUikYZP64Q6vQxGrsMpREeJc/aWRnPRERXWsYzOHAumx/AOoILWe6nU3ZJL+6Sw==} engines: {node: '>= 10.0.0'} - configstore@5.0.1: - resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} - engines: {node: '>=8'} + configstore@7.0.0: + resolution: {integrity: sha512-yk7/5PN5im4qwz0WFZW3PXnzHgPu9mX29Y8uZ3aefe2lBPC1FYttWZRcaW9fKkT0pBCJyuQ2HfbmPVaODi9jcQ==} + engines: {node: '>=18'} constant-case@3.0.4: resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} @@ -9314,10 +9317,6 @@ packages: crypto-js@4.2.0: resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} - crypto-random-string@2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} - engines: {node: '>=8'} - css-declaration-sorter@7.2.0: resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} engines: {node: ^14 || ^16 || >=18} @@ -9740,9 +9739,9 @@ packages: dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - dot-prop@5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} - engines: {node: '>=8'} + dot-prop@9.0.0: + resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} + engines: {node: '>=18'} dotenv@16.0.2: resolution: {integrity: sha512-JvpYKUmzQhYoIFgK2MOnF3bciIZoItIIoryihy0rIA+H4Jy0FmgyKYAHCTN98P5ybGSJcIFbh6QKeJdtZd1qhA==} @@ -11017,10 +11016,6 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - is-observable@1.1.0: resolution: {integrity: sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==} engines: {node: '>=4'} @@ -13834,6 +13829,9 @@ packages: strip@3.0.0: resolution: {integrity: sha512-kIPiqRSsGCwWItPLDhuZPQlwX16WjQggT5QS1f5Aam0DSbtPQh8SsIkbBxLm+835qb1Q0OoQnvrhJ0oplIup8Q==} + stubborn-fs@1.2.5: + resolution: {integrity: sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g==} + style-inject@0.3.0: resolution: {integrity: sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==} @@ -14225,6 +14223,10 @@ packages: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} + type-fest@4.31.0: + resolution: {integrity: sha512-yCxltHW07Nkhv/1F6wWBr8kz+5BGMfP+RbRSYFnegVb0qV/UMT0G0ElBloPVerqn4M2ZV80Ir1FtCcYv1cT6vQ==} + engines: {node: '>=16'} + type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} @@ -14318,10 +14320,6 @@ packages: unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - unique-string@2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} - unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} @@ -14590,6 +14588,9 @@ packages: whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + when-exit@2.1.3: + resolution: {integrity: sha512-uVieSTccFIr/SFQdFWN/fFaQYmV37OKtuaGphMAzi4DmmUlrvRBJW5WSLkHyjNQY/ePJMz3LoiX9R3yy1Su6Hw==} + which-boxed-primitive@1.1.0: resolution: {integrity: sha512-Ei7Miu/AXe2JJ4iNF5j/UphAgRoma4trE6PtisM09bPygb3egMH3YLW/befsWb1A1AxvNSFidOFTB18XtnIIng==} engines: {node: '>= 0.4'} @@ -14698,9 +14699,9 @@ packages: utf-8-validate: optional: true - xdg-basedir@4.0.0: - resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} - engines: {node: '>=8'} + xdg-basedir@5.1.0: + resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} + engines: {node: '>=12'} xml-name-validator@4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} @@ -20777,6 +20778,11 @@ snapshots: asynckit@0.4.0: {} + atomically@2.0.3: + dependencies: + stubborn-fs: 1.2.5 + when-exit: 2.1.3 + autoprefixer@10.4.20(postcss@8.4.47): dependencies: browserslist: 4.24.3 @@ -21446,14 +21452,12 @@ snapshots: dependencies: json5: 2.2.3 - configstore@5.0.1: + configstore@7.0.0: dependencies: - dot-prop: 5.3.0 + atomically: 2.0.3 + dot-prop: 9.0.0 graceful-fs: 4.2.11 - make-dir: 3.1.0 - unique-string: 2.0.0 - write-file-atomic: 3.0.3 - xdg-basedir: 4.0.0 + xdg-basedir: 5.1.0 constant-case@3.0.4: dependencies: @@ -21552,8 +21556,6 @@ snapshots: crypto-js@4.2.0: {} - crypto-random-string@2.0.0: {} - css-declaration-sorter@7.2.0(postcss@8.4.47): dependencies: postcss: 8.4.47 @@ -21991,9 +21993,9 @@ snapshots: no-case: 3.0.4 tslib: 2.5.0 - dot-prop@5.3.0: + dot-prop@9.0.0: dependencies: - is-obj: 2.0.0 + type-fest: 4.31.0 dotenv@16.0.2: {} @@ -23523,8 +23525,6 @@ snapshots: is-number@7.0.0: {} - is-obj@2.0.0: {} - is-observable@1.1.0: dependencies: symbol-observable: 1.2.0 @@ -26955,6 +26955,8 @@ snapshots: strip@3.0.0: {} + stubborn-fs@1.2.5: {} + style-inject@0.3.0: {} style-loader@2.0.0(webpack@5.94.0): @@ -27315,6 +27317,8 @@ snapshots: type-fest@2.19.0: {} + type-fest@4.31.0: {} + type-is@1.6.18: dependencies: media-typer: 0.3.0 @@ -27427,10 +27431,6 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 - unique-string@2.0.0: - dependencies: - crypto-random-string: 2.0.0 - unist-util-is@6.0.0: dependencies: '@types/unist': 3.0.3 @@ -27743,6 +27743,8 @@ snapshots: tr46: 0.0.3 webidl-conversions: 3.0.1 + when-exit@2.1.3: {} + which-boxed-primitive@1.1.0: dependencies: is-bigint: 1.1.0 @@ -27877,7 +27879,7 @@ snapshots: ws@8.18.0: {} - xdg-basedir@4.0.0: {} + xdg-basedir@5.1.0: {} xml-name-validator@4.0.0: {} diff --git a/tools/cli/package.json b/tools/cli/package.json index 114ba971a11c5..428d9d11f404a 100644 --- a/tools/cli/package.json +++ b/tools/cli/package.json @@ -25,7 +25,7 @@ "@octokit/rest": "20.1.1", "chalk": "5.4.1", "chokidar": "4.0.3", - "configstore": "5.0.1", + "configstore": "7.0.0", "enquirer": "2.4.1", "envfile": "7.1.0", "execa": "7.0.0", From 1380de6ec9797c74c970e071f577c9994cc0bee3 Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Fri, 3 Jan 2025 20:07:36 +0100 Subject: [PATCH 47/98] Update dependency tus-js-client to v4.2.3 (#40844) Co-authored-by: Renovate Bot --- pnpm-lock.yaml | 51 +++---------------- .../changelog/renovate-tus-js-client-4.x | 4 ++ projects/packages/videopress/package.json | 2 +- .../changelog/renovate-tus-js-client-4.x | 4 ++ projects/plugins/jetpack/package.json | 2 +- 5 files changed, 17 insertions(+), 46 deletions(-) create mode 100644 projects/packages/videopress/changelog/renovate-tus-js-client-4.x create mode 100644 projects/plugins/jetpack/changelog/renovate-tus-js-client-4.x diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d7531b9fbc937..5b67724f5a5b3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2999,8 +2999,8 @@ importers: specifier: 6.28.1 version: 6.28.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tus-js-client: - specifier: 4.1.0 - version: 4.1.0 + specifier: 4.2.3 + version: 4.2.3 devDependencies: '@automattic/calypso-color-schemes': specifier: 3.1.3 @@ -4044,8 +4044,8 @@ importers: specifier: 1.4.2 version: 1.4.2 tus-js-client: - specifier: 2.3.0 - version: 2.3.0 + specifier: 4.2.3 + version: 4.2.3 webpack: specifier: 5.94.0 version: 5.94.0(webpack-cli@4.9.1) @@ -8925,9 +8925,6 @@ packages: buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - buffer-from@0.1.2: - resolution: {integrity: sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg==} - buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -11371,9 +11368,6 @@ packages: jquery@3.6.0: resolution: {integrity: sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==} - js-base64@2.6.4: - resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==} - js-base64@3.7.7: resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} @@ -12740,10 +12734,6 @@ packages: prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - proper-lockfile@2.0.1: - resolution: {integrity: sha512-rjaeGbsmhNDcDInmwi4MuI6mRwJu6zq8GjYCLuSuE7GF+4UjgzkL69sVKKJ2T2xH61kK7rXvGYpvaTu909oXaQ==} - engines: {node: '>=4.0.0'} - proper-lockfile@4.1.2: resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} @@ -13195,9 +13185,6 @@ packages: resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==} engines: {node: '>=4'} - retry@0.10.1: - resolution: {integrity: sha512-ZXUSQYTHdl3uS7IuCehYfMzKyIDBNoAuUblvy5oGO5UJSUTmStUUVPXbA9Qxd173Bgre53yCQczQuHgRWAdvJQ==} - retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} @@ -14192,11 +14179,8 @@ packages: turndown@7.1.2: resolution: {integrity: sha512-ntI9R7fcUKjqBP6QU8rBK2Ehyt8LAzt3UBT9JR9tgo6GtuKvyUzpayWmeMKJw1DPdXzktvtIT8m2mVXz+bL/Qg==} - tus-js-client@2.3.0: - resolution: {integrity: sha512-I4cSwm6N5qxqCmBqenvutwSHe9ntf81lLrtf6BmLpG2v4wTl89atCQKqGgqvkodE6Lx+iKIjMbaXmfvStTg01g==} - - tus-js-client@4.1.0: - resolution: {integrity: sha512-e/nC/kJahvNYBcnwcqzuhFIvVELMMpbVXIoOOKdUn74SdQCvJd2JjqV2jZLv2EFOVbV4qLiO0lV7BxBXF21b6Q==} + tus-js-client@4.2.3: + resolution: {integrity: sha512-UkQUCeDWKh5AwArcasIJWcL5EP66XPypKQtsdPu82wNnTea8eAUHdpDx3DcfZgDERAiCII895zMYkXri4M1wzw==} engines: {node: '>=18'} type-check@0.4.0: @@ -21065,8 +21049,6 @@ snapshots: buffer-crc32@0.2.13: {} - buffer-from@0.1.2: {} - buffer-from@1.1.2: {} buffer@5.7.1: @@ -24176,8 +24158,6 @@ snapshots: jquery@3.6.0: {} - js-base64@2.6.4: {} - js-base64@3.7.7: {} js-tokens@4.0.0: {} @@ -25734,11 +25714,6 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 - proper-lockfile@2.0.1: - dependencies: - graceful-fs: 4.2.11 - retry: 0.10.1 - proper-lockfile@4.1.2: dependencies: graceful-fs: 4.2.11 @@ -26283,8 +26258,6 @@ snapshots: onetime: 2.0.1 signal-exit: 3.0.7 - retry@0.10.1: {} - retry@0.12.0: {} retry@0.13.1: {} @@ -27283,17 +27256,7 @@ snapshots: dependencies: domino: 2.1.6 - tus-js-client@2.3.0: - dependencies: - buffer-from: 0.1.2 - combine-errors: 3.0.3 - is-stream: 2.0.1 - js-base64: 2.6.4 - lodash.throttle: 4.1.1 - proper-lockfile: 2.0.1 - url-parse: 1.5.10 - - tus-js-client@4.1.0: + tus-js-client@4.2.3: dependencies: buffer-from: 1.1.2 combine-errors: 3.0.3 diff --git a/projects/packages/videopress/changelog/renovate-tus-js-client-4.x b/projects/packages/videopress/changelog/renovate-tus-js-client-4.x new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/videopress/changelog/renovate-tus-js-client-4.x @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/videopress/package.json b/projects/packages/videopress/package.json index 504664c0e0202..84865df08c5e4 100644 --- a/projects/packages/videopress/package.json +++ b/projects/packages/videopress/package.json @@ -86,6 +86,6 @@ "react": "18.3.1", "react-dom": "18.3.1", "react-router-dom": "6.28.1", - "tus-js-client": "4.1.0" + "tus-js-client": "4.2.3" } } diff --git a/projects/plugins/jetpack/changelog/renovate-tus-js-client-4.x b/projects/plugins/jetpack/changelog/renovate-tus-js-client-4.x new file mode 100644 index 0000000000000..1eaea6a769e84 --- /dev/null +++ b/projects/plugins/jetpack/changelog/renovate-tus-js-client-4.x @@ -0,0 +1,4 @@ +Significance: patch +Type: other + +Updated package dependencies. diff --git a/projects/plugins/jetpack/package.json b/projects/plugins/jetpack/package.json index beb1a705e5f6f..686076f4ed49b 100644 --- a/projects/plugins/jetpack/package.json +++ b/projects/plugins/jetpack/package.json @@ -114,7 +114,7 @@ "social-logos": "workspace:*", "swiper": "6.7.0", "tinycolor2": "1.4.2", - "tus-js-client": "2.3.0", + "tus-js-client": "4.2.3", "webpack": "5.94.0", "webpack-cli": "4.9.1" }, From 6db0f6f675d05d1517debd07563d5d50c3a33035 Mon Sep 17 00:00:00 2001 From: dkmyta Date: Fri, 3 Jan 2025 11:17:45 -0800 Subject: [PATCH 48/98] Add historic flag --- .../components/threats-data-views/constants.ts | 10 ++++------ .../components/threats-data-views/index.tsx | 18 ++++++++++++++---- .../routes/scan/history/history-data-views.tsx | 1 + 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/projects/js-packages/components/components/threats-data-views/constants.ts b/projects/js-packages/components/components/threats-data-views/constants.ts index 40941b43ad032..08da321884d25 100644 --- a/projects/js-packages/components/components/threats-data-views/constants.ts +++ b/projects/js-packages/components/components/threats-data-views/constants.ts @@ -7,12 +7,10 @@ import { wordpress as coreIcon, } from '@wordpress/icons'; -export const THREAT_STATUSES: { value: string; label: string; variant?: 'success' | 'warning' }[] = - [ - { value: 'current', label: __( 'Active', 'jetpack-components' ), variant: 'warning' }, - { value: 'fixed', label: __( 'Fixed', 'jetpack-components' ), variant: 'success' }, - { value: 'ignored', label: __( 'Ignored', 'jetpack-components' ) }, - ]; +export const THREAT_STATUSES: { value: string; label: string; variant?: 'success' }[] = [ + { value: 'fixed', label: __( 'Fixed', 'jetpack-components' ), variant: 'success' }, + { value: 'ignored', label: __( 'Ignored', 'jetpack-components' ) }, +]; export const THREAT_TYPES = [ { value: 'plugins', label: __( 'Plugin', 'jetpack-components' ) }, diff --git a/projects/js-packages/components/components/threats-data-views/index.tsx b/projects/js-packages/components/components/threats-data-views/index.tsx index cd09be6fa2d10..87e05eae3b0bc 100644 --- a/projects/js-packages/components/components/threats-data-views/index.tsx +++ b/projects/js-packages/components/components/threats-data-views/index.tsx @@ -45,6 +45,7 @@ import styles from './styles.module.scss'; * DataViews component for displaying security threats. * * @param {object} props - Component props. + * @param {boolean} props.historic - Flag to indicate if the threats are historic. * @param {Array} props.data - Threats data. * @param {Array} props.filters - Initial DataView filters. * @param {Function} props.onChangeSelection - Callback function run when an item is selected. @@ -59,6 +60,7 @@ import styles from './styles.module.scss'; * @return {JSX.Element} The ThreatsDataViews component. */ export default function ThreatsDataViews( { + historic = false, data, filters, onChangeSelection, @@ -70,6 +72,7 @@ export default function ThreatsDataViews( { onUnignoreThreats, header, }: { + historic?: boolean; data: Threat[]; filters?: Filter[]; onChangeSelection?: ( selectedItemIds: string[] ) => void; @@ -102,7 +105,14 @@ export default function ThreatsDataViews( { const defaultLayouts: SupportedLayouts = { table: { ...baseView, - fields: [ THREAT_FIELD_SEVERITY, THREAT_FIELD_TYPE, THREAT_FIELD_AUTO_FIX ], + fields: historic + ? [ + THREAT_FIELD_SEVERITY, + THREAT_FIELD_TYPE, + THREAT_FIELD_FIRST_DETECTED, + THREAT_FIELD_FIXED_ON, + ] + : [ THREAT_FIELD_SEVERITY, THREAT_FIELD_TYPE, THREAT_FIELD_AUTO_FIX ], titleField: THREAT_FIELD_TITLE, descriptionField: THREAT_FIELD_DESCRIPTION, showMedia: false, @@ -280,7 +290,7 @@ export default function ThreatsDataViews( { return item.extension ? item.extension.slug : ''; }, }, - ...( dataFields.includes( 'status' ) + ...( historic && dataFields.includes( 'status' ) ? [ { id: THREAT_FIELD_STATUS, @@ -373,7 +383,7 @@ export default function ThreatsDataViews( { }, ] : [] ), - ...( dataFields.includes( 'fixable' ) + ...( ! historic && dataFields.includes( 'fixable' ) ? [ { id: THREAT_FIELD_AUTO_FIX, @@ -405,7 +415,7 @@ export default function ThreatsDataViews( { ]; return result; - }, [ dataFields, plugins, themes, signatures, onFixThreats ] ); + }, [ dataFields, plugins, themes, signatures, historic, onFixThreats ] ); /** * DataView actions - collection of operations that can be performed upon each record. diff --git a/projects/plugins/protect/src/js/routes/scan/history/history-data-views.tsx b/projects/plugins/protect/src/js/routes/scan/history/history-data-views.tsx index 239f0ef04f094..3eb9051a2889d 100644 --- a/projects/plugins/protect/src/js/routes/scan/history/history-data-views.tsx +++ b/projects/plugins/protect/src/js/routes/scan/history/history-data-views.tsx @@ -37,6 +37,7 @@ export default function HistoryDataViews() { return ( Date: Fri, 3 Jan 2025 11:28:19 -0800 Subject: [PATCH 49/98] Update stories --- .../stories/index.stories.tsx | 74 +++++++++++-------- 1 file changed, 45 insertions(+), 29 deletions(-) diff --git a/projects/js-packages/components/components/threats-data-views/stories/index.stories.tsx b/projects/js-packages/components/components/threats-data-views/stories/index.stories.tsx index 4839415084b80..41fa853894130 100644 --- a/projects/js-packages/components/components/threats-data-views/stories/index.stories.tsx +++ b/projects/js-packages/components/components/threats-data-views/stories/index.stories.tsx @@ -18,8 +18,8 @@ export default { ], }; -export const Default = args => ; -Default.args = { +export const Active = args => ; +Active.args = { data: [ { id: 185869885, @@ -41,20 +41,6 @@ Default.args = { marks: {}, }, }, - { - id: 185869883, - signature: 'Suspicious.Files', - title: 'Malicious code found in file: fuzzy.php', - description: - 'Our security scanners detected that this file is identical to a previously identified malicious file', - firstDetected: '2024-10-07T20:45:06.000Z', - fixedIn: null, - severity: 4, - fixable: false, - status: 'ignored', - filename: '/var/www/html/wp-content/fuzzy.php', - context: '', - }, { id: 185868972, signature: 'EICAR_AV_Test_Suspicious', @@ -116,19 +102,6 @@ Default.args = { filename: '/var/www/html/wp-admin/index.php', diff: "--- /tmp/wordpress/6.6.2/wordpress/wp-admin/index.php\t2024-10-07 20:40:04.887546480 +0000\n+++ /var/www/html/wp-admin/index.php\t2024-10-07 20:39:58.775512965 +0000\n@@ -210,3 +210,4 @@\n wp_print_community_events_templates();\n \n require_once ABSPATH . 'wp-admin/admin-footer.php';\n+if ( true === false ) exit();\n\\ No newline at end of file\n", }, - { - id: 13216959, - signature: 'Vulnerable.WP.Core', - title: 'Vulnerable WordPress Version (6.4.3)', - description: 'The installed version of WordPress (6.4.3) has a known vulnerability. ', - firstDetected: '2024-07-15T21:56:50.000Z', - severity: 4, - fixedOn: '2024-07-15T22:01:42.000Z', - status: 'fixed', - fixable: false, - version: '6.4.3', - source: '', - }, { id: '7275a176-d579-471a-8492-df8edbdf27de', title: 'WooCommerce <= 3.4.5 - Authenticated Stored XSS', @@ -164,6 +137,49 @@ Default.args = { ), }; +export const Historic = args => ; +Historic.args = { + historic: true, + data: [ + { + id: 185869883, + signature: 'Suspicious.Files', + title: 'Malicious code found in file: fuzzy.php', + description: + 'Our security scanners detected that this file is identical to a previously identified malicious file', + firstDetected: '2024-10-07T20:45:06.000Z', + fixedIn: null, + severity: 4, + fixable: false, + status: 'ignored', + filename: '/var/www/html/wp-content/fuzzy.php', + context: '', + }, + { + id: 13216959, + signature: 'Vulnerable.WP.Core', + title: 'Vulnerable WordPress Version (6.4.3)', + description: 'The installed version of WordPress (6.4.3) has a known vulnerability. ', + firstDetected: '2024-07-15T21:56:50.000Z', + severity: 4, + fixedOn: '2024-07-15T22:01:42.000Z', + status: 'fixed', + fixable: false, + version: '6.4.3', + source: '', + }, + ], + onFixThreats: () => + alert( 'Threat fix action callback triggered! This is handled by the component consumer.' ), // eslint-disable-line no-alert + onIgnoreThreats: () => + alert( 'Ignore threat action callback triggered! This is handled by the component consumer.' ), // eslint-disable-line no-alert + onUnignoreThreats: () => + // eslint-disable-next-line no-alert + alert( + 'Unignore threat action callback triggered! This is handled by the component consumer.' + ), +}; + export const FixerStatuses = args => ; FixerStatuses.args = { data: [ From 010b2c19c0709d8ae53a2b6ed1ecb4a65d6bc7ce Mon Sep 17 00:00:00 2001 From: dkmyta Date: Fri, 3 Jan 2025 11:33:53 -0800 Subject: [PATCH 50/98] Remove unneeded filter handling --- .../components/threats-data-views/index.tsx | 10 +--------- .../protect/src/js/routes/scan/index.jsx | 19 +++---------------- .../js/routes/scan/scan-results-data-view.tsx | 8 ++------ 3 files changed, 6 insertions(+), 31 deletions(-) diff --git a/projects/js-packages/components/components/threats-data-views/index.tsx b/projects/js-packages/components/components/threats-data-views/index.tsx index dddd8fc354182..d2cc3b269123c 100644 --- a/projects/js-packages/components/components/threats-data-views/index.tsx +++ b/projects/js-packages/components/components/threats-data-views/index.tsx @@ -14,7 +14,7 @@ import { import { dateI18n } from '@wordpress/date'; import { __ } from '@wordpress/i18n'; import { Icon } from '@wordpress/icons'; -import { useCallback, useMemo, useState, useEffect } from 'react'; +import { useCallback, useMemo, useState } from 'react'; import Badge from '../badge'; import ThreatFixerButton from '../threat-fixer-button'; import ThreatSeverityBadge from '../threat-severity-badge'; @@ -55,7 +55,6 @@ import ThreatsStatusToggleGroupControl from './threats-status-toggle-group-contr * @param {Function} props.isThreatEligibleForFix - Function to determine if a threat is eligible for fixing. * @param {Function} props.isThreatEligibleForIgnore - Function to determine if a threat is eligible for ignoring. * @param {Function} props.isThreatEligibleForUnignore - Function to determine if a threat is eligible for unignoring. - * @param {Function} props.onStatusFilterChange - Callback function run when the status filter changes. * * @return {JSX.Element} The ThreatsDataViews component. */ @@ -69,7 +68,6 @@ export default function ThreatsDataViews( { onFixThreats, onIgnoreThreats, onUnignoreThreats, - onStatusFilterChange, }: { data: Threat[]; filters?: Filter[]; @@ -80,7 +78,6 @@ export default function ThreatsDataViews( { onFixThreats?: ( threats: Threat[] ) => void; onIgnoreThreats?: ActionButton< Threat >[ 'callback' ]; onUnignoreThreats?: ActionButton< Threat >[ 'callback' ]; - onStatusFilterChange?: ( newStatus: 'active' | 'historic' | null ) => void; } ): JSX.Element { const baseView = { sort: { @@ -535,11 +532,6 @@ export default function ThreatsDataViews( { */ const getItemId = useCallback( ( item: Threat ) => item.id.toString(), [] ); - // Notify the consumer whenever the selectedStatusFilter changes - useEffect( () => { - onStatusFilterChange?.( selectedStatusFilter ); - }, [ selectedStatusFilter, onStatusFilterChange ] ); - return ( { const { data: history } = useHistoryQuery(); const [ scanResultsAnchor, setScanResultsAnchor ] = useState( null ); - const [ statusFilter, setStatusFilter ] = useState( 'active' ); - - const handleStatusFilterChange = useCallback( newStatusFilter => { - setStatusFilter( newStatusFilter ); - }, [] ); let currentScanStatus; if ( status.error ) { @@ -80,11 +74,7 @@ const ScanPage = () => { return ( - { 'historic' === statusFilter ? ( - - ) : ( - - ) } + { showResults && ( { >
- +
{ !! status && ! isScanInProgress( status ) && ( [ 'filters' ]; - onStatusFilterChange: ( newStatus: 'active' | 'historic' | null ) => void; } ) { const { setModal } = useModal(); @@ -54,7 +51,6 @@ export default function ScanResultsDataView( { onFixThreats={ onFixThreats } onIgnoreThreats={ onIgnoreThreats } onUnignoreThreats={ onUnignoreThreats } - onStatusFilterChange={ onStatusFilterChange } /> ); } From c86dc12b6a45c4838a3fc74180a50f24b261955d Mon Sep 17 00:00:00 2001 From: dkmyta Date: Fri, 3 Jan 2025 11:36:54 -0800 Subject: [PATCH 51/98] Revert unnecessary threats data views updates --- .../components/threats-data-views/index.tsx | 79 ++++++------------- .../threats-status-toggle-group-control.tsx | 40 ++++++++-- 2 files changed, 55 insertions(+), 64 deletions(-) diff --git a/projects/js-packages/components/components/threats-data-views/index.tsx b/projects/js-packages/components/components/threats-data-views/index.tsx index d2cc3b269123c..27cbfa23935fe 100644 --- a/projects/js-packages/components/components/threats-data-views/index.tsx +++ b/projects/js-packages/components/components/threats-data-views/index.tsx @@ -1,4 +1,4 @@ -import { getThreatType, type Threat, type ThreatStatus } from '@automattic/jetpack-scan'; +import { getThreatType, type Threat } from '@automattic/jetpack-scan'; import { type Action, type ActionButton, @@ -238,6 +238,28 @@ export default function ThreatsDataViews( { ); }, }, + { + id: THREAT_FIELD_STATUS, + label: __( 'Status', 'jetpack-components' ), + elements: THREAT_STATUSES, + getValue( { item }: { item: Threat } ) { + if ( ! item.status ) { + return 'current'; + } + return ( + THREAT_STATUSES.find( ( { value } ) => value === item.status )?.value ?? item.status + ); + }, + render( { item }: { item: Threat } ) { + if ( item.status ) { + const status = THREAT_STATUSES.find( ( { value } ) => value === item.status ); + if ( status ) { + return { status.label }; + } + } + return { __( 'Active', 'jetpack-components' ) }; + }, + }, { id: THREAT_FIELD_TYPE, label: __( 'Type', 'jetpack-components' ), @@ -278,33 +300,6 @@ export default function ThreatsDataViews( { return item.extension ? item.extension.slug : ''; }, }, - ...( dataFields.includes( 'status' ) - ? [ - { - id: THREAT_FIELD_STATUS, - label: __( 'Status', 'jetpack-components' ), - elements: THREAT_STATUSES, - getValue( { item }: { item: Threat } ) { - if ( ! item.status ) { - return 'current'; - } - return ( - THREAT_STATUSES.find( ( { value } ) => value === item.status )?.value ?? - item.status - ); - }, - render( { item }: { item: Threat } ) { - if ( item.status ) { - const status = THREAT_STATUSES.find( ( { value } ) => value === item.status ); - if ( status ) { - return { status.label }; - } - } - return { __( 'Active', 'jetpack-components' ) }; - }, - }, - ] - : [] ), ...( dataFields.includes( 'severity' ) ? [ { @@ -480,33 +475,6 @@ export default function ThreatsDataViews( { isThreatEligibleForUnignore, ] ); - /** - * Memoized function to determine if a status filter is selected. - * - * @param {Array} threatStatuses - List of threat statuses. - */ - const isStatusFilterSelected = useMemo( - () => ( threatStatuses: ThreatStatus[] ) => - view.filters.some( - filter => - filter.field === 'status' && - Array.isArray( filter.value ) && - filter.value.length === threatStatuses.length && - threatStatuses.every( threatStatus => filter.value.includes( threatStatus ) ) - ), - [ view.filters ] - ); - - const selectedStatusFilter = useMemo( () => { - if ( isStatusFilterSelected( [ 'current' ] ) ) { - return 'active' as const; - } - if ( isStatusFilterSelected( [ 'fixed', 'ignored' ] ) ) { - return 'historic' as const; - } - return null; - }, [ isStatusFilterSelected ] ); - /** * Apply the view settings (i.e. filters, sorting, pagination) to the dataset. * @@ -548,7 +516,6 @@ export default function ThreatsDataViews( { data={ data } view={ view } onChangeView={ onChangeView } - selectedStatusFilter={ selectedStatusFilter } /> } /> diff --git a/projects/js-packages/components/components/threats-data-views/threats-status-toggle-group-control.tsx b/projects/js-packages/components/components/threats-data-views/threats-status-toggle-group-control.tsx index fb88f1d3b8077..51b34db4cd46d 100644 --- a/projects/js-packages/components/components/threats-data-views/threats-status-toggle-group-control.tsx +++ b/projects/js-packages/components/components/threats-data-views/threats-status-toggle-group-control.tsx @@ -10,23 +10,20 @@ import styles from './styles.module.scss'; /** * ToggleGroupControl component for filtering threats by status. - * @param {object} props - Component props. - * @param { Threat[]} props.data - Threats data. - * @param { View } props.view - The current view. - * @param { string } props.selectedStatusFilter - The selected status filter. - * @param { Function } props.onChangeView - Callback function to handle view changes. + * @param {object} props - Component props. + * @param { Threat[]} props.data - Threats data. + * @param { View } props.view - The current view. + * @param { Function } props.onChangeView - Callback function to handle view changes. * * @return {JSX.Element|null} The component or null. */ export default function ThreatsStatusToggleGroupControl( { data, view, - selectedStatusFilter, onChangeView, }: { data: Threat[]; view: View; - selectedStatusFilter: string; onChangeView: ( newView: View ) => void; } ): JSX.Element { /** @@ -91,6 +88,33 @@ export default function ThreatsStatusToggleGroupControl( { [ view, onChangeView ] ); + /** + * Memoized function to determine if a status filter is selected. + * + * @param {Array} threatStatuses - List of threat statuses. + */ + const isStatusFilterSelected = useMemo( + () => ( threatStatuses: ThreatStatus[] ) => + view.filters.some( + filter => + filter.field === 'status' && + Array.isArray( filter.value ) && + filter.value.length === threatStatuses.length && + threatStatuses.every( threatStatus => filter.value.includes( threatStatus ) ) + ), + [ view.filters ] + ); + + const selectedValue = useMemo( () => { + if ( isStatusFilterSelected( [ 'current' ] ) ) { + return 'active' as const; + } + if ( isStatusFilterSelected( [ 'fixed', 'ignored' ] ) ) { + return 'historic' as const; + } + return '' as const; + }, [ isStatusFilterSelected ] ); + if ( ! ( activeThreatsCount + historicThreatsCount ) ) { return null; } @@ -100,7 +124,7 @@ export default function ThreatsStatusToggleGroupControl( {
Date: Fri, 3 Jan 2025 11:37:44 -0800 Subject: [PATCH 52/98] Fix import --- .../threats-data-views/threats-status-toggle-group-control.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/js-packages/components/components/threats-data-views/threats-status-toggle-group-control.tsx b/projects/js-packages/components/components/threats-data-views/threats-status-toggle-group-control.tsx index 51b34db4cd46d..3254a1050c1e9 100644 --- a/projects/js-packages/components/components/threats-data-views/threats-status-toggle-group-control.tsx +++ b/projects/js-packages/components/components/threats-data-views/threats-status-toggle-group-control.tsx @@ -1,4 +1,4 @@ -import { type Threat } from '@automattic/jetpack-scan'; +import { type Threat, type ThreatStatus } from '@automattic/jetpack-scan'; import { __experimentalToggleGroupControl as ToggleGroupControl, // eslint-disable-line @wordpress/no-unsafe-wp-apis __experimentalToggleGroupControlOption as ToggleGroupControlOption, // eslint-disable-line @wordpress/no-unsafe-wp-apis From 407e4babe0b2da35cc12948465758b434d609e1f Mon Sep 17 00:00:00 2001 From: dkmyta Date: Fri, 3 Jan 2025 11:39:06 -0800 Subject: [PATCH 53/98] Add size prop --- .../js/routes/scan/history-admin-section-hero.tsx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/projects/plugins/protect/src/js/routes/scan/history-admin-section-hero.tsx b/projects/plugins/protect/src/js/routes/scan/history-admin-section-hero.tsx index 54d24e27afac9..ef5529e20f750 100644 --- a/projects/plugins/protect/src/js/routes/scan/history-admin-section-hero.tsx +++ b/projects/plugins/protect/src/js/routes/scan/history-admin-section-hero.tsx @@ -1,13 +1,18 @@ import { Text } from '@automattic/jetpack-components'; import { dateI18n } from '@wordpress/date'; import { __, sprintf } from '@wordpress/i18n'; +import clsx from 'clsx'; import { useMemo } from 'react'; import AdminSectionHero from '../../components/admin-section-hero'; import ErrorAdminSectionHero from '../../components/error-admin-section-hero'; import useHistoryQuery from '../../data/scan/use-history-query'; import styles from './styles.module.scss'; -const HistoryAdminSectionHero: React.FC = () => { +const HistoryAdminSectionHero: React.FC = ( { + size = 'normal', +}: { + size?: 'normal' | 'large'; +} ) => { const { data: history } = useHistoryQuery(); const numThreats = history ? history.threats.length : 0; @@ -35,7 +40,12 @@ const HistoryAdminSectionHero: React.FC = () => { return ( - + + { ' ' } { oldestFirstDetected ? ( From f672f0a4d1e7f166ed5f197628c1bc8251c29f87 Mon Sep 17 00:00:00 2001 From: dkmyta <43220201+dkmyta@users.noreply.github.com> Date: Fri, 3 Jan 2025 11:43:20 -0800 Subject: [PATCH 54/98] Use error variant (#40832) --- .../js-packages/components/components/scan-report/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/js-packages/components/components/scan-report/index.tsx b/projects/js-packages/components/components/scan-report/index.tsx index 0cd669fea3f63..6eab2e6e24895 100644 --- a/projects/js-packages/components/components/scan-report/index.tsx +++ b/projects/js-packages/components/components/scan-report/index.tsx @@ -98,7 +98,7 @@ export default function ScanReport( { dataSource, data, onChangeSelection } ): J }, render( { item }: { item: ScanReportExtension } ) { const scanApi = 'scan_api' === dataSource; - let variant: 'info' | 'warning' | 'success' = 'info'; + let variant: 'info' | 'error' | 'success' = 'info'; let text = __( 'This item was added to your site after the most recent scan. We will check for threats during the next scheduled one.', 'jetpack-components' @@ -106,7 +106,7 @@ export default function ScanReport( { dataSource, data, onChangeSelection } ): J if ( item.checked ) { if ( item.threats.length > 0 ) { - variant = 'warning'; + variant = 'error'; text = _n( 'Vulnerability detected.', 'Vulnerabilities detected.', From 38f7c63377a8c56cf1bb03c74cac7578cad69c4d Mon Sep 17 00:00:00 2001 From: Calypso Bot Date: Fri, 3 Jan 2025 21:01:34 +0100 Subject: [PATCH 55/98] Update storybook monorepo to v8.4.7 (#40841) * Update storybook monorepo to v8.4.7 * Add missing dependency --------- Co-authored-by: Renovate Bot Co-authored-by: tbradsha <32492176+tbradsha@users.noreply.github.com> --- pnpm-lock.yaml | 1200 ++++------------- .../changelog/renovate-storybook-monorepo | 4 + projects/js-packages/ai-client/package.json | 10 +- .../changelog/renovate-storybook-monorepo | 4 + projects/js-packages/charts/package.json | 6 +- .../changelog/renovate-storybook-monorepo | 4 + projects/js-packages/components/package.json | 8 +- .../changelog/renovate-storybook-monorepo | 4 + projects/js-packages/connection/package.json | 4 +- .../changelog/renovate-storybook-monorepo | 4 + projects/js-packages/scan/package.json | 8 +- .../changelog/renovate-storybook-monorepo | 4 + projects/js-packages/storybook/package.json | 25 +- .../changelog/renovate-storybook-monorepo | 4 + projects/packages/my-jetpack/package.json | 4 +- .../changelog/renovate-storybook-monorepo | 4 + projects/packages/videopress/package.json | 10 +- .../changelog/renovate-storybook-monorepo | 4 + projects/plugins/boost/package.json | 4 +- 19 files changed, 357 insertions(+), 958 deletions(-) create mode 100644 projects/js-packages/ai-client/changelog/renovate-storybook-monorepo create mode 100644 projects/js-packages/charts/changelog/renovate-storybook-monorepo create mode 100644 projects/js-packages/components/changelog/renovate-storybook-monorepo create mode 100644 projects/js-packages/connection/changelog/renovate-storybook-monorepo create mode 100644 projects/js-packages/scan/changelog/renovate-storybook-monorepo create mode 100644 projects/js-packages/storybook/changelog/renovate-storybook-monorepo create mode 100644 projects/packages/my-jetpack/changelog/renovate-storybook-monorepo create mode 100644 projects/packages/videopress/changelog/renovate-storybook-monorepo create mode 100644 projects/plugins/boost/changelog/renovate-storybook-monorepo diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5b67724f5a5b3..655ad36162146 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -185,17 +185,17 @@ importers: version: 7.1.2 devDependencies: '@storybook/addon-actions': - specifier: 8.3.5 - version: 8.3.5(storybook@8.3.5) + specifier: 8.4.7 + version: 8.4.7(storybook@8.4.7) '@storybook/blocks': - specifier: 8.3.5 - version: 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5) + specifier: 8.4.7 + version: 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7) '@storybook/preview-api': - specifier: 8.3.5 - version: 8.3.5(storybook@8.3.5) + specifier: 8.4.7 + version: 8.4.7(storybook@8.4.7) '@storybook/react': - specifier: 8.3.5 - version: 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5)(typescript@5.0.4) + specifier: 8.4.7 + version: 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7)(typescript@5.0.4) '@types/markdown-it': specifier: 14.1.2 version: 14.1.2 @@ -209,8 +209,8 @@ importers: specifier: 29.7.0 version: 29.7.0 storybook: - specifier: 8.3.5 - version: 8.3.5 + specifier: 8.4.7 + version: 8.4.7 typescript: specifier: 5.0.4 version: 5.0.4 @@ -354,11 +354,11 @@ importers: specifier: 12.1.0 version: 12.1.0(rollup@3.29.5)(tslib@2.5.0)(typescript@5.7.2) '@storybook/blocks': - specifier: 8.4.6 - version: 8.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.6) + specifier: 8.4.7 + version: 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7) '@storybook/react': - specifier: 8.4.6 - version: 8.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.6)(typescript@5.7.2) + specifier: 8.4.7 + version: 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7)(typescript@5.7.2) '@types/react': specifier: 18.3.18 version: 18.3.18 @@ -405,8 +405,8 @@ importers: specifier: 1.83.0 version: 1.83.0 storybook: - specifier: 8.4.6 - version: 8.4.6 + specifier: 8.4.7 + version: 8.4.7 typescript: specifier: 5.7.2 version: 5.7.2 @@ -490,14 +490,14 @@ importers: specifier: 29.4.3 version: 29.4.3 '@storybook/addon-actions': - specifier: 8.3.5 - version: 8.3.5(storybook@8.3.5) + specifier: 8.4.7 + version: 8.4.7(storybook@8.4.7) '@storybook/blocks': - specifier: 8.3.5 - version: 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5) + specifier: 8.4.7 + version: 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7) '@storybook/react': - specifier: 8.3.5 - version: 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5)(typescript@5.0.4) + specifier: 8.4.7 + version: 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7)(typescript@5.0.4) '@testing-library/dom': specifier: 10.4.0 version: 10.4.0 @@ -538,8 +538,8 @@ importers: specifier: 1.5.1 version: 1.5.1 storybook: - specifier: 8.3.5 - version: 8.3.5 + specifier: 8.4.7 + version: 8.4.7 ts-dedent: specifier: 2.2.0 version: 2.2.0 @@ -620,8 +620,8 @@ importers: specifier: 7.26.3 version: 7.26.3(@babel/core@7.26.0) '@storybook/addon-actions': - specifier: 8.3.5 - version: 8.3.5(storybook@8.3.5) + specifier: 8.4.7 + version: 8.4.7(storybook@8.4.7) '@testing-library/dom': specifier: 10.4.0 version: 10.4.0 @@ -647,8 +647,8 @@ importers: specifier: 18.3.1 version: 18.3.1(react@18.3.1) storybook: - specifier: 8.3.5 - version: 8.3.5 + specifier: 8.4.7 + version: 8.4.7 projects/js-packages/critical-css-gen: dependencies: @@ -1303,14 +1303,14 @@ importers: specifier: 29.7.0 version: 29.7.0 '@storybook/addon-actions': - specifier: 8.3.5 - version: 8.3.5(storybook@8.3.5) + specifier: 8.4.7 + version: 8.4.7(storybook@8.4.7) '@storybook/blocks': - specifier: 8.3.5 - version: 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5) + specifier: 8.4.7 + version: 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7) '@storybook/react': - specifier: 8.3.5 - version: 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5)(typescript@5.0.4) + specifier: 8.4.7 + version: 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7)(typescript@5.0.4) '@testing-library/dom': specifier: 10.4.0 version: 10.4.0 @@ -1330,8 +1330,8 @@ importers: specifier: 29.7.0 version: 29.7.0 storybook: - specifier: 8.3.5 - version: 8.3.5 + specifier: 8.4.7 + version: 8.4.7 typescript: specifier: 5.0.4 version: 5.0.4 @@ -1488,62 +1488,65 @@ importers: specifier: 1.48.2 version: 1.48.2 '@storybook/addon-a11y': - specifier: 8.3.5 - version: 8.3.5(storybook@8.3.5) + specifier: 8.4.7 + version: 8.4.7(storybook@8.4.7) '@storybook/addon-docs': - specifier: 8.3.5 - version: 8.3.5(storybook@8.3.5) + specifier: 8.4.7 + version: 8.4.7(@types/react@18.3.18)(storybook@8.4.7) '@storybook/addon-essentials': - specifier: 8.3.5 - version: 8.3.5(storybook@8.3.5) + specifier: 8.4.7 + version: 8.4.7(@types/react@18.3.18)(storybook@8.4.7) '@storybook/addon-storysource': - specifier: 8.3.5 - version: 8.3.5(storybook@8.3.5) + specifier: 8.4.7 + version: 8.4.7(storybook@8.4.7) '@storybook/addon-webpack5-compiler-babel': specifier: ^3.0.3 version: 3.0.3(webpack@5.94.0) '@storybook/blocks': - specifier: 8.3.5 - version: 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5) + specifier: 8.4.7 + version: 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7) '@storybook/components': - specifier: 8.3.5 - version: 8.3.5(storybook@8.3.5) + specifier: 8.4.7 + version: 8.4.7(storybook@8.4.7) '@storybook/manager-api': - specifier: 8.3.5 - version: 8.3.5(storybook@8.3.5) + specifier: 8.4.7 + version: 8.4.7(storybook@8.4.7) '@storybook/react': - specifier: 8.3.5 - version: 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5)(typescript@5.0.4) + specifier: 8.4.7 + version: 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7)(typescript@5.0.4) '@storybook/react-webpack5': - specifier: 8.3.5 - version: 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5)(typescript@5.0.4)(webpack-cli@4.9.1) + specifier: 8.4.7 + version: 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7)(typescript@5.0.4)(webpack-cli@4.9.1) '@storybook/source-loader': - specifier: 8.3.5 - version: 8.3.5(storybook@8.3.5) + specifier: 8.4.7 + version: 8.4.7(storybook@8.4.7) '@storybook/test-runner': specifier: 0.19.1 - version: 0.19.1(storybook@8.3.5) + version: 0.19.1(storybook@8.4.7) '@storybook/theming': - specifier: 8.3.5 - version: 8.3.5(storybook@8.3.5) + specifier: 8.4.7 + version: 8.4.7(storybook@8.4.7) + '@types/react': + specifier: 18.3.18 + version: 18.3.18 '@wordpress/base-styles': specifier: 5.14.0 version: 5.14.0 '@wordpress/block-editor': specifier: 14.9.0 - version: 14.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.9.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/block-library': specifier: 9.14.0 - version: 9.14.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 9.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/components': specifier: 29.0.0 - version: 29.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/element': specifier: 6.14.0 version: 6.14.0 '@wordpress/format-library': specifier: 5.14.0 - version: 5.14.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 5.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/postcss-plugins-preset': specifier: 5.14.0 version: 5.14.0(postcss@8.4.47) @@ -1593,8 +1596,8 @@ importers: specifier: 12.4.0 version: 12.4.0(sass@1.64.1)(webpack@5.94.0) storybook: - specifier: 8.3.5 - version: 8.3.5 + specifier: 8.4.7 + version: 8.4.7 storybook-addon-mock: specifier: 5.0.0 version: 5.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -2618,8 +2621,8 @@ importers: specifier: 29.7.0 version: 29.7.0 '@storybook/react': - specifier: 8.3.5 - version: 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5)(typescript@5.0.4) + specifier: 8.4.7 + version: 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7)(typescript@5.0.4) '@testing-library/dom': specifier: 10.4.0 version: 10.4.0 @@ -2663,8 +2666,8 @@ importers: specifier: 12.4.0 version: 12.4.0(sass@1.64.1)(webpack@5.94.0) storybook: - specifier: 8.3.5 - version: 8.3.5 + specifier: 8.4.7 + version: 8.4.7 typescript: specifier: 5.0.4 version: 5.0.4 @@ -3021,17 +3024,17 @@ importers: specifier: 29.4.3 version: 29.4.3 '@storybook/addon-actions': - specifier: 8.3.5 - version: 8.3.5(storybook@8.3.5) + specifier: 8.4.7 + version: 8.4.7(storybook@8.4.7) '@storybook/blocks': - specifier: 8.3.5 - version: 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5) + specifier: 8.4.7 + version: 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7) '@storybook/preview-api': - specifier: 8.3.5 - version: 8.3.5(storybook@8.3.5) + specifier: 8.4.7 + version: 8.4.7(storybook@8.4.7) '@storybook/react': - specifier: 8.3.5 - version: 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5)(typescript@5.0.4) + specifier: 8.4.7 + version: 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7)(typescript@5.0.4) '@testing-library/dom': specifier: 10.4.0 version: 10.4.0 @@ -3084,8 +3087,8 @@ importers: specifier: 12.4.0 version: 12.4.0(sass@1.64.1)(webpack@5.94.0) storybook: - specifier: 8.3.5 - version: 8.3.5 + specifier: 8.4.7 + version: 8.4.7 typescript: specifier: 5.0.4 version: 5.0.4 @@ -3492,8 +3495,8 @@ importers: specifier: 7.26.3 version: 7.26.3(@babel/core@7.26.0) '@storybook/react': - specifier: 8.3.5 - version: 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5)(typescript@5.0.4) + specifier: 8.4.7 + version: 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7)(typescript@5.0.4) '@types/jest': specifier: 29.5.12 version: 29.5.12 @@ -3540,8 +3543,8 @@ importers: specifier: 12.4.0 version: 12.4.0(sass@1.64.1)(webpack@5.94.0) storybook: - specifier: 8.3.5 - version: 8.3.5 + specifier: 8.4.7 + version: 8.4.7 tslib: specifier: 2.5.0 version: 2.5.0 @@ -5707,9 +5710,6 @@ packages: resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} engines: {node: '>=6.9.0'} - '@base2/pretty-print-object@1.0.1': - resolution: {integrity: sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==} - '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -5800,12 +5800,6 @@ packages: resolution: {integrity: sha512-xjZTSFgECpb9Ohuk5yMX5RhUEbfeQcuOp8IF60e+wyzWEF0M5xeSgqsfLtvPEX8BIyOX9saZqzuGPmZ8oWc+5Q==} engines: {node: '>=16'} - '@esbuild/aix-ppc64@0.23.1': - resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.24.2': resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} engines: {node: '>=18'} @@ -5818,12 +5812,6 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.23.1': - resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.24.2': resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} engines: {node: '>=18'} @@ -5836,12 +5824,6 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.23.1': - resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.24.2': resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} engines: {node: '>=18'} @@ -5854,12 +5836,6 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.23.1': - resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.24.2': resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} engines: {node: '>=18'} @@ -5872,12 +5848,6 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.23.1': - resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.24.2': resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} engines: {node: '>=18'} @@ -5890,12 +5860,6 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.23.1': - resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.24.2': resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} engines: {node: '>=18'} @@ -5908,12 +5872,6 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.23.1': - resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.24.2': resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} engines: {node: '>=18'} @@ -5926,12 +5884,6 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.23.1': - resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.24.2': resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} engines: {node: '>=18'} @@ -5944,12 +5896,6 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.23.1': - resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.24.2': resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} engines: {node: '>=18'} @@ -5962,12 +5908,6 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.23.1': - resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.24.2': resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} engines: {node: '>=18'} @@ -5980,12 +5920,6 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.23.1': - resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.24.2': resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} engines: {node: '>=18'} @@ -5998,12 +5932,6 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.23.1': - resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.24.2': resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} engines: {node: '>=18'} @@ -6016,12 +5944,6 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.23.1': - resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.24.2': resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} engines: {node: '>=18'} @@ -6034,12 +5956,6 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.23.1': - resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.24.2': resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} engines: {node: '>=18'} @@ -6052,12 +5968,6 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.23.1': - resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.24.2': resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} engines: {node: '>=18'} @@ -6070,12 +5980,6 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.23.1': - resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.24.2': resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} engines: {node: '>=18'} @@ -6088,12 +5992,6 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.23.1': - resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.24.2': resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} engines: {node: '>=18'} @@ -6112,24 +6010,12 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.23.1': - resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.24.2': resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.23.1': - resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - '@esbuild/openbsd-arm64@0.24.2': resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} engines: {node: '>=18'} @@ -6142,12 +6028,6 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.23.1': - resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.24.2': resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} engines: {node: '>=18'} @@ -6160,12 +6040,6 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.23.1': - resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.24.2': resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} engines: {node: '>=18'} @@ -6178,12 +6052,6 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.23.1': - resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.24.2': resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} engines: {node: '>=18'} @@ -6196,12 +6064,6 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.23.1': - resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.24.2': resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} engines: {node: '>=18'} @@ -6214,12 +6076,6 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.23.1': - resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.24.2': resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} engines: {node: '>=18'} @@ -6989,98 +6845,86 @@ packages: resolution: {integrity: sha512-DtRyjgQi0mObA2uC6H8nL2OhAISKDhvtOXgRjGRBnBhiaWb6df5vPmKHsOHjpweYALBMHtiqE5ajZFkDW/ag8Q==} engines: {node: '>= 18', npm: '>= 8.6.0'} - '@storybook/addon-a11y@8.3.5': - resolution: {integrity: sha512-/19UO8IXbyfcYK5K8ejSYF+hC+EK79c0bBPHMNeYSFOHSqQM3KoMo+TLIcLsuhuRClmlM+4Zs+VSIYDwc+d3ig==} + '@storybook/addon-a11y@8.4.7': + resolution: {integrity: sha512-GpUvXp6n25U1ZSv+hmDC+05BEqxWdlWjQTb/GaboRXZQeMBlze6zckpVb66spjmmtQAIISo0eZxX1+mGcVR7lA==} peerDependencies: - storybook: ^8.3.5 + storybook: ^8.4.7 - '@storybook/addon-actions@8.3.5': - resolution: {integrity: sha512-t8D5oo+4XfD+F8091wLa2y/CDd/W2lExCeol5Vm1tp5saO+u6f2/d7iykLhTowWV84Uohi3D073uFeyTAlGebg==} + '@storybook/addon-actions@8.4.7': + resolution: {integrity: sha512-mjtD5JxcPuW74T6h7nqMxWTvDneFtokg88p6kQ5OnC1M259iAXb//yiSZgu/quunMHPCXSiqn4FNOSgASTSbsA==} peerDependencies: - storybook: ^8.3.5 + storybook: ^8.4.7 - '@storybook/addon-backgrounds@8.3.5': - resolution: {integrity: sha512-IQGjDujuw8+iSqKREdkL8I5E/5CAHZbfOWd4A75PQK2D6qZ0fu/xRwTOQOH4jP6xn/abvfACOdL6A0d5bU90ag==} + '@storybook/addon-backgrounds@8.4.7': + resolution: {integrity: sha512-I4/aErqtFiazcoWyKafOAm3bLpxTj6eQuH/woSbk1Yx+EzN+Dbrgx1Updy8//bsNtKkcrXETITreqHC+a57DHQ==} peerDependencies: - storybook: ^8.3.5 + storybook: ^8.4.7 - '@storybook/addon-controls@8.3.5': - resolution: {integrity: sha512-2eCVobUUvY1Rq7sp1U8Mx8t44VXwvi0E+hqyrsqOx5TTSC/FUQ+hNAX6GSYUcFIyQQ1ORpKNlUjAAdjxBv1ZHQ==} + '@storybook/addon-controls@8.4.7': + resolution: {integrity: sha512-377uo5IsJgXLnQLJixa47+11V+7Wn9KcDEw+96aGCBCfLbWNH8S08tJHHnSu+jXg9zoqCAC23MetntVp6LetHA==} peerDependencies: - storybook: ^8.3.5 + storybook: ^8.4.7 - '@storybook/addon-docs@8.3.5': - resolution: {integrity: sha512-MOVfo1bY8kXTzbvmWnx3UuSO4WNykFz7Edvb3mxltNyuW7UDRZGuIuSe32ddT/EtLJfurrC9Ja3yBy4KBUGnMA==} + '@storybook/addon-docs@8.4.7': + resolution: {integrity: sha512-NwWaiTDT5puCBSUOVuf6ME7Zsbwz7Y79WF5tMZBx/sLQ60vpmJVQsap6NSjvK1Ravhc21EsIXqemAcBjAWu80w==} peerDependencies: - storybook: ^8.3.5 + storybook: ^8.4.7 - '@storybook/addon-essentials@8.3.5': - resolution: {integrity: sha512-hXTtPuN4/IsXjUrkMPAuz1qKAl8DovdXpjQgjQs7jSAVx3kc4BZaGqJ3gaVenKtO8uDchmA92BoQygpkc8eWhw==} + '@storybook/addon-essentials@8.4.7': + resolution: {integrity: sha512-+BtZHCBrYtQKILtejKxh0CDRGIgTl9PumfBOKRaihYb4FX1IjSAxoV/oo/IfEjlkF5f87vouShWsRa8EUauFDw==} peerDependencies: - storybook: ^8.3.5 + storybook: ^8.4.7 - '@storybook/addon-highlight@8.3.5': - resolution: {integrity: sha512-ku0epul9aReCR3Gv/emwYnsqg3vgux5OmYMjoDcJC7s+LyfweSzLV/f5t9gSHazikJElh5TehtVkWbC4QfbGSw==} + '@storybook/addon-highlight@8.4.7': + resolution: {integrity: sha512-whQIDBd3PfVwcUCrRXvCUHWClXe9mQ7XkTPCdPo4B/tZ6Z9c6zD8JUHT76ddyHivixFLowMnA8PxMU6kCMAiNw==} peerDependencies: - storybook: ^8.3.5 + storybook: ^8.4.7 - '@storybook/addon-measure@8.3.5': - resolution: {integrity: sha512-6GVehgbHhFIFS69xSfRV+12VK0cnuIAtZdp1J3eUCc2ATrcigqVjTM6wzZz6kBuX6O3dcusr7Wg46KtNliqLqg==} + '@storybook/addon-measure@8.4.7': + resolution: {integrity: sha512-QfvqYWDSI5F68mKvafEmZic3SMiK7zZM8VA0kTXx55hF/+vx61Mm0HccApUT96xCXIgmwQwDvn9gS4TkX81Dmw==} peerDependencies: - storybook: ^8.3.5 + storybook: ^8.4.7 - '@storybook/addon-outline@8.3.5': - resolution: {integrity: sha512-dwmK6GzjEnQP9Yo0VnBUQtJkXZlXdfjWyskZ/IlUVc+IFdeeCtIiMyA92oMfHo8eXt0k1g21ZqMaIn7ZltOuHw==} + '@storybook/addon-outline@8.4.7': + resolution: {integrity: sha512-6LYRqUZxSodmAIl8icr585Oi8pmzbZ90aloZJIpve+dBAzo7ydYrSQxxoQEVltXbKf3VeVcrs64ouAYqjisMYA==} peerDependencies: - storybook: ^8.3.5 + storybook: ^8.4.7 - '@storybook/addon-storysource@8.3.5': - resolution: {integrity: sha512-NdVVlBtVRLBeMNwaMNd+B/XDNbQGQ4yKjZOCNBzGsV0sf0fAm8BQ7D5HJFbL4/VoZmRxlYCeQRYHu+/iE2VJhg==} + '@storybook/addon-storysource@8.4.7': + resolution: {integrity: sha512-ckMSiVf+8V3IVN3lTdzCdToXVoGhZ57pwMv0OpkdVIEn6sqHFHwHrOYiXpF3SXTicwayjylcL1JXTGoBFFDVOQ==} peerDependencies: - storybook: ^8.3.5 + storybook: ^8.4.7 - '@storybook/addon-toolbars@8.3.5': - resolution: {integrity: sha512-Ml2gc9q8WbteDvmuAZGgBxt5SqWMXzuTkMjlsA8EB53hlkN1w9esX4s8YtBeNqC3HKoUzcdq8uexSBqU8fDbSA==} + '@storybook/addon-toolbars@8.4.7': + resolution: {integrity: sha512-OSfdv5UZs+NdGB+nZmbafGUWimiweJ/56gShlw8Neo/4jOJl1R3rnRqqY7MYx8E4GwoX+i3GF5C3iWFNQqlDcw==} peerDependencies: - storybook: ^8.3.5 + storybook: ^8.4.7 - '@storybook/addon-viewport@8.3.5': - resolution: {integrity: sha512-FSWydoPiVWFXEittG7O1YgvuaqoU9Vb+qoq9XfP/hvQHHMDcMZvC40JaV8AnJeTXaM7ngIjcn9XDEfGbFfOzXw==} + '@storybook/addon-viewport@8.4.7': + resolution: {integrity: sha512-hvczh/jjuXXcOogih09a663sRDDSATXwbE866al1DXgbDFraYD/LxX/QDb38W9hdjU9+Qhx8VFIcNWoMQns5HQ==} peerDependencies: - storybook: ^8.3.5 + storybook: ^8.4.7 '@storybook/addon-webpack5-compiler-babel@3.0.3': resolution: {integrity: sha512-rVQTTw+oxJltbVKaejIWSHwVKOBJs3au21f/pYXhV0aiNgNhxEa3vr79t/j0j8ox8uJtzM8XYOb7FlkvGfHlwQ==} engines: {node: '>=18'} - '@storybook/blocks@8.3.5': - resolution: {integrity: sha512-8cHTdTywolTHlgwN8I7YH7saWAIjGzV617AwjhJ95AKlC0VtpO1gAFcAgCqr4DU9eMc+LZuvbnaU/RSvA5eCCQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.5 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - - '@storybook/blocks@8.4.6': - resolution: {integrity: sha512-Gzbx8hM7ZQIHlQELcFIMbY1v+r1Po4mlinq0QVPtKS4lBcW4eZIsesbxOaL+uFNrxb583TLFzXo0DbRPzS46sg==} + '@storybook/blocks@8.4.7': + resolution: {integrity: sha512-+QH7+JwXXXIyP3fRCxz/7E2VZepAanXJM7G8nbR3wWsqWgrRp4Wra6MvybxAYCxU7aNfJX5c+RW84SNikFpcIA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.4.6 + storybook: ^8.4.7 peerDependenciesMeta: react: optional: true react-dom: optional: true - '@storybook/builder-webpack5@8.3.5': - resolution: {integrity: sha512-rhmfdiSlDn3Arki7IMYk11PO29rYuYM4LZ8GlNqREU7VUl/8Vngo/jFIa4pKaIns3ql1RrwzO1wm9JvuL/4ydA==} + '@storybook/builder-webpack5@8.4.7': + resolution: {integrity: sha512-O8LpsQ+4g2x5kh7rI9+jEUdX8k1a5egBQU1lbudmHchqsV0IKiVqBD9LL5Gj3wpit4vB8coSW4ZWTFBw8FQb4Q==} peerDependencies: - storybook: ^8.3.5 + storybook: ^8.4.7 typescript: '*' peerDependenciesMeta: typescript: @@ -7091,13 +6935,8 @@ packages: peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/components@8.3.5': - resolution: {integrity: sha512-Rq28YogakD3FO4F8KwAtGpo1g3t4V/gfCLqTQ8B6oQUFoxLqegkWk/DlwCzvoJndXuQJfdSyM6+r1JcA4Nql5A==} - peerDependencies: - storybook: ^8.3.5 - - '@storybook/components@8.4.6': - resolution: {integrity: sha512-9tKSJJCyFT5RZMRGyozTBJkr9C9Yfk1nuOE9XbDEE1Z+3/IypKR9+iwc5mfNBStDNY+rxtYWNLKBb5GPR2yhzA==} + '@storybook/components@8.4.7': + resolution: {integrity: sha512-uyJIcoyeMWKAvjrG9tJBUCKxr2WZk+PomgrgrUwejkIfXMO76i6jw9BwLa0NZjYdlthDv30r9FfbYZyeNPmF0g==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -7111,26 +6950,23 @@ packages: peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/core-webpack@8.3.5': - resolution: {integrity: sha512-mN8BHNc6lSGUf/nKgDr6XoTt1cX+Tap9RnKMUiROCDzfVlJPeJBrG4qrTOok7AwObzeDl9DNFyun6+pVgXJe7A==} + '@storybook/core-webpack@8.4.7': + resolution: {integrity: sha512-Tj+CjQLpFyBJxhhMms+vbPT3+gTRAiQlrhY3L1IEVwBa3wtRMS0qjozH26d1hK4G6mUIEdwu13L54HMU/w33Sg==} peerDependencies: - storybook: ^8.3.5 - - '@storybook/core@8.3.5': - resolution: {integrity: sha512-GOGfTvdioNa/n+Huwg4u/dsyYyBcM+gEcdxi3B7i5x4yJ3I912KoVshumQAOF2myKSRdI8h8aGWdx7nnjd0+5Q==} + storybook: ^8.4.7 - '@storybook/core@8.4.6': - resolution: {integrity: sha512-WeojVtHy0/t50tzw/15S+DLzKsj8BN9yWdo3vJMvm+nflLFvfq1XvD9WGOWeaFp8E/o3AP+4HprXG0r42KEJtA==} + '@storybook/core@8.4.7': + resolution: {integrity: sha512-7Z8Z0A+1YnhrrSXoKKwFFI4gnsLbWzr8fnDCU6+6HlDukFYh8GHRcZ9zKfqmy6U3hw2h8H5DrHsxWfyaYUUOoA==} peerDependencies: prettier: ^2 || ^3 peerDependenciesMeta: prettier: optional: true - '@storybook/csf-plugin@8.3.5': - resolution: {integrity: sha512-ODVqNXwJt90hG7QW8I9w/XUyOGlr0l7XltmIJgXwB/2cYDvaGu3JV5Ybg7O0fxPV8uXk7JlRuUD8ZYv5Low6pA==} + '@storybook/csf-plugin@8.4.7': + resolution: {integrity: sha512-Fgogplu4HImgC+AYDcdGm1rmL6OR1rVdNX1Be9C/NEXwOCpbbBwi0BxTf/2ZxHRk9fCeaPEcOdP5S8QHfltc1g==} peerDependencies: - storybook: ^8.3.5 + storybook: ^8.4.7 '@storybook/csf-tools@8.4.7': resolution: {integrity: sha512-UR+qMZFEII1e9Gx3RViQoqpSIQnaZWiGQFE2u+wjMMRzqoP2TMRnAHM1d8m6Tk0c1BSrcRt4tUfJkIsTI0o5vw==} @@ -7150,35 +6986,25 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - '@storybook/manager-api@8.3.5': - resolution: {integrity: sha512-fEQoKKi7h7pzh2z9RfuzatJxubrsfL/CB99fNXQ0wshMSY/7O4ckd18pK4fzG9ErnCtLAO9qsim4N/4eQC+/8Q==} - peerDependencies: - storybook: ^8.3.5 - - '@storybook/manager-api@8.4.6': - resolution: {integrity: sha512-TsXlQ5m5rTl2KNT9icPFyy822AqXrx1QplZBt/L7cFn7SpqQKDeSta21FH7MG0piAvzOweXebVSqKngJ6cCWWQ==} + '@storybook/manager-api@8.4.7': + resolution: {integrity: sha512-ELqemTviCxAsZ5tqUz39sDmQkvhVAvAgiplYy9Uf15kO0SP2+HKsCMzlrm2ue2FfkUNyqbDayCPPCB0Cdn/mpQ==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/preset-react-webpack@8.3.5': - resolution: {integrity: sha512-laS9CiZrZ4CSnBTBfkBba3hmlDhzcjIfCvx8/rk3SZ+zh93NpqXixzRt6m0UH2po63dpdu21nXrsW5Cfs88Ypw==} + '@storybook/preset-react-webpack@8.4.7': + resolution: {integrity: sha512-geTSBKyrBagVihil5MF7LkVFynbfHhCinvnbCZZqXW7M1vgcxvatunUENB+iV8eWg/0EJ+8O7scZL+BAxQ/2qg==} engines: {node: '>=18.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.5 + storybook: ^8.4.7 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@storybook/preview-api@8.3.5': - resolution: {integrity: sha512-VPqpudE8pmjTLvdNJoW/2//nqElDgUOmIn3QxbbCmdZTHDg5tFtxuqwdlNfArF0TxvTSBDIulXt/Q6K56TAfTg==} - peerDependencies: - storybook: ^8.3.5 - - '@storybook/preview-api@8.4.6': - resolution: {integrity: sha512-LbD+lR1FGvWaJBXteVx5xdgs1x1D7tyidBg2CsW2ex+cP0iJ176JgjPfutZxlWOfQnhfRYNnJ3WKoCIfxFOTKA==} + '@storybook/preview-api@8.4.7': + resolution: {integrity: sha512-0QVQwHw+OyZGHAJEXo6Knx+6/4er7n2rTDE5RYJ9F2E2Lg42E19pfdLlq2Jhoods2Xrclo3wj6GWR//Ahi39Eg==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -7188,55 +7014,33 @@ packages: typescript: '>= 4.x' webpack: '>= 4' - '@storybook/react-dom-shim@8.3.5': - resolution: {integrity: sha512-Hf0UitJ/K0C7ajooooUK/PxOR4ihUWqsC7iCV1Gqth8U37dTeLMbaEO4PBwu0VQ+Ufg0N8BJLWfg7o6G4hrODw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.5 - - '@storybook/react-dom-shim@8.4.6': - resolution: {integrity: sha512-f7RM8GO++fqMxbjNdEzeGS1P821jXuwRnAraejk5hyjB5SqetauFxMwoFYEYfJXPaLX2qIubnIJ78hdJ/IBaEA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.4.6 - - '@storybook/react-webpack5@8.3.5': - resolution: {integrity: sha512-J7jCxjCuWvRJrAtOwe4ij8rjfTGm1Dpsfbz8xar4ItVw7ikiyALr34E3FJzfgq7M40uGXZhvCl2IVRdGeiLmzg==} - engines: {node: '>=18.0.0'} + '@storybook/react-dom-shim@8.4.7': + resolution: {integrity: sha512-6bkG2jvKTmWrmVzCgwpTxwIugd7Lu+2btsLAqhQSzDyIj2/uhMNp8xIMr/NBDtLgq3nomt9gefNa9xxLwk/OMg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.5 - typescript: '>= 4.2.x' - peerDependenciesMeta: - typescript: - optional: true + storybook: ^8.4.7 - '@storybook/react@8.3.5': - resolution: {integrity: sha512-kuBPe/wBin10SWr4EWPKxiTRGQ4RD2etGEVWVQLqVpOuJp/J2hVvXQHtCfZXU4TZT5x4PBbPRswbr58+XlF+kQ==} + '@storybook/react-webpack5@8.4.7': + resolution: {integrity: sha512-T9GLqlsP4It4El7cC8rSkBPRWvORAsTDULeWlO36RST2TrYnmBOUytsi22mk7cAAAVhhD6rTrs1YdqWRMpfa1w==} engines: {node: '>=18.0.0'} peerDependencies: - '@storybook/test': 8.3.5 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.5 + storybook: ^8.4.7 typescript: '>= 4.2.x' peerDependenciesMeta: - '@storybook/test': - optional: true typescript: optional: true - '@storybook/react@8.4.6': - resolution: {integrity: sha512-QAT23beoYNLhFGAXPimtuMErvpcI7eZbZ4AlLqW1fhiTZrRYw06cjC1bs9H3tODMcHH9LS5p3Wz9b29jtV2XGw==} + '@storybook/react@8.4.7': + resolution: {integrity: sha512-nQ0/7i2DkaCb7dy0NaT95llRVNYWQiPIVuhNfjr1mVhEP7XD090p0g7eqUmsx8vfdHh2BzWEo6CoBFRd3+EXxw==} engines: {node: '>=18.0.0'} peerDependencies: - '@storybook/test': 8.4.6 + '@storybook/test': 8.4.7 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.4.6 + storybook: ^8.4.7 typescript: '>= 4.2.x' peerDependenciesMeta: '@storybook/test': @@ -7244,23 +7048,18 @@ packages: typescript: optional: true - '@storybook/source-loader@8.3.5': - resolution: {integrity: sha512-rQRWMqsM2PROeQxBCX23sDKdTMpdkub3A2Q3+6JhVzYRQodQrQDbzVRULq3G7RGXdktTkE+huVO4pLKaDa7PDw==} + '@storybook/source-loader@8.4.7': + resolution: {integrity: sha512-DrsYGGfNbbqlMzkhbLoNyNqrPa4QIkZ6O7FJ8Z/8jWb0cerQH2N6JW6k12ZnXgs8dO2Z33+iSEDIV8odh0E0PA==} peerDependencies: - storybook: ^8.3.5 + storybook: ^8.4.7 '@storybook/test-runner@0.19.1': resolution: {integrity: sha512-Nc4djXw3Lv3AAXg6TJ7yVTeuMryjMsTDd8GCbE/PStU602rpe8syEqElz78GPoJqB1VYWQ3T9pcu93MKyHT+xQ==} engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true - '@storybook/theming@8.3.5': - resolution: {integrity: sha512-9HmDDyC691oqfg4RziIM9ElsS2HITaxmH7n/yeUPtuirkPdAQzqOzhvH/Sa0qOhifzs8VjR+Gd/a/ZQ+S38r7w==} - peerDependencies: - storybook: ^8.3.5 - - '@storybook/theming@8.4.6': - resolution: {integrity: sha512-q7vDPN/mgj7cXIVQ9R1/V75hrzNgKkm2G0LjMo57//9/djQ+7LxvBsR1iScbFIRSEqppvMiBFzkts+2uXidySA==} + '@storybook/theming@8.4.7': + resolution: {integrity: sha512-99rgLEjf7iwfSEmdqlHkSG3AyLcK0sfExcr0jnc6rLiAkBhzuIsvcHjjUwkR210SOCgXqBPW0ZA6uhnuyppHLw==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -7545,15 +7344,9 @@ packages: '@types/babel__traverse@7.20.6': resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - '@types/body-parser@1.19.5': - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} - '@types/clean-css@4.2.11': resolution: {integrity: sha512-Y8n81lQVTAfP2TOdtJJEsCoYl1AnOkqDqMvXb9/7pfgZZ7r8YrEyurrAvAoAjHOGXKRybay+5CsExqIH6liccw==} - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - '@types/css-tree@2.3.10': resolution: {integrity: sha512-WcaBazJ84RxABvRttQjjFWgTcHvZR9jGr0Y3hccPkHjFyk/a3N8EuxjKr+QfrwjoM5b1yI1Uj1i7EzOAAwBwag==} @@ -7599,21 +7392,9 @@ packages: '@types/doctrine@0.0.9': resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==} - '@types/escodegen@0.0.6': - resolution: {integrity: sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig==} - - '@types/estree@0.0.51': - resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} - '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - '@types/express-serve-static-core@4.19.6': - resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} - - '@types/express@4.17.21': - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} - '@types/geojson@7946.0.15': resolution: {integrity: sha512-9oSxFzDCT2Rj6DfcHF8G++jxBKS7mBqXl5xrRW+Kbvjry6Uduya2iiwqHPhVXpasAVMBYKkEPGgKhd3+/HZ6xA==} @@ -7626,9 +7407,6 @@ packages: '@types/gradient-parser@0.1.3': resolution: {integrity: sha512-XDbrTSBlQV9nxE1GiDL3FaOPy4G/KaJkhDutBX48Kg8CYZMBARyyDFGCWfWJn4pobmInmwud1xxH7VJMAr0CKQ==} - '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - '@types/highlight-words-core@1.2.1': resolution: {integrity: sha512-9VZUA5omXBfn+hDxFjUDu1FOJTBM3LmvqfDey+Z6Aa8B8/JmF5SMj6FBrjfgJ/Q3YXOZd3qyTDfJyMZSs/wCUA==} @@ -7641,9 +7419,6 @@ packages: '@types/html-minifier-terser@6.1.0': resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} - '@types/http-errors@2.0.4': - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - '@types/istanbul-lib-coverage@2.0.6': resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} @@ -7689,9 +7464,6 @@ packages: '@types/mdx@2.0.13': resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/minimatch@5.1.2': resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} @@ -7722,9 +7494,6 @@ packages: '@types/qs@6.9.17': resolution: {integrity: sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==} - '@types/range-parser@1.2.7': - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-dom@18.3.5': resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==} peerDependencies: @@ -7763,12 +7532,6 @@ packages: '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@types/send@0.17.4': - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} - - '@types/serve-static@1.15.7': - resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} - '@types/simple-peer@9.11.8': resolution: {integrity: sha512-rvqefdp2rvIA6wiomMgKWd2UZNPe6LM2EV5AuY3CPQJF+8TbdrL5TjYdMf0VAjGczzlkH4l1NjDkihwbj3Xodw==} @@ -7901,9 +7664,6 @@ packages: resolution: {integrity: sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@ungap/structured-clone@1.2.1': - resolution: {integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==} - '@use-gesture/core@10.3.1': resolution: {integrity: sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==} @@ -8499,19 +8259,10 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@7.2.0: - resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} - engines: {node: '>=0.4.0'} - acorn-walk@8.3.4: resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} - acorn@7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.14.0: resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} @@ -9887,6 +9638,9 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} + es-toolkit@1.31.0: + resolution: {integrity: sha512-vwS0lv/tzjM2/t4aZZRAgN9I9TP0MSkWuvt6By+hEXfG/uLs8yg2S1/ayRXH/x3pinbLgVJYT+eppueg3cM6tg==} + es6-error@4.1.1: resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} @@ -9905,11 +9659,6 @@ packages: engines: {node: '>=12'} hasBin: true - esbuild@0.23.1: - resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} - engines: {node: '>=18'} - hasBin: true - esbuild@0.24.2: resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} engines: {node: '>=18'} @@ -10466,10 +10215,6 @@ packages: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} - fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} - fs-monkey@1.0.6: resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} @@ -10553,9 +10298,6 @@ packages: git-hooks-list@1.0.3: resolution: {integrity: sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ==} - github-slugger@2.0.0: - resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} - gl-matrix@3.4.3: resolution: {integrity: sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==} @@ -10687,15 +10429,6 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - hast-util-heading-rank@3.0.0: - resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} - - hast-util-is-element@3.0.0: - resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} - - hast-util-to-string@3.0.1: - resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} - he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true @@ -10737,10 +10470,6 @@ packages: engines: {node: '>=12'} hasBin: true - html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} - engines: {node: '>=8'} - html-webpack-plugin@5.6.3: resolution: {integrity: sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==} engines: {node: '>=10.13.0'} @@ -10897,10 +10626,6 @@ packages: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} - is-absolute-url@4.0.1: - resolution: {integrity: sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-arguments@1.1.1: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} @@ -11709,12 +11434,6 @@ packages: markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - markdown-to-jsx@7.7.1: - resolution: {integrity: sha512-BjLkHb+fWCAH9gp7ndbgPrY+zeZlGFtCiQNTWk+PD+GKfLg9YsUPNonSsYXGw6nQ7eZqeR+i71X59PpWXlxc/w==} - engines: {node: '>= 10'} - peerDependencies: - react: '>= 0.14.0' - math-expression-evaluator@1.4.0: resolution: {integrity: sha512-4vRUvPyxdO8cWULGTh9dZWL2tZK6LDBvj+OGHBER7poH9Qdt7kXEoj20wiz4lQUbUXQZFjPbe5mVDo9nutizCw==} @@ -12869,12 +12588,6 @@ packages: react: '>=16.4.0' react-dom: '>=16.4.0' - react-element-to-jsx-string@15.0.0: - resolution: {integrity: sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==} - peerDependencies: - react: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 - react-dom: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 - react-fast-compare@3.2.2: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} @@ -12884,9 +12597,6 @@ packages: react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - react-is@18.1.0: - resolution: {integrity: sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==} - react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} @@ -13082,12 +12792,6 @@ packages: resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} hasBin: true - rehype-external-links@3.0.0: - resolution: {integrity: sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==} - - rehype-slug@6.0.0: - resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} - relateurl@0.2.7: resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} engines: {node: '>= 0.10'} @@ -13627,9 +13331,6 @@ packages: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} - space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - spawn-command@0.0.2: resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} @@ -13693,12 +13394,8 @@ packages: react-dom: optional: true - storybook@8.3.5: - resolution: {integrity: sha512-hYQVtP2l+3kO8oKDn4fjXXQYxgTRsj/LaV6lUMJH0zt+OhVmDXKJLxmdUP4ieTm0T8wEbSYosFavgPcQZlxRfw==} - hasBin: true - - storybook@8.4.6: - resolution: {integrity: sha512-J6juZSZT2u3PUW0QZYZZYxBq6zU5O0OrkSgkMXGMg/QrS9to9IHmt4FjEMEyACRbXo8POcB/fSXa3VpGe7bv3g==} + storybook@8.4.7: + resolution: {integrity: sha512-RP/nMJxiWyFc8EVMH5gp20ID032Wvk+Yr3lmKidoegto5Iy+2dVQnUoElZb2zpbVXNHWakGuAkfI0dY1Hfp/vw==} hasBin: true peerDependencies: prettier: ^2 || ^3 @@ -13996,9 +13693,6 @@ packages: tar-stream@3.1.7: resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} - telejson@7.2.0: - resolution: {integrity: sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==} - terser-webpack-plugin@5.3.10: resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} engines: {node: '>= 10.13.0'} @@ -15756,8 +15450,6 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 - '@base2/pretty-print-object@1.0.1': {} - '@bcoe/v8-coverage@0.2.3': {} '@bufbuild/protobuf@2.2.3': {} @@ -15910,153 +15602,102 @@ snapshots: esquery: 1.6.0 jsdoc-type-pratt-parser: 4.1.0 - '@esbuild/aix-ppc64@0.23.1': - optional: true - '@esbuild/aix-ppc64@0.24.2': optional: true '@esbuild/android-arm64@0.17.19': optional: true - '@esbuild/android-arm64@0.23.1': - optional: true - '@esbuild/android-arm64@0.24.2': optional: true '@esbuild/android-arm@0.17.19': optional: true - '@esbuild/android-arm@0.23.1': - optional: true - '@esbuild/android-arm@0.24.2': optional: true '@esbuild/android-x64@0.17.19': optional: true - '@esbuild/android-x64@0.23.1': - optional: true - '@esbuild/android-x64@0.24.2': optional: true '@esbuild/darwin-arm64@0.17.19': optional: true - '@esbuild/darwin-arm64@0.23.1': - optional: true - '@esbuild/darwin-arm64@0.24.2': optional: true '@esbuild/darwin-x64@0.17.19': optional: true - '@esbuild/darwin-x64@0.23.1': - optional: true - '@esbuild/darwin-x64@0.24.2': optional: true '@esbuild/freebsd-arm64@0.17.19': optional: true - '@esbuild/freebsd-arm64@0.23.1': - optional: true - '@esbuild/freebsd-arm64@0.24.2': optional: true '@esbuild/freebsd-x64@0.17.19': optional: true - '@esbuild/freebsd-x64@0.23.1': - optional: true - '@esbuild/freebsd-x64@0.24.2': optional: true '@esbuild/linux-arm64@0.17.19': optional: true - '@esbuild/linux-arm64@0.23.1': - optional: true - '@esbuild/linux-arm64@0.24.2': optional: true '@esbuild/linux-arm@0.17.19': optional: true - '@esbuild/linux-arm@0.23.1': - optional: true - '@esbuild/linux-arm@0.24.2': optional: true '@esbuild/linux-ia32@0.17.19': optional: true - '@esbuild/linux-ia32@0.23.1': - optional: true - '@esbuild/linux-ia32@0.24.2': optional: true '@esbuild/linux-loong64@0.17.19': optional: true - '@esbuild/linux-loong64@0.23.1': - optional: true - '@esbuild/linux-loong64@0.24.2': optional: true '@esbuild/linux-mips64el@0.17.19': optional: true - '@esbuild/linux-mips64el@0.23.1': - optional: true - '@esbuild/linux-mips64el@0.24.2': optional: true '@esbuild/linux-ppc64@0.17.19': optional: true - '@esbuild/linux-ppc64@0.23.1': - optional: true - '@esbuild/linux-ppc64@0.24.2': optional: true '@esbuild/linux-riscv64@0.17.19': optional: true - '@esbuild/linux-riscv64@0.23.1': - optional: true - '@esbuild/linux-riscv64@0.24.2': optional: true '@esbuild/linux-s390x@0.17.19': optional: true - '@esbuild/linux-s390x@0.23.1': - optional: true - '@esbuild/linux-s390x@0.24.2': optional: true '@esbuild/linux-x64@0.17.19': optional: true - '@esbuild/linux-x64@0.23.1': - optional: true - '@esbuild/linux-x64@0.24.2': optional: true @@ -16066,60 +15707,39 @@ snapshots: '@esbuild/netbsd-x64@0.17.19': optional: true - '@esbuild/netbsd-x64@0.23.1': - optional: true - '@esbuild/netbsd-x64@0.24.2': optional: true - '@esbuild/openbsd-arm64@0.23.1': - optional: true - '@esbuild/openbsd-arm64@0.24.2': optional: true '@esbuild/openbsd-x64@0.17.19': optional: true - '@esbuild/openbsd-x64@0.23.1': - optional: true - '@esbuild/openbsd-x64@0.24.2': optional: true '@esbuild/sunos-x64@0.17.19': optional: true - '@esbuild/sunos-x64@0.23.1': - optional: true - '@esbuild/sunos-x64@0.24.2': optional: true '@esbuild/win32-arm64@0.17.19': optional: true - '@esbuild/win32-arm64@0.23.1': - optional: true - '@esbuild/win32-arm64@0.24.2': optional: true '@esbuild/win32-ia32@0.17.19': optional: true - '@esbuild/win32-ia32@0.23.1': - optional: true - '@esbuild/win32-ia32@0.24.2': optional: true '@esbuild/win32-x64@0.17.19': optional: true - '@esbuild/win32-x64@0.23.1': - optional: true - '@esbuild/win32-x64@0.24.2': optional: true @@ -17192,98 +16812,96 @@ snapshots: transitivePeerDependencies: - debug - '@storybook/addon-a11y@8.3.5(storybook@8.3.5)': + '@storybook/addon-a11y@8.4.7(storybook@8.4.7)': dependencies: - '@storybook/addon-highlight': 8.3.5(storybook@8.3.5) + '@storybook/addon-highlight': 8.4.7(storybook@8.4.7) axe-core: 4.10.2 - storybook: 8.3.5 + storybook: 8.4.7 - '@storybook/addon-actions@8.3.5(storybook@8.3.5)': + '@storybook/addon-actions@8.4.7(storybook@8.4.7)': dependencies: '@storybook/global': 5.0.0 '@types/uuid': 9.0.8 dequal: 2.0.3 polished: 4.3.1 - storybook: 8.3.5 + storybook: 8.4.7 uuid: 9.0.1 - '@storybook/addon-backgrounds@8.3.5(storybook@8.3.5)': + '@storybook/addon-backgrounds@8.4.7(storybook@8.4.7)': dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 - storybook: 8.3.5 + storybook: 8.4.7 ts-dedent: 2.2.0 - '@storybook/addon-controls@8.3.5(storybook@8.3.5)': + '@storybook/addon-controls@8.4.7(storybook@8.4.7)': dependencies: '@storybook/global': 5.0.0 dequal: 2.0.3 - lodash: 4.17.21 - storybook: 8.3.5 + storybook: 8.4.7 ts-dedent: 2.2.0 - '@storybook/addon-docs@8.3.5(storybook@8.3.5)': + '@storybook/addon-docs@8.4.7(@types/react@18.3.18)(storybook@8.4.7)': dependencies: '@mdx-js/react': 3.1.0(@types/react@18.3.18)(react@18.3.1) - '@storybook/blocks': 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5) - '@storybook/csf-plugin': 8.3.5(storybook@8.3.5) - '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5) - '@types/react': 18.3.18 - fs-extra: 11.2.0 + '@storybook/blocks': 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7) + '@storybook/csf-plugin': 8.4.7(storybook@8.4.7) + '@storybook/react-dom-shim': 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - rehype-external-links: 3.0.0 - rehype-slug: 6.0.0 - storybook: 8.3.5 + storybook: 8.4.7 ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' - '@storybook/addon-essentials@8.3.5(storybook@8.3.5)': - dependencies: - '@storybook/addon-actions': 8.3.5(storybook@8.3.5) - '@storybook/addon-backgrounds': 8.3.5(storybook@8.3.5) - '@storybook/addon-controls': 8.3.5(storybook@8.3.5) - '@storybook/addon-docs': 8.3.5(storybook@8.3.5) - '@storybook/addon-highlight': 8.3.5(storybook@8.3.5) - '@storybook/addon-measure': 8.3.5(storybook@8.3.5) - '@storybook/addon-outline': 8.3.5(storybook@8.3.5) - '@storybook/addon-toolbars': 8.3.5(storybook@8.3.5) - '@storybook/addon-viewport': 8.3.5(storybook@8.3.5) - storybook: 8.3.5 + '@storybook/addon-essentials@8.4.7(@types/react@18.3.18)(storybook@8.4.7)': + dependencies: + '@storybook/addon-actions': 8.4.7(storybook@8.4.7) + '@storybook/addon-backgrounds': 8.4.7(storybook@8.4.7) + '@storybook/addon-controls': 8.4.7(storybook@8.4.7) + '@storybook/addon-docs': 8.4.7(@types/react@18.3.18)(storybook@8.4.7) + '@storybook/addon-highlight': 8.4.7(storybook@8.4.7) + '@storybook/addon-measure': 8.4.7(storybook@8.4.7) + '@storybook/addon-outline': 8.4.7(storybook@8.4.7) + '@storybook/addon-toolbars': 8.4.7(storybook@8.4.7) + '@storybook/addon-viewport': 8.4.7(storybook@8.4.7) + storybook: 8.4.7 ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' - '@storybook/addon-highlight@8.3.5(storybook@8.3.5)': + '@storybook/addon-highlight@8.4.7(storybook@8.4.7)': dependencies: '@storybook/global': 5.0.0 - storybook: 8.3.5 + storybook: 8.4.7 - '@storybook/addon-measure@8.3.5(storybook@8.3.5)': + '@storybook/addon-measure@8.4.7(storybook@8.4.7)': dependencies: '@storybook/global': 5.0.0 - storybook: 8.3.5 + storybook: 8.4.7 tiny-invariant: 1.3.3 - '@storybook/addon-outline@8.3.5(storybook@8.3.5)': + '@storybook/addon-outline@8.4.7(storybook@8.4.7)': dependencies: '@storybook/global': 5.0.0 - storybook: 8.3.5 + storybook: 8.4.7 ts-dedent: 2.2.0 - '@storybook/addon-storysource@8.3.5(storybook@8.3.5)': + '@storybook/addon-storysource@8.4.7(storybook@8.4.7)': dependencies: - '@storybook/source-loader': 8.3.5(storybook@8.3.5) + '@storybook/source-loader': 8.4.7(storybook@8.4.7) estraverse: 5.3.0 - storybook: 8.3.5 + storybook: 8.4.7 tiny-invariant: 1.3.3 - '@storybook/addon-toolbars@8.3.5(storybook@8.3.5)': + '@storybook/addon-toolbars@8.4.7(storybook@8.4.7)': dependencies: - storybook: 8.3.5 + storybook: 8.4.7 - '@storybook/addon-viewport@8.3.5(storybook@8.3.5)': + '@storybook/addon-viewport@8.4.7(storybook@8.4.7)': dependencies: memoizerific: 1.11.3 - storybook: 8.3.5 + storybook: 8.4.7 '@storybook/addon-webpack5-compiler-babel@3.0.3(webpack@5.94.0)': dependencies: @@ -17293,40 +16911,19 @@ snapshots: - supports-color - webpack - '@storybook/blocks@8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5)': - dependencies: - '@storybook/csf': 0.1.12 - '@storybook/global': 5.0.0 - '@storybook/icons': 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@types/lodash': 4.17.13 - color-convert: 2.0.1 - dequal: 2.0.3 - lodash: 4.17.21 - markdown-to-jsx: 7.7.1(react@18.3.1) - memoizerific: 1.11.3 - polished: 4.3.1 - react-colorful: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - storybook: 8.3.5 - telejson: 7.2.0 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - optionalDependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@storybook/blocks@8.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.6)': + '@storybook/blocks@8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7)': dependencies: '@storybook/csf': 0.1.12 '@storybook/icons': 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - storybook: 8.4.6 + storybook: 8.4.7 ts-dedent: 2.2.0 optionalDependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/builder-webpack5@8.3.5(storybook@8.3.5)(typescript@5.0.4)(webpack-cli@4.9.1)': + '@storybook/builder-webpack5@8.4.7(storybook@8.4.7)(typescript@5.0.4)(webpack-cli@4.9.1)': dependencies: - '@storybook/core-webpack': 8.3.5(storybook@8.3.5) + '@storybook/core-webpack': 8.4.7(storybook@8.4.7) '@types/node': 22.10.3 '@types/semver': 7.5.8 browser-assert: 1.2.1 @@ -17335,15 +16932,13 @@ snapshots: constants-browserify: 1.0.0 css-loader: 6.11.0(webpack@5.94.0) es-module-lexer: 1.5.4 - express: 4.21.2 fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.0.4)(webpack@5.94.0) - fs-extra: 11.2.0 html-webpack-plugin: 5.6.3(webpack@5.94.0) magic-string: 0.30.14 path-browserify: 1.0.1 process: 0.11.10 semver: 7.6.3 - storybook: 8.3.5 + storybook: 8.4.7 style-loader: 3.3.4(webpack@5.94.0) terser-webpack-plugin: 5.3.3(webpack@5.94.0) ts-dedent: 2.2.0 @@ -17360,61 +16955,32 @@ snapshots: - '@rspack/core' - '@swc/core' - esbuild - - supports-color - uglify-js - webpack-cli - '@storybook/channels@8.4.7(storybook@8.4.6)': - dependencies: - storybook: 8.4.6 - - '@storybook/components@8.3.5(storybook@8.3.5)': - dependencies: - storybook: 8.3.5 - - '@storybook/components@8.3.5(storybook@8.4.6)': + '@storybook/channels@8.4.7(storybook@8.4.7)': dependencies: - storybook: 8.4.6 + storybook: 8.4.7 - '@storybook/components@8.4.6(storybook@8.4.6)': + '@storybook/components@8.4.7(storybook@8.4.7)': dependencies: - storybook: 8.4.6 + storybook: 8.4.7 - '@storybook/core-common@8.4.7(storybook@8.3.5)': + '@storybook/core-common@8.4.7(storybook@8.4.7)': dependencies: - storybook: 8.3.5 + storybook: 8.4.7 - '@storybook/core-events@8.4.7(storybook@8.4.6)': + '@storybook/core-events@8.4.7(storybook@8.4.7)': dependencies: - storybook: 8.4.6 + storybook: 8.4.7 - '@storybook/core-webpack@8.3.5(storybook@8.3.5)': + '@storybook/core-webpack@8.4.7(storybook@8.4.7)': dependencies: '@types/node': 22.10.3 - storybook: 8.3.5 + storybook: 8.4.7 ts-dedent: 2.2.0 - '@storybook/core@8.3.5': - dependencies: - '@storybook/csf': 0.1.12 - '@types/express': 4.17.21 - better-opn: 3.0.2 - browser-assert: 1.2.1 - esbuild: 0.23.1 - esbuild-register: 3.6.0(esbuild@0.23.1) - express: 4.21.2 - jsdoc-type-pratt-parser: 4.1.0 - process: 0.11.10 - recast: 0.23.9 - semver: 7.6.3 - util: 0.12.5 - ws: 8.18.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - '@storybook/core@8.4.6': + '@storybook/core@8.4.7': dependencies: '@storybook/csf': 0.1.12 better-opn: 3.0.2 @@ -17432,14 +16998,14 @@ snapshots: - supports-color - utf-8-validate - '@storybook/csf-plugin@8.3.5(storybook@8.3.5)': + '@storybook/csf-plugin@8.4.7(storybook@8.4.7)': dependencies: - storybook: 8.3.5 + storybook: 8.4.7 unplugin: 1.16.0 - '@storybook/csf-tools@8.4.7(storybook@8.3.5)': + '@storybook/csf-tools@8.4.7(storybook@8.4.7)': dependencies: - storybook: 8.3.5 + storybook: 8.4.7 '@storybook/csf@0.1.12': dependencies: @@ -17452,34 +17018,25 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/manager-api@8.3.5(storybook@8.3.5)': - dependencies: - storybook: 8.3.5 - - '@storybook/manager-api@8.3.5(storybook@8.4.6)': + '@storybook/manager-api@8.4.7(storybook@8.4.7)': dependencies: - storybook: 8.4.6 + storybook: 8.4.7 - '@storybook/manager-api@8.4.6(storybook@8.4.6)': + '@storybook/preset-react-webpack@8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7)(typescript@5.0.4)(webpack-cli@4.9.1)': dependencies: - storybook: 8.4.6 - - '@storybook/preset-react-webpack@8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5)(typescript@5.0.4)(webpack-cli@4.9.1)': - dependencies: - '@storybook/core-webpack': 8.3.5(storybook@8.3.5) - '@storybook/react': 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5)(typescript@5.0.4) + '@storybook/core-webpack': 8.4.7(storybook@8.4.7) + '@storybook/react': 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7)(typescript@5.0.4) '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.0.4)(webpack@5.94.0) '@types/node': 22.10.3 '@types/semver': 7.5.8 find-up: 5.0.0 - fs-extra: 11.2.0 magic-string: 0.30.14 react: 18.3.1 react-docgen: 7.1.0 react-dom: 18.3.1(react@18.3.1) resolve: 1.22.8 semver: 7.6.3 - storybook: 8.3.5 + storybook: 8.4.7 tsconfig-paths: 4.2.0 webpack: 5.94.0(webpack-cli@4.9.1) optionalDependencies: @@ -17492,17 +17049,9 @@ snapshots: - uglify-js - webpack-cli - '@storybook/preview-api@8.3.5(storybook@8.3.5)': - dependencies: - storybook: 8.3.5 - - '@storybook/preview-api@8.3.5(storybook@8.4.6)': - dependencies: - storybook: 8.4.6 - - '@storybook/preview-api@8.4.6(storybook@8.4.6)': + '@storybook/preview-api@8.4.7(storybook@8.4.7)': dependencies: - storybook: 8.4.6 + storybook: 8.4.7 '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.0.4)(webpack@5.94.0)': dependencies: @@ -17518,27 +17067,21 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/react-dom-shim@8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5)': + '@storybook/react-dom-shim@8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7)': dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - storybook: 8.3.5 + storybook: 8.4.7 - '@storybook/react-dom-shim@8.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.6)': + '@storybook/react-webpack5@8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7)(typescript@5.0.4)(webpack-cli@4.9.1)': dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - storybook: 8.4.6 - - '@storybook/react-webpack5@8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5)(typescript@5.0.4)(webpack-cli@4.9.1)': - dependencies: - '@storybook/builder-webpack5': 8.3.5(storybook@8.3.5)(typescript@5.0.4)(webpack-cli@4.9.1) - '@storybook/preset-react-webpack': 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5)(typescript@5.0.4)(webpack-cli@4.9.1) - '@storybook/react': 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5)(typescript@5.0.4) + '@storybook/builder-webpack5': 8.4.7(storybook@8.4.7)(typescript@5.0.4)(webpack-cli@4.9.1) + '@storybook/preset-react-webpack': 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7)(typescript@5.0.4)(webpack-cli@4.9.1) + '@storybook/react': 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7)(typescript@5.0.4) '@types/node': 22.10.3 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - storybook: 8.3.5 + storybook: 8.4.7 optionalDependencies: typescript: 5.0.4 transitivePeerDependencies: @@ -17550,67 +17093,53 @@ snapshots: - uglify-js - webpack-cli - '@storybook/react@8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5)(typescript@5.0.4)': + '@storybook/react@8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7)(typescript@5.0.4)': dependencies: - '@storybook/components': 8.3.5(storybook@8.3.5) + '@storybook/components': 8.4.7(storybook@8.4.7) '@storybook/global': 5.0.0 - '@storybook/manager-api': 8.3.5(storybook@8.3.5) - '@storybook/preview-api': 8.3.5(storybook@8.3.5) - '@storybook/react-dom-shim': 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5) - '@storybook/theming': 8.3.5(storybook@8.3.5) - '@types/escodegen': 0.0.6 - '@types/estree': 0.0.51 - '@types/node': 22.10.3 - acorn: 7.4.1 - acorn-jsx: 5.3.2(acorn@7.4.1) - acorn-walk: 7.2.0 - escodegen: 2.1.0 - html-tags: 3.3.1 - prop-types: 15.8.1 + '@storybook/manager-api': 8.4.7(storybook@8.4.7) + '@storybook/preview-api': 8.4.7(storybook@8.4.7) + '@storybook/react-dom-shim': 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7) + '@storybook/theming': 8.4.7(storybook@8.4.7) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-element-to-jsx-string: 15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - semver: 7.6.3 - storybook: 8.3.5 - ts-dedent: 2.2.0 - type-fest: 2.19.0 - util-deprecate: 1.0.2 + storybook: 8.4.7 optionalDependencies: typescript: 5.0.4 - '@storybook/react@8.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.6)(typescript@5.7.2)': + '@storybook/react@8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7)(typescript@5.7.2)': dependencies: - '@storybook/components': 8.4.6(storybook@8.4.6) + '@storybook/components': 8.4.7(storybook@8.4.7) '@storybook/global': 5.0.0 - '@storybook/manager-api': 8.4.6(storybook@8.4.6) - '@storybook/preview-api': 8.4.6(storybook@8.4.6) - '@storybook/react-dom-shim': 8.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.6) - '@storybook/theming': 8.4.6(storybook@8.4.6) + '@storybook/manager-api': 8.4.7(storybook@8.4.7) + '@storybook/preview-api': 8.4.7(storybook@8.4.7) + '@storybook/react-dom-shim': 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7) + '@storybook/theming': 8.4.7(storybook@8.4.7) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - storybook: 8.4.6 + storybook: 8.4.7 optionalDependencies: typescript: 5.7.2 - '@storybook/source-loader@8.3.5(storybook@8.3.5)': + '@storybook/source-loader@8.4.7(storybook@8.4.7)': dependencies: '@storybook/csf': 0.1.12 + es-toolkit: 1.31.0 estraverse: 5.3.0 - lodash: 4.17.21 prettier: 3.4.2 - storybook: 8.3.5 + storybook: 8.4.7 - '@storybook/test-runner@0.19.1(storybook@8.3.5)': + '@storybook/test-runner@0.19.1(storybook@8.4.7)': dependencies: '@babel/core': 7.26.0 '@babel/generator': 7.26.3 '@babel/template': 7.25.9 '@babel/types': 7.26.3 '@jest/types': 29.6.3 - '@storybook/core-common': 8.4.7(storybook@8.3.5) + '@storybook/core-common': 8.4.7(storybook@8.4.7) '@storybook/csf': 0.1.12 - '@storybook/csf-tools': 8.4.7(storybook@8.3.5) - '@storybook/preview-api': 8.3.5(storybook@8.3.5) + '@storybook/csf-tools': 8.4.7(storybook@8.4.7) + '@storybook/preview-api': 8.4.7(storybook@8.4.7) '@swc/core': 1.10.1 '@swc/jest': 0.2.37(@swc/core@1.10.1) expect-playwright: 0.8.0 @@ -17634,17 +17163,9 @@ snapshots: - supports-color - ts-node - '@storybook/theming@8.3.5(storybook@8.3.5)': + '@storybook/theming@8.4.7(storybook@8.4.7)': dependencies: - storybook: 8.3.5 - - '@storybook/theming@8.3.5(storybook@8.4.6)': - dependencies: - storybook: 8.4.6 - - '@storybook/theming@8.4.6(storybook@8.4.6)': - dependencies: - storybook: 8.4.6 + storybook: 8.4.7 '@svgr/babel-plugin-add-jsx-attribute@7.0.0(@babel/core@7.26.0)': dependencies: @@ -17937,20 +17458,11 @@ snapshots: dependencies: '@babel/types': 7.26.3 - '@types/body-parser@1.19.5': - dependencies: - '@types/connect': 3.4.38 - '@types/node': 20.17.11 - '@types/clean-css@4.2.11': dependencies: '@types/node': 20.17.11 source-map: 0.6.1 - '@types/connect@3.4.38': - dependencies: - '@types/node': 20.17.11 - '@types/css-tree@2.3.10': {} '@types/d3-array@3.0.3': {} @@ -17991,26 +17503,8 @@ snapshots: '@types/doctrine@0.0.9': {} - '@types/escodegen@0.0.6': {} - - '@types/estree@0.0.51': {} - '@types/estree@1.0.6': {} - '@types/express-serve-static-core@4.19.6': - dependencies: - '@types/node': 20.17.11 - '@types/qs': 6.9.17 - '@types/range-parser': 1.2.7 - '@types/send': 0.17.4 - - '@types/express@4.17.21': - dependencies: - '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.6 - '@types/qs': 6.9.17 - '@types/serve-static': 1.15.7 - '@types/geojson@7946.0.15': {} '@types/glob@7.2.0': @@ -18024,10 +17518,6 @@ snapshots: '@types/gradient-parser@0.1.3': {} - '@types/hast@3.0.4': - dependencies: - '@types/unist': 3.0.3 - '@types/highlight-words-core@1.2.1': {} '@types/history@4.7.11': {} @@ -18039,8 +17529,6 @@ snapshots: '@types/html-minifier-terser@6.1.0': {} - '@types/http-errors@2.0.4': {} - '@types/istanbul-lib-coverage@2.0.6': {} '@types/istanbul-lib-report@3.0.3': @@ -18091,8 +17579,6 @@ snapshots: '@types/mdx@2.0.13': {} - '@types/mime@1.3.5': {} - '@types/minimatch@5.1.2': {} '@types/mousetrap@1.6.15': {} @@ -18122,8 +17608,6 @@ snapshots: '@types/qs@6.9.17': {} - '@types/range-parser@1.2.7': {} - '@types/react-dom@18.3.5(@types/react@18.3.18)': dependencies: '@types/react': 18.3.18 @@ -18169,17 +17653,6 @@ snapshots: '@types/semver@7.5.8': {} - '@types/send@0.17.4': - dependencies: - '@types/mime': 1.3.5 - '@types/node': 20.17.11 - - '@types/serve-static@1.15.7': - dependencies: - '@types/http-errors': 2.0.4 - '@types/node': 20.17.11 - '@types/send': 0.17.4 - '@types/simple-peer@9.11.8': dependencies: '@types/node': 20.17.11 @@ -18362,8 +17835,6 @@ snapshots: '@typescript-eslint/types': 8.18.0 eslint-visitor-keys: 4.2.0 - '@ungap/structured-clone@1.2.1': {} - '@use-gesture/core@10.3.1': {} '@use-gesture/react@10.3.1(react@18.3.1)': @@ -19937,12 +19408,12 @@ snapshots: - supports-color - utf-8-validate - '@wordpress/format-library@5.14.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@wordpress/format-library@5.14.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.7 '@wordpress/a11y': 4.13.0 - '@wordpress/block-editor': 14.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@wordpress/components': 29.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/block-editor': 14.9.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/components': 29.0.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@wordpress/compose': 7.14.0(react@18.3.1) '@wordpress/data': 10.14.0(react@18.3.1) '@wordpress/element': 6.14.0 @@ -20536,22 +20007,14 @@ snapshots: dependencies: acorn: 8.14.0 - acorn-jsx@5.3.2(acorn@7.4.1): - dependencies: - acorn: 7.4.1 - acorn-jsx@5.3.2(acorn@8.14.0): dependencies: acorn: 8.14.0 - acorn-walk@7.2.0: {} - acorn-walk@8.3.4: dependencies: acorn: 8.14.0 - acorn@7.4.1: {} - acorn@8.14.0: {} agent-base@6.0.2: @@ -22168,6 +21631,8 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.1.0 + es-toolkit@1.31.0: {} + es6-error@4.1.1: {} esbuild-loader@3.0.1(webpack@5.94.0): @@ -22178,13 +21643,6 @@ snapshots: webpack: 5.94.0(webpack-cli@4.9.1) webpack-sources: 1.4.3 - esbuild-register@3.6.0(esbuild@0.23.1): - dependencies: - debug: 4.4.0 - esbuild: 0.23.1 - transitivePeerDependencies: - - supports-color - esbuild-register@3.6.0(esbuild@0.24.2): dependencies: debug: 4.4.0 @@ -22217,33 +21675,6 @@ snapshots: '@esbuild/win32-ia32': 0.17.19 '@esbuild/win32-x64': 0.17.19 - esbuild@0.23.1: - optionalDependencies: - '@esbuild/aix-ppc64': 0.23.1 - '@esbuild/android-arm': 0.23.1 - '@esbuild/android-arm64': 0.23.1 - '@esbuild/android-x64': 0.23.1 - '@esbuild/darwin-arm64': 0.23.1 - '@esbuild/darwin-x64': 0.23.1 - '@esbuild/freebsd-arm64': 0.23.1 - '@esbuild/freebsd-x64': 0.23.1 - '@esbuild/linux-arm': 0.23.1 - '@esbuild/linux-arm64': 0.23.1 - '@esbuild/linux-ia32': 0.23.1 - '@esbuild/linux-loong64': 0.23.1 - '@esbuild/linux-mips64el': 0.23.1 - '@esbuild/linux-ppc64': 0.23.1 - '@esbuild/linux-riscv64': 0.23.1 - '@esbuild/linux-s390x': 0.23.1 - '@esbuild/linux-x64': 0.23.1 - '@esbuild/netbsd-x64': 0.23.1 - '@esbuild/openbsd-arm64': 0.23.1 - '@esbuild/openbsd-x64': 0.23.1 - '@esbuild/sunos-x64': 0.23.1 - '@esbuild/win32-arm64': 0.23.1 - '@esbuild/win32-ia32': 0.23.1 - '@esbuild/win32-x64': 0.23.1 - esbuild@0.24.2: optionalDependencies: '@esbuild/aix-ppc64': 0.24.2 @@ -22962,12 +22393,6 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 - fs-extra@11.2.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - fs-monkey@1.0.6: {} fs.realpath@1.0.0: {} @@ -23049,8 +22474,6 @@ snapshots: git-hooks-list@1.0.3: {} - github-slugger@2.0.0: {} - gl-matrix@3.4.3: {} glob-parent@5.1.2: @@ -23189,18 +22612,6 @@ snapshots: dependencies: function-bind: 1.1.2 - hast-util-heading-rank@3.0.0: - dependencies: - '@types/hast': 3.0.4 - - hast-util-is-element@3.0.0: - dependencies: - '@types/hast': 3.0.4 - - hast-util-to-string@3.0.1: - dependencies: - '@types/hast': 3.0.4 - he@1.2.0: {} header-case@2.0.4: @@ -23251,8 +22662,6 @@ snapshots: relateurl: 0.2.7 terser: 5.37.0 - html-tags@3.3.1: {} - html-webpack-plugin@5.6.3(webpack@5.94.0): dependencies: '@types/html-minifier-terser': 6.1.0 @@ -23413,8 +22822,6 @@ snapshots: ipaddr.js@1.9.1: {} - is-absolute-url@4.0.1: {} - is-arguments@1.1.1: dependencies: call-bind: 1.0.8 @@ -24541,10 +23948,6 @@ snapshots: markdown-table@3.0.4: {} - markdown-to-jsx@7.7.1(react@18.3.1): - dependencies: - react: 18.3.1 - math-expression-evaluator@1.4.0: {} md5-es@1.8.2: {} @@ -25870,22 +25273,12 @@ snapshots: react-dom: 18.3.1(react@18.3.1) tslib: 2.5.0 - react-element-to-jsx-string@15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@base2/pretty-print-object': 1.0.1 - is-plain-object: 5.0.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-is: 18.1.0 - react-fast-compare@3.2.2: {} react-is@16.13.1: {} react-is@17.0.2: {} - react-is@18.1.0: {} - react-is@18.3.1: {} react-page-visibility@7.0.0(react@18.3.1): @@ -26139,23 +25532,6 @@ snapshots: dependencies: jsesc: 3.0.2 - rehype-external-links@3.0.0: - dependencies: - '@types/hast': 3.0.4 - '@ungap/structured-clone': 1.2.1 - hast-util-is-element: 3.0.0 - is-absolute-url: 4.0.1 - space-separated-tokens: 2.0.2 - unist-util-visit: 5.0.0 - - rehype-slug@6.0.0: - dependencies: - '@types/hast': 3.0.4 - github-slugger: 2.0.0 - hast-util-heading-rank: 3.0.0 - hast-util-to-string: 3.0.1 - unist-util-visit: 5.0.0 - relateurl@0.2.7: {} release-zalgo@1.0.0: @@ -26695,8 +26071,6 @@ snapshots: source-map@0.7.4: {} - space-separated-tokens@2.0.2: {} - spawn-command@0.0.2: {} spawn-wrap@2.0.0: @@ -26752,18 +26126,18 @@ snapshots: storybook-addon-mock@5.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@storybook/blocks': 8.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.6) - '@storybook/channels': 8.4.7(storybook@8.4.6) - '@storybook/components': 8.3.5(storybook@8.4.6) - '@storybook/core-events': 8.4.7(storybook@8.4.6) - '@storybook/manager-api': 8.3.5(storybook@8.4.6) - '@storybook/preview-api': 8.3.5(storybook@8.4.6) - '@storybook/theming': 8.3.5(storybook@8.4.6) + '@storybook/blocks': 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7) + '@storybook/channels': 8.4.7(storybook@8.4.7) + '@storybook/components': 8.4.7(storybook@8.4.7) + '@storybook/core-events': 8.4.7(storybook@8.4.7) + '@storybook/manager-api': 8.4.7(storybook@8.4.7) + '@storybook/preview-api': 8.4.7(storybook@8.4.7) + '@storybook/theming': 8.4.7(storybook@8.4.7) mock-xmlhttprequest: 8.4.0 path-to-regexp: 6.3.0 polished: 4.3.1 prop-types: 15.8.1 - storybook: 8.4.6 + storybook: 8.4.7 whatwg-fetch: 3.6.20 optionalDependencies: react: 18.3.1 @@ -26774,17 +26148,9 @@ snapshots: - supports-color - utf-8-validate - storybook@8.3.5: - dependencies: - '@storybook/core': 8.3.5 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - storybook@8.4.6: + storybook@8.4.7: dependencies: - '@storybook/core': 8.4.6 + '@storybook/core': 8.4.7 transitivePeerDependencies: - bufferutil - supports-color @@ -27107,10 +26473,6 @@ snapshots: fast-fifo: 1.3.2 streamx: 2.21.0 - telejson@7.2.0: - dependencies: - memoizerific: 1.11.3 - terser-webpack-plugin@5.3.10(webpack@5.94.0): dependencies: '@jridgewell/trace-mapping': 0.3.25 diff --git a/projects/js-packages/ai-client/changelog/renovate-storybook-monorepo b/projects/js-packages/ai-client/changelog/renovate-storybook-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/ai-client/changelog/renovate-storybook-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/ai-client/package.json b/projects/js-packages/ai-client/package.json index 1fedd1be07832..8859ee71ba7ce 100644 --- a/projects/js-packages/ai-client/package.json +++ b/projects/js-packages/ai-client/package.json @@ -24,15 +24,15 @@ }, "type": "module", "devDependencies": { - "@storybook/addon-actions": "8.3.5", - "@storybook/blocks": "8.3.5", - "@storybook/preview-api": "8.3.5", - "@storybook/react": "8.3.5", + "@storybook/addon-actions": "8.4.7", + "@storybook/blocks": "8.4.7", + "@storybook/preview-api": "8.4.7", + "@storybook/react": "8.4.7", "@types/markdown-it": "14.1.2", "@types/turndown": "5.0.5", "jest": "^29.6.2", "jest-environment-jsdom": "29.7.0", - "storybook": "8.3.5", + "storybook": "8.4.7", "typescript": "5.0.4" }, "exports": { diff --git a/projects/js-packages/charts/changelog/renovate-storybook-monorepo b/projects/js-packages/charts/changelog/renovate-storybook-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/charts/changelog/renovate-storybook-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/charts/package.json b/projects/js-packages/charts/package.json index c3132e710b585..a54c6d5460578 100644 --- a/projects/js-packages/charts/package.json +++ b/projects/js-packages/charts/package.json @@ -47,8 +47,8 @@ "@rollup/plugin-node-resolve": "15.3.0", "@rollup/plugin-terser": "0.4.3", "@rollup/plugin-typescript": "12.1.0", - "@storybook/blocks": "8.4.6", - "@storybook/react": "8.4.6", + "@storybook/blocks": "8.4.7", + "@storybook/react": "8.4.7", "@types/react": "18.3.18", "@types/react-dom": "18.3.5", "jest": "29.7.0", @@ -64,7 +64,7 @@ "rollup-plugin-postcss": "4.0.2", "sass": "1.64.1", "sass-embedded": "1.83.0", - "storybook": "8.4.6", + "storybook": "8.4.7", "typescript": "5.7.2" }, "peerDependencies": { diff --git a/projects/js-packages/components/changelog/renovate-storybook-monorepo b/projects/js-packages/components/changelog/renovate-storybook-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/components/changelog/renovate-storybook-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/components/package.json b/projects/js-packages/components/package.json index 45ab8fe77e941..0411f606f5cf0 100644 --- a/projects/js-packages/components/package.json +++ b/projects/js-packages/components/package.json @@ -41,9 +41,9 @@ "@babel/core": "7.26.0", "@babel/preset-react": "7.26.3", "@jest/globals": "29.4.3", - "@storybook/addon-actions": "8.3.5", - "@storybook/blocks": "8.3.5", - "@storybook/react": "8.3.5", + "@storybook/addon-actions": "8.4.7", + "@storybook/blocks": "8.4.7", + "@storybook/react": "8.4.7", "@testing-library/dom": "10.4.0", "@testing-library/react": "16.0.1", "@testing-library/user-event": "14.5.2", @@ -57,7 +57,7 @@ "react-dom": "18.3.1", "require-from-string": "2.0.2", "resize-observer-polyfill": "1.5.1", - "storybook": "8.3.5", + "storybook": "8.4.7", "ts-dedent": "2.2.0", "typescript": "5.0.4", "webpack": "5.94.0", diff --git a/projects/js-packages/connection/changelog/renovate-storybook-monorepo b/projects/js-packages/connection/changelog/renovate-storybook-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/connection/changelog/renovate-storybook-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/connection/package.json b/projects/js-packages/connection/package.json index 1251774be92f8..539979305d5ac 100644 --- a/projects/js-packages/connection/package.json +++ b/projects/js-packages/connection/package.json @@ -34,7 +34,7 @@ "@automattic/jetpack-base-styles": "workspace:*", "@babel/core": "7.26.0", "@babel/preset-react": "7.26.3", - "@storybook/addon-actions": "8.3.5", + "@storybook/addon-actions": "8.4.7", "@testing-library/dom": "10.4.0", "@testing-library/react": "16.0.1", "@testing-library/user-event": "14.5.2", @@ -43,7 +43,7 @@ "jest-environment-jsdom": "29.7.0", "react": "18.3.1", "react-dom": "18.3.1", - "storybook": "8.3.5" + "storybook": "8.4.7" }, "peerDependencies": { "react": "^18.0.0", diff --git a/projects/js-packages/scan/changelog/renovate-storybook-monorepo b/projects/js-packages/scan/changelog/renovate-storybook-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/scan/changelog/renovate-storybook-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/scan/package.json b/projects/js-packages/scan/package.json index 20fd109b6a204..81442a0712bff 100644 --- a/projects/js-packages/scan/package.json +++ b/projects/js-packages/scan/package.json @@ -24,16 +24,16 @@ "type": "module", "devDependencies": { "@jest/globals": "29.7.0", - "@storybook/addon-actions": "8.3.5", - "@storybook/blocks": "8.3.5", - "@storybook/react": "8.3.5", + "@storybook/addon-actions": "8.4.7", + "@storybook/blocks": "8.4.7", + "@storybook/react": "8.4.7", "@testing-library/dom": "10.4.0", "@testing-library/react": "16.0.1", "@types/jest": "29.5.12", "@types/react": "18.3.18", "jest": "^29.7.0", "jest-environment-jsdom": "29.7.0", - "storybook": "8.3.5", + "storybook": "8.4.7", "typescript": "5.0.4" }, "exports": { diff --git a/projects/js-packages/storybook/changelog/renovate-storybook-monorepo b/projects/js-packages/storybook/changelog/renovate-storybook-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/storybook/changelog/renovate-storybook-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/storybook/package.json b/projects/js-packages/storybook/package.json index 3722baa4dd6ed..7704baacb33c5 100644 --- a/projects/js-packages/storybook/package.json +++ b/projects/js-packages/storybook/package.json @@ -26,19 +26,20 @@ "@babel/preset-react": "7.26.3", "@babel/runtime": "7.26.0", "@playwright/test": "1.48.2", - "@storybook/addon-a11y": "8.3.5", - "@storybook/addon-docs": "8.3.5", - "@storybook/addon-essentials": "8.3.5", - "@storybook/addon-storysource": "8.3.5", + "@storybook/addon-a11y": "8.4.7", + "@storybook/addon-docs": "8.4.7", + "@storybook/addon-essentials": "8.4.7", + "@storybook/addon-storysource": "8.4.7", "@storybook/addon-webpack5-compiler-babel": "^3.0.3", - "@storybook/blocks": "8.3.5", - "@storybook/components": "8.3.5", - "@storybook/manager-api": "8.3.5", - "@storybook/react": "8.3.5", - "@storybook/react-webpack5": "8.3.5", - "@storybook/source-loader": "8.3.5", + "@storybook/blocks": "8.4.7", + "@storybook/components": "8.4.7", + "@storybook/manager-api": "8.4.7", + "@storybook/react": "8.4.7", + "@storybook/react-webpack5": "8.4.7", + "@storybook/source-loader": "8.4.7", "@storybook/test-runner": "0.19.1", - "@storybook/theming": "8.3.5", + "@storybook/theming": "8.4.7", + "@types/react": "18.3.18", "@wordpress/base-styles": "5.14.0", "@wordpress/block-editor": "14.9.0", "@wordpress/block-library": "9.14.0", @@ -61,7 +62,7 @@ "require-from-string": "2.0.2", "sass": "1.64.1", "sass-loader": "12.4.0", - "storybook": "8.3.5", + "storybook": "8.4.7", "storybook-addon-mock": "5.0.0", "style-loader": "2.0.0", "ts-dedent": "2.2.0", diff --git a/projects/packages/my-jetpack/changelog/renovate-storybook-monorepo b/projects/packages/my-jetpack/changelog/renovate-storybook-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/my-jetpack/changelog/renovate-storybook-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/my-jetpack/package.json b/projects/packages/my-jetpack/package.json index 2065dc9253a1b..2d505712e8ade 100644 --- a/projects/packages/my-jetpack/package.json +++ b/projects/packages/my-jetpack/package.json @@ -60,7 +60,7 @@ "@babel/core": "7.26.0", "@babel/preset-env": "7.26.0", "@jest/globals": "29.7.0", - "@storybook/react": "8.3.5", + "@storybook/react": "8.4.7", "@testing-library/dom": "10.4.0", "@testing-library/jest-dom": "6.5.0", "@testing-library/react": "16.0.1", @@ -75,7 +75,7 @@ "require-from-string": "2.0.2", "sass": "1.64.1", "sass-loader": "12.4.0", - "storybook": "8.3.5", + "storybook": "8.4.7", "typescript": "5.0.4", "webpack": "5.94.0", "webpack-cli": "4.9.1" diff --git a/projects/packages/videopress/changelog/renovate-storybook-monorepo b/projects/packages/videopress/changelog/renovate-storybook-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/videopress/changelog/renovate-storybook-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/videopress/package.json b/projects/packages/videopress/package.json index 84865df08c5e4..3c887a1fa64fd 100644 --- a/projects/packages/videopress/package.json +++ b/projects/packages/videopress/package.json @@ -31,10 +31,10 @@ "@babel/preset-react": "7.26.3", "@csstools/postcss-global-data": "2.1.1", "@jest/globals": "29.4.3", - "@storybook/addon-actions": "8.3.5", - "@storybook/blocks": "8.3.5", - "@storybook/preview-api": "8.3.5", - "@storybook/react": "8.3.5", + "@storybook/addon-actions": "8.4.7", + "@storybook/blocks": "8.4.7", + "@storybook/preview-api": "8.4.7", + "@storybook/react": "8.4.7", "@testing-library/dom": "10.4.0", "@testing-library/react": "16.0.1", "@types/jest": "29.5.12", @@ -52,7 +52,7 @@ "require-from-string": "2.0.2", "sass": "1.64.1", "sass-loader": "12.4.0", - "storybook": "8.3.5", + "storybook": "8.4.7", "typescript": "5.0.4", "webpack": "5.94.0", "webpack-cli": "4.9.1" diff --git a/projects/plugins/boost/changelog/renovate-storybook-monorepo b/projects/plugins/boost/changelog/renovate-storybook-monorepo new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/boost/changelog/renovate-storybook-monorepo @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/boost/package.json b/projects/plugins/boost/package.json index 22ccdc520e315..5b264878fb034 100644 --- a/projects/plugins/boost/package.json +++ b/projects/plugins/boost/package.json @@ -33,7 +33,7 @@ "@babel/core": "7.26.0", "@babel/preset-env": "7.26.0", "@babel/preset-react": "7.26.3", - "@storybook/react": "8.3.5", + "@storybook/react": "8.4.7", "@types/jest": "29.5.12", "@types/jquery": "3.5.32", "@wordpress/browserslist-config": "6.14.0", @@ -49,7 +49,7 @@ "react-dom": "18.3.1", "sass": "1.64.1", "sass-loader": "12.4.0", - "storybook": "8.3.5", + "storybook": "8.4.7", "tslib": "2.5.0", "typescript": "5.0.4", "webpack": "5.94.0", From 137f2a87562fcf930fa15bef41c8059e32ce2854 Mon Sep 17 00:00:00 2001 From: dkmyta Date: Fri, 3 Jan 2025 13:11:53 -0800 Subject: [PATCH 56/98] Include fixer action as label in list view action dropdown --- .../components/components/threats-data-views/index.tsx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/projects/js-packages/components/components/threats-data-views/index.tsx b/projects/js-packages/components/components/threats-data-views/index.tsx index 6534d8c88c96e..ddeb9fc935fda 100644 --- a/projects/js-packages/components/components/threats-data-views/index.tsx +++ b/projects/js-packages/components/components/threats-data-views/index.tsx @@ -1,4 +1,4 @@ -import { getThreatType, type Threat } from '@automattic/jetpack-scan'; +import { getFixerAction, getThreatType, type Threat } from '@automattic/jetpack-scan'; import { type Action, type ActionButton, @@ -447,10 +447,12 @@ export default function ThreatsDataViews( { const actions = useMemo( () => { const result: Action< Threat >[] = []; - if ( dataFields.includes( 'fixable' ) ) { + if ( dataFields.includes( 'fixable' ) && view.type === 'list' ) { result.push( { id: THREAT_ACTION_FIX, - label: __( 'Auto-fix', 'jetpack-components' ), + label: items => { + return getFixerAction( items[ 0 ] ); + }, isPrimary: true, callback: onFixThreats, isEligible( item ) { @@ -505,6 +507,7 @@ export default function ThreatsDataViews( { return result; }, [ + view.type, dataFields, onFixThreats, onIgnoreThreats, From 1c24e44cd19517b3d84f24cb1c76e954269a01ec Mon Sep 17 00:00:00 2001 From: dkmyta Date: Fri, 3 Jan 2025 13:28:37 -0800 Subject: [PATCH 57/98] Add field constants --- .../threats-data-views/constants.ts | 20 +++++++++ .../components/threats-data-views/index.tsx | 41 +++---------------- 2 files changed, 25 insertions(+), 36 deletions(-) diff --git a/projects/js-packages/components/components/threats-data-views/constants.ts b/projects/js-packages/components/components/threats-data-views/constants.ts index 08da321884d25..a2814a0e210ff 100644 --- a/projects/js-packages/components/components/threats-data-views/constants.ts +++ b/projects/js-packages/components/components/threats-data-views/constants.ts @@ -43,6 +43,26 @@ export const THREAT_FIELD_FIRST_DETECTED = 'first-detected'; export const THREAT_FIELD_FIXED_ON = 'fixed-on'; export const THREAT_FIELD_AUTO_FIX = 'auto-fix'; +export const HISTORIC_TABLE_FIELDS = [ + THREAT_FIELD_SEVERITY, + THREAT_FIELD_TYPE, + THREAT_FIELD_FIRST_DETECTED, + THREAT_FIELD_FIXED_ON, +]; + +export const ACTIVE_TABLE_FIELDS = [ + THREAT_FIELD_SEVERITY, + THREAT_FIELD_TYPE, + THREAT_FIELD_AUTO_FIX, +]; + +export const LIST_FIELDS = [ + THREAT_FIELD_SEVERITY, + THREAT_FIELD_TYPE, + THREAT_FIELD_EXTENSION, + THREAT_FIELD_SIGNATURE, +]; + export const THREAT_ACTION_FIX = 'fix'; export const THREAT_ACTION_IGNORE = 'ignore'; export const THREAT_ACTION_UNIGNORE = 'unignore'; diff --git a/projects/js-packages/components/components/threats-data-views/index.tsx b/projects/js-packages/components/components/threats-data-views/index.tsx index ddeb9fc935fda..7f909e8c2eecf 100644 --- a/projects/js-packages/components/components/threats-data-views/index.tsx +++ b/projects/js-packages/components/components/threats-data-views/index.tsx @@ -19,6 +19,9 @@ import Badge from '../badge'; import ThreatFixerButton from '../threat-fixer-button'; import ThreatSeverityBadge from '../threat-severity-badge'; import { + ACTIVE_TABLE_FIELDS, + HISTORIC_TABLE_FIELDS, + LIST_FIELDS, THREAT_ACTION_FIX, THREAT_ACTION_IGNORE, THREAT_ACTION_UNIGNORE, @@ -105,26 +108,14 @@ export default function ThreatsDataViews( { const defaultLayouts: SupportedLayouts = { table: { ...baseView, - fields: historic - ? [ - THREAT_FIELD_SEVERITY, - THREAT_FIELD_TYPE, - THREAT_FIELD_FIRST_DETECTED, - THREAT_FIELD_FIXED_ON, - ] - : [ THREAT_FIELD_SEVERITY, THREAT_FIELD_TYPE, THREAT_FIELD_AUTO_FIX ], + fields: historic ? HISTORIC_TABLE_FIELDS : ACTIVE_TABLE_FIELDS, titleField: THREAT_FIELD_TITLE, descriptionField: THREAT_FIELD_DESCRIPTION, showMedia: false, }, list: { ...baseView, - fields: [ - THREAT_FIELD_SEVERITY, - THREAT_FIELD_TYPE, - THREAT_FIELD_EXTENSION, - THREAT_FIELD_SIGNATURE, - ], + fields: LIST_FIELDS, titleField: THREAT_FIELD_TITLE, mediaField: THREAT_FIELD_ICON, showMedia: true, @@ -250,28 +241,6 @@ export default function ThreatsDataViews( { ); }, }, - { - id: THREAT_FIELD_STATUS, - label: __( 'Status', 'jetpack-components' ), - elements: THREAT_STATUSES, - getValue( { item }: { item: Threat } ) { - if ( ! item.status ) { - return 'current'; - } - return ( - THREAT_STATUSES.find( ( { value } ) => value === item.status )?.value ?? item.status - ); - }, - render( { item }: { item: Threat } ) { - if ( item.status ) { - const status = THREAT_STATUSES.find( ( { value } ) => value === item.status ); - if ( status ) { - return { status.label }; - } - } - return { __( 'Active', 'jetpack-components' ) }; - }, - }, { id: THREAT_FIELD_TYPE, label: __( 'Type', 'jetpack-components' ), From 80385936e53183919956a352f940eb07f5ec4dc8 Mon Sep 17 00:00:00 2001 From: dkmyta Date: Fri, 3 Jan 2025 14:31:29 -0800 Subject: [PATCH 58/98] Reorg --- .../components/threats-data-views/constants.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/projects/js-packages/components/components/threats-data-views/constants.ts b/projects/js-packages/components/components/threats-data-views/constants.ts index a2814a0e210ff..7f64d5ead1df3 100644 --- a/projects/js-packages/components/components/threats-data-views/constants.ts +++ b/projects/js-packages/components/components/threats-data-views/constants.ts @@ -43,17 +43,17 @@ export const THREAT_FIELD_FIRST_DETECTED = 'first-detected'; export const THREAT_FIELD_FIXED_ON = 'fixed-on'; export const THREAT_FIELD_AUTO_FIX = 'auto-fix'; -export const HISTORIC_TABLE_FIELDS = [ +export const ACTIVE_TABLE_FIELDS = [ THREAT_FIELD_SEVERITY, THREAT_FIELD_TYPE, - THREAT_FIELD_FIRST_DETECTED, - THREAT_FIELD_FIXED_ON, + THREAT_FIELD_AUTO_FIX, ]; -export const ACTIVE_TABLE_FIELDS = [ +export const HISTORIC_TABLE_FIELDS = [ THREAT_FIELD_SEVERITY, THREAT_FIELD_TYPE, - THREAT_FIELD_AUTO_FIX, + THREAT_FIELD_FIRST_DETECTED, + THREAT_FIELD_FIXED_ON, ]; export const LIST_FIELDS = [ From ebd9c30370118fc0a33a550f4e2552d729079a18 Mon Sep 17 00:00:00 2001 From: Rafael Agostini Date: Mon, 6 Jan 2025 07:47:47 -0500 Subject: [PATCH 59/98] Odyssey Stats: Add API support for Location stats (#40852) * Add API support for Location views stats * changelog --- .../add-odyssey-stats-location-views-api | 4 +++ .../stats-admin/src/class-rest-controller.php | 25 +++++++++++++++++++ .../add-odyssey-stats-location-views-api | 4 +++ .../packages/stats/src/class-wpcom-stats.php | 13 ++++++++++ 4 files changed, 46 insertions(+) create mode 100644 projects/packages/stats-admin/changelog/add-odyssey-stats-location-views-api create mode 100644 projects/packages/stats/changelog/add-odyssey-stats-location-views-api diff --git a/projects/packages/stats-admin/changelog/add-odyssey-stats-location-views-api b/projects/packages/stats-admin/changelog/add-odyssey-stats-location-views-api new file mode 100644 index 0000000000000..2b8768898e0c1 --- /dev/null +++ b/projects/packages/stats-admin/changelog/add-odyssey-stats-location-views-api @@ -0,0 +1,4 @@ +Significance: minor +Type: added + +Stats: added API support for location stats diff --git a/projects/packages/stats-admin/src/class-rest-controller.php b/projects/packages/stats-admin/src/class-rest-controller.php index 230626c4e1817..ac49cd849063a 100644 --- a/projects/packages/stats-admin/src/class-rest-controller.php +++ b/projects/packages/stats-admin/src/class-rest-controller.php @@ -425,6 +425,17 @@ public function register_rest_routes() { 'permission_callback' => array( $this, 'can_user_view_general_stats_callback' ), ) ); + + // Get Location stats. + register_rest_route( + static::$namespace, + sprintf( '/sites/%d/stats/location-views/(?Pcountry|region|city)', Jetpack_Options::get_option( 'id' ) ), + array( + 'methods' => WP_REST_Server::READABLE, + 'callback' => array( $this, 'get_location_stats' ), + 'permission_callback' => array( $this, 'can_user_view_general_stats_callback' ), + ) + ); } /** @@ -974,6 +985,20 @@ public function get_devices_stats_time_series( $req ) { ); } + /** + * Get Location stats. + * + * @param WP_REST_Request $req The request object. + * @return array + */ + public function get_location_stats( $req ) { + $params = $req->get_params(); + $geo_mode = $params['geo_mode']; + unset( $params['geo_mode'] ); + + return $this->wpcom_stats->get_views_by_location( $geo_mode, $params ); + } + /** * Dismiss or delay stats notices. * diff --git a/projects/packages/stats/changelog/add-odyssey-stats-location-views-api b/projects/packages/stats/changelog/add-odyssey-stats-location-views-api new file mode 100644 index 0000000000000..2b8768898e0c1 --- /dev/null +++ b/projects/packages/stats/changelog/add-odyssey-stats-location-views-api @@ -0,0 +1,4 @@ +Significance: minor +Type: added + +Stats: added API support for location stats diff --git a/projects/packages/stats/src/class-wpcom-stats.php b/projects/packages/stats/src/class-wpcom-stats.php index 3b211601915cf..f7c6ae9478add 100644 --- a/projects/packages/stats/src/class-wpcom-stats.php +++ b/projects/packages/stats/src/class-wpcom-stats.php @@ -232,6 +232,19 @@ public function get_views_by_country( $args = array() ) { return $this->fetch_stats( $args ); } + /** + * Get site's views by location. + * + * @param string $geo_mode The type of location to fetch views for (country, region, city). + * @param array $args Optional query parameters. + * @return array|WP_Error + */ + public function get_views_by_location( $geo_mode, $args = array() ) { + $this->resource = sprintf( 'location-views/%s', $geo_mode ); + + return $this->fetch_stats( $args ); + } + /** * Get site's followers. * From 64d3036f2a69a1019284027463eccf68e80ffb31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20P=C3=A9rez=20Pellicer?= <5908855+puntope@users.noreply.github.com> Date: Mon, 6 Jan 2025 14:32:47 +0100 Subject: [PATCH 60/98] Fix fatal when trying to call toCodeString() in Node\Expr\Variable class (#40855) --- .../analyzer/changelog/fix-analyzer-expr-variable-exception | 4 ++++ projects/packages/analyzer/src/class-utils.php | 5 +++++ 2 files changed, 9 insertions(+) create mode 100644 projects/packages/analyzer/changelog/fix-analyzer-expr-variable-exception diff --git a/projects/packages/analyzer/changelog/fix-analyzer-expr-variable-exception b/projects/packages/analyzer/changelog/fix-analyzer-expr-variable-exception new file mode 100644 index 0000000000000..be1af269bba82 --- /dev/null +++ b/projects/packages/analyzer/changelog/fix-analyzer-expr-variable-exception @@ -0,0 +1,4 @@ +Significance: patch +Type: fixed + +Fixes a bug in Analyzer tring to call toCodeString() in Variable class. diff --git a/projects/packages/analyzer/src/class-utils.php b/projects/packages/analyzer/src/class-utils.php index 7bb4123fecbaa..6ee5589359ada 100644 --- a/projects/packages/analyzer/src/class-utils.php +++ b/projects/packages/analyzer/src/class-utils.php @@ -152,6 +152,11 @@ public static function has_function_call( $node, $name ) { if ( ! $stmt instanceof Node\Stmt\Expression || ! $stmt->expr instanceof Node\Expr\FuncCall ) { continue; } + + if ( $stmt->expr->name instanceof Node\Expr\Variable ) { + continue; + } + if ( false !== strpos( $stmt->expr->name->toCodeString(), $name ) ) { return true; } From d4d3bdeaaadd0db666a08f42ce4b8ee00d1c277a Mon Sep 17 00:00:00 2001 From: valterlorran Date: Mon, 6 Jan 2025 12:05:41 -0300 Subject: [PATCH 61/98] Fix/bug color palettes (#40846) * Fix the color palettes * Add changelog --------- Co-authored-by: Valter Lorran --- projects/plugins/wpcomsh/changelog/fix-color-palette | 4 ++++ projects/plugins/wpcomsh/custom-colors/colors.php | 2 +- projects/plugins/wpcomsh/custom-colors/js/colors-control.js | 6 +++++- 3 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 projects/plugins/wpcomsh/changelog/fix-color-palette diff --git a/projects/plugins/wpcomsh/changelog/fix-color-palette b/projects/plugins/wpcomsh/changelog/fix-color-palette new file mode 100644 index 0000000000000..ac1e4b1d58d0c --- /dev/null +++ b/projects/plugins/wpcomsh/changelog/fix-color-palette @@ -0,0 +1,4 @@ +Significance: patch +Type: fixed + +Fixe the color palette now showing up. diff --git a/projects/plugins/wpcomsh/custom-colors/colors.php b/projects/plugins/wpcomsh/custom-colors/colors.php index 3362f2ff7bb63..93fafa904ca1c 100644 --- a/projects/plugins/wpcomsh/custom-colors/colors.php +++ b/projects/plugins/wpcomsh/custom-colors/colors.php @@ -389,7 +389,7 @@ public static function register_scripts_and_styles() { // register scripts wp_register_script( 'Color.js', plugins_url( 'js/color.js', __FILE__ ), array(), '20121210', true ); wp_register_script( 'colors-instapreview', plugins_url( 'js/colors-theme-preview.js', __FILE__ ), array( 'customize-preview', 'jquery', 'Color.js' ), '20121210', true ); - wp_register_script( 'colors-tool', plugins_url( 'js/colors-control.js', __FILE__ ), array( 'customize-controls', 'iris' ), '20160726', true ); + wp_register_script( 'colors-tool', plugins_url( 'js/colors-control.js', __FILE__ ), array( 'customize-controls', 'iris' ), '20250102', true ); wp_register_script( 'spin', plugins_url( 'js/spin.js', __FILE__ ), array(), '1.3', true ); wp_register_script( 'jquery.spin', plugins_url( 'js/jquery.spin.js', __FILE__ ), array( 'spin' ), '20210111', true ); } diff --git a/projects/plugins/wpcomsh/custom-colors/js/colors-control.js b/projects/plugins/wpcomsh/custom-colors/js/colors-control.js index 2cbb1fa480250..eb3c9db6c72ab 100644 --- a/projects/plugins/wpcomsh/custom-colors/js/colors-control.js +++ b/projects/plugins/wpcomsh/custom-colors/js/colors-control.js @@ -308,7 +308,8 @@ const morePaletteClickHandler = function () { // Load palettes into a client-side cache 40 at a time // and refresh that cache one page before it's necessary. - if ( ct.paletteIndex <= ct.palettes.length - ct.palettesAtATime ) { + const lastIndex = Math.max( ct.palettes.length, ct.palettes.length - ct.palettesAtATime ); + if ( lastIndex > ct.paletteIndex ) { ct.showPalettes( ct.paletteIndex ); } @@ -766,6 +767,9 @@ // Construct the color palettes for ( let i = paletteIndex, _len = paletteIndex + 6; i < _len; i++ ) { + if ( undefined === ct.palettes[ i ] ) { + continue; + } const new_palette = $( '
    ' ).addClass( 'color-grid colour-lovers' ); for ( const color_key in ct.palettes[ i ].colors ) { From 316585de80cc716531b67d54d32ecd6a60292dd5 Mon Sep 17 00:00:00 2001 From: Peter Petrov Date: Mon, 6 Jan 2025 17:20:37 +0200 Subject: [PATCH 62/98] Backport boost 3.7.0 Changes (#40856) --- projects/js-packages/analytics/CHANGELOG.md | 5 +++++ projects/js-packages/analytics/package.json | 2 +- projects/js-packages/components/CHANGELOG.md | 5 +++++ .../changelog/renovate-definitelytyped | 4 ---- .../changelog/renovate-qrcode.react-3.x | 4 ---- .../changelog/renovate-storybook-monorepo | 4 ---- projects/js-packages/components/package.json | 2 +- projects/js-packages/connection/CHANGELOG.md | 5 +++++ .../connection/changelog/renovate-babel-monorepo | 4 ---- .../connection/changelog/renovate-debug-4.x | 4 ---- .../changelog/renovate-definitelytyped | 4 ---- .../changelog/renovate-storybook-monorepo | 4 ---- projects/js-packages/connection/package.json | 2 +- .../js-packages/critical-css-gen/CHANGELOG.md | 8 ++++++++ .../changelog/renovate-definitelytyped | 4 ---- .../changelog/renovate-definitelytyped#2 | 4 ---- .../changelog/renovate-express-4.x | 4 ---- .../changelog/renovate-playwright-monorepo | 4 ---- .../update-cleanup-project-level-eslint-prettier | 4 ---- .../critical-css-gen/changelog/update-eslint-9 | 5 ----- .../changelog/update-various-eslint-plugins | 5 ----- .../js-packages/critical-css-gen/package.json | 2 +- projects/js-packages/idc/CHANGELOG.md | 4 ++++ .../idc/changelog/renovate-babel-monorepo | 4 ---- projects/js-packages/idc/package.json | 2 +- projects/js-packages/image-guide/CHANGELOG.md | 5 +++++ .../changelog/renovate-babel-monorepo | 4 ---- .../update-cleanup-deprecated-eslint-rules | 5 ----- .../update-cleanup-project-level-eslint-prettier | 5 ----- .../image-guide/changelog/update-eslint-9 | 5 ----- .../changelog/update-various-eslint-plugins | 5 ----- projects/js-packages/image-guide/package.json | 2 +- projects/js-packages/licensing/CHANGELOG.md | 5 +++++ .../licensing/changelog/renovate-babel-monorepo | 4 ---- .../licensing/changelog/renovate-prop-types-15.x | 4 ---- projects/js-packages/licensing/package.json | 2 +- .../react-data-sync-client/CHANGELOG.md | 5 +++++ .../update-cleanup-project-level-eslint-prettier | 5 ----- .../changelog/update-eslint-9 | 5 ----- .../update-js-packages-fix-eslint-9-lints | 5 ----- .../changelog/update-various-eslint-plugins | 5 ----- .../react-data-sync-client/package.json | 2 +- projects/js-packages/scan/CHANGELOG.md | 5 +++++ .../scan/changelog/renovate-debug-4.x | 4 ---- .../scan/changelog/renovate-definitelytyped | 4 ---- .../scan/changelog/renovate-storybook-monorepo | 4 ---- projects/js-packages/scan/package.json | 2 +- projects/js-packages/social-logos/CHANGELOG.md | 11 +++++++++++ .../changelog/deprecate-default-import | 9 --------- .../changelog/fix-types-export-for-social-logos | 4 ---- .../changelog/renovate-definitelytyped | 4 ---- .../social-logos/changelog/renovate-glob-11.x | 4 ---- .../changelog/renovate-svgicons2svgfont-15.x | 4 ---- projects/js-packages/social-logos/package.json | 2 +- projects/js-packages/webpack-config/CHANGELOG.md | 4 ++++ .../changelog/renovate-babel-monorepo | 4 ---- .../changelog/renovate-browserslist-4.x | 4 ---- projects/js-packages/webpack-config/package.json | 2 +- projects/packages/connection/CHANGELOG.md | 8 ++++++++ .../connection/changelog/add-connection-coverage | 4 ---- .../connection/changelog/renovate-glob-11.x | 4 ---- .../connection/src/class-package-version.php | 2 +- projects/packages/my-jetpack/CHANGELOG.md | 13 +++++++++++++ .../changelog/add-feature-recommendations-cards | 4 ---- .../changelog/add-protect-fix-threats-status | 4 ---- .../changelog/add-protect-redbubble-and-notice | 4 ---- .../changelog/fix-tests-31_dec_coupon_price_bug | 4 ---- .../my-jetpack/changelog/renovate-debug-4.x | 4 ---- .../changelog/renovate-definitelytyped | 4 ---- .../changelog/renovate-react-router-monorepo | 4 ---- .../changelog/renovate-storybook-monorepo | 4 ---- projects/packages/my-jetpack/composer.json | 2 +- projects/packages/my-jetpack/package.json | 2 +- .../my-jetpack/src/class-initializer.php | 2 +- .../packages/plugin-deactivation/CHANGELOG.md | 5 +++++ .../changelog/update-packages-fix-eslint-9-lints | 5 ----- .../packages/plugin-deactivation/package.json | 2 +- .../src/class-deactivation-handler.php | 2 +- .../prerelease => backup/changelog/prerelease#6} | 0 projects/plugins/backup/composer.lock | 4 ++-- projects/plugins/boost/CHANGELOG.md | 16 ++++++++++++++++ .../app/data-sync/Cornerstone_Pages_Entry.php | 2 +- .../plugins/boost/app/lib/class-site-urls.php | 2 +- .../boost/changelog/add-edge-cache-header | 4 ---- .../boost/changelog/fix-critical-css-status | 4 ---- .../fix-isa-showing-error-if-no-report-present | 4 ---- .../changelog/fix-playwright_install_tweaks | 4 ---- .../changelog/fix-speed-score-changed-tracks | 5 ----- .../boost/changelog/renovate-babel-monorepo | 4 ---- .../plugins/boost/changelog/renovate-config-3.x | 4 ---- .../boost/changelog/renovate-definitelytyped | 4 ---- .../changelog/renovate-lock-file-maintenance | 4 ---- .../boost/changelog/renovate-playwright-monorepo | 4 ---- .../changelog/renovate-react-router-monorepo | 4 ---- .../changelog/renovate-react-spring-core-9.x | 4 ---- .../boost/changelog/renovate-storybook-monorepo | 4 ---- .../boost/changelog/renovate-wordpress-monorepo | 4 ---- .../changelog/renovate-wordpress-monorepo#2 | 4 ---- .../update-boost-add-notices-to-settings-page | 4 ---- .../changelog/update-boost-add-tracks-events | 4 ---- .../update-boost-custom-site-url-support | 4 ---- .../changelog/update-boost-fix-eslint-9-lints | 5 ----- .../changelog/update-boost-minify-modules-fixes | 4 ---- .../update-cleanup-deprecated-eslint-rules | 5 ----- .../update-cleanup-project-level-eslint-prettier | 5 ----- .../boost/changelog/update-concat-exclude-ui | 4 ---- projects/plugins/boost/changelog/update-eslint-9 | 5 ----- .../changelog/update-fetch-available-licenses | 4 ---- .../update-js-packages-fix-eslint-9-lints | 5 ----- .../changelog/update-various-eslint-plugins | 5 ----- projects/plugins/boost/composer.json | 4 ++-- projects/plugins/boost/composer.lock | 6 +++--- projects/plugins/boost/jetpack-boost.php | 4 ++-- projects/plugins/boost/package.json | 2 +- projects/plugins/boost/readme.txt | 16 +++++++++++----- projects/plugins/jetpack/changelog/prerelease | 5 +++++ projects/plugins/jetpack/composer.lock | 4 ++-- .../changelog/prerelease#11} | 0 projects/plugins/protect/composer.lock | 4 ++-- .../changelog/prerelease#18} | 0 projects/plugins/search/composer.lock | 4 ++-- .../changelog/prerelease#11} | 0 projects/plugins/social/composer.lock | 4 ++-- .../starter-plugin/changelog/prerelease#3} | 3 ++- projects/plugins/starter-plugin/composer.lock | 4 ++-- .../videopress/changelog/prerelease#18} | 3 ++- projects/plugins/videopress/composer.lock | 4 ++-- 127 files changed, 165 insertions(+), 367 deletions(-) delete mode 100644 projects/js-packages/components/changelog/renovate-definitelytyped delete mode 100644 projects/js-packages/components/changelog/renovate-qrcode.react-3.x delete mode 100644 projects/js-packages/components/changelog/renovate-storybook-monorepo delete mode 100644 projects/js-packages/connection/changelog/renovate-babel-monorepo delete mode 100644 projects/js-packages/connection/changelog/renovate-debug-4.x delete mode 100644 projects/js-packages/connection/changelog/renovate-definitelytyped delete mode 100644 projects/js-packages/connection/changelog/renovate-storybook-monorepo delete mode 100644 projects/js-packages/critical-css-gen/changelog/renovate-definitelytyped delete mode 100644 projects/js-packages/critical-css-gen/changelog/renovate-definitelytyped#2 delete mode 100644 projects/js-packages/critical-css-gen/changelog/renovate-express-4.x delete mode 100644 projects/js-packages/critical-css-gen/changelog/renovate-playwright-monorepo delete mode 100644 projects/js-packages/critical-css-gen/changelog/update-cleanup-project-level-eslint-prettier delete mode 100644 projects/js-packages/critical-css-gen/changelog/update-eslint-9 delete mode 100644 projects/js-packages/critical-css-gen/changelog/update-various-eslint-plugins delete mode 100644 projects/js-packages/idc/changelog/renovate-babel-monorepo delete mode 100644 projects/js-packages/image-guide/changelog/renovate-babel-monorepo delete mode 100644 projects/js-packages/image-guide/changelog/update-cleanup-deprecated-eslint-rules delete mode 100644 projects/js-packages/image-guide/changelog/update-cleanup-project-level-eslint-prettier delete mode 100644 projects/js-packages/image-guide/changelog/update-eslint-9 delete mode 100644 projects/js-packages/image-guide/changelog/update-various-eslint-plugins delete mode 100644 projects/js-packages/licensing/changelog/renovate-babel-monorepo delete mode 100644 projects/js-packages/licensing/changelog/renovate-prop-types-15.x delete mode 100644 projects/js-packages/react-data-sync-client/changelog/update-cleanup-project-level-eslint-prettier delete mode 100644 projects/js-packages/react-data-sync-client/changelog/update-eslint-9 delete mode 100644 projects/js-packages/react-data-sync-client/changelog/update-js-packages-fix-eslint-9-lints delete mode 100644 projects/js-packages/react-data-sync-client/changelog/update-various-eslint-plugins delete mode 100644 projects/js-packages/scan/changelog/renovate-debug-4.x delete mode 100644 projects/js-packages/scan/changelog/renovate-definitelytyped delete mode 100644 projects/js-packages/scan/changelog/renovate-storybook-monorepo delete mode 100644 projects/js-packages/social-logos/changelog/deprecate-default-import delete mode 100644 projects/js-packages/social-logos/changelog/fix-types-export-for-social-logos delete mode 100644 projects/js-packages/social-logos/changelog/renovate-definitelytyped delete mode 100644 projects/js-packages/social-logos/changelog/renovate-glob-11.x delete mode 100644 projects/js-packages/social-logos/changelog/renovate-svgicons2svgfont-15.x delete mode 100644 projects/js-packages/webpack-config/changelog/renovate-babel-monorepo delete mode 100644 projects/js-packages/webpack-config/changelog/renovate-browserslist-4.x delete mode 100644 projects/packages/connection/changelog/add-connection-coverage delete mode 100644 projects/packages/connection/changelog/renovate-glob-11.x delete mode 100644 projects/packages/my-jetpack/changelog/add-feature-recommendations-cards delete mode 100644 projects/packages/my-jetpack/changelog/add-protect-fix-threats-status delete mode 100644 projects/packages/my-jetpack/changelog/add-protect-redbubble-and-notice delete mode 100644 projects/packages/my-jetpack/changelog/fix-tests-31_dec_coupon_price_bug delete mode 100644 projects/packages/my-jetpack/changelog/renovate-debug-4.x delete mode 100644 projects/packages/my-jetpack/changelog/renovate-definitelytyped delete mode 100644 projects/packages/my-jetpack/changelog/renovate-react-router-monorepo delete mode 100644 projects/packages/my-jetpack/changelog/renovate-storybook-monorepo delete mode 100644 projects/packages/plugin-deactivation/changelog/update-packages-fix-eslint-9-lints rename projects/plugins/{boost/changelog/prerelease => backup/changelog/prerelease#6} (100%) delete mode 100644 projects/plugins/boost/changelog/add-edge-cache-header delete mode 100644 projects/plugins/boost/changelog/fix-critical-css-status delete mode 100644 projects/plugins/boost/changelog/fix-isa-showing-error-if-no-report-present delete mode 100644 projects/plugins/boost/changelog/fix-playwright_install_tweaks delete mode 100644 projects/plugins/boost/changelog/fix-speed-score-changed-tracks delete mode 100644 projects/plugins/boost/changelog/renovate-babel-monorepo delete mode 100644 projects/plugins/boost/changelog/renovate-config-3.x delete mode 100644 projects/plugins/boost/changelog/renovate-definitelytyped delete mode 100644 projects/plugins/boost/changelog/renovate-lock-file-maintenance delete mode 100644 projects/plugins/boost/changelog/renovate-playwright-monorepo delete mode 100644 projects/plugins/boost/changelog/renovate-react-router-monorepo delete mode 100644 projects/plugins/boost/changelog/renovate-react-spring-core-9.x delete mode 100644 projects/plugins/boost/changelog/renovate-storybook-monorepo delete mode 100644 projects/plugins/boost/changelog/renovate-wordpress-monorepo delete mode 100644 projects/plugins/boost/changelog/renovate-wordpress-monorepo#2 delete mode 100644 projects/plugins/boost/changelog/update-boost-add-notices-to-settings-page delete mode 100644 projects/plugins/boost/changelog/update-boost-add-tracks-events delete mode 100644 projects/plugins/boost/changelog/update-boost-custom-site-url-support delete mode 100644 projects/plugins/boost/changelog/update-boost-fix-eslint-9-lints delete mode 100644 projects/plugins/boost/changelog/update-boost-minify-modules-fixes delete mode 100644 projects/plugins/boost/changelog/update-cleanup-deprecated-eslint-rules delete mode 100644 projects/plugins/boost/changelog/update-cleanup-project-level-eslint-prettier delete mode 100644 projects/plugins/boost/changelog/update-concat-exclude-ui delete mode 100644 projects/plugins/boost/changelog/update-eslint-9 delete mode 100644 projects/plugins/boost/changelog/update-fetch-available-licenses delete mode 100644 projects/plugins/boost/changelog/update-js-packages-fix-eslint-9-lints delete mode 100644 projects/plugins/boost/changelog/update-various-eslint-plugins create mode 100644 projects/plugins/jetpack/changelog/prerelease rename projects/plugins/{boost/changelog/prerelease#2 => protect/changelog/prerelease#11} (100%) rename projects/plugins/{boost/changelog/prerelease#3 => search/changelog/prerelease#18} (100%) rename projects/plugins/{boost/changelog/prerelease#4 => social/changelog/prerelease#11} (100%) rename projects/{js-packages/analytics/changelog/renovate-debug-4.x => plugins/starter-plugin/changelog/prerelease#3} (51%) rename projects/{js-packages/components/changelog/renovate-babel-monorepo => plugins/videopress/changelog/prerelease#18} (51%) diff --git a/projects/js-packages/analytics/CHANGELOG.md b/projects/js-packages/analytics/CHANGELOG.md index eeccf2b3df687..7e0e9e0399e55 100644 --- a/projects/js-packages/analytics/CHANGELOG.md +++ b/projects/js-packages/analytics/CHANGELOG.md @@ -2,6 +2,10 @@ ### This is a list detailing changes for the Jetpack RNA Analytics package releases. +## [0.1.34] - 2025-01-06 +### Changed +- Updated package dependencies. [#40810] + ## [0.1.33] - 2024-11-14 ### Changed - Update dependencies. @@ -132,6 +136,7 @@ ### Added - Initial release of jetpack-api package. +[0.1.34]: https://github.com/Automattic/jetpack-analytics/compare/v0.1.33...v0.1.34 [0.1.33]: https://github.com/Automattic/jetpack-analytics/compare/v0.1.32...v0.1.33 [0.1.32]: https://github.com/Automattic/jetpack-analytics/compare/v0.1.31...v0.1.32 [0.1.31]: https://github.com/Automattic/jetpack-analytics/compare/v0.1.30...v0.1.31 diff --git a/projects/js-packages/analytics/package.json b/projects/js-packages/analytics/package.json index 0e9535087bacf..211139feacf52 100644 --- a/projects/js-packages/analytics/package.json +++ b/projects/js-packages/analytics/package.json @@ -1,6 +1,6 @@ { "name": "@automattic/jetpack-analytics", - "version": "0.1.33", + "version": "0.1.34", "description": "Jetpack Analytics Package", "homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/js-packages/analytics/#readme", "bugs": { diff --git a/projects/js-packages/components/CHANGELOG.md b/projects/js-packages/components/CHANGELOG.md index 664badf23dfb4..a7c750f965bfa 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.65.2] - 2025-01-06 +### Changed +- Updated package dependencies. [#40797] [#40798] [#40835] [#40841] + ## [0.65.1] - 2024-12-23 ### Changed - Internal updates. @@ -1255,6 +1259,7 @@ ### Changed - Update node version requirement to 14.16.1 +[0.65.2]: https://github.com/Automattic/jetpack-components/compare/0.65.1...0.65.2 [0.65.1]: https://github.com/Automattic/jetpack-components/compare/0.65.0...0.65.1 [0.65.0]: https://github.com/Automattic/jetpack-components/compare/0.64.1...0.65.0 [0.64.1]: https://github.com/Automattic/jetpack-components/compare/0.64.0...0.64.1 diff --git a/projects/js-packages/components/changelog/renovate-definitelytyped b/projects/js-packages/components/changelog/renovate-definitelytyped deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/components/changelog/renovate-definitelytyped +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/components/changelog/renovate-qrcode.react-3.x b/projects/js-packages/components/changelog/renovate-qrcode.react-3.x deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/components/changelog/renovate-qrcode.react-3.x +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/components/changelog/renovate-storybook-monorepo b/projects/js-packages/components/changelog/renovate-storybook-monorepo deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/components/changelog/renovate-storybook-monorepo +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/components/package.json b/projects/js-packages/components/package.json index 0411f606f5cf0..ae92d453c7b9f 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.65.1", + "version": "0.65.2", "description": "Jetpack Components Package", "author": "Automattic", "license": "GPL-2.0-or-later", diff --git a/projects/js-packages/connection/CHANGELOG.md b/projects/js-packages/connection/CHANGELOG.md index f17999bcd355d..39582108afe6c 100644 --- a/projects/js-packages/connection/CHANGELOG.md +++ b/projects/js-packages/connection/CHANGELOG.md @@ -2,6 +2,10 @@ ### This is a list detailing changes for the Jetpack RNA Connection Component releases. +## [0.36.3] - 2025-01-06 +### Changed +- Updated package dependencies. [#40797] [#40798] [#40810] [#40841] + ## [0.36.2] - 2024-12-16 ### Changed - Updated package dependencies. [#40564] @@ -914,6 +918,7 @@ - `Main` and `ConnectUser` components added. - `JetpackRestApiClient` API client added. +[0.36.3]: https://github.com/Automattic/jetpack-connection-js/compare/v0.36.2...v0.36.3 [0.36.2]: https://github.com/Automattic/jetpack-connection-js/compare/v0.36.1...v0.36.2 [0.36.1]: https://github.com/Automattic/jetpack-connection-js/compare/v0.36.0...v0.36.1 [0.36.0]: https://github.com/Automattic/jetpack-connection-js/compare/v0.35.20...v0.36.0 diff --git a/projects/js-packages/connection/changelog/renovate-babel-monorepo b/projects/js-packages/connection/changelog/renovate-babel-monorepo deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/connection/changelog/renovate-babel-monorepo +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/connection/changelog/renovate-debug-4.x b/projects/js-packages/connection/changelog/renovate-debug-4.x deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/connection/changelog/renovate-debug-4.x +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/connection/changelog/renovate-definitelytyped b/projects/js-packages/connection/changelog/renovate-definitelytyped deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/connection/changelog/renovate-definitelytyped +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/connection/changelog/renovate-storybook-monorepo b/projects/js-packages/connection/changelog/renovate-storybook-monorepo deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/connection/changelog/renovate-storybook-monorepo +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/connection/package.json b/projects/js-packages/connection/package.json index 539979305d5ac..c67af609bee0b 100644 --- a/projects/js-packages/connection/package.json +++ b/projects/js-packages/connection/package.json @@ -1,6 +1,6 @@ { "name": "@automattic/jetpack-connection", - "version": "0.36.2", + "version": "0.36.3", "description": "Jetpack Connection Component", "homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/js-packages/connection/#readme", "bugs": { diff --git a/projects/js-packages/critical-css-gen/CHANGELOG.md b/projects/js-packages/critical-css-gen/CHANGELOG.md index 9cc9ce3cf2652..719c6f505de8b 100644 --- a/projects/js-packages/critical-css-gen/CHANGELOG.md +++ b/projects/js-packages/critical-css-gen/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). +## [1.0.4] - 2025-01-06 +### Changed +- Updated package dependencies. [#40372] [#40498] [#40693] [#40798] + +### Removed +- Remove unused prettier dep. [#40434] + ## [1.0.3] - 2024-11-28 ### Changed - Updated package dependencies. [#40060] @@ -37,6 +44,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Initial version. [#38429] +[1.0.4]: https://github.com/Automattic/jetpack-critical-css-gen/compare/v1.0.3...v1.0.4 [1.0.3]: https://github.com/Automattic/jetpack-critical-css-gen/compare/v1.0.2...v1.0.3 [1.0.2]: https://github.com/Automattic/jetpack-critical-css-gen/compare/v1.0.1...v1.0.2 [1.0.1]: https://github.com/Automattic/jetpack-critical-css-gen/compare/v1.0.0...v1.0.1 diff --git a/projects/js-packages/critical-css-gen/changelog/renovate-definitelytyped b/projects/js-packages/critical-css-gen/changelog/renovate-definitelytyped deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/critical-css-gen/changelog/renovate-definitelytyped +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/critical-css-gen/changelog/renovate-definitelytyped#2 b/projects/js-packages/critical-css-gen/changelog/renovate-definitelytyped#2 deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/critical-css-gen/changelog/renovate-definitelytyped#2 +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/critical-css-gen/changelog/renovate-express-4.x b/projects/js-packages/critical-css-gen/changelog/renovate-express-4.x deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/critical-css-gen/changelog/renovate-express-4.x +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/critical-css-gen/changelog/renovate-playwright-monorepo b/projects/js-packages/critical-css-gen/changelog/renovate-playwright-monorepo deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/critical-css-gen/changelog/renovate-playwright-monorepo +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/critical-css-gen/changelog/update-cleanup-project-level-eslint-prettier b/projects/js-packages/critical-css-gen/changelog/update-cleanup-project-level-eslint-prettier deleted file mode 100644 index 3779e08b5101e..0000000000000 --- a/projects/js-packages/critical-css-gen/changelog/update-cleanup-project-level-eslint-prettier +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: removed - -Remove unused prettier dep. diff --git a/projects/js-packages/critical-css-gen/changelog/update-eslint-9 b/projects/js-packages/critical-css-gen/changelog/update-eslint-9 deleted file mode 100644 index 1cb10572ab69e..0000000000000 --- a/projects/js-packages/critical-css-gen/changelog/update-eslint-9 +++ /dev/null @@ -1,5 +0,0 @@ -Significance: patch -Type: changed -Comment: Update eslint config for eslint 9. - - diff --git a/projects/js-packages/critical-css-gen/changelog/update-various-eslint-plugins b/projects/js-packages/critical-css-gen/changelog/update-various-eslint-plugins deleted file mode 100644 index b98fdbffe73bd..0000000000000 --- a/projects/js-packages/critical-css-gen/changelog/update-various-eslint-plugins +++ /dev/null @@ -1,5 +0,0 @@ -Significance: patch -Type: fixed -Comment: Update code to fix new eslint rules. - - diff --git a/projects/js-packages/critical-css-gen/package.json b/projects/js-packages/critical-css-gen/package.json index 27d706cdb4340..39888e91ba759 100644 --- a/projects/js-packages/critical-css-gen/package.json +++ b/projects/js-packages/critical-css-gen/package.json @@ -1,7 +1,7 @@ { "type": "module", "name": "@automattic/jetpack-critical-css-gen", - "version": "1.0.3", + "version": "1.0.4", "description": "A flexible Critical CSS Generator that supports multiple URLs and viewports, with both server-side and client-side generation capabilities.", "homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/js-packages/critical-css-gen/#readme", "bugs": { diff --git a/projects/js-packages/idc/CHANGELOG.md b/projects/js-packages/idc/CHANGELOG.md index 5a3a0f7dc9f77..6ffbb71110178 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.12.2 - 2025-01-06 +### Changed +- Updated package dependencies. [#40797] + ## 0.12.1 - 2024-12-16 ### Changed - Updated package dependencies. [#40564] diff --git a/projects/js-packages/idc/changelog/renovate-babel-monorepo b/projects/js-packages/idc/changelog/renovate-babel-monorepo deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/idc/changelog/renovate-babel-monorepo +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/idc/package.json b/projects/js-packages/idc/package.json index 40f52e90b90e1..331e99ec733e1 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.12.1", + "version": "0.12.2", "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 0ef74365b4b29..190c31756113a 100644 --- a/projects/js-packages/image-guide/CHANGELOG.md +++ b/projects/js-packages/image-guide/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.5.15] - 2025-01-06 +### Changed +- Updated package dependencies. [#40797] + ## [0.5.14] - 2024-11-28 ### Changed - Updated package dependencies. [#40060] @@ -136,6 +140,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.15]: https://github.com/Automattic/jetpack-image-guide/compare/v0.5.14...v0.5.15 [0.5.14]: https://github.com/Automattic/jetpack-image-guide/compare/v0.5.13...v0.5.14 [0.5.13]: https://github.com/Automattic/jetpack-image-guide/compare/v0.5.12...v0.5.13 [0.5.12]: https://github.com/Automattic/jetpack-image-guide/compare/v0.5.11...v0.5.12 diff --git a/projects/js-packages/image-guide/changelog/renovate-babel-monorepo b/projects/js-packages/image-guide/changelog/renovate-babel-monorepo deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/image-guide/changelog/renovate-babel-monorepo +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/image-guide/changelog/update-cleanup-deprecated-eslint-rules b/projects/js-packages/image-guide/changelog/update-cleanup-deprecated-eslint-rules deleted file mode 100644 index 94aaa5b70a786..0000000000000 --- a/projects/js-packages/image-guide/changelog/update-cleanup-deprecated-eslint-rules +++ /dev/null @@ -1,5 +0,0 @@ -Significance: patch -Type: changed -Comment: Remove unnecessary overrides from eslintrc. - - diff --git a/projects/js-packages/image-guide/changelog/update-cleanup-project-level-eslint-prettier b/projects/js-packages/image-guide/changelog/update-cleanup-project-level-eslint-prettier deleted file mode 100644 index 720019229cd39..0000000000000 --- a/projects/js-packages/image-guide/changelog/update-cleanup-project-level-eslint-prettier +++ /dev/null @@ -1,5 +0,0 @@ -Significance: patch -Type: changed -Comment: Enable prettier via eslint, and fix issues. Also remove unused eslint deps and package.json scripts. - - diff --git a/projects/js-packages/image-guide/changelog/update-eslint-9 b/projects/js-packages/image-guide/changelog/update-eslint-9 deleted file mode 100644 index 1cb10572ab69e..0000000000000 --- a/projects/js-packages/image-guide/changelog/update-eslint-9 +++ /dev/null @@ -1,5 +0,0 @@ -Significance: patch -Type: changed -Comment: Update eslint config for eslint 9. - - diff --git a/projects/js-packages/image-guide/changelog/update-various-eslint-plugins b/projects/js-packages/image-guide/changelog/update-various-eslint-plugins deleted file mode 100644 index b98fdbffe73bd..0000000000000 --- a/projects/js-packages/image-guide/changelog/update-various-eslint-plugins +++ /dev/null @@ -1,5 +0,0 @@ -Significance: patch -Type: fixed -Comment: Update code to fix new eslint rules. - - diff --git a/projects/js-packages/image-guide/package.json b/projects/js-packages/image-guide/package.json index fc8daf78f9812..5d76421db9487 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.14", + "version": "0.5.15", "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", diff --git a/projects/js-packages/licensing/CHANGELOG.md b/projects/js-packages/licensing/CHANGELOG.md index 870cf8a3360b0..1b5ce79a0abad 100644 --- a/projects/js-packages/licensing/CHANGELOG.md +++ b/projects/js-packages/licensing/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.14.3 - 2025-01-06 +### Changed +- Updated package dependencies. [#40797] +- Updated package dependencies. [#40813] + ## 0.14.2 - 2024-12-16 ### Changed - Updated package dependencies. [#40564] diff --git a/projects/js-packages/licensing/changelog/renovate-babel-monorepo b/projects/js-packages/licensing/changelog/renovate-babel-monorepo deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/licensing/changelog/renovate-babel-monorepo +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/licensing/changelog/renovate-prop-types-15.x b/projects/js-packages/licensing/changelog/renovate-prop-types-15.x deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/licensing/changelog/renovate-prop-types-15.x +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/licensing/package.json b/projects/js-packages/licensing/package.json index 4e55439f15fc4..c0963293ee2c3 100644 --- a/projects/js-packages/licensing/package.json +++ b/projects/js-packages/licensing/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@automattic/jetpack-licensing", - "version": "0.14.2", + "version": "0.14.3", "description": "Jetpack licensing flow", "homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/js-packages/licensing/#readme", "bugs": { diff --git a/projects/js-packages/react-data-sync-client/CHANGELOG.md b/projects/js-packages/react-data-sync-client/CHANGELOG.md index 02fdbeae201ce..494169516c1c9 100644 --- a/projects/js-packages/react-data-sync-client/CHANGELOG.md +++ b/projects/js-packages/react-data-sync-client/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.8] - 2025-01-06 +### Changed +- Internal updates. + ## [0.1.7] - 2024-11-28 ### Changed - Update dependencies. [#40194] @@ -58,6 +62,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.8]: https://github.com/Automattic/jetpack-react-data-sync-client/compare/v0.1.7...v0.1.8 [0.1.7]: https://github.com/Automattic/jetpack-react-data-sync-client/compare/v0.1.6...v0.1.7 [0.1.6]: https://github.com/Automattic/jetpack-react-data-sync-client/compare/v0.1.5...v0.1.6 [0.1.5]: https://github.com/Automattic/jetpack-react-data-sync-client/compare/v0.1.4...v0.1.5 diff --git a/projects/js-packages/react-data-sync-client/changelog/update-cleanup-project-level-eslint-prettier b/projects/js-packages/react-data-sync-client/changelog/update-cleanup-project-level-eslint-prettier deleted file mode 100644 index 7e8af900c1dac..0000000000000 --- a/projects/js-packages/react-data-sync-client/changelog/update-cleanup-project-level-eslint-prettier +++ /dev/null @@ -1,5 +0,0 @@ -Significance: patch -Type: removed -Comment: Remove unused eslint and prettier scripts from package.json. - - diff --git a/projects/js-packages/react-data-sync-client/changelog/update-eslint-9 b/projects/js-packages/react-data-sync-client/changelog/update-eslint-9 deleted file mode 100644 index 1cb10572ab69e..0000000000000 --- a/projects/js-packages/react-data-sync-client/changelog/update-eslint-9 +++ /dev/null @@ -1,5 +0,0 @@ -Significance: patch -Type: changed -Comment: Update eslint config for eslint 9. - - diff --git a/projects/js-packages/react-data-sync-client/changelog/update-js-packages-fix-eslint-9-lints b/projects/js-packages/react-data-sync-client/changelog/update-js-packages-fix-eslint-9-lints deleted file mode 100644 index b3176fbef2f88..0000000000000 --- a/projects/js-packages/react-data-sync-client/changelog/update-js-packages-fix-eslint-9-lints +++ /dev/null @@ -1,5 +0,0 @@ -Significance: patch -Type: fixed -Comment: Fix some JS lints ahead of eslint 9 upgrade. - - diff --git a/projects/js-packages/react-data-sync-client/changelog/update-various-eslint-plugins b/projects/js-packages/react-data-sync-client/changelog/update-various-eslint-plugins deleted file mode 100644 index b98fdbffe73bd..0000000000000 --- a/projects/js-packages/react-data-sync-client/changelog/update-various-eslint-plugins +++ /dev/null @@ -1,5 +0,0 @@ -Significance: patch -Type: fixed -Comment: Update code to fix new eslint rules. - - diff --git a/projects/js-packages/react-data-sync-client/package.json b/projects/js-packages/react-data-sync-client/package.json index 32e14e1b8b89e..f826f02f32310 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.7", + "version": "0.1.8", "description": "DataSync client for React", "homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/js-packages/react-data-sync-client/#readme", "bugs": { diff --git a/projects/js-packages/scan/CHANGELOG.md b/projects/js-packages/scan/CHANGELOG.md index 9f30e52bf0ff1..e4bbe6bc8d980 100644 --- a/projects/js-packages/scan/CHANGELOG.md +++ b/projects/js-packages/scan/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.5.3] - 2025-01-06 +### Changed +- Updated package dependencies. [#40798] [#40810] [#40841] + ## [0.5.2] - 2024-12-16 ### Changed - Updated package dependencies. [#40564] @@ -87,6 +91,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Removed - Updated dependencies. [#39754] +[0.5.3]: https://github.com/Automattic/jetpack-scan/compare/v0.5.2...v0.5.3 [0.5.2]: https://github.com/Automattic/jetpack-scan/compare/v0.5.1...v0.5.2 [0.5.1]: https://github.com/Automattic/jetpack-scan/compare/v0.5.0...v0.5.1 [0.5.0]: https://github.com/Automattic/jetpack-scan/compare/v0.4.1...v0.5.0 diff --git a/projects/js-packages/scan/changelog/renovate-debug-4.x b/projects/js-packages/scan/changelog/renovate-debug-4.x deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/scan/changelog/renovate-debug-4.x +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/scan/changelog/renovate-definitelytyped b/projects/js-packages/scan/changelog/renovate-definitelytyped deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/scan/changelog/renovate-definitelytyped +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/scan/changelog/renovate-storybook-monorepo b/projects/js-packages/scan/changelog/renovate-storybook-monorepo deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/scan/changelog/renovate-storybook-monorepo +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/scan/package.json b/projects/js-packages/scan/package.json index 81442a0712bff..6ff31e11c9a4a 100644 --- a/projects/js-packages/scan/package.json +++ b/projects/js-packages/scan/package.json @@ -1,7 +1,7 @@ { "private": false, "name": "@automattic/jetpack-scan", - "version": "0.5.2", + "version": "0.5.3", "description": "A JS client for consuming Jetpack Scan services", "homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/js-packages/scan/#readme", "bugs": { diff --git a/projects/js-packages/social-logos/CHANGELOG.md b/projects/js-packages/social-logos/CHANGELOG.md index c55e4a0814b54..fed4877c0faea 100644 --- a/projects/js-packages/social-logos/CHANGELOG.md +++ b/projects/js-packages/social-logos/CHANGELOG.md @@ -1,3 +1,13 @@ +## [3.1.16] - 2025-01-06 +### Changed +- Updated package dependencies. [#40796] [#40798] [#40831] + +### Deprecated +- Default import is now deprecated in favor of named import and will be removed in future. + +### Fixed +- Fixed package.json exports to expose built in types [#40801] + ## [3.1.15] - 2024-12-16 ### Changed - Internal updates. @@ -184,6 +194,7 @@ - Build: Refactored (aligned build system with Gridicons). +[3.1.16]: https://github.com/Automattic/social-logos/compare/v3.1.15...v3.1.16 [3.1.15]: https://github.com/Automattic/social-logos/compare/v3.1.14...v3.1.15 [3.1.14]: https://github.com/Automattic/social-logos/compare/v3.1.13...v3.1.14 [3.1.13]: https://github.com/Automattic/social-logos/compare/v3.1.12...v3.1.13 diff --git a/projects/js-packages/social-logos/changelog/deprecate-default-import b/projects/js-packages/social-logos/changelog/deprecate-default-import deleted file mode 100644 index 6464460c36429..0000000000000 --- a/projects/js-packages/social-logos/changelog/deprecate-default-import +++ /dev/null @@ -1,9 +0,0 @@ -Significance: patch -Type: deprecated - -Default import is now deprecated in favor of named import and will be removed in future. - -```diff -- import SocialLogos from 'social-logos'; -+ import { SocialLogo } from 'social-logos'; -``` diff --git a/projects/js-packages/social-logos/changelog/fix-types-export-for-social-logos b/projects/js-packages/social-logos/changelog/fix-types-export-for-social-logos deleted file mode 100644 index 618e4adac19ff..0000000000000 --- a/projects/js-packages/social-logos/changelog/fix-types-export-for-social-logos +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: fixed - -Fixed package.json exports to expose built in types diff --git a/projects/js-packages/social-logos/changelog/renovate-definitelytyped b/projects/js-packages/social-logos/changelog/renovate-definitelytyped deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/social-logos/changelog/renovate-definitelytyped +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/social-logos/changelog/renovate-glob-11.x b/projects/js-packages/social-logos/changelog/renovate-glob-11.x deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/social-logos/changelog/renovate-glob-11.x +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/social-logos/changelog/renovate-svgicons2svgfont-15.x b/projects/js-packages/social-logos/changelog/renovate-svgicons2svgfont-15.x deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/social-logos/changelog/renovate-svgicons2svgfont-15.x +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/social-logos/package.json b/projects/js-packages/social-logos/package.json index c42e20d44dc19..1d69cc1785df2 100644 --- a/projects/js-packages/social-logos/package.json +++ b/projects/js-packages/social-logos/package.json @@ -1,6 +1,6 @@ { "name": "social-logos", - "version": "3.1.15", + "version": "3.1.16", "description": "A repository of all the social logos used on WordPress.com.", "homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/js-packages/social-logos/", "bugs": { diff --git a/projects/js-packages/webpack-config/CHANGELOG.md b/projects/js-packages/webpack-config/CHANGELOG.md index 33f39f35a0ed5..b79601e64496f 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.5.6 - 2025-01-06 +### Changed +- Updated package dependencies. [#40797] [#40809] + ## 3.5.5 - 2024-12-16 ### Changed - Updated package dependencies. [#40564] diff --git a/projects/js-packages/webpack-config/changelog/renovate-babel-monorepo b/projects/js-packages/webpack-config/changelog/renovate-babel-monorepo deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/webpack-config/changelog/renovate-babel-monorepo +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/webpack-config/changelog/renovate-browserslist-4.x b/projects/js-packages/webpack-config/changelog/renovate-browserslist-4.x deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/js-packages/webpack-config/changelog/renovate-browserslist-4.x +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/js-packages/webpack-config/package.json b/projects/js-packages/webpack-config/package.json index fe1949211d6a0..9504671fbe24e 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.5.5", + "version": "3.5.6", "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": { diff --git a/projects/packages/connection/CHANGELOG.md b/projects/packages/connection/CHANGELOG.md index eaaba4aa9a81e..63159dac89f69 100644 --- a/projects/packages/connection/CHANGELOG.md +++ b/projects/packages/connection/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). +## [6.2.2] - 2025-01-06 +### Added +- Added tests to increase code coverage. [#39963] + +### Changed +- Updated package dependencies. [#40831] + ## [6.2.1] - 2024-12-16 ### Changed - Updated package dependencies. [#40564] @@ -1271,6 +1278,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Separate the connection library into its own package. +[6.2.2]: https://github.com/Automattic/jetpack-connection/compare/v6.2.1...v6.2.2 [6.2.1]: https://github.com/Automattic/jetpack-connection/compare/v6.2.0...v6.2.1 [6.2.0]: https://github.com/Automattic/jetpack-connection/compare/v6.1.1...v6.2.0 [6.1.1]: https://github.com/Automattic/jetpack-connection/compare/v6.1.0...v6.1.1 diff --git a/projects/packages/connection/changelog/add-connection-coverage b/projects/packages/connection/changelog/add-connection-coverage deleted file mode 100644 index 5b7642e59a260..0000000000000 --- a/projects/packages/connection/changelog/add-connection-coverage +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: added - -Added tests to increase code coverage. diff --git a/projects/packages/connection/changelog/renovate-glob-11.x b/projects/packages/connection/changelog/renovate-glob-11.x deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/packages/connection/changelog/renovate-glob-11.x +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/packages/connection/src/class-package-version.php b/projects/packages/connection/src/class-package-version.php index 361d29d6aaffe..d8a27d74551cc 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 = '6.2.1'; + const PACKAGE_VERSION = '6.2.2'; const PACKAGE_SLUG = 'connection'; diff --git a/projects/packages/my-jetpack/CHANGELOG.md b/projects/packages/my-jetpack/CHANGELOG.md index ab8a48a89124a..8fdc37bdd613d 100644 --- a/projects/packages/my-jetpack/CHANGELOG.md +++ b/projects/packages/my-jetpack/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). +## [5.3.0] - 2025-01-06 +### Added +- My Jetpack: Added a new status for when Protect detects threats on the site. [#40628] +- My Jetpack: Adds a red bubble and notice when Protect threats are detected. [#40719] +- My Jetpack: introduce feature cards for recommendations in My Jetpack. [#40639] + +### Changed +- Updated package dependencies. [#40705] [#40798] [#40810] [#40841] + +### Fixed +- Tests: Fix failure on 31 December. [#40781] + ## [5.2.0] - 2024-12-23 ### Added - My Jetpack: add features as possible modules to the recommendations list. [#40492] @@ -1883,6 +1895,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Created package +[5.3.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/5.2.0...5.3.0 [5.2.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/5.1.2...5.2.0 [5.1.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/5.1.1...5.1.2 [5.1.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/5.1.0...5.1.1 diff --git a/projects/packages/my-jetpack/changelog/add-feature-recommendations-cards b/projects/packages/my-jetpack/changelog/add-feature-recommendations-cards deleted file mode 100644 index 38a8435a85bd8..0000000000000 --- a/projects/packages/my-jetpack/changelog/add-feature-recommendations-cards +++ /dev/null @@ -1,4 +0,0 @@ -Significance: minor -Type: added - -My Jetpack: introduce feature cards for recommendations in My Jetpack. diff --git a/projects/packages/my-jetpack/changelog/add-protect-fix-threats-status b/projects/packages/my-jetpack/changelog/add-protect-fix-threats-status deleted file mode 100644 index b312e6dfc1bcf..0000000000000 --- a/projects/packages/my-jetpack/changelog/add-protect-fix-threats-status +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: added - -My Jetpack: Added a new status for when Protect detects threats on the site. diff --git a/projects/packages/my-jetpack/changelog/add-protect-redbubble-and-notice b/projects/packages/my-jetpack/changelog/add-protect-redbubble-and-notice deleted file mode 100644 index 8149be99c3828..0000000000000 --- a/projects/packages/my-jetpack/changelog/add-protect-redbubble-and-notice +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: added - -My Jetpack: Adds a red bubble and notice when Protect threats are detected. diff --git a/projects/packages/my-jetpack/changelog/fix-tests-31_dec_coupon_price_bug b/projects/packages/my-jetpack/changelog/fix-tests-31_dec_coupon_price_bug deleted file mode 100644 index 77bf04c8b779c..0000000000000 --- a/projects/packages/my-jetpack/changelog/fix-tests-31_dec_coupon_price_bug +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: fixed - -Tests: Fix failure on 31 December. diff --git a/projects/packages/my-jetpack/changelog/renovate-debug-4.x b/projects/packages/my-jetpack/changelog/renovate-debug-4.x deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/packages/my-jetpack/changelog/renovate-debug-4.x +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/packages/my-jetpack/changelog/renovate-definitelytyped b/projects/packages/my-jetpack/changelog/renovate-definitelytyped deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/packages/my-jetpack/changelog/renovate-definitelytyped +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/packages/my-jetpack/changelog/renovate-react-router-monorepo b/projects/packages/my-jetpack/changelog/renovate-react-router-monorepo deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/packages/my-jetpack/changelog/renovate-react-router-monorepo +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/packages/my-jetpack/changelog/renovate-storybook-monorepo b/projects/packages/my-jetpack/changelog/renovate-storybook-monorepo deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/packages/my-jetpack/changelog/renovate-storybook-monorepo +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/packages/my-jetpack/composer.json b/projects/packages/my-jetpack/composer.json index cb6363acb05bb..0f7a78b78d206 100644 --- a/projects/packages/my-jetpack/composer.json +++ b/projects/packages/my-jetpack/composer.json @@ -83,7 +83,7 @@ "link-template": "https://github.com/Automattic/jetpack-my-jetpack/compare/${old}...${new}" }, "branch-alias": { - "dev-trunk": "5.2.x-dev" + "dev-trunk": "5.3.x-dev" }, "version-constants": { "::PACKAGE_VERSION": "src/class-initializer.php" diff --git a/projects/packages/my-jetpack/package.json b/projects/packages/my-jetpack/package.json index 2d505712e8ade..01d60e36a9bb5 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": "5.2.0", + "version": "5.3.0", "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": { diff --git a/projects/packages/my-jetpack/src/class-initializer.php b/projects/packages/my-jetpack/src/class-initializer.php index d80e8549de55a..ca643051fbe32 100644 --- a/projects/packages/my-jetpack/src/class-initializer.php +++ b/projects/packages/my-jetpack/src/class-initializer.php @@ -41,7 +41,7 @@ class Initializer { * * @var string */ - const PACKAGE_VERSION = '5.2.0'; + const PACKAGE_VERSION = '5.3.0'; /** * HTML container ID for the IDC screen on My Jetpack page. diff --git a/projects/packages/plugin-deactivation/CHANGELOG.md b/projects/packages/plugin-deactivation/CHANGELOG.md index 804e6aaf8d639..8d5fc4ac63e6b 100644 --- a/projects/packages/plugin-deactivation/CHANGELOG.md +++ b/projects/packages/plugin-deactivation/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.3.1] - 2025-01-06 +### Changed +- Internal updates. + ## [0.3.0] - 2024-11-28 ### Removed - General: Update minimum PHP version to 7.2. [#40147] @@ -63,6 +67,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Added package to intercept plugin deactivation [#27081] +[0.3.1]: https://github.com/Automattic/jetpack-plugin-deactivation/compare/v0.3.0...v0.3.1 [0.3.0]: https://github.com/Automattic/jetpack-plugin-deactivation/compare/v0.2.4...v0.3.0 [0.2.4]: https://github.com/Automattic/jetpack-plugin-deactivation/compare/v0.2.3...v0.2.4 [0.2.3]: https://github.com/Automattic/jetpack-plugin-deactivation/compare/v0.2.2...v0.2.3 diff --git a/projects/packages/plugin-deactivation/changelog/update-packages-fix-eslint-9-lints b/projects/packages/plugin-deactivation/changelog/update-packages-fix-eslint-9-lints deleted file mode 100644 index b3176fbef2f88..0000000000000 --- a/projects/packages/plugin-deactivation/changelog/update-packages-fix-eslint-9-lints +++ /dev/null @@ -1,5 +0,0 @@ -Significance: patch -Type: fixed -Comment: Fix some JS lints ahead of eslint 9 upgrade. - - diff --git a/projects/packages/plugin-deactivation/package.json b/projects/packages/plugin-deactivation/package.json index ff20e34048bd7..3a1f1ad29d219 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.3.0", + "version": "0.3.1", "description": "Intercept plugin deactivation with a dialog", "homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/packages/plugin-deactivation/#readme", "bugs": { diff --git a/projects/packages/plugin-deactivation/src/class-deactivation-handler.php b/projects/packages/plugin-deactivation/src/class-deactivation-handler.php index 1ec6f8a2affa5..f99253ef1fc11 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.3.0'; + const PACKAGE_VERSION = '0.3.1'; /** * Slug of the plugin to intercept deactivation for. diff --git a/projects/plugins/boost/changelog/prerelease b/projects/plugins/backup/changelog/prerelease#6 similarity index 100% rename from projects/plugins/boost/changelog/prerelease rename to projects/plugins/backup/changelog/prerelease#6 diff --git a/projects/plugins/backup/composer.lock b/projects/plugins/backup/composer.lock index c0beaa5394e91..89ab9018ca367 100644 --- a/projects/plugins/backup/composer.lock +++ b/projects/plugins/backup/composer.lock @@ -1215,7 +1215,7 @@ "dist": { "type": "path", "url": "../../packages/my-jetpack", - "reference": "1356c22d5af932cc2f331bb5d2762a31609b14ed" + "reference": "73105b323ea52768c8db48a442ee4290d68b6efa" }, "require": { "automattic/jetpack-admin-ui": "@dev", @@ -1253,7 +1253,7 @@ "link-template": "https://github.com/Automattic/jetpack-my-jetpack/compare/${old}...${new}" }, "branch-alias": { - "dev-trunk": "5.2.x-dev" + "dev-trunk": "5.3.x-dev" }, "version-constants": { "::PACKAGE_VERSION": "src/class-initializer.php" diff --git a/projects/plugins/boost/CHANGELOG.md b/projects/plugins/boost/CHANGELOG.md index d48ad8f0f8a22..35841a3175502 100644 --- a/projects/plugins/boost/CHANGELOG.md +++ b/projects/plugins/boost/CHANGELOG.md @@ -5,6 +5,21 @@ 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.7.0] - 2025-01-06 +### Added +- Concatenate JS/CSS: Added a button that allows loading default excludes. [#40496] +- General: Added tracks events to clickable elements on the settings page. [#40246] +- General: Added WordPress filters to allow Cornerstone Pages list and Image Size Analyzer source data to be updated. [#40442] +- Concatenate JS/CSS: Added HTTP header to take advantage of WordPress.com edge caching [#40557] +- UI: Added notifications when interacting with dashboard settings. [#40593] + +### Changed +- UI: Gave Page Cache, Concatenate JS/CSS and Image CDN - Image Quality modules a more unifed look. [#40224] + +### Fixed +- Critical CSS: Improved UI responsiveness during a retry after failed generation. [#40675] +- UI: Fixed showing an error if no ISA report was found. [#40660] + ## [3.6.1] - 2024-11-28 ### Changed - Image CDN: Improve performance. [#39883] @@ -552,6 +567,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - First public alpha release +[3.7.0]: https://github.com/Automattic/jetpack-boost-production/compare/3.6.1...3.7.0 [3.6.1]: https://github.com/Automattic/jetpack-boost-production/compare/3.6.0...3.6.1 [3.6.0]: https://github.com/Automattic/jetpack-boost-production/compare/3.5.2...3.6.0 [3.5.2]: https://github.com/Automattic/jetpack-boost-production/compare/3.5.1...3.5.2 diff --git a/projects/plugins/boost/app/data-sync/Cornerstone_Pages_Entry.php b/projects/plugins/boost/app/data-sync/Cornerstone_Pages_Entry.php index eab9d86d91ff5..7cb8baf8cd006 100644 --- a/projects/plugins/boost/app/data-sync/Cornerstone_Pages_Entry.php +++ b/projects/plugins/boost/app/data-sync/Cornerstone_Pages_Entry.php @@ -25,7 +25,7 @@ public function get( $fallback_value = array() ) { /** * Filters the list of cornerstone pages. * - * @since $$next-version$$ + * @since 3.7.0 * * @param array $urls An array of absolute URLs. */ diff --git a/projects/plugins/boost/app/lib/class-site-urls.php b/projects/plugins/boost/app/lib/class-site-urls.php index df9f6c00972c1..6f108e66042b7 100644 --- a/projects/plugins/boost/app/lib/class-site-urls.php +++ b/projects/plugins/boost/app/lib/class-site-urls.php @@ -26,7 +26,7 @@ public static function get( $limit = 100 ) { /** * Filters the list of site URLs used by the Image Size Analysis. * - * @since $$next-version$$ + * @since 3.7.0 * * @param array $urls An array of URLs. * @param int $limit The maximum number of URLs that should be returned. diff --git a/projects/plugins/boost/changelog/add-edge-cache-header b/projects/plugins/boost/changelog/add-edge-cache-header deleted file mode 100644 index 534f4a2e449ff..0000000000000 --- a/projects/plugins/boost/changelog/add-edge-cache-header +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: added - -Minify: Added HTTP header to take advantage of WordPress.com edge caching diff --git a/projects/plugins/boost/changelog/fix-critical-css-status b/projects/plugins/boost/changelog/fix-critical-css-status deleted file mode 100644 index fd96c0c4e40a4..0000000000000 --- a/projects/plugins/boost/changelog/fix-critical-css-status +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: fixed - -Critical CSS: Improved UI responsiveness during a retry after failed generation. diff --git a/projects/plugins/boost/changelog/fix-isa-showing-error-if-no-report-present b/projects/plugins/boost/changelog/fix-isa-showing-error-if-no-report-present deleted file mode 100644 index ec4939628d4b8..0000000000000 --- a/projects/plugins/boost/changelog/fix-isa-showing-error-if-no-report-present +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: fixed - -UI: Fixed showing an error if no ISA report was found. diff --git a/projects/plugins/boost/changelog/fix-playwright_install_tweaks b/projects/plugins/boost/changelog/fix-playwright_install_tweaks deleted file mode 100644 index ebeba9b69f473..0000000000000 --- a/projects/plugins/boost/changelog/fix-playwright_install_tweaks +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: fixed - -E2E Tests: Only install single browser used by Playwright. diff --git a/projects/plugins/boost/changelog/fix-speed-score-changed-tracks b/projects/plugins/boost/changelog/fix-speed-score-changed-tracks deleted file mode 100644 index 5d4a87253a8ea..0000000000000 --- a/projects/plugins/boost/changelog/fix-speed-score-changed-tracks +++ /dev/null @@ -1,5 +0,0 @@ -Significance: patch -Type: fixed -Comment: Fix for an unreleased change. - - diff --git a/projects/plugins/boost/changelog/renovate-babel-monorepo b/projects/plugins/boost/changelog/renovate-babel-monorepo deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/plugins/boost/changelog/renovate-babel-monorepo +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/plugins/boost/changelog/renovate-config-3.x b/projects/plugins/boost/changelog/renovate-config-3.x deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/plugins/boost/changelog/renovate-config-3.x +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/plugins/boost/changelog/renovate-definitelytyped b/projects/plugins/boost/changelog/renovate-definitelytyped deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/plugins/boost/changelog/renovate-definitelytyped +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/plugins/boost/changelog/renovate-lock-file-maintenance b/projects/plugins/boost/changelog/renovate-lock-file-maintenance deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/plugins/boost/changelog/renovate-lock-file-maintenance +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/plugins/boost/changelog/renovate-playwright-monorepo b/projects/plugins/boost/changelog/renovate-playwright-monorepo deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/plugins/boost/changelog/renovate-playwright-monorepo +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/plugins/boost/changelog/renovate-react-router-monorepo b/projects/plugins/boost/changelog/renovate-react-router-monorepo deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/plugins/boost/changelog/renovate-react-router-monorepo +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/plugins/boost/changelog/renovate-react-spring-core-9.x b/projects/plugins/boost/changelog/renovate-react-spring-core-9.x deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/plugins/boost/changelog/renovate-react-spring-core-9.x +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/plugins/boost/changelog/renovate-storybook-monorepo b/projects/plugins/boost/changelog/renovate-storybook-monorepo deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/plugins/boost/changelog/renovate-storybook-monorepo +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/plugins/boost/changelog/renovate-wordpress-monorepo b/projects/plugins/boost/changelog/renovate-wordpress-monorepo deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/plugins/boost/changelog/renovate-wordpress-monorepo +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/plugins/boost/changelog/renovate-wordpress-monorepo#2 b/projects/plugins/boost/changelog/renovate-wordpress-monorepo#2 deleted file mode 100644 index c47cb18e82997..0000000000000 --- a/projects/plugins/boost/changelog/renovate-wordpress-monorepo#2 +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Updated package dependencies. diff --git a/projects/plugins/boost/changelog/update-boost-add-notices-to-settings-page b/projects/plugins/boost/changelog/update-boost-add-notices-to-settings-page deleted file mode 100644 index 73d537e320740..0000000000000 --- a/projects/plugins/boost/changelog/update-boost-add-notices-to-settings-page +++ /dev/null @@ -1,4 +0,0 @@ -Significance: minor -Type: added - -UI: Add notifications when interacting with dashboard settings. diff --git a/projects/plugins/boost/changelog/update-boost-add-tracks-events b/projects/plugins/boost/changelog/update-boost-add-tracks-events deleted file mode 100644 index 7d24b2973f91e..0000000000000 --- a/projects/plugins/boost/changelog/update-boost-add-tracks-events +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: added - -General: Added tracks events to clickable elements on the settings page. diff --git a/projects/plugins/boost/changelog/update-boost-custom-site-url-support b/projects/plugins/boost/changelog/update-boost-custom-site-url-support deleted file mode 100644 index f2980aec03261..0000000000000 --- a/projects/plugins/boost/changelog/update-boost-custom-site-url-support +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: added - -General: Add WordPress filters to allow Cornerstone Pages list and Image Size Analyzer source data to be updated. diff --git a/projects/plugins/boost/changelog/update-boost-fix-eslint-9-lints b/projects/plugins/boost/changelog/update-boost-fix-eslint-9-lints deleted file mode 100644 index b4998764a045e..0000000000000 --- a/projects/plugins/boost/changelog/update-boost-fix-eslint-9-lints +++ /dev/null @@ -1,5 +0,0 @@ -Significance: patch -Type: fixed -Comment: Fix some JS lints ahead of the eslint 9 upgrade. - - diff --git a/projects/plugins/boost/changelog/update-boost-minify-modules-fixes b/projects/plugins/boost/changelog/update-boost-minify-modules-fixes deleted file mode 100644 index 28ba4ff361ff5..0000000000000 --- a/projects/plugins/boost/changelog/update-boost-minify-modules-fixes +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Settings Page: Give Page Cache, Concatenate JS/CSS and Image CDN - Image Quality modules a more unifed look. diff --git a/projects/plugins/boost/changelog/update-cleanup-deprecated-eslint-rules b/projects/plugins/boost/changelog/update-cleanup-deprecated-eslint-rules deleted file mode 100644 index 94aaa5b70a786..0000000000000 --- a/projects/plugins/boost/changelog/update-cleanup-deprecated-eslint-rules +++ /dev/null @@ -1,5 +0,0 @@ -Significance: patch -Type: changed -Comment: Remove unnecessary overrides from eslintrc. - - diff --git a/projects/plugins/boost/changelog/update-cleanup-project-level-eslint-prettier b/projects/plugins/boost/changelog/update-cleanup-project-level-eslint-prettier deleted file mode 100644 index 76bd72d20ee0d..0000000000000 --- a/projects/plugins/boost/changelog/update-cleanup-project-level-eslint-prettier +++ /dev/null @@ -1,5 +0,0 @@ -Significance: patch -Type: removed -Comment: Remove unused eslint and prettier scripts and dep from package.json. Also enable `prettier/prettier` eslint rule (which required no fixes). - - diff --git a/projects/plugins/boost/changelog/update-concat-exclude-ui b/projects/plugins/boost/changelog/update-concat-exclude-ui deleted file mode 100644 index ae3eeb5855f27..0000000000000 --- a/projects/plugins/boost/changelog/update-concat-exclude-ui +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: added - -Concatenate JS/CSS: Add a button that allows loading default excludes. diff --git a/projects/plugins/boost/changelog/update-eslint-9 b/projects/plugins/boost/changelog/update-eslint-9 deleted file mode 100644 index 1cb10572ab69e..0000000000000 --- a/projects/plugins/boost/changelog/update-eslint-9 +++ /dev/null @@ -1,5 +0,0 @@ -Significance: patch -Type: changed -Comment: Update eslint config for eslint 9. - - diff --git a/projects/plugins/boost/changelog/update-fetch-available-licenses b/projects/plugins/boost/changelog/update-fetch-available-licenses deleted file mode 100644 index 3c349c8b1445e..0000000000000 --- a/projects/plugins/boost/changelog/update-fetch-available-licenses +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: changed - -Resolved an issue where revoked licenses were incorrectly treated as unattached. This caused users to be redirected to the license activation page after site connection, even when unattached licenses were not valid for activation. diff --git a/projects/plugins/boost/changelog/update-js-packages-fix-eslint-9-lints b/projects/plugins/boost/changelog/update-js-packages-fix-eslint-9-lints deleted file mode 100644 index b3176fbef2f88..0000000000000 --- a/projects/plugins/boost/changelog/update-js-packages-fix-eslint-9-lints +++ /dev/null @@ -1,5 +0,0 @@ -Significance: patch -Type: fixed -Comment: Fix some JS lints ahead of eslint 9 upgrade. - - diff --git a/projects/plugins/boost/changelog/update-various-eslint-plugins b/projects/plugins/boost/changelog/update-various-eslint-plugins deleted file mode 100644 index b98fdbffe73bd..0000000000000 --- a/projects/plugins/boost/changelog/update-various-eslint-plugins +++ /dev/null @@ -1,5 +0,0 @@ -Significance: patch -Type: fixed -Comment: Update code to fix new eslint rules. - - diff --git a/projects/plugins/boost/composer.json b/projects/plugins/boost/composer.json index 8b34b975f1546..6e61bc7dac944 100644 --- a/projects/plugins/boost/composer.json +++ b/projects/plugins/boost/composer.json @@ -3,7 +3,7 @@ "description": "Boost your WordPress site's performance, from the creators of Jetpack", "type": "library", "license": "GPL-2.0-or-later", - "version": "3.6.1", + "version": "3.7.0", "authors": [ { "name": "Automattic, Inc.", @@ -78,7 +78,7 @@ "platform": { "ext-intl": "0.0.0" }, - "autoloader-suffix": "b1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ3_6_1", + "autoloader-suffix": "b1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ3_7_0", "allow-plugins": { "roots/wordpress-core-installer": true, "automattic/jetpack-autoloader": true, diff --git a/projects/plugins/boost/composer.lock b/projects/plugins/boost/composer.lock index 963010e4e17b6..0f419db440f0b 100644 --- a/projects/plugins/boost/composer.lock +++ b/projects/plugins/boost/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "1b42ed0c5667c68397cf85aa7ff6c3a9", + "content-hash": "b52098ae2e5a4e594034ec41fb2636e6", "packages": [ { "name": "automattic/jetpack-a8c-mc-stats", @@ -1131,7 +1131,7 @@ "dist": { "type": "path", "url": "../../packages/my-jetpack", - "reference": "1356c22d5af932cc2f331bb5d2762a31609b14ed" + "reference": "73105b323ea52768c8db48a442ee4290d68b6efa" }, "require": { "automattic/jetpack-admin-ui": "@dev", @@ -1169,7 +1169,7 @@ "link-template": "https://github.com/Automattic/jetpack-my-jetpack/compare/${old}...${new}" }, "branch-alias": { - "dev-trunk": "5.2.x-dev" + "dev-trunk": "5.3.x-dev" }, "version-constants": { "::PACKAGE_VERSION": "src/class-initializer.php" diff --git a/projects/plugins/boost/jetpack-boost.php b/projects/plugins/boost/jetpack-boost.php index 2cd2b0d3e0c05..6ab8471e88ba9 100644 --- a/projects/plugins/boost/jetpack-boost.php +++ b/projects/plugins/boost/jetpack-boost.php @@ -9,7 +9,7 @@ * Plugin Name: Jetpack Boost * Plugin URI: https://jetpack.com/boost * Description: Boost your WordPress site's performance, from the creators of Jetpack - * Version: 3.6.1 + * Version: 3.7.0 * Author: Automattic - Jetpack Site Speed team * Author URI: https://jetpack.com/boost/ * License: GPL-2.0+ @@ -29,7 +29,7 @@ die; } -define( 'JETPACK_BOOST_VERSION', '3.6.1' ); +define( 'JETPACK_BOOST_VERSION', '3.7.0' ); define( 'JETPACK_BOOST_SLUG', 'jetpack-boost' ); if ( ! defined( 'JETPACK_BOOST_CLIENT_NAME' ) ) { diff --git a/projects/plugins/boost/package.json b/projects/plugins/boost/package.json index 5b264878fb034..c073f4cb7f950 100644 --- a/projects/plugins/boost/package.json +++ b/projects/plugins/boost/package.json @@ -1,6 +1,6 @@ { "name": "jetpack-boost", - "version": "3.6.1", + "version": "3.7.0", "description": "Boost your WordPress site's performance, from the creators of Jetpack", "directories": { "test": "tests" diff --git a/projects/plugins/boost/readme.txt b/projects/plugins/boost/readme.txt index b0ae3cf707e80..41693dd5a6820 100644 --- a/projects/plugins/boost/readme.txt +++ b/projects/plugins/boost/readme.txt @@ -183,14 +183,20 @@ If you run into compatibility issues, please do let us know. You can drop us a l 2. Jetpack Boost Speed Improvement == Changelog == -### 3.6.1 - 2024-11-28 +### 3.7.0 - 2025-01-06 +#### Added +- Concatenate JS/CSS: Added a button that allows loading default excludes. +- General: Added tracks events to clickable elements on the settings page. +- General: Added WordPress filters to allow Cornerstone Pages list and Image Size Analyzer source data to be updated. +- Concatenate JS/CSS: Added HTTP header to take advantage of WordPress.com edge caching +- UI: Added notifications when interacting with dashboard settings. + #### Changed -- Image CDN: Improve performance. -- General: Update minimum PHP version to 7.2. -- General: Update minimum WordPress version to 6.6. +- UI: Gave Page Cache, Concatenate JS/CSS and Image CDN - Image Quality modules a more unifed look. #### Fixed -- Compatibility: Fixed situations where minify could break due to too many files being enqueued in the elementor editor. +- Critical CSS: Improved UI responsiveness during a retry after failed generation. +- UI: Fixed showing an error if no ISA report was found. -------- diff --git a/projects/plugins/jetpack/changelog/prerelease b/projects/plugins/jetpack/changelog/prerelease new file mode 100644 index 0000000000000..a1c1831fa1ef7 --- /dev/null +++ b/projects/plugins/jetpack/changelog/prerelease @@ -0,0 +1,5 @@ +Significance: patch +Type: other +Comment: Updated composer.lock. + + diff --git a/projects/plugins/jetpack/composer.lock b/projects/plugins/jetpack/composer.lock index ec587490fd21d..277d3a0e6a493 100644 --- a/projects/plugins/jetpack/composer.lock +++ b/projects/plugins/jetpack/composer.lock @@ -1830,7 +1830,7 @@ "dist": { "type": "path", "url": "../../packages/my-jetpack", - "reference": "1356c22d5af932cc2f331bb5d2762a31609b14ed" + "reference": "73105b323ea52768c8db48a442ee4290d68b6efa" }, "require": { "automattic/jetpack-admin-ui": "@dev", @@ -1868,7 +1868,7 @@ "link-template": "https://github.com/Automattic/jetpack-my-jetpack/compare/${old}...${new}" }, "branch-alias": { - "dev-trunk": "5.2.x-dev" + "dev-trunk": "5.3.x-dev" }, "version-constants": { "::PACKAGE_VERSION": "src/class-initializer.php" diff --git a/projects/plugins/boost/changelog/prerelease#2 b/projects/plugins/protect/changelog/prerelease#11 similarity index 100% rename from projects/plugins/boost/changelog/prerelease#2 rename to projects/plugins/protect/changelog/prerelease#11 diff --git a/projects/plugins/protect/composer.lock b/projects/plugins/protect/composer.lock index 19028ae6033fb..920a59e6563a4 100644 --- a/projects/plugins/protect/composer.lock +++ b/projects/plugins/protect/composer.lock @@ -1125,7 +1125,7 @@ "dist": { "type": "path", "url": "../../packages/my-jetpack", - "reference": "1356c22d5af932cc2f331bb5d2762a31609b14ed" + "reference": "73105b323ea52768c8db48a442ee4290d68b6efa" }, "require": { "automattic/jetpack-admin-ui": "@dev", @@ -1163,7 +1163,7 @@ "link-template": "https://github.com/Automattic/jetpack-my-jetpack/compare/${old}...${new}" }, "branch-alias": { - "dev-trunk": "5.2.x-dev" + "dev-trunk": "5.3.x-dev" }, "version-constants": { "::PACKAGE_VERSION": "src/class-initializer.php" diff --git a/projects/plugins/boost/changelog/prerelease#3 b/projects/plugins/search/changelog/prerelease#18 similarity index 100% rename from projects/plugins/boost/changelog/prerelease#3 rename to projects/plugins/search/changelog/prerelease#18 diff --git a/projects/plugins/search/composer.lock b/projects/plugins/search/composer.lock index 844752e99441f..f06b70a74691c 100644 --- a/projects/plugins/search/composer.lock +++ b/projects/plugins/search/composer.lock @@ -1065,7 +1065,7 @@ "dist": { "type": "path", "url": "../../packages/my-jetpack", - "reference": "1356c22d5af932cc2f331bb5d2762a31609b14ed" + "reference": "73105b323ea52768c8db48a442ee4290d68b6efa" }, "require": { "automattic/jetpack-admin-ui": "@dev", @@ -1103,7 +1103,7 @@ "link-template": "https://github.com/Automattic/jetpack-my-jetpack/compare/${old}...${new}" }, "branch-alias": { - "dev-trunk": "5.2.x-dev" + "dev-trunk": "5.3.x-dev" }, "version-constants": { "::PACKAGE_VERSION": "src/class-initializer.php" diff --git a/projects/plugins/boost/changelog/prerelease#4 b/projects/plugins/social/changelog/prerelease#11 similarity index 100% rename from projects/plugins/boost/changelog/prerelease#4 rename to projects/plugins/social/changelog/prerelease#11 diff --git a/projects/plugins/social/composer.lock b/projects/plugins/social/composer.lock index 5f2d3aa774d7c..d703c4a28382e 100644 --- a/projects/plugins/social/composer.lock +++ b/projects/plugins/social/composer.lock @@ -1065,7 +1065,7 @@ "dist": { "type": "path", "url": "../../packages/my-jetpack", - "reference": "1356c22d5af932cc2f331bb5d2762a31609b14ed" + "reference": "73105b323ea52768c8db48a442ee4290d68b6efa" }, "require": { "automattic/jetpack-admin-ui": "@dev", @@ -1103,7 +1103,7 @@ "link-template": "https://github.com/Automattic/jetpack-my-jetpack/compare/${old}...${new}" }, "branch-alias": { - "dev-trunk": "5.2.x-dev" + "dev-trunk": "5.3.x-dev" }, "version-constants": { "::PACKAGE_VERSION": "src/class-initializer.php" diff --git a/projects/js-packages/analytics/changelog/renovate-debug-4.x b/projects/plugins/starter-plugin/changelog/prerelease#3 similarity index 51% rename from projects/js-packages/analytics/changelog/renovate-debug-4.x rename to projects/plugins/starter-plugin/changelog/prerelease#3 index c47cb18e82997..9aa70e3ec1f75 100644 --- a/projects/js-packages/analytics/changelog/renovate-debug-4.x +++ b/projects/plugins/starter-plugin/changelog/prerelease#3 @@ -1,4 +1,5 @@ Significance: patch Type: changed +Comment: Updated composer.lock. + -Updated package dependencies. diff --git a/projects/plugins/starter-plugin/composer.lock b/projects/plugins/starter-plugin/composer.lock index 2b5cee01e55e6..1d34db41069a8 100644 --- a/projects/plugins/starter-plugin/composer.lock +++ b/projects/plugins/starter-plugin/composer.lock @@ -1065,7 +1065,7 @@ "dist": { "type": "path", "url": "../../packages/my-jetpack", - "reference": "1356c22d5af932cc2f331bb5d2762a31609b14ed" + "reference": "73105b323ea52768c8db48a442ee4290d68b6efa" }, "require": { "automattic/jetpack-admin-ui": "@dev", @@ -1103,7 +1103,7 @@ "link-template": "https://github.com/Automattic/jetpack-my-jetpack/compare/${old}...${new}" }, "branch-alias": { - "dev-trunk": "5.2.x-dev" + "dev-trunk": "5.3.x-dev" }, "version-constants": { "::PACKAGE_VERSION": "src/class-initializer.php" diff --git a/projects/js-packages/components/changelog/renovate-babel-monorepo b/projects/plugins/videopress/changelog/prerelease#18 similarity index 51% rename from projects/js-packages/components/changelog/renovate-babel-monorepo rename to projects/plugins/videopress/changelog/prerelease#18 index c47cb18e82997..9aa70e3ec1f75 100644 --- a/projects/js-packages/components/changelog/renovate-babel-monorepo +++ b/projects/plugins/videopress/changelog/prerelease#18 @@ -1,4 +1,5 @@ Significance: patch Type: changed +Comment: Updated composer.lock. + -Updated package dependencies. diff --git a/projects/plugins/videopress/composer.lock b/projects/plugins/videopress/composer.lock index bdfef9121ba65..6a9e6604f9891 100644 --- a/projects/plugins/videopress/composer.lock +++ b/projects/plugins/videopress/composer.lock @@ -1065,7 +1065,7 @@ "dist": { "type": "path", "url": "../../packages/my-jetpack", - "reference": "1356c22d5af932cc2f331bb5d2762a31609b14ed" + "reference": "73105b323ea52768c8db48a442ee4290d68b6efa" }, "require": { "automattic/jetpack-admin-ui": "@dev", @@ -1103,7 +1103,7 @@ "link-template": "https://github.com/Automattic/jetpack-my-jetpack/compare/${old}...${new}" }, "branch-alias": { - "dev-trunk": "5.2.x-dev" + "dev-trunk": "5.3.x-dev" }, "version-constants": { "::PACKAGE_VERSION": "src/class-initializer.php" From 43b05e712712a96de10a854f63fb5097ec03ad2c Mon Sep 17 00:00:00 2001 From: Christian Gastrell Date: Mon, 6 Jan 2025 13:08:25 -0300 Subject: [PATCH 63/98] make sure content and title are not just empty spaces to decide on triggering featured image generation (#40858) --- .../changelog/fix-jetpack-ai-featured-image-trigger-emtpy | 4 ++++ .../components/ai-image/featured-image.tsx | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 projects/plugins/jetpack/changelog/fix-jetpack-ai-featured-image-trigger-emtpy diff --git a/projects/plugins/jetpack/changelog/fix-jetpack-ai-featured-image-trigger-emtpy b/projects/plugins/jetpack/changelog/fix-jetpack-ai-featured-image-trigger-emtpy new file mode 100644 index 0000000000000..7dabf88ea7ca9 --- /dev/null +++ b/projects/plugins/jetpack/changelog/fix-jetpack-ai-featured-image-trigger-emtpy @@ -0,0 +1,4 @@ +Significance: patch +Type: other + +Jetpack AI: do not trigger featured image generation if title or content are just empty spaces diff --git a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/ai-image/featured-image.tsx b/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/ai-image/featured-image.tsx index 36d414b05ac1b..fed823639ba92 100644 --- a/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/ai-image/featured-image.tsx +++ b/projects/plugins/jetpack/extensions/plugins/ai-assistant-plugin/components/ai-image/featured-image.tsx @@ -339,7 +339,7 @@ export default function FeaturedImage( { const generateAgainText = __( 'Generate another image', 'jetpack' ); const generateText = __( 'Generate', 'jetpack' ); - const hasContent = postContent || postTitle ? true : false; + const hasContent = postContent.trim?.() || postTitle.trim?.() ? true : false; const hasPrompt = hasContent ? prompt.length >= 0 : prompt.length >= 3; const disableInput = notEnoughRequests || currentPointer?.generating || requireUpgrade; const disableAction = disableInput || ( ! hasContent && ! hasPrompt ); From 7aa20ee2ae2eddc0e84754347ba2cb6b0f59f46b Mon Sep 17 00:00:00 2001 From: Caroline Moore Date: Mon, 6 Jan 2025 11:30:27 -0500 Subject: [PATCH 64/98] Site Migrations: Add `migration_source_site_domain` option to sites API (#40552) * Add migration source site domain to options API * changelog * ensure we fallback to a default empty string --- .../plugins/jetpack/changelog/add-option-to-sites-api | 4 ++++ .../class.wpcom-json-api-get-site-endpoint.php | 4 ++++ .../plugins/jetpack/sal/class.json-api-site-base.php | 9 +++++++++ 3 files changed, 17 insertions(+) create mode 100644 projects/plugins/jetpack/changelog/add-option-to-sites-api diff --git a/projects/plugins/jetpack/changelog/add-option-to-sites-api b/projects/plugins/jetpack/changelog/add-option-to-sites-api new file mode 100644 index 0000000000000..e06acc3799f0b --- /dev/null +++ b/projects/plugins/jetpack/changelog/add-option-to-sites-api @@ -0,0 +1,4 @@ +Significance: minor +Type: other + +Add new option to site options api diff --git a/projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-site-endpoint.php b/projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-site-endpoint.php index 1b844326cd2d1..43e738dcf68a1 100644 --- a/projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-site-endpoint.php +++ b/projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-site-endpoint.php @@ -211,6 +211,7 @@ class WPCOM_JSON_API_GET_Site_Endpoint extends WPCOM_JSON_API_Endpoint { 'blogging_prompts_settings', 'launchpad_screen', 'launchpad_checklist_tasks_statuses', + 'migration_source_site_domain', 'wpcom_production_blog_id', 'wpcom_staging_blog_ids', 'can_blaze', @@ -902,6 +903,9 @@ protected function render_option_keys( &$options_response_keys ) { case 'launchpad_checklist_tasks_statuses': $options[ $key ] = $site->get_launchpad_checklist_tasks_statuses(); break; + case 'migration_source_site_domain': + $options[ $key ] = $site->get_migration_source_site_domain(); + break; case 'wpcom_production_blog_id': $options[ $key ] = $site->get_wpcom_production_blog_id(); break; diff --git a/projects/plugins/jetpack/sal/class.json-api-site-base.php b/projects/plugins/jetpack/sal/class.json-api-site-base.php index 0a0e899cc691b..12d0eb89a7f49 100644 --- a/projects/plugins/jetpack/sal/class.json-api-site-base.php +++ b/projects/plugins/jetpack/sal/class.json-api-site-base.php @@ -1562,6 +1562,15 @@ public function get_launchpad_checklist_tasks_statuses() { return array(); } + /** + * Get site option for migration source site domain + * + * @return string + */ + public function get_migration_source_site_domain() { + return get_option( 'migration_source_site_domain', '' ); + } + /** * Detect whether a site is WordPress.com Staging Site. * From a4e72c9b07e1e575fcb733a505ade99f57db7870 Mon Sep 17 00:00:00 2001 From: Mike Watson Date: Mon, 6 Jan 2025 11:36:24 -0500 Subject: [PATCH 65/98] Jetpack AI: Moving AI Response Feedback feature out of beta (#40859) * Jetpack AI: Moving AI Response Feedback feature out of beta * changelog --- .../jetpack/changelog/change-jetpack-ai-feedback-out-of-beta | 4 ++++ projects/plugins/jetpack/extensions/index.json | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 projects/plugins/jetpack/changelog/change-jetpack-ai-feedback-out-of-beta diff --git a/projects/plugins/jetpack/changelog/change-jetpack-ai-feedback-out-of-beta b/projects/plugins/jetpack/changelog/change-jetpack-ai-feedback-out-of-beta new file mode 100644 index 0000000000000..5c59f2cf63e23 --- /dev/null +++ b/projects/plugins/jetpack/changelog/change-jetpack-ai-feedback-out-of-beta @@ -0,0 +1,4 @@ +Significance: patch +Type: other + +Jetpack AI: Moving AI Response Feedback feature out of beta diff --git a/projects/plugins/jetpack/extensions/index.json b/projects/plugins/jetpack/extensions/index.json index 49d5b23b4e391..a2fe1a4a7e689 100644 --- a/projects/plugins/jetpack/extensions/index.json +++ b/projects/plugins/jetpack/extensions/index.json @@ -71,7 +71,8 @@ "ai-general-purpose-image-generator", "ai-proofread-breve", "ai-assistant-site-logo-support", - "ai-title-optimization-keywords-support" + "ai-title-optimization-keywords-support", + "ai-response-feedback" ], "beta": [ "google-docs-embed", @@ -80,7 +81,6 @@ "videopress/video-chapters", "ai-assistant-backend-prompts", "ai-list-to-table-transform", - "ai-response-feedback", "ai-seo-assistant" ], "experimental": [], From ecd84a508af8456f291059b96a043ec9e700bef9 Mon Sep 17 00:00:00 2001 From: Nate Weller Date: Thu, 14 Nov 2024 10:42:12 -0700 Subject: [PATCH 66/98] Init project branch From 61f253e19036ddcedf79d75e5d647ac351951f74 Mon Sep 17 00:00:00 2001 From: dkmyta <43220201+dkmyta@users.noreply.github.com> Date: Thu, 14 Nov 2024 11:03:36 -0800 Subject: [PATCH 67/98] Protect: Add Go to Cloud and Scan now button to Protect primary header (#40057) Co-authored-by: Nate Weller --- .../changelog/add-protect-header-buttons | 4 +++ .../src/js/components/admin-page/index.jsx | 27 +++++++++++++++++-- .../components/admin-page/styles.module.scss | 10 +++++++ .../src/js/components/scan-button/index.jsx | 4 +++ 4 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 projects/plugins/protect/changelog/add-protect-header-buttons diff --git a/projects/plugins/protect/changelog/add-protect-header-buttons b/projects/plugins/protect/changelog/add-protect-header-buttons new file mode 100644 index 0000000000000..24c40f542d7ee --- /dev/null +++ b/projects/plugins/protect/changelog/add-protect-header-buttons @@ -0,0 +1,4 @@ +Significance: minor +Type: changed + +Adds Go to Cloud and Scan now buttons to the primary header diff --git a/projects/plugins/protect/src/js/components/admin-page/index.jsx b/projects/plugins/protect/src/js/components/admin-page/index.jsx index 4579831b5f0a5..4e93ae443aa72 100644 --- a/projects/plugins/protect/src/js/components/admin-page/index.jsx +++ b/projects/plugins/protect/src/js/components/admin-page/index.jsx @@ -1,16 +1,20 @@ import { AdminPage as JetpackAdminPage, + Button, Container, + getRedirectUrl, JetpackProtectLogo, } from '@automattic/jetpack-components'; import { useConnection } from '@automattic/jetpack-connection'; import { __, sprintf } from '@wordpress/i18n'; import { useEffect } from 'react'; -import { useNavigate } from 'react-router-dom'; +import { useLocation, useNavigate } from 'react-router-dom'; import useNotices from '../../hooks/use-notices'; +import usePlan from '../../hooks/use-plan'; import useProtectData from '../../hooks/use-protect-data'; import useWafData from '../../hooks/use-waf-data'; import Notice from '../notice'; +import ScanButton from '../scan-button'; import Tabs, { Tab } from '../tabs'; import styles from './styles.module.scss'; @@ -24,6 +28,8 @@ const AdminPage = ( { children } ) => { current: { threats: numThreats }, }, } = useProtectData(); + const location = useLocation(); + const { hasPlan } = usePlan(); // Redirect to the setup page if the site is not registered. useEffect( () => { @@ -36,10 +42,27 @@ const AdminPage = ( { children } ) => { return null; } + const viewingScanPage = location.pathname.includes( '/scan' ); + + const { siteSuffix, blogID } = window.jetpackProtectInitialState || {}; + const goToCloudUrl = getRedirectUrl( 'jetpack-scan-dash', { site: blogID ?? siteSuffix } ); + return ( } + header={ +
    + + { hasPlan && viewingScanPage && ( +
    + + +
    + ) } +
    + } > { notice && } diff --git a/projects/plugins/protect/src/js/components/admin-page/styles.module.scss b/projects/plugins/protect/src/js/components/admin-page/styles.module.scss index e70d2cdb076c7..adf7dc594b907 100644 --- a/projects/plugins/protect/src/js/components/admin-page/styles.module.scss +++ b/projects/plugins/protect/src/js/components/admin-page/styles.module.scss @@ -2,6 +2,16 @@ white-space: nowrap; } +.header { + display: flex; + justify-content: space-between; + + &__scan_buttons { + display: flex; + gap: calc( var( --spacing-base ) * 2 ); // 16px + } +} + .navigation { margin-top: calc( var( --spacing-base ) * 3 * -1 ); // -24px } diff --git a/projects/plugins/protect/src/js/components/scan-button/index.jsx b/projects/plugins/protect/src/js/components/scan-button/index.jsx index 9df71f5984cf1..19134582abe3c 100644 --- a/projects/plugins/protect/src/js/components/scan-button/index.jsx +++ b/projects/plugins/protect/src/js/components/scan-button/index.jsx @@ -1,12 +1,14 @@ import { Button } from '@automattic/jetpack-components'; import { __ } from '@wordpress/i18n'; import React, { forwardRef, useMemo } from 'react'; +import { useNavigate } from 'react-router-dom'; import useScanStatusQuery, { isScanInProgress } from '../../data/scan/use-scan-status-query'; import useStartScanMutator from '../../data/scan/use-start-scan-mutation'; const ScanButton = forwardRef( ( { variant = 'secondary', children, ...props }, ref ) => { const startScanMutation = useStartScanMutator(); const { data: status } = useScanStatusQuery(); + const navigate = useNavigate(); const disabled = useMemo( () => { return startScanMutation.isPending || isScanInProgress( status ); @@ -15,6 +17,7 @@ const ScanButton = forwardRef( ( { variant = 'secondary', children, ...props }, const handleScanClick = () => { return event => { event.preventDefault(); + navigate( '/scan' ); startScanMutation.mutate(); }; }; @@ -25,6 +28,7 @@ const ScanButton = forwardRef( ( { variant = 'secondary', children, ...props }, variant={ variant } onClick={ handleScanClick() } disabled={ disabled } + weight={ 'regular' } { ...props } > { children ?? __( 'Scan now', 'jetpack-protect' ) } From 61e9ce488bb9ed20845e0d9d26820431e4eb250a Mon Sep 17 00:00:00 2001 From: dkmyta <43220201+dkmyta@users.noreply.github.com> Date: Thu, 14 Nov 2024 11:10:46 -0800 Subject: [PATCH 68/98] Protect: Update Scan and History headers (#40058) * Update Scan and History section header structure/content * changelog * Update projects/plugins/protect/src/js/routes/scan/scan-admin-section-hero.tsx Co-authored-by: Nate Weller --------- Co-authored-by: Nate Weller --- .../update-protect-scan-and-history-headers | 4 + .../history/history-admin-section-hero.tsx | 36 +++--- .../js/routes/scan/history/styles.module.scss | 8 -- .../routes/scan/scan-admin-section-hero.tsx | 107 +++++++++++++----- .../src/js/routes/scan/styles.module.scss | 8 +- 5 files changed, 104 insertions(+), 59 deletions(-) create mode 100644 projects/plugins/protect/changelog/update-protect-scan-and-history-headers diff --git a/projects/plugins/protect/changelog/update-protect-scan-and-history-headers b/projects/plugins/protect/changelog/update-protect-scan-and-history-headers new file mode 100644 index 0000000000000..cd930e395e0ed --- /dev/null +++ b/projects/plugins/protect/changelog/update-protect-scan-and-history-headers @@ -0,0 +1,4 @@ +Significance: minor +Type: changed + +Updates the structure and content of the Scan and History page headers diff --git a/projects/plugins/protect/src/js/routes/scan/history/history-admin-section-hero.tsx b/projects/plugins/protect/src/js/routes/scan/history/history-admin-section-hero.tsx index 9c8f30b7b8067..4aa517f5f120b 100644 --- a/projects/plugins/protect/src/js/routes/scan/history/history-admin-section-hero.tsx +++ b/projects/plugins/protect/src/js/routes/scan/history/history-admin-section-hero.tsx @@ -1,11 +1,10 @@ -import { Status, Text } from '@automattic/jetpack-components'; +import { Text } from '@automattic/jetpack-components'; import { dateI18n } from '@wordpress/date'; import { __, sprintf } from '@wordpress/i18n'; import { useMemo } from 'react'; import { useParams } from 'react-router-dom'; import AdminSectionHero from '../../../components/admin-section-hero'; import ErrorAdminSectionHero from '../../../components/error-admin-section-hero'; -import ScanNavigation from '../../../components/scan-navigation'; import useThreatsList from '../../../components/threats-list/use-threats-list'; import useProtectData from '../../../hooks/use-protect-data'; import styles from './styles.module.scss'; @@ -48,35 +47,34 @@ const HistoryAdminSectionHero: React.FC = () => { - + + { oldestFirstDetected ? ( + + { sprintf( + /* translators: %s: Oldest first detected date */ + __( '%s - Today', 'jetpack-protect' ), + dateI18n( 'F jS g:i A', oldestFirstDetected, false ) + ) } + + ) : ( + __( 'Most recent results', 'jetpack-protect' ) + ) } + { numAllThreats > 0 ? sprintf( /* translators: %s: Total number of threats */ - __( '%1$s previously active %2$s', 'jetpack-protect' ), + __( '%1$s previous %2$s', 'jetpack-protect' ), numAllThreats, numAllThreats === 1 ? 'threat' : 'threats' ) - : __( 'No previously active threats', 'jetpack-protect' ) } + : __( 'No previous threats', 'jetpack-protect' ) } - { oldestFirstDetected ? ( - - { sprintf( - /* translators: %s: Oldest first detected date */ - __( '%s - Today', 'jetpack-protect' ), - dateI18n( 'F jS g:i A', oldestFirstDetected, false ) - ) } - - ) : ( - __( 'Most recent results', 'jetpack-protect' ) - ) } + { __( 'Here you can view all of your threats till this date.', 'jetpack-protect' ) } -
    - -
    } /> diff --git a/projects/plugins/protect/src/js/routes/scan/history/styles.module.scss b/projects/plugins/protect/src/js/routes/scan/history/styles.module.scss index f66602e59a9e9..d30f3e0ac3344 100644 --- a/projects/plugins/protect/src/js/routes/scan/history/styles.module.scss +++ b/projects/plugins/protect/src/js/routes/scan/history/styles.module.scss @@ -8,10 +8,6 @@ flex-direction: column; } -.subheading-content { - font-weight: bold; -} - .list-header { display: flex; justify-content: flex-end; @@ -38,8 +34,4 @@ .list-title { display: none; } -} - -.scan-navigation { - margin-top: calc( var( --spacing-base ) * 3 ); // 24px } \ No newline at end of file diff --git a/projects/plugins/protect/src/js/routes/scan/scan-admin-section-hero.tsx b/projects/plugins/protect/src/js/routes/scan/scan-admin-section-hero.tsx index 60d484cd4a16f..1c5cc6cac49b9 100644 --- a/projects/plugins/protect/src/js/routes/scan/scan-admin-section-hero.tsx +++ b/projects/plugins/protect/src/js/routes/scan/scan-admin-section-hero.tsx @@ -1,30 +1,49 @@ -import { Text, Status, useBreakpointMatch } from '@automattic/jetpack-components'; +import { Text, Button, useBreakpointMatch } from '@automattic/jetpack-components'; import { dateI18n } from '@wordpress/date'; import { __, _n, sprintf } from '@wordpress/i18n'; import { useState } from 'react'; +import { useMemo } from 'react'; import AdminSectionHero from '../../components/admin-section-hero'; import ErrorAdminSectionHero from '../../components/error-admin-section-hero'; import OnboardingPopover from '../../components/onboarding-popover'; -import ScanNavigation from '../../components/scan-navigation'; +import useThreatsList from '../../components/threats-list/use-threats-list'; import useScanStatusQuery, { isScanInProgress } from '../../data/scan/use-scan-status-query'; +import useFixers from '../../hooks/use-fixers'; +import useModal from '../../hooks/use-modal'; import usePlan from '../../hooks/use-plan'; import useProtectData from '../../hooks/use-protect-data'; import ScanningAdminSectionHero from './scanning-admin-section-hero'; import styles from './styles.module.scss'; const ScanAdminSectionHero: React.FC = () => { - const { hasPlan } = usePlan(); - const [ isSm ] = useBreakpointMatch( 'sm' ); const { counts: { current: { threats: numThreats }, }, lastChecked, } = useProtectData(); + const { hasPlan } = usePlan(); + const [ isSm ] = useBreakpointMatch( 'sm' ); const { data: status } = useScanStatusQuery(); + const { list } = useThreatsList(); + const { isThreatFixInProgress, isThreatFixStale } = useFixers(); + const { setModal } = useModal(); // Popover anchor const [ dailyScansPopoverAnchor, setDailyScansPopoverAnchor ] = useState( null ); + const [ showAutoFixersPopoverAnchor, setShowAutoFixersPopoverAnchor ] = useState( null ); + + // List of fixable threats that do not have a fix in progress + const fixableList = useMemo( () => { + return list.filter( threat => { + const threatId = parseInt( threat.id ); + return ( + threat.fixable && ! isThreatFixInProgress( threatId ) && ! isThreatFixStale( threatId ) + ); + } ); + }, [ list, isThreatFixInProgress, isThreatFixStale ] ); + + const scanning = isScanInProgress( status ); let lastCheckedLocalTimestamp = null; if ( lastChecked ) { @@ -32,7 +51,17 @@ const ScanAdminSectionHero: React.FC = () => { lastCheckedLocalTimestamp = new Date( lastChecked + ' UTC' ).getTime(); } - if ( isScanInProgress( status ) ) { + const handleShowAutoFixersClick = threatList => { + return event => { + event.preventDefault(); + setModal( { + type: 'FIX_ALL_THREATS', + props: { threatList }, + } ); + }; + }; + + if ( scanning ) { return ; } @@ -50,12 +79,27 @@ const ScanAdminSectionHero: React.FC = () => { - + + { lastCheckedLocalTimestamp + ? sprintf( + // translators: %s: date and time of the last scan + __( '%s results', 'jetpack-protect' ), + dateI18n( 'F jS g:i A', lastCheckedLocalTimestamp, false ) + ) + : __( 'Most recent results', 'jetpack-protect' ) } + + { ! hasPlan && ( + + ) } { numThreats > 0 ? sprintf( /* translators: %s: Total number of threats/vulnerabilities */ - __( '%1$s %2$s found', 'jetpack-protect' ), + __( '%1$s active %2$s', 'jetpack-protect' ), numThreats, hasPlan ? _n( 'threat', 'threats', numThreats, 'jetpack-protect' ) @@ -63,7 +107,7 @@ const ScanAdminSectionHero: React.FC = () => { ) : sprintf( /* translators: %s: Pluralized type of threat/vulnerability */ - __( 'No %s found', 'jetpack-protect' ), + __( 'No active %s', 'jetpack-protect' ), hasPlan ? __( 'threats', 'jetpack-protect' ) : __( @@ -75,31 +119,38 @@ const ScanAdminSectionHero: React.FC = () => { <> - - { lastCheckedLocalTimestamp ? ( - <> - - { dateI18n( 'F jS g:i A', lastCheckedLocalTimestamp, false ) } - -   - { __( 'results', 'jetpack-protect' ) } - - ) : ( - __( 'Most recent results', 'jetpack-protect' ) + + { __( + 'We actively review your sites files line-by-line to identify threats and vulnerabilities.', + 'jetpack-protect' ) } - { ! hasPlan && ( - + { fixableList.length > 0 && ( + <> + + { ! scanning && ( + -
    - -
    } /> diff --git a/projects/plugins/protect/src/js/routes/scan/styles.module.scss b/projects/plugins/protect/src/js/routes/scan/styles.module.scss index 8651420159fa1..908e34f6e71d7 100644 --- a/projects/plugins/protect/src/js/routes/scan/styles.module.scss +++ b/projects/plugins/protect/src/js/routes/scan/styles.module.scss @@ -1,5 +1,5 @@ -.subheading-content { - font-weight: bold; +.subheading-text { + white-space: nowrap; } .product-section, .info-section { @@ -7,6 +7,6 @@ margin-bottom: calc( var( --spacing-base ) * 7 ); // 56px } -.scan-navigation { - margin-top: calc( var( --spacing-base ) * 3 ); // 24px +.auto-fixers { + margin-top: calc( var( --spacing-base ) * 4 ); // 32px } \ No newline at end of file From ecc16142b7e7574b603ac0c9c3e2b87a27735ea4 Mon Sep 17 00:00:00 2001 From: Nate Weller Date: Mon, 18 Nov 2024 15:33:35 -0700 Subject: [PATCH 69/98] Protect: de-emphasize cloud link by using link variant (#40211) --- projects/plugins/protect/src/js/components/admin-page/index.jsx | 2 +- .../protect/src/js/components/admin-page/styles.module.scss | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/plugins/protect/src/js/components/admin-page/index.jsx b/projects/plugins/protect/src/js/components/admin-page/index.jsx index 4e93ae443aa72..2d023560517f3 100644 --- a/projects/plugins/protect/src/js/components/admin-page/index.jsx +++ b/projects/plugins/protect/src/js/components/admin-page/index.jsx @@ -55,7 +55,7 @@ const AdminPage = ( { children } ) => { { hasPlan && viewingScanPage && (
    - diff --git a/projects/plugins/protect/src/js/components/admin-page/styles.module.scss b/projects/plugins/protect/src/js/components/admin-page/styles.module.scss index adf7dc594b907..adc0cee561ba5 100644 --- a/projects/plugins/protect/src/js/components/admin-page/styles.module.scss +++ b/projects/plugins/protect/src/js/components/admin-page/styles.module.scss @@ -8,7 +8,7 @@ &__scan_buttons { display: flex; - gap: calc( var( --spacing-base ) * 2 ); // 16px + gap: calc( var( --spacing-base ) * 3 ); // 24px } } From 5b90b11c650821cb1b3a7aa074e8935447d197f9 Mon Sep 17 00:00:00 2001 From: Nate Weller Date: Fri, 29 Nov 2024 21:00:37 -0700 Subject: [PATCH 70/98] Protect: add ShieldIcon component --- .../components/admin-section-hero/index.tsx | 21 ++- .../stories/index.stories.jsx | 4 +- .../src/js/components/shield-icon/index.tsx | 165 ++++++++++++++++++ .../shield-icon/stories/index.stories.tsx | 50 ++++++ 4 files changed, 230 insertions(+), 10 deletions(-) create mode 100644 projects/plugins/protect/src/js/components/shield-icon/index.tsx create mode 100644 projects/plugins/protect/src/js/components/shield-icon/stories/index.stories.tsx diff --git a/projects/plugins/protect/src/js/components/admin-section-hero/index.tsx b/projects/plugins/protect/src/js/components/admin-section-hero/index.tsx index 5ed83bebc8638..758c8c21e0193 100644 --- a/projects/plugins/protect/src/js/components/admin-section-hero/index.tsx +++ b/projects/plugins/protect/src/js/components/admin-section-hero/index.tsx @@ -1,9 +1,6 @@ -import { - AdminSectionHero as JetpackAdminSectionHero, - H3, - getIconBySlug, -} from '@automattic/jetpack-components'; +import { AdminSectionHero as JetpackAdminSectionHero, H3 } from '@automattic/jetpack-components'; import SeventyFiveLayout from '../seventy-five-layout'; +import ShieldIcon from '../shield-icon'; import AdminSectionHeroNotices from './admin-section-hero-notices'; import styles from './styles.module.scss'; @@ -15,7 +12,7 @@ interface AdminSectionHeroProps { } interface AdminSectionHeroComponent extends React.FC< AdminSectionHeroProps > { - Heading: React.FC< { children: React.ReactNode; showIcon?: boolean } >; + Heading: React.FC< { children: React.ReactNode; showIcon?: boolean; variant?: string } >; Subheading: React.FC< { children: React.ReactNode } >; } @@ -44,17 +41,23 @@ const AdminSectionHero: AdminSectionHeroComponent = ( { AdminSectionHero.Heading = ( { children, + variant = 'default', showIcon = false, }: { children: React.ReactNode; + variant?: 'default' | 'success' | 'error'; showIcon?: boolean; } ) => { - const Icon = getIconBySlug( 'protect' ); - return (

    { children } - { showIcon && } + { showIcon && ( + + ) }

    ); }; diff --git a/projects/plugins/protect/src/js/components/admin-section-hero/stories/index.stories.jsx b/projects/plugins/protect/src/js/components/admin-section-hero/stories/index.stories.jsx index 7d5b4f8066c93..ca2dfda7fc98e 100644 --- a/projects/plugins/protect/src/js/components/admin-section-hero/stories/index.stories.jsx +++ b/projects/plugins/protect/src/js/components/admin-section-hero/stories/index.stories.jsx @@ -12,7 +12,9 @@ Default.args = { main: ( <> - { 'No threats found' } + + { 'No threats found' } + { 'Most recent results' } diff --git a/projects/plugins/protect/src/js/components/shield-icon/index.tsx b/projects/plugins/protect/src/js/components/shield-icon/index.tsx new file mode 100644 index 0000000000000..3bf7f479f0051 --- /dev/null +++ b/projects/plugins/protect/src/js/components/shield-icon/index.tsx @@ -0,0 +1,165 @@ +import { type JSX } from 'react'; + +/** + * Protect Shield and Checkmark SVG Icon + * + * @param {object} props - Component props. + * @param {string} props.variant - Icon variant. + * @param {string} props.fill - Icon fill color. + * @param {string} props.className - Additional class names. + * @param {number} props.height - Icon height. + * @return {JSX.Element} Protect Shield and Checkmark SVG Icon + */ +export default function ShieldIcon( { + variant = 'default', + height = 32, + className, + fill, +}: { + variant: + | 'default' + | 'success' + | 'error' + | 'default-outline' + | 'success-outline' + | 'error-outline'; + className?: string; + height?: number; + fill?: string; +} ): JSX.Element { + if ( 'error-outline' === variant ) { + return ( + + + + + ); + } + + if ( 'error' === variant ) { + return ( + + + + + ); + } + + if ( 'success-outline' === variant ) { + return ( + + + + + ); + } + + if ( 'success' === variant ) { + return ( + + + + + ); + } + + if ( 'default-outline' === variant ) { + return ( + + + + ); + } + + return ( + + + + ); +} diff --git a/projects/plugins/protect/src/js/components/shield-icon/stories/index.stories.tsx b/projects/plugins/protect/src/js/components/shield-icon/stories/index.stories.tsx new file mode 100644 index 0000000000000..d10365f4b0834 --- /dev/null +++ b/projects/plugins/protect/src/js/components/shield-icon/stories/index.stories.tsx @@ -0,0 +1,50 @@ +import React from 'react'; +import ShieldIcon from '../index'; + +export default { + title: 'Plugins/Protect/Sheild Icon', + component: ShieldIcon, + parameters: { + layout: 'centered', + }, + decorators: [ + Story => ( +
    + +
    + ), + ], + argTypes: { + variant: { + control: { + type: 'select', + }, + options: [ + 'default', + 'success', + 'error', + 'default-outline', + 'success-outline', + 'error-outline', + ], + }, + fill: { + control: 'color', + }, + }, +}; + +export const Default = args => ; +Default.args = { + variant: 'default', +}; + +export const SuccessVariant = args => ; +SuccessVariant.args = { + variant: 'success', +}; + +export const ErrorVariant = args => ; +ErrorVariant.args = { + variant: 'error', +}; From cdcce9a307d8ecf1e0ceb5efa9fa0ae745620e0f Mon Sep 17 00:00:00 2001 From: Nate Weller Date: Wed, 4 Dec 2024 20:26:54 -0700 Subject: [PATCH 71/98] Protect: Add ShieldIcon Component (#40402) --- .../components/changelog/add-shield-icon | 4 + .../components/shield-icon/index.tsx | 79 +++++++++ .../shield-icon/stories/index.stories.tsx | 54 ++++++ projects/js-packages/components/index.ts | 1 + .../protect/changelog/refactor-alert-icon | 5 + .../components/admin-section-hero/index.tsx | 20 ++- .../admin-section-hero/styles.module.scss | 4 +- .../src/js/components/alert-icon/index.jsx | 74 -------- .../alert-icon/stories/index.stories.jsx | 17 -- .../components/alert-icon/styles.module.scss | 11 -- .../src/js/components/shield-icon/index.tsx | 165 ------------------ .../shield-icon/stories/index.stories.tsx | 50 ------ .../history/history-admin-section-hero.tsx | 2 +- .../routes/scan/scan-admin-section-hero.tsx | 2 +- 14 files changed, 162 insertions(+), 326 deletions(-) create mode 100644 projects/js-packages/components/changelog/add-shield-icon create mode 100644 projects/js-packages/components/components/shield-icon/index.tsx create mode 100644 projects/js-packages/components/components/shield-icon/stories/index.stories.tsx create mode 100644 projects/plugins/protect/changelog/refactor-alert-icon delete mode 100644 projects/plugins/protect/src/js/components/alert-icon/index.jsx delete mode 100644 projects/plugins/protect/src/js/components/alert-icon/stories/index.stories.jsx delete mode 100644 projects/plugins/protect/src/js/components/alert-icon/styles.module.scss delete mode 100644 projects/plugins/protect/src/js/components/shield-icon/index.tsx delete mode 100644 projects/plugins/protect/src/js/components/shield-icon/stories/index.stories.tsx diff --git a/projects/js-packages/components/changelog/add-shield-icon b/projects/js-packages/components/changelog/add-shield-icon new file mode 100644 index 0000000000000..5c6cc27eeb809 --- /dev/null +++ b/projects/js-packages/components/changelog/add-shield-icon @@ -0,0 +1,4 @@ +Significance: minor +Type: added + +Add ShieldIcon component diff --git a/projects/js-packages/components/components/shield-icon/index.tsx b/projects/js-packages/components/components/shield-icon/index.tsx new file mode 100644 index 0000000000000..fee9f4d70c463 --- /dev/null +++ b/projects/js-packages/components/components/shield-icon/index.tsx @@ -0,0 +1,79 @@ +import React from 'react'; + +const COLORS = { + error: '#D63638', + warning: '#F0B849', + success: '#069E08', + default: '#1d2327', +}; + +/** + * Protect Shield SVG Icon + * + * @param {object} props - Component props. + * @param {string} props.className - Additional class names. + * @param {string} props.contrast - Icon contrast color. Overrides variant. + * @param {string} props.fill - Icon fill color (default, success, warning, error, or a custom color code string). Overrides variant. + * @param {number} props.height - Icon height (px). Width is calculated based on height. + * @param {string} props.icon - Icon variant (success, error). Overrides variant. + * @param {boolean} props.outline - When enabled, the icon will use an outline style. + * @param {string} props.variant - Icon variant (default, success, error). + * + * @return {React.ReactElement} Protect Shield SVG Icon + */ +export default function ShieldIcon( { + className, + contrast = '#fff', + fill, + height = 32, + icon, + outline = false, + variant = 'default', +}: { + className?: string; + contrast?: string; + fill?: 'default' | 'success' | 'warning' | 'error' | string; + height?: number; + icon?: 'success' | 'error'; + outline?: boolean; + variant: 'default' | 'success' | 'warning' | 'error'; +} ): JSX.Element { + const shieldFill = COLORS[ fill ] || fill || COLORS[ variant ]; + const iconFill = outline ? shieldFill : contrast; + const iconVariant = icon || variant; + + return ( + + + { 'success' === iconVariant && ( + + ) } + { [ 'warning', 'error' ].includes( iconVariant ) && ( + + ) } + + ); +} diff --git a/projects/js-packages/components/components/shield-icon/stories/index.stories.tsx b/projects/js-packages/components/components/shield-icon/stories/index.stories.tsx new file mode 100644 index 0000000000000..b5a16d4da4075 --- /dev/null +++ b/projects/js-packages/components/components/shield-icon/stories/index.stories.tsx @@ -0,0 +1,54 @@ +import ShieldIcon from '../index'; + +export default { + title: 'JS Packages/Components/Sheild Icon', + component: ShieldIcon, + parameters: { + layout: 'centered', + }, + argTypes: { + variant: { + control: { + type: 'select', + }, + options: [ 'default', 'success', 'warning', 'error' ], + }, + icon: { + control: { + type: 'select', + }, + options: [ 'success', 'error' ], + }, + fill: { + control: 'color', + }, + outline: { + control: 'boolean', + }, + }, +}; + +export const Default = args => ; +Default.args = { + variant: 'success', + outline: false, +}; + +export const Variants = () => { + return ( +
    +
    + + + + +
    +
    + + + + +
    +
    + ); +}; diff --git a/projects/js-packages/components/index.ts b/projects/js-packages/components/index.ts index eb90df97ad5fe..4b0f3612012e7 100644 --- a/projects/js-packages/components/index.ts +++ b/projects/js-packages/components/index.ts @@ -47,6 +47,7 @@ export { default as ThemeProvider } from './components/theme-provider'; export { default as ThreatFixerButton } from './components/threat-fixer-button'; export { default as ThreatSeverityBadge } from './components/threat-severity-badge'; export { default as ThreatsDataViews } from './components/threats-data-views'; +export { default as ShieldIcon } from './components/shield-icon'; export { default as Text, H2, H3, Title } from './components/text'; export { default as ToggleControl } from './components/toggle-control'; export { default as numberFormat } from './components/number-format'; diff --git a/projects/plugins/protect/changelog/refactor-alert-icon b/projects/plugins/protect/changelog/refactor-alert-icon new file mode 100644 index 0000000000000..46b4c247b1b9f --- /dev/null +++ b/projects/plugins/protect/changelog/refactor-alert-icon @@ -0,0 +1,5 @@ +Significance: patch +Type: changed +Comment: Refactored icon component code. + + diff --git a/projects/plugins/protect/src/js/components/admin-section-hero/index.tsx b/projects/plugins/protect/src/js/components/admin-section-hero/index.tsx index 758c8c21e0193..5ccf607698084 100644 --- a/projects/plugins/protect/src/js/components/admin-section-hero/index.tsx +++ b/projects/plugins/protect/src/js/components/admin-section-hero/index.tsx @@ -1,6 +1,9 @@ -import { AdminSectionHero as JetpackAdminSectionHero, H3 } from '@automattic/jetpack-components'; +import { + AdminSectionHero as JetpackAdminSectionHero, + H3, + ShieldIcon, +} from '@automattic/jetpack-components'; import SeventyFiveLayout from '../seventy-five-layout'; -import ShieldIcon from '../shield-icon'; import AdminSectionHeroNotices from './admin-section-hero-notices'; import styles from './styles.module.scss'; @@ -12,7 +15,12 @@ interface AdminSectionHeroProps { } interface AdminSectionHeroComponent extends React.FC< AdminSectionHeroProps > { - Heading: React.FC< { children: React.ReactNode; showIcon?: boolean; variant?: string } >; + Heading: React.FC< { + children: React.ReactNode; + showIcon?: boolean; + variant?: 'default' | 'success' | 'error'; + outline?: boolean; + } >; Subheading: React.FC< { children: React.ReactNode } >; } @@ -53,8 +61,10 @@ AdminSectionHero.Heading = ( { { children } { showIcon && ( ) } diff --git a/projects/plugins/protect/src/js/components/admin-section-hero/styles.module.scss b/projects/plugins/protect/src/js/components/admin-section-hero/styles.module.scss index 5881bcd910045..a414aa9216f5c 100644 --- a/projects/plugins/protect/src/js/components/admin-section-hero/styles.module.scss +++ b/projects/plugins/protect/src/js/components/admin-section-hero/styles.module.scss @@ -13,7 +13,7 @@ } .heading-icon { - margin-left: var( --spacing-base ); // 8px + margin-left: calc( var( --spacing-base ) * 1.5 ); // 12px margin-bottom: calc( var( --spacing-base ) / 2 * -1 ); // -4px } @@ -23,4 +23,4 @@ .connection-error-col { margin-top: calc( var( --spacing-base ) * 3 + 1px ); // 25px -} \ No newline at end of file +} diff --git a/projects/plugins/protect/src/js/components/alert-icon/index.jsx b/projects/plugins/protect/src/js/components/alert-icon/index.jsx deleted file mode 100644 index 8a4d32da59553..0000000000000 --- a/projects/plugins/protect/src/js/components/alert-icon/index.jsx +++ /dev/null @@ -1,74 +0,0 @@ -import { Path, SVG, Rect, G } from '@wordpress/components'; -import React from 'react'; -import styles from './styles.module.scss'; - -/** - * Alert icon - * - * @param {object} props - Props. - * @param {string} props.className - Optional component class name. - * @param {string} props.color - Optional icon color. Defaults to '#D63638'. - * @return { React.ReactNode } The Alert Icon component. - */ -export default function AlertSVGIcon( { className, color = '#D63638' } ) { - return ( -
    - - - - - - - - - - - - - - - - - - - -
    - ); -} diff --git a/projects/plugins/protect/src/js/components/alert-icon/stories/index.stories.jsx b/projects/plugins/protect/src/js/components/alert-icon/stories/index.stories.jsx deleted file mode 100644 index 47b2ee32d4b51..0000000000000 --- a/projects/plugins/protect/src/js/components/alert-icon/stories/index.stories.jsx +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react'; -import AlertIcon from '../index.jsx'; - -export default { - title: 'Plugins/Protect/Alert Icon', - component: AlertIcon, - argTypes: { - color: { - control: { - type: 'color', - }, - }, - }, -}; - -const FooterTemplate = args => ; -export const Default = FooterTemplate.bind( {} ); diff --git a/projects/plugins/protect/src/js/components/alert-icon/styles.module.scss b/projects/plugins/protect/src/js/components/alert-icon/styles.module.scss deleted file mode 100644 index 938a62897f2a8..0000000000000 --- a/projects/plugins/protect/src/js/components/alert-icon/styles.module.scss +++ /dev/null @@ -1,11 +0,0 @@ -.container { - width: 48px; - height: 56px; - margin-bottom: calc( var( --spacing-base ) * 8 ); // 64px - - > svg { - position: relative; - top: -36px; - left: -40px; - } -} diff --git a/projects/plugins/protect/src/js/components/shield-icon/index.tsx b/projects/plugins/protect/src/js/components/shield-icon/index.tsx deleted file mode 100644 index 3bf7f479f0051..0000000000000 --- a/projects/plugins/protect/src/js/components/shield-icon/index.tsx +++ /dev/null @@ -1,165 +0,0 @@ -import { type JSX } from 'react'; - -/** - * Protect Shield and Checkmark SVG Icon - * - * @param {object} props - Component props. - * @param {string} props.variant - Icon variant. - * @param {string} props.fill - Icon fill color. - * @param {string} props.className - Additional class names. - * @param {number} props.height - Icon height. - * @return {JSX.Element} Protect Shield and Checkmark SVG Icon - */ -export default function ShieldIcon( { - variant = 'default', - height = 32, - className, - fill, -}: { - variant: - | 'default' - | 'success' - | 'error' - | 'default-outline' - | 'success-outline' - | 'error-outline'; - className?: string; - height?: number; - fill?: string; -} ): JSX.Element { - if ( 'error-outline' === variant ) { - return ( - - - - - ); - } - - if ( 'error' === variant ) { - return ( - - - - - ); - } - - if ( 'success-outline' === variant ) { - return ( - - - - - ); - } - - if ( 'success' === variant ) { - return ( - - - - - ); - } - - if ( 'default-outline' === variant ) { - return ( - - - - ); - } - - return ( - - - - ); -} diff --git a/projects/plugins/protect/src/js/components/shield-icon/stories/index.stories.tsx b/projects/plugins/protect/src/js/components/shield-icon/stories/index.stories.tsx deleted file mode 100644 index d10365f4b0834..0000000000000 --- a/projects/plugins/protect/src/js/components/shield-icon/stories/index.stories.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import React from 'react'; -import ShieldIcon from '../index'; - -export default { - title: 'Plugins/Protect/Sheild Icon', - component: ShieldIcon, - parameters: { - layout: 'centered', - }, - decorators: [ - Story => ( -
    - -
    - ), - ], - argTypes: { - variant: { - control: { - type: 'select', - }, - options: [ - 'default', - 'success', - 'error', - 'default-outline', - 'success-outline', - 'error-outline', - ], - }, - fill: { - control: 'color', - }, - }, -}; - -export const Default = args => ; -Default.args = { - variant: 'default', -}; - -export const SuccessVariant = args => ; -SuccessVariant.args = { - variant: 'success', -}; - -export const ErrorVariant = args => ; -ErrorVariant.args = { - variant: 'error', -}; diff --git a/projects/plugins/protect/src/js/routes/scan/history/history-admin-section-hero.tsx b/projects/plugins/protect/src/js/routes/scan/history/history-admin-section-hero.tsx index 4aa517f5f120b..141c51cde284a 100644 --- a/projects/plugins/protect/src/js/routes/scan/history/history-admin-section-hero.tsx +++ b/projects/plugins/protect/src/js/routes/scan/history/history-admin-section-hero.tsx @@ -60,7 +60,7 @@ const HistoryAdminSectionHero: React.FC = () => { __( 'Most recent results', 'jetpack-protect' ) ) } - + { numAllThreats > 0 ? sprintf( /* translators: %s: Total number of threats */ diff --git a/projects/plugins/protect/src/js/routes/scan/scan-admin-section-hero.tsx b/projects/plugins/protect/src/js/routes/scan/scan-admin-section-hero.tsx index 1c5cc6cac49b9..9e1b9c102a037 100644 --- a/projects/plugins/protect/src/js/routes/scan/scan-admin-section-hero.tsx +++ b/projects/plugins/protect/src/js/routes/scan/scan-admin-section-hero.tsx @@ -95,7 +95,7 @@ const ScanAdminSectionHero: React.FC = () => { anchor={ dailyScansPopoverAnchor } /> ) } - + 0 ? 'error' : 'success' }> { numThreats > 0 ? sprintf( /* translators: %s: Total number of threats/vulnerabilities */ From 3e0c385b4baa4d97c8d379e47e78cd89d44f05a5 Mon Sep 17 00:00:00 2001 From: Nate Weller Date: Thu, 5 Dec 2024 10:50:27 -0700 Subject: [PATCH 72/98] Protect: Integrate ThreatsDataViews Component (#40076) --- pnpm-lock.yaml | 3 + .../add-threat-subtitle-and-icon-utils | 4 + projects/js-packages/scan/src/utils/index.ts | 32 +- .../protect/changelog/add-threats-data-views | 5 + projects/plugins/protect/package.json | 1 + .../protect/src/class-scan-history.php | 30 +- projects/plugins/protect/src/js/api.ts | 3 +- .../src/js/components/admin-page/index.jsx | 12 +- .../components/admin-page/styles.module.scss | 11 + .../error-admin-section-hero/index.tsx | 4 - .../js/components/fix-threat-modal/index.jsx | 9 +- .../js/components/free-accordion/index.jsx | 64 ---- .../free-accordion/stories/index.stories.jsx | 120 ------- .../free-accordion/styles.module.scss | 79 ----- .../components/ignore-threat-modal/index.jsx | 14 +- .../src/js/components/navigation/badge.jsx | 101 ------ .../src/js/components/navigation/group.jsx | 51 --- .../src/js/components/navigation/index.jsx | 73 ----- .../src/js/components/navigation/item.jsx | 85 ----- .../src/js/components/navigation/label.jsx | 24 -- .../components/navigation/styles.module.scss | 142 --------- .../navigation/use-menu-navigation.js | 92 ------ .../js/components/paid-accordion/index.jsx | 192 ----------- .../stories/broken/index.stories.jsx | 120 ------- .../paid-accordion/styles.module.scss | 202 ------------ .../src/js/components/pricing-table/index.jsx | 4 +- .../components/protect-check-icon/index.tsx | 25 -- .../js/components/scan-navigation/index.jsx | 44 --- .../js/components/threat-fix-header/index.jsx | 7 +- .../src/js/components/threats-list/empty.jsx | 140 -------- .../js/components/threats-list/free-list.jsx | 125 -------- .../src/js/components/threats-list/index.jsx | 194 ----------- .../js/components/threats-list/navigation.jsx | 130 -------- .../js/components/threats-list/pagination.jsx | 142 --------- .../js/components/threats-list/paid-list.jsx | 253 --------------- .../threats-list/styles.module.scss | 129 -------- .../threats-list/use-threats-list.js | 158 --------- .../unignore-threat-modal/index.jsx | 18 +- .../src/js/hooks/use-protect-data/index.ts | 173 ---------- projects/plugins/protect/src/js/index.tsx | 7 +- .../protect/src/js/routes/firewall/index.jsx | 3 +- .../history/history-admin-section-hero.tsx | 84 ----- .../src/js/routes/scan/history/index.jsx | 301 ------------------ .../js/routes/scan/history/status-filters.jsx | 44 --- .../js/routes/scan/history/styles.module.scss | 37 --- .../protect/src/js/routes/scan/index.jsx | 79 +++-- .../src/js/routes/scan/onboarding-steps.jsx | 61 ++-- .../routes/scan/scan-admin-section-hero.tsx | 138 ++++---- .../src/js/routes/scan/scan-footer.jsx | 143 --------- .../js/routes/scan/scan-results-data-view.tsx | 56 ++++ .../scan/scanning-admin-section-hero.tsx | 25 +- .../src/js/routes/scan/styles.module.scss | 20 +- projects/plugins/protect/webpack.config.js | 18 ++ 53 files changed, 363 insertions(+), 3668 deletions(-) create mode 100644 projects/js-packages/scan/changelog/add-threat-subtitle-and-icon-utils create mode 100644 projects/plugins/protect/changelog/add-threats-data-views delete mode 100644 projects/plugins/protect/src/js/components/free-accordion/index.jsx delete mode 100644 projects/plugins/protect/src/js/components/free-accordion/stories/index.stories.jsx delete mode 100644 projects/plugins/protect/src/js/components/free-accordion/styles.module.scss delete mode 100644 projects/plugins/protect/src/js/components/navigation/badge.jsx delete mode 100644 projects/plugins/protect/src/js/components/navigation/group.jsx delete mode 100644 projects/plugins/protect/src/js/components/navigation/index.jsx delete mode 100644 projects/plugins/protect/src/js/components/navigation/item.jsx delete mode 100644 projects/plugins/protect/src/js/components/navigation/label.jsx delete mode 100644 projects/plugins/protect/src/js/components/navigation/styles.module.scss delete mode 100644 projects/plugins/protect/src/js/components/navigation/use-menu-navigation.js delete mode 100644 projects/plugins/protect/src/js/components/paid-accordion/index.jsx delete mode 100644 projects/plugins/protect/src/js/components/paid-accordion/stories/broken/index.stories.jsx delete mode 100644 projects/plugins/protect/src/js/components/paid-accordion/styles.module.scss delete mode 100644 projects/plugins/protect/src/js/components/protect-check-icon/index.tsx delete mode 100644 projects/plugins/protect/src/js/components/scan-navigation/index.jsx delete mode 100644 projects/plugins/protect/src/js/components/threats-list/empty.jsx delete mode 100644 projects/plugins/protect/src/js/components/threats-list/free-list.jsx delete mode 100644 projects/plugins/protect/src/js/components/threats-list/index.jsx delete mode 100644 projects/plugins/protect/src/js/components/threats-list/navigation.jsx delete mode 100644 projects/plugins/protect/src/js/components/threats-list/pagination.jsx delete mode 100644 projects/plugins/protect/src/js/components/threats-list/paid-list.jsx delete mode 100644 projects/plugins/protect/src/js/components/threats-list/styles.module.scss delete mode 100644 projects/plugins/protect/src/js/components/threats-list/use-threats-list.js delete mode 100644 projects/plugins/protect/src/js/hooks/use-protect-data/index.ts delete mode 100644 projects/plugins/protect/src/js/routes/scan/history/history-admin-section-hero.tsx delete mode 100644 projects/plugins/protect/src/js/routes/scan/history/index.jsx delete mode 100644 projects/plugins/protect/src/js/routes/scan/history/status-filters.jsx delete mode 100644 projects/plugins/protect/src/js/routes/scan/history/styles.module.scss delete mode 100644 projects/plugins/protect/src/js/routes/scan/scan-footer.jsx create mode 100644 projects/plugins/protect/src/js/routes/scan/scan-results-data-view.tsx diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 655ad36162146..c5d6c336e2387 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4279,6 +4279,9 @@ importers: specifier: 6.28.1 version: 6.28.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: + '@automattic/babel-plugin-replace-textdomain': + specifier: workspace:* + version: link:../../js-packages/babel-plugin-replace-textdomain '@automattic/jetpack-webpack-config': specifier: workspace:* version: link:../../js-packages/webpack-config diff --git a/projects/js-packages/scan/changelog/add-threat-subtitle-and-icon-utils b/projects/js-packages/scan/changelog/add-threat-subtitle-and-icon-utils new file mode 100644 index 0000000000000..ad8fa81458278 --- /dev/null +++ b/projects/js-packages/scan/changelog/add-threat-subtitle-and-icon-utils @@ -0,0 +1,4 @@ +Significance: minor +Type: added + +Add utilities for generating threat subtitle and icons diff --git a/projects/js-packages/scan/src/utils/index.ts b/projects/js-packages/scan/src/utils/index.ts index 945cd0ecb7fa8..9e2e75bcd4d91 100644 --- a/projects/js-packages/scan/src/utils/index.ts +++ b/projects/js-packages/scan/src/utils/index.ts @@ -17,6 +17,36 @@ export const getThreatType = ( threat: Threat ) => { return null; }; +export const getThreatIcon = ( threat: Threat ) => { + switch ( getThreatType( threat ) ) { + case 'core': + return 'wordpress-alt'; + case 'plugin': + return 'plugins'; + case 'theme': + return 'appearance'; + case 'file': + return 'media-code'; + default: + return 'shield-alt'; + } +}; + +export const getThreatSubtitle = ( threat: Threat ) => { + switch ( getThreatType( threat ) ) { + case 'core': + return __( 'Vulnerable WordPress Version', 'jetpack-scan' ); + case 'plugin': + return __( 'Vulnerable Plugin', 'jetpack-scan' ); + case 'theme': + return __( 'Vulnerable Theme', 'jetpack-scan' ); + case 'file': + return __( 'File Threat', 'jetpack-scan' ); + default: + return __( 'Threat', 'jetpack-scan' ); + } +}; + export const fixerTimestampIsStale = ( lastUpdatedTimestamp: string ) => { const now = new Date(); const lastUpdated = new Date( lastUpdatedTimestamp ); @@ -123,7 +153,7 @@ export const getFixerDescription = ( threat: Threat ) => { } break; case 'update': - if ( threat.fixedIn && threat.extension.name ) { + if ( threat.fixedIn && threat.extension?.name ) { return sprintf( /* translators: Translates to Updates to version. %1$s: Name. %2$s: Fixed version */ __( 'Update %1$s to version %2$s', 'jetpack-scan' ), diff --git a/projects/plugins/protect/changelog/add-threats-data-views b/projects/plugins/protect/changelog/add-threats-data-views new file mode 100644 index 0000000000000..e15bd6a461a71 --- /dev/null +++ b/projects/plugins/protect/changelog/add-threats-data-views @@ -0,0 +1,5 @@ +Significance: minor +Type: changed + +Added DataViews component for viewing scan results. + diff --git a/projects/plugins/protect/package.json b/projects/plugins/protect/package.json index 81cacdb7f7ba4..9d6d61047f45c 100644 --- a/projects/plugins/protect/package.json +++ b/projects/plugins/protect/package.json @@ -49,6 +49,7 @@ "react-router-dom": "6.28.1" }, "devDependencies": { + "@automattic/babel-plugin-replace-textdomain": "workspace:*", "@automattic/jetpack-webpack-config": "workspace:*", "@babel/core": "7.26.0", "@babel/preset-env": "7.26.0", diff --git a/projects/plugins/protect/src/class-scan-history.php b/projects/plugins/protect/src/class-scan-history.php index bd034c375caf9..8ea1dec7156e7 100644 --- a/projects/plugins/protect/src/class-scan-history.php +++ b/projects/plugins/protect/src/class-scan-history.php @@ -207,43 +207,19 @@ public static function fetch_from_api() { * Normalize API Data * Formats the payload from the Scan API into an instance of History_Model. * - * @phan-suppress PhanDeprecatedProperty -- Maintaining backwards compatibility. - * * @param object $scan_data The data returned by the scan API. * @return History_Model */ private static function normalize_api_data( $scan_data ) { - $history = new History_Model(); - $history->num_threats = 0; - $history->num_core_threats = 0; - $history->num_plugins_threats = 0; - $history->num_themes_threats = 0; - + $history = new History_Model(); $history->last_checked = $scan_data->last_checked; if ( empty( $scan_data->threats ) || ! is_array( $scan_data->threats ) ) { return $history; } - foreach ( $scan_data->threats as $threat ) { - if ( isset( $threat->extension->type ) ) { - if ( 'plugin' === $threat->extension->type ) { - self::handle_extension_threats( $threat, $history, 'plugin' ); - continue; - } - - if ( 'theme' === $threat->extension->type ) { - self::handle_extension_threats( $threat, $history, 'theme' ); - continue; - } - } - - if ( 'Vulnerable.WP.Core' === $threat->signature ) { - self::handle_core_threats( $threat, $history ); - continue; - } - - self::handle_additional_threats( $threat, $history ); + foreach ( $scan_data->threats as $source_threat ) { + $history->threats[] = new Threat_Model( $source_threat ); } return $history; diff --git a/projects/plugins/protect/src/js/api.ts b/projects/plugins/protect/src/js/api.ts index 2b98a6164bf8b..97d11fd5c0f2b 100644 --- a/projects/plugins/protect/src/js/api.ts +++ b/projects/plugins/protect/src/js/api.ts @@ -1,6 +1,7 @@ -import { type FixersStatus, type ScanStatus, type WafStatus } from '@automattic/jetpack-scan'; +import { type FixersStatus, type ScanStatus } from '@automattic/jetpack-scan'; import apiFetch from '@wordpress/api-fetch'; import camelize from 'camelize'; +import { WafStatus } from './types/waf'; const API = { getWaf: (): Promise< WafStatus > => diff --git a/projects/plugins/protect/src/js/components/admin-page/index.jsx b/projects/plugins/protect/src/js/components/admin-page/index.jsx index 2d023560517f3..68f9359a9bd81 100644 --- a/projects/plugins/protect/src/js/components/admin-page/index.jsx +++ b/projects/plugins/protect/src/js/components/admin-page/index.jsx @@ -9,9 +9,9 @@ import { useConnection } from '@automattic/jetpack-connection'; import { __, sprintf } from '@wordpress/i18n'; import { useEffect } from 'react'; import { useLocation, useNavigate } from 'react-router-dom'; +import useScanStatusQuery from '../../data/scan/use-scan-status-query'; import useNotices from '../../hooks/use-notices'; import usePlan from '../../hooks/use-plan'; -import useProtectData from '../../hooks/use-protect-data'; import useWafData from '../../hooks/use-waf-data'; import Notice from '../notice'; import ScanButton from '../scan-button'; @@ -23,11 +23,7 @@ const AdminPage = ( { children } ) => { const { isRegistered } = useConnection(); const { isSeen: wafSeen } = useWafData(); const navigate = useNavigate(); - const { - counts: { - current: { threats: numThreats }, - }, - } = useProtectData(); + const { data: status } = useScanStatusQuery(); const location = useLocation(); const { hasPlan } = usePlan(); @@ -71,11 +67,11 @@ const AdminPage = ( { children } ) => { link="/scan" label={ - { numThreats > 0 + { status.threats.length > 0 ? sprintf( // translators: %d is the number of threats found. __( 'Scan (%d)', 'jetpack-protect' ), - numThreats + status.threats.length ) : __( 'Scan', 'jetpack-protect' ) } diff --git a/projects/plugins/protect/src/js/components/admin-page/styles.module.scss b/projects/plugins/protect/src/js/components/admin-page/styles.module.scss index adc0cee561ba5..da2e9510cd7d9 100644 --- a/projects/plugins/protect/src/js/components/admin-page/styles.module.scss +++ b/projects/plugins/protect/src/js/components/admin-page/styles.module.scss @@ -5,10 +5,21 @@ .header { display: flex; justify-content: space-between; + flex-direction: column; + gap: calc( var( --spacing-base ) * 3 ); // 24px + align-items: center; + + @media ( min-width: 600px ) { + flex-direction: row; + } &__scan_buttons { display: flex; gap: calc( var( --spacing-base ) * 3 ); // 24px + + @media ( min-width: 600px ) { + flex-direction: row; + } } } diff --git a/projects/plugins/protect/src/js/components/error-admin-section-hero/index.tsx b/projects/plugins/protect/src/js/components/error-admin-section-hero/index.tsx index 5214531dcf362..1a9bc87387fa9 100644 --- a/projects/plugins/protect/src/js/components/error-admin-section-hero/index.tsx +++ b/projects/plugins/protect/src/js/components/error-admin-section-hero/index.tsx @@ -2,7 +2,6 @@ import { Text } from '@automattic/jetpack-components'; import { __ } from '@wordpress/i18n'; import { Icon, warning } from '@wordpress/icons'; import AdminSectionHero from '../admin-section-hero'; -import ScanNavigation from '../scan-navigation'; import styles from './styles.module.scss'; interface ErrorAdminSectionHeroProps { @@ -32,9 +31,6 @@ const ErrorAdminSectionHero: React.FC< ErrorAdminSectionHeroProps > = ( { { displayErrorMessage } -
    - -
    } preserveSecondaryOnMobile={ false } diff --git a/projects/plugins/protect/src/js/components/fix-threat-modal/index.jsx b/projects/plugins/protect/src/js/components/fix-threat-modal/index.jsx index e1274e8e29a17..cbb49498c353f 100644 --- a/projects/plugins/protect/src/js/components/fix-threat-modal/index.jsx +++ b/projects/plugins/protect/src/js/components/fix-threat-modal/index.jsx @@ -7,7 +7,7 @@ import ThreatFixHeader from '../threat-fix-header'; import UserConnectionGate from '../user-connection-gate'; import styles from './styles.module.scss'; -const FixThreatModal = ( { id, fixable, label, icon, severity } ) => { +const FixThreatModal = ( { threat } ) => { const { setModal } = useModal(); const { fixThreats, isLoading: isFixersLoading } = useFixers(); @@ -21,7 +21,7 @@ const FixThreatModal = ( { id, fixable, label, icon, severity } ) => { const handleFixClick = () => { return async event => { event.preventDefault(); - await fixThreats( [ id ] ); + await fixThreats( [ threat.id ] ); setModal( { type: null } ); }; }; @@ -37,10 +37,7 @@ const FixThreatModal = ( { id, fixable, label, icon, severity } ) => {
    - +
    diff --git a/projects/plugins/protect/src/js/components/free-accordion/index.jsx b/projects/plugins/protect/src/js/components/free-accordion/index.jsx deleted file mode 100644 index e801d9374fd33..0000000000000 --- a/projects/plugins/protect/src/js/components/free-accordion/index.jsx +++ /dev/null @@ -1,64 +0,0 @@ -import { Text } from '@automattic/jetpack-components'; -import { Icon, chevronDown, chevronUp } from '@wordpress/icons'; -import clsx from 'clsx'; -import React, { useState, useCallback, useContext } from 'react'; -import styles from './styles.module.scss'; - -const FreeAccordionContext = React.createContext(); - -export const FreeAccordionItem = ( { id, title, label, icon, children, onOpen } ) => { - const accordionData = useContext( FreeAccordionContext ); - const open = accordionData?.open === id; - const setOpen = accordionData?.setOpen; - - const bodyClassNames = clsx( styles[ 'accordion-body' ], { - [ styles[ 'accordion-body-open' ] ]: open, - [ styles[ 'accordion-body-close' ] ]: ! open, - } ); - - const handleClick = useCallback( () => { - if ( ! open ) { - onOpen?.(); - } - setOpen( current => { - return current === id ? null : id; - } ); - }, [ open, onOpen, setOpen, id ] ); - - return ( -
    - -
    - { children } -
    -
    - ); -}; - -const FreeAccordion = ( { children } ) => { - const [ open, setOpen ] = useState(); - - return ( - -
    { children }
    -
    - ); -}; - -export default FreeAccordion; diff --git a/projects/plugins/protect/src/js/components/free-accordion/stories/index.stories.jsx b/projects/plugins/protect/src/js/components/free-accordion/stories/index.stories.jsx deleted file mode 100644 index 43ad41e2501eb..0000000000000 --- a/projects/plugins/protect/src/js/components/free-accordion/stories/index.stories.jsx +++ /dev/null @@ -1,120 +0,0 @@ -import { Text } from '@automattic/jetpack-components'; -import { wordpress, plugins } from '@wordpress/icons'; -import React from 'react'; -import FreeAccordion, { FreeAccordionItem } from '..'; - -export default { - title: 'Plugins/Protect/Free Accordion', - component: FreeAccordion, - parameters: { - layout: 'centered', - }, - decorators: [ - Story => ( -
    - -
    - ), - ], -}; - -// eslint-disable-next-line no-unused-vars -export const Default = args => ( - - - - What is the problem? - - - Post authors are able to bypass KSES restrictions in WordPress { '>' }= 5.9 (and or - Gutenberg { '>' }= 9.8.0) due to the order filters are executed, which could allow them to - perform to Stored Cross-Site Scripting attacks - - - How to fix it? - - Update to WordPress 5.9.2 - - - - What is the problem? - - - Post authors are able to bypass KSES restrictions in WordPress { '>' }= 5.9 (and or - Gutenberg { '>' }= 9.8.0) due to the order filters are executed, which could allow them to - perform to Stored Cross-Site Scripting attacks - - - How to fix it? - - Update to WordPress 5.9.2 - - - - What is the problem? - - - Post authors are able to bypass KSES restrictions in WordPress { '>' }= 5.9 (and or - Gutenberg { '>' }= 9.8.0) due to the order filters are executed, which could allow them to - perform to Stored Cross-Site Scripting attacks - - - How to fix it? - - Update to WordPress 5.9.2 - - - - What is the problem? - - - Post authors are able to bypass KSES restrictions in WordPress { '>' }= 5.9 (and or - Gutenberg { '>' }= 9.8.0) due to the order filters are executed, which could allow them to - perform to Stored Cross-Site Scripting attacks - - - How to fix it? - - Update to WordPress 5.9.2 - - - - What is the problem? - - - Post authors are able to bypass KSES restrictions in WordPress { '>' }= 5.9 (and or - Gutenberg { '>' }= 9.8.0) due to the order filters are executed, which could allow them to - perform to Stored Cross-Site Scripting attacks - - - How to fix it? - - Update to WordPress 5.9.2 - - -); diff --git a/projects/plugins/protect/src/js/components/free-accordion/styles.module.scss b/projects/plugins/protect/src/js/components/free-accordion/styles.module.scss deleted file mode 100644 index 5278f6eff39f4..0000000000000 --- a/projects/plugins/protect/src/js/components/free-accordion/styles.module.scss +++ /dev/null @@ -1,79 +0,0 @@ -.accordion { - border-radius: var( --jp-border-radius ); - border: 1px solid var( --jp-gray ); - - & > *:not(:last-child) { - border-bottom: 1px solid var( --jp-gray ); - } -} - -.accordion-item { - background-color: var( --jp-white ); -} - -.accordion-header { - margin: 0; - display: grid; - grid-template-columns: repeat(9, 1fr); - cursor: pointer; - box-sizing: border-box; - background: none; - border: none; - width: 100%; - align-items: center; - outline-color: var( --jp-black ); - padding: calc( var( --spacing-base ) * 2) calc( var( --spacing-base ) * 3); // 16px | 24px - text-align: start; - - >:first-of-type { - grid-column: 1/8; - } - - >:last-of-type { - grid-column: 9; - } - - &:hover { - background: var( --jp-gray-0 ); - } -} - -.accordion-header-label { - display: flex; - align-items: center; - font-size: var( --font-body-small ); - font-weight: normal; -} - -.accordion-header-label-icon { - margin-right: var( --spacing-base ); // 8px -} - -.accordion-header-description { - font-weight: 600; - margin-left: calc( var( --spacing-base ) * 4 ); // 32px - margin-bottom: var( --spacing-base ); // 8px -} - -.accordion-header-button { - align-items: center; -} - -.accordion-body { - transform-origin: top center; - overflow: hidden; - - &-close { - transition: all .1s; - max-height: 0; - padding: 0; - transform: scaleY(0); - } - - &-open { - transition: max-height .3s, transform .2s; - padding: calc( var( --spacing-base ) * 4 ) calc( var( --spacing-base ) * 7 ); // 32 px | 56px - max-height: 1000px; - transform: scaleY(1); - } -} diff --git a/projects/plugins/protect/src/js/components/ignore-threat-modal/index.jsx b/projects/plugins/protect/src/js/components/ignore-threat-modal/index.jsx index 7e8113b6f38ab..0788eb8bd7a41 100644 --- a/projects/plugins/protect/src/js/components/ignore-threat-modal/index.jsx +++ b/projects/plugins/protect/src/js/components/ignore-threat-modal/index.jsx @@ -1,16 +1,18 @@ import { Button, getRedirectUrl, Text, ThreatSeverityBadge } from '@automattic/jetpack-components'; +import { getThreatIcon, getThreatSubtitle } from '@automattic/jetpack-scan'; +import { Icon } from '@wordpress/components'; import { createInterpolateElement, useState } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; -import { Icon } from '@wordpress/icons'; import useIgnoreThreatMutation from '../../data/scan/use-ignore-threat-mutation'; import useModal from '../../hooks/use-modal'; import UserConnectionGate from '../user-connection-gate'; import styles from './styles.module.scss'; -const IgnoreThreatModal = ( { id, title, label, icon, severity } ) => { +const IgnoreThreatModal = ( { threat } ) => { const { setModal } = useModal(); const ignoreThreatMutation = useIgnoreThreatMutation(); const codeableURL = getRedirectUrl( 'jetpack-protect-codeable-referral' ); + const icon = getThreatIcon( threat ); const [ isIgnoring, setIsIgnoring ] = useState( false ); @@ -25,7 +27,7 @@ const IgnoreThreatModal = ( { id, title, label, icon, severity } ) => { return async event => { event.preventDefault(); setIsIgnoring( true ); - await ignoreThreatMutation.mutateAsync( id ); + await ignoreThreatMutation.mutateAsync( threat.id ); setModal( { type: null } ); setIsIgnoring( false ); }; @@ -42,12 +44,12 @@ const IgnoreThreatModal = ( { id, title, label, icon, severity } ) => {
    - { label } + { getThreatSubtitle( threat ) } - { title } + { threat.title }
    - +
    diff --git a/projects/plugins/protect/src/js/components/navigation/badge.jsx b/projects/plugins/protect/src/js/components/navigation/badge.jsx deleted file mode 100644 index 93ebecf7235ef..0000000000000 --- a/projects/plugins/protect/src/js/components/navigation/badge.jsx +++ /dev/null @@ -1,101 +0,0 @@ -import { Text } from '@automattic/jetpack-components'; -import { Popover, Spinner } from '@wordpress/components'; -import { __ } from '@wordpress/i18n'; -import { Icon, check, info } from '@wordpress/icons'; -import PropTypes from 'prop-types'; -import React, { useState, useCallback, useMemo } from 'react'; -import useScanStatusQuery, { isScanInProgress } from '../../data/scan/use-scan-status-query'; -import styles from './styles.module.scss'; - -/** - * Gets the Badge element - * - * @param {number} count - The number of threats found for this item. - * @param {boolean} checked - Whether this item was checked for threats yet. - * @return {object} The badge element - */ -const getBadgeElement = ( count, checked ) => { - if ( ! checked ) { - return { - popoverText: __( - 'This item was added to your site after the most recent scan. We will check for threats during the next scheduled one.', - 'jetpack-protect' - ), - badgeElement: ( - - ), - }; - } - - if ( count === 0 ) { - return { - popoverText: __( 'No known threats found to affect this version', 'jetpack-protect' ), - badgeElement: ( - - ), - }; - } - - return { - popoverText: null, - badgeElement: ( - - { count } - - ), - }; -}; - -const ItemBadge = ( { count, checked } ) => { - const { data: status } = useScanStatusQuery(); - - const { popoverText, badgeElement } = getBadgeElement( count, checked ); - const [ showPopover, setShowPopover ] = useState( false ); - - const inProgress = useMemo( () => isScanInProgress( status ), [ status ] ); - - const handleEnter = useCallback( () => { - if ( inProgress ) { - return; - } - - setShowPopover( true ); - }, [ inProgress ] ); - - const handleOut = useCallback( () => { - setShowPopover( false ); - }, [] ); - - return ( -
    - { ! inProgress ? badgeElement : } - { showPopover && ( - - - { popoverText } - - - ) } -
    - ); -}; - -ItemBadge.propTypes = { - /* The number of threats found for this item */ - count: PropTypes.number, - /* Whether this item was checked for threats yet */ - checked: PropTypes.bool, -}; - -export default ItemBadge; diff --git a/projects/plugins/protect/src/js/components/navigation/group.jsx b/projects/plugins/protect/src/js/components/navigation/group.jsx deleted file mode 100644 index 9352ae5c63d67..0000000000000 --- a/projects/plugins/protect/src/js/components/navigation/group.jsx +++ /dev/null @@ -1,51 +0,0 @@ -import { Button } from '@automattic/jetpack-components'; -import { __, sprintf } from '@wordpress/i18n'; -import React, { useState, useCallback, useContext } from 'react'; -import ItemLabel from './label'; -import styles from './styles.module.scss'; -import { NavigationContext } from './use-menu-navigation'; - -const MAX_ITEMS = 8; - -const NavigationGroup = ( { icon, label, children } ) => { - const [ collapsed, setCollapsed ] = useState( true ); - const { mode } = useContext( NavigationContext ); - const needsTruncate = - Array.isArray( children ) && children?.length >= MAX_ITEMS && mode === 'list'; - const content = needsTruncate && collapsed ? children.slice( 0, MAX_ITEMS ) : children; - const totalHideItems = needsTruncate ? children?.length - MAX_ITEMS : 0; - - const handleCollapsedToggle = useCallback( () => { - setCollapsed( current => ! current ); - }, [] ); - - return ( -
  • - - { label } - -
    -
      { content }
    - { needsTruncate && ( -
    - -
    - ) } -
    -
  • - ); -}; - -export default NavigationGroup; diff --git a/projects/plugins/protect/src/js/components/navigation/index.jsx b/projects/plugins/protect/src/js/components/navigation/index.jsx deleted file mode 100644 index bd30dfbdad964..0000000000000 --- a/projects/plugins/protect/src/js/components/navigation/index.jsx +++ /dev/null @@ -1,73 +0,0 @@ -import { Text } from '@automattic/jetpack-components'; -import { Popover } from '@wordpress/components'; -import { __ } from '@wordpress/i18n'; -import { Icon, chevronDown, chevronUp } from '@wordpress/icons'; -import React, { useState, useRef, useCallback } from 'react'; -import NavigationGroup from './group'; -import NavigationItem from './item'; -import styles from './styles.module.scss'; -import useMenuNavigation, { NavigationContext } from './use-menu-navigation'; - -const NavigationList = ( { children } ) => ( -
      - { children } -
    -); - -const NavigationDropdown = ( { children, data } ) => { - const ref = useRef( undefined ); - const [ listOpen, setListOpen ] = useState( false ); - const item = data?.items?.find( navItem => navItem?.id === data?.selectedItem ) ?? { - label: __( 'See all results', 'jetpack-protect' ), - }; - const { label, icon } = item; - - const handleOpen = useCallback( () => { - setListOpen( open => ! open ); - }, [] ); - - return ( - - ); -}; - -const getNavigationComponent = mode => { - switch ( mode ) { - case 'list': - return NavigationList; - case 'dropdown': - return NavigationDropdown; - default: - return NavigationList; - } -}; - -const Navigation = ( { children, selected, onSelect, mode = 'list' } ) => { - const data = useMenuNavigation( { selected, onSelect } ); - const Component = getNavigationComponent( mode ); - - return ( - - { children } - - ); -}; - -export default Navigation; -export { NavigationItem, NavigationGroup }; diff --git a/projects/plugins/protect/src/js/components/navigation/item.jsx b/projects/plugins/protect/src/js/components/navigation/item.jsx deleted file mode 100644 index d902625c3997d..0000000000000 --- a/projects/plugins/protect/src/js/components/navigation/item.jsx +++ /dev/null @@ -1,85 +0,0 @@ -import clsx from 'clsx'; -import React, { useContext, useEffect, useCallback } from 'react'; -import ItemBadge from './badge'; -import ItemLabel from './label'; -import styles from './styles.module.scss'; -import { NavigationContext } from './use-menu-navigation'; - -const NavigationItem = ( { - id, - label, - icon, - badge, - disabled, - onClick, - onKeyDown, - onFocus, - checked, -} ) => { - const context = useContext( NavigationContext ); - - const selected = context?.selectedItem === id; - const registerItem = context?.registerItem; - const registerRef = context?.registerRef; - const handleClickItem = context?.handleClickItem; - const handleKeyDownItem = context?.handleKeyDownItem; - const handleFocusItem = context?.handleFocusItem; - - const wrapperClassName = clsx( styles[ 'navigation-item' ], { - [ styles.clickable ]: ! disabled, - [ styles.selected ]: selected, - } ); - - const handleClick = useCallback( - evt => { - onClick?.( evt ); - handleClickItem?.( id ); - }, - [ handleClickItem, id, onClick ] - ); - - const handleKeyDown = useCallback( - evt => { - onKeyDown?.( evt ); - handleKeyDownItem?.( evt ); - }, - [ handleKeyDownItem, onKeyDown ] - ); - - const handleRef = useCallback( - ref => { - registerRef( ref, id ); - }, - [ registerRef, id ] - ); - - const handleFocus = useCallback( - evt => { - onFocus?.( evt ); - handleFocusItem?.( id ); - }, - [ handleFocusItem, id, onFocus ] - ); - - useEffect( () => { - registerItem( { id, disabled, label, icon } ); - // eslint-disable-next-line - }, [] ); - - return ( -
  • - { label } - -
  • - ); -}; - -export default NavigationItem; diff --git a/projects/plugins/protect/src/js/components/navigation/label.jsx b/projects/plugins/protect/src/js/components/navigation/label.jsx deleted file mode 100644 index 8f075caae020a..0000000000000 --- a/projects/plugins/protect/src/js/components/navigation/label.jsx +++ /dev/null @@ -1,24 +0,0 @@ -import { Text } from '@automattic/jetpack-components'; -import { Icon } from '@wordpress/icons'; -import clsx from 'clsx'; -import PropTypes from 'prop-types'; -import React from 'react'; -import styles from './styles.module.scss'; - -const ItemLabel = ( { icon, children, className } ) => { - return ( - - { icon && } - { children } - - ); -}; - -ItemLabel.propTypes = { - /* An icon that will be rendered before text */ - icon: PropTypes.node, - /* Label text that will be rendered */ - children: PropTypes.node.isRequired, -}; - -export default ItemLabel; diff --git a/projects/plugins/protect/src/js/components/navigation/styles.module.scss b/projects/plugins/protect/src/js/components/navigation/styles.module.scss deleted file mode 100644 index df9e3ef1f8a25..0000000000000 --- a/projects/plugins/protect/src/js/components/navigation/styles.module.scss +++ /dev/null @@ -1,142 +0,0 @@ -.navigation { - background-color: var( --jp-white ); - box-shadow: 0px 0px 40px rgba(0, 0, 0, 0.08); - border-radius: var( --jp-border-radius ); - margin: 0; -} - -.navigation-item { - display: flex; - padding: calc( var( --spacing-base ) * 2 ); // 16px; - align-items: center; - justify-content: space-between; - margin: 0; - text-align: left; - - // Clickable State - &.clickable { - cursor: pointer; - outline-color: var( --jp-black ); - - // Focus/Hover State - &:hover:not(.selected), - &:focus:not(.selected) { - background-color: var( --jp-gray-0 ); - } - } - - // Selected State - &.selected { - background-color: var( --jp-black ); - - & .navigation-item-label { - color: var( --jp-white ) - } - - & .navigation-item-icon { - fill: var( --jp-white ); - } - - & .navigation-item-badge { - border: 1px solid var( --jp-red ); - background-color: var( --jp-red ); - color: var( --jp-white ); - } - } - - // CHILDRENS - - // .navigation-item-label - &-label { - display: flex; - align-items: center; - padding-right: var( --spacing-base ); // 8px - overflow-x: hidden; - } - - // .navigation-item-label-content - &-label-text { - display: block; - overflow-x: hidden; - text-overflow: ellipsis; - } - - // .navigation-item-icon - &-icon { - margin-right: calc( var( --spacing-base ) * 2); // 16px - } - - // .navigation-item-badge - &-badge { - border: 1px solid var( --jp-red-60 ); - color: var( --jp-red-60 ); - border-radius: 50%; - padding: calc( var( --spacing-base ) / 2 ) var( --spacing-base ); // 4px | 8px - min-width: 30px; - display: flex; - align-items: center; - justify-content: center; - box-sizing: border-box; - } - - &-check-badge { - fill: var( --jp-green-50 ); - } - - &-info-badge { - fill: var( --jp-gray-20 ); - } -} - -.navigation-group { - --icon-size: 28px; - --item-spacing: calc( var( --spacing-base ) * 2 ); // 16px - --left-spacing: calc( var( --icon-size ) + var( --item-spacing ) ); // 28px + 16px - - list-style: none; - - &-label { - padding: calc( var( --spacing-base ) * 2 ); // 16px - } - - &-content { - padding: 0; - } - - &-list { - margin-left: var( --left-spacing ) ; - } - - &-truncate { - padding: calc( var( --spacing-base ) * 2 ); // 16px - display: flex; - justify-content: flex-start; - } -} - -.popover-text { - width: 250px; - padding: calc( var( --spacing-base ) * 2 ); // 16px -} - -.navigation-dropdown { - &-button { - display: flex; - border: 1px solid var( --jp-gray-10 ); - border-radius: var( --jp-border-radius ); - padding: calc( var( --spacing-base ) * 2 ); // 16px - background-color: var( --jp-white ); - justify-content: space-between; - align-items: center; - width: 100%; - } - - &-label { - display: flex; - justify-content: flex-start; - } - - &-icon { - margin-right: var( --spacing-base ); // 8px - } -} diff --git a/projects/plugins/protect/src/js/components/navigation/use-menu-navigation.js b/projects/plugins/protect/src/js/components/navigation/use-menu-navigation.js deleted file mode 100644 index 2972dac06b572..0000000000000 --- a/projects/plugins/protect/src/js/components/navigation/use-menu-navigation.js +++ /dev/null @@ -1,92 +0,0 @@ -import React, { useState } from 'react'; - -export const NavigationContext = React.createContext(); - -const useMenuNavigation = ( { selected, onSelect } ) => { - const [ items, setItems ] = useState( [] ); - const [ refs, setRef ] = useState( [] ); - const [ focusedItem, setFocusedItem ] = useState(); - - const handleClickItem = id => { - onSelect( id ); - }; - - const handleFocusItem = id => { - setFocusedItem( id ); - }; - - const getPrevItem = ( current, last ) => { - const startMinusOne = current - 1; - const prevIndex = startMinusOne < 0 ? last : startMinusOne; - const prevItem = items[ prevIndex ]; - return prevItem?.disabled ? getPrevItem( prevIndex, last ) : prevItem; - }; - - const getNextItem = ( current, last ) => { - const startPlusOne = current + 1; - const nextIndex = startPlusOne > last ? 0 : startPlusOne; - const nextItem = items[ nextIndex ]; - return nextItem?.disabled ? getNextItem( nextIndex, last ) : nextItem; - }; - - const handleKeyDownItem = input => { - const code = input?.code; - const current = items.findIndex( item => item?.id === selected ); - const lastIndex = items.length - 1; - - let nextId; - - if ( code === 'ArrowUp' ) { - const prevItem = getPrevItem( current, lastIndex ); - nextId = prevItem?.id; - } else if ( code === 'ArrowDown' ) { - const nextItem = getNextItem( current, lastIndex ); - nextId = nextItem?.id; - } else if ( ( code === 'Enter' || code === 'Space' ) && focusedItem ) { - nextId = focusedItem; - } - - if ( nextId ) { - const element = refs[ nextId ]; - element?.focus(); - onSelect( nextId ); - } - }; - - const registerRef = ( ref, id ) => { - setRef( allRefs => { - if ( ! allRefs[ id ] && ref ) { - return { ...allRefs, [ id ]: ref }; - } - return allRefs; - } ); - }; - - const registerItem = data => { - setItems( allItems => { - const newItems = [ ...allItems ]; - const id = data?.id; - const currentIdx = newItems.findIndex( item => item?.id === id ); - - if ( currentIdx >= 0 ) { - newItems[ currentIdx ] = data; - } else { - newItems.push( data ); - } - - return newItems; - } ); - }; - - return { - selectedItem: selected, - handleClickItem, - handleKeyDownItem, - handleFocusItem, - registerRef, - registerItem, - items, - }; -}; - -export default useMenuNavigation; diff --git a/projects/plugins/protect/src/js/components/paid-accordion/index.jsx b/projects/plugins/protect/src/js/components/paid-accordion/index.jsx deleted file mode 100644 index c733ff1f0a08c..0000000000000 --- a/projects/plugins/protect/src/js/components/paid-accordion/index.jsx +++ /dev/null @@ -1,192 +0,0 @@ -import { - IconTooltip, - Spinner, - Text, - ThreatSeverityBadge, - useBreakpointMatch, -} from '@automattic/jetpack-components'; -import { ExternalLink } from '@wordpress/components'; -import { dateI18n } from '@wordpress/date'; -import { createInterpolateElement } from '@wordpress/element'; -import { sprintf, __ } from '@wordpress/i18n'; -import { Icon, check, chevronDown, chevronUp } from '@wordpress/icons'; -import clsx from 'clsx'; -import React, { useState, useCallback, useContext, useMemo } from 'react'; -import { PAID_PLUGIN_SUPPORT_URL } from '../../constants'; -import useFixers from '../../hooks/use-fixers'; -import styles from './styles.module.scss'; - -// Extract context provider for clarity and reusability -const PaidAccordionContext = React.createContext(); - -// Component for displaying threat dates -const ScanHistoryDetails = ( { firstDetected, fixedOn, status } ) => { - const statusText = useMemo( () => { - if ( status === 'fixed' ) { - return sprintf( - /* translators: %s: Fixed on date */ - __( 'Threat fixed %s', 'jetpack-protect' ), - dateI18n( 'M j, Y', fixedOn ) - ); - } - if ( status === 'ignored' ) { - return __( 'Threat ignored', 'jetpack-protect' ); - } - return null; - }, [ status, fixedOn ] ); - - return ( - firstDetected && ( - <> - - { sprintf( - /* translators: %s: First detected date */ - __( 'Threat found %s', 'jetpack-protect' ), - dateI18n( 'M j, Y', firstDetected ) - ) } - { statusText && ( - <> - - { statusText } - - ) } - - { [ 'fixed', 'ignored' ].includes( status ) && } - - ) - ); -}; - -// Badge for displaying the status (fixed or ignored) -const StatusBadge = ( { status } ) => ( -
    - { status === 'fixed' - ? __( 'Fixed', 'jetpack-protect' ) - : __( 'Ignored', 'jetpack-protect', /* dummy arg to avoid bad minification */ 0 ) } -
    -); - -const renderFixerStatus = ( isActiveFixInProgress, isStaleFixInProgress ) => { - if ( isStaleFixInProgress ) { - return ( - - - { createInterpolateElement( - __( - 'The fixer is taking longer than expected. Please try again or contact support.', - 'jetpack-protect' - ), - { - supportLink: ( - - ), - } - ) } - - - ); - } - - if ( isActiveFixInProgress ) { - return ; - } - - return ; -}; - -export const PaidAccordionItem = ( { - id, - title, - label, - icon, - fixable, - severity, - children, - firstDetected, - fixedOn, - onOpen, - status, - hideAutoFixColumn = false, -} ) => { - const { open, setOpen } = useContext( PaidAccordionContext ); - const isOpen = open === id; - - const { isThreatFixInProgress, isThreatFixStale } = useFixers(); - - const handleClick = useCallback( () => { - if ( ! isOpen ) { - onOpen?.(); - } - setOpen( current => ( current === id ? null : id ) ); - }, [ isOpen, onOpen, setOpen, id ] ); - - const [ isSmall ] = useBreakpointMatch( [ 'sm', 'lg' ], [ null, '<' ] ); - - return ( -
    - -
    - { children } -
    -
    - ); -}; - -const PaidAccordion = ( { children } ) => { - const [ open, setOpen ] = useState(); - - return ( - -
    { children }
    -
    - ); -}; - -export default PaidAccordion; diff --git a/projects/plugins/protect/src/js/components/paid-accordion/stories/broken/index.stories.jsx b/projects/plugins/protect/src/js/components/paid-accordion/stories/broken/index.stories.jsx deleted file mode 100644 index 252f22b2bad77..0000000000000 --- a/projects/plugins/protect/src/js/components/paid-accordion/stories/broken/index.stories.jsx +++ /dev/null @@ -1,120 +0,0 @@ -import { Text } from '@automattic/jetpack-components'; -import { wordpress, plugins } from '@wordpress/icons'; -import React from 'react'; -import PaidAccordion, { PaidAccordionItem } from '..'; - -export default { - title: 'Plugins/Protect/Paid Accordion', - component: PaidAccordion, - parameters: { - layout: 'centered', - }, - decorators: [ - Story => ( -
    - -
    - ), - ], -}; - -// eslint-disable-next-line no-unused-vars -export const Default = args => ( - - - - What is the problem? - - - Post authors are able to bypass KSES restrictions in WordPress { '>' }= 5.9 (and or - Gutenberg { '>' }= 9.8.0) due to the order filters are executed, which could allow them to - perform to Stored Cross-Site Scripting attacks - - - How to fix it? - - Update to WordPress 5.9.2 - - - - What is the problem? - - - Post authors are able to bypass KSES restrictions in WordPress { '>' }= 5.9 (and or - Gutenberg { '>' }= 9.8.0) due to the order filters are executed, which could allow them to - perform to Stored Cross-Site Scripting attacks - - - How to fix it? - - Update to WordPress 5.9.2 - - - - What is the problem? - - - Post authors are able to bypass KSES restrictions in WordPress { '>' }= 5.9 (and or - Gutenberg { '>' }= 9.8.0) due to the order filters are executed, which could allow them to - perform to Stored Cross-Site Scripting attacks - - - How to fix it? - - Update to WordPress 5.9.2 - - - - What is the problem? - - - Post authors are able to bypass KSES restrictions in WordPress { '>' }= 5.9 (and or - Gutenberg { '>' }= 9.8.0) due to the order filters are executed, which could allow them to - perform to Stored Cross-Site Scripting attacks - - - How to fix it? - - Update to WordPress 5.9.2 - - - - What is the problem? - - - Post authors are able to bypass KSES restrictions in WordPress { '>' }= 5.9 (and or - Gutenberg { '>' }= 9.8.0) due to the order filters are executed, which could allow them to - perform to Stored Cross-Site Scripting attacks - - - How to fix it? - - Update to WordPress 5.9.2 - - -); diff --git a/projects/plugins/protect/src/js/components/paid-accordion/styles.module.scss b/projects/plugins/protect/src/js/components/paid-accordion/styles.module.scss deleted file mode 100644 index 8304942b206d4..0000000000000 --- a/projects/plugins/protect/src/js/components/paid-accordion/styles.module.scss +++ /dev/null @@ -1,202 +0,0 @@ -.accordion { - display: inline-block; - width: 100%; - border-radius: var( --jp-border-radius ); - border: 1px solid var( --jp-gray ); - - & > *:not(:last-child) { - border-bottom: 1px solid var( --jp-gray ); - } -} - -.accordion-item { - background-color: var( --jp-white ); -} - -.accordion-header { - margin: 0; - display: grid; - grid-template-columns: repeat(9, 1fr); - cursor: pointer; - box-sizing: border-box; - background: none; - border: none; - width: 100%; - align-items: center; - outline-color: var( --jp-black ); - padding: calc( var( --spacing-base ) * 2) calc( var( --spacing-base ) * 3); // 16px | 24px - text-align: start; - - >:first-of-type { - grid-column: 1/7; - } - - >:last-of-type { - grid-column: 9; - } - - >:not( :first-child ) { - margin: auto; - } - - &:hover { - background: var( --jp-gray-0 ); - } -} - -.accordion-header-label { - display: flex; - align-items: center; - font-size: var( --font-body-small ); - font-weight: normal; -} - -.accordion-header-label-icon { - margin-right: var( --spacing-base ); // 8px -} - -.accordion-header-description { - font-weight: 600; - margin-left: calc( var( --spacing-base ) * 4 ); // 32px - margin-bottom: var( --spacing-base ); // 8px -} - -.accordion-header-status { - font-size: var( --font-body-small ); - font-weight: normal; - margin-left: calc( var( --spacing-base ) * 4 ); // 32px - margin-bottom: var( --spacing-base ); // 8px -} - -.accordion-header-status-separator { - display: inline-block; - height: 4px; - margin: 2px 12px; - width: 4px; - background-color: var( --jp-gray-50 ); -} - -.accordion-header-button { - align-items: center; -} - -.accordion-body { - transform-origin: top center; - overflow: hidden; - - &-close { - transition: all .1s; - max-height: 0; - padding: 0; - transform: scaleY(0); - } - - &-open { - transition: max-height .3s, transform .2s; - padding: calc( var( --spacing-base ) * 4 ) calc( var( --spacing-base ) * 7 ); // 32 px | 56px - max-height: 1000px; - transform: scaleY(1); - } -} - -.icon-check { - fill: var( --jp-green-40 ); -} - -.status-badge { - border-radius: 32px; - flex-shrink: 0; - font-size: 12px; - font-style: normal; - font-weight: 600; - line-height: 16px; - padding: calc( var( --spacing-base ) / 2 ); // 4px - position: relative; - text-align: center; - width: 60px; - margin-left: calc( var( --spacing-base ) * 4 ); // 32px - - &.fixed { - color: var( --jp-white ); - background-color: #008a20; - } - - &.ignored { - color: var( --jp-white ); - background-color: var( --jp-gray-50 ); - } -} - -.is-fixed { - color: #008a20; -} - -.support-link { - color: inherit; - - &:focus, - &:hover { - color: inherit; - box-shadow: none; - } -} - -.icon-tooltip { - max-height: 20px; - margin-left: calc( var( --spacing-base ) / 2 ); // 4px - - &__icon { - color: var( --jp-red ); - } - - &__content { - color: var( --jp-gray-70 ); - font-weight: 400; - line-height: 24px; - } -} - -@media ( max-width: 599px ) { - .accordion-header { - display: grid; - grid-auto-rows: minmax( auto, auto ); - - >:first-child { - grid-column: 1/8; - grid-row: 1; - } - - >:nth-child( 2 ) { - padding-left: calc( var( --spacing-base ) * 4 ); // 32px - grid-row: 2; - } - - >:nth-child( 3 ) { - grid-row: 2; - } - - >:nth-child( 3 ) span { - position: absolute; - margin-top: var( --spacing-base ); // 8px - } - - >:last-child { - grid-column: 10; - grid-row: 1/3; - } - } - - .status-badge { - display: none; - } -} - -@media ( max-width: 1200px ) { - .accordion-header-status { - display: grid; - } - - .accordion-header-status-separator { - display: none; - } -} diff --git a/projects/plugins/protect/src/js/components/pricing-table/index.jsx b/projects/plugins/protect/src/js/components/pricing-table/index.jsx index 3edd7911a0b6a..0f857430d92d8 100644 --- a/projects/plugins/protect/src/js/components/pricing-table/index.jsx +++ b/projects/plugins/protect/src/js/components/pricing-table/index.jsx @@ -11,9 +11,9 @@ import { __ } from '@wordpress/i18n'; import React, { useCallback } from 'react'; import { useNavigate } from 'react-router-dom'; import useConnectSiteMutation from '../../data/use-connection-mutation'; +import useProductDataQuery from '../../data/use-product-data-query'; import useAnalyticsTracks from '../../hooks/use-analytics-tracks'; import usePlan from '../../hooks/use-plan'; -import useProtectData from '../../hooks/use-protect-data'; /** * Product Detail component. @@ -30,7 +30,7 @@ const ConnectedPricingTable = () => { } ); // Access paid protect product data - const { jetpackScan } = useProtectData(); + const { data: jetpackScan } = useProductDataQuery(); const { pricingForUi } = jetpackScan; const { introductoryOffer, currencyCode: currency = 'USD' } = pricingForUi; diff --git a/projects/plugins/protect/src/js/components/protect-check-icon/index.tsx b/projects/plugins/protect/src/js/components/protect-check-icon/index.tsx deleted file mode 100644 index d1100d8ce6d5e..0000000000000 --- a/projects/plugins/protect/src/js/components/protect-check-icon/index.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { type JSX } from 'react'; - -/** - * Protect Shield and Checkmark SVG Icon - * - * @return {JSX.Element} Protect Shield and Checkmark SVG Icon - */ -export default function ProtectCheck(): JSX.Element { - return ( - - - - - ); -} diff --git a/projects/plugins/protect/src/js/components/scan-navigation/index.jsx b/projects/plugins/protect/src/js/components/scan-navigation/index.jsx deleted file mode 100644 index e626b6af066c7..0000000000000 --- a/projects/plugins/protect/src/js/components/scan-navigation/index.jsx +++ /dev/null @@ -1,44 +0,0 @@ -import { __ } from '@wordpress/i18n'; -import React, { useCallback } from 'react'; -import { useLocation, useNavigate } from 'react-router-dom'; -import usePlan from '../../hooks/use-plan'; -import ButtonGroup from '../button-group'; - -/** - * Navigation for scan sections. - * - * @return {React.Element} The React Component. - */ -export default function ScanNavigation() { - const navigate = useNavigate(); - const location = useLocation(); - const { hasPlan } = usePlan(); - - const viewingScanPage = location.pathname === '/scan'; - const viewingHistoryPage = location.pathname.includes( '/scan/history' ); - const navigateToScanPage = useCallback( () => navigate( '/scan' ), [ navigate ] ); - const navigateToHistoryPage = useCallback( () => navigate( '/scan/history' ), [ navigate ] ); - - if ( ! hasPlan || ( ! viewingScanPage && ! viewingHistoryPage ) ) { - return null; - } - - return ( - <> - - - { __( 'Scanner', 'jetpack-protect' ) } - - - { __( 'History', 'jetpack-protect' ) } - - - - ); -} diff --git a/projects/plugins/protect/src/js/components/threat-fix-header/index.jsx b/projects/plugins/protect/src/js/components/threat-fix-header/index.jsx index bc5e0107cea80..45a8524e60b59 100644 --- a/projects/plugins/protect/src/js/components/threat-fix-header/index.jsx +++ b/projects/plugins/protect/src/js/components/threat-fix-header/index.jsx @@ -1,6 +1,7 @@ import { Text, ThreatSeverityBadge } from '@automattic/jetpack-components'; +import { getThreatIcon, getThreatSubtitle } from '@automattic/jetpack-scan'; +import { Icon } from '@wordpress/components'; import { __, sprintf } from '@wordpress/i18n'; -import { Icon } from '@wordpress/icons'; import React, { useState, useCallback } from 'react'; import styles from './styles.module.scss'; @@ -65,10 +66,10 @@ export default function ThreatFixHeader( { threat, fixAllDialog, onCheckFix } ) return ( <>
    - +
    - { threat.label } + { getThreatSubtitle( threat ) } { getFixerMessage( threat.fixable ) } diff --git a/projects/plugins/protect/src/js/components/threats-list/empty.jsx b/projects/plugins/protect/src/js/components/threats-list/empty.jsx deleted file mode 100644 index 2d493b11e64a4..0000000000000 --- a/projects/plugins/protect/src/js/components/threats-list/empty.jsx +++ /dev/null @@ -1,140 +0,0 @@ -import { H3, Text } from '@automattic/jetpack-components'; -import { createInterpolateElement } from '@wordpress/element'; -import { sprintf, __, _n } from '@wordpress/i18n'; -import { useMemo, useState } from 'react'; -import useScanStatusQuery, { isScanInProgress } from '../../data/scan/use-scan-status-query'; -import usePlan from '../../hooks/use-plan'; -import useProtectData from '../../hooks/use-protect-data'; -import OnboardingPopover from '../onboarding-popover'; -import ScanButton from '../scan-button'; -import styles from './styles.module.scss'; - -const ProtectCheck = () => ( - - - - -); - -/** - * Time Since - * - * @param {string} date - The past date to compare to the current date. - * @return {string} - A description of the amount of time between a date and now, i.e. "5 minutes ago". - */ -const timeSince = date => { - const now = new Date(); - const offset = now.getTimezoneOffset() * 60000; - - const seconds = Math.floor( ( new Date( now.getTime() + offset ).getTime() - date ) / 1000 ); - - let interval = seconds / 31536000; // 364 days - if ( interval > 1 ) { - return sprintf( - // translators: placeholder is a number amount of years i.e. "5 years ago". - _n( '%s year ago', '%s years ago', Math.floor( interval ), 'jetpack-protect' ), - Math.floor( interval ) - ); - } - - interval = seconds / 2592000; // 30 days - if ( interval > 1 ) { - return sprintf( - // translators: placeholder is a number amount of months i.e. "5 months ago". - _n( '%s month ago', '%s months ago', Math.floor( interval ), 'jetpack-protect' ), - Math.floor( interval ) - ); - } - - interval = seconds / 86400; // 1 day - if ( interval > 1 ) { - return sprintf( - // translators: placeholder is a number amount of days i.e. "5 days ago". - _n( '%s day ago', '%s days ago', Math.floor( interval ), 'jetpack-protect' ), - Math.floor( interval ) - ); - } - - interval = seconds / 3600; // 1 hour - if ( interval > 1 ) { - return sprintf( - // translators: placeholder is a number amount of hours i.e. "5 hours ago". - _n( '%s hour ago', '%s hours ago', Math.floor( interval ), 'jetpack-protect' ), - Math.floor( interval ) - ); - } - - interval = seconds / 60; // 1 minute - if ( interval > 1 ) { - return sprintf( - // translators: placeholder is a number amount of minutes i.e. "5 minutes ago". - _n( '%s minute ago', '%s minutes ago', Math.floor( interval ), 'jetpack-protect' ), - Math.floor( interval ) - ); - } - - return __( 'a few seconds ago', 'jetpack-protect' ); -}; - -const EmptyList = () => { - const { lastChecked } = useProtectData(); - const { hasPlan } = usePlan(); - const { data: status } = useScanStatusQuery(); - - const [ dailyAndManualScansPopoverAnchor, setDailyAndManualScansPopoverAnchor ] = - useState( null ); - - const timeSinceLastScan = useMemo( () => { - return lastChecked ? timeSince( Date.parse( lastChecked ) ) : null; - }, [ lastChecked ] ); - - return ( -
    - -

    - { __( "Don't worry about a thing", 'jetpack-protect' ) } -

    - - { timeSinceLastScan - ? createInterpolateElement( - sprintf( - // translators: placeholder is the amount of time since the last scan, i.e. "5 minutes ago". - __( - 'The last Protect scan ran %s and everything looked great.', - 'jetpack-protect' - ), - timeSinceLastScan - ), - { - strong: , - } - ) - : __( 'No threats have been detected by the current scan.', 'jetpack-protect' ) } - - { hasPlan && ( - <> - - { ! isScanInProgress( status ) && ( -
    - ); -}; - -export default EmptyList; diff --git a/projects/plugins/protect/src/js/components/threats-list/free-list.jsx b/projects/plugins/protect/src/js/components/threats-list/free-list.jsx deleted file mode 100644 index 88d4a92f9bac5..0000000000000 --- a/projects/plugins/protect/src/js/components/threats-list/free-list.jsx +++ /dev/null @@ -1,125 +0,0 @@ -import { Text, Button, ContextualUpgradeTrigger } from '@automattic/jetpack-components'; -import { __, sprintf } from '@wordpress/i18n'; -import React, { useCallback } from 'react'; -import useAnalyticsTracks from '../../hooks/use-analytics-tracks'; -import usePlan from '../../hooks/use-plan'; -import FreeAccordion, { FreeAccordionItem } from '../free-accordion'; -import Pagination from './pagination'; -import styles from './styles.module.scss'; - -const ThreatAccordionItem = ( { - description, - fixedIn, - icon, - id, - label, - name, - source, - title, - type, -} ) => { - const { recordEvent } = useAnalyticsTracks(); - const { upgradePlan } = usePlan(); - - const getScan = useCallback( () => { - recordEvent( 'jetpack_protect_threat_list_get_scan_link_click' ); - upgradePlan(); - }, [ recordEvent, upgradePlan ] ); - - const learnMoreButton = source ? ( - - ) : null; - - return ( - { - if ( ! [ 'core', 'plugin', 'theme' ].includes( type ) ) { - return; - } - recordEvent( `jetpack_protect_${ type }_threat_open` ); - }, [ recordEvent, type ] ) } - > - { description && ( -
    - - { __( 'What is the problem?', 'jetpack-protect' ) } - - { description } - { learnMoreButton } -
    - ) } - { fixedIn && ( -
    - - { __( 'How to fix it?', 'jetpack-protect' ) } - - - { - /* translators: Translates to Update to. %1$s: Name. %2$s: Fixed version */ - sprintf( __( 'Update to %1$s %2$s', 'jetpack-protect' ), name, fixedIn ) - } - - -
    - ) } - { ! description &&
    { learnMoreButton }
    } -
    - ); -}; - -const FreeList = ( { list } ) => { - return ( - - { ( { currentItems } ) => ( - - { currentItems.map( - ( { - description, - fixedIn, - icon, - id, - label, - name, - source, - table, - title, - type, - version, - } ) => ( - - ) - ) } - - ) } - - ); -}; - -export default FreeList; diff --git a/projects/plugins/protect/src/js/components/threats-list/index.jsx b/projects/plugins/protect/src/js/components/threats-list/index.jsx deleted file mode 100644 index 2823a804c1412..0000000000000 --- a/projects/plugins/protect/src/js/components/threats-list/index.jsx +++ /dev/null @@ -1,194 +0,0 @@ -import { - Container, - Col, - Title, - Button, - useBreakpointMatch, - Text, -} from '@automattic/jetpack-components'; -import { __, sprintf } from '@wordpress/i18n'; -import React, { useCallback, useMemo, useState } from 'react'; -import useScanStatusQuery, { isScanInProgress } from '../../data/scan/use-scan-status-query'; -import useFixers from '../../hooks/use-fixers'; -import useModal from '../../hooks/use-modal'; -import usePlan from '../../hooks/use-plan'; -import OnboardingPopover from '../onboarding-popover'; -import ScanButton from '../scan-button'; -import EmptyList from './empty'; -import FreeList from './free-list'; -import ThreatsNavigation from './navigation'; -import PaidList from './paid-list'; -import styles from './styles.module.scss'; -import useThreatsList from './use-threats-list'; - -const ThreatsList = () => { - const { hasPlan } = usePlan(); - const { item, list, selected, setSelected } = useThreatsList(); - const [ isSm ] = useBreakpointMatch( 'sm' ); - const { isThreatFixInProgress, isThreatFixStale } = useFixers(); - - const { data: status } = useScanStatusQuery(); - const scanning = isScanInProgress( status ); - - // List of fixable threats that do not have a fix in progress - const fixableList = useMemo( () => { - return list.filter( threat => { - const threatId = parseInt( threat.id ); - return ( - threat.fixable && ! isThreatFixInProgress( threatId ) && ! isThreatFixStale( threatId ) - ); - } ); - }, [ list, isThreatFixInProgress, isThreatFixStale ] ); - - // Popover anchors - const [ yourScanResultsPopoverAnchor, setYourScanResultsPopoverAnchor ] = useState( null ); - const [ understandSeverityPopoverAnchor, setUnderstandSeverityPopoverAnchor ] = useState( null ); - const [ showAutoFixersPopoverAnchor, setShowAutoFixersPopoverAnchor ] = useState( null ); - const [ dailyAndManualScansPopoverAnchor, setDailyAndManualScansPopoverAnchor ] = - useState( null ); - - const { setModal } = useModal(); - - const handleShowAutoFixersClick = threatList => { - return event => { - event.preventDefault(); - setModal( { - type: 'FIX_ALL_THREATS', - props: { threatList }, - } ); - }; - }; - - const getTitle = useCallback( () => { - switch ( selected ) { - case 'all': - if ( list.length === 1 ) { - return __( 'All threats', 'jetpack-protect' ); - } - return sprintf( - /* translators: placeholder is the amount of threats found on the site. */ - __( 'All %s threats', 'jetpack-protect' ), - list.length - ); - case 'core': - return sprintf( - /* translators: placeholder is the amount of WordPress threats found on the site. */ - __( '%1$s WordPress %2$s', 'jetpack-protect' ), - list.length, - list.length === 1 ? 'threat' : 'threats' - ); - case 'files': - return sprintf( - /* translators: placeholder is the amount of file threats found on the site. */ - __( '%1$s file %2$s', 'jetpack-protect' ), - list.length, - list.length === 1 ? 'threat' : 'threats' - ); - case 'database': - return sprintf( - /* translators: placeholder is the amount of database threats found on the site. */ - __( '%1$s database %2$s', 'jetpack-protect' ), - list.length, - list.length === 1 ? 'threat' : 'threats' - ); - default: - return sprintf( - /* translators: Translates to Update to. %1$s: Name. %2$s: Fixed version */ - __( '%1$s %2$s in %3$s %4$s', 'jetpack-protect' ), - list.length, - list.length === 1 ? 'threat' : 'threats', - item?.name, - item?.version - ); - } - }, [ selected, list, item ] ); - - return ( - - -
    - -
    - { ! scanning && ( - - ) } - - - { list?.length > 0 ? ( - <> -
    - { getTitle() } - { hasPlan && ( -
    - { fixableList.length > 0 && ( - <> - - { ! scanning && ( -
    - ) } -
    - { hasPlan ? ( - <> -
    - -
    - - { __( - 'If you have manually fixed any of the threats listed above, you can run a manual scan now or wait for Jetpack to scan your site later today.', - 'jetpack-protect' - ) } - - -
    -
    - { ! scanning && ( -
    - ); -}; - -export default ThreatsList; diff --git a/projects/plugins/protect/src/js/components/threats-list/navigation.jsx b/projects/plugins/protect/src/js/components/threats-list/navigation.jsx deleted file mode 100644 index 9befe85a78612..0000000000000 --- a/projects/plugins/protect/src/js/components/threats-list/navigation.jsx +++ /dev/null @@ -1,130 +0,0 @@ -import { useBreakpointMatch } from '@automattic/jetpack-components'; -import { __ } from '@wordpress/i18n'; -import { - wordpress as coreIcon, - plugins as pluginsIcon, - warning as warningIcon, - color as themesIcon, - code as filesIcon, -} from '@wordpress/icons'; -import { useCallback, useMemo } from 'react'; -import useAnalyticsTracks from '../../hooks/use-analytics-tracks'; -import usePlan from '../../hooks/use-plan'; -import useProtectData from '../../hooks/use-protect-data'; -import Navigation, { NavigationItem, NavigationGroup } from '../navigation'; - -const ThreatsNavigation = ( { selected, onSelect, sourceType = 'scan', statusFilter = 'all' } ) => { - const { hasPlan } = usePlan(); - const { - results: { plugins, themes }, - counts: { - current: { threats: numThreats, core: numCoreThreats, files: numFilesThreats }, - }, - } = useProtectData( { sourceType, filter: { status: statusFilter } } ); - - const { recordEvent } = useAnalyticsTracks(); - const [ isSmallOrLarge ] = useBreakpointMatch( 'lg', '<' ); - - const trackNavigationClickAll = useCallback( () => { - recordEvent( 'jetpack_protect_navigation_all_click' ); - }, [ recordEvent ] ); - - const trackNavigationClickCore = useCallback( () => { - recordEvent( 'jetpack_protect_navigation_core_click' ); - }, [ recordEvent ] ); - - const trackNavigationClickPlugin = useCallback( () => { - recordEvent( 'jetpack_protect_navigation_plugin_click' ); - }, [ recordEvent ] ); - - const trackNavigationClickTheme = useCallback( () => { - recordEvent( 'jetpack_protect_navigation_theme_click' ); - }, [ recordEvent ] ); - - const trackNavigationClickFiles = useCallback( () => { - recordEvent( 'jetpack_protect_navigation_file_click' ); - }, [ recordEvent ] ); - - const allLabel = useMemo( () => { - if ( statusFilter === 'fixed' ) { - return __( 'All fixed threats', 'jetpack-protect' ); - } - if ( statusFilter === 'ignored' ) { - return __( - 'All ignored threats', - 'jetpack-protect', - /** dummy arg to avoid bad minification */ 0 - ); - } - return __( 'All threats', 'jetpack-protect' ); - }, [ statusFilter ] ); - - return ( - - - - - { plugins.map( ( { name, threats, checked } ) => ( - - ) ) } - - - { themes.map( ( { name, threats, checked } ) => ( - - ) ) } - - { hasPlan && ( - <> - - - ) } - - ); -}; - -export default ThreatsNavigation; diff --git a/projects/plugins/protect/src/js/components/threats-list/pagination.jsx b/projects/plugins/protect/src/js/components/threats-list/pagination.jsx deleted file mode 100644 index 3e17bed0eeac4..0000000000000 --- a/projects/plugins/protect/src/js/components/threats-list/pagination.jsx +++ /dev/null @@ -1,142 +0,0 @@ -import { Button, useBreakpointMatch } from '@automattic/jetpack-components'; -import { __, sprintf } from '@wordpress/i18n'; -import { chevronLeft, chevronRight } from '@wordpress/icons'; -import React, { useCallback, useState, useMemo } from 'react'; -import styles from './styles.module.scss'; - -const PaginationButton = ( { pageNumber, currentPage, onPageChange } ) => { - const isCurrentPage = useMemo( () => currentPage === pageNumber, [ currentPage, pageNumber ] ); - - const handleClick = useCallback( () => { - onPageChange( pageNumber ); - }, [ onPageChange, pageNumber ] ); - - return ( - - ); -}; - -const Pagination = ( { list, itemPerPage = 10, children } ) => { - const [ isSm ] = useBreakpointMatch( 'sm' ); - - const [ currentPage, setCurrentPage ] = useState( 1 ); - - const handlePreviousPageClick = useCallback( - () => setCurrentPage( currentPage - 1 ), - [ currentPage, setCurrentPage ] - ); - const handleNextPageClick = useCallback( - () => setCurrentPage( currentPage + 1 ), - [ currentPage, setCurrentPage ] - ); - - const totalPages = useMemo( () => Math.ceil( list.length / itemPerPage ), [ list, itemPerPage ] ); - - const currentItems = useMemo( () => { - const indexOfLastItem = currentPage * itemPerPage; - const indexOfFirstItem = indexOfLastItem - itemPerPage; - return list.slice( indexOfFirstItem, indexOfLastItem ); - }, [ currentPage, list, itemPerPage ] ); - - const pageNumbers = useMemo( () => { - if ( isSm ) { - return [ currentPage ]; - } - - const result = [ 1 ]; - if ( currentPage > 3 && totalPages > 4 ) { - result.push( '…' ); - } - - if ( currentPage === 1 ) { - // Current page is the first page. - // i.e. [ 1 ] 2 3 4 ... 10 - result.push( currentPage + 1, currentPage + 2, currentPage + 3 ); - } else if ( currentPage === 2 ) { - // Current page is the second to first page. - // i.e. 1 [ 2 ] 3 4 ... 10 - result.push( currentPage, currentPage + 1, currentPage + 2 ); - } else if ( currentPage < totalPages - 1 ) { - // Current page is positioned in the middle of the pagination. - // i.e. 1 ... 3 [ 4 ] 5 ... 10 - result.push( currentPage - 1, currentPage, currentPage + 1 ); - } else if ( currentPage === totalPages - 1 ) { - // Current page is the second to last page. - // i.e. 1 ... 7 8 [ 9 ] 10 - currentPage > 3 && result.push( currentPage - 2 ); - currentPage > 2 && result.push( currentPage - 1 ); - result.push( currentPage ); - } else if ( currentPage === totalPages ) { - // Current page is the last page. - // i.e. 1 ... 7 8 9 [ 10 ] - currentPage >= 5 && result.push( currentPage - 3 ); - currentPage >= 4 && result.push( currentPage - 2 ); - result.push( currentPage - 1 ); - } - - if ( result[ result.length - 1 ] < totalPages - 1 ) { - result.push( '…' ); - result.push( totalPages ); - } else if ( result[ result.length - 1 ] < totalPages ) { - result.push( totalPages ); - } - - return result.filter( pageNumber => pageNumber <= totalPages || isNaN( pageNumber ) ); - }, [ currentPage, isSm, totalPages ] ); - - return ( - <> - { children( { currentItems } ) } - { totalPages > 1 && ( - - ) } - - ); -}; - -export default Pagination; diff --git a/projects/plugins/protect/src/js/components/threats-list/paid-list.jsx b/projects/plugins/protect/src/js/components/threats-list/paid-list.jsx deleted file mode 100644 index baedf8dfa5184..0000000000000 --- a/projects/plugins/protect/src/js/components/threats-list/paid-list.jsx +++ /dev/null @@ -1,253 +0,0 @@ -import { - Text, - Button, - DiffViewer, - MarkedLines, - useBreakpointMatch, -} from '@automattic/jetpack-components'; -import { __, sprintf } from '@wordpress/i18n'; -import React, { useCallback } from 'react'; -import useAnalyticsTracks from '../../hooks/use-analytics-tracks'; -import useFixers from '../../hooks/use-fixers'; -import useModal from '../../hooks/use-modal'; -import PaidAccordion, { PaidAccordionItem } from '../paid-accordion'; -import Pagination from './pagination'; -import styles from './styles.module.scss'; - -const ThreatAccordionItem = ( { - context, - description, - diff, - filename, - firstDetected, - fixedIn, - fixedOn, - icon, - fixable, - id, - label, - name, - source, - title, - type, - severity, - status, - hideAutoFixColumn = false, -} ) => { - const { setModal } = useModal(); - const { recordEvent } = useAnalyticsTracks(); - - const { isThreatFixInProgress, isThreatFixStale } = useFixers(); - const isActiveFixInProgress = isThreatFixInProgress( id ); - const isStaleFixInProgress = isThreatFixStale( id ); - - const learnMoreButton = source ? ( - - ) : null; - - const handleIgnoreThreatClick = () => { - return event => { - event.preventDefault(); - setModal( { - type: 'IGNORE_THREAT', - props: { id, label, title, icon, severity }, - } ); - }; - }; - - const handleUnignoreThreatClick = () => { - return event => { - event.preventDefault(); - setModal( { - type: 'UNIGNORE_THREAT', - props: { id, label, title, icon, severity }, - } ); - }; - }; - - const handleFixThreatClick = () => { - return event => { - event.preventDefault(); - setModal( { - type: 'FIX_THREAT', - props: { id, fixable, label, icon, severity }, - } ); - }; - }; - - return ( - { - if ( ! [ 'core', 'plugin', 'theme', 'file', 'database' ].includes( type ) ) { - return; - } - recordEvent( `jetpack_protect_${ type }_threat_open` ); - }, [ recordEvent, type ] ) } - hideAutoFixColumn={ hideAutoFixColumn } - > - { description && ( -
    - - { status !== 'fixed' - ? __( 'What is the problem?', 'jetpack-protect' ) - : __( - 'What was the problem?', - 'jetpack-protect', - /** dummy arg to avoid bad minification */ 0 - ) } - - { description } - { learnMoreButton } -
    - ) } - { ( filename || context || diff ) && ( - - { __( 'The technical details', 'jetpack-protect' ) } - - ) } - { filename && ( - <> - - { - /* translators: filename follows in separate line; e.g. "PHP.Injection.5 in: `post.php`" */ - __( 'Threat found in file:', 'jetpack-protect' ) - } - -
    { filename }
    - - ) } - { context && } - { diff && } - { fixedIn && status !== 'fixed' && ( -
    - - { __( 'How to fix it?', 'jetpack-protect' ) } - - - { - /* translators: Translates to Update to. %1$s: Name. %2$s: Fixed version */ - sprintf( __( 'Update to %1$s %2$s', 'jetpack-protect' ), name, fixedIn ) - } - -
    - ) } - { ! description &&
    { learnMoreButton }
    } - { [ 'ignored', 'current' ].includes( status ) && ( -
    - { 'ignored' === status && ( - - ) } - { 'current' === status && ( - <> - - { fixable && ( - - ) } - - ) } -
    - ) } -
    - ); -}; - -const PaidList = ( { list, hideAutoFixColumn = false } ) => { - const [ isSmall ] = useBreakpointMatch( [ 'sm', 'lg' ], [ null, '<' ] ); - - return ( - <> - { ! isSmall && ( -
    - { __( 'Details', 'jetpack-protect' ) } - { __( 'Severity', 'jetpack-protect' ) } - { ! hideAutoFixColumn && { __( 'Auto-fix', 'jetpack-protect' ) } } - -
    - ) } - - { ( { currentItems } ) => ( - - { currentItems.map( - ( { - context, - description, - diff, - filename, - firstDetected, - fixedIn, - fixedOn, - icon, - fixable, - id, - label, - name, - severity, - source, - table, - title, - type, - version, - status, - } ) => ( - - ) - ) } - - ) } - - - ); -}; - -export default PaidList; diff --git a/projects/plugins/protect/src/js/components/threats-list/styles.module.scss b/projects/plugins/protect/src/js/components/threats-list/styles.module.scss deleted file mode 100644 index 4a50d87b2562b..0000000000000 --- a/projects/plugins/protect/src/js/components/threats-list/styles.module.scss +++ /dev/null @@ -1,129 +0,0 @@ -.empty { - display: flex; - width: 100%; - height: 100%; - align-items: center; - justify-content: center; - max-height: 600px; - flex-direction: column; -} - -.threat-section + .threat-section { - margin-top: calc( var( --spacing-base ) * 5 ); // 40px -} - -.threat-filename { - background-color: var( --jp-gray-0 ); - padding: calc( var( --spacing-base ) * 3 ); // 24px - overflow-x: scroll; -} - -.threat-footer { - display: flex; - justify-content: flex-end; - border-top: 1px solid var( --jp-gray ); - padding-top: calc( var( --spacing-base ) * 3 ); // 24px - margin-top: calc( var( --spacing-base ) * 3 ); // 24px -} -.threat-item-cta { - margin-top: calc( var( --spacing-base ) * 4 ); // 36px -} - -.list-header { - display: flex; - align-items: flex-end; - margin-bottom: calc( var( --spacing-base ) * 2.25 ); // 18px -} - -.list-title { - flex: 1; - margin-bottom: 0; -} - -.list-header__controls { - display: flex; - gap: calc( var( --spacing-base ) * 2 ); // 16px -} - -.threat-footer { - width: 100%; - display: flex; - justify-content: right; - padding-top: calc( var( --spacing-base ) * 4 ); // 32px - border-top: 1px solid var( --jp-gray ); - - > :last-child { - margin-left: calc( var( --spacing-base ) * 2 ); // 16px - } -} - -.accordion-header { - display: grid; - grid-template-columns: repeat( 9, 1fr ); - background-color: white; - padding: calc( var( --spacing-base ) * 2 ) calc( var( --spacing-base ) * 3 ); // 16px | 24px - border: 1px solid var( --jp-gray ); - border-bottom: none; - color: var( --jp-gray-50 ); - width: 100%; - - > span:first-child { - grid-column: 1 / 7; - } - - > span:not( :first-child ) { - text-align: center; - } -} - -.manual-scan { - margin: calc( var( --spacing-base ) * 4 ) calc( var( --spacing-base ) * 8 ); // 32px | 64px - text-align: center; -} - -@media ( max-width: 599px ) { - - .list-header { - margin-bottom: calc( var( --spacing-base ) * 3 ); // 24px - } - - .list-title { - display: none; - } - - .threat-footer { - justify-content: center; - - > * { - width: 50%; - } - } -} - -.pagination-container { - display: flex; - justify-content: center; - align-items: center; - gap: 4px; - margin-top: calc( var( --spacing-base ) * 4 ); // 24px - margin-bottom: calc(var(--spacing-base) * 2); // 16px - - button { - font-size: var( --font-body ); - width: auto; - height: auto; - padding: 0 var( --spacing-base ); // 0 | 8px - line-height: 32px; - min-width: 32px; - - &.unfocused { - color: var( --jp-black ); - background: none; - - &:hover:not(:disabled) { - color: var( --jp-black ); - background: none; - } - } - } -} diff --git a/projects/plugins/protect/src/js/components/threats-list/use-threats-list.js b/projects/plugins/protect/src/js/components/threats-list/use-threats-list.js deleted file mode 100644 index de000288251ae..0000000000000 --- a/projects/plugins/protect/src/js/components/threats-list/use-threats-list.js +++ /dev/null @@ -1,158 +0,0 @@ -import { - plugins as pluginsIcon, - wordpress as coreIcon, - color as themesIcon, - code as filesIcon, - grid as databaseIcon, -} from '@wordpress/icons'; -import { useEffect, useMemo, useState } from 'react'; -import useProtectData from '../../hooks/use-protect-data'; - -const sortThreats = ( a, b ) => b.severity - a.severity; - -/** - * Flatten threats data - * - * Merges threat category data with each threat it contains, plus any additional data provided. - * - * @param {object} data - The threat category data, i.e. "core", "plugins", "themes", etc. - * @param {object} newData - Additional data to add to each threat. - * @return {object[]} Array of threats with additional properties from the threat category and function argument. - */ -const flattenThreats = ( data, newData ) => { - // If "data" is an empty object - if ( typeof data === 'object' && Object.keys( data ).length === 0 ) { - return []; - } - - // If "data" has multiple entries, recursively flatten each one. - if ( Array.isArray( data ) ) { - return data.map( extension => flattenThreats( extension, newData ) ).flat(); - } - - // Merge the threat category data with each threat it contains, plus any additional data provided. - return data?.threats.map( threat => ( { - ...threat, - ...data, - ...newData, - } ) ); -}; - -/** - * Threats List Hook - * - * @param {object} args - Arguments for the hook. - * @param {string} args.source - "scan" or "history". - * @param {string} args.status - "all", "fixed", or "ignored". - * --- - * @typedef {object} UseThreatsList - * @property {object} item - The selected threat category. - * @property {object[]} list - The list of threats to display. - * @property {string} selected - The selected threat category. - * @property {Function} setSelected - Sets the selected threat category. - * --- - * @return {UseThreatsList} useThreatsList hook. - */ -const useThreatsList = ( { source, status } = { source: 'scan', status: 'all' } ) => { - const [ selected, setSelected ] = useState( 'all' ); - const { - results: { plugins, themes, core, files, database }, - } = useProtectData( { - sourceType: source, - filter: { status, key: selected }, - } ); - - const { unsortedList, item } = useMemo( () => { - // If a specific threat category is selected, filter for and flatten the category's threats. - if ( selected && selected !== 'all' ) { - // Core, files, and database data threats are already grouped together, - // so we just need to flatten them and add the appropriate icon. - switch ( selected ) { - case 'core': - return { - unsortedList: flattenThreats( core, { icon: coreIcon } ), - item: core, - }; - case 'files': - return { - unsortedList: flattenThreats( { threats: files }, { icon: filesIcon } ), - item: files, - }; - case 'database': - return { - unsortedList: flattenThreats( { threats: database }, { icon: databaseIcon } ), - item: database, - }; - default: - break; - } - - // Extensions (i.e. plugins and themes) have entries for each individual extension, - // so we need to check for a matching threat in each extension. - const selectedPlugin = plugins.find( plugin => plugin?.name === selected ); - if ( selectedPlugin ) { - return { - unsortedList: flattenThreats( selectedPlugin, { icon: pluginsIcon } ), - item: selectedPlugin, - }; - } - const selectedTheme = themes.find( theme => theme?.name === selected ); - if ( selectedTheme ) { - return { - unsortedList: flattenThreats( selectedTheme, { icon: themesIcon } ), - item: selectedTheme, - }; - } - } - - // Otherwise, return all threats. - return { - unsortedList: [ - ...flattenThreats( core, { icon: coreIcon } ), - ...flattenThreats( plugins, { icon: pluginsIcon } ), - ...flattenThreats( themes, { icon: themesIcon } ), - ...flattenThreats( { threats: files }, { icon: filesIcon } ), - ...flattenThreats( { threats: database }, { icon: databaseIcon } ), - ], - item: null, - }; - }, [ core, database, files, plugins, selected, themes ] ); - - const getLabel = threat => { - if ( threat.name && threat.version ) { - // Extension threat i.e. "Woocommerce (3.0.0)" - return `${ threat.name } (${ threat.version })`; - } - - if ( threat.filename ) { - // File threat i.e. "index.php" - return threat.filename.split( '/' ).pop(); - } - - if ( threat.table ) { - // Database threat i.e. "wp_posts" - return threat.table; - } - }; - - const list = useMemo( () => { - return unsortedList - .sort( sortThreats ) - .map( threat => ( { label: getLabel( threat ), ...threat } ) ); - }, [ unsortedList ] ); - - useEffect( () => { - if ( selected !== 'all' && status !== 'all' && list.length === 0 ) { - setSelected( 'all' ); - } - }, [ selected, status, item, list ] ); - - return { - item, - list, - selected, - setSelected, - }; -}; - -export default useThreatsList; diff --git a/projects/plugins/protect/src/js/components/unignore-threat-modal/index.jsx b/projects/plugins/protect/src/js/components/unignore-threat-modal/index.jsx index 81f1eabb27d5b..7f1ef3652bb85 100644 --- a/projects/plugins/protect/src/js/components/unignore-threat-modal/index.jsx +++ b/projects/plugins/protect/src/js/components/unignore-threat-modal/index.jsx @@ -1,4 +1,5 @@ import { Button, Text, ThreatSeverityBadge } from '@automattic/jetpack-components'; +import { getThreatIcon, getThreatSubtitle } from '@automattic/jetpack-scan'; import { __ } from '@wordpress/i18n'; import { Icon } from '@wordpress/icons'; import { useState } from 'react'; @@ -7,9 +8,14 @@ import useModal from '../../hooks/use-modal'; import UserConnectionGate from '../user-connection-gate'; import styles from './styles.module.scss'; -const UnignoreThreatModal = ( { id, title, label, icon, severity } ) => { +const UnignoreThreatModal = ( { threat } ) => { const { setModal } = useModal(); + + const icon = getThreatIcon( threat ); + + const [ isUnignoring, setIsUnignoring ] = useState( false ); const unignoreThreatMutation = useUnIgnoreThreatMutation(); + const handleCancelClick = () => { return event => { event.preventDefault(); @@ -17,13 +23,11 @@ const UnignoreThreatModal = ( { id, title, label, icon, severity } ) => { }; }; - const [ isUnignoring, setIsUnignoring ] = useState( false ); - const handleUnignoreClick = () => { return async event => { event.preventDefault(); setIsUnignoring( true ); - await unignoreThreatMutation.mutateAsync( id ); + await unignoreThreatMutation.mutateAsync( threat.id ); setModal( { type: null } ); setIsUnignoring( false ); }; @@ -40,12 +44,12 @@ const UnignoreThreatModal = ( { id, title, label, icon, severity } ) => {
    - { label } + { getThreatSubtitle( threat ) } - { title } + { threat.title }
    - +
    diff --git a/projects/plugins/protect/src/js/hooks/use-protect-data/index.ts b/projects/plugins/protect/src/js/hooks/use-protect-data/index.ts deleted file mode 100644 index 2338d306e6780..0000000000000 --- a/projects/plugins/protect/src/js/hooks/use-protect-data/index.ts +++ /dev/null @@ -1,173 +0,0 @@ -import { type ExtensionStatus, type Threat, type ThreatStatus } from '@automattic/jetpack-scan'; -import { __ } from '@wordpress/i18n'; -import { useMemo } from 'react'; -import useHistoryQuery from '../../data/scan/use-history-query'; -import useScanStatusQuery from '../../data/scan/use-scan-status-query'; -import useProductDataQuery from '../../data/use-product-data-query'; - -type ThreatFilterKey = 'all' | 'core' | 'files' | 'database' | string; - -type Filter = { key: ThreatFilterKey; status: ThreatStatus | 'all' }; - -// Valid "key" values for filtering. -const KEY_FILTERS = [ 'all', 'core', 'plugins', 'themes', 'files', 'database' ]; - -/** - * Filter Extension Threats - * - * @param {Array} threats - The threats to filter. - * @param {object} filter - The filter to apply to the data. - * @param {string} filter.status - The status to filter: 'all', 'current', 'fixed', or 'ignored'. - * @param {string} filter.key - The key to filter: 'all', 'core', 'files', 'database', or an extension name. - * @param {string} key - The threat's key: 'all', 'core', 'files', 'database', or an extension name. - * - * @return {Array} The filtered threats. - */ -const filterThreats = ( threats: Threat[], filter: Filter, key: ThreatFilterKey ): Threat[] => { - if ( ! Array.isArray( threats ) ) { - return []; - } - - return threats.filter( threat => { - if ( filter.status && filter.status !== 'all' && threat.status !== filter.status ) { - return false; - } - if ( filter.key && filter.key !== 'all' && filter.key !== key ) { - return false; - } - return true; - } ); -}; - -/** - * Get parsed data from the initial state - * - * @param {object} options - The options to use when getting the data. - * @param {string} options.sourceType - 'scan' or 'history'. - * @param {object} options.filter - The filter to apply to the data. - * _param {string} options.filter.status - 'all', 'fixed', or 'ignored'. - * _param {string} options.filter.key - 'all', 'core', 'files', 'database', or an extension name. - * - * @return {object} The information available in Protect's initial state. - */ -export default function useProtectData( - { sourceType, filter } = { - sourceType: 'scan', - filter: { status: null, key: null }, - } -) { - const { data: status } = useScanStatusQuery(); - const { data: scanHistory } = useHistoryQuery(); - const { data: jetpackScan } = useProductDataQuery(); - - const { counts, results, error, lastChecked, hasUncheckedItems } = useMemo( () => { - // This hook can provide data from two sources: the current scan or the scan history. - const data = sourceType === 'history' ? { ...scanHistory } : { ...status }; - - // Prepare the result object. - const result = { - results: { - core: [], - plugins: [], - themes: [], - files: [], - database: [], - }, - counts: { - all: { - threats: 0, - core: 0, - plugins: 0, - themes: 0, - files: 0, - database: 0, - }, - current: { - threats: 0, - core: 0, - plugins: 0, - themes: 0, - files: 0, - database: 0, - }, - }, - error: null, - lastChecked: data.lastChecked || null, - hasUncheckedItems: data.hasUncheckedItems || false, - }; - - // Loop through the provided extensions, and update the result object. - const processExtensions = ( extensions: Array< ExtensionStatus >, key: ThreatFilterKey ) => { - if ( ! Array.isArray( extensions ) ) { - return []; - } - extensions.forEach( extension => { - // Update the total counts. - result.counts.all[ key ] += extension?.threats?.length || 0; - result.counts.all.threats += extension?.threats?.length || 0; - - // Filter the extension's threats based on the current filters. - const filteredThreats = filterThreats( - extension?.threats || [], - filter, - KEY_FILTERS.includes( filter.key ) ? key : extension?.name - ); - - // Update the result object with the extension and its filtered threats. - result.results[ key ].push( { ...extension, threats: filteredThreats } ); - - // Update the current counts. - result.counts.current[ key ] += filteredThreats.length; - result.counts.current.threats += filteredThreats.length; - } ); - }; - - // Loop through the provided threats, and update the result object. - const processThreats = ( threatsToProcess: Threat[], key: ThreatFilterKey ) => { - if ( ! Array.isArray( threatsToProcess ) ) { - return []; - } - - result.counts.all[ key ] += threatsToProcess.length; - result.counts.all.threats += threatsToProcess.length; - - const filteredThreats = filterThreats( threatsToProcess, filter, key ); - - result.results[ key ] = [ ...result.results[ key ], ...filteredThreats ]; - result.counts.current[ key ] += filteredThreats.length; - result.counts.current.threats += filteredThreats.length; - }; - - // Core data may be either a single object or an array of multiple objects. - let cores = Array.isArray( data.core ) ? data.core : []; - if ( data?.core?.threats ) { - cores = [ data.core ]; - } - - // Process the data - processExtensions( cores, 'core' ); - processExtensions( data?.plugins, 'plugins' ); - processExtensions( data?.themes, 'themes' ); - processThreats( data?.files, 'files' ); - processThreats( data?.database, 'database' ); - - // Handle errors - if ( data.error ) { - result.error = { - message: data.errorMessage || __( 'An error occurred.', 'jetpack-protect' ), - code: data.errorCode || 500, - }; - } - - return result; - }, [ scanHistory, sourceType, status, filter ] ); - - return { - results, - counts, - error, - lastChecked, - hasUncheckedItems, - jetpackScan, - }; -} diff --git a/projects/plugins/protect/src/js/index.tsx b/projects/plugins/protect/src/js/index.tsx index b8983d65bb836..2b91f4b090b92 100644 --- a/projects/plugins/protect/src/js/index.tsx +++ b/projects/plugins/protect/src/js/index.tsx @@ -2,7 +2,7 @@ import { ThemeProvider } from '@automattic/jetpack-components'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { ReactQueryDevtools } from '@tanstack/react-query-devtools'; import * as WPElement from '@wordpress/element'; -import React, { useEffect } from 'react'; +import { useEffect } from 'react'; import { HashRouter, Routes, Route, useLocation, Navigate } from 'react-router-dom'; import Modal from './components/modal'; import PaidPlanGate from './components/paid-plan-gate'; @@ -12,7 +12,6 @@ import { OnboardingRenderedContextProvider } from './hooks/use-onboarding'; import { CheckoutProvider } from './hooks/use-plan'; import FirewallRoute from './routes/firewall'; import ScanRoute from './routes/scan'; -import ScanHistoryRoute from './routes/scan/history'; import SetupRoute from './routes/setup'; import './styles.module.scss'; @@ -62,7 +61,7 @@ function render() { path="/scan/history" element={ - + } /> @@ -70,7 +69,7 @@ function render() { path="/scan/history/:filter" element={ - + } /> diff --git a/projects/plugins/protect/src/js/routes/firewall/index.jsx b/projects/plugins/protect/src/js/routes/firewall/index.jsx index 1468fb40ba8cf..0dfd22468079e 100644 --- a/projects/plugins/protect/src/js/routes/firewall/index.jsx +++ b/projects/plugins/protect/src/js/routes/firewall/index.jsx @@ -22,7 +22,6 @@ import useWafUpgradeSeenMutation from '../../data/waf/use-waf-upgrade-seen-mutat import useAnalyticsTracks from '../../hooks/use-analytics-tracks'; import usePlan from '../../hooks/use-plan'; import useWafData from '../../hooks/use-waf-data'; -import ScanFooter from '../scan/scan-footer'; import FirewallAdminSectionHero from './firewall-admin-section-hero'; import FirewallFooter from './firewall-footer'; import styles from './styles.module.scss'; @@ -576,7 +575,7 @@ const FirewallPage = () => {
    - { wafSupported ? : } + { wafSupported && } ); }; diff --git a/projects/plugins/protect/src/js/routes/scan/history/history-admin-section-hero.tsx b/projects/plugins/protect/src/js/routes/scan/history/history-admin-section-hero.tsx deleted file mode 100644 index 141c51cde284a..0000000000000 --- a/projects/plugins/protect/src/js/routes/scan/history/history-admin-section-hero.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import { Text } from '@automattic/jetpack-components'; -import { dateI18n } from '@wordpress/date'; -import { __, sprintf } from '@wordpress/i18n'; -import { useMemo } from 'react'; -import { useParams } from 'react-router-dom'; -import AdminSectionHero from '../../../components/admin-section-hero'; -import ErrorAdminSectionHero from '../../../components/error-admin-section-hero'; -import useThreatsList from '../../../components/threats-list/use-threats-list'; -import useProtectData from '../../../hooks/use-protect-data'; -import styles from './styles.module.scss'; - -const HistoryAdminSectionHero: React.FC = () => { - const { filter = 'all' } = useParams(); - const { list } = useThreatsList( { - source: 'history', - status: filter, - } ); - const { counts, error } = useProtectData( { - sourceType: 'history', - filter: { status: filter }, - } ); - const { threats: numAllThreats } = counts.all; - - const oldestFirstDetected = useMemo( () => { - if ( ! list.length ) { - return null; - } - - return list.reduce( ( oldest, current ) => { - return new Date( current.firstDetected ) < new Date( oldest.firstDetected ) - ? current - : oldest; - } ).firstDetected; - }, [ list ] ); - - if ( error ) { - return ( - - ); - } - - return ( - - - { oldestFirstDetected ? ( - - { sprintf( - /* translators: %s: Oldest first detected date */ - __( '%s - Today', 'jetpack-protect' ), - dateI18n( 'F jS g:i A', oldestFirstDetected, false ) - ) } - - ) : ( - __( 'Most recent results', 'jetpack-protect' ) - ) } - - - { numAllThreats > 0 - ? sprintf( - /* translators: %s: Total number of threats */ - __( '%1$s previous %2$s', 'jetpack-protect' ), - numAllThreats, - numAllThreats === 1 ? 'threat' : 'threats' - ) - : __( 'No previous threats', 'jetpack-protect' ) } - - - - { __( 'Here you can view all of your threats till this date.', 'jetpack-protect' ) } - - - - } - /> - ); -}; - -export default HistoryAdminSectionHero; diff --git a/projects/plugins/protect/src/js/routes/scan/history/index.jsx b/projects/plugins/protect/src/js/routes/scan/history/index.jsx deleted file mode 100644 index 723f9de9ab230..0000000000000 --- a/projects/plugins/protect/src/js/routes/scan/history/index.jsx +++ /dev/null @@ -1,301 +0,0 @@ -import { AdminSection, Container, Col, H3, Text, Title } from '@automattic/jetpack-components'; -import { __, _n, sprintf } from '@wordpress/i18n'; -import { useCallback } from 'react'; -import { Navigate, useParams } from 'react-router-dom'; -import AdminPage from '../../../components/admin-page'; -import ProtectCheck from '../../../components/protect-check-icon'; -import ThreatsNavigation from '../../../components/threats-list/navigation'; -import PaidList from '../../../components/threats-list/paid-list'; -import useThreatsList from '../../../components/threats-list/use-threats-list'; -import useAnalyticsTracks from '../../../hooks/use-analytics-tracks'; -import usePlan from '../../../hooks/use-plan'; -import useProtectData from '../../../hooks/use-protect-data'; -import ScanFooter from '../scan-footer'; -import HistoryAdminSectionHero from './history-admin-section-hero'; -import StatusFilters from './status-filters'; -import styles from './styles.module.scss'; - -const ScanHistoryRoute = () => { - // Track page view. - useAnalyticsTracks( { pageViewEventName: 'protect_scan_history' } ); - - const { hasPlan } = usePlan(); - const { filter = 'all' } = useParams(); - - const { item, list, selected, setSelected } = useThreatsList( { - source: 'history', - status: filter, - } ); - - const { counts, error } = useProtectData( { - sourceType: 'history', - filter: { status: filter }, - } ); - const { threats: numAllThreats } = counts.all; - - const { counts: fixedCounts } = useProtectData( { - sourceType: 'history', - filter: { status: 'fixed', key: selected }, - } ); - const { threats: numFixed } = fixedCounts.current; - - const { counts: ignoredCounts } = useProtectData( { - sourceType: 'history', - filter: { status: 'ignored', key: selected }, - } ); - const { threats: numIgnored } = ignoredCounts.current; - - /** - * Get the title for the threats list based on the selected filters and the amount of threats. - */ - const getTitle = useCallback( () => { - switch ( selected ) { - case 'all': - if ( list.length === 1 ) { - switch ( filter ) { - case 'fixed': - return __( 'All fixed threats', 'jetpack-protect' ); - case 'ignored': - return __( - 'All ignored threats', - 'jetpack-protect', - /** dummy arg to avoid bad minification */ 0 - ); - default: - return __( 'All threats', 'jetpack-protect' ); - } - } - switch ( filter ) { - case 'fixed': - return sprintf( - /* translators: placeholder is the amount of fixed threats found on the site. */ - __( 'All %s fixed threats', 'jetpack-protect' ), - list.length - ); - case 'ignored': - return sprintf( - /* translators: placeholder is the amount of ignored threats found on the site. */ - __( 'All %s ignored threats', 'jetpack-protect' ), - list.length - ); - default: - return sprintf( - /* translators: placeholder is the amount of threats found on the site. */ - __( 'All %s threats', 'jetpack-protect' ), - list.length - ); - } - case 'core': - switch ( filter ) { - case 'fixed': - return sprintf( - /* translators: placeholder is the amount of fixed WordPress threats found on the site. */ - _n( - '%1$s fixed WordPress threat', - '%1$s fixed WordPress threats', - list.length, - 'jetpack-protect' - ), - list.length - ); - case 'ignored': - return sprintf( - /* translators: placeholder is the amount of ignored WordPress threats found on the site. */ - _n( - '%1$s ignored WordPress threat', - '%1$s ignored WordPress threats', - list.length, - 'jetpack-protect' - ), - list.length - ); - default: - return sprintf( - /* translators: placeholder is the amount of WordPress threats found on the site. */ - _n( - '%1$s WordPress threat', - '%1$s WordPress threats', - list.length, - 'jetpack-protect' - ), - list.length - ); - } - case 'files': - switch ( filter ) { - case 'fixed': - return sprintf( - /* translators: placeholder is the amount of fixed file threats found on the site. */ - _n( - '%1$s fixed file threat', - '%1$s fixed file threats', - list.length, - 'jetpack-protect' - ), - list.length - ); - case 'ignored': - return sprintf( - /* translators: placeholder is the amount of ignored file threats found on the site. */ - _n( - '%1$s ignored file threat', - '%1$s ignored file threats', - list.length, - 'jetpack-protect' - ), - list.length - ); - default: - return sprintf( - /* translators: placeholder is the amount of file threats found on the site. */ - _n( '%1$s file threat', '%1$s file threats', list.length, 'jetpack-protect' ), - list.length - ); - } - case 'database': - switch ( filter ) { - case 'fixed': - return sprintf( - /* translators: placeholder is the amount of fixed database threats found on the site. */ - _n( - '%1$s fixed database threat', - '%1$s fixed database threats', - list.length, - 'jetpack-protect' - ), - list.length - ); - case 'ignored': - return sprintf( - /* translators: placeholder is the amount of ignored database threats found on the site. */ - _n( - '%1$s ignored database threat', - '%1$s ignored database threats', - list.length, - 'jetpack-protect' - ), - list.length - ); - default: - return sprintf( - /* translators: placeholder is the amount of database threats found on the site. */ - _n( '%1$s database threat', '%1$s database threats', list.length, 'jetpack-protect' ), - list.length - ); - } - default: - switch ( filter ) { - case 'fixed': - return sprintf( - /* translators: Translates to "123 fixed threats in Example Plugin (1.2.3)" */ - _n( - '%1$s fixed threat in %2$s %3$s', - '%1$s fixed threats in %2$s %3$s', - list.length, - 'jetpack-protect' - ), - list.length, - item?.name, - item?.version - ); - case 'ignored': - return sprintf( - /* translators: Translates to "123 ignored threats in Example Plugin (1.2.3)" */ - _n( - '%1$s ignored threat in %2$s %3$s', - '%1$s ignored threats in %2$s %3$s', - list.length, - 'jetpack-protect' - ), - list.length, - item?.name, - item?.version - ); - default: - return sprintf( - /* translators: Translates to "123 threats in Example Plugin (1.2.3)" */ - _n( - '%1$s threat in %2$s %3$s', - '%1$s threats in %2$s %3$s', - list.length, - 'jetpack-protect' - ), - list.length, - item?.name, - item?.version - ); - } - } - }, [ selected, list.length, filter, item?.name, item?.version ] ); - - // Threat history is only available for paid plans. - if ( ! hasPlan ) { - return ; - } - - // Remove the filter if there are no threats to show. - if ( list.length === 0 && filter !== 'all' ) { - return ; - } - - return ( - - - { ( ! error || numAllThreats ) && ( - - - - - - - - - { list.length > 0 ? ( -
    -
    - { getTitle() } -
    - -
    -
    - -
    - ) : ( - <> -
    -
    - -
    -
    -
    - -

    - { __( "Don't worry about a thing", 'jetpack-protect' ) } -

    - - { sprintf( - /* translators: %s: Filter type */ - __( 'There are no%sthreats in your scan history.', 'jetpack-protect' ), - 'all' === filter ? ' ' : ` ${ filter } ` - ) } - -
    - - ) } - -
    - -
    -
    - ) } - -
    - ); -}; - -export default ScanHistoryRoute; diff --git a/projects/plugins/protect/src/js/routes/scan/history/status-filters.jsx b/projects/plugins/protect/src/js/routes/scan/history/status-filters.jsx deleted file mode 100644 index 1bc9668b11065..0000000000000 --- a/projects/plugins/protect/src/js/routes/scan/history/status-filters.jsx +++ /dev/null @@ -1,44 +0,0 @@ -import { __ } from '@wordpress/i18n'; -import React, { useCallback } from 'react'; -import { useNavigate, useParams } from 'react-router-dom'; -import ButtonGroup from '../../../components/button-group'; - -/** - * Status Filters component. - * - * @param {object} props - Component props. - * @param {number} props.numFixed - Number of fixed threats. - * @param {number} props.numIgnored - Number of ignored threats. - * - * @return {React.ReactNode} StatusFilters component. - */ -export default function StatusFilters( { numFixed, numIgnored } ) { - const navigate = useNavigate(); - const { filter = 'all' } = useParams(); - const navigateOnClick = useCallback( path => () => navigate( path ), [ navigate ] ); - - return ( - - - { __( 'All', 'jetpack-protect' ) } - - - { __( 'Fixed', 'jetpack-protect' ) } - - - { __( 'Ignored', 'jetpack-protect' ) } - - - ); -} diff --git a/projects/plugins/protect/src/js/routes/scan/history/styles.module.scss b/projects/plugins/protect/src/js/routes/scan/history/styles.module.scss deleted file mode 100644 index d30f3e0ac3344..0000000000000 --- a/projects/plugins/protect/src/js/routes/scan/history/styles.module.scss +++ /dev/null @@ -1,37 +0,0 @@ -.empty { - display: flex; - width: 100%; - height: 100%; - align-items: center; - justify-content: center; - max-height: 600px; - flex-direction: column; -} - -.list-header { - display: flex; - justify-content: flex-end; - align-items: flex-end; - margin-bottom: calc( var( --spacing-base ) * 2.25 ); // 18px -} - -.list-title { - flex: 1; - margin-bottom: 0; -} - -.list-header__controls { - display: flex; - gap: calc( var( --spacing-base ) * 2 ); // 16px -} - -@media ( max-width: 599px ) { - - .list-header { - margin-bottom: calc( var( --spacing-base ) * 3 ); // 24px - } - - .list-title { - display: none; - } -} \ No newline at end of file diff --git a/projects/plugins/protect/src/js/routes/scan/index.jsx b/projects/plugins/protect/src/js/routes/scan/index.jsx index 1f3cdfdd7520f..c56ae3c747f3e 100644 --- a/projects/plugins/protect/src/js/routes/scan/index.jsx +++ b/projects/plugins/protect/src/js/routes/scan/index.jsx @@ -1,14 +1,16 @@ import { AdminSection, Container, Col } from '@automattic/jetpack-components'; +import { useMemo, useState } from 'react'; +import { useLocation, useParams } from 'react-router-dom'; import AdminPage from '../../components/admin-page'; -import ThreatsList from '../../components/threats-list'; -import useScanStatusQuery from '../../data/scan/use-scan-status-query'; +import OnboardingPopover from '../../components/onboarding-popover'; +import useScanStatusQuery, { isScanInProgress } from '../../data/scan/use-scan-status-query'; import useAnalyticsTracks from '../../hooks/use-analytics-tracks'; import { OnboardingContext } from '../../hooks/use-onboarding'; import usePlan from '../../hooks/use-plan'; -import useProtectData from '../../hooks/use-protect-data'; import onboardingSteps from './onboarding-steps'; import ScanAdminSectionHero from './scan-admin-section-hero'; -import ScanFooter from './scan-footer'; +import ScanResultsDataView from './scan-results-data-view'; +import styles from './styles.module.scss'; /** * Scan Page @@ -19,23 +21,41 @@ import ScanFooter from './scan-footer'; */ const ScanPage = () => { const { hasPlan } = usePlan(); - const { - counts: { - current: { threats: numThreats }, - }, - lastChecked, - } = useProtectData(); + const location = useLocation(); + const { filter } = useParams(); const { data: status } = useScanStatusQuery( { usePolling: true } ); + const [ scanResultsAnchor, setScanResultsAnchor ] = useState( null ); + let currentScanStatus; if ( status.error ) { currentScanStatus = 'error'; - } else if ( ! lastChecked ) { + } else if ( ! status.lastChecked ) { currentScanStatus = 'in_progress'; } else { currentScanStatus = 'active'; } + const filters = useMemo( () => { + if ( location.pathname.includes( '/scan/history' ) ) { + return [ + { + field: 'status', + value: filter ? [ filter ] : [ 'fixed', 'ignored' ], + operator: 'isAny', + }, + ]; + } + + return [ + { + field: 'status', + value: [ 'current' ], + operator: 'isAny', + }, + ]; + }, [ filter, location.pathname ] ); + // Track view for Protect admin page. useAnalyticsTracks( { pageViewEventName: 'protect_admin', @@ -49,16 +69,33 @@ const ScanPage = () => { - { ( ! status.error || numThreats ) && ( - - - - - - - - ) } - + + + +
    + +
    + { !! status && ! isScanInProgress( status ) && ( + + ) } + { !! status && ! isScanInProgress( status ) && hasPlan && ( + + ) } + +
    +
    ); diff --git a/projects/plugins/protect/src/js/routes/scan/onboarding-steps.jsx b/projects/plugins/protect/src/js/routes/scan/onboarding-steps.jsx index 0e85aa56d9289..c29af26bcb409 100644 --- a/projects/plugins/protect/src/js/routes/scan/onboarding-steps.jsx +++ b/projects/plugins/protect/src/js/routes/scan/onboarding-steps.jsx @@ -6,15 +6,6 @@ import usePlan from '../../hooks/use-plan'; const { siteSuffix } = window.jetpackProtectInitialState; -const scanResultsTitle = __( 'Your scan results', 'jetpack-protect' ); -const scanResultsDescription = ( - - { __( - 'Navigate through the results of the scan on your WordPress installation, plugins, themes, and other files', - 'jetpack-protect' - ) } - -); const UpgradeButton = props => { const { upgradePlan } = usePlan(); const { recordEvent } = useAnalyticsTracks(); @@ -27,11 +18,6 @@ const UpgradeButton = props => { }; export default [ - { - id: 'free-scan-results', - title: scanResultsTitle, - description: scanResultsDescription, - }, { id: 'free-daily-scans', title: __( 'Daily automated scans', 'jetpack-protect' ), @@ -49,10 +35,41 @@ export default [ ), }, + { + id: 'paid-daily-and-manual-scans', + title: __( 'Daily & manual scanning', 'jetpack-protect' ), + description: ( + + { __( + 'We run daily automated scans but you can also run on-demand scans if you want to check the latest status.', + 'jetpack-protect' + ) } + + ), + }, + { + id: 'free-scan-results', + title: __( 'Your scan results', 'jetpack-protect' ), + description: ( + + { __( + 'Navigate through the results of the scan on your WordPress installation, plugins, and themes.', + 'jetpack-protect' + ) } + + ), + }, { id: 'paid-scan-results', - title: scanResultsTitle, - description: scanResultsDescription, + title: __( 'Your scan results', 'jetpack-protect' ), + description: ( + + { __( + 'Navigate through the results of the scan on your WordPress installation, plugins, themes, and other files.', + 'jetpack-protect' + ) } + + ), }, { id: 'paid-fix-all-threats', @@ -97,16 +114,4 @@ export default [ ), }, - { - id: 'paid-daily-and-manual-scans', - title: __( 'Daily & manual scanning', 'jetpack-protect' ), - description: ( - - { __( - 'We run daily automated scans but you can also run on-demand scans if you want to check the latest status.', - 'jetpack-protect' - ) } - - ), - }, ]; diff --git a/projects/plugins/protect/src/js/routes/scan/scan-admin-section-hero.tsx b/projects/plugins/protect/src/js/routes/scan/scan-admin-section-hero.tsx index 9e1b9c102a037..db76bac1b15b0 100644 --- a/projects/plugins/protect/src/js/routes/scan/scan-admin-section-hero.tsx +++ b/projects/plugins/protect/src/js/routes/scan/scan-admin-section-hero.tsx @@ -1,33 +1,41 @@ import { Text, Button, useBreakpointMatch } from '@automattic/jetpack-components'; +import { Tooltip } from '@wordpress/components'; import { dateI18n } from '@wordpress/date'; import { __, _n, sprintf } from '@wordpress/i18n'; -import { useState } from 'react'; +import { useCallback, useState } from 'react'; import { useMemo } from 'react'; import AdminSectionHero from '../../components/admin-section-hero'; import ErrorAdminSectionHero from '../../components/error-admin-section-hero'; import OnboardingPopover from '../../components/onboarding-popover'; -import useThreatsList from '../../components/threats-list/use-threats-list'; import useScanStatusQuery, { isScanInProgress } from '../../data/scan/use-scan-status-query'; +import useAnalyticsTracks from '../../hooks/use-analytics-tracks'; import useFixers from '../../hooks/use-fixers'; import useModal from '../../hooks/use-modal'; import usePlan from '../../hooks/use-plan'; -import useProtectData from '../../hooks/use-protect-data'; +import useWafData from '../../hooks/use-waf-data'; import ScanningAdminSectionHero from './scanning-admin-section-hero'; import styles from './styles.module.scss'; const ScanAdminSectionHero: React.FC = () => { - const { - counts: { - current: { threats: numThreats }, - }, - lastChecked, - } = useProtectData(); - const { hasPlan } = usePlan(); + const { recordEvent } = useAnalyticsTracks(); + const { hasPlan, upgradePlan } = usePlan(); + const { setModal } = useModal(); const [ isSm ] = useBreakpointMatch( 'sm' ); const { data: status } = useScanStatusQuery(); - const { list } = useThreatsList(); const { isThreatFixInProgress, isThreatFixStale } = useFixers(); - const { setModal } = useModal(); + + const getScan = useCallback( () => { + recordEvent( 'jetpack_protect_scan_header_get_scan_link_click' ); + upgradePlan(); + }, [ recordEvent, upgradePlan ] ); + + const { globalStats } = useWafData(); + const totalVulnerabilities = parseInt( globalStats?.totalVulnerabilities ); + const totalVulnerabilitiesFormatted = isNaN( totalVulnerabilities ) + ? '50,000' + : totalVulnerabilities.toLocaleString(); + + const numThreats = status.threats.length; // Popover anchor const [ dailyScansPopoverAnchor, setDailyScansPopoverAnchor ] = useState( null ); @@ -35,20 +43,20 @@ const ScanAdminSectionHero: React.FC = () => { // List of fixable threats that do not have a fix in progress const fixableList = useMemo( () => { - return list.filter( threat => { - const threatId = parseInt( threat.id ); + return status.threats.filter( threat => { + const threatId = typeof threat.id === 'string' ? parseInt( threat.id ) : threat.id; return ( threat.fixable && ! isThreatFixInProgress( threatId ) && ! isThreatFixStale( threatId ) ); } ); - }, [ list, isThreatFixInProgress, isThreatFixStale ] ); + }, [ status.threats, isThreatFixInProgress, isThreatFixStale ] ); const scanning = isScanInProgress( status ); let lastCheckedLocalTimestamp = null; - if ( lastChecked ) { + if ( status.lastChecked ) { // Convert the lastChecked UTC date to a local timestamp - lastCheckedLocalTimestamp = new Date( lastChecked + ' UTC' ).getTime(); + lastCheckedLocalTimestamp = new Date( status.lastChecked + ' UTC' ).getTime(); } const handleShowAutoFixersClick = threatList => { @@ -88,13 +96,11 @@ const ScanAdminSectionHero: React.FC = () => { ) : __( 'Most recent results', 'jetpack-protect' ) } - { ! hasPlan && ( - - ) } + 0 ? 'error' : 'success' }> { numThreats > 0 ? sprintf( @@ -105,48 +111,60 @@ const ScanAdminSectionHero: React.FC = () => { ? _n( 'threat', 'threats', numThreats, 'jetpack-protect' ) : _n( 'vulnerability', 'vulnerabilities', numThreats, 'jetpack-protect' ) ) - : sprintf( - /* translators: %s: Pluralized type of threat/vulnerability */ - __( 'No active %s', 'jetpack-protect' ), - hasPlan - ? __( 'threats', 'jetpack-protect' ) - : __( - 'vulnerabilities', - 'jetpack-protect', - /* dummy arg to avoid bad minification */ 0 - ) - ) } + : __( "Don't worry about a thing", 'jetpack-protect' ) } <> - - { __( - 'We actively review your sites files line-by-line to identify threats and vulnerabilities.', - 'jetpack-protect' - ) } - - { fixableList.length > 0 && ( + { hasPlan ? ( + + { __( + "We actively review your site's files line-by-line to identify threats and vulnerabilities.", + 'jetpack-protect' + ) } + + ) : ( <> - - { ! scanning && ( - -
    - -
    } secondary={ } diff --git a/projects/plugins/protect/src/js/routes/scan/styles.module.scss b/projects/plugins/protect/src/js/routes/scan/styles.module.scss index 908e34f6e71d7..163fd23248aaa 100644 --- a/projects/plugins/protect/src/js/routes/scan/styles.module.scss +++ b/projects/plugins/protect/src/js/routes/scan/styles.module.scss @@ -1,12 +1,14 @@ -.subheading-text { - white-space: nowrap; +.auto-fixers { + margin-top: calc( var( --spacing-base ) * 4 ); // 32px } -.product-section, .info-section { - margin-top: calc( var( --spacing-base ) * 7 ); // 56px - margin-bottom: calc( var( --spacing-base ) * 7 ); // 56px -} +.scan-results-container { + padding-left: 0; + padding-right: 0; + overflow: hidden; -.auto-fixers { - margin-top: calc( var( --spacing-base ) * 4 ); // 32px -} \ No newline at end of file + > * { + margin-left: calc( var( --spacing-base ) * -3 ); // -24px + margin-right: calc( var( --spacing-base ) * -3 ); // -24px + } +} diff --git a/projects/plugins/protect/webpack.config.js b/projects/plugins/protect/webpack.config.js index 2f6a45721b100..0c65dfec146a7 100644 --- a/projects/plugins/protect/webpack.config.js +++ b/projects/plugins/protect/webpack.config.js @@ -33,6 +33,24 @@ module.exports = [ includeNodeModules: [ '@automattic/jetpack-' ], } ), + /** + * Transpile @wordpress/dataviews in node_modules too. + * + * @see https://github.com/Automattic/jetpack/issues/39907 + */ + jetpackWebpackConfig.TranspileRule( { + includeNodeModules: [ '@wordpress/dataviews/' ], + babelOpts: { + configFile: false, + plugins: [ + [ + require.resolve( '@automattic/babel-plugin-replace-textdomain' ), + { textdomain: 'jetpack-protect' }, + ], + ], + }, + } ), + // Handle CSS. jetpackWebpackConfig.CssRule( { extensions: [ 'css', 'sass', 'scss' ], From 6db37a6e3bc97b6979c68ee964eb23225e40577d Mon Sep 17 00:00:00 2001 From: dkmyta <43220201+dkmyta@users.noreply.github.com> Date: Thu, 5 Dec 2024 11:22:55 -0800 Subject: [PATCH 73/98] Components: Add ScanReport (#40419) --- .../changelog/components-add-scan-report | 4 + .../components/scan-report/constants.ts | 30 +++ .../components/scan-report/index.tsx | 197 ++++++++++++++++++ .../scan-report/stories/index.stories.tsx | 72 +++++++ .../components/scan-report/styles.module.scss | 21 ++ .../components/shield-icon/index.tsx | 14 +- .../shield-icon/stories/index.stories.tsx | 6 +- projects/js-packages/components/index.ts | 1 + .../scan/changelog/components-add-scan-report | 4 + .../js-packages/scan/src/types/threats.ts | 24 ++- 10 files changed, 360 insertions(+), 13 deletions(-) create mode 100644 projects/js-packages/components/changelog/components-add-scan-report create mode 100644 projects/js-packages/components/components/scan-report/constants.ts create mode 100644 projects/js-packages/components/components/scan-report/index.tsx create mode 100644 projects/js-packages/components/components/scan-report/stories/index.stories.tsx create mode 100644 projects/js-packages/components/components/scan-report/styles.module.scss create mode 100644 projects/js-packages/scan/changelog/components-add-scan-report diff --git a/projects/js-packages/components/changelog/components-add-scan-report b/projects/js-packages/components/changelog/components-add-scan-report new file mode 100644 index 0000000000000..ba0fbd4cce025 --- /dev/null +++ b/projects/js-packages/components/changelog/components-add-scan-report @@ -0,0 +1,4 @@ +Significance: minor +Type: added + +Adds ScanReport component diff --git a/projects/js-packages/components/components/scan-report/constants.ts b/projects/js-packages/components/components/scan-report/constants.ts new file mode 100644 index 0000000000000..436eed91c5701 --- /dev/null +++ b/projects/js-packages/components/components/scan-report/constants.ts @@ -0,0 +1,30 @@ +import { __ } from '@wordpress/i18n'; +import { + code as fileIcon, + color as themeIcon, + plugins as pluginIcon, + shield as shieldIcon, + wordpress as coreIcon, +} from '@wordpress/icons'; + +export const TYPES = [ + { value: 'core', label: __( 'WordPress', 'jetpack-components' ) }, + { value: 'plugins', label: __( 'Plugin', 'jetpack-components' ) }, + { value: 'themes', label: __( 'Theme', 'jetpack-components' ) }, + { value: 'files', label: __( 'Files', 'jetpack-components' ) }, +]; + +export const ICONS = { + plugins: pluginIcon, + themes: themeIcon, + core: coreIcon, + files: fileIcon, + default: shieldIcon, +}; + +export const FIELD_ICON = 'icon'; +export const FIELD_TYPE = 'type'; +export const FIELD_NAME = 'name'; +export const FIELD_STATUS = 'status'; +export const FIELD_UPDATE = 'update'; +export const FIELD_VERSION = 'version'; diff --git a/projects/js-packages/components/components/scan-report/index.tsx b/projects/js-packages/components/components/scan-report/index.tsx new file mode 100644 index 0000000000000..14795376f7d95 --- /dev/null +++ b/projects/js-packages/components/components/scan-report/index.tsx @@ -0,0 +1,197 @@ +import { type ScanReportExtension } from '@automattic/jetpack-scan'; +import { Tooltip } from '@wordpress/components'; +import { + type SupportedLayouts, + type View, + type Field, + DataViews, + filterSortAndPaginate, +} from '@wordpress/dataviews'; +import { __ } from '@wordpress/i18n'; +import { Icon } from '@wordpress/icons'; +import { useCallback, useMemo, useState } from 'react'; +import ShieldIcon from '../shield-icon'; +import { + FIELD_NAME, + FIELD_VERSION, + FIELD_ICON, + FIELD_STATUS, + FIELD_TYPE, + TYPES, + ICONS, +} from './constants'; +import styles from './styles.module.scss'; + +/** + * DataViews component for displaying a scan report. + * + * @param {object} props - Component props. + * @param {Array} props.data - Scan report data. + * @param {Function} props.onChangeSelection - Callback function run when an item is selected. + * + * @return {JSX.Element} The ScanReport component. + */ +export default function ScanReport( { data, onChangeSelection } ): JSX.Element { + const baseView = { + search: '', + filters: [], + page: 1, + perPage: 20, + }; + + /** + * DataView default layouts. + * + * This property provides layout information about the view types that are active. If empty, enables all layout types (see “Layout Types”) with empty layout data. + * + * @see https://developer.wordpress.org/block-editor/reference-guides/packages/packages-dataviews/#defaultlayouts-record-string-view + */ + const defaultLayouts: SupportedLayouts = { + table: { + ...baseView, + fields: [ FIELD_STATUS, FIELD_TYPE, FIELD_NAME, FIELD_VERSION ], + layout: { + primaryField: FIELD_STATUS, + }, + }, + list: { + ...baseView, + fields: [ FIELD_STATUS, FIELD_VERSION ], + layout: { + primaryField: FIELD_NAME, + mediaField: FIELD_ICON, + }, + }, + }; + + /** + * DataView view object - configures how the dataset is visible to the user. + * + * @see https://developer.wordpress.org/block-editor/reference-guides/packages/packages-dataviews/#view-object + */ + const [ view, setView ] = useState< View >( { + type: 'table', + ...defaultLayouts.table, + } ); + + /** + * DataView fields - describes the visible items for each record in the dataset. + * + * @see https://developer.wordpress.org/block-editor/reference-guides/packages/packages-dataviews/#fields-object + */ + const fields = useMemo( () => { + const iconHeight = 20; + const result: Field< ScanReportExtension >[] = [ + { + id: FIELD_STATUS, + label: __( 'Status', 'jetpack-components' ), + render( { item }: { item: ScanReportExtension } ) { + let variant: 'info' | 'warning' | 'success' = 'info'; + let text = __( + 'This item was added to your site after the most recent scan. We will check for threats during the next scheduled one.', + 'jetpack-components' + ); + + if ( item.checked ) { + if ( item.threats.length > 0 ) { + variant = 'warning'; + text = __( 'Threat detected.', 'jetpack-components' ); + } else { + variant = 'success'; + text = __( 'No known threats found that affect this version.', 'jetpack-components' ); + } + } + + return ( + +
    + +
    +
    + ); + }, + }, + { + id: FIELD_TYPE, + label: __( 'Type', 'jetpack-components' ), + elements: TYPES, + }, + { + id: FIELD_NAME, + label: __( 'Name', 'jetpack-components' ), + enableGlobalSearch: true, + getValue( { item }: { item: ScanReportExtension } ) { + return item.name ? item.name : ''; + }, + }, + { + id: FIELD_VERSION, + label: __( 'Version', 'jetpack-components' ), + enableGlobalSearch: true, + getValue( { item }: { item: ScanReportExtension } ) { + return item.version ? item.version : ''; + }, + }, + ...( view.type === 'list' + ? [ + { + id: FIELD_ICON, + label: __( 'Icon', 'jetpack-components' ), + enableSorting: false, + enableHiding: false, + getValue( { item }: { item: ScanReportExtension } ) { + return ICONS[ item.type ] || ''; + }, + render( { item }: { item: ScanReportExtension } ) { + return ( +
    + +
    + ); + }, + }, + ] + : [] ), + ]; + + return result; + }, [ view ] ); + + /** + * Apply the view settings (i.e. filters, sorting, pagination) to the dataset. + * + * @see https://github.com/WordPress/gutenberg/blob/trunk/packages/dataviews/src/filter-and-sort-data-view.ts + */ + const { data: processedData, paginationInfo } = useMemo( () => { + return filterSortAndPaginate( data, view, fields ); + }, [ data, view, fields ] ); + + /** + * Callback function to update the view state. + * + * @see https://developer.wordpress.org/block-editor/reference-guides/packages/packages-dataviews/#onchangeview-function + */ + const onChangeView = useCallback( ( newView: View ) => { + setView( newView ); + }, [] ); + + /** + * DataView getItemId function - returns the unique ID for each record in the dataset. + * + * @see https://developer.wordpress.org/block-editor/reference-guides/packages/packages-dataviews/#getitemid-function + */ + const getItemId = useCallback( ( item: ScanReportExtension ) => item.id.toString(), [] ); + + return ( + + ); +} diff --git a/projects/js-packages/components/components/scan-report/stories/index.stories.tsx b/projects/js-packages/components/components/scan-report/stories/index.stories.tsx new file mode 100644 index 0000000000000..63926908850de --- /dev/null +++ b/projects/js-packages/components/components/scan-report/stories/index.stories.tsx @@ -0,0 +1,72 @@ +import ScanReport from '..'; + +export default { + title: 'JS Packages/Components/Scan Report', + component: ScanReport, + parameters: { + backgrounds: { + default: 'light', + values: [ { name: 'light', value: 'white' } ], + }, + }, + decorators: [ + Story => ( +
    + +
    + ), + ], +}; + +export const Default = args => ; +Default.args = { + data: [ + { + id: 1, + name: 'WordPress', + slug: null, + version: '6.7.1', + threats: [], + checked: true, + type: 'core', + }, + { + id: 2, + name: 'Jetpack', + slug: 'jetpack/jetpack.php', + version: '14.1-a.7', + threats: [], + checked: false, + type: 'plugins', + }, + { + id: 3, + name: 'Twenty Fifteen', + slug: 'twentyfifteen', + version: '1.1', + threats: [ + { + id: 198352527, + signature: 'Vulnerable.WP.Extension', + description: 'Vulnerable WordPress extension', + severity: 3, + }, + ], + checked: true, + type: 'themes', + }, + { + id: 4, + threats: [ + { + id: 198352406, + signature: 'EICAR_AV_Test_Suspicious', + title: 'Malicious code found in file: jptt_eicar.php', + severity: 1, + }, + ], + checked: true, + type: 'files', + }, + ], +}; diff --git a/projects/js-packages/components/components/scan-report/styles.module.scss b/projects/js-packages/components/components/scan-report/styles.module.scss new file mode 100644 index 0000000000000..d313d4cb8898a --- /dev/null +++ b/projects/js-packages/components/components/scan-report/styles.module.scss @@ -0,0 +1,21 @@ +@import '@wordpress/dataviews/build-style/style.css'; + +.threat__media { + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + background-color: #EDFFEE; + border-color: #EDFFEE; + + svg { + fill: var( --jp-black ); + } +} + +.tooltip { + max-width: 240px; + border-radius: 4px; + text-align: left; +} \ No newline at end of file diff --git a/projects/js-packages/components/components/shield-icon/index.tsx b/projects/js-packages/components/components/shield-icon/index.tsx index fee9f4d70c463..b07b943b5e7fa 100644 --- a/projects/js-packages/components/components/shield-icon/index.tsx +++ b/projects/js-packages/components/components/shield-icon/index.tsx @@ -1,10 +1,11 @@ import React from 'react'; const COLORS = { - error: '#D63638', - warning: '#F0B849', - success: '#069E08', default: '#1d2327', + info: '#A7AAAD', + success: '#069E08', + warning: '#F0B849', + error: '#D63638', }; /** @@ -32,11 +33,11 @@ export default function ShieldIcon( { }: { className?: string; contrast?: string; - fill?: 'default' | 'success' | 'warning' | 'error' | string; + fill?: 'default' | 'info' | 'success' | 'warning' | 'error' | string; height?: number; icon?: 'success' | 'error'; outline?: boolean; - variant: 'default' | 'success' | 'warning' | 'error'; + variant: 'default' | 'info' | 'success' | 'warning' | 'error'; } ): JSX.Element { const shieldFill = COLORS[ fill ] || fill || COLORS[ variant ]; const iconFill = outline ? shieldFill : contrast; @@ -60,6 +61,9 @@ export default function ShieldIcon( { } fill={ shieldFill } /> + { 'info' === iconVariant && ( + + ) } { 'success' === iconVariant && ( {
    +
    + diff --git a/projects/js-packages/components/index.ts b/projects/js-packages/components/index.ts index 4b0f3612012e7..6df50ee7fdb61 100644 --- a/projects/js-packages/components/index.ts +++ b/projects/js-packages/components/index.ts @@ -48,6 +48,7 @@ export { default as ThreatFixerButton } from './components/threat-fixer-button'; export { default as ThreatSeverityBadge } from './components/threat-severity-badge'; export { default as ThreatsDataViews } from './components/threats-data-views'; export { default as ShieldIcon } from './components/shield-icon'; +export { default as ScanReport } from './components/scan-report'; export { default as Text, H2, H3, Title } from './components/text'; export { default as ToggleControl } from './components/toggle-control'; export { default as numberFormat } from './components/number-format'; diff --git a/projects/js-packages/scan/changelog/components-add-scan-report b/projects/js-packages/scan/changelog/components-add-scan-report new file mode 100644 index 0000000000000..eeb9c55de4a28 --- /dev/null +++ b/projects/js-packages/scan/changelog/components-add-scan-report @@ -0,0 +1,4 @@ +Significance: minor +Type: changed + +Updates/adds scan types diff --git a/projects/js-packages/scan/src/types/threats.ts b/projects/js-packages/scan/src/types/threats.ts index 72428c209ee49..22f6b06477163 100644 --- a/projects/js-packages/scan/src/types/threats.ts +++ b/projects/js-packages/scan/src/types/threats.ts @@ -4,6 +4,23 @@ export type ThreatStatus = 'fixed' | 'ignored' | 'current'; export type ThreatFixType = 'replace' | 'delete' | 'update' | string; +export type ScanReportExtension = { + id: number; + checked: boolean; + slug?: string; + name?: string; + version?: string; + threats: Threat[]; + type: 'plugins' | 'themes' | 'core' | 'files'; +}; + +export type Extension = { + slug: string; + name: string; + version: string; + type: 'plugins' | 'themes' | 'core'; +}; + export type Threat = { /** The threat's unique ID. */ id: string | number; @@ -57,10 +74,5 @@ export type Threat = { diff?: string; /** The affected extension. */ - extension?: { - slug: string; - name: string; - version: string; - type: 'plugins' | 'themes' | 'core'; - }; + extension?: Extension; }; From 179f46c65e4023935dcf4a5dc185c678ab6f17f8 Mon Sep 17 00:00:00 2001 From: Nate Weller Date: Fri, 6 Dec 2024 12:05:11 -0700 Subject: [PATCH 74/98] Fix type errors Protect: add HMR support Revert "Protect: add HMR support" This reverts commit 06497a05bb050c86e097b36038c8742af427388d. --- projects/js-packages/scan/src/utils/index.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/projects/js-packages/scan/src/utils/index.ts b/projects/js-packages/scan/src/utils/index.ts index 9e2e75bcd4d91..30a96cbd132d5 100644 --- a/projects/js-packages/scan/src/utils/index.ts +++ b/projects/js-packages/scan/src/utils/index.ts @@ -21,9 +21,9 @@ export const getThreatIcon = ( threat: Threat ) => { switch ( getThreatType( threat ) ) { case 'core': return 'wordpress-alt'; - case 'plugin': + case 'plugins': return 'plugins'; - case 'theme': + case 'themes': return 'appearance'; case 'file': return 'media-code'; @@ -36,9 +36,9 @@ export const getThreatSubtitle = ( threat: Threat ) => { switch ( getThreatType( threat ) ) { case 'core': return __( 'Vulnerable WordPress Version', 'jetpack-scan' ); - case 'plugin': + case 'plugins': return __( 'Vulnerable Plugin', 'jetpack-scan' ); - case 'theme': + case 'themes': return __( 'Vulnerable Theme', 'jetpack-scan' ); case 'file': return __( 'File Threat', 'jetpack-scan' ); From ba9f82ca7ef32715c17b8020d7a2d8f1d240a9c1 Mon Sep 17 00:00:00 2001 From: Nate Weller Date: Mon, 9 Dec 2024 14:38:56 -0700 Subject: [PATCH 75/98] Protect: Refactor AdminSectionHero (#40516) --- .../components/admin-section-hero/index.tsx | 96 +++++----- .../stories/index.stories.jsx | 16 +- .../admin-section-hero/styles.module.scss | 44 +++-- .../error-admin-section-hero/index.tsx | 30 ++- .../styles.module.scss | 6 +- .../firewall/firewall-admin-section-hero.tsx | 27 ++- .../js/routes/firewall/firewall-statcards.jsx | 2 +- .../src/js/routes/firewall/styles.module.scss | 31 ++- .../routes/scan/scan-admin-section-hero.tsx | 177 +++++++++--------- .../scan/scanning-admin-section-hero.tsx | 70 ++++--- .../src/js/routes/scan/styles.module.scss | 10 + 11 files changed, 278 insertions(+), 231 deletions(-) diff --git a/projects/plugins/protect/src/js/components/admin-section-hero/index.tsx b/projects/plugins/protect/src/js/components/admin-section-hero/index.tsx index 5ccf607698084..7638936db5139 100644 --- a/projects/plugins/protect/src/js/components/admin-section-hero/index.tsx +++ b/projects/plugins/protect/src/js/components/admin-section-hero/index.tsx @@ -2,67 +2,73 @@ import { AdminSectionHero as JetpackAdminSectionHero, H3, ShieldIcon, + Container, + Col, } from '@automattic/jetpack-components'; -import SeventyFiveLayout from '../seventy-five-layout'; +import clsx from 'clsx'; import AdminSectionHeroNotices from './admin-section-hero-notices'; import styles from './styles.module.scss'; -interface AdminSectionHeroProps { - main: React.ReactNode; - secondary?: React.ReactNode; - preserveSecondaryOnMobile?: boolean; - spacing?: number; -} - -interface AdminSectionHeroComponent extends React.FC< AdminSectionHeroProps > { - Heading: React.FC< { - children: React.ReactNode; - showIcon?: boolean; - variant?: 'default' | 'success' | 'error'; - outline?: boolean; - } >; - Subheading: React.FC< { children: React.ReactNode } >; -} - -const AdminSectionHero: AdminSectionHeroComponent = ( { - main, - secondary, - preserveSecondaryOnMobile = true, - spacing = 7, -} ) => { +const AdminSectionHero = ( { + children, + ...props +}: React.ComponentProps< typeof JetpackAdminSectionHero > ) => { return ( - + - + + +
    { children }
    + +
    ); }; -AdminSectionHero.Heading = ( { +AdminSectionHero.Main = ( { children, - variant = 'default', - showIcon = false, + className, + ...props }: { children: React.ReactNode; - variant?: 'default' | 'success' | 'error'; - showIcon?: boolean; + className?: string; + [ key: string ]: unknown; +} ) => { + return ( +
    + { children } +
    + ); +}; + +AdminSectionHero.Aside = ( { + children, + className, + ...props +}: React.ComponentProps< 'div' > & { + className?: string; } ) => { return ( -

    +
    { children } - { showIcon && ( +
    + ); +}; + +AdminSectionHero.Heading = ( { + children, + icon, + ...props +}: React.ComponentProps< typeof H3 > & { + icon?: 'default' | 'success' | 'error'; +} ) => { + return ( +

    + { children } + { !! icon && ( { - return
    { children }
    ; -}; - export default AdminSectionHero; diff --git a/projects/plugins/protect/src/js/components/admin-section-hero/stories/index.stories.jsx b/projects/plugins/protect/src/js/components/admin-section-hero/stories/index.stories.jsx index ca2dfda7fc98e..59ed9086d6317 100644 --- a/projects/plugins/protect/src/js/components/admin-section-hero/stories/index.stories.jsx +++ b/projects/plugins/protect/src/js/components/admin-section-hero/stories/index.stories.jsx @@ -9,16 +9,16 @@ export default { export const Default = args => ; Default.args = { - main: ( + children: ( <> - - - { 'No threats found' } - - + + + { 'No threats found' } { 'Most recent results' } - + + + + ), - secondary: , }; diff --git a/projects/plugins/protect/src/js/components/admin-section-hero/styles.module.scss b/projects/plugins/protect/src/js/components/admin-section-hero/styles.module.scss index a414aa9216f5c..74cfe29aaaded 100644 --- a/projects/plugins/protect/src/js/components/admin-section-hero/styles.module.scss +++ b/projects/plugins/protect/src/js/components/admin-section-hero/styles.module.scss @@ -1,15 +1,39 @@ -.header-main { +.admin-section-hero { display: flex; flex-direction: column; - justify-content: center; - align-items: flex-start; + gap: calc( var( --spacing-base ) * 6 ); // 48px + + max-width: var(--max-container-width); + padding: calc( var( --spacing-base ) * 6 ) 0; // 48px 0 + margin: 0 auto; + + @media (min-width: 600px) { + padding: calc( var( --spacing-base ) * 7 ) 0; // 56px 0 + } + + @media (min-width: 600px) { + padding: calc( var( --spacing-base ) * 7 ) 0; // 56px 0 + } + + @media ( min-width: 1100px ) { + flex-direction: row; + align-items: center; + gap: calc( var( --spacing-base ) * 3 ); // 24px + } } -.header-secondary { - display: flex; - flex-direction: column; - justify-content: center; - align-items: flex-end; +.admin-section-hero__main { + flex: 2; +} + +.admin-section-hero__aside { + flex: 1; + flex-shrink: 0; + + @media ( min-width: 1200px ) { + display: flex; + justify-content: flex-end; + } } .heading-icon { @@ -17,10 +41,6 @@ margin-bottom: calc( var( --spacing-base ) / 2 * -1 ); // -4px } -.subheading { - width: fit-content; -} - .connection-error-col { margin-top: calc( var( --spacing-base ) * 3 + 1px ); // 25px } diff --git a/projects/plugins/protect/src/js/components/error-admin-section-hero/index.tsx b/projects/plugins/protect/src/js/components/error-admin-section-hero/index.tsx index 1a9bc87387fa9..536d8f50de7d1 100644 --- a/projects/plugins/protect/src/js/components/error-admin-section-hero/index.tsx +++ b/projects/plugins/protect/src/js/components/error-admin-section-hero/index.tsx @@ -1,6 +1,5 @@ -import { Text } from '@automattic/jetpack-components'; +import { ShieldIcon, Text } from '@automattic/jetpack-components'; import { __ } from '@wordpress/i18n'; -import { Icon, warning } from '@wordpress/icons'; import AdminSectionHero from '../admin-section-hero'; import styles from './styles.module.scss'; @@ -19,22 +18,17 @@ const ErrorAdminSectionHero: React.FC< ErrorAdminSectionHeroProps > = ( { displayErrorMessage += ' ' + __( 'Try again in a few minutes.', 'jetpack-protect' ); return ( - - -
    - - { __( 'An error occurred', 'jetpack-protect' ) } -
    -
    - - { displayErrorMessage } - - - } - preserveSecondaryOnMobile={ false } - /> + + + +
    + { __( 'An error occurred', 'jetpack-protect' ) } + +
    +
    + { displayErrorMessage } +
    +
    ); }; diff --git a/projects/plugins/protect/src/js/components/error-admin-section-hero/styles.module.scss b/projects/plugins/protect/src/js/components/error-admin-section-hero/styles.module.scss index 6f0750abd02f8..1c89377d4b4b5 100644 --- a/projects/plugins/protect/src/js/components/error-admin-section-hero/styles.module.scss +++ b/projects/plugins/protect/src/js/components/error-admin-section-hero/styles.module.scss @@ -4,11 +4,7 @@ } .warning { - width: 54px; - height: 54px; - fill: var( --jp-red ); - margin-left: -8px; - margin-right: var( --spacing-base ); // 8px + margin-left: calc( var( --spacing-base ) * 1.5 ); // 12px } .scan-navigation { diff --git a/projects/plugins/protect/src/js/routes/firewall/firewall-admin-section-hero.tsx b/projects/plugins/protect/src/js/routes/firewall/firewall-admin-section-hero.tsx index 3f70a75509b76..837f649c67f16 100644 --- a/projects/plugins/protect/src/js/routes/firewall/firewall-admin-section-hero.tsx +++ b/projects/plugins/protect/src/js/routes/firewall/firewall-admin-section-hero.tsx @@ -5,6 +5,7 @@ import AdminSectionHero from '../../components/admin-section-hero'; import useWafData from '../../hooks/use-waf-data'; import FirewallStatCards from './firewall-statcards'; import FirewallSubheading from './firewall-subheading'; +import styles from './styles.module.scss'; const FirewallAdminSectionHero = () => { const { @@ -84,16 +85,22 @@ const FirewallAdminSectionHero = () => { }, [ status ] ); return ( - - - { heading } - { subheading } - - } - secondary={ wafSupported && } - /> + + + + { heading } + { subheading } + + { wafSupported && ( + + + + ) } + ); }; diff --git a/projects/plugins/protect/src/js/routes/firewall/firewall-statcards.jsx b/projects/plugins/protect/src/js/routes/firewall/firewall-statcards.jsx index 15c80df763c18..1eebd67cb60d7 100644 --- a/projects/plugins/protect/src/js/routes/firewall/firewall-statcards.jsx +++ b/projects/plugins/protect/src/js/routes/firewall/firewall-statcards.jsx @@ -93,7 +93,7 @@ const FirewallStatCards = () => { ); return ( -
    +
    diff --git a/projects/plugins/protect/src/js/routes/firewall/styles.module.scss b/projects/plugins/protect/src/js/routes/firewall/styles.module.scss index afcbc2ad69b30..9404db7b56f09 100644 --- a/projects/plugins/protect/src/js/routes/firewall/styles.module.scss +++ b/projects/plugins/protect/src/js/routes/firewall/styles.module.scss @@ -3,6 +3,10 @@ max-width: calc( 744px + ( var( --spacing-base ) * 6 ) ); // 744px + 48px (desired inner width + horizontal padding) } +.status { + margin-bottom: calc( var( --spacing-base ) * 2 ); // 16px +} + .toggle-section { display: flex; @@ -145,14 +149,10 @@ align-items: center; } -.stat-card-wrapper { +.stat-cards-wrapper { display: flex; - margin-left: auto; - flex-wrap: wrap; - - >:first-child { - margin-right: calc( var( --spacing-base ) * 3 ); // 24px - } + justify-content: flex-end; + gap: calc( var( --spacing-base ) * 3 ); // 24px .disabled { opacity: 0.5; @@ -220,6 +220,23 @@ background-color: var( --jp-white-off ); } +@media ( max-width: 1200px ) { + .stat-cards-wrapper { + justify-content: flex-start; + } +} + +@media ( max-width: 599px ) { + .stat-cards-wrapper { + flex-direction: column; + gap: var( --spacing-base ); // 8px + } + + .stat-card-icon { + margin-bottom: 0; + } +} + .standalone-mode, .share-data { display: flex; flex-direction: column; diff --git a/projects/plugins/protect/src/js/routes/scan/scan-admin-section-hero.tsx b/projects/plugins/protect/src/js/routes/scan/scan-admin-section-hero.tsx index db76bac1b15b0..4257c585351eb 100644 --- a/projects/plugins/protect/src/js/routes/scan/scan-admin-section-hero.tsx +++ b/projects/plugins/protect/src/js/routes/scan/scan-admin-section-hero.tsx @@ -59,6 +59,28 @@ const ScanAdminSectionHero: React.FC = () => { lastCheckedLocalTimestamp = new Date( status.lastChecked + ' UTC' ).getTime(); } + let heading = __( "Don't worry about a thing", 'jetpack-protect' ); + if ( numThreats > 0 ) { + if ( hasPlan ) { + heading = sprintf( + /* translators: %s: Total number of threats */ + _n( '%1$s active threat', '%1$s active threats', numThreats, 'jetpack-protect' ), + numThreats + ); + } else { + heading = sprintf( + /* translators: %s: Total number of vulnerabilities */ + _n( + '%1$s active vulnerability', + '%1$s active vulnerabilities', + numThreats, + 'jetpack-protect' + ), + numThreats + ); + } + } + const handleShowAutoFixersClick = threatList => { return event => { event.preventDefault(); @@ -84,94 +106,79 @@ const ScanAdminSectionHero: React.FC = () => { } return ( - - - { lastCheckedLocalTimestamp - ? sprintf( - // translators: %s: date and time of the last scan - __( '%s results', 'jetpack-protect' ), - dateI18n( 'F jS g:i A', lastCheckedLocalTimestamp, false ) - ) - : __( 'Most recent results', 'jetpack-protect' ) } + + + + { lastCheckedLocalTimestamp + ? sprintf( + // translators: %s: date and time of the last scan + __( '%s results', 'jetpack-protect' ), + dateI18n( 'F jS, g:i A', lastCheckedLocalTimestamp, false ) + ) + : __( 'Most recent results', 'jetpack-protect' ) } + + + 0 ? 'error' : 'success' }> + { heading } + + { hasPlan ? ( + + { __( + "We actively review your site's files line-by-line to identify threats and vulnerabilities.", + 'jetpack-protect' + ) } - - 0 ? 'error' : 'success' }> - { numThreats > 0 - ? sprintf( - /* translators: %s: Total number of threats/vulnerabilities */ - __( '%1$s active %2$s', 'jetpack-protect' ), - numThreats, - hasPlan - ? _n( 'threat', 'threats', numThreats, 'jetpack-protect' ) - : _n( 'vulnerability', 'vulnerabilities', numThreats, 'jetpack-protect' ) - ) - : __( "Don't worry about a thing", 'jetpack-protect' ) } - - - <> - { hasPlan ? ( - - { __( - "We actively review your site's files line-by-line to identify threats and vulnerabilities.", - 'jetpack-protect' - ) } - - ) : ( - <> - - { sprintf( - // translators: placeholder is the number of total vulnerabilities i.e. "22,000". - __( - 'Every day we check your plugins, themes, and WordPress version against our %s listed vulnerabilities powered by WPScan, an Automattic brand.', - 'jetpack-protect' - ), - totalVulnerabilitiesFormatted - ) } - - - - - + ) : ( + <> + + { sprintf( + // translators: placeholder is the number of total vulnerabilities i.e. "22,000". + __( + 'Every day we check your plugins, themes, and WordPress version against our %s listed vulnerabilities powered by WPScan, an Automattic brand.', + 'jetpack-protect' + ), + totalVulnerabilitiesFormatted ) } - { fixableList.length > 0 && ( - <> -
    - -
    -
    + -
    - - } - /> + > + + + + ) } + { fixableList.length > 0 && ( + <> +
    + +
    +
    +
    ); }; diff --git a/projects/plugins/protect/src/js/routes/scan/scanning-admin-section-hero.tsx b/projects/plugins/protect/src/js/routes/scan/scanning-admin-section-hero.tsx index 4db4449b60119..ac9e0137cd170 100644 --- a/projects/plugins/protect/src/js/routes/scan/scanning-admin-section-hero.tsx +++ b/projects/plugins/protect/src/js/routes/scan/scanning-admin-section-hero.tsx @@ -18,44 +18,38 @@ const ScanningAdminSectionHero: React.FC = () => { : totalVulnerabilities.toLocaleString(); return ( - - - { __( 'Your results will be ready soon', 'jetpack-protect' ) } - - - <> - { hasPlan && ( - - ) } - - { hasPlan - ? __( - "Jetpack is actively scanning your site's files line-by-line to identify threats and vulnerabilities. This could take a minute or two.", - 'jetpack-protect' - ) - : sprintf( - // translators: placeholder is the number of total vulnerabilities i.e. "22,000". - __( - 'We are scanning for security threats from our more than %s listed vulnerabilities, powered by WPScan. This could take a minute or two.', - 'jetpack-protect' - ), - totalVulnerabilitiesFormatted - ) } - - - - - } - secondary={ } - preserveSecondaryOnMobile={ false } - spacing={ 4 } - /> + + + + { __( 'Your results will be ready soon', 'jetpack-protect' ) } + + { hasPlan && ( + + ) } + + { hasPlan + ? __( + "Jetpack is actively scanning your site's files line-by-line to identify threats and vulnerabilities. This could take a minute or two.", + 'jetpack-protect' + ) + : sprintf( + // translators: placeholder is the number of total vulnerabilities i.e. "22,000". + __( + 'We are scanning for security threats from our more than %s listed vulnerabilities, powered by WPScan. This could take a minute or two.', + 'jetpack-protect' + ), + totalVulnerabilitiesFormatted + ) } + + + + + + ); }; diff --git a/projects/plugins/protect/src/js/routes/scan/styles.module.scss b/projects/plugins/protect/src/js/routes/scan/styles.module.scss index 163fd23248aaa..5806ca5353863 100644 --- a/projects/plugins/protect/src/js/routes/scan/styles.module.scss +++ b/projects/plugins/protect/src/js/routes/scan/styles.module.scss @@ -1,3 +1,7 @@ +.scanning-main { + max-width: 512px; +} + .auto-fixers { margin-top: calc( var( --spacing-base ) * 4 ); // 32px } @@ -12,3 +16,9 @@ margin-right: calc( var( --spacing-base ) * -3 ); // -24px } } + +.progress-animation { + @media (max-width: 1099px) { + display: none; + } +} From a0ef0da23f16594da6cc67e5662e5c5c31257800 Mon Sep 17 00:00:00 2001 From: dkmyta <43220201+dkmyta@users.noreply.github.com> Date: Tue, 10 Dec 2024 12:04:08 -0800 Subject: [PATCH 76/98] Protect: Update Scan History extension types (#40548) --- .../protect/src/class-scan-history.php | 4 +++ .../js/routes/firewall/firewall-footer.jsx | 2 -- .../src/js/routes/firewall/styles.module.scss | 30 ------------------- 3 files changed, 4 insertions(+), 32 deletions(-) diff --git a/projects/plugins/protect/src/class-scan-history.php b/projects/plugins/protect/src/class-scan-history.php index 8ea1dec7156e7..23019ccd634ad 100644 --- a/projects/plugins/protect/src/class-scan-history.php +++ b/projects/plugins/protect/src/class-scan-history.php @@ -219,6 +219,10 @@ private static function normalize_api_data( $scan_data ) { } foreach ( $scan_data->threats as $source_threat ) { + if ( ! empty( $source_threat->extension ) && in_array( $source_threat->extension->type, array( 'plugin', 'theme' ), true ) ) { + $source_threat->extension->type .= 's'; + } + $history->threats[] = new Threat_Model( $source_threat ); } diff --git a/projects/plugins/protect/src/js/routes/firewall/firewall-footer.jsx b/projects/plugins/protect/src/js/routes/firewall/firewall-footer.jsx index 0e28d7bae7c98..0c175b1cd651f 100644 --- a/projects/plugins/protect/src/js/routes/firewall/firewall-footer.jsx +++ b/projects/plugins/protect/src/js/routes/firewall/firewall-footer.jsx @@ -69,7 +69,6 @@ const ShareData = () => {
    { __( 'Share data with Jetpack', 'jetpack-protect' ) } { ) } /> :first-child { - margin-right: 0; - margin-bottom: var( --spacing-base ); // 8px - } - } - - .stat-card-icon { - margin-bottom: 0; - } -} - -.share-data-section { - display: flex; - - .share-data-toggle { - margin-top: calc( var( --spacing-base ) / 2 ); // 4px - margin-right: var( --spacing-base ); // 8px - } -} - .icon-tooltip { max-height: 20px; margin-left: calc( var( --spacing-base ) / 2 ); // 4px From 8e64c519205e00135842379c8483de6c0ab4d2ba Mon Sep 17 00:00:00 2001 From: dkmyta <43220201+dkmyta@users.noreply.github.com> Date: Tue, 10 Dec 2024 13:25:25 -0800 Subject: [PATCH 77/98] Protect: Add Home page (#40317) * Init project branch * Protect: Add Go to Cloud and Scan now button to Protect primary header (#40057) Co-authored-by: Nate Weller * Protect: Update Scan and History headers (#40058) * Update Scan and History section header structure/content * changelog * Update projects/plugins/protect/src/js/routes/scan/scan-admin-section-hero.tsx Co-authored-by: Nate Weller --------- Co-authored-by: Nate Weller * Protect: de-emphasize cloud link by using link variant (#40211) * Protect: add ShieldIcon component * Protect: Add ShieldIcon Component (#40402) * Protect: Integrate ThreatsDataViews Component (#40076) * Components: Add ScanReport (#40419) * Fix type errors * Protect: add home page --------- Co-authored-by: Nate Weller Co-authored-by: Nate Weller Co-authored-by: Dean Kmyta --- .../add-hide-value-prop-to-stat-card | 4 + .../components/components/stat-card/index.tsx | 13 +- .../components/components/stat-card/types.ts | 5 + .../protect/changelog/add-protect-home | 4 + .../protect/src/class-jetpack-protect.php | 3 +- .../src/js/components/admin-page/index.jsx | 1 + .../src/js/components/pricing-table/index.jsx | 2 +- .../components/seventy-five-layout/index.tsx | 73 ----- .../seventy-five-layout/styles.module.scss | 13 - .../plugins/protect/src/js/hooks/use-plan.tsx | 2 +- projects/plugins/protect/src/js/index.tsx | 4 +- .../routes/home/home-admin-section-hero.tsx | 50 ++++ .../src/js/routes/home/home-statcards.jsx | 274 ++++++++++++++++++ .../protect/src/js/routes/home/index.jsx | 25 ++ .../src/js/routes/home/styles.module.scss | 69 +++++ 15 files changed, 449 insertions(+), 93 deletions(-) create mode 100644 projects/js-packages/components/changelog/add-hide-value-prop-to-stat-card create mode 100644 projects/plugins/protect/changelog/add-protect-home delete mode 100644 projects/plugins/protect/src/js/components/seventy-five-layout/index.tsx delete mode 100644 projects/plugins/protect/src/js/components/seventy-five-layout/styles.module.scss create mode 100644 projects/plugins/protect/src/js/routes/home/home-admin-section-hero.tsx create mode 100644 projects/plugins/protect/src/js/routes/home/home-statcards.jsx create mode 100644 projects/plugins/protect/src/js/routes/home/index.jsx create mode 100644 projects/plugins/protect/src/js/routes/home/styles.module.scss diff --git a/projects/js-packages/components/changelog/add-hide-value-prop-to-stat-card b/projects/js-packages/components/changelog/add-hide-value-prop-to-stat-card new file mode 100644 index 0000000000000..0d4002c768dd8 --- /dev/null +++ b/projects/js-packages/components/changelog/add-hide-value-prop-to-stat-card @@ -0,0 +1,4 @@ +Significance: minor +Type: added + +Stat Card: add hideValue prop diff --git a/projects/js-packages/components/components/stat-card/index.tsx b/projects/js-packages/components/components/stat-card/index.tsx index b6854dc02f37e..222cafb44068e 100644 --- a/projects/js-packages/components/components/stat-card/index.tsx +++ b/projects/js-packages/components/components/stat-card/index.tsx @@ -18,7 +18,14 @@ import type React from 'react'; * @param {StatCardProps} props - Component props. * @return {React.ReactNode} - StatCard react component. */ -const StatCard = ( { className, icon, label, value, variant = 'square' }: StatCardProps ) => { +const StatCard = ( { + className, + icon, + label, + value, + variant = 'square', + hideValue = false, +}: StatCardProps ) => { const formattedValue = numberFormat( value ); const compactValue = numberFormat( value, { notation: 'compact', @@ -33,12 +40,12 @@ const StatCard = ( { className, icon, label, value, variant = 'square' }: StatCa { variant === 'square' ? ( - { compactValue } + { hideValue ? '-' : compactValue } ) : ( - { formattedValue } + { hideValue ? '-' : formattedValue } ) }
    diff --git a/projects/js-packages/components/components/stat-card/types.ts b/projects/js-packages/components/components/stat-card/types.ts index 4b0fd698e6774..8e1c0e99d6d60 100644 --- a/projects/js-packages/components/components/stat-card/types.ts +++ b/projects/js-packages/components/components/stat-card/types.ts @@ -25,4 +25,9 @@ export type StatCardProps = { * @default 'square' */ variant?: 'square' | 'horizontal'; + + /** + * Whether to hide the value. + */ + hideValue?: boolean; }; diff --git a/projects/plugins/protect/changelog/add-protect-home b/projects/plugins/protect/changelog/add-protect-home new file mode 100644 index 0000000000000..0bcfedb6fe8ac --- /dev/null +++ b/projects/plugins/protect/changelog/add-protect-home @@ -0,0 +1,4 @@ +Significance: minor +Type: added + +Adds a Home page and StatCards diff --git a/projects/plugins/protect/src/class-jetpack-protect.php b/projects/plugins/protect/src/class-jetpack-protect.php index 293ccdaeb3ce7..492cded402990 100644 --- a/projects/plugins/protect/src/class-jetpack-protect.php +++ b/projects/plugins/protect/src/class-jetpack-protect.php @@ -457,8 +457,9 @@ public static function get_waf_stats() { } return array( - 'blockedRequests' => Plan::has_required_plan() ? Waf_Stats::get_blocked_requests() : false, + 'blockedRequests' => Waf_Stats::get_blocked_requests(), 'automaticRulesLastUpdated' => Waf_Stats::get_automatic_rules_last_updated(), + 'blockedLogins' => (int) get_option( 'jetpack_protect_blocked_attempts', 0 ), ); } } diff --git a/projects/plugins/protect/src/js/components/admin-page/index.jsx b/projects/plugins/protect/src/js/components/admin-page/index.jsx index 68f9359a9bd81..5811238cd266e 100644 --- a/projects/plugins/protect/src/js/components/admin-page/index.jsx +++ b/projects/plugins/protect/src/js/components/admin-page/index.jsx @@ -63,6 +63,7 @@ const AdminPage = ( { children } ) => { { notice && } + { const getProtectFree = useCallback( async () => { recordEvent( 'jetpack_protect_connected_product_activated' ); await connectSiteMutation.mutateAsync(); - navigate( '/scan' ); + navigate( '/' ); }, [ connectSiteMutation, recordEvent, navigate ] ); const args = { diff --git a/projects/plugins/protect/src/js/components/seventy-five-layout/index.tsx b/projects/plugins/protect/src/js/components/seventy-five-layout/index.tsx deleted file mode 100644 index 19ee4309e55a5..0000000000000 --- a/projects/plugins/protect/src/js/components/seventy-five-layout/index.tsx +++ /dev/null @@ -1,73 +0,0 @@ -import { Container, Col, useBreakpointMatch } from '@automattic/jetpack-components'; -import React from 'react'; - -// Define the props interface for the SeventyFiveLayout component -interface SeventyFiveLayoutProps { - spacing?: number; - gap?: number; - main: React.ReactNode; - mainClassName?: string; - secondary: React.ReactNode; - secondaryClassName?: string; - preserveSecondaryOnMobile?: boolean; - fluid?: boolean; -} - -/** - * SeventyFive layout meta component - * The component name references to - * the sections disposition of the layout. - * FiftyFifty, 75, thus 7|5 means the cols numbers - * for main and secondary sections respectively, - * in large lg viewport size. - * - * @param {object} props - Component props - * @param {number} props.spacing - Horizontal spacing - * @param {number} props.gap - Horizontal gap - * @param {React.ReactNode} props.main - Main section component - * @param {string} props.mainClassName - Main section class name - * @param {React.ReactNode} props.secondary - Secondary section component - * @param {string} props.secondaryClassName - Secondary section class name - * @param {boolean} props.preserveSecondaryOnMobile - Whether to show secondary section on mobile - * @param {boolean} props.fluid - Whether to use fluid layout - * @return {React.ReactNode} - React meta-component - */ -const SeventyFiveLayout: React.FC< SeventyFiveLayoutProps > = ( { - spacing = 0, - gap = 0, - main, - mainClassName, - secondary, - secondaryClassName, - preserveSecondaryOnMobile = false, - fluid, -} ) => { - // Ensure the correct typing for useBreakpointMatch - const [ isSmall, isLarge ] = useBreakpointMatch( [ 'sm', 'lg' ] ); - - /* - * By convention, secondary section is not shown when: - * - preserveSecondaryOnMobile is false - * - on mobile breakpoint (sm) - */ - const hideSecondarySection = ! preserveSecondaryOnMobile && isSmall; - - return ( - - { ! hideSecondarySection && ( - <> - - { main } - - { isLarge && } - - { secondary } - - - ) } - { hideSecondarySection && { main } } - - ); -}; - -export default SeventyFiveLayout; diff --git a/projects/plugins/protect/src/js/components/seventy-five-layout/styles.module.scss b/projects/plugins/protect/src/js/components/seventy-five-layout/styles.module.scss deleted file mode 100644 index 5405c6e28a9b4..0000000000000 --- a/projects/plugins/protect/src/js/components/seventy-five-layout/styles.module.scss +++ /dev/null @@ -1,13 +0,0 @@ -// seventy-five layout -// Handle large lg size from here, -// adding a gap on one column -// in between main and secondary sections. -@media ( min-width: 960px ) { - .main { - grid-column: 1 / span 6; - } - - .secondary { - grid-column: 8 / span 5; - } -} diff --git a/projects/plugins/protect/src/js/hooks/use-plan.tsx b/projects/plugins/protect/src/js/hooks/use-plan.tsx index b5ab18da01875..f5cd1d54943b9 100644 --- a/projects/plugins/protect/src/js/hooks/use-plan.tsx +++ b/projects/plugins/protect/src/js/hooks/use-plan.tsx @@ -48,7 +48,7 @@ export default function usePlan( { redirectUrl }: { redirectUrl?: string } = {} const { run: checkout } = useProductCheckoutWorkflow( { productSlug: JETPACK_SCAN_SLUG, - redirectUrl: redirectUrl || adminUrl, + redirectUrl: redirectUrl || adminUrl + '#/scan', siteProductAvailabilityHandler: API.checkPlan, useBlogIdSuffix: true, connectAfterCheckout: false, diff --git a/projects/plugins/protect/src/js/index.tsx b/projects/plugins/protect/src/js/index.tsx index 2b91f4b090b92..4438d5021a664 100644 --- a/projects/plugins/protect/src/js/index.tsx +++ b/projects/plugins/protect/src/js/index.tsx @@ -11,6 +11,7 @@ import { NoticeProvider } from './hooks/use-notices'; import { OnboardingRenderedContextProvider } from './hooks/use-onboarding'; import { CheckoutProvider } from './hooks/use-plan'; import FirewallRoute from './routes/firewall'; +import HomeRoute from './routes/home'; import ScanRoute from './routes/scan'; import SetupRoute from './routes/setup'; import './styles.module.scss'; @@ -56,6 +57,7 @@ function render() { } /> + } /> } /> } /> - } /> + } /> diff --git a/projects/plugins/protect/src/js/routes/home/home-admin-section-hero.tsx b/projects/plugins/protect/src/js/routes/home/home-admin-section-hero.tsx new file mode 100644 index 0000000000000..12d887e933f43 --- /dev/null +++ b/projects/plugins/protect/src/js/routes/home/home-admin-section-hero.tsx @@ -0,0 +1,50 @@ +import { Text, Button } from '@automattic/jetpack-components'; +import { __ } from '@wordpress/i18n'; +import { useCallback } from 'react'; +import { useNavigate } from 'react-router-dom'; +import AdminSectionHero from '../../components/admin-section-hero'; +import usePlan from '../../hooks/use-plan'; +import HomeStatCards from './home-statcards'; +import styles from './styles.module.scss'; + +const HomeAdminSectionHero: React.FC = () => { + const { hasPlan } = usePlan(); + const navigate = useNavigate(); + const handleScanReportClick = useCallback( () => { + navigate( '/scan' ); + }, [ navigate ] ); + + return ( + + + <> + + { __( 'Your site is safe with us', 'jetpack-protect' ) } + + + { hasPlan + ? __( + 'We stay ahead of security threats to keep your site protected.', + 'jetpack-protect' + ) + : __( + 'We stay ahead of security vulnerabilities to keep your site protected.', + 'jetpack-protect' + ) } + + + + + { } + + ); +}; + +export default HomeAdminSectionHero; diff --git a/projects/plugins/protect/src/js/routes/home/home-statcards.jsx b/projects/plugins/protect/src/js/routes/home/home-statcards.jsx new file mode 100644 index 0000000000000..2d1dc34cac147 --- /dev/null +++ b/projects/plugins/protect/src/js/routes/home/home-statcards.jsx @@ -0,0 +1,274 @@ +import { Text, useBreakpointMatch, StatCard, ShieldIcon } from '@automattic/jetpack-components'; +import { Spinner, Tooltip } from '@wordpress/components'; +import { dateI18n } from '@wordpress/date'; +import { __, _n, sprintf } from '@wordpress/i18n'; +import { useMemo } from 'react'; +import useScanStatusQuery, { isScanInProgress } from '../../data/scan/use-scan-status-query'; +import usePlan from '../../hooks/use-plan'; +import useWafData from '../../hooks/use-waf-data'; +import styles from './styles.module.scss'; + +const IconWithLabel = ( { label, isSmall, icon } ) => ( + + { icon } + { ! isSmall && ( + + { label } + + ) } + +); + +const HomeStatCard = ( { text, args } ) => ( + +
    + +
    +
    +); + +const HomeStatCards = () => { + const ICON_HEIGHT = 20; + + const { hasPlan } = usePlan(); + const [ isSmall ] = useBreakpointMatch( [ 'sm', 'lg' ], [ null, '<' ] ); + + const { data: status } = useScanStatusQuery(); + const scanning = isScanInProgress( status ); + const numThreats = status.threats.length; + const scanError = status.error; + + let lastCheckedLocalTimestamp = null; + if ( status.lastChecked ) { + // Convert the lastChecked UTC date to a local timestamp + lastCheckedLocalTimestamp = dateI18n( + 'F jS g:i A', + new Date( status.lastChecked + ' UTC' ).getTime(), + false + ); + } + + const { + config: { bruteForceProtection: isBruteForceModuleEnabled }, + isEnabled: isWafModuleEnabled, + wafSupported, + stats, + } = useWafData(); + + const { + blockedRequests: { allTime: allTimeBlockedRequestsCount = 0 } = {}, + blockedLogins: allTimeBlockedLoginsCount = 0, + } = stats || {}; + + const variant = useMemo( () => ( isSmall ? 'horizontal' : 'square' ), [ isSmall ] ); + + const lastCheckedMessage = useMemo( () => { + if ( scanning ) { + return __( 'Your results will be ready soon.', 'jetpack-protect' ); + } + + if ( scanError ) { + return __( + 'Please check your connection or try scanning again in a few minutes.', + 'jetpack-protect' + ); + } + + if ( lastCheckedLocalTimestamp ) { + if ( numThreats > 0 ) { + if ( hasPlan ) { + return sprintf( + // translators: %1$s: date/time, %2$d: number + _n( + 'Last checked on %1$s: We found %2$d threat.', + 'Last checked on %1$s: We found %2$d threats.', + numThreats, + 'jetpack-protect' + ), + lastCheckedLocalTimestamp, + numThreats + ); + } + return sprintf( + // translators: %1$s: date/time, %2$d: number + _n( + 'Last checked on %1$s: We found %2$d vulnerability.', + 'Last checked on %1$s: We found %2$d vulnerabilities.', + numThreats, + 'jetpack-protect' + ), + lastCheckedLocalTimestamp, + numThreats + ); + } + return sprintf( + // translators: %s: date/time + __( 'Last checked on %s: Your site is secure.', 'jetpack-protect' ), + lastCheckedLocalTimestamp + ); + } + if ( hasPlan ) { + return sprintf( + // translators: %d: number + _n( + 'Last scan we found %d threat.', + 'Last scan we found %d threats.', + numThreats, + 'jetpack-protect' + ), + numThreats + ); + } + return sprintf( + // translators: %d: number + _n( + 'Last scan we found %2$d vulnerability.', + 'Last scan we found %2$d vulnerabilities.', + numThreats, + 'jetpack-protect' + ), + numThreats + ); + }, [ scanError, scanning, numThreats, lastCheckedLocalTimestamp, hasPlan ] ); + + const scanArgs = useMemo( () => { + let scanIcon; + if ( scanning ) { + scanIcon = ; + } else if ( scanError ) { + scanIcon = ; + } else { + scanIcon = ( + + ); + } + + let scanLabel; + if ( scanning ) { + scanLabel = __( 'One moment, please…', 'jetpack-protect' ); + } else if ( scanError ) { + scanLabel = __( 'An error occurred', 'jetpack-protect' ); + } else if ( hasPlan ) { + scanLabel = _n( 'Threat identified', 'Threats identified', numThreats, 'jetpack-protect' ); + } else { + scanLabel = _n( + 'Vulnerability identified', + 'Vulnerabilities identified', + numThreats, + 'jetpack-protect' + ); + } + + return { + variant, + icon: ( + + ), + label: { scanLabel }, + value: numThreats, + hideValue: !! ( scanError || scanning ), + }; + }, [ variant, scanning, ICON_HEIGHT, scanError, numThreats, hasPlan, isSmall ] ); + + const wafArgs = useMemo( + () => ( { + variant: variant, + className: isWafModuleEnabled ? styles.active : styles.disabled, + icon: ( + + + { ! isSmall && ( + + { __( 'Firewall', 'jetpack-protect' ) } + + ) } + + ), + label: ( + + { __( 'Blocked requests', 'jetpack-protect' ) } + + ), + value: allTimeBlockedRequestsCount, + hideValue: ! isWafModuleEnabled, + } ), + [ variant, isWafModuleEnabled, ICON_HEIGHT, isSmall, allTimeBlockedRequestsCount ] + ); + + const bruteForceArgs = useMemo( + () => ( { + variant: variant, + className: isBruteForceModuleEnabled ? styles.active : styles.disabled, + icon: ( + + + { ! isSmall && ( + + { __( 'Brute force', 'jetpack-protect' ) } + + ) } + + ), + label: ( + + { __( 'Blocked login attempts', 'jetpack-protect' ) } + + ), + value: allTimeBlockedLoginsCount, + hideValue: ! isBruteForceModuleEnabled, + } ), + [ variant, isBruteForceModuleEnabled, ICON_HEIGHT, isSmall, allTimeBlockedLoginsCount ] + ); + + return ( +
    + + { wafSupported && ( + + ) } + +
    + ); +}; + +export default HomeStatCards; diff --git a/projects/plugins/protect/src/js/routes/home/index.jsx b/projects/plugins/protect/src/js/routes/home/index.jsx new file mode 100644 index 0000000000000..718349caaac3f --- /dev/null +++ b/projects/plugins/protect/src/js/routes/home/index.jsx @@ -0,0 +1,25 @@ +import { AdminSection, Container, Col } from '@automattic/jetpack-components'; +import AdminPage from '../../components/admin-page'; +import HomeAdminSectionHero from './home-admin-section-hero'; + +/** + * Home Page + * + * The entry point for the Home page. + * + * @return {Component} The root component for the scan page. + */ +const HomePage = () => { + return ( + + + + + { /* TODO: Add ScanReport component here */ } + + + + ); +}; + +export default HomePage; diff --git a/projects/plugins/protect/src/js/routes/home/styles.module.scss b/projects/plugins/protect/src/js/routes/home/styles.module.scss new file mode 100644 index 0000000000000..b99bead52dbdb --- /dev/null +++ b/projects/plugins/protect/src/js/routes/home/styles.module.scss @@ -0,0 +1,69 @@ +.product-section, .info-section { + margin-top: calc( var( --spacing-base ) * 7 ); // 56px + margin-bottom: calc( var( --spacing-base ) * 7 ); // 56px +} + +.view-scan-report { + margin-top: calc( var( --spacing-base ) * 4 ); // 32px +} + +.stat-cards-wrapper { + display: flex; + justify-content: flex-start; + + > *:not( last-child ) { + margin-right: calc( var( --spacing-base ) * 3 ); // 24px + } + + .disabled { + opacity: 0.5; + } +} + +.stat-card-icon { + width: 100%; + margin-bottom: calc( var( --spacing-base ) * 3 ); // 24px + display: flex; + align-items: center; + gap: 8px; + + svg { + margin: 0; + } + + .active { + fill: var( --jp-green-40 ); + } + + .warning { + fill: var( --jp-yellow-40 ); + } + + .disabled { + fill: var( --jp-gray-40 ); + } + + &-label { + color: var( --jp-black ); + white-space: nowrap; + } +} + +.stat-card-tooltip { + margin-top: 8px; + max-width: 240px; + border-radius: 4px; + text-align: left; +} + + +@media ( max-width: 599px ) { + .stat-cards-wrapper { + flex-direction: column; + gap: var( --spacing-base ); // 8px + } + + .stat-card-icon { + margin-bottom: 0; + } +} \ No newline at end of file From f918ecce1bfa9037f8e1ac7a1d05818c52d7e50d Mon Sep 17 00:00:00 2001 From: dkmyta <43220201+dkmyta@users.noreply.github.com> Date: Wed, 11 Dec 2024 10:17:14 -0800 Subject: [PATCH 78/98] Protect: Integrate ScanReport (#40420) --- .../components/scan-report/constants.ts | 6 +++ .../components/scan-report/index.tsx | 48 +++++++++++++++++-- .../scan-report/stories/index.stories.tsx | 7 +++ .../threats-data-views/constants.ts | 1 + .../components/threats-data-views/index.tsx | 13 +---- .../update-protect-add-scan-report-to-home | 4 ++ .../firewall/firewall-admin-section-hero.tsx | 4 +- .../js/routes/firewall/firewall-statcards.jsx | 22 ++++----- .../routes/home/home-admin-section-hero.tsx | 3 +- .../protect/src/js/routes/home/index.jsx | 26 ++++++++-- .../src/js/routes/home/styles.module.scss | 13 +++-- 11 files changed, 106 insertions(+), 41 deletions(-) create mode 100644 projects/plugins/protect/changelog/update-protect-add-scan-report-to-home diff --git a/projects/js-packages/components/components/scan-report/constants.ts b/projects/js-packages/components/components/scan-report/constants.ts index 436eed91c5701..6a10d008b876f 100644 --- a/projects/js-packages/components/components/scan-report/constants.ts +++ b/projects/js-packages/components/components/scan-report/constants.ts @@ -7,6 +7,12 @@ import { wordpress as coreIcon, } from '@wordpress/icons'; +export const STATUS_TYPES = [ + { value: 'checked', label: __( 'Checked', 'jetpack-components' ) }, + { value: 'unchecked', label: __( 'Unchecked', 'jetpack-components' ) }, + { value: 'threat', label: __( 'Threat', 'jetpack-components' ) }, +]; + export const TYPES = [ { value: 'core', label: __( 'WordPress', 'jetpack-components' ) }, { value: 'plugins', label: __( 'Plugin', 'jetpack-components' ) }, diff --git a/projects/js-packages/components/components/scan-report/index.tsx b/projects/js-packages/components/components/scan-report/index.tsx index 14795376f7d95..4600ecf98d9db 100644 --- a/projects/js-packages/components/components/scan-report/index.tsx +++ b/projects/js-packages/components/components/scan-report/index.tsx @@ -7,7 +7,7 @@ import { DataViews, filterSortAndPaginate, } from '@wordpress/dataviews'; -import { __ } from '@wordpress/i18n'; +import { __, _n } from '@wordpress/i18n'; import { Icon } from '@wordpress/icons'; import { useCallback, useMemo, useState } from 'react'; import ShieldIcon from '../shield-icon'; @@ -17,6 +17,7 @@ import { FIELD_ICON, FIELD_STATUS, FIELD_TYPE, + STATUS_TYPES, TYPES, ICONS, } from './constants'; @@ -26,12 +27,13 @@ import styles from './styles.module.scss'; * DataViews component for displaying a scan report. * * @param {object} props - Component props. + * @param {string} props.dataSource - Data source. * @param {Array} props.data - Scan report data. * @param {Function} props.onChangeSelection - Callback function run when an item is selected. * * @return {JSX.Element} The ScanReport component. */ -export default function ScanReport( { data, onChangeSelection } ): JSX.Element { +export default function ScanReport( { dataSource, data, onChangeSelection } ): JSX.Element { const baseView = { search: '', filters: [], @@ -84,8 +86,19 @@ export default function ScanReport( { data, onChangeSelection } ): JSX.Element { const result: Field< ScanReportExtension >[] = [ { id: FIELD_STATUS, + elements: STATUS_TYPES, label: __( 'Status', 'jetpack-components' ), + getValue( { item } ) { + if ( item.checked ) { + if ( item.threats.length > 0 ) { + return 'threat'; + } + return 'checked'; + } + return 'unchecked'; + }, render( { item }: { item: ScanReportExtension } ) { + const scanApi = 'scan_api' === dataSource; let variant: 'info' | 'warning' | 'success' = 'info'; let text = __( 'This item was added to your site after the most recent scan. We will check for threats during the next scheduled one.', @@ -95,10 +108,34 @@ export default function ScanReport( { data, onChangeSelection } ): JSX.Element { if ( item.checked ) { if ( item.threats.length > 0 ) { variant = 'warning'; - text = __( 'Threat detected.', 'jetpack-components' ); + text = _n( + 'Vulnerability detected.', + 'Vulnerabilities detected.', + item.threats.length, + 'jetpack-components' + ); + + if ( scanApi ) { + text = _n( + 'Threat detected.', + 'Threats detected.', + item.threats.length, + 'jetpack-components' + ); + } } else { variant = 'success'; - text = __( 'No known threats found that affect this version.', 'jetpack-components' ); + text = __( + 'No known vulnerabilities found that affect this version.', + 'jetpack-components' + ); + + if ( scanApi ) { + text = __( + 'No known threats found that affect this version.', + 'jetpack-components' + ); + } } } @@ -127,6 +164,7 @@ export default function ScanReport( { data, onChangeSelection } ): JSX.Element { { id: FIELD_VERSION, label: __( 'Version', 'jetpack-components' ), + enableSorting: false, enableGlobalSearch: true, getValue( { item }: { item: ScanReportExtension } ) { return item.version ? item.version : ''; @@ -155,7 +193,7 @@ export default function ScanReport( { data, onChangeSelection } ): JSX.Element { ]; return result; - }, [ view ] ); + }, [ view, dataSource ] ); /** * Apply the view settings (i.e. filters, sorting, pagination) to the dataset. diff --git a/projects/js-packages/components/components/scan-report/stories/index.stories.tsx b/projects/js-packages/components/components/scan-report/stories/index.stories.tsx index 63926908850de..eebcbc428fb39 100644 --- a/projects/js-packages/components/components/scan-report/stories/index.stories.tsx +++ b/projects/js-packages/components/components/scan-report/stories/index.stories.tsx @@ -20,6 +20,7 @@ export default { export const Default = args => ; Default.args = { + dataSource: 'scan_api', data: [ { id: 1, @@ -64,6 +65,12 @@ Default.args = { title: 'Malicious code found in file: jptt_eicar.php', severity: 1, }, + { + id: 198352407, + signature: 'EICAR_AV_Test_Suspicious', + title: 'Malicious code found in file: jptt_eicar.php', + severity: 1, + }, ], checked: true, type: 'files', diff --git a/projects/js-packages/components/components/threats-data-views/constants.ts b/projects/js-packages/components/components/threats-data-views/constants.ts index cc37c28c7b39b..40941b43ad032 100644 --- a/projects/js-packages/components/components/threats-data-views/constants.ts +++ b/projects/js-packages/components/components/threats-data-views/constants.ts @@ -19,6 +19,7 @@ export const THREAT_TYPES = [ { value: 'themes', label: __( 'Theme', 'jetpack-components' ) }, { value: 'core', label: __( 'WordPress', 'jetpack-components' ) }, { value: 'file', label: __( 'File', 'jetpack-components' ) }, + { value: '', label: __( 'Unknown', 'jetpack-components' ) }, ]; export const THREAT_ICONS = { diff --git a/projects/js-packages/components/components/threats-data-views/index.tsx b/projects/js-packages/components/components/threats-data-views/index.tsx index 44efc998dc3ae..27cbfa23935fe 100644 --- a/projects/js-packages/components/components/threats-data-views/index.tsx +++ b/projects/js-packages/components/components/threats-data-views/index.tsx @@ -265,18 +265,7 @@ export default function ThreatsDataViews( { label: __( 'Type', 'jetpack-components' ), elements: THREAT_TYPES, getValue( { item }: { item: Threat } ) { - switch ( getThreatType( item ) ) { - case 'core': - return __( 'WordPress', 'jetpack-components' ); - case 'plugins': - return __( 'Plugin', 'jetpack-components' ); - case 'themes': - return __( 'Theme', 'jetpack-components' ); - case 'file': - return __( 'File', 'jetpack-components' ); - default: - return __( 'Unknown', 'jetpack-components' ); - } + return getThreatType( item ) ?? ''; }, }, { diff --git a/projects/plugins/protect/changelog/update-protect-add-scan-report-to-home b/projects/plugins/protect/changelog/update-protect-add-scan-report-to-home new file mode 100644 index 0000000000000..0478ae51501b8 --- /dev/null +++ b/projects/plugins/protect/changelog/update-protect-add-scan-report-to-home @@ -0,0 +1,4 @@ +Significance: minor +Type: added + +Adds ScanReport to HomeRoute diff --git a/projects/plugins/protect/src/js/routes/firewall/firewall-admin-section-hero.tsx b/projects/plugins/protect/src/js/routes/firewall/firewall-admin-section-hero.tsx index 837f649c67f16..c302f93dd8863 100644 --- a/projects/plugins/protect/src/js/routes/firewall/firewall-admin-section-hero.tsx +++ b/projects/plugins/protect/src/js/routes/firewall/firewall-admin-section-hero.tsx @@ -88,12 +88,12 @@ const FirewallAdminSectionHero = () => { { heading } - { subheading } + { subheading } { wafSupported && ( diff --git a/projects/plugins/protect/src/js/routes/firewall/firewall-statcards.jsx b/projects/plugins/protect/src/js/routes/firewall/firewall-statcards.jsx index 1eebd67cb60d7..7b1fd7cbbbede 100644 --- a/projects/plugins/protect/src/js/routes/firewall/firewall-statcards.jsx +++ b/projects/plugins/protect/src/js/routes/firewall/firewall-statcards.jsx @@ -1,13 +1,11 @@ -import { Text, useBreakpointMatch, StatCard } from '@automattic/jetpack-components'; +import { useBreakpointMatch, StatCard } from '@automattic/jetpack-components'; import { __, sprintf } from '@wordpress/i18n'; import { Icon, shield, chartBar } from '@wordpress/icons'; import { useCallback, useMemo } from 'react'; -import usePlan from '../../hooks/use-plan'; import useWafData from '../../hooks/use-waf-data'; import styles from './styles.module.scss'; const FirewallStatCards = () => { - const { hasPlan } = usePlan(); const { config: { bruteForceProtection: isBruteForceModuleEnabled }, isEnabled: isWafModuleEnabled, @@ -22,26 +20,22 @@ const FirewallStatCards = () => { const { currentDay: currentDayBlockCount, thirtyDays: thirtyDayBlockCounts } = stats ? stats.blockedRequests : { currentDay: 0, thirtyDays: 0 }; - const isFeatureDisabled = ! isSupportedWafFeatureEnabled || ! hasPlan; const defaultArgs = useMemo( () => ( { - className: isFeatureDisabled ? styles.disabled : styles.active, + className: ! isSupportedWafFeatureEnabled ? styles.disabled : styles.active, variant: isSmall ? 'horizontal' : 'square', } ), - [ isFeatureDisabled, isSmall ] + [ isSupportedWafFeatureEnabled, isSmall ] ); const StatCardIcon = useCallback( ( { icon } ) => ( - { ! isSmall && ! hasPlan && ( - { __( 'Paid feature', 'jetpack-protect' ) } - ) } ), - [ isSmall, hasPlan ] + [] ); const StatCardLabel = useCallback( @@ -77,9 +71,9 @@ const FirewallStatCards = () => { ...defaultArgs, icon: , label: , - value: isFeatureDisabled ? 0 : currentDayBlockCount, + value: ! isSupportedWafFeatureEnabled ? 0 : currentDayBlockCount, } ), - [ defaultArgs, StatCardIcon, StatCardLabel, isFeatureDisabled, currentDayBlockCount ] + [ defaultArgs, StatCardIcon, StatCardLabel, isSupportedWafFeatureEnabled, currentDayBlockCount ] ); const thirtyDaysArgs = useMemo( @@ -87,9 +81,9 @@ const FirewallStatCards = () => { ...defaultArgs, icon: , label: , - value: isFeatureDisabled ? 0 : thirtyDayBlockCounts, + value: ! isSupportedWafFeatureEnabled ? 0 : thirtyDayBlockCounts, } ), - [ defaultArgs, StatCardIcon, StatCardLabel, isFeatureDisabled, thirtyDayBlockCounts ] + [ defaultArgs, StatCardIcon, StatCardLabel, isSupportedWafFeatureEnabled, thirtyDayBlockCounts ] ); return ( diff --git a/projects/plugins/protect/src/js/routes/home/home-admin-section-hero.tsx b/projects/plugins/protect/src/js/routes/home/home-admin-section-hero.tsx index 12d887e933f43..d695f05eea9cc 100644 --- a/projects/plugins/protect/src/js/routes/home/home-admin-section-hero.tsx +++ b/projects/plugins/protect/src/js/routes/home/home-admin-section-hero.tsx @@ -29,7 +29,8 @@ const HomeAdminSectionHero: React.FC = () => { ) : __( 'We stay ahead of security vulnerabilities to keep your site protected.', - 'jetpack-protect' + 'jetpack-protect', + /* dummy arg to avoid bad minification */ 0 ) }

    ) } -
    - { getLabel( threat ) } +
    + { getLabel( threat ) }
    diff --git a/projects/plugins/protect/src/js/routes/scan/scan-admin-section-hero.tsx b/projects/plugins/protect/src/js/routes/scan/scan-admin-section-hero.tsx index 91922be65ffd1..5360a7716b4e1 100644 --- a/projects/plugins/protect/src/js/routes/scan/scan-admin-section-hero.tsx +++ b/projects/plugins/protect/src/js/routes/scan/scan-admin-section-hero.tsx @@ -236,6 +236,7 @@ const ScanAdminSectionHero: React.FC = ( { size = 'normal' }: { size?: 'normal'
    { showModal && (