From c4d3c03a18b1579fb26d8de4ed5eed6fb053fc9b Mon Sep 17 00:00:00 2001
From: Seyeong Jeon <86130706+skiende74@users.noreply.github.com>
Date: Tue, 8 Oct 2024 10:15:53 +0900
Subject: [PATCH 1/2] =?UTF-8?q?[FE]=20=EC=A0=91=EA=B7=BC=EC=84=B1=20?=
=?UTF-8?q?=EA=B0=9C=EC=84=A0=EC=9D=84=20=EC=9C=84=ED=95=B4=20=EC=9D=B8?=
=?UTF-8?q?=ED=92=8B=ED=95=84=EB=93=9C=EC=9D=98=20label/input=EB=A5=BC=20?=
=?UTF-8?q?=EC=84=9C=EB=A1=9C=20htmlFor,=20id=EB=A1=9C=20=EC=97=B0?=
=?UTF-8?q?=EA=B2=B0=ED=95=9C=EB=8B=A4.=20(#758)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
frontend/playwright-report/index.html | 68 +++++++++++++++++++
.../NewChecklist/NewRoomInfoForm/Address.tsx | 6 +-
.../NewRoomInfoForm/DepositAndRent.tsx | 17 ++++-
.../NewRoomInfoForm/MaintenanceFee.tsx | 11 ++-
.../NewRoomInfoForm/OccupancyMonth.tsx | 10 ++-
.../NewRoomInfoForm/RealEstate.tsx | 3 +-
.../NewRoomInfoForm/RoomContractTerm.tsx | 11 ++-
.../NewRoomInfoForm/RoomFloor.tsx | 3 +-
.../NewChecklist/NewRoomInfoForm/RoomName.tsx | 4 +-
.../NewChecklist/NewRoomInfoForm/RoomSize.tsx | 4 +-
.../NewRoomInfoForm/RoomStructure.tsx | 19 +++---
.../src/components/_common/Badge/Badge.tsx | 2 +-
.../_common/FormField/FormField.tsx | 21 +++---
frontend/test-results/.last-run.json | 4 ++
14 files changed, 148 insertions(+), 35 deletions(-)
create mode 100644 frontend/playwright-report/index.html
create mode 100644 frontend/test-results/.last-run.json
diff --git a/frontend/playwright-report/index.html b/frontend/playwright-report/index.html
new file mode 100644
index 000000000..afc2c0879
--- /dev/null
+++ b/frontend/playwright-report/index.html
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+ Playwright Test Report
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frontend/src/components/NewChecklist/NewRoomInfoForm/Address.tsx b/frontend/src/components/NewChecklist/NewRoomInfoForm/Address.tsx
index 161dabd94..1e13a1a1b 100644
--- a/frontend/src/components/NewChecklist/NewRoomInfoForm/Address.tsx
+++ b/frontend/src/components/NewChecklist/NewRoomInfoForm/Address.tsx
@@ -12,11 +12,11 @@ const Address = () => {
return (
-
+
{address ? (
-
+
) : (
-
+
)}
{/*실시간 위치 모달*/}
diff --git a/frontend/src/components/NewChecklist/NewRoomInfoForm/DepositAndRent.tsx b/frontend/src/components/NewChecklist/NewRoomInfoForm/DepositAndRent.tsx
index 9b0773a04..d4c0f249b 100644
--- a/frontend/src/components/NewChecklist/NewRoomInfoForm/DepositAndRent.tsx
+++ b/frontend/src/components/NewChecklist/NewRoomInfoForm/DepositAndRent.tsx
@@ -17,9 +17,22 @@ const DepositAndRent = () => {
-
+
-
+
diff --git a/frontend/src/components/NewChecklist/NewRoomInfoForm/MaintenanceFee.tsx b/frontend/src/components/NewChecklist/NewRoomInfoForm/MaintenanceFee.tsx
index 8a1016ba5..73bf9f1b6 100644
--- a/frontend/src/components/NewChecklist/NewRoomInfoForm/MaintenanceFee.tsx
+++ b/frontend/src/components/NewChecklist/NewRoomInfoForm/MaintenanceFee.tsx
@@ -12,9 +12,16 @@ const MaintenanceFee = () => {
return (
-
+
-
+
diff --git a/frontend/src/components/NewChecklist/NewRoomInfoForm/OccupancyMonth.tsx b/frontend/src/components/NewChecklist/NewRoomInfoForm/OccupancyMonth.tsx
index 7574aeb4c..7483c3c50 100644
--- a/frontend/src/components/NewChecklist/NewRoomInfoForm/OccupancyMonth.tsx
+++ b/frontend/src/components/NewChecklist/NewRoomInfoForm/OccupancyMonth.tsx
@@ -18,9 +18,15 @@ const OccupancyMonth = () => {
return (
-
+
-
+
{
return (
-
+
{
onChange={actions.onChange}
name={'realEstate'}
value={realEstate}
+ id="realEstate"
/>
diff --git a/frontend/src/components/NewChecklist/NewRoomInfoForm/RoomContractTerm.tsx b/frontend/src/components/NewChecklist/NewRoomInfoForm/RoomContractTerm.tsx
index 9bfe2a479..843e08204 100644
--- a/frontend/src/components/NewChecklist/NewRoomInfoForm/RoomContractTerm.tsx
+++ b/frontend/src/components/NewChecklist/NewRoomInfoForm/RoomContractTerm.tsx
@@ -13,9 +13,16 @@ const RoomContractTerm = () => {
return (
-
+
-
+
diff --git a/frontend/src/components/NewChecklist/NewRoomInfoForm/RoomFloor.tsx b/frontend/src/components/NewChecklist/NewRoomInfoForm/RoomFloor.tsx
index a33be213b..8021d6ad6 100644
--- a/frontend/src/components/NewChecklist/NewRoomInfoForm/RoomFloor.tsx
+++ b/frontend/src/components/NewChecklist/NewRoomInfoForm/RoomFloor.tsx
@@ -21,7 +21,7 @@ const RoomFloor = () => {
};
return (
-
+
{
name="floor"
value={floor}
onChange={actions.onChange}
+ id="floor"
/>
diff --git a/frontend/src/components/NewChecklist/NewRoomInfoForm/RoomName.tsx b/frontend/src/components/NewChecklist/NewRoomInfoForm/RoomName.tsx
index b1604f176..a2bbbee15 100644
--- a/frontend/src/components/NewChecklist/NewRoomInfoForm/RoomName.tsx
+++ b/frontend/src/components/NewChecklist/NewRoomInfoForm/RoomName.tsx
@@ -14,8 +14,8 @@ const RoomName = () => {
return (
-
-
+
+
);
diff --git a/frontend/src/components/NewChecklist/NewRoomInfoForm/RoomSize.tsx b/frontend/src/components/NewChecklist/NewRoomInfoForm/RoomSize.tsx
index 5d2a154e6..6a5f97a94 100644
--- a/frontend/src/components/NewChecklist/NewRoomInfoForm/RoomSize.tsx
+++ b/frontend/src/components/NewChecklist/NewRoomInfoForm/RoomSize.tsx
@@ -12,9 +12,9 @@ const RoomSize = () => {
return (
-
+
-
+
diff --git a/frontend/src/components/NewChecklist/NewRoomInfoForm/RoomStructure.tsx b/frontend/src/components/NewChecklist/NewRoomInfoForm/RoomStructure.tsx
index 805aa2ec5..370b454b3 100644
--- a/frontend/src/components/NewChecklist/NewRoomInfoForm/RoomStructure.tsx
+++ b/frontend/src/components/NewChecklist/NewRoomInfoForm/RoomStructure.tsx
@@ -21,17 +21,18 @@ const RoomStructure = () => {
return (
-
+
{roomStructures.map(structure => (
- handleClickTagButton(structure)}
- />
+
))}
diff --git a/frontend/src/components/_common/Badge/Badge.tsx b/frontend/src/components/_common/Badge/Badge.tsx
index 6174aa1f5..6dbe05813 100644
--- a/frontend/src/components/_common/Badge/Badge.tsx
+++ b/frontend/src/components/_common/Badge/Badge.tsx
@@ -21,7 +21,7 @@ const Badge = ({ size = 'short', label, isSelected = false, onClick, name, ...re
};
return (
-
+
{label}
);
diff --git a/frontend/src/components/_common/FormField/FormField.tsx b/frontend/src/components/_common/FormField/FormField.tsx
index 2404685b3..f814ee01f 100644
--- a/frontend/src/components/_common/FormField/FormField.tsx
+++ b/frontend/src/components/_common/FormField/FormField.tsx
@@ -1,5 +1,5 @@
import styled from '@emotion/styled';
-import { HTMLAttributes } from 'react';
+import { ElementType, HTMLAttributes, LabelHTMLAttributes } from 'react';
import { InputRequiredDot } from '@/assets/assets';
import Input from '@/components/_common/Input/Input';
@@ -8,9 +8,10 @@ import theme from '@/styles/theme';
type GetProps = T extends React.FC ? P : never;
-interface LabelProps extends HTMLAttributes {
+interface LabelProps extends LabelHTMLAttributes {
label: string;
required?: boolean;
+ as?: ElementType;
}
const FormFieldWrapper = styled.div<{ rowGap?: string }>`
@@ -21,13 +22,17 @@ const FormFieldWrapper = styled.div<{ rowGap?: string }>`
`;
const FormField = Object.assign(FormFieldWrapper, {
- Label: ({ label, required = false, ...rest }: LabelProps) => (
-
- {label}
- {required && }
-
+ Label: ({ label, required = false, ...rest }: LabelProps) => {
+ return (
+
+ {label}
+ {required && }
+
+ );
+ },
+ TextBox: ({ text, ...rest }: { text: string } & HTMLAttributes) => (
+ {text}
),
- TextBox: ({ text }: { text: string }) => {text},
Input: ({ ...rest }: GetProps) => ,
ErrorMessage: ({ value, ...rest }: { value?: string } & HTMLAttributes) => (
{value ?? ''}
diff --git a/frontend/test-results/.last-run.json b/frontend/test-results/.last-run.json
new file mode 100644
index 000000000..344ea9e2c
--- /dev/null
+++ b/frontend/test-results/.last-run.json
@@ -0,0 +1,4 @@
+{
+ "status": "interrupted",
+ "failedTests": []
+}
\ No newline at end of file
From 3d2da54d2ee65420f698d8a157fae8c5bd4755d8 Mon Sep 17 00:00:00 2001
From: Seyeong Jeon <86130706+skiende74@users.noreply.github.com>
Date: Tue, 8 Oct 2024 10:20:03 +0900
Subject: [PATCH 2/2] =?UTF-8?q?[FE]=20playwright=20=EC=B4=88=EA=B8=B0?=
=?UTF-8?q?=EC=84=B8=ED=8C=85=ED=95=9C=EB=8B=A4.=20(#761)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.github/workflows/playwright.yml | 32 +++++++++++
frontend/.gitignore | 6 +-
frontend/jest.config.js | 1 +
frontend/package.json | 3 +
frontend/playwright.config.ts | 80 +++++++++++++++++++++++++++
frontend/src/e2e/newChecklist.spec.ts | 10 ++++
frontend/tsconfig.json | 2 +-
frontend/yarn.lock | 70 +++++++++++++++++++++--
8 files changed, 198 insertions(+), 6 deletions(-)
create mode 100644 .github/workflows/playwright.yml
create mode 100644 frontend/playwright.config.ts
create mode 100644 frontend/src/e2e/newChecklist.spec.ts
diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml
new file mode 100644
index 000000000..71d867257
--- /dev/null
+++ b/.github/workflows/playwright.yml
@@ -0,0 +1,32 @@
+name: Playwright Tests
+on:
+ pull_request:
+ branches: [main, dev-fe]
+jobs:
+ test:
+ timeout-minutes: 10
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/setup-node@v4
+ with:
+ node-version: lts/*
+ - name: Install dependencies
+ run: |
+ cd frontend
+ npm install -g yarn && yarn
+ - name: Install Playwright Browsers
+ run: |
+ cd frontend
+ yarn playwright install --with-deps
+ - name: Run Playwright tests
+ run: |
+ cd frontend
+ yarn playwright test
+ - uses: actions/upload-artifact@v4
+ if: ${{ !cancelled() }}
+ with:
+ name: playwright-report
+ path: playwright-report/
+ retention-days: 30
+ working-directory: frontend
diff --git a/frontend/.gitignore b/frontend/.gitignore
index 411160487..23a606e53 100644
--- a/frontend/.gitignore
+++ b/frontend/.gitignore
@@ -23,4 +23,8 @@ stories
.env.sentry-build-plugin
-private*
\ No newline at end of file
+private*
+/test-results/
+/playwright-report/
+/blob-report/
+/playwright/.cache/
diff --git a/frontend/jest.config.js b/frontend/jest.config.js
index 7fccaac75..9b17aa539 100644
--- a/frontend/jest.config.js
+++ b/frontend/jest.config.js
@@ -9,4 +9,5 @@ module.exports = {
'\\.svg': '/src/mocks/svg.ts',
},
testEnvironment: 'jest-environment-jsdom',
+ testPathIgnorePatterns: ['\\.spec\\.ts$'],
};
diff --git a/frontend/package.json b/frontend/package.json
index db790fc0c..a3e4ade62 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -15,6 +15,7 @@
"storybook": "storybook dev -p 6006",
"build-storybook": "storybook build",
"test": "concurrently --names ,[TYPE] --prefix {name} \"jest\" \"tsc --noEmit\"",
+ "e2e": "playwright test",
"postinstall": "cd .. && husky frontend/.husky",
"format": "prettier --cache --write .",
"lint": "eslint --cache .",
@@ -44,6 +45,7 @@
"devDependencies": {
"@chromatic-com/storybook": "^1.6.1",
"@eslint/js": "^8.6.0",
+ "@playwright/test": "^1.47.2",
"@sentry/webpack-plugin": "^2.22.4",
"@storybook/addon-docs": "^8.3.0",
"@storybook/addon-essentials": "^8.2.4",
@@ -62,6 +64,7 @@
"@testing-library/jest-dom": "^6.5.0",
"@testing-library/react": "^16.0.0",
"@types/jest": "^29.5.12",
+ "@types/node": "^22.7.4",
"@types/react": "^18.3.5",
"@types/react-dom": "^18.3.0",
"@webpack-cli/generators": "^3.0.7",
diff --git a/frontend/playwright.config.ts b/frontend/playwright.config.ts
new file mode 100644
index 000000000..2f8b7ed88
--- /dev/null
+++ b/frontend/playwright.config.ts
@@ -0,0 +1,80 @@
+import { defineConfig, devices } from '@playwright/test';
+
+/**
+ * Read environment variables from file.
+ * https://github.com/motdotla/dotenv
+ */
+// import dotenv from 'dotenv';
+// import path from 'path';
+// dotenv.config({ path: path.resolve(__dirname, '.env') });
+
+/**
+ * See https://playwright.dev/docs/test-configuration.
+ */
+export default defineConfig({
+ testDir: './src/e2e',
+ /* Run tests in files in parallel */
+ fullyParallel: true,
+ /* Fail the build on CI if you accidentally left test.only in the source code. */
+ 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,
+ /* Reporter to use. See https://playwright.dev/docs/test-reporters */
+ reporter: 'html',
+ /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
+ use: {
+ /* Base URL to use in actions like `await page.goto('/')`. */
+ baseURL: 'http://127.0.0.1:3000',
+
+ /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
+ trace: 'on-first-retry',
+ actionTimeout: 5000, // await 타임아웃 : 5초로 설정
+ },
+
+ /* Configure projects for major browsers */
+ projects: [
+ {
+ name: 'chromium',
+ use: { ...devices['Desktop Chrome'] },
+ },
+
+ {
+ name: 'firefox',
+ use: { ...devices['Desktop Firefox'] },
+ },
+
+ {
+ name: 'webkit',
+ use: { ...devices['Desktop Safari'] },
+ },
+
+ /* Test against mobile viewports. */
+ // {
+ // name: 'Mobile Chrome',
+ // use: { ...devices['Pixel 5'] },
+ // },
+ // {
+ // name: 'Mobile Safari',
+ // use: { ...devices['iPhone 12'] },
+ // },
+
+ /* Test against branded browsers. */
+ // {
+ // name: 'Microsoft Edge',
+ // use: { ...devices['Desktop Edge'], channel: 'msedge' },
+ // },
+ // {
+ // name: 'Google Chrome',
+ // use: { ...devices['Desktop Chrome'], channel: 'chrome' },
+ // },
+ ],
+
+ /* Run your local dev server before starting the tests */
+ // webServer: {
+ // command: 'npm run start',
+ // url: 'http://127.0.0.1:3000',
+ // reuseExistingServer: !process.env.CI,
+ // },
+});
diff --git a/frontend/src/e2e/newChecklist.spec.ts b/frontend/src/e2e/newChecklist.spec.ts
new file mode 100644
index 000000000..bfd52e358
--- /dev/null
+++ b/frontend/src/e2e/newChecklist.spec.ts
@@ -0,0 +1,10 @@
+import { test } from '@playwright/test';
+
+test('빈 체크리스트를 제출할 수 있다.', async ({ page }) => {
+ await page.goto('http://localhost:3000/');
+ await page.getByRole('button', { name: '방끗 둘러보기' }).click();
+ await page.getByRole('button', { name: '전체 보기' }).click();
+ await page.getByLabel('add').click();
+ await page.getByRole('button', { name: '저장' }).click();
+ await page.getByRole('button', { name: '체크리스트 저장하기' }).click();
+});
diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json
index b7bca3981..19b902153 100644
--- a/frontend/tsconfig.json
+++ b/frontend/tsconfig.json
@@ -20,5 +20,5 @@
"strict": true,
"sourceMap": true
},
- "include": ["src/**/*"]
+ "include": ["src/**/*", "*.ts"]
}
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index e2293cc67..9e5d54231 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -2858,6 +2858,13 @@
resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31"
integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==
+"@playwright/test@^1.47.2":
+ version "1.47.2"
+ resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.47.2.tgz#dbe7051336bfc5cc599954214f9111181dbc7475"
+ integrity sha512-jTXRsoSPONAs8Za9QEQdyjFn+0ZQFjCiIztAIF6bi1HqhBzG9Ma7g1WotyiGqFSBRZjIEqMdT8RUlbk1QVhzCQ==
+ dependencies:
+ playwright "1.47.2"
+
"@polka/url@^1.0.0-next.24":
version "1.0.0-next.25"
resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.25.tgz#f077fdc0b5d0078d30893396ff4827a13f99e817"
@@ -4233,6 +4240,13 @@
dependencies:
undici-types "~5.26.4"
+"@types/node@^22.7.4":
+ version "22.7.4"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-22.7.4.tgz#e35d6f48dca3255ce44256ddc05dee1c23353fcc"
+ integrity sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==
+ dependencies:
+ undici-types "~6.19.2"
+
"@types/normalize-package-data@^2.4.0":
version "2.4.4"
resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901"
@@ -8039,6 +8053,11 @@ fs.realpath@^1.0.0:
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
+fsevents@2.3.2:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
+ integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+
fsevents@^2.1.2, fsevents@^2.3.2, fsevents@~2.3.2:
version "2.3.3"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
@@ -12353,6 +12372,20 @@ pkg-types@^1.1.1:
mlly "^1.7.1"
pathe "^1.1.2"
+playwright-core@1.47.2:
+ version "1.47.2"
+ resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.47.2.tgz#7858da9377fa32a08be46ba47d7523dbd9460a4e"
+ integrity sha512-3JvMfF+9LJfe16l7AbSmU555PaTl2tPyQsVInqm3id16pdDfvZ8TTZ/pyzmkbDrZTQefyzU7AIHlZqQnxpqHVQ==
+
+playwright@1.47.2:
+ version "1.47.2"
+ resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.47.2.tgz#155688aa06491ee21fb3e7555b748b525f86eb20"
+ integrity sha512-nx1cLMmQWqmA3UsnjaaokyoUpdVaaDhJhMoxX2qj3McpjnsqFHs516QAKYhqHAgOP+oCFTEOCOAaD1RgD/RQfA==
+ dependencies:
+ playwright-core "1.47.2"
+ optionalDependencies:
+ fsevents "2.3.2"
+
polished@^4.2.2:
version "4.3.1"
resolved "https://registry.yarnpkg.com/polished/-/polished-4.3.1.tgz#5a00ae32715609f83d89f6f31d0f0261c6170548"
@@ -14039,7 +14072,16 @@ string-length@^4.0.1:
char-regex "^1.0.2"
strip-ansi "^6.0.0"
-"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
+"string-width-cjs@npm:string-width@^4.2.0":
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
+
+"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -14142,7 +14184,14 @@ stringify-object@^3.3.0:
is-obj "^1.0.1"
is-regexp "^1.0.0"
-"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ dependencies:
+ ansi-regex "^5.0.1"
+
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -14912,6 +14961,11 @@ undici-types@~5.26.4:
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
+undici-types@~6.19.2:
+ version "6.19.8"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02"
+ integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==
+
unicode-canonical-property-names-ecmascript@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
@@ -15874,8 +15928,7 @@ workbox-window@7.1.0:
"@types/trusted-types" "^2.0.2"
workbox-core "7.1.0"
-"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
- name wrap-ansi-cjs
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
@@ -15893,6 +15946,15 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0:
string-width "^4.1.0"
strip-ansi "^6.0.0"
+wrap-ansi@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
wrap-ansi@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"