= (props: LemonSelectMultipleProps) => {
diff --git a/frontend/src/lib/components/LemonSkeleton/LemonSkeleton.scss b/frontend/src/lib/components/LemonSkeleton/LemonSkeleton.scss
index 6d8ce2e01e2..bbd07691933 100644
--- a/frontend/src/lib/components/LemonSkeleton/LemonSkeleton.scss
+++ b/frontend/src/lib/components/LemonSkeleton/LemonSkeleton.scss
@@ -18,6 +18,16 @@
&.LemonSkeleton--static {
animation: none;
}
+
+ // The following CSS visually hides the "Loading…" span, but still leaves it available for a screen reader
+ // See https://adrianroselli.com/2020/11/more-accessible-skeletons.html
+ > span {
+ display: block;
+ overflow: hidden;
+ width: 1px;
+ height: 1px;
+ white-space: nowrap;
+ }
}
@keyframes lemon-skeleton-loading {
diff --git a/frontend/src/lib/components/LemonSkeleton/LemonSkeleton.tsx b/frontend/src/lib/components/LemonSkeleton/LemonSkeleton.tsx
index 40cbb593f05..81a6947aa97 100644
--- a/frontend/src/lib/components/LemonSkeleton/LemonSkeleton.tsx
+++ b/frontend/src/lib/components/LemonSkeleton/LemonSkeleton.tsx
@@ -13,7 +13,10 @@ export interface LemonSkeletonProps {
}
export function LemonSkeleton({ className, repeat, active = true, fade = false }: LemonSkeletonProps): JSX.Element {
const content = (
-
+
+ {/* The span is for accessibility, but also because @storybook/test-runner smoke tests require content */}
+ Loading…
+
)
if (repeat) {
diff --git a/frontend/src/lib/components/LemonSnack/LemonSnack.stories.tsx b/frontend/src/lib/components/LemonSnack/LemonSnack.stories.tsx
index dacd5585214..e565faf1ff1 100644
--- a/frontend/src/lib/components/LemonSnack/LemonSnack.stories.tsx
+++ b/frontend/src/lib/components/LemonSnack/LemonSnack.stories.tsx
@@ -5,12 +5,14 @@ import { ProfilePicture } from '../ProfilePicture'
export default {
title: 'Lemon UI/Lemon Snack',
component: LemonSnack,
- parameters: { chromatic: { disableSnapshot: false } },
argTypes: {
children: {
defaultValue: 'Tasty snacks',
},
},
+ parameters: {
+ chromatic: { disableSnapshot: false },
+ },
} as ComponentMeta
const BasicTemplate: ComponentStory = (props: LemonSnackProps) => {
diff --git a/frontend/src/lib/components/LemonSwitch/LemonSwitch.stories.tsx b/frontend/src/lib/components/LemonSwitch/LemonSwitch.stories.tsx
index 053227e491e..49f97b76ab7 100644
--- a/frontend/src/lib/components/LemonSwitch/LemonSwitch.stories.tsx
+++ b/frontend/src/lib/components/LemonSwitch/LemonSwitch.stories.tsx
@@ -7,12 +7,14 @@ import { IconGlobeLock } from '../icons'
export default {
title: 'Lemon UI/Lemon Switch',
component: RawLemonSwitch,
- parameters: { chromatic: { disableSnapshot: false } },
argTypes: {
label: {
defaultValue: 'Switch this!',
},
},
+ parameters: {
+ chromatic: { disableSnapshot: false },
+ },
} as ComponentMeta
const LemonSwitch = ({ checked, ...props }: Partial): JSX.Element => {
diff --git a/frontend/src/lib/components/LemonTable/LemonTable.stories.tsx b/frontend/src/lib/components/LemonTable/LemonTable.stories.tsx
index 027c2e83f67..d5cfa07c50f 100644
--- a/frontend/src/lib/components/LemonTable/LemonTable.stories.tsx
+++ b/frontend/src/lib/components/LemonTable/LemonTable.stories.tsx
@@ -4,7 +4,9 @@ import { LemonTable, LemonTableProps } from './LemonTable'
export default {
title: 'Lemon UI/Lemon Table',
component: LemonTable,
- parameters: { chromatic: { disableSnapshot: false } },
+ parameters: {
+ chromatic: { disableSnapshot: false },
+ },
} as ComponentMeta
interface MockPerson {
diff --git a/frontend/src/lib/components/LemonTextArea/LemonTextArea.stories.tsx b/frontend/src/lib/components/LemonTextArea/LemonTextArea.stories.tsx
index 59ead290d32..dc71ae964a7 100644
--- a/frontend/src/lib/components/LemonTextArea/LemonTextArea.stories.tsx
+++ b/frontend/src/lib/components/LemonTextArea/LemonTextArea.stories.tsx
@@ -6,13 +6,15 @@ import { LemonTextArea, LemonTextAreaProps, LemonTextMarkdown as _LemonTextMarkd
export default {
title: 'Lemon UI/Lemon Text Area',
component: LemonTextArea,
- parameters: { chromatic: { disableSnapshot: false } },
argTypes: {
value: {
defaultValue:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.',
},
},
+ parameters: {
+ chromatic: { disableSnapshot: false },
+ },
} as ComponentMeta
const Template: ComponentStory = (props: LemonTextAreaProps) => {
diff --git a/frontend/src/lib/components/Lettermark/Lettermark.stories.tsx b/frontend/src/lib/components/Lettermark/Lettermark.stories.tsx
index e5adf227fb5..d0eb0b4e11a 100644
--- a/frontend/src/lib/components/Lettermark/Lettermark.stories.tsx
+++ b/frontend/src/lib/components/Lettermark/Lettermark.stories.tsx
@@ -6,7 +6,6 @@ export default {
title: 'Lemon UI/Lettermark',
component: Lettermark,
parameters: {
- chromatic: { disableSnapshot: false },
docs: {
description: {
component:
diff --git a/frontend/src/lib/components/NotFound/NotFound.stories.tsx b/frontend/src/lib/components/NotFound/NotFound.stories.tsx
index 391f3d5ffde..9c903b6e3d2 100644
--- a/frontend/src/lib/components/NotFound/NotFound.stories.tsx
+++ b/frontend/src/lib/components/NotFound/NotFound.stories.tsx
@@ -5,7 +5,6 @@ import { NotFound } from './index'
export default {
title: 'Components/Not Found',
component: NotFound,
- parameters: { chromatic: { disableSnapshot: false } },
} as ComponentMeta
const Template: ComponentStory = (args) =>
diff --git a/frontend/src/lib/components/PaginationControl/PaginationControl.stories.tsx b/frontend/src/lib/components/PaginationControl/PaginationControl.stories.tsx
index 4dd8daaf586..4b0266634fb 100644
--- a/frontend/src/lib/components/PaginationControl/PaginationControl.stories.tsx
+++ b/frontend/src/lib/components/PaginationControl/PaginationControl.stories.tsx
@@ -5,7 +5,6 @@ import { usePagination } from './usePagination'
export default {
title: 'Lemon UI/Pagination Control',
component: PaginationControl,
- parameters: { chromatic: { disableSnapshot: false } },
} as ComponentMeta
const DATA_SOURCE = Array(43)
diff --git a/frontend/src/lib/components/Popup/Popup.stories.tsx b/frontend/src/lib/components/Popup/Popup.stories.tsx
index 911e7214e7f..73c6c8eec45 100644
--- a/frontend/src/lib/components/Popup/Popup.stories.tsx
+++ b/frontend/src/lib/components/Popup/Popup.stories.tsx
@@ -6,7 +6,6 @@ import { IconArrowDropDown } from '../icons'
export default {
title: 'Lemon UI/Popup',
component: Popup,
- parameters: { chromatic: { disableSnapshot: false } },
} as ComponentMeta
const Template: ComponentStory = (args) =>
diff --git a/frontend/src/lib/components/ProfilePicture/ProfileBubbles.stories.tsx b/frontend/src/lib/components/ProfilePicture/ProfileBubbles.stories.tsx
index 82d28c69ce5..82d00f68ed1 100644
--- a/frontend/src/lib/components/ProfilePicture/ProfileBubbles.stories.tsx
+++ b/frontend/src/lib/components/ProfilePicture/ProfileBubbles.stories.tsx
@@ -12,7 +12,6 @@ const DUMMIES: ProfileBubblesProps['people'] = [
export default {
title: 'Lemon UI/Profile Bubbles',
component: ProfileBubblesComponent,
- parameters: { chromatic: { disableSnapshot: false } },
argTypes: {
people: {
defaultValue: DUMMIES,
diff --git a/frontend/src/lib/components/PropertyFilters/PropertyFilters.stories.tsx b/frontend/src/lib/components/PropertyFilters/PropertyFilters.stories.tsx
index 68adb1193dd..2e1de568239 100644
--- a/frontend/src/lib/components/PropertyFilters/PropertyFilters.stories.tsx
+++ b/frontend/src/lib/components/PropertyFilters/PropertyFilters.stories.tsx
@@ -8,7 +8,6 @@ import { personPropertiesModel } from '~/models/personPropertiesModel'
export default {
title: 'Filters/PropertyFilters',
component: PropertyFilters,
- parameters: { chromatic: { disableSnapshot: false } },
} as ComponentMeta
const propertyFilters = [
diff --git a/frontend/src/lib/components/PropertyGroupFilters/PropertyGroupFilters.stories.tsx b/frontend/src/lib/components/PropertyGroupFilters/PropertyGroupFilters.stories.tsx
index f60bf9fcc30..a5db8e6396d 100644
--- a/frontend/src/lib/components/PropertyGroupFilters/PropertyGroupFilters.stories.tsx
+++ b/frontend/src/lib/components/PropertyGroupFilters/PropertyGroupFilters.stories.tsx
@@ -10,7 +10,6 @@ import { cohortsModel } from '~/models/cohortsModel'
export default {
title: 'Filters/PropertyGroupFilters',
component: PropertyGroupFilters,
- parameters: { chromatic: { disableSnapshot: false } },
} as ComponentMeta
const propertyFilters = [
diff --git a/frontend/src/lib/components/PropertyIcon.stories.tsx b/frontend/src/lib/components/PropertyIcon.stories.tsx
index 38ba7c2056c..8ef11666188 100644
--- a/frontend/src/lib/components/PropertyIcon.stories.tsx
+++ b/frontend/src/lib/components/PropertyIcon.stories.tsx
@@ -6,7 +6,6 @@ import { countryCodeToName } from 'scenes/insights/views/WorldMap'
export default {
title: 'Lemon UI/Icons/Property Icon',
component: PropertyIcon,
- parameters: { chromatic: { disableSnapshot: false } },
} as ComponentMeta
const Template: ComponentStory = (args) => {
diff --git a/frontend/src/lib/components/PropertyKeyInfo.stories.tsx b/frontend/src/lib/components/PropertyKeyInfo.stories.tsx
index b81fb531a74..3f47549c4ef 100644
--- a/frontend/src/lib/components/PropertyKeyInfo.stories.tsx
+++ b/frontend/src/lib/components/PropertyKeyInfo.stories.tsx
@@ -5,7 +5,6 @@ import { PropertyKeyInfo } from './PropertyKeyInfo'
export default {
title: 'Components/Property Key Info',
component: PropertyKeyInfo,
- parameters: { chromatic: { disableSnapshot: false } },
} as ComponentMeta
const Template: ComponentStory = (args) => {
diff --git a/frontend/src/lib/components/PropertyNamesSelect/PropertyNamesSelect.stories.tsx b/frontend/src/lib/components/PropertyNamesSelect/PropertyNamesSelect.stories.tsx
index aca2e045ae3..f58ac9dc95a 100644
--- a/frontend/src/lib/components/PropertyNamesSelect/PropertyNamesSelect.stories.tsx
+++ b/frontend/src/lib/components/PropertyNamesSelect/PropertyNamesSelect.stories.tsx
@@ -5,7 +5,6 @@ import { personPropertiesModel } from '~/models/personPropertiesModel'
export default {
title: 'Filters',
- parameters: { chromatic: { disableSnapshot: false } },
decorators: [
mswDecorator({
get: {
diff --git a/frontend/src/lib/components/Sharing/SharingModal.stories.tsx b/frontend/src/lib/components/Sharing/SharingModal.stories.tsx
index a54e0993116..1534d804c0d 100644
--- a/frontend/src/lib/components/Sharing/SharingModal.stories.tsx
+++ b/frontend/src/lib/components/Sharing/SharingModal.stories.tsx
@@ -19,7 +19,6 @@ export default {
layout: 'fullscreen',
options: { showPanel: false },
viewMode: 'story',
- chromatic: { disableSnapshot: false },
},
} as ComponentMeta
diff --git a/frontend/src/lib/components/Spinner/Spinner.stories.tsx b/frontend/src/lib/components/Spinner/Spinner.stories.tsx
index c0b11d02f1a..9d0731874f4 100644
--- a/frontend/src/lib/components/Spinner/Spinner.stories.tsx
+++ b/frontend/src/lib/components/Spinner/Spinner.stories.tsx
@@ -6,7 +6,6 @@ import { LemonButton } from '@posthog/lemon-ui'
export default {
title: 'Lemon UI/Spinner',
component: Spinner,
- parameters: { chromatic: { disableSnapshot: false } },
} as ComponentMeta
export function Default(): JSX.Element {
diff --git a/frontend/src/lib/components/Subscriptions/SubscriptionsModal.stories.tsx b/frontend/src/lib/components/Subscriptions/SubscriptionsModal.stories.tsx
index 68dee8db0d9..d295097f049 100644
--- a/frontend/src/lib/components/Subscriptions/SubscriptionsModal.stories.tsx
+++ b/frontend/src/lib/components/Subscriptions/SubscriptionsModal.stories.tsx
@@ -16,7 +16,6 @@ export default {
layout: 'fullscreen',
options: { showPanel: false },
viewMode: 'story',
- chromatic: { disableSnapshot: false },
},
} as ComponentMeta
diff --git a/frontend/src/lib/components/TaxonomicFilter/TaxonomicFilter.stories.tsx b/frontend/src/lib/components/TaxonomicFilter/TaxonomicFilter.stories.tsx
index 0bc53065abd..dd6712f29c2 100644
--- a/frontend/src/lib/components/TaxonomicFilter/TaxonomicFilter.stories.tsx
+++ b/frontend/src/lib/components/TaxonomicFilter/TaxonomicFilter.stories.tsx
@@ -8,7 +8,6 @@ import { useMountedLogic } from 'kea'
export default {
title: 'Filters',
decorators: [taxonomicFilterMocksDecorator],
- parameters: { chromatic: { disableSnapshot: false } },
}
export function TaxonomicFilter_(): JSX.Element {
diff --git a/frontend/src/lib/components/TaxonomicPopup/TaxonomicPopup.stories.tsx b/frontend/src/lib/components/TaxonomicPopup/TaxonomicPopup.stories.tsx
index 30b1b3f70bd..6f8da9ab160 100644
--- a/frontend/src/lib/components/TaxonomicPopup/TaxonomicPopup.stories.tsx
+++ b/frontend/src/lib/components/TaxonomicPopup/TaxonomicPopup.stories.tsx
@@ -11,7 +11,6 @@ import { ComponentMeta } from '@storybook/react'
export default {
title: 'Filters/TaxonomicPopup',
component: TaxonomicPopup,
- parameters: { chromatic: { disableSnapshot: false } },
decorators: [taxonomicFilterMocksDecorator],
} as ComponentMeta
diff --git a/frontend/src/lib/components/colors.stories.tsx b/frontend/src/lib/components/colors.stories.tsx
index b80085ee5a0..0f5e4c0fa5a 100644
--- a/frontend/src/lib/components/colors.stories.tsx
+++ b/frontend/src/lib/components/colors.stories.tsx
@@ -5,7 +5,6 @@ import { useState } from 'react'
export default {
title: 'Lemon UI/Colors',
parameters: {
- chromatic: { disableSnapshot: false },
options: { showPanel: false },
docs: {
description: {
diff --git a/frontend/src/lib/components/hedgehogs.stories.tsx b/frontend/src/lib/components/hedgehogs.stories.tsx
index bdc336789b1..5621a564bc2 100644
--- a/frontend/src/lib/components/hedgehogs.stories.tsx
+++ b/frontend/src/lib/components/hedgehogs.stories.tsx
@@ -15,7 +15,6 @@ const allHedgehogs: HedgehogDefinition[] = Object.entries(hedgehogs).map(([key,
export default {
title: 'Lemon UI/Hog illustrations',
parameters: {
- chromatic: { disableSnapshot: false },
options: { showPanel: false },
docs: {
description: {
diff --git a/frontend/src/lib/components/icons.stories.tsx b/frontend/src/lib/components/icons.stories.tsx
index c9e534d98e0..19569c9aab4 100644
--- a/frontend/src/lib/components/icons.stories.tsx
+++ b/frontend/src/lib/components/icons.stories.tsx
@@ -18,7 +18,6 @@ const allIcons: IconDefinition[] = Object.entries(icons)
export default {
title: 'Lemon UI/Icons',
parameters: {
- chromatic: { disableSnapshot: false },
options: { showPanel: false },
docs: {
description: {
diff --git a/frontend/src/lib/components/icons/Splotch.stories.tsx b/frontend/src/lib/components/icons/Splotch.stories.tsx
index f78d624b586..859804ee961 100644
--- a/frontend/src/lib/components/icons/Splotch.stories.tsx
+++ b/frontend/src/lib/components/icons/Splotch.stories.tsx
@@ -4,7 +4,6 @@ import { Splotch, SplotchColor, SplotchProps } from './Splotch'
export default {
title: 'Lemon UI/Splotch',
component: Splotch,
- parameters: { chromatic: { disableSnapshot: false } },
argTypes: {
color: {
defaultValue: SplotchColor.Purple,
diff --git a/frontend/src/lib/forms/Field.stories.tsx b/frontend/src/lib/forms/Field.stories.tsx
index 5e04bb52dcc..934e2779988 100644
--- a/frontend/src/lib/forms/Field.stories.tsx
+++ b/frontend/src/lib/forms/Field.stories.tsx
@@ -10,7 +10,6 @@ export default {
title: 'Lemon UI/Forms and Fields',
component: PureField,
parameters: {
- chromatic: { disableSnapshot: false },
docs: {
description: {
component: `
diff --git a/frontend/src/queries/nodes/DataNode/DataNode.stories.tsx b/frontend/src/queries/nodes/DataNode/DataNode.stories.tsx
index 0a9b5fbd668..fc6c7bdae4b 100644
--- a/frontend/src/queries/nodes/DataNode/DataNode.stories.tsx
+++ b/frontend/src/queries/nodes/DataNode/DataNode.stories.tsx
@@ -9,7 +9,6 @@ export default {
title: 'Queries/DataNode',
component: QueryRunner,
parameters: {
- chromatic: { disableSnapshot: false },
layout: 'fullscreen',
options: { showPanel: false },
viewMode: 'story',
diff --git a/frontend/src/queries/nodes/DataTable/DataTable.stories.tsx b/frontend/src/queries/nodes/DataTable/DataTable.stories.tsx
index 5cdd7e2ab5f..4afd761a91c 100644
--- a/frontend/src/queries/nodes/DataTable/DataTable.stories.tsx
+++ b/frontend/src/queries/nodes/DataTable/DataTable.stories.tsx
@@ -10,7 +10,6 @@ export default {
title: 'Queries/DataTable',
component: Query,
parameters: {
- chromatic: { disableSnapshot: false },
layout: 'fullscreen',
options: { showPanel: false },
viewMode: 'story',
diff --git a/frontend/src/scenes/PreflightCheck/PreflightCheck.stories.tsx b/frontend/src/scenes/PreflightCheck/PreflightCheck.stories.tsx
index 8c0e7eaca05..e6605a69cb1 100644
--- a/frontend/src/scenes/PreflightCheck/PreflightCheck.stories.tsx
+++ b/frontend/src/scenes/PreflightCheck/PreflightCheck.stories.tsx
@@ -3,7 +3,7 @@ import { Meta } from '@storybook/react'
import { PreflightCheck } from './PreflightCheck'
export default {
- title: 'Scenes-Other/Onboarding',
+ title: 'Scenes-Other/Preflight',
parameters: { layout: 'fullscreen', options: { showPanel: false }, viewMode: 'story' },
} as Meta
diff --git a/frontend/src/scenes/ingestion/v1/IngestionV1.stories.tsx b/frontend/src/scenes/ingestion/v1/IngestionV1.stories.tsx
index f70a7cd49e0..a16b720a6c3 100644
--- a/frontend/src/scenes/ingestion/v1/IngestionV1.stories.tsx
+++ b/frontend/src/scenes/ingestion/v1/IngestionV1.stories.tsx
@@ -3,8 +3,8 @@ import { Meta } from '@storybook/react'
import { IngestionWizardV1 } from './IngestionWizard'
export default {
- title: 'Scenes-Other/Onboarding',
+ title: 'Scenes-Other/Ingestion v1',
parameters: { layout: 'fullscreen', options: { showPanel: false }, viewMode: 'story' },
} as Meta
-export const IngestionV1 = (): JSX.Element =>
+export const Ingestion = (): JSX.Element =>
diff --git a/frontend/src/scenes/ingestion/v2/IngestionV2.stories.tsx b/frontend/src/scenes/ingestion/v2/IngestionV2.stories.tsx
deleted file mode 100644
index a6158e13b49..00000000000
--- a/frontend/src/scenes/ingestion/v2/IngestionV2.stories.tsx
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Meta } from '@storybook/react'
-
-import { IngestionWizardV2 } from './IngestionWizard'
-
-export default {
- title: 'Scenes-Other/Onboarding',
- parameters: { layout: 'fullscreen', options: { showPanel: false }, viewMode: 'story' },
-} as Meta
-
-export const IngestionV2 = (): JSX.Element =>
diff --git a/frontend/src/scenes/insights/InsightTooltip/InsightTooltip.stories.tsx b/frontend/src/scenes/insights/InsightTooltip/InsightTooltip.stories.tsx
index 72893de8583..2dc0d515a7c 100644
--- a/frontend/src/scenes/insights/InsightTooltip/InsightTooltip.stories.tsx
+++ b/frontend/src/scenes/insights/InsightTooltip/InsightTooltip.stories.tsx
@@ -119,7 +119,6 @@ const data = {
export default {
title: 'Components/InsightTooltip',
component: InsightTooltip,
- parameters: { chromatic: { disableSnapshot: false } },
argTypes: {
date: { defaultValue: data.date },
timezone: { defaultValue: data.timezone },
diff --git a/frontend/src/scenes/project/Settings/SlackIntegration.stories.tsx b/frontend/src/scenes/project/Settings/SlackIntegration.stories.tsx
index aecb710cdb4..23134b13143 100644
--- a/frontend/src/scenes/project/Settings/SlackIntegration.stories.tsx
+++ b/frontend/src/scenes/project/Settings/SlackIntegration.stories.tsx
@@ -12,7 +12,6 @@ export default {
layout: 'fullscreen',
options: { showPanel: false },
viewMode: 'story',
- chromatic: { disableSnapshot: false },
},
} as ComponentMeta
diff --git a/frontend/src/styles/global.scss b/frontend/src/styles/global.scss
index e820ba70a94..3ace794ac8b 100644
--- a/frontend/src/styles/global.scss
+++ b/frontend/src/styles/global.scss
@@ -667,3 +667,15 @@ body {
max-width: 350px;
}
}
+
+.dangerously-stop-all-animations {
+ // Only use this class to achieve consistent snapshots by stopping all animations
+ *,
+ *::before,
+ *::after {
+ transition: none !important;
+ animation-fill-mode: forwards !important;
+ animation-duration: 0ms !important;
+ animation-iteration-count: 1 !important;
+ }
+}
diff --git a/frontend/src/styles/utilities.stories.tsx b/frontend/src/styles/utilities.stories.tsx
index 40e3554d5d8..e94026cb386 100644
--- a/frontend/src/styles/utilities.stories.tsx
+++ b/frontend/src/styles/utilities.stories.tsx
@@ -2,7 +2,6 @@ import { LemonButton } from '@posthog/lemon-ui'
export default {
title: 'Lemon UI/Utilities',
- parameters: { chromatic: { disableSnapshot: false } },
}
export const Overview = (): JSX.Element => {
diff --git a/package.json b/package.json
index a7088c15f6a..04091e41024 100644
--- a/package.json
+++ b/package.json
@@ -20,7 +20,10 @@
"copy-scripts": "mkdir -p frontend/dist/ && pnpm copy-scripts:array && pnpm copy-scripts:recorder",
"copy-scripts:array": "cp node_modules/posthog-js/dist/array.js* frontend/dist/",
"copy-scripts:recorder": "./bin/copy-scripts-recorder",
- "test": "jest",
+ "test": "pnpm test:unit && pnpm test:visual-regression",
+ "test:unit": "jest --testPathPattern=frontend/",
+ "test:visual-regression": "playwright test -u && test-storybook -u --no-index-json --url $STORYBOOK_URL",
+ "test:visual-regression:ci": "playwright test && test-storybook --ci --no-index-json --maxWorkers=2",
"start": "concurrently -n ESBUILD,TYPEGEN -c yellow,green \"pnpm start-http\" \"pnpm run typegen:watch\"",
"start-http": "pnpm clean && pnpm copy-scripts && node frontend/build.mjs --dev",
"start-docker": "pnpm start-http --host 0.0.0.0",
@@ -57,7 +60,6 @@
"@lottiefiles/react-lottie-player": "^3.4.7",
"@medv/finder": "^2.1.0",
"@monaco-editor/react": "^4.1.3",
- "@playwright/test": "^1.28.1",
"@posthog/plugin-scaffold": "^1.3.2",
"@react-hook/size": "^2.1.2",
"@sentry/react": "7.22.0",
@@ -150,6 +152,7 @@
"@babel/runtime": "^7.17.9",
"@cypress/webpack-preprocessor": "^5.15.4",
"@hot-loader/react-dom": "^16.14.0",
+ "@playwright/test": "1.29.2",
"@sentry/types": "7.22.0",
"@storybook/addon-a11y": "^6.5.14",
"@storybook/addon-actions": "^6.5.14",
@@ -161,6 +164,7 @@
"@storybook/components": "^6.5.14",
"@storybook/core-events": "^6.5.14",
"@storybook/react": "^6.5.14",
+ "@storybook/test-runner": "^0.9.2",
"@storybook/theming": "^6.5.14",
"@sucrase/jest-plugin": "^3.0.0",
"@testing-library/dom": ">=7.21.4",
@@ -172,6 +176,7 @@
"@types/d3": "^7.0.0",
"@types/d3-sankey": "^0.11.2",
"@types/jest": "^29.2.3",
+ "@types/jest-image-snapshot": "^6.1.0",
"@types/md5": "^2.3.0",
"@types/node": "^18.11.9",
"@types/pixelmatch": "^5.2.4",
@@ -218,6 +223,7 @@
"jest": "^29.3.1",
"jest-canvas-mock": "^2.4.0",
"jest-environment-jsdom": "^29.3.1",
+ "jest-image-snapshot": "^6.1.0",
"kea-typegen": "^3.1.4",
"less": "^3.12.2",
"less-loader": "^7.0.2",
@@ -226,6 +232,7 @@
"msw": "^0.47.3",
"path-browserify": "^1.0.1",
"pixelmatch": "^5.3.0",
+ "playwright-core": "1.29.2",
"pngjs": "^6.0.0",
"postcss": "^8.4.14",
"postcss-loader": "^4.3.0",
@@ -246,8 +253,11 @@
"fsevents": "^2.1.2"
},
"lint-staged": {
- "*.{js,jsx,mjs,ts,tsx,json,yaml,yml,css,scss}": "prettier --write",
- "((frontend|cypress)/**).{js,jsx,mjs,ts,tsx}": "eslint -c .eslintrc.js --fix",
+ "*.{json,yaml,yml,css,scss}": "prettier --write",
+ "(!(plugin-server)/**).{js,jsx,mjs,ts,tsx}": [
+ "eslint -c .eslintrc.js --fix",
+ "prettier --write"
+ ],
"(plugin-server/**).{js,jsx,mjs,ts,tsx}": [
"eslint -c plugin-server/.eslintrc.js --fix",
"prettier --write"
@@ -256,6 +266,9 @@
"black",
"flake8",
"isort"
+ ],
+ "*.png": [
+ "optipng -clobber -o4 -strip all"
]
},
"browserslist": {
diff --git a/playwright.config.ts b/playwright.config.ts
index 04231310ac4..2808d20ed15 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -27,8 +27,8 @@ const config: PlaywrightTestConfig = {
forbidOnly: !!process.env.CI,
/* Retry on CI only */
retries: process.env.CI ? 2 : 0,
- /* Opt out of parallel tests on CI. */
- workers: process.env.CI ? 1 : undefined,
+ /* Run one worker per core in GitHub Actions. */
+ workers: process.env.CI ? 2 : undefined,
/* Reporter to use. See https://playwright.dev/docs/test-reporters */
reporter: [['html', { open: 'never' }]],
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
diff --git a/playwright/e2e-vrt/README.md b/playwright/e2e-vrt/README.md
index 096a2dc5d22..c2acffb95bb 100644
--- a/playwright/e2e-vrt/README.md
+++ b/playwright/e2e-vrt/README.md
@@ -1,6 +1,6 @@
# Visual Regression Tests
-We're using Playwright to run visual regression tests against Storybook. To create reference images that are consistent between development and CI we run Playwright in an Ubuntu docker container.
+We're using Playwright to run visual regression tests against Storybook. To create reference images that are consistent between development and CI we run Playwright in an Ubuntu Docker container.
## Workflow
@@ -37,13 +37,15 @@ We're using Playwright to run visual regression tests against Storybook. To crea
- `#root` for components and
- `.main-app-content` for scenes
-3. Generate the reference images with (you need to have Storybook running locally, i.e. on the Docker host machine):
+3. Generate the reference images (you need to have Storybook running locally, i.e. on the Docker host machine):
- ```
- docker compose -f docker-compose.playwright.yml run -it -e STORYBOOK_URL=http://host.docker.internal:6006 playwright pnpm exec playwright test -u
+ ```sh
+ docker compose -f docker-compose.playwright.yml run -it --build -e STORYBOOK_URL=http://host.docker.internal:6006 playwright pnpm test:visual-regression
```
-Open the generated report locally with `pnpm dlx playwright show-report` to see test results (they are mounted local in docker volume)
+ > If your `docker compose version` is lower than 2.13, you won't be able to use the `--build` flag. Instead, first run `docker compose -f docker-compose.playwright.yml build playwright`, and then the above `run` command - without the `--build` arg.
+
+ Open the generated report locally with `pnpm dlx playwright show-report` to see test results (they are mounted local in docker volume)
### Renaming or deleting tests
diff --git a/playwright/e2e-vrt/components/PropertiesTimeline.spec.ts-snapshots/Properties-Timeline-Multiple-Points-for-One-Person-Property-1-chromium-linux.png b/playwright/e2e-vrt/components/PropertiesTimeline.spec.ts-snapshots/Properties-Timeline-Multiple-Points-for-One-Person-Property-1-chromium-linux.png
old mode 100755
new mode 100644
index a36305b7f3d..d3fcf98f89a
Binary files a/playwright/e2e-vrt/components/PropertiesTimeline.spec.ts-snapshots/Properties-Timeline-Multiple-Points-for-One-Person-Property-1-chromium-linux.png and b/playwright/e2e-vrt/components/PropertiesTimeline.spec.ts-snapshots/Properties-Timeline-Multiple-Points-for-One-Person-Property-1-chromium-linux.png differ
diff --git a/playwright/pages/storybook.ts b/playwright/pages/storybook.ts
index cd75b796fa6..bef93b6e90c 100644
--- a/playwright/pages/storybook.ts
+++ b/playwright/pages/storybook.ts
@@ -30,7 +30,7 @@ export class StorybookStoryPage {
async goto(storyId: string): Promise {
const storyUrl = `${STORYBOOK_URL}/iframe.html?id=${storyId}&viewMode=story`
- await this.page.goto(storyUrl)
+ await this.page.goto(storyUrl, { waitUntil: 'networkidle' })
}
async resizeToMobile(): Promise {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index a5cc57f4a27..e8091ae3c23 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -18,7 +18,7 @@ specifiers:
'@lottiefiles/react-lottie-player': ^3.4.7
'@medv/finder': ^2.1.0
'@monaco-editor/react': ^4.1.3
- '@playwright/test': ^1.28.1
+ '@playwright/test': 1.29.2
'@posthog/plugin-scaffold': ^1.3.2
'@react-hook/size': ^2.1.2
'@sentry/react': 7.22.0
@@ -33,6 +33,7 @@ specifiers:
'@storybook/components': ^6.5.14
'@storybook/core-events': ^6.5.14
'@storybook/react': ^6.5.14
+ '@storybook/test-runner': ^0.9.2
'@storybook/theming': ^6.5.14
'@sucrase/jest-plugin': ^3.0.0
'@testing-library/dom': '>=7.21.4'
@@ -44,6 +45,7 @@ specifiers:
'@types/d3': ^7.0.0
'@types/d3-sankey': ^0.11.2
'@types/jest': ^29.2.3
+ '@types/jest-image-snapshot': ^6.1.0
'@types/md5': ^2.3.0
'@types/node': ^18.11.9
'@types/pixelmatch': ^5.2.4
@@ -113,6 +115,7 @@ specifiers:
jest: ^29.3.1
jest-canvas-mock: ^2.4.0
jest-environment-jsdom: ^29.3.1
+ jest-image-snapshot: ^6.1.0
kea: ^3.1.0
kea-forms: ^3.0.3
kea-loaders: ^3.0.0
@@ -132,6 +135,7 @@ specifiers:
msw: ^0.47.3
path-browserify: ^1.0.1
pixelmatch: ^5.3.0
+ playwright-core: 1.29.2
pngjs: ^6.0.0
postcss: ^8.4.14
postcss-loader: ^4.3.0
@@ -189,7 +193,6 @@ dependencies:
'@lottiefiles/react-lottie-player': 3.4.7_react@16.14.0
'@medv/finder': 2.1.0
'@monaco-editor/react': 4.4.6_vtctfwvicljpcdx2mjoqbo4tly
- '@playwright/test': 1.28.1
'@posthog/plugin-scaffold': 1.3.4
'@react-hook/size': 2.1.2_react@16.14.0
'@sentry/react': 7.22.0_react@16.14.0
@@ -285,6 +288,7 @@ devDependencies:
'@babel/runtime': 7.20.1
'@cypress/webpack-preprocessor': 5.15.4_5j4ke4o34lz3j3743ikwv5ryvm
'@hot-loader/react-dom': 16.14.0_react@16.14.0
+ '@playwright/test': 1.29.2
'@sentry/types': 7.22.0
'@storybook/addon-a11y': 6.5.14_wcqkhtmu7mswc6yz4uyexck3ty
'@storybook/addon-actions': 6.5.14_wcqkhtmu7mswc6yz4uyexck3ty
@@ -296,6 +300,7 @@ devDependencies:
'@storybook/components': 6.5.14_wcqkhtmu7mswc6yz4uyexck3ty
'@storybook/core-events': 6.5.14
'@storybook/react': 6.5.14_ynw662n6z6lgugf2bmr63fewey
+ '@storybook/test-runner': 0.9.3_goaxpva5utls3mxdpvxrfhulsq
'@storybook/theming': 6.5.14_wcqkhtmu7mswc6yz4uyexck3ty
'@sucrase/jest-plugin': 3.0.0_jest@29.3.1+sucrase@3.29.0
'@testing-library/jest-dom': 5.16.5
@@ -305,6 +310,7 @@ devDependencies:
'@types/clone': 2.1.1
'@types/d3': 7.4.0
'@types/jest': 29.2.4
+ '@types/jest-image-snapshot': 6.1.0
'@types/node': 18.11.9
'@types/pixelmatch': 5.2.4
'@types/pngjs': 6.0.1
@@ -346,6 +352,7 @@ devDependencies:
jest: 29.3.1_odkjkoia5xunhxkdrka32ib6vi
jest-canvas-mock: 2.4.0
jest-environment-jsdom: 29.3.1
+ jest-image-snapshot: 6.1.0_jest@29.3.1
kea-typegen: 3.1.4_typescript@4.8.4
less: 3.13.1
less-loader: 7.3.0_less@3.13.1+webpack@4.46.0
@@ -354,6 +361,7 @@ devDependencies:
msw: 0.47.4_typescript@4.8.4
path-browserify: 1.0.1
pixelmatch: 5.3.0
+ playwright-core: 1.29.2
pngjs: 6.0.0
postcss: 8.4.18
postcss-loader: 4.3.0_dhonik3q6ff6ozbzdscnovq2ka
@@ -2028,6 +2036,16 @@ packages:
resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
dev: true
+ /@hapi/hoek/9.3.0:
+ resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
+ dev: true
+
+ /@hapi/topo/5.1.0:
+ resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
+ dependencies:
+ '@hapi/hoek': 9.3.0
+ dev: true
+
/@hot-loader/react-dom/16.14.0_react@16.14.0:
resolution: {integrity: sha512-EN9czvcLsMYmSDo5yRKZOAq3ZGRlDpad1gPtX0NdMMomJXcPE3yFSeFzE94X/NjOaiSVimB7LuqPYpkWVaIi4Q==}
peerDependencies:
@@ -2071,6 +2089,18 @@ packages:
engines: {node: '>=8'}
dev: true
+ /@jest/console/28.1.3:
+ resolution: {integrity: sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/types': 28.1.3
+ '@types/node': 18.11.9
+ chalk: 4.1.2
+ jest-message-util: 28.1.3
+ jest-util: 28.1.3
+ slash: 3.0.0
+ dev: true
+
/@jest/console/29.3.1:
resolution: {integrity: sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -2083,6 +2113,49 @@ packages:
slash: 3.0.0
dev: true
+ /@jest/core/28.1.3_ts-node@10.9.1:
+ resolution: {integrity: sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+ dependencies:
+ '@jest/console': 28.1.3
+ '@jest/reporters': 28.1.3
+ '@jest/test-result': 28.1.3
+ '@jest/transform': 28.1.3
+ '@jest/types': 28.1.3
+ '@types/node': 18.11.9
+ ansi-escapes: 4.3.2
+ chalk: 4.1.2
+ ci-info: 3.5.0
+ exit: 0.1.2
+ graceful-fs: 4.2.10
+ jest-changed-files: 28.1.3
+ jest-config: 28.1.3_odkjkoia5xunhxkdrka32ib6vi
+ jest-haste-map: 28.1.3
+ jest-message-util: 28.1.3
+ jest-regex-util: 28.0.2
+ jest-resolve: 28.1.3
+ jest-resolve-dependencies: 28.1.3
+ jest-runner: 28.1.3
+ jest-runtime: 28.1.3
+ jest-snapshot: 28.1.3
+ jest-util: 28.1.3
+ jest-validate: 28.1.3
+ jest-watcher: 28.1.3
+ micromatch: 4.0.5
+ pretty-format: 28.1.3
+ rimraf: 3.0.2
+ slash: 3.0.0
+ strip-ansi: 6.0.1
+ transitivePeerDependencies:
+ - supports-color
+ - ts-node
+ dev: true
+
/@jest/core/29.3.1_ts-node@10.9.1:
resolution: {integrity: sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -2125,6 +2198,16 @@ packages:
- ts-node
dev: true
+ /@jest/environment/28.1.3:
+ resolution: {integrity: sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/fake-timers': 28.1.3
+ '@jest/types': 28.1.3
+ '@types/node': 18.11.9
+ jest-mock: 28.1.3
+ dev: true
+
/@jest/environment/29.3.1:
resolution: {integrity: sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -2135,6 +2218,13 @@ packages:
jest-mock: 29.3.1
dev: true
+ /@jest/expect-utils/28.1.3:
+ resolution: {integrity: sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ jest-get-type: 28.0.2
+ dev: true
+
/@jest/expect-utils/29.3.1:
resolution: {integrity: sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -2142,6 +2232,16 @@ packages:
jest-get-type: 29.2.0
dev: true
+ /@jest/expect/28.1.3:
+ resolution: {integrity: sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ expect: 28.1.3
+ jest-snapshot: 28.1.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@jest/expect/29.3.1:
resolution: {integrity: sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -2152,6 +2252,18 @@ packages:
- supports-color
dev: true
+ /@jest/fake-timers/28.1.3:
+ resolution: {integrity: sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/types': 28.1.3
+ '@sinonjs/fake-timers': 9.1.2
+ '@types/node': 18.11.9
+ jest-message-util: 28.1.3
+ jest-mock: 28.1.3
+ jest-util: 28.1.3
+ dev: true
+
/@jest/fake-timers/29.3.1:
resolution: {integrity: sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -2164,6 +2276,17 @@ packages:
jest-util: 29.3.1
dev: true
+ /@jest/globals/28.1.3:
+ resolution: {integrity: sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/environment': 28.1.3
+ '@jest/expect': 28.1.3
+ '@jest/types': 28.1.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@jest/globals/29.3.1:
resolution: {integrity: sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -2176,6 +2299,44 @@ packages:
- supports-color
dev: true
+ /@jest/reporters/28.1.3:
+ resolution: {integrity: sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+ dependencies:
+ '@bcoe/v8-coverage': 0.2.3
+ '@jest/console': 28.1.3
+ '@jest/test-result': 28.1.3
+ '@jest/transform': 28.1.3
+ '@jest/types': 28.1.3
+ '@jridgewell/trace-mapping': 0.3.17
+ '@types/node': 18.11.9
+ chalk: 4.1.2
+ collect-v8-coverage: 1.0.1
+ exit: 0.1.2
+ glob: 7.2.3
+ graceful-fs: 4.2.10
+ istanbul-lib-coverage: 3.2.0
+ istanbul-lib-instrument: 5.2.1
+ istanbul-lib-report: 3.0.0
+ istanbul-lib-source-maps: 4.0.1
+ istanbul-reports: 3.1.5
+ jest-message-util: 28.1.3
+ jest-util: 28.1.3
+ jest-worker: 28.1.3
+ slash: 3.0.0
+ string-length: 4.0.2
+ strip-ansi: 6.0.1
+ terminal-link: 2.1.1
+ v8-to-istanbul: 9.0.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@jest/reporters/29.3.1:
resolution: {integrity: sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -2213,6 +2374,13 @@ packages:
- supports-color
dev: true
+ /@jest/schemas/28.1.3:
+ resolution: {integrity: sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@sinclair/typebox': 0.24.51
+ dev: true
+
/@jest/schemas/29.0.0:
resolution: {integrity: sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -2220,6 +2388,15 @@ packages:
'@sinclair/typebox': 0.24.51
dev: true
+ /@jest/source-map/28.1.2:
+ resolution: {integrity: sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.17
+ callsites: 3.1.0
+ graceful-fs: 4.2.10
+ dev: true
+
/@jest/source-map/29.2.0:
resolution: {integrity: sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -2229,6 +2406,16 @@ packages:
graceful-fs: 4.2.10
dev: true
+ /@jest/test-result/28.1.3:
+ resolution: {integrity: sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/console': 28.1.3
+ '@jest/types': 28.1.3
+ '@types/istanbul-lib-coverage': 2.0.4
+ collect-v8-coverage: 1.0.1
+ dev: true
+
/@jest/test-result/29.3.1:
resolution: {integrity: sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -2239,6 +2426,16 @@ packages:
collect-v8-coverage: 1.0.1
dev: true
+ /@jest/test-sequencer/28.1.3:
+ resolution: {integrity: sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/test-result': 28.1.3
+ graceful-fs: 4.2.10
+ jest-haste-map: 28.1.3
+ slash: 3.0.0
+ dev: true
+
/@jest/test-sequencer/29.3.1:
resolution: {integrity: sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -2272,6 +2469,29 @@ packages:
- supports-color
dev: true
+ /@jest/transform/28.1.3:
+ resolution: {integrity: sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@babel/core': 7.20.2
+ '@jest/types': 28.1.3
+ '@jridgewell/trace-mapping': 0.3.17
+ babel-plugin-istanbul: 6.1.1
+ chalk: 4.1.2
+ convert-source-map: 1.9.0
+ fast-json-stable-stringify: 2.1.0
+ graceful-fs: 4.2.10
+ jest-haste-map: 28.1.3
+ jest-regex-util: 28.0.2
+ jest-util: 28.1.3
+ micromatch: 4.0.5
+ pirates: 4.0.5
+ slash: 3.0.0
+ write-file-atomic: 4.0.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@jest/transform/29.3.1:
resolution: {integrity: sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -2306,6 +2526,18 @@ packages:
chalk: 4.1.2
dev: true
+ /@jest/types/28.1.3:
+ resolution: {integrity: sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/schemas': 28.1.3
+ '@types/istanbul-lib-coverage': 2.0.4
+ '@types/istanbul-reports': 3.0.1
+ '@types/node': 18.11.9
+ '@types/yargs': 17.0.16
+ chalk: 4.1.2
+ dev: true
+
/@jest/types/29.3.1:
resolution: {integrity: sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -2528,14 +2760,14 @@ packages:
resolution: {integrity: sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==}
dev: true
- /@playwright/test/1.28.1:
- resolution: {integrity: sha512-xN6spdqrNlwSn9KabIhqfZR7IWjPpFK1835tFNgjrlysaSezuX8PYUwaz38V/yI8TJLG9PkAMEXoHRXYXlpTPQ==}
+ /@playwright/test/1.29.2:
+ resolution: {integrity: sha512-+3/GPwOgcoF0xLz/opTnahel1/y42PdcgZ4hs+BZGIUjtmEFSXGg+nFoaH3NSmuc7a6GSFwXDJ5L7VXpqzigNg==}
engines: {node: '>=14'}
hasBin: true
dependencies:
'@types/node': 18.11.9
- playwright-core: 1.28.1
- dev: false
+ playwright-core: 1.29.2
+ dev: true
/@pmmmwh/react-refresh-webpack-plugin/0.5.8_a3gyllrqvxpec3fpybsrposvju:
resolution: {integrity: sha512-wxXRwf+IQ6zvHSJZ+5T2RQNEsq+kx4jKRXfFvdt3nBIUzJUAvXEFsUeoaohDe/Kr84MTjGwcuIUPNcstNJORsA==}
@@ -2664,6 +2896,20 @@ packages:
tslib: 1.14.1
dev: false
+ /@sideway/address/4.1.4:
+ resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==}
+ dependencies:
+ '@hapi/hoek': 9.3.0
+ dev: true
+
+ /@sideway/formula/3.0.1:
+ resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==}
+ dev: true
+
+ /@sideway/pinpoint/2.0.0:
+ resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
+ dev: true
+
/@sinclair/typebox/0.24.51:
resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==}
dev: true
@@ -3904,6 +4150,56 @@ packages:
- webpack-command
dev: true
+ /@storybook/test-runner/0.9.3_goaxpva5utls3mxdpvxrfhulsq:
+ resolution: {integrity: sha512-H3tuVn5f+RYD6LBfQHljVOTwUnwjHaP/uSt6TodmnrAbDFQeMDW/wpDlHWEFiJlQaoXnJV3Cj/WgJGsh5REOQA==}
+ hasBin: true
+ dependencies:
+ '@babel/core': 7.20.2
+ '@babel/generator': 7.20.2
+ '@babel/preset-env': 7.20.2_@babel+core@7.20.2
+ '@babel/preset-react': 7.18.6_@babel+core@7.20.2
+ '@babel/preset-typescript': 7.18.6_@babel+core@7.20.2
+ '@babel/template': 7.18.10
+ '@babel/types': 7.20.2
+ '@storybook/core-common': 6.5.14_avaoy7nkomvmxgqg35rmueudvu
+ '@storybook/csf': 0.0.2--canary.4566f4d.1
+ '@storybook/csf-tools': 6.5.14
+ '@storybook/store': 6.5.14_wcqkhtmu7mswc6yz4uyexck3ty
+ can-bind-to-host: 1.1.2
+ commander: 9.4.1
+ expect-playwright: 0.8.0
+ jest: 28.1.3_odkjkoia5xunhxkdrka32ib6vi
+ jest-circus: 28.1.3
+ jest-environment-node: 28.1.3
+ jest-junit: 14.0.1
+ jest-playwright-preset: 2.0.0_qruclkpwe5tgscr3gxibacztji
+ jest-runner: 28.1.3
+ jest-serializer-html: 7.1.0
+ jest-watch-typeahead: 2.2.2_jest@28.1.3
+ node-fetch: 2.6.7
+ playwright: 1.29.2
+ read-pkg-up: 7.0.1
+ regenerator-runtime: 0.13.10
+ semver: 7.3.8
+ tempy: 1.0.1
+ ts-dedent: 2.2.0
+ transitivePeerDependencies:
+ - '@storybook/mdx2-csf'
+ - '@types/node'
+ - debug
+ - encoding
+ - eslint
+ - node-notifier
+ - react
+ - react-dom
+ - supports-color
+ - ts-node
+ - typescript
+ - vue-template-compiler
+ - webpack-cli
+ - webpack-command
+ dev: true
+
/@storybook/theming/6.5.14_wcqkhtmu7mswc6yz4uyexck3ty:
resolution: {integrity: sha512-3ff6RLZGaIil/AFJ0/BRlE2hhdPrC5v6wGbRfroZVmGldRCxio/7+KAA3LH6cuHnjK5MeBcCBaHuxzXqGmbEFw==}
peerDependencies:
@@ -4343,6 +4639,14 @@ packages:
'@types/istanbul-lib-report': 3.0.0
dev: true
+ /@types/jest-image-snapshot/6.1.0:
+ resolution: {integrity: sha512-wYayjKQGdI0ZbmsAq7OPt+5wMMi1CDXXkF3LfoGj4eRC0dOqlYJdXqLwfC89Qf2apQdlL9StgCkw0iTDb8lpUw==}
+ dependencies:
+ '@types/jest': 29.2.4
+ '@types/pixelmatch': 5.2.4
+ ssim.js: 3.5.0
+ dev: true
+
/@types/jest/29.2.4:
resolution: {integrity: sha512-PipFB04k2qTRPePduVLTRiPzQfvMeLwUN3Z21hsAKaB/W9IIzgB2pizCL466ftJlcyZqnHoC9ZHpxLGl3fS86A==}
dependencies:
@@ -4412,6 +4716,7 @@ packages:
/@types/node/18.11.9:
resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==}
+ dev: true
/@types/normalize-package-data/2.4.1:
resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}
@@ -4586,6 +4891,12 @@ packages:
/@types/unist/2.0.6:
resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==}
+ /@types/wait-on/5.3.1:
+ resolution: {integrity: sha512-2FFOKCF/YydrMUaqg+fkk49qf0e5rDgwt6aQsMzFQzbS419h2gNOXyiwp/o2yYy27bi/C1z+HgfncryjGzlvgQ==}
+ dependencies:
+ '@types/node': 18.11.9
+ dev: true
+
/@types/webpack-env/1.18.0:
resolution: {integrity: sha512-56/MAlX5WMsPVbOg7tAxnYvNYMMWr/QJiIp6BxVSW3JJXUVzzOn64qW8TzQyMSqSUFM2+PVI4aUHcHOzIz/1tg==}
dev: true
@@ -5149,6 +5460,13 @@ packages:
type-fest: 0.21.3
dev: true
+ /ansi-escapes/6.0.0:
+ resolution: {integrity: sha512-IG23inYII3dWlU2EyiAiGj6Bwal5GzsgPMwjYGvc1HPE2dgbj4ZB5ToWBKSquKw74nB3TIuOwaI6/jSULzfgrw==}
+ engines: {node: '>=14.16'}
+ dependencies:
+ type-fest: 3.5.3
+ dev: true
+
/ansi-html-community/0.0.8:
resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==}
engines: {'0': node >= 0.8.0}
@@ -5169,6 +5487,11 @@ packages:
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
engines: {node: '>=8'}
+ /ansi-regex/6.0.1:
+ resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
+ engines: {node: '>=12'}
+ dev: true
+
/ansi-styles/3.2.1:
resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
engines: {node: '>=4'}
@@ -5277,6 +5600,13 @@ packages:
resolution: {integrity: sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==}
dev: true
+ /append-transform/2.0.0:
+ resolution: {integrity: sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==}
+ engines: {node: '>=8'}
+ dependencies:
+ default-require-extensions: 3.0.1
+ dev: true
+
/aproba/1.2.0:
resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==}
dev: true
@@ -5289,6 +5619,10 @@ packages:
resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==}
dev: true
+ /archy/1.0.0:
+ resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==}
+ dev: true
+
/are-we-there-yet/2.0.0:
resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
engines: {node: '>=10'}
@@ -5556,6 +5890,14 @@ packages:
engines: {node: '>=4'}
dev: true
+ /axios/0.21.4:
+ resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==}
+ dependencies:
+ follow-redirects: 1.15.2
+ transitivePeerDependencies:
+ - debug
+ dev: true
+
/babel-eslint/10.1.0_eslint@7.32.0:
resolution: {integrity: sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==}
engines: {node: '>=6'}
@@ -5574,6 +5916,24 @@ packages:
- supports-color
dev: true
+ /babel-jest/28.1.3_@babel+core@7.20.2:
+ resolution: {integrity: sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ peerDependencies:
+ '@babel/core': ^7.8.0
+ dependencies:
+ '@babel/core': 7.20.2
+ '@jest/transform': 28.1.3
+ '@types/babel__core': 7.1.19
+ babel-plugin-istanbul: 6.1.1
+ babel-preset-jest: 28.1.3_@babel+core@7.20.2
+ chalk: 4.1.2
+ graceful-fs: 4.2.10
+ slash: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/babel-jest/29.3.1_@babel+core@7.20.2:
resolution: {integrity: sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -5646,6 +6006,16 @@ packages:
- supports-color
dev: true
+ /babel-plugin-jest-hoist/28.1.3:
+ resolution: {integrity: sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@babel/template': 7.18.10
+ '@babel/types': 7.20.2
+ '@types/babel__core': 7.1.19
+ '@types/babel__traverse': 7.18.2
+ dev: true
+
/babel-plugin-jest-hoist/29.2.0:
resolution: {integrity: sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -5740,6 +6110,17 @@ packages:
'@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.2
dev: true
+ /babel-preset-jest/28.1.3_@babel+core@7.20.2:
+ resolution: {integrity: sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.20.2
+ babel-plugin-jest-hoist: 28.1.3
+ babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.2
+ dev: true
+
/babel-preset-jest/29.2.0_@babel+core@7.20.2:
resolution: {integrity: sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -6148,6 +6529,16 @@ packages:
engines: {node: '>=6'}
dev: true
+ /caching-transform/4.0.0:
+ resolution: {integrity: sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==}
+ engines: {node: '>=8'}
+ dependencies:
+ hasha: 5.2.2
+ make-dir: 3.1.0
+ package-hash: 4.0.0
+ write-file-atomic: 3.0.3
+ dev: true
+
/call-bind/1.0.2:
resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
dependencies:
@@ -6228,6 +6619,11 @@ packages:
resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
engines: {node: '>=10'}
+ /can-bind-to-host/1.1.2:
+ resolution: {integrity: sha512-CqsgmaqiyFRNtP17Ihqa/uHbZxRirntNVNl/kJz31DLKuNRfzvzionkLoUSkElQ6Cz+cpXKA3mhHq4tjbieujA==}
+ hasBin: true
+ dev: true
+
/caniuse-api/3.0.0:
resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
dependencies:
@@ -6291,11 +6687,21 @@ packages:
ansi-styles: 4.3.0
supports-color: 7.2.0
+ /chalk/5.2.0:
+ resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+ dev: true
+
/char-regex/1.0.2:
resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
engines: {node: '>=10'}
dev: true
+ /char-regex/2.0.1:
+ resolution: {integrity: sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==}
+ engines: {node: '>=12.20'}
+ dev: true
+
/character-entities-legacy/1.1.4:
resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==}
@@ -6486,6 +6892,14 @@ packages:
wrap-ansi: 5.1.0
dev: true
+ /cliui/6.0.0:
+ resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==}
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 6.2.0
+ dev: true
+
/cliui/7.0.4:
resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
dependencies:
@@ -6605,6 +7019,10 @@ packages:
/commander/2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+ /commander/3.0.2:
+ resolution: {integrity: sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==}
+ dev: true
+
/commander/4.1.1:
resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
engines: {node: '>= 6'}
@@ -6945,6 +7363,11 @@ packages:
randomfill: 1.0.4
dev: true
+ /crypto-random-string/2.0.0:
+ resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
+ engines: {node: '>=8'}
+ dev: true
+
/css-color-names/0.0.4:
resolution: {integrity: sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q==}
dev: true
@@ -7149,6 +7572,14 @@ packages:
dev: true
optional: true
+ /cwd/0.10.0:
+ resolution: {integrity: sha512-YGZxdTTL9lmLkCUTpg4j0zQ7IhRB5ZmqNBbGCl3Tg6MP/d5/6sY7L5mmTjzbc6JKgVZYiqTQTNhPFsbXNGlRaA==}
+ engines: {node: '>=0.8'}
+ dependencies:
+ find-pkg: 0.1.2
+ fs-exists-sync: 0.1.0
+ dev: true
+
/cyclist/1.0.1:
resolution: {integrity: sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A==}
dev: true
@@ -7593,6 +8024,13 @@ packages:
dev: true
optional: true
+ /default-require-extensions/3.0.1:
+ resolution: {integrity: sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==}
+ engines: {node: '>=8'}
+ dependencies:
+ strip-bom: 4.0.0
+ dev: true
+
/defaults/1.0.4:
resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
dependencies:
@@ -7633,6 +8071,20 @@ packages:
isobject: 3.0.1
dev: true
+ /del/6.1.1:
+ resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==}
+ engines: {node: '>=10'}
+ dependencies:
+ globby: 11.1.0
+ graceful-fs: 4.2.10
+ is-glob: 4.0.3
+ is-path-cwd: 2.2.0
+ is-path-inside: 3.0.3
+ p-map: 4.0.0
+ rimraf: 3.0.2
+ slash: 3.0.0
+ dev: true
+
/delayed-stream/1.0.0:
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
engines: {node: '>=0.4.0'}
@@ -7685,6 +8137,11 @@ packages:
- supports-color
dev: true
+ /diff-sequences/28.1.1:
+ resolution: {integrity: sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dev: true
+
/diff-sequences/29.3.1:
resolution: {integrity: sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -7695,6 +8152,12 @@ packages:
engines: {node: '>=0.3.1'}
dev: true
+ /diffable-html/4.1.0:
+ resolution: {integrity: sha512-++kyNek+YBLH8cLXS+iTj/Hiy2s5qkRJEJ8kgu/WHbFrVY2vz9xPFUT+fii2zGF0m1CaojDlQJjkfrCt7YWM1g==}
+ dependencies:
+ htmlparser2: 3.10.1
+ dev: true
+
/diffie-hellman/5.0.3:
resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==}
dependencies:
@@ -7797,6 +8260,12 @@ packages:
webidl-conversions: 7.0.0
dev: true
+ /domhandler/2.4.2:
+ resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==}
+ dependencies:
+ domelementtype: 1.3.1
+ dev: true
+
/domhandler/4.3.1:
resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
engines: {node: '>= 4'}
@@ -7897,6 +8366,11 @@ packages:
minimalistic-crypto-utils: 1.0.1
dev: true
+ /emittery/0.10.2:
+ resolution: {integrity: sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==}
+ engines: {node: '>=12'}
+ dev: true
+
/emittery/0.13.1:
resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
engines: {node: '>=12'}
@@ -7949,6 +8423,10 @@ packages:
ansi-colors: 4.1.3
dev: true
+ /entities/1.1.2:
+ resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==}
+ dev: true
+
/entities/2.2.0:
resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
dev: true
@@ -8046,6 +8524,10 @@ packages:
engines: {node: '>=0.4.0'}
dev: true
+ /es6-error/4.1.1:
+ resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==}
+ dev: true
+
/es6-shim/0.35.6:
resolution: {integrity: sha512-EmTr31wppcaIAgblChZiuN/l9Y7DPyw8Xtbg7fIVngn6zMW+IEBJDJngeKC3x6wr0V/vcA2wqeFnaw1bFJbDdA==}
dev: true
@@ -8654,6 +9136,28 @@ packages:
- supports-color
dev: true
+ /expand-tilde/1.2.2:
+ resolution: {integrity: sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ os-homedir: 1.0.2
+ dev: true
+
+ /expect-playwright/0.8.0:
+ resolution: {integrity: sha512-+kn8561vHAY+dt+0gMqqj1oY+g5xWrsuGMk4QGxotT2WS545nVqqjs37z6hrYfIuucwqthzwJfCJUEYqixyljg==}
+ dev: true
+
+ /expect/28.1.3:
+ resolution: {integrity: sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/expect-utils': 28.1.3
+ jest-get-type: 28.0.2
+ jest-matcher-utils: 28.1.3
+ jest-message-util: 28.1.3
+ jest-util: 28.1.3
+ dev: true
+
/expect/29.3.1:
resolution: {integrity: sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -8972,6 +9476,32 @@ packages:
pkg-dir: 4.2.0
dev: true
+ /find-file-up/0.1.3:
+ resolution: {integrity: sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ fs-exists-sync: 0.1.0
+ resolve-dir: 0.1.1
+ dev: true
+
+ /find-pkg/0.1.2:
+ resolution: {integrity: sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ find-file-up: 0.1.3
+ dev: true
+
+ /find-process/1.4.7:
+ resolution: {integrity: sha512-/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg==}
+ hasBin: true
+ dependencies:
+ chalk: 4.1.2
+ commander: 5.1.0
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/find-up/1.1.2:
resolution: {integrity: sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==}
engines: {node: '>=0.10.0'}
@@ -9035,6 +9565,16 @@ packages:
- encoding
dev: false
+ /follow-redirects/1.15.2:
+ resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+ dev: true
+
/for-each/0.3.3:
resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
dependencies:
@@ -9174,6 +9714,15 @@ packages:
readable-stream: 2.3.7
dev: true
+ /fromentries/1.3.2:
+ resolution: {integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==}
+ dev: true
+
+ /fs-exists-sync/0.1.0:
+ resolution: {integrity: sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
/fs-extra/10.1.0:
resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
engines: {node: '>=12'}
@@ -9306,6 +9855,11 @@ packages:
dev: true
optional: true
+ /get-stdin/5.0.1:
+ resolution: {integrity: sha512-jZV7n6jGE3Gt7fgSTJoz91Ak5MuTLwMwkoYdjxuJ/AmjIsE1UC03y/IWkZCQGEvVNS9qoRNwy5BCqxImv0FVeA==}
+ engines: {node: '>=0.12.0'}
+ dev: true
+
/get-stream/4.1.0:
resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==}
engines: {node: '>=6'}
@@ -9429,6 +9983,24 @@ packages:
ini: 2.0.0
dev: true
+ /global-modules/0.2.3:
+ resolution: {integrity: sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ global-prefix: 0.1.5
+ is-windows: 0.2.0
+ dev: true
+
+ /global-prefix/0.1.5:
+ resolution: {integrity: sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ homedir-polyfill: 1.0.3
+ ini: 1.3.8
+ is-windows: 0.2.0
+ which: 1.3.1
+ dev: true
+
/global/4.4.0:
resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==}
dependencies:
@@ -9482,6 +10054,10 @@ packages:
- supports-color
dev: true
+ /glur/1.1.2:
+ resolution: {integrity: sha512-l+8esYHTKOx2G/Aao4lEQ0bnHWg4fWtJbVoZZT9Knxi01pB8C80BR85nONLFwkkQoFRCmXY+BUcGZN3yZ2QsRA==}
+ dev: true
+
/gopd/1.0.1:
resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
dependencies:
@@ -9598,6 +10174,14 @@ packages:
minimalistic-assert: 1.0.1
dev: true
+ /hasha/5.2.2:
+ resolution: {integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ is-stream: 2.0.1
+ type-fest: 0.8.1
+ dev: true
+
/hast-to-hyperscript/9.0.1:
resolution: {integrity: sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==}
dependencies:
@@ -9694,6 +10278,13 @@ packages:
react-is: 16.13.1
dev: false
+ /homedir-polyfill/1.0.3:
+ resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ parse-passwd: 1.0.0
+ dev: true
+
/hosted-git-info/2.8.9:
resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
dev: true
@@ -9782,6 +10373,17 @@ packages:
webpack: 4.46.0_webpack-cli@4.10.0
dev: true
+ /htmlparser2/3.10.1:
+ resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==}
+ dependencies:
+ domelementtype: 1.3.1
+ domhandler: 2.4.2
+ domutils: 1.7.0
+ entities: 1.1.2
+ inherits: 2.0.4
+ readable-stream: 3.6.0
+ dev: true
+
/htmlparser2/6.1.0:
resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==}
dependencies:
@@ -9984,6 +10586,10 @@ packages:
/inherits/2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+ /ini/1.3.8:
+ resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
+ dev: true
+
/ini/2.0.0:
resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==}
engines: {node: '>=10'}
@@ -10352,6 +10958,11 @@ packages:
resolution: {integrity: sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==}
dev: true
+ /is-path-cwd/2.2.0:
+ resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
+ engines: {node: '>=6'}
+ dev: true
+
/is-path-inside/3.0.3:
resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
engines: {node: '>=8'}
@@ -10474,6 +11085,11 @@ packages:
resolution: {integrity: sha512-uj00kdXyZb9t9RcAUAwMZAnkBUwdYGhYlt7djMXhfyhUCzwNba50tIiBKR7q0l7tdoBtFVw/3JmLY6fI3rmZmg==}
dev: true
+ /is-windows/0.2.0:
+ resolution: {integrity: sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
/is-windows/1.0.2:
resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
engines: {node: '>=0.10.0'}
@@ -10540,6 +11156,25 @@ packages:
engines: {node: '>=8'}
dev: true
+ /istanbul-lib-hook/3.0.0:
+ resolution: {integrity: sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ append-transform: 2.0.0
+ dev: true
+
+ /istanbul-lib-instrument/4.0.3:
+ resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ '@babel/core': 7.20.2
+ '@istanbuljs/schema': 0.1.3
+ istanbul-lib-coverage: 3.2.0
+ semver: 6.3.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/istanbul-lib-instrument/5.2.1:
resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
engines: {node: '>=8'}
@@ -10553,6 +11188,18 @@ packages:
- supports-color
dev: true
+ /istanbul-lib-processinfo/2.0.3:
+ resolution: {integrity: sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==}
+ engines: {node: '>=8'}
+ dependencies:
+ archy: 1.0.0
+ cross-spawn: 7.0.3
+ istanbul-lib-coverage: 3.2.0
+ p-map: 3.0.0
+ rimraf: 3.0.2
+ uuid: 8.3.2
+ dev: true
+
/istanbul-lib-report/3.0.0:
resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==}
engines: {node: '>=8'}
@@ -10599,6 +11246,14 @@ packages:
moo-color: 1.0.3
dev: true
+ /jest-changed-files/28.1.3:
+ resolution: {integrity: sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ execa: 5.1.1
+ p-limit: 3.1.0
+ dev: true
+
/jest-changed-files/29.2.0:
resolution: {integrity: sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -10607,6 +11262,33 @@ packages:
p-limit: 3.1.0
dev: true
+ /jest-circus/28.1.3:
+ resolution: {integrity: sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/environment': 28.1.3
+ '@jest/expect': 28.1.3
+ '@jest/test-result': 28.1.3
+ '@jest/types': 28.1.3
+ '@types/node': 18.11.9
+ chalk: 4.1.2
+ co: 4.6.0
+ dedent: 0.7.0
+ is-generator-fn: 2.1.0
+ jest-each: 28.1.3
+ jest-matcher-utils: 28.1.3
+ jest-message-util: 28.1.3
+ jest-runtime: 28.1.3
+ jest-snapshot: 28.1.3
+ jest-util: 28.1.3
+ p-limit: 3.1.0
+ pretty-format: 28.1.3
+ slash: 3.0.0
+ stack-utils: 2.0.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/jest-circus/29.3.1:
resolution: {integrity: sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -10634,6 +11316,34 @@ packages:
- supports-color
dev: true
+ /jest-cli/28.1.3_odkjkoia5xunhxkdrka32ib6vi:
+ resolution: {integrity: sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ hasBin: true
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+ dependencies:
+ '@jest/core': 28.1.3_ts-node@10.9.1
+ '@jest/test-result': 28.1.3
+ '@jest/types': 28.1.3
+ chalk: 4.1.2
+ exit: 0.1.2
+ graceful-fs: 4.2.10
+ import-local: 3.1.0
+ jest-config: 28.1.3_odkjkoia5xunhxkdrka32ib6vi
+ jest-util: 28.1.3
+ jest-validate: 28.1.3
+ prompts: 2.4.2
+ yargs: 17.6.2
+ transitivePeerDependencies:
+ - '@types/node'
+ - supports-color
+ - ts-node
+ dev: true
+
/jest-cli/29.3.1_odkjkoia5xunhxkdrka32ib6vi:
resolution: {integrity: sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -10662,6 +11372,46 @@ packages:
- ts-node
dev: true
+ /jest-config/28.1.3_odkjkoia5xunhxkdrka32ib6vi:
+ resolution: {integrity: sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ peerDependencies:
+ '@types/node': '*'
+ ts-node: '>=9.0.0'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ ts-node:
+ optional: true
+ dependencies:
+ '@babel/core': 7.20.2
+ '@jest/test-sequencer': 28.1.3
+ '@jest/types': 28.1.3
+ '@types/node': 18.11.9
+ babel-jest: 28.1.3_@babel+core@7.20.2
+ chalk: 4.1.2
+ ci-info: 3.5.0
+ deepmerge: 4.2.2
+ glob: 7.2.3
+ graceful-fs: 4.2.10
+ jest-circus: 28.1.3
+ jest-environment-node: 28.1.3
+ jest-get-type: 28.0.2
+ jest-regex-util: 28.0.2
+ jest-resolve: 28.1.3
+ jest-runner: 28.1.3
+ jest-util: 28.1.3
+ jest-validate: 28.1.3
+ micromatch: 4.0.5
+ parse-json: 5.2.0
+ pretty-format: 28.1.3
+ slash: 3.0.0
+ strip-json-comments: 3.1.1
+ ts-node: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/jest-config/29.3.1_odkjkoia5xunhxkdrka32ib6vi:
resolution: {integrity: sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -10702,6 +11452,16 @@ packages:
- supports-color
dev: true
+ /jest-diff/28.1.3:
+ resolution: {integrity: sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ chalk: 4.1.2
+ diff-sequences: 28.1.1
+ jest-get-type: 28.0.2
+ pretty-format: 28.1.3
+ dev: true
+
/jest-diff/29.3.1:
resolution: {integrity: sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -10712,6 +11472,13 @@ packages:
pretty-format: 29.3.1
dev: true
+ /jest-docblock/28.1.1:
+ resolution: {integrity: sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ detect-newline: 3.1.0
+ dev: true
+
/jest-docblock/29.2.0:
resolution: {integrity: sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -10719,6 +11486,17 @@ packages:
detect-newline: 3.1.0
dev: true
+ /jest-each/28.1.3:
+ resolution: {integrity: sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/types': 28.1.3
+ chalk: 4.1.2
+ jest-get-type: 28.0.2
+ jest-util: 28.1.3
+ pretty-format: 28.1.3
+ dev: true
+
/jest-each/29.3.1:
resolution: {integrity: sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -10753,6 +11531,18 @@ packages:
- utf-8-validate
dev: true
+ /jest-environment-node/28.1.3:
+ resolution: {integrity: sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/environment': 28.1.3
+ '@jest/fake-timers': 28.1.3
+ '@jest/types': 28.1.3
+ '@types/node': 18.11.9
+ jest-mock: 28.1.3
+ jest-util: 28.1.3
+ dev: true
+
/jest-environment-node/29.3.1:
resolution: {integrity: sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -10765,6 +11555,11 @@ packages:
jest-util: 29.3.1
dev: true
+ /jest-get-type/28.0.2:
+ resolution: {integrity: sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dev: true
+
/jest-get-type/29.2.0:
resolution: {integrity: sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -10793,6 +11588,25 @@ packages:
- supports-color
dev: true
+ /jest-haste-map/28.1.3:
+ resolution: {integrity: sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/types': 28.1.3
+ '@types/graceful-fs': 4.1.5
+ '@types/node': 18.11.9
+ anymatch: 3.1.2
+ fb-watchman: 2.0.2
+ graceful-fs: 4.2.10
+ jest-regex-util: 28.0.2
+ jest-util: 28.1.3
+ jest-worker: 28.1.3
+ micromatch: 4.0.5
+ walker: 1.0.8
+ optionalDependencies:
+ fsevents: 2.3.2
+ dev: true
+
/jest-haste-map/29.3.1:
resolution: {integrity: sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -10812,6 +11626,42 @@ packages:
fsevents: 2.3.2
dev: true
+ /jest-image-snapshot/6.1.0_jest@29.3.1:
+ resolution: {integrity: sha512-LZYoks6V1HAkYqyi80gUjMWVsa++Oy0fckAGMLBQseVweZT9AmJNKAINwHLqX1fpeMy2hTG5CCEe4IUX2N3Nmg==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ peerDependencies:
+ jest: '>=20 <=29'
+ dependencies:
+ chalk: 4.1.2
+ get-stdin: 5.0.1
+ glur: 1.1.2
+ jest: 29.3.1_odkjkoia5xunhxkdrka32ib6vi
+ lodash: 4.17.21
+ mkdirp: 0.5.6
+ pixelmatch: 5.3.0
+ pngjs: 3.4.0
+ rimraf: 2.7.1
+ ssim.js: 3.5.0
+ dev: true
+
+ /jest-junit/14.0.1:
+ resolution: {integrity: sha512-h7/wwzPbllgpQhhVcRzRC76/cc89GlazThoV1fDxcALkf26IIlRsu/AcTG64f4nR2WPE3Cbd+i/sVf+NCUHrWQ==}
+ engines: {node: '>=10.12.0'}
+ dependencies:
+ mkdirp: 1.0.4
+ strip-ansi: 6.0.1
+ uuid: 8.3.2
+ xml: 1.0.1
+ dev: true
+
+ /jest-leak-detector/28.1.3:
+ resolution: {integrity: sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ jest-get-type: 28.0.2
+ pretty-format: 28.1.3
+ dev: true
+
/jest-leak-detector/29.3.1:
resolution: {integrity: sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -10820,6 +11670,16 @@ packages:
pretty-format: 29.3.1
dev: true
+ /jest-matcher-utils/28.1.3:
+ resolution: {integrity: sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ chalk: 4.1.2
+ jest-diff: 28.1.3
+ jest-get-type: 28.0.2
+ pretty-format: 28.1.3
+ dev: true
+
/jest-matcher-utils/29.3.1:
resolution: {integrity: sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -10830,6 +11690,21 @@ packages:
pretty-format: 29.3.1
dev: true
+ /jest-message-util/28.1.3:
+ resolution: {integrity: sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@babel/code-frame': 7.18.6
+ '@jest/types': 28.1.3
+ '@types/stack-utils': 2.0.1
+ chalk: 4.1.2
+ graceful-fs: 4.2.10
+ micromatch: 4.0.5
+ pretty-format: 28.1.3
+ slash: 3.0.0
+ stack-utils: 2.0.5
+ dev: true
+
/jest-message-util/29.3.1:
resolution: {integrity: sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -10845,6 +11720,14 @@ packages:
stack-utils: 2.0.5
dev: true
+ /jest-mock/28.1.3:
+ resolution: {integrity: sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/types': 28.1.3
+ '@types/node': 18.11.9
+ dev: true
+
/jest-mock/29.3.1:
resolution: {integrity: sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -10854,6 +11737,41 @@ packages:
jest-util: 29.3.1
dev: true
+ /jest-playwright-preset/2.0.0_qruclkpwe5tgscr3gxibacztji:
+ resolution: {integrity: sha512-pV5ruTJJMen3lwshUL4dlSqLlP8z4q9MXqWJkmy+sB6HYfzXoqBHzhl+5hslznhnSVTe4Dwu+reiiwcUJpYUbw==}
+ peerDependencies:
+ jest: ^28.0.0
+ jest-circus: ^28.0.0
+ jest-environment-node: ^28.0.0
+ jest-runner: ^28.0.0
+ dependencies:
+ expect-playwright: 0.8.0
+ jest: 28.1.3_odkjkoia5xunhxkdrka32ib6vi
+ jest-circus: 28.1.3
+ jest-environment-node: 28.1.3
+ jest-process-manager: 0.3.1
+ jest-runner: 28.1.3
+ nyc: 15.1.0
+ playwright-core: 1.29.2
+ rimraf: 3.0.2
+ uuid: 8.3.2
+ transitivePeerDependencies:
+ - debug
+ - supports-color
+ dev: true
+
+ /jest-pnp-resolver/1.2.2_jest-resolve@28.1.3:
+ resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==}
+ engines: {node: '>=6'}
+ peerDependencies:
+ jest-resolve: '*'
+ peerDependenciesMeta:
+ jest-resolve:
+ optional: true
+ dependencies:
+ jest-resolve: 28.1.3
+ dev: true
+
/jest-pnp-resolver/1.2.2_jest-resolve@29.3.1:
resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==}
engines: {node: '>=6'}
@@ -10866,16 +11784,49 @@ packages:
jest-resolve: 29.3.1
dev: true
+ /jest-process-manager/0.3.1:
+ resolution: {integrity: sha512-x9W54UgZ7IkzUHgXtnI1x4GKOVjxtwW0CA/7yGbTHtT/YhENO0Lic2yfVyC/gekn7OIEMcQmy0L1r9WLQABfqw==}
+ dependencies:
+ '@types/wait-on': 5.3.1
+ chalk: 4.1.2
+ cwd: 0.10.0
+ exit: 0.1.2
+ find-process: 1.4.7
+ prompts: 2.4.2
+ signal-exit: 3.0.7
+ spawnd: 5.0.0
+ tree-kill: 1.2.2
+ wait-on: 5.3.0
+ transitivePeerDependencies:
+ - debug
+ - supports-color
+ dev: true
+
/jest-regex-util/26.0.0:
resolution: {integrity: sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==}
engines: {node: '>= 10.14.2'}
dev: true
+ /jest-regex-util/28.0.2:
+ resolution: {integrity: sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dev: true
+
/jest-regex-util/29.2.0:
resolution: {integrity: sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dev: true
+ /jest-resolve-dependencies/28.1.3:
+ resolution: {integrity: sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ jest-regex-util: 28.0.2
+ jest-snapshot: 28.1.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/jest-resolve-dependencies/29.3.1:
resolution: {integrity: sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -10886,6 +11837,21 @@ packages:
- supports-color
dev: true
+ /jest-resolve/28.1.3:
+ resolution: {integrity: sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ chalk: 4.1.2
+ graceful-fs: 4.2.10
+ jest-haste-map: 28.1.3
+ jest-pnp-resolver: 1.2.2_jest-resolve@28.1.3
+ jest-util: 28.1.3
+ jest-validate: 28.1.3
+ resolve: 1.22.1
+ resolve.exports: 1.1.0
+ slash: 3.0.0
+ dev: true
+
/jest-resolve/29.3.1:
resolution: {integrity: sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -10901,6 +11867,35 @@ packages:
slash: 3.0.0
dev: true
+ /jest-runner/28.1.3:
+ resolution: {integrity: sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/console': 28.1.3
+ '@jest/environment': 28.1.3
+ '@jest/test-result': 28.1.3
+ '@jest/transform': 28.1.3
+ '@jest/types': 28.1.3
+ '@types/node': 18.11.9
+ chalk: 4.1.2
+ emittery: 0.10.2
+ graceful-fs: 4.2.10
+ jest-docblock: 28.1.1
+ jest-environment-node: 28.1.3
+ jest-haste-map: 28.1.3
+ jest-leak-detector: 28.1.3
+ jest-message-util: 28.1.3
+ jest-resolve: 28.1.3
+ jest-runtime: 28.1.3
+ jest-util: 28.1.3
+ jest-watcher: 28.1.3
+ jest-worker: 28.1.3
+ p-limit: 3.1.0
+ source-map-support: 0.5.13
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/jest-runner/29.3.1:
resolution: {integrity: sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -10930,6 +11925,36 @@ packages:
- supports-color
dev: true
+ /jest-runtime/28.1.3:
+ resolution: {integrity: sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/environment': 28.1.3
+ '@jest/fake-timers': 28.1.3
+ '@jest/globals': 28.1.3
+ '@jest/source-map': 28.1.2
+ '@jest/test-result': 28.1.3
+ '@jest/transform': 28.1.3
+ '@jest/types': 28.1.3
+ chalk: 4.1.2
+ cjs-module-lexer: 1.2.2
+ collect-v8-coverage: 1.0.1
+ execa: 5.1.1
+ glob: 7.2.3
+ graceful-fs: 4.2.10
+ jest-haste-map: 28.1.3
+ jest-message-util: 28.1.3
+ jest-mock: 28.1.3
+ jest-regex-util: 28.0.2
+ jest-resolve: 28.1.3
+ jest-snapshot: 28.1.3
+ jest-util: 28.1.3
+ slash: 3.0.0
+ strip-bom: 4.0.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/jest-runtime/29.3.1:
resolution: {integrity: sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -10960,6 +11985,12 @@ packages:
- supports-color
dev: true
+ /jest-serializer-html/7.1.0:
+ resolution: {integrity: sha512-xYL2qC7kmoYHJo8MYqJkzrl/Fdlx+fat4U1AqYg+kafqwcKPiMkOcjWHPKhueuNEgr+uemhGc+jqXYiwCyRyLA==}
+ dependencies:
+ diffable-html: 4.1.0
+ dev: true
+
/jest-serializer/26.6.2:
resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==}
engines: {node: '>= 10.14.2'}
@@ -10968,6 +11999,37 @@ packages:
graceful-fs: 4.2.10
dev: true
+ /jest-snapshot/28.1.3:
+ resolution: {integrity: sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@babel/core': 7.20.2
+ '@babel/generator': 7.20.2
+ '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.20.2
+ '@babel/traverse': 7.20.1
+ '@babel/types': 7.20.2
+ '@jest/expect-utils': 28.1.3
+ '@jest/transform': 28.1.3
+ '@jest/types': 28.1.3
+ '@types/babel__traverse': 7.18.2
+ '@types/prettier': 2.7.1
+ babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.2
+ chalk: 4.1.2
+ expect: 28.1.3
+ graceful-fs: 4.2.10
+ jest-diff: 28.1.3
+ jest-get-type: 28.0.2
+ jest-haste-map: 28.1.3
+ jest-matcher-utils: 28.1.3
+ jest-message-util: 28.1.3
+ jest-util: 28.1.3
+ natural-compare: 1.4.0
+ pretty-format: 28.1.3
+ semver: 7.3.8
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/jest-snapshot/29.3.1:
resolution: {integrity: sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -11012,6 +12074,18 @@ packages:
micromatch: 4.0.5
dev: true
+ /jest-util/28.1.3:
+ resolution: {integrity: sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/types': 28.1.3
+ '@types/node': 18.11.9
+ chalk: 4.1.2
+ ci-info: 3.5.0
+ graceful-fs: 4.2.10
+ picomatch: 2.3.1
+ dev: true
+
/jest-util/29.3.1:
resolution: {integrity: sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -11024,6 +12098,18 @@ packages:
picomatch: 2.3.1
dev: true
+ /jest-validate/28.1.3:
+ resolution: {integrity: sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/types': 28.1.3
+ camelcase: 6.3.0
+ chalk: 4.1.2
+ jest-get-type: 28.0.2
+ leven: 3.1.0
+ pretty-format: 28.1.3
+ dev: true
+
/jest-validate/29.3.1:
resolution: {integrity: sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -11036,6 +12122,36 @@ packages:
pretty-format: 29.3.1
dev: true
+ /jest-watch-typeahead/2.2.2_jest@28.1.3:
+ resolution: {integrity: sha512-+QgOFW4o5Xlgd6jGS5X37i08tuuXNW8X0CV9WNFi+3n8ExCIP+E1melYhvYLjv5fE6D0yyzk74vsSO8I6GqtvQ==}
+ engines: {node: ^14.17.0 || ^16.10.0 || >=18.0.0}
+ peerDependencies:
+ jest: ^27.0.0 || ^28.0.0 || ^29.0.0
+ dependencies:
+ ansi-escapes: 6.0.0
+ chalk: 5.2.0
+ jest: 28.1.3_odkjkoia5xunhxkdrka32ib6vi
+ jest-regex-util: 29.2.0
+ jest-watcher: 29.3.1
+ slash: 5.0.0
+ string-length: 5.0.1
+ strip-ansi: 7.0.1
+ dev: true
+
+ /jest-watcher/28.1.3:
+ resolution: {integrity: sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/test-result': 28.1.3
+ '@jest/types': 28.1.3
+ '@types/node': 18.11.9
+ ansi-escapes: 4.3.2
+ chalk: 4.1.2
+ emittery: 0.10.2
+ jest-util: 28.1.3
+ string-length: 4.0.2
+ dev: true
+
/jest-watcher/29.3.1:
resolution: {integrity: sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -11059,6 +12175,15 @@ packages:
supports-color: 7.2.0
dev: true
+ /jest-worker/28.1.3:
+ resolution: {integrity: sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@types/node': 18.11.9
+ merge-stream: 2.0.0
+ supports-color: 8.1.1
+ dev: true
+
/jest-worker/29.3.1:
resolution: {integrity: sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -11069,6 +12194,26 @@ packages:
supports-color: 8.1.1
dev: true
+ /jest/28.1.3_odkjkoia5xunhxkdrka32ib6vi:
+ resolution: {integrity: sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ hasBin: true
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+ dependencies:
+ '@jest/core': 28.1.3_ts-node@10.9.1
+ '@jest/types': 28.1.3
+ import-local: 3.1.0
+ jest-cli: 28.1.3_odkjkoia5xunhxkdrka32ib6vi
+ transitivePeerDependencies:
+ - '@types/node'
+ - supports-color
+ - ts-node
+ dev: true
+
/jest/29.3.1_odkjkoia5xunhxkdrka32ib6vi:
resolution: {integrity: sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -11089,6 +12234,16 @@ packages:
- ts-node
dev: true
+ /joi/17.7.0:
+ resolution: {integrity: sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==}
+ dependencies:
+ '@hapi/hoek': 9.3.0
+ '@hapi/topo': 5.1.0
+ '@sideway/address': 4.1.4
+ '@sideway/formula': 3.0.1
+ '@sideway/pinpoint': 2.0.0
+ dev: true
+
/js-cookie/2.2.1:
resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==}
dev: false
@@ -11601,6 +12756,10 @@ packages:
/lodash.debounce/4.0.8:
resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
+ /lodash.flattendeep/4.4.0:
+ resolution: {integrity: sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==}
+ dev: true
+
/lodash.flow/3.5.0:
resolution: {integrity: sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw==}
dev: false
@@ -12333,6 +13492,13 @@ packages:
vm-browserify: 1.1.2
dev: true
+ /node-preload/0.2.1:
+ resolution: {integrity: sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ process-on-spawn: 1.0.0
+ dev: true
+
/node-releases/2.0.6:
resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==}
@@ -12409,6 +13575,42 @@ packages:
resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==}
dev: true
+ /nyc/15.1.0:
+ resolution: {integrity: sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==}
+ engines: {node: '>=8.9'}
+ hasBin: true
+ dependencies:
+ '@istanbuljs/load-nyc-config': 1.1.0
+ '@istanbuljs/schema': 0.1.3
+ caching-transform: 4.0.0
+ convert-source-map: 1.9.0
+ decamelize: 1.2.0
+ find-cache-dir: 3.3.2
+ find-up: 4.1.0
+ foreground-child: 2.0.0
+ get-package-type: 0.1.0
+ glob: 7.2.3
+ istanbul-lib-coverage: 3.2.0
+ istanbul-lib-hook: 3.0.0
+ istanbul-lib-instrument: 4.0.3
+ istanbul-lib-processinfo: 2.0.3
+ istanbul-lib-report: 3.0.0
+ istanbul-lib-source-maps: 4.0.1
+ istanbul-reports: 3.1.5
+ make-dir: 3.1.0
+ node-preload: 0.2.1
+ p-map: 3.0.0
+ process-on-spawn: 1.0.0
+ resolve-from: 5.0.0
+ rimraf: 3.0.2
+ signal-exit: 3.0.7
+ spawn-wrap: 2.0.0
+ test-exclude: 6.0.0
+ yargs: 15.4.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/object-assign/4.1.1:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
@@ -12595,7 +13797,6 @@ packages:
resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==}
engines: {node: '>=0.10.0'}
dev: true
- optional: true
/os-tmpdir/1.0.2:
resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
@@ -12702,6 +13903,16 @@ packages:
engines: {node: '>=6'}
dev: true
+ /package-hash/4.0.0:
+ resolution: {integrity: sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ graceful-fs: 4.2.10
+ hasha: 5.2.2
+ lodash.flattendeep: 4.4.0
+ release-zalgo: 1.0.0
+ dev: true
+
/pako/1.0.11:
resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
dev: true
@@ -12779,6 +13990,11 @@ packages:
engines: {node: '>= 0.10'}
dev: false
+ /parse-passwd/1.0.0:
+ resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
/parse5/6.0.1:
resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==}
dev: true
@@ -12973,11 +14189,20 @@ packages:
find-up: 5.0.0
dev: true
- /playwright-core/1.28.1:
- resolution: {integrity: sha512-3PixLnGPno0E8rSBJjtwqTwJe3Yw72QwBBBxNoukIj3lEeBNXwbNiKrNuB1oyQgTBw5QHUhNO3SteEtHaMK6ag==}
+ /playwright-core/1.29.2:
+ resolution: {integrity: sha512-94QXm4PMgFoHAhlCuoWyaBYKb92yOcGVHdQLoxQ7Wjlc7Flg4aC/jbFW7xMR52OfXMVkWicue4WXE7QEegbIRA==}
engines: {node: '>=14'}
hasBin: true
- dev: false
+ dev: true
+
+ /playwright/1.29.2:
+ resolution: {integrity: sha512-hKBYJUtdmYzcjdhYDkP9WGtORwwZBBKAW8+Lz7sr0ZMxtJr04ASXVzH5eBWtDkdb0c3LLFsehfPBTRfvlfKJOA==}
+ engines: {node: '>=14'}
+ hasBin: true
+ requiresBuild: true
+ dependencies:
+ playwright-core: 1.29.2
+ dev: true
/please-upgrade-node/3.2.0:
resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==}
@@ -12985,6 +14210,11 @@ packages:
semver-compare: 1.0.0
dev: true
+ /pngjs/3.4.0:
+ resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==}
+ engines: {node: '>=4.0.0'}
+ dev: true
+
/pngjs/6.0.0:
resolution: {integrity: sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==}
engines: {node: '>=12.13.0'}
@@ -13428,6 +14658,16 @@ packages:
ansi-styles: 5.2.0
react-is: 17.0.2
+ /pretty-format/28.1.3:
+ resolution: {integrity: sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/schemas': 28.1.3
+ ansi-regex: 5.0.1
+ ansi-styles: 5.2.0
+ react-is: 18.2.0
+ dev: true
+
/pretty-format/29.3.1:
resolution: {integrity: sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -13454,6 +14694,13 @@ packages:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
dev: true
+ /process-on-spawn/1.0.0:
+ resolution: {integrity: sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==}
+ engines: {node: '>=8'}
+ dependencies:
+ fromentries: 1.3.2
+ dev: true
+
/process/0.11.10:
resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
engines: {node: '>= 0.6.0'}
@@ -14768,6 +16015,13 @@ packages:
engines: {node: '>= 0.10'}
dev: true
+ /release-zalgo/1.0.0:
+ resolution: {integrity: sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==}
+ engines: {node: '>=4'}
+ dependencies:
+ es6-error: 4.1.1
+ dev: true
+
/remark-external-links/8.0.0:
resolution: {integrity: sha512-5vPSX0kHoSsqtdftSHhIYofVINC8qmp0nctkeU9YoJwV3YfiBRiI6cbFRJ0oI/1F9xS+bopXG0m2KS8VFscuKA==}
dependencies:
@@ -14915,6 +16169,14 @@ packages:
resolve-from: 5.0.0
dev: true
+ /resolve-dir/0.1.1:
+ resolution: {integrity: sha512-QxMPqI6le2u0dCLyiGzgy92kjkkL6zO0XyvHzjdTNH3zM6e5Hz3BwG6+aEyNgiQ5Xz6PwTwgQEj3U50dByPKIA==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ expand-tilde: 1.2.2
+ global-modules: 0.2.3
+ dev: true
+
/resolve-from/3.0.0:
resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==}
engines: {node: '>=4'}
@@ -15393,6 +16655,11 @@ packages:
engines: {node: '>=8'}
dev: true
+ /slash/5.0.0:
+ resolution: {integrity: sha512-n6KkmvKS0623igEVj3FF0OZs1gYYJ0o0Hj939yc1fyxl2xt+xYpLnzJB6xBSqOfV9ZFLEWodBBN/heZJahuIJQ==}
+ engines: {node: '>=14.16'}
+ dev: true
+
/slice-ansi/3.0.0:
resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==}
engines: {node: '>=8'}
@@ -15511,6 +16778,29 @@ packages:
resolution: {integrity: sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==}
dev: true
+ /spawn-wrap/2.0.0:
+ resolution: {integrity: sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==}
+ engines: {node: '>=8'}
+ dependencies:
+ foreground-child: 2.0.0
+ is-windows: 1.0.2
+ make-dir: 3.1.0
+ rimraf: 3.0.2
+ signal-exit: 3.0.7
+ which: 2.0.2
+ dev: true
+
+ /spawnd/5.0.0:
+ resolution: {integrity: sha512-28+AJr82moMVWolQvlAIv3JcYDkjkFTEmfDc503wxrF5l2rQ3dFz6DpbXp3kD4zmgGGldfM4xM4v1sFj/ZaIOA==}
+ dependencies:
+ exit: 0.1.2
+ signal-exit: 3.0.7
+ tree-kill: 1.2.2
+ wait-port: 0.2.14
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/spdx-correct/3.1.1:
resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==}
dependencies:
@@ -15560,6 +16850,10 @@ packages:
tweetnacl: 0.14.5
dev: true
+ /ssim.js/3.5.0:
+ resolution: {integrity: sha512-Aj6Jl2z6oDmgYFFbQqK7fght19bXdOxY7Tj03nF+03M9gCBAjeIiO8/PlEGMfKDwYpw4q6iBqVq2YuREorGg/g==}
+ dev: true
+
/ssri/6.0.2:
resolution: {integrity: sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==}
dependencies:
@@ -15709,6 +17003,14 @@ packages:
strip-ansi: 6.0.1
dev: true
+ /string-length/5.0.1:
+ resolution: {integrity: sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==}
+ engines: {node: '>=12.20'}
+ dependencies:
+ char-regex: 2.0.1
+ strip-ansi: 7.0.1
+ dev: true
+
/string-width/3.1.0:
resolution: {integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==}
engines: {node: '>=6'}
@@ -15816,6 +17118,13 @@ packages:
ansi-regex: 5.0.1
dev: true
+ /strip-ansi/7.0.1:
+ resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==}
+ engines: {node: '>=12'}
+ dependencies:
+ ansi-regex: 6.0.1
+ dev: true
+
/strip-bom/2.0.0:
resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==}
engines: {node: '>=0.10.0'}
@@ -15940,6 +17249,14 @@ packages:
has-flag: 4.0.0
dev: true
+ /supports-hyperlinks/2.3.0:
+ resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==}
+ engines: {node: '>=8'}
+ dependencies:
+ has-flag: 4.0.0
+ supports-color: 7.2.0
+ dev: true
+
/supports-preserve-symlinks-flag/1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
@@ -16024,6 +17341,30 @@ packages:
memoizerific: 1.11.3
dev: true
+ /temp-dir/2.0.0:
+ resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /tempy/1.0.1:
+ resolution: {integrity: sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==}
+ engines: {node: '>=10'}
+ dependencies:
+ del: 6.1.1
+ is-stream: 2.0.1
+ temp-dir: 2.0.0
+ type-fest: 0.16.0
+ unique-string: 2.0.0
+ dev: true
+
+ /terminal-link/2.1.1:
+ resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ ansi-escapes: 4.3.2
+ supports-hyperlinks: 2.3.0
+ dev: true
+
/terser-webpack-plugin/1.4.5_webpack@4.46.0:
resolution: {integrity: sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==}
engines: {node: '>= 6.9.0'}
@@ -16394,6 +17735,11 @@ packages:
engines: {node: '>=4'}
dev: true
+ /type-fest/0.16.0:
+ resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==}
+ engines: {node: '>=10'}
+ dev: true
+
/type-fest/0.20.2:
resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
engines: {node: '>=10'}
@@ -16424,6 +17770,11 @@ packages:
engines: {node: '>=12.20'}
dev: true
+ /type-fest/3.5.3:
+ resolution: {integrity: sha512-V2+og4j/rWReWvaFrse3s9g2xvUv/K9Azm/xo6CjIuq7oeGqsoimC7+9/A3tfvNcbQf8RPSVj/HV81fB4DJrjA==}
+ engines: {node: '>=14.16'}
+ dev: true
+
/type-is/1.6.18:
resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
engines: {node: '>= 0.6'}
@@ -16556,6 +17907,13 @@ packages:
imurmurhash: 0.1.4
dev: true
+ /unique-string/2.0.0:
+ resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
+ engines: {node: '>=8'}
+ dependencies:
+ crypto-random-string: 2.0.0
+ dev: true
+
/unist-builder/2.0.3:
resolution: {integrity: sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==}
dev: true
@@ -16908,6 +18266,32 @@ packages:
xml-name-validator: 4.0.0
dev: true
+ /wait-on/5.3.0:
+ resolution: {integrity: sha512-DwrHrnTK+/0QFaB9a8Ol5Lna3k7WvUR4jzSKmz0YaPBpuN2sACyiPVKVfj6ejnjcajAcvn3wlbTyMIn9AZouOg==}
+ engines: {node: '>=8.9.0'}
+ hasBin: true
+ dependencies:
+ axios: 0.21.4
+ joi: 17.7.0
+ lodash: 4.17.21
+ minimist: 1.2.7
+ rxjs: 6.6.7
+ transitivePeerDependencies:
+ - debug
+ dev: true
+
+ /wait-port/0.2.14:
+ resolution: {integrity: sha512-kIzjWcr6ykl7WFbZd0TMae8xovwqcqbx6FM9l+7agOgUByhzdjfzZBPK2CPufldTOMxbUivss//Sh9MFawmPRQ==}
+ engines: {node: '>=8'}
+ hasBin: true
+ dependencies:
+ chalk: 2.4.2
+ commander: 3.0.2
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/walker/1.0.8:
resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
dependencies:
@@ -17310,6 +18694,10 @@ packages:
engines: {node: '>=12'}
dev: true
+ /xml/1.0.1:
+ resolution: {integrity: sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==}
+ dev: true
+
/xmlchars/2.2.0:
resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
dev: true
@@ -17347,6 +18735,14 @@ packages:
decamelize: 1.2.0
dev: true
+ /yargs-parser/18.1.3:
+ resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==}
+ engines: {node: '>=6'}
+ dependencies:
+ camelcase: 5.3.1
+ decamelize: 1.2.0
+ dev: true
+
/yargs-parser/20.2.9:
resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
engines: {node: '>=10'}
@@ -17372,6 +18768,23 @@ packages:
yargs-parser: 13.1.2
dev: true
+ /yargs/15.4.1:
+ resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==}
+ engines: {node: '>=8'}
+ dependencies:
+ cliui: 6.0.0
+ decamelize: 1.2.0
+ find-up: 4.1.0
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ require-main-filename: 2.0.0
+ set-blocking: 2.0.0
+ string-width: 4.2.3
+ which-module: 2.0.0
+ y18n: 4.0.3
+ yargs-parser: 18.1.3
+ dev: true
+
/yargs/16.2.0:
resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
engines: {node: '>=10'}