diff --git a/plugins/woo-ai/changelog/update-short-description-generator b/plugins/woo-ai/changelog/update-short-description-generator
new file mode 100644
index 00000000000..ab2b75fdcf4
--- /dev/null
+++ b/plugins/woo-ai/changelog/update-short-description-generator
@@ -0,0 +1,4 @@
+Significance: minor
+Type: add
+
+[Woo AI] Add a Write with AI button for the short description field in product editor.
diff --git a/plugins/woo-ai/composer.lock b/plugins/woo-ai/composer.lock
index ad6f0c9830a..d59c9c95c20 100644
--- a/plugins/woo-ai/composer.lock
+++ b/plugins/woo-ai/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": "f04d60d67b018f03857889eabb4fde67",
+ "content-hash": "4422aa30be46b03afe33056e2f26359c",
"packages": [
{
"name": "composer/installers",
diff --git a/plugins/woo-ai/includes/class-woo-ai-product-text-generation.php b/plugins/woo-ai/includes/class-woo-ai-product-text-generation.php
index b7ddec6e9e9..0b5faffd396 100644
--- a/plugins/woo-ai/includes/class-woo-ai-product-text-generation.php
+++ b/plugins/woo-ai/includes/class-woo-ai-product-text-generation.php
@@ -20,6 +20,7 @@ class Woo_AI_Product_Text_Generation {
public function __construct() {
add_action( 'admin_enqueue_scripts', array( $this, 'add_woo_ai_register_script' ) );
add_action( 'media_buttons', array( $this, 'add_gpt_button' ), 40 );
+ add_action( 'media_buttons', array( $this, 'add_short_description_gpt_button' ), 50 );
add_action( 'edit_form_before_permalink', array( $this, 'add_name_generation_form' ) );
add_filter( 'the_editor', array( $this, 'add_gpt_form' ), 10, 1 );
}
@@ -82,6 +83,19 @@ class Woo_AI_Product_Text_Generation {
echo '
';
}
+ /**
+ * Add gpt button to the editor.
+ *
+ * @param String $editor_id Editor Id.
+ */
+ public function add_short_description_gpt_button( $editor_id ) {
+ if ( 'excerpt' !== $editor_id || ( ! current_user_can( 'edit_posts' ) && ! current_user_can( 'edit_pages' ) ) ) {
+ return;
+ }
+
+ echo '';
+ }
+
/**
* Add the form and button for generating product title suggestions to the editor.
*/
diff --git a/plugins/woo-ai/package.json b/plugins/woo-ai/package.json
index a794104609d..6f2c4e98af6 100644
--- a/plugins/woo-ai/package.json
+++ b/plugins/woo-ai/package.json
@@ -10,6 +10,7 @@
"version": "0.2.0",
"homepage": "http://github.com/woocommerce/woo-ai",
"devDependencies": {
+ "@svgr/webpack": "^8.1.0",
"@types/debug": "^4.1.7",
"@types/jquery": "^3.5.16",
"@types/react": "^17.0.2",
@@ -17,6 +18,7 @@
"@types/wordpress__components": "^19.10.3",
"@woocommerce/dependency-extraction-webpack-plugin": "workspace:*",
"@woocommerce/eslint-plugin": "workspace:*",
+ "@wordpress/data": "wp-6.0",
"@wordpress/env": "^8.2.0",
"@wordpress/prettier-config": "2.17.0",
"@wordpress/scripts": "^19.2.4",
@@ -27,6 +29,7 @@
"uglify-js": "^3.5.3"
},
"dependencies": {
+ "@automattic/tour-kit": "^1.1.1",
"@emotion/react": "^11.10.4",
"@types/prop-types": "^15.7.4",
"@types/react-outside-click-handler": "^1.3.1",
@@ -41,6 +44,7 @@
"@wordpress/i18n": "wp-6.0",
"@wordpress/notices": "wp-6.0",
"@wordpress/plugins": "wp-6.0",
+ "@wordpress/preferences": "wp-6.0",
"debug": "^4.3.3",
"prop-types": "^15.8.1",
"react-query": "^3.39.3"
@@ -48,7 +52,6 @@
"peerDependencies": {
"@types/react": "^17.0.2",
"@types/react-dom": "^17.0.2",
- "@wordpress/data": "wp-6.0",
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
diff --git a/plugins/woo-ai/src/components/description-completion-buttons.tsx b/plugins/woo-ai/src/components/description-completion-buttons.tsx
index 1c5d17867be..001c379bd07 100644
--- a/plugins/woo-ai/src/components/description-completion-buttons.tsx
+++ b/plugins/woo-ai/src/components/description-completion-buttons.tsx
@@ -2,13 +2,12 @@
* External dependencies
*/
import React from 'react';
-import { __, sprintf } from '@wordpress/i18n';
+import { __ } from '@wordpress/i18n';
/**
* Internal dependencies
*/
import MagicIcon from '../../assets/images/icons/magic.svg';
-import { MIN_TITLE_LENGTH_FOR_DESCRIPTION } from '../constants';
type MagicButtonProps = {
title?: string;
@@ -17,6 +16,10 @@ type MagicButtonProps = {
label: string;
};
+type WriteItForMeBtnProps = MagicButtonProps & {
+ disabledMessage?: string;
+};
+
const MagicButton = ( {
title,
label,
@@ -40,24 +43,14 @@ const MagicButton = ( {
export const WriteItForMeBtn = ( {
disabled,
onClick,
-}: Omit< MagicButtonProps, 'title' | 'label' > ) => {
+ disabledMessage,
+}: Omit< WriteItForMeBtnProps, 'title' | 'label' > ) => {
return (
);
};
@@ -71,7 +64,7 @@ export const StopCompletionBtn = ( {
disabled={ disabled }
onClick={ onClick }
label={ __( 'Stop writing…', 'woocommerce' ) }
- title={ __( 'Stop generating the description.', 'woocommerce' ) }
+ title={ __( 'Stop generating content.', 'woocommerce' ) }
/>
);
};
diff --git a/plugins/woo-ai/src/components/index.ts b/plugins/woo-ai/src/components/index.ts
index 8b3e358145f..b6117b08f92 100644
--- a/plugins/woo-ai/src/components/index.ts
+++ b/plugins/woo-ai/src/components/index.ts
@@ -1,2 +1,3 @@
export * from './random-loading-message';
export * from './description-completion-buttons';
+export * from './info-modal';
diff --git a/plugins/woo-ai/src/components/info-modal/index.ts b/plugins/woo-ai/src/components/info-modal/index.ts
new file mode 100644
index 00000000000..3826c03df5e
--- /dev/null
+++ b/plugins/woo-ai/src/components/info-modal/index.ts
@@ -0,0 +1 @@
+export * from './info-modal';
diff --git a/plugins/woo-ai/src/components/info-modal/info-modal.scss b/plugins/woo-ai/src/components/info-modal/info-modal.scss
new file mode 100644
index 00000000000..5ee9e113441
--- /dev/null
+++ b/plugins/woo-ai/src/components/info-modal/info-modal.scss
@@ -0,0 +1,34 @@
+.shortDescriptionGenerated-spotlight {
+ max-width: 400px;
+ padding:20px;
+ box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
+
+ span {
+ font-weight: 600;
+ font-size: 18px;
+ }
+
+ p {
+ font-size:16px;
+ margin-bottom: 20px;
+ }
+
+ button {
+ padding: 10px 15px;
+ border-radius: 5px;
+ color:#fff;
+ background-color: #0074a2;
+ border: 1px solid lightblue;
+ float:right;
+ border:none;
+ margin-bottom:20px;
+
+ &:hover, &:focus {
+ background-color: darken(#0074a2, 10%); // Slightly darken the blue on hover and focus
+ }
+
+ &:active {
+ background-color: darken(#0074a2, 15%); // Darken a bit more on active state
+ }
+ }
+}
\ No newline at end of file
diff --git a/plugins/woo-ai/src/components/info-modal/info-modal.tsx b/plugins/woo-ai/src/components/info-modal/info-modal.tsx
new file mode 100644
index 00000000000..15f2d8c9648
--- /dev/null
+++ b/plugins/woo-ai/src/components/info-modal/info-modal.tsx
@@ -0,0 +1,48 @@
+/**
+ * External dependencies
+ */
+import { useDispatch, select } from '@wordpress/data';
+import { store as preferencesStore } from '@wordpress/preferences';
+import React from 'react';
+
+/**
+ * Internal dependencies
+ */
+import TourSpotlight from '../tour-spotlight/tour-spotlight';
+import './info-modal.scss';
+
+interface InfoModalProps {
+ id: string;
+ message: string;
+ title: string;
+}
+
+export const InfoModal: React.FC< InfoModalProps > = ( {
+ id,
+ message,
+ title,
+} ) => {
+ const anchorElement = document.querySelector( '#postexcerpt' );
+ const hasBeenDismissedBefore = select( preferencesStore ).get(
+ 'woo-ai-plugin',
+ `modalDismissed-${ id }`
+ );
+
+ const { set } = useDispatch( preferencesStore );
+
+ if ( ! anchorElement || hasBeenDismissedBefore ) return null;
+
+ const closeTour = () => {
+ set( 'woo-ai-plugin', `modalDismissed-${ id }`, true );
+ };
+
+ return (
+
+ );
+};
diff --git a/plugins/woo-ai/src/components/tour-spotlight/index.ts b/plugins/woo-ai/src/components/tour-spotlight/index.ts
new file mode 100644
index 00000000000..3ea05b99449
--- /dev/null
+++ b/plugins/woo-ai/src/components/tour-spotlight/index.ts
@@ -0,0 +1 @@
+export * from './tour-spotlight';
diff --git a/plugins/woo-ai/src/components/tour-spotlight/tour-spotlight.tsx b/plugins/woo-ai/src/components/tour-spotlight/tour-spotlight.tsx
new file mode 100644
index 00000000000..9ebd3a82f4c
--- /dev/null
+++ b/plugins/woo-ai/src/components/tour-spotlight/tour-spotlight.tsx
@@ -0,0 +1,71 @@
+/**
+ * External dependencies
+ */
+import Tour, { TourStepRendererProps } from '@automattic/tour-kit';
+import { Button } from '@wordpress/components';
+import { useState } from '@wordpress/element';
+import { __ } from '@wordpress/i18n';
+import React from 'react';
+
+type TourSpotlightProps = {
+ onDismiss: () => void;
+ title: string;
+ description: string;
+ reference: string;
+ className?: string;
+};
+
+export default function TourSpotlight( {
+ onDismiss,
+ title,
+ description,
+ reference,
+ className,
+}: TourSpotlightProps ) {
+ const [ showTour, setShowTour ] = useState( true );
+
+ const handleDismiss = () => {
+ setShowTour( false );
+ onDismiss();
+ };
+ // Define a configuration for the tour, passing along a handler for closing.
+ const config = {
+ steps: [
+ {
+ referenceElements: {
+ desktop: reference,
+ },
+ meta: {
+ description,
+ },
+ },
+ ],
+ renderers: {
+ tourStep: ( { currentStepIndex }: TourStepRendererProps ) => {
+ return (
+
+
{ title }
+
+ {
+ config.steps[ currentStepIndex ].meta
+ .description
+ }
+
+
+
+ );
+ },
+ tourMinimized: () => ,
+ },
+ closeHandler: () => handleDismiss(),
+ options: {},
+ };
+
+ if ( ! showTour ) {
+ return null;
+ }
+
+ return ;
+}
diff --git a/plugins/woo-ai/src/constants.ts b/plugins/woo-ai/src/constants.ts
index e20778c5838..dddeeca962a 100644
--- a/plugins/woo-ai/src/constants.ts
+++ b/plugins/woo-ai/src/constants.ts
@@ -1,3 +1,4 @@
export const WOO_AI_PLUGIN_FEATURE_NAME = 'woo_ai_plugin';
export const MAX_TITLE_LENGTH = 200;
export const MIN_TITLE_LENGTH_FOR_DESCRIPTION = 15;
+export const MIN_DESC_LENGTH_FOR_SHORT_DESC = 100;
diff --git a/plugins/woo-ai/src/custom.d.ts b/plugins/woo-ai/src/custom.d.ts
index e8dfdf4c716..5720ec958fb 100644
--- a/plugins/woo-ai/src/custom.d.ts
+++ b/plugins/woo-ai/src/custom.d.ts
@@ -1,2 +1,8 @@
-declare module '@wordpress/notices';
-declare module '@wordpress/data';
\ No newline at end of file
+declare module '*.svg' {
+ const content: string;
+ export default content;
+}
+declare const wp: any;
+declare module '@wordpress/data';
+declare module '@wordpress/preferences';
+declare module '@wordpress/notices';
\ No newline at end of file
diff --git a/plugins/woo-ai/src/customer.d.ts b/plugins/woo-ai/src/customer.d.ts
deleted file mode 100644
index ad01f9d04a5..00000000000
--- a/plugins/woo-ai/src/customer.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-declare module '*.svg' {
- const content: string;
- export default content;
-}
-
-declare module '@wordpress/data';
diff --git a/plugins/woo-ai/src/hooks/useTinyEditor.ts b/plugins/woo-ai/src/hooks/useTinyEditor.ts
index 3d27e861f01..9ccb0f89350 100644
--- a/plugins/woo-ai/src/hooks/useTinyEditor.ts
+++ b/plugins/woo-ai/src/hooks/useTinyEditor.ts
@@ -1,11 +1,39 @@
+/**
+ * External dependencies
+ */
+import { useState, useEffect } from 'react';
+
/**
* Internal dependencies
*/
-import { setTinyContent, getTinyContent } from '../utils/tiny-tools';
+import {
+ getTinyContentObject,
+ setTinyContent,
+ getTinyContent,
+ TinyContent,
+} from '../utils/tiny-tools';
export const useTinyEditor = ( editorId?: string ) => {
+ const [ editor, setEditor ] = useState< TinyContent | null >( null );
+
+ useEffect( () => {
+ const fetchEditor = () => {
+ const editorInstance = getTinyContentObject( editorId );
+ if ( editorInstance ) {
+ setEditor( editorInstance );
+ }
+ };
+
+ window.addEventListener( 'load', fetchEditor );
+
+ return () => {
+ document.removeEventListener( 'load', fetchEditor );
+ };
+ }, [ editorId ] );
+
return {
setContent: ( str: string ) => setTinyContent( str, editorId ),
getContent: () => getTinyContent( editorId ),
+ getEditorObject: () => editor,
};
};
diff --git a/plugins/woo-ai/src/index.js b/plugins/woo-ai/src/index.js
index a4edb35664c..a16d2d3ecd5 100644
--- a/plugins/woo-ai/src/index.js
+++ b/plugins/woo-ai/src/index.js
@@ -9,9 +9,14 @@ import { QueryClient, QueryClientProvider } from 'react-query';
*/
import { WriteItForMeButtonContainer } from './product-description';
import { ProductNameSuggestions } from './product-name';
+import { WriteShortDescriptionButtonContainer } from './product-short-description';
+import setPreferencesPersistence from './utils/preferencesPersistence';
import './index.scss';
+// This sets up loading and saving the plugin's preferences.
+setPreferencesPersistence();
+
const queryClient = new QueryClient();
const renderComponent = ( Component, rootElement ) => {
@@ -39,7 +44,15 @@ const nameSuggestionsRoot = document.getElementById(
'woocommerce-ai-app-product-name-suggestions'
);
+const shortDescriptionButtonRoot = document.getElementById(
+ 'woocommerce-ai-app-product-short-description-gpt-button'
+);
+
if ( window.JP_CONNECTION_INITIAL_STATE?.connectionStatus?.isActive ) {
renderComponent( WriteItForMeButtonContainer, descriptionButtonRoot );
renderComponent( ProductNameSuggestions, nameSuggestionsRoot );
+ renderComponent(
+ WriteShortDescriptionButtonContainer,
+ shortDescriptionButtonRoot
+ );
}
diff --git a/plugins/woo-ai/src/index.scss b/plugins/woo-ai/src/index.scss
index aab82b42e5b..83c8aa2df71 100644
--- a/plugins/woo-ai/src/index.scss
+++ b/plugins/woo-ai/src/index.scss
@@ -1,2 +1,3 @@
-@import "product-description/product-description.scss";
-@import "product-name/product-name.scss";
+@import 'product-description/product-description.scss';
+@import 'product-name/product-name.scss';
+@import 'product-short-description/product-short-description.scss';
diff --git a/plugins/woo-ai/src/product-description/product-description-button-container.tsx b/plugins/woo-ai/src/product-description/product-description-button-container.tsx
index 48e74a85713..0931d214379 100644
--- a/plugins/woo-ai/src/product-description/product-description-button-container.tsx
+++ b/plugins/woo-ai/src/product-description/product-description-button-container.tsx
@@ -3,7 +3,7 @@
*/
import { useDispatch } from '@wordpress/data';
import { store as noticesStore } from '@wordpress/notices';
-import { __ } from '@wordpress/i18n';
+import { __, sprintf } from '@wordpress/i18n';
import { useState, useEffect, useRef } from '@wordpress/element';
import {
__experimentalUseCompletion as useCompletion,
@@ -18,7 +18,7 @@ import {
MIN_TITLE_LENGTH_FOR_DESCRIPTION,
WOO_AI_PLUGIN_FEATURE_NAME,
} from '../constants';
-import { StopCompletionBtn, WriteItForMeBtn } from '../components';
+import { InfoModal, StopCompletionBtn, WriteItForMeBtn } from '../components';
import { useFeedbackSnackbar, useStoreBranding, useTinyEditor } from '../hooks';
import {
getProductName,
@@ -29,24 +29,11 @@ import {
recordTracksFactory,
} from '../utils';
import { Attribute } from '../utils/types';
+import { translateApiErrors as getApiError } from '../utils/apiErrors';
+import { buildShortDescriptionPrompt } from '../product-short-description/product-short-description-button-container';
const DESCRIPTION_MAX_LENGTH = 300;
-const getApiError = ( error?: string ) => {
- switch ( error ) {
- case 'connection_error':
- return __(
- '❗ We were unable to reach the experimental service. Please check back in shortly.',
- 'woocommerce'
- );
- default:
- return __(
- `❗ We encountered an issue with this experimental feature. Please check back in shortly.`,
- 'woocommerce'
- );
- }
-};
-
const recordDescriptionTracks = recordTracksFactory(
'description_completion',
() => ( {
@@ -161,12 +148,16 @@ export function WriteItForMeButtonContainer() {
);
};
- title?.addEventListener( 'keyup', updateTitleHandler );
- title?.addEventListener( 'change', updateTitleHandler );
+ // We have to keep track of manually typing, pasting, undo/redo, and when description is generated.
+ const eventsToTrack = [ 'keyup', 'change', 'undo', 'redo', 'paste' ];
+ for ( const event of eventsToTrack ) {
+ title?.addEventListener( event, updateTitleHandler );
+ }
return () => {
- title?.removeEventListener( 'keyup', updateTitleHandler );
- title?.removeEventListener( 'change', updateTitleHandler );
+ for ( const event of eventsToTrack ) {
+ title?.removeEventListener( event, updateTitleHandler );
+ }
};
}, [ titleEl ] );
@@ -257,19 +248,11 @@ export function WriteItForMeButtonContainer() {
try {
await requestCompletion( prompt );
- if ( ! shortTinyEditor.getContent() || shortDescriptionGenerated ) {
- await requestShortCompletion(
- [
- 'Please write a high-converting Meta Description for the WooCommerce product description below.',
- 'It should strictly adhere to the following guidelines:',
- 'It should entice someone from a search results page to click on the product link.',
- 'It should be no more than 155 characters so that the entire meta description fits within the space provided by the search engine result without being cut off or truncated.',
- 'It should explain what users will see if they click on the product page link.',
- 'Do not wrap in double quotes or use any other special characters.',
- `It should include the target keyword for the product.`,
- `Here is the full product description: \n${ tinyEditor.getContent() }`,
- ].join( '\n' )
- );
+ const longDescription = tinyEditor.getContent();
+ if ( ! longDescription || shortDescriptionGenerated ) {
+ const shortDescriptionPrompt =
+ buildShortDescriptionPrompt( longDescription );
+ await requestShortCompletion( shortDescriptionPrompt );
setShortDescriptionGenerated( true );
}
} catch ( err ) {
@@ -280,9 +263,31 @@ export function WriteItForMeButtonContainer() {
return completionActive ? (
) : (
-
+ <>
+
+ { shortDescriptionGenerated && (
+
+ ) }
+ >
);
}
diff --git a/plugins/woo-ai/src/product-short-description/index.ts b/plugins/woo-ai/src/product-short-description/index.ts
new file mode 100644
index 00000000000..eeaabcce9c6
--- /dev/null
+++ b/plugins/woo-ai/src/product-short-description/index.ts
@@ -0,0 +1 @@
+export * from './product-short-description-button-container';
diff --git a/plugins/woo-ai/src/product-short-description/product-short-description-button-container.tsx b/plugins/woo-ai/src/product-short-description/product-short-description-button-container.tsx
new file mode 100644
index 00000000000..2f35ce7cb29
--- /dev/null
+++ b/plugins/woo-ai/src/product-short-description/product-short-description-button-container.tsx
@@ -0,0 +1,132 @@
+/**
+ * External dependencies
+ */
+import { __, sprintf } from '@wordpress/i18n';
+import { useState, useEffect } from '@wordpress/element';
+import {
+ __experimentalUseCompletion as useCompletion,
+ UseCompletionError,
+} from '@woocommerce/ai';
+import { useDispatch } from '@wordpress/data';
+
+/**
+ * Internal dependencies
+ */
+import {
+ MIN_DESC_LENGTH_FOR_SHORT_DESC,
+ WOO_AI_PLUGIN_FEATURE_NAME,
+} from '../constants';
+import { StopCompletionBtn, WriteItForMeBtn } from '../components';
+import { useTinyEditor } from '../hooks';
+import { getPostId, recordTracksFactory } from '../utils';
+import { translateApiErrors as getApiError } from '../utils/apiErrors';
+
+const recordShortDescriptionTracks = recordTracksFactory(
+ 'short_description_completion',
+ () => ( {
+ post_id: getPostId(),
+ } )
+);
+
+export function buildShortDescriptionPrompt( longDesc: string ) {
+ return [
+ 'Please write a high-converting Meta Description for the WooCommerce product description below.',
+ 'It should strictly adhere to the following guidelines:',
+ 'It should entice someone from a search results page to click on the product link.',
+ 'It should be no more than 155 characters so that the entire meta description fits within the space provided by the search engine result without being cut off or truncated.',
+ 'It should explain what users will see if they click on the product page link.',
+ 'Do not wrap in double quotes or use any other special characters.',
+ 'It should include the target keyword for the product.',
+ `Here is the full product description: \n${ longDesc }`,
+ ].join( '\n' );
+}
+
+export function WriteShortDescriptionButtonContainer() {
+ const { createWarningNotice } = useDispatch( 'core/notices' );
+
+ const [ fetching, setFetching ] = useState< boolean >( false );
+ const tinyEditor = useTinyEditor();
+ const shortTinyEditor = useTinyEditor( 'excerpt' );
+ const [ postContent, setPostContent ] = useState( '' );
+
+ const handleUseCompletionError = ( err: UseCompletionError ) => {
+ createWarningNotice( getApiError( err.code ?? '' ) );
+ setFetching( false );
+ // eslint-disable-next-line no-console
+ console.error( err );
+ };
+
+ const { requestCompletion, completionActive, stopCompletion } =
+ useCompletion( {
+ feature: WOO_AI_PLUGIN_FEATURE_NAME,
+ onStreamMessage: ( content ) => {
+ shortTinyEditor.setContent( content );
+ },
+ onStreamError: handleUseCompletionError,
+ onCompletionFinished: ( reason, content ) => {
+ recordShortDescriptionTracks( 'stop', {
+ reason,
+ character_count: content.length,
+ } );
+
+ setFetching( false );
+ },
+ } );
+
+ useEffect( () => {
+ recordShortDescriptionTracks( 'view_button' );
+ }, [] );
+
+ // This effect sets up the 'init' listener to update the 'isEditorReady' state
+ useEffect( () => {
+ const editor = tinyEditor.getEditorObject();
+ if ( editor ) {
+ // Set the content on initial page load.
+ setPostContent( tinyEditor.getContent() );
+ // Register a listener for the tinyMCE editor to update the postContent state.
+ const changeHandler = () => {
+ setPostContent( tinyEditor.getContent() );
+ };
+ editor.on( 'input', changeHandler );
+ editor.on( 'change', changeHandler );
+ return () => {
+ editor.off( 'input', changeHandler );
+ editor.off( 'change', changeHandler );
+ };
+ }
+ }, [ tinyEditor ] );
+
+ const writeItForMeEnabled =
+ ! fetching && postContent.length >= MIN_DESC_LENGTH_FOR_SHORT_DESC;
+ const onWriteItForMeClick = async () => {
+ setFetching( true );
+
+ const prompt = buildShortDescriptionPrompt( tinyEditor.getContent() );
+ recordShortDescriptionTracks( 'start', {
+ prompt,
+ } );
+
+ try {
+ await requestCompletion( prompt );
+ } catch ( err ) {
+ handleUseCompletionError( err as UseCompletionError );
+ }
+ };
+
+ return completionActive ? (
+
+ ) : (
+
+ );
+}
diff --git a/plugins/woo-ai/src/product-short-description/product-short-description.scss b/plugins/woo-ai/src/product-short-description/product-short-description.scss
new file mode 100644
index 00000000000..70fe49d9684
--- /dev/null
+++ b/plugins/woo-ai/src/product-short-description/product-short-description.scss
@@ -0,0 +1,4 @@
+// Why do we need this but the other button works without it?
+div#woocommerce-ai-app-product-short-description-gpt-button {
+ display: inline-block;
+}
\ No newline at end of file
diff --git a/plugins/woo-ai/src/utils/apiErrors.ts b/plugins/woo-ai/src/utils/apiErrors.ts
new file mode 100644
index 00000000000..cf352c3e18b
--- /dev/null
+++ b/plugins/woo-ai/src/utils/apiErrors.ts
@@ -0,0 +1,19 @@
+/**
+ * External dependencies
+ */
+import { __ } from '@wordpress/i18n';
+
+export const translateApiErrors = ( error?: string ) => {
+ switch ( error ) {
+ case 'connection_error':
+ return __(
+ '❗ We were unable to reach the experimental service. Please check back in shortly.',
+ 'woocommerce'
+ );
+ default:
+ return __(
+ `❗ We encountered an issue with this experimental feature. Please check back in shortly.`,
+ 'woocommerce'
+ );
+ }
+};
diff --git a/plugins/woo-ai/src/utils/preferencesPersistence.ts b/plugins/woo-ai/src/utils/preferencesPersistence.ts
new file mode 100644
index 00000000000..b4223b36f56
--- /dev/null
+++ b/plugins/woo-ai/src/utils/preferencesPersistence.ts
@@ -0,0 +1,23 @@
+/**
+ * External dependencies
+ */
+import { dispatch } from '@wordpress/data';
+import { store as preferencesStore } from '@wordpress/preferences';
+
+const setPreferencesPersistence = () =>
+ dispatch( preferencesStore ).setPersistenceLayer( {
+ get: async () => {
+ const savedPreferences = window.localStorage.getItem(
+ 'woo-ai-plugin-prefs'
+ );
+ return savedPreferences ? JSON.parse( savedPreferences ) : {};
+ },
+ set: ( preferences: object ) => {
+ window.localStorage.setItem(
+ 'woo-ai-plugin-prefs',
+ JSON.stringify( preferences )
+ );
+ },
+ } );
+
+export default setPreferencesPersistence;
diff --git a/plugins/woo-ai/src/utils/tiny-tools.ts b/plugins/woo-ai/src/utils/tiny-tools.ts
index c183742f464..86d801c42a0 100644
--- a/plugins/woo-ai/src/utils/tiny-tools.ts
+++ b/plugins/woo-ai/src/utils/tiny-tools.ts
@@ -1,7 +1,9 @@
-type TinyContent = {
+export type TinyContent = {
getContent: () => string;
setContent: ( str: string ) => void;
id: string;
+ on: ( event: string, callback: ( event: Event ) => void ) => void;
+ off: ( event: string, callback: ( event: Event ) => void ) => void;
};
declare const tinymce: {
@@ -9,7 +11,7 @@ declare const tinymce: {
editors: TinyContent[];
};
-const getTinyContentObject = ( editorId = 'content' ) =>
+export const getTinyContentObject = ( editorId = 'content' ) =>
typeof tinymce === 'object'
? tinymce.editors.find(
( editor: { id: string } ) => editor.id === editorId
@@ -38,5 +40,5 @@ export const setTinyContent = ( str: string, editorId?: string ) => {
};
export const getTinyContent = ( editorId?: string ) => {
- return getTinyContentObject( editorId )?.getContent();
+ return getTinyContentObject( editorId )?.getContent() ?? '';
};
diff --git a/plugins/woo-ai/webpack.config.js b/plugins/woo-ai/webpack.config.js
index 9ce86d2e18e..3bdf5e0eb8a 100644
--- a/plugins/woo-ai/webpack.config.js
+++ b/plugins/woo-ai/webpack.config.js
@@ -23,6 +23,11 @@ module.exports = {
},
resolve: {
extensions: [ '.js', '.jsx', '.tsx', '.ts' ],
+ fallback: {
+ stream: false,
+ path: false,
+ fs: false,
+ },
},
plugins: [
...defaultConfig.plugins.filter(
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 63a91eaaef2..ca0c10121c2 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -2460,6 +2460,9 @@ importers:
plugins/woo-ai:
dependencies:
+ '@automattic/tour-kit':
+ specifier: ^1.1.1
+ version: 1.1.1(@babel/core@7.21.3)(@types/react@17.0.50)(@wordpress/data@6.6.1)(react-dom@17.0.2)(react-with-direction@1.4.0)(react@17.0.2)(reakit-utils@0.15.2)(redux@4.2.0)
'@emotion/react':
specifier: ^11.10.4
version: 11.10.5(@babel/core@7.21.3)(@types/react@17.0.50)(react@17.0.2)
@@ -2487,9 +2490,6 @@ importers:
'@wordpress/compose':
specifier: wp-6.0
version: 5.4.1(react@17.0.2)
- '@wordpress/data':
- specifier: wp-6.0
- version: 6.6.1(react@17.0.2)
'@wordpress/element':
specifier: wp-6.0
version: 4.4.1
@@ -2505,6 +2505,9 @@ importers:
'@wordpress/plugins':
specifier: wp-6.0
version: 4.4.3(react@17.0.2)
+ '@wordpress/preferences':
+ specifier: wp-6.0
+ version: 1.2.5(@babel/core@7.21.3)(@types/react@17.0.50)(react-dom@17.0.2)(react-with-direction@1.4.0)(react@17.0.2)
debug:
specifier: ^4.3.3
version: 4.3.3
@@ -2521,6 +2524,9 @@ importers:
specifier: ^3.39.3
version: 3.39.3(react-dom@17.0.2)(react@17.0.2)
devDependencies:
+ '@svgr/webpack':
+ specifier: ^8.1.0
+ version: 8.1.0
'@types/debug':
specifier: ^4.1.7
version: 4.1.7
@@ -2542,6 +2548,9 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../../packages/js/eslint-plugin
+ '@wordpress/data':
+ specifier: wp-6.0
+ version: 6.6.1(react@17.0.2)
'@wordpress/env':
specifier: ^8.2.0
version: 8.2.0
@@ -4040,7 +4049,7 @@ packages:
'@wordpress/url': 3.41.0
fast-json-stable-stringify: 2.1.0
i18n-calypso: 6.0.1(@types/react@17.0.50)(react@17.0.2)
- qs: 6.10.3
+ qs: 6.11.2
react: 17.0.2
redux: 4.2.0
tslib: 2.5.0
@@ -4180,6 +4189,45 @@ packages:
- utf-8-validate
dev: false
+ /@automattic/tour-kit@1.1.1(@babel/core@7.21.3)(@types/react@17.0.50)(@wordpress/data@6.6.1)(react-dom@17.0.2)(react-with-direction@1.4.0)(react@17.0.2)(reakit-utils@0.15.2)(redux@4.2.0):
+ resolution: {integrity: sha512-qC15YGZZW5VUhvl47y9C+aN0q0QIejP9g9pFZ9M3PRRgaZcXx00+ZrL1Ngg0+V9eS5io5OZcji3D8OU6i48t/w==}
+ peerDependencies:
+ '@wordpress/data': ^6.1.5
+ react: ^17.0.2
+ react-dom: ^17.0.2
+ reakit-utils: ^0.15.1
+ redux: ^4.1.2
+ dependencies:
+ '@automattic/components': 2.0.1(@types/react@17.0.50)(@wordpress/data@6.6.1)(react-dom@17.0.2)(react@17.0.2)
+ '@automattic/viewport': 1.1.0
+ '@automattic/viewport-react': 1.0.0(react@17.0.2)
+ '@popperjs/core': 2.11.4
+ '@wordpress/base-styles': 4.25.0
+ '@wordpress/components': 19.12.0(@babel/core@7.21.3)(@types/react@17.0.50)(react-dom@17.0.2)(react-with-direction@1.4.0)(react@17.0.2)
+ '@wordpress/data': 6.6.1(react@17.0.2)
+ '@wordpress/dom': 3.40.0
+ '@wordpress/element': 4.20.0
+ '@wordpress/i18n': 4.40.0
+ '@wordpress/icons': 9.31.0
+ '@wordpress/primitives': 3.38.0
+ '@wordpress/react-i18n': 3.8.0
+ classnames: 2.3.1
+ debug: 4.3.4(supports-color@9.2.2)
+ react: 17.0.2
+ react-dom: 17.0.2(react@17.0.2)
+ react-popper: 2.2.5(@popperjs/core@2.11.4)(react@17.0.2)
+ reakit-utils: 0.15.2(react-dom@17.0.2)(react@17.0.2)
+ redux: 4.2.0
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@types/react'
+ - bufferutil
+ - react-native
+ - react-with-direction
+ - supports-color
+ - utf-8-validate
+ dev: false
+
/@automattic/typography@1.0.0:
resolution: {integrity: sha512-TnT+vPaNUXQYwDsPCPxhNY0d4LnOKvrb0SizUCC5iybo5sfOlX/rYalGDyz6nPQDF0EBaQwMf7qhVsflFR0cBg==}
dev: false
@@ -4280,6 +4328,13 @@ packages:
dependencies:
'@babel/highlight': 7.18.6
+ /@babel/code-frame@7.22.13:
+ resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/highlight': 7.22.13
+ chalk: 2.4.2
+
/@babel/compat-data@7.16.4:
resolution: {integrity: sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==}
engines: {node: '>=6.9.0'}
@@ -4343,20 +4398,20 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@ampproject/remapping': 2.2.0
- '@babel/code-frame': 7.18.6
+ '@babel/code-frame': 7.22.13
'@babel/generator': 7.21.3
'@babel/helper-compilation-targets': 7.20.7(@babel/core@7.21.3)
- '@babel/helper-module-transforms': 7.21.2
+ '@babel/helper-module-transforms': 7.22.15(@babel/core@7.21.3)
'@babel/helpers': 7.21.0
- '@babel/parser': 7.21.3
- '@babel/template': 7.20.7
+ '@babel/parser': 7.22.15
+ '@babel/template': 7.22.15
'@babel/traverse': 7.21.3
- '@babel/types': 7.22.4
+ '@babel/types': 7.22.15
convert-source-map: 1.8.0
debug: 4.3.4(supports-color@9.2.2)
gensync: 1.0.0-beta.2
json5: 2.2.3
- semver: 6.3.0
+ semver: 6.3.1
transitivePeerDependencies:
- supports-color
@@ -4461,6 +4516,12 @@ packages:
dependencies:
'@babel/types': 7.22.4
+ /@babel/helper-annotate-as-pure@7.22.5:
+ resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.15
+
/@babel/helper-builder-binary-assignment-operator-visitor@7.18.9:
resolution: {integrity: sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==}
engines: {node: '>=6.9.0'}
@@ -4676,6 +4737,40 @@ packages:
transitivePeerDependencies:
- supports-color
+ /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.12.9):
+ resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.12.9
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-function-name': 7.22.5
+ '@babel/helper-member-expression-to-functions': 7.22.15
+ '@babel/helper-optimise-call-expression': 7.22.5
+ '@babel/helper-replace-supers': 7.22.9(@babel/core@7.12.9)
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.6
+ semver: 6.3.1
+
+ /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.21.3):
+ resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.21.3
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-function-name': 7.22.5
+ '@babel/helper-member-expression-to-functions': 7.22.15
+ '@babel/helper-optimise-call-expression': 7.22.5
+ '@babel/helper-replace-supers': 7.22.9(@babel/core@7.21.3)
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.6
+ semver: 6.3.1
+
/@babel/helper-create-regexp-features-plugin@7.19.0(@babel/core@7.12.9):
resolution: {integrity: sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==}
engines: {node: '>=6.9.0'}
@@ -4775,6 +4870,10 @@ packages:
resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==}
engines: {node: '>=6.9.0'}
+ /@babel/helper-environment-visitor@7.22.5:
+ resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==}
+ engines: {node: '>=6.9.0'}
+
/@babel/helper-explode-assignable-expression@7.18.6:
resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==}
engines: {node: '>=6.9.0'}
@@ -4795,6 +4894,13 @@ packages:
'@babel/template': 7.20.7
'@babel/types': 7.22.4
+ /@babel/helper-function-name@7.22.5:
+ resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/template': 7.22.15
+ '@babel/types': 7.22.15
+
/@babel/helper-hoist-variables@7.18.6:
resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
engines: {node: '>=6.9.0'}
@@ -4807,6 +4913,12 @@ packages:
dependencies:
'@babel/types': 7.22.4
+ /@babel/helper-member-expression-to-functions@7.22.15:
+ resolution: {integrity: sha512-qLNsZbgrNh0fDQBCPocSL8guki1hcPvltGDv/NxvUoABwFq7GkKSu1nRXeJkVZc+wJvne2E0RKQz+2SQrz6eAA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.15
+
/@babel/helper-module-imports@7.16.0:
resolution: {integrity: sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==}
engines: {node: '>=6.9.0'}
@@ -4832,6 +4944,12 @@ packages:
dependencies:
'@babel/types': 7.22.4
+ /@babel/helper-module-imports@7.22.15:
+ resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.15
+
/@babel/helper-module-transforms@7.17.7:
resolution: {integrity: sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==}
engines: {node: '>=6.9.0'}
@@ -4877,12 +4995,44 @@ packages:
transitivePeerDependencies:
- supports-color
+ /@babel/helper-module-transforms@7.22.15(@babel/core@7.12.9):
+ resolution: {integrity: sha512-l1UiX4UyHSFsYt17iQ3Se5pQQZZHa22zyIXURmvkmLCD4t/aU+dvNWHatKac/D9Vm9UES7nvIqHs4jZqKviUmQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.12.9
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-module-imports': 7.22.15
+ '@babel/helper-simple-access': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.6
+ '@babel/helper-validator-identifier': 7.22.15
+
+ /@babel/helper-module-transforms@7.22.15(@babel/core@7.21.3):
+ resolution: {integrity: sha512-l1UiX4UyHSFsYt17iQ3Se5pQQZZHa22zyIXURmvkmLCD4t/aU+dvNWHatKac/D9Vm9UES7nvIqHs4jZqKviUmQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.21.3
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-module-imports': 7.22.15
+ '@babel/helper-simple-access': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.6
+ '@babel/helper-validator-identifier': 7.22.15
+
/@babel/helper-optimise-call-expression@7.18.6:
resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.22.4
+ /@babel/helper-optimise-call-expression@7.22.5:
+ resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.15
+
/@babel/helper-plugin-utils@7.10.4:
resolution: {integrity: sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==}
dev: true
@@ -4903,6 +5053,10 @@ packages:
resolution: {integrity: sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==}
engines: {node: '>=6.9.0'}
+ /@babel/helper-plugin-utils@7.22.5:
+ resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==}
+ engines: {node: '>=6.9.0'}
+
/@babel/helper-remap-async-to-generator@7.16.4:
resolution: {integrity: sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA==}
engines: {node: '>=6.9.0'}
@@ -4992,6 +5146,28 @@ packages:
transitivePeerDependencies:
- supports-color
+ /@babel/helper-replace-supers@7.22.9(@babel/core@7.12.9):
+ resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.12.9
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-member-expression-to-functions': 7.22.15
+ '@babel/helper-optimise-call-expression': 7.22.5
+
+ /@babel/helper-replace-supers@7.22.9(@babel/core@7.21.3):
+ resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.21.3
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-member-expression-to-functions': 7.22.15
+ '@babel/helper-optimise-call-expression': 7.22.5
+
/@babel/helper-simple-access@7.18.6:
resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==}
engines: {node: '>=6.9.0'}
@@ -5004,18 +5180,36 @@ packages:
dependencies:
'@babel/types': 7.22.4
+ /@babel/helper-simple-access@7.22.5:
+ resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.15
+
/@babel/helper-skip-transparent-expression-wrappers@7.18.9:
resolution: {integrity: sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.22.4
+ /@babel/helper-skip-transparent-expression-wrappers@7.22.5:
+ resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.15
+
/@babel/helper-split-export-declaration@7.18.6:
resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.22.4
+ /@babel/helper-split-export-declaration@7.22.6:
+ resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.15
+
/@babel/helper-string-parser@7.19.4:
resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==}
engines: {node: '>=6.9.0'}
@@ -5024,10 +5218,18 @@ packages:
resolution: {integrity: sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==}
engines: {node: '>=6.9.0'}
+ /@babel/helper-string-parser@7.22.5:
+ resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==}
+ engines: {node: '>=6.9.0'}
+
/@babel/helper-validator-identifier@7.19.1:
resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==}
engines: {node: '>=6.9.0'}
+ /@babel/helper-validator-identifier@7.22.15:
+ resolution: {integrity: sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==}
+ engines: {node: '>=6.9.0'}
+
/@babel/helper-validator-option@7.14.5:
resolution: {integrity: sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==}
engines: {node: '>=6.9.0'}
@@ -5045,6 +5247,11 @@ packages:
resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==}
engines: {node: '>=6.9.0'}
+ /@babel/helper-validator-option@7.22.15:
+ resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
/@babel/helper-wrap-function@7.19.0:
resolution: {integrity: sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==}
engines: {node: '>=6.9.0'}
@@ -5084,6 +5291,14 @@ packages:
chalk: 2.4.2
js-tokens: 4.0.0
+ /@babel/highlight@7.22.13:
+ resolution: {integrity: sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-validator-identifier': 7.22.15
+ chalk: 2.4.2
+ js-tokens: 4.0.0
+
/@babel/parser@7.17.8:
resolution: {integrity: sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==}
engines: {node: '>=6.0.0'}
@@ -5105,6 +5320,13 @@ packages:
dependencies:
'@babel/types': 7.22.4
+ /@babel/parser@7.22.15:
+ resolution: {integrity: sha512-RWmQ/sklUN9BvGGpCDgSubhHWfAx24XDTDObup4ffvxaYsptOg2P3KG0j+1eWKLxpkX0j0uHxmpq2Z1SP/VhxA==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+ dependencies:
+ '@babel/types': 7.22.15
+
/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.16.7(@babel/core@7.12.9):
resolution: {integrity: sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==}
engines: {node: '>=6.9.0'}
@@ -5992,7 +6214,7 @@ packages:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.12.9
- '@babel/helper-plugin-utils': 7.21.5
+ '@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.12.9)
'@babel/plugin-transform-parameters': 7.21.3(@babel/core@7.12.9)
dev: true
@@ -6795,7 +7017,7 @@ packages:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.12.9
- '@babel/helper-plugin-utils': 7.21.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
/@babel/plugin-syntax-jsx@7.16.0(@babel/core@7.12.9):
@@ -6855,6 +7077,24 @@ packages:
'@babel/core': 7.21.3
'@babel/helper-plugin-utils': 7.21.5
+ /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.12.9):
+ resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.12.9
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.21.3):
+ resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.21.3
+ '@babel/helper-plugin-utils': 7.22.5
+
/@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.12.9):
resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
peerDependencies:
@@ -7081,15 +7321,6 @@ packages:
'@babel/core': 7.21.3
'@babel/helper-plugin-utils': 7.21.5
- /@babel/plugin-syntax-typescript@7.18.6(@babel/core@7.12.9):
- resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.12.9
- '@babel/helper-plugin-utils': 7.21.5
-
/@babel/plugin-syntax-typescript@7.18.6(@babel/core@7.21.3):
resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==}
engines: {node: '>=6.9.0'}
@@ -7097,7 +7328,25 @@ packages:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.21.3
- '@babel/helper-plugin-utils': 7.21.5
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.12.9):
+ resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.12.9
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.21.3):
+ resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.21.3
+ '@babel/helper-plugin-utils': 7.22.5
/@babel/plugin-transform-arrow-functions@7.16.0(@babel/core@7.12.9):
resolution: {integrity: sha512-vIFb5250Rbh7roWARvCLvIJ/PtAU5Lhv7BtZ1u24COwpI9Ypjsh+bZcKk6rlIyalK+r0jOc1XQ8I4ovNxNrWrA==}
@@ -8352,6 +8601,7 @@ packages:
'@babel/helper-simple-access': 7.20.2
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/plugin-transform-modules-commonjs@7.21.2(@babel/core@7.17.8):
resolution: {integrity: sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==}
@@ -8380,6 +8630,28 @@ packages:
transitivePeerDependencies:
- supports-color
+ /@babel/plugin-transform-modules-commonjs@7.22.15(@babel/core@7.12.9):
+ resolution: {integrity: sha512-jWL4eh90w0HQOTKP2MoXXUpVxilxsB2Vl4ji69rSjS3EcZ/v4sBmn+A3NpepuJzBhOaEBbR7udonlHHn5DWidg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.12.9
+ '@babel/helper-module-transforms': 7.22.15(@babel/core@7.12.9)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-simple-access': 7.22.5
+
+ /@babel/plugin-transform-modules-commonjs@7.22.15(@babel/core@7.21.3):
+ resolution: {integrity: sha512-jWL4eh90w0HQOTKP2MoXXUpVxilxsB2Vl4ji69rSjS3EcZ/v4sBmn+A3NpepuJzBhOaEBbR7udonlHHn5DWidg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.21.3
+ '@babel/helper-module-transforms': 7.22.15(@babel/core@7.21.3)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-simple-access': 7.22.5
+
/@babel/plugin-transform-modules-systemjs@7.16.0(@babel/core@7.12.9):
resolution: {integrity: sha512-yuGBaHS3lF1m/5R+6fjIke64ii5luRUg97N2wr+z1sF0V+sNSXPxXDdEEL/iYLszsN5VKxVB1IPfEqhzVpiqvg==}
engines: {node: '>=6.9.0'}
@@ -8936,16 +9208,6 @@ packages:
'@babel/core': 7.21.3
'@babel/helper-plugin-utils': 7.21.5
- /@babel/plugin-transform-react-constant-elements@7.17.6(@babel/core@7.21.3):
- resolution: {integrity: sha512-OBv9VkyyKtsHZiHLoSfCn+h6yU7YKX8nrs32xUmOa1SRSk+t03FosB6fBZ0Yz4BpD1WV7l73Nsad+2Tz7APpqw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.21.3
- '@babel/helper-plugin-utils': 7.21.5
- dev: true
-
/@babel/plugin-transform-react-constant-elements@7.22.3(@babel/core@7.21.3):
resolution: {integrity: sha512-b5J6muxQYp4H7loAQv/c7GO5cPuRA6H5hx4gO+/Hn+Cu9MRQU0PNiUoWq1L//8sq6kFSNxGXFb2XTaUfa9y+Pg==}
engines: {node: '>=6.9.0'}
@@ -9011,7 +9273,7 @@ packages:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.12.9
- '@babel/helper-plugin-utils': 7.21.5
+ '@babel/helper-plugin-utils': 7.22.5
/@babel/plugin-transform-react-jsx-self@7.18.6(@babel/core@7.21.3):
resolution: {integrity: sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==}
@@ -9020,7 +9282,7 @@ packages:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.21.3
- '@babel/helper-plugin-utils': 7.21.5
+ '@babel/helper-plugin-utils': 7.22.5
/@babel/plugin-transform-react-jsx-source@7.18.6(@babel/core@7.12.9):
resolution: {integrity: sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==}
@@ -9029,7 +9291,7 @@ packages:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.12.9
- '@babel/helper-plugin-utils': 7.21.5
+ '@babel/helper-plugin-utils': 7.22.5
/@babel/plugin-transform-react-jsx-source@7.18.6(@babel/core@7.21.3):
resolution: {integrity: sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==}
@@ -9038,7 +9300,7 @@ packages:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.21.3
- '@babel/helper-plugin-utils': 7.21.5
+ '@babel/helper-plugin-utils': 7.22.5
/@babel/plugin-transform-react-jsx@7.16.0(@babel/core@7.12.9):
resolution: {integrity: sha512-rqDgIbukZ44pqq7NIRPGPGNklshPkvlmvqjdx3OZcGPk4zGIenYkxDTvl3LsSL8gqcc3ZzGmXPE6hR/u/voNOw==}
@@ -9338,11 +9600,11 @@ packages:
dependencies:
'@babel/core': 7.12.9
'@babel/helper-module-imports': 7.21.4
- '@babel/helper-plugin-utils': 7.21.5
+ '@babel/helper-plugin-utils': 7.22.5
babel-plugin-polyfill-corejs2: 0.3.3(@babel/core@7.12.9)
babel-plugin-polyfill-corejs3: 0.6.0(@babel/core@7.12.9)
babel-plugin-polyfill-regenerator: 0.4.1(@babel/core@7.12.9)
- semver: 6.3.0
+ semver: 6.3.1
transitivePeerDependencies:
- supports-color
@@ -9354,11 +9616,11 @@ packages:
dependencies:
'@babel/core': 7.21.3
'@babel/helper-module-imports': 7.21.4
- '@babel/helper-plugin-utils': 7.21.5
+ '@babel/helper-plugin-utils': 7.22.5
babel-plugin-polyfill-corejs2: 0.3.3(@babel/core@7.21.3)
babel-plugin-polyfill-corejs3: 0.6.0(@babel/core@7.21.3)
babel-plugin-polyfill-regenerator: 0.4.1(@babel/core@7.21.3)
- semver: 6.3.0
+ semver: 6.3.1
transitivePeerDependencies:
- supports-color
@@ -9732,19 +9994,6 @@ packages:
transitivePeerDependencies:
- supports-color
- /@babel/plugin-transform-typescript@7.19.3(@babel/core@7.12.9):
- resolution: {integrity: sha512-z6fnuK9ve9u/0X0rRvI9MY0xg+DOUaABDYOe+/SQTxtlptaBB/V9JIUxJn6xp3lMBeb9qe8xSFmHU35oZDXD+w==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.12.9
- '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.12.9)
- '@babel/helper-plugin-utils': 7.21.5
- '@babel/plugin-syntax-typescript': 7.18.6(@babel/core@7.12.9)
- transitivePeerDependencies:
- - supports-color
-
/@babel/plugin-transform-typescript@7.19.3(@babel/core@7.21.3):
resolution: {integrity: sha512-z6fnuK9ve9u/0X0rRvI9MY0xg+DOUaABDYOe+/SQTxtlptaBB/V9JIUxJn6xp3lMBeb9qe8xSFmHU35oZDXD+w==}
engines: {node: '>=6.9.0'}
@@ -9758,6 +10007,30 @@ packages:
transitivePeerDependencies:
- supports-color
+ /@babel/plugin-transform-typescript@7.22.15(@babel/core@7.12.9):
+ resolution: {integrity: sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.12.9
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.12.9)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.12.9)
+
+ /@babel/plugin-transform-typescript@7.22.15(@babel/core@7.21.3):
+ resolution: {integrity: sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.21.3
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.21.3)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.21.3)
+
/@babel/plugin-transform-unicode-escapes@7.16.0(@babel/core@7.12.9):
resolution: {integrity: sha512-VFi4dhgJM7Bpk8lRc5CMaRGlKZ29W9C3geZjt9beuzSUrlJxsNwX7ReLwaL6WEvsOf2EQkyIJEPtF8EXjB/g2A==}
engines: {node: '>=6.9.0'}
@@ -10625,6 +10898,20 @@ packages:
transitivePeerDependencies:
- supports-color
+ /@babel/preset-typescript@7.22.15(@babel/core@7.21.3):
+ resolution: {integrity: sha512-HblhNmh6yM+cU4VwbBRpxFhxsTdfS1zsvH9W+gEjD0ARV9+8B4sNfpI6GuhePti84nuvhiwKS539jKPFHskA9A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.21.3
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-validator-option': 7.22.15
+ '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.21.3)
+ '@babel/plugin-transform-modules-commonjs': 7.22.15(@babel/core@7.21.3)
+ '@babel/plugin-transform-typescript': 7.22.15(@babel/core@7.21.3)
+ dev: true
+
/@babel/register@7.12.1(@babel/core@7.12.9):
resolution: {integrity: sha512-XWcmseMIncOjoydKZnWvWi0/5CUCD+ZYKhRwgYlWOrA8fGZ/FjuLRpqtIhLOVD/fvR1b9DQHtZPn68VvhpYf+Q==}
peerDependencies:
@@ -10721,6 +11008,14 @@ packages:
'@babel/parser': 7.21.3
'@babel/types': 7.22.4
+ /@babel/template@7.22.15:
+ resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.22.13
+ '@babel/parser': 7.22.15
+ '@babel/types': 7.22.15
+
/@babel/traverse@7.17.3:
resolution: {integrity: sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==}
engines: {node: '>=6.9.0'}
@@ -10759,14 +11054,14 @@ packages:
resolution: {integrity: sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/code-frame': 7.18.6
+ '@babel/code-frame': 7.22.13
'@babel/generator': 7.21.3
'@babel/helper-environment-visitor': 7.18.9
'@babel/helper-function-name': 7.21.0
'@babel/helper-hoist-variables': 7.18.6
'@babel/helper-split-export-declaration': 7.18.6
- '@babel/parser': 7.21.3
- '@babel/types': 7.22.4
+ '@babel/parser': 7.22.15
+ '@babel/types': 7.22.15
debug: 4.3.4(supports-color@9.2.2)
globals: 11.12.0
transitivePeerDependencies:
@@ -10802,6 +11097,14 @@ packages:
'@babel/helper-validator-identifier': 7.19.1
to-fast-properties: 2.0.0
+ /@babel/types@7.22.15:
+ resolution: {integrity: sha512-X+NLXr0N8XXmN5ZsaQdm9U2SSC3UbIYq/doL++sueHOTisgZHoKaQtZxGuV2cUPQHMfjKEfg/g6oy7Hm6SKFtA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-string-parser': 7.22.5
+ '@babel/helper-validator-identifier': 7.22.15
+ to-fast-properties: 2.0.0
+
/@babel/types@7.22.4:
resolution: {integrity: sha512-Tx9x3UBHTTsMSW85WB2kphxYQVvrZ/t1FxD88IpSgIjiUJlCm9z+xWIDwyo1vffTwSqteqyznB8ZE9vYYk16zA==}
engines: {node: '>=6.9.0'}
@@ -11324,7 +11627,7 @@ packages:
'@floating-ui/dom': 0.4.5
react: 17.0.2
react-dom: 17.0.2(react@17.0.2)
- use-isomorphic-layout-effect: 1.1.1(@types/react@17.0.50)(react@17.0.2)
+ use-isomorphic-layout-effect: 1.1.2(@types/react@17.0.50)(react@17.0.2)
transitivePeerDependencies:
- '@types/react'
dev: false
@@ -14624,7 +14927,7 @@ packages:
node-stream-zip: 1.15.0
ora: 5.4.1
prompts: 2.4.2
- semver: 6.3.0
+ semver: 6.3.1
strip-ansi: 5.2.0
sudo-prompt: 9.2.1
wcwidth: 1.0.1
@@ -14714,7 +15017,7 @@ packages:
node-fetch: 2.6.7
open: 6.4.0
ora: 5.4.1
- semver: 6.3.0
+ semver: 6.3.1
shell-quote: 1.7.3
transitivePeerDependencies:
- encoding
@@ -14745,7 +15048,7 @@ packages:
fs-extra: 8.1.0
graceful-fs: 4.2.9
prompts: 2.4.2
- semver: 6.3.0
+ semver: 6.3.1
transitivePeerDependencies:
- '@babel/core'
- bufferutil
@@ -16114,11 +16417,11 @@ packages:
dependencies:
'@babel/core': 7.21.3
'@babel/generator': 7.21.3
- '@babel/parser': 7.21.3
+ '@babel/parser': 7.22.15
'@babel/plugin-transform-react-jsx': 7.22.3(@babel/core@7.21.3)
'@babel/preset-env': 7.20.2(@babel/core@7.21.3)
'@babel/traverse': 7.21.3
- '@babel/types': 7.22.4
+ '@babel/types': 7.22.15
'@storybook/csf': 0.0.2--canary.4566f4d.1
'@storybook/mdx1-csf': 0.0.1(@babel/core@7.21.3)
core-js: 3.29.1
@@ -16319,9 +16622,9 @@ packages:
resolution: {integrity: sha512-4biZIWWzoWlCarMZmTpqcJNgo/RBesYZwGFbQeXiGYsswuvfWARZnW9RE9aUEMZ4XPn7B1N3EKkWcdcWe/K2tg==}
dependencies:
'@babel/generator': 7.21.3
- '@babel/parser': 7.21.3
+ '@babel/parser': 7.22.15
'@babel/preset-env': 7.20.2(@babel/core@7.17.8)
- '@babel/types': 7.22.4
+ '@babel/types': 7.22.15
'@mdx-js/mdx': 1.6.22
'@types/lodash': 4.14.184
js-string-escape: 1.0.1
@@ -16827,16 +17130,43 @@ packages:
'@babel/core': 7.21.3
dev: true
+ /@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.21.3):
+ resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.21.3
+ dev: true
+
/@svgr/babel-plugin-remove-jsx-attribute@5.4.0:
resolution: {integrity: sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==}
engines: {node: '>=10'}
dev: true
+ /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.21.3):
+ resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.21.3
+ dev: true
+
/@svgr/babel-plugin-remove-jsx-empty-expression@5.0.1:
resolution: {integrity: sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==}
engines: {node: '>=10'}
dev: true
+ /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.21.3):
+ resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.21.3
+ dev: true
+
/@svgr/babel-plugin-replace-jsx-attribute-value@5.0.1:
resolution: {integrity: sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==}
engines: {node: '>=10'}
@@ -16851,6 +17181,15 @@ packages:
'@babel/core': 7.21.3
dev: true
+ /@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.21.3):
+ resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.21.3
+ dev: true
+
/@svgr/babel-plugin-svg-dynamic-title@5.4.0:
resolution: {integrity: sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==}
engines: {node: '>=10'}
@@ -16865,6 +17204,15 @@ packages:
'@babel/core': 7.21.3
dev: true
+ /@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.21.3):
+ resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.21.3
+ dev: true
+
/@svgr/babel-plugin-svg-em-dimensions@5.4.0:
resolution: {integrity: sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==}
engines: {node: '>=10'}
@@ -16879,6 +17227,15 @@ packages:
'@babel/core': 7.21.3
dev: true
+ /@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.21.3):
+ resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.21.3
+ dev: true
+
/@svgr/babel-plugin-transform-react-native-svg@5.4.0:
resolution: {integrity: sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==}
engines: {node: '>=10'}
@@ -16893,6 +17250,15 @@ packages:
'@babel/core': 7.21.3
dev: true
+ /@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.21.3):
+ resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.21.3
+ dev: true
+
/@svgr/babel-plugin-transform-svg-component@5.5.0:
resolution: {integrity: sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==}
engines: {node: '>=10'}
@@ -16907,6 +17273,15 @@ packages:
'@babel/core': 7.21.3
dev: true
+ /@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.21.3):
+ resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.21.3
+ dev: true
+
/@svgr/babel-preset@5.5.0:
resolution: {integrity: sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==}
engines: {node: '>=10'}
@@ -16938,6 +17313,23 @@ packages:
'@svgr/babel-plugin-transform-svg-component': 6.5.1(@babel/core@7.21.3)
dev: true
+ /@svgr/babel-preset@8.1.0(@babel/core@7.21.3):
+ resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.21.3
+ '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.21.3)
+ '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.21.3)
+ '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.21.3)
+ '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.21.3)
+ '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.21.3)
+ '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.21.3)
+ '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.21.3)
+ '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.21.3)
+ dev: true
+
/@svgr/core@5.5.0:
resolution: {integrity: sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==}
engines: {node: '>=10'}
@@ -16962,16 +17354,37 @@ packages:
- supports-color
dev: true
+ /@svgr/core@8.1.0:
+ resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==}
+ engines: {node: '>=14'}
+ dependencies:
+ '@babel/core': 7.21.3
+ '@svgr/babel-preset': 8.1.0(@babel/core@7.21.3)
+ camelcase: 6.2.1
+ cosmiconfig: 8.2.0
+ snake-case: 3.0.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@svgr/hast-util-to-babel-ast@5.5.0:
resolution: {integrity: sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==}
engines: {node: '>=10'}
dependencies:
- '@babel/types': 7.22.4
+ '@babel/types': 7.22.15
dev: true
/@svgr/hast-util-to-babel-ast@6.5.1:
resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==}
engines: {node: '>=10'}
+ dependencies:
+ '@babel/types': 7.22.15
+ entities: 4.5.0
+ dev: true
+
+ /@svgr/hast-util-to-babel-ast@8.0.0:
+ resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==}
+ engines: {node: '>=14'}
dependencies:
'@babel/types': 7.22.4
entities: 4.5.0
@@ -17004,6 +17417,21 @@ packages:
- supports-color
dev: true
+ /@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0):
+ resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@svgr/core': '*'
+ dependencies:
+ '@babel/core': 7.21.3
+ '@svgr/babel-preset': 8.1.0(@babel/core@7.21.3)
+ '@svgr/core': 8.1.0
+ '@svgr/hast-util-to-babel-ast': 8.0.0
+ svg-parser: 2.0.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@svgr/plugin-svgo@5.5.0:
resolution: {integrity: sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==}
engines: {node: '>=10'}
@@ -17025,12 +17453,24 @@ packages:
svgo: 2.8.0
dev: true
+ /@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0):
+ resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@svgr/core': '*'
+ dependencies:
+ '@svgr/core': 8.1.0
+ cosmiconfig: 8.2.0
+ deepmerge: 4.3.1
+ svgo: 3.0.2
+ dev: true
+
/@svgr/webpack@5.5.0:
resolution: {integrity: sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==}
engines: {node: '>=10'}
dependencies:
'@babel/core': 7.21.3
- '@babel/plugin-transform-react-constant-elements': 7.17.6(@babel/core@7.21.3)
+ '@babel/plugin-transform-react-constant-elements': 7.22.3(@babel/core@7.21.3)
'@babel/preset-env': 7.20.2(@babel/core@7.21.3)
'@babel/preset-react': 7.22.3(@babel/core@7.21.3)
'@svgr/core': 5.5.0
@@ -17057,6 +17497,22 @@ packages:
- supports-color
dev: true
+ /@svgr/webpack@8.1.0:
+ resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==}
+ engines: {node: '>=14'}
+ dependencies:
+ '@babel/core': 7.21.3
+ '@babel/plugin-transform-react-constant-elements': 7.22.3(@babel/core@7.21.3)
+ '@babel/preset-env': 7.20.2(@babel/core@7.21.3)
+ '@babel/preset-react': 7.22.3(@babel/core@7.21.3)
+ '@babel/preset-typescript': 7.22.15(@babel/core@7.21.3)
+ '@svgr/core': 8.1.0
+ '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0)
+ '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0)
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@szmarczak/http-timer@4.0.6:
resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==}
engines: {node: '>=10'}
@@ -17252,7 +17708,7 @@ packages:
/@types/babel__traverse@7.14.2:
resolution: {integrity: sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==}
dependencies:
- '@babel/types': 7.22.4
+ '@babel/types': 7.22.15
/@types/body-parser@1.19.2:
resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==}
@@ -20848,7 +21304,7 @@ packages:
'@wordpress/keycodes': 3.6.1
'@wordpress/media-utils': 3.4.1
'@wordpress/notices': 3.6.1(react@17.0.2)
- '@wordpress/preferences': 1.3.0(@babel/core@7.21.3)(@types/react@17.0.50)(react-dom@17.0.2)(react-with-direction@1.4.0)(react@17.0.2)
+ '@wordpress/preferences': 1.2.5(@babel/core@7.21.3)(@types/react@17.0.50)(react-dom@17.0.2)(react-with-direction@1.4.0)(react@17.0.2)
'@wordpress/reusable-blocks': 3.17.0(@babel/core@7.21.3)(@types/react@17.0.50)(react-dom@17.0.2)(react@17.0.2)
'@wordpress/rich-text': 5.4.2(react@17.0.2)
'@wordpress/server-side-render': 3.17.0(@babel/core@7.21.3)(@types/react@17.0.50)(react-dom@17.0.2)(react@17.0.2)
@@ -21378,7 +21834,7 @@ packages:
'@wordpress/i18n': 4.6.1
'@wordpress/icons': 8.2.3
'@wordpress/plugins': 4.4.3(react@17.0.2)
- '@wordpress/preferences': 1.3.0(@babel/core@7.21.3)(@types/react@17.0.50)(react-dom@17.0.2)(react-with-direction@1.4.0)(react@17.0.2)
+ '@wordpress/preferences': 1.2.5(@babel/core@7.21.3)(@types/react@17.0.50)(react-dom@17.0.2)(react-with-direction@1.4.0)(react@17.0.2)
'@wordpress/viewport': 4.4.1(react@17.0.2)
classnames: 2.3.1
lodash: 4.17.21
@@ -21875,19 +22331,19 @@ packages:
postcss: 7.0.39
dev: true
- /@wordpress/preferences@1.3.0(@babel/core@7.21.3)(@types/react@17.0.50)(react-dom@17.0.2)(react-with-direction@1.4.0)(react@17.0.2):
- resolution: {integrity: sha512-2ACfz6LkQY2oAcEgTVpkfpasywo/nSmN5jbpT2gNoF/W/RCFBso+VDyuLsfpJ1INbbq+6pPKLccLBWYAvwuFdA==}
+ /@wordpress/preferences@1.2.5(@babel/core@7.21.3)(@types/react@17.0.50)(react-dom@17.0.2)(react-with-direction@1.4.0)(react@17.0.2):
+ resolution: {integrity: sha512-/AyotisluO81NI1weWBDSsU2Nfc+BzGB/Hrzp6u7cQiWH/HZjouAdjG7RvKMlicCu5R/v6FTCQcjmimRfaYhEA==}
engines: {node: '>=12'}
peerDependencies:
react: ^17.0.0
react-dom: ^17.0.0
dependencies:
'@babel/runtime': 7.21.0
- '@wordpress/a11y': 3.40.0
- '@wordpress/components': 19.12.0(@babel/core@7.21.3)(@types/react@17.0.50)(react-dom@17.0.2)(react-with-direction@1.4.0)(react@17.0.2)
- '@wordpress/data': 6.15.0(react@17.0.2)
- '@wordpress/i18n': 4.40.0
- '@wordpress/icons': 8.4.0
+ '@wordpress/a11y': 3.6.1
+ '@wordpress/components': 19.8.5(@babel/core@7.21.3)(@types/react@17.0.50)(react-dom@17.0.2)(react-with-direction@1.4.0)(react@17.0.2)
+ '@wordpress/data': 6.6.1(react@17.0.2)
+ '@wordpress/i18n': 4.6.1
+ '@wordpress/icons': 8.2.3
classnames: 2.3.1
react: 17.0.2
react-dom: 17.0.2(react@17.0.2)
@@ -23737,10 +24193,10 @@ packages:
peerDependencies:
eslint: '>= 4.12.1'
dependencies:
- '@babel/code-frame': 7.18.6
- '@babel/parser': 7.21.3
+ '@babel/code-frame': 7.22.13
+ '@babel/parser': 7.22.15
'@babel/traverse': 7.21.3
- '@babel/types': 7.22.4
+ '@babel/types': 7.22.15
eslint: 7.32.0
eslint-visitor-keys: 1.3.0
resolve: 1.20.0
@@ -24119,7 +24575,7 @@ packages:
resolution: {integrity: sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==}
engines: {node: '>=6'}
dependencies:
- '@babel/helper-plugin-utils': 7.21.5
+ '@babel/helper-plugin-utils': 7.22.5
find-up: 3.0.0
istanbul-lib-instrument: 3.3.0
test-exclude: 5.2.3
@@ -24593,7 +25049,7 @@ packages:
'@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.12.9)
'@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.12.9)
'@babel/plugin-syntax-flow': 7.16.7(@babel/core@7.12.9)
- '@babel/plugin-syntax-jsx': 7.21.4(@babel/core@7.12.9)
+ '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.12.9)
'@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.12.9)
'@babel/plugin-transform-arrow-functions': 7.18.6(@babel/core@7.12.9)
'@babel/plugin-transform-block-scoped-functions': 7.18.6(@babel/core@7.12.9)
@@ -24606,7 +25062,7 @@ packages:
'@babel/plugin-transform-function-name': 7.18.9(@babel/core@7.12.9)
'@babel/plugin-transform-literals': 7.18.9(@babel/core@7.12.9)
'@babel/plugin-transform-member-expression-literals': 7.18.6(@babel/core@7.12.9)
- '@babel/plugin-transform-modules-commonjs': 7.21.2(@babel/core@7.12.9)
+ '@babel/plugin-transform-modules-commonjs': 7.22.15(@babel/core@7.12.9)
'@babel/plugin-transform-object-super': 7.18.6(@babel/core@7.12.9)
'@babel/plugin-transform-parameters': 7.21.3(@babel/core@7.12.9)
'@babel/plugin-transform-property-literals': 7.18.6(@babel/core@7.12.9)
@@ -24629,7 +25085,7 @@ packages:
'@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.21.3)
'@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.21.3)
'@babel/plugin-syntax-flow': 7.16.7(@babel/core@7.21.3)
- '@babel/plugin-syntax-jsx': 7.21.4(@babel/core@7.21.3)
+ '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.21.3)
'@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.21.3)
'@babel/plugin-transform-arrow-functions': 7.18.6(@babel/core@7.21.3)
'@babel/plugin-transform-block-scoped-functions': 7.18.6(@babel/core@7.21.3)
@@ -24642,7 +25098,7 @@ packages:
'@babel/plugin-transform-function-name': 7.18.9(@babel/core@7.21.3)
'@babel/plugin-transform-literals': 7.18.9(@babel/core@7.21.3)
'@babel/plugin-transform-member-expression-literals': 7.18.6(@babel/core@7.21.3)
- '@babel/plugin-transform-modules-commonjs': 7.21.2(@babel/core@7.21.3)
+ '@babel/plugin-transform-modules-commonjs': 7.22.15(@babel/core@7.21.3)
'@babel/plugin-transform-object-super': 7.18.6(@babel/core@7.21.3)
'@babel/plugin-transform-parameters': 7.21.3(@babel/core@7.21.3)
'@babel/plugin-transform-property-literals': 7.18.6(@babel/core@7.21.3)
@@ -26914,7 +27370,7 @@ packages:
postcss-modules-values: 3.0.0
postcss-value-parser: 4.2.0
schema-utils: 2.7.1
- semver: 6.3.0
+ semver: 6.3.1
webpack: 4.46.0(webpack-cli@3.3.12)
dev: true
@@ -26957,7 +27413,7 @@ packages:
postcss-modules-values: 3.0.0
postcss-value-parser: 4.2.0
schema-utils: 2.7.1
- semver: 6.3.0
+ semver: 6.3.1
webpack: 5.76.3(webpack-cli@3.3.12)
dev: true
@@ -27034,6 +27490,16 @@ packages:
domutils: 2.8.0
nth-check: 2.0.1
+ /css-select@5.1.0:
+ resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
+ dependencies:
+ boolbase: 1.0.0
+ css-what: 6.1.0
+ domhandler: 5.0.3
+ domutils: 3.1.0
+ nth-check: 2.0.1
+ dev: true
+
/css-tree@1.0.0-alpha.37:
resolution: {integrity: sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==}
engines: {node: '>=8.0.0'}
@@ -27048,6 +27514,22 @@ packages:
mdn-data: 2.0.14
source-map: 0.6.1
+ /css-tree@2.2.1:
+ resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
+ engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
+ dependencies:
+ mdn-data: 2.0.28
+ source-map-js: 1.0.2
+ dev: true
+
+ /css-tree@2.3.1:
+ resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
+ engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
+ dependencies:
+ mdn-data: 2.0.30
+ source-map-js: 1.0.2
+ dev: true
+
/css-what@3.4.2:
resolution: {integrity: sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==}
engines: {node: '>= 6'}
@@ -27056,6 +27538,11 @@ packages:
resolution: {integrity: sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==}
engines: {node: '>= 6'}
+ /css-what@6.1.0:
+ resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
+ engines: {node: '>= 6'}
+ dev: true
+
/css.escape@1.5.1:
resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==}
@@ -27198,6 +27685,13 @@ packages:
dependencies:
css-tree: 1.1.3
+ /csso@5.0.5:
+ resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
+ engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
+ dependencies:
+ css-tree: 2.2.1
+ dev: true
+
/cssom@0.3.8:
resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
@@ -27545,6 +28039,11 @@ packages:
resolution: {integrity: sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==}
engines: {node: '>=0.10.0'}
+ /deepmerge@4.3.1:
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
/deepsignal@1.3.6(@preact/signals@1.2.1)(preact@10.17.1):
resolution: {integrity: sha512-yjd+vtiznL6YaMptOsKnEKkPr60OEApa+LRe+Qe6Ile/RfCOrELKk/YM3qVpXFZiyOI3Ng67GDEyjAlqVc697g==}
peerDependencies:
@@ -27902,6 +28401,14 @@ packages:
domhandler: 4.2.2
entities: 2.2.0
+ /dom-serializer@2.0.0:
+ resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ entities: 4.5.0
+ dev: true
+
/dom-walk@0.1.2:
resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==}
dev: true
@@ -27917,6 +28424,10 @@ packages:
/domelementtype@2.2.0:
resolution: {integrity: sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==}
+ /domelementtype@2.3.0:
+ resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
+ dev: true
+
/domexception@1.0.1:
resolution: {integrity: sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==}
dependencies:
@@ -27947,6 +28458,13 @@ packages:
dependencies:
domelementtype: 2.2.0
+ /domhandler@5.0.3:
+ resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
+ engines: {node: '>= 4'}
+ dependencies:
+ domelementtype: 2.3.0
+ dev: true
+
/dompurify@2.3.6:
resolution: {integrity: sha512-OFP2u/3T1R5CEgWCEONuJ1a5+MFKnOYpkywpUSxv/dj1LeBT1erK+JwM7zK0ROy2BRhqVCf0LRw/kHqKuMkVGg==}
dev: false
@@ -27964,6 +28482,14 @@ packages:
domelementtype: 2.2.0
domhandler: 4.2.2
+ /domutils@3.1.0:
+ resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
+ dependencies:
+ dom-serializer: 2.0.0
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ dev: true
+
/dot-case@1.1.2:
resolution: {integrity: sha512-NzEIt12UjECXi6JZ/R/nBey6EE1qCN0yUTEFaPIaKW0AcOEwlKqujtcJVbtSfLNnj3CDoXLQyli79vAaqohyvw==}
dependencies:
@@ -28821,7 +29347,7 @@ packages:
lodash: 4.17.21
object.entries-ponyfill: 1.0.1
regextras: 0.7.1
- semver: 6.3.0
+ semver: 6.3.1
spdx-expression-parse: 3.0.1
transitivePeerDependencies:
- supports-color
@@ -29039,7 +29565,7 @@ packages:
object.values: 1.1.5
prop-types: 15.8.1
resolve: 2.0.0-next.3
- semver: 6.3.0
+ semver: 6.3.1
string.prototype.matchall: 4.0.6
dev: true
@@ -29216,7 +29742,7 @@ packages:
engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1}
hasBin: true
dependencies:
- '@babel/code-frame': 7.18.6
+ '@babel/code-frame': 7.22.13
ajv: 6.12.6
chalk: 2.4.2
cross-spawn: 6.0.5
@@ -29247,7 +29773,7 @@ packages:
optionator: 0.8.3
progress: 2.0.3
regexpp: 2.0.1
- semver: 6.3.0
+ semver: 6.3.1
strip-ansi: 5.2.0
strip-json-comments: 3.1.1
table: 5.4.6
@@ -29424,7 +29950,7 @@ packages:
engines: {node: '>=8.3.0'}
dependencies:
'@babel/traverse': 7.21.3
- '@babel/types': 7.22.4
+ '@babel/types': 7.22.15
c8: 7.11.0
transitivePeerDependencies:
- supports-color
@@ -30359,7 +30885,7 @@ packages:
vue-template-compiler:
optional: true
dependencies:
- '@babel/code-frame': 7.18.6
+ '@babel/code-frame': 7.22.13
chalk: 2.4.2
eslint: 8.32.0
micromatch: 3.1.10(supports-color@6.1.0)
@@ -33227,12 +33753,12 @@ packages:
engines: {node: '>=6'}
dependencies:
'@babel/generator': 7.21.3
- '@babel/parser': 7.21.3
- '@babel/template': 7.20.7
+ '@babel/parser': 7.22.15
+ '@babel/template': 7.22.15
'@babel/traverse': 7.21.3
- '@babel/types': 7.22.4
+ '@babel/types': 7.22.15
istanbul-lib-coverage: 2.0.5
- semver: 6.3.0
+ semver: 6.3.1
transitivePeerDependencies:
- supports-color
dev: false
@@ -33244,7 +33770,7 @@ packages:
'@babel/core': 7.21.3
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.0
- semver: 6.3.0
+ semver: 6.3.1
transitivePeerDependencies:
- supports-color
dev: true
@@ -34217,7 +34743,7 @@ packages:
'@jest/types': 25.5.0
jest-mock: 25.5.0
jest-util: 25.5.0
- semver: 6.3.0
+ semver: 6.3.1
dev: true
/jest-environment-node@26.6.2:
@@ -34646,7 +35172,7 @@ packages:
resolution: {integrity: sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==}
engines: {node: '>= 6'}
dependencies:
- '@babel/code-frame': 7.18.6
+ '@babel/code-frame': 7.22.13
'@jest/test-result': 24.9.0
'@jest/types': 24.9.0
'@types/stack-utils': 1.0.1
@@ -35468,7 +35994,7 @@ packages:
resolution: {integrity: sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==}
engines: {node: '>= 6'}
dependencies:
- '@babel/types': 7.22.4
+ '@babel/types': 7.22.15
'@jest/types': 24.9.0
chalk: 2.4.2
expect: 24.9.0
@@ -35480,7 +36006,7 @@ packages:
mkdirp: 0.5.5
natural-compare: 1.4.0
pretty-format: 24.9.0
- semver: 6.3.0
+ semver: 6.3.1
transitivePeerDependencies:
- supports-color
dev: false
@@ -37421,6 +37947,14 @@ packages:
/mdn-data@2.0.14:
resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
+ /mdn-data@2.0.28:
+ resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
+ dev: true
+
+ /mdn-data@2.0.30:
+ resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
+ dev: true
+
/mdn-data@2.0.4:
resolution: {integrity: sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==}
@@ -37734,7 +38268,7 @@ packages:
'@babel/plugin-transform-flow-strip-types': 7.16.7(@babel/core@7.12.9)
'@babel/plugin-transform-function-name': 7.18.9(@babel/core@7.12.9)
'@babel/plugin-transform-literals': 7.18.9(@babel/core@7.12.9)
- '@babel/plugin-transform-modules-commonjs': 7.21.2(@babel/core@7.12.9)
+ '@babel/plugin-transform-modules-commonjs': 7.22.15(@babel/core@7.12.9)
'@babel/plugin-transform-named-capturing-groups-regex': 7.19.1(@babel/core@7.12.9)
'@babel/plugin-transform-parameters': 7.21.3(@babel/core@7.12.9)
'@babel/plugin-transform-react-display-name': 7.18.6(@babel/core@7.12.9)
@@ -37746,9 +38280,9 @@ packages:
'@babel/plugin-transform-spread': 7.19.0(@babel/core@7.12.9)
'@babel/plugin-transform-sticky-regex': 7.18.6(@babel/core@7.12.9)
'@babel/plugin-transform-template-literals': 7.18.9(@babel/core@7.12.9)
- '@babel/plugin-transform-typescript': 7.19.3(@babel/core@7.12.9)
+ '@babel/plugin-transform-typescript': 7.22.15(@babel/core@7.12.9)
'@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.12.9)
- '@babel/template': 7.20.7
+ '@babel/template': 7.22.15
react-refresh: 0.4.3
transitivePeerDependencies:
- supports-color
@@ -37781,7 +38315,7 @@ packages:
'@babel/plugin-transform-flow-strip-types': 7.16.7(@babel/core@7.21.3)
'@babel/plugin-transform-function-name': 7.18.9(@babel/core@7.21.3)
'@babel/plugin-transform-literals': 7.18.9(@babel/core@7.21.3)
- '@babel/plugin-transform-modules-commonjs': 7.21.2(@babel/core@7.21.3)
+ '@babel/plugin-transform-modules-commonjs': 7.22.15(@babel/core@7.21.3)
'@babel/plugin-transform-named-capturing-groups-regex': 7.19.1(@babel/core@7.21.3)
'@babel/plugin-transform-parameters': 7.21.3(@babel/core@7.21.3)
'@babel/plugin-transform-react-display-name': 7.18.6(@babel/core@7.21.3)
@@ -37793,9 +38327,9 @@ packages:
'@babel/plugin-transform-spread': 7.19.0(@babel/core@7.21.3)
'@babel/plugin-transform-sticky-regex': 7.18.6(@babel/core@7.21.3)
'@babel/plugin-transform-template-literals': 7.18.9(@babel/core@7.21.3)
- '@babel/plugin-transform-typescript': 7.19.3(@babel/core@7.21.3)
+ '@babel/plugin-transform-typescript': 7.22.15(@babel/core@7.21.3)
'@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.21.3)
- '@babel/template': 7.20.7
+ '@babel/template': 7.22.15
react-refresh: 0.4.3
transitivePeerDependencies:
- supports-color
@@ -37836,7 +38370,7 @@ packages:
resolution: {integrity: sha512-77TZuf10Ru+USo97HwDT8UceSzOGBZB8EYTObOsR0n1sjQHjvKsMflLA9Pco13o9NsIYAG6c6P/0vIpiHKqaKA==}
dependencies:
'@babel/traverse': 7.21.3
- '@babel/types': 7.22.4
+ '@babel/types': 7.22.15
invariant: 2.2.4
metro-symbolicate: 0.72.1
nullthrows: 1.1.1
@@ -37850,7 +38384,7 @@ packages:
resolution: {integrity: sha512-dqYK8DZ4NzGkhik0IkKRBLuPplXqF6GoKrFQ/XMw0FYGy3+dFJ9nIDxsCyg3GcjCt6Mg8FEqGrXlpMG7MrtC9Q==}
dependencies:
'@babel/traverse': 7.21.3
- '@babel/types': 7.22.4
+ '@babel/types': 7.22.15
invariant: 2.2.4
metro-symbolicate: 0.72.2
nullthrows: 1.1.1
@@ -37893,7 +38427,7 @@ packages:
dependencies:
'@babel/core': 7.21.3
'@babel/generator': 7.21.3
- '@babel/template': 7.20.7
+ '@babel/template': 7.22.15
'@babel/traverse': 7.21.3
nullthrows: 1.1.1
transitivePeerDependencies:
@@ -37904,8 +38438,8 @@ packages:
dependencies:
'@babel/core': 7.21.3
'@babel/generator': 7.21.3
- '@babel/parser': 7.21.3
- '@babel/types': 7.22.4
+ '@babel/parser': 7.22.15
+ '@babel/types': 7.22.15
babel-preset-fbjs: 3.4.0(@babel/core@7.21.3)
metro: 0.72.2
metro-babel-transformer: 0.72.2
@@ -37925,13 +38459,13 @@ packages:
resolution: {integrity: sha512-TWqKnPMu4OX7ew7HJwsD4LBzhtn7Iqeu2OAqjlMCJtqMKqi/YWoxFf1VGZxH/mJVLhbe/5SWU5St/tqsST8swg==}
hasBin: true
dependencies:
- '@babel/code-frame': 7.18.6
+ '@babel/code-frame': 7.22.13
'@babel/core': 7.21.3
'@babel/generator': 7.21.3
- '@babel/parser': 7.21.3
- '@babel/template': 7.20.7
+ '@babel/parser': 7.22.15
+ '@babel/template': 7.22.15
'@babel/traverse': 7.21.3
- '@babel/types': 7.22.4
+ '@babel/types': 7.22.15
absolute-path: 0.0.0
accepts: 1.3.8
async: 3.2.4
@@ -38675,7 +39209,7 @@ packages:
dependencies:
growly: 1.3.0
is-wsl: 2.2.0
- semver: 6.3.0
+ semver: 6.3.1
shellwords: 0.1.1
which: 1.3.1
dev: true
@@ -41400,7 +41934,6 @@ packages:
engines: {node: '>=0.6'}
dependencies:
side-channel: 1.0.4
- dev: true
/qs@6.5.2:
resolution: {integrity: sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==}
@@ -41914,7 +42447,7 @@ packages:
/react-native-codegen@0.70.4(@babel/preset-env@7.12.7):
resolution: {integrity: sha512-bPyd5jm840omfx24VRyMP+KPzAefpRDwE18w5ywMWHCWZBSqLn1qI9WgBPnavlIrjTEuzxznWQNcaA26lw8AMQ==}
dependencies:
- '@babel/parser': 7.21.3
+ '@babel/parser': 7.22.15
flow-parser: 0.121.0
jscodeshift: 0.13.1(@babel/preset-env@7.12.7)
nullthrows: 1.1.1
@@ -43723,6 +44256,10 @@ packages:
resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
hasBin: true
+ /semver@6.3.1:
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+ hasBin: true
+
/semver@7.0.0:
resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==}
hasBin: true
@@ -45269,6 +45806,19 @@ packages:
stable: 0.1.8
dev: true
+ /svgo@3.0.2:
+ resolution: {integrity: sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==}
+ engines: {node: '>=14.0.0'}
+ hasBin: true
+ dependencies:
+ '@trysound/sax': 0.2.0
+ commander: 7.2.0
+ css-select: 5.1.0
+ css-tree: 2.3.1
+ csso: 5.0.5
+ picocolors: 1.0.0
+ dev: true
+
/swap-case@1.1.2:
resolution: {integrity: sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=}
dependencies: