diff --git a/.gitignore b/.gitignore index 54e09eec..50771ef6 100644 --- a/.gitignore +++ b/.gitignore @@ -67,3 +67,6 @@ server/dist public/dist install-state.gz + +.mcp.json +settings.local.json diff --git a/.pnp.cjs b/.pnp.cjs index be2d3818..51a533b1 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -241,6 +241,20 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@asamuzakjp/css-color", [\ + ["npm:3.2.0", {\ + "packageLocation": "./.yarn/cache/@asamuzakjp-css-color-npm-3.2.0-ed5b7465ba-a4bf1c8317.zip/node_modules/@asamuzakjp/css-color/",\ + "packageDependencies": [\ + ["@asamuzakjp/css-color", "npm:3.2.0"],\ + ["@csstools/css-calc", "virtual:ed5b7465ba8cf0eb21975dec62bfcf6d291ea8fcead25822592225aae1675a11a9ab5730181ed5da294a62f7379a3e67d78ef9ef50d04ba4802b6770c14cecdd#npm:2.1.4"],\ + ["@csstools/css-color-parser", "virtual:ed5b7465ba8cf0eb21975dec62bfcf6d291ea8fcead25822592225aae1675a11a9ab5730181ed5da294a62f7379a3e67d78ef9ef50d04ba4802b6770c14cecdd#npm:3.1.0"],\ + ["@csstools/css-parser-algorithms", "virtual:ed5b7465ba8cf0eb21975dec62bfcf6d291ea8fcead25822592225aae1675a11a9ab5730181ed5da294a62f7379a3e67d78ef9ef50d04ba4802b6770c14cecdd#npm:3.0.5"],\ + ["@csstools/css-tokenizer", "npm:3.0.4"],\ + ["lru-cache", "npm:10.4.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@aw-web-design/x-default-browser", [\ ["npm:1.4.126", {\ "packageLocation": "./.yarn/cache/@aw-web-design-x-default-browser-npm-1.4.126-91a892f901-634c7fad7a.zip/node_modules/@aw-web-design/x-default-browser/",\ @@ -3127,6 +3141,100 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@csstools/color-helpers", [\ + ["npm:5.1.0", {\ + "packageLocation": "./.yarn/cache/@csstools-color-helpers-npm-5.1.0-d44a2a6134-b7f99d2e45.zip/node_modules/@csstools/color-helpers/",\ + "packageDependencies": [\ + ["@csstools/color-helpers", "npm:5.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@csstools/css-calc", [\ + ["npm:2.1.4", {\ + "packageLocation": "./.yarn/cache/@csstools-css-calc-npm-2.1.4-81c74a3511-42ce5793e5.zip/node_modules/@csstools/css-calc/",\ + "packageDependencies": [\ + ["@csstools/css-calc", "npm:2.1.4"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:ed5b7465ba8cf0eb21975dec62bfcf6d291ea8fcead25822592225aae1675a11a9ab5730181ed5da294a62f7379a3e67d78ef9ef50d04ba4802b6770c14cecdd#npm:2.1.4", {\ + "packageLocation": "./.yarn/__virtual__/@csstools-css-calc-virtual-768d5baeff/0/cache/@csstools-css-calc-npm-2.1.4-81c74a3511-42ce5793e5.zip/node_modules/@csstools/css-calc/",\ + "packageDependencies": [\ + ["@csstools/css-calc", "virtual:ed5b7465ba8cf0eb21975dec62bfcf6d291ea8fcead25822592225aae1675a11a9ab5730181ed5da294a62f7379a3e67d78ef9ef50d04ba4802b6770c14cecdd#npm:2.1.4"],\ + ["@csstools/css-parser-algorithms", "virtual:ed5b7465ba8cf0eb21975dec62bfcf6d291ea8fcead25822592225aae1675a11a9ab5730181ed5da294a62f7379a3e67d78ef9ef50d04ba4802b6770c14cecdd#npm:3.0.5"],\ + ["@csstools/css-tokenizer", "npm:3.0.4"],\ + ["@types/csstools__css-parser-algorithms", null],\ + ["@types/csstools__css-tokenizer", null]\ + ],\ + "packagePeers": [\ + "@csstools/css-parser-algorithms",\ + "@csstools/css-tokenizer",\ + "@types/csstools__css-parser-algorithms",\ + "@types/csstools__css-tokenizer"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@csstools/css-color-parser", [\ + ["npm:3.1.0", {\ + "packageLocation": "./.yarn/cache/@csstools-css-color-parser-npm-3.1.0-005f6b530f-0e0c670ad5.zip/node_modules/@csstools/css-color-parser/",\ + "packageDependencies": [\ + ["@csstools/css-color-parser", "npm:3.1.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:ed5b7465ba8cf0eb21975dec62bfcf6d291ea8fcead25822592225aae1675a11a9ab5730181ed5da294a62f7379a3e67d78ef9ef50d04ba4802b6770c14cecdd#npm:3.1.0", {\ + "packageLocation": "./.yarn/__virtual__/@csstools-css-color-parser-virtual-67160b3f38/0/cache/@csstools-css-color-parser-npm-3.1.0-005f6b530f-0e0c670ad5.zip/node_modules/@csstools/css-color-parser/",\ + "packageDependencies": [\ + ["@csstools/css-color-parser", "virtual:ed5b7465ba8cf0eb21975dec62bfcf6d291ea8fcead25822592225aae1675a11a9ab5730181ed5da294a62f7379a3e67d78ef9ef50d04ba4802b6770c14cecdd#npm:3.1.0"],\ + ["@csstools/color-helpers", "npm:5.1.0"],\ + ["@csstools/css-calc", "virtual:ed5b7465ba8cf0eb21975dec62bfcf6d291ea8fcead25822592225aae1675a11a9ab5730181ed5da294a62f7379a3e67d78ef9ef50d04ba4802b6770c14cecdd#npm:2.1.4"],\ + ["@csstools/css-parser-algorithms", "virtual:ed5b7465ba8cf0eb21975dec62bfcf6d291ea8fcead25822592225aae1675a11a9ab5730181ed5da294a62f7379a3e67d78ef9ef50d04ba4802b6770c14cecdd#npm:3.0.5"],\ + ["@csstools/css-tokenizer", "npm:3.0.4"],\ + ["@types/csstools__css-parser-algorithms", null],\ + ["@types/csstools__css-tokenizer", null]\ + ],\ + "packagePeers": [\ + "@csstools/css-parser-algorithms",\ + "@csstools/css-tokenizer",\ + "@types/csstools__css-parser-algorithms",\ + "@types/csstools__css-tokenizer"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@csstools/css-parser-algorithms", [\ + ["npm:3.0.5", {\ + "packageLocation": "./.yarn/cache/@csstools-css-parser-algorithms-npm-3.0.5-a0aa2fe05e-d9a1c888bd.zip/node_modules/@csstools/css-parser-algorithms/",\ + "packageDependencies": [\ + ["@csstools/css-parser-algorithms", "npm:3.0.5"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:ed5b7465ba8cf0eb21975dec62bfcf6d291ea8fcead25822592225aae1675a11a9ab5730181ed5da294a62f7379a3e67d78ef9ef50d04ba4802b6770c14cecdd#npm:3.0.5", {\ + "packageLocation": "./.yarn/__virtual__/@csstools-css-parser-algorithms-virtual-acabe76f5f/0/cache/@csstools-css-parser-algorithms-npm-3.0.5-a0aa2fe05e-d9a1c888bd.zip/node_modules/@csstools/css-parser-algorithms/",\ + "packageDependencies": [\ + ["@csstools/css-parser-algorithms", "virtual:ed5b7465ba8cf0eb21975dec62bfcf6d291ea8fcead25822592225aae1675a11a9ab5730181ed5da294a62f7379a3e67d78ef9ef50d04ba4802b6770c14cecdd#npm:3.0.5"],\ + ["@csstools/css-tokenizer", "npm:3.0.4"],\ + ["@types/csstools__css-tokenizer", null]\ + ],\ + "packagePeers": [\ + "@csstools/css-tokenizer",\ + "@types/csstools__css-tokenizer"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@csstools/css-tokenizer", [\ + ["npm:3.0.4", {\ + "packageLocation": "./.yarn/cache/@csstools-css-tokenizer-npm-3.0.4-342d48d326-3b589f8e99.zip/node_modules/@csstools/css-tokenizer/",\ + "packageDependencies": [\ + ["@csstools/css-tokenizer", "npm:3.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@ctrl/tinycolor", [\ ["npm:3.6.1", {\ "packageLocation": "./.yarn/cache/@ctrl-tinycolor-npm-3.6.1-069c7f7e08-444d81612c.zip/node_modules/@ctrl/tinycolor/",\ @@ -3506,6 +3614,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/aix-ppc64", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-aix-ppc64-npm-0.21.5-ebeb42da03/node_modules/@esbuild/aix-ppc64/",\ + "packageDependencies": [\ + ["@esbuild/aix-ppc64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/android-arm", [\ @@ -3522,6 +3637,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/android-arm", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-android-arm-npm-0.21.5-7e30e7b6d7/node_modules/@esbuild/android-arm/",\ + "packageDependencies": [\ + ["@esbuild/android-arm", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/android-arm64", [\ @@ -3538,6 +3660,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/android-arm64", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-android-arm64-npm-0.21.5-916e33d43e/node_modules/@esbuild/android-arm64/",\ + "packageDependencies": [\ + ["@esbuild/android-arm64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/android-x64", [\ @@ -3554,6 +3683,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/android-x64", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-android-x64-npm-0.21.5-07abfd6fa9/node_modules/@esbuild/android-x64/",\ + "packageDependencies": [\ + ["@esbuild/android-x64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/darwin-arm64", [\ @@ -3570,6 +3706,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/darwin-arm64", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-darwin-arm64-npm-0.21.5-62349c1520/node_modules/@esbuild/darwin-arm64/",\ + "packageDependencies": [\ + ["@esbuild/darwin-arm64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/darwin-x64", [\ @@ -3586,6 +3729,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/darwin-x64", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-darwin-x64-npm-0.21.5-491c2ae06c/node_modules/@esbuild/darwin-x64/",\ + "packageDependencies": [\ + ["@esbuild/darwin-x64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/freebsd-arm64", [\ @@ -3602,6 +3752,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/freebsd-arm64", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-freebsd-arm64-npm-0.21.5-2465c8f200/node_modules/@esbuild/freebsd-arm64/",\ + "packageDependencies": [\ + ["@esbuild/freebsd-arm64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/freebsd-x64", [\ @@ -3618,6 +3775,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/freebsd-x64", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-freebsd-x64-npm-0.21.5-f866a2f0cc/node_modules/@esbuild/freebsd-x64/",\ + "packageDependencies": [\ + ["@esbuild/freebsd-x64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-arm", [\ @@ -3634,6 +3798,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/linux-arm", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-arm-npm-0.21.5-9485bcbfc7/node_modules/@esbuild/linux-arm/",\ + "packageDependencies": [\ + ["@esbuild/linux-arm", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-arm64", [\ @@ -3650,6 +3821,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/linux-arm64", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-arm64-npm-0.21.5-c6a54cd648/node_modules/@esbuild/linux-arm64/",\ + "packageDependencies": [\ + ["@esbuild/linux-arm64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-ia32", [\ @@ -3666,6 +3844,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/linux-ia32", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-ia32-npm-0.21.5-499a15b672/node_modules/@esbuild/linux-ia32/",\ + "packageDependencies": [\ + ["@esbuild/linux-ia32", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-loong64", [\ @@ -3682,6 +3867,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/linux-loong64", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-loong64-npm-0.21.5-b2d213a264/node_modules/@esbuild/linux-loong64/",\ + "packageDependencies": [\ + ["@esbuild/linux-loong64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-mips64el", [\ @@ -3698,6 +3890,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/linux-mips64el", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-mips64el-npm-0.21.5-6534e468c0/node_modules/@esbuild/linux-mips64el/",\ + "packageDependencies": [\ + ["@esbuild/linux-mips64el", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-ppc64", [\ @@ -3714,6 +3913,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/linux-ppc64", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-ppc64-npm-0.21.5-38298ce68c/node_modules/@esbuild/linux-ppc64/",\ + "packageDependencies": [\ + ["@esbuild/linux-ppc64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-riscv64", [\ @@ -3730,6 +3936,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/linux-riscv64", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-riscv64-npm-0.21.5-73ca00d59e/node_modules/@esbuild/linux-riscv64/",\ + "packageDependencies": [\ + ["@esbuild/linux-riscv64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-s390x", [\ @@ -3746,6 +3959,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/linux-s390x", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-s390x-npm-0.21.5-44720430f0/node_modules/@esbuild/linux-s390x/",\ + "packageDependencies": [\ + ["@esbuild/linux-s390x", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-x64", [\ @@ -3762,6 +3982,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/linux-x64", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-x64-npm-0.21.5-88079726c4/node_modules/@esbuild/linux-x64/",\ + "packageDependencies": [\ + ["@esbuild/linux-x64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/netbsd-x64", [\ @@ -3778,6 +4005,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/netbsd-x64", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-netbsd-x64-npm-0.21.5-5f21539ffa/node_modules/@esbuild/netbsd-x64/",\ + "packageDependencies": [\ + ["@esbuild/netbsd-x64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/openbsd-x64", [\ @@ -3794,6 +4028,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/openbsd-x64", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-openbsd-x64-npm-0.21.5-23fbf4de2b/node_modules/@esbuild/openbsd-x64/",\ + "packageDependencies": [\ + ["@esbuild/openbsd-x64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/sunos-x64", [\ @@ -3810,6 +4051,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/sunos-x64", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-sunos-x64-npm-0.21.5-855a15205a/node_modules/@esbuild/sunos-x64/",\ + "packageDependencies": [\ + ["@esbuild/sunos-x64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/win32-arm64", [\ @@ -3826,6 +4074,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/win32-arm64", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-win32-arm64-npm-0.21.5-d0ef444aab/node_modules/@esbuild/win32-arm64/",\ + "packageDependencies": [\ + ["@esbuild/win32-arm64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/win32-ia32", [\ @@ -3842,6 +4097,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/win32-ia32", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-win32-ia32-npm-0.21.5-a4fb03dad4/node_modules/@esbuild/win32-ia32/",\ + "packageDependencies": [\ + ["@esbuild/win32-ia32", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/win32-x64", [\ @@ -3858,6 +4120,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/win32-x64", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-win32-x64-npm-0.21.5-eddc2b5ad6/node_modules/@esbuild/win32-x64/",\ + "packageDependencies": [\ + ["@esbuild/win32-x64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@eslint-community/eslint-utils", [\ @@ -4042,6 +4311,93 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@inquirer/ansi", [\ + ["npm:2.0.5", {\ + "packageLocation": "./.yarn/cache/@inquirer-ansi-npm-2.0.5-8af5e6ad44-ad61532e5b.zip/node_modules/@inquirer/ansi/",\ + "packageDependencies": [\ + ["@inquirer/ansi", "npm:2.0.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@inquirer/confirm", [\ + ["npm:6.0.12", {\ + "packageLocation": "./.yarn/cache/@inquirer-confirm-npm-6.0.12-6d7d2fbcfc-36e9b1ef60.zip/node_modules/@inquirer/confirm/",\ + "packageDependencies": [\ + ["@inquirer/confirm", "npm:6.0.12"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:7e2aa39288a9bb75e6200124f1541c326c6028243dab00aa6c226e8828b558fe1489c4fd366fd37df54589d43d1f0c314c8cc2e624701deeaf35e2766fd42c47#npm:6.0.12", {\ + "packageLocation": "./.yarn/__virtual__/@inquirer-confirm-virtual-e16cf0e037/0/cache/@inquirer-confirm-npm-6.0.12-6d7d2fbcfc-36e9b1ef60.zip/node_modules/@inquirer/confirm/",\ + "packageDependencies": [\ + ["@inquirer/confirm", "virtual:7e2aa39288a9bb75e6200124f1541c326c6028243dab00aa6c226e8828b558fe1489c4fd366fd37df54589d43d1f0c314c8cc2e624701deeaf35e2766fd42c47#npm:6.0.12"],\ + ["@inquirer/core", "virtual:e16cf0e037e9dd550d338c6cad8ae802d855d5a39c64b1ef1a16eb54637cba28b15da825e30e4681240e412130a394c51848193b2f43a6d64a0eb127d1147206#npm:11.1.9"],\ + ["@inquirer/type", "virtual:e16cf0e037e9dd550d338c6cad8ae802d855d5a39c64b1ef1a16eb54637cba28b15da825e30e4681240e412130a394c51848193b2f43a6d64a0eb127d1147206#npm:4.0.5"],\ + ["@types/node", null]\ + ],\ + "packagePeers": [\ + "@types/node"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@inquirer/core", [\ + ["npm:11.1.9", {\ + "packageLocation": "./.yarn/cache/@inquirer-core-npm-11.1.9-6370fda053-f7b162ce5f.zip/node_modules/@inquirer/core/",\ + "packageDependencies": [\ + ["@inquirer/core", "npm:11.1.9"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:e16cf0e037e9dd550d338c6cad8ae802d855d5a39c64b1ef1a16eb54637cba28b15da825e30e4681240e412130a394c51848193b2f43a6d64a0eb127d1147206#npm:11.1.9", {\ + "packageLocation": "./.yarn/__virtual__/@inquirer-core-virtual-c4f6012aa9/0/cache/@inquirer-core-npm-11.1.9-6370fda053-f7b162ce5f.zip/node_modules/@inquirer/core/",\ + "packageDependencies": [\ + ["@inquirer/core", "virtual:e16cf0e037e9dd550d338c6cad8ae802d855d5a39c64b1ef1a16eb54637cba28b15da825e30e4681240e412130a394c51848193b2f43a6d64a0eb127d1147206#npm:11.1.9"],\ + ["@inquirer/ansi", "npm:2.0.5"],\ + ["@inquirer/figures", "npm:2.0.5"],\ + ["@inquirer/type", "virtual:e16cf0e037e9dd550d338c6cad8ae802d855d5a39c64b1ef1a16eb54637cba28b15da825e30e4681240e412130a394c51848193b2f43a6d64a0eb127d1147206#npm:4.0.5"],\ + ["@types/node", null],\ + ["cli-width", "npm:4.1.0"],\ + ["fast-wrap-ansi", "npm:0.2.0"],\ + ["mute-stream", "npm:3.0.0"],\ + ["signal-exit", "npm:4.1.0"]\ + ],\ + "packagePeers": [\ + "@types/node"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@inquirer/figures", [\ + ["npm:2.0.5", {\ + "packageLocation": "./.yarn/cache/@inquirer-figures-npm-2.0.5-6cb995d689-139671b88f.zip/node_modules/@inquirer/figures/",\ + "packageDependencies": [\ + ["@inquirer/figures", "npm:2.0.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@inquirer/type", [\ + ["npm:4.0.5", {\ + "packageLocation": "./.yarn/cache/@inquirer-type-npm-4.0.5-c68ee3257f-390edb0fd1.zip/node_modules/@inquirer/type/",\ + "packageDependencies": [\ + ["@inquirer/type", "npm:4.0.5"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:e16cf0e037e9dd550d338c6cad8ae802d855d5a39c64b1ef1a16eb54637cba28b15da825e30e4681240e412130a394c51848193b2f43a6d64a0eb127d1147206#npm:4.0.5", {\ + "packageLocation": "./.yarn/__virtual__/@inquirer-type-virtual-e0de942d8b/0/cache/@inquirer-type-npm-4.0.5-c68ee3257f-390edb0fd1.zip/node_modules/@inquirer/type/",\ + "packageDependencies": [\ + ["@inquirer/type", "virtual:e16cf0e037e9dd550d338c6cad8ae802d855d5a39c64b1ef1a16eb54637cba28b15da825e30e4681240e412130a394c51848193b2f43a6d64a0eb127d1147206#npm:4.0.5"],\ + ["@types/node", null]\ + ],\ + "packagePeers": [\ + "@types/node"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@isaacs/cliui", [\ ["npm:8.0.2", {\ "packageLocation": "./.yarn/cache/@isaacs-cliui-npm-8.0.2-f4364666d5-b1bf42535d.zip/node_modules/@isaacs/cliui/",\ @@ -4217,6 +4573,13 @@ const RAW_RUNTIME_STATE = ["@jridgewell/sourcemap-codec", "npm:1.4.15"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.5.5", {\ + "packageLocation": "./.yarn/cache/@jridgewell-sourcemap-codec-npm-1.5.5-5189d9fc79-f9e538f302.zip/node_modules/@jridgewell/sourcemap-codec/",\ + "packageDependencies": [\ + ["@jridgewell/sourcemap-codec", "npm:1.5.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@jridgewell/trace-mapping", [\ @@ -4353,6 +4716,21 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@mswjs/interceptors", [\ + ["npm:0.41.8", {\ + "packageLocation": "./.yarn/cache/@mswjs-interceptors-npm-0.41.8-4b2fae0579-6ffe97fc7a.zip/node_modules/@mswjs/interceptors/",\ + "packageDependencies": [\ + ["@mswjs/interceptors", "npm:0.41.8"],\ + ["@open-draft/deferred-promise", "npm:2.2.0"],\ + ["@open-draft/logger", "npm:0.3.0"],\ + ["@open-draft/until", "npm:2.1.0"],\ + ["is-node-process", "npm:1.2.0"],\ + ["outvariant", "npm:1.4.3"],\ + ["strict-event-emitter", "npm:0.5.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@ndelangen/get-tarball", [\ ["npm:3.0.9", {\ "packageLocation": "./.yarn/cache/@ndelangen-get-tarball-npm-3.0.9-c4692f22a4-d66e76c6c9.zip/node_modules/@ndelangen/get-tarball/",\ @@ -4420,6 +4798,42 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@open-draft/deferred-promise", [\ + ["npm:2.2.0", {\ + "packageLocation": "./.yarn/cache/@open-draft-deferred-promise-npm-2.2.0-adf396dc9f-eafc1b1d0f.zip/node_modules/@open-draft/deferred-promise/",\ + "packageDependencies": [\ + ["@open-draft/deferred-promise", "npm:2.2.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.0.0", {\ + "packageLocation": "./.yarn/cache/@open-draft-deferred-promise-npm-3.0.0-f8ff16b581-4dd697e554.zip/node_modules/@open-draft/deferred-promise/",\ + "packageDependencies": [\ + ["@open-draft/deferred-promise", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@open-draft/logger", [\ + ["npm:0.3.0", {\ + "packageLocation": "./.yarn/cache/@open-draft-logger-npm-0.3.0-12b03e55aa-90010647b2.zip/node_modules/@open-draft/logger/",\ + "packageDependencies": [\ + ["@open-draft/logger", "npm:0.3.0"],\ + ["is-node-process", "npm:1.2.0"],\ + ["outvariant", "npm:1.4.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@open-draft/until", [\ + ["npm:2.1.0", {\ + "packageLocation": "./.yarn/cache/@open-draft-until-npm-2.1.0-e27da33c52-61d3f99718.zip/node_modules/@open-draft/until/",\ + "packageDependencies": [\ + ["@open-draft/until", "npm:2.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@pkgjs/parseargs", [\ ["npm:0.11.0", {\ "packageLocation": "./.yarn/cache/@pkgjs-parseargs-npm-0.11.0-cd2a3fe948-5bd7576bb1.zip/node_modules/@pkgjs/parseargs/",\ @@ -4438,6 +4852,16 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@playwright/test", [\ + ["npm:1.59.1", {\ + "packageLocation": "./.yarn/cache/@playwright-test-npm-1.59.1-8a59644a90-8c2d94a860.zip/node_modules/@playwright/test/",\ + "packageDependencies": [\ + ["@playwright/test", "npm:1.59.1"],\ + ["playwright", "npm:1.59.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@radix-ui/number", [\ ["npm:1.0.1", {\ "packageLocation": "./.yarn/cache/@radix-ui-number-npm-1.0.1-167c973d35-42e4870cd1.zip/node_modules/@radix-ui/number/",\ @@ -6284,6 +6708,13 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@rollup/rollup-android-arm-eabi", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-android-arm-eabi-npm-4.60.2-71c565341c/node_modules/@rollup/rollup-android-arm-eabi/",\ + "packageDependencies": [\ + ["@rollup/rollup-android-arm-eabi", "npm:4.60.2"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:4.9.5", {\ "packageLocation": "./.yarn/unplugged/@rollup-rollup-android-arm-eabi-npm-4.9.5-61e16d95f2/node_modules/@rollup/rollup-android-arm-eabi/",\ "packageDependencies": [\ @@ -6293,6 +6724,13 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@rollup/rollup-android-arm64", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-android-arm64-npm-4.60.2-6d8278e570/node_modules/@rollup/rollup-android-arm64/",\ + "packageDependencies": [\ + ["@rollup/rollup-android-arm64", "npm:4.60.2"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:4.9.5", {\ "packageLocation": "./.yarn/unplugged/@rollup-rollup-android-arm64-npm-4.9.5-6ccfc7470d/node_modules/@rollup/rollup-android-arm64/",\ "packageDependencies": [\ @@ -6302,6 +6740,13 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@rollup/rollup-darwin-arm64", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-darwin-arm64-npm-4.60.2-f1fd9c6149/node_modules/@rollup/rollup-darwin-arm64/",\ + "packageDependencies": [\ + ["@rollup/rollup-darwin-arm64", "npm:4.60.2"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:4.9.5", {\ "packageLocation": "./.yarn/unplugged/@rollup-rollup-darwin-arm64-npm-4.9.5-16e34a3e7b/node_modules/@rollup/rollup-darwin-arm64/",\ "packageDependencies": [\ @@ -6311,6 +6756,13 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@rollup/rollup-darwin-x64", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-darwin-x64-npm-4.60.2-d7fc3c1a3a/node_modules/@rollup/rollup-darwin-x64/",\ + "packageDependencies": [\ + ["@rollup/rollup-darwin-x64", "npm:4.60.2"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:4.9.5", {\ "packageLocation": "./.yarn/unplugged/@rollup-rollup-darwin-x64-npm-4.9.5-b519416430/node_modules/@rollup/rollup-darwin-x64/",\ "packageDependencies": [\ @@ -6319,26 +6771,74 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ - ["@rollup/rollup-linux-arm-gnueabihf", [\ - ["npm:4.9.5", {\ - "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-arm-gnueabihf-npm-4.9.5-40be8c3d35/node_modules/@rollup/rollup-linux-arm-gnueabihf/",\ + ["@rollup/rollup-freebsd-arm64", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-freebsd-arm64-npm-4.60.2-cf6f286b9a/node_modules/@rollup/rollup-freebsd-arm64/",\ "packageDependencies": [\ - ["@rollup/rollup-linux-arm-gnueabihf", "npm:4.9.5"]\ + ["@rollup/rollup-freebsd-arm64", "npm:4.60.2"]\ ],\ "linkType": "HARD"\ }]\ ]],\ - ["@rollup/rollup-linux-arm64-gnu", [\ - ["npm:4.9.5", {\ - "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-arm64-gnu-npm-4.9.5-9441a712f1/node_modules/@rollup/rollup-linux-arm64-gnu/",\ + ["@rollup/rollup-freebsd-x64", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-freebsd-x64-npm-4.60.2-d606b454cb/node_modules/@rollup/rollup-freebsd-x64/",\ "packageDependencies": [\ - ["@rollup/rollup-linux-arm64-gnu", "npm:4.9.5"]\ + ["@rollup/rollup-freebsd-x64", "npm:4.60.2"]\ ],\ "linkType": "HARD"\ }]\ ]],\ - ["@rollup/rollup-linux-arm64-musl", [\ - ["npm:4.9.5", {\ + ["@rollup/rollup-linux-arm-gnueabihf", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-arm-gnueabihf-npm-4.60.2-2566e33606/node_modules/@rollup/rollup-linux-arm-gnueabihf/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-arm-gnueabihf", "npm:4.60.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.9.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-arm-gnueabihf-npm-4.9.5-40be8c3d35/node_modules/@rollup/rollup-linux-arm-gnueabihf/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-arm-gnueabihf", "npm:4.9.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-linux-arm-musleabihf", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-arm-musleabihf-npm-4.60.2-7b65868f98/node_modules/@rollup/rollup-linux-arm-musleabihf/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-arm-musleabihf", "npm:4.60.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-linux-arm64-gnu", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-arm64-gnu-npm-4.60.2-7fd0d28e0e/node_modules/@rollup/rollup-linux-arm64-gnu/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-arm64-gnu", "npm:4.60.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.9.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-arm64-gnu-npm-4.9.5-9441a712f1/node_modules/@rollup/rollup-linux-arm64-gnu/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-arm64-gnu", "npm:4.9.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-linux-arm64-musl", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-arm64-musl-npm-4.60.2-b89d5a75c1/node_modules/@rollup/rollup-linux-arm64-musl/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-arm64-musl", "npm:4.60.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.9.5", {\ "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-arm64-musl-npm-4.9.5-f4080391bd/node_modules/@rollup/rollup-linux-arm64-musl/",\ "packageDependencies": [\ ["@rollup/rollup-linux-arm64-musl", "npm:4.9.5"]\ @@ -6346,7 +6846,50 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@rollup/rollup-linux-loong64-gnu", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-loong64-gnu-npm-4.60.2-f8e6426200/node_modules/@rollup/rollup-linux-loong64-gnu/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-loong64-gnu", "npm:4.60.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-linux-loong64-musl", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-loong64-musl-npm-4.60.2-16d52ed3b7/node_modules/@rollup/rollup-linux-loong64-musl/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-loong64-musl", "npm:4.60.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-linux-ppc64-gnu", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-ppc64-gnu-npm-4.60.2-afcf799166/node_modules/@rollup/rollup-linux-ppc64-gnu/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-ppc64-gnu", "npm:4.60.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-linux-ppc64-musl", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-ppc64-musl-npm-4.60.2-5c21c51159/node_modules/@rollup/rollup-linux-ppc64-musl/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-ppc64-musl", "npm:4.60.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@rollup/rollup-linux-riscv64-gnu", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-riscv64-gnu-npm-4.60.2-8646365256/node_modules/@rollup/rollup-linux-riscv64-gnu/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-riscv64-gnu", "npm:4.60.2"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:4.9.5", {\ "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-riscv64-gnu-npm-4.9.5-d720fe8d34/node_modules/@rollup/rollup-linux-riscv64-gnu/",\ "packageDependencies": [\ @@ -6355,7 +6898,32 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@rollup/rollup-linux-riscv64-musl", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-riscv64-musl-npm-4.60.2-919094f3c2/node_modules/@rollup/rollup-linux-riscv64-musl/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-riscv64-musl", "npm:4.60.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-linux-s390x-gnu", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-s390x-gnu-npm-4.60.2-23ea4f6333/node_modules/@rollup/rollup-linux-s390x-gnu/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-s390x-gnu", "npm:4.60.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@rollup/rollup-linux-x64-gnu", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-x64-gnu-npm-4.60.2-37a65134ce/node_modules/@rollup/rollup-linux-x64-gnu/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-x64-gnu", "npm:4.60.2"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:4.9.5", {\ "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-x64-gnu-npm-4.9.5-dc241948bc/node_modules/@rollup/rollup-linux-x64-gnu/",\ "packageDependencies": [\ @@ -6365,6 +6933,13 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@rollup/rollup-linux-x64-musl", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-x64-musl-npm-4.60.2-463db9bff5/node_modules/@rollup/rollup-linux-x64-musl/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-x64-musl", "npm:4.60.2"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:4.9.5", {\ "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-x64-musl-npm-4.9.5-fed94cd7c4/node_modules/@rollup/rollup-linux-x64-musl/",\ "packageDependencies": [\ @@ -6373,7 +6948,32 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@rollup/rollup-openbsd-x64", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-openbsd-x64-npm-4.60.2-f2724864cd/node_modules/@rollup/rollup-openbsd-x64/",\ + "packageDependencies": [\ + ["@rollup/rollup-openbsd-x64", "npm:4.60.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-openharmony-arm64", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-openharmony-arm64-npm-4.60.2-aa66809329/node_modules/@rollup/rollup-openharmony-arm64/",\ + "packageDependencies": [\ + ["@rollup/rollup-openharmony-arm64", "npm:4.60.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@rollup/rollup-win32-arm64-msvc", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-win32-arm64-msvc-npm-4.60.2-3ef030b183/node_modules/@rollup/rollup-win32-arm64-msvc/",\ + "packageDependencies": [\ + ["@rollup/rollup-win32-arm64-msvc", "npm:4.60.2"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:4.9.5", {\ "packageLocation": "./.yarn/unplugged/@rollup-rollup-win32-arm64-msvc-npm-4.9.5-ffba176332/node_modules/@rollup/rollup-win32-arm64-msvc/",\ "packageDependencies": [\ @@ -6383,6 +6983,13 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@rollup/rollup-win32-ia32-msvc", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-win32-ia32-msvc-npm-4.60.2-481817b574/node_modules/@rollup/rollup-win32-ia32-msvc/",\ + "packageDependencies": [\ + ["@rollup/rollup-win32-ia32-msvc", "npm:4.60.2"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:4.9.5", {\ "packageLocation": "./.yarn/unplugged/@rollup-rollup-win32-ia32-msvc-npm-4.9.5-f1996a16ec/node_modules/@rollup/rollup-win32-ia32-msvc/",\ "packageDependencies": [\ @@ -6391,7 +6998,23 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@rollup/rollup-win32-x64-gnu", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-win32-x64-gnu-npm-4.60.2-5a35131ab6/node_modules/@rollup/rollup-win32-x64-gnu/",\ + "packageDependencies": [\ + ["@rollup/rollup-win32-x64-gnu", "npm:4.60.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@rollup/rollup-win32-x64-msvc", [\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-win32-x64-msvc-npm-4.60.2-e6b830e6f1/node_modules/@rollup/rollup-win32-x64-msvc/",\ + "packageDependencies": [\ + ["@rollup/rollup-win32-x64-msvc", "npm:4.60.2"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:4.9.5", {\ "packageLocation": "./.yarn/unplugged/@rollup-rollup-win32-x64-msvc-npm-4.9.5-b56946ea61/node_modules/@rollup/rollup-win32-x64-msvc/",\ "packageDependencies": [\ @@ -7640,6 +8263,21 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@testing-library/dom", [\ + ["npm:10.4.1", {\ + "packageLocation": "./.yarn/cache/@testing-library-dom-npm-10.4.1-928d6cd2a7-19ce048012.zip/node_modules/@testing-library/dom/",\ + "packageDependencies": [\ + ["@testing-library/dom", "npm:10.4.1"],\ + ["@babel/code-frame", "npm:7.23.5"],\ + ["@babel/runtime", "npm:7.23.8"],\ + ["@types/aria-query", "npm:5.0.4"],\ + ["aria-query", "npm:5.3.0"],\ + ["dom-accessibility-api", "npm:0.5.16"],\ + ["lz-string", "npm:1.5.0"],\ + ["picocolors", "npm:1.1.1"],\ + ["pretty-format", "npm:27.5.1"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:9.3.4", {\ "packageLocation": "./.yarn/cache/@testing-library-dom-npm-9.3.4-cfb609c4fc-147da340e8.zip/node_modules/@testing-library/dom/",\ "packageDependencies": [\ @@ -7696,6 +8334,37 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@testing-library/react", [\ + ["npm:16.3.2", {\ + "packageLocation": "./.yarn/cache/@testing-library-react-npm-16.3.2-67b0b894c8-f9c7f0915e.zip/node_modules/@testing-library/react/",\ + "packageDependencies": [\ + ["@testing-library/react", "npm:16.3.2"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:16.3.2", {\ + "packageLocation": "./.yarn/__virtual__/@testing-library-react-virtual-bc3875b179/0/cache/@testing-library-react-npm-16.3.2-67b0b894c8-f9c7f0915e.zip/node_modules/@testing-library/react/",\ + "packageDependencies": [\ + ["@testing-library/react", "virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:16.3.2"],\ + ["@babel/runtime", "npm:7.23.8"],\ + ["@testing-library/dom", "npm:10.4.1"],\ + ["@types/react", "npm:18.2.48"],\ + ["@types/react-dom", "npm:18.2.18"],\ + ["@types/testing-library__dom", null],\ + ["react", "npm:18.2.0"],\ + ["react-dom", "virtual:de80dc576383b2386358abc0e9fe49c00e3397fe355a0337462b73ab3115c2e557eb85784ee0fe776394cc11dd020b4e84dbbd75acf72ee6d54415d82d21f5c5#npm:18.2.0"]\ + ],\ + "packagePeers": [\ + "@testing-library/dom",\ + "@types/react-dom",\ + "@types/react",\ + "@types/testing-library__dom",\ + "react-dom",\ + "react"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@testing-library/user-event", [\ ["npm:14.3.0", {\ "packageLocation": "./.yarn/cache/@testing-library-user-event-npm-14.3.0-570c508fee-8a0e708709.zip/node_modules/@testing-library/user-event/",\ @@ -7895,6 +8564,13 @@ const RAW_RUNTIME_STATE = ["@types/estree", "npm:1.0.6"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.0.8", {\ + "packageLocation": "./.yarn/cache/@types-estree-npm-1.0.8-2195bac6d6-39d34d1afa.zip/node_modules/@types/estree/",\ + "packageDependencies": [\ + ["@types/estree", "npm:1.0.8"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@types/estree-jsx", [\ @@ -8320,6 +8996,25 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@types/set-cookie-parser", [\ + ["npm:2.4.10", {\ + "packageLocation": "./.yarn/cache/@types-set-cookie-parser-npm-2.4.10-d2555d8830-010b0c582e.zip/node_modules/@types/set-cookie-parser/",\ + "packageDependencies": [\ + ["@types/set-cookie-parser", "npm:2.4.10"],\ + ["@types/node", "npm:20.11.16"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/statuses", [\ + ["npm:2.0.6", {\ + "packageLocation": "./.yarn/cache/@types-statuses-npm-2.0.6-ef1f12f3e4-dd88c220b0.zip/node_modules/@types/statuses/",\ + "packageDependencies": [\ + ["@types/statuses", "npm:2.0.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@types/unist", [\ ["npm:2.0.10", {\ "packageLocation": "./.yarn/cache/@types-unist-npm-2.0.10-f9b9ac478e-5f247dc222.zip/node_modules/@types/unist/",\ @@ -8738,6 +9433,79 @@ const RAW_RUNTIME_STATE = ["chai", "npm:4.4.1"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:2.1.9", {\ + "packageLocation": "./.yarn/cache/@vitest-expect-npm-2.1.9-4e945bd225-98d1cf0291.zip/node_modules/@vitest/expect/",\ + "packageDependencies": [\ + ["@vitest/expect", "npm:2.1.9"],\ + ["@vitest/spy", "npm:2.1.9"],\ + ["@vitest/utils", "npm:2.1.9"],\ + ["chai", "npm:5.3.3"],\ + ["tinyrainbow", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@vitest/mocker", [\ + ["npm:2.1.9", {\ + "packageLocation": "./.yarn/cache/@vitest-mocker-npm-2.1.9-2c6df8716a-f734490d8d.zip/node_modules/@vitest/mocker/",\ + "packageDependencies": [\ + ["@vitest/mocker", "npm:2.1.9"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:4ef281dea3e72cfe15e22e03d459f7e49ac98abc0eff779dcfafbc624bade1c8b1eb2686128e667fb643824bfc3b95d8c57430c45b296c7269745563de98aaf0#npm:2.1.9", {\ + "packageLocation": "./.yarn/__virtual__/@vitest-mocker-virtual-cc9fdd9495/0/cache/@vitest-mocker-npm-2.1.9-2c6df8716a-f734490d8d.zip/node_modules/@vitest/mocker/",\ + "packageDependencies": [\ + ["@vitest/mocker", "virtual:4ef281dea3e72cfe15e22e03d459f7e49ac98abc0eff779dcfafbc624bade1c8b1eb2686128e667fb643824bfc3b95d8c57430c45b296c7269745563de98aaf0#npm:2.1.9"],\ + ["@types/msw", null],\ + ["@types/vite", null],\ + ["@vitest/spy", "npm:2.1.9"],\ + ["estree-walker", "npm:3.0.3"],\ + ["magic-string", "npm:0.30.21"],\ + ["msw", null],\ + ["vite", "virtual:84dcff71db8be9cbe950d0756a4f7772695095a485baf88f1cc98436fdd0ea49e9c6ac7f535ec4b7b26fd24d60bd4323cc6ed6d8629d5b2015f92d4613c7ffb6#npm:5.4.21"]\ + ],\ + "packagePeers": [\ + "@types/msw",\ + "@types/vite",\ + "msw",\ + "vite"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@vitest/pretty-format", [\ + ["npm:2.1.9", {\ + "packageLocation": "./.yarn/cache/@vitest-pretty-format-npm-2.1.9-94ea1cc996-155f9ede50.zip/node_modules/@vitest/pretty-format/",\ + "packageDependencies": [\ + ["@vitest/pretty-format", "npm:2.1.9"],\ + ["tinyrainbow", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@vitest/runner", [\ + ["npm:2.1.9", {\ + "packageLocation": "./.yarn/cache/@vitest-runner-npm-2.1.9-1d50535316-e81f176bad.zip/node_modules/@vitest/runner/",\ + "packageDependencies": [\ + ["@vitest/runner", "npm:2.1.9"],\ + ["@vitest/utils", "npm:2.1.9"],\ + ["pathe", "npm:1.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@vitest/snapshot", [\ + ["npm:2.1.9", {\ + "packageLocation": "./.yarn/cache/@vitest-snapshot-npm-2.1.9-ad091136c0-394974b3a1.zip/node_modules/@vitest/snapshot/",\ + "packageDependencies": [\ + ["@vitest/snapshot", "npm:2.1.9"],\ + ["@vitest/pretty-format", "npm:2.1.9"],\ + ["magic-string", "npm:0.30.21"],\ + ["pathe", "npm:1.1.2"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@vitest/spy", [\ @@ -8748,6 +9516,14 @@ const RAW_RUNTIME_STATE = ["tinyspy", "npm:2.2.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:2.1.9", {\ + "packageLocation": "./.yarn/cache/@vitest-spy-npm-2.1.9-d16af87e46-12a59b5095.zip/node_modules/@vitest/spy/",\ + "packageDependencies": [\ + ["@vitest/spy", "npm:2.1.9"],\ + ["tinyspy", "npm:3.0.2"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@vitest/utils", [\ @@ -8760,6 +9536,16 @@ const RAW_RUNTIME_STATE = ["pretty-format", "npm:29.7.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:2.1.9", {\ + "packageLocation": "./.yarn/cache/@vitest-utils-npm-2.1.9-355aea689e-81a346cd72.zip/node_modules/@vitest/utils/",\ + "packageDependencies": [\ + ["@vitest/utils", "npm:2.1.9"],\ + ["@vitest/pretty-format", "npm:2.1.9"],\ + ["loupe", "npm:3.2.1"],\ + ["tinyrainbow", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@xobotyi/scrollbar-width", [\ @@ -8947,8 +9733,11 @@ const RAW_RUNTIME_STATE = ["@emotion/babel-plugin", "npm:11.11.0"],\ ["@emotion/react", "virtual:de80dc576383b2386358abc0e9fe49c00e3397fe355a0337462b73ab3115c2e557eb85784ee0fe776394cc11dd020b4e84dbbd75acf72ee6d54415d82d21f5c5#npm:11.11.3"],\ ["@emotion/styled", "virtual:85869d3eba7afdb6f94c001c9503942ddc4354e881daf63c24e9d58366ea9f25c6bac2df65ae0f5266c54cd36fe68f0d9568da3a1ab62446405c98ac852f4431#npm:11.11.0"],\ + ["@playwright/test", "npm:1.59.1"],\ ["@react-pdf/renderer", "virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:3.4.4"],\ ["@tanstack/react-table", "virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:8.12.0"],\ + ["@testing-library/dom", "npm:10.4.1"],\ + ["@testing-library/react", "virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:16.3.2"],\ ["@types/js-cookie", "npm:3.0.6"],\ ["@types/lodash.debounce", "npm:4.0.9"],\ ["@types/navermaps", "npm:3.7.9"],\ @@ -8959,12 +9748,13 @@ const RAW_RUNTIME_STATE = ["framer-motion", "virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:11.2.10"],\ ["i18next", "virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:24.2.2"],\ ["jotai", "virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:2.8.3"],\ + ["jsdom", "virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:26.1.0"],\ ["jwt-decode", "npm:4.0.0"],\ ["lodash.debounce", "npm:4.0.8"],\ + ["msw", "virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:2.14.2"],\ ["qrcode.react", "virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:3.1.0"],\ ["quill", "npm:2.0.3"],\ ["react", "npm:18.2.0"],\ - ["react-daum-postcode", "virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:3.1.3"],\ ["react-dom", "virtual:de80dc576383b2386358abc0e9fe49c00e3397fe355a0337462b73ab3115c2e557eb85784ee0fe776394cc11dd020b4e84dbbd75acf72ee6d54415d82d21f5c5#npm:18.2.0"],\ ["react-dropzone", "virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:14.2.3"],\ ["react-error-boundary", "virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:4.1.2"],\ @@ -8979,7 +9769,8 @@ const RAW_RUNTIME_STATE = ["the-new-css-reset", "npm:1.11.2"],\ ["typescript", "patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=e012d7"],\ ["vconsole", "npm:3.15.1"],\ - ["vite", "virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:5.0.11"]\ + ["vite", "virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:5.0.11"],\ + ["vitest", "virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:2.1.9"]\ ],\ "linkType": "SOFT"\ }]\ @@ -9007,6 +9798,13 @@ const RAW_RUNTIME_STATE = ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.4"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:7.1.4", {\ + "packageLocation": "./.yarn/cache/agent-base-npm-7.1.4-cb8b4604d5-c2c9ab7599.zip/node_modules/agent-base/",\ + "packageDependencies": [\ + ["agent-base", "npm:7.1.4"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["aggregate-error", [\ @@ -9369,6 +10167,13 @@ const RAW_RUNTIME_STATE = ["assertion-error", "npm:1.1.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:2.0.1", {\ + "packageLocation": "./.yarn/cache/assertion-error-npm-2.0.1-8169d136f2-bbbcb117ac.zip/node_modules/assertion-error/",\ + "packageDependencies": [\ + ["assertion-error", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["ast-types", [\ @@ -9833,6 +10638,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["cac", [\ + ["npm:6.7.14", {\ + "packageLocation": "./.yarn/cache/cac-npm-6.7.14-c46284e425-4ee06aaa7b.zip/node_modules/cac/",\ + "packageDependencies": [\ + ["cac", "npm:6.7.14"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["cacache", [\ ["npm:18.0.2", {\ "packageLocation": "./.yarn/cache/cacache-npm-18.0.2-d6329a1b9d-7992665305.zip/node_modules/cacache/",\ @@ -9929,6 +10743,18 @@ const RAW_RUNTIME_STATE = ["type-detect", "npm:4.0.8"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:5.3.3", {\ + "packageLocation": "./.yarn/cache/chai-npm-5.3.3-ebef71cdac-b360fd4d38.zip/node_modules/chai/",\ + "packageDependencies": [\ + ["chai", "npm:5.3.3"],\ + ["assertion-error", "npm:2.0.1"],\ + ["check-error", "npm:2.1.3"],\ + ["deep-eql", "npm:5.0.2"],\ + ["loupe", "npm:3.2.1"],\ + ["pathval", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["chalk", [\ @@ -10005,6 +10831,13 @@ const RAW_RUNTIME_STATE = ["get-func-name", "npm:2.0.2"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:2.1.3", {\ + "packageLocation": "./.yarn/cache/check-error-npm-2.1.3-e17bcf3ed8-878e99038f.zip/node_modules/check-error/",\ + "packageDependencies": [\ + ["check-error", "npm:2.1.3"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["chokidar", [\ @@ -10107,6 +10940,27 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["cli-width", [\ + ["npm:4.1.0", {\ + "packageLocation": "./.yarn/cache/cli-width-npm-4.1.0-c08b53be83-1fbd564135.zip/node_modules/cli-width/",\ + "packageDependencies": [\ + ["cli-width", "npm:4.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["cliui", [\ + ["npm:8.0.1", {\ + "packageLocation": "./.yarn/cache/cliui-npm-8.0.1-3b029092cf-4bda0f09c3.zip/node_modules/cliui/",\ + "packageDependencies": [\ + ["cliui", "npm:8.0.1"],\ + ["string-width", "npm:4.2.3"],\ + ["strip-ansi", "npm:6.0.1"],\ + ["wrap-ansi", "npm:7.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["clone", [\ ["npm:1.0.4", {\ "packageLocation": "./.yarn/cache/clone-npm-1.0.4-a610fcbcf9-2176952b36.zip/node_modules/clone/",\ @@ -10352,6 +11206,13 @@ const RAW_RUNTIME_STATE = ["cookie", "npm:0.5.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.1.1", {\ + "packageLocation": "./.yarn/cache/cookie-npm-1.1.1-881103ddeb-79c4ddc0fc.zip/node_modules/cookie/",\ + "packageDependencies": [\ + ["cookie", "npm:1.1.1"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["cookie-signature", [\ @@ -10494,6 +11355,17 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["cssstyle", [\ + ["npm:4.6.0", {\ + "packageLocation": "./.yarn/cache/cssstyle-npm-4.6.0-ef3d5f305b-71add1b0ff.zip/node_modules/cssstyle/",\ + "packageDependencies": [\ + ["cssstyle", "npm:4.6.0"],\ + ["@asamuzakjp/css-color", "npm:3.2.0"],\ + ["rrweb-cssom", "npm:0.8.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["csstype", [\ ["npm:3.1.3", {\ "packageLocation": "./.yarn/cache/csstype-npm-3.1.3-e9a1c85013-80c089d6f7.zip/node_modules/csstype/",\ @@ -10503,6 +11375,17 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["data-urls", [\ + ["npm:5.0.0", {\ + "packageLocation": "./.yarn/cache/data-urls-npm-5.0.0-4b58b89bfe-1b894d7d41.zip/node_modules/data-urls/",\ + "packageDependencies": [\ + ["data-urls", "npm:5.0.0"],\ + ["whatwg-mimetype", "npm:4.0.0"],\ + ["whatwg-url", "npm:14.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["date-fns", [\ ["npm:3.3.1", {\ "packageLocation": "./.yarn/cache/date-fns-npm-3.3.1-794b72f5e7-e04ff79244.zip/node_modules/date-fns/",\ @@ -10557,8 +11440,15 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.4", {\ - "packageLocation": "./.yarn/__virtual__/debug-virtual-1040418e3c/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/",\ + ["npm:4.4.3", {\ + "packageLocation": "./.yarn/cache/debug-npm-4.4.3-0105c6123a-d79136ec6c.zip/node_modules/debug/",\ + "packageDependencies": [\ + ["debug", "npm:4.4.3"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.4", {\ + "packageLocation": "./.yarn/__virtual__/debug-virtual-1040418e3c/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/",\ "packageDependencies": [\ ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.4"],\ ["@types/supports-color", null],\ @@ -10612,6 +11502,29 @@ const RAW_RUNTIME_STATE = "supports-color"\ ],\ "linkType": "HARD"\ + }],\ + ["virtual:84dcff71db8be9cbe950d0756a4f7772695095a485baf88f1cc98436fdd0ea49e9c6ac7f535ec4b7b26fd24d60bd4323cc6ed6d8629d5b2015f92d4613c7ffb6#npm:4.4.3", {\ + "packageLocation": "./.yarn/__virtual__/debug-virtual-7416b00f5c/0/cache/debug-npm-4.4.3-0105c6123a-d79136ec6c.zip/node_modules/debug/",\ + "packageDependencies": [\ + ["debug", "virtual:84dcff71db8be9cbe950d0756a4f7772695095a485baf88f1cc98436fdd0ea49e9c6ac7f535ec4b7b26fd24d60bd4323cc6ed6d8629d5b2015f92d4613c7ffb6#npm:4.4.3"],\ + ["@types/supports-color", null],\ + ["ms", "npm:2.1.3"],\ + ["supports-color", null]\ + ],\ + "packagePeers": [\ + "@types/supports-color",\ + "supports-color"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["decimal.js", [\ + ["npm:10.6.0", {\ + "packageLocation": "./.yarn/cache/decimal.js-npm-10.6.0-a72c1b8a2f-07d69fbcc5.zip/node_modules/decimal.js/",\ + "packageDependencies": [\ + ["decimal.js", "npm:10.6.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["decode-named-character-reference", [\ @@ -10642,6 +11555,13 @@ const RAW_RUNTIME_STATE = ["type-detect", "npm:4.0.8"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:5.0.2", {\ + "packageLocation": "./.yarn/cache/deep-eql-npm-5.0.2-3bce58289f-7102cf3b7b.zip/node_modules/deep-eql/",\ + "packageDependencies": [\ + ["deep-eql", "npm:5.0.2"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["deep-equal", [\ @@ -11090,6 +12010,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["entities", [\ + ["npm:6.0.1", {\ + "packageLocation": "./.yarn/cache/entities-npm-6.0.1-84692dab43-ed836ddac5.zip/node_modules/entities/",\ + "packageDependencies": [\ + ["entities", "npm:6.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["env-paths", [\ ["npm:2.2.1", {\ "packageLocation": "./.yarn/cache/env-paths-npm-2.2.1-7c7577428c-285325677b.zip/node_modules/env-paths/",\ @@ -11210,6 +12139,13 @@ const RAW_RUNTIME_STATE = ["es-module-lexer", "npm:0.9.3"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.7.0", {\ + "packageLocation": "./.yarn/cache/es-module-lexer-npm-1.7.0-456b47a08a-4c935affcb.zip/node_modules/es-module-lexer/",\ + "packageDependencies": [\ + ["es-module-lexer", "npm:1.7.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["es-set-tostringtag", [\ @@ -11305,6 +12241,36 @@ const RAW_RUNTIME_STATE = ["@esbuild/win32-x64", "npm:0.19.11"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/esbuild-npm-0.21.5-d85dfbc965/node_modules/esbuild/",\ + "packageDependencies": [\ + ["esbuild", "npm:0.21.5"],\ + ["@esbuild/aix-ppc64", "npm:0.21.5"],\ + ["@esbuild/android-arm", "npm:0.21.5"],\ + ["@esbuild/android-arm64", "npm:0.21.5"],\ + ["@esbuild/android-x64", "npm:0.21.5"],\ + ["@esbuild/darwin-arm64", "npm:0.21.5"],\ + ["@esbuild/darwin-x64", "npm:0.21.5"],\ + ["@esbuild/freebsd-arm64", "npm:0.21.5"],\ + ["@esbuild/freebsd-x64", "npm:0.21.5"],\ + ["@esbuild/linux-arm", "npm:0.21.5"],\ + ["@esbuild/linux-arm64", "npm:0.21.5"],\ + ["@esbuild/linux-ia32", "npm:0.21.5"],\ + ["@esbuild/linux-loong64", "npm:0.21.5"],\ + ["@esbuild/linux-mips64el", "npm:0.21.5"],\ + ["@esbuild/linux-ppc64", "npm:0.21.5"],\ + ["@esbuild/linux-riscv64", "npm:0.21.5"],\ + ["@esbuild/linux-s390x", "npm:0.21.5"],\ + ["@esbuild/linux-x64", "npm:0.21.5"],\ + ["@esbuild/netbsd-x64", "npm:0.21.5"],\ + ["@esbuild/openbsd-x64", "npm:0.21.5"],\ + ["@esbuild/sunos-x64", "npm:0.21.5"],\ + ["@esbuild/win32-arm64", "npm:0.21.5"],\ + ["@esbuild/win32-ia32", "npm:0.21.5"],\ + ["@esbuild/win32-x64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["esbuild-plugin-alias", [\ @@ -11769,6 +12735,14 @@ const RAW_RUNTIME_STATE = ["estree-walker", "npm:2.0.2"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:3.0.3", {\ + "packageLocation": "./.yarn/cache/estree-walker-npm-3.0.3-0372979673-c12e3c2b26.zip/node_modules/estree-walker/",\ + "packageDependencies": [\ + ["estree-walker", "npm:3.0.3"],\ + ["@types/estree", "npm:1.0.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["esutils", [\ @@ -11841,6 +12815,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["expect-type", [\ + ["npm:1.3.0", {\ + "packageLocation": "./.yarn/cache/expect-type-npm-1.3.0-95a4384745-8412b3fe4f.zip/node_modules/expect-type/",\ + "packageDependencies": [\ + ["expect-type", "npm:1.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["exponential-backoff", [\ ["npm:3.1.1", {\ "packageLocation": "./.yarn/cache/exponential-backoff-npm-3.1.1-04df458b30-160456d2d6.zip/node_modules/exponential-backoff/",\ @@ -11971,6 +12954,35 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["fast-string-truncated-width", [\ + ["npm:3.0.3", {\ + "packageLocation": "./.yarn/cache/fast-string-truncated-width-npm-3.0.3-1f742a6cd9-043b866339.zip/node_modules/fast-string-truncated-width/",\ + "packageDependencies": [\ + ["fast-string-truncated-width", "npm:3.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["fast-string-width", [\ + ["npm:3.0.2", {\ + "packageLocation": "./.yarn/cache/fast-string-width-npm-3.0.2-f4e7c6c8bc-c8822d1753.zip/node_modules/fast-string-width/",\ + "packageDependencies": [\ + ["fast-string-width", "npm:3.0.2"],\ + ["fast-string-truncated-width", "npm:3.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["fast-wrap-ansi", [\ + ["npm:0.2.0", {\ + "packageLocation": "./.yarn/cache/fast-wrap-ansi-npm-0.2.0-11e4628564-c0eb6debee.zip/node_modules/fast-wrap-ansi/",\ + "packageDependencies": [\ + ["fast-wrap-ansi", "npm:0.2.0"],\ + ["fast-string-width", "npm:3.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["fastest-stable-stringify", [\ ["npm:2.0.2", {\ "packageLocation": "./.yarn/cache/fastest-stable-stringify-npm-2.0.2-f2a059d214-abbe5ff48f.zip/node_modules/fastest-stable-stringify/",\ @@ -12334,6 +13346,14 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["fsevents", [\ + ["patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1", {\ + "packageLocation": "./.yarn/unplugged/fsevents-patch-19706e7e35/node_modules/fsevents/",\ + "packageDependencies": [\ + ["fsevents", "patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1"],\ + ["node-gyp", "npm:10.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ ["patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1", {\ "packageLocation": "./.yarn/unplugged/fsevents-patch-6b67494872/node_modules/fsevents/",\ "packageDependencies": [\ @@ -12401,6 +13421,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["get-caller-file", [\ + ["npm:2.0.5", {\ + "packageLocation": "./.yarn/cache/get-caller-file-npm-2.0.5-80e8a86305-c6c7b60271.zip/node_modules/get-caller-file/",\ + "packageDependencies": [\ + ["get-caller-file", "npm:2.0.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["get-func-name", [\ ["npm:2.0.2", {\ "packageLocation": "./.yarn/cache/get-func-name-npm-2.0.2-409dbe3703-89830fd076.zip/node_modules/get-func-name/",\ @@ -12679,6 +13708,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["graphql", [\ + ["npm:16.13.2", {\ + "packageLocation": "./.yarn/cache/graphql-npm-16.13.2-dd8254da13-64e822a0a0.zip/node_modules/graphql/",\ + "packageDependencies": [\ + ["graphql", "npm:16.13.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["gunzip-maybe", [\ ["npm:1.4.2", {\ "packageLocation": "./.yarn/cache/gunzip-maybe-npm-1.4.2-97df376cb9-42798a8061.zip/node_modules/gunzip-maybe/",\ @@ -12824,6 +13862,17 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["headers-polyfill", [\ + ["npm:5.0.1", {\ + "packageLocation": "./.yarn/cache/headers-polyfill-npm-5.0.1-5c80cb3378-c269730a88.zip/node_modules/headers-polyfill/",\ + "packageDependencies": [\ + ["headers-polyfill", "npm:5.0.1"],\ + ["@types/set-cookie-parser", "npm:2.4.10"],\ + ["set-cookie-parser", "npm:3.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["hoist-non-react-statics", [\ ["npm:3.3.2", {\ "packageLocation": "./.yarn/cache/hoist-non-react-statics-npm-3.3.2-e7b709e6c1-fe0889169e.zip/node_modules/hoist-non-react-statics/",\ @@ -12862,6 +13911,16 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["html-encoding-sniffer", [\ + ["npm:4.0.0", {\ + "packageLocation": "./.yarn/cache/html-encoding-sniffer-npm-4.0.0-5f6627070d-523398055d.zip/node_modules/html-encoding-sniffer/",\ + "packageDependencies": [\ + ["html-encoding-sniffer", "npm:4.0.0"],\ + ["whatwg-encoding", "npm:3.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["html-parse-stringify", [\ ["npm:3.0.1", {\ "packageLocation": "./.yarn/cache/html-parse-stringify-npm-3.0.1-5762cd4b01-159292753d.zip/node_modules/html-parse-stringify/",\ @@ -12922,6 +13981,15 @@ const RAW_RUNTIME_STATE = ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.4"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:7.0.2", {\ + "packageLocation": "./.yarn/cache/http-proxy-agent-npm-7.0.2-643ed7cc33-4207b06a45.zip/node_modules/http-proxy-agent/",\ + "packageDependencies": [\ + ["http-proxy-agent", "npm:7.0.2"],\ + ["agent-base", "npm:7.1.0"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.4"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["https-proxy-agent", [\ @@ -12951,6 +14019,15 @@ const RAW_RUNTIME_STATE = ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.4"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:7.0.6", {\ + "packageLocation": "./.yarn/cache/https-proxy-agent-npm-7.0.6-27a95c2690-f729219bc7.zip/node_modules/https-proxy-agent/",\ + "packageDependencies": [\ + ["https-proxy-agent", "npm:7.0.6"],\ + ["agent-base", "npm:7.1.4"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.4"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["human-signals", [\ @@ -13421,6 +14498,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["is-node-process", [\ + ["npm:1.2.0", {\ + "packageLocation": "./.yarn/cache/is-node-process-npm-1.2.0-34f2abe8e1-5b24fda677.zip/node_modules/is-node-process/",\ + "packageDependencies": [\ + ["is-node-process", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["is-number", [\ ["npm:7.0.0", {\ "packageLocation": "./.yarn/cache/is-number-npm-7.0.0-060086935c-b4686d0d30.zip/node_modules/is-number/",\ @@ -13484,6 +14570,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["is-potential-custom-element-name", [\ + ["npm:1.0.1", {\ + "packageLocation": "./.yarn/cache/is-potential-custom-element-name-npm-1.0.1-f352f606f8-b73e2f22bc.zip/node_modules/is-potential-custom-element-name/",\ + "packageDependencies": [\ + ["is-potential-custom-element-name", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["is-regex", [\ ["npm:1.1.4", {\ "packageLocation": "./.yarn/cache/is-regex-npm-1.1.4-cca193ef11-bb72aae604.zip/node_modules/is-regex/",\ @@ -13886,6 +14981,48 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["jsdom", [\ + ["npm:26.1.0", {\ + "packageLocation": "./.yarn/cache/jsdom-npm-26.1.0-3857255f02-5b14a5bc32.zip/node_modules/jsdom/",\ + "packageDependencies": [\ + ["jsdom", "npm:26.1.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:26.1.0", {\ + "packageLocation": "./.yarn/__virtual__/jsdom-virtual-c9bba951cb/0/cache/jsdom-npm-26.1.0-3857255f02-5b14a5bc32.zip/node_modules/jsdom/",\ + "packageDependencies": [\ + ["jsdom", "virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:26.1.0"],\ + ["@types/canvas", null],\ + ["canvas", null],\ + ["cssstyle", "npm:4.6.0"],\ + ["data-urls", "npm:5.0.0"],\ + ["decimal.js", "npm:10.6.0"],\ + ["html-encoding-sniffer", "npm:4.0.0"],\ + ["http-proxy-agent", "npm:7.0.2"],\ + ["https-proxy-agent", "npm:7.0.6"],\ + ["is-potential-custom-element-name", "npm:1.0.1"],\ + ["nwsapi", "npm:2.2.23"],\ + ["parse5", "npm:7.3.0"],\ + ["rrweb-cssom", "npm:0.8.0"],\ + ["saxes", "npm:6.0.0"],\ + ["symbol-tree", "npm:3.2.4"],\ + ["tough-cookie", "npm:5.1.2"],\ + ["w3c-xmlserializer", "npm:5.0.0"],\ + ["webidl-conversions", "npm:7.0.0"],\ + ["whatwg-encoding", "npm:3.1.1"],\ + ["whatwg-mimetype", "npm:4.0.0"],\ + ["whatwg-url", "npm:14.2.0"],\ + ["ws", "virtual:c9bba951cbe0fd558b01bda93a1fe2973b37ad4969d84fe59620375ce44d6b7b439cf261bf7ef68d149ad578f029969f223887153ac4e4053d1a4da5841e5222#npm:8.20.0"],\ + ["xml-name-validator", "npm:5.0.0"]\ + ],\ + "packagePeers": [\ + "@types/canvas",\ + "canvas"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["jsesc", [\ ["npm:0.5.0", {\ "packageLocation": "./.yarn/cache/jsesc-npm-0.5.0-6827074492-f93792440a.zip/node_modules/jsesc/",\ @@ -14271,6 +15408,13 @@ const RAW_RUNTIME_STATE = ["get-func-name", "npm:2.0.2"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:3.2.1", {\ + "packageLocation": "./.yarn/cache/loupe-npm-3.2.1-a8f491982f-910c872cba.zip/node_modules/loupe/",\ + "packageDependencies": [\ + ["loupe", "npm:3.2.1"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["lru-cache", [\ @@ -14281,6 +15425,13 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ + ["npm:10.4.3", {\ + "packageLocation": "./.yarn/cache/lru-cache-npm-10.4.3-30c10b861a-ebd04fbca9.zip/node_modules/lru-cache/",\ + "packageDependencies": [\ + ["lru-cache", "npm:10.4.3"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:5.1.1", {\ "packageLocation": "./.yarn/cache/lru-cache-npm-5.1.1-f475882a51-89b2ef2ef4.zip/node_modules/lru-cache/",\ "packageDependencies": [\ @@ -14316,6 +15467,14 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ + ["npm:0.30.21", {\ + "packageLocation": "./.yarn/cache/magic-string-npm-0.30.21-9a226cb21e-299378e38f.zip/node_modules/magic-string/",\ + "packageDependencies": [\ + ["magic-string", "npm:0.30.21"],\ + ["@jridgewell/sourcemap-codec", "npm:1.5.5"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:0.30.6", {\ "packageLocation": "./.yarn/cache/magic-string-npm-0.30.6-ac832d24b6-e8835de342.zip/node_modules/magic-string/",\ "packageDependencies": [\ @@ -15197,6 +16356,46 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["msw", [\ + ["npm:2.14.2", {\ + "packageLocation": "./.yarn/unplugged/msw-virtual-7e2aa39288/node_modules/msw/",\ + "packageDependencies": [\ + ["msw", "npm:2.14.2"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:2.14.2", {\ + "packageLocation": "./.yarn/unplugged/msw-virtual-7e2aa39288/node_modules/msw/",\ + "packageDependencies": [\ + ["msw", "virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:2.14.2"],\ + ["@inquirer/confirm", "virtual:7e2aa39288a9bb75e6200124f1541c326c6028243dab00aa6c226e8828b558fe1489c4fd366fd37df54589d43d1f0c314c8cc2e624701deeaf35e2766fd42c47#npm:6.0.12"],\ + ["@mswjs/interceptors", "npm:0.41.8"],\ + ["@open-draft/deferred-promise", "npm:3.0.0"],\ + ["@types/statuses", "npm:2.0.6"],\ + ["@types/typescript", null],\ + ["cookie", "npm:1.1.1"],\ + ["graphql", "npm:16.13.2"],\ + ["headers-polyfill", "npm:5.0.1"],\ + ["is-node-process", "npm:1.2.0"],\ + ["outvariant", "npm:1.4.3"],\ + ["path-to-regexp", "npm:6.3.0"],\ + ["picocolors", "npm:1.1.1"],\ + ["rettime", "npm:0.11.11"],\ + ["statuses", "npm:2.0.2"],\ + ["strict-event-emitter", "npm:0.5.1"],\ + ["tough-cookie", "npm:6.0.1"],\ + ["type-fest", "npm:5.6.0"],\ + ["typescript", "patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=e012d7"],\ + ["until-async", "npm:3.0.2"],\ + ["yargs", "npm:17.7.2"]\ + ],\ + "packagePeers": [\ + "@types/typescript",\ + "typescript"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["mutation-observer", [\ ["npm:1.0.3", {\ "packageLocation": "./.yarn/cache/mutation-observer-npm-1.0.3-fa3b236d74-2f010fdec4.zip/node_modules/mutation-observer/",\ @@ -15206,6 +16405,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["mute-stream", [\ + ["npm:3.0.0", {\ + "packageLocation": "./.yarn/cache/mute-stream-npm-3.0.0-b51769acce-12cdb36a10.zip/node_modules/mute-stream/",\ + "packageDependencies": [\ + ["mute-stream", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["nan", [\ ["npm:2.20.0", {\ "packageLocation": "./.yarn/unplugged/nan-npm-2.20.0-5b5be83e88/node_modules/nan/",\ @@ -15251,6 +16459,13 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["nanoid", [\ + ["npm:3.3.12", {\ + "packageLocation": "./.yarn/cache/nanoid-npm-3.3.12-41f8e0bb94-ba142b7b39.zip/node_modules/nanoid/",\ + "packageDependencies": [\ + ["nanoid", "npm:3.3.12"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:3.3.7", {\ "packageLocation": "./.yarn/cache/nanoid-npm-3.3.7-98824ba130-e3fb661aa0.zip/node_modules/nanoid/",\ "packageDependencies": [\ @@ -15453,6 +16668,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["nwsapi", [\ + ["npm:2.2.23", {\ + "packageLocation": "./.yarn/cache/nwsapi-npm-2.2.23-aa3710d724-e44bfc9246.zip/node_modules/nwsapi/",\ + "packageDependencies": [\ + ["nwsapi", "npm:2.2.23"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["nypm", [\ ["npm:0.3.6", {\ "packageLocation": "./.yarn/cache/nypm-npm-0.3.6-5527ee7f3b-addc0a0f2e.zip/node_modules/nypm/",\ @@ -15655,6 +16879,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["outvariant", [\ + ["npm:1.4.3", {\ + "packageLocation": "./.yarn/cache/outvariant-npm-1.4.3-192f951f81-5976ca7740.zip/node_modules/outvariant/",\ + "packageDependencies": [\ + ["outvariant", "npm:1.4.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["p-limit", [\ ["npm:2.3.0", {\ "packageLocation": "./.yarn/cache/p-limit-npm-2.3.0-94a0310039-8da01ac53e.zip/node_modules/p-limit/",\ @@ -15791,6 +17024,16 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["parse5", [\ + ["npm:7.3.0", {\ + "packageLocation": "./.yarn/cache/parse5-npm-7.3.0-b0410074a3-7fd2e4e247.zip/node_modules/parse5/",\ + "packageDependencies": [\ + ["parse5", "npm:7.3.0"],\ + ["entities", "npm:6.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["parseurl", [\ ["npm:1.3.3", {\ "packageLocation": "./.yarn/cache/parseurl-npm-1.3.3-1542397e00-90dd4760d6.zip/node_modules/parseurl/",\ @@ -15868,6 +17111,13 @@ const RAW_RUNTIME_STATE = ["path-to-regexp", "npm:0.1.7"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:6.3.0", {\ + "packageLocation": "./.yarn/cache/path-to-regexp-npm-6.3.0-ee2cdde576-73b67f4638.zip/node_modules/path-to-regexp/",\ + "packageDependencies": [\ + ["path-to-regexp", "npm:6.3.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["path-type", [\ @@ -15904,6 +17154,13 @@ const RAW_RUNTIME_STATE = ["pathval", "npm:1.1.1"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:2.0.1", {\ + "packageLocation": "./.yarn/cache/pathval-npm-2.0.1-7fb9ae82ba-460f470947.zip/node_modules/pathval/",\ + "packageDependencies": [\ + ["pathval", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["pdfjs-dist", [\ @@ -15945,6 +17202,13 @@ const RAW_RUNTIME_STATE = ["picocolors", "npm:1.0.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.1.1", {\ + "packageLocation": "./.yarn/cache/picocolors-npm-1.1.1-4fede47cf1-e2e3e8170a.zip/node_modules/picocolors/",\ + "packageDependencies": [\ + ["picocolors", "npm:1.1.1"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["picomatch", [\ @@ -16000,6 +17264,26 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["playwright", [\ + ["npm:1.59.1", {\ + "packageLocation": "./.yarn/cache/playwright-npm-1.59.1-8e8808a3f1-dfe38396e6.zip/node_modules/playwright/",\ + "packageDependencies": [\ + ["playwright", "npm:1.59.1"],\ + ["fsevents", "patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1"],\ + ["playwright-core", "npm:1.59.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["playwright-core", [\ + ["npm:1.59.1", {\ + "packageLocation": "./.yarn/cache/playwright-core-npm-1.59.1-e63605649f-d41a74d968.zip/node_modules/playwright-core/",\ + "packageDependencies": [\ + ["playwright-core", "npm:1.59.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["polished", [\ ["npm:4.3.1", {\ "packageLocation": "./.yarn/cache/polished-npm-4.3.1-96b1782f82-45480d4c72.zip/node_modules/polished/",\ @@ -16020,6 +17304,16 @@ const RAW_RUNTIME_STATE = ["source-map-js", "npm:1.0.2"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:8.5.13", {\ + "packageLocation": "./.yarn/cache/postcss-npm-8.5.13-a1d77c1b0b-3aa7c8cbdf.zip/node_modules/postcss/",\ + "packageDependencies": [\ + ["postcss", "npm:8.5.13"],\ + ["nanoid", "npm:3.3.12"],\ + ["picocolors", "npm:1.1.1"],\ + ["source-map-js", "npm:1.2.1"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["postcss-value-parser", [\ @@ -17642,28 +18936,6 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ - ["react-daum-postcode", [\ - ["npm:3.1.3", {\ - "packageLocation": "./.yarn/cache/react-daum-postcode-npm-3.1.3-95dbfacabd-72f05078e2.zip/node_modules/react-daum-postcode/",\ - "packageDependencies": [\ - ["react-daum-postcode", "npm:3.1.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:3.1.3", {\ - "packageLocation": "./.yarn/__virtual__/react-daum-postcode-virtual-a70527b50a/0/cache/react-daum-postcode-npm-3.1.3-95dbfacabd-72f05078e2.zip/node_modules/react-daum-postcode/",\ - "packageDependencies": [\ - ["react-daum-postcode", "virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:3.1.3"],\ - ["@types/react", "npm:18.2.48"],\ - ["react", "npm:18.2.0"]\ - ],\ - "packagePeers": [\ - "@types/react",\ - "react"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ ["react-dnd-html5-backend", [\ ["npm:16.0.1", {\ "packageLocation": "./.yarn/cache/react-dnd-html5-backend-npm-16.0.1-754940d855-6e4b632a11.zip/node_modules/react-dnd-html5-backend/",\ @@ -18747,6 +20019,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["require-directory", [\ + ["npm:2.1.1", {\ + "packageLocation": "./.yarn/cache/require-directory-npm-2.1.1-8608aee50b-83aa76a7bc.zip/node_modules/require-directory/",\ + "packageDependencies": [\ + ["require-directory", "npm:2.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["require-from-string", [\ ["npm:2.0.2", {\ "packageLocation": "./.yarn/cache/require-from-string-npm-2.0.2-8557e0db12-aaa267e0c5.zip/node_modules/require-from-string/",\ @@ -18822,6 +20103,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["rettime", [\ + ["npm:0.11.11", {\ + "packageLocation": "./.yarn/cache/rettime-npm-0.11.11-a494d8bd51-021fc9d987.zip/node_modules/rettime/",\ + "packageDependencies": [\ + ["rettime", "npm:0.11.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["reusify", [\ ["npm:1.0.4", {\ "packageLocation": "./.yarn/cache/reusify-npm-1.0.4-95ac4aec11-c19ef26e4e.zip/node_modules/reusify/",\ @@ -18866,6 +20156,40 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ + ["npm:4.60.2", {\ + "packageLocation": "./.yarn/cache/rollup-npm-4.60.2-81a73351f6-f67d6156fc.zip/node_modules/rollup/",\ + "packageDependencies": [\ + ["rollup", "npm:4.60.2"],\ + ["@rollup/rollup-android-arm-eabi", "npm:4.60.2"],\ + ["@rollup/rollup-android-arm64", "npm:4.60.2"],\ + ["@rollup/rollup-darwin-arm64", "npm:4.60.2"],\ + ["@rollup/rollup-darwin-x64", "npm:4.60.2"],\ + ["@rollup/rollup-freebsd-arm64", "npm:4.60.2"],\ + ["@rollup/rollup-freebsd-x64", "npm:4.60.2"],\ + ["@rollup/rollup-linux-arm-gnueabihf", "npm:4.60.2"],\ + ["@rollup/rollup-linux-arm-musleabihf", "npm:4.60.2"],\ + ["@rollup/rollup-linux-arm64-gnu", "npm:4.60.2"],\ + ["@rollup/rollup-linux-arm64-musl", "npm:4.60.2"],\ + ["@rollup/rollup-linux-loong64-gnu", "npm:4.60.2"],\ + ["@rollup/rollup-linux-loong64-musl", "npm:4.60.2"],\ + ["@rollup/rollup-linux-ppc64-gnu", "npm:4.60.2"],\ + ["@rollup/rollup-linux-ppc64-musl", "npm:4.60.2"],\ + ["@rollup/rollup-linux-riscv64-gnu", "npm:4.60.2"],\ + ["@rollup/rollup-linux-riscv64-musl", "npm:4.60.2"],\ + ["@rollup/rollup-linux-s390x-gnu", "npm:4.60.2"],\ + ["@rollup/rollup-linux-x64-gnu", "npm:4.60.2"],\ + ["@rollup/rollup-linux-x64-musl", "npm:4.60.2"],\ + ["@rollup/rollup-openbsd-x64", "npm:4.60.2"],\ + ["@rollup/rollup-openharmony-arm64", "npm:4.60.2"],\ + ["@rollup/rollup-win32-arm64-msvc", "npm:4.60.2"],\ + ["@rollup/rollup-win32-ia32-msvc", "npm:4.60.2"],\ + ["@rollup/rollup-win32-x64-gnu", "npm:4.60.2"],\ + ["@rollup/rollup-win32-x64-msvc", "npm:4.60.2"],\ + ["@types/estree", "npm:1.0.8"],\ + ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:4.9.5", {\ "packageLocation": "./.yarn/cache/rollup-npm-4.9.5-deca2874bb-7f241ad402.zip/node_modules/rollup/",\ "packageDependencies": [\ @@ -18889,6 +20213,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["rrweb-cssom", [\ + ["npm:0.8.0", {\ + "packageLocation": "./.yarn/cache/rrweb-cssom-npm-0.8.0-0c92f2366d-56f2bfd567.zip/node_modules/rrweb-cssom/",\ + "packageDependencies": [\ + ["rrweb-cssom", "npm:0.8.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["rtl-css-js", [\ ["npm:1.16.1", {\ "packageLocation": "./.yarn/cache/rtl-css-js-npm-1.16.1-b3547849c7-4b81ef50e5.zip/node_modules/rtl-css-js/",\ @@ -18959,8 +20292,18 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ - ["scheduler", [\ - ["npm:0.17.0", {\ + ["saxes", [\ + ["npm:6.0.0", {\ + "packageLocation": "./.yarn/cache/saxes-npm-6.0.0-31558949f5-3847b839f0.zip/node_modules/saxes/",\ + "packageDependencies": [\ + ["saxes", "npm:6.0.0"],\ + ["xmlchars", "npm:2.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["scheduler", [\ + ["npm:0.17.0", {\ "packageLocation": "./.yarn/cache/scheduler-npm-0.17.0-5c42088cec-662a665a47.zip/node_modules/scheduler/",\ "packageDependencies": [\ ["scheduler", "npm:0.17.0"],\ @@ -19065,6 +20408,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["set-cookie-parser", [\ + ["npm:3.1.0", {\ + "packageLocation": "./.yarn/cache/set-cookie-parser-npm-3.1.0-f66fecf7c7-7465e389ff.zip/node_modules/set-cookie-parser/",\ + "packageDependencies": [\ + ["set-cookie-parser", "npm:3.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["set-function-length", [\ ["npm:1.2.0", {\ "packageLocation": "./.yarn/cache/set-function-length-npm-1.2.0-aac8e100c3-b4fdf68bbf.zip/node_modules/set-function-length/",\ @@ -19159,6 +20511,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["siginfo", [\ + ["npm:2.0.0", {\ + "packageLocation": "./.yarn/cache/siginfo-npm-2.0.0-9bbac931f8-3def8f8e51.zip/node_modules/siginfo/",\ + "packageDependencies": [\ + ["siginfo", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["signal-exit", [\ ["npm:3.0.7", {\ "packageLocation": "./.yarn/cache/signal-exit-npm-3.0.7-bd270458a3-25d272fa73.zip/node_modules/signal-exit/",\ @@ -19286,6 +20647,13 @@ const RAW_RUNTIME_STATE = ["source-map-js", "npm:1.0.2"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.2.1", {\ + "packageLocation": "./.yarn/cache/source-map-js-npm-1.2.1-b9a47d7e1a-7bda1fc4c1.zip/node_modules/source-map-js/",\ + "packageDependencies": [\ + ["source-map-js", "npm:1.2.1"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["source-map-support", [\ @@ -19384,6 +20752,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["stackback", [\ + ["npm:0.0.2", {\ + "packageLocation": "./.yarn/cache/stackback-npm-0.0.2-73273dc92e-89a1416668.zip/node_modules/stackback/",\ + "packageDependencies": [\ + ["stackback", "npm:0.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["stackframe", [\ ["npm:1.3.4", {\ "packageLocation": "./.yarn/cache/stackframe-npm-1.3.4-bf4b7cc8fd-18410f7a1e.zip/node_modules/stackframe/",\ @@ -19423,6 +20800,22 @@ const RAW_RUNTIME_STATE = ["statuses", "npm:2.0.1"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:2.0.2", {\ + "packageLocation": "./.yarn/cache/statuses-npm-2.0.2-2d84c63b8c-a9947d98ad.zip/node_modules/statuses/",\ + "packageDependencies": [\ + ["statuses", "npm:2.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["std-env", [\ + ["npm:3.10.0", {\ + "packageLocation": "./.yarn/cache/std-env-npm-3.10.0-30d3e2646f-1814927a45.zip/node_modules/std-env/",\ + "packageDependencies": [\ + ["std-env", "npm:3.10.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["stop-iteration-iterator", [\ @@ -19497,6 +20890,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["strict-event-emitter", [\ + ["npm:0.5.1", {\ + "packageLocation": "./.yarn/cache/strict-event-emitter-npm-0.5.1-8414bf36b3-f5228a6e6b.zip/node_modules/strict-event-emitter/",\ + "packageDependencies": [\ + ["strict-event-emitter", "npm:0.5.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["string-convert", [\ ["npm:0.2.1", {\ "packageLocation": "./.yarn/cache/string-convert-npm-0.2.1-f1a42cb9ea-00673ed8a3.zip/node_modules/string-convert/",\ @@ -19870,6 +21272,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["symbol-tree", [\ + ["npm:3.2.4", {\ + "packageLocation": "./.yarn/cache/symbol-tree-npm-3.2.4-fe70cdb75b-dfbe201ae0.zip/node_modules/symbol-tree/",\ + "packageDependencies": [\ + ["symbol-tree", "npm:3.2.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["synchronous-promise", [\ ["npm:2.0.17", {\ "packageLocation": "./.yarn/cache/synchronous-promise-npm-2.0.17-949e3e408d-1babe643d8.zip/node_modules/synchronous-promise/",\ @@ -19890,6 +21301,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["tagged-tag", [\ + ["npm:1.0.0", {\ + "packageLocation": "./.yarn/cache/tagged-tag-npm-1.0.0-80e0c0061d-91d25c9ffb.zip/node_modules/tagged-tag/",\ + "packageDependencies": [\ + ["tagged-tag", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["tar", [\ ["npm:6.2.0", {\ "packageLocation": "./.yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/",\ @@ -20057,6 +21477,42 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["tinybench", [\ + ["npm:2.9.0", {\ + "packageLocation": "./.yarn/cache/tinybench-npm-2.9.0-2861a048db-c3500b0f60.zip/node_modules/tinybench/",\ + "packageDependencies": [\ + ["tinybench", "npm:2.9.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tinyexec", [\ + ["npm:0.3.2", {\ + "packageLocation": "./.yarn/cache/tinyexec-npm-0.3.2-381b1e349c-3efbf791a9.zip/node_modules/tinyexec/",\ + "packageDependencies": [\ + ["tinyexec", "npm:0.3.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tinypool", [\ + ["npm:1.1.1", {\ + "packageLocation": "./.yarn/cache/tinypool-npm-1.1.1-6772421283-bf26727d01.zip/node_modules/tinypool/",\ + "packageDependencies": [\ + ["tinypool", "npm:1.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tinyrainbow", [\ + ["npm:1.2.0", {\ + "packageLocation": "./.yarn/cache/tinyrainbow-npm-1.2.0-456cccee06-7f78a4b997.zip/node_modules/tinyrainbow/",\ + "packageDependencies": [\ + ["tinyrainbow", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["tinyspy", [\ ["npm:2.2.0", {\ "packageLocation": "./.yarn/cache/tinyspy-npm-2.2.0-226debb582-8c7b70748d.zip/node_modules/tinyspy/",\ @@ -20064,6 +21520,47 @@ const RAW_RUNTIME_STATE = ["tinyspy", "npm:2.2.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:3.0.2", {\ + "packageLocation": "./.yarn/cache/tinyspy-npm-3.0.2-4f17593a18-55ffad24e3.zip/node_modules/tinyspy/",\ + "packageDependencies": [\ + ["tinyspy", "npm:3.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tldts", [\ + ["npm:6.1.86", {\ + "packageLocation": "./.yarn/cache/tldts-npm-6.1.86-45627de9ca-27ae7526d9.zip/node_modules/tldts/",\ + "packageDependencies": [\ + ["tldts", "npm:6.1.86"],\ + ["tldts-core", "npm:6.1.86"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:7.0.30", {\ + "packageLocation": "./.yarn/cache/tldts-npm-7.0.30-e815b3f846-c36f7b480f.zip/node_modules/tldts/",\ + "packageDependencies": [\ + ["tldts", "npm:7.0.30"],\ + ["tldts-core", "npm:7.0.30"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tldts-core", [\ + ["npm:6.1.86", {\ + "packageLocation": "./.yarn/cache/tldts-core-npm-6.1.86-540def5eb4-8133c29375.zip/node_modules/tldts-core/",\ + "packageDependencies": [\ + ["tldts-core", "npm:6.1.86"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:7.0.30", {\ + "packageLocation": "./.yarn/cache/tldts-core-npm-7.0.30-ed52aa351a-e3cd730e96.zip/node_modules/tldts-core/",\ + "packageDependencies": [\ + ["tldts-core", "npm:7.0.30"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["tmpl", [\ @@ -20121,6 +21618,24 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["tough-cookie", [\ + ["npm:5.1.2", {\ + "packageLocation": "./.yarn/cache/tough-cookie-npm-5.1.2-bb11a20ec3-5f95023a47.zip/node_modules/tough-cookie/",\ + "packageDependencies": [\ + ["tough-cookie", "npm:5.1.2"],\ + ["tldts", "npm:6.1.86"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:6.0.1", {\ + "packageLocation": "./.yarn/cache/tough-cookie-npm-6.0.1-7a26930694-ec70bd6b12.zip/node_modules/tough-cookie/",\ + "packageDependencies": [\ + ["tough-cookie", "npm:6.0.1"],\ + ["tldts", "npm:7.0.30"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["tr46", [\ ["npm:0.0.3", {\ "packageLocation": "./.yarn/cache/tr46-npm-0.0.3-de53018915-047cb209a6.zip/node_modules/tr46/",\ @@ -20128,6 +21643,14 @@ const RAW_RUNTIME_STATE = ["tr46", "npm:0.0.3"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:5.1.1", {\ + "packageLocation": "./.yarn/cache/tr46-npm-5.1.1-88f3ca645b-ae270e194d.zip/node_modules/tr46/",\ + "packageDependencies": [\ + ["tr46", "npm:5.1.1"],\ + ["punycode", "npm:2.3.1"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["trim-lines", [\ @@ -20362,6 +21885,14 @@ const RAW_RUNTIME_STATE = ["type-fest", "npm:2.19.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:5.6.0", {\ + "packageLocation": "./.yarn/cache/type-fest-npm-5.6.0-daf055db8b-5468a8ffda.zip/node_modules/type-fest/",\ + "packageDependencies": [\ + ["type-fest", "npm:5.6.0"],\ + ["tagged-tag", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["type-is", [\ @@ -20700,6 +22231,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["until-async", [\ + ["npm:3.0.2", {\ + "packageLocation": "./.yarn/cache/until-async-npm-3.0.2-1afeb8e787-61c8b03895.zip/node_modules/until-async/",\ + "packageDependencies": [\ + ["until-async", "npm:3.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["untildify", [\ ["npm:4.0.0", {\ "packageLocation": "./.yarn/cache/untildify-npm-4.0.0-4a8b569825-d758e624c7.zip/node_modules/untildify/",\ @@ -21019,6 +22559,56 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ + ["npm:5.4.21", {\ + "packageLocation": "./.yarn/cache/vite-npm-5.4.21-12a8265f9b-468336a140.zip/node_modules/vite/",\ + "packageDependencies": [\ + ["vite", "npm:5.4.21"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:84dcff71db8be9cbe950d0756a4f7772695095a485baf88f1cc98436fdd0ea49e9c6ac7f535ec4b7b26fd24d60bd4323cc6ed6d8629d5b2015f92d4613c7ffb6#npm:5.4.21", {\ + "packageLocation": "./.yarn/__virtual__/vite-virtual-1fe349d1ee/0/cache/vite-npm-5.4.21-12a8265f9b-468336a140.zip/node_modules/vite/",\ + "packageDependencies": [\ + ["vite", "virtual:84dcff71db8be9cbe950d0756a4f7772695095a485baf88f1cc98436fdd0ea49e9c6ac7f535ec4b7b26fd24d60bd4323cc6ed6d8629d5b2015f92d4613c7ffb6#npm:5.4.21"],\ + ["@types/less", null],\ + ["@types/lightningcss", null],\ + ["@types/node", null],\ + ["@types/sass", null],\ + ["@types/sass-embedded", null],\ + ["@types/stylus", null],\ + ["@types/sugarss", null],\ + ["@types/terser", null],\ + ["esbuild", "npm:0.21.5"],\ + ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"],\ + ["less", null],\ + ["lightningcss", null],\ + ["postcss", "npm:8.5.13"],\ + ["rollup", "npm:4.60.2"],\ + ["sass", null],\ + ["sass-embedded", null],\ + ["stylus", null],\ + ["sugarss", null],\ + ["terser", null]\ + ],\ + "packagePeers": [\ + "@types/less",\ + "@types/lightningcss",\ + "@types/node",\ + "@types/sass-embedded",\ + "@types/sass",\ + "@types/stylus",\ + "@types/sugarss",\ + "@types/terser",\ + "less",\ + "lightningcss",\ + "sass-embedded",\ + "sass",\ + "stylus",\ + "sugarss",\ + "terser"\ + ],\ + "linkType": "HARD"\ + }],\ ["virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:5.0.11", {\ "packageLocation": "./.yarn/__virtual__/vite-virtual-d72c85a35b/0/cache/vite-npm-5.0.11-d5457a8b86-74a3ddc6d4.zip/node_modules/vite/",\ "packageDependencies": [\ @@ -21071,6 +22661,80 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["vite-node", [\ + ["npm:2.1.9", {\ + "packageLocation": "./.yarn/cache/vite-node-npm-2.1.9-84dcff71db-0d3589f9f4.zip/node_modules/vite-node/",\ + "packageDependencies": [\ + ["vite-node", "npm:2.1.9"],\ + ["cac", "npm:6.7.14"],\ + ["debug", "virtual:84dcff71db8be9cbe950d0756a4f7772695095a485baf88f1cc98436fdd0ea49e9c6ac7f535ec4b7b26fd24d60bd4323cc6ed6d8629d5b2015f92d4613c7ffb6#npm:4.4.3"],\ + ["es-module-lexer", "npm:1.7.0"],\ + ["pathe", "npm:1.1.2"],\ + ["vite", "virtual:84dcff71db8be9cbe950d0756a4f7772695095a485baf88f1cc98436fdd0ea49e9c6ac7f535ec4b7b26fd24d60bd4323cc6ed6d8629d5b2015f92d4613c7ffb6#npm:5.4.21"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["vitest", [\ + ["npm:2.1.9", {\ + "packageLocation": "./.yarn/cache/vitest-npm-2.1.9-da245b091d-e339e16dcc.zip/node_modules/vitest/",\ + "packageDependencies": [\ + ["vitest", "npm:2.1.9"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:2.1.9", {\ + "packageLocation": "./.yarn/__virtual__/vitest-virtual-4ef281dea3/0/cache/vitest-npm-2.1.9-da245b091d-e339e16dcc.zip/node_modules/vitest/",\ + "packageDependencies": [\ + ["vitest", "virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:2.1.9"],\ + ["@edge-runtime/vm", null],\ + ["@types/edge-runtime__vm", null],\ + ["@types/happy-dom", null],\ + ["@types/jsdom", null],\ + ["@types/node", null],\ + ["@types/vitest__browser", null],\ + ["@types/vitest__ui", null],\ + ["@vitest/browser", null],\ + ["@vitest/expect", "npm:2.1.9"],\ + ["@vitest/mocker", "virtual:4ef281dea3e72cfe15e22e03d459f7e49ac98abc0eff779dcfafbc624bade1c8b1eb2686128e667fb643824bfc3b95d8c57430c45b296c7269745563de98aaf0#npm:2.1.9"],\ + ["@vitest/pretty-format", "npm:2.1.9"],\ + ["@vitest/runner", "npm:2.1.9"],\ + ["@vitest/snapshot", "npm:2.1.9"],\ + ["@vitest/spy", "npm:2.1.9"],\ + ["@vitest/ui", null],\ + ["@vitest/utils", "npm:2.1.9"],\ + ["chai", "npm:5.3.3"],\ + ["debug", "virtual:84dcff71db8be9cbe950d0756a4f7772695095a485baf88f1cc98436fdd0ea49e9c6ac7f535ec4b7b26fd24d60bd4323cc6ed6d8629d5b2015f92d4613c7ffb6#npm:4.4.3"],\ + ["expect-type", "npm:1.3.0"],\ + ["happy-dom", null],\ + ["jsdom", "virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:26.1.0"],\ + ["magic-string", "npm:0.30.21"],\ + ["pathe", "npm:1.1.2"],\ + ["std-env", "npm:3.10.0"],\ + ["tinybench", "npm:2.9.0"],\ + ["tinyexec", "npm:0.3.2"],\ + ["tinypool", "npm:1.1.1"],\ + ["tinyrainbow", "npm:1.2.0"],\ + ["vite", "virtual:84dcff71db8be9cbe950d0756a4f7772695095a485baf88f1cc98436fdd0ea49e9c6ac7f535ec4b7b26fd24d60bd4323cc6ed6d8629d5b2015f92d4613c7ffb6#npm:5.4.21"],\ + ["vite-node", "npm:2.1.9"],\ + ["why-is-node-running", "npm:2.3.0"]\ + ],\ + "packagePeers": [\ + "@edge-runtime/vm",\ + "@types/edge-runtime__vm",\ + "@types/happy-dom",\ + "@types/jsdom",\ + "@types/node",\ + "@types/vitest__browser",\ + "@types/vitest__ui",\ + "@vitest/browser",\ + "@vitest/ui",\ + "happy-dom",\ + "jsdom"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["void-elements", [\ ["npm:3.1.0", {\ "packageLocation": "./.yarn/cache/void-elements-npm-3.1.0-4f43780839-0b8686f9f9.zip/node_modules/void-elements/",\ @@ -21089,6 +22753,16 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["w3c-xmlserializer", [\ + ["npm:5.0.0", {\ + "packageLocation": "./.yarn/cache/w3c-xmlserializer-npm-5.0.0-589edd7bff-8712774c1a.zip/node_modules/w3c-xmlserializer/",\ + "packageDependencies": [\ + ["w3c-xmlserializer", "npm:5.0.0"],\ + ["xml-name-validator", "npm:5.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["walker", [\ ["npm:1.0.8", {\ "packageLocation": "./.yarn/cache/walker-npm-1.0.8-b0a05b9478-a17e037bcc.zip/node_modules/walker/",\ @@ -21137,6 +22811,13 @@ const RAW_RUNTIME_STATE = ["webidl-conversions", "npm:3.0.1"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:7.0.0", {\ + "packageLocation": "./.yarn/cache/webidl-conversions-npm-7.0.0-e8c8e30c68-228d8cb6d2.zip/node_modules/webidl-conversions/",\ + "packageDependencies": [\ + ["webidl-conversions", "npm:7.0.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["webpack-sources", [\ @@ -21157,7 +22838,35 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["whatwg-encoding", [\ + ["npm:3.1.1", {\ + "packageLocation": "./.yarn/cache/whatwg-encoding-npm-3.1.1-7dfe21cf7d-273b5f441c.zip/node_modules/whatwg-encoding/",\ + "packageDependencies": [\ + ["whatwg-encoding", "npm:3.1.1"],\ + ["iconv-lite", "npm:0.6.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["whatwg-mimetype", [\ + ["npm:4.0.0", {\ + "packageLocation": "./.yarn/cache/whatwg-mimetype-npm-4.0.0-ebb293a688-a773cdc812.zip/node_modules/whatwg-mimetype/",\ + "packageDependencies": [\ + ["whatwg-mimetype", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["whatwg-url", [\ + ["npm:14.2.0", {\ + "packageLocation": "./.yarn/cache/whatwg-url-npm-14.2.0-67b670990c-f746fc2f4c.zip/node_modules/whatwg-url/",\ + "packageDependencies": [\ + ["whatwg-url", "npm:14.2.0"],\ + ["tr46", "npm:5.1.1"],\ + ["webidl-conversions", "npm:7.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:5.0.0", {\ "packageLocation": "./.yarn/cache/whatwg-url-npm-5.0.0-374fb45e60-1588bed84d.zip/node_modules/whatwg-url/",\ "packageDependencies": [\ @@ -21227,6 +22936,17 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["why-is-node-running", [\ + ["npm:2.3.0", {\ + "packageLocation": "./.yarn/cache/why-is-node-running-npm-2.3.0-011cf61a18-1cde0b01b8.zip/node_modules/why-is-node-running/",\ + "packageDependencies": [\ + ["why-is-node-running", "npm:2.3.0"],\ + ["siginfo", "npm:2.0.0"],\ + ["stackback", "npm:0.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["wide-align", [\ ["npm:1.1.5", {\ "packageLocation": "./.yarn/cache/wide-align-npm-1.1.5-889d77e592-1d9c2a3e36.zip/node_modules/wide-align/",\ @@ -21313,6 +23033,13 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ + ["npm:8.20.0", {\ + "packageLocation": "./.yarn/cache/ws-npm-8.20.0-b8684d1fe3-956ac5f117.zip/node_modules/ws/",\ + "packageDependencies": [\ + ["ws", "npm:8.20.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ ["virtual:0c2ef15c4fb96e600a7765c97f9f2fe2428b6e6e6d199f974a4512d619d48603b40a3bbc9cc566d1f2111997770a0cf482e601990f90f050c0fad0d3f6694077#npm:6.2.2", {\ "packageLocation": "./.yarn/__virtual__/ws-virtual-fc9f73a998/0/cache/ws-npm-6.2.2-ca62a10fa0-d628a1e956.zip/node_modules/ws/",\ "packageDependencies": [\ @@ -21347,6 +23074,41 @@ const RAW_RUNTIME_STATE = "utf-8-validate"\ ],\ "linkType": "HARD"\ + }],\ + ["virtual:c9bba951cbe0fd558b01bda93a1fe2973b37ad4969d84fe59620375ce44d6b7b439cf261bf7ef68d149ad578f029969f223887153ac4e4053d1a4da5841e5222#npm:8.20.0", {\ + "packageLocation": "./.yarn/__virtual__/ws-virtual-37e951a5e8/0/cache/ws-npm-8.20.0-b8684d1fe3-956ac5f117.zip/node_modules/ws/",\ + "packageDependencies": [\ + ["ws", "virtual:c9bba951cbe0fd558b01bda93a1fe2973b37ad4969d84fe59620375ce44d6b7b439cf261bf7ef68d149ad578f029969f223887153ac4e4053d1a4da5841e5222#npm:8.20.0"],\ + ["@types/bufferutil", null],\ + ["@types/utf-8-validate", null],\ + ["bufferutil", null],\ + ["utf-8-validate", null]\ + ],\ + "packagePeers": [\ + "@types/bufferutil",\ + "@types/utf-8-validate",\ + "bufferutil",\ + "utf-8-validate"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["xml-name-validator", [\ + ["npm:5.0.0", {\ + "packageLocation": "./.yarn/cache/xml-name-validator-npm-5.0.0-0e0ec66944-3fcf44e7b7.zip/node_modules/xml-name-validator/",\ + "packageDependencies": [\ + ["xml-name-validator", "npm:5.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["xmlchars", [\ + ["npm:2.2.0", {\ + "packageLocation": "./.yarn/cache/xmlchars-npm-2.2.0-8b78f0f5e4-b64b535861.zip/node_modules/xmlchars/",\ + "packageDependencies": [\ + ["xmlchars", "npm:2.2.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["xtend", [\ @@ -21358,6 +23120,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["y18n", [\ + ["npm:5.0.8", {\ + "packageLocation": "./.yarn/cache/y18n-npm-5.0.8-5f3a0a7e62-4df2842c36.zip/node_modules/y18n/",\ + "packageDependencies": [\ + ["y18n", "npm:5.0.8"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["yallist", [\ ["npm:3.1.1", {\ "packageLocation": "./.yarn/cache/yallist-npm-3.1.1-a568a556b4-c66a5c46bc.zip/node_modules/yallist/",\ @@ -21383,6 +23154,31 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["yargs", [\ + ["npm:17.7.2", {\ + "packageLocation": "./.yarn/cache/yargs-npm-17.7.2-80b62638e1-ccd7e723e6.zip/node_modules/yargs/",\ + "packageDependencies": [\ + ["yargs", "npm:17.7.2"],\ + ["cliui", "npm:8.0.1"],\ + ["escalade", "npm:3.1.1"],\ + ["get-caller-file", "npm:2.0.5"],\ + ["require-directory", "npm:2.1.1"],\ + ["string-width", "npm:4.2.3"],\ + ["y18n", "npm:5.0.8"],\ + ["yargs-parser", "npm:21.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["yargs-parser", [\ + ["npm:21.1.1", {\ + "packageLocation": "./.yarn/cache/yargs-parser-npm-21.1.1-8fdc003314-f84b5e4816.zip/node_modules/yargs-parser/",\ + "packageDependencies": [\ + ["yargs-parser", "npm:21.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["yauzl", [\ ["npm:2.10.0", {\ "packageLocation": "./.yarn/cache/yauzl-npm-2.10.0-72e70ea021-f265002af7.zip/node_modules/yauzl/",\ diff --git a/apps/admin/.gitignore b/apps/admin/.gitignore index a547bf36..2df5e8ed 100644 --- a/apps/admin/.gitignore +++ b/apps/admin/.gitignore @@ -22,3 +22,4 @@ dist-ssr *.njsproj *.sln *.sw? +.last-run.json \ No newline at end of file diff --git a/apps/admin/e2e/functional/auth-routing.e2e.spec.ts b/apps/admin/e2e/functional/auth-routing.e2e.spec.ts new file mode 100644 index 00000000..18e702a7 --- /dev/null +++ b/apps/admin/e2e/functional/auth-routing.e2e.spec.ts @@ -0,0 +1,21 @@ +import { expect, test } from '@playwright/test'; + +import { prepareE2EContext } from '../helpers/msw'; + +test.describe('Auth routing guard', () => { + test.beforeEach(async ({ page }) => { + await prepareE2EContext(page); + }); + + test('비로그인 + 일반 브라우저는 /home 접근 시 /login으로 이동한다', async ({ page }) => { + await page.addInitScript(() => { + localStorage.removeItem('accessToken'); + localStorage.removeItem('refreshToken'); + }); + + await page.goto('/home'); + await expect(page).toHaveURL(/\/login$/); + await expect(page.getByRole('heading', { name: '로그인' })).toBeVisible(); + await expect(page.getByRole('button', { name: '카카오톡으로 시작하기' })).toBeVisible(); + }); +}); diff --git a/apps/admin/e2e/functional/prequestion-response-flow.e2e.spec.ts b/apps/admin/e2e/functional/prequestion-response-flow.e2e.spec.ts new file mode 100644 index 00000000..e30dcba5 --- /dev/null +++ b/apps/admin/e2e/functional/prequestion-response-flow.e2e.spec.ts @@ -0,0 +1,37 @@ +import { expect, test } from '@playwright/test'; + +import { prepareE2EContext } from '../helpers/msw'; + +test.describe('Pre-question response flow', () => { + test.beforeEach(async ({ page }) => { + await prepareE2EContext(page); + await page.addInitScript(() => { + localStorage.setItem('accessToken', 'access-token'); + localStorage.setItem('refreshToken', 'refresh-token'); + }); + }); + + test('응답 확인 탭에서 참여자별 응답/검색 플로우가 동작한다', async ({ page }) => { + await page.goto('/show/1/pre-question'); + await expect(page.getByText('응답 확인')).toBeVisible(); + + await page.getByText('응답 확인').click(); + await page.getByRole('button', { name: '참여자별 응답' }).click(); + + await expect(page.getByText('홍길동', { exact: true })).toBeVisible(); + await page.getByPlaceholder('참여자명 검색').fill('홍길동'); + await page.waitForTimeout(400); + await expect(page.getByText('홍길동', { exact: true })).toBeVisible(); + }); + + test('검색 결과가 없으면 빈 상태 메시지가 노출된다', async ({ page }) => { + await page.goto('/show/1/pre-question'); + await page.getByText('응답 확인').click(); + await page.getByRole('button', { name: '참여자별 응답' }).click(); + + await page.getByPlaceholder('참여자명 검색').fill('없는이름'); + await page.waitForTimeout(400); + + await expect(page.getByText('검색 결과가 없어요.')).toBeVisible(); + }); +}); diff --git a/apps/admin/e2e/functional/settlement-request-flow.e2e.spec.ts b/apps/admin/e2e/functional/settlement-request-flow.e2e.spec.ts new file mode 100644 index 00000000..66d7cd08 --- /dev/null +++ b/apps/admin/e2e/functional/settlement-request-flow.e2e.spec.ts @@ -0,0 +1,36 @@ +import { expect, test } from '@playwright/test'; + +import { prepareE2EContext } from '../helpers/msw'; + +test.describe('Settlement request flow', () => { + test.beforeEach(async ({ page }) => { + await prepareE2EContext(page); + await page.addInitScript(() => { + localStorage.setItem('accessToken', 'access-token'); + localStorage.setItem('refreshToken', 'refresh-token'); + }); + }); + + test('동의 체크 전 비활성, 체크 후 활성화되고 요청이 전송된다', async ({ page }) => { + await page.goto('/show/1/settlement'); + const submitButton = page.getByRole('button', { name: '정산 요청하기' }); + await expect(submitButton).toBeDisabled(); + + await page.getByText('정산 내역 및 안내사항을 모두 확인하였으며 정산을 요청합니다.').click(); + await expect(submitButton).toBeEnabled(); + await submitButton.click(); + + await expect(page.getByText('정산을 요청했습니다')).toBeVisible(); + }); + + test('요청 실패 시 에러 토스트가 노출된다', async ({ page }) => { + await page.goto('/show/1/settlement'); + await page.evaluate(() => { + localStorage.setItem('__E2E_SCENARIO__', 'settlement-request-fail'); + }); + await page.getByText('정산 내역 및 안내사항을 모두 확인하였으며 정산을 요청합니다.').click(); + await page.getByRole('button', { name: '정산 요청하기' }).click(); + + await expect(page.getByText('정산 요청에 실패했습니다. 잠시 후에 다시 시도해주세요.')).toBeVisible(); + }); +}); diff --git a/apps/admin/e2e/helpers/msw.ts b/apps/admin/e2e/helpers/msw.ts new file mode 100644 index 00000000..c1443871 --- /dev/null +++ b/apps/admin/e2e/helpers/msw.ts @@ -0,0 +1,12 @@ +import type { Page } from '@playwright/test'; + +export const prepareE2EContext = async (page: Page, scenario: string = 'default') => { + await page.addInitScript((currentScenario) => { + (window as Window & { __ENABLE_E2E_MSW__?: boolean }).__ENABLE_E2E_MSW__ = true; + localStorage.setItem('__E2E_SCENARIO__', currentScenario); + }, scenario); + + await page.goto('/'); + await page.waitForFunction(() => window.__E2E_MSW_READY__ === true, null, { timeout: 5000 }); + await page.reload(); +}; diff --git a/apps/admin/package.json b/apps/admin/package.json index baeef449..ffcaf83f 100644 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -9,7 +9,11 @@ "lint": "eslint . --ext ts,tsx --report-unused-disable-directives", "lint:fix": "TIMING=1 eslint . --ext ts,tsx --fix", "type-check": "tsc --noEmit", - "preview": "vite preview" + "preview": "vite preview", + "test": "vitest run", + "test:watch": "vitest", + "test:e2e:functional": "playwright test -c playwright.config.ts", + "test:e2e:ui": "playwright test -c playwright.config.ts --ui" }, "dependencies": { "@boolti/api": "*", @@ -35,7 +39,6 @@ "qrcode.react": "^3.1.0", "quill": "2.0.3", "react": "^18.2.0", - "react-daum-postcode": "^3.1.3", "react-dom": "^18.2.0", "react-dropzone": "^14.2.3", "react-error-boundary": "^4.1.2", @@ -54,12 +57,23 @@ "@boolti/eslint-config": "*", "@boolti/typescript-config": "*", "@emotion/babel-plugin": "^11.11.0", + "@playwright/test": "^1.54.1", + "@testing-library/dom": "^10.4.0", + "@testing-library/react": "^16.0.1", "@types/js-cookie": "^3.0.6", "@types/navermaps": "^3.7.9", "@types/react": "^18.2.43", "@types/react-dom": "^18.2.17", "@vitejs/plugin-react": "^4.2.1", + "jsdom": "^26.1.0", + "msw": "^2.14.2", "typescript": "^5.2.2", - "vite": "^5.0.8" + "vite": "^5.0.8", + "vitest": "^2.1.9" + }, + "msw": { + "workerDirectory": [ + "public" + ] } } diff --git a/apps/admin/playwright.config.ts b/apps/admin/playwright.config.ts new file mode 100644 index 00000000..fb0ecae7 --- /dev/null +++ b/apps/admin/playwright.config.ts @@ -0,0 +1,26 @@ +import { defineConfig, devices } from '@playwright/test'; + +export default defineConfig({ + testDir: './e2e/functional', + timeout: 30_000, + use: { + baseURL: 'http://127.0.0.1:4173', + trace: 'retain-on-failure', + screenshot: 'only-on-failure', + }, + webServer: { + command: 'VITE_E2E_MSW=true VITE_BASE_API_URL=http://127.0.0.1:4173/ yarn workspace admin dev --host 127.0.0.1 --port 4173', + url: 'http://127.0.0.1:4173', + reuseExistingServer: true, + timeout: 120_000, + }, + projects: [ + { + name: 'desktop', + use: { + ...devices['Desktop Chrome'], + viewport: { width: 1280, height: 800 }, + }, + }, + ], +}); diff --git a/apps/admin/public/mockServiceWorker.js b/apps/admin/public/mockServiceWorker.js new file mode 100644 index 00000000..a1e52b47 --- /dev/null +++ b/apps/admin/public/mockServiceWorker.js @@ -0,0 +1,349 @@ +/* eslint-disable */ +/* tslint:disable */ + +/** + * Mock Service Worker. + * @see https://github.com/mswjs/msw + * - Please do NOT modify this file. + */ + +const PACKAGE_VERSION = '2.14.2' +const INTEGRITY_CHECKSUM = '4db4a41e972cec1b64cc569c66952d82' +const IS_MOCKED_RESPONSE = Symbol('isMockedResponse') +const activeClientIds = new Set() + +addEventListener('install', function () { + self.skipWaiting() +}) + +addEventListener('activate', function (event) { + event.waitUntil(self.clients.claim()) +}) + +addEventListener('message', async function (event) { + const clientId = Reflect.get(event.source || {}, 'id') + + if (!clientId || !self.clients) { + return + } + + const client = await self.clients.get(clientId) + + if (!client) { + return + } + + const allClients = await self.clients.matchAll({ + type: 'window', + }) + + switch (event.data) { + case 'KEEPALIVE_REQUEST': { + sendToClient(client, { + type: 'KEEPALIVE_RESPONSE', + }) + break + } + + case 'INTEGRITY_CHECK_REQUEST': { + sendToClient(client, { + type: 'INTEGRITY_CHECK_RESPONSE', + payload: { + packageVersion: PACKAGE_VERSION, + checksum: INTEGRITY_CHECKSUM, + }, + }) + break + } + + case 'MOCK_ACTIVATE': { + activeClientIds.add(clientId) + + sendToClient(client, { + type: 'MOCKING_ENABLED', + payload: { + client: { + id: client.id, + frameType: client.frameType, + }, + }, + }) + break + } + + case 'CLIENT_CLOSED': { + activeClientIds.delete(clientId) + + const remainingClients = allClients.filter((client) => { + return client.id !== clientId + }) + + // Unregister itself when there are no more clients + if (remainingClients.length === 0) { + self.registration.unregister() + } + + break + } + } +}) + +addEventListener('fetch', function (event) { + const requestInterceptedAt = Date.now() + + // Bypass navigation requests. + if (event.request.mode === 'navigate') { + return + } + + // Opening the DevTools triggers the "only-if-cached" request + // that cannot be handled by the worker. Bypass such requests. + if ( + event.request.cache === 'only-if-cached' && + event.request.mode !== 'same-origin' + ) { + return + } + + // Bypass all requests when there are no active clients. + // Prevents the self-unregistered worked from handling requests + // after it's been terminated (still remains active until the next reload). + if (activeClientIds.size === 0) { + return + } + + const requestId = crypto.randomUUID() + event.respondWith(handleRequest(event, requestId, requestInterceptedAt)) +}) + +/** + * @param {FetchEvent} event + * @param {string} requestId + * @param {number} requestInterceptedAt + */ +async function handleRequest(event, requestId, requestInterceptedAt) { + const client = await resolveMainClient(event) + const requestCloneForEvents = event.request.clone() + const response = await getResponse( + event, + client, + requestId, + requestInterceptedAt, + ) + + // Send back the response clone for the "response:*" life-cycle events. + // Ensure MSW is active and ready to handle the message, otherwise + // this message will pend indefinitely. + if (client && activeClientIds.has(client.id)) { + const serializedRequest = await serializeRequest(requestCloneForEvents) + + // Clone the response so both the client and the library could consume it. + const responseClone = response.clone() + + sendToClient( + client, + { + type: 'RESPONSE', + payload: { + isMockedResponse: IS_MOCKED_RESPONSE in response, + request: { + id: requestId, + ...serializedRequest, + }, + response: { + type: responseClone.type, + status: responseClone.status, + statusText: responseClone.statusText, + headers: Object.fromEntries(responseClone.headers.entries()), + body: responseClone.body, + }, + }, + }, + responseClone.body ? [serializedRequest.body, responseClone.body] : [], + ) + } + + return response +} + +/** + * Resolve the main client for the given event. + * Client that issues a request doesn't necessarily equal the client + * that registered the worker. It's with the latter the worker should + * communicate with during the response resolving phase. + * @param {FetchEvent} event + * @returns {Promise} + */ +async function resolveMainClient(event) { + const client = await self.clients.get(event.clientId) + + if (activeClientIds.has(event.clientId)) { + return client + } + + if (client?.frameType === 'top-level') { + return client + } + + const allClients = await self.clients.matchAll({ + type: 'window', + }) + + return allClients + .filter((client) => { + // Get only those clients that are currently visible. + return client.visibilityState === 'visible' + }) + .find((client) => { + // Find the client ID that's recorded in the + // set of clients that have registered the worker. + return activeClientIds.has(client.id) + }) +} + +/** + * @param {FetchEvent} event + * @param {Client | undefined} client + * @param {string} requestId + * @param {number} requestInterceptedAt + * @returns {Promise} + */ +async function getResponse(event, client, requestId, requestInterceptedAt) { + // Clone the request because it might've been already used + // (i.e. its body has been read and sent to the client). + const requestClone = event.request.clone() + + function passthrough() { + // Cast the request headers to a new Headers instance + // so the headers can be manipulated with. + const headers = new Headers(requestClone.headers) + + // Remove the "accept" header value that marked this request as passthrough. + // This prevents request alteration and also keeps it compliant with the + // user-defined CORS policies. + const acceptHeader = headers.get('accept') + if (acceptHeader) { + const values = acceptHeader.split(',').map((value) => value.trim()) + const filteredValues = values.filter( + (value) => value !== 'msw/passthrough', + ) + + if (filteredValues.length > 0) { + headers.set('accept', filteredValues.join(', ')) + } else { + headers.delete('accept') + } + } + + return fetch(requestClone, { headers }) + } + + // Bypass mocking when the client is not active. + if (!client) { + return passthrough() + } + + // Bypass initial page load requests (i.e. static assets). + // The absence of the immediate/parent client in the map of the active clients + // means that MSW hasn't dispatched the "MOCK_ACTIVATE" event yet + // and is not ready to handle requests. + if (!activeClientIds.has(client.id)) { + return passthrough() + } + + // Notify the client that a request has been intercepted. + const serializedRequest = await serializeRequest(event.request) + const clientMessage = await sendToClient( + client, + { + type: 'REQUEST', + payload: { + id: requestId, + interceptedAt: requestInterceptedAt, + ...serializedRequest, + }, + }, + [serializedRequest.body], + ) + + switch (clientMessage.type) { + case 'MOCK_RESPONSE': { + return respondWithMock(clientMessage.data) + } + + case 'PASSTHROUGH': { + return passthrough() + } + } + + return passthrough() +} + +/** + * @param {Client} client + * @param {any} message + * @param {Array} transferrables + * @returns {Promise} + */ +function sendToClient(client, message, transferrables = []) { + return new Promise((resolve, reject) => { + const channel = new MessageChannel() + + channel.port1.onmessage = (event) => { + if (event.data && event.data.error) { + return reject(event.data.error) + } + + resolve(event.data) + } + + client.postMessage(message, [ + channel.port2, + ...transferrables.filter(Boolean), + ]) + }) +} + +/** + * @param {Response} response + * @returns {Response} + */ +function respondWithMock(response) { + // Setting response status code to 0 is a no-op. + // However, when responding with a "Response.error()", the produced Response + // instance will have status code set to 0. Since it's not possible to create + // a Response instance with status code 0, handle that use-case separately. + if (response.status === 0) { + return Response.error() + } + + const mockedResponse = new Response(response.body, response) + + Reflect.defineProperty(mockedResponse, IS_MOCKED_RESPONSE, { + value: true, + enumerable: true, + }) + + return mockedResponse +} + +/** + * @param {Request} request + */ +async function serializeRequest(request) { + return { + url: request.url, + mode: request.mode, + method: request.method, + headers: Object.fromEntries(request.headers.entries()), + cache: request.cache, + credentials: request.credentials, + destination: request.destination, + integrity: request.integrity, + redirect: request.redirect, + referrer: request.referrer, + referrerPolicy: request.referrerPolicy, + body: await request.arrayBuffer(), + keepalive: request.keepalive, + } +} diff --git a/apps/admin/src/App.auth-routing.integration.test.tsx b/apps/admin/src/App.auth-routing.integration.test.tsx new file mode 100644 index 00000000..43449554 --- /dev/null +++ b/apps/admin/src/App.auth-routing.integration.test.tsx @@ -0,0 +1,79 @@ +// @vitest-environment jsdom +// 통합 테스트 목적: +// 1) 비로그인 + 일반 브라우저면 /home 접근 시 /login으로 리다이렉트되는지 검증 +// 2) 로그인 상태면 /home 접근이 허용되는지 검증 +// 3) 비로그인이라도 webview면 /home 접근이 허용되는지 검증 +import { cleanup, render, screen } from '@testing-library/react'; +import { MemoryRouter, Route, Routes } from 'react-router-dom'; +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; + +const mockIsLogin = vi.fn<() => boolean>(); +const mockCheckIsWebView = vi.fn<() => boolean>(); + +vi.mock('~/atoms/useAuthAtom', () => ({ + useAuthAtom: () => ({ + isLogin: mockIsLogin, + }), +})); + +vi.mock('@boolti/bridge', () => ({ + checkIsWebView: () => mockCheckIsWebView(), +})); + +vi.mock('react-router-dom', async (importOriginal) => { + const actual = await importOriginal(); + return { + ...actual, + ScrollRestoration: () => null, + }; +}); + +import PrivateRoute from './routes/PrivateRoute'; + +const renderWithRoute = (isLogin: boolean, isWebView: boolean) => { + mockIsLogin.mockReturnValue(isLogin); + mockCheckIsWebView.mockReturnValue(isWebView); + + render( + + + 로그인 페이지} /> + }> + 홈 페이지} /> + + + , + ); +}; + +describe('PrivateRoute integration', () => { + beforeEach(() => { + vi.clearAllMocks(); + window.scrollTo = vi.fn(); + }); + + afterEach(() => { + cleanup(); + }); + + it('비로그인 + 일반 브라우저면 /login으로 이동한다', async () => { + renderWithRoute(false, false); + + expect(await screen.findByText('로그인 페이지')).toBeTruthy(); + expect(screen.queryByText('홈 페이지')).toBeNull(); + }); + + it('로그인 상태면 /home 접근이 허용된다', async () => { + renderWithRoute(true, false); + + expect(await screen.findByText('홈 페이지')).toBeTruthy(); + expect(screen.queryByText('로그인 페이지')).toBeNull(); + }); + + it('비로그인이라도 webview면 /home 접근이 허용된다', async () => { + renderWithRoute(false, true); + + expect(await screen.findByText('홈 페이지')).toBeTruthy(); + expect(screen.queryByText('로그인 페이지')).toBeNull(); + }); +}); diff --git a/apps/admin/src/App.tsx b/apps/admin/src/App.tsx index cd334918..aecd0d62 100644 --- a/apps/admin/src/App.tsx +++ b/apps/admin/src/App.tsx @@ -19,7 +19,6 @@ import { import AuthErrorBoundary from './components/ErrorBoundary/AuthErrorBoundary'; import { PATH } from './constants/routes'; -import { useAuthAtom } from './atoms/useAuthAtom'; import GlobalErrorBoundary from './components/ErrorBoundary/GlobalErrorBoundary'; import { LandingPage, @@ -46,10 +45,10 @@ import ShowReservationPage from './pages/ShowReservationPage'; import ShowSettlementPage from './pages/ShowSettlementPage'; import ShowEnterancePage from './pages/ShowEnterancePage'; import { initVConsole } from './utils/vConsole'; -import { checkIsWebView } from '@boolti/bridge'; import { X_NCP_APIGW_API_KEY_ID } from './constants/ncp'; import { IS_PRODUCTION_PHASE } from './constants/phase'; import WebView from './pages/WebView'; +import PrivateRoute from './routes/PrivateRoute'; setDefaultOptions({ locale: ko }); @@ -110,23 +109,6 @@ const publicRoutes = [ }, ]; -const PrivateRoute = () => { - const { isLogin } = useAuthAtom(); - - if (!isLogin() && !checkIsWebView()) { - return ; - } - - return ( - <> - - - - - - ); -}; - const privateRoutes = [ { element: ( diff --git a/apps/admin/src/assets/images/create-show.png b/apps/admin/src/assets/images/create-show.png deleted file mode 100644 index 6ee8b0c0..00000000 Binary files a/apps/admin/src/assets/images/create-show.png and /dev/null differ diff --git a/apps/admin/src/assets/images/entrance-notification.png b/apps/admin/src/assets/images/entrance-notification.png deleted file mode 100644 index 1ec063d3..00000000 Binary files a/apps/admin/src/assets/images/entrance-notification.png and /dev/null differ diff --git a/apps/admin/src/assets/images/key-visual.png b/apps/admin/src/assets/images/key-visual.png deleted file mode 100644 index e8a2dc88..00000000 Binary files a/apps/admin/src/assets/images/key-visual.png and /dev/null differ diff --git a/apps/admin/src/assets/images/light.png b/apps/admin/src/assets/images/light.png deleted file mode 100644 index 54299407..00000000 Binary files a/apps/admin/src/assets/images/light.png and /dev/null differ diff --git a/apps/admin/src/assets/images/manage-entrance.png b/apps/admin/src/assets/images/manage-entrance.png deleted file mode 100644 index 64a87316..00000000 Binary files a/apps/admin/src/assets/images/manage-entrance.png and /dev/null differ diff --git a/apps/admin/src/assets/images/mobile-admin-preview.png b/apps/admin/src/assets/images/mobile-admin-preview.png deleted file mode 100644 index 80aa5f15..00000000 Binary files a/apps/admin/src/assets/images/mobile-admin-preview.png and /dev/null differ diff --git a/apps/admin/src/assets/images/mobile-ticket-preview.png b/apps/admin/src/assets/images/mobile-ticket-preview.png deleted file mode 100644 index 4f2f5938..00000000 Binary files a/apps/admin/src/assets/images/mobile-ticket-preview.png and /dev/null differ diff --git a/apps/admin/src/assets/images/more-information-light.png b/apps/admin/src/assets/images/more-information-light.png deleted file mode 100644 index 56059edd..00000000 Binary files a/apps/admin/src/assets/images/more-information-light.png and /dev/null differ diff --git a/apps/admin/src/assets/images/pc-admin-preview.png b/apps/admin/src/assets/images/pc-admin-preview.png deleted file mode 100644 index de28f62f..00000000 Binary files a/apps/admin/src/assets/images/pc-admin-preview.png and /dev/null differ diff --git a/apps/admin/src/assets/images/pc-ticket-preview.png b/apps/admin/src/assets/images/pc-ticket-preview.png deleted file mode 100644 index 93bc0a51..00000000 Binary files a/apps/admin/src/assets/images/pc-ticket-preview.png and /dev/null differ diff --git a/apps/admin/src/assets/images/show-info.png b/apps/admin/src/assets/images/show-info.png deleted file mode 100644 index 64504205..00000000 Binary files a/apps/admin/src/assets/images/show-info.png and /dev/null differ diff --git a/apps/admin/src/assets/images/ticket-purchase.png b/apps/admin/src/assets/images/ticket-purchase.png deleted file mode 100644 index e9218329..00000000 Binary files a/apps/admin/src/assets/images/ticket-purchase.png and /dev/null differ diff --git a/apps/admin/src/assets/landing-v2/arrow.svg b/apps/admin/src/assets/landing-v2/arrow.svg new file mode 100644 index 00000000..82ecc5e2 --- /dev/null +++ b/apps/admin/src/assets/landing-v2/arrow.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/admin/src/assets/landing-v2/entry-asis.png b/apps/admin/src/assets/landing-v2/entry-asis.png new file mode 100644 index 00000000..ee26fbad Binary files /dev/null and b/apps/admin/src/assets/landing-v2/entry-asis.png differ diff --git a/apps/admin/src/assets/landing-v2/entry-tobe.png b/apps/admin/src/assets/landing-v2/entry-tobe.png new file mode 100644 index 00000000..8dacda50 Binary files /dev/null and b/apps/admin/src/assets/landing-v2/entry-tobe.png differ diff --git a/apps/admin/src/assets/landing-v2/hero-1.png b/apps/admin/src/assets/landing-v2/hero-1.png new file mode 100644 index 00000000..bf5c3035 Binary files /dev/null and b/apps/admin/src/assets/landing-v2/hero-1.png differ diff --git a/apps/admin/src/assets/landing-v2/hero-2.png b/apps/admin/src/assets/landing-v2/hero-2.png new file mode 100644 index 00000000..e3c3d5a1 Binary files /dev/null and b/apps/admin/src/assets/landing-v2/hero-2.png differ diff --git a/apps/admin/src/assets/landing-v2/hero-3.png b/apps/admin/src/assets/landing-v2/hero-3.png new file mode 100644 index 00000000..052f281d Binary files /dev/null and b/apps/admin/src/assets/landing-v2/hero-3.png differ diff --git a/apps/admin/src/assets/landing-v2/hero-4.png b/apps/admin/src/assets/landing-v2/hero-4.png new file mode 100644 index 00000000..208ba721 Binary files /dev/null and b/apps/admin/src/assets/landing-v2/hero-4.png differ diff --git a/apps/admin/src/assets/landing-v2/hero-5.png b/apps/admin/src/assets/landing-v2/hero-5.png new file mode 100644 index 00000000..e69cf512 Binary files /dev/null and b/apps/admin/src/assets/landing-v2/hero-5.png differ diff --git a/apps/admin/src/assets/landing-v2/hero-logo.svg b/apps/admin/src/assets/landing-v2/hero-logo.svg new file mode 100644 index 00000000..3fb23394 --- /dev/null +++ b/apps/admin/src/assets/landing-v2/hero-logo.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/admin/src/assets/landing-v2/light.svg b/apps/admin/src/assets/landing-v2/light.svg new file mode 100644 index 00000000..d1685fb3 --- /dev/null +++ b/apps/admin/src/assets/landing-v2/light.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/admin/src/assets/landing-v2/notify-asis.png b/apps/admin/src/assets/landing-v2/notify-asis.png new file mode 100644 index 00000000..cbe61780 Binary files /dev/null and b/apps/admin/src/assets/landing-v2/notify-asis.png differ diff --git a/apps/admin/src/assets/landing-v2/notify-tobe.png b/apps/admin/src/assets/landing-v2/notify-tobe.png new file mode 100644 index 00000000..773aa492 Binary files /dev/null and b/apps/admin/src/assets/landing-v2/notify-tobe.png differ diff --git a/apps/admin/src/assets/landing-v2/payment.png b/apps/admin/src/assets/landing-v2/payment.png new file mode 100644 index 00000000..5a9e90f2 Binary files /dev/null and b/apps/admin/src/assets/landing-v2/payment.png differ diff --git a/apps/admin/src/assets/landing-v2/problem-1.png b/apps/admin/src/assets/landing-v2/problem-1.png new file mode 100644 index 00000000..7a153fa4 Binary files /dev/null and b/apps/admin/src/assets/landing-v2/problem-1.png differ diff --git a/apps/admin/src/assets/landing-v2/problem-2.png b/apps/admin/src/assets/landing-v2/problem-2.png new file mode 100644 index 00000000..06b91c95 Binary files /dev/null and b/apps/admin/src/assets/landing-v2/problem-2.png differ diff --git a/apps/admin/src/assets/landing-v2/problem-3.png b/apps/admin/src/assets/landing-v2/problem-3.png new file mode 100644 index 00000000..bfa678f4 Binary files /dev/null and b/apps/admin/src/assets/landing-v2/problem-3.png differ diff --git a/apps/admin/src/assets/landing-v2/problem-4.png b/apps/admin/src/assets/landing-v2/problem-4.png new file mode 100644 index 00000000..2d610e9e Binary files /dev/null and b/apps/admin/src/assets/landing-v2/problem-4.png differ diff --git a/apps/admin/src/assets/landing-v2/problem-5.png b/apps/admin/src/assets/landing-v2/problem-5.png new file mode 100644 index 00000000..80b53ccb Binary files /dev/null and b/apps/admin/src/assets/landing-v2/problem-5.png differ diff --git a/apps/admin/src/assets/landing-v2/problem-6.png b/apps/admin/src/assets/landing-v2/problem-6.png new file mode 100644 index 00000000..8df3af66 Binary files /dev/null and b/apps/admin/src/assets/landing-v2/problem-6.png differ diff --git a/apps/admin/src/assets/landing-v2/promo-1.png b/apps/admin/src/assets/landing-v2/promo-1.png new file mode 100644 index 00000000..f72dadc2 Binary files /dev/null and b/apps/admin/src/assets/landing-v2/promo-1.png differ diff --git a/apps/admin/src/assets/landing-v2/promo-2.png b/apps/admin/src/assets/landing-v2/promo-2.png new file mode 100644 index 00000000..886505ba Binary files /dev/null and b/apps/admin/src/assets/landing-v2/promo-2.png differ diff --git a/apps/admin/src/assets/landing-v2/sales-asis.png b/apps/admin/src/assets/landing-v2/sales-asis.png new file mode 100644 index 00000000..db85cca9 Binary files /dev/null and b/apps/admin/src/assets/landing-v2/sales-asis.png differ diff --git a/apps/admin/src/assets/landing-v2/sales-tobe.png b/apps/admin/src/assets/landing-v2/sales-tobe.png new file mode 100644 index 00000000..1bc3282d Binary files /dev/null and b/apps/admin/src/assets/landing-v2/sales-tobe.png differ diff --git a/apps/admin/src/assets/landing-v2/stats-asis.png b/apps/admin/src/assets/landing-v2/stats-asis.png new file mode 100644 index 00000000..55106205 Binary files /dev/null and b/apps/admin/src/assets/landing-v2/stats-asis.png differ diff --git a/apps/admin/src/assets/landing-v2/stats-tobe.png b/apps/admin/src/assets/landing-v2/stats-tobe.png new file mode 100644 index 00000000..beaf49f2 Binary files /dev/null and b/apps/admin/src/assets/landing-v2/stats-tobe.png differ diff --git a/apps/admin/src/components/EnteranceTable/EnteranceTable.integration.test.tsx b/apps/admin/src/components/EnteranceTable/EnteranceTable.integration.test.tsx new file mode 100644 index 00000000..f66ad08e --- /dev/null +++ b/apps/admin/src/components/EnteranceTable/EnteranceTable.integration.test.tsx @@ -0,0 +1,65 @@ +// @vitest-environment jsdom +// 통합 테스트 목적: +// 1) EnteranceTable에서 연락처가 formatPhoneNumber 결과로 렌더링되는지 검증 +// 2) 검색어가 boldText를 통해 하이라이트로 렌더링되는지 검증 +import React from 'react'; +import { render } from '@testing-library/react'; +import { describe, expect, it, vi } from 'vitest'; + +import EnteranceTable from './index'; + +type EnteranceRow = React.ComponentProps['data'][number]; + +vi.mock('@boolti/ui', () => ({ + Button: (props: React.ButtonHTMLAttributes) => ( +