diff --git a/.dockerignore b/.dockerignore index 82578d793c..c4939cb018 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,7 +1,7 @@ # Ignore everything ** -# include Yarn 2 configuration, cache, releases and plugins +# include Yarn 4 configuration, cache, releases and plugins !.yarn/cache !.yarn/releases !.yarn/plugins @@ -9,6 +9,7 @@ !.yarnrc.yml !.pnp.cjs !.pnp.loader.mjs +!yarn.config.cjs # include root workspace !package.json @@ -32,6 +33,15 @@ !packages/request/__fixtures__ !packages/request/__mocks__ +# include workspace packages/polling-watcher +!packages/polling-watcher/package.json +!packages/polling-watcher/eslint.config.js +!packages/polling-watcher/jest.setup.js +!packages/polling-watcher/lib +!packages/polling-watcher/__tests__ +!packages/polling-watcher/__fixtures__ +!packages/polling-watcher/__mocks__ + # include workspace packages/kube-config !packages/kube-config/package.json !packages/kube-config/eslint.config.js diff --git a/.pnp.cjs b/.pnp.cjs index 00be561f0b..42a4432837 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -42,6 +42,10 @@ const RAW_RUNTIME_STATE = "name": "@gardener-dashboard/monitor",\ "reference": "workspace:packages/monitor"\ },\ + {\ + "name": "@gardener-dashboard/polling-watcher",\ + "reference": "workspace:packages/polling-watcher"\ + },\ {\ "name": "@gardener-dashboard/request",\ "reference": "workspace:packages/request"\ @@ -61,6 +65,7 @@ const RAW_RUNTIME_STATE = ["@gardener-dashboard/kube-config", ["workspace:packages/kube-config"]],\ ["@gardener-dashboard/logger", ["workspace:packages/logger"]],\ ["@gardener-dashboard/monitor", ["workspace:packages/monitor"]],\ + ["@gardener-dashboard/polling-watcher", ["workspace:packages/polling-watcher"]],\ ["@gardener-dashboard/request", ["workspace:packages/request"]],\ ["@gardener-dashboard/test-utils", ["workspace:packages/test-utils"]],\ ["gardener-dashboard", ["workspace:."]]\ @@ -72,7 +77,8 @@ const RAW_RUNTIME_STATE = [null, {\ "packageLocation": "./",\ "packageDependencies": [\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ + ["@microsoft/eslint-formatter-sarif", "npm:3.1.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["jest", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:29.7.0"],\ ["node-gyp", "npm:9.4.0"]\ ],\ @@ -164,7 +170,7 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["@babel/code-frame", "npm:7.24.7"],\ ["@babel/highlight", "npm:7.24.7"],\ - ["picocolors", "npm:1.1.0"]\ + ["picocolors", "npm:1.1.1"]\ ],\ "linkType": "HARD"\ }]\ @@ -194,7 +200,7 @@ const RAW_RUNTIME_STATE = ["@babel/traverse", "npm:7.24.7"],\ ["@babel/types", "npm:7.26.0"],\ ["convert-source-map", "npm:2.0.0"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ ["gensync", "npm:1.0.0-beta.2"],\ ["json5", "npm:2.2.3"],\ ["semver", "npm:6.3.1"]\ @@ -374,7 +380,7 @@ const RAW_RUNTIME_STATE = ["@babel/helper-validator-identifier", "npm:7.25.9"],\ ["chalk", "npm:2.4.2"],\ ["js-tokens", "npm:4.0.0"],\ - ["picocolors", "npm:1.1.0"]\ + ["picocolors", "npm:1.1.1"]\ ],\ "linkType": "HARD"\ }]\ @@ -904,7 +910,7 @@ const RAW_RUNTIME_STATE = ["@babel/helper-split-export-declaration", "npm:7.24.7"],\ ["@babel/parser", "npm:7.26.2"],\ ["@babel/types", "npm:7.26.0"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ ["globals", "npm:11.12.0"]\ ],\ "linkType": "HARD"\ @@ -942,7 +948,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./.yarn/__virtual__/@codemirror-autocomplete-virtual-971147843b/0/cache/@codemirror-autocomplete-npm-6.18.3-d04fd15061-6d953d50ca.zip/node_modules/@codemirror/autocomplete/",\ "packageDependencies": [\ ["@codemirror/autocomplete", "virtual:394dfa168191eeecf96909f25681b55b33ead8fc50fd0a11ab993dc4dac05b4b1625a43d289b67f5ea6f52728a72fd8b13e50efd2deb55615cce83baa304218a#npm:6.18.3"],\ - ["@codemirror/language", "npm:6.10.4"],\ + ["@codemirror/language", "npm:6.10.6"],\ ["@codemirror/state", "npm:6.4.1"],\ ["@codemirror/view", "npm:6.35.0"],\ ["@lezer/common", "npm:1.2.3"],\ @@ -968,7 +974,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./.yarn/cache/@codemirror-commands-npm-6.7.1-d192cff451-287a50eebc.zip/node_modules/@codemirror/commands/",\ "packageDependencies": [\ ["@codemirror/commands", "npm:6.7.1"],\ - ["@codemirror/language", "npm:6.10.4"],\ + ["@codemirror/language", "npm:6.10.6"],\ ["@codemirror/state", "npm:6.4.1"],\ ["@codemirror/view", "npm:6.35.0"],\ ["@lezer/common", "npm:1.2.3"]\ @@ -982,7 +988,7 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["@codemirror/lang-yaml", "npm:6.1.1"],\ ["@codemirror/autocomplete", "virtual:394dfa168191eeecf96909f25681b55b33ead8fc50fd0a11ab993dc4dac05b4b1625a43d289b67f5ea6f52728a72fd8b13e50efd2deb55615cce83baa304218a#npm:6.18.3"],\ - ["@codemirror/language", "npm:6.10.4"],\ + ["@codemirror/language", "npm:6.10.6"],\ ["@codemirror/state", "npm:6.4.1"],\ ["@lezer/common", "npm:1.2.3"],\ ["@lezer/highlight", "npm:1.2.1"],\ @@ -993,10 +999,10 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@codemirror/language", [\ - ["npm:6.10.4", {\ - "packageLocation": "./.yarn/cache/@codemirror-language-npm-6.10.4-2d12a696df-46c2bda099.zip/node_modules/@codemirror/language/",\ + ["npm:6.10.6", {\ + "packageLocation": "./.yarn/cache/@codemirror-language-npm-6.10.6-46cac28271-8d68121659.zip/node_modules/@codemirror/language/",\ "packageDependencies": [\ - ["@codemirror/language", "npm:6.10.4"],\ + ["@codemirror/language", "npm:6.10.6"],\ ["@codemirror/state", "npm:6.4.1"],\ ["@codemirror/view", "npm:6.35.0"],\ ["@lezer/common", "npm:1.2.3"],\ @@ -1033,7 +1039,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./.yarn/cache/@codemirror-theme-one-dark-npm-6.1.2-4b82de8377-d0d70ce1e0.zip/node_modules/@codemirror/theme-one-dark/",\ "packageDependencies": [\ ["@codemirror/theme-one-dark", "npm:6.1.2"],\ - ["@codemirror/language", "npm:6.10.4"],\ + ["@codemirror/language", "npm:6.10.6"],\ ["@codemirror/state", "npm:6.4.1"],\ ["@codemirror/view", "npm:6.35.0"],\ ["@lezer/highlight", "npm:1.2.1"]\ @@ -1060,6 +1066,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/aix-ppc64", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-aix-ppc64-npm-0.24.0-0c54699704/node_modules/@esbuild/aix-ppc64/",\ + "packageDependencies": [\ + ["@esbuild/aix-ppc64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/android-arm", [\ @@ -1069,6 +1082,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/android-arm", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-android-arm-npm-0.24.0-ef64bfe1bb/node_modules/@esbuild/android-arm/",\ + "packageDependencies": [\ + ["@esbuild/android-arm", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/android-arm64", [\ @@ -1078,6 +1098,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/android-arm64", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-android-arm64-npm-0.24.0-35ef991393/node_modules/@esbuild/android-arm64/",\ + "packageDependencies": [\ + ["@esbuild/android-arm64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/android-x64", [\ @@ -1087,6 +1114,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/android-x64", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-android-x64-npm-0.24.0-c7e2a5c595/node_modules/@esbuild/android-x64/",\ + "packageDependencies": [\ + ["@esbuild/android-x64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/darwin-arm64", [\ @@ -1096,6 +1130,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/darwin-arm64", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-darwin-arm64-npm-0.24.0-f33b2ff14e/node_modules/@esbuild/darwin-arm64/",\ + "packageDependencies": [\ + ["@esbuild/darwin-arm64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/darwin-x64", [\ @@ -1105,6 +1146,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/darwin-x64", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-darwin-x64-npm-0.24.0-45e382787a/node_modules/@esbuild/darwin-x64/",\ + "packageDependencies": [\ + ["@esbuild/darwin-x64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/freebsd-arm64", [\ @@ -1114,6 +1162,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/freebsd-arm64", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-freebsd-arm64-npm-0.24.0-7b0106f2b2/node_modules/@esbuild/freebsd-arm64/",\ + "packageDependencies": [\ + ["@esbuild/freebsd-arm64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/freebsd-x64", [\ @@ -1123,6 +1178,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/freebsd-x64", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-freebsd-x64-npm-0.24.0-df6e827fcf/node_modules/@esbuild/freebsd-x64/",\ + "packageDependencies": [\ + ["@esbuild/freebsd-x64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-arm", [\ @@ -1132,6 +1194,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/linux-arm", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-arm-npm-0.24.0-200ed5fc63/node_modules/@esbuild/linux-arm/",\ + "packageDependencies": [\ + ["@esbuild/linux-arm", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-arm64", [\ @@ -1141,6 +1210,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/linux-arm64", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-arm64-npm-0.24.0-72377a710b/node_modules/@esbuild/linux-arm64/",\ + "packageDependencies": [\ + ["@esbuild/linux-arm64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-ia32", [\ @@ -1150,6 +1226,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/linux-ia32", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-ia32-npm-0.24.0-9b42115e3d/node_modules/@esbuild/linux-ia32/",\ + "packageDependencies": [\ + ["@esbuild/linux-ia32", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-loong64", [\ @@ -1159,6 +1242,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/linux-loong64", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-loong64-npm-0.24.0-0aef6641c8/node_modules/@esbuild/linux-loong64/",\ + "packageDependencies": [\ + ["@esbuild/linux-loong64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-mips64el", [\ @@ -1168,6 +1258,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/linux-mips64el", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-mips64el-npm-0.24.0-a183e9ea18/node_modules/@esbuild/linux-mips64el/",\ + "packageDependencies": [\ + ["@esbuild/linux-mips64el", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-ppc64", [\ @@ -1177,6 +1274,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/linux-ppc64", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-ppc64-npm-0.24.0-5abb2df7b8/node_modules/@esbuild/linux-ppc64/",\ + "packageDependencies": [\ + ["@esbuild/linux-ppc64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-riscv64", [\ @@ -1186,6 +1290,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/linux-riscv64", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-riscv64-npm-0.24.0-558059e32f/node_modules/@esbuild/linux-riscv64/",\ + "packageDependencies": [\ + ["@esbuild/linux-riscv64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-s390x", [\ @@ -1195,6 +1306,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/linux-s390x", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-s390x-npm-0.24.0-6bf429b958/node_modules/@esbuild/linux-s390x/",\ + "packageDependencies": [\ + ["@esbuild/linux-s390x", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-x64", [\ @@ -1204,6 +1322,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/linux-x64", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-x64-npm-0.24.0-744e76a7ed/node_modules/@esbuild/linux-x64/",\ + "packageDependencies": [\ + ["@esbuild/linux-x64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/netbsd-x64", [\ @@ -1213,6 +1338,22 @@ const RAW_RUNTIME_STATE = ["@esbuild/netbsd-x64", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-netbsd-x64-npm-0.24.0-b1cf3e2870/node_modules/@esbuild/netbsd-x64/",\ + "packageDependencies": [\ + ["@esbuild/netbsd-x64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/openbsd-arm64", [\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-openbsd-arm64-npm-0.24.0-1b1265740e/node_modules/@esbuild/openbsd-arm64/",\ + "packageDependencies": [\ + ["@esbuild/openbsd-arm64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/openbsd-x64", [\ @@ -1222,6 +1363,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/openbsd-x64", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-openbsd-x64-npm-0.24.0-0422c66835/node_modules/@esbuild/openbsd-x64/",\ + "packageDependencies": [\ + ["@esbuild/openbsd-x64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/sunos-x64", [\ @@ -1231,6 +1379,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/sunos-x64", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-sunos-x64-npm-0.24.0-f223358512/node_modules/@esbuild/sunos-x64/",\ + "packageDependencies": [\ + ["@esbuild/sunos-x64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/win32-arm64", [\ @@ -1240,6 +1395,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/win32-arm64", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-win32-arm64-npm-0.24.0-36e85ee9d3/node_modules/@esbuild/win32-arm64/",\ + "packageDependencies": [\ + ["@esbuild/win32-arm64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/win32-ia32", [\ @@ -1249,6 +1411,13 @@ const RAW_RUNTIME_STATE = ["@esbuild/win32-ia32", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-win32-ia32-npm-0.24.0-2f5b0aac7c/node_modules/@esbuild/win32-ia32/",\ + "packageDependencies": [\ + ["@esbuild/win32-ia32", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@esbuild/win32-x64", [\ @@ -1258,16 +1427,16 @@ const RAW_RUNTIME_STATE = ["@esbuild/win32-x64", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-win32-x64-npm-0.24.0-ba622587b3/node_modules/@esbuild/win32-x64/",\ + "packageDependencies": [\ + ["@esbuild/win32-x64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@eslint-community/eslint-utils", [\ - ["npm:4.4.0", {\ - "packageLocation": "./.yarn/cache/@eslint-community-eslint-utils-npm-4.4.0-d1791bd5a3-7e559c4ce5.zip/node_modules/@eslint-community/eslint-utils/",\ - "packageDependencies": [\ - ["@eslint-community/eslint-utils", "npm:4.4.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ ["npm:4.4.1", {\ "packageLocation": "./.yarn/cache/@eslint-community-eslint-utils-npm-4.4.1-c83a271e90-2aa0ac2fc5.zip/node_modules/@eslint-community/eslint-utils/",\ "packageDependencies": [\ @@ -1275,12 +1444,12 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:1fec2585567df2baf4e6094c0c86eb9d84760be330b6fe6c669230e99e52c9f91ed9cf539f99613768b3d5b796d9537b3fcd8084459eb13edb773ff1a6ef7367#npm:4.4.1", {\ - "packageLocation": "./.yarn/__virtual__/@eslint-community-eslint-utils-virtual-e9b089131b/0/cache/@eslint-community-eslint-utils-npm-4.4.1-c83a271e90-2aa0ac2fc5.zip/node_modules/@eslint-community/eslint-utils/",\ + ["virtual:505b636198d210e0f206fa38a0ae0f7fe29d0c724f352c366e1288df99c0aa2cd6164337c234ec2ed973c68536359df249f394c924afd03ffbb1b63a3a7f7e78#npm:4.4.1", {\ + "packageLocation": "./.yarn/__virtual__/@eslint-community-eslint-utils-virtual-b52a9e0530/0/cache/@eslint-community-eslint-utils-npm-4.4.1-c83a271e90-2aa0ac2fc5.zip/node_modules/@eslint-community/eslint-utils/",\ "packageDependencies": [\ - ["@eslint-community/eslint-utils", "virtual:1fec2585567df2baf4e6094c0c86eb9d84760be330b6fe6c669230e99e52c9f91ed9cf539f99613768b3d5b796d9537b3fcd8084459eb13edb773ff1a6ef7367#npm:4.4.1"],\ + ["@eslint-community/eslint-utils", "virtual:505b636198d210e0f206fa38a0ae0f7fe29d0c724f352c366e1288df99c0aa2cd6164337c234ec2ed973c68536359df249f394c924afd03ffbb1b63a3a7f7e78#npm:4.4.1"],\ ["@types/eslint", null],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["eslint-visitor-keys", "npm:3.4.3"]\ ],\ "packagePeers": [\ @@ -1289,26 +1458,12 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ - ["virtual:75f5f3bd86269d2dc4c5703baddfa0e0101eb5fd5cc7cab281fcdcf59e171fcb1c408e97818b2d543266db7acec87b269c781eb32fa6a979e8d24ed6d42cf9dd#npm:4.4.0", {\ - "packageLocation": "./.yarn/__virtual__/@eslint-community-eslint-utils-virtual-bd737af038/0/cache/@eslint-community-eslint-utils-npm-4.4.0-d1791bd5a3-7e559c4ce5.zip/node_modules/@eslint-community/eslint-utils/",\ + ["virtual:dd20287a5a1e86b12a5b04609f98bd729fafd847d08e1fc89cdc68f92d1acf209e53b09ef0af4b6e7781d88e1f9acf94e3bf34619939e434ad5ffb0f24855eb4#npm:4.4.1", {\ + "packageLocation": "./.yarn/__virtual__/@eslint-community-eslint-utils-virtual-54cbbd4771/0/cache/@eslint-community-eslint-utils-npm-4.4.1-c83a271e90-2aa0ac2fc5.zip/node_modules/@eslint-community/eslint-utils/",\ "packageDependencies": [\ - ["@eslint-community/eslint-utils", "virtual:75f5f3bd86269d2dc4c5703baddfa0e0101eb5fd5cc7cab281fcdcf59e171fcb1c408e97818b2d543266db7acec87b269c781eb32fa6a979e8d24ed6d42cf9dd#npm:4.4.0"],\ + ["@eslint-community/eslint-utils", "virtual:dd20287a5a1e86b12a5b04609f98bd729fafd847d08e1fc89cdc68f92d1acf209e53b09ef0af4b6e7781d88e1f9acf94e3bf34619939e434ad5ffb0f24855eb4#npm:4.4.1"],\ ["@types/eslint", null],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ - ["eslint-visitor-keys", "npm:3.4.3"]\ - ],\ - "packagePeers": [\ - "@types/eslint",\ - "eslint"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:d84daf63b75039f65e32d776091a5a95ab3e18242eb444be8889bbcb76b7a7d7508b5e670a8854278abbbed4908e5d0d13344665327911199da36bd456a270c0#npm:4.4.0", {\ - "packageLocation": "./.yarn/__virtual__/@eslint-community-eslint-utils-virtual-cc37cd0ab8/0/cache/@eslint-community-eslint-utils-npm-4.4.0-d1791bd5a3-7e559c4ce5.zip/node_modules/@eslint-community/eslint-utils/",\ - "packageDependencies": [\ - ["@eslint-community/eslint-utils", "virtual:d84daf63b75039f65e32d776091a5a95ab3e18242eb444be8889bbcb76b7a7d7508b5e670a8854278abbbed4908e5d0d13344665327911199da36bd456a270c0#npm:4.4.0"],\ - ["@types/eslint", null],\ - ["eslint", null],\ + ["eslint", "npm:8.57.1"],\ ["eslint-visitor-keys", "npm:3.4.3"]\ ],\ "packagePeers": [\ @@ -1319,13 +1474,6 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@eslint-community/regexpp", [\ - ["npm:4.11.1", {\ - "packageLocation": "./.yarn/cache/@eslint-community-regexpp-npm-4.11.1-37bbb67aaa-fbcc1cb65e.zip/node_modules/@eslint-community/regexpp/",\ - "packageDependencies": [\ - ["@eslint-community/regexpp", "npm:4.11.1"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:4.12.1", {\ "packageLocation": "./.yarn/cache/@eslint-community-regexpp-npm-4.12.1-ef4ab5217e-a03d98c246.zip/node_modules/@eslint-community/regexpp/",\ "packageDependencies": [\ @@ -1335,33 +1483,49 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@eslint/config-array", [\ - ["npm:0.18.0", {\ - "packageLocation": "./.yarn/cache/@eslint-config-array-npm-0.18.0-bb4bc4e301-0234aeb3e6.zip/node_modules/@eslint/config-array/",\ + ["npm:0.19.0", {\ + "packageLocation": "./.yarn/cache/@eslint-config-array-npm-0.19.0-23614541c1-def23c6c67.zip/node_modules/@eslint/config-array/",\ "packageDependencies": [\ - ["@eslint/config-array", "npm:0.18.0"],\ + ["@eslint/config-array", "npm:0.19.0"],\ ["@eslint/object-schema", "npm:2.1.4"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ ["minimatch", "npm:3.1.2"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@eslint/core", [\ - ["npm:0.7.0", {\ - "packageLocation": "./.yarn/cache/@eslint-core-npm-0.7.0-55f1b6f05c-3cdee8bc6c.zip/node_modules/@eslint/core/",\ + ["npm:0.9.0", {\ + "packageLocation": "./.yarn/cache/@eslint-core-npm-0.9.0-a4420a370d-6d8e8e0991.zip/node_modules/@eslint/core/",\ "packageDependencies": [\ - ["@eslint/core", "npm:0.7.0"]\ + ["@eslint/core", "npm:0.9.0"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@eslint/eslintrc", [\ - ["npm:3.1.0", {\ - "packageLocation": "./.yarn/cache/@eslint-eslintrc-npm-3.1.0-3837a202e2-5b7332ed78.zip/node_modules/@eslint/eslintrc/",\ + ["npm:2.1.4", {\ + "packageLocation": "./.yarn/cache/@eslint-eslintrc-npm-2.1.4-1ff4b5f908-32f67052b8.zip/node_modules/@eslint/eslintrc/",\ "packageDependencies": [\ - ["@eslint/eslintrc", "npm:3.1.0"],\ + ["@eslint/eslintrc", "npm:2.1.4"],\ ["ajv", "npm:6.12.6"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ + ["espree", "npm:9.6.1"],\ + ["globals", "npm:13.24.0"],\ + ["ignore", "npm:5.3.2"],\ + ["import-fresh", "npm:3.3.0"],\ + ["js-yaml", "npm:4.1.0"],\ + ["minimatch", "npm:3.1.2"],\ + ["strip-json-comments", "npm:3.1.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.2.0", {\ + "packageLocation": "./.yarn/cache/@eslint-eslintrc-npm-3.2.0-1f7efe7868-43867a07ff.zip/node_modules/@eslint/eslintrc/",\ + "packageDependencies": [\ + ["@eslint/eslintrc", "npm:3.2.0"],\ + ["ajv", "npm:6.12.6"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ ["espree", "npm:10.3.0"],\ ["globals", "npm:14.0.0"],\ ["ignore", "npm:5.3.2"],\ @@ -1374,10 +1538,17 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@eslint/js", [\ - ["npm:9.14.0", {\ - "packageLocation": "./.yarn/cache/@eslint-js-npm-9.14.0-778d6db19a-a423dd435e.zip/node_modules/@eslint/js/",\ + ["npm:8.57.1", {\ + "packageLocation": "./.yarn/cache/@eslint-js-npm-8.57.1-dec269f278-b489c474a3.zip/node_modules/@eslint/js/",\ "packageDependencies": [\ - ["@eslint/js", "npm:9.14.0"]\ + ["@eslint/js", "npm:8.57.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:9.16.0", {\ + "packageLocation": "./.yarn/cache/@eslint-js-npm-9.16.0-6c9e3348c0-a55846a4dd.zip/node_modules/@eslint/js/",\ + "packageDependencies": [\ + ["@eslint/js", "npm:9.16.0"]\ ],\ "linkType": "HARD"\ }]\ @@ -1452,6 +1623,7 @@ const RAW_RUNTIME_STATE = ["@gardener-dashboard/request", "workspace:packages/request"],\ ["@gardener-dashboard/test-utils", "workspace:packages/test-utils"],\ ["@godaddy/terminus", "npm:4.12.1"],\ + ["@microsoft/eslint-formatter-sarif", "npm:3.1.0"],\ ["@octokit/auth-app", "npm:6.1.3"],\ ["@octokit/core", "npm:5.2.0"],\ ["@octokit/plugin-paginate-graphql", "virtual:91da830b29af2704bfc9679729fb85d00ca0b8eeb24a837747a5bc0b5aec0e922594580a901a48c34c06a65b9b376f23fa3cbb88dc9fd35cddc5076ab48a067f#npm:4.0.1"],\ @@ -1465,7 +1637,7 @@ const RAW_RUNTIME_STATE = ["cookie-parser", "npm:1.4.7"],\ ["cross-env", "npm:7.0.3"],\ ["dockerfile-ast", "npm:0.7.0"],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["eslint-plugin-import", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:2.31.0"],\ ["eslint-plugin-jest", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:28.9.0"],\ ["eslint-plugin-lodash", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:8.0.0"],\ @@ -1482,7 +1654,7 @@ const RAW_RUNTIME_STATE = ["jsonwebtoken", "npm:9.0.2"],\ ["lodash", "npm:4.17.21"],\ ["morgan", "npm:1.10.0"],\ - ["neostandard", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:0.11.8"],\ + ["neostandard", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:0.11.9"],\ ["node-fetch-commonjs", "npm:3.3.2"],\ ["object-hash", "npm:3.0.0"],\ ["openapi-types", "npm:12.1.3"],\ @@ -1510,14 +1682,14 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["@gardener-dashboard/charts", "workspace:charts"],\ ["@gardener-dashboard/test-utils", "workspace:packages/test-utils"],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["eslint-plugin-import", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:2.31.0"],\ ["eslint-plugin-jest", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:28.9.0"],\ ["eslint-plugin-lodash", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:8.0.0"],\ ["jest", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:29.7.0"],\ ["js-yaml", "npm:4.1.0"],\ ["lodash", "npm:4.17.21"],\ - ["neostandard", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:0.11.8"]\ + ["neostandard", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:0.11.9"]\ ],\ "linkType": "SOFT"\ }]\ @@ -1530,7 +1702,7 @@ const RAW_RUNTIME_STATE = ["@codemirror/autocomplete", "virtual:394dfa168191eeecf96909f25681b55b33ead8fc50fd0a11ab993dc4dac05b4b1625a43d289b67f5ea6f52728a72fd8b13e50efd2deb55615cce83baa304218a#npm:6.18.3"],\ ["@codemirror/commands", "npm:6.7.1"],\ ["@codemirror/lang-yaml", "npm:6.1.1"],\ - ["@codemirror/language", "npm:6.10.4"],\ + ["@codemirror/language", "npm:6.10.6"],\ ["@codemirror/search", "npm:6.5.8"],\ ["@codemirror/state", "npm:6.4.1"],\ ["@codemirror/theme-one-dark", "npm:6.1.2"],\ @@ -1540,32 +1712,33 @@ const RAW_RUNTIME_STATE = ["@lezer/common", "npm:1.2.3"],\ ["@luigi-project/client", "npm:2.14.1"],\ ["@mdi/font", "npm:7.4.47"],\ + ["@microsoft/eslint-formatter-sarif", "npm:3.1.0"],\ ["@pinia/testing", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:0.1.7"],\ - ["@typescript-eslint/utils", "virtual:920265345ea4067faba4b79db8010284e5552da581ea1ebfc57c6b032c05d37984adc7407082d7cee117f52d1ce80786b7b4b16b270103e24f47bcc006895d57#npm:8.14.0"],\ - ["@vitejs/plugin-basic-ssl", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:1.1.0"],\ - ["@vitejs/plugin-vue", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:5.2.0"],\ - ["@vitest/coverage-v8", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.5"],\ - ["@vitest/eslint-plugin", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:1.1.10"],\ - ["@vitest/ui", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.5"],\ + ["@typescript-eslint/utils", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:8.16.0"],\ + ["@vitejs/plugin-basic-ssl", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:1.2.0"],\ + ["@vitejs/plugin-vue", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:5.2.1"],\ + ["@vitest/coverage-v8", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.7"],\ + ["@vitest/eslint-plugin", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:1.1.13"],\ + ["@vitest/ui", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.7"],\ ["@vue/test-utils", "npm:2.4.6"],\ ["@vuelidate/core", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.0.3"],\ ["@vuelidate/validators", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.0.4"],\ - ["@vueuse/core", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:11.3.0"],\ - ["@vueuse/integrations", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:11.3.0"],\ - ["@vueuse/router", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:11.3.0"],\ + ["@vueuse/core", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:12.0.0"],\ + ["@vueuse/integrations", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:12.0.0"],\ + ["@vueuse/router", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:12.0.0"],\ ["@xterm/addon-fit", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:0.10.0"],\ ["@xterm/addon-web-links", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:0.11.0"],\ ["@xterm/xterm", "npm:5.5.0"],\ ["ansi-html", "npm:0.0.9"],\ ["dayjs", "npm:1.11.13"],\ ["downloadjs", "npm:1.4.7"],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["eslint-import-resolver-alias", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:1.1.2"],\ ["eslint-plugin-import", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:2.31.0"],\ ["eslint-plugin-import-newlines", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:1.4.0"],\ ["eslint-plugin-lodash", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:8.0.0"],\ ["eslint-plugin-security", "npm:3.0.1"],\ - ["eslint-plugin-vue", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:9.31.0"],\ + ["eslint-plugin-vue", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:9.32.0"],\ ["eventemitter3", "npm:5.0.1"],\ ["floating-vue", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:5.2.2"],\ ["get-contrast", "npm:3.0.0"],\ @@ -1578,9 +1751,9 @@ const RAW_RUNTIME_STATE = ["lodash", "npm:4.17.21"],\ ["md5", "npm:2.3.0"],\ ["mitt", "npm:3.0.1"],\ - ["neostandard", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:0.11.8"],\ + ["neostandard", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:0.11.9"],\ ["netmask", "npm:2.0.2"],\ - ["pinia", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.2.6"],\ + ["pinia", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.2.8"],\ ["rollup-plugin-visualizer", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:5.12.0"],\ ["sass", "npm:1.79.6"],\ ["semver", "npm:7.6.3"],\ @@ -1589,19 +1762,19 @@ const RAW_RUNTIME_STATE = ["statuses", "npm:2.0.1"],\ ["symbol-tree", "npm:3.2.4"],\ ["toidentifier", "npm:1.0.1"],\ - ["typescript", "patch:typescript@npm%3A5.6.3#optional!builtin::version=5.6.3&hash=8c6c40"],\ + ["typescript", "patch:typescript@npm%3A5.7.2#optional!builtin::version=5.7.2&hash=5786d5"],\ ["universal-cookie", "npm:7.2.2"],\ - ["unplugin-fonts", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:1.1.1"],\ + ["unplugin-fonts", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:1.3.1"],\ ["url-template", "npm:3.1.1"],\ ["uuid", "npm:11.0.3"],\ - ["vite", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:5.4.11"],\ + ["vite", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:6.0.2"],\ ["vite-plugin-compression", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:0.5.1"],\ ["vite-plugin-vuetify", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.0.4"],\ - ["vitest", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.5"],\ - ["vitest-fetch-mock", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:0.3.0"],\ + ["vitest", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.7"],\ + ["vitest-fetch-mock", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:0.4.2"],\ ["vue", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.5.13"],\ ["vue-router", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:4.5.0"],\ - ["vuetify", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.7.4"]\ + ["vuetify", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.7.5"]\ ],\ "linkType": "SOFT"\ }]\ @@ -1615,8 +1788,9 @@ const RAW_RUNTIME_STATE = ["@gardener-dashboard/logger", "workspace:packages/logger"],\ ["@gardener-dashboard/request", "workspace:packages/request"],\ ["@gardener-dashboard/test-utils", "workspace:packages/test-utils"],\ + ["@microsoft/eslint-formatter-sarif", "npm:3.1.0"],\ ["abort-controller", "npm:3.0.0"],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["eslint-plugin-import", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:2.31.0"],\ ["eslint-plugin-jest", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:28.9.0"],\ ["eslint-plugin-lodash", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:8.0.0"],\ @@ -1627,7 +1801,7 @@ const RAW_RUNTIME_STATE = ["jsonwebtoken", "npm:9.0.2"],\ ["lodash", "npm:4.17.21"],\ ["mixwith", "npm:0.1.1"],\ - ["neostandard", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:0.11.8"],\ + ["neostandard", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:0.11.9"],\ ["uuid", "npm:11.0.3"]\ ],\ "linkType": "SOFT"\ @@ -1638,10 +1812,10 @@ const RAW_RUNTIME_STATE = "packageLocation": "./packages/kube-config/",\ "packageDependencies": [\ ["@gardener-dashboard/kube-config", "workspace:packages/kube-config"],\ - ["@gardener-dashboard/logger", "workspace:packages/logger"],\ + ["@gardener-dashboard/polling-watcher", "workspace:packages/polling-watcher"],\ ["@gardener-dashboard/test-utils", "workspace:packages/test-utils"],\ - ["chokidar", "npm:4.0.1"],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ + ["@microsoft/eslint-formatter-sarif", "npm:3.1.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["eslint-plugin-import", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:2.31.0"],\ ["eslint-plugin-jest", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:28.9.0"],\ ["eslint-plugin-lodash", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:8.0.0"],\ @@ -1650,7 +1824,7 @@ const RAW_RUNTIME_STATE = ["jest", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:29.7.0"],\ ["js-yaml", "npm:4.1.0"],\ ["lodash", "npm:4.17.21"],\ - ["neostandard", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:0.11.8"]\ + ["neostandard", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:0.11.9"]\ ],\ "linkType": "SOFT"\ }]\ @@ -1660,15 +1834,16 @@ const RAW_RUNTIME_STATE = "packageLocation": "./packages/logger/",\ "packageDependencies": [\ ["@gardener-dashboard/logger", "workspace:packages/logger"],\ + ["@microsoft/eslint-formatter-sarif", "npm:3.1.0"],\ ["chalk", "npm:4.1.2"],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["eslint-plugin-import", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:2.31.0"],\ ["eslint-plugin-jest", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:28.9.0"],\ ["eslint-plugin-lodash", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:8.0.0"],\ ["eslint-plugin-security", "npm:3.0.1"],\ ["jest", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:29.7.0"],\ ["jest-date-mock", "npm:1.0.10"],\ - ["neostandard", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:0.11.8"]\ + ["neostandard", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:0.11.9"]\ ],\ "linkType": "SOFT"\ }]\ @@ -1679,7 +1854,8 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["@gardener-dashboard/monitor", "workspace:packages/monitor"],\ ["@gardener-dashboard/logger", "workspace:packages/logger"],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ + ["@microsoft/eslint-formatter-sarif", "npm:3.1.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["eslint-plugin-import", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:2.31.0"],\ ["eslint-plugin-jest", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:28.9.0"],\ ["eslint-plugin-lodash", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:8.0.0"],\ @@ -1687,7 +1863,7 @@ const RAW_RUNTIME_STATE = ["express", "npm:4.21.1"],\ ["http-errors", "npm:2.0.0"],\ ["jest", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:29.7.0"],\ - ["neostandard", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:0.11.8"],\ + ["neostandard", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:0.11.9"],\ ["prom-client", "npm:15.1.3"],\ ["response-time", "npm:2.3.3"],\ ["supertest", "npm:7.0.0"]\ @@ -1695,6 +1871,24 @@ const RAW_RUNTIME_STATE = "linkType": "SOFT"\ }]\ ]],\ + ["@gardener-dashboard/polling-watcher", [\ + ["workspace:packages/polling-watcher", {\ + "packageLocation": "./packages/polling-watcher/",\ + "packageDependencies": [\ + ["@gardener-dashboard/polling-watcher", "workspace:packages/polling-watcher"],\ + ["@gardener-dashboard/logger", "workspace:packages/logger"],\ + ["@gardener-dashboard/test-utils", "workspace:packages/test-utils"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ + ["eslint-plugin-import", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:2.31.0"],\ + ["eslint-plugin-jest", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:28.9.0"],\ + ["eslint-plugin-lodash", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:8.0.0"],\ + ["eslint-plugin-security", "npm:3.0.1"],\ + ["jest", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:29.7.0"],\ + ["neostandard", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:0.11.9"]\ + ],\ + "linkType": "SOFT"\ + }]\ + ]],\ ["@gardener-dashboard/request", [\ ["workspace:packages/request", {\ "packageLocation": "./packages/request/",\ @@ -1702,8 +1896,9 @@ const RAW_RUNTIME_STATE = ["@gardener-dashboard/request", "workspace:packages/request"],\ ["@gardener-dashboard/logger", "workspace:packages/logger"],\ ["@gardener-dashboard/test-utils", "workspace:packages/test-utils"],\ + ["@microsoft/eslint-formatter-sarif", "npm:3.1.0"],\ ["abort-controller", "npm:3.0.0"],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["eslint-plugin-import", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:2.31.0"],\ ["eslint-plugin-jest", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:28.9.0"],\ ["eslint-plugin-lodash", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:8.0.0"],\ @@ -1711,7 +1906,7 @@ const RAW_RUNTIME_STATE = ["http-errors", "npm:2.0.0"],\ ["jest", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:29.7.0"],\ ["lodash", "npm:4.17.21"],\ - ["neostandard", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:0.11.8"],\ + ["neostandard", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:0.11.9"],\ ["type-is", "npm:1.6.18"]\ ],\ "linkType": "SOFT"\ @@ -1722,12 +1917,12 @@ const RAW_RUNTIME_STATE = "packageLocation": "./packages/test-utils/",\ "packageDependencies": [\ ["@gardener-dashboard/test-utils", "workspace:packages/test-utils"],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["eslint-plugin-import", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:2.31.0"],\ ["eslint-plugin-jest", "virtual:faee47847dc7127a4fda44fca2035ae541a9af6260b1926ad890f5f677339c049ea62d6b398ffa233a226c0b5c370a517802e428d53b03a3356e9a04d51e8e42#npm:28.9.0"],\ ["eslint-plugin-lodash", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:8.0.0"],\ ["eslint-plugin-security", "npm:3.0.1"],\ - ["neostandard", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:0.11.8"]\ + ["neostandard", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:0.11.9"]\ ],\ "linkType": "SOFT"\ }]\ @@ -1762,6 +1957,18 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@humanwhocodes/config-array", [\ + ["npm:0.13.0", {\ + "packageLocation": "./.yarn/cache/@humanwhocodes-config-array-npm-0.13.0-843095a032-205c99e756.zip/node_modules/@humanwhocodes/config-array/",\ + "packageDependencies": [\ + ["@humanwhocodes/config-array", "npm:0.13.0"],\ + ["@humanwhocodes/object-schema", "npm:2.0.3"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ + ["minimatch", "npm:3.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@humanwhocodes/gitignore-to-minimatch", [\ ["npm:1.0.2", {\ "packageLocation": "./.yarn/cache/@humanwhocodes-gitignore-to-minimatch-npm-1.0.2-247ae8a408-f2d3325e50.zip/node_modules/@humanwhocodes/gitignore-to-minimatch/",\ @@ -1780,6 +1987,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@humanwhocodes/object-schema", [\ + ["npm:2.0.3", {\ + "packageLocation": "./.yarn/cache/@humanwhocodes-object-schema-npm-2.0.3-4f0e508cd9-80520eabbf.zip/node_modules/@humanwhocodes/object-schema/",\ + "packageDependencies": [\ + ["@humanwhocodes/object-schema", "npm:2.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@humanwhocodes/retry", [\ ["npm:0.3.0", {\ "packageLocation": "./.yarn/cache/@humanwhocodes-retry-npm-0.3.0-fd8faa0baa-7111ec4e09.zip/node_modules/@humanwhocodes/retry/",\ @@ -2243,6 +2459,19 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@microsoft/eslint-formatter-sarif", [\ + ["npm:3.1.0", {\ + "packageLocation": "./.yarn/cache/@microsoft-eslint-formatter-sarif-npm-3.1.0-8a6a9d4f0b-c4052ea4f7.zip/node_modules/@microsoft/eslint-formatter-sarif/",\ + "packageDependencies": [\ + ["@microsoft/eslint-formatter-sarif", "npm:3.1.0"],\ + ["eslint", "npm:8.57.1"],\ + ["jschardet", "npm:3.1.4"],\ + ["lodash", "npm:4.17.21"],\ + ["utf8", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@nodelib/fs.scandir", [\ ["npm:2.1.5", {\ "packageLocation": "./.yarn/cache/@nodelib-fs.scandir-npm-2.1.5-89c67370dd-732c3b6d1b.zip/node_modules/@nodelib/fs.scandir/",\ @@ -2735,7 +2964,7 @@ const RAW_RUNTIME_STATE = ["@pinia/testing", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:0.1.7"],\ ["@types/pinia", null],\ ["@types/vue", null],\ - ["pinia", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.2.6"],\ + ["pinia", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.2.8"],\ ["vue", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.5.13"],\ ["vue-demi", "virtual:288f2302e0270881b9fa9da047ab9df8cf089377e83a74b84a0c9e0b8e9e6d231f762cfaf440eaf471c10b65a17e4fa71a06f56de831d2a6bff724e6c95ba807#npm:0.14.10"]\ ],\ @@ -2773,6 +3002,13 @@ const RAW_RUNTIME_STATE = ["@rollup/rollup-android-arm-eabi", "npm:4.22.4"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:4.28.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-android-arm-eabi-npm-4.28.0-02f5fbc483/node_modules/@rollup/rollup-android-arm-eabi/",\ + "packageDependencies": [\ + ["@rollup/rollup-android-arm-eabi", "npm:4.28.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@rollup/rollup-android-arm64", [\ @@ -2782,6 +3018,13 @@ const RAW_RUNTIME_STATE = ["@rollup/rollup-android-arm64", "npm:4.22.4"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:4.28.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-android-arm64-npm-4.28.0-3833f1e754/node_modules/@rollup/rollup-android-arm64/",\ + "packageDependencies": [\ + ["@rollup/rollup-android-arm64", "npm:4.28.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@rollup/rollup-darwin-arm64", [\ @@ -2791,6 +3034,13 @@ const RAW_RUNTIME_STATE = ["@rollup/rollup-darwin-arm64", "npm:4.22.4"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:4.28.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-darwin-arm64-npm-4.28.0-d220c83f50/node_modules/@rollup/rollup-darwin-arm64/",\ + "packageDependencies": [\ + ["@rollup/rollup-darwin-arm64", "npm:4.28.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@rollup/rollup-darwin-x64", [\ @@ -2800,6 +3050,31 @@ const RAW_RUNTIME_STATE = ["@rollup/rollup-darwin-x64", "npm:4.22.4"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:4.28.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-darwin-x64-npm-4.28.0-071d33e2de/node_modules/@rollup/rollup-darwin-x64/",\ + "packageDependencies": [\ + ["@rollup/rollup-darwin-x64", "npm:4.28.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-freebsd-arm64", [\ + ["npm:4.28.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-freebsd-arm64-npm-4.28.0-acfd907212/node_modules/@rollup/rollup-freebsd-arm64/",\ + "packageDependencies": [\ + ["@rollup/rollup-freebsd-arm64", "npm:4.28.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-freebsd-x64", [\ + ["npm:4.28.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-freebsd-x64-npm-4.28.0-3a82e24abb/node_modules/@rollup/rollup-freebsd-x64/",\ + "packageDependencies": [\ + ["@rollup/rollup-freebsd-x64", "npm:4.28.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@rollup/rollup-linux-arm-gnueabihf", [\ @@ -2809,6 +3084,13 @@ const RAW_RUNTIME_STATE = ["@rollup/rollup-linux-arm-gnueabihf", "npm:4.22.4"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:4.28.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-arm-gnueabihf-npm-4.28.0-512af3e63c/node_modules/@rollup/rollup-linux-arm-gnueabihf/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-arm-gnueabihf", "npm:4.28.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@rollup/rollup-linux-arm-musleabihf", [\ @@ -2818,6 +3100,13 @@ const RAW_RUNTIME_STATE = ["@rollup/rollup-linux-arm-musleabihf", "npm:4.22.4"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:4.28.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-arm-musleabihf-npm-4.28.0-650abfe687/node_modules/@rollup/rollup-linux-arm-musleabihf/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-arm-musleabihf", "npm:4.28.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@rollup/rollup-linux-arm64-gnu", [\ @@ -2827,6 +3116,13 @@ const RAW_RUNTIME_STATE = ["@rollup/rollup-linux-arm64-gnu", "npm:4.22.4"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:4.28.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-arm64-gnu-npm-4.28.0-c61b762d6d/node_modules/@rollup/rollup-linux-arm64-gnu/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-arm64-gnu", "npm:4.28.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@rollup/rollup-linux-arm64-musl", [\ @@ -2836,6 +3132,13 @@ const RAW_RUNTIME_STATE = ["@rollup/rollup-linux-arm64-musl", "npm:4.22.4"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:4.28.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-arm64-musl-npm-4.28.0-fb21929acb/node_modules/@rollup/rollup-linux-arm64-musl/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-arm64-musl", "npm:4.28.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@rollup/rollup-linux-powerpc64le-gnu", [\ @@ -2845,6 +3148,13 @@ const RAW_RUNTIME_STATE = ["@rollup/rollup-linux-powerpc64le-gnu", "npm:4.22.4"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:4.28.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-powerpc64le-gnu-npm-4.28.0-331021feb1/node_modules/@rollup/rollup-linux-powerpc64le-gnu/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-powerpc64le-gnu", "npm:4.28.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@rollup/rollup-linux-riscv64-gnu", [\ @@ -2854,6 +3164,13 @@ const RAW_RUNTIME_STATE = ["@rollup/rollup-linux-riscv64-gnu", "npm:4.22.4"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:4.28.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-riscv64-gnu-npm-4.28.0-fd3e102e5e/node_modules/@rollup/rollup-linux-riscv64-gnu/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-riscv64-gnu", "npm:4.28.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@rollup/rollup-linux-s390x-gnu", [\ @@ -2863,6 +3180,13 @@ const RAW_RUNTIME_STATE = ["@rollup/rollup-linux-s390x-gnu", "npm:4.22.4"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:4.28.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-s390x-gnu-npm-4.28.0-9351725acd/node_modules/@rollup/rollup-linux-s390x-gnu/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-s390x-gnu", "npm:4.28.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@rollup/rollup-linux-x64-gnu", [\ @@ -2872,6 +3196,13 @@ const RAW_RUNTIME_STATE = ["@rollup/rollup-linux-x64-gnu", "npm:4.22.4"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:4.28.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-x64-gnu-npm-4.28.0-151a213a29/node_modules/@rollup/rollup-linux-x64-gnu/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-x64-gnu", "npm:4.28.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@rollup/rollup-linux-x64-musl", [\ @@ -2881,6 +3212,13 @@ const RAW_RUNTIME_STATE = ["@rollup/rollup-linux-x64-musl", "npm:4.22.4"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:4.28.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-x64-musl-npm-4.28.0-2fcd249d3f/node_modules/@rollup/rollup-linux-x64-musl/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-x64-musl", "npm:4.28.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@rollup/rollup-win32-arm64-msvc", [\ @@ -2890,6 +3228,13 @@ const RAW_RUNTIME_STATE = ["@rollup/rollup-win32-arm64-msvc", "npm:4.22.4"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:4.28.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-win32-arm64-msvc-npm-4.28.0-6fd8a74002/node_modules/@rollup/rollup-win32-arm64-msvc/",\ + "packageDependencies": [\ + ["@rollup/rollup-win32-arm64-msvc", "npm:4.28.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@rollup/rollup-win32-ia32-msvc", [\ @@ -2899,6 +3244,13 @@ const RAW_RUNTIME_STATE = ["@rollup/rollup-win32-ia32-msvc", "npm:4.22.4"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:4.28.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-win32-ia32-msvc-npm-4.28.0-90eed47b00/node_modules/@rollup/rollup-win32-ia32-msvc/",\ + "packageDependencies": [\ + ["@rollup/rollup-win32-ia32-msvc", "npm:4.28.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@rollup/rollup-win32-x64-msvc", [\ @@ -2908,6 +3260,13 @@ const RAW_RUNTIME_STATE = ["@rollup/rollup-win32-x64-msvc", "npm:4.22.4"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:4.28.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-win32-x64-msvc-npm-4.28.0-906691b85a/node_modules/@rollup/rollup-win32-x64-msvc/",\ + "packageDependencies": [\ + ["@rollup/rollup-win32-x64-msvc", "npm:4.28.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@rtsao/scc", [\ @@ -2958,20 +3317,20 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@stylistic/eslint-plugin", [\ - ["npm:2.10.1", {\ - "packageLocation": "./.yarn/cache/@stylistic-eslint-plugin-npm-2.10.1-7e56aa81fc-55f14f256f.zip/node_modules/@stylistic/eslint-plugin/",\ + ["npm:2.11.0", {\ + "packageLocation": "./.yarn/cache/@stylistic-eslint-plugin-npm-2.11.0-29144d1d02-6ca19b6656.zip/node_modules/@stylistic/eslint-plugin/",\ "packageDependencies": [\ - ["@stylistic/eslint-plugin", "npm:2.10.1"]\ + ["@stylistic/eslint-plugin", "npm:2.11.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:2cd60cf0eaa713981ba4fa725786c0c033552df3256034933bfbc531f91f1e19a67d4585fd90dddd4cbfda26946bb4507e7bcd454aea524fed93c918b191ad1a#npm:2.10.1", {\ - "packageLocation": "./.yarn/__virtual__/@stylistic-eslint-plugin-virtual-5a6b6b4434/0/cache/@stylistic-eslint-plugin-npm-2.10.1-7e56aa81fc-55f14f256f.zip/node_modules/@stylistic/eslint-plugin/",\ + ["virtual:2c68d35e10d2a1d87b97c098c954e239a6b668b29a265ea25d589d2f60a84618305d31b2fcab93275784bf31de0140bf2f813295024ee4148d7cd92c0a17f95e#npm:2.11.0", {\ + "packageLocation": "./.yarn/__virtual__/@stylistic-eslint-plugin-virtual-956dc25556/0/cache/@stylistic-eslint-plugin-npm-2.11.0-29144d1d02-6ca19b6656.zip/node_modules/@stylistic/eslint-plugin/",\ "packageDependencies": [\ - ["@stylistic/eslint-plugin", "virtual:2cd60cf0eaa713981ba4fa725786c0c033552df3256034933bfbc531f91f1e19a67d4585fd90dddd4cbfda26946bb4507e7bcd454aea524fed93c918b191ad1a#npm:2.10.1"],\ + ["@stylistic/eslint-plugin", "virtual:2c68d35e10d2a1d87b97c098c954e239a6b668b29a265ea25d589d2f60a84618305d31b2fcab93275784bf31de0140bf2f813295024ee4148d7cd92c0a17f95e#npm:2.11.0"],\ ["@types/eslint", null],\ - ["@typescript-eslint/utils", "virtual:920265345ea4067faba4b79db8010284e5552da581ea1ebfc57c6b032c05d37984adc7407082d7cee117f52d1ce80786b7b4b16b270103e24f47bcc006895d57#npm:8.14.0"],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ + ["@typescript-eslint/utils", "virtual:920265345ea4067faba4b79db8010284e5552da581ea1ebfc57c6b032c05d37984adc7407082d7cee117f52d1ce80786b7b4b16b270103e24f47bcc006895d57#npm:8.16.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["eslint-visitor-keys", "npm:4.2.0"],\ ["espree", "npm:10.3.0"],\ ["estraverse", "npm:5.3.0"],\ @@ -3212,31 +3571,31 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@typescript-eslint/eslint-plugin", [\ - ["npm:8.14.0", {\ - "packageLocation": "./.yarn/cache/@typescript-eslint-eslint-plugin-npm-8.14.0-55616f1385-46c82eb45b.zip/node_modules/@typescript-eslint/eslint-plugin/",\ + ["npm:8.16.0", {\ + "packageLocation": "./.yarn/cache/@typescript-eslint-eslint-plugin-npm-8.16.0-ba60fc0b9e-b03612b726.zip/node_modules/@typescript-eslint/eslint-plugin/",\ "packageDependencies": [\ - ["@typescript-eslint/eslint-plugin", "npm:8.14.0"]\ + ["@typescript-eslint/eslint-plugin", "npm:8.16.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:1a3693785837ec7f2b3cc8f1d7724e37322656cfdc683e756003f39dfab0e2a9ff106b99415234e4241ae19a32e068c991f260afda3f65e447a69b8107f42459#npm:8.14.0", {\ - "packageLocation": "./.yarn/__virtual__/@typescript-eslint-eslint-plugin-virtual-7a127f53db/0/cache/@typescript-eslint-eslint-plugin-npm-8.14.0-55616f1385-46c82eb45b.zip/node_modules/@typescript-eslint/eslint-plugin/",\ + ["virtual:c90490f9318b04f1979e99a4d300bda4592adb2caa2466d406ab3f64618503715099ecb2f1896c1d7191003efba539a937c77adc2431c3fdbfa7b1c1473bb425#npm:8.16.0", {\ + "packageLocation": "./.yarn/__virtual__/@typescript-eslint-eslint-plugin-virtual-8734f4644c/0/cache/@typescript-eslint-eslint-plugin-npm-8.16.0-ba60fc0b9e-b03612b726.zip/node_modules/@typescript-eslint/eslint-plugin/",\ "packageDependencies": [\ - ["@typescript-eslint/eslint-plugin", "virtual:1a3693785837ec7f2b3cc8f1d7724e37322656cfdc683e756003f39dfab0e2a9ff106b99415234e4241ae19a32e068c991f260afda3f65e447a69b8107f42459#npm:8.14.0"],\ - ["@eslint-community/regexpp", "npm:4.11.1"],\ + ["@typescript-eslint/eslint-plugin", "virtual:c90490f9318b04f1979e99a4d300bda4592adb2caa2466d406ab3f64618503715099ecb2f1896c1d7191003efba539a937c77adc2431c3fdbfa7b1c1473bb425#npm:8.16.0"],\ + ["@eslint-community/regexpp", "npm:4.12.1"],\ ["@types/eslint", null],\ ["@types/typescript", null],\ ["@types/typescript-eslint__parser", null],\ - ["@typescript-eslint/parser", "virtual:1a3693785837ec7f2b3cc8f1d7724e37322656cfdc683e756003f39dfab0e2a9ff106b99415234e4241ae19a32e068c991f260afda3f65e447a69b8107f42459#npm:8.14.0"],\ - ["@typescript-eslint/scope-manager", "npm:8.14.0"],\ - ["@typescript-eslint/type-utils", "virtual:7a127f53dbc935f95d5a0fe21772d45c4ae9fbaf954bffacb4c87f30342d89546a8122fefd525fee80c36cab4ea594a4b4513bd0c4ab8b5223f85de45132cb77#npm:8.14.0"],\ - ["@typescript-eslint/utils", "virtual:1a3693785837ec7f2b3cc8f1d7724e37322656cfdc683e756003f39dfab0e2a9ff106b99415234e4241ae19a32e068c991f260afda3f65e447a69b8107f42459#npm:8.14.0"],\ - ["@typescript-eslint/visitor-keys", "npm:8.14.0"],\ - ["eslint", null],\ + ["@typescript-eslint/parser", "virtual:c90490f9318b04f1979e99a4d300bda4592adb2caa2466d406ab3f64618503715099ecb2f1896c1d7191003efba539a937c77adc2431c3fdbfa7b1c1473bb425#npm:8.16.0"],\ + ["@typescript-eslint/scope-manager", "npm:8.16.0"],\ + ["@typescript-eslint/type-utils", "virtual:8734f4644c66343196c873bd9dd29ba7a51320b0a23852682d91d9bf469f2bd07221ad22303efee2a75d64c0d4328cb31177b191dcaf7bd2ce6a2f19fed9e3db#npm:8.16.0"],\ + ["@typescript-eslint/utils", "virtual:920265345ea4067faba4b79db8010284e5552da581ea1ebfc57c6b032c05d37984adc7407082d7cee117f52d1ce80786b7b4b16b270103e24f47bcc006895d57#npm:8.16.0"],\ + ["@typescript-eslint/visitor-keys", "npm:8.16.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["graphemer", "npm:1.4.0"],\ ["ignore", "npm:5.3.2"],\ ["natural-compare", "npm:1.4.0"],\ - ["ts-api-utils", "virtual:063f2f386e3d109def5978f627ffc342085a4e7b9fd35ec9e722fc724291f1cada0c14fe163196edf0f5a9104b7e5d933d72110733dafec9f5b84d13d2fe59be#npm:1.3.0"],\ + ["ts-api-utils", "virtual:3498b7bde123c0ac6506d37c42ced8993d72f0576d51ebc35284307a1408b8707da2bab0329ff673d8b6fac169e3473a254609c98c8c23894457bf1ca168d381#npm:1.3.0"],\ ["typescript", null]\ ],\ "packagePeers": [\ @@ -3251,25 +3610,25 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@typescript-eslint/parser", [\ - ["npm:8.14.0", {\ - "packageLocation": "./.yarn/cache/@typescript-eslint-parser-npm-8.14.0-3444f81ac4-522b7afd25.zip/node_modules/@typescript-eslint/parser/",\ + ["npm:8.16.0", {\ + "packageLocation": "./.yarn/cache/@typescript-eslint-parser-npm-8.16.0-8616b4dfb9-e49c6640a7.zip/node_modules/@typescript-eslint/parser/",\ "packageDependencies": [\ - ["@typescript-eslint/parser", "npm:8.14.0"]\ + ["@typescript-eslint/parser", "npm:8.16.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:1a3693785837ec7f2b3cc8f1d7724e37322656cfdc683e756003f39dfab0e2a9ff106b99415234e4241ae19a32e068c991f260afda3f65e447a69b8107f42459#npm:8.14.0", {\ - "packageLocation": "./.yarn/__virtual__/@typescript-eslint-parser-virtual-29ee217221/0/cache/@typescript-eslint-parser-npm-8.14.0-3444f81ac4-522b7afd25.zip/node_modules/@typescript-eslint/parser/",\ + ["virtual:c90490f9318b04f1979e99a4d300bda4592adb2caa2466d406ab3f64618503715099ecb2f1896c1d7191003efba539a937c77adc2431c3fdbfa7b1c1473bb425#npm:8.16.0", {\ + "packageLocation": "./.yarn/__virtual__/@typescript-eslint-parser-virtual-e8a61a7d9e/0/cache/@typescript-eslint-parser-npm-8.16.0-8616b4dfb9-e49c6640a7.zip/node_modules/@typescript-eslint/parser/",\ "packageDependencies": [\ - ["@typescript-eslint/parser", "virtual:1a3693785837ec7f2b3cc8f1d7724e37322656cfdc683e756003f39dfab0e2a9ff106b99415234e4241ae19a32e068c991f260afda3f65e447a69b8107f42459#npm:8.14.0"],\ + ["@typescript-eslint/parser", "virtual:c90490f9318b04f1979e99a4d300bda4592adb2caa2466d406ab3f64618503715099ecb2f1896c1d7191003efba539a937c77adc2431c3fdbfa7b1c1473bb425#npm:8.16.0"],\ ["@types/eslint", null],\ ["@types/typescript", null],\ - ["@typescript-eslint/scope-manager", "npm:8.14.0"],\ - ["@typescript-eslint/types", "npm:8.14.0"],\ - ["@typescript-eslint/typescript-estree", "virtual:66d8a63dd07039c7f32f4d602fee3fef420b01837f89efd5bc344505a7a1d72203e3184d475465d19376ea1f71e63e8f3bf725861fad8bfde712ba66d9d75250#npm:8.14.0"],\ - ["@typescript-eslint/visitor-keys", "npm:8.14.0"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"],\ - ["eslint", null],\ + ["@typescript-eslint/scope-manager", "npm:8.16.0"],\ + ["@typescript-eslint/types", "npm:8.16.0"],\ + ["@typescript-eslint/typescript-estree", "virtual:df7fb95dea45b49c520ea52e4ece87a07a42512167a4c6d0282a4a44f8f01af3dd337c689162db8894e50cf921fd81b8702ea897044c9195460f8f23e2441013#npm:8.16.0"],\ + ["@typescript-eslint/visitor-keys", "npm:8.16.0"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["typescript", null]\ ],\ "packagePeers": [\ @@ -3282,72 +3641,97 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@typescript-eslint/scope-manager", [\ - ["npm:8.14.0", {\ - "packageLocation": "./.yarn/cache/@typescript-eslint-scope-manager-npm-8.14.0-4e9e7df726-1e1295c6f9.zip/node_modules/@typescript-eslint/scope-manager/",\ + ["npm:8.16.0", {\ + "packageLocation": "./.yarn/cache/@typescript-eslint-scope-manager-npm-8.16.0-b638b04bff-23b7c738b8.zip/node_modules/@typescript-eslint/scope-manager/",\ "packageDependencies": [\ - ["@typescript-eslint/scope-manager", "npm:8.14.0"],\ - ["@typescript-eslint/types", "npm:8.14.0"],\ - ["@typescript-eslint/visitor-keys", "npm:8.14.0"]\ + ["@typescript-eslint/scope-manager", "npm:8.16.0"],\ + ["@typescript-eslint/types", "npm:8.16.0"],\ + ["@typescript-eslint/visitor-keys", "npm:8.16.0"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@typescript-eslint/type-utils", [\ - ["npm:8.14.0", {\ - "packageLocation": "./.yarn/cache/@typescript-eslint-type-utils-npm-8.14.0-32010c30a5-42616a664b.zip/node_modules/@typescript-eslint/type-utils/",\ + ["npm:8.16.0", {\ + "packageLocation": "./.yarn/cache/@typescript-eslint-type-utils-npm-8.16.0-0c3f0da36a-24c0e815c8.zip/node_modules/@typescript-eslint/type-utils/",\ "packageDependencies": [\ - ["@typescript-eslint/type-utils", "npm:8.14.0"]\ + ["@typescript-eslint/type-utils", "npm:8.16.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:7a127f53dbc935f95d5a0fe21772d45c4ae9fbaf954bffacb4c87f30342d89546a8122fefd525fee80c36cab4ea594a4b4513bd0c4ab8b5223f85de45132cb77#npm:8.14.0", {\ - "packageLocation": "./.yarn/__virtual__/@typescript-eslint-type-utils-virtual-5202af6c87/0/cache/@typescript-eslint-type-utils-npm-8.14.0-32010c30a5-42616a664b.zip/node_modules/@typescript-eslint/type-utils/",\ + ["virtual:8734f4644c66343196c873bd9dd29ba7a51320b0a23852682d91d9bf469f2bd07221ad22303efee2a75d64c0d4328cb31177b191dcaf7bd2ce6a2f19fed9e3db#npm:8.16.0", {\ + "packageLocation": "./.yarn/__virtual__/@typescript-eslint-type-utils-virtual-543e194b6c/0/cache/@typescript-eslint-type-utils-npm-8.16.0-0c3f0da36a-24c0e815c8.zip/node_modules/@typescript-eslint/type-utils/",\ "packageDependencies": [\ - ["@typescript-eslint/type-utils", "virtual:7a127f53dbc935f95d5a0fe21772d45c4ae9fbaf954bffacb4c87f30342d89546a8122fefd525fee80c36cab4ea594a4b4513bd0c4ab8b5223f85de45132cb77#npm:8.14.0"],\ + ["@typescript-eslint/type-utils", "virtual:8734f4644c66343196c873bd9dd29ba7a51320b0a23852682d91d9bf469f2bd07221ad22303efee2a75d64c0d4328cb31177b191dcaf7bd2ce6a2f19fed9e3db#npm:8.16.0"],\ + ["@types/eslint", null],\ ["@types/typescript", null],\ - ["@typescript-eslint/typescript-estree", "virtual:66d8a63dd07039c7f32f4d602fee3fef420b01837f89efd5bc344505a7a1d72203e3184d475465d19376ea1f71e63e8f3bf725861fad8bfde712ba66d9d75250#npm:8.14.0"],\ - ["@typescript-eslint/utils", "virtual:1a3693785837ec7f2b3cc8f1d7724e37322656cfdc683e756003f39dfab0e2a9ff106b99415234e4241ae19a32e068c991f260afda3f65e447a69b8107f42459#npm:8.14.0"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"],\ - ["ts-api-utils", "virtual:063f2f386e3d109def5978f627ffc342085a4e7b9fd35ec9e722fc724291f1cada0c14fe163196edf0f5a9104b7e5d933d72110733dafec9f5b84d13d2fe59be#npm:1.3.0"],\ + ["@typescript-eslint/typescript-estree", "virtual:df7fb95dea45b49c520ea52e4ece87a07a42512167a4c6d0282a4a44f8f01af3dd337c689162db8894e50cf921fd81b8702ea897044c9195460f8f23e2441013#npm:8.16.0"],\ + ["@typescript-eslint/utils", "virtual:920265345ea4067faba4b79db8010284e5552da581ea1ebfc57c6b032c05d37984adc7407082d7cee117f52d1ce80786b7b4b16b270103e24f47bcc006895d57#npm:8.16.0"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ + ["ts-api-utils", "virtual:3498b7bde123c0ac6506d37c42ced8993d72f0576d51ebc35284307a1408b8707da2bab0329ff673d8b6fac169e3473a254609c98c8c23894457bf1ca168d381#npm:1.3.0"],\ ["typescript", null]\ ],\ "packagePeers": [\ + "@types/eslint",\ "@types/typescript",\ + "eslint",\ "typescript"\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@typescript-eslint/types", [\ - ["npm:8.14.0", {\ - "packageLocation": "./.yarn/cache/@typescript-eslint-types-npm-8.14.0-56131dda9e-7707f900e2.zip/node_modules/@typescript-eslint/types/",\ + ["npm:8.16.0", {\ + "packageLocation": "./.yarn/cache/@typescript-eslint-types-npm-8.16.0-d43e0b4467-141e257ab4.zip/node_modules/@typescript-eslint/types/",\ "packageDependencies": [\ - ["@typescript-eslint/types", "npm:8.14.0"]\ + ["@typescript-eslint/types", "npm:8.16.0"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@typescript-eslint/typescript-estree", [\ - ["npm:8.14.0", {\ - "packageLocation": "./.yarn/cache/@typescript-eslint-typescript-estree-npm-8.14.0-2681614eed-5e890d22bd.zip/node_modules/@typescript-eslint/typescript-estree/",\ + ["npm:8.16.0", {\ + "packageLocation": "./.yarn/cache/@typescript-eslint-typescript-estree-npm-8.16.0-667b37bee1-f28fea5af4.zip/node_modules/@typescript-eslint/typescript-estree/",\ "packageDependencies": [\ - ["@typescript-eslint/typescript-estree", "npm:8.14.0"]\ + ["@typescript-eslint/typescript-estree", "npm:8.16.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:66d8a63dd07039c7f32f4d602fee3fef420b01837f89efd5bc344505a7a1d72203e3184d475465d19376ea1f71e63e8f3bf725861fad8bfde712ba66d9d75250#npm:8.14.0", {\ - "packageLocation": "./.yarn/__virtual__/@typescript-eslint-typescript-estree-virtual-063f2f386e/0/cache/@typescript-eslint-typescript-estree-npm-8.14.0-2681614eed-5e890d22bd.zip/node_modules/@typescript-eslint/typescript-estree/",\ + ["virtual:66a883bc10bc862df66b70b0f258fa9c3a9ab7b2f559368c1f817accf2e88f5f2af7caf0ae762ffe6f27b8a9b7bc31714800c641a8fcea53ccb72a2c2906df68#npm:8.16.0", {\ + "packageLocation": "./.yarn/__virtual__/@typescript-eslint-typescript-estree-virtual-55f6aa6ba5/0/cache/@typescript-eslint-typescript-estree-npm-8.16.0-667b37bee1-f28fea5af4.zip/node_modules/@typescript-eslint/typescript-estree/",\ + "packageDependencies": [\ + ["@typescript-eslint/typescript-estree", "virtual:66a883bc10bc862df66b70b0f258fa9c3a9ab7b2f559368c1f817accf2e88f5f2af7caf0ae762ffe6f27b8a9b7bc31714800c641a8fcea53ccb72a2c2906df68#npm:8.16.0"],\ + ["@types/typescript", null],\ + ["@typescript-eslint/types", "npm:8.16.0"],\ + ["@typescript-eslint/visitor-keys", "npm:8.16.0"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ + ["fast-glob", "npm:3.3.2"],\ + ["is-glob", "npm:4.0.3"],\ + ["minimatch", "npm:9.0.5"],\ + ["semver", "npm:7.6.3"],\ + ["ts-api-utils", "virtual:55f6aa6ba5ea27ade9ea385c70ad26e5dd5601eb5a68c69ca92d4f1add51b8be7e49f1fefe947b7474dbf9a0b59413215724434521ecbc671f2db3f40e215b05#npm:1.3.0"],\ + ["typescript", "patch:typescript@npm%3A5.7.2#optional!builtin::version=5.7.2&hash=5786d5"]\ + ],\ + "packagePeers": [\ + "@types/typescript",\ + "typescript"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:df7fb95dea45b49c520ea52e4ece87a07a42512167a4c6d0282a4a44f8f01af3dd337c689162db8894e50cf921fd81b8702ea897044c9195460f8f23e2441013#npm:8.16.0", {\ + "packageLocation": "./.yarn/__virtual__/@typescript-eslint-typescript-estree-virtual-3498b7bde1/0/cache/@typescript-eslint-typescript-estree-npm-8.16.0-667b37bee1-f28fea5af4.zip/node_modules/@typescript-eslint/typescript-estree/",\ "packageDependencies": [\ - ["@typescript-eslint/typescript-estree", "virtual:66d8a63dd07039c7f32f4d602fee3fef420b01837f89efd5bc344505a7a1d72203e3184d475465d19376ea1f71e63e8f3bf725861fad8bfde712ba66d9d75250#npm:8.14.0"],\ + ["@typescript-eslint/typescript-estree", "virtual:df7fb95dea45b49c520ea52e4ece87a07a42512167a4c6d0282a4a44f8f01af3dd337c689162db8894e50cf921fd81b8702ea897044c9195460f8f23e2441013#npm:8.16.0"],\ ["@types/typescript", null],\ - ["@typescript-eslint/types", "npm:8.14.0"],\ - ["@typescript-eslint/visitor-keys", "npm:8.14.0"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"],\ + ["@typescript-eslint/types", "npm:8.16.0"],\ + ["@typescript-eslint/visitor-keys", "npm:8.16.0"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ ["fast-glob", "npm:3.3.2"],\ ["is-glob", "npm:4.0.3"],\ ["minimatch", "npm:9.0.5"],\ ["semver", "npm:7.6.3"],\ - ["ts-api-utils", "virtual:063f2f386e3d109def5978f627ffc342085a4e7b9fd35ec9e722fc724291f1cada0c14fe163196edf0f5a9104b7e5d933d72110733dafec9f5b84d13d2fe59be#npm:1.3.0"],\ + ["ts-api-utils", "virtual:3498b7bde123c0ac6506d37c42ced8993d72f0576d51ebc35284307a1408b8707da2bab0329ff673d8b6fac169e3473a254609c98c8c23894457bf1ca168d381#npm:1.3.0"],\ ["typescript", null]\ ],\ "packagePeers": [\ @@ -3358,73 +3742,90 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@typescript-eslint/utils", [\ - ["npm:8.14.0", {\ - "packageLocation": "./.yarn/cache/@typescript-eslint-utils-npm-8.14.0-4742a7bfab-1fcc2651d8.zip/node_modules/@typescript-eslint/utils/",\ + ["npm:8.16.0", {\ + "packageLocation": "./.yarn/cache/@typescript-eslint-utils-npm-8.16.0-e564da9d95-1e61187eef.zip/node_modules/@typescript-eslint/utils/",\ "packageDependencies": [\ - ["@typescript-eslint/utils", "npm:8.14.0"]\ + ["@typescript-eslint/utils", "npm:8.16.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:1a3693785837ec7f2b3cc8f1d7724e37322656cfdc683e756003f39dfab0e2a9ff106b99415234e4241ae19a32e068c991f260afda3f65e447a69b8107f42459#npm:8.14.0", {\ - "packageLocation": "./.yarn/__virtual__/@typescript-eslint-utils-virtual-d84daf63b7/0/cache/@typescript-eslint-utils-npm-8.14.0-4742a7bfab-1fcc2651d8.zip/node_modules/@typescript-eslint/utils/",\ + ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:8.16.0", {\ + "packageLocation": "./.yarn/__virtual__/@typescript-eslint-utils-virtual-66a883bc10/0/cache/@typescript-eslint-utils-npm-8.16.0-e564da9d95-1e61187eef.zip/node_modules/@typescript-eslint/utils/",\ "packageDependencies": [\ - ["@typescript-eslint/utils", "virtual:1a3693785837ec7f2b3cc8f1d7724e37322656cfdc683e756003f39dfab0e2a9ff106b99415234e4241ae19a32e068c991f260afda3f65e447a69b8107f42459#npm:8.14.0"],\ - ["@eslint-community/eslint-utils", "virtual:d84daf63b75039f65e32d776091a5a95ab3e18242eb444be8889bbcb76b7a7d7508b5e670a8854278abbbed4908e5d0d13344665327911199da36bd456a270c0#npm:4.4.0"],\ + ["@typescript-eslint/utils", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:8.16.0"],\ + ["@eslint-community/eslint-utils", "virtual:505b636198d210e0f206fa38a0ae0f7fe29d0c724f352c366e1288df99c0aa2cd6164337c234ec2ed973c68536359df249f394c924afd03ffbb1b63a3a7f7e78#npm:4.4.1"],\ ["@types/eslint", null],\ - ["@typescript-eslint/scope-manager", "npm:8.14.0"],\ - ["@typescript-eslint/types", "npm:8.14.0"],\ - ["@typescript-eslint/typescript-estree", "virtual:66d8a63dd07039c7f32f4d602fee3fef420b01837f89efd5bc344505a7a1d72203e3184d475465d19376ea1f71e63e8f3bf725861fad8bfde712ba66d9d75250#npm:8.14.0"],\ - ["eslint", null]\ + ["@types/typescript", null],\ + ["@typescript-eslint/scope-manager", "npm:8.16.0"],\ + ["@typescript-eslint/types", "npm:8.16.0"],\ + ["@typescript-eslint/typescript-estree", "virtual:66a883bc10bc862df66b70b0f258fa9c3a9ab7b2f559368c1f817accf2e88f5f2af7caf0ae762ffe6f27b8a9b7bc31714800c641a8fcea53ccb72a2c2906df68#npm:8.16.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ + ["typescript", "patch:typescript@npm%3A5.7.2#optional!builtin::version=5.7.2&hash=5786d5"]\ ],\ "packagePeers": [\ "@types/eslint",\ - "eslint"\ + "@types/typescript",\ + "eslint",\ + "typescript"\ ],\ "linkType": "HARD"\ }],\ - ["virtual:920265345ea4067faba4b79db8010284e5552da581ea1ebfc57c6b032c05d37984adc7407082d7cee117f52d1ce80786b7b4b16b270103e24f47bcc006895d57#npm:8.14.0", {\ - "packageLocation": "./.yarn/__virtual__/@typescript-eslint-utils-virtual-66d8a63dd0/0/cache/@typescript-eslint-utils-npm-8.14.0-4742a7bfab-1fcc2651d8.zip/node_modules/@typescript-eslint/utils/",\ + ["virtual:920265345ea4067faba4b79db8010284e5552da581ea1ebfc57c6b032c05d37984adc7407082d7cee117f52d1ce80786b7b4b16b270103e24f47bcc006895d57#npm:8.16.0", {\ + "packageLocation": "./.yarn/__virtual__/@typescript-eslint-utils-virtual-df7fb95dea/0/cache/@typescript-eslint-utils-npm-8.16.0-e564da9d95-1e61187eef.zip/node_modules/@typescript-eslint/utils/",\ "packageDependencies": [\ - ["@typescript-eslint/utils", "virtual:920265345ea4067faba4b79db8010284e5552da581ea1ebfc57c6b032c05d37984adc7407082d7cee117f52d1ce80786b7b4b16b270103e24f47bcc006895d57#npm:8.14.0"],\ - ["@eslint-community/eslint-utils", "virtual:75f5f3bd86269d2dc4c5703baddfa0e0101eb5fd5cc7cab281fcdcf59e171fcb1c408e97818b2d543266db7acec87b269c781eb32fa6a979e8d24ed6d42cf9dd#npm:4.4.0"],\ + ["@typescript-eslint/utils", "virtual:920265345ea4067faba4b79db8010284e5552da581ea1ebfc57c6b032c05d37984adc7407082d7cee117f52d1ce80786b7b4b16b270103e24f47bcc006895d57#npm:8.16.0"],\ + ["@eslint-community/eslint-utils", "virtual:505b636198d210e0f206fa38a0ae0f7fe29d0c724f352c366e1288df99c0aa2cd6164337c234ec2ed973c68536359df249f394c924afd03ffbb1b63a3a7f7e78#npm:4.4.1"],\ ["@types/eslint", null],\ - ["@typescript-eslint/scope-manager", "npm:8.14.0"],\ - ["@typescript-eslint/types", "npm:8.14.0"],\ - ["@typescript-eslint/typescript-estree", "virtual:66d8a63dd07039c7f32f4d602fee3fef420b01837f89efd5bc344505a7a1d72203e3184d475465d19376ea1f71e63e8f3bf725861fad8bfde712ba66d9d75250#npm:8.14.0"],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"]\ + ["@types/typescript", null],\ + ["@typescript-eslint/scope-manager", "npm:8.16.0"],\ + ["@typescript-eslint/types", "npm:8.16.0"],\ + ["@typescript-eslint/typescript-estree", "virtual:df7fb95dea45b49c520ea52e4ece87a07a42512167a4c6d0282a4a44f8f01af3dd337c689162db8894e50cf921fd81b8702ea897044c9195460f8f23e2441013#npm:8.16.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ + ["typescript", null]\ ],\ "packagePeers": [\ "@types/eslint",\ - "eslint"\ + "@types/typescript",\ + "eslint",\ + "typescript"\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@typescript-eslint/visitor-keys", [\ - ["npm:8.14.0", {\ - "packageLocation": "./.yarn/cache/@typescript-eslint-visitor-keys-npm-8.14.0-c83f7a80b3-d0faf70ed9.zip/node_modules/@typescript-eslint/visitor-keys/",\ + ["npm:8.16.0", {\ + "packageLocation": "./.yarn/cache/@typescript-eslint-visitor-keys-npm-8.16.0-a87d8d0613-537df37801.zip/node_modules/@typescript-eslint/visitor-keys/",\ "packageDependencies": [\ - ["@typescript-eslint/visitor-keys", "npm:8.14.0"],\ - ["@typescript-eslint/types", "npm:8.14.0"],\ - ["eslint-visitor-keys", "npm:3.4.3"]\ + ["@typescript-eslint/visitor-keys", "npm:8.16.0"],\ + ["@typescript-eslint/types", "npm:8.16.0"],\ + ["eslint-visitor-keys", "npm:4.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@ungap/structured-clone", [\ + ["npm:1.2.0", {\ + "packageLocation": "./.yarn/cache/@ungap-structured-clone-npm-1.2.0-648f0b82e0-8209c937cb.zip/node_modules/@ungap/structured-clone/",\ + "packageDependencies": [\ + ["@ungap/structured-clone", "npm:1.2.0"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@vitejs/plugin-basic-ssl", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/@vitejs-plugin-basic-ssl-npm-1.1.0-cc457f595f-98aadf5c7f.zip/node_modules/@vitejs/plugin-basic-ssl/",\ + ["npm:1.2.0", {\ + "packageLocation": "./.yarn/cache/@vitejs-plugin-basic-ssl-npm-1.2.0-3414e966f3-0d360fcca0.zip/node_modules/@vitejs/plugin-basic-ssl/",\ "packageDependencies": [\ - ["@vitejs/plugin-basic-ssl", "npm:1.1.0"]\ + ["@vitejs/plugin-basic-ssl", "npm:1.2.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:1.1.0", {\ - "packageLocation": "./.yarn/__virtual__/@vitejs-plugin-basic-ssl-virtual-d245d74d55/0/cache/@vitejs-plugin-basic-ssl-npm-1.1.0-cc457f595f-98aadf5c7f.zip/node_modules/@vitejs/plugin-basic-ssl/",\ + ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:1.2.0", {\ + "packageLocation": "./.yarn/__virtual__/@vitejs-plugin-basic-ssl-virtual-adcd73f157/0/cache/@vitejs-plugin-basic-ssl-npm-1.2.0-3414e966f3-0d360fcca0.zip/node_modules/@vitejs/plugin-basic-ssl/",\ "packageDependencies": [\ - ["@vitejs/plugin-basic-ssl", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:1.1.0"],\ + ["@vitejs/plugin-basic-ssl", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:1.2.0"],\ ["@types/vite", null],\ - ["vite", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:5.4.11"]\ + ["vite", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:6.0.2"]\ ],\ "packagePeers": [\ "@types/vite",\ @@ -3434,20 +3835,20 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@vitejs/plugin-vue", [\ - ["npm:5.2.0", {\ - "packageLocation": "./.yarn/cache/@vitejs-plugin-vue-npm-5.2.0-27e23c9bb8-cdd1850b9d.zip/node_modules/@vitejs/plugin-vue/",\ + ["npm:5.2.1", {\ + "packageLocation": "./.yarn/cache/@vitejs-plugin-vue-npm-5.2.1-25d60c16d1-927c06ccf5.zip/node_modules/@vitejs/plugin-vue/",\ "packageDependencies": [\ - ["@vitejs/plugin-vue", "npm:5.2.0"]\ + ["@vitejs/plugin-vue", "npm:5.2.1"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:5.2.0", {\ - "packageLocation": "./.yarn/__virtual__/@vitejs-plugin-vue-virtual-41a77e11e8/0/cache/@vitejs-plugin-vue-npm-5.2.0-27e23c9bb8-cdd1850b9d.zip/node_modules/@vitejs/plugin-vue/",\ + ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:5.2.1", {\ + "packageLocation": "./.yarn/__virtual__/@vitejs-plugin-vue-virtual-862d6e0c7a/0/cache/@vitejs-plugin-vue-npm-5.2.1-25d60c16d1-927c06ccf5.zip/node_modules/@vitejs/plugin-vue/",\ "packageDependencies": [\ - ["@vitejs/plugin-vue", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:5.2.0"],\ + ["@vitejs/plugin-vue", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:5.2.1"],\ ["@types/vite", null],\ ["@types/vue", null],\ - ["vite", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:5.4.11"],\ + ["vite", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:6.0.2"],\ ["vue", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.5.13"]\ ],\ "packagePeers": [\ @@ -3460,23 +3861,23 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@vitest/coverage-v8", [\ - ["npm:2.1.5", {\ - "packageLocation": "./.yarn/cache/@vitest-coverage-v8-npm-2.1.5-48fd28cfe7-c6870a8714.zip/node_modules/@vitest/coverage-v8/",\ + ["npm:2.1.7", {\ + "packageLocation": "./.yarn/cache/@vitest-coverage-v8-npm-2.1.7-d7f1faf4d6-be0f09e263.zip/node_modules/@vitest/coverage-v8/",\ "packageDependencies": [\ - ["@vitest/coverage-v8", "npm:2.1.5"]\ + ["@vitest/coverage-v8", "npm:2.1.7"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.5", {\ - "packageLocation": "./.yarn/__virtual__/@vitest-coverage-v8-virtual-4e1ddcee1c/0/cache/@vitest-coverage-v8-npm-2.1.5-48fd28cfe7-c6870a8714.zip/node_modules/@vitest/coverage-v8/",\ + ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.7", {\ + "packageLocation": "./.yarn/__virtual__/@vitest-coverage-v8-virtual-c02554d2d4/0/cache/@vitest-coverage-v8-npm-2.1.7-d7f1faf4d6-be0f09e263.zip/node_modules/@vitest/coverage-v8/",\ "packageDependencies": [\ - ["@vitest/coverage-v8", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.5"],\ + ["@vitest/coverage-v8", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.7"],\ ["@ampproject/remapping", "npm:2.3.0"],\ ["@bcoe/v8-coverage", "npm:0.2.3"],\ ["@types/vitest", null],\ ["@types/vitest__browser", null],\ ["@vitest/browser", null],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ ["istanbul-lib-coverage", "npm:3.2.2"],\ ["istanbul-lib-report", "npm:3.0.1"],\ ["istanbul-lib-source-maps", "npm:5.0.6"],\ @@ -3486,7 +3887,7 @@ const RAW_RUNTIME_STATE = ["std-env", "npm:3.8.0"],\ ["test-exclude", "npm:7.0.1"],\ ["tinyrainbow", "npm:1.2.0"],\ - ["vitest", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.5"]\ + ["vitest", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.7"]\ ],\ "packagePeers": [\ "@types/vitest",\ @@ -3498,25 +3899,25 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@vitest/eslint-plugin", [\ - ["npm:1.1.10", {\ - "packageLocation": "./.yarn/cache/@vitest-eslint-plugin-npm-1.1.10-3eb3e24398-f69be2a106.zip/node_modules/@vitest/eslint-plugin/",\ + ["npm:1.1.13", {\ + "packageLocation": "./.yarn/cache/@vitest-eslint-plugin-npm-1.1.13-f7b3b38e5c-179b095dfa.zip/node_modules/@vitest/eslint-plugin/",\ "packageDependencies": [\ - ["@vitest/eslint-plugin", "npm:1.1.10"]\ + ["@vitest/eslint-plugin", "npm:1.1.13"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:1.1.10", {\ - "packageLocation": "./.yarn/__virtual__/@vitest-eslint-plugin-virtual-88662e46da/0/cache/@vitest-eslint-plugin-npm-1.1.10-3eb3e24398-f69be2a106.zip/node_modules/@vitest/eslint-plugin/",\ + ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:1.1.13", {\ + "packageLocation": "./.yarn/__virtual__/@vitest-eslint-plugin-virtual-5278798362/0/cache/@vitest-eslint-plugin-npm-1.1.13-f7b3b38e5c-179b095dfa.zip/node_modules/@vitest/eslint-plugin/",\ "packageDependencies": [\ - ["@vitest/eslint-plugin", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:1.1.10"],\ + ["@vitest/eslint-plugin", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:1.1.13"],\ ["@types/eslint", null],\ ["@types/typescript", null],\ ["@types/typescript-eslint__utils", null],\ ["@types/vitest", null],\ - ["@typescript-eslint/utils", "virtual:920265345ea4067faba4b79db8010284e5552da581ea1ebfc57c6b032c05d37984adc7407082d7cee117f52d1ce80786b7b4b16b270103e24f47bcc006895d57#npm:8.14.0"],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ - ["typescript", "patch:typescript@npm%3A5.6.3#optional!builtin::version=5.6.3&hash=8c6c40"],\ - ["vitest", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.5"]\ + ["@typescript-eslint/utils", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:8.16.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ + ["typescript", "patch:typescript@npm%3A5.7.2#optional!builtin::version=5.7.2&hash=5786d5"],\ + ["vitest", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.7"]\ ],\ "packagePeers": [\ "@types/eslint",\ @@ -3532,12 +3933,12 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@vitest/expect", [\ - ["npm:2.1.5", {\ - "packageLocation": "./.yarn/cache/@vitest-expect-npm-2.1.5-d51bc6286e-68f7011e78.zip/node_modules/@vitest/expect/",\ + ["npm:2.1.7", {\ + "packageLocation": "./.yarn/cache/@vitest-expect-npm-2.1.7-998ad863f1-e9374db063.zip/node_modules/@vitest/expect/",\ "packageDependencies": [\ - ["@vitest/expect", "npm:2.1.5"],\ - ["@vitest/spy", "npm:2.1.5"],\ - ["@vitest/utils", "npm:2.1.5"],\ + ["@vitest/expect", "npm:2.1.7"],\ + ["@vitest/spy", "npm:2.1.7"],\ + ["@vitest/utils", "npm:2.1.7"],\ ["chai", "npm:5.1.2"],\ ["tinyrainbow", "npm:1.2.0"]\ ],\ @@ -3545,24 +3946,24 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@vitest/mocker", [\ - ["npm:2.1.5", {\ - "packageLocation": "./.yarn/cache/@vitest-mocker-npm-2.1.5-8551ad9996-57034aa347.zip/node_modules/@vitest/mocker/",\ + ["npm:2.1.7", {\ + "packageLocation": "./.yarn/cache/@vitest-mocker-npm-2.1.7-411a259234-551c443bea.zip/node_modules/@vitest/mocker/",\ "packageDependencies": [\ - ["@vitest/mocker", "npm:2.1.5"]\ + ["@vitest/mocker", "npm:2.1.7"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:f410c3b891e32509409c8fa5cae2d9ad24ed32aeae71effd660afd512244f2da0a3e0c3c8d5e86ba018ac154fa42f2449ab2f8d3a516843bb00111462b0156e0#npm:2.1.5", {\ - "packageLocation": "./.yarn/__virtual__/@vitest-mocker-virtual-7b3eff6e7a/0/cache/@vitest-mocker-npm-2.1.5-8551ad9996-57034aa347.zip/node_modules/@vitest/mocker/",\ + ["virtual:3bce10511eca1b71ba71eee5599716f7e5fcb863c18888a4d2ef1ad96d4c570a82a75ce13d99b172c149745686f5ef08c1529eabe15f2e49e2cda02b7d0f800b#npm:2.1.7", {\ + "packageLocation": "./.yarn/__virtual__/@vitest-mocker-virtual-0e89218281/0/cache/@vitest-mocker-npm-2.1.7-411a259234-551c443bea.zip/node_modules/@vitest/mocker/",\ "packageDependencies": [\ - ["@vitest/mocker", "virtual:f410c3b891e32509409c8fa5cae2d9ad24ed32aeae71effd660afd512244f2da0a3e0c3c8d5e86ba018ac154fa42f2449ab2f8d3a516843bb00111462b0156e0#npm:2.1.5"],\ + ["@vitest/mocker", "virtual:3bce10511eca1b71ba71eee5599716f7e5fcb863c18888a4d2ef1ad96d4c570a82a75ce13d99b172c149745686f5ef08c1529eabe15f2e49e2cda02b7d0f800b#npm:2.1.7"],\ ["@types/msw", null],\ ["@types/vite", null],\ - ["@vitest/spy", "npm:2.1.5"],\ + ["@vitest/spy", "npm:2.1.7"],\ ["estree-walker", "npm:3.0.3"],\ ["magic-string", "npm:0.30.12"],\ ["msw", null],\ - ["vite", "virtual:f85ba9fa72068bf8096204dd701022833b50e5163de486fde29c274211df90867d059a33880e35e32179f37e0a2edb2df80efde8b3f955d2eb21a5251bf6eca9#npm:5.4.11"]\ + ["vite", "virtual:10f2ba4ae90d27c09d74a5abb39ede5709da333be852a8f676b6e3c7c73803b099e917de6683463d3ce1350061207af4f521041e096756e1faa9c17df832f56e#npm:5.4.11"]\ ],\ "packagePeers": [\ "@types/msw",\ @@ -3574,32 +3975,32 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@vitest/pretty-format", [\ - ["npm:2.1.5", {\ - "packageLocation": "./.yarn/cache/@vitest-pretty-format-npm-2.1.5-c710423eda-d6667f1e5d.zip/node_modules/@vitest/pretty-format/",\ + ["npm:2.1.7", {\ + "packageLocation": "./.yarn/cache/@vitest-pretty-format-npm-2.1.7-f60a13be8b-9525f078d3.zip/node_modules/@vitest/pretty-format/",\ "packageDependencies": [\ - ["@vitest/pretty-format", "npm:2.1.5"],\ + ["@vitest/pretty-format", "npm:2.1.7"],\ ["tinyrainbow", "npm:1.2.0"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@vitest/runner", [\ - ["npm:2.1.5", {\ - "packageLocation": "./.yarn/cache/@vitest-runner-npm-2.1.5-0146a32baa-d39ea4c6f8.zip/node_modules/@vitest/runner/",\ + ["npm:2.1.7", {\ + "packageLocation": "./.yarn/cache/@vitest-runner-npm-2.1.7-d10827f6e0-5a8c86e716.zip/node_modules/@vitest/runner/",\ "packageDependencies": [\ - ["@vitest/runner", "npm:2.1.5"],\ - ["@vitest/utils", "npm:2.1.5"],\ + ["@vitest/runner", "npm:2.1.7"],\ + ["@vitest/utils", "npm:2.1.7"],\ ["pathe", "npm:1.1.2"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@vitest/snapshot", [\ - ["npm:2.1.5", {\ - "packageLocation": "./.yarn/cache/@vitest-snapshot-npm-2.1.5-622ca2d86d-3dc44b5a04.zip/node_modules/@vitest/snapshot/",\ + ["npm:2.1.7", {\ + "packageLocation": "./.yarn/cache/@vitest-snapshot-npm-2.1.7-ca4a3175e0-268dab533e.zip/node_modules/@vitest/snapshot/",\ "packageDependencies": [\ - ["@vitest/snapshot", "npm:2.1.5"],\ - ["@vitest/pretty-format", "npm:2.1.5"],\ + ["@vitest/snapshot", "npm:2.1.7"],\ + ["@vitest/pretty-format", "npm:2.1.7"],\ ["magic-string", "npm:0.30.12"],\ ["pathe", "npm:1.1.2"]\ ],\ @@ -3607,36 +4008,36 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@vitest/spy", [\ - ["npm:2.1.5", {\ - "packageLocation": "./.yarn/cache/@vitest-spy-npm-2.1.5-b5c3d4bd78-c5222cc707.zip/node_modules/@vitest/spy/",\ + ["npm:2.1.7", {\ + "packageLocation": "./.yarn/cache/@vitest-spy-npm-2.1.7-ac3f4cd11a-2043d010d3.zip/node_modules/@vitest/spy/",\ "packageDependencies": [\ - ["@vitest/spy", "npm:2.1.5"],\ + ["@vitest/spy", "npm:2.1.7"],\ ["tinyspy", "npm:3.0.2"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@vitest/ui", [\ - ["npm:2.1.5", {\ - "packageLocation": "./.yarn/cache/@vitest-ui-npm-2.1.5-1d19291620-73e1bb289b.zip/node_modules/@vitest/ui/",\ + ["npm:2.1.7", {\ + "packageLocation": "./.yarn/cache/@vitest-ui-npm-2.1.7-8b8d2c8ad7-8237f5e601.zip/node_modules/@vitest/ui/",\ "packageDependencies": [\ - ["@vitest/ui", "npm:2.1.5"]\ + ["@vitest/ui", "npm:2.1.7"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.5", {\ - "packageLocation": "./.yarn/__virtual__/@vitest-ui-virtual-05899fef44/0/cache/@vitest-ui-npm-2.1.5-1d19291620-73e1bb289b.zip/node_modules/@vitest/ui/",\ + ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.7", {\ + "packageLocation": "./.yarn/__virtual__/@vitest-ui-virtual-73857526a6/0/cache/@vitest-ui-npm-2.1.7-8b8d2c8ad7-8237f5e601.zip/node_modules/@vitest/ui/",\ "packageDependencies": [\ - ["@vitest/ui", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.5"],\ + ["@vitest/ui", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.7"],\ ["@types/vitest", null],\ - ["@vitest/utils", "npm:2.1.5"],\ + ["@vitest/utils", "npm:2.1.7"],\ ["fflate", "npm:0.8.2"],\ ["flatted", "npm:3.3.1"],\ ["pathe", "npm:1.1.2"],\ ["sirv", "npm:3.0.0"],\ ["tinyglobby", "npm:0.2.10"],\ ["tinyrainbow", "npm:1.2.0"],\ - ["vitest", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.5"]\ + ["vitest", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.7"]\ ],\ "packagePeers": [\ "@types/vitest",\ @@ -3646,11 +4047,11 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@vitest/utils", [\ - ["npm:2.1.5", {\ - "packageLocation": "./.yarn/cache/@vitest-utils-npm-2.1.5-77d77373d8-3d1e65025e.zip/node_modules/@vitest/utils/",\ + ["npm:2.1.7", {\ + "packageLocation": "./.yarn/cache/@vitest-utils-npm-2.1.7-c5160cff8c-fa71d0bba2.zip/node_modules/@vitest/utils/",\ "packageDependencies": [\ - ["@vitest/utils", "npm:2.1.5"],\ - ["@vitest/pretty-format", "npm:2.1.5"],\ + ["@vitest/utils", "npm:2.1.7"],\ + ["@vitest/pretty-format", "npm:2.1.7"],\ ["loupe", "npm:3.1.2"],\ ["tinyrainbow", "npm:1.2.0"]\ ],\ @@ -3658,18 +4059,6 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@vue/compiler-core", [\ - ["npm:3.5.12", {\ - "packageLocation": "./.yarn/cache/@vue-compiler-core-npm-3.5.12-ec7e993ccc-7f004b9633.zip/node_modules/@vue/compiler-core/",\ - "packageDependencies": [\ - ["@vue/compiler-core", "npm:3.5.12"],\ - ["@babel/parser", "npm:7.26.2"],\ - ["@vue/shared", "npm:3.5.12"],\ - ["entities", "npm:4.5.0"],\ - ["estree-walker", "npm:2.0.2"],\ - ["source-map-js", "npm:1.2.1"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:3.5.13", {\ "packageLocation": "./.yarn/cache/@vue-compiler-core-npm-3.5.13-b0c91e9970-b89f3e3ca9.zip/node_modules/@vue/compiler-core/",\ "packageDependencies": [\ @@ -3684,15 +4073,6 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@vue/compiler-dom", [\ - ["npm:3.5.12", {\ - "packageLocation": "./.yarn/cache/@vue-compiler-dom-npm-3.5.12-2c6fcbab3c-48a67cd28c.zip/node_modules/@vue/compiler-dom/",\ - "packageDependencies": [\ - ["@vue/compiler-dom", "npm:3.5.12"],\ - ["@vue/compiler-core", "npm:3.5.12"],\ - ["@vue/shared", "npm:3.5.12"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:3.5.13", {\ "packageLocation": "./.yarn/cache/@vue-compiler-dom-npm-3.5.13-8785a9ba19-8f424a7188.zip/node_modules/@vue/compiler-dom/",\ "packageDependencies": [\ @@ -3722,15 +4102,6 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@vue/compiler-ssr", [\ - ["npm:3.5.12", {\ - "packageLocation": "./.yarn/cache/@vue-compiler-ssr-npm-3.5.12-e1e40560ca-8a8fc4e205.zip/node_modules/@vue/compiler-ssr/",\ - "packageDependencies": [\ - ["@vue/compiler-ssr", "npm:3.5.12"],\ - ["@vue/compiler-dom", "npm:3.5.12"],\ - ["@vue/shared", "npm:3.5.12"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:3.5.13", {\ "packageLocation": "./.yarn/cache/@vue-compiler-ssr-npm-3.5.13-e1cdeef007-67621337b1.zip/node_modules/@vue/compiler-ssr/",\ "packageDependencies": [\ @@ -3785,13 +4156,6 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@vue/server-renderer", [\ - ["npm:3.5.12", {\ - "packageLocation": "./.yarn/cache/@vue-server-renderer-npm-3.5.12-3ad333df56-d9f25f165c.zip/node_modules/@vue/server-renderer/",\ - "packageDependencies": [\ - ["@vue/server-renderer", "npm:3.5.12"]\ - ],\ - "linkType": "SOFT"\ - }],\ ["npm:3.5.13", {\ "packageLocation": "./.yarn/cache/@vue-server-renderer-npm-3.5.13-d23f3ccee8-f500bdabc1.zip/node_modules/@vue/server-renderer/",\ "packageDependencies": [\ @@ -3814,10 +4178,10 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ - ["virtual:33382e2c41b7662b4530f61f13128e650803dc0e0b463c70df98582286d9916aedcc1ddcea66f7173aeed4b6d89426fd18b06d214a5ba235ecd78137e9ea48dd#npm:3.5.13", {\ - "packageLocation": "./.yarn/__virtual__/@vue-server-renderer-virtual-a73fe6cbf9/0/cache/@vue-server-renderer-npm-3.5.13-d23f3ccee8-f500bdabc1.zip/node_modules/@vue/server-renderer/",\ + ["virtual:ec350e632119c2fa6aa4185d5fb2e6904d7c1f9cefb2603c234bc720b5a0490a22229e2320a7b46e1376c2f73972079ba6fa907f4b7e80df555b8cfccd6e5aa2#npm:3.5.13", {\ + "packageLocation": "./.yarn/__virtual__/@vue-server-renderer-virtual-fe338cb778/0/cache/@vue-server-renderer-npm-3.5.13-d23f3ccee8-f500bdabc1.zip/node_modules/@vue/server-renderer/",\ "packageDependencies": [\ - ["@vue/server-renderer", "virtual:33382e2c41b7662b4530f61f13128e650803dc0e0b463c70df98582286d9916aedcc1ddcea66f7173aeed4b6d89426fd18b06d214a5ba235ecd78137e9ea48dd#npm:3.5.13"],\ + ["@vue/server-renderer", "virtual:ec350e632119c2fa6aa4185d5fb2e6904d7c1f9cefb2603c234bc720b5a0490a22229e2320a7b46e1376c2f73972079ba6fa907f4b7e80df555b8cfccd6e5aa2#npm:3.5.13"],\ ["@types/vue", null],\ ["@vue/compiler-ssr", "npm:3.5.13"],\ ["@vue/shared", "npm:3.5.13"],\ @@ -3828,31 +4192,9 @@ const RAW_RUNTIME_STATE = "vue"\ ],\ "linkType": "HARD"\ - }],\ - ["virtual:ec350e632119c2fa6aa4185d5fb2e6904d7c1f9cefb2603c234bc720b5a0490a22229e2320a7b46e1376c2f73972079ba6fa907f4b7e80df555b8cfccd6e5aa2#npm:3.5.12", {\ - "packageLocation": "./.yarn/__virtual__/@vue-server-renderer-virtual-db0a4417ab/0/cache/@vue-server-renderer-npm-3.5.12-3ad333df56-d9f25f165c.zip/node_modules/@vue/server-renderer/",\ - "packageDependencies": [\ - ["@vue/server-renderer", "virtual:ec350e632119c2fa6aa4185d5fb2e6904d7c1f9cefb2603c234bc720b5a0490a22229e2320a7b46e1376c2f73972079ba6fa907f4b7e80df555b8cfccd6e5aa2#npm:3.5.12"],\ - ["@types/vue", null],\ - ["@vue/compiler-ssr", "npm:3.5.12"],\ - ["@vue/shared", "npm:3.5.12"],\ - ["vue", "virtual:ec350e632119c2fa6aa4185d5fb2e6904d7c1f9cefb2603c234bc720b5a0490a22229e2320a7b46e1376c2f73972079ba6fa907f4b7e80df555b8cfccd6e5aa2#npm:3.5.13"]\ - ],\ - "packagePeers": [\ - "@types/vue",\ - "vue"\ - ],\ - "linkType": "HARD"\ }]\ ]],\ ["@vue/shared", [\ - ["npm:3.5.12", {\ - "packageLocation": "./.yarn/cache/@vue-shared-npm-3.5.12-70fd2bd5d7-48f94406c4.zip/node_modules/@vue/shared/",\ - "packageDependencies": [\ - ["@vue/shared", "npm:3.5.12"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:3.5.13", {\ "packageLocation": "./.yarn/cache/@vue-shared-npm-3.5.13-519178ab33-2c940ef907.zip/node_modules/@vue/shared/",\ "packageDependencies": [\ @@ -3866,8 +4208,8 @@ const RAW_RUNTIME_STATE = "packageLocation": "./.yarn/cache/@vue-test-utils-npm-2.4.6-ec350e6321-37fa46cb6b.zip/node_modules/@vue/test-utils/",\ "packageDependencies": [\ ["@vue/test-utils", "npm:2.4.6"],\ - ["@vue/compiler-dom", "npm:3.5.12"],\ - ["@vue/server-renderer", "virtual:ec350e632119c2fa6aa4185d5fb2e6904d7c1f9cefb2603c234bc720b5a0490a22229e2320a7b46e1376c2f73972079ba6fa907f4b7e80df555b8cfccd6e5aa2#npm:3.5.12"],\ + ["@vue/compiler-dom", "npm:3.5.13"],\ + ["@vue/server-renderer", "virtual:ec350e632119c2fa6aa4185d5fb2e6904d7c1f9cefb2603c234bc720b5a0490a22229e2320a7b46e1376c2f73972079ba6fa907f4b7e80df555b8cfccd6e5aa2#npm:3.5.13"],\ ["js-beautify", "npm:1.15.1"],\ ["vue", "virtual:ec350e632119c2fa6aa4185d5fb2e6904d7c1f9cefb2603c234bc720b5a0490a22229e2320a7b46e1376c2f73972079ba6fa907f4b7e80df555b8cfccd6e5aa2#npm:3.5.13"],\ ["vue-component-type-helpers", "npm:2.0.6"]\ @@ -3945,7 +4287,7 @@ const RAW_RUNTIME_STATE = ["@types/vuetify", null],\ ["upath", "npm:2.0.1"],\ ["vue", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.5.13"],\ - ["vuetify", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.7.4"]\ + ["vuetify", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.7.5"]\ ],\ "packagePeers": [\ "@types/vue",\ @@ -3957,23 +4299,22 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@vueuse/core", [\ - ["npm:11.3.0", {\ - "packageLocation": "./.yarn/cache/@vueuse-core-npm-11.3.0-05f6e71b8d-57ebed3ee2.zip/node_modules/@vueuse/core/",\ + ["npm:12.0.0", {\ + "packageLocation": "./.yarn/cache/@vueuse-core-npm-12.0.0-f2b4ad9f0b-416a5d2725.zip/node_modules/@vueuse/core/",\ "packageDependencies": [\ - ["@vueuse/core", "npm:11.3.0"]\ + ["@vueuse/core", "npm:12.0.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:11.3.0", {\ - "packageLocation": "./.yarn/__virtual__/@vueuse-core-virtual-eee61119ae/0/cache/@vueuse-core-npm-11.3.0-05f6e71b8d-57ebed3ee2.zip/node_modules/@vueuse/core/",\ + ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:12.0.0", {\ + "packageLocation": "./.yarn/__virtual__/@vueuse-core-virtual-6141101a6a/0/cache/@vueuse-core-npm-12.0.0-f2b4ad9f0b-416a5d2725.zip/node_modules/@vueuse/core/",\ "packageDependencies": [\ - ["@vueuse/core", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:11.3.0"],\ + ["@vueuse/core", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:12.0.0"],\ ["@types/vue", null],\ ["@types/web-bluetooth", "npm:0.0.20"],\ - ["@vueuse/metadata", "npm:11.3.0"],\ - ["@vueuse/shared", "virtual:eee61119ae44de6bdd2d80516aa58351fb672dfb62bd9280164bd7ed02bf8fbb729370ff9ad684716ca347f17acee00be10afea38709b7b24ffc11be1240b4bb#npm:11.3.0"],\ - ["vue", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.5.13"],\ - ["vue-demi", "virtual:288f2302e0270881b9fa9da047ab9df8cf089377e83a74b84a0c9e0b8e9e6d231f762cfaf440eaf471c10b65a17e4fa71a06f56de831d2a6bff724e6c95ba807#npm:0.14.10"]\ + ["@vueuse/metadata", "npm:12.0.0"],\ + ["@vueuse/shared", "virtual:6141101a6a05971a6233e81ff75e09840c7c740f0e122d0cb4eec33682e3be088492c8fc136bbb90971da3607f33e1ff1f2bddc8034d53644309f5f504fc7630#npm:12.0.0"],\ + ["vue", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.5.13"]\ ],\ "packagePeers": [\ "@types/vue",\ @@ -3983,17 +4324,17 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@vueuse/integrations", [\ - ["npm:11.3.0", {\ - "packageLocation": "./.yarn/cache/@vueuse-integrations-npm-11.3.0-78765d714a-4808c9b642.zip/node_modules/@vueuse/integrations/",\ + ["npm:12.0.0", {\ + "packageLocation": "./.yarn/cache/@vueuse-integrations-npm-12.0.0-ad0f253a1d-b8941bcbc0.zip/node_modules/@vueuse/integrations/",\ "packageDependencies": [\ - ["@vueuse/integrations", "npm:11.3.0"]\ + ["@vueuse/integrations", "npm:12.0.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:11.3.0", {\ - "packageLocation": "./.yarn/__virtual__/@vueuse-integrations-virtual-518419c836/0/cache/@vueuse-integrations-npm-11.3.0-78765d714a-4808c9b642.zip/node_modules/@vueuse/integrations/",\ + ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:12.0.0", {\ + "packageLocation": "./.yarn/__virtual__/@vueuse-integrations-virtual-bd487beff3/0/cache/@vueuse-integrations-npm-12.0.0-ad0f253a1d-b8941bcbc0.zip/node_modules/@vueuse/integrations/",\ "packageDependencies": [\ - ["@vueuse/integrations", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:11.3.0"],\ + ["@vueuse/integrations", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:12.0.0"],\ ["@types/async-validator", null],\ ["@types/axios", null],\ ["@types/change-case", null],\ @@ -4007,8 +4348,8 @@ const RAW_RUNTIME_STATE = ["@types/sortablejs", null],\ ["@types/universal-cookie", null],\ ["@types/vue", null],\ - ["@vueuse/core", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:11.3.0"],\ - ["@vueuse/shared", "virtual:eee61119ae44de6bdd2d80516aa58351fb672dfb62bd9280164bd7ed02bf8fbb729370ff9ad684716ca347f17acee00be10afea38709b7b24ffc11be1240b4bb#npm:11.3.0"],\ + ["@vueuse/core", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:12.0.0"],\ + ["@vueuse/shared", "virtual:6141101a6a05971a6233e81ff75e09840c7c740f0e122d0cb4eec33682e3be088492c8fc136bbb90971da3607f33e1ff1f2bddc8034d53644309f5f504fc7630#npm:12.0.0"],\ ["async-validator", null],\ ["axios", null],\ ["change-case", null],\ @@ -4021,8 +4362,7 @@ const RAW_RUNTIME_STATE = ["qrcode", null],\ ["sortablejs", null],\ ["universal-cookie", "npm:7.2.2"],\ - ["vue", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.5.13"],\ - ["vue-demi", "virtual:288f2302e0270881b9fa9da047ab9df8cf089377e83a74b84a0c9e0b8e9e6d231f762cfaf440eaf471c10b65a17e4fa71a06f56de831d2a6bff724e6c95ba807#npm:0.14.10"]\ + ["vue", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.5.13"]\ ],\ "packagePeers": [\ "@types/async-validator",\ @@ -4056,31 +4396,30 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@vueuse/metadata", [\ - ["npm:11.3.0", {\ - "packageLocation": "./.yarn/cache/@vueuse-metadata-npm-11.3.0-b41c961ef4-4548912f32.zip/node_modules/@vueuse/metadata/",\ + ["npm:12.0.0", {\ + "packageLocation": "./.yarn/cache/@vueuse-metadata-npm-12.0.0-8e9ddf7794-f67a256fef.zip/node_modules/@vueuse/metadata/",\ "packageDependencies": [\ - ["@vueuse/metadata", "npm:11.3.0"]\ + ["@vueuse/metadata", "npm:12.0.0"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@vueuse/router", [\ - ["npm:11.3.0", {\ - "packageLocation": "./.yarn/cache/@vueuse-router-npm-11.3.0-37f8c0805a-bdef732d3f.zip/node_modules/@vueuse/router/",\ + ["npm:12.0.0", {\ + "packageLocation": "./.yarn/cache/@vueuse-router-npm-12.0.0-ee5e4e160d-00ed897802.zip/node_modules/@vueuse/router/",\ "packageDependencies": [\ - ["@vueuse/router", "npm:11.3.0"]\ + ["@vueuse/router", "npm:12.0.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:11.3.0", {\ - "packageLocation": "./.yarn/__virtual__/@vueuse-router-virtual-82a762df68/0/cache/@vueuse-router-npm-11.3.0-37f8c0805a-bdef732d3f.zip/node_modules/@vueuse/router/",\ + ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:12.0.0", {\ + "packageLocation": "./.yarn/__virtual__/@vueuse-router-virtual-a4bb9ff902/0/cache/@vueuse-router-npm-12.0.0-ee5e4e160d-00ed897802.zip/node_modules/@vueuse/router/",\ "packageDependencies": [\ - ["@vueuse/router", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:11.3.0"],\ + ["@vueuse/router", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:12.0.0"],\ ["@types/vue", null],\ ["@types/vue-router", null],\ - ["@vueuse/shared", "virtual:eee61119ae44de6bdd2d80516aa58351fb672dfb62bd9280164bd7ed02bf8fbb729370ff9ad684716ca347f17acee00be10afea38709b7b24ffc11be1240b4bb#npm:11.3.0"],\ + ["@vueuse/shared", "virtual:6141101a6a05971a6233e81ff75e09840c7c740f0e122d0cb4eec33682e3be088492c8fc136bbb90971da3607f33e1ff1f2bddc8034d53644309f5f504fc7630#npm:12.0.0"],\ ["vue", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.5.13"],\ - ["vue-demi", "virtual:288f2302e0270881b9fa9da047ab9df8cf089377e83a74b84a0c9e0b8e9e6d231f762cfaf440eaf471c10b65a17e4fa71a06f56de831d2a6bff724e6c95ba807#npm:0.14.10"],\ ["vue-router", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:4.5.0"]\ ],\ "packagePeers": [\ @@ -4093,20 +4432,19 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@vueuse/shared", [\ - ["npm:11.3.0", {\ - "packageLocation": "./.yarn/cache/@vueuse-shared-npm-11.3.0-d866f70d59-820af5359d.zip/node_modules/@vueuse/shared/",\ + ["npm:12.0.0", {\ + "packageLocation": "./.yarn/cache/@vueuse-shared-npm-12.0.0-dcb8e9975b-7900edc00f.zip/node_modules/@vueuse/shared/",\ "packageDependencies": [\ - ["@vueuse/shared", "npm:11.3.0"]\ + ["@vueuse/shared", "npm:12.0.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:eee61119ae44de6bdd2d80516aa58351fb672dfb62bd9280164bd7ed02bf8fbb729370ff9ad684716ca347f17acee00be10afea38709b7b24ffc11be1240b4bb#npm:11.3.0", {\ - "packageLocation": "./.yarn/__virtual__/@vueuse-shared-virtual-19c21e82e0/0/cache/@vueuse-shared-npm-11.3.0-d866f70d59-820af5359d.zip/node_modules/@vueuse/shared/",\ + ["virtual:6141101a6a05971a6233e81ff75e09840c7c740f0e122d0cb4eec33682e3be088492c8fc136bbb90971da3607f33e1ff1f2bddc8034d53644309f5f504fc7630#npm:12.0.0", {\ + "packageLocation": "./.yarn/__virtual__/@vueuse-shared-virtual-60c30d9b95/0/cache/@vueuse-shared-npm-12.0.0-dcb8e9975b-7900edc00f.zip/node_modules/@vueuse/shared/",\ "packageDependencies": [\ - ["@vueuse/shared", "virtual:eee61119ae44de6bdd2d80516aa58351fb672dfb62bd9280164bd7ed02bf8fbb729370ff9ad684716ca347f17acee00be10afea38709b7b24ffc11be1240b4bb#npm:11.3.0"],\ + ["@vueuse/shared", "virtual:6141101a6a05971a6233e81ff75e09840c7c740f0e122d0cb4eec33682e3be088492c8fc136bbb90971da3607f33e1ff1f2bddc8034d53644309f5f504fc7630#npm:12.0.0"],\ ["@types/vue", null],\ - ["vue", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.5.13"],\ - ["vue-demi", "virtual:288f2302e0270881b9fa9da047ab9df8cf089377e83a74b84a0c9e0b8e9e6d231f762cfaf440eaf471c10b65a17e4fa71a06f56de831d2a6bff724e6c95ba807#npm:0.14.10"]\ + ["vue", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.5.13"]\ ],\ "packagePeers": [\ "@types/vue",\ @@ -4231,10 +4569,10 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:e5b10052f5b961a2f38f3edbfbbcd7baf074e555f688eaf63695fed94838b848c6291487952754e262c19f60bf34d659b71e3d5260e2ea073949e1b6269dc165#npm:5.3.2", {\ - "packageLocation": "./.yarn/__virtual__/acorn-jsx-virtual-64331c13be/0/cache/acorn-jsx-npm-5.3.2-d7594599ea-4c54868fbe.zip/node_modules/acorn-jsx/",\ + ["virtual:a50722a5a9326b6a5f12350c494c4db3aa0f4caeac45e3e9e5fe071da20014ecfe738fe2ebe2c9c98abae81a4ea86b42f56d776b3bd5ec37f9ad3670c242b242#npm:5.3.2", {\ + "packageLocation": "./.yarn/__virtual__/acorn-jsx-virtual-834321b202/0/cache/acorn-jsx-npm-5.3.2-d7594599ea-4c54868fbe.zip/node_modules/acorn-jsx/",\ "packageDependencies": [\ - ["acorn-jsx", "virtual:e5b10052f5b961a2f38f3edbfbbcd7baf074e555f688eaf63695fed94838b848c6291487952754e262c19f60bf34d659b71e3d5260e2ea073949e1b6269dc165#npm:5.3.2"],\ + ["acorn-jsx", "virtual:a50722a5a9326b6a5f12350c494c4db3aa0f4caeac45e3e9e5fe071da20014ecfe738fe2ebe2c9c98abae81a4ea86b42f56d776b3bd5ec37f9ad3670c242b242#npm:5.3.2"],\ ["@types/acorn", null],\ ["acorn", "npm:8.14.0"]\ ],\ @@ -4250,7 +4588,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./.yarn/cache/agent-base-npm-6.0.2-428f325a93-dc4f757e40.zip/node_modules/agent-base/",\ "packageDependencies": [\ ["agent-base", "npm:6.0.2"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"]\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"]\ ],\ "linkType": "HARD"\ }],\ @@ -4258,7 +4596,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./.yarn/cache/agent-base-npm-7.1.0-4b12ba5111-fc974ab57f.zip/node_modules/agent-base/",\ "packageDependencies": [\ ["agent-base", "npm:7.1.0"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"]\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"]\ ],\ "linkType": "HARD"\ }]\ @@ -4787,15 +5125,6 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ - ["binary-extensions", [\ - ["npm:2.2.0", {\ - "packageLocation": "./.yarn/cache/binary-extensions-npm-2.2.0-180c33fec7-d73d8b8972.zip/node_modules/binary-extensions/",\ - "packageDependencies": [\ - ["binary-extensions", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ ["bintrees", [\ ["npm:1.0.2", {\ "packageLocation": "./.yarn/cache/bintrees-npm-1.0.2-b28feeda03-132944b20c.zip/node_modules/bintrees/",\ @@ -5073,21 +5402,6 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["chokidar", [\ - ["npm:3.6.0", {\ - "packageLocation": "./.yarn/cache/chokidar-npm-3.6.0-3c413a828f-8361dcd013.zip/node_modules/chokidar/",\ - "packageDependencies": [\ - ["chokidar", "npm:3.6.0"],\ - ["anymatch", "npm:3.1.3"],\ - ["braces", "npm:3.0.3"],\ - ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"],\ - ["glob-parent", "npm:5.1.2"],\ - ["is-binary-path", "npm:2.1.0"],\ - ["is-glob", "npm:4.0.3"],\ - ["normalize-path", "npm:3.0.0"],\ - ["readdirp", "npm:3.6.0"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:4.0.1", {\ "packageLocation": "./.yarn/cache/chokidar-npm-4.0.1-989df9ae3c-4bb7a3adc3.zip/node_modules/chokidar/",\ "packageDependencies": [\ @@ -5422,16 +5736,6 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ - ["cross-fetch", [\ - ["npm:4.0.0", {\ - "packageLocation": "./.yarn/cache/cross-fetch-npm-4.0.0-9c67668db4-386727dc4c.zip/node_modules/cross-fetch/",\ - "packageDependencies": [\ - ["cross-fetch", "npm:4.0.0"],\ - ["node-fetch", "virtual:b01bc14c3fb20a565009002ee2e0790039582d5ead51843fa878af651c6a4713382219abd2c6b1a0bc65ff66858b5db4627e960be7fcc9aa9469883e27f8fb1c#npm:2.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ ["cross-spawn", [\ ["npm:7.0.6", {\ "packageLocation": "./.yarn/cache/cross-spawn-npm-7.0.6-264bddf921-053ea8b213.zip/node_modules/cross-spawn/",\ @@ -5585,10 +5889,10 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:2a426afc4b2eef43db12a540d29c2b5476640459bfcd5c24f86bb401cf8cce97e63bd81794d206a5643057e7f662643afd5ce3dfc4d4bfd8e706006c6309c5fa#npm:3.2.7", {\ - "packageLocation": "./.yarn/__virtual__/debug-virtual-d2345003b7/0/cache/debug-npm-3.2.7-754e818c7a-37d96ae42c.zip/node_modules/debug/",\ + ["virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7", {\ + "packageLocation": "./.yarn/__virtual__/debug-virtual-d06b253898/0/cache/debug-npm-4.3.7-385645adf9-1471db19c3.zip/node_modules/debug/",\ "packageDependencies": [\ - ["debug", "virtual:2a426afc4b2eef43db12a540d29c2b5476640459bfcd5c24f86bb401cf8cce97e63bd81794d206a5643057e7f662643afd5ce3dfc4d4bfd8e706006c6309c5fa#npm:3.2.7"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ ["@types/supports-color", null],\ ["ms", "npm:2.1.3"],\ ["supports-color", null]\ @@ -5599,10 +5903,10 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ - ["virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7", {\ - "packageLocation": "./.yarn/__virtual__/debug-virtual-fecb6275a4/0/cache/debug-npm-4.3.7-385645adf9-1471db19c3.zip/node_modules/debug/",\ + ["virtual:2a426afc4b2eef43db12a540d29c2b5476640459bfcd5c24f86bb401cf8cce97e63bd81794d206a5643057e7f662643afd5ce3dfc4d4bfd8e706006c6309c5fa#npm:3.2.7", {\ + "packageLocation": "./.yarn/__virtual__/debug-virtual-d2345003b7/0/cache/debug-npm-3.2.7-754e818c7a-37d96ae42c.zip/node_modules/debug/",\ "packageDependencies": [\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"],\ + ["debug", "virtual:2a426afc4b2eef43db12a540d29c2b5476640459bfcd5c24f86bb401cf8cce97e63bd81794d206a5643057e7f662643afd5ce3dfc4d4bfd8e706006c6309c5fa#npm:3.2.7"],\ ["@types/supports-color", null],\ ["ms", "npm:2.1.3"],\ ["supports-color", null]\ @@ -5821,6 +6125,14 @@ const RAW_RUNTIME_STATE = ["esutils", "npm:2.0.3"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:3.0.0", {\ + "packageLocation": "./.yarn/cache/doctrine-npm-3.0.0-c6f1615f04-c96bdccabe.zip/node_modules/doctrine/",\ + "packageDependencies": [\ + ["doctrine", "npm:3.0.0"],\ + ["esutils", "npm:2.0.3"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["dom-serializer", [\ @@ -5988,7 +6300,7 @@ const RAW_RUNTIME_STATE = ["base64id", "npm:2.0.0"],\ ["cookie", "npm:0.4.2"],\ ["cors", "npm:2.8.5"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ ["engine.io-parser", "npm:5.2.1"],\ ["ws", "virtual:9db933bf36e2b5e807a2498681e5feab5ec089e1ee7a5628b7a4d954999baef1d5658b25f622365f756f2a01a79db02d51fc7c6ad96c2017d0c3b84d9ceb7bb6#npm:8.17.1"]\ ],\ @@ -6001,7 +6313,7 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["engine.io-client", "npm:6.6.1"],\ ["@socket.io/component-emitter", "npm:3.1.0"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ ["engine.io-parser", "npm:5.2.1"],\ ["ws", "virtual:9db933bf36e2b5e807a2498681e5feab5ec089e1ee7a5628b7a4d954999baef1d5658b25f622365f756f2a01a79db02d51fc7c6ad96c2017d0c3b84d9ceb7bb6#npm:8.17.1"],\ ["xmlhttprequest-ssl", "npm:2.1.1"]\ @@ -6246,6 +6558,37 @@ const RAW_RUNTIME_STATE = ["@esbuild/win32-x64", "npm:0.21.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/esbuild-npm-0.24.0-1252872327/node_modules/esbuild/",\ + "packageDependencies": [\ + ["esbuild", "npm:0.24.0"],\ + ["@esbuild/aix-ppc64", "npm:0.24.0"],\ + ["@esbuild/android-arm", "npm:0.24.0"],\ + ["@esbuild/android-arm64", "npm:0.24.0"],\ + ["@esbuild/android-x64", "npm:0.24.0"],\ + ["@esbuild/darwin-arm64", "npm:0.24.0"],\ + ["@esbuild/darwin-x64", "npm:0.24.0"],\ + ["@esbuild/freebsd-arm64", "npm:0.24.0"],\ + ["@esbuild/freebsd-x64", "npm:0.24.0"],\ + ["@esbuild/linux-arm", "npm:0.24.0"],\ + ["@esbuild/linux-arm64", "npm:0.24.0"],\ + ["@esbuild/linux-ia32", "npm:0.24.0"],\ + ["@esbuild/linux-loong64", "npm:0.24.0"],\ + ["@esbuild/linux-mips64el", "npm:0.24.0"],\ + ["@esbuild/linux-ppc64", "npm:0.24.0"],\ + ["@esbuild/linux-riscv64", "npm:0.24.0"],\ + ["@esbuild/linux-s390x", "npm:0.24.0"],\ + ["@esbuild/linux-x64", "npm:0.24.0"],\ + ["@esbuild/netbsd-x64", "npm:0.24.0"],\ + ["@esbuild/openbsd-arm64", "npm:0.24.0"],\ + ["@esbuild/openbsd-x64", "npm:0.24.0"],\ + ["@esbuild/sunos-x64", "npm:0.24.0"],\ + ["@esbuild/win32-arm64", "npm:0.24.0"],\ + ["@esbuild/win32-ia32", "npm:0.24.0"],\ + ["@esbuild/win32-x64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["escalade", [\ @@ -6290,23 +6633,68 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["eslint", [\ - ["npm:9.14.0", {\ - "packageLocation": "./.yarn/cache/eslint-npm-9.14.0-04ed57b338-e1cbf571b7.zip/node_modules/eslint/",\ + ["npm:8.57.1", {\ + "packageLocation": "./.yarn/cache/eslint-npm-8.57.1-dd20287a5a-1fd3153308.zip/node_modules/eslint/",\ + "packageDependencies": [\ + ["eslint", "npm:8.57.1"],\ + ["@eslint-community/eslint-utils", "virtual:dd20287a5a1e86b12a5b04609f98bd729fafd847d08e1fc89cdc68f92d1acf209e53b09ef0af4b6e7781d88e1f9acf94e3bf34619939e434ad5ffb0f24855eb4#npm:4.4.1"],\ + ["@eslint-community/regexpp", "npm:4.12.1"],\ + ["@eslint/eslintrc", "npm:2.1.4"],\ + ["@eslint/js", "npm:8.57.1"],\ + ["@humanwhocodes/config-array", "npm:0.13.0"],\ + ["@humanwhocodes/module-importer", "npm:1.0.1"],\ + ["@nodelib/fs.walk", "npm:1.2.8"],\ + ["@ungap/structured-clone", "npm:1.2.0"],\ + ["ajv", "npm:6.12.6"],\ + ["chalk", "npm:4.1.2"],\ + ["cross-spawn", "npm:7.0.6"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ + ["doctrine", "npm:3.0.0"],\ + ["escape-string-regexp", "npm:4.0.0"],\ + ["eslint-scope", "npm:7.2.2"],\ + ["eslint-visitor-keys", "npm:3.4.3"],\ + ["espree", "npm:9.6.1"],\ + ["esquery", "npm:1.6.0"],\ + ["esutils", "npm:2.0.3"],\ + ["fast-deep-equal", "npm:3.1.3"],\ + ["file-entry-cache", "npm:6.0.1"],\ + ["find-up", "npm:5.0.0"],\ + ["glob-parent", "npm:6.0.2"],\ + ["globals", "npm:13.24.0"],\ + ["graphemer", "npm:1.4.0"],\ + ["ignore", "npm:5.3.2"],\ + ["imurmurhash", "npm:0.1.4"],\ + ["is-glob", "npm:4.0.3"],\ + ["is-path-inside", "npm:3.0.3"],\ + ["js-yaml", "npm:4.1.0"],\ + ["json-stable-stringify-without-jsonify", "npm:1.0.1"],\ + ["levn", "npm:0.4.1"],\ + ["lodash.merge", "npm:4.6.2"],\ + ["minimatch", "npm:3.1.2"],\ + ["natural-compare", "npm:1.4.0"],\ + ["optionator", "npm:0.9.3"],\ + ["strip-ansi", "npm:6.0.1"],\ + ["text-table", "npm:0.2.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:9.16.0", {\ + "packageLocation": "./.yarn/cache/eslint-npm-9.16.0-62663df612-f36d12652c.zip/node_modules/eslint/",\ "packageDependencies": [\ - ["eslint", "npm:9.14.0"]\ + ["eslint", "npm:9.16.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0", {\ - "packageLocation": "./.yarn/__virtual__/eslint-virtual-75f5f3bd86/0/cache/eslint-npm-9.14.0-04ed57b338-e1cbf571b7.zip/node_modules/eslint/",\ + ["virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0", {\ + "packageLocation": "./.yarn/__virtual__/eslint-virtual-505b636198/0/cache/eslint-npm-9.16.0-62663df612-f36d12652c.zip/node_modules/eslint/",\ "packageDependencies": [\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ - ["@eslint-community/eslint-utils", "virtual:75f5f3bd86269d2dc4c5703baddfa0e0101eb5fd5cc7cab281fcdcf59e171fcb1c408e97818b2d543266db7acec87b269c781eb32fa6a979e8d24ed6d42cf9dd#npm:4.4.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ + ["@eslint-community/eslint-utils", "virtual:505b636198d210e0f206fa38a0ae0f7fe29d0c724f352c366e1288df99c0aa2cd6164337c234ec2ed973c68536359df249f394c924afd03ffbb1b63a3a7f7e78#npm:4.4.1"],\ ["@eslint-community/regexpp", "npm:4.12.1"],\ - ["@eslint/config-array", "npm:0.18.0"],\ - ["@eslint/core", "npm:0.7.0"],\ - ["@eslint/eslintrc", "npm:3.1.0"],\ - ["@eslint/js", "npm:9.14.0"],\ + ["@eslint/config-array", "npm:0.19.0"],\ + ["@eslint/core", "npm:0.9.0"],\ + ["@eslint/eslintrc", "npm:3.2.0"],\ + ["@eslint/js", "npm:9.16.0"],\ ["@eslint/plugin-kit", "npm:0.2.3"],\ ["@humanfs/node", "npm:0.16.6"],\ ["@humanwhocodes/module-importer", "npm:1.0.1"],\ @@ -6317,7 +6705,7 @@ const RAW_RUNTIME_STATE = ["ajv", "npm:6.12.6"],\ ["chalk", "npm:4.1.2"],\ ["cross-spawn", "npm:7.0.6"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ ["escape-string-regexp", "npm:4.0.0"],\ ["eslint-scope", "npm:8.2.0"],\ ["eslint-visitor-keys", "npm:4.2.0"],\ @@ -6336,8 +6724,7 @@ const RAW_RUNTIME_STATE = ["lodash.merge", "npm:4.6.2"],\ ["minimatch", "npm:3.1.2"],\ ["natural-compare", "npm:1.4.0"],\ - ["optionator", "npm:0.9.3"],\ - ["text-table", "npm:0.2.0"]\ + ["optionator", "npm:0.9.3"]\ ],\ "packagePeers": [\ "@types/jiti",\ @@ -6354,12 +6741,12 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:1eb64f578a694bb7b24903a5d8a30b2c09b8577b88c07cc271fe2a6f5be87a0c1cc8a438aeba065b64e2663ecde98aa4a823cb56a89e3589bb9740964cf8beb1#npm:0.5.1", {\ - "packageLocation": "./.yarn/__virtual__/eslint-compat-utils-virtual-8e494b1d51/0/cache/eslint-compat-utils-npm-0.5.1-f1f8ade49a-325e815205.zip/node_modules/eslint-compat-utils/",\ + ["virtual:81d60f2bb5f3e10fff136045bd216f4f221ee642fac552a167a1858c9be5bc07eeee79bb7a76a157881f3747cb3cbe1fa42828633e12c6abd8aa4302b184b51f#npm:0.5.1", {\ + "packageLocation": "./.yarn/__virtual__/eslint-compat-utils-virtual-f23ed5d1a8/0/cache/eslint-compat-utils-npm-0.5.1-f1f8ade49a-325e815205.zip/node_modules/eslint-compat-utils/",\ "packageDependencies": [\ - ["eslint-compat-utils", "virtual:1eb64f578a694bb7b24903a5d8a30b2c09b8577b88c07cc271fe2a6f5be87a0c1cc8a438aeba065b64e2663ecde98aa4a823cb56a89e3589bb9740964cf8beb1#npm:0.5.1"],\ + ["eslint-compat-utils", "virtual:81d60f2bb5f3e10fff136045bd216f4f221ee642fac552a167a1858c9be5bc07eeee79bb7a76a157881f3747cb3cbe1fa42828633e12c6abd8aa4302b184b51f#npm:0.5.1"],\ ["@types/eslint", null],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["semver", "npm:7.6.3"]\ ],\ "packagePeers": [\ @@ -6435,7 +6822,7 @@ const RAW_RUNTIME_STATE = ["@types/typescript-eslint__parser", null],\ ["@typescript-eslint/parser", null],\ ["debug", "virtual:2a426afc4b2eef43db12a540d29c2b5476640459bfcd5c24f86bb401cf8cce97e63bd81794d206a5643057e7f662643afd5ce3dfc4d4bfd8e706006c6309c5fa#npm:3.2.7"],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["eslint-import-resolver-alias", "virtual:453456e4e11df4d43ec4cdf3dd188a0cbf844792afe2c0f9eedbc81f1436f760ea40001ed276e87e2235bc8923699e32413e9c7b8fb8c7daa7dde1131e5bc716#npm:1.1.2"],\ ["eslint-import-resolver-node", "npm:0.3.9"],\ ["eslint-import-resolver-typescript", null],\ @@ -6464,15 +6851,15 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:1fec2585567df2baf4e6094c0c86eb9d84760be330b6fe6c669230e99e52c9f91ed9cf539f99613768b3d5b796d9537b3fcd8084459eb13edb773ff1a6ef7367#npm:7.8.0", {\ - "packageLocation": "./.yarn/__virtual__/eslint-plugin-es-x-virtual-1eb64f578a/0/cache/eslint-plugin-es-x-npm-7.8.0-8237bd972e-002fda8c02.zip/node_modules/eslint-plugin-es-x/",\ + ["virtual:142e6b391fd2fd0ce45e5810c2cb9c4824b2079a0fb8c9fcf4ef183c896dd8a677bcfeabdb0c1c7b5d34578fc52ae60caa37f066fc3957274538938e58556322#npm:7.8.0", {\ + "packageLocation": "./.yarn/__virtual__/eslint-plugin-es-x-virtual-81d60f2bb5/0/cache/eslint-plugin-es-x-npm-7.8.0-8237bd972e-002fda8c02.zip/node_modules/eslint-plugin-es-x/",\ "packageDependencies": [\ - ["eslint-plugin-es-x", "virtual:1fec2585567df2baf4e6094c0c86eb9d84760be330b6fe6c669230e99e52c9f91ed9cf539f99613768b3d5b796d9537b3fcd8084459eb13edb773ff1a6ef7367#npm:7.8.0"],\ - ["@eslint-community/eslint-utils", "virtual:75f5f3bd86269d2dc4c5703baddfa0e0101eb5fd5cc7cab281fcdcf59e171fcb1c408e97818b2d543266db7acec87b269c781eb32fa6a979e8d24ed6d42cf9dd#npm:4.4.0"],\ - ["@eslint-community/regexpp", "npm:4.11.1"],\ + ["eslint-plugin-es-x", "virtual:142e6b391fd2fd0ce45e5810c2cb9c4824b2079a0fb8c9fcf4ef183c896dd8a677bcfeabdb0c1c7b5d34578fc52ae60caa37f066fc3957274538938e58556322#npm:7.8.0"],\ + ["@eslint-community/eslint-utils", "virtual:505b636198d210e0f206fa38a0ae0f7fe29d0c724f352c366e1288df99c0aa2cd6164337c234ec2ed973c68536359df249f394c924afd03ffbb1b63a3a7f7e78#npm:4.4.1"],\ + ["@eslint-community/regexpp", "npm:4.12.1"],\ ["@types/eslint", null],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ - ["eslint-compat-utils", "virtual:1eb64f578a694bb7b24903a5d8a30b2c09b8577b88c07cc271fe2a6f5be87a0c1cc8a438aeba065b64e2663ecde98aa4a823cb56a89e3589bb9740964cf8beb1#npm:0.5.1"]\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ + ["eslint-compat-utils", "virtual:81d60f2bb5f3e10fff136045bd216f4f221ee642fac552a167a1858c9be5bc07eeee79bb7a76a157881f3747cb3cbe1fa42828633e12c6abd8aa4302b184b51f#npm:0.5.1"]\ ],\ "packagePeers": [\ "@types/eslint",\ @@ -6503,7 +6890,7 @@ const RAW_RUNTIME_STATE = ["array.prototype.flatmap", "npm:1.3.2"],\ ["debug", "virtual:2a426afc4b2eef43db12a540d29c2b5476640459bfcd5c24f86bb401cf8cce97e63bd81794d206a5643057e7f662643afd5ce3dfc4d4bfd8e706006c6309c5fa#npm:3.2.7"],\ ["doctrine", "npm:2.1.0"],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["eslint-import-resolver-node", "npm:0.3.9"],\ ["eslint-module-utils", "virtual:f694e85b0f470d314f9b8fa6f5ef5aa29545e737fcfdf9a1cb965cb1bcb594baaa7b13e14e123407ee5e296052e1eb403ae5e254d7a266c3346cf3623be70d52#npm:2.12.0"],\ ["hasown", "npm:2.0.2"],\ @@ -6539,7 +6926,7 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["eslint-plugin-import-newlines", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:1.4.0"],\ ["@types/eslint", null],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"]\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"]\ ],\ "packagePeers": [\ "@types/eslint",\ @@ -6564,8 +6951,8 @@ const RAW_RUNTIME_STATE = ["@types/jest", null],\ ["@types/typescript-eslint__eslint-plugin", null],\ ["@typescript-eslint/eslint-plugin", null],\ - ["@typescript-eslint/utils", "virtual:920265345ea4067faba4b79db8010284e5552da581ea1ebfc57c6b032c05d37984adc7407082d7cee117f52d1ce80786b7b4b16b270103e24f47bcc006895d57#npm:8.14.0"],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ + ["@typescript-eslint/utils", "virtual:920265345ea4067faba4b79db8010284e5552da581ea1ebfc57c6b032c05d37984adc7407082d7cee117f52d1ce80786b7b4b16b270103e24f47bcc006895d57#npm:8.16.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["jest", null]\ ],\ "packagePeers": [\ @@ -6586,8 +6973,8 @@ const RAW_RUNTIME_STATE = ["@types/jest", null],\ ["@types/typescript-eslint__eslint-plugin", null],\ ["@typescript-eslint/eslint-plugin", null],\ - ["@typescript-eslint/utils", "virtual:920265345ea4067faba4b79db8010284e5552da581ea1ebfc57c6b032c05d37984adc7407082d7cee117f52d1ce80786b7b4b16b270103e24f47bcc006895d57#npm:8.14.0"],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ + ["@typescript-eslint/utils", "virtual:920265345ea4067faba4b79db8010284e5552da581ea1ebfc57c6b032c05d37984adc7407082d7cee117f52d1ce80786b7b4b16b270103e24f47bcc006895d57#npm:8.16.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["jest", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:29.7.0"]\ ],\ "packagePeers": [\ @@ -6614,7 +7001,7 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["eslint-plugin-lodash", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:8.0.0"],\ ["@types/eslint", null],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["lodash", "npm:4.17.21"]\ ],\ "packagePeers": [\ @@ -6625,24 +7012,24 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["eslint-plugin-n", [\ - ["npm:17.13.1", {\ - "packageLocation": "./.yarn/cache/eslint-plugin-n-npm-17.13.1-4ace11339b-025c41aec2.zip/node_modules/eslint-plugin-n/",\ + ["npm:17.14.0", {\ + "packageLocation": "./.yarn/cache/eslint-plugin-n-npm-17.14.0-13dfb30aac-ad46415e0a.zip/node_modules/eslint-plugin-n/",\ "packageDependencies": [\ - ["eslint-plugin-n", "npm:17.13.1"]\ + ["eslint-plugin-n", "npm:17.14.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:2cd60cf0eaa713981ba4fa725786c0c033552df3256034933bfbc531f91f1e19a67d4585fd90dddd4cbfda26946bb4507e7bcd454aea524fed93c918b191ad1a#npm:17.13.1", {\ - "packageLocation": "./.yarn/__virtual__/eslint-plugin-n-virtual-1fec258556/0/cache/eslint-plugin-n-npm-17.13.1-4ace11339b-025c41aec2.zip/node_modules/eslint-plugin-n/",\ + ["virtual:2c68d35e10d2a1d87b97c098c954e239a6b668b29a265ea25d589d2f60a84618305d31b2fcab93275784bf31de0140bf2f813295024ee4148d7cd92c0a17f95e#npm:17.14.0", {\ + "packageLocation": "./.yarn/__virtual__/eslint-plugin-n-virtual-142e6b391f/0/cache/eslint-plugin-n-npm-17.14.0-13dfb30aac-ad46415e0a.zip/node_modules/eslint-plugin-n/",\ "packageDependencies": [\ - ["eslint-plugin-n", "virtual:2cd60cf0eaa713981ba4fa725786c0c033552df3256034933bfbc531f91f1e19a67d4585fd90dddd4cbfda26946bb4507e7bcd454aea524fed93c918b191ad1a#npm:17.13.1"],\ - ["@eslint-community/eslint-utils", "virtual:1fec2585567df2baf4e6094c0c86eb9d84760be330b6fe6c669230e99e52c9f91ed9cf539f99613768b3d5b796d9537b3fcd8084459eb13edb773ff1a6ef7367#npm:4.4.1"],\ + ["eslint-plugin-n", "virtual:2c68d35e10d2a1d87b97c098c954e239a6b668b29a265ea25d589d2f60a84618305d31b2fcab93275784bf31de0140bf2f813295024ee4148d7cd92c0a17f95e#npm:17.14.0"],\ + ["@eslint-community/eslint-utils", "virtual:505b636198d210e0f206fa38a0ae0f7fe29d0c724f352c366e1288df99c0aa2cd6164337c234ec2ed973c68536359df249f394c924afd03ffbb1b63a3a7f7e78#npm:4.4.1"],\ ["@types/eslint", null],\ ["enhanced-resolve", "npm:5.17.1"],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ - ["eslint-plugin-es-x", "virtual:1fec2585567df2baf4e6094c0c86eb9d84760be330b6fe6c669230e99e52c9f91ed9cf539f99613768b3d5b796d9537b3fcd8084459eb13edb773ff1a6ef7367#npm:7.8.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ + ["eslint-plugin-es-x", "virtual:142e6b391fd2fd0ce45e5810c2cb9c4824b2079a0fb8c9fcf4ef183c896dd8a677bcfeabdb0c1c7b5d34578fc52ae60caa37f066fc3957274538938e58556322#npm:7.8.0"],\ ["get-tsconfig", "npm:4.8.1"],\ - ["globals", "npm:15.11.0"],\ + ["globals", "npm:15.12.0"],\ ["ignore", "npm:5.3.2"],\ ["minimatch", "npm:9.0.5"],\ ["semver", "npm:7.6.3"]\ @@ -6662,12 +7049,12 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:2cd60cf0eaa713981ba4fa725786c0c033552df3256034933bfbc531f91f1e19a67d4585fd90dddd4cbfda26946bb4507e7bcd454aea524fed93c918b191ad1a#npm:7.1.0", {\ - "packageLocation": "./.yarn/__virtual__/eslint-plugin-promise-virtual-f6868d889e/0/cache/eslint-plugin-promise-npm-7.1.0-84a3fbeaa7-bbc3406139.zip/node_modules/eslint-plugin-promise/",\ + ["virtual:2c68d35e10d2a1d87b97c098c954e239a6b668b29a265ea25d589d2f60a84618305d31b2fcab93275784bf31de0140bf2f813295024ee4148d7cd92c0a17f95e#npm:7.1.0", {\ + "packageLocation": "./.yarn/__virtual__/eslint-plugin-promise-virtual-3833bb7d14/0/cache/eslint-plugin-promise-npm-7.1.0-84a3fbeaa7-bbc3406139.zip/node_modules/eslint-plugin-promise/",\ "packageDependencies": [\ - ["eslint-plugin-promise", "virtual:2cd60cf0eaa713981ba4fa725786c0c033552df3256034933bfbc531f91f1e19a67d4585fd90dddd4cbfda26946bb4507e7bcd454aea524fed93c918b191ad1a#npm:7.1.0"],\ + ["eslint-plugin-promise", "virtual:2c68d35e10d2a1d87b97c098c954e239a6b668b29a265ea25d589d2f60a84618305d31b2fcab93275784bf31de0140bf2f813295024ee4148d7cd92c0a17f95e#npm:7.1.0"],\ ["@types/eslint", null],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"]\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"]\ ],\ "packagePeers": [\ "@types/eslint",\ @@ -6684,10 +7071,10 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:2cd60cf0eaa713981ba4fa725786c0c033552df3256034933bfbc531f91f1e19a67d4585fd90dddd4cbfda26946bb4507e7bcd454aea524fed93c918b191ad1a#npm:7.37.2", {\ - "packageLocation": "./.yarn/__virtual__/eslint-plugin-react-virtual-e11429b2f8/0/cache/eslint-plugin-react-npm-7.37.2-9fdf577e3b-01c498f263.zip/node_modules/eslint-plugin-react/",\ + ["virtual:2c68d35e10d2a1d87b97c098c954e239a6b668b29a265ea25d589d2f60a84618305d31b2fcab93275784bf31de0140bf2f813295024ee4148d7cd92c0a17f95e#npm:7.37.2", {\ + "packageLocation": "./.yarn/__virtual__/eslint-plugin-react-virtual-ada8184662/0/cache/eslint-plugin-react-npm-7.37.2-9fdf577e3b-01c498f263.zip/node_modules/eslint-plugin-react/",\ "packageDependencies": [\ - ["eslint-plugin-react", "virtual:2cd60cf0eaa713981ba4fa725786c0c033552df3256034933bfbc531f91f1e19a67d4585fd90dddd4cbfda26946bb4507e7bcd454aea524fed93c918b191ad1a#npm:7.37.2"],\ + ["eslint-plugin-react", "virtual:2c68d35e10d2a1d87b97c098c954e239a6b668b29a265ea25d589d2f60a84618305d31b2fcab93275784bf31de0140bf2f813295024ee4148d7cd92c0a17f95e#npm:7.37.2"],\ ["@types/eslint", null],\ ["array-includes", "npm:3.1.8"],\ ["array.prototype.findlast", "npm:1.2.5"],\ @@ -6695,7 +7082,7 @@ const RAW_RUNTIME_STATE = ["array.prototype.tosorted", "npm:1.1.4"],\ ["doctrine", "npm:2.1.0"],\ ["es-iterator-helpers", "npm:1.1.0"],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["estraverse", "npm:5.3.0"],\ ["hasown", "npm:2.0.2"],\ ["jsx-ast-utils", "npm:3.3.5"],\ @@ -6727,26 +7114,26 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["eslint-plugin-vue", [\ - ["npm:9.31.0", {\ - "packageLocation": "./.yarn/cache/eslint-plugin-vue-npm-9.31.0-a9853a4864-c87ab4d59b.zip/node_modules/eslint-plugin-vue/",\ + ["npm:9.32.0", {\ + "packageLocation": "./.yarn/cache/eslint-plugin-vue-npm-9.32.0-d0e1c9e520-6904094727.zip/node_modules/eslint-plugin-vue/",\ "packageDependencies": [\ - ["eslint-plugin-vue", "npm:9.31.0"]\ + ["eslint-plugin-vue", "npm:9.32.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:9.31.0", {\ - "packageLocation": "./.yarn/__virtual__/eslint-plugin-vue-virtual-a024ca6718/0/cache/eslint-plugin-vue-npm-9.31.0-a9853a4864-c87ab4d59b.zip/node_modules/eslint-plugin-vue/",\ + ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:9.32.0", {\ + "packageLocation": "./.yarn/__virtual__/eslint-plugin-vue-virtual-c9d62c683d/0/cache/eslint-plugin-vue-npm-9.32.0-d0e1c9e520-6904094727.zip/node_modules/eslint-plugin-vue/",\ "packageDependencies": [\ - ["eslint-plugin-vue", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:9.31.0"],\ - ["@eslint-community/eslint-utils", "virtual:75f5f3bd86269d2dc4c5703baddfa0e0101eb5fd5cc7cab281fcdcf59e171fcb1c408e97818b2d543266db7acec87b269c781eb32fa6a979e8d24ed6d42cf9dd#npm:4.4.0"],\ + ["eslint-plugin-vue", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:9.32.0"],\ + ["@eslint-community/eslint-utils", "virtual:505b636198d210e0f206fa38a0ae0f7fe29d0c724f352c366e1288df99c0aa2cd6164337c234ec2ed973c68536359df249f394c924afd03ffbb1b63a3a7f7e78#npm:4.4.1"],\ ["@types/eslint", null],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["globals", "npm:13.24.0"],\ ["natural-compare", "npm:1.4.0"],\ ["nth-check", "npm:2.1.1"],\ ["postcss-selector-parser", "npm:6.0.16"],\ ["semver", "npm:7.6.3"],\ - ["vue-eslint-parser", "virtual:a024ca6718f3d4e2f10d9f4da92daff413b2c43406947ec04f0c155d7fc67ff922d1219994ee80d3b95769b0c83c3a8f4f765c3cf56f0530ced52bdf439d9cd4#npm:9.4.3"],\ + ["vue-eslint-parser", "virtual:c9d62c683db9866baf93fe204e0be02239d925503e6c08857aef434ba2715b3199f346826bb259a30355db94308a5504f756bdce8adfc6753007a40d5796104b#npm:9.4.3"],\ ["xml-name-validator", "npm:4.0.0"]\ ],\ "packagePeers": [\ @@ -6807,7 +7194,7 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["espree", "npm:10.3.0"],\ ["acorn", "npm:8.14.0"],\ - ["acorn-jsx", "virtual:e5b10052f5b961a2f38f3edbfbbcd7baf074e555f688eaf63695fed94838b848c6291487952754e262c19f60bf34d659b71e3d5260e2ea073949e1b6269dc165#npm:5.3.2"],\ + ["acorn-jsx", "virtual:a50722a5a9326b6a5f12350c494c4db3aa0f4caeac45e3e9e5fe071da20014ecfe738fe2ebe2c9c98abae81a4ea86b42f56d776b3bd5ec37f9ad3670c242b242#npm:5.3.2"],\ ["eslint-visitor-keys", "npm:4.2.0"]\ ],\ "linkType": "HARD"\ @@ -6817,7 +7204,7 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["espree", "npm:9.6.1"],\ ["acorn", "npm:8.14.0"],\ - ["acorn-jsx", "virtual:e5b10052f5b961a2f38f3edbfbbcd7baf074e555f688eaf63695fed94838b848c6291487952754e262c19f60bf34d659b71e3d5260e2ea073949e1b6269dc165#npm:5.3.2"],\ + ["acorn-jsx", "virtual:a50722a5a9326b6a5f12350c494c4db3aa0f4caeac45e3e9e5fe071da20014ecfe738fe2ebe2c9c98abae81a4ea86b42f56d776b3bd5ec37f9ad3670c242b242#npm:5.3.2"],\ ["eslint-visitor-keys", "npm:3.4.3"]\ ],\ "linkType": "HARD"\ @@ -6873,7 +7260,7 @@ const RAW_RUNTIME_STATE = "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"]\ + ["@types/estree", "npm:1.0.6"]\ ],\ "linkType": "HARD"\ }]\ @@ -7144,6 +7531,14 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["file-entry-cache", [\ + ["npm:6.0.1", {\ + "packageLocation": "./.yarn/cache/file-entry-cache-npm-6.0.1-31965cf0af-58473e8a82.zip/node_modules/file-entry-cache/",\ + "packageDependencies": [\ + ["file-entry-cache", "npm:6.0.1"],\ + ["flat-cache", "npm:3.2.0"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:8.0.0", {\ "packageLocation": "./.yarn/cache/file-entry-cache-npm-8.0.0-5b09d19a83-9e2b5938b1.zip/node_modules/file-entry-cache/",\ "packageDependencies": [\ @@ -7200,6 +7595,16 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["flat-cache", [\ + ["npm:3.2.0", {\ + "packageLocation": "./.yarn/cache/flat-cache-npm-3.2.0-9a887f084e-b76f611bd5.zip/node_modules/flat-cache/",\ + "packageDependencies": [\ + ["flat-cache", "npm:3.2.0"],\ + ["flatted", "npm:3.3.1"],\ + ["keyv", "npm:4.5.4"],\ + ["rimraf", "npm:3.0.2"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:4.0.1", {\ "packageLocation": "./.yarn/cache/flat-cache-npm-4.0.1-12bf2455f7-2c59d93e9f.zip/node_modules/flat-cache/",\ "packageDependencies": [\ @@ -7404,7 +7809,8 @@ const RAW_RUNTIME_STATE = "packageLocation": "./",\ "packageDependencies": [\ ["gardener-dashboard", "workspace:."],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ + ["@microsoft/eslint-formatter-sarif", "npm:3.1.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["jest", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:29.7.0"],\ ["node-gyp", "npm:9.4.0"]\ ],\ @@ -7596,13 +8002,6 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ - ["npm:15.11.0", {\ - "packageLocation": "./.yarn/cache/globals-npm-15.11.0-336de1c0c2-861e39bb6b.zip/node_modules/globals/",\ - "packageDependencies": [\ - ["globals", "npm:15.11.0"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:15.12.0", {\ "packageLocation": "./.yarn/cache/globals-npm-15.12.0-998488f877-f34e0a1845.zip/node_modules/globals/",\ "packageDependencies": [\ @@ -7832,7 +8231,7 @@ const RAW_RUNTIME_STATE = ["http-proxy-agent", "npm:5.0.0"],\ ["@tootallnate/once", "npm:2.0.0"],\ ["agent-base", "npm:6.0.2"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"]\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"]\ ],\ "linkType": "HARD"\ }],\ @@ -7841,7 +8240,7 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["http-proxy-agent", "npm:7.0.2"],\ ["agent-base", "npm:7.1.0"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"]\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"]\ ],\ "linkType": "HARD"\ }]\ @@ -7852,7 +8251,7 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["https-proxy-agent", "npm:5.0.1"],\ ["agent-base", "npm:6.0.2"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"]\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"]\ ],\ "linkType": "HARD"\ }],\ @@ -7861,7 +8260,7 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["https-proxy-agent", "npm:7.0.5"],\ ["agent-base", "npm:7.1.0"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"]\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"]\ ],\ "linkType": "HARD"\ }]\ @@ -8060,16 +8459,6 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ - ["is-binary-path", [\ - ["npm:2.1.0", {\ - "packageLocation": "./.yarn/cache/is-binary-path-npm-2.1.0-e61d46f557-a16eaee59a.zip/node_modules/is-binary-path/",\ - "packageDependencies": [\ - ["is-binary-path", "npm:2.1.0"],\ - ["binary-extensions", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ ["is-blank", [\ ["npm:2.1.0", {\ "packageLocation": "./.yarn/cache/is-blank-npm-2.1.0-76988a6c1e-a1c7545e8a.zip/node_modules/is-blank/",\ @@ -8271,6 +8660,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["is-path-inside", [\ + ["npm:3.0.3", {\ + "packageLocation": "./.yarn/cache/is-path-inside-npm-3.0.3-2ea0ef44fd-cf7d4ac35f.zip/node_modules/is-path-inside/",\ + "packageDependencies": [\ + ["is-path-inside", "npm:3.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["is-plain-object", [\ ["npm:5.0.0", {\ "packageLocation": "./.yarn/cache/is-plain-object-npm-5.0.0-285b70faa3-893e42bad8.zip/node_modules/is-plain-object/",\ @@ -8477,7 +8875,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./.yarn/cache/istanbul-lib-source-maps-npm-4.0.1-af0f859df7-19e4cc4050.zip/node_modules/istanbul-lib-source-maps/",\ "packageDependencies": [\ ["istanbul-lib-source-maps", "npm:4.0.1"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ ["istanbul-lib-coverage", "npm:3.2.2"],\ ["source-map", "npm:0.6.1"]\ ],\ @@ -8488,7 +8886,7 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["istanbul-lib-source-maps", "npm:5.0.6"],\ ["@jridgewell/trace-mapping", "npm:0.3.25"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ ["istanbul-lib-coverage", "npm:3.2.2"]\ ],\ "linkType": "HARD"\ @@ -9144,6 +9542,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["jschardet", [\ + ["npm:3.1.4", {\ + "packageLocation": "./.yarn/cache/jschardet-npm-3.1.4-27880c8e9a-d72c724ff6.zip/node_modules/jschardet/",\ + "packageDependencies": [\ + ["jschardet", "npm:3.1.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["jsdom", [\ ["npm:25.0.1", {\ "packageLocation": "./.yarn/cache/jsdom-npm-25.0.1-ccbb1f9cda-6bda32a6df.zip/node_modules/jsdom/",\ @@ -9950,28 +10357,28 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["neostandard", [\ - ["npm:0.11.8", {\ - "packageLocation": "./.yarn/cache/neostandard-npm-0.11.8-3d87670818-c1b6860867.zip/node_modules/neostandard/",\ + ["npm:0.11.9", {\ + "packageLocation": "./.yarn/cache/neostandard-npm-0.11.9-4fbb305f00-c369db757b.zip/node_modules/neostandard/",\ "packageDependencies": [\ - ["neostandard", "npm:0.11.8"]\ + ["neostandard", "npm:0.11.9"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:0.11.8", {\ - "packageLocation": "./.yarn/__virtual__/neostandard-virtual-2cd60cf0ea/0/cache/neostandard-npm-0.11.8-3d87670818-c1b6860867.zip/node_modules/neostandard/",\ + ["virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:0.11.9", {\ + "packageLocation": "./.yarn/__virtual__/neostandard-virtual-2c68d35e10/0/cache/neostandard-npm-0.11.9-4fbb305f00-c369db757b.zip/node_modules/neostandard/",\ "packageDependencies": [\ - ["neostandard", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:0.11.8"],\ + ["neostandard", "virtual:feaa032e1ffbff8da5dad8429b8494744ade8373389ef8e26f3d1f1980ceff327ab996fdc7c1977df285edeb918372fa01d7c87d79c9d7218f8701c70203bfe5#npm:0.11.9"],\ ["@humanwhocodes/gitignore-to-minimatch", "npm:1.0.2"],\ - ["@stylistic/eslint-plugin", "virtual:2cd60cf0eaa713981ba4fa725786c0c033552df3256034933bfbc531f91f1e19a67d4585fd90dddd4cbfda26946bb4507e7bcd454aea524fed93c918b191ad1a#npm:2.10.1"],\ + ["@stylistic/eslint-plugin", "virtual:2c68d35e10d2a1d87b97c098c954e239a6b668b29a265ea25d589d2f60a84618305d31b2fcab93275784bf31de0140bf2f813295024ee4148d7cd92c0a17f95e#npm:2.11.0"],\ ["@types/eslint", null],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ - ["eslint-plugin-n", "virtual:2cd60cf0eaa713981ba4fa725786c0c033552df3256034933bfbc531f91f1e19a67d4585fd90dddd4cbfda26946bb4507e7bcd454aea524fed93c918b191ad1a#npm:17.13.1"],\ - ["eslint-plugin-promise", "virtual:2cd60cf0eaa713981ba4fa725786c0c033552df3256034933bfbc531f91f1e19a67d4585fd90dddd4cbfda26946bb4507e7bcd454aea524fed93c918b191ad1a#npm:7.1.0"],\ - ["eslint-plugin-react", "virtual:2cd60cf0eaa713981ba4fa725786c0c033552df3256034933bfbc531f91f1e19a67d4585fd90dddd4cbfda26946bb4507e7bcd454aea524fed93c918b191ad1a#npm:7.37.2"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ + ["eslint-plugin-n", "virtual:2c68d35e10d2a1d87b97c098c954e239a6b668b29a265ea25d589d2f60a84618305d31b2fcab93275784bf31de0140bf2f813295024ee4148d7cd92c0a17f95e#npm:17.14.0"],\ + ["eslint-plugin-promise", "virtual:2c68d35e10d2a1d87b97c098c954e239a6b668b29a265ea25d589d2f60a84618305d31b2fcab93275784bf31de0140bf2f813295024ee4148d7cd92c0a17f95e#npm:7.1.0"],\ + ["eslint-plugin-react", "virtual:2c68d35e10d2a1d87b97c098c954e239a6b668b29a265ea25d589d2f60a84618305d31b2fcab93275784bf31de0140bf2f813295024ee4148d7cd92c0a17f95e#npm:7.37.2"],\ ["find-up", "npm:5.0.0"],\ ["globals", "npm:15.12.0"],\ ["peowly", "npm:1.3.2"],\ - ["typescript-eslint", "virtual:2cd60cf0eaa713981ba4fa725786c0c033552df3256034933bfbc531f91f1e19a67d4585fd90dddd4cbfda26946bb4507e7bcd454aea524fed93c918b191ad1a#npm:8.14.0"]\ + ["typescript-eslint", "virtual:2c68d35e10d2a1d87b97c098c954e239a6b668b29a265ea25d589d2f60a84618305d31b2fcab93275784bf31de0140bf2f813295024ee4148d7cd92c0a17f95e#npm:8.16.0"]\ ],\ "packagePeers": [\ "@types/eslint",\ @@ -10612,13 +11019,6 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["picocolors", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/picocolors-npm-1.1.0-ea12a640bd-86946f6032.zip/node_modules/picocolors/",\ - "packageDependencies": [\ - ["picocolors", "npm:1.1.0"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:1.1.1", {\ "packageLocation": "./.yarn/cache/picocolors-npm-1.1.1-4fede47cf1-e2e3e8170a.zip/node_modules/picocolors/",\ "packageDependencies": [\ @@ -10644,23 +11044,23 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["pinia", [\ - ["npm:2.2.6", {\ - "packageLocation": "./.yarn/cache/pinia-npm-2.2.6-6008fe9f85-2158513467.zip/node_modules/pinia/",\ + ["npm:2.2.8", {\ + "packageLocation": "./.yarn/cache/pinia-npm-2.2.8-eafd9224a8-afcaba1308.zip/node_modules/pinia/",\ "packageDependencies": [\ - ["pinia", "npm:2.2.6"]\ + ["pinia", "npm:2.2.8"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.2.6", {\ - "packageLocation": "./.yarn/__virtual__/pinia-virtual-0cde3a3803/0/cache/pinia-npm-2.2.6-6008fe9f85-2158513467.zip/node_modules/pinia/",\ + ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.2.8", {\ + "packageLocation": "./.yarn/__virtual__/pinia-virtual-456b075fb7/0/cache/pinia-npm-2.2.8-eafd9224a8-afcaba1308.zip/node_modules/pinia/",\ "packageDependencies": [\ - ["pinia", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.2.6"],\ + ["pinia", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.2.8"],\ ["@types/typescript", null],\ ["@types/vue", null],\ ["@types/vue__composition-api", null],\ ["@vue/composition-api", null],\ ["@vue/devtools-api", "npm:6.6.4"],\ - ["typescript", "patch:typescript@npm%3A5.6.3#optional!builtin::version=5.6.3&hash=8c6c40"],\ + ["typescript", "patch:typescript@npm%3A5.7.2#optional!builtin::version=5.7.2&hash=5786d5"],\ ["vue", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.5.13"],\ ["vue-demi", "virtual:288f2302e0270881b9fa9da047ab9df8cf089377e83a74b84a0c9e0b8e9e6d231f762cfaf440eaf471c10b65a17e4fa71a06f56de831d2a6bff724e6c95ba807#npm:0.14.10"]\ ],\ @@ -10704,16 +11104,6 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["postcss", [\ - ["npm:8.4.47", {\ - "packageLocation": "./.yarn/cache/postcss-npm-8.4.47-2f4d4be1fa-929f68b508.zip/node_modules/postcss/",\ - "packageDependencies": [\ - ["postcss", "npm:8.4.47"],\ - ["nanoid", "npm:3.3.7"],\ - ["picocolors", "npm:1.1.0"],\ - ["source-map-js", "npm:1.2.1"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:8.4.49", {\ "packageLocation": "./.yarn/cache/postcss-npm-8.4.49-1c13833dd1-f1b3f17aaf.zip/node_modules/postcss/",\ "packageDependencies": [\ @@ -10910,14 +11300,6 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["readdirp", [\ - ["npm:3.6.0", {\ - "packageLocation": "./.yarn/cache/readdirp-npm-3.6.0-f950cc74ab-6fa848cf63.zip/node_modules/readdirp/",\ - "packageDependencies": [\ - ["readdirp", "npm:3.6.0"],\ - ["picomatch", "npm:2.3.1"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:4.0.1", {\ "packageLocation": "./.yarn/cache/readdirp-npm-4.0.1-17b55c8032-e5a0b54701.zip/node_modules/readdirp/",\ "packageDependencies": [\ @@ -11138,6 +11520,33 @@ const RAW_RUNTIME_STATE = ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:4.28.0", {\ + "packageLocation": "./.yarn/cache/rollup-npm-4.28.0-f6897d3252-98d3bc2b78.zip/node_modules/rollup/",\ + "packageDependencies": [\ + ["rollup", "npm:4.28.0"],\ + ["@rollup/rollup-android-arm-eabi", "npm:4.28.0"],\ + ["@rollup/rollup-android-arm64", "npm:4.28.0"],\ + ["@rollup/rollup-darwin-arm64", "npm:4.28.0"],\ + ["@rollup/rollup-darwin-x64", "npm:4.28.0"],\ + ["@rollup/rollup-freebsd-arm64", "npm:4.28.0"],\ + ["@rollup/rollup-freebsd-x64", "npm:4.28.0"],\ + ["@rollup/rollup-linux-arm-gnueabihf", "npm:4.28.0"],\ + ["@rollup/rollup-linux-arm-musleabihf", "npm:4.28.0"],\ + ["@rollup/rollup-linux-arm64-gnu", "npm:4.28.0"],\ + ["@rollup/rollup-linux-arm64-musl", "npm:4.28.0"],\ + ["@rollup/rollup-linux-powerpc64le-gnu", "npm:4.28.0"],\ + ["@rollup/rollup-linux-riscv64-gnu", "npm:4.28.0"],\ + ["@rollup/rollup-linux-s390x-gnu", "npm:4.28.0"],\ + ["@rollup/rollup-linux-x64-gnu", "npm:4.28.0"],\ + ["@rollup/rollup-linux-x64-musl", "npm:4.28.0"],\ + ["@rollup/rollup-win32-arm64-msvc", "npm:4.28.0"],\ + ["@rollup/rollup-win32-ia32-msvc", "npm:4.28.0"],\ + ["@rollup/rollup-win32-x64-msvc", "npm:4.28.0"],\ + ["@types/estree", "npm:1.0.6"],\ + ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["rollup-plugin-visualizer", [\ @@ -11255,7 +11664,7 @@ const RAW_RUNTIME_STATE = ["htmlparser2", "npm:8.0.2"],\ ["is-plain-object", "npm:5.0.0"],\ ["parse-srcset", "npm:1.0.2"],\ - ["postcss", "npm:8.4.47"]\ + ["postcss", "npm:8.4.49"]\ ],\ "linkType": "HARD"\ }]\ @@ -11503,7 +11912,7 @@ const RAW_RUNTIME_STATE = ["accepts", "npm:1.3.8"],\ ["base64id", "npm:2.0.0"],\ ["cors", "npm:2.8.5"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ ["engine.io", "npm:6.6.1"],\ ["socket.io-adapter", "npm:2.5.2"],\ ["socket.io-parser", "npm:4.2.4"]\ @@ -11527,7 +11936,7 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["socket.io-client", "npm:4.8.1"],\ ["@socket.io/component-emitter", "npm:3.1.0"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ ["engine.io-client", "npm:6.6.1"],\ ["socket.io-parser", "npm:4.2.4"]\ ],\ @@ -11540,7 +11949,7 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["socket.io-parser", "npm:4.2.4"],\ ["@socket.io/component-emitter", "npm:3.1.0"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"]\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"]\ ],\ "linkType": "HARD"\ }]\ @@ -11562,7 +11971,7 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["socks-proxy-agent", "npm:7.0.0"],\ ["agent-base", "npm:6.0.2"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ ["socks", "npm:2.7.1"]\ ],\ "linkType": "HARD"\ @@ -11859,7 +12268,7 @@ const RAW_RUNTIME_STATE = ["superagent", "npm:9.0.1"],\ ["component-emitter", "npm:1.3.0"],\ ["cookiejar", "npm:2.1.4"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ ["fast-safe-stringify", "npm:2.1.1"],\ ["form-data", "npm:4.0.0"],\ ["formidable", "npm:3.5.1"],\ @@ -12138,10 +12547,10 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:063f2f386e3d109def5978f627ffc342085a4e7b9fd35ec9e722fc724291f1cada0c14fe163196edf0f5a9104b7e5d933d72110733dafec9f5b84d13d2fe59be#npm:1.3.0", {\ - "packageLocation": "./.yarn/__virtual__/ts-api-utils-virtual-a8ade265cb/0/cache/ts-api-utils-npm-1.3.0-33457908f8-f54a0ba9ed.zip/node_modules/ts-api-utils/",\ + ["virtual:3498b7bde123c0ac6506d37c42ced8993d72f0576d51ebc35284307a1408b8707da2bab0329ff673d8b6fac169e3473a254609c98c8c23894457bf1ca168d381#npm:1.3.0", {\ + "packageLocation": "./.yarn/__virtual__/ts-api-utils-virtual-903df7be9c/0/cache/ts-api-utils-npm-1.3.0-33457908f8-f54a0ba9ed.zip/node_modules/ts-api-utils/",\ "packageDependencies": [\ - ["ts-api-utils", "virtual:063f2f386e3d109def5978f627ffc342085a4e7b9fd35ec9e722fc724291f1cada0c14fe163196edf0f5a9104b7e5d933d72110733dafec9f5b84d13d2fe59be#npm:1.3.0"],\ + ["ts-api-utils", "virtual:3498b7bde123c0ac6506d37c42ced8993d72f0576d51ebc35284307a1408b8707da2bab0329ff673d8b6fac169e3473a254609c98c8c23894457bf1ca168d381#npm:1.3.0"],\ ["@types/typescript", null],\ ["typescript", null]\ ],\ @@ -12150,6 +12559,19 @@ const RAW_RUNTIME_STATE = "typescript"\ ],\ "linkType": "HARD"\ + }],\ + ["virtual:55f6aa6ba5ea27ade9ea385c70ad26e5dd5601eb5a68c69ca92d4f1add51b8be7e49f1fefe947b7474dbf9a0b59413215724434521ecbc671f2db3f40e215b05#npm:1.3.0", {\ + "packageLocation": "./.yarn/__virtual__/ts-api-utils-virtual-195b301816/0/cache/ts-api-utils-npm-1.3.0-33457908f8-f54a0ba9ed.zip/node_modules/ts-api-utils/",\ + "packageDependencies": [\ + ["ts-api-utils", "virtual:55f6aa6ba5ea27ade9ea385c70ad26e5dd5601eb5a68c69ca92d4f1add51b8be7e49f1fefe947b7474dbf9a0b59413215724434521ecbc671f2db3f40e215b05#npm:1.3.0"],\ + ["@types/typescript", null],\ + ["typescript", "patch:typescript@npm%3A5.7.2#optional!builtin::version=5.7.2&hash=5786d5"]\ + ],\ + "packagePeers": [\ + "@types/typescript",\ + "typescript"\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["tsconfig-paths", [\ @@ -12268,34 +12690,38 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["typescript", [\ - ["patch:typescript@npm%3A5.6.3#optional!builtin::version=5.6.3&hash=8c6c40", {\ - "packageLocation": "./.yarn/cache/typescript-patch-8964a48ba3-7c9d2e07c8.zip/node_modules/typescript/",\ + ["patch:typescript@npm%3A5.7.2#optional!builtin::version=5.7.2&hash=5786d5", {\ + "packageLocation": "./.yarn/cache/typescript-patch-aed9e5263d-f3b8082c9d.zip/node_modules/typescript/",\ "packageDependencies": [\ - ["typescript", "patch:typescript@npm%3A5.6.3#optional!builtin::version=5.6.3&hash=8c6c40"]\ + ["typescript", "patch:typescript@npm%3A5.7.2#optional!builtin::version=5.7.2&hash=5786d5"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["typescript-eslint", [\ - ["npm:8.14.0", {\ - "packageLocation": "./.yarn/cache/typescript-eslint-npm-8.14.0-62bf6f4e6f-b9c2f32139.zip/node_modules/typescript-eslint/",\ + ["npm:8.16.0", {\ + "packageLocation": "./.yarn/cache/typescript-eslint-npm-8.16.0-c3928b5381-3da9401d6c.zip/node_modules/typescript-eslint/",\ "packageDependencies": [\ - ["typescript-eslint", "npm:8.14.0"]\ + ["typescript-eslint", "npm:8.16.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:2cd60cf0eaa713981ba4fa725786c0c033552df3256034933bfbc531f91f1e19a67d4585fd90dddd4cbfda26946bb4507e7bcd454aea524fed93c918b191ad1a#npm:8.14.0", {\ - "packageLocation": "./.yarn/__virtual__/typescript-eslint-virtual-1a36937858/0/cache/typescript-eslint-npm-8.14.0-62bf6f4e6f-b9c2f32139.zip/node_modules/typescript-eslint/",\ + ["virtual:2c68d35e10d2a1d87b97c098c954e239a6b668b29a265ea25d589d2f60a84618305d31b2fcab93275784bf31de0140bf2f813295024ee4148d7cd92c0a17f95e#npm:8.16.0", {\ + "packageLocation": "./.yarn/__virtual__/typescript-eslint-virtual-c90490f931/0/cache/typescript-eslint-npm-8.16.0-c3928b5381-3da9401d6c.zip/node_modules/typescript-eslint/",\ "packageDependencies": [\ - ["typescript-eslint", "virtual:2cd60cf0eaa713981ba4fa725786c0c033552df3256034933bfbc531f91f1e19a67d4585fd90dddd4cbfda26946bb4507e7bcd454aea524fed93c918b191ad1a#npm:8.14.0"],\ + ["typescript-eslint", "virtual:2c68d35e10d2a1d87b97c098c954e239a6b668b29a265ea25d589d2f60a84618305d31b2fcab93275784bf31de0140bf2f813295024ee4148d7cd92c0a17f95e#npm:8.16.0"],\ + ["@types/eslint", null],\ ["@types/typescript", null],\ - ["@typescript-eslint/eslint-plugin", "virtual:1a3693785837ec7f2b3cc8f1d7724e37322656cfdc683e756003f39dfab0e2a9ff106b99415234e4241ae19a32e068c991f260afda3f65e447a69b8107f42459#npm:8.14.0"],\ - ["@typescript-eslint/parser", "virtual:1a3693785837ec7f2b3cc8f1d7724e37322656cfdc683e756003f39dfab0e2a9ff106b99415234e4241ae19a32e068c991f260afda3f65e447a69b8107f42459#npm:8.14.0"],\ - ["@typescript-eslint/utils", "virtual:1a3693785837ec7f2b3cc8f1d7724e37322656cfdc683e756003f39dfab0e2a9ff106b99415234e4241ae19a32e068c991f260afda3f65e447a69b8107f42459#npm:8.14.0"],\ + ["@typescript-eslint/eslint-plugin", "virtual:c90490f9318b04f1979e99a4d300bda4592adb2caa2466d406ab3f64618503715099ecb2f1896c1d7191003efba539a937c77adc2431c3fdbfa7b1c1473bb425#npm:8.16.0"],\ + ["@typescript-eslint/parser", "virtual:c90490f9318b04f1979e99a4d300bda4592adb2caa2466d406ab3f64618503715099ecb2f1896c1d7191003efba539a937c77adc2431c3fdbfa7b1c1473bb425#npm:8.16.0"],\ + ["@typescript-eslint/utils", "virtual:920265345ea4067faba4b79db8010284e5552da581ea1ebfc57c6b032c05d37984adc7407082d7cee117f52d1ce80786b7b4b16b270103e24f47bcc006895d57#npm:8.16.0"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["typescript", null]\ ],\ "packagePeers": [\ + "@types/eslint",\ "@types/typescript",\ + "eslint",\ "typescript"\ ],\ "linkType": "HARD"\ @@ -12384,36 +12810,34 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["unplugin", [\ - ["npm:1.5.0", {\ - "packageLocation": "./.yarn/cache/unplugin-npm-1.5.0-68dc40f221-2f79a7bf6b.zip/node_modules/unplugin/",\ + ["npm:2.0.0-beta.1", {\ + "packageLocation": "./.yarn/cache/unplugin-npm-2.0.0-beta.1-e18fb615d4-4a700c9fc5.zip/node_modules/unplugin/",\ "packageDependencies": [\ - ["unplugin", "npm:1.5.0"],\ + ["unplugin", "npm:2.0.0-beta.1"],\ ["acorn", "npm:8.14.0"],\ - ["chokidar", "npm:3.6.0"],\ - ["webpack-sources", "npm:3.2.3"],\ - ["webpack-virtual-modules", "npm:0.5.0"]\ + ["webpack-virtual-modules", "npm:0.6.2"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["unplugin-fonts", [\ - ["npm:1.1.1", {\ - "packageLocation": "./.yarn/cache/unplugin-fonts-npm-1.1.1-baa4a11b0f-8bd2fd6320.zip/node_modules/unplugin-fonts/",\ + ["npm:1.3.1", {\ + "packageLocation": "./.yarn/cache/unplugin-fonts-npm-1.3.1-a9a065fad3-6be3c99618.zip/node_modules/unplugin-fonts/",\ "packageDependencies": [\ - ["unplugin-fonts", "npm:1.1.1"]\ + ["unplugin-fonts", "npm:1.3.1"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:1.1.1", {\ - "packageLocation": "./.yarn/__virtual__/unplugin-fonts-virtual-a356295ec0/0/cache/unplugin-fonts-npm-1.1.1-baa4a11b0f-8bd2fd6320.zip/node_modules/unplugin-fonts/",\ + ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:1.3.1", {\ + "packageLocation": "./.yarn/__virtual__/unplugin-fonts-virtual-05d4f03eb1/0/cache/unplugin-fonts-npm-1.3.1-a9a065fad3-6be3c99618.zip/node_modules/unplugin-fonts/",\ "packageDependencies": [\ - ["unplugin-fonts", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:1.1.1"],\ + ["unplugin-fonts", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:1.3.1"],\ ["@nuxt/kit", null],\ ["@types/nuxt__kit", null],\ ["@types/vite", null],\ ["fast-glob", "npm:3.3.2"],\ - ["unplugin", "npm:1.5.0"],\ - ["vite", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:5.4.11"]\ + ["unplugin", "npm:2.0.0-beta.1"],\ + ["vite", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:6.0.2"]\ ],\ "packagePeers": [\ "@nuxt/kit",\ @@ -12448,7 +12872,7 @@ const RAW_RUNTIME_STATE = ["@types/browserslist", null],\ ["browserslist", "npm:4.23.1"],\ ["escalade", "npm:3.1.2"],\ - ["picocolors", "npm:1.1.0"]\ + ["picocolors", "npm:1.1.1"]\ ],\ "packagePeers": [\ "@types/browserslist",\ @@ -12476,6 +12900,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["utf8", [\ + ["npm:3.0.0", {\ + "packageLocation": "./.yarn/cache/utf8-npm-3.0.0-7c39b5994a-675d008bab.zip/node_modules/utf8/",\ + "packageDependencies": [\ + ["utf8", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["util-deprecate", [\ ["npm:1.0.2", {\ "packageLocation": "./.yarn/cache/util-deprecate-npm-1.0.2-e3fe1a219c-41a5bdd214.zip/node_modules/util-deprecate/",\ @@ -12532,10 +12965,17 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:5.4.11", {\ - "packageLocation": "./.yarn/__virtual__/vite-virtual-9a33338d6c/0/cache/vite-npm-5.4.11-9da365ef2b-d536bb7af5.zip/node_modules/vite/",\ + ["npm:6.0.2", {\ + "packageLocation": "./.yarn/cache/vite-npm-6.0.2-1676a36381-45fc609f2b.zip/node_modules/vite/",\ + "packageDependencies": [\ + ["vite", "npm:6.0.2"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:10f2ba4ae90d27c09d74a5abb39ede5709da333be852a8f676b6e3c7c73803b099e917de6683463d3ce1350061207af4f521041e096756e1faa9c17df832f56e#npm:5.4.11", {\ + "packageLocation": "./.yarn/__virtual__/vite-virtual-ad01bfb572/0/cache/vite-npm-5.4.11-9da365ef2b-d536bb7af5.zip/node_modules/vite/",\ "packageDependencies": [\ - ["vite", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:5.4.11"],\ + ["vite", "virtual:10f2ba4ae90d27c09d74a5abb39ede5709da333be852a8f676b6e3c7c73803b099e917de6683463d3ce1350061207af4f521041e096756e1faa9c17df832f56e#npm:5.4.11"],\ ["@types/less", null],\ ["@types/lightningcss", null],\ ["@types/node", null],\ @@ -12548,9 +12988,9 @@ const RAW_RUNTIME_STATE = ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"],\ ["less", null],\ ["lightningcss", null],\ - ["postcss", "npm:8.4.47"],\ + ["postcss", "npm:8.4.49"],\ ["rollup", "npm:4.22.4"],\ - ["sass", "npm:1.79.6"],\ + ["sass", null],\ ["sass-embedded", null],\ ["stylus", null],\ ["sugarss", null],\ @@ -12575,10 +13015,11 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ - ["virtual:f85ba9fa72068bf8096204dd701022833b50e5163de486fde29c274211df90867d059a33880e35e32179f37e0a2edb2df80efde8b3f955d2eb21a5251bf6eca9#npm:5.4.11", {\ - "packageLocation": "./.yarn/__virtual__/vite-virtual-1ebba44f45/0/cache/vite-npm-5.4.11-9da365ef2b-d536bb7af5.zip/node_modules/vite/",\ + ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:6.0.2", {\ + "packageLocation": "./.yarn/__virtual__/vite-virtual-abff638ede/0/cache/vite-npm-6.0.2-1676a36381-45fc609f2b.zip/node_modules/vite/",\ "packageDependencies": [\ - ["vite", "virtual:f85ba9fa72068bf8096204dd701022833b50e5163de486fde29c274211df90867d059a33880e35e32179f37e0a2edb2df80efde8b3f955d2eb21a5251bf6eca9#npm:5.4.11"],\ + ["vite", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:6.0.2"],\ + ["@types/jiti", null],\ ["@types/less", null],\ ["@types/lightningcss", null],\ ["@types/node", null],\ @@ -12587,19 +13028,25 @@ const RAW_RUNTIME_STATE = ["@types/stylus", null],\ ["@types/sugarss", null],\ ["@types/terser", null],\ - ["esbuild", "npm:0.21.5"],\ + ["@types/tsx", null],\ + ["@types/yaml", null],\ + ["esbuild", "npm:0.24.0"],\ ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"],\ + ["jiti", null],\ ["less", null],\ ["lightningcss", null],\ - ["postcss", "npm:8.4.47"],\ - ["rollup", "npm:4.22.4"],\ - ["sass", null],\ + ["postcss", "npm:8.4.49"],\ + ["rollup", "npm:4.28.0"],\ + ["sass", "npm:1.79.6"],\ ["sass-embedded", null],\ ["stylus", null],\ ["sugarss", null],\ - ["terser", null]\ + ["terser", null],\ + ["tsx", null],\ + ["yaml", null]\ ],\ "packagePeers": [\ + "@types/jiti",\ "@types/less",\ "@types/lightningcss",\ "@types/node",\ @@ -12608,27 +13055,32 @@ const RAW_RUNTIME_STATE = "@types/stylus",\ "@types/sugarss",\ "@types/terser",\ + "@types/tsx",\ + "@types/yaml",\ + "jiti",\ "less",\ "lightningcss",\ "sass-embedded",\ "sass",\ "stylus",\ "sugarss",\ - "terser"\ + "terser",\ + "tsx",\ + "yaml"\ ],\ "linkType": "HARD"\ }]\ ]],\ ["vite-node", [\ - ["npm:2.1.5", {\ - "packageLocation": "./.yarn/cache/vite-node-npm-2.1.5-f85ba9fa72-4ebe6bdf52.zip/node_modules/vite-node/",\ + ["npm:2.1.7", {\ + "packageLocation": "./.yarn/cache/vite-node-npm-2.1.7-10f2ba4ae9-bc404fe491.zip/node_modules/vite-node/",\ "packageDependencies": [\ - ["vite-node", "npm:2.1.5"],\ + ["vite-node", "npm:2.1.7"],\ ["cac", "npm:6.7.14"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ ["es-module-lexer", "npm:1.5.4"],\ ["pathe", "npm:1.1.2"],\ - ["vite", "virtual:f85ba9fa72068bf8096204dd701022833b50e5163de486fde29c274211df90867d059a33880e35e32179f37e0a2edb2df80efde8b3f955d2eb21a5251bf6eca9#npm:5.4.11"]\ + ["vite", "virtual:10f2ba4ae90d27c09d74a5abb39ede5709da333be852a8f676b6e3c7c73803b099e917de6683463d3ce1350061207af4f521041e096756e1faa9c17df832f56e#npm:5.4.11"]\ ],\ "linkType": "HARD"\ }]\ @@ -12647,9 +13099,9 @@ const RAW_RUNTIME_STATE = ["vite-plugin-compression", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:0.5.1"],\ ["@types/vite", null],\ ["chalk", "npm:4.1.2"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ ["fs-extra", "npm:10.1.0"],\ - ["vite", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:5.4.11"]\ + ["vite", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:6.0.2"]\ ],\ "packagePeers": [\ "@types/vite",\ @@ -12674,11 +13126,11 @@ const RAW_RUNTIME_STATE = ["@types/vue", null],\ ["@types/vuetify", null],\ ["@vuetify/loader-shared", "virtual:ea23a8df93e65142d9ef87192d46e1d9e2689b652a2ec753a4f2ebd3eaf77c0ecbdbe620395196bf97c6daac0a905e358e01fbd4bdb8fc763de76e11920403c7#npm:2.0.3"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ ["upath", "npm:2.0.1"],\ - ["vite", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:5.4.11"],\ + ["vite", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:6.0.2"],\ ["vue", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.5.13"],\ - ["vuetify", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.7.4"]\ + ["vuetify", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.7.5"]\ ],\ "packagePeers": [\ "@types/vite",\ @@ -12692,17 +13144,17 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["vitest", [\ - ["npm:2.1.5", {\ - "packageLocation": "./.yarn/cache/vitest-npm-2.1.5-61f3d3fb89-1befb842da.zip/node_modules/vitest/",\ + ["npm:2.1.7", {\ + "packageLocation": "./.yarn/cache/vitest-npm-2.1.7-ef7e9fd6ef-936842ed03.zip/node_modules/vitest/",\ "packageDependencies": [\ - ["vitest", "npm:2.1.5"]\ + ["vitest", "npm:2.1.7"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.5", {\ - "packageLocation": "./.yarn/__virtual__/vitest-virtual-f410c3b891/0/cache/vitest-npm-2.1.5-61f3d3fb89-1befb842da.zip/node_modules/vitest/",\ + ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.7", {\ + "packageLocation": "./.yarn/__virtual__/vitest-virtual-3bce10511e/0/cache/vitest-npm-2.1.7-ef7e9fd6ef-936842ed03.zip/node_modules/vitest/",\ "packageDependencies": [\ - ["vitest", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.5"],\ + ["vitest", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.7"],\ ["@edge-runtime/vm", null],\ ["@types/edge-runtime__vm", null],\ ["@types/happy-dom", null],\ @@ -12711,16 +13163,16 @@ const RAW_RUNTIME_STATE = ["@types/vitest__browser", null],\ ["@types/vitest__ui", null],\ ["@vitest/browser", null],\ - ["@vitest/expect", "npm:2.1.5"],\ - ["@vitest/mocker", "virtual:f410c3b891e32509409c8fa5cae2d9ad24ed32aeae71effd660afd512244f2da0a3e0c3c8d5e86ba018ac154fa42f2449ab2f8d3a516843bb00111462b0156e0#npm:2.1.5"],\ - ["@vitest/pretty-format", "npm:2.1.5"],\ - ["@vitest/runner", "npm:2.1.5"],\ - ["@vitest/snapshot", "npm:2.1.5"],\ - ["@vitest/spy", "npm:2.1.5"],\ - ["@vitest/ui", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.5"],\ - ["@vitest/utils", "npm:2.1.5"],\ + ["@vitest/expect", "npm:2.1.7"],\ + ["@vitest/mocker", "virtual:3bce10511eca1b71ba71eee5599716f7e5fcb863c18888a4d2ef1ad96d4c570a82a75ce13d99b172c149745686f5ef08c1529eabe15f2e49e2cda02b7d0f800b#npm:2.1.7"],\ + ["@vitest/pretty-format", "npm:2.1.7"],\ + ["@vitest/runner", "npm:2.1.7"],\ + ["@vitest/snapshot", "npm:2.1.7"],\ + ["@vitest/spy", "npm:2.1.7"],\ + ["@vitest/ui", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.7"],\ + ["@vitest/utils", "npm:2.1.7"],\ ["chai", "npm:5.1.2"],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ ["expect-type", "npm:1.1.0"],\ ["happy-dom", null],\ ["jsdom", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:25.0.1"],\ @@ -12731,8 +13183,8 @@ const RAW_RUNTIME_STATE = ["tinyexec", "npm:0.3.1"],\ ["tinypool", "npm:1.0.1"],\ ["tinyrainbow", "npm:1.2.0"],\ - ["vite", "virtual:f85ba9fa72068bf8096204dd701022833b50e5163de486fde29c274211df90867d059a33880e35e32179f37e0a2edb2df80efde8b3f955d2eb21a5251bf6eca9#npm:5.4.11"],\ - ["vite-node", "npm:2.1.5"],\ + ["vite", "virtual:10f2ba4ae90d27c09d74a5abb39ede5709da333be852a8f676b6e3c7c73803b099e917de6683463d3ce1350061207af4f521041e096756e1faa9c17df832f56e#npm:5.4.11"],\ + ["vite-node", "npm:2.1.7"],\ ["why-is-node-running", "npm:2.3.0"]\ ],\ "packagePeers": [\ @@ -12752,20 +13204,19 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["vitest-fetch-mock", [\ - ["npm:0.3.0", {\ - "packageLocation": "./.yarn/cache/vitest-fetch-mock-npm-0.3.0-b8e8ed5324-794a3ba957.zip/node_modules/vitest-fetch-mock/",\ + ["npm:0.4.2", {\ + "packageLocation": "./.yarn/cache/vitest-fetch-mock-npm-0.4.2-144cc23387-d583056cf4.zip/node_modules/vitest-fetch-mock/",\ "packageDependencies": [\ - ["vitest-fetch-mock", "npm:0.3.0"]\ + ["vitest-fetch-mock", "npm:0.4.2"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:0.3.0", {\ - "packageLocation": "./.yarn/__virtual__/vitest-fetch-mock-virtual-1fe7d38c11/0/cache/vitest-fetch-mock-npm-0.3.0-b8e8ed5324-794a3ba957.zip/node_modules/vitest-fetch-mock/",\ + ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:0.4.2", {\ + "packageLocation": "./.yarn/__virtual__/vitest-fetch-mock-virtual-a09a0c15c3/0/cache/vitest-fetch-mock-npm-0.4.2-144cc23387-d583056cf4.zip/node_modules/vitest-fetch-mock/",\ "packageDependencies": [\ - ["vitest-fetch-mock", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:0.3.0"],\ + ["vitest-fetch-mock", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:0.4.2"],\ ["@types/vitest", null],\ - ["cross-fetch", "npm:4.0.0"],\ - ["vitest", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.5"]\ + ["vitest", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.1.7"]\ ],\ "packagePeers": [\ "@types/vitest",\ @@ -12810,7 +13261,7 @@ const RAW_RUNTIME_STATE = ["@vue/runtime-dom", "npm:3.5.13"],\ ["@vue/server-renderer", "virtual:1bae6e28da29da65bc35a01ae0a7f1a74179de04aec7f481c632308265259c63d9203fc96d6fef9f57f593c31a541fc205e8e9604343de9742b9d415bb591211#npm:3.5.13"],\ ["@vue/shared", "npm:3.5.13"],\ - ["typescript", "patch:typescript@npm%3A5.6.3#optional!builtin::version=5.6.3&hash=8c6c40"]\ + ["typescript", "patch:typescript@npm%3A5.7.2#optional!builtin::version=5.7.2&hash=5786d5"]\ ],\ "packagePeers": [\ "@types/typescript",\ @@ -12826,7 +13277,7 @@ const RAW_RUNTIME_STATE = ["@vue/compiler-dom", "npm:3.5.13"],\ ["@vue/compiler-sfc", "npm:3.5.13"],\ ["@vue/runtime-dom", "npm:3.5.13"],\ - ["@vue/server-renderer", "virtual:33382e2c41b7662b4530f61f13128e650803dc0e0b463c70df98582286d9916aedcc1ddcea66f7173aeed4b6d89426fd18b06d214a5ba235ecd78137e9ea48dd#npm:3.5.13"],\ + ["@vue/server-renderer", "virtual:ec350e632119c2fa6aa4185d5fb2e6904d7c1f9cefb2603c234bc720b5a0490a22229e2320a7b46e1376c2f73972079ba6fa907f4b7e80df555b8cfccd6e5aa2#npm:3.5.13"],\ ["@vue/shared", "npm:3.5.13"],\ ["typescript", null]\ ],\ @@ -12904,13 +13355,13 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:a024ca6718f3d4e2f10d9f4da92daff413b2c43406947ec04f0c155d7fc67ff922d1219994ee80d3b95769b0c83c3a8f4f765c3cf56f0530ced52bdf439d9cd4#npm:9.4.3", {\ - "packageLocation": "./.yarn/__virtual__/vue-eslint-parser-virtual-31c6929198/0/cache/vue-eslint-parser-npm-9.4.3-4c23b90194-128be5988d.zip/node_modules/vue-eslint-parser/",\ + ["virtual:c9d62c683db9866baf93fe204e0be02239d925503e6c08857aef434ba2715b3199f346826bb259a30355db94308a5504f756bdce8adfc6753007a40d5796104b#npm:9.4.3", {\ + "packageLocation": "./.yarn/__virtual__/vue-eslint-parser-virtual-cfb69696f4/0/cache/vue-eslint-parser-npm-9.4.3-4c23b90194-128be5988d.zip/node_modules/vue-eslint-parser/",\ "packageDependencies": [\ - ["vue-eslint-parser", "virtual:a024ca6718f3d4e2f10d9f4da92daff413b2c43406947ec04f0c155d7fc67ff922d1219994ee80d3b95769b0c83c3a8f4f765c3cf56f0530ced52bdf439d9cd4#npm:9.4.3"],\ + ["vue-eslint-parser", "virtual:c9d62c683db9866baf93fe204e0be02239d925503e6c08857aef434ba2715b3199f346826bb259a30355db94308a5504f756bdce8adfc6753007a40d5796104b#npm:9.4.3"],\ ["@types/eslint", null],\ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.7"],\ - ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.14.0"],\ + ["debug", "virtual:1ff4b5f90832ba0a9c93ba1223af226e44ba70c1126a3740d93562b97bc36544e896a5e95908196f7458713e6a6089a34bfc67362fc6df7fa093bd06c878be47#npm:4.3.7"],\ + ["eslint", "virtual:f3f18773c1f2811e8d448670abfc3fed18cdffc11b444f7cbc3548ae5868e74f3c4ee449327c1fc9c24ce0732ee02505411a07539789bec8257188d17bbada1f#npm:9.16.0"],\ ["eslint-scope", "npm:7.2.2"],\ ["eslint-visitor-keys", "npm:3.4.3"],\ ["espree", "npm:9.6.1"],\ @@ -12971,22 +13422,22 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["vuetify", [\ - ["npm:3.7.4", {\ - "packageLocation": "./.yarn/cache/vuetify-npm-3.7.4-3441c0d205-75d9d90b01.zip/node_modules/vuetify/",\ + ["npm:3.7.5", {\ + "packageLocation": "./.yarn/cache/vuetify-npm-3.7.5-06252fed26-d5bbfea084.zip/node_modules/vuetify/",\ "packageDependencies": [\ - ["vuetify", "npm:3.7.4"]\ + ["vuetify", "npm:3.7.5"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.7.4", {\ - "packageLocation": "./.yarn/__virtual__/vuetify-virtual-d6a8404492/0/cache/vuetify-npm-3.7.4-3441c0d205-75d9d90b01.zip/node_modules/vuetify/",\ + ["virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.7.5", {\ + "packageLocation": "./.yarn/__virtual__/vuetify-virtual-a162f87c11/0/cache/vuetify-npm-3.7.5-06252fed26-d5bbfea084.zip/node_modules/vuetify/",\ "packageDependencies": [\ - ["vuetify", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.7.4"],\ + ["vuetify", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.7.5"],\ ["@types/typescript", null],\ ["@types/vite-plugin-vuetify", null],\ ["@types/vue", null],\ ["@types/webpack-plugin-vuetify", null],\ - ["typescript", "patch:typescript@npm%3A5.6.3#optional!builtin::version=5.6.3&hash=8c6c40"],\ + ["typescript", "patch:typescript@npm%3A5.7.2#optional!builtin::version=5.7.2&hash=5786d5"],\ ["vite-plugin-vuetify", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:2.0.4"],\ ["vue", "virtual:8d919ffb8fd728f827df3f6a566e8e923223ffcec68f7450d83bbbc2dc25d6b8c987e111cbab484b209f253bdf2f2e00663b01a986262c44511128466462a76f#npm:3.5.13"],\ ["webpack-plugin-vuetify", null]\ @@ -13068,20 +13519,11 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ - ["webpack-sources", [\ - ["npm:3.2.3", {\ - "packageLocation": "./.yarn/cache/webpack-sources-npm-3.2.3-6bfb5d9563-2ef63d77c4.zip/node_modules/webpack-sources/",\ - "packageDependencies": [\ - ["webpack-sources", "npm:3.2.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ ["webpack-virtual-modules", [\ - ["npm:0.5.0", {\ - "packageLocation": "./.yarn/cache/webpack-virtual-modules-npm-0.5.0-314fd879d0-0742e069cd.zip/node_modules/webpack-virtual-modules/",\ + ["npm:0.6.2", {\ + "packageLocation": "./.yarn/cache/webpack-virtual-modules-npm-0.6.2-6785315785-5ffbddf0e8.zip/node_modules/webpack-virtual-modules/",\ "packageDependencies": [\ - ["webpack-virtual-modules", "npm:0.5.0"]\ + ["webpack-virtual-modules", "npm:0.6.2"]\ ],\ "linkType": "HARD"\ }]\ diff --git a/.vscode/settings.json b/.vscode/settings.json index 9e2be5b674..d13991c98b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -30,12 +30,16 @@ ], "search.exclude": { "**/.pnp.*": true, - "**/.yarn": true, + "**/.yarn/*.*": true, + "**/.yarn/cache/**": true, + "**/.yarn/releases/**": true, + "**/.yarn/sdks/**": true, + "**/.yarn/unplugged/**": true, + "**/.yarn/versions/**": true, "**/dist": true }, "eslint.nodePath": ".yarn/sdks", "files.exclude": { - ".yarn": true, "logo": true, "LICENSES": true, "**/node_modules": true, diff --git a/.yarn/cache/@codemirror-language-npm-6.10.4-2d12a696df-46c2bda099.zip b/.yarn/cache/@codemirror-language-npm-6.10.6-46cac28271-8d68121659.zip similarity index 99% rename from .yarn/cache/@codemirror-language-npm-6.10.4-2d12a696df-46c2bda099.zip rename to .yarn/cache/@codemirror-language-npm-6.10.6-46cac28271-8d68121659.zip index 90c6fa5bd6..8883dd0acd 100644 Binary files a/.yarn/cache/@codemirror-language-npm-6.10.4-2d12a696df-46c2bda099.zip and b/.yarn/cache/@codemirror-language-npm-6.10.6-46cac28271-8d68121659.zip differ diff --git a/.yarn/cache/@esbuild-darwin-arm64-npm-0.24.0-f33b2ff14e-10c0.zip b/.yarn/cache/@esbuild-darwin-arm64-npm-0.24.0-f33b2ff14e-10c0.zip new file mode 100644 index 0000000000..78f91543a6 Binary files /dev/null and b/.yarn/cache/@esbuild-darwin-arm64-npm-0.24.0-f33b2ff14e-10c0.zip differ diff --git a/.yarn/cache/@esbuild-darwin-x64-npm-0.24.0-45e382787a-10c0.zip b/.yarn/cache/@esbuild-darwin-x64-npm-0.24.0-45e382787a-10c0.zip new file mode 100644 index 0000000000..6a5d7b1276 Binary files /dev/null and b/.yarn/cache/@esbuild-darwin-x64-npm-0.24.0-45e382787a-10c0.zip differ diff --git a/.yarn/cache/@esbuild-linux-arm64-npm-0.24.0-72377a710b-10c0.zip b/.yarn/cache/@esbuild-linux-arm64-npm-0.24.0-72377a710b-10c0.zip new file mode 100644 index 0000000000..733f106a4f Binary files /dev/null and b/.yarn/cache/@esbuild-linux-arm64-npm-0.24.0-72377a710b-10c0.zip differ diff --git a/.yarn/cache/@esbuild-linux-x64-npm-0.24.0-744e76a7ed-10c0.zip b/.yarn/cache/@esbuild-linux-x64-npm-0.24.0-744e76a7ed-10c0.zip new file mode 100644 index 0000000000..d44183a82e Binary files /dev/null and b/.yarn/cache/@esbuild-linux-x64-npm-0.24.0-744e76a7ed-10c0.zip differ diff --git a/.yarn/cache/@eslint-community-eslint-utils-npm-4.4.0-d1791bd5a3-7e559c4ce5.zip b/.yarn/cache/@eslint-community-eslint-utils-npm-4.4.0-d1791bd5a3-7e559c4ce5.zip deleted file mode 100644 index 7199799572..0000000000 Binary files a/.yarn/cache/@eslint-community-eslint-utils-npm-4.4.0-d1791bd5a3-7e559c4ce5.zip and /dev/null differ diff --git a/.yarn/cache/@eslint-community-regexpp-npm-4.11.1-37bbb67aaa-fbcc1cb65e.zip b/.yarn/cache/@eslint-community-regexpp-npm-4.11.1-37bbb67aaa-fbcc1cb65e.zip deleted file mode 100644 index 36e164eb58..0000000000 Binary files a/.yarn/cache/@eslint-community-regexpp-npm-4.11.1-37bbb67aaa-fbcc1cb65e.zip and /dev/null differ diff --git a/.yarn/cache/@eslint-config-array-npm-0.18.0-bb4bc4e301-0234aeb3e6.zip b/.yarn/cache/@eslint-config-array-npm-0.18.0-bb4bc4e301-0234aeb3e6.zip deleted file mode 100644 index 77ac86ca73..0000000000 Binary files a/.yarn/cache/@eslint-config-array-npm-0.18.0-bb4bc4e301-0234aeb3e6.zip and /dev/null differ diff --git a/.yarn/cache/@eslint-config-array-npm-0.19.0-23614541c1-def23c6c67.zip b/.yarn/cache/@eslint-config-array-npm-0.19.0-23614541c1-def23c6c67.zip new file mode 100644 index 0000000000..295af6677c Binary files /dev/null and b/.yarn/cache/@eslint-config-array-npm-0.19.0-23614541c1-def23c6c67.zip differ diff --git a/.yarn/cache/@eslint-core-npm-0.7.0-55f1b6f05c-3cdee8bc6c.zip b/.yarn/cache/@eslint-core-npm-0.9.0-a4420a370d-6d8e8e0991.zip similarity index 53% rename from .yarn/cache/@eslint-core-npm-0.7.0-55f1b6f05c-3cdee8bc6c.zip rename to .yarn/cache/@eslint-core-npm-0.9.0-a4420a370d-6d8e8e0991.zip index cf00385a71..72059e4ab6 100644 Binary files a/.yarn/cache/@eslint-core-npm-0.7.0-55f1b6f05c-3cdee8bc6c.zip and b/.yarn/cache/@eslint-core-npm-0.9.0-a4420a370d-6d8e8e0991.zip differ diff --git a/.yarn/cache/@eslint-eslintrc-npm-3.1.0-3837a202e2-5b7332ed78.zip b/.yarn/cache/@eslint-eslintrc-npm-2.1.4-1ff4b5f908-32f67052b8.zip similarity index 60% rename from .yarn/cache/@eslint-eslintrc-npm-3.1.0-3837a202e2-5b7332ed78.zip rename to .yarn/cache/@eslint-eslintrc-npm-2.1.4-1ff4b5f908-32f67052b8.zip index 18e59b2a81..0f82c67f5a 100644 Binary files a/.yarn/cache/@eslint-eslintrc-npm-3.1.0-3837a202e2-5b7332ed78.zip and b/.yarn/cache/@eslint-eslintrc-npm-2.1.4-1ff4b5f908-32f67052b8.zip differ diff --git a/.yarn/cache/@eslint-eslintrc-npm-3.2.0-1f7efe7868-43867a07ff.zip b/.yarn/cache/@eslint-eslintrc-npm-3.2.0-1f7efe7868-43867a07ff.zip new file mode 100644 index 0000000000..ac357542d1 Binary files /dev/null and b/.yarn/cache/@eslint-eslintrc-npm-3.2.0-1f7efe7868-43867a07ff.zip differ diff --git a/.yarn/cache/@eslint-js-npm-8.57.1-dec269f278-b489c474a3.zip b/.yarn/cache/@eslint-js-npm-8.57.1-dec269f278-b489c474a3.zip new file mode 100644 index 0000000000..d2a51fbbb3 Binary files /dev/null and b/.yarn/cache/@eslint-js-npm-8.57.1-dec269f278-b489c474a3.zip differ diff --git a/.yarn/cache/@eslint-js-npm-9.14.0-778d6db19a-a423dd435e.zip b/.yarn/cache/@eslint-js-npm-9.16.0-6c9e3348c0-a55846a4dd.zip similarity index 94% rename from .yarn/cache/@eslint-js-npm-9.14.0-778d6db19a-a423dd435e.zip rename to .yarn/cache/@eslint-js-npm-9.16.0-6c9e3348c0-a55846a4dd.zip index 2a42cfc532..c471302244 100644 Binary files a/.yarn/cache/@eslint-js-npm-9.14.0-778d6db19a-a423dd435e.zip and b/.yarn/cache/@eslint-js-npm-9.16.0-6c9e3348c0-a55846a4dd.zip differ diff --git a/.yarn/cache/@humanwhocodes-config-array-npm-0.13.0-843095a032-205c99e756.zip b/.yarn/cache/@humanwhocodes-config-array-npm-0.13.0-843095a032-205c99e756.zip new file mode 100644 index 0000000000..df8b65f17e Binary files /dev/null and b/.yarn/cache/@humanwhocodes-config-array-npm-0.13.0-843095a032-205c99e756.zip differ diff --git a/.yarn/cache/@humanwhocodes-object-schema-npm-2.0.3-4f0e508cd9-80520eabbf.zip b/.yarn/cache/@humanwhocodes-object-schema-npm-2.0.3-4f0e508cd9-80520eabbf.zip new file mode 100644 index 0000000000..28df903edf Binary files /dev/null and b/.yarn/cache/@humanwhocodes-object-schema-npm-2.0.3-4f0e508cd9-80520eabbf.zip differ diff --git a/.yarn/cache/@microsoft-eslint-formatter-sarif-npm-3.1.0-8a6a9d4f0b-c4052ea4f7.zip b/.yarn/cache/@microsoft-eslint-formatter-sarif-npm-3.1.0-8a6a9d4f0b-c4052ea4f7.zip new file mode 100644 index 0000000000..16084153ab Binary files /dev/null and b/.yarn/cache/@microsoft-eslint-formatter-sarif-npm-3.1.0-8a6a9d4f0b-c4052ea4f7.zip differ diff --git a/.yarn/cache/@rollup-rollup-darwin-arm64-npm-4.28.0-d220c83f50-10c0.zip b/.yarn/cache/@rollup-rollup-darwin-arm64-npm-4.28.0-d220c83f50-10c0.zip new file mode 100644 index 0000000000..42fe10a2f1 Binary files /dev/null and b/.yarn/cache/@rollup-rollup-darwin-arm64-npm-4.28.0-d220c83f50-10c0.zip differ diff --git a/.yarn/cache/@rollup-rollup-darwin-x64-npm-4.28.0-071d33e2de-10c0.zip b/.yarn/cache/@rollup-rollup-darwin-x64-npm-4.28.0-071d33e2de-10c0.zip new file mode 100644 index 0000000000..a6ec5e7ce0 Binary files /dev/null and b/.yarn/cache/@rollup-rollup-darwin-x64-npm-4.28.0-071d33e2de-10c0.zip differ diff --git a/.yarn/cache/@rollup-rollup-linux-arm64-musl-npm-4.28.0-fb21929acb-10c0.zip b/.yarn/cache/@rollup-rollup-linux-arm64-musl-npm-4.28.0-fb21929acb-10c0.zip new file mode 100644 index 0000000000..ea8dfac6ff Binary files /dev/null and b/.yarn/cache/@rollup-rollup-linux-arm64-musl-npm-4.28.0-fb21929acb-10c0.zip differ diff --git a/.yarn/cache/@rollup-rollup-linux-x64-musl-npm-4.28.0-2fcd249d3f-10c0.zip b/.yarn/cache/@rollup-rollup-linux-x64-musl-npm-4.28.0-2fcd249d3f-10c0.zip new file mode 100644 index 0000000000..3360d45ee9 Binary files /dev/null and b/.yarn/cache/@rollup-rollup-linux-x64-musl-npm-4.28.0-2fcd249d3f-10c0.zip differ diff --git a/.yarn/cache/@stylistic-eslint-plugin-npm-2.10.1-7e56aa81fc-55f14f256f.zip b/.yarn/cache/@stylistic-eslint-plugin-npm-2.11.0-29144d1d02-6ca19b6656.zip similarity index 97% rename from .yarn/cache/@stylistic-eslint-plugin-npm-2.10.1-7e56aa81fc-55f14f256f.zip rename to .yarn/cache/@stylistic-eslint-plugin-npm-2.11.0-29144d1d02-6ca19b6656.zip index f767fb6b97..df19541586 100644 Binary files a/.yarn/cache/@stylistic-eslint-plugin-npm-2.10.1-7e56aa81fc-55f14f256f.zip and b/.yarn/cache/@stylistic-eslint-plugin-npm-2.11.0-29144d1d02-6ca19b6656.zip differ diff --git a/.yarn/cache/@typescript-eslint-eslint-plugin-npm-8.14.0-55616f1385-46c82eb45b.zip b/.yarn/cache/@typescript-eslint-eslint-plugin-npm-8.16.0-ba60fc0b9e-b03612b726.zip similarity index 83% rename from .yarn/cache/@typescript-eslint-eslint-plugin-npm-8.14.0-55616f1385-46c82eb45b.zip rename to .yarn/cache/@typescript-eslint-eslint-plugin-npm-8.16.0-ba60fc0b9e-b03612b726.zip index 783a8a673d..1da710fac1 100644 Binary files a/.yarn/cache/@typescript-eslint-eslint-plugin-npm-8.14.0-55616f1385-46c82eb45b.zip and b/.yarn/cache/@typescript-eslint-eslint-plugin-npm-8.16.0-ba60fc0b9e-b03612b726.zip differ diff --git a/.yarn/cache/@typescript-eslint-parser-npm-8.14.0-3444f81ac4-522b7afd25.zip b/.yarn/cache/@typescript-eslint-parser-npm-8.16.0-8616b4dfb9-e49c6640a7.zip similarity index 80% rename from .yarn/cache/@typescript-eslint-parser-npm-8.14.0-3444f81ac4-522b7afd25.zip rename to .yarn/cache/@typescript-eslint-parser-npm-8.16.0-8616b4dfb9-e49c6640a7.zip index c2272c3633..aa0cd12142 100644 Binary files a/.yarn/cache/@typescript-eslint-parser-npm-8.14.0-3444f81ac4-522b7afd25.zip and b/.yarn/cache/@typescript-eslint-parser-npm-8.16.0-8616b4dfb9-e49c6640a7.zip differ diff --git a/.yarn/cache/@typescript-eslint-scope-manager-npm-8.14.0-4e9e7df726-1e1295c6f9.zip b/.yarn/cache/@typescript-eslint-scope-manager-npm-8.16.0-b638b04bff-23b7c738b8.zip similarity index 84% rename from .yarn/cache/@typescript-eslint-scope-manager-npm-8.14.0-4e9e7df726-1e1295c6f9.zip rename to .yarn/cache/@typescript-eslint-scope-manager-npm-8.16.0-b638b04bff-23b7c738b8.zip index 3188fabcf2..66a15e6b79 100644 Binary files a/.yarn/cache/@typescript-eslint-scope-manager-npm-8.14.0-4e9e7df726-1e1295c6f9.zip and b/.yarn/cache/@typescript-eslint-scope-manager-npm-8.16.0-b638b04bff-23b7c738b8.zip differ diff --git a/.yarn/cache/@typescript-eslint-type-utils-npm-8.14.0-32010c30a5-42616a664b.zip b/.yarn/cache/@typescript-eslint-type-utils-npm-8.16.0-0c3f0da36a-24c0e815c8.zip similarity index 71% rename from .yarn/cache/@typescript-eslint-type-utils-npm-8.14.0-32010c30a5-42616a664b.zip rename to .yarn/cache/@typescript-eslint-type-utils-npm-8.16.0-0c3f0da36a-24c0e815c8.zip index 6d5057846b..c16fd2973c 100644 Binary files a/.yarn/cache/@typescript-eslint-type-utils-npm-8.14.0-32010c30a5-42616a664b.zip and b/.yarn/cache/@typescript-eslint-type-utils-npm-8.16.0-0c3f0da36a-24c0e815c8.zip differ diff --git a/.yarn/cache/@typescript-eslint-types-npm-8.14.0-56131dda9e-7707f900e2.zip b/.yarn/cache/@typescript-eslint-types-npm-8.16.0-d43e0b4467-141e257ab4.zip similarity index 97% rename from .yarn/cache/@typescript-eslint-types-npm-8.14.0-56131dda9e-7707f900e2.zip rename to .yarn/cache/@typescript-eslint-types-npm-8.16.0-d43e0b4467-141e257ab4.zip index 86f9aa9895..29c0a58ad7 100644 Binary files a/.yarn/cache/@typescript-eslint-types-npm-8.14.0-56131dda9e-7707f900e2.zip and b/.yarn/cache/@typescript-eslint-types-npm-8.16.0-d43e0b4467-141e257ab4.zip differ diff --git a/.yarn/cache/@typescript-eslint-typescript-estree-npm-8.14.0-2681614eed-5e890d22bd.zip b/.yarn/cache/@typescript-eslint-typescript-estree-npm-8.16.0-667b37bee1-f28fea5af4.zip similarity index 72% rename from .yarn/cache/@typescript-eslint-typescript-estree-npm-8.14.0-2681614eed-5e890d22bd.zip rename to .yarn/cache/@typescript-eslint-typescript-estree-npm-8.16.0-667b37bee1-f28fea5af4.zip index 6d707da842..c170216ae8 100644 Binary files a/.yarn/cache/@typescript-eslint-typescript-estree-npm-8.14.0-2681614eed-5e890d22bd.zip and b/.yarn/cache/@typescript-eslint-typescript-estree-npm-8.16.0-667b37bee1-f28fea5af4.zip differ diff --git a/.yarn/cache/@typescript-eslint-utils-npm-8.14.0-4742a7bfab-1fcc2651d8.zip b/.yarn/cache/@typescript-eslint-utils-npm-8.16.0-e564da9d95-1e61187eef.zip similarity index 84% rename from .yarn/cache/@typescript-eslint-utils-npm-8.14.0-4742a7bfab-1fcc2651d8.zip rename to .yarn/cache/@typescript-eslint-utils-npm-8.16.0-e564da9d95-1e61187eef.zip index 84a4a2c4bf..49a20de623 100644 Binary files a/.yarn/cache/@typescript-eslint-utils-npm-8.14.0-4742a7bfab-1fcc2651d8.zip and b/.yarn/cache/@typescript-eslint-utils-npm-8.16.0-e564da9d95-1e61187eef.zip differ diff --git a/.yarn/cache/@typescript-eslint-visitor-keys-npm-8.14.0-c83f7a80b3-d0faf70ed9.zip b/.yarn/cache/@typescript-eslint-visitor-keys-npm-8.16.0-a87d8d0613-537df37801.zip similarity index 71% rename from .yarn/cache/@typescript-eslint-visitor-keys-npm-8.14.0-c83f7a80b3-d0faf70ed9.zip rename to .yarn/cache/@typescript-eslint-visitor-keys-npm-8.16.0-a87d8d0613-537df37801.zip index 6202bc51ee..23c4b89693 100644 Binary files a/.yarn/cache/@typescript-eslint-visitor-keys-npm-8.14.0-c83f7a80b3-d0faf70ed9.zip and b/.yarn/cache/@typescript-eslint-visitor-keys-npm-8.16.0-a87d8d0613-537df37801.zip differ diff --git a/.yarn/cache/@ungap-structured-clone-npm-1.2.0-648f0b82e0-8209c937cb.zip b/.yarn/cache/@ungap-structured-clone-npm-1.2.0-648f0b82e0-8209c937cb.zip new file mode 100644 index 0000000000..e2b763ccae Binary files /dev/null and b/.yarn/cache/@ungap-structured-clone-npm-1.2.0-648f0b82e0-8209c937cb.zip differ diff --git a/.yarn/cache/@vitejs-plugin-basic-ssl-npm-1.1.0-cc457f595f-98aadf5c7f.zip b/.yarn/cache/@vitejs-plugin-basic-ssl-npm-1.2.0-3414e966f3-0d360fcca0.zip similarity index 99% rename from .yarn/cache/@vitejs-plugin-basic-ssl-npm-1.1.0-cc457f595f-98aadf5c7f.zip rename to .yarn/cache/@vitejs-plugin-basic-ssl-npm-1.2.0-3414e966f3-0d360fcca0.zip index 1a417e0a6a..d2e928ddd8 100644 Binary files a/.yarn/cache/@vitejs-plugin-basic-ssl-npm-1.1.0-cc457f595f-98aadf5c7f.zip and b/.yarn/cache/@vitejs-plugin-basic-ssl-npm-1.2.0-3414e966f3-0d360fcca0.zip differ diff --git a/.yarn/cache/@vitejs-plugin-vue-npm-5.2.0-27e23c9bb8-cdd1850b9d.zip b/.yarn/cache/@vitejs-plugin-vue-npm-5.2.1-25d60c16d1-927c06ccf5.zip similarity index 99% rename from .yarn/cache/@vitejs-plugin-vue-npm-5.2.0-27e23c9bb8-cdd1850b9d.zip rename to .yarn/cache/@vitejs-plugin-vue-npm-5.2.1-25d60c16d1-927c06ccf5.zip index fc61511452..6b80f9e3cd 100644 Binary files a/.yarn/cache/@vitejs-plugin-vue-npm-5.2.0-27e23c9bb8-cdd1850b9d.zip and b/.yarn/cache/@vitejs-plugin-vue-npm-5.2.1-25d60c16d1-927c06ccf5.zip differ diff --git a/.yarn/cache/@vitest-coverage-v8-npm-2.1.5-48fd28cfe7-c6870a8714.zip b/.yarn/cache/@vitest-coverage-v8-npm-2.1.7-d7f1faf4d6-be0f09e263.zip similarity index 99% rename from .yarn/cache/@vitest-coverage-v8-npm-2.1.5-48fd28cfe7-c6870a8714.zip rename to .yarn/cache/@vitest-coverage-v8-npm-2.1.7-d7f1faf4d6-be0f09e263.zip index b530e4d88e..8e7c8e14ac 100644 Binary files a/.yarn/cache/@vitest-coverage-v8-npm-2.1.5-48fd28cfe7-c6870a8714.zip and b/.yarn/cache/@vitest-coverage-v8-npm-2.1.7-d7f1faf4d6-be0f09e263.zip differ diff --git a/.yarn/cache/@vitest-eslint-plugin-npm-1.1.10-3eb3e24398-f69be2a106.zip b/.yarn/cache/@vitest-eslint-plugin-npm-1.1.13-f7b3b38e5c-179b095dfa.zip similarity index 97% rename from .yarn/cache/@vitest-eslint-plugin-npm-1.1.10-3eb3e24398-f69be2a106.zip rename to .yarn/cache/@vitest-eslint-plugin-npm-1.1.13-f7b3b38e5c-179b095dfa.zip index 6d5ad31d55..059f016279 100644 Binary files a/.yarn/cache/@vitest-eslint-plugin-npm-1.1.10-3eb3e24398-f69be2a106.zip and b/.yarn/cache/@vitest-eslint-plugin-npm-1.1.13-f7b3b38e5c-179b095dfa.zip differ diff --git a/.yarn/cache/@vitest-expect-npm-2.1.5-d51bc6286e-68f7011e78.zip b/.yarn/cache/@vitest-expect-npm-2.1.7-998ad863f1-e9374db063.zip similarity index 99% rename from .yarn/cache/@vitest-expect-npm-2.1.5-d51bc6286e-68f7011e78.zip rename to .yarn/cache/@vitest-expect-npm-2.1.7-998ad863f1-e9374db063.zip index 5bbc764c82..ebdbca0cef 100644 Binary files a/.yarn/cache/@vitest-expect-npm-2.1.5-d51bc6286e-68f7011e78.zip and b/.yarn/cache/@vitest-expect-npm-2.1.7-998ad863f1-e9374db063.zip differ diff --git a/.yarn/cache/@vitest-mocker-npm-2.1.5-8551ad9996-57034aa347.zip b/.yarn/cache/@vitest-mocker-npm-2.1.7-411a259234-551c443bea.zip similarity index 99% rename from .yarn/cache/@vitest-mocker-npm-2.1.5-8551ad9996-57034aa347.zip rename to .yarn/cache/@vitest-mocker-npm-2.1.7-411a259234-551c443bea.zip index 6674ef31d4..6609340e3b 100644 Binary files a/.yarn/cache/@vitest-mocker-npm-2.1.5-8551ad9996-57034aa347.zip and b/.yarn/cache/@vitest-mocker-npm-2.1.7-411a259234-551c443bea.zip differ diff --git a/.yarn/cache/@vitest-pretty-format-npm-2.1.5-c710423eda-d6667f1e5d.zip b/.yarn/cache/@vitest-pretty-format-npm-2.1.7-f60a13be8b-9525f078d3.zip similarity index 99% rename from .yarn/cache/@vitest-pretty-format-npm-2.1.5-c710423eda-d6667f1e5d.zip rename to .yarn/cache/@vitest-pretty-format-npm-2.1.7-f60a13be8b-9525f078d3.zip index 5510579c45..2e18dfa602 100644 Binary files a/.yarn/cache/@vitest-pretty-format-npm-2.1.5-c710423eda-d6667f1e5d.zip and b/.yarn/cache/@vitest-pretty-format-npm-2.1.7-f60a13be8b-9525f078d3.zip differ diff --git a/.yarn/cache/@vitest-runner-npm-2.1.5-0146a32baa-d39ea4c6f8.zip b/.yarn/cache/@vitest-runner-npm-2.1.7-d10827f6e0-5a8c86e716.zip similarity index 99% rename from .yarn/cache/@vitest-runner-npm-2.1.5-0146a32baa-d39ea4c6f8.zip rename to .yarn/cache/@vitest-runner-npm-2.1.7-d10827f6e0-5a8c86e716.zip index 490dc297af..e3309979d9 100644 Binary files a/.yarn/cache/@vitest-runner-npm-2.1.5-0146a32baa-d39ea4c6f8.zip and b/.yarn/cache/@vitest-runner-npm-2.1.7-d10827f6e0-5a8c86e716.zip differ diff --git a/.yarn/cache/@vitest-snapshot-npm-2.1.5-622ca2d86d-3dc44b5a04.zip b/.yarn/cache/@vitest-snapshot-npm-2.1.7-ca4a3175e0-268dab533e.zip similarity index 99% rename from .yarn/cache/@vitest-snapshot-npm-2.1.5-622ca2d86d-3dc44b5a04.zip rename to .yarn/cache/@vitest-snapshot-npm-2.1.7-ca4a3175e0-268dab533e.zip index 0e3aaa46ee..047b5de27c 100644 Binary files a/.yarn/cache/@vitest-snapshot-npm-2.1.5-622ca2d86d-3dc44b5a04.zip and b/.yarn/cache/@vitest-snapshot-npm-2.1.7-ca4a3175e0-268dab533e.zip differ diff --git a/.yarn/cache/@vitest-spy-npm-2.1.5-b5c3d4bd78-c5222cc707.zip b/.yarn/cache/@vitest-spy-npm-2.1.7-ac3f4cd11a-2043d010d3.zip similarity index 99% rename from .yarn/cache/@vitest-spy-npm-2.1.5-b5c3d4bd78-c5222cc707.zip rename to .yarn/cache/@vitest-spy-npm-2.1.7-ac3f4cd11a-2043d010d3.zip index 71a64318e7..f5822d1124 100644 Binary files a/.yarn/cache/@vitest-spy-npm-2.1.5-b5c3d4bd78-c5222cc707.zip and b/.yarn/cache/@vitest-spy-npm-2.1.7-ac3f4cd11a-2043d010d3.zip differ diff --git a/.yarn/cache/@vitest-ui-npm-2.1.5-1d19291620-73e1bb289b.zip b/.yarn/cache/@vitest-ui-npm-2.1.7-8b8d2c8ad7-8237f5e601.zip similarity index 99% rename from .yarn/cache/@vitest-ui-npm-2.1.5-1d19291620-73e1bb289b.zip rename to .yarn/cache/@vitest-ui-npm-2.1.7-8b8d2c8ad7-8237f5e601.zip index b856f403e1..f0eabe3ae4 100644 Binary files a/.yarn/cache/@vitest-ui-npm-2.1.5-1d19291620-73e1bb289b.zip and b/.yarn/cache/@vitest-ui-npm-2.1.7-8b8d2c8ad7-8237f5e601.zip differ diff --git a/.yarn/cache/@vitest-utils-npm-2.1.5-77d77373d8-3d1e65025e.zip b/.yarn/cache/@vitest-utils-npm-2.1.7-c5160cff8c-fa71d0bba2.zip similarity index 99% rename from .yarn/cache/@vitest-utils-npm-2.1.5-77d77373d8-3d1e65025e.zip rename to .yarn/cache/@vitest-utils-npm-2.1.7-c5160cff8c-fa71d0bba2.zip index 2454bb9bd1..604d4cd19d 100644 Binary files a/.yarn/cache/@vitest-utils-npm-2.1.5-77d77373d8-3d1e65025e.zip and b/.yarn/cache/@vitest-utils-npm-2.1.7-c5160cff8c-fa71d0bba2.zip differ diff --git a/.yarn/cache/@vue-compiler-core-npm-3.5.12-ec7e993ccc-7f004b9633.zip b/.yarn/cache/@vue-compiler-core-npm-3.5.12-ec7e993ccc-7f004b9633.zip deleted file mode 100644 index 5a279fe261..0000000000 Binary files a/.yarn/cache/@vue-compiler-core-npm-3.5.12-ec7e993ccc-7f004b9633.zip and /dev/null differ diff --git a/.yarn/cache/@vue-compiler-dom-npm-3.5.12-2c6fcbab3c-48a67cd28c.zip b/.yarn/cache/@vue-compiler-dom-npm-3.5.12-2c6fcbab3c-48a67cd28c.zip deleted file mode 100644 index 196766c766..0000000000 Binary files a/.yarn/cache/@vue-compiler-dom-npm-3.5.12-2c6fcbab3c-48a67cd28c.zip and /dev/null differ diff --git a/.yarn/cache/@vue-compiler-ssr-npm-3.5.12-e1e40560ca-8a8fc4e205.zip b/.yarn/cache/@vue-compiler-ssr-npm-3.5.12-e1e40560ca-8a8fc4e205.zip deleted file mode 100644 index 7ca98b5d3b..0000000000 Binary files a/.yarn/cache/@vue-compiler-ssr-npm-3.5.12-e1e40560ca-8a8fc4e205.zip and /dev/null differ diff --git a/.yarn/cache/@vue-server-renderer-npm-3.5.12-3ad333df56-d9f25f165c.zip b/.yarn/cache/@vue-server-renderer-npm-3.5.12-3ad333df56-d9f25f165c.zip deleted file mode 100644 index 8016e34257..0000000000 Binary files a/.yarn/cache/@vue-server-renderer-npm-3.5.12-3ad333df56-d9f25f165c.zip and /dev/null differ diff --git a/.yarn/cache/@vue-shared-npm-3.5.12-70fd2bd5d7-48f94406c4.zip b/.yarn/cache/@vue-shared-npm-3.5.12-70fd2bd5d7-48f94406c4.zip deleted file mode 100644 index af6aac4c74..0000000000 Binary files a/.yarn/cache/@vue-shared-npm-3.5.12-70fd2bd5d7-48f94406c4.zip and /dev/null differ diff --git a/.yarn/cache/@vueuse-core-npm-11.3.0-05f6e71b8d-57ebed3ee2.zip b/.yarn/cache/@vueuse-core-npm-12.0.0-f2b4ad9f0b-416a5d2725.zip similarity index 89% rename from .yarn/cache/@vueuse-core-npm-11.3.0-05f6e71b8d-57ebed3ee2.zip rename to .yarn/cache/@vueuse-core-npm-12.0.0-f2b4ad9f0b-416a5d2725.zip index eaf06839fd..c2456f64a5 100644 Binary files a/.yarn/cache/@vueuse-core-npm-11.3.0-05f6e71b8d-57ebed3ee2.zip and b/.yarn/cache/@vueuse-core-npm-12.0.0-f2b4ad9f0b-416a5d2725.zip differ diff --git a/.yarn/cache/@vueuse-integrations-npm-11.3.0-78765d714a-4808c9b642.zip b/.yarn/cache/@vueuse-integrations-npm-12.0.0-ad0f253a1d-b8941bcbc0.zip similarity index 67% rename from .yarn/cache/@vueuse-integrations-npm-11.3.0-78765d714a-4808c9b642.zip rename to .yarn/cache/@vueuse-integrations-npm-12.0.0-ad0f253a1d-b8941bcbc0.zip index 5a28ce6040..6de06838cc 100644 Binary files a/.yarn/cache/@vueuse-integrations-npm-11.3.0-78765d714a-4808c9b642.zip and b/.yarn/cache/@vueuse-integrations-npm-12.0.0-ad0f253a1d-b8941bcbc0.zip differ diff --git a/.yarn/cache/@vueuse-metadata-npm-11.3.0-b41c961ef4-4548912f32.zip b/.yarn/cache/@vueuse-metadata-npm-12.0.0-8e9ddf7794-f67a256fef.zip similarity index 90% rename from .yarn/cache/@vueuse-metadata-npm-11.3.0-b41c961ef4-4548912f32.zip rename to .yarn/cache/@vueuse-metadata-npm-12.0.0-8e9ddf7794-f67a256fef.zip index d853a5f74b..22aa4dc6c3 100644 Binary files a/.yarn/cache/@vueuse-metadata-npm-11.3.0-b41c961ef4-4548912f32.zip and b/.yarn/cache/@vueuse-metadata-npm-12.0.0-8e9ddf7794-f67a256fef.zip differ diff --git a/.yarn/cache/@vueuse-router-npm-11.3.0-37f8c0805a-bdef732d3f.zip b/.yarn/cache/@vueuse-router-npm-12.0.0-ee5e4e160d-00ed897802.zip similarity index 69% rename from .yarn/cache/@vueuse-router-npm-11.3.0-37f8c0805a-bdef732d3f.zip rename to .yarn/cache/@vueuse-router-npm-12.0.0-ee5e4e160d-00ed897802.zip index 5ac9016b9a..95fb4b3be9 100644 Binary files a/.yarn/cache/@vueuse-router-npm-11.3.0-37f8c0805a-bdef732d3f.zip and b/.yarn/cache/@vueuse-router-npm-12.0.0-ee5e4e160d-00ed897802.zip differ diff --git a/.yarn/cache/@vueuse-shared-npm-11.3.0-d866f70d59-820af5359d.zip b/.yarn/cache/@vueuse-shared-npm-12.0.0-dcb8e9975b-7900edc00f.zip similarity index 84% rename from .yarn/cache/@vueuse-shared-npm-11.3.0-d866f70d59-820af5359d.zip rename to .yarn/cache/@vueuse-shared-npm-12.0.0-dcb8e9975b-7900edc00f.zip index 73dbad9217..f68f73fe78 100644 Binary files a/.yarn/cache/@vueuse-shared-npm-11.3.0-d866f70d59-820af5359d.zip and b/.yarn/cache/@vueuse-shared-npm-12.0.0-dcb8e9975b-7900edc00f.zip differ diff --git a/.yarn/cache/binary-extensions-npm-2.2.0-180c33fec7-d73d8b8972.zip b/.yarn/cache/binary-extensions-npm-2.2.0-180c33fec7-d73d8b8972.zip deleted file mode 100644 index 8f0d0925d0..0000000000 Binary files a/.yarn/cache/binary-extensions-npm-2.2.0-180c33fec7-d73d8b8972.zip and /dev/null differ diff --git a/.yarn/cache/chokidar-npm-3.6.0-3c413a828f-8361dcd013.zip b/.yarn/cache/chokidar-npm-3.6.0-3c413a828f-8361dcd013.zip deleted file mode 100644 index 3a5294affc..0000000000 Binary files a/.yarn/cache/chokidar-npm-3.6.0-3c413a828f-8361dcd013.zip and /dev/null differ diff --git a/.yarn/cache/cross-fetch-npm-4.0.0-9c67668db4-386727dc4c.zip b/.yarn/cache/cross-fetch-npm-4.0.0-9c67668db4-386727dc4c.zip deleted file mode 100644 index ce69d2d54e..0000000000 Binary files a/.yarn/cache/cross-fetch-npm-4.0.0-9c67668db4-386727dc4c.zip and /dev/null differ diff --git a/.yarn/cache/doctrine-npm-3.0.0-c6f1615f04-c96bdccabe.zip b/.yarn/cache/doctrine-npm-3.0.0-c6f1615f04-c96bdccabe.zip new file mode 100644 index 0000000000..5e8bf9efe0 Binary files /dev/null and b/.yarn/cache/doctrine-npm-3.0.0-c6f1615f04-c96bdccabe.zip differ diff --git a/.yarn/cache/esbuild-npm-0.24.0-1252872327-9f1aadd8d6.zip b/.yarn/cache/esbuild-npm-0.24.0-1252872327-9f1aadd8d6.zip new file mode 100644 index 0000000000..17a39ff5fd Binary files /dev/null and b/.yarn/cache/esbuild-npm-0.24.0-1252872327-9f1aadd8d6.zip differ diff --git a/.yarn/cache/eslint-npm-8.57.1-dd20287a5a-1fd3153308.zip b/.yarn/cache/eslint-npm-8.57.1-dd20287a5a-1fd3153308.zip new file mode 100644 index 0000000000..68bc7f3263 Binary files /dev/null and b/.yarn/cache/eslint-npm-8.57.1-dd20287a5a-1fd3153308.zip differ diff --git a/.yarn/cache/eslint-npm-9.14.0-04ed57b338-e1cbf571b7.zip b/.yarn/cache/eslint-npm-9.16.0-62663df612-f36d12652c.zip similarity index 97% rename from .yarn/cache/eslint-npm-9.14.0-04ed57b338-e1cbf571b7.zip rename to .yarn/cache/eslint-npm-9.16.0-62663df612-f36d12652c.zip index 7cfe9d7a01..f3ab6cd4cc 100644 Binary files a/.yarn/cache/eslint-npm-9.14.0-04ed57b338-e1cbf571b7.zip and b/.yarn/cache/eslint-npm-9.16.0-62663df612-f36d12652c.zip differ diff --git a/.yarn/cache/eslint-plugin-n-npm-17.13.1-4ace11339b-025c41aec2.zip b/.yarn/cache/eslint-plugin-n-npm-17.14.0-13dfb30aac-ad46415e0a.zip similarity index 98% rename from .yarn/cache/eslint-plugin-n-npm-17.13.1-4ace11339b-025c41aec2.zip rename to .yarn/cache/eslint-plugin-n-npm-17.14.0-13dfb30aac-ad46415e0a.zip index 222813e5c0..978bf71e6c 100644 Binary files a/.yarn/cache/eslint-plugin-n-npm-17.13.1-4ace11339b-025c41aec2.zip and b/.yarn/cache/eslint-plugin-n-npm-17.14.0-13dfb30aac-ad46415e0a.zip differ diff --git a/.yarn/cache/eslint-plugin-vue-npm-9.31.0-a9853a4864-c87ab4d59b.zip b/.yarn/cache/eslint-plugin-vue-npm-9.32.0-d0e1c9e520-6904094727.zip similarity index 97% rename from .yarn/cache/eslint-plugin-vue-npm-9.31.0-a9853a4864-c87ab4d59b.zip rename to .yarn/cache/eslint-plugin-vue-npm-9.32.0-d0e1c9e520-6904094727.zip index 5f6cb3736c..73489989be 100644 Binary files a/.yarn/cache/eslint-plugin-vue-npm-9.31.0-a9853a4864-c87ab4d59b.zip and b/.yarn/cache/eslint-plugin-vue-npm-9.32.0-d0e1c9e520-6904094727.zip differ diff --git a/.yarn/cache/file-entry-cache-npm-6.0.1-31965cf0af-58473e8a82.zip b/.yarn/cache/file-entry-cache-npm-6.0.1-31965cf0af-58473e8a82.zip new file mode 100644 index 0000000000..aefabd0883 Binary files /dev/null and b/.yarn/cache/file-entry-cache-npm-6.0.1-31965cf0af-58473e8a82.zip differ diff --git a/.yarn/cache/flat-cache-npm-3.2.0-9a887f084e-b76f611bd5.zip b/.yarn/cache/flat-cache-npm-3.2.0-9a887f084e-b76f611bd5.zip new file mode 100644 index 0000000000..dcc67e13b3 Binary files /dev/null and b/.yarn/cache/flat-cache-npm-3.2.0-9a887f084e-b76f611bd5.zip differ diff --git a/.yarn/cache/globals-npm-15.11.0-336de1c0c2-861e39bb6b.zip b/.yarn/cache/globals-npm-15.11.0-336de1c0c2-861e39bb6b.zip deleted file mode 100644 index f83de5055e..0000000000 Binary files a/.yarn/cache/globals-npm-15.11.0-336de1c0c2-861e39bb6b.zip and /dev/null differ diff --git a/.yarn/cache/is-binary-path-npm-2.1.0-e61d46f557-a16eaee59a.zip b/.yarn/cache/is-binary-path-npm-2.1.0-e61d46f557-a16eaee59a.zip deleted file mode 100644 index 5d62a2fd1b..0000000000 Binary files a/.yarn/cache/is-binary-path-npm-2.1.0-e61d46f557-a16eaee59a.zip and /dev/null differ diff --git a/.yarn/cache/is-path-inside-npm-3.0.3-2ea0ef44fd-cf7d4ac35f.zip b/.yarn/cache/is-path-inside-npm-3.0.3-2ea0ef44fd-cf7d4ac35f.zip new file mode 100644 index 0000000000..6188cb2332 Binary files /dev/null and b/.yarn/cache/is-path-inside-npm-3.0.3-2ea0ef44fd-cf7d4ac35f.zip differ diff --git a/.yarn/cache/jschardet-npm-3.1.4-27880c8e9a-d72c724ff6.zip b/.yarn/cache/jschardet-npm-3.1.4-27880c8e9a-d72c724ff6.zip new file mode 100644 index 0000000000..7d094d5c32 Binary files /dev/null and b/.yarn/cache/jschardet-npm-3.1.4-27880c8e9a-d72c724ff6.zip differ diff --git a/.yarn/cache/neostandard-npm-0.11.8-3d87670818-c1b6860867.zip b/.yarn/cache/neostandard-npm-0.11.9-4fbb305f00-c369db757b.zip similarity index 97% rename from .yarn/cache/neostandard-npm-0.11.8-3d87670818-c1b6860867.zip rename to .yarn/cache/neostandard-npm-0.11.9-4fbb305f00-c369db757b.zip index b8e5f794bf..0120ef20c2 100644 Binary files a/.yarn/cache/neostandard-npm-0.11.8-3d87670818-c1b6860867.zip and b/.yarn/cache/neostandard-npm-0.11.9-4fbb305f00-c369db757b.zip differ diff --git a/.yarn/cache/picocolors-npm-1.1.0-ea12a640bd-86946f6032.zip b/.yarn/cache/picocolors-npm-1.1.0-ea12a640bd-86946f6032.zip deleted file mode 100644 index 47e319dd48..0000000000 Binary files a/.yarn/cache/picocolors-npm-1.1.0-ea12a640bd-86946f6032.zip and /dev/null differ diff --git a/.yarn/cache/pinia-npm-2.2.6-6008fe9f85-2158513467.zip b/.yarn/cache/pinia-npm-2.2.8-eafd9224a8-afcaba1308.zip similarity index 98% rename from .yarn/cache/pinia-npm-2.2.6-6008fe9f85-2158513467.zip rename to .yarn/cache/pinia-npm-2.2.8-eafd9224a8-afcaba1308.zip index d9fe337461..82895d28e6 100644 Binary files a/.yarn/cache/pinia-npm-2.2.6-6008fe9f85-2158513467.zip and b/.yarn/cache/pinia-npm-2.2.8-eafd9224a8-afcaba1308.zip differ diff --git a/.yarn/cache/postcss-npm-8.4.47-2f4d4be1fa-929f68b508.zip b/.yarn/cache/postcss-npm-8.4.47-2f4d4be1fa-929f68b508.zip deleted file mode 100644 index cdc69c9fde..0000000000 Binary files a/.yarn/cache/postcss-npm-8.4.47-2f4d4be1fa-929f68b508.zip and /dev/null differ diff --git a/.yarn/cache/readdirp-npm-3.6.0-f950cc74ab-6fa848cf63.zip b/.yarn/cache/readdirp-npm-3.6.0-f950cc74ab-6fa848cf63.zip deleted file mode 100644 index 85102f54ef..0000000000 Binary files a/.yarn/cache/readdirp-npm-3.6.0-f950cc74ab-6fa848cf63.zip and /dev/null differ diff --git a/.yarn/cache/rollup-npm-4.28.0-f6897d3252-98d3bc2b78.zip b/.yarn/cache/rollup-npm-4.28.0-f6897d3252-98d3bc2b78.zip new file mode 100644 index 0000000000..579782f769 Binary files /dev/null and b/.yarn/cache/rollup-npm-4.28.0-f6897d3252-98d3bc2b78.zip differ diff --git a/.yarn/cache/typescript-eslint-npm-8.14.0-62bf6f4e6f-b9c2f32139.zip b/.yarn/cache/typescript-eslint-npm-8.16.0-c3928b5381-3da9401d6c.zip similarity index 87% rename from .yarn/cache/typescript-eslint-npm-8.14.0-62bf6f4e6f-b9c2f32139.zip rename to .yarn/cache/typescript-eslint-npm-8.16.0-c3928b5381-3da9401d6c.zip index eceb07a0da..027627fc73 100644 Binary files a/.yarn/cache/typescript-eslint-npm-8.14.0-62bf6f4e6f-b9c2f32139.zip and b/.yarn/cache/typescript-eslint-npm-8.16.0-c3928b5381-3da9401d6c.zip differ diff --git a/.yarn/cache/typescript-npm-5.6.3-cc9b3687b0-44f61d3fb1.zip b/.yarn/cache/typescript-npm-5.7.2-b1f84a8b28-a873118b52.zip similarity index 97% rename from .yarn/cache/typescript-npm-5.6.3-cc9b3687b0-44f61d3fb1.zip rename to .yarn/cache/typescript-npm-5.7.2-b1f84a8b28-a873118b52.zip index afff1948cd..d6bf8bcf51 100644 Binary files a/.yarn/cache/typescript-npm-5.6.3-cc9b3687b0-44f61d3fb1.zip and b/.yarn/cache/typescript-npm-5.7.2-b1f84a8b28-a873118b52.zip differ diff --git a/.yarn/cache/typescript-patch-8964a48ba3-7c9d2e07c8.zip b/.yarn/cache/typescript-patch-aed9e5263d-f3b8082c9d.zip similarity index 97% rename from .yarn/cache/typescript-patch-8964a48ba3-7c9d2e07c8.zip rename to .yarn/cache/typescript-patch-aed9e5263d-f3b8082c9d.zip index 2068efa852..9c345a6491 100644 Binary files a/.yarn/cache/typescript-patch-8964a48ba3-7c9d2e07c8.zip and b/.yarn/cache/typescript-patch-aed9e5263d-f3b8082c9d.zip differ diff --git a/.yarn/cache/unplugin-fonts-npm-1.1.1-baa4a11b0f-8bd2fd6320.zip b/.yarn/cache/unplugin-fonts-npm-1.3.1-a9a065fad3-6be3c99618.zip similarity index 77% rename from .yarn/cache/unplugin-fonts-npm-1.1.1-baa4a11b0f-8bd2fd6320.zip rename to .yarn/cache/unplugin-fonts-npm-1.3.1-a9a065fad3-6be3c99618.zip index 8e60b48792..55b727072a 100644 Binary files a/.yarn/cache/unplugin-fonts-npm-1.1.1-baa4a11b0f-8bd2fd6320.zip and b/.yarn/cache/unplugin-fonts-npm-1.3.1-a9a065fad3-6be3c99618.zip differ diff --git a/.yarn/cache/unplugin-npm-1.5.0-68dc40f221-2f79a7bf6b.zip b/.yarn/cache/unplugin-npm-1.5.0-68dc40f221-2f79a7bf6b.zip deleted file mode 100644 index c6f05b27d9..0000000000 Binary files a/.yarn/cache/unplugin-npm-1.5.0-68dc40f221-2f79a7bf6b.zip and /dev/null differ diff --git a/.yarn/cache/unplugin-npm-2.0.0-beta.1-e18fb615d4-4a700c9fc5.zip b/.yarn/cache/unplugin-npm-2.0.0-beta.1-e18fb615d4-4a700c9fc5.zip new file mode 100644 index 0000000000..6579d273ac Binary files /dev/null and b/.yarn/cache/unplugin-npm-2.0.0-beta.1-e18fb615d4-4a700c9fc5.zip differ diff --git a/.yarn/cache/utf8-npm-3.0.0-7c39b5994a-675d008bab.zip b/.yarn/cache/utf8-npm-3.0.0-7c39b5994a-675d008bab.zip new file mode 100644 index 0000000000..6464d18769 Binary files /dev/null and b/.yarn/cache/utf8-npm-3.0.0-7c39b5994a-675d008bab.zip differ diff --git a/.yarn/cache/vite-node-npm-2.1.5-f85ba9fa72-4ebe6bdf52.zip b/.yarn/cache/vite-node-npm-2.1.7-10f2ba4ae9-bc404fe491.zip similarity index 99% rename from .yarn/cache/vite-node-npm-2.1.5-f85ba9fa72-4ebe6bdf52.zip rename to .yarn/cache/vite-node-npm-2.1.7-10f2ba4ae9-bc404fe491.zip index 5344a90428..f4cca1a88a 100644 Binary files a/.yarn/cache/vite-node-npm-2.1.5-f85ba9fa72-4ebe6bdf52.zip and b/.yarn/cache/vite-node-npm-2.1.7-10f2ba4ae9-bc404fe491.zip differ diff --git a/.yarn/cache/vite-npm-6.0.2-1676a36381-45fc609f2b.zip b/.yarn/cache/vite-npm-6.0.2-1676a36381-45fc609f2b.zip new file mode 100644 index 0000000000..dc4b622955 Binary files /dev/null and b/.yarn/cache/vite-npm-6.0.2-1676a36381-45fc609f2b.zip differ diff --git a/.yarn/cache/vitest-fetch-mock-npm-0.3.0-b8e8ed5324-794a3ba957.zip b/.yarn/cache/vitest-fetch-mock-npm-0.4.2-144cc23387-d583056cf4.zip similarity index 58% rename from .yarn/cache/vitest-fetch-mock-npm-0.3.0-b8e8ed5324-794a3ba957.zip rename to .yarn/cache/vitest-fetch-mock-npm-0.4.2-144cc23387-d583056cf4.zip index 2b0ff202b6..4cf0b7de5a 100644 Binary files a/.yarn/cache/vitest-fetch-mock-npm-0.3.0-b8e8ed5324-794a3ba957.zip and b/.yarn/cache/vitest-fetch-mock-npm-0.4.2-144cc23387-d583056cf4.zip differ diff --git a/.yarn/cache/vitest-npm-2.1.5-61f3d3fb89-1befb842da.zip b/.yarn/cache/vitest-npm-2.1.7-ef7e9fd6ef-936842ed03.zip similarity index 99% rename from .yarn/cache/vitest-npm-2.1.5-61f3d3fb89-1befb842da.zip rename to .yarn/cache/vitest-npm-2.1.7-ef7e9fd6ef-936842ed03.zip index de1601756d..1a333b7042 100644 Binary files a/.yarn/cache/vitest-npm-2.1.5-61f3d3fb89-1befb842da.zip and b/.yarn/cache/vitest-npm-2.1.7-ef7e9fd6ef-936842ed03.zip differ diff --git a/.yarn/cache/vuetify-npm-3.7.4-3441c0d205-75d9d90b01.zip b/.yarn/cache/vuetify-npm-3.7.5-06252fed26-d5bbfea084.zip similarity index 88% rename from .yarn/cache/vuetify-npm-3.7.4-3441c0d205-75d9d90b01.zip rename to .yarn/cache/vuetify-npm-3.7.5-06252fed26-d5bbfea084.zip index 14f2fbeaf9..ab090f2296 100644 Binary files a/.yarn/cache/vuetify-npm-3.7.4-3441c0d205-75d9d90b01.zip and b/.yarn/cache/vuetify-npm-3.7.5-06252fed26-d5bbfea084.zip differ diff --git a/.yarn/cache/webpack-sources-npm-3.2.3-6bfb5d9563-2ef63d77c4.zip b/.yarn/cache/webpack-sources-npm-3.2.3-6bfb5d9563-2ef63d77c4.zip deleted file mode 100644 index e7dff834b0..0000000000 Binary files a/.yarn/cache/webpack-sources-npm-3.2.3-6bfb5d9563-2ef63d77c4.zip and /dev/null differ diff --git a/.yarn/cache/webpack-virtual-modules-npm-0.5.0-314fd879d0-0742e069cd.zip b/.yarn/cache/webpack-virtual-modules-npm-0.6.2-6785315785-5ffbddf0e8.zip similarity index 69% rename from .yarn/cache/webpack-virtual-modules-npm-0.5.0-314fd879d0-0742e069cd.zip rename to .yarn/cache/webpack-virtual-modules-npm-0.6.2-6785315785-5ffbddf0e8.zip index f330315595..266ed82505 100644 Binary files a/.yarn/cache/webpack-virtual-modules-npm-0.5.0-314fd879d0-0742e069cd.zip and b/.yarn/cache/webpack-virtual-modules-npm-0.6.2-6785315785-5ffbddf0e8.zip differ diff --git a/.yarn/plugins/plugin-prod-install.cjs b/.yarn/plugins/plugin-prod-install.cjs index cee5444e02..d25fe7ca48 100644 --- a/.yarn/plugins/plugin-prod-install.cjs +++ b/.yarn/plugins/plugin-prod-install.cjs @@ -1,5 +1,5 @@ // -// SPDX-FileCopyrightText: 2023 SAP SE or an SAP affiliate company and Gardener contributors +// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Gardener contributors // // SPDX-License-Identifier: Apache-2.0 // @@ -19,38 +19,14 @@ const factory = originalRequire => { : originalRequire(id) } - const core = originalRequire('@yarnpkg/core') - const originalGet = core.Configuration.prototype.get - core.Configuration.prototype.get = function get (key) { - return key === 'lockfileFilename' - ? 'yarn.lock' - : originalGet.call(this, key) - } - const MultiResolver = core.Configuration.prototype.makeResolver.call({ plugins: new Map() }).constructor - const LockfileResolver = core.LockfileResolver - - const fslib = originalRequire('@yarnpkg/fslib') - const { npath, ppath } = fslib - - fslib.toFilename = function toFilename(filename) { - if (npath.parse(filename).dir !== '' || ppath.parse(filename).dir !== '') - throw new Error(`Invalid filename: "${filename}"`); - return filename; - } - - const __yarnUtils = (require, exports) => { - exports.dependenciesUtils = require('./dependenciesUtils') - } - - registry.set('@yarnpkg/core/lib/MultiResolver', { MultiResolver }) - registry.set('@yarnpkg/core/lib/LockfileResolver', { LockfileResolver }) - registry.set('@yarnpkg/fslib', fslib) - registry.set('./dependenciesUtils', createModule(__dependenciesUtils)) - registry.set('@larry1123/yarn-utils', createModule(__yarnUtils)) - registry.set('../util', createModule(__util)) - registry.set('../ProductionInstallFetcher', createModule(__ProductionInstallFetcher)) - registry.set('../ProductionInstallResolver', createModule(__ProductionInstallResolver)) - registry.set('./ProductionInstallCommand', createModule(__ProductionInstallCommand)) + const MultiResolver = require('@yarnpkg/core').Configuration.prototype.makeResolver.call({ plugins: new Map() }).constructor + registry.set('../MultiResolver', { MultiResolver }) + registry.set('./dependenciesUtils', createModule($b9cb2f40602d27575e54993d136432d9)) + registry.set('@larry1123/yarn-utils', createModule($31c91b8668408072d26c360e8a28a172)) + registry.set('../util', createModule($975d0c818d99b2dc5585573c74df71ff)) + registry.set('../ProductionInstallFetcher', createModule($7d3ca10619a5072206d5cdaf2b4891f7)) + registry.set('../ProductionInstallResolver', createModule($21b96eaf43130d3dd76329489e7cca5d)) + registry.set('./ProductionInstallCommand', createModule($615abc4097bb853456dfd228f0f8bd09)) const { ProdInstall } = require('./ProductionInstallCommand') @@ -62,18 +38,12 @@ const factory = originalRequire => { } /** - * This function `__ProductionInstallCommand` is based on a file from the `plugin-prod-install` yarn plugin - * originally developed by Larry1123. The original file can be found at: - * https://gitlab.com/Larry1123/yarn-contrib/-/blob/master/packages/plugin-production-install/lib/commands/productionInstall.js. - * This version has been adapted and modified to ensure compatibility with yarn 4. The original plugin - * appears to be unmaintained and incompatible with this version of yarn. Modifications include: - * 1. Use method `getPackageExtensions` instead of directly accessing the property `configuration.packageExtensions` - * (see https://github.com/yarnpkg/berry/commit/207413b4ea5c9684ebc8dad77bf0cae4b0ec727a). - * - * These changes are detailed in the commit: - * https://github.com/gardener/dashboard/commit/e6e1cbd963a969579294ad2e584ed5056266331a. + * Wrapper function for the `dependenciesUtils` implementation from the + * Yarn plugin by Larry1123. The original source code remains unmodified and can be found here: + * https://gitlab.com/Larry1123/yarn-contrib/-/blob/master/packages/yarn-utils/lib/dependenciesUtils.js */ -const __ProductionInstallCommand = (require, exports) => { +const $b9cb2f40602d27575e54993d136432d9 = (require, exports) => { + "use strict"; /* * Copyright 2020 Larry1123 * @@ -90,240 +60,38 @@ const __ProductionInstallCommand = (require, exports) => { * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); - exports.ProdInstall = void 0; - // imports - const core_1 = require("@yarnpkg/core"); - const MultiResolver_1 = require("@yarnpkg/core/lib/MultiResolver"); - const LockfileResolver_1 = require("@yarnpkg/core/lib/LockfileResolver"); - const cli_1 = require("@yarnpkg/cli"); - const fslib_1 = require("@yarnpkg/fslib"); - const plugin_patch_1 = require("@yarnpkg/plugin-patch"); - const plugin_pack_1 = require("@yarnpkg/plugin-pack"); - const clipanion_1 = require("clipanion"); - const yarn_utils_1 = require("@larry1123/yarn-utils"); - const util_1 = require("../util"); - const ProductionInstallFetcher_1 = require("../ProductionInstallFetcher"); - const ProductionInstallResolver_1 = require("../ProductionInstallResolver"); - const ManifestFile = (0, fslib_1.toFilename)('package.json'); - class ProdInstall extends clipanion_1.Command { - constructor() { - super(...arguments); - this.outDirectory = clipanion_1.Option.String({ name: 'outDirectory' }); - this.json = clipanion_1.Option.Boolean(`--json`, false, { description: 'Format the output as an NDJSON stream' }); - this.stripTypes = clipanion_1.Option.Boolean('--strip-types', true, { description: 'Use --no-strip-types to not strip `@types/*` dependencies' }); - this.pack = clipanion_1.Option.Boolean('--pack', false); - this.silent = clipanion_1.Option.Boolean('--silent', false, { hidden: true }); - this.production = clipanion_1.Option.Boolean(`--production`, true, { description: 'Use --no-production to not strip devDependencies' }); - } - async execute() { - const configuration = await core_1.Configuration.find(this.context.cwd, this.context.plugins); - const { project, workspace, } = await core_1.Project.find(configuration, this.context.cwd); - await project.restoreInstallState(); - if (!workspace) { - throw new cli_1.WorkspaceRequiredError(project.cwd, this.context.cwd); - } - const cache = await core_1.Cache.find(configuration, { - immutable: true, - check: false, - }); - const rootDirectoryPath = project.topLevelWorkspace.cwd; - const outDirectoryPath = fslib_1.npath.isAbsolute(this.outDirectory) - ? fslib_1.npath.toPortablePath(this.outDirectory) - : fslib_1.ppath.join(workspace.cwd, fslib_1.npath.toPortablePath(this.outDirectory)); - const report = await core_1.StreamReport.start({ - configuration, - json: this.json, - stdout: this.context.stdout, - }, async (report) => { - await report.startTimerPromise('Setting up production directory', async () => { - await fslib_1.xfs.mkdirpPromise(outDirectoryPath); - await (0, util_1.copyFile)(rootDirectoryPath, outDirectoryPath, configuration.get(`lockfileFilename`)); - await (0, util_1.copyFile)(rootDirectoryPath, outDirectoryPath, configuration.get(`rcFilename`)); - await (0, util_1.copyFile)(workspace.cwd, outDirectoryPath, ManifestFile); - const yarnExcludes = []; - const checkConfigurationToExclude = (config) => { - try { - if (configuration.get(config)) { - yarnExcludes.push(configuration.get(config)); - } - } - catch (_) { - // noop - } - }; - checkConfigurationToExclude('installStatePath'); - checkConfigurationToExclude('cacheFolder'); - checkConfigurationToExclude('deferredVersionFolder'); - await configuration.triggerHook((hooks) => { - return hooks.populateYarnPaths; - }, project, (path) => { - if (path) { - yarnExcludes.push(path); - } - }); - await (0, util_1.copyFolder)(rootDirectoryPath, outDirectoryPath, `.yarn`, yarnExcludes); - }); - await report.startTimerPromise('Installing production version', async () => { - const outConfiguration = await core_1.Configuration.find(outDirectoryPath, this.context.plugins); - if (this.stripTypes) { - const packageExtensions = await outConfiguration.getPackageExtensions() - for (const [ident, extensionsByIdent,] of packageExtensions.entries()) { - const identExt = []; - for (const [range, extensionsByRange] of extensionsByIdent) { - identExt.push([ - range, - extensionsByRange.filter((extension) => { - var _a; - // TODO solve without ts-ignore - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - return ((_a = extension === null || extension === void 0 ? void 0 : extension.descriptor) === null || _a === void 0 ? void 0 : _a.scope) !== 'types'; - }), - ]); - } - packageExtensions.set(ident, identExt); - } - } - const { project: outProject, workspace: outWorkspace, } = await core_1.Project.find(outConfiguration, outDirectoryPath); - if (!outWorkspace) { - throw new cli_1.WorkspaceRequiredError(project.cwd, this.context.cwd); - } - if (this.production) { - outWorkspace.manifest.devDependencies.clear(); - } - const outCache = await core_1.Cache.find(outConfiguration, { - immutable: false, - check: false, - }); - const multiFetcher = configuration.makeFetcher(); - const realResolver = configuration.makeResolver(); - const multiResolver = new MultiResolver_1.MultiResolver([ - new LockfileResolver_1.LockfileResolver(realResolver), - realResolver, - ]); - const resolver = new ProductionInstallResolver_1.ProductionInstallResolver({ - project, - resolver: multiResolver, - stripTypes: this.stripTypes, - }); - const fetcher = new ProductionInstallFetcher_1.ProductionInstallFetcher({ - cache, - fetcher: multiFetcher, - project, - }); - await this.modifyOriginalResolutions(outProject, resolver, { - project: outProject, - fetchOptions: { - cache: outCache, - project: outProject, - fetcher, - checksums: outProject.storedChecksums, - report, - }, - resolver, - report, - }); - await outProject.install({ - cache: outCache, - report, - immutable: false, - fetcher, - resolver, - }); - await report.startTimerPromise('Cleaning up unused dependencies', async () => { - const toRemove = []; - toRemove.push(...(await this.getPatchSourcesToRemove(outProject, outCache))); - for (const locatorPath of toRemove) { - if (await fslib_1.xfs.existsPromise(locatorPath)) { - report.reportInfo(core_1.MessageName.UNUSED_CACHE_ENTRY, `${fslib_1.ppath.basename(locatorPath)} appears to be unused - removing`); - await fslib_1.xfs.removePromise(locatorPath); - } - } - }); - }); - if (this.pack) { - await report.startTimerPromise('Packing workspace ', async () => { - await plugin_pack_1.packUtils.prepareForPack(workspace, { report }, async () => { - report.reportJson({ base: workspace.cwd }); - const files = await plugin_pack_1.packUtils.genPackList(workspace); - for (const file of files) { - report.reportInfo(null, file); - report.reportJson({ location: file }); - if (file.endsWith(ManifestFile)) { - const manifest = await plugin_pack_1.packUtils.genPackageManifest(workspace); - await fslib_1.xfs.writeJsonPromise(fslib_1.ppath.resolve(outDirectoryPath, file), manifest); - } - else { - await (0, util_1.copyFile)(workspace.cwd, outDirectoryPath, file); - } + exports.getDependents = void 0; + /** + * Get all packages that depend on a given package + * + * Be sure to have ran @{link Project#restoreInstallState} if needed + * + * @param project Project to search within + * @param searchPackage Package to find as a dependency + */ + async function getDependents(project, searchPackage) { + const collected = []; + for (const dependencyPackage of project.storedPackages.values()) { + for (const dependencyDescriptor of dependencyPackage.dependencies.values()) { + const resolutionLocatorHash = project.storedResolutions.get(dependencyDescriptor.descriptorHash); + if (resolutionLocatorHash === searchPackage.locatorHash) { + collected.push(dependencyPackage); + break; } - }); - }); - } - }); - return report.exitCode(); - } - async getPatchSourcesToRemove(project, cache) { - var _a; - const patchedPackages = []; - project.storedPackages.forEach((storedPackage) => { - if (storedPackage.reference.startsWith('patch:')) { - patchedPackages.push(storedPackage); - } - }); - const toRemove = []; - for (const patchedPackage of patchedPackages) { - const { sourceLocator, } = plugin_patch_1.patchUtils.parseLocator(patchedPackage); - const sourcePackage = project.storedPackages.get(sourceLocator.locatorHash); - if (!sourcePackage) { - // This should be an error but currently not going to throw - break; - } - const dependencies = await yarn_utils_1.dependenciesUtils.getDependents(project, sourcePackage); - if (dependencies.filter((pkg) => pkg.locatorHash !== patchedPackage.locatorHash).length > 0) { - const locatorPath = cache.getLocatorPath(sourceLocator, (_a = project.storedChecksums.get(sourceLocator.locatorHash)) !== null && _a !== void 0 ? _a : null); - if (locatorPath) { - toRemove.push(locatorPath); } - } } - return toRemove; - } - async modifyOriginalResolutions(project, resolver, opts) { - await opts.report.startTimerPromise('Modifying original install state', async () => { - for (const [locatorHash, originalPackage,] of project.originalPackages.entries()) { - const resolvedPackage = await resolver.resolve(originalPackage, opts); - project.originalPackages.set(locatorHash, resolvedPackage); - } - }); - } + return collected; } - exports.ProdInstall = ProdInstall; - ProdInstall.paths = [['prod-install']]; - ProdInstall.usage = clipanion_1.Command.Usage({ - description: 'INSTALL!', - details: 'prod only install', - examples: [ - [`Install the project with only prod dependencies`, `$0 prod-install`], - ], - }); + exports.getDependents = getDependents; } /** - * This function `__ProductionInstallFetcher` is based on a file from the `plugin-prod-install` yarn plugin - * originally developed by Larry1123. The original file can be found at: - * https://gitlab.com/Larry1123/yarn-contrib/-/blob/master/packages/plugin-production-install/lib/ProductionInstallFetcher.js. - * This version has been adapted and modified to ensure compatibility with yarn 4. The original plugin - * appears to be unmaintained and incompatible with this version of yarn. Modifications include: - * 1. In the case of workspace packages fetched from the cache, a checksum is generated. It is - * essential for the `ProductionInstallFetcher` not to return this checksum, as doing so leads - * to the packages not being located in the filesystem subsequently. - * - * These changes are detailed in the commit: - * https://github.com/gardener/dashboard/commit/194b6567282bd4b0bbfc9b5e955dbd228f317244. + * Wrapper function for the `yarn-utils` implementation from the + * Yarn plugin by Larry1123. The original source code remains unmodified and can be found here: + * https://gitlab.com/Larry1123/yarn-contrib/-/blob/master/packages/yarn-utils/lib/index.js */ -const __ProductionInstallFetcher = (require, exports) => { +const $31c91b8668408072d26c360e8a28a172 = (require, exports) => { + "use strict"; /* * Copyright 2020 Larry1123 * @@ -340,141 +108,91 @@ const __ProductionInstallFetcher = (require, exports) => { * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); - exports.ProductionInstallFetcher = void 0; + exports.dependenciesUtils = void 0; + const dependenciesUtils = require("./dependenciesUtils"); + exports.dependenciesUtils = dependenciesUtils; +} + +/** + * Wrapper function for the `util` implementation from the + * Yarn plugin by Larry1123. The original source code remains unmodified and can be found here: + * https://gitlab.com/Larry1123/yarn-contrib/-/blob/master/packages/plugin-production-install/lib/util.js + */ +const $975d0c818d99b2dc5585573c74df71ff = (require, exports) => { + "use strict"; + /* + * Copyright 2020 Larry1123 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + Object.defineProperty(exports, "__esModule", { value: true }); + exports.copyFolderRecursivePromise = exports.copyFolder = exports.copyFile = void 0; // imports - const core_1 = require("@yarnpkg/core"); const fslib_1 = require("@yarnpkg/fslib"); - const plugin_pack_1 = require("@yarnpkg/plugin-pack"); - class ProductionInstallFetcher { - constructor({ fetcher, project, cache, }) { - this.fetcher = fetcher; - this.project = project; - this.cache = cache; - } - supports(locator, opts) { - return this.fetcher.supports(locator, opts); - } - getLocalPath(locator, opts) { - if (locator.reference.startsWith(core_1.WorkspaceResolver.protocol) && - locator.reference !== `${core_1.WorkspaceResolver.protocol}.`) { - return null; - } - else { - return this.fetcher.getLocalPath(locator, opts); - } - } - async fetch(locator, opts) { - const expectedChecksum = opts.checksums.get(locator.locatorHash) || null; - if (locator.reference.startsWith(core_1.WorkspaceResolver.protocol) && - locator.reference !== `${core_1.WorkspaceResolver.protocol}.`) { - const cache = await this.makeTemporaryCache(opts.cache); - const [packageFs, releaseFs, checksum] = await cache.fetchPackageFromCache(locator, expectedChecksum, { - onHit: () => opts.report.reportCacheHit(locator), - onMiss: () => opts.report.reportCacheMiss(locator, `${core_1.structUtils.prettyLocator(opts.project.configuration, locator)} can't be found in the cache and will be packed from disk.`), - loader: async () => this.packWorkspace(locator, opts), - skipIntegrityCheck: opts.skipIntegrityCheck, - }); - cache.markedFiles.forEach((cachePath) => opts.cache.markedFiles.add(cachePath)); - return { - packageFs, - releaseFs, - prefixPath: core_1.structUtils.getIdentVendorPath(locator), - checksum: expectedChecksum, - }; - } - const cachePath = this.cache.getLocatorPath(locator, expectedChecksum); - if (cachePath && - cachePath.endsWith('.zip') && - (await fslib_1.xfs.existsPromise(cachePath))) { - const outCachePath = opts.cache.getLocatorPath(locator, expectedChecksum); - if (outCachePath && !(await fslib_1.xfs.existsPromise(outCachePath))) { - try { - await fslib_1.xfs.linkPromise(cachePath, outCachePath); + async function copyFile(src, dist, file) { + await fslib_1.xfs.mkdirpPromise(fslib_1.ppath.dirname(fslib_1.ppath.resolve(dist, file))); + return fslib_1.xfs.copyFilePromise(fslib_1.ppath.resolve(src, file), fslib_1.ppath.resolve(dist, file)); + } + exports.copyFile = copyFile; + async function copyFolder(src, dist, folder, exclude = [], linkInsteadOfCopy = false) { + return copyFolderRecursivePromise(fslib_1.ppath.resolve(src, folder), fslib_1.ppath.resolve(dist, folder), exclude, linkInsteadOfCopy); + } + exports.copyFolder = copyFolder; + async function copyFolderRecursivePromise(source, target, exclude = [], linkInsteadOfCopy = false) { + if ((await fslib_1.xfs.lstatPromise(source)).isDirectory()) { + if (!(await fslib_1.xfs.existsPromise(target))) { + await fslib_1.xfs.mkdirpPromise(target); } - catch (error) { - if (!(await fslib_1.xfs.existsPromise(outCachePath))) { - opts.report.reportError(core_1.MessageName.FETCH_FAILED, `Failed to link the cache entry for ${core_1.structUtils.prettyLocator(opts.cache.configuration, locator)}`); - } + const files = await fslib_1.xfs.readdirPromise(source); + for (const file of files) { + const curSource = fslib_1.ppath.resolve(source, file); + const curTarget = fslib_1.ppath.resolve(target, file); + const isExcluded = () => { + for (const portablePath of exclude) { + if (curSource.endsWith(portablePath)) + return true; + } + return false; + }; + if (!isExcluded()) { + if ((await fslib_1.xfs.lstatPromise(curSource)).isDirectory()) { + await copyFolderRecursivePromise(curSource, curTarget, exclude, linkInsteadOfCopy); + } + else { + if (linkInsteadOfCopy) { + await fslib_1.xfs.linkPromise(curSource, curTarget); + } + else { + await fslib_1.xfs.copyFilePromise(curSource, curTarget); + } + } + } } - } } - return this.fetcher.fetch(locator, opts); - } - async packWorkspace(locator, { report, }) { - const { configuration, } = this.project; - const workspace = this.project.getWorkspaceByLocator(locator); - return fslib_1.xfs.mktempPromise(async (logDir) => { - const workspacePretty = core_1.structUtils.slugifyLocator(locator); - const logFile = fslib_1.ppath.join(logDir, (0, fslib_1.toFilename)(`${workspacePretty}-pack.log`)); - const header = `# This file contains the result of Yarn calling packing "${workspacePretty}" ("${workspace.cwd}")\n`; - const { stdout, stderr, } = configuration.getSubprocessStreams(logFile, { - report, - prefix: core_1.structUtils.prettyLocator(configuration, workspace.anchoredLocator), - header, - }); - const packReport = await core_1.StreamReport.start({ - configuration, - stdout, - }, async () => { - /** noop **/ - }); - try { - let buffer; - await plugin_pack_1.packUtils.prepareForPack(workspace, { report: packReport }, async () => { - packReport.reportJson({ base: workspace.cwd }); - const files = await plugin_pack_1.packUtils.genPackList(workspace); - for (const file of files) { - packReport.reportInfo(null, file); - packReport.reportJson({ location: file }); - } - const pack = await plugin_pack_1.packUtils.genPackStream(workspace, files); - buffer = await core_1.miscUtils.bufferStream(pack); - }); - return await core_1.tgzUtils.convertToZip(buffer, { - stripComponents: 1, - prefixPath: core_1.structUtils.getIdentVendorPath(locator), - }); - } - catch (error) { - fslib_1.xfs.detachTemp(logDir); - if (error instanceof Error) { - stderr.write(error.stack); - } - throw new core_1.ReportError(core_1.MessageName.LIFECYCLE_SCRIPT, `Packing ${workspacePretty} failed, logs can be found here: ${core_1.formatUtils.pretty(configuration, logFile, core_1.formatUtils.Type.PATH)}); run ${core_1.formatUtils.pretty(configuration, `yarn ${fslib_1.ppath.relative(this.project.cwd, workspace.cwd)} pack`, core_1.formatUtils.Type.CODE)} to investigate`); - } - finally { - await packReport.finalize(); - stdout.end(); - stderr.end(); - } - }); - } - async makeTemporaryCache(cache) { - const { configuration: { startingCwd, plugins, }, check, immutable, cwd, } = cache; - const configuration = core_1.Configuration.create(startingCwd, plugins); - configuration.useWithSource(startingCwd, { enableMirror: false }, startingCwd, { overwrite: true }); - return new core_1.Cache(cwd, { - configuration, - check, - immutable, - }); - } + else { + throw new Error('src not a folder'); + } } - exports.ProductionInstallFetcher = ProductionInstallFetcher; + exports.copyFolderRecursivePromise = copyFolderRecursivePromise; } /** - * This function `__ProductionInstallResolver` is based on a file from the `plugin-prod-install` yarn plugin - * originally developed by Larry1123. The original file can be found at: - * https://gitlab.com/Larry1123/yarn-contrib/-/blob/master/packages/plugin-production-install/lib/ProductionInstallResolver.js. - * This version has been adapted and modified to ensure compatibility with yarn 4. The original plugin - * appears to be unmaintained and incompatible with this version of yarn. Modifications include: - * 1. Normalize dependency map of resolved workspace packages. - * - * These changes are detailed in the commit: - * https://github.com/gardener/dashboard/commit/e6e1cbd963a969579294ad2e584ed5056266331a. + * Wrapper function for the `ProductionInstallFetcher` implementation from the + * Yarn plugin by Larry1123. The original source code remains unmodified and can be found here: + * https://gitlab.com/Larry1123/yarn-contrib/-/blob/master/packages/plugin-production-install/lib/ProductionInstallFetcher.js */ -const __ProductionInstallResolver = (require, exports) => { +const $7d3ca10619a5072206d5cdaf2b4891f7 = (require, exports) => { + "use strict"; /* * Copyright 2020 Larry1123 * @@ -491,100 +209,190 @@ const __ProductionInstallResolver = (require, exports) => { * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); - exports.ProductionInstallResolver = void 0; + exports.ProductionInstallFetcher = void 0; // imports const core_1 = require("@yarnpkg/core"); - class ProductionInstallResolver { - constructor({ resolver, project, stripTypes = true, }) { - this.resolver = resolver; - this.project = project; - this.stripTypes = stripTypes; - } - supportsDescriptor(descriptor, opts) { - return this.resolver.supportsDescriptor(descriptor, opts); - } - supportsLocator(locator, opts) { - return this.resolver.supportsLocator(locator, opts); - } - shouldPersistResolution(locator, opts) { - if (locator.reference.startsWith(core_1.WorkspaceResolver.protocol)) { - return false; + const fslib_1 = require("@yarnpkg/fslib"); + const plugin_pack_1 = require("@yarnpkg/plugin-pack"); + const libzip_1 = require("@yarnpkg/libzip"); + class ProductionInstallFetcher { + constructor({ fetcher, project, cache, }) { + this.fetcher = fetcher; + this.project = project; + this.cache = cache; } - else { - return this.resolver.shouldPersistResolution(locator, opts); + supports(locator, opts) { + return this.fetcher.supports(locator, { + project: opts.project, + fetcher: this, + }); } - } - bindDescriptor(descriptor, fromLocator, opts) { - return this.resolver.bindDescriptor(descriptor, fromLocator, opts); - } - getResolutionDependencies(descriptor, opts) { - return this.resolver.getResolutionDependencies(descriptor, opts); - } - async getCandidates(descriptor, dependencies, opts) { - if (descriptor.range.startsWith(core_1.WorkspaceResolver.protocol) && - descriptor.range !== `${core_1.WorkspaceResolver.protocol}.`) { - const workplace = this.project.getWorkspaceByDescriptor(descriptor); - return [workplace.anchoredLocator]; + getLocalPath(locator, opts) { + if (locator.reference.startsWith(core_1.WorkspaceResolver.protocol) && + locator.reference !== `${core_1.WorkspaceResolver.protocol}.`) { + return null; + } + else { + return this.fetcher.getLocalPath(locator, { + project: opts.project, + fetcher: this, + cache: opts.cache, + cacheOptions: opts.cacheOptions, + checksums: opts.checksums, + report: opts.report, + }); + } } - else { - return this.resolver.getCandidates(descriptor, dependencies, opts); + async fetch(locator, opts) { + const expectedChecksum = opts.checksums.get(locator.locatorHash) || null; + if (locator.reference.startsWith(core_1.WorkspaceResolver.protocol) && + locator.reference !== `${core_1.WorkspaceResolver.protocol}.`) { + const cache = await this.makeTemporaryCache(opts.cache); + const [packageFs, releaseFs] = await cache.fetchPackageFromCache(locator, expectedChecksum, { + onHit: () => opts.report.reportCacheHit(locator), + onMiss: () => opts.report.reportCacheMiss(locator, `${core_1.structUtils.prettyLocator(opts.project.configuration, locator)} can't be found in the cache and will be packed from disk.`), + loader: async () => this.packWorkspace(locator, { + project: opts.project, + fetcher: this, + cache: opts.cache, + cacheOptions: opts.cacheOptions, + checksums: opts.checksums, + report: opts.report, + }), + }); + cache.markedFiles.forEach((cachePath) => opts.cache.markedFiles.add(cachePath)); + return { + packageFs, + releaseFs, + prefixPath: core_1.structUtils.getIdentVendorPath(locator), + // TODO this seems wrong + // it should be the real checksum of the file but for some reason the file is being saved with the cacheKey instead + checksum: cache.cacheKey, + }; + } + const cachePath = this.cache.getLocatorPath(locator, expectedChecksum); + if (cachePath && + cachePath.endsWith('.zip') && + (await fslib_1.xfs.existsPromise(cachePath))) { + const outCachePath = opts.cache.getLocatorPath(locator, expectedChecksum); + if (outCachePath && !(await fslib_1.xfs.existsPromise(outCachePath))) { + try { + await fslib_1.xfs.linkPromise(cachePath, outCachePath); + } + catch (error) { + if (!(await fslib_1.xfs.existsPromise(outCachePath))) { + opts.report.reportError(core_1.MessageName.FETCH_FAILED, `Failed to link the cache entry for ${core_1.structUtils.prettyLocator(opts.cache.configuration, locator)}`); + } + } + } + const checksum = await core_1.hashUtils.checksumFile(outCachePath); + let zipFs; + const lazyFs = new fslib_1.LazyFS(() => core_1.miscUtils.prettifySyncErrors(() => { + return zipFs = new libzip_1.ZipFS(outCachePath, { + baseFs: fslib_1.xfs, + readOnly: true, + }); + }, message => { + return `Failed to open the cache entry for ${core_1.structUtils.prettyLocator(opts.project.configuration, locator)}: ${message}`; + }), fslib_1.ppath); + // We use an AliasFS to speed up getRealPath calls (e.g. VirtualFetcher.ensureVirtualLink) + // (there's no need to create the lazy baseFs instance to gather the already-known cachePath) + const aliasFs = new fslib_1.AliasFS(outCachePath, { + baseFs: lazyFs, + pathUtils: fslib_1.ppath, + }); + const releaseFs = () => { + zipFs === null || zipFs === void 0 ? void 0 : zipFs.discardAndClose(); + }; + return { + packageFs: aliasFs, + releaseFs, + prefixPath: core_1.structUtils.getIdentVendorPath(locator), + checksum, + }; + } + return this.fetcher.fetch(locator, { + project: opts.project, + fetcher: this, + cache: opts.cache, + cacheOptions: opts.cacheOptions, + checksums: opts.checksums, + report: opts.report, + }); } - } - async resolve(locator, opts) { - const resolve = async () => { - if (locator.reference.startsWith(core_1.WorkspaceResolver.protocol) && - locator.reference !== `${core_1.WorkspaceResolver.protocol}.`) { + async packWorkspace(locator, { report, }) { + const { configuration, } = this.project; const workspace = this.project.getWorkspaceByLocator(locator); - return { - ...locator, - version: workspace.manifest.version || `0.0.0`, - languageName: `unknown`, - linkType: core_1.LinkType.SOFT, - dependencies: this.project.configuration.normalizeDependencyMap(new Map([...workspace.manifest.dependencies])), - peerDependencies: new Map([...workspace.manifest.peerDependencies]), - dependenciesMeta: workspace.manifest.dependenciesMeta, - peerDependenciesMeta: workspace.manifest.peerDependenciesMeta, - bin: workspace.manifest.bin, - }; - } - return this.resolver.resolve(locator, opts); - }; - const resolvedPackage = await resolve(); - const dependencies = new Map(); - for (const [hash, descriptor] of resolvedPackage.dependencies.entries()) { - if (this.stripTypes && descriptor.scope === 'types') { - continue; - } - dependencies.set(hash, descriptor); + return fslib_1.xfs.mktempPromise(async (logDir) => { + const workspacePretty = core_1.structUtils.slugifyLocator(locator); + const logFile = fslib_1.ppath.join(logDir, `${workspacePretty}-pack.log`); + const header = `# This file contains the result of Yarn calling packing "${workspacePretty}" ("${workspace.cwd}")\n`; + const { stdout, stderr, } = configuration.getSubprocessStreams(logFile, { + report, + prefix: core_1.structUtils.prettyLocator(configuration, workspace.anchoredLocator), + header, + }); + const packReport = await core_1.StreamReport.start({ + configuration, + stdout, + }, async () => { + /** noop **/ + }); + try { + let buffer; + await plugin_pack_1.packUtils.prepareForPack(workspace, { report: packReport }, async () => { + packReport.reportJson({ base: workspace.cwd }); + const files = await plugin_pack_1.packUtils.genPackList(workspace); + for (const file of files) { + packReport.reportInfo(null, file); + packReport.reportJson({ location: file }); + } + const pack = await plugin_pack_1.packUtils.genPackStream(workspace, files); + buffer = await core_1.miscUtils.bufferStream(pack); + }); + return await core_1.miscUtils.releaseAfterUseAsync(async () => { + return await core_1.tgzUtils.convertToZip(buffer, { + configuration, + stripComponents: 1, + prefixPath: core_1.structUtils.getIdentVendorPath(locator), + }); + }); + } + catch (error) { + fslib_1.xfs.detachTemp(logDir); + if (error instanceof Error) { + stderr.write(error.stack); + } + throw new core_1.ReportError(core_1.MessageName.LIFECYCLE_SCRIPT, `Packing ${workspacePretty} failed, logs can be found here: ${core_1.formatUtils.pretty(configuration, logFile, core_1.formatUtils.Type.PATH)}); run ${core_1.formatUtils.pretty(configuration, `yarn ${fslib_1.ppath.relative(this.project.cwd, workspace.cwd)} pack`, core_1.formatUtils.Type.CODE)} to investigate`); + } + finally { + await packReport.finalize(); + stdout.end(); + stderr.end(); + } + }); + } + async makeTemporaryCache(cache) { + const { configuration: { startingCwd, plugins, }, check, immutable, cwd, } = cache; + const configuration = core_1.Configuration.create(startingCwd, plugins); + configuration.useWithSource('', { enableMirror: false }, startingCwd, { overwrite: true }); + return new core_1.Cache(cwd, { + configuration, + check, + immutable, + }); } - return { - ...resolvedPackage, - dependencies, - }; - } - async getSatisfying( - // eslint-disable-next-line @typescript-eslint/no-unused-vars - _descriptor, - // eslint-disable-next-line @typescript-eslint/no-unused-vars - _references, - // eslint-disable-next-line @typescript-eslint/no-unused-vars - _opts) { - return null; - } } - exports.ProductionInstallResolver = ProductionInstallResolver; + exports.ProductionInstallFetcher = ProductionInstallFetcher; } /** - * The function `__util` is a direct wrapper of the corresponding file from the `plugin-prod-install` - * yarn plugin developed by Larry1123. This code remains unmodified from the original implementation. - * The original file can be found at: - * https://gitlab.com/Larry1123/yarn-contrib/-/blob/master/packages/plugin-production-install/lib/util.js. - * - * Note: This wrapper is created to integrate with yarn 4, as the original plugin is - * not maintained and is incompatible with this version of yarn. + * Wrapper function for the `ProductionInstallResolver` implementation from the + * Yarn plugin by Larry1123. The original source code remains unmodified and can be found here: + * https://gitlab.com/Larry1123/yarn-contrib/-/blob/master/packages/plugin-production-install/lib/ProductionInstallResolver.js */ -const __util = (require, exports) => { +const $21b96eaf43130d3dd76329489e7cca5d = (require, exports) => { + "use strict"; /* * Copyright 2020 Larry1123 * @@ -601,61 +409,133 @@ const __util = (require, exports) => { * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); - exports.copyFolderRecursivePromise = exports.copyFolder = exports.copyFile = void 0; + exports.ProductionInstallResolver = void 0; // imports - const fslib_1 = require("@yarnpkg/fslib"); - async function copyFile(src, dist, file) { - await fslib_1.xfs.mkdirpPromise(fslib_1.ppath.dirname(fslib_1.ppath.resolve(dist, file))); - return fslib_1.xfs.copyFilePromise(fslib_1.ppath.resolve(src, file), fslib_1.ppath.resolve(dist, file)); - } - exports.copyFile = copyFile; - async function copyFolder(src, dist, folder, exclude = []) { - return copyFolderRecursivePromise(fslib_1.ppath.resolve(src, folder), fslib_1.ppath.resolve(dist, folder), exclude); - } - exports.copyFolder = copyFolder; - async function copyFolderRecursivePromise(source, target, exclude = []) { - if ((await fslib_1.xfs.lstatPromise(source)).isDirectory()) { - if (!(await fslib_1.xfs.existsPromise(target))) { - await fslib_1.xfs.mkdirpPromise(target); + const core_1 = require("@yarnpkg/core"); + class ProductionInstallResolver { + constructor({ resolver, project, stripTypes = true, }) { + this.resolver = resolver; + this.project = project; + this.stripTypes = stripTypes; + } + supportsDescriptor(descriptor, opts) { + descriptor = opts.project.configuration.normalizeDependency(descriptor); + return this.resolver.supportsDescriptor(descriptor, { + project: opts.project, + resolver: this, + }); + } + supportsLocator(locator, opts) { + locator = opts.project.configuration.normalizeLocator(locator); + return this.resolver.supportsLocator(locator, { + project: opts.project, + resolver: this, + }); } - const files = await fslib_1.xfs.readdirPromise(source); - for (const file of files) { - const curSource = fslib_1.ppath.resolve(source, file); - const curTarget = fslib_1.ppath.resolve(target, file); - const isExcluded = () => { - for (const portablePath of exclude) { - if (curSource.endsWith(portablePath)) - return true; + shouldPersistResolution(locator, opts) { + locator = opts.project.configuration.normalizeLocator(locator); + if (locator.reference.startsWith(core_1.WorkspaceResolver.protocol)) { + return false; + } + else { + return this.resolver.shouldPersistResolution(locator, { + project: opts.project, + resolver: this, + }); } - return false; - }; - if (!isExcluded()) { - if ((await fslib_1.xfs.lstatPromise(curSource)).isDirectory()) { - await copyFolderRecursivePromise(curSource, curTarget, exclude); + } + bindDescriptor(descriptor, fromLocator, opts) { + descriptor = opts.project.configuration.normalizeDependency(descriptor); + fromLocator = opts.project.configuration.normalizeLocator(fromLocator); + return this.resolver.bindDescriptor(descriptor, fromLocator, { + project: opts.project, + resolver: this, + }); + } + getResolutionDependencies(descriptor, opts) { + descriptor = opts.project.configuration.normalizeDependency(descriptor); + return this.resolver.getResolutionDependencies(descriptor, { + project: opts.project, + resolver: this, + }); + } + async getCandidates(descriptor, dependencies, opts) { + descriptor = opts.project.configuration.normalizeDependency(descriptor); + if (descriptor.range.startsWith(core_1.WorkspaceResolver.protocol) && + descriptor.range !== `${core_1.WorkspaceResolver.protocol}.`) { + const workplace = this.project.getWorkspaceByDescriptor(descriptor); + return [workplace.anchoredLocator]; } else { - await fslib_1.xfs.copyFilePromise(curSource, curTarget); + return this.resolver.getCandidates(descriptor, dependencies, { + project: opts.project, + resolver: this, + fetchOptions: opts.fetchOptions, + report: opts.report, + }); + } + } + async resolve(locator, opts) { + locator = opts.project.configuration.normalizeLocator(locator); + const resolve = async () => { + if (locator.reference.startsWith(core_1.WorkspaceResolver.protocol) && + locator.reference !== `${core_1.WorkspaceResolver.protocol}.`) { + const workspace = this.project.getWorkspaceByLocator(locator); + return { + ...locator, + version: workspace.manifest.version || `0.0.0`, + languageName: `unknown`, + linkType: core_1.LinkType.HARD, + dependencies: new Map([...workspace.manifest.dependencies]), + peerDependencies: new Map([...workspace.manifest.peerDependencies]), + dependenciesMeta: workspace.manifest.dependenciesMeta, + peerDependenciesMeta: workspace.manifest.peerDependenciesMeta, + bin: workspace.manifest.bin, + }; + } + return this.resolver.resolve(locator, { + project: opts.project, + resolver: this, + fetchOptions: opts.fetchOptions, + report: opts.report, + }); + }; + const resolvedPackage = await resolve(); + const dependencies = new Map(); + for (const [hash, descriptor] of resolvedPackage.dependencies.entries()) { + if (this.stripTypes && descriptor.scope === 'types') { + continue; + } + dependencies.set(hash, descriptor); } - } + return { + ...resolvedPackage, + dependencies, + }; + } + async getSatisfying(descriptor, dependencies, locators, opts) { + descriptor = opts.project.configuration.normalizeDependency(descriptor); + locators = locators.map(locator => opts.project.configuration.normalizeLocator(locator)); + const packageExtensions = await opts.project.configuration.getPackageExtensions(); + Object.keys(dependencies).forEach(key => dependencies[key] = opts.project.configuration.normalizePackage(dependencies[key], { packageExtensions })); + return this.resolver.getSatisfying(descriptor, dependencies, locators, { + project: opts.project, + resolver: this, + fetchOptions: opts.fetchOptions, + report: opts.report, + }); } - } - else { - throw new Error('src not a folder'); - } } - exports.copyFolderRecursivePromise = copyFolderRecursivePromise; + exports.ProductionInstallResolver = ProductionInstallResolver; } /** - * The function `__dependenciesUtils` is a direct wrapper of the corresponding file from the `plugin-prod-install` - * yarn plugin developed by Larry1123. This code remains unmodified from the original implementation. - * The original file can be found at: - * https://gitlab.com/Larry1123/yarn-contrib/-/blob/master/packages/yarn-utils/lib/dependenciesUtils.js. - * - * Note: This wrapper is created to integrate with yarn 4, as the original plugin is - * not maintained and is incompatible with this version of yarn. + * Wrapper function for the `productionInstall` implementation from the + * Yarn plugin by Larry1123. The original source code remains unmodified and can be found here: + * https://gitlab.com/Larry1123/yarn-contrib/-/blob/master/packages/plugin-production-install/lib/commands/productionInstall.js */ -const __dependenciesUtils = (require, exports) => { +const $615abc4097bb853456dfd228f0f8bd09 = (require, exports) => { + "use strict"; /* * Copyright 2020 Larry1123 * @@ -672,29 +552,239 @@ const __dependenciesUtils = (require, exports) => { * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); - exports.getDependents = void 0; - /** - * Get all packages that depend on a given package - * - * Be sure to have ran @{link Project#restoreInstallState} if needed - * - * @param project Project to search within - * @param searchPackage Package to find as a dependency - */ - async function getDependents(project, searchPackage) { - const collected = []; - for (const dependencyPackage of project.storedPackages.values()) { - for (const dependencyDescriptor of dependencyPackage.dependencies.values()) { - const resolutionLocatorHash = project.storedResolutions.get(dependencyDescriptor.descriptorHash); - if (resolutionLocatorHash === searchPackage.locatorHash) { - collected.push(dependencyPackage); - break; - } + exports.ProdInstall = void 0; + // imports + const core_1 = require("@yarnpkg/core"); + const MultiResolver_1 = require("../MultiResolver"); + const core_2 = require("@yarnpkg/core"); + const cli_1 = require("@yarnpkg/cli"); + const fslib_1 = require("@yarnpkg/fslib"); + const plugin_patch_1 = require("@yarnpkg/plugin-patch"); + const plugin_pack_1 = require("@yarnpkg/plugin-pack"); + const plugin_pnp_1 = require("@yarnpkg/plugin-pnp"); + const clipanion_1 = require("clipanion"); + const yarn_utils_1 = require("@larry1123/yarn-utils"); + const util_1 = require("../util"); + const ProductionInstallFetcher_1 = require("../ProductionInstallFetcher"); + const ProductionInstallResolver_1 = require("../ProductionInstallResolver"); + class ProdInstall extends clipanion_1.Command { + constructor() { + super(...arguments); + this.outDirectory = clipanion_1.Option.String({ name: 'outDirectory' }); + this.json = clipanion_1.Option.Boolean(`--json`, false, { description: 'Format the output as an NDJSON stream' }); + this.stripTypes = clipanion_1.Option.Boolean('--strip-types', true, { description: 'Use --no-strip-types to not strip `@types/*` dependencies' }); + this.pack = clipanion_1.Option.Boolean('--pack', false); + this.silent = clipanion_1.Option.Boolean('--silent', false, { hidden: true }); + this.production = clipanion_1.Option.Boolean(`--production`, true, { description: 'Use --no-production to not strip devDependencies' }); + this.injectCjsPnp = clipanion_1.Option.String(`--injectCjsPnp`, '', { description: 'Expermental!: Use --injectCjsPnp to inject a require to the .pnp.cjs file, this requires pack to be enabled' }); + } + async execute() { + const configuration = await core_1.Configuration.find(this.context.cwd, this.context.plugins); + const { project, workspace, } = await core_1.Project.find(configuration, this.context.cwd); + await project.restoreInstallState(); + if (!workspace) { + throw new cli_1.WorkspaceRequiredError(project.cwd, this.context.cwd); + } + const cache = await core_1.Cache.find(configuration, { + immutable: true, + check: false, + }); + const rootDirectoryPath = project.topLevelWorkspace.cwd; + const outDirectoryPath = fslib_1.npath.isAbsolute(this.outDirectory) + ? fslib_1.npath.toPortablePath(this.outDirectory) + : fslib_1.ppath.join(workspace.cwd, fslib_1.npath.toPortablePath(this.outDirectory)); + const report = await core_1.StreamReport.start({ + configuration, + json: this.json, + stdout: this.context.stdout, + }, async (report) => { + await report.startTimerPromise('Setting up production directory', async () => { + await fslib_1.xfs.mkdirpPromise(outDirectoryPath); + await (0, util_1.copyFile)(rootDirectoryPath, outDirectoryPath, fslib_1.Filename.lockfile); + await (0, util_1.copyFile)(rootDirectoryPath, outDirectoryPath, configuration.get(`rcFilename`)); + await (0, util_1.copyFile)(workspace.cwd, outDirectoryPath, fslib_1.Filename.manifest); + const yarnExcludes = []; + const checkConfigurationToExclude = (config) => { + try { + if (configuration.get(config)) { + yarnExcludes.push(configuration.get(config)); + } + } + catch (_) { + // noop + } + }; + checkConfigurationToExclude('installStatePath'); + checkConfigurationToExclude('cacheFolder'); + checkConfigurationToExclude('deferredVersionFolder'); + await configuration.triggerHook((hooks) => { + return hooks.populateYarnPaths; + }, project, (path) => { + if (path) { + yarnExcludes.push(path); + } + }); + await (0, util_1.copyFolder)(rootDirectoryPath, outDirectoryPath, `.yarn`, yarnExcludes); + }); + await report.startTimerPromise('Installing production version', async () => { + const outConfiguration = await core_1.Configuration.find(outDirectoryPath, this.context.plugins); + if (this.stripTypes) { + const packageExtensions = await outConfiguration.getPackageExtensions(); + for (const extensionsByIdent of packageExtensions.values()) { + for (const [, extensionsByRange] of extensionsByIdent) { + for (const extension of extensionsByRange) { + if (extension.type === core_1.PackageExtensionType.Dependency && extension.descriptor.scope === 'types') { + extension.status = core_1.PackageExtensionStatus.Inactive; + } + } + } + } + } + const { project: outProject, workspace: outWorkspace, } = await core_1.Project.find(outConfiguration, outDirectoryPath); + if (!outWorkspace) { + throw new cli_1.WorkspaceRequiredError(project.cwd, this.context.cwd); + } + if (this.production) { + outWorkspace.manifest.devDependencies.clear(); + } + // carry root package resolutions into out project + for (const [original, resolution] of project.resolutionAliases) { + outProject.resolutionAliases.set(original, resolution); + } + const outCache = await core_1.Cache.find(outConfiguration, { + immutable: false, + check: false, + }); + const multiFetcher = outConfiguration.makeFetcher(); + const realResolver = configuration.makeResolver(); + const multiResolver = new MultiResolver_1.MultiResolver([ + new core_2.LockfileResolver(realResolver), + realResolver, + ]); + const resolver = new ProductionInstallResolver_1.ProductionInstallResolver({ + project, + resolver: multiResolver, + stripTypes: this.stripTypes, + }); + const fetcher = new ProductionInstallFetcher_1.ProductionInstallFetcher({ + cache, + fetcher: multiFetcher, + project, + }); + await this.modifyOriginalResolutions(outProject, resolver, { + project: outProject, + fetchOptions: { + cache: outCache, + project: outProject, + fetcher, + checksums: outProject.storedChecksums, + report, + }, + resolver, + report, + }); + await outProject.install({ + cache: outCache, + report, + immutable: false, + fetcher, + resolver, + checkResolutions: false, + persistProject: false, + }); + await report.startTimerPromise('Cleaning up unused dependencies', async () => { + const toRemove = []; + toRemove.push(...(await this.getPatchSourcesToRemove(outProject, outCache))); + for (const locatorPath of toRemove) { + if (await fslib_1.xfs.existsPromise(locatorPath)) { + report.reportInfo(core_1.MessageName.UNUSED_CACHE_ENTRY, `${fslib_1.ppath.basename(locatorPath)} appears to be unused - removing`); + await fslib_1.xfs.removePromise(locatorPath); + } + } + }); + }); + if (this.pack) { + await report.startTimerPromise('Packing workspace ', async () => { + await plugin_pack_1.packUtils.prepareForPack(workspace, { report }, async () => { + report.reportJson({ base: workspace.cwd }); + const files = await plugin_pack_1.packUtils.genPackList(workspace); + for (const file of files) { + report.reportInfo(null, file); + report.reportJson({ location: file }); + if (file.endsWith(fslib_1.Filename.manifest)) { + const manifest = await plugin_pack_1.packUtils.genPackageManifest(workspace); + await fslib_1.xfs.writeJsonPromise(fslib_1.ppath.resolve(outDirectoryPath, file), manifest); + } + else { + await (0, util_1.copyFile)(workspace.cwd, outDirectoryPath, file); + } + } + }); + }); + if (this.injectCjsPnp) { + // Expermental + await report.startTimerPromise('Injecting .pnp.cjs call into file ', async () => { + const fileToInjectPath = fslib_1.npath.isAbsolute(this.injectCjsPnp) + ? fslib_1.npath.toPortablePath(this.injectCjsPnp) + : fslib_1.ppath.join(outDirectoryPath, fslib_1.npath.toPortablePath(this.injectCjsPnp)); + await fslib_1.xfs.statPromise(fileToInjectPath); + const fileToInject = await fslib_1.xfs.readFilePromise(fileToInjectPath, 'utf8'); + const outConfiguration = await core_1.Configuration.find(outDirectoryPath, this.context.plugins); + const { project: outProject, } = await core_1.Project.find(outConfiguration, outDirectoryPath); + const { cjs: cjsPnpFile, } = (0, plugin_pnp_1.getPnpPath)(outProject); + const relativeCjsPnpFilePath = fslib_1.ppath.relative(fslib_1.ppath.dirname(fileToInjectPath), cjsPnpFile); + const injectedFile = `require('${relativeCjsPnpFilePath}').setup()\n${fileToInject}`; + await fslib_1.xfs.writeFilePromise(fileToInjectPath, injectedFile); + }); + } + } + }); + return report.exitCode(); + } + async getPatchSourcesToRemove(project, cache) { + var _a; + const patchedPackages = []; + project.storedPackages.forEach((storedPackage) => { + if (storedPackage.reference.startsWith('patch:')) { + patchedPackages.push(storedPackage); + } + }); + const toRemove = []; + for (const patchedPackage of patchedPackages) { + const { sourceLocator, } = plugin_patch_1.patchUtils.parseLocator(patchedPackage); + const sourcePackage = project.storedPackages.get(sourceLocator.locatorHash); + if (!sourcePackage) { + // This should be an error but currently not going to throw + break; + } + const dependencies = await yarn_utils_1.dependenciesUtils.getDependents(project, sourcePackage); + if (dependencies.filter((pkg) => pkg.locatorHash !== patchedPackage.locatorHash).length > 0) { + const locatorPath = cache.getLocatorPath(sourceLocator, (_a = project.storedChecksums.get(sourceLocator.locatorHash)) !== null && _a !== void 0 ? _a : null); + if (locatorPath) { + toRemove.push(locatorPath); + } + } + } + return toRemove; + } + async modifyOriginalResolutions(project, resolver, opts) { + await opts.report.startTimerPromise('Modifying original install state', async () => { + for (const [locatorHash, originalPackage,] of project.originalPackages.entries()) { + const resolvedPackage = await resolver.resolve(originalPackage, opts); + project.originalPackages.set(locatorHash, resolvedPackage); + } + }); } - } - return collected; } - exports.getDependents = getDependents; + exports.ProdInstall = ProdInstall; + ProdInstall.paths = [['prod-install']]; + ProdInstall.usage = clipanion_1.Command.Usage({ + description: 'INSTALL!', + details: 'prod only install', + examples: [ + [`Install the project with only prod dependencies`, `$0 prod-install`], + ], + }); } module.exports = { diff --git a/.yarnrc.yml b/.yarnrc.yml index 30483d4090..7ffbf83012 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -12,18 +12,21 @@ immutablePatterns: logFilters: - code: YN0005 level: discard - - code : YN0086 + - code: YN0086 level: discard packageExtensions: + "@codemirror/lang-yaml@*": + dependencies: + "@lezer/lr": "*" "@pinia/testing@*": peerDependencies: vue: "*" "@vue/test-utils@*": dependencies: - vue: "*" "@vue/compiler-dom": "*" "@vue/server-renderer": "*" + vue: "*" "@vueuse/core@*": peerDependencies: vue: "*" @@ -36,20 +39,15 @@ packageExtensions: "@vueuse/shared@*": peerDependencies: vue: "*" + eslint-module-utils@*: + dependencies: + eslint-import-resolver-alias: "*" splitpanes@*: dependencies: vue: "*" - "@codemirror/lang-yaml@*": - dependencies: - "@lezer/lr": "*" - "eslint-module-utils@*": - dependencies: - eslint-import-resolver-alias: "*" plugins: - - checksum: ba78c78f5d189f252d4d5e21e924611e496f41dddae35690823bc28dfeccb8f2cb5caf992163503fadf9eece9a70164dd0676ad51aa0692d293d4d123d3f1c34 - path: .yarn/plugins/plugin-prod-install.cjs - spec: scripts/plugin-prod-install.cjs + - path: .yarn/plugins/plugin-prod-install.cjs pnpEnableEsmLoader: true diff --git a/Dockerfile b/Dockerfile index 5ec5ddd00f..4274e8ac50 100644 --- a/Dockerfile +++ b/Dockerfile @@ -40,11 +40,11 @@ RUN yarn install --immutable --immutable-cache RUN yarn constraints # run lint -RUN yarn workspace @gardener-dashboard/logger run lint -RUN yarn workspace @gardener-dashboard/request run lint -RUN yarn workspace @gardener-dashboard/kube-config run lint -RUN yarn workspace @gardener-dashboard/kube-client run lint -RUN yarn workspace @gardener-dashboard/monitor run lint +RUN yarn workspace @gardener-dashboard/logger run lint-sarif +RUN yarn workspace @gardener-dashboard/request run lint-sarif +RUN yarn workspace @gardener-dashboard/kube-config run lint-sarif +RUN yarn workspace @gardener-dashboard/kube-client run lint-sarif +RUN yarn workspace @gardener-dashboard/monitor run lint-sarif # run test --coverage RUN yarn workspace @gardener-dashboard/logger run test --coverage @@ -72,8 +72,8 @@ ENTRYPOINT [ "tini", "--", "node"] FROM builder AS dashboard-builder # run lint -RUN yarn workspace @gardener-dashboard/backend run lint -RUN yarn workspace @gardener-dashboard/frontend run lint +RUN yarn workspace @gardener-dashboard/backend run lint-sarif +RUN yarn workspace @gardener-dashboard/frontend run lint-sarif # run test --coverage RUN yarn workspace @gardener-dashboard/backend run test --coverage diff --git a/backend/package.json b/backend/package.json index a1f4946244..96450e63e6 100644 --- a/backend/package.json +++ b/backend/package.json @@ -28,6 +28,7 @@ "scripts": { "serve": "cross-env NODE_ENV=development node server.js", "lint": "eslint server.js . --max-warnings=0", + "lint-sarif": "yarn lint --format=@microsoft/eslint-formatter-sarif", "test": "cross-env NODE_ENV=test jest", "test-coverage": "yarn test --coverage" }, @@ -74,6 +75,7 @@ }, "devDependencies": { "@gardener-dashboard/test-utils": "workspace:^", + "@microsoft/eslint-formatter-sarif": "^3.1.0", "abort-controller": "^3.0.0", "cross-env": "^7.0.3", "dockerfile-ast": "^0.7.0", diff --git a/frontend/__tests__/composables/useApi.spec.js b/frontend/__tests__/composables/useApi.spec.js index 62e98087ae..06b37362c6 100644 --- a/frontend/__tests__/composables/useApi.spec.js +++ b/frontend/__tests__/composables/useApi.spec.js @@ -11,6 +11,15 @@ import { isUnauthorizedError, } from '@/composables/useApi/fetch' +async function concatStream (stream) { + let chunks = '' + const decoder = new TextDecoder('utf-8') + for await (const chunk of stream) { + chunks += decoder.decode(chunk) + } + return chunks +} + describe('composables', () => { describe('useApi', () => { afterEach(() => { @@ -72,14 +81,6 @@ describe('composables', () => { expect(res.data).toEqual(text) }) - it('should respond with status 100', async () => { - const status = 100 - fetch.mockResponseOnce(null, { - status, - }) - await expect(fetchWrapper(url)).rejects.toThrowError(`Unexpected informational response with status code ${status}`) - }) - it('should respond with status 300', async () => { const status = 300 fetch.mockResponseOnce(null, { @@ -123,7 +124,8 @@ describe('composables', () => { 'x-requested-with': 'XMLHttpRequest', 'content-type': 'application/json; charset=UTF-8', }) - expect(JSON.parse(req.body)).toEqual(data) + const body = await concatStream(req.body) + expect(JSON.parse(body)).toEqual(data) }) it('should send a request with text content', async () => { @@ -145,7 +147,8 @@ describe('composables', () => { 'x-requested-with': 'XMLHttpRequest', 'content-type': 'text/plain; charset=UTF-8', }) - expect(req.body.toString('utf8')).toEqual(text) + const body = await concatStream(req.body) + expect(body).toEqual(text) }) describe('intercepting the fetch response', () => { diff --git a/frontend/__tests__/composables/useShootEditor.spec.js b/frontend/__tests__/composables/useCodemirror.spec.js similarity index 99% rename from frontend/__tests__/composables/useShootEditor.spec.js rename to frontend/__tests__/composables/useCodemirror.spec.js index b006b9da99..e8447c0393 100644 --- a/frontend/__tests__/composables/useShootEditor.spec.js +++ b/frontend/__tests__/composables/useCodemirror.spec.js @@ -12,7 +12,7 @@ import { StateEffect, } from '@codemirror/state' -import { EditorCompletions } from '@/composables/useShootEditor/helper' +import { EditorCompletions } from '@/composables/useCodemirror/helper' import repeat from 'lodash/repeat' @@ -67,7 +67,7 @@ const shootCompletions = { } describe('composables', () => { - describe('useShootEditor', () => { + describe('useCodemirror', () => { describe('EditorCompletions', () => { let editorView let setEditorContentAndCursor diff --git a/frontend/package.json b/frontend/package.json index 6e31dd23ca..0c6e2efc8d 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -27,6 +27,7 @@ "build": "vite build", "preview": "vite preview", "lint": "eslint . --max-warnings=0", + "lint-sarif": "yarn lint --format=@microsoft/eslint-formatter-sarif", "test": "vitest run" }, "dependencies": { @@ -45,9 +46,9 @@ "@mdi/font": "7.4.47", "@vuelidate/core": "^2.0.3", "@vuelidate/validators": "^2.0.4", - "@vueuse/core": "^11.0.0-0", - "@vueuse/integrations": "^11.0.0-0", - "@vueuse/router": "^11.0.0-0", + "@vueuse/core": "^12.0.0", + "@vueuse/integrations": "^12.0.0", + "@vueuse/router": "^12.0.0", "@xterm/addon-fit": "^0.10.0", "@xterm/addon-web-links": "^0.11.0", "@xterm/xterm": "^5.5.0", @@ -81,6 +82,7 @@ "vuetify": "^3.5.10" }, "devDependencies": { + "@microsoft/eslint-formatter-sarif": "^3.1.0", "@pinia/testing": "^0.1.3", "@typescript-eslint/utils": "^8.12.2", "@vitejs/plugin-basic-ssl": "^1.1.0", @@ -102,11 +104,11 @@ "sass": "~1.79.0", "typescript": "^5.6.3", "unplugin-fonts": "^1.1.1", - "vite": "^5.1.6", + "vite": "^6.0.0", "vite-plugin-compression": "^0.5.1", "vite-plugin-vuetify": "^2.0.3", "vitest": "^2.0.0", - "vitest-fetch-mock": "^0.3.0" + "vitest-fetch-mock": "^0.4.0" }, "packageManager": "yarn@4.5.3", "engines": { diff --git a/frontend/src/composables/useApi/fetch.js b/frontend/src/composables/useApi/fetch.js index ea5d642780..dedf1fe6b9 100644 --- a/frontend/src/composables/useApi/fetch.js +++ b/frontend/src/composables/useApi/fetch.js @@ -46,6 +46,11 @@ export function fetchWrapper (url, { method = 'GET', cache = 'no-cache', headers } } promise = promise.then(args => { + try { + new URL(args[0]) // eslint-disable-line no-new + } catch (err) { + args[0] = new URL(args[0], window.location.origin) + } const request = new Request(...args) return fetch(request).then(fulfilledFn(request), rejectedFn(request)) }) diff --git a/frontend/src/composables/useShootEditor/helper.js b/frontend/src/composables/useCodemirror/helper.js similarity index 79% rename from frontend/src/composables/useShootEditor/helper.js rename to frontend/src/composables/useCodemirror/helper.js index 69792ec6f9..9053c25bdc 100644 --- a/frontend/src/composables/useShootEditor/helper.js +++ b/frontend/src/composables/useCodemirror/helper.js @@ -4,15 +4,27 @@ // SPDX-License-Identifier: Apache-2.0 // +import { + computed, + watch, +} from 'vue' +import { useUrlSearchParams } from '@vueuse/core' import { EditorView, MatchDecorator, Decoration, ViewPlugin, + lineNumbers, } from '@codemirror/view' +import { + StateEffect, + EditorSelection, + StateField, +} from '@codemirror/state' import { useLogger } from '@/composables/useLogger' +import get from 'lodash/get' import trim from 'lodash/trim' import nth from 'lodash/nth' import filter from 'lodash/filter' @@ -22,7 +34,6 @@ import words from 'lodash/words' import repeat from 'lodash/repeat' import upperFirst from 'lodash/upperFirst' import flatMap from 'lodash/flatMap' -import get from 'lodash/get' import unset from 'lodash/unset' import forIn from 'lodash/forIn' import isEqual from 'lodash/isEqual' @@ -64,6 +75,130 @@ export function createWhitespaceViewPlugin () { return ViewPlugin.define(create, spec) } +export function useSelection () { + const params = useUrlSearchParams('hash-params') + + const valuesFromParams = () => { + const line = params.line ?? '' + const values = line.split('-') + .map(value => parseInt(value, 10)) + .sort((a, b) => a - b) + return values.every(Number.isInteger) + ? values + : [] + } + + return computed({ + get () { + return valuesFromParams() + }, + set (values = []) { + const valuesCurrent = valuesFromParams() + + let [startLine, endLine = startLine] = values + const [startLineCurrent, endLineCurrent] = valuesCurrent + + if (endLine === startLine && startLine === startLineCurrent && !endLineCurrent) { + startLine = null + } + + if (!startLine || !values.every(Number.isInteger)) { + params.line = null + } else if (startLine === endLine) { + params.line = `${startLine}` + } else if (startLine > endLine) { + params.line = `${endLine}-${startLine}` + } else { + params.line = `${startLine}-${endLine}` + } + }, + }) +} + +export function useLineHighlighter (view) { + view.dom.classList.add('g-cm-line-highlighter') + + const selection = useSelection() + const [startLine] = selection.value + + if (startLine) { + const pos = view.state.doc.line(startLine).from + view.dispatch({ + selection: EditorSelection.cursor(pos), + effects: EditorView.scrollIntoView(pos, { y: 'center' }), + }) + } + + const stateEffectType = StateEffect.define() + const stateField = StateField.define({ + create () { + return Decoration.none + }, + update (highlights, tr) { + // need to re-add when editor updates + view.dom.classList.add('g-cm-line-highlighter') + + for (const effect of tr.effects) { + if (effect.is(stateEffectType)) { + return effect.value + } + } + return highlights + }, + provide (f) { + return EditorView.decorations.from(f) + }, + }) + + const lineNumberGutterExtension = lineNumbers({ + domEventHandlers: { + mousedown (view, line, event) { + const lineNumber = view.state.doc.lineAt(line.from).number + const [startLine] = selection.value + selection.value = startLine && startLine !== lineNumber && event.shiftKey + ? [startLine, lineNumber] + : [lineNumber] + }, + }, + }) + + // Apply the StateField to the editor's state + view.dispatch({ + effects: [ + StateEffect.appendConfig.of(stateField), + StateEffect.appendConfig.of(lineNumberGutterExtension), + ], + }) + + const destroy = watch(selection, value => { + const lineCount = view.state.doc.lines + const [ + startLine, + endLine = startLine, + ] = value.map(value => { + value = Math.min(value, lineCount) + value = Math.max(1, value) + return view.state.doc.line(value).from + }) + + const decorations = [] + if (startLine && endLine) { + decorations.push(Decoration.line({ class: 'g-highlighted--top' }).range(startLine)) + for (let line = startLine; line <= endLine; line++) { + decorations.push(Decoration.line({ class: 'g-highlighted' }).range(line)) + } + decorations.push(Decoration.line({ class: 'g-highlighted--bottom' }).range(endLine)) + } + view.dispatch({ + effects: stateEffectType.of(Decoration.set(decorations)), + }) + }, { + immediate: true, + }) + + return { destroy } +} + export class EditorCompletions { constructor (shootProperties, options = {}) { const { diff --git a/frontend/src/composables/useCodemirror/index.js b/frontend/src/composables/useCodemirror/index.js new file mode 100644 index 0000000000..0eafec9418 --- /dev/null +++ b/frontend/src/composables/useCodemirror/index.js @@ -0,0 +1,291 @@ +// +// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 +// +import { computed } from 'vue' +import { + EditorView, + keymap, + highlightActiveLine, + lineNumbers, +} from '@codemirror/view' +import { + EditorState, + Compartment, +} from '@codemirror/state' +import { + indentUnit, + syntaxHighlighting, + defaultHighlightStyle, +} from '@codemirror/language' +import { + defaultKeymap, + indentWithTab, + history, + historyKeymap, + undo, + redo, + undoDepth, + redoDepth, +} from '@codemirror/commands' +import { autocompletion } from '@codemirror/autocomplete' +import { searchKeymap } from '@codemirror/search' +import { + oneDark, + oneDarkHighlightStyle, +} from '@codemirror/theme-one-dark' +import { yaml } from '@codemirror/lang-yaml' + +import { useLogger } from '@/composables/useLogger' +import { useApi } from '@/composables/useApi' +import { useShootSchemaDefinition } from '@/composables/useShootSchemaDefinition' + +import { + createWhitespaceViewPlugin, + useLineHighlighter, + EditorCompletions, +} from './helper' + +import get from 'lodash/get' +import noop from 'lodash/noop' + +function dispatchEffects (view, effects) { + view.dispatch({ effects }) +} + +const readOnlyCompartment = new Compartment() + +function createReadOnlyExtension (value) { + return EditorState.readOnly.of(value) +} + +function dispatchReadOnlyEffect (view, value) { + const content = createReadOnlyExtension(value) + dispatchEffects(view, readOnlyCompartment.reconfigure(content)) +} + +const themeCompartment = new Compartment() + +function createThemeExtension (value) { + const ext = [] + if (value) { + ext.push(oneDark) + ext.push(syntaxHighlighting(oneDarkHighlightStyle)) + } else { + ext.push(syntaxHighlighting(defaultHighlightStyle)) + } + return ext +} + +function dispatchThemeEffect (view, value) { + const content = createThemeExtension(value) + dispatchEffects(view, themeCompartment.reconfigure(content)) +} + +const historyCompartment = new Compartment() + +function createHistoryExtension (value) { + return value + ? history() + : [] +} + +function dispatchHistoryEffect (view, value) { + const content = createHistoryExtension(value) + dispatchEffects(view, historyCompartment.reconfigure(content)) +} + +const whitespaceViewPlugin = createWhitespaceViewPlugin() +const whitespacesCompartment = new Compartment() + +function createWhitespaceExtension (value) { + return value + ? whitespaceViewPlugin + : [] +} + +function dispatchWhitespaceEffect (view, value) { + const content = createWhitespaceExtension(value) + dispatchEffects(view, whitespacesCompartment.reconfigure(content)) +} + +export function useCodemirror (element, options) { + const { + api = useApi(), + logger = useLogger(), + doc = '', + onDocChanged = noop, + showTooltip = noop, + hideTooltip = noop, + extraKeys = [], + completionPaths = [], + readOnly = false, + darkMode = false, + disableLineHighlighting = false, + } = options + + const schemaDefinition = useShootSchemaDefinition({ api }) + const completions = computed(() => { + if (!schemaDefinition.value) { + return null + } + const shootProperties = get(schemaDefinition.value, ['properties'], {}) + return new EditorCompletions(shootProperties, { + indentUnit: view.state.facet(indentUnit).length, + supportedPaths: completionPaths, + logger, + }) + }) + + const enterKey = { + key: 'Enter', + run (view) { + completions.value?.editorEnter(view) + return true + }, + } + + let initialDocValue = doc + let mouseoverTimeoutId + + const state = EditorState.create({ + doc, + extensions: [ + yaml(), + highlightActiveLine(), + EditorView.lineWrapping, // Enable line wrapping + EditorView.updateListener.of(e => { + if (e.docChanged) { + const docValue = e.state.doc.toString() + onDocChanged({ + modified: docValue !== initialDocValue, + undoDepth: undoDepth(e.state), + redoDepth: redoDepth(e.state), + }) + } + }), + EditorView.domEventHandlers({ + mouseover (e, view) { + mouseoverTimeoutId = setTimeout(() => { + const tooltip = completions.value?.editorTooltip(e, view) + if (!tooltip) { + return + } + showTooltip({ + posX: e.clientX, + posY: e.clientY, + property: tooltip.property, + type: tooltip.detail, + description: tooltip.info, + }) + }, 200) + }, + mouseout () { + clearTimeout(mouseoverTimeoutId) + hideTooltip() + }, + }), + keymap.of([ + enterKey, + ...extraKeys, + ...defaultKeymap, + ...historyKeymap, + ...searchKeymap, + indentWithTab, + ]), + indentUnit.of(' '), + autocompletion({ + override: [ + context => { + return completions.value?.yamlHint(context) + }, + ], + }), + EditorView.theme({}), + lineNumbers(), + readOnlyCompartment.of(createReadOnlyExtension(readOnly)), + themeCompartment.of(createThemeExtension(darkMode)), + whitespacesCompartment.of(createWhitespaceExtension(true)), + historyCompartment.of(createHistoryExtension(true)), + ], + }) + const view = new EditorView({ + parent: element, + state, + }) + const lineHighlighter = !disableLineHighlighting + ? useLineHighlighter(view) + : null + + function destroy () { + if (lineHighlighter) { + lineHighlighter.destroy() + } + + view.destroy() + const element = view.dom + if (element && element.remove) { + element.remove() + } + } + + function getDocValue () { + return view.state.doc.toString() + } + + function setDocValue (value) { + const state = view.state + const selection = state.selection + const scrollPos = view.scrollDOM.scrollTop + + const transaction = state.update({ + changes: { + from: 0, + to: state.doc.length, + insert: value, + }, + selection, + }) + + view.dispatch(transaction) + view.scrollDOM.scrollTop = scrollPos + view.focus() + + clearDocHistory() + initialDocValue = value + } + + function clearDocHistory () { + dispatchHistoryEffect(view, false) + dispatchHistoryEffect(view, true) + } + + return { + getDocValue, + setDocValue, + clearDocHistory, + destroy, + focus () { + view.focus() + }, + undo () { + undo(view) + }, + redo () { + redo(view) + }, + dispatchWhitespaceEffect (value) { + dispatchWhitespaceEffect(view, value) + }, + dispatchThemeEffect (value) { + dispatchThemeEffect(view, value) + }, + dispatchReadOnlyEffect (value) { + dispatchReadOnlyEffect(view, value) + }, + dispatchHistoryEffect (value) { + dispatchHistoryEffect(view, value) + }, + } +} diff --git a/frontend/src/composables/useEditorLineHighlighter.js b/frontend/src/composables/useEditorLineHighlighter.js deleted file mode 100644 index e9a3eb8699..0000000000 --- a/frontend/src/composables/useEditorLineHighlighter.js +++ /dev/null @@ -1,145 +0,0 @@ -// -// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Gardener contributors -// -// SPDX-License-Identifier: Apache-2.0 -// - -import { - computed, - watch, -} from 'vue' -import { useUrlSearchParams } from '@vueuse/core' -import { - EditorView, - lineNumbers, - Decoration, -} from '@codemirror/view' -import { - StateEffect, - EditorSelection, - StateField, -} from '@codemirror/state' - -function useSelection () { - const params = useUrlSearchParams('hash-params') - - const valuesFromParams = () => { - const line = params.line ?? '' - const values = line.split('-') - .map(value => parseInt(value, 10)) - .sort((a, b) => a - b) - return values.every(Number.isInteger) - ? values - : [] - } - - return computed({ - get () { - return valuesFromParams() - }, - set (values = []) { - const valuesCurrent = valuesFromParams() - - let [startLine, endLine = startLine] = values - const [startLineCurrent, endLineCurrent] = valuesCurrent - - if (endLine === startLine && startLine === startLineCurrent && !endLineCurrent) { - startLine = null - } - - if (!startLine || !values.every(Number.isInteger)) { - params.line = null - } else if (startLine === endLine) { - params.line = `${startLine}` - } else if (startLine > endLine) { - params.line = `${endLine}-${startLine}` - } else { - params.line = `${startLine}-${endLine}` - } - }, - }) -} - -export function useEditorLineHighlighter (cmView) { - cmView.dom.classList.add('g-cm-line-highlighter') - - const selection = useSelection() - const [startLine] = selection.value - - if (startLine) { - const pos = cmView.state.doc.line(startLine).from - cmView.dispatch({ - selection: EditorSelection.cursor(pos), - effects: EditorView.scrollIntoView(pos, { y: 'center' }), - }) - } - - const stateEffectType = StateEffect.define() - const stateField = StateField.define({ - create () { - return Decoration.none - }, - update (highlights, tr) { - // need to re-add when editor updates - cmView.dom.classList.add('g-cm-line-highlighter') - - for (const effect of tr.effects) { - if (effect.is(stateEffectType)) { - return effect.value - } - } - return highlights - }, - provide (f) { - return EditorView.decorations.from(f) - }, - }) - - const lineNumberGutterExtension = lineNumbers({ - domEventHandlers: { - mousedown (cmView, line, event) { - const lineNumber = cmView.state.doc.lineAt(line.from).number - const [startLine] = selection.value - selection.value = startLine && startLine !== lineNumber && event.shiftKey - ? [startLine, lineNumber] - : [lineNumber] - }, - }, - }) - - // Apply the StateField to the editor's state - cmView.dispatch({ - effects: [ - StateEffect.appendConfig.of(stateField), - StateEffect.appendConfig.of(lineNumberGutterExtension), - ], - }) - - const destroy = watch(selection, value => { - const lineCount = cmView.state.doc.lines - const [ - startLine, - endLine = startLine, - ] = value.map(value => { - value = Math.min(value, lineCount) - value = Math.max(1, value) - return cmView.state.doc.line(value).from - }) - - const decorations = [] - if (startLine && endLine) { - decorations.push(Decoration.line({ class: 'g-highlighted--top' }).range(startLine)) - for (let line = startLine; line <= endLine; line++) { - decorations.push(Decoration.line({ class: 'g-highlighted' }).range(line)) - } - decorations.push(Decoration.line({ class: 'g-highlighted--bottom' }).range(endLine)) - } - cmView.dispatch({ - effects: stateEffectType.of(Decoration.set(decorations)), - }) - }, { - immediate: true, - }) - - return { destroy } -} diff --git a/frontend/src/composables/useShootEditor.js b/frontend/src/composables/useShootEditor.js new file mode 100644 index 0000000000..be9fefa34f --- /dev/null +++ b/frontend/src/composables/useShootEditor.js @@ -0,0 +1,256 @@ +// +// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 +// + +import { + ref, + toRef, + shallowRef, + computed, + reactive, + unref, + watch, +} from 'vue' +import { useTheme } from 'vuetify' +import yaml from 'js-yaml' + +import { useLocalStorageStore } from '@/store/localStorage' +import { useProjectStore } from '@/store/project' +import { useAuthzStore } from '@/store/authz' + +import { useLogger } from '@/composables/useLogger' + +import isEqual from 'lodash/isEqual' +import omit from 'lodash/omit' +import get from 'lodash/get' + +export function useShootEditor (initialValue, options = {}) { + const { + logger = useLogger(), + theme = useTheme(), + authzStore = useAuthzStore(), + projectStore = useProjectStore(), + localStorageStore = useLocalStorageStore(), + } = options + + const conflictPath = ref(null) + const touched = ref(false) + const clean = ref(true) + const showManagedFields = ref(false) + const renderWhitespaces = toRef(localStorageStore, 'renderEditorWhitespaes') + const historySize = shallowRef({ + undo: 0, + redo: 0, + }) + const helpTooltip = reactive({ + visible: false, + posX: 0, + posY: 0, + property: undefined, + type: undefined, + description: undefined, + }) + + function getExtraKeys () { + const extraKeys = get(options, ['extraKeys'], []) + for (const extraKey of extraKeys) { + if (get(localStorageStore.editorShortcuts, [extraKey.key])) { + extraKey.key = get(localStorageStore.editorShortcuts, [extraKey.key]) + } + } + return extraKeys + } + + const isReadOnly = computed(() => { + return isShootActionsDisabled.value || !authzStore.canPatchShoots + }) + + const isDarkMode = computed(() => { + return !!theme.global.current.value?.dark + }) + + const shootItem = computed(() => { + const value = unref(initialValue) + if (!value) { + return null + } + const { + kind, + apiVersion, + metadata, + spec, + status, + } = value + return { + kind, + apiVersion, + metadata: !showManagedFields.value && metadata?.managedFields + ? omit(metadata, 'managedFields') + : metadata, + spec, + status, + } + }) + + const filename = computed(() => { + const namespace = get(shootItem.value, ['metadata', 'namespace']) + if (!namespace) { + return get(options, ['filename'], 'unknown.yaml') + } + const name = get(shootItem.value, ['metadata', 'name'], 'unnamed') + const projectName = projectStore.projectNameByNamespace(namespace) + return `shoot--${projectName}--${name}.yaml` + }) + + const isShootActionsDisabled = computed(() => { + return get(shootItem.value, ['spec', 'purpose']) === 'infrastructure' + }) + + let cm = null + + async function loadEditor (element) { + try { + const { useCodemirror } = await import('./useCodemirror') + cm = useCodemirror(element, { + ...options, + doc: yaml.dump(shootItem.value), + onDocChanged ({ modified, undoDepth, redoDepth }) { + if (!touched.value && modified) { + touched.value = true + } + clean.value = !modified + historySize.value = { + undo: undoDepth, + redo: redoDepth, + } + }, + showTooltip (props) { + Object.assign(helpTooltip, props) + helpTooltip.visible = true + }, + hideTooltip () { + helpTooltip.visible = false + }, + extraKeys: getExtraKeys(), + readOnly: isReadOnly.value, + darkMode: isDarkMode.value, + }) + } catch (err) { + logger.error('Failed to create codemirror instance: %s', err.message) + } + } + + function destroyEditor () { + cm?.destroy() + } + + function getEditorValue () { + const value = cm?.getDocValue() + return value + ? yaml.load(value) + : null + } + + function setEditorValue (value) { + if (value) { + cm?.setDocValue(yaml.dump(value)) + } + } + + function resetEditor () { + setEditorValue(shootItem.value) + } + + function reloadEditor () { + resetEditor() + } + + function focusEditor () { + cm?.focus() + } + + function getDocumentValue () { + return cm?.getDocValue() + } + + function setDocumentValue (value) { + cm?.setDocValue(value) + } + + function execUndo () { + cm?.undo() + } + + function execRedo () { + cm?.redo() + } + + function clearDocumentHistory () { + cm?.clearDocHistory() + clean.value = true + touched.value = false + conflictPath.value = null + historySize.value = { + undo: 0, + redo: 0, + } + } + + watch(renderWhitespaces, value => { + cm?.dispatchWhitespaceEffect(value) + }) + + watch(isReadOnly, value => { + cm?.dispatchReadOnlyEffect(value) + }) + + watch(isDarkMode, value => { + cm?.dispatchThemeEffect(value) + }) + + watch(shootItem, (newValue, oldValue) => { + if (!touched.value) { + setEditorValue(newValue) + return + } + const paths = [ + ['spec'], + ['metadata', 'annotations'], + ['metadata', 'labels'], + ] + for (const path of paths) { + const newProp = get(newValue, path) + const oldProp = get(oldValue, path) + if (!isEqual(newProp, oldProp)) { + conflictPath.value = path + break + } + } + }) + + return { + conflictPath, + touched, + clean, + showManagedFields, + renderWhitespaces, + historySize, + helpTooltip, + loadEditor, + destroyEditor, + getDocumentValue, + setDocumentValue, + getEditorValue, + setEditorValue, + resetEditor, + reloadEditor, + focusEditor, + clearDocumentHistory, + execUndo, + execRedo, + isReadOnly, + filename, + } +} diff --git a/frontend/src/composables/useShootEditor/index.js b/frontend/src/composables/useShootEditor/index.js deleted file mode 100644 index 8bcabb0669..0000000000 --- a/frontend/src/composables/useShootEditor/index.js +++ /dev/null @@ -1,463 +0,0 @@ -// -// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Gardener contributors -// -// SPDX-License-Identifier: Apache-2.0 -// - -import { - ref, - toRef, - shallowRef, - computed, - reactive, - unref, - watch, -} from 'vue' -import { computedAsync } from '@vueuse/core' -import { useTheme } from 'vuetify' -import yaml from 'js-yaml' -import { - EditorView, - keymap, - highlightActiveLine, - lineNumbers, -} from '@codemirror/view' -import { - EditorState, - Compartment, -} from '@codemirror/state' -import { yaml as cmYaml } from '@codemirror/lang-yaml' -import { - indentUnit, - syntaxHighlighting, - defaultHighlightStyle, -} from '@codemirror/language' -import { - defaultKeymap, - indentWithTab, - history, - historyKeymap, - undo, - redo, - undoDepth, - redoDepth, -} from '@codemirror/commands' -import { autocompletion } from '@codemirror/autocomplete' -import { searchKeymap } from '@codemirror/search' -import { - oneDark, - oneDarkHighlightStyle, -} from '@codemirror/theme-one-dark' - -import { useLocalStorageStore } from '@/store/localStorage' -import { useProjectStore } from '@/store/project' -import { useAuthzStore } from '@/store/authz' - -import { useEditorLineHighlighter } from '@/composables/useEditorLineHighlighter' -import { useLogger } from '@/composables/useLogger' -import { useApi } from '@/composables/useApi' - -import { - createWhitespaceViewPlugin, - EditorCompletions, -} from './helper' - -import isEqual from 'lodash/isEqual' -import omit from 'lodash/omit' -import get from 'lodash/get' - -export function useShootEditor (initialValue, options = {}) { - const { - api = useApi(), - logger = useLogger(), - theme = useTheme(), - authzStore = useAuthzStore(), - projectStore = useProjectStore(), - localStorageStore = useLocalStorageStore(), - disableLineHighlighting = false, - } = options - - const whitespaceViewPlugin = createWhitespaceViewPlugin() - - const cmView = shallowRef(null) - const completions = shallowRef(null) - const conflictPath = ref(null) - const touched = ref(false) - const clean = ref(true) - const showManagedFields = ref(false) - const renderWhitespaces = toRef(localStorageStore, 'renderEditorWhitespaes') - const historySize = shallowRef({ - undo: 0, - redo: 0, - }) - const helpTooltip = reactive({ - visible: false, - posX: 0, - posY: 0, - property: undefined, - type: undefined, - description: undefined, - }) - - let editorLineHighlighter = null - let initialDocumentValue = null - - const schemaDefinition = computedAsync(api.getShootSchemaDefinition, null) - - const defaultExtraKeys = [ - { - key: 'Enter', - run: view => { - completions.value?.editorEnter(view) - return true - }, - }, - ] - - function getExtraKeys () { - const extraKeys = [ - ...defaultExtraKeys, - ...(options.extraKeys ?? []), - ] - for (const extraKey of extraKeys) { - if (get(localStorageStore.editorShortcuts, [extraKey.key])) { - extraKey.key = get(localStorageStore.editorShortcuts, [extraKey.key]) - } - } - return extraKeys - } - - const isReadOnly = computed(() => { - return isShootActionsDisabled.value || !authzStore.canPatchShoots - }) - - const isDarkMode = computed(() => { - return !!theme.global.current.value?.dark - }) - - const shootItem = computed(() => { - const value = unref(initialValue) - if (!value) { - return null - } - const { - kind, - apiVersion, - metadata, - spec, - status, - } = value - return { - kind, - apiVersion, - metadata: !showManagedFields.value && metadata?.managedFields - ? omit(metadata, 'managedFields') - : metadata, - spec, - status, - } - }) - - const filename = computed(() => { - const namespace = get(shootItem.value, ['metadata', 'namespace']) - if (!namespace) { - return get(options, ['filename'], 'unknown.yaml') - } - const name = get(shootItem.value, ['metadata', 'name'], 'unnamed') - const projectName = projectStore.projectNameByNamespace(namespace) - return `shoot--${projectName}--${name}.yaml` - }) - - const isShootActionsDisabled = computed(() => { - return get(shootItem.value, ['spec', 'purpose']) === 'infrastructure' - }) - - let cmTooltipFnTimerID - const themeCompartment = new Compartment() - const readOnlyCompartment = new Compartment() - const historyCompartment = new Compartment() - const whitespacesCompartment = new Compartment() - - function loadEditor (element) { - try { - const state = EditorState.create({ - extensions: [ - cmYaml(), - highlightActiveLine(), - EditorView.lineWrapping, // Enable line wrapping - EditorView.updateListener.of(update => { - if (update.docChanged) { - touched.value = true - clean.value = getDocumentValue() === initialDocumentValue - const undo = undoDepth(cmView.value.state) - const redo = redoDepth(cmView.value.state) - historySize.value = { undo, redo } - } - }), - EditorView.domEventHandlers({ - mouseover: (e, view) => { - clearTimeout(cmTooltipFnTimerID) - helpTooltip.visible = false - cmTooltipFnTimerID = setTimeout(() => { - const tooltip = completions.value?.editorTooltip(e, view) - if (!tooltip) { - return - } - - helpTooltip.visible = true - helpTooltip.posX = e.clientX - helpTooltip.posY = e.clientY - helpTooltip.property = tooltip.property - helpTooltip.type = tooltip.detail - helpTooltip.description = tooltip.info - }, 200) - }, - }), - keymap.of(getExtraKeys()), - keymap.of([ - ...defaultKeymap, - ...historyKeymap, - ...searchKeymap, - indentWithTab, - ]), - indentUnit.of(' '), - autocompletion({ - override: [ - context => { - return completions.value?.yamlHint(context) - }, - ], - }), - EditorView.theme({}), - historyCompartment.of(history()), - readOnlyCompartment.of(EditorState.readOnly.of(isReadOnly.value)), - themeCompartment.of([isDarkMode.value ? oneDark : [], syntaxHighlighting(isDarkMode.value ? oneDarkHighlightStyle : defaultHighlightStyle)]), - lineNumbers(), - whitespacesCompartment.of(whitespaceViewPlugin), - ], - }) - cmView.value = new EditorView({ parent: element, state }) - resetEditor() - - if (!disableLineHighlighting) { - editorLineHighlighter = useEditorLineHighlighter(cmView.value) - } - } catch (err) { - logger.error('Failed to create codemirror instance: %s', err.message) - } - } - - function destroyEditor () { - if (editorLineHighlighter) { - editorLineHighlighter.destroy() - editorLineHighlighter = null - } - - if (!cmView.value) { - return - } - - cmView.value.destroy() - const element = cmView.value.dom - if (element && element.remove) { - element.remove() - } - cmView.value = null - } - - function getDocumentValue () { - if (!cmView.value) { - return '' - } - - return cmView.value.state.doc.toString() - } - - function setDocumentValue (value) { - if (!cmView.value) { - return - } - - const state = cmView.value.state - const selection = state.selection - const scrollPos = cmView.value.scrollDOM.scrollTop - - const transaction = state.update({ - changes: { from: 0, to: state.doc.length, insert: value }, - selection, - }) - - cmView.value.dispatch(transaction) - cmView.value.scrollDOM.scrollTop = scrollPos - cmView.value.focus() - - clearDocumentHistory() - initialDocumentValue = value - } - - function getEditorValue () { - const value = getDocumentValue() - if (value) { - return yaml.load(value) - } - return null - } - - function setEditorValue (value) { - if (value) { - setDocumentValue(yaml.dump(value)) - } - } - - function resetEditor () { - setEditorValue(shootItem.value) - } - - function reloadEditor () { - resetEditor() - } - - function focusEditor () { - if (!cmView.value) { - return - } - - cmView.value.focus() - } - - function clearDocumentHistory () { - if (!cmView.value) { - return - } - - cmView.value.dispatch({ - effects: historyCompartment.reconfigure([]), - }) - cmView.value.dispatch({ - effects: historyCompartment.reconfigure(history()), - }) - clean.value = true - touched.value = false - conflictPath.value = null - historySize.value = { - undo: 0, - redo: 0, - } - } - - function execUndo () { - if (!cmView.value) { - return - } - - undo(cmView.value) - } - - function execRedo () { - if (!cmView.value) { - return - } - - redo(cmView.value) - } - - watch(schemaDefinition, value => { - if (!cmView.value) { - return - } - - if (value) { - const shootProperties = get(value, ['properties'], {}) - const completionPaths = get(options, ['completionPaths'], []) - completions.value = new EditorCompletions(shootProperties, { - indentUnit: cmView.value.state.facet(indentUnit).length, - completionPaths, - logger, - }) - } - }) - - watch(renderWhitespaces, value => { - if (!cmView.value) { - return - } - - const content = value - ? whitespaceViewPlugin - : [] - cmView.value.dispatch({ - effects: whitespacesCompartment.reconfigure(content), - }) - }) - - watch(isReadOnly, isReadOnly => { - if (!cmView.value) { - return - } - - const content = EditorState.readOnly.of(isReadOnly) - cmView.value.dispatch({ - effects: readOnlyCompartment.reconfigure(content), - }) - }) - - watch(isDarkMode, value => { - if (!cmView.value) { - return - } - - const content = [] - if (value) { - content.push(oneDark, syntaxHighlighting(oneDarkHighlightStyle)) - } else { - content.push(syntaxHighlighting(defaultHighlightStyle)) - } - cmView.value.dispatch({ - effects: themeCompartment.reconfigure(content), - }) - }) - - watch(shootItem, (newValue, oldValue) => { - if (!touched.value) { - setEditorValue(newValue) - return - } - const paths = [ - ['spec'], - ['metadata', 'annotations'], - ['metadata', 'labels'], - ] - for (const path of paths) { - const newProp = get(newValue, path) - const oldProp = get(oldValue, path) - if (!isEqual(newProp, oldProp)) { - conflictPath.value = path - break - } - } - }) - - return { - conflictPath, - touched, - clean, - showManagedFields, - renderWhitespaces, - historySize, - helpTooltip, - loadEditor, - destroyEditor, - getDocumentValue, - setDocumentValue, - getEditorValue, - setEditorValue, - resetEditor, - reloadEditor, - focusEditor, - clearDocumentHistory, - execUndo, - execRedo, - isReadOnly, - filename, - } -} diff --git a/frontend/src/composables/useShootSchemaDefinition.js b/frontend/src/composables/useShootSchemaDefinition.js new file mode 100644 index 0000000000..8926b81317 --- /dev/null +++ b/frontend/src/composables/useShootSchemaDefinition.js @@ -0,0 +1,19 @@ +// +// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 +// + +import { + createGlobalState, + computedAsync, +} from '@vueuse/core' + +import { useApi } from '@/composables/useApi' + +export const useShootSchemaDefinition = createGlobalState((options = {}) => { + const { + api = useApi(), + } = options + return computedAsync(api.getShootSchemaDefinition, null) +}) diff --git a/package.json b/package.json index f4c8eb7859..8c7f7e59d8 100644 --- a/package.json +++ b/package.json @@ -28,10 +28,14 @@ } }, "devDependencies": { + "@microsoft/eslint-formatter-sarif": "^3.1.0", "eslint": "^9.11.0", "jest": "^29.7.0", "node-gyp": "latest" }, + "bin": { + "update-prod-install": "./scripts/update-prod-install.cjs" + }, "packageManager": "yarn@4.5.3", "engines": { "node": "^22.7.0" diff --git a/packages/kube-client/package.json b/packages/kube-client/package.json index a6ae7774a6..3c79c5c935 100644 --- a/packages/kube-client/package.json +++ b/packages/kube-client/package.json @@ -20,6 +20,7 @@ ], "scripts": { "lint": "eslint . --max-warnings=0", + "lint-sarif": "yarn lint --format=@microsoft/eslint-formatter-sarif", "test": "jest", "test-coverage": "yarn test --coverage" }, @@ -35,6 +36,7 @@ }, "devDependencies": { "@gardener-dashboard/test-utils": "workspace:^", + "@microsoft/eslint-formatter-sarif": "^3.1.0", "abort-controller": "^3.0.0", "eslint": "^9.11.0", "eslint-plugin-import": "^2.31.0", @@ -45,40 +47,6 @@ "jest": "^29.7.0", "neostandard": "^0.11.7" }, - "eslintConfig": { - "env": { - "commonjs": true, - "jest/globals": true - }, - "plugins": [ - "jest" - ], - "extends": [ - "standard", - "plugin:security/recommended-legacy", - "plugin:jest/recommended" - ], - "globals": { - "fixtures": true - }, - "rules": { - "no-console": "error" - }, - "overrides": [ - { - "files": [ - "**/__fixtures__/**", - "**/__mocks__/**", - "**/__tests__/**", - "jest.setup.js" - ], - "rules": { - "security/detect-object-injection": "off", - "security/detect-non-literal-require": "off" - } - } - ] - }, "jest": { "restoreMocks": true, "verbose": true, diff --git a/packages/kube-config/__tests__/client-config.test.js b/packages/kube-config/__tests__/client-config.test.js index 12855b12f8..adb48fd357 100644 --- a/packages/kube-config/__tests__/client-config.test.js +++ b/packages/kube-config/__tests__/client-config.test.js @@ -23,7 +23,7 @@ describe('client-config', () => { const initClientConfig = signal => { const config = new Config(kubeconfig) const reactive = !!signal - clientConfig = new ClientConfig(config, { reactive, signal }) + clientConfig = new ClientConfig(config, { reactive, interval: 500, signal }) return reactive ? onceEvent(clientConfig.watcher, 'ready') : Promise.resolve() diff --git a/packages/kube-config/__tests__/kube-config.test.js b/packages/kube-config/__tests__/kube-config.test.js index 849986d2a2..62028bebc1 100644 --- a/packages/kube-config/__tests__/kube-config.test.js +++ b/packages/kube-config/__tests__/kube-config.test.js @@ -7,15 +7,22 @@ 'use strict' const fs = require('fs') +const fsp = require('fs/promises') const path = require('path') const os = require('os') const yaml = require('js-yaml') -const EventEmitter = require('events') -const chokidar = require('chokidar') const { mockGetToken } = require('gtoken') const { cloneDeep } = require('lodash') const Config = require('../lib/Config') -const { load, dumpKubeconfig, fromKubeconfig, getInCluster, cleanKubeconfig, parseKubeconfig, constants } = require('../lib') +const { + load, + dumpKubeconfig, + fromKubeconfig, + getInCluster, + cleanKubeconfig, + parseKubeconfig, + constants, +} = require('../lib') describe('kube-config', () => { const server = new URL('https://kubernetes:6443') @@ -32,19 +39,30 @@ describe('kube-config', () => { const currentContext = 'default' const accessToken = 'access-token' - beforeEach(() => { - jest.spyOn(chokidar, 'watch').mockImplementationOnce(() => { - const emitter = new EventEmitter() - emitter.close = jest.fn().mockImplementation(() => Promise.resolve()) - process.nextTick(() => emitter.emit('ready')) - return emitter + function mockFs (files) { + fs.readFileSync.mockImplementation((...args) => { + const [path] = args + if (files.has(path)) { + return files.get(path) + } + throw new Error(`ENOENT: no such file or directory, open '${path}'`) + }) + fsp.readFile.mockImplementation((...args) => { + const [path] = args + if (files.has(path)) { + return Promise.resolve(files.get(path)) + } + return Promise.reject(new Error(`ENOENT: no such file or directory, open '${path}'`)) }) + } + + beforeEach(() => { jest.spyOn(fs, 'readFileSync') + jest.spyOn(fsp, 'readFile') }) afterEach(() => { - chokidar.watch.mockRestore() - fs.readFileSync.mockRestore() + jest.restoreAllMocks() }) describe('#load', () => { @@ -62,7 +80,6 @@ describe('kube-config', () => { beforeEach(() => { ac = new AbortController() - fs.readFileSync.mockClear() }) afterEach(() => { @@ -70,9 +87,10 @@ describe('kube-config', () => { }) it('should return the in cluster config', async () => { - fs.readFileSync - .mockReturnValueOnce(token) - .mockReturnValueOnce(ca) + mockFs(new Map([ + [constants.KUBERNETES_SERVICEACCOUNT_TOKEN_FILE, token], + [constants.KUBERNETES_SERVICEACCOUNT_CA_FILE, ca], + ])) const config = await loadConfig({ KUBERNETES_SERVICE_HOST: server.hostname, KUBERNETES_SERVICE_PORT: server.port, @@ -98,7 +116,10 @@ describe('kube-config', () => { server: server.origin, caData, }) - fs.readFileSync.mockReturnValue(kubeconfig) + mockFs(new Map([ + ['/path/to/kube/config', kubeconfig], + ['/path/to/another/kube/config', null], + ])) const config = await loadConfig({ KUBECONFIG: '/path/to/kube/config:/path/to/another/kube/config', }) @@ -141,18 +162,12 @@ describe('kube-config', () => { }, }], }) - fs.readFileSync.mockImplementation(path => { - switch (path) { - case defaultKubeconfigPath: - return kubeconfig - case '/path/to/ca.crt': - return ca - case '/path/to/client.crt': - return clientCertificate - case '/path/to/client.key': - return clientKey - } - }) + mockFs(new Map([ + [defaultKubeconfigPath, kubeconfig], + ['/path/to/ca.crt', ca], + ['/path/to/client.crt', clientCertificate], + ['/path/to/client.key', clientKey], + ])) const config = await loadConfig({ NODE_ENV: 'development', }) diff --git a/packages/kube-config/__tests__/watcher.test.js b/packages/kube-config/__tests__/watcher.test.js deleted file mode 100644 index 0b9345bf52..0000000000 --- a/packages/kube-config/__tests__/watcher.test.js +++ /dev/null @@ -1,137 +0,0 @@ -// -// SPDX-FileCopyrightText: 2023 SAP SE or an SAP affiliate company and Gardener contributors -// -// SPDX-License-Identifier: Apache-2.0 -// - -'use strict' - -const EventEmitter = require('events') -const { basename } = require('path') -const chokidar = require('chokidar') -const { globalLogger: logger } = require('@gardener-dashboard/logger') -const Watcher = require('../lib/Watcher') -const { onceEvent } = fixtures.helper - -describe('watcher', () => { - const paths = [ - '/path/to/ca.crt', - '/path/to/token', - ] - let mockWatch - let emitter - let ac - - const createWatcher = async options => { - const watcher = new Watcher(paths, options) - expect(mockWatch).toBeCalledTimes(1) - expect(mockWatch.mock.calls[0]).toEqual([ - paths, - { - persistent: true, - awaitWriteFinish: true, - ignoreInitial: true, - followSymlinks: true, - disableGlobbing: true, - }, - ]) - setImmediate(() => emitter.emit('ready')) - await onceEvent(watcher, 'ready') - return watcher - } - - beforeEach(() => { - ac = new AbortController() - emitter = new EventEmitter() - emitter.close = jest.fn().mockImplementation(() => Promise.resolve()) - mockWatch = jest.spyOn(chokidar, 'watch').mockReturnValueOnce(emitter) - }) - - afterEach(() => { - logger.error.mockReset() - ac.abort() - }) - - afterAll(() => { - mockWatch.mockRestore() - }) - - it('should create a watcher with defaults', async () => { - expect.assertions(2) - const watcher = await createWatcher() - watcher.destroy() - }) - - it('should run a watcher and log errors', async () => { - const watcher = await createWatcher({ - signal: ac.signal, - readFile: path => Promise.resolve(basename(path)), - }) - const mockHandler = jest.fn((key, value) => { - if (value === 'ca.crt') { - watcher.destroy() - } - }) - watcher.run(mockHandler) - emitter.emit('change', '/path/to/token') - emitter.emit('error', new Error('foo')) - emitter.emit('change', '/path/to/ca.crt') - emitter.emit('error', new Error('bar')) - await onceEvent(watcher, 'close') - expect(mockHandler).toBeCalledTimes(2) - expect(mockHandler.mock.calls).toEqual([ - ['/path/to/token', 'token'], - ['/path/to/ca.crt', 'ca.crt'], - ]) - expect(logger.error).toBeCalledTimes(2) - expect(logger.error.mock.calls).toEqual([ - ['[kube-config] watch files error: %s', 'foo'], - ['[kube-config] watch files error: %s', 'bar'], - ]) - }) - - it('should throw a timeout error when creating a watcher', async () => { - const milliseconds = 1 - const watcher = new Watcher(paths, { - signal: ac.signal, - readyTimeout: milliseconds, - }) - const err = await onceEvent(watcher, 'error') - expect(err).toBeInstanceOf(Error) - expect(err.message).toEqual(`FSWatcher timed out after ${milliseconds} milliseconds`) - }) - - it('should throw a close error when destroying a watcher', async () => { - const closeError = new Error('close error') - const watcher = await createWatcher() - emitter.close.mockImplementationOnce(() => Promise.reject(closeError)) - watcher.destroy() - const err = await onceEvent(watcher, 'error') - expect(err).toBe(closeError) - }) - - it('should log a read file error when running a watcher', async () => { - const readFileError = new Error('read file error') - readFileError.code = 'EREADFILE' - const watcher = await createWatcher({ - signal: ac.signal, - readFile: path => path === '/path/to/token' - ? Promise.resolve(basename(path)) - : Promise.reject(readFileError), - }) - const mockHandler = jest.fn(() => watcher.destroy()) - watcher.run(mockHandler) - emitter.emit('change', '/path/to/ca.crt') - emitter.emit('change', '/path/to/..data') - emitter.emit('change', '/path/to/token') - await onceEvent(watcher, 'close') - expect(mockHandler).toBeCalledTimes(1) - expect(mockHandler.mock.calls).toEqual([ - ['/path/to/token', 'token'], - ]) - expect(logger.error).toBeCalledTimes(1) - expect(logger.error.mock.calls).toEqual([ - ['[kube-config] read file error %s: %s', 'EREADFILE', 'read file error'], - ]) - }) -}) diff --git a/packages/kube-config/lib/ClientConfig.js b/packages/kube-config/lib/ClientConfig.js index 032ba300fc..2d53fa459c 100644 --- a/packages/kube-config/lib/ClientConfig.js +++ b/packages/kube-config/lib/ClientConfig.js @@ -8,7 +8,8 @@ const assert = require('assert').strict const fs = require('fs') -const Watcher = require('./Watcher') +const createWatch = require('@gardener-dashboard/polling-watcher') +const { EventEmitter } = require('stream') function getCluster ({ currentCluster }, files) { const cluster = {} @@ -25,7 +26,8 @@ function getCluster ({ currentCluster }, files) { cluster.certificateAuthority = base64Decode(caData) } else if (caFile) { files.set(caFile, 'certificateAuthority') - cluster.certificateAuthority = fs.readFileSync(caFile, 'utf8') // eslint-disable-line security/detect-non-literal-fs-filename + // eslint-disable-next-line security/detect-non-literal-fs-filename -- caFile is not user input + cluster.certificateAuthority = fs.readFileSync(caFile, 'utf8') } if (typeof insecureSkipTlsVerify === 'boolean') { cluster.insecureSkipTlsVerify = insecureSkipTlsVerify @@ -55,14 +57,17 @@ function getUser ({ currentUser }, files) { user.clientKey = base64Decode(keyData) } else if (certFile && keyFile) { files.set(certFile, 'clientCert') - user.clientCert = fs.readFileSync(certFile, 'utf8') // eslint-disable-line security/detect-non-literal-fs-filename + // eslint-disable-next-line security/detect-non-literal-fs-filename -- certFile is not user input + user.clientCert = fs.readFileSync(certFile, 'utf8') files.set(keyFile, 'clientKey') - user.clientKey = fs.readFileSync(keyFile, 'utf8') // eslint-disable-line security/detect-non-literal-fs-filename + // eslint-disable-next-line security/detect-non-literal-fs-filename -- keyFile is not user input + user.clientKey = fs.readFileSync(keyFile, 'utf8') } else if (token) { user.token = token } else if (tokenFile) { files.set(tokenFile, 'token') - user.token = fs.readFileSync(tokenFile, 'utf8') // eslint-disable-line security/detect-non-literal-fs-filename + // eslint-disable-next-line security/detect-non-literal-fs-filename -- tokenFile is not user input + user.token = fs.readFileSync(tokenFile, 'utf8') } else if (username && password) { user.username = username user.password = password @@ -165,25 +170,30 @@ class ClientConfig { }, } if (reactive && files.size) { - const watcher = new Watcher(Array.from(files.keys()), options) - watcher.run((path, value) => { - const key = files.get(path) - switch (key) { - case 'certificateAuthority': - cluster.certificateAuthority = value - break - case 'clientKey': - user.clientKey = value - break - case 'clientCert': - user.clientCert = value - break - case 'token': - user.token = value - break - } - watcher.emit(`update:${key}`) - }) + const watcher = new EventEmitter() + const startWatch = async () => { + const watch = await createWatch(Array.from(files.keys()), options) + watcher.emit('ready') + watch((path, value) => { + const key = files.get(path) + switch (key) { + case 'certificateAuthority': + cluster.certificateAuthority = value + break + case 'clientKey': + user.clientKey = value + break + case 'clientCert': + user.clientCert = value + break + case 'token': + user.token = value + break + } + watcher.emit(`update:${key}`) + }) + } + startWatch() properties.watcher = { value: watcher } } Object.defineProperties(this, properties) diff --git a/packages/kube-config/lib/Watcher.js b/packages/kube-config/lib/Watcher.js deleted file mode 100644 index 07b387f8d9..0000000000 --- a/packages/kube-config/lib/Watcher.js +++ /dev/null @@ -1,93 +0,0 @@ -// -// SPDX-FileCopyrightText: 2023 SAP SE or an SAP affiliate company and Gardener contributors -// -// SPDX-License-Identifier: Apache-2.0 -// - -'use strict' - -const fsPromises = require('fs/promises') -const { Readable } = require('stream') -const chokidar = require('chokidar') -const { globalLogger: logger } = require('@gardener-dashboard/logger') - -class Watcher extends Readable { - #paths - #timeout - #watching - #fsWatcher - #readFile - - constructor (paths, { readyTimeout = 15000, readFile = fsPromises.readFile, ...options } = {}) { - super({ - ...options, - objectMode: true, - }) - logger.debug('[kube-config] creating watcher for', paths) - this.#paths = paths - this.#timeout = readyTimeout - this.#readFile = readFile - this.#watching = false - this.#fsWatcher = chokidar.watch(this.#paths, { - persistent: true, - awaitWriteFinish: true, - ignoreInitial: true, - followSymlinks: true, - disableGlobbing: true, - }) - } - - _construct (callback) { - const timeoutID = setTimeout(() => { - const err = new Error(`FSWatcher timed out after ${this.#timeout} milliseconds`) - logger.error('[kube-config] creating watcher timed out: %s', err.message) - callback(err) - }, this.#timeout) - this.#fsWatcher - .once('ready', () => { - logger.debug('[kube-config] watcher ready') - this.emit('ready') - clearTimeout(timeoutID) - callback() - }) - .on('error', err => { - logger.error('[kube-config] watch files error: %s', err.message) - }) - } - - _read () { - if (this.#watching !== true) { - this.#watching = true - this.#fsWatcher.on('change', async path => { - logger.debug('[kube-config] file watcher received change event for %s', path) - if (this.#paths.includes(path)) { - try { - const value = await this.#readFile(path, 'utf8') - this.push([path, value]) - } catch (err) { - logger.error('[kube-config] read file error %s: %s', err.code, err.message) - } - } - }) - } - } - - _destroy (error, callback) { - const done = closeError => callback(closeError || error) - this.#fsWatcher.close().then(done, done) - } - - async run (fn) { - try { - for await (const args of this) { - fn(...args) - } - } catch (err) { - if (err.name !== 'AbortError') { - logger.error('[kube-config] watch files ended with error: %s', err.message) - } - } - } -} - -module.exports = Watcher diff --git a/packages/kube-config/package.json b/packages/kube-config/package.json index 5920ce855d..5ec8ee9823 100644 --- a/packages/kube-config/package.json +++ b/packages/kube-config/package.json @@ -20,18 +20,19 @@ ], "scripts": { "lint": "eslint . --max-warnings=0", + "lint-sarif": "yarn lint --format=@microsoft/eslint-formatter-sarif", "test": "jest", "test-coverage": "yarn test --coverage" }, "dependencies": { - "@gardener-dashboard/logger": "workspace:^", + "@gardener-dashboard/polling-watcher": "workspace:^", "@gardener-dashboard/test-utils": "workspace:^", - "chokidar": "^4.0.0", "gtoken": "^7.1.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, "devDependencies": { + "@microsoft/eslint-formatter-sarif": "^3.1.0", "eslint": "^9.11.0", "eslint-plugin-import": "^2.31.0", "eslint-plugin-jest": "^28.8.3", @@ -40,39 +41,6 @@ "jest": "^29.7.0", "neostandard": "^0.11.7" }, - "eslintConfig": { - "env": { - "commonjs": true, - "jest/globals": true - }, - "plugins": [ - "jest" - ], - "extends": [ - "standard", - "plugin:security/recommended-legacy", - "plugin:jest/recommended" - ], - "globals": { - "fixtures": true - }, - "rules": { - "no-console": "error" - }, - "overrides": [ - { - "files": [ - "**/__fixtures__/**", - "**/__mocks__/**", - "**/__tests__/**", - "jest.setup.js" - ], - "rules": { - "security/detect-non-literal-fs-filename": "off" - } - } - ] - }, "jest": { "restoreMocks": true, "verbose": true, @@ -83,7 +51,7 @@ "testEnvironment": "node", "coverageThreshold": { "global": { - "branches": 98, + "branches": 100, "functions": 100, "lines": 100, "statements": 100 diff --git a/packages/logger/package.json b/packages/logger/package.json index 800661e894..06151eb486 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -20,6 +20,7 @@ ], "scripts": { "lint": "eslint . --max-warnings=0", + "lint-sarif": "yarn lint --format=@microsoft/eslint-formatter-sarif", "test": "jest", "test-coverage": "yarn test --coverage" }, @@ -27,6 +28,7 @@ "chalk": "^4.1.2" }, "devDependencies": { + "@microsoft/eslint-formatter-sarif": "^3.1.0", "eslint": "^9.11.0", "eslint-plugin-import": "^2.31.0", "eslint-plugin-jest": "^28.8.3", diff --git a/packages/monitor/package.json b/packages/monitor/package.json index 755a6e2907..eecb22c705 100644 --- a/packages/monitor/package.json +++ b/packages/monitor/package.json @@ -20,6 +20,7 @@ ], "scripts": { "lint": "eslint . --max-warnings=0", + "lint-sarif": "yarn lint --format=@microsoft/eslint-formatter-sarif", "test": "jest", "test-coverage": "yarn test --coverage" }, @@ -31,6 +32,7 @@ "response-time": "^2.3.2" }, "devDependencies": { + "@microsoft/eslint-formatter-sarif": "^3.1.0", "eslint": "^9.11.0", "eslint-plugin-import": "^2.31.0", "eslint-plugin-jest": "^28.8.3", @@ -40,40 +42,6 @@ "neostandard": "^0.11.7", "supertest": "^7.0.0" }, - "eslintConfig": { - "env": { - "commonjs": true, - "jest/globals": true - }, - "plugins": [ - "jest" - ], - "extends": [ - "standard", - "plugin:security/recommended-legacy", - "plugin:jest/recommended" - ], - "globals": { - "createAgent": true, - "fixtures": true - }, - "rules": { - "no-console": "error" - }, - "overrides": [ - { - "files": [ - "**/__fixtures__/**", - "**/__mocks__/**", - "**/__tests__/**", - "jest.setup.js" - ], - "rules": { - "security/detect-object-injection": "off" - } - } - ] - }, "jest": { "restoreMocks": true, "clearMocks": true, diff --git a/packages/polling-watcher/__fixtures__/index.js b/packages/polling-watcher/__fixtures__/index.js new file mode 100644 index 0000000000..12db969972 --- /dev/null +++ b/packages/polling-watcher/__fixtures__/index.js @@ -0,0 +1,14 @@ +// +// SPDX-FileCopyrightText: 2020 SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 +// + +'use strict' + +const { matchers, helper } = require('@gardener-dashboard/test-utils') + +module.exports = { + helper, + matchers, +} diff --git a/packages/kube-config/__mocks__/@gardener-dashboard/logger.js b/packages/polling-watcher/__mocks__/@gardener-dashboard/logger.js similarity index 100% rename from packages/kube-config/__mocks__/@gardener-dashboard/logger.js rename to packages/polling-watcher/__mocks__/@gardener-dashboard/logger.js diff --git a/packages/polling-watcher/__tests__/polling-watcher.test.js b/packages/polling-watcher/__tests__/polling-watcher.test.js new file mode 100644 index 0000000000..386dc01ff6 --- /dev/null +++ b/packages/polling-watcher/__tests__/polling-watcher.test.js @@ -0,0 +1,159 @@ +// +// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 +// + +'use strict' + +const fs = require('fs/promises') +const { globalLogger: logger } = require('@gardener-dashboard/logger') +const createWatch = require('../lib') + +describe('polling-watcher', () => { + beforeAll(() => { + jest.useFakeTimers() + }) + + afterAll(() => { + jest.useRealTimers() + }) + + describe('watch', () => { + const noSuchFile = new Error('no such file') + const filename = '/path/to/file' + const oldContent = 'old' + const newContent = 'new' + let fn + let stop + + async function startWatch (options) { + const watch = await createWatch([filename], options) + if (typeof watch === 'function') { + stop = watch(fn) + } + } + + beforeEach(() => { + fn = jest.fn() + stop = undefined + jest.spyOn(fs, 'readFile').mockResolvedValue(oldContent) + logger.debug.mockClear() + logger.info.mockClear() + logger.error.mockClear() + }) + + afterEach(() => { + fs.readFile.mockRestore() + if (typeof stop === 'function') { + stop() + } + }) + + it('should create a file watch with default options', async () => { + await startWatch() + // Verify no changes are detected initially. + expect(fn).toHaveBeenCalledTimes(0) + + // Simulate the passage of time without file changes. + await jest.advanceTimersToNextTimerAsync(1) + expect(fn).toHaveBeenCalledTimes(0) + + // Mock a file content change and verify that the callback is triggered. + fs.readFile.mockResolvedValueOnce(newContent) + await jest.advanceTimersToNextTimerAsync(1) + expect(fn).toHaveBeenCalledTimes(1) + expect(fn.mock.calls[0]).toEqual([filename, newContent]) + + // Stop the watcher and verify log messages. + stop() + expect(logger.debug).toHaveBeenCalledTimes(1) + expect(logger.debug.mock.calls).toEqual([ + ['[polling-watcher] watch started with interval %dms', 300_000], + ]) + expect(logger.info).toHaveBeenCalledTimes(3) + expect(logger.info.mock.calls).toEqual([ + ['[polling-watcher] watch created for %d files', 1], + ['[polling-watcher] detected file change `%s`', filename], + ['[polling-watcher] watch aborted'], + ]) + expect(logger.error).toHaveBeenCalledTimes(0) + }) + + it('should create a file watch with custom options', async () => { + const ac = new AbortController() + await startWatch({ + interval: 10, + signal: ac.signal, + }) + // Verify no changes are detected initially. + expect(fn).toHaveBeenCalledTimes(0) + + // Mock a file content change and verify that the callback is triggered. + fs.readFile.mockResolvedValueOnce(newContent) + await jest.advanceTimersToNextTimerAsync(1) + expect(fn).toHaveBeenCalledTimes(1) + expect(fn.mock.calls[0]).toEqual([filename, newContent]) + + // Abort the watcher and verify log messages. + ac.abort() + expect(logger.debug).toHaveBeenCalledTimes(1) + expect(logger.debug.mock.calls).toEqual([ + ['[polling-watcher] watch started with interval %dms', 10], + ]) + expect(logger.info).toHaveBeenCalledTimes(3) + expect(logger.info.mock.calls).toEqual([ + ['[polling-watcher] watch created for %d files', 1], + ['[polling-watcher] detected file change `%s`', filename], + ['[polling-watcher] watch aborted'], + ]) + expect(logger.error).toHaveBeenCalledTimes(0) + }) + + it('should fail to read file', async () => { + // Simulate a file read failure during polling. + await startWatch() + expect(fn).toHaveBeenCalledTimes(0) + fs.readFile.mockRejectedValueOnce(noSuchFile) + await jest.advanceTimersToNextTimerAsync(1) + + // Verify that the callback is not called and an error is logged. + expect(fn).toHaveBeenCalledTimes(0) + expect(logger.error).toHaveBeenCalledTimes(1) + expect(logger.error.mock.calls).toEqual([ + ['[polling-watcher] failed to read file `%s`: %s', filename, noSuchFile.message], + ]) + }) + + it('should fail to initialize the watcher', async () => { + // Test watcher initialization failure due to file read error. + fs.readFile.mockRejectedValueOnce(noSuchFile) + await expect(startWatch()).rejects.toThrow(noSuchFile.message) + + // Verify that the watcher is not started and no error is logged. + expect(stop).toBeUndefined() + expect(logger.error).toHaveBeenCalledTimes(0) + }) + + it('should immediately stop if signal is already aborted', async () => { + // Ensure the watcher does not start if the abort signal is already triggered. + const ac = new AbortController() + ac.abort() + await startWatch({ + interval: 10, + signal: ac.signal, + }) + + // Simulate the passage of time and verify no file changes are detected. + fs.readFile.mockResolvedValueOnce(newContent) + await jest.advanceTimersToNextTimerAsync(1) + expect(fn).toHaveBeenCalledTimes(0) + }) + + it('should throw an error if the watch function is called twice', async () => { + const watch = await createWatch([filename]) + stop = watch(fn) + expect(() => watch(fn)).toThrow('Watcher already started') + }) + }) +}) diff --git a/packages/polling-watcher/eslint.config.js b/packages/polling-watcher/eslint.config.js new file mode 100644 index 0000000000..e2cf530d23 --- /dev/null +++ b/packages/polling-watcher/eslint.config.js @@ -0,0 +1,59 @@ +// +// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 +// + +const neostandard = require('neostandard') +const pluginJest = require('eslint-plugin-jest') +const pluginSecurity = require('eslint-plugin-security') +const pluginLodash = require('eslint-plugin-lodash') +const pluginImport = require('eslint-plugin-import') + +module.exports = [ + ...neostandard({}), + { + rules: { + '@stylistic/comma-dangle': ['error', 'always-multiline'], + 'no-console': 'error', + }, + }, + pluginSecurity.configs.recommended, + { + plugins: { + import: pluginImport, + }, + rules: pluginImport.flatConfigs.recommended.rules, + }, + { + plugins: { + lodash: pluginLodash, + }, + rules: { + 'lodash/path-style': ['error', 'array'], + }, + }, + { + files: [ + '**/__fixtures__/**', + '**/__mocks__/**', + '**/__tests__/**', + '**/jest.setup.js', + ], + plugins: { + jest: pluginJest, + }, + languageOptions: { + globals: { + ...pluginJest.environments.globals.globals, + fixtures: true, + }, + }, + rules: { + 'security/detect-object-injection': 'off', + 'security/detect-possible-timing-attacks': 'off', + 'security/detect-unsafe-regex': 'off', + 'security/detect-non-literal-fs-filename': 'off', + }, + }, +] diff --git a/packages/polling-watcher/jest.setup.js b/packages/polling-watcher/jest.setup.js new file mode 100644 index 0000000000..2196d3e233 --- /dev/null +++ b/packages/polling-watcher/jest.setup.js @@ -0,0 +1,13 @@ +// +// SPDX-FileCopyrightText: 2020 SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 +// + +'use strict' + +const { matchers, ...fixtures } = require('./__fixtures__') + +expect.extend(matchers) + +global.fixtures = fixtures diff --git a/packages/polling-watcher/lib/index.js b/packages/polling-watcher/lib/index.js new file mode 100644 index 0000000000..0fbf2ac580 --- /dev/null +++ b/packages/polling-watcher/lib/index.js @@ -0,0 +1,94 @@ +// +// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 +// + +'use strict' + +const crypto = require('crypto') +const fs = require('fs/promises') +const { globalLogger: logger } = require('@gardener-dashboard/logger') + +function sha256 (data) { + return crypto.createHash('sha256').update(data).digest('hex') +} + +async function createHashes (paths) { + // eslint-disable-next-line security/detect-non-literal-fs-filename -- path is not user input + const createHashEntry = async path => [path, sha256(await fs.readFile(path))] + const hashEntries = await Promise.all(paths.map(createHashEntry)) + return new Map(hashEntries) +} + +function addAbortListener (signal, abort) { + if (signal instanceof AbortSignal) { + if (!signal.aborted) { + signal.addEventListener('abort', abort) + } else { + abort() + } + } +} + +function removeAbortListener (signal, abort) { + if (signal instanceof AbortSignal) { + signal.removeEventListener('abort', abort) + } +} + +// Note: The parameter 'paths' must not be user input to prevent security vulnerabilities +module.exports = async function createWatch (paths, options = {}) { + const { + interval = 300_000, + signal, + } = options + + let intervalId + let aborted = false + + const abort = () => { + if (aborted) { + return + } + aborted = true + logger.info('[polling-watcher] watch aborted') + clearInterval(intervalId) + removeAbortListener(signal, abort) + } + + const hashes = await createHashes(paths) + logger.info('[polling-watcher] watch created for %d files', paths.length) + + return fn => { + const tryReadFile = async path => { + try { + // eslint-disable-next-line security/detect-non-literal-fs-filename -- path is not user input + const data = await fs.readFile(path) + const newHash = sha256(data) + const oldHash = hashes.get(path) + if (newHash !== oldHash) { + logger.info('[polling-watcher] detected file change `%s`', path) + hashes.set(path, newHash) + fn(path, data.toString('utf8')) + } + } catch (err) { + logger.error('[polling-watcher] failed to read file `%s`: %s', path, err.message) + } + } + + if (intervalId) { + throw new Error('Watcher already started') + } + + intervalId = setInterval(() => { + for (const path of paths) { + tryReadFile(path) + } + }, interval) + addAbortListener(signal, abort) + logger.debug('[polling-watcher] watch started with interval %dms', interval) + + return abort + } +} diff --git a/packages/polling-watcher/package.json b/packages/polling-watcher/package.json new file mode 100644 index 0000000000..66145ec531 --- /dev/null +++ b/packages/polling-watcher/package.json @@ -0,0 +1,63 @@ +{ + "name": "@gardener-dashboard/polling-watcher", + "version": "1.0.0", + "description": "Polling Watcher", + "license": "Apache-2.0", + "repository": { + "type": "git", + "url": "git+https://github.com/gardener/dashboard.git", + "directory": "packages/polling-watcher" + }, + "bugs": { + "url": "https://github.com/gardener/dashboard/issues" + }, + "publishConfig": { + "registry": "https://npm.pkg.github.com/" + }, + "main": "lib/index.js", + "files": [ + "lib" + ], + "scripts": { + "lint": "eslint . --max-warnings=0", + "test": "jest", + "test-coverage": "yarn test --coverage" + }, + "dependencies": { + "@gardener-dashboard/logger": "workspace:^", + "@gardener-dashboard/test-utils": "workspace:^" + }, + "devDependencies": { + "eslint": "^9.11.0", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jest": "^28.8.3", + "eslint-plugin-lodash": "^8.0.0", + "eslint-plugin-security": "^3.0.1", + "jest": "^29.7.0", + "neostandard": "^0.11.7" + }, + "jest": { + "restoreMocks": true, + "verbose": true, + "coverageDirectory": "coverage", + "collectCoverageFrom": [ + "lib/**/*.js" + ], + "testEnvironment": "node", + "coverageThreshold": { + "global": { + "branches": 100, + "functions": 100, + "lines": 100, + "statements": 100 + } + }, + "setupFilesAfterEnv": [ + "/jest.setup.js" + ] + }, + "packageManager": "yarn@4.5.3", + "engines": { + "node": "^22.7.0" + } +} diff --git a/packages/request/package.json b/packages/request/package.json index af5b67b297..3f6ea7143e 100644 --- a/packages/request/package.json +++ b/packages/request/package.json @@ -20,6 +20,7 @@ ], "scripts": { "lint": "eslint . --max-warnings=0", + "lint-sarif": "yarn lint --format=@microsoft/eslint-formatter-sarif", "test": "jest", "test-coverage": "yarn test --coverage" }, @@ -31,6 +32,7 @@ }, "devDependencies": { "@gardener-dashboard/test-utils": "workspace:^", + "@microsoft/eslint-formatter-sarif": "^3.1.0", "abort-controller": "^3.0.0", "eslint": "^9.11.0", "eslint-plugin-import": "^2.31.0", @@ -40,39 +42,6 @@ "jest": "^29.7.0", "neostandard": "^0.11.7" }, - "eslintConfig": { - "env": { - "commonjs": true, - "jest/globals": true - }, - "plugins": [ - "jest" - ], - "extends": [ - "standard", - "plugin:security/recommended-legacy", - "plugin:jest/recommended" - ], - "globals": { - "fixtures": true - }, - "rules": { - "no-console": "error" - }, - "overrides": [ - { - "files": [ - "**/__fixtures__/**", - "**/__mocks__/**", - "**/__tests__/**", - "jest.setup.js" - ], - "rules": { - "security/detect-object-injection": "off" - } - } - ] - }, "jest": { "restoreMocks": true, "verbose": true, diff --git a/scripts/plugin-prod-install.cjs b/scripts/plugin-prod-install.cjs deleted file mode 100644 index cee5444e02..0000000000 --- a/scripts/plugin-prod-install.cjs +++ /dev/null @@ -1,703 +0,0 @@ -// -// SPDX-FileCopyrightText: 2023 SAP SE or an SAP affiliate company and Gardener contributors -// -// SPDX-License-Identifier: Apache-2.0 -// - -const factory = originalRequire => { - const registry = new Map([]) - - function createModule(moduleFactory) { - const exports = {} - moduleFactory(require, exports) - return exports - } - - function require (id) { - return registry.has(id) - ? registry.get(id) - : originalRequire(id) - } - - const core = originalRequire('@yarnpkg/core') - const originalGet = core.Configuration.prototype.get - core.Configuration.prototype.get = function get (key) { - return key === 'lockfileFilename' - ? 'yarn.lock' - : originalGet.call(this, key) - } - const MultiResolver = core.Configuration.prototype.makeResolver.call({ plugins: new Map() }).constructor - const LockfileResolver = core.LockfileResolver - - const fslib = originalRequire('@yarnpkg/fslib') - const { npath, ppath } = fslib - - fslib.toFilename = function toFilename(filename) { - if (npath.parse(filename).dir !== '' || ppath.parse(filename).dir !== '') - throw new Error(`Invalid filename: "${filename}"`); - return filename; - } - - const __yarnUtils = (require, exports) => { - exports.dependenciesUtils = require('./dependenciesUtils') - } - - registry.set('@yarnpkg/core/lib/MultiResolver', { MultiResolver }) - registry.set('@yarnpkg/core/lib/LockfileResolver', { LockfileResolver }) - registry.set('@yarnpkg/fslib', fslib) - registry.set('./dependenciesUtils', createModule(__dependenciesUtils)) - registry.set('@larry1123/yarn-utils', createModule(__yarnUtils)) - registry.set('../util', createModule(__util)) - registry.set('../ProductionInstallFetcher', createModule(__ProductionInstallFetcher)) - registry.set('../ProductionInstallResolver', createModule(__ProductionInstallResolver)) - registry.set('./ProductionInstallCommand', createModule(__ProductionInstallCommand)) - - const { ProdInstall } = require('./ProductionInstallCommand') - - return { - commands: [ - ProdInstall, - ], - } -} - -/** - * This function `__ProductionInstallCommand` is based on a file from the `plugin-prod-install` yarn plugin - * originally developed by Larry1123. The original file can be found at: - * https://gitlab.com/Larry1123/yarn-contrib/-/blob/master/packages/plugin-production-install/lib/commands/productionInstall.js. - * This version has been adapted and modified to ensure compatibility with yarn 4. The original plugin - * appears to be unmaintained and incompatible with this version of yarn. Modifications include: - * 1. Use method `getPackageExtensions` instead of directly accessing the property `configuration.packageExtensions` - * (see https://github.com/yarnpkg/berry/commit/207413b4ea5c9684ebc8dad77bf0cae4b0ec727a). - * - * These changes are detailed in the commit: - * https://github.com/gardener/dashboard/commit/e6e1cbd963a969579294ad2e584ed5056266331a. - */ -const __ProductionInstallCommand = (require, exports) => { - /* - * Copyright 2020 Larry1123 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - Object.defineProperty(exports, "__esModule", { value: true }); - exports.ProdInstall = void 0; - // imports - const core_1 = require("@yarnpkg/core"); - const MultiResolver_1 = require("@yarnpkg/core/lib/MultiResolver"); - const LockfileResolver_1 = require("@yarnpkg/core/lib/LockfileResolver"); - const cli_1 = require("@yarnpkg/cli"); - const fslib_1 = require("@yarnpkg/fslib"); - const plugin_patch_1 = require("@yarnpkg/plugin-patch"); - const plugin_pack_1 = require("@yarnpkg/plugin-pack"); - const clipanion_1 = require("clipanion"); - const yarn_utils_1 = require("@larry1123/yarn-utils"); - const util_1 = require("../util"); - const ProductionInstallFetcher_1 = require("../ProductionInstallFetcher"); - const ProductionInstallResolver_1 = require("../ProductionInstallResolver"); - const ManifestFile = (0, fslib_1.toFilename)('package.json'); - class ProdInstall extends clipanion_1.Command { - constructor() { - super(...arguments); - this.outDirectory = clipanion_1.Option.String({ name: 'outDirectory' }); - this.json = clipanion_1.Option.Boolean(`--json`, false, { description: 'Format the output as an NDJSON stream' }); - this.stripTypes = clipanion_1.Option.Boolean('--strip-types', true, { description: 'Use --no-strip-types to not strip `@types/*` dependencies' }); - this.pack = clipanion_1.Option.Boolean('--pack', false); - this.silent = clipanion_1.Option.Boolean('--silent', false, { hidden: true }); - this.production = clipanion_1.Option.Boolean(`--production`, true, { description: 'Use --no-production to not strip devDependencies' }); - } - async execute() { - const configuration = await core_1.Configuration.find(this.context.cwd, this.context.plugins); - const { project, workspace, } = await core_1.Project.find(configuration, this.context.cwd); - await project.restoreInstallState(); - if (!workspace) { - throw new cli_1.WorkspaceRequiredError(project.cwd, this.context.cwd); - } - const cache = await core_1.Cache.find(configuration, { - immutable: true, - check: false, - }); - const rootDirectoryPath = project.topLevelWorkspace.cwd; - const outDirectoryPath = fslib_1.npath.isAbsolute(this.outDirectory) - ? fslib_1.npath.toPortablePath(this.outDirectory) - : fslib_1.ppath.join(workspace.cwd, fslib_1.npath.toPortablePath(this.outDirectory)); - const report = await core_1.StreamReport.start({ - configuration, - json: this.json, - stdout: this.context.stdout, - }, async (report) => { - await report.startTimerPromise('Setting up production directory', async () => { - await fslib_1.xfs.mkdirpPromise(outDirectoryPath); - await (0, util_1.copyFile)(rootDirectoryPath, outDirectoryPath, configuration.get(`lockfileFilename`)); - await (0, util_1.copyFile)(rootDirectoryPath, outDirectoryPath, configuration.get(`rcFilename`)); - await (0, util_1.copyFile)(workspace.cwd, outDirectoryPath, ManifestFile); - const yarnExcludes = []; - const checkConfigurationToExclude = (config) => { - try { - if (configuration.get(config)) { - yarnExcludes.push(configuration.get(config)); - } - } - catch (_) { - // noop - } - }; - checkConfigurationToExclude('installStatePath'); - checkConfigurationToExclude('cacheFolder'); - checkConfigurationToExclude('deferredVersionFolder'); - await configuration.triggerHook((hooks) => { - return hooks.populateYarnPaths; - }, project, (path) => { - if (path) { - yarnExcludes.push(path); - } - }); - await (0, util_1.copyFolder)(rootDirectoryPath, outDirectoryPath, `.yarn`, yarnExcludes); - }); - await report.startTimerPromise('Installing production version', async () => { - const outConfiguration = await core_1.Configuration.find(outDirectoryPath, this.context.plugins); - if (this.stripTypes) { - const packageExtensions = await outConfiguration.getPackageExtensions() - for (const [ident, extensionsByIdent,] of packageExtensions.entries()) { - const identExt = []; - for (const [range, extensionsByRange] of extensionsByIdent) { - identExt.push([ - range, - extensionsByRange.filter((extension) => { - var _a; - // TODO solve without ts-ignore - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - return ((_a = extension === null || extension === void 0 ? void 0 : extension.descriptor) === null || _a === void 0 ? void 0 : _a.scope) !== 'types'; - }), - ]); - } - packageExtensions.set(ident, identExt); - } - } - const { project: outProject, workspace: outWorkspace, } = await core_1.Project.find(outConfiguration, outDirectoryPath); - if (!outWorkspace) { - throw new cli_1.WorkspaceRequiredError(project.cwd, this.context.cwd); - } - if (this.production) { - outWorkspace.manifest.devDependencies.clear(); - } - const outCache = await core_1.Cache.find(outConfiguration, { - immutable: false, - check: false, - }); - const multiFetcher = configuration.makeFetcher(); - const realResolver = configuration.makeResolver(); - const multiResolver = new MultiResolver_1.MultiResolver([ - new LockfileResolver_1.LockfileResolver(realResolver), - realResolver, - ]); - const resolver = new ProductionInstallResolver_1.ProductionInstallResolver({ - project, - resolver: multiResolver, - stripTypes: this.stripTypes, - }); - const fetcher = new ProductionInstallFetcher_1.ProductionInstallFetcher({ - cache, - fetcher: multiFetcher, - project, - }); - await this.modifyOriginalResolutions(outProject, resolver, { - project: outProject, - fetchOptions: { - cache: outCache, - project: outProject, - fetcher, - checksums: outProject.storedChecksums, - report, - }, - resolver, - report, - }); - await outProject.install({ - cache: outCache, - report, - immutable: false, - fetcher, - resolver, - }); - await report.startTimerPromise('Cleaning up unused dependencies', async () => { - const toRemove = []; - toRemove.push(...(await this.getPatchSourcesToRemove(outProject, outCache))); - for (const locatorPath of toRemove) { - if (await fslib_1.xfs.existsPromise(locatorPath)) { - report.reportInfo(core_1.MessageName.UNUSED_CACHE_ENTRY, `${fslib_1.ppath.basename(locatorPath)} appears to be unused - removing`); - await fslib_1.xfs.removePromise(locatorPath); - } - } - }); - }); - if (this.pack) { - await report.startTimerPromise('Packing workspace ', async () => { - await plugin_pack_1.packUtils.prepareForPack(workspace, { report }, async () => { - report.reportJson({ base: workspace.cwd }); - const files = await plugin_pack_1.packUtils.genPackList(workspace); - for (const file of files) { - report.reportInfo(null, file); - report.reportJson({ location: file }); - if (file.endsWith(ManifestFile)) { - const manifest = await plugin_pack_1.packUtils.genPackageManifest(workspace); - await fslib_1.xfs.writeJsonPromise(fslib_1.ppath.resolve(outDirectoryPath, file), manifest); - } - else { - await (0, util_1.copyFile)(workspace.cwd, outDirectoryPath, file); - } - } - }); - }); - } - }); - return report.exitCode(); - } - async getPatchSourcesToRemove(project, cache) { - var _a; - const patchedPackages = []; - project.storedPackages.forEach((storedPackage) => { - if (storedPackage.reference.startsWith('patch:')) { - patchedPackages.push(storedPackage); - } - }); - const toRemove = []; - for (const patchedPackage of patchedPackages) { - const { sourceLocator, } = plugin_patch_1.patchUtils.parseLocator(patchedPackage); - const sourcePackage = project.storedPackages.get(sourceLocator.locatorHash); - if (!sourcePackage) { - // This should be an error but currently not going to throw - break; - } - const dependencies = await yarn_utils_1.dependenciesUtils.getDependents(project, sourcePackage); - if (dependencies.filter((pkg) => pkg.locatorHash !== patchedPackage.locatorHash).length > 0) { - const locatorPath = cache.getLocatorPath(sourceLocator, (_a = project.storedChecksums.get(sourceLocator.locatorHash)) !== null && _a !== void 0 ? _a : null); - if (locatorPath) { - toRemove.push(locatorPath); - } - } - } - return toRemove; - } - async modifyOriginalResolutions(project, resolver, opts) { - await opts.report.startTimerPromise('Modifying original install state', async () => { - for (const [locatorHash, originalPackage,] of project.originalPackages.entries()) { - const resolvedPackage = await resolver.resolve(originalPackage, opts); - project.originalPackages.set(locatorHash, resolvedPackage); - } - }); - } - } - exports.ProdInstall = ProdInstall; - ProdInstall.paths = [['prod-install']]; - ProdInstall.usage = clipanion_1.Command.Usage({ - description: 'INSTALL!', - details: 'prod only install', - examples: [ - [`Install the project with only prod dependencies`, `$0 prod-install`], - ], - }); -} - -/** - * This function `__ProductionInstallFetcher` is based on a file from the `plugin-prod-install` yarn plugin - * originally developed by Larry1123. The original file can be found at: - * https://gitlab.com/Larry1123/yarn-contrib/-/blob/master/packages/plugin-production-install/lib/ProductionInstallFetcher.js. - * This version has been adapted and modified to ensure compatibility with yarn 4. The original plugin - * appears to be unmaintained and incompatible with this version of yarn. Modifications include: - * 1. In the case of workspace packages fetched from the cache, a checksum is generated. It is - * essential for the `ProductionInstallFetcher` not to return this checksum, as doing so leads - * to the packages not being located in the filesystem subsequently. - * - * These changes are detailed in the commit: - * https://github.com/gardener/dashboard/commit/194b6567282bd4b0bbfc9b5e955dbd228f317244. - */ -const __ProductionInstallFetcher = (require, exports) => { - /* - * Copyright 2020 Larry1123 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - Object.defineProperty(exports, "__esModule", { value: true }); - exports.ProductionInstallFetcher = void 0; - // imports - const core_1 = require("@yarnpkg/core"); - const fslib_1 = require("@yarnpkg/fslib"); - const plugin_pack_1 = require("@yarnpkg/plugin-pack"); - class ProductionInstallFetcher { - constructor({ fetcher, project, cache, }) { - this.fetcher = fetcher; - this.project = project; - this.cache = cache; - } - supports(locator, opts) { - return this.fetcher.supports(locator, opts); - } - getLocalPath(locator, opts) { - if (locator.reference.startsWith(core_1.WorkspaceResolver.protocol) && - locator.reference !== `${core_1.WorkspaceResolver.protocol}.`) { - return null; - } - else { - return this.fetcher.getLocalPath(locator, opts); - } - } - async fetch(locator, opts) { - const expectedChecksum = opts.checksums.get(locator.locatorHash) || null; - if (locator.reference.startsWith(core_1.WorkspaceResolver.protocol) && - locator.reference !== `${core_1.WorkspaceResolver.protocol}.`) { - const cache = await this.makeTemporaryCache(opts.cache); - const [packageFs, releaseFs, checksum] = await cache.fetchPackageFromCache(locator, expectedChecksum, { - onHit: () => opts.report.reportCacheHit(locator), - onMiss: () => opts.report.reportCacheMiss(locator, `${core_1.structUtils.prettyLocator(opts.project.configuration, locator)} can't be found in the cache and will be packed from disk.`), - loader: async () => this.packWorkspace(locator, opts), - skipIntegrityCheck: opts.skipIntegrityCheck, - }); - cache.markedFiles.forEach((cachePath) => opts.cache.markedFiles.add(cachePath)); - return { - packageFs, - releaseFs, - prefixPath: core_1.structUtils.getIdentVendorPath(locator), - checksum: expectedChecksum, - }; - } - const cachePath = this.cache.getLocatorPath(locator, expectedChecksum); - if (cachePath && - cachePath.endsWith('.zip') && - (await fslib_1.xfs.existsPromise(cachePath))) { - const outCachePath = opts.cache.getLocatorPath(locator, expectedChecksum); - if (outCachePath && !(await fslib_1.xfs.existsPromise(outCachePath))) { - try { - await fslib_1.xfs.linkPromise(cachePath, outCachePath); - } - catch (error) { - if (!(await fslib_1.xfs.existsPromise(outCachePath))) { - opts.report.reportError(core_1.MessageName.FETCH_FAILED, `Failed to link the cache entry for ${core_1.structUtils.prettyLocator(opts.cache.configuration, locator)}`); - } - } - } - } - return this.fetcher.fetch(locator, opts); - } - async packWorkspace(locator, { report, }) { - const { configuration, } = this.project; - const workspace = this.project.getWorkspaceByLocator(locator); - return fslib_1.xfs.mktempPromise(async (logDir) => { - const workspacePretty = core_1.structUtils.slugifyLocator(locator); - const logFile = fslib_1.ppath.join(logDir, (0, fslib_1.toFilename)(`${workspacePretty}-pack.log`)); - const header = `# This file contains the result of Yarn calling packing "${workspacePretty}" ("${workspace.cwd}")\n`; - const { stdout, stderr, } = configuration.getSubprocessStreams(logFile, { - report, - prefix: core_1.structUtils.prettyLocator(configuration, workspace.anchoredLocator), - header, - }); - const packReport = await core_1.StreamReport.start({ - configuration, - stdout, - }, async () => { - /** noop **/ - }); - try { - let buffer; - await plugin_pack_1.packUtils.prepareForPack(workspace, { report: packReport }, async () => { - packReport.reportJson({ base: workspace.cwd }); - const files = await plugin_pack_1.packUtils.genPackList(workspace); - for (const file of files) { - packReport.reportInfo(null, file); - packReport.reportJson({ location: file }); - } - const pack = await plugin_pack_1.packUtils.genPackStream(workspace, files); - buffer = await core_1.miscUtils.bufferStream(pack); - }); - return await core_1.tgzUtils.convertToZip(buffer, { - stripComponents: 1, - prefixPath: core_1.structUtils.getIdentVendorPath(locator), - }); - } - catch (error) { - fslib_1.xfs.detachTemp(logDir); - if (error instanceof Error) { - stderr.write(error.stack); - } - throw new core_1.ReportError(core_1.MessageName.LIFECYCLE_SCRIPT, `Packing ${workspacePretty} failed, logs can be found here: ${core_1.formatUtils.pretty(configuration, logFile, core_1.formatUtils.Type.PATH)}); run ${core_1.formatUtils.pretty(configuration, `yarn ${fslib_1.ppath.relative(this.project.cwd, workspace.cwd)} pack`, core_1.formatUtils.Type.CODE)} to investigate`); - } - finally { - await packReport.finalize(); - stdout.end(); - stderr.end(); - } - }); - } - async makeTemporaryCache(cache) { - const { configuration: { startingCwd, plugins, }, check, immutable, cwd, } = cache; - const configuration = core_1.Configuration.create(startingCwd, plugins); - configuration.useWithSource(startingCwd, { enableMirror: false }, startingCwd, { overwrite: true }); - return new core_1.Cache(cwd, { - configuration, - check, - immutable, - }); - } - } - exports.ProductionInstallFetcher = ProductionInstallFetcher; -} - -/** - * This function `__ProductionInstallResolver` is based on a file from the `plugin-prod-install` yarn plugin - * originally developed by Larry1123. The original file can be found at: - * https://gitlab.com/Larry1123/yarn-contrib/-/blob/master/packages/plugin-production-install/lib/ProductionInstallResolver.js. - * This version has been adapted and modified to ensure compatibility with yarn 4. The original plugin - * appears to be unmaintained and incompatible with this version of yarn. Modifications include: - * 1. Normalize dependency map of resolved workspace packages. - * - * These changes are detailed in the commit: - * https://github.com/gardener/dashboard/commit/e6e1cbd963a969579294ad2e584ed5056266331a. - */ -const __ProductionInstallResolver = (require, exports) => { - /* - * Copyright 2020 Larry1123 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - Object.defineProperty(exports, "__esModule", { value: true }); - exports.ProductionInstallResolver = void 0; - // imports - const core_1 = require("@yarnpkg/core"); - class ProductionInstallResolver { - constructor({ resolver, project, stripTypes = true, }) { - this.resolver = resolver; - this.project = project; - this.stripTypes = stripTypes; - } - supportsDescriptor(descriptor, opts) { - return this.resolver.supportsDescriptor(descriptor, opts); - } - supportsLocator(locator, opts) { - return this.resolver.supportsLocator(locator, opts); - } - shouldPersistResolution(locator, opts) { - if (locator.reference.startsWith(core_1.WorkspaceResolver.protocol)) { - return false; - } - else { - return this.resolver.shouldPersistResolution(locator, opts); - } - } - bindDescriptor(descriptor, fromLocator, opts) { - return this.resolver.bindDescriptor(descriptor, fromLocator, opts); - } - getResolutionDependencies(descriptor, opts) { - return this.resolver.getResolutionDependencies(descriptor, opts); - } - async getCandidates(descriptor, dependencies, opts) { - if (descriptor.range.startsWith(core_1.WorkspaceResolver.protocol) && - descriptor.range !== `${core_1.WorkspaceResolver.protocol}.`) { - const workplace = this.project.getWorkspaceByDescriptor(descriptor); - return [workplace.anchoredLocator]; - } - else { - return this.resolver.getCandidates(descriptor, dependencies, opts); - } - } - async resolve(locator, opts) { - const resolve = async () => { - if (locator.reference.startsWith(core_1.WorkspaceResolver.protocol) && - locator.reference !== `${core_1.WorkspaceResolver.protocol}.`) { - const workspace = this.project.getWorkspaceByLocator(locator); - return { - ...locator, - version: workspace.manifest.version || `0.0.0`, - languageName: `unknown`, - linkType: core_1.LinkType.SOFT, - dependencies: this.project.configuration.normalizeDependencyMap(new Map([...workspace.manifest.dependencies])), - peerDependencies: new Map([...workspace.manifest.peerDependencies]), - dependenciesMeta: workspace.manifest.dependenciesMeta, - peerDependenciesMeta: workspace.manifest.peerDependenciesMeta, - bin: workspace.manifest.bin, - }; - } - return this.resolver.resolve(locator, opts); - }; - const resolvedPackage = await resolve(); - const dependencies = new Map(); - for (const [hash, descriptor] of resolvedPackage.dependencies.entries()) { - if (this.stripTypes && descriptor.scope === 'types') { - continue; - } - dependencies.set(hash, descriptor); - } - return { - ...resolvedPackage, - dependencies, - }; - } - async getSatisfying( - // eslint-disable-next-line @typescript-eslint/no-unused-vars - _descriptor, - // eslint-disable-next-line @typescript-eslint/no-unused-vars - _references, - // eslint-disable-next-line @typescript-eslint/no-unused-vars - _opts) { - return null; - } - } - exports.ProductionInstallResolver = ProductionInstallResolver; -} - -/** - * The function `__util` is a direct wrapper of the corresponding file from the `plugin-prod-install` - * yarn plugin developed by Larry1123. This code remains unmodified from the original implementation. - * The original file can be found at: - * https://gitlab.com/Larry1123/yarn-contrib/-/blob/master/packages/plugin-production-install/lib/util.js. - * - * Note: This wrapper is created to integrate with yarn 4, as the original plugin is - * not maintained and is incompatible with this version of yarn. - */ -const __util = (require, exports) => { - /* - * Copyright 2020 Larry1123 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - Object.defineProperty(exports, "__esModule", { value: true }); - exports.copyFolderRecursivePromise = exports.copyFolder = exports.copyFile = void 0; - // imports - const fslib_1 = require("@yarnpkg/fslib"); - async function copyFile(src, dist, file) { - await fslib_1.xfs.mkdirpPromise(fslib_1.ppath.dirname(fslib_1.ppath.resolve(dist, file))); - return fslib_1.xfs.copyFilePromise(fslib_1.ppath.resolve(src, file), fslib_1.ppath.resolve(dist, file)); - } - exports.copyFile = copyFile; - async function copyFolder(src, dist, folder, exclude = []) { - return copyFolderRecursivePromise(fslib_1.ppath.resolve(src, folder), fslib_1.ppath.resolve(dist, folder), exclude); - } - exports.copyFolder = copyFolder; - async function copyFolderRecursivePromise(source, target, exclude = []) { - if ((await fslib_1.xfs.lstatPromise(source)).isDirectory()) { - if (!(await fslib_1.xfs.existsPromise(target))) { - await fslib_1.xfs.mkdirpPromise(target); - } - const files = await fslib_1.xfs.readdirPromise(source); - for (const file of files) { - const curSource = fslib_1.ppath.resolve(source, file); - const curTarget = fslib_1.ppath.resolve(target, file); - const isExcluded = () => { - for (const portablePath of exclude) { - if (curSource.endsWith(portablePath)) - return true; - } - return false; - }; - if (!isExcluded()) { - if ((await fslib_1.xfs.lstatPromise(curSource)).isDirectory()) { - await copyFolderRecursivePromise(curSource, curTarget, exclude); - } - else { - await fslib_1.xfs.copyFilePromise(curSource, curTarget); - } - } - } - } - else { - throw new Error('src not a folder'); - } - } - exports.copyFolderRecursivePromise = copyFolderRecursivePromise; -} - -/** - * The function `__dependenciesUtils` is a direct wrapper of the corresponding file from the `plugin-prod-install` - * yarn plugin developed by Larry1123. This code remains unmodified from the original implementation. - * The original file can be found at: - * https://gitlab.com/Larry1123/yarn-contrib/-/blob/master/packages/yarn-utils/lib/dependenciesUtils.js. - * - * Note: This wrapper is created to integrate with yarn 4, as the original plugin is - * not maintained and is incompatible with this version of yarn. - */ -const __dependenciesUtils = (require, exports) => { - /* - * Copyright 2020 Larry1123 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - Object.defineProperty(exports, "__esModule", { value: true }); - exports.getDependents = void 0; - /** - * Get all packages that depend on a given package - * - * Be sure to have ran @{link Project#restoreInstallState} if needed - * - * @param project Project to search within - * @param searchPackage Package to find as a dependency - */ - async function getDependents(project, searchPackage) { - const collected = []; - for (const dependencyPackage of project.storedPackages.values()) { - for (const dependencyDescriptor of dependencyPackage.dependencies.values()) { - const resolutionLocatorHash = project.storedResolutions.get(dependencyDescriptor.descriptorHash); - if (resolutionLocatorHash === searchPackage.locatorHash) { - collected.push(dependencyPackage); - break; - } - } - } - return collected; - } - exports.getDependents = getDependents; -} - -module.exports = { - name: 'plugin-prod-install', - factory, -} diff --git a/scripts/update-prod-install.cjs b/scripts/update-prod-install.cjs new file mode 100644 index 0000000000..334dbd7909 --- /dev/null +++ b/scripts/update-prod-install.cjs @@ -0,0 +1,147 @@ +#!/usr/bin/env node +// +// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 +// + +const fs = require('fs') +const path = require('path') +const crypto = require('crypto') + +const fullYear = new Date().getFullYear() +const commit = 'master' +const baseUrl = `https://gitlab.com/Larry1123/yarn-contrib/` + +const pluginFiles = [ + ['yarn-utils/lib/dependenciesUtils.js', [ + './dependenciesUtils', + ]], + ['yarn-utils/lib/index.js', [ + '@larry1123/yarn-utils', + ]], + ['plugin-production-install/lib/util.js', [ + '../util', + ]], + ['plugin-production-install/lib/ProductionInstallFetcher.js', [ + '../ProductionInstallFetcher', + ]], + ['plugin-production-install/lib/ProductionInstallResolver.js', [ + '../ProductionInstallResolver', + ]], + ['plugin-production-install/lib/commands/productionInstall.js', [ + './ProductionInstallCommand', + ]], +] + +function rawURL (url) { + return new URL(url, `${baseUrl}-/raw/${commit}/packages/`) +} + +function blobURL(url) { + return new URL(url, `${baseUrl}-/blob/${commit}/packages/`) +} + +function md5 (data) { + return crypto.createHash('md5').update(data).digest('hex') +} + +function functionName (url) { + return '$' + md5(url) +} + +function moduleName (url) { + const [packageName] = url.split('/') + const name = path.basename(url, '.js') + return name === 'index' + ? packageName + : name +} + +function createRegistryEntriesCode () { + return pluginFiles + .flatMap(([url, ids]) => ids.map(id => { + return ` registry.set('${id}', createModule(${functionName(url)}))` + })) + .join('\n') +} + +async function fetchCode (url, indent = '') { + const response = await fetch(rawURL(url)) + const text = await response.text() + return text + .replace(/(^\n+|\n+$)/g, '') + .split('\n') + .map(line => indent + line) + .join('\n') +} + +async function createModulesCodes () { + const urls = pluginFiles.map(([url]) => url) + const moduleEntries = await Promise.all(urls.map(async url => [url, await fetchCode(url, ' ')])) + return moduleEntries + .map(([url, body]) => { + return `/** + * Wrapper function for the \`${moduleName(url)}\` implementation from the + * Yarn plugin by Larry1123. The original source code remains unmodified and can be found here: + * ${blobURL(url).toString()} + */ +const ${functionName(url)} = (require, exports) => { +${body} +} +` + }) + .join('\n') +} + +const template = `// +// SPDX-FileCopyrightText: ${fullYear} SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 +// + +const factory = originalRequire => { + const registry = new Map([]) + + function createModule(moduleFactory) { + const exports = {} + moduleFactory(require, exports) + return exports + } + + function require (id) { + return registry.has(id) + ? registry.get(id) + : originalRequire(id) + } + + const MultiResolver = require('@yarnpkg/core').Configuration.prototype.makeResolver.call({ plugins: new Map() }).constructor + registry.set('../MultiResolver', { MultiResolver }) + + const { ProdInstall } = require('./ProductionInstallCommand') + + return { + commands: [ + ProdInstall, + ], + } +} + +module.exports = { + name: 'plugin-prod-install', + factory, +} +` + +async function main () { + const filename = path.join(__dirname, '..', '.yarn', 'plugins', 'plugin-prod-install.cjs') + const lines = template.split('\n') + const registryIndex = lines.findIndex(line => /^\s+registry\.set/.test(line)) + lines.splice(registryIndex + 1, 0, createRegistryEntriesCode()) + const modulesIndex = lines.findIndex(line => /^module\.exports/.test(line)) + lines.splice(modulesIndex, 0, await createModulesCodes()) + fs.writeFileSync(filename, lines.join('\n'), 'utf8') + console.log('Updated %s', filename) +} + +main() diff --git a/yarn.config.cjs b/yarn.config.cjs index b2bf5f5454..752e636925 100644 --- a/yarn.config.cjs +++ b/yarn.config.cjs @@ -57,7 +57,7 @@ module.exports = { enforceFieldsOnAllWorkspaces(ctx, { license: 'Apache-2.0', 'engines.node': '^22.7.0', - 'packageManager': 'yarn@4.5.1', + 'packageManager': 'yarn@4.5.3', 'repository.type': 'git', 'repository.url': 'git+https://github.com/gardener/dashboard.git', 'repository.directory': workspace => workspace.cwd, diff --git a/yarn.lock b/yarn.lock index d8313292ca..c4a5608113 100644 --- a/yarn.lock +++ b/yarn.lock @@ -506,8 +506,8 @@ __metadata: linkType: hard "@codemirror/language@npm:^6.0.0, @codemirror/language@npm:^6.10.2": - version: 6.10.4 - resolution: "@codemirror/language@npm:6.10.4" + version: 6.10.6 + resolution: "@codemirror/language@npm:6.10.6" dependencies: "@codemirror/state": "npm:^6.0.0" "@codemirror/view": "npm:^6.23.0" @@ -515,7 +515,7 @@ __metadata: "@lezer/highlight": "npm:^1.0.0" "@lezer/lr": "npm:^1.0.0" style-mod: "npm:^4.0.0" - checksum: 10c0/46c2bda099f873b1e906801671f921370d98351fd78c48743d349f1ac78052297ec4dcbf449d78ce0c8a84456cc18102631cccf369ee60fabd851652ebdd8547 + checksum: 10c0/8d6812165970303696d7b8e20236278ff2df0407c76e784a4d5be42b2219a5ca868d15ccbe59f43445dc62968e4ab784ed9e738db02e3a7b1be11a8eba59756d languageName: node linkType: hard @@ -567,6 +567,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/aix-ppc64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/aix-ppc64@npm:0.24.0" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/android-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/android-arm64@npm:0.21.5" @@ -574,6 +581,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/android-arm64@npm:0.24.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/android-arm@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/android-arm@npm:0.21.5" @@ -581,6 +595,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/android-arm@npm:0.24.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@esbuild/android-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/android-x64@npm:0.21.5" @@ -588,6 +609,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/android-x64@npm:0.24.0" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + "@esbuild/darwin-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/darwin-arm64@npm:0.21.5" @@ -595,6 +623,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/darwin-arm64@npm:0.24.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/darwin-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/darwin-x64@npm:0.21.5" @@ -602,6 +637,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/darwin-x64@npm:0.24.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@esbuild/freebsd-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/freebsd-arm64@npm:0.21.5" @@ -609,6 +651,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/freebsd-arm64@npm:0.24.0" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/freebsd-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/freebsd-x64@npm:0.21.5" @@ -616,6 +665,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/freebsd-x64@npm:0.24.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/linux-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-arm64@npm:0.21.5" @@ -623,6 +679,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-arm64@npm:0.24.0" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/linux-arm@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-arm@npm:0.21.5" @@ -630,6 +693,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-arm@npm:0.24.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-ia32@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-ia32@npm:0.21.5" @@ -637,6 +707,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ia32@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-ia32@npm:0.24.0" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-loong64@npm:0.21.5" @@ -644,6 +721,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-loong64@npm:0.24.0" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@esbuild/linux-mips64el@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-mips64el@npm:0.21.5" @@ -651,6 +735,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-mips64el@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-mips64el@npm:0.24.0" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + "@esbuild/linux-ppc64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-ppc64@npm:0.21.5" @@ -658,6 +749,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ppc64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-ppc64@npm:0.24.0" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/linux-riscv64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-riscv64@npm:0.21.5" @@ -665,6 +763,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-riscv64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-riscv64@npm:0.24.0" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "@esbuild/linux-s390x@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-s390x@npm:0.21.5" @@ -672,6 +777,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-s390x@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-s390x@npm:0.24.0" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "@esbuild/linux-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-x64@npm:0.21.5" @@ -679,6 +791,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-x64@npm:0.24.0" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "@esbuild/netbsd-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/netbsd-x64@npm:0.21.5" @@ -686,6 +805,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/netbsd-x64@npm:0.24.0" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/openbsd-arm64@npm:0.24.0" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/openbsd-x64@npm:0.21.5" @@ -693,6 +826,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/openbsd-x64@npm:0.24.0" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/sunos-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/sunos-x64@npm:0.21.5" @@ -700,6 +840,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/sunos-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/sunos-x64@npm:0.24.0" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + "@esbuild/win32-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/win32-arm64@npm:0.21.5" @@ -707,6 +854,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/win32-arm64@npm:0.24.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/win32-ia32@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/win32-ia32@npm:0.21.5" @@ -714,6 +868,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/win32-ia32@npm:0.24.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/win32-x64@npm:0.21.5" @@ -721,18 +882,14 @@ __metadata: languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": - version: 4.4.0 - resolution: "@eslint-community/eslint-utils@npm:4.4.0" - dependencies: - eslint-visitor-keys: "npm:^3.3.0" - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: 10c0/7e559c4ce59cd3a06b1b5a517b593912e680a7f981ae7affab0d01d709e99cd5647019be8fafa38c350305bc32f1f7d42c7073edde2ab536c745e365f37b607e +"@esbuild/win32-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/win32-x64@npm:0.24.0" + conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.4.1": +"@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0, @eslint-community/eslint-utils@npm:^4.4.1": version: 4.4.1 resolution: "@eslint-community/eslint-utils@npm:4.4.1" dependencies: @@ -743,41 +900,51 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.11.0": - version: 4.11.1 - resolution: "@eslint-community/regexpp@npm:4.11.1" - checksum: 10c0/fbcc1cb65ef5ed5b92faa8dc542e035269065e7ebcc0b39c81a4fe98ad35cfff20b3c8df048641de15a7757e07d69f85e2579c1a5055f993413ba18c055654f8 - languageName: node - linkType: hard - -"@eslint-community/regexpp@npm:^4.12.1": +"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.11.0, @eslint-community/regexpp@npm:^4.12.1, @eslint-community/regexpp@npm:^4.6.1": version: 4.12.1 resolution: "@eslint-community/regexpp@npm:4.12.1" checksum: 10c0/a03d98c246bcb9109aec2c08e4d10c8d010256538dcb3f56610191607214523d4fb1b00aa81df830b6dffb74c5fa0be03642513a289c567949d3e550ca11cdf6 languageName: node linkType: hard -"@eslint/config-array@npm:^0.18.0": - version: 0.18.0 - resolution: "@eslint/config-array@npm:0.18.0" +"@eslint/config-array@npm:^0.19.0": + version: 0.19.0 + resolution: "@eslint/config-array@npm:0.19.0" dependencies: "@eslint/object-schema": "npm:^2.1.4" debug: "npm:^4.3.1" minimatch: "npm:^3.1.2" - checksum: 10c0/0234aeb3e6b052ad2402a647d0b4f8a6aa71524bafe1adad0b8db1dfe94d7f5f26d67c80f79bb37ac61361a1d4b14bb8fb475efe501de37263cf55eabb79868f + checksum: 10c0/def23c6c67a8f98dc88f1b87e17a5668e5028f5ab9459661aabfe08e08f2acd557474bbaf9ba227be0921ae4db232c62773dbb7739815f8415678eb8f592dbf5 languageName: node linkType: hard -"@eslint/core@npm:^0.7.0": - version: 0.7.0 - resolution: "@eslint/core@npm:0.7.0" - checksum: 10c0/3cdee8bc6cbb96ac6103d3ead42e59830019435839583c9eb352b94ed558bd78e7ffad5286dc710df21ec1e7bd8f52aa6574c62457a4dd0f01f3736fa4a7d87a +"@eslint/core@npm:^0.9.0": + version: 0.9.0 + resolution: "@eslint/core@npm:0.9.0" + checksum: 10c0/6d8e8e0991cef12314c49425d8d2d9394f5fb1a36753ff82df7c03185a4646cb7c8736cf26638a4a714782cedf4b23cfc17667d282d3e5965b3920a0e7ce20d4 languageName: node linkType: hard -"@eslint/eslintrc@npm:^3.1.0": - version: 3.1.0 - resolution: "@eslint/eslintrc@npm:3.1.0" +"@eslint/eslintrc@npm:^2.1.4": + version: 2.1.4 + resolution: "@eslint/eslintrc@npm:2.1.4" + dependencies: + ajv: "npm:^6.12.4" + debug: "npm:^4.3.2" + espree: "npm:^9.6.0" + globals: "npm:^13.19.0" + ignore: "npm:^5.2.0" + import-fresh: "npm:^3.2.1" + js-yaml: "npm:^4.1.0" + minimatch: "npm:^3.1.2" + strip-json-comments: "npm:^3.1.1" + checksum: 10c0/32f67052b81768ae876c84569ffd562491ec5a5091b0c1e1ca1e0f3c24fb42f804952fdd0a137873bc64303ba368a71ba079a6f691cee25beee9722d94cc8573 + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^3.2.0": + version: 3.2.0 + resolution: "@eslint/eslintrc@npm:3.2.0" dependencies: ajv: "npm:^6.12.4" debug: "npm:^4.3.2" @@ -788,14 +955,21 @@ __metadata: js-yaml: "npm:^4.1.0" minimatch: "npm:^3.1.2" strip-json-comments: "npm:^3.1.1" - checksum: 10c0/5b7332ed781edcfc98caa8dedbbb843abfb9bda2e86538529c843473f580e40c69eb894410eddc6702f487e9ee8f8cfa8df83213d43a8fdb549f23ce06699167 + checksum: 10c0/43867a07ff9884d895d9855edba41acf325ef7664a8df41d957135a81a477ff4df4196f5f74dc3382627e5cc8b7ad6b815c2cea1b58f04a75aced7c43414ab8b languageName: node linkType: hard -"@eslint/js@npm:9.14.0": - version: 9.14.0 - resolution: "@eslint/js@npm:9.14.0" - checksum: 10c0/a423dd435e10aa3b461599aa02f6cbadd4b5128cb122467ee4e2c798e7ca4f9bb1fce4dcea003b29b983090238cf120899c1af657cf86300b399e4f996b83ddc +"@eslint/js@npm:8.57.1": + version: 8.57.1 + resolution: "@eslint/js@npm:8.57.1" + checksum: 10c0/b489c474a3b5b54381c62e82b3f7f65f4b8a5eaaed126546520bf2fede5532a8ed53212919fed1e9048dcf7f37167c8561d58d0ba4492a4244004e7793805223 + languageName: node + linkType: hard + +"@eslint/js@npm:9.16.0": + version: 9.16.0 + resolution: "@eslint/js@npm:9.16.0" + checksum: 10c0/a55846a4ddade720662d36682f3eaaf38eac06eeee12c83bb837bba2b7d550dadcb3445b104219f0bc1da2e09b4fe5fb5ba123b8338c8c787bcfbd540878df75 languageName: node linkType: hard @@ -806,7 +980,7 @@ __metadata: languageName: node linkType: hard -"@eslint/plugin-kit@npm:^0.2.0": +"@eslint/plugin-kit@npm:^0.2.3": version: 0.2.3 resolution: "@eslint/plugin-kit@npm:0.2.3" dependencies: @@ -859,6 +1033,7 @@ __metadata: "@gardener-dashboard/request": "workspace:^" "@gardener-dashboard/test-utils": "workspace:^" "@godaddy/terminus": "npm:^4.12.1" + "@microsoft/eslint-formatter-sarif": "npm:^3.1.0" "@octokit/auth-app": "npm:^6.0.4" "@octokit/core": "npm:^5.1.0" "@octokit/plugin-paginate-graphql": "npm:^4.0.1" @@ -943,6 +1118,7 @@ __metadata: "@lezer/common": "npm:^1.2.1" "@luigi-project/client": "npm:^2.9.0" "@mdi/font": "npm:7.4.47" + "@microsoft/eslint-formatter-sarif": "npm:^3.1.0" "@pinia/testing": "npm:^0.1.3" "@typescript-eslint/utils": "npm:^8.12.2" "@vitejs/plugin-basic-ssl": "npm:^1.1.0" @@ -953,9 +1129,9 @@ __metadata: "@vue/test-utils": "npm:^2.4.5" "@vuelidate/core": "npm:^2.0.3" "@vuelidate/validators": "npm:^2.0.4" - "@vueuse/core": "npm:^11.0.0-0" - "@vueuse/integrations": "npm:^11.0.0-0" - "@vueuse/router": "npm:^11.0.0-0" + "@vueuse/core": "npm:^12.0.0" + "@vueuse/integrations": "npm:^12.0.0" + "@vueuse/router": "npm:^12.0.0" "@xterm/addon-fit": "npm:^0.10.0" "@xterm/addon-web-links": "npm:^0.11.0" "@xterm/xterm": "npm:^5.5.0" @@ -997,11 +1173,11 @@ __metadata: unplugin-fonts: "npm:^1.1.1" url-template: "npm:^3.1.1" uuid: "npm:^11.0.0" - vite: "npm:^5.1.6" + vite: "npm:^6.0.0" vite-plugin-compression: "npm:^0.5.1" vite-plugin-vuetify: "npm:^2.0.3" vitest: "npm:^2.0.0" - vitest-fetch-mock: "npm:^0.3.0" + vitest-fetch-mock: "npm:^0.4.0" vue: "npm:^3.4.21" vue-router: "npm:^4.3.0" vuetify: "npm:^3.5.10" @@ -1016,6 +1192,7 @@ __metadata: "@gardener-dashboard/logger": "workspace:^" "@gardener-dashboard/request": "workspace:^" "@gardener-dashboard/test-utils": "workspace:^" + "@microsoft/eslint-formatter-sarif": "npm:^3.1.0" abort-controller: "npm:^3.0.0" eslint: "npm:^9.11.0" eslint-plugin-import: "npm:^2.31.0" @@ -1037,9 +1214,9 @@ __metadata: version: 0.0.0-use.local resolution: "@gardener-dashboard/kube-config@workspace:packages/kube-config" dependencies: - "@gardener-dashboard/logger": "workspace:^" + "@gardener-dashboard/polling-watcher": "workspace:^" "@gardener-dashboard/test-utils": "workspace:^" - chokidar: "npm:^4.0.0" + "@microsoft/eslint-formatter-sarif": "npm:^3.1.0" eslint: "npm:^9.11.0" eslint-plugin-import: "npm:^2.31.0" eslint-plugin-jest: "npm:^28.8.3" @@ -1057,6 +1234,7 @@ __metadata: version: 0.0.0-use.local resolution: "@gardener-dashboard/logger@workspace:packages/logger" dependencies: + "@microsoft/eslint-formatter-sarif": "npm:^3.1.0" chalk: "npm:^4.1.2" eslint: "npm:^9.11.0" eslint-plugin-import: "npm:^2.31.0" @@ -1074,6 +1252,7 @@ __metadata: resolution: "@gardener-dashboard/monitor@workspace:packages/monitor" dependencies: "@gardener-dashboard/logger": "workspace:^" + "@microsoft/eslint-formatter-sarif": "npm:^3.1.0" eslint: "npm:^9.11.0" eslint-plugin-import: "npm:^2.31.0" eslint-plugin-jest: "npm:^28.8.3" @@ -1089,12 +1268,29 @@ __metadata: languageName: unknown linkType: soft +"@gardener-dashboard/polling-watcher@workspace:^, @gardener-dashboard/polling-watcher@workspace:packages/polling-watcher": + version: 0.0.0-use.local + resolution: "@gardener-dashboard/polling-watcher@workspace:packages/polling-watcher" + dependencies: + "@gardener-dashboard/logger": "workspace:^" + "@gardener-dashboard/test-utils": "workspace:^" + eslint: "npm:^9.11.0" + eslint-plugin-import: "npm:^2.31.0" + eslint-plugin-jest: "npm:^28.8.3" + eslint-plugin-lodash: "npm:^8.0.0" + eslint-plugin-security: "npm:^3.0.1" + jest: "npm:^29.7.0" + neostandard: "npm:^0.11.7" + languageName: unknown + linkType: soft + "@gardener-dashboard/request@workspace:^, @gardener-dashboard/request@workspace:packages/request": version: 0.0.0-use.local resolution: "@gardener-dashboard/request@workspace:packages/request" dependencies: "@gardener-dashboard/logger": "workspace:^" "@gardener-dashboard/test-utils": "workspace:^" + "@microsoft/eslint-formatter-sarif": "npm:^3.1.0" abort-controller: "npm:^3.0.0" eslint: "npm:^9.11.0" eslint-plugin-import: "npm:^2.31.0" @@ -1148,6 +1344,17 @@ __metadata: languageName: node linkType: hard +"@humanwhocodes/config-array@npm:^0.13.0": + version: 0.13.0 + resolution: "@humanwhocodes/config-array@npm:0.13.0" + dependencies: + "@humanwhocodes/object-schema": "npm:^2.0.3" + debug: "npm:^4.3.1" + minimatch: "npm:^3.0.5" + checksum: 10c0/205c99e756b759f92e1f44a3dc6292b37db199beacba8f26c2165d4051fe73a4ae52fdcfd08ffa93e7e5cb63da7c88648f0e84e197d154bbbbe137b2e0dd332e + languageName: node + linkType: hard + "@humanwhocodes/gitignore-to-minimatch@npm:^1.0.2": version: 1.0.2 resolution: "@humanwhocodes/gitignore-to-minimatch@npm:1.0.2" @@ -1162,6 +1369,13 @@ __metadata: languageName: node linkType: hard +"@humanwhocodes/object-schema@npm:^2.0.3": + version: 2.0.3 + resolution: "@humanwhocodes/object-schema@npm:2.0.3" + checksum: 10c0/80520eabbfc2d32fe195a93557cef50dfe8c8905de447f022675aaf66abc33ae54098f5ea78548d925aa671cd4ab7c7daa5ad704fe42358c9b5e7db60f80696c + languageName: node + linkType: hard + "@humanwhocodes/retry@npm:^0.3.0": version: 0.3.0 resolution: "@humanwhocodes/retry@npm:0.3.0" @@ -1169,7 +1383,7 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/retry@npm:^0.4.0": +"@humanwhocodes/retry@npm:^0.4.1": version: 0.4.1 resolution: "@humanwhocodes/retry@npm:0.4.1" checksum: 10c0/be7bb6841c4c01d0b767d9bb1ec1c9359ee61421ce8ba66c249d035c5acdfd080f32d55a5c9e859cdd7868788b8935774f65b2caf24ec0b7bd7bf333791f063b @@ -1548,6 +1762,18 @@ __metadata: languageName: node linkType: hard +"@microsoft/eslint-formatter-sarif@npm:^3.1.0": + version: 3.1.0 + resolution: "@microsoft/eslint-formatter-sarif@npm:3.1.0" + dependencies: + eslint: "npm:^8.9.0" + jschardet: "npm:latest" + lodash: "npm:^4.17.14" + utf8: "npm:^3.0.0" + checksum: 10c0/c4052ea4f728fd01932406468fa688582f843059786bfce1ef1d0f6d957f43871a1e888095af6d958b90e4380f179049c77f2058fd5ead3354aa73147e60c5b7 + languageName: node + linkType: hard + "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" @@ -1565,7 +1791,7 @@ __metadata: languageName: node linkType: hard -"@nodelib/fs.walk@npm:^1.2.3": +"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": version: 1.2.8 resolution: "@nodelib/fs.walk@npm:1.2.8" dependencies: @@ -1980,6 +2206,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm-eabi@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.28.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@rollup/rollup-android-arm64@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-android-arm64@npm:4.22.4" @@ -1987,6 +2220,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm64@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-android-arm64@npm:4.28.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-darwin-arm64@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-darwin-arm64@npm:4.22.4" @@ -1994,6 +2234,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-darwin-arm64@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.28.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-darwin-x64@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-darwin-x64@npm:4.22.4" @@ -2001,6 +2248,27 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-darwin-x64@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.28.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-arm64@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.28.0" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-x64@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-freebsd-x64@npm:4.28.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@rollup/rollup-linux-arm-gnueabihf@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.22.4" @@ -2008,6 +2276,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm-gnueabihf@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.28.0" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-arm-musleabihf@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.22.4" @@ -2015,6 +2290,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm-musleabihf@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.28.0" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-arm64-gnu@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.22.4" @@ -2022,6 +2304,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm64-gnu@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.28.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-arm64-musl@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-linux-arm64-musl@npm:4.22.4" @@ -2029,6 +2318,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm64-musl@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.28.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.4" @@ -2036,6 +2332,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.28.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-riscv64-gnu@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.22.4" @@ -2043,6 +2346,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-riscv64-gnu@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.28.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-s390x-gnu@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.22.4" @@ -2050,6 +2360,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-s390x-gnu@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.28.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-x64-gnu@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-linux-x64-gnu@npm:4.22.4" @@ -2057,6 +2374,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-x64-gnu@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.28.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-x64-musl@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-linux-x64-musl@npm:4.22.4" @@ -2064,6 +2388,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-x64-musl@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.28.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-win32-arm64-msvc@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.22.4" @@ -2071,6 +2402,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-arm64-msvc@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.28.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-win32-ia32-msvc@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.22.4" @@ -2078,6 +2416,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-ia32-msvc@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.28.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@rollup/rollup-win32-x64-msvc@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-win32-x64-msvc@npm:4.22.4" @@ -2085,6 +2430,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-x64-msvc@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.28.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@rtsao/scc@npm:^1.1.0": version: 1.1.0 resolution: "@rtsao/scc@npm:1.1.0" @@ -2124,18 +2476,18 @@ __metadata: languageName: node linkType: hard -"@stylistic/eslint-plugin@npm:^2.10.1": - version: 2.10.1 - resolution: "@stylistic/eslint-plugin@npm:2.10.1" +"@stylistic/eslint-plugin@npm:^2.11.0": + version: 2.11.0 + resolution: "@stylistic/eslint-plugin@npm:2.11.0" dependencies: - "@typescript-eslint/utils": "npm:^8.12.2" + "@typescript-eslint/utils": "npm:^8.13.0" eslint-visitor-keys: "npm:^4.2.0" espree: "npm:^10.3.0" estraverse: "npm:^5.3.0" picomatch: "npm:^4.0.2" peerDependencies: eslint: ">=8.40.0" - checksum: 10c0/55f14f256ffd9e09c417598fbd80cfc6ce603f234a6bd21521d0048a2949f54237394356afe806d461d73013f9e1743d8321fdb0b7716fd1d6d4cba513315f61 + checksum: 10c0/6ca19b6656be5ed657cf4d1920602fb27144dc5d51ba188e0bdcb2a4e0b740d4fdb27052fc268d164fa1269c972aeab15541c9e15b3ff4b7884ecae47f18ff67 languageName: node linkType: hard @@ -2217,14 +2569,14 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:1.0.5, @types/estree@npm:^1.0.0": +"@types/estree@npm:1.0.5": version: 1.0.5 resolution: "@types/estree@npm:1.0.5" checksum: 10c0/b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d languageName: node linkType: hard -"@types/estree@npm:^1.0.6": +"@types/estree@npm:1.0.6, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6": version: 1.0.6 resolution: "@types/estree@npm:1.0.6" checksum: 10c0/cdfd751f6f9065442cd40957c07fd80361c962869aa853c1c2fd03e101af8b9389d8ff4955a43a6fcfa223dd387a089937f95be0f3eec21ca527039fd2d9859a @@ -2332,15 +2684,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:8.14.0": - version: 8.14.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.14.0" +"@typescript-eslint/eslint-plugin@npm:8.16.0": + version: 8.16.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.16.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.14.0" - "@typescript-eslint/type-utils": "npm:8.14.0" - "@typescript-eslint/utils": "npm:8.14.0" - "@typescript-eslint/visitor-keys": "npm:8.14.0" + "@typescript-eslint/scope-manager": "npm:8.16.0" + "@typescript-eslint/type-utils": "npm:8.16.0" + "@typescript-eslint/utils": "npm:8.16.0" + "@typescript-eslint/visitor-keys": "npm:8.16.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -2351,66 +2703,68 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/46c82eb45be82ffec0ab04728a5180691b1d17002c669864861a3044b6d2105a75ca23cc80d18721b40b5e7dff1eff4ed68a43d726e25d55f3e466a9fbeeb873 + checksum: 10c0/b03612b726ee5aff631cd50e05ceeb06a522e64465e4efdc134e3a27a09406b959ef7a05ec4acef1956b3674dc4fedb6d3a62ce69382f9e30c227bd4093003e5 languageName: node linkType: hard -"@typescript-eslint/parser@npm:8.14.0": - version: 8.14.0 - resolution: "@typescript-eslint/parser@npm:8.14.0" +"@typescript-eslint/parser@npm:8.16.0": + version: 8.16.0 + resolution: "@typescript-eslint/parser@npm:8.16.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.14.0" - "@typescript-eslint/types": "npm:8.14.0" - "@typescript-eslint/typescript-estree": "npm:8.14.0" - "@typescript-eslint/visitor-keys": "npm:8.14.0" + "@typescript-eslint/scope-manager": "npm:8.16.0" + "@typescript-eslint/types": "npm:8.16.0" + "@typescript-eslint/typescript-estree": "npm:8.16.0" + "@typescript-eslint/visitor-keys": "npm:8.16.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/522b7afd25cd302c0510cc71985ba55ff92ecc5dbe3fc74a76fefea0169252fdd4b8cad6291fef05f63dfc173951af450dca20859c7f23e387b2e7410e8b97b1 + checksum: 10c0/e49c6640a7a863a16baecfbc5b99392a4731e9c7e9c9aaae4efbc354e305485fe0f39a28bf0acfae85bc01ce37fe0cc140fd315fdaca8b18f9b5e0addff8ceae languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.14.0": - version: 8.14.0 - resolution: "@typescript-eslint/scope-manager@npm:8.14.0" +"@typescript-eslint/scope-manager@npm:8.16.0": + version: 8.16.0 + resolution: "@typescript-eslint/scope-manager@npm:8.16.0" dependencies: - "@typescript-eslint/types": "npm:8.14.0" - "@typescript-eslint/visitor-keys": "npm:8.14.0" - checksum: 10c0/1e1295c6f9febadf63559aad328b23d960510ce6b4c9f74e10d881c3858fa7f1db767cd1af5272d2fe7c9c5c7daebee71854e6f841e413e5d70af282f6616e26 + "@typescript-eslint/types": "npm:8.16.0" + "@typescript-eslint/visitor-keys": "npm:8.16.0" + checksum: 10c0/23b7c738b83f381c6419a36e6ca951944187e3e00abb8e012bce8041880410fe498303e28bdeb0e619023a69b14cf32a5ec1f9427c5382807788cd8e52a46a6e languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.14.0": - version: 8.14.0 - resolution: "@typescript-eslint/type-utils@npm:8.14.0" +"@typescript-eslint/type-utils@npm:8.16.0": + version: 8.16.0 + resolution: "@typescript-eslint/type-utils@npm:8.16.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.14.0" - "@typescript-eslint/utils": "npm:8.14.0" + "@typescript-eslint/typescript-estree": "npm:8.16.0" + "@typescript-eslint/utils": "npm:8.16.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/42616a664b38ca418e13504247e5e1bad6ae85c045b48e5735ffab977d4bd58cc86fb9d2292bbb314fa408d78d4b0454c3a27dbf9f881f9921917a942825c806 + checksum: 10c0/24c0e815c8bdf99bf488c7528bd6a7c790e8b3b674cb7fb075663afc2ee26b48e6f4cf7c0d14bb21e2376ca62bd8525cbcb5688f36135b00b62b1d353d7235b9 languageName: node linkType: hard -"@typescript-eslint/types@npm:8.14.0": - version: 8.14.0 - resolution: "@typescript-eslint/types@npm:8.14.0" - checksum: 10c0/7707f900e24e60e6780c5705f69627b7c0ef912cb3b095dfc8f4a0c84e866c66b1c4c10278cf99724560dc66985ec640750c4192786a09b853f9bb4c3ca5a7ce +"@typescript-eslint/types@npm:8.16.0": + version: 8.16.0 + resolution: "@typescript-eslint/types@npm:8.16.0" + checksum: 10c0/141e257ab4060a9c0e2e14334ca14ab6be713659bfa38acd13be70a699fb5f36932a2584376b063063ab3d723b24bc703dbfb1ce57d61d7cfd7ec5bd8a975129 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.14.0": - version: 8.14.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.14.0" +"@typescript-eslint/typescript-estree@npm:8.16.0": + version: 8.16.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.16.0" dependencies: - "@typescript-eslint/types": "npm:8.14.0" - "@typescript-eslint/visitor-keys": "npm:8.14.0" + "@typescript-eslint/types": "npm:8.16.0" + "@typescript-eslint/visitor-keys": "npm:8.16.0" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" @@ -2420,56 +2774,66 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/5e890d22bd067095f871cf144907a8c302db5b5f014c58906ad58d7f23569951cba805042eac6844744e5abb0d3648c9cc221a91b0703da0a8d6345dc1f83e74 + checksum: 10c0/f28fea5af4798a718b6735d1758b791a331af17386b83cb2856d89934a5d1693f7cb805e73c3b33f29140884ac8ead9931b1d7c3de10176fa18ca7a346fe10d0 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.14.0, @typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0, @typescript-eslint/utils@npm:^8.12.2": - version: 8.14.0 - resolution: "@typescript-eslint/utils@npm:8.14.0" +"@typescript-eslint/utils@npm:8.16.0, @typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0, @typescript-eslint/utils@npm:^8.12.2, @typescript-eslint/utils@npm:^8.13.0": + version: 8.16.0 + resolution: "@typescript-eslint/utils@npm:8.16.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.14.0" - "@typescript-eslint/types": "npm:8.14.0" - "@typescript-eslint/typescript-estree": "npm:8.14.0" + "@typescript-eslint/scope-manager": "npm:8.16.0" + "@typescript-eslint/types": "npm:8.16.0" + "@typescript-eslint/typescript-estree": "npm:8.16.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - checksum: 10c0/1fcc2651d870832a799a5d1c85fc9421853508a006d6a6073c8316b012489dda77e123d13aea8f53eb9030a2da2c0eb273a6946a9941caa2519b99b33e89b720 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/1e61187eef3da1ab1486d2a977d8f3b1cb8ef7fa26338500a17eb875ca42a8942ef3f2241f509eef74cf7b5620c109483afc7d83d5b0ab79b1e15920f5a49818 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.14.0": - version: 8.14.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.14.0" +"@typescript-eslint/visitor-keys@npm:8.16.0": + version: 8.16.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.16.0" dependencies: - "@typescript-eslint/types": "npm:8.14.0" - eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/d0faf70ed9ecff5e36694bbb161a90bea6db59e0e79a7d4f264d67d565c12b13733d664b736b2730935f013c87ce3155cea954a533d28e99987681bc5f6259c3 + "@typescript-eslint/types": "npm:8.16.0" + eslint-visitor-keys: "npm:^4.2.0" + checksum: 10c0/537df37801831aa8d91082b2adbffafd40305ed4518f0e7d3cbb17cc466d8b9ac95ac91fa232e7fe585d7c522d1564489ec80052ebb2a6ab9bbf89ef9dd9b7bc + languageName: node + linkType: hard + +"@ungap/structured-clone@npm:^1.2.0": + version: 1.2.0 + resolution: "@ungap/structured-clone@npm:1.2.0" + checksum: 10c0/8209c937cb39119f44eb63cf90c0b73e7c754209a6411c707be08e50e29ee81356dca1a848a405c8bdeebfe2f5e4f831ad310ae1689eeef65e7445c090c6657d languageName: node linkType: hard "@vitejs/plugin-basic-ssl@npm:^1.1.0": - version: 1.1.0 - resolution: "@vitejs/plugin-basic-ssl@npm:1.1.0" + version: 1.2.0 + resolution: "@vitejs/plugin-basic-ssl@npm:1.2.0" peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - checksum: 10c0/98aadf5c7fd229995c67f973b4fb0f987a378031a4edcc5f714b412c00af12a6ecafb96659e76382ff9f8a831aac5243c74548e2807402ea8b02ec122d29f008 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 + checksum: 10c0/0d360fcca01f91ade6e451edbea09a107ff9e95cd3c3766c7a069d1a168709df92d96c0bd1eccc66e2739a153e07c75a45321ec487450c0da942606200d8441d languageName: node linkType: hard "@vitejs/plugin-vue@npm:^5.0.4": - version: 5.2.0 - resolution: "@vitejs/plugin-vue@npm:5.2.0" + version: 5.2.1 + resolution: "@vitejs/plugin-vue@npm:5.2.1" peerDependencies: - vite: ^5.0.0 + vite: ^5.0.0 || ^6.0.0 vue: ^3.2.25 - checksum: 10c0/cdd1850b9dfb4a4548731420381bcfea0912a4dac2392bef0ca0448d5689eefd08e7cfd928f12fccbf7c4a72dd8355fc5d5e8dc61d58853eabb95c96172eb529 + checksum: 10c0/927c06ccf591812c8195967ad550059a77a922cc9f9672f4e83451538a421427bd4daf8cce20366baa3a70882b2ff6c4e5fea2c1fdc3fd24a8caa061c893c2d8 languageName: node linkType: hard "@vitest/coverage-v8@npm:^2.0.0": - version: 2.1.5 - resolution: "@vitest/coverage-v8@npm:2.1.5" + version: 2.1.7 + resolution: "@vitest/coverage-v8@npm:2.1.7" dependencies: "@ampproject/remapping": "npm:^2.3.0" "@bcoe/v8-coverage": "npm:^0.2.3" @@ -2484,18 +2848,18 @@ __metadata: test-exclude: "npm:^7.0.1" tinyrainbow: "npm:^1.2.0" peerDependencies: - "@vitest/browser": 2.1.5 - vitest: 2.1.5 + "@vitest/browser": 2.1.7 + vitest: 2.1.7 peerDependenciesMeta: "@vitest/browser": optional: true - checksum: 10c0/c6870a8714861fafa5114711d9c2ea56525e6a5e2ebf464e0aea1cb8b79a2fe742e239c0ee210c3e8e916646f799b07707c8bf2a7fd33e0d7f2bc9bd9d938d77 + checksum: 10c0/be0f09e2635ffa713f442dc9fcc54d73246f6ddef9a66fadaa29096ed7df18fd2b268a448fa16e1410776c5bbaabac5252b41e06e1ff684d0aafa5664263674e languageName: node linkType: hard "@vitest/eslint-plugin@npm:^1.1.7": - version: 1.1.10 - resolution: "@vitest/eslint-plugin@npm:1.1.10" + version: 1.1.13 + resolution: "@vitest/eslint-plugin@npm:1.1.13" peerDependencies: "@typescript-eslint/utils": ">= 8.0" eslint: ">= 8.57.0" @@ -2506,27 +2870,27 @@ __metadata: optional: true vitest: optional: true - checksum: 10c0/f69be2a1067976e452225ff8e2189dbfc9ebd6717be8013260372e8b724775d58849afd9e1a85449ba8f454ef0f69c8a200743b413fbe0e357b984c18e79bd5f + checksum: 10c0/179b095dfa0d19c34dcbd52f4a0048b4d1a6827b473b1328c2a8e69be57592e0ab2bebb1686b93c375c4e21ec54887422fc446f5d3f2d1839ba42925cb33685c languageName: node linkType: hard -"@vitest/expect@npm:2.1.5": - version: 2.1.5 - resolution: "@vitest/expect@npm:2.1.5" +"@vitest/expect@npm:2.1.7": + version: 2.1.7 + resolution: "@vitest/expect@npm:2.1.7" dependencies: - "@vitest/spy": "npm:2.1.5" - "@vitest/utils": "npm:2.1.5" + "@vitest/spy": "npm:2.1.7" + "@vitest/utils": "npm:2.1.7" chai: "npm:^5.1.2" tinyrainbow: "npm:^1.2.0" - checksum: 10c0/68f7011e7883dea1d1974fa05d30d7a1eff72f08741312e84f1b138f474e75e9db7ff7ced23a50fc16605baa123a2f10ef9a834b418e03dbeed23d1e0043fc90 + checksum: 10c0/e9374db063d8655f55e5324979c5d0c95bf7a068c9f76c8d3baaa3c9fc1cd8b8d9e1ba57c90c03c6c890e5fc89250d4f2b642152bb9f1034142aa478be645782 languageName: node linkType: hard -"@vitest/mocker@npm:2.1.5": - version: 2.1.5 - resolution: "@vitest/mocker@npm:2.1.5" +"@vitest/mocker@npm:2.1.7": + version: 2.1.7 + resolution: "@vitest/mocker@npm:2.1.7" dependencies: - "@vitest/spy": "npm:2.1.5" + "@vitest/spy": "npm:2.1.7" estree-walker: "npm:^3.0.3" magic-string: "npm:^0.30.12" peerDependencies: @@ -2537,54 +2901,54 @@ __metadata: optional: true vite: optional: true - checksum: 10c0/57034aa3476768133042c6b4193d71dbd4ace98c39241ae2c1fa21c33d5afd6d469de86511cdc59a0d7dd5585c05ac605406c60b0ae3cfbf3f650326642d4aca + checksum: 10c0/551c443bea23167178b5689e592fcbc334ec9175522da40848f8c073c79e2ce573535717c5f224b76c71b2d2e35d941381cb19af851ab9bbffd5f3dc39f855d3 languageName: node linkType: hard -"@vitest/pretty-format@npm:2.1.5, @vitest/pretty-format@npm:^2.1.5": - version: 2.1.5 - resolution: "@vitest/pretty-format@npm:2.1.5" +"@vitest/pretty-format@npm:2.1.7, @vitest/pretty-format@npm:^2.1.7": + version: 2.1.7 + resolution: "@vitest/pretty-format@npm:2.1.7" dependencies: tinyrainbow: "npm:^1.2.0" - checksum: 10c0/d6667f1e5d272f557f8cca440af65645346b5aa74a04041466859087f14a78a296e3f1928caa05de0cc558880cc8a49ce14696fef7b8f5dbc3eb856d672b0abf + checksum: 10c0/9525f078d3ebc4e94294cde468faf44caacc7d0abd572d672acb03ce20571d9509ed8206bd25b58f7740607bc0ecafd70a00d8e0a75562783ac25c2d0262cba1 languageName: node linkType: hard -"@vitest/runner@npm:2.1.5": - version: 2.1.5 - resolution: "@vitest/runner@npm:2.1.5" +"@vitest/runner@npm:2.1.7": + version: 2.1.7 + resolution: "@vitest/runner@npm:2.1.7" dependencies: - "@vitest/utils": "npm:2.1.5" + "@vitest/utils": "npm:2.1.7" pathe: "npm:^1.1.2" - checksum: 10c0/d39ea4c6f8805aa3e52130ac0a3d325506a4d4bb97d0d7ac80734beb21d9a496ee50586de9801f4b66f2dc8ff38f27a75065a258fd3633bc1cfe68bd9c1dd73e + checksum: 10c0/5a8c86e71668a62be91838aaedf4e310441467a5ddb72c26ff7b2111d6c16b0098c5420108cbf2df449915b727084733458dd639f503e27bb390e948a20f8648 languageName: node linkType: hard -"@vitest/snapshot@npm:2.1.5": - version: 2.1.5 - resolution: "@vitest/snapshot@npm:2.1.5" +"@vitest/snapshot@npm:2.1.7": + version: 2.1.7 + resolution: "@vitest/snapshot@npm:2.1.7" dependencies: - "@vitest/pretty-format": "npm:2.1.5" + "@vitest/pretty-format": "npm:2.1.7" magic-string: "npm:^0.30.12" pathe: "npm:^1.1.2" - checksum: 10c0/3dc44b5a043acbbd15e08c3c0519ef5a344d06ade10ee9522b4e4305f4826f2be8353b58d0b6e11aa272078ba42ff0d2ffa62368b6e0cf996ad0d7977df9f22f + checksum: 10c0/268dab533e9f206fd95969d3bb8c285c9f98af40153bd30ae54a6443401d87eedc72f6a8419bfc8846b86d6cf98ac95fcfd9fdbc030416a5c110feaa154e59c8 languageName: node linkType: hard -"@vitest/spy@npm:2.1.5": - version: 2.1.5 - resolution: "@vitest/spy@npm:2.1.5" +"@vitest/spy@npm:2.1.7": + version: 2.1.7 + resolution: "@vitest/spy@npm:2.1.7" dependencies: tinyspy: "npm:^3.0.2" - checksum: 10c0/c5222cc7074db5705573e5da674b8488f9e46d61a2bd64e992f5f5819feff35f015e8d0236c7e07d1870bddf5d36dc0622f674c071ab4ca8fa4f4f5d02172315 + checksum: 10c0/2043d010d39913ab2c861cb6b978bbd0441fb4bbbb5f92d52d5eb5c14d720dc668ebac032353488014be72f938e946954ac25b01fabd5aa1d905f1366cfdb3c4 languageName: node linkType: hard "@vitest/ui@npm:^2.0.0": - version: 2.1.5 - resolution: "@vitest/ui@npm:2.1.5" + version: 2.1.7 + resolution: "@vitest/ui@npm:2.1.7" dependencies: - "@vitest/utils": "npm:2.1.5" + "@vitest/utils": "npm:2.1.7" fflate: "npm:^0.8.2" flatted: "npm:^3.3.1" pathe: "npm:^1.1.2" @@ -2592,32 +2956,19 @@ __metadata: tinyglobby: "npm:^0.2.10" tinyrainbow: "npm:^1.2.0" peerDependencies: - vitest: 2.1.5 - checksum: 10c0/73e1bb289bfc190e2fc61cabc8777088c7507b16ff2f695cedaa15a65f5405c84c89c4423b5b63d19953d4b2ec7f0680e05cfcee346d1c5b4099fa0534e8ae9f + vitest: 2.1.7 + checksum: 10c0/8237f5e6010f03b4382831c4566b452b107fd82943ec5381f2b5f3589a374b67e6e8809de36dbc81205af449c3ab275a1bcc4028cbca3e993336e30df109fb8c languageName: node linkType: hard -"@vitest/utils@npm:2.1.5": - version: 2.1.5 - resolution: "@vitest/utils@npm:2.1.5" +"@vitest/utils@npm:2.1.7": + version: 2.1.7 + resolution: "@vitest/utils@npm:2.1.7" dependencies: - "@vitest/pretty-format": "npm:2.1.5" + "@vitest/pretty-format": "npm:2.1.7" loupe: "npm:^3.1.2" tinyrainbow: "npm:^1.2.0" - checksum: 10c0/3d1e65025e418948b215b8856548a91856522660d898b872485a91acf397e085e90968ee9c3f521589b5274717da32e954ef8a549aa60cc1c3338224fdfb4c5e - languageName: node - linkType: hard - -"@vue/compiler-core@npm:3.5.12": - version: 3.5.12 - resolution: "@vue/compiler-core@npm:3.5.12" - dependencies: - "@babel/parser": "npm:^7.25.3" - "@vue/shared": "npm:3.5.12" - entities: "npm:^4.5.0" - estree-walker: "npm:^2.0.2" - source-map-js: "npm:^1.2.0" - checksum: 10c0/7f004b96330c00dc5b94f436be05ce3b196818a8bb1bfeb8f137aba0691deedd20c53e4aa05de830150578af6106e9f306b1fdf973f2db8470e59e81f0fc3a0f + checksum: 10c0/fa71d0bba2b76e5fd06eca09fc6ebb4f9f4065dca73da82a7f2988e52775a509ab8caed94a37b6fe4a11f42326c9e3d99ef3e345b4b4fdfbb6d37d28b57485ea languageName: node linkType: hard @@ -2634,17 +2985,7 @@ __metadata: languageName: node linkType: hard -"@vue/compiler-dom@npm:*, @vue/compiler-dom@npm:3.5.12": - version: 3.5.12 - resolution: "@vue/compiler-dom@npm:3.5.12" - dependencies: - "@vue/compiler-core": "npm:3.5.12" - "@vue/shared": "npm:3.5.12" - checksum: 10c0/48a67cd28c25e94dccff3c1e18bf2f79b073e486a856e5b30661e89e50d08cd49ababc43de94626c948da77c8dad859909e32d3ab678079e90dfa5d3e1ddc344 - languageName: node - linkType: hard - -"@vue/compiler-dom@npm:3.5.13": +"@vue/compiler-dom@npm:*, @vue/compiler-dom@npm:3.5.13": version: 3.5.13 resolution: "@vue/compiler-dom@npm:3.5.13" dependencies: @@ -2671,16 +3012,6 @@ __metadata: languageName: node linkType: hard -"@vue/compiler-ssr@npm:3.5.12": - version: 3.5.12 - resolution: "@vue/compiler-ssr@npm:3.5.12" - dependencies: - "@vue/compiler-dom": "npm:3.5.12" - "@vue/shared": "npm:3.5.12" - checksum: 10c0/8a8fc4e2057fa1292860ff8a53af04604dc70f72aa4dcc7136f1c697adca9bc511ba5ffeca0259b14cc6b18119be726cd784845a6669427774793625d6e953b7 - languageName: node - linkType: hard - "@vue/compiler-ssr@npm:3.5.13": version: 3.5.13 resolution: "@vue/compiler-ssr@npm:3.5.13" @@ -2729,19 +3060,7 @@ __metadata: languageName: node linkType: hard -"@vue/server-renderer@npm:*": - version: 3.5.12 - resolution: "@vue/server-renderer@npm:3.5.12" - dependencies: - "@vue/compiler-ssr": "npm:3.5.12" - "@vue/shared": "npm:3.5.12" - peerDependencies: - vue: 3.5.12 - checksum: 10c0/d9f25f165c7d8fd53773238bd53fce4621e61676bbec12a57cd5b29aa4f15d7a2b3e93777665b85666edda57ce7f7deb4504a4596822006684babe0f8d2b41f6 - languageName: node - linkType: hard - -"@vue/server-renderer@npm:3.5.13": +"@vue/server-renderer@npm:*, @vue/server-renderer@npm:3.5.13": version: 3.5.13 resolution: "@vue/server-renderer@npm:3.5.13" dependencies: @@ -2753,13 +3072,6 @@ __metadata: languageName: node linkType: hard -"@vue/shared@npm:3.5.12": - version: 3.5.12 - resolution: "@vue/shared@npm:3.5.12" - checksum: 10c0/48f94406c42921901b21a57a7ebb401bbceb497152baf0554e5d5a11cbaa79958f966042e9d95614c0b02e8681b7e1b6c010fcb8b28c6bda1b090f2ddd7540d8 - languageName: node - linkType: hard - "@vue/shared@npm:3.5.13": version: 3.5.13 resolution: "@vue/shared@npm:3.5.13" @@ -2819,25 +3131,25 @@ __metadata: languageName: node linkType: hard -"@vueuse/core@npm:11.3.0, @vueuse/core@npm:^11.0.0-0": - version: 11.3.0 - resolution: "@vueuse/core@npm:11.3.0" +"@vueuse/core@npm:12.0.0, @vueuse/core@npm:^12.0.0": + version: 12.0.0 + resolution: "@vueuse/core@npm:12.0.0" dependencies: "@types/web-bluetooth": "npm:^0.0.20" - "@vueuse/metadata": "npm:11.3.0" - "@vueuse/shared": "npm:11.3.0" - vue-demi: "npm:>=0.14.10" - checksum: 10c0/57ebed3ee2fd5b33297bbb36727424dc1707357db52954a1715366dd6583a4d53a05b10d17d16d1e5bf91fe8f12ea69fd6b232551f60167098ebc606b7234d4a + "@vueuse/metadata": "npm:12.0.0" + "@vueuse/shared": "npm:12.0.0" + vue: "npm:^3.5.13" + checksum: 10c0/416a5d2725069ace3901a77168ff24e0f9aea535b04174edf506bedd97c8f6a14d23105c80e1f58ed3b690c9931fc9089b1e5960e769e6a3e886fa8b9d320cbb languageName: node linkType: hard -"@vueuse/integrations@npm:^11.0.0-0": - version: 11.3.0 - resolution: "@vueuse/integrations@npm:11.3.0" +"@vueuse/integrations@npm:^12.0.0": + version: 12.0.0 + resolution: "@vueuse/integrations@npm:12.0.0" dependencies: - "@vueuse/core": "npm:11.3.0" - "@vueuse/shared": "npm:11.3.0" - vue-demi: "npm:>=0.14.10" + "@vueuse/core": "npm:12.0.0" + "@vueuse/shared": "npm:12.0.0" + vue: "npm:^3.5.13" peerDependencies: async-validator: ^4 axios: ^1 @@ -2876,35 +3188,35 @@ __metadata: optional: true universal-cookie: optional: true - checksum: 10c0/4808c9b64286065e597896073113d0bb67b80fa17d2631823b756ae2fe78be25708bbe3bac39de08b24ee3459e080e0ba46c57429e6eb164b9796c567f93e8c8 + checksum: 10c0/b8941bcbc040b36bd5b4728bb40aeb08a190a06ac5fe753853ac8af5fe46afd1b69b7e4b21193c6a8d97f78f32963305027380eefb4e3efc04a8805fc232356d languageName: node linkType: hard -"@vueuse/metadata@npm:11.3.0": - version: 11.3.0 - resolution: "@vueuse/metadata@npm:11.3.0" - checksum: 10c0/4548912f325d4f250595b029357977824431db66a94651bc6801c04e4992374286ff71eb41604470638ef100338c2b80df2039d663a20f66d92799f68ccba7e9 +"@vueuse/metadata@npm:12.0.0": + version: 12.0.0 + resolution: "@vueuse/metadata@npm:12.0.0" + checksum: 10c0/f67a256fef7961883e9921d2369be334015a4a0193987c3082b9b6386e31ed2d90de555b8d9aca63c5dda6cb3cf8df5d9b7842db77488c1ba638437befffca08 languageName: node linkType: hard -"@vueuse/router@npm:^11.0.0-0": - version: 11.3.0 - resolution: "@vueuse/router@npm:11.3.0" +"@vueuse/router@npm:^12.0.0": + version: 12.0.0 + resolution: "@vueuse/router@npm:12.0.0" dependencies: - "@vueuse/shared": "npm:11.3.0" - vue-demi: "npm:>=0.14.10" + "@vueuse/shared": "npm:12.0.0" + vue: "npm:^3.5.13" peerDependencies: vue-router: ">=4.0.0-rc.1" - checksum: 10c0/bdef732d3ff823284f0afd207b1af338e724cccb7cef5515a026a1b6e751bd8f4cd6b2f4a677a98cdd961ee5fc6d632e04e4974b025725ff65bdd5f7a874c629 + checksum: 10c0/00ed8978027804e4a8f0aa54116ae36bc3b3cc1ae66487b4e2839fd6ba9491e1e54f5a2cd1b85afb005cf8c58e5645b2b95e4ed8880ad0e85746c8904a2d645c languageName: node linkType: hard -"@vueuse/shared@npm:11.3.0": - version: 11.3.0 - resolution: "@vueuse/shared@npm:11.3.0" +"@vueuse/shared@npm:12.0.0": + version: 12.0.0 + resolution: "@vueuse/shared@npm:12.0.0" dependencies: - vue-demi: "npm:>=0.14.10" - checksum: 10c0/820af5359d204e434b27ef570e5dfb5fe765e19d540738665c51c8d1569b81dd000dbe292add15dffb1b9538cbcec890626d0b47a5525e624273a0963b524e1f + vue: "npm:^3.5.13" + checksum: 10c0/7900edc00f636b9cc5fcf96e13ff9e7ec8f4f7efc0960964227cc31a26b3b45123d613a201c6b5d331534b72908b5e754ae2cba4169c5a145255987d3ad7da78 languageName: node linkType: hard @@ -2975,7 +3287,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.10.0, acorn@npm:^8.14.0, acorn@npm:^8.9.0": +"acorn@npm:^8.14.0, acorn@npm:^8.9.0": version: 8.14.0 resolution: "acorn@npm:8.14.0" bin: @@ -3121,7 +3433,7 @@ __metadata: languageName: node linkType: hard -"anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": +"anymatch@npm:^3.0.3": version: 3.1.3 resolution: "anymatch@npm:3.1.3" dependencies: @@ -3419,13 +3731,6 @@ __metadata: languageName: node linkType: hard -"binary-extensions@npm:^2.0.0": - version: 2.2.0 - resolution: "binary-extensions@npm:2.2.0" - checksum: 10c0/d73d8b897238a2d3ffa5f59c0241870043aa7471335e89ea5e1ff48edb7c2d0bb471517a3e4c5c3f4c043615caa2717b5f80a5e61e07503d51dc85cb848e665d - languageName: node - linkType: hard - "bintrees@npm:1.0.2": version: 1.0.2 resolution: "bintrees@npm:1.0.2" @@ -3479,7 +3784,7 @@ __metadata: languageName: node linkType: hard -"braces@npm:^3.0.3, braces@npm:~3.0.2": +"braces@npm:^3.0.3": version: 3.0.3 resolution: "braces@npm:3.0.3" dependencies: @@ -3665,26 +3970,7 @@ __metadata: "check-error@npm:^2.1.1": version: 2.1.1 resolution: "check-error@npm:2.1.1" - checksum: 10c0/979f13eccab306cf1785fa10941a590b4e7ea9916ea2a4f8c87f0316fc3eab07eabefb6e587424ef0f88cbcd3805791f172ea739863ca3d7ce2afc54641c7f0e - languageName: node - linkType: hard - -"chokidar@npm:^3.5.3": - version: 3.6.0 - resolution: "chokidar@npm:3.6.0" - dependencies: - anymatch: "npm:~3.1.2" - braces: "npm:~3.0.2" - fsevents: "npm:~2.3.2" - glob-parent: "npm:~5.1.2" - is-binary-path: "npm:~2.1.0" - is-glob: "npm:~4.0.1" - normalize-path: "npm:~3.0.0" - readdirp: "npm:~3.6.0" - dependenciesMeta: - fsevents: - optional: true - checksum: 10c0/8361dcd013f2ddbe260eacb1f3cb2f2c6f2b0ad118708a343a5ed8158941a39cb8fb1d272e0f389712e74ee90ce8ba864eece9e0e62b9705cb468a2f6d917462 + checksum: 10c0/979f13eccab306cf1785fa10941a590b4e7ea9916ea2a4f8c87f0316fc3eab07eabefb6e587424ef0f88cbcd3805791f172ea739863ca3d7ce2afc54641c7f0e languageName: node linkType: hard @@ -3983,16 +4269,7 @@ __metadata: languageName: node linkType: hard -"cross-fetch@npm:^4.0.0": - version: 4.0.0 - resolution: "cross-fetch@npm:4.0.0" - dependencies: - node-fetch: "npm:^2.6.12" - checksum: 10c0/386727dc4c6b044746086aced959ff21101abb85c43df5e1d151547ccb6f338f86dec3f28b9dbddfa8ff5b9ec8662ed2263ad4607a93b2dc354fb7fe3bbb898a - languageName: node - linkType: hard - -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.5": version: 7.0.6 resolution: "cross-spawn@npm:7.0.6" dependencies: @@ -4294,6 +4571,15 @@ __metadata: languageName: node linkType: hard +"doctrine@npm:^3.0.0": + version: 3.0.0 + resolution: "doctrine@npm:3.0.0" + dependencies: + esutils: "npm:^2.0.2" + checksum: 10c0/c96bdccabe9d62ab6fea9399fdff04a66e6563c1d6fb3a3a063e8d53c3bb136ba63e84250bbf63d00086a769ad53aef92d2bd483f03f837fc97b71cbee6b2520 + languageName: node + linkType: hard + "dom-serializer@npm:^2.0.0": version: 2.0.0 resolution: "dom-serializer@npm:2.0.0" @@ -4724,6 +5010,89 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:^0.24.0": + version: 0.24.0 + resolution: "esbuild@npm:0.24.0" + dependencies: + "@esbuild/aix-ppc64": "npm:0.24.0" + "@esbuild/android-arm": "npm:0.24.0" + "@esbuild/android-arm64": "npm:0.24.0" + "@esbuild/android-x64": "npm:0.24.0" + "@esbuild/darwin-arm64": "npm:0.24.0" + "@esbuild/darwin-x64": "npm:0.24.0" + "@esbuild/freebsd-arm64": "npm:0.24.0" + "@esbuild/freebsd-x64": "npm:0.24.0" + "@esbuild/linux-arm": "npm:0.24.0" + "@esbuild/linux-arm64": "npm:0.24.0" + "@esbuild/linux-ia32": "npm:0.24.0" + "@esbuild/linux-loong64": "npm:0.24.0" + "@esbuild/linux-mips64el": "npm:0.24.0" + "@esbuild/linux-ppc64": "npm:0.24.0" + "@esbuild/linux-riscv64": "npm:0.24.0" + "@esbuild/linux-s390x": "npm:0.24.0" + "@esbuild/linux-x64": "npm:0.24.0" + "@esbuild/netbsd-x64": "npm:0.24.0" + "@esbuild/openbsd-arm64": "npm:0.24.0" + "@esbuild/openbsd-x64": "npm:0.24.0" + "@esbuild/sunos-x64": "npm:0.24.0" + "@esbuild/win32-arm64": "npm:0.24.0" + "@esbuild/win32-ia32": "npm:0.24.0" + "@esbuild/win32-x64": "npm:0.24.0" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10c0/9f1aadd8d64f3bff422ae78387e66e51a5e09de6935a6f987b6e4e189ed00fdc2d1bc03d2e33633b094008529c8b6e06c7ad1a9782fb09fec223bf95998c0683 + languageName: node + linkType: hard + "escalade@npm:^3.1.1, escalade@npm:^3.1.2": version: 3.1.2 resolution: "escalade@npm:3.1.2" @@ -4884,9 +5253,9 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-n@npm:^17.13.1": - version: 17.13.1 - resolution: "eslint-plugin-n@npm:17.13.1" +"eslint-plugin-n@npm:^17.14.0": + version: 17.14.0 + resolution: "eslint-plugin-n@npm:17.14.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.1" enhanced-resolve: "npm:^5.17.1" @@ -4898,7 +5267,7 @@ __metadata: semver: "npm:^7.6.3" peerDependencies: eslint: ">=8.23.0" - checksum: 10c0/025c41aec2c71f3e8597ab28d3bc16b0669fff08ad6a52fc44ecb676bdff11eac50f17f89f18f86c1bbe4456316e0942353a10605e3ab4fa34ae1fba0584cf78 + checksum: 10c0/ad46415e0a31431dd9c6996b6497d48dd891bf034b1880d55e292c60434022fa0ac4d74734bb08dc204200fe3947b47fac2d8300d319bd650175c0fffc62c609 languageName: node linkType: hard @@ -4949,8 +5318,8 @@ __metadata: linkType: hard "eslint-plugin-vue@npm:^9.30.0": - version: 9.31.0 - resolution: "eslint-plugin-vue@npm:9.31.0" + version: 9.32.0 + resolution: "eslint-plugin-vue@npm:9.32.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" globals: "npm:^13.24.0" @@ -4962,11 +5331,11 @@ __metadata: xml-name-validator: "npm:^4.0.0" peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 - checksum: 10c0/c87ab4d59bc431be6c2235501139b257c906b86fdeb1a64a5ff7d560a5c9439e7f1a78341d78c80e81ed5fe43dd2df8f0daf403581f62c4443cc0c6f7af2c997 + checksum: 10c0/69040947271b0d46132a34cccd54af5aeff9c017060ceba49c0cb689d4817468c27fb07881d655bc4453b40e2858715e3ab6a5155ee0846aa000013685185a81 languageName: node linkType: hard -"eslint-scope@npm:^7.1.1": +"eslint-scope@npm:^7.1.1, eslint-scope@npm:^7.2.2": version: 7.2.2 resolution: "eslint-scope@npm:7.2.2" dependencies: @@ -5000,25 +5369,73 @@ __metadata: languageName: node linkType: hard +"eslint@npm:^8.9.0": + version: 8.57.1 + resolution: "eslint@npm:8.57.1" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.2.0" + "@eslint-community/regexpp": "npm:^4.6.1" + "@eslint/eslintrc": "npm:^2.1.4" + "@eslint/js": "npm:8.57.1" + "@humanwhocodes/config-array": "npm:^0.13.0" + "@humanwhocodes/module-importer": "npm:^1.0.1" + "@nodelib/fs.walk": "npm:^1.2.8" + "@ungap/structured-clone": "npm:^1.2.0" + ajv: "npm:^6.12.4" + chalk: "npm:^4.0.0" + cross-spawn: "npm:^7.0.2" + debug: "npm:^4.3.2" + doctrine: "npm:^3.0.0" + escape-string-regexp: "npm:^4.0.0" + eslint-scope: "npm:^7.2.2" + eslint-visitor-keys: "npm:^3.4.3" + espree: "npm:^9.6.1" + esquery: "npm:^1.4.2" + esutils: "npm:^2.0.2" + fast-deep-equal: "npm:^3.1.3" + file-entry-cache: "npm:^6.0.1" + find-up: "npm:^5.0.0" + glob-parent: "npm:^6.0.2" + globals: "npm:^13.19.0" + graphemer: "npm:^1.4.0" + ignore: "npm:^5.2.0" + imurmurhash: "npm:^0.1.4" + is-glob: "npm:^4.0.0" + is-path-inside: "npm:^3.0.3" + js-yaml: "npm:^4.1.0" + json-stable-stringify-without-jsonify: "npm:^1.0.1" + levn: "npm:^0.4.1" + lodash.merge: "npm:^4.6.2" + minimatch: "npm:^3.1.2" + natural-compare: "npm:^1.4.0" + optionator: "npm:^0.9.3" + strip-ansi: "npm:^6.0.1" + text-table: "npm:^0.2.0" + bin: + eslint: bin/eslint.js + checksum: 10c0/1fd31533086c1b72f86770a4d9d7058ee8b4643fd1cfd10c7aac1ecb8725698e88352a87805cf4b2ce890aa35947df4b4da9655fb7fdfa60dbb448a43f6ebcf1 + languageName: node + linkType: hard + "eslint@npm:^9.11.0": - version: 9.14.0 - resolution: "eslint@npm:9.14.0" + version: 9.16.0 + resolution: "eslint@npm:9.16.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.12.1" - "@eslint/config-array": "npm:^0.18.0" - "@eslint/core": "npm:^0.7.0" - "@eslint/eslintrc": "npm:^3.1.0" - "@eslint/js": "npm:9.14.0" - "@eslint/plugin-kit": "npm:^0.2.0" + "@eslint/config-array": "npm:^0.19.0" + "@eslint/core": "npm:^0.9.0" + "@eslint/eslintrc": "npm:^3.2.0" + "@eslint/js": "npm:9.16.0" + "@eslint/plugin-kit": "npm:^0.2.3" "@humanfs/node": "npm:^0.16.6" "@humanwhocodes/module-importer": "npm:^1.0.1" - "@humanwhocodes/retry": "npm:^0.4.0" + "@humanwhocodes/retry": "npm:^0.4.1" "@types/estree": "npm:^1.0.6" "@types/json-schema": "npm:^7.0.15" ajv: "npm:^6.12.4" chalk: "npm:^4.0.0" - cross-spawn: "npm:^7.0.2" + cross-spawn: "npm:^7.0.5" debug: "npm:^4.3.2" escape-string-regexp: "npm:^4.0.0" eslint-scope: "npm:^8.2.0" @@ -5038,7 +5455,6 @@ __metadata: minimatch: "npm:^3.1.2" natural-compare: "npm:^1.4.0" optionator: "npm:^0.9.3" - text-table: "npm:^0.2.0" peerDependencies: jiti: "*" peerDependenciesMeta: @@ -5046,7 +5462,7 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: 10c0/e1cbf571b75519ad0b24c27e66a6575e57cab2671ef5296e7b345d9ac3adc1a549118dcc74a05b651a7a13a5e61ebb680be6a3e04a80e1f22eba1931921b5187 + checksum: 10c0/f36d12652c6f20bab8a77375b8ad29a6af030c3840deb0a5f9dd4cee49d68a2d68d7dc73b0c25918df59d83cd686dd5712e11387e696e1f3842e8dde15cd3255 languageName: node linkType: hard @@ -5068,7 +5484,7 @@ __metadata: languageName: node linkType: hard -"espree@npm:^9.3.1": +"espree@npm:^9.3.1, espree@npm:^9.6.0, espree@npm:^9.6.1": version: 9.6.1 resolution: "espree@npm:9.6.1" dependencies: @@ -5089,7 +5505,7 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.4.0, esquery@npm:^1.5.0": +"esquery@npm:^1.4.0, esquery@npm:^1.4.2, esquery@npm:^1.5.0": version: 1.6.0 resolution: "esquery@npm:1.6.0" dependencies: @@ -5272,7 +5688,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.12, fast-glob@npm:^3.3.2": +"fast-glob@npm:^3.3.2": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" dependencies: @@ -5350,6 +5766,15 @@ __metadata: languageName: node linkType: hard +"file-entry-cache@npm:^6.0.1": + version: 6.0.1 + resolution: "file-entry-cache@npm:6.0.1" + dependencies: + flat-cache: "npm:^3.0.4" + checksum: 10c0/58473e8a82794d01b38e5e435f6feaf648e3f36fdb3a56e98f417f4efae71ad1c0d4ebd8a9a7c50c3ad085820a93fc7494ad721e0e4ebc1da3573f4e1c3c7cdd + languageName: node + linkType: hard + "file-entry-cache@npm:^8.0.0": version: 8.0.0 resolution: "file-entry-cache@npm:8.0.0" @@ -5403,6 +5828,17 @@ __metadata: languageName: node linkType: hard +"flat-cache@npm:^3.0.4": + version: 3.2.0 + resolution: "flat-cache@npm:3.2.0" + dependencies: + flatted: "npm:^3.2.9" + keyv: "npm:^4.5.3" + rimraf: "npm:^3.0.2" + checksum: 10c0/b76f611bd5f5d68f7ae632e3ae503e678d205cf97a17c6ab5b12f6ca61188b5f1f7464503efae6dc18683ed8f0b41460beb48ac4b9ac63fe6201296a91ba2f75 + languageName: node + linkType: hard + "flat-cache@npm:^4.0.0": version: 4.0.1 resolution: "flat-cache@npm:4.0.1" @@ -5583,6 +6019,7 @@ __metadata: version: 0.0.0-use.local resolution: "gardener-dashboard@workspace:." dependencies: + "@microsoft/eslint-formatter-sarif": "npm:^3.1.0" eslint: "npm:^9.11.0" jest: "npm:^29.7.0" node-gyp: "npm:latest" @@ -5591,6 +6028,8 @@ __metadata: built: false fsevents: built: false + bin: + update-prod-install: ./scripts/update-prod-install.cjs languageName: unknown linkType: soft @@ -5698,7 +6137,7 @@ __metadata: languageName: node linkType: hard -"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": +"glob-parent@npm:^5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2" dependencies: @@ -5753,7 +6192,7 @@ __metadata: languageName: node linkType: hard -"globals@npm:^13.24.0": +"globals@npm:^13.19.0, globals@npm:^13.24.0": version: 13.24.0 resolution: "globals@npm:13.24.0" dependencies: @@ -5769,14 +6208,7 @@ __metadata: languageName: node linkType: hard -"globals@npm:^15.11.0": - version: 15.11.0 - resolution: "globals@npm:15.11.0" - checksum: 10c0/861e39bb6bd9bd1b9f355c25c962e5eb4b3f0e1567cf60fa6c06e8c502b0ec8706b1cce055d69d84d0b7b8e028bec5418cf629a54e7047e116538d1c1c1a375c - languageName: node - linkType: hard - -"globals@npm:^15.12.0": +"globals@npm:^15.11.0, globals@npm:^15.12.0": version: 15.12.0 resolution: "globals@npm:15.12.0" checksum: 10c0/f34e0a1845b694f45188331742af9f488b07ba7440a06e9d2039fce0386fbbfc24afdbb9846ebdccd4092d03644e43081c49eb27b30f4b88e43af156e1c1dc34 @@ -6173,15 +6605,6 @@ __metadata: languageName: node linkType: hard -"is-binary-path@npm:~2.1.0": - version: 2.1.0 - resolution: "is-binary-path@npm:2.1.0" - dependencies: - binary-extensions: "npm:^2.0.0" - checksum: 10c0/a16eaee59ae2b315ba36fad5c5dcaf8e49c3e27318f8ab8fa3cdb8772bf559c8d1ba750a589c2ccb096113bb64497084361a25960899cb6172a6925ab6123d38 - languageName: node - linkType: hard - "is-blank@npm:2.1.0": version: 2.1.0 resolution: "is-blank@npm:2.1.0" @@ -6298,7 +6721,7 @@ __metadata: languageName: node linkType: hard -"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": +"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3": version: 4.0.3 resolution: "is-glob@npm:4.0.3" dependencies: @@ -6353,6 +6776,13 @@ __metadata: languageName: node linkType: hard +"is-path-inside@npm:^3.0.3": + version: 3.0.3 + resolution: "is-path-inside@npm:3.0.3" + checksum: 10c0/cf7d4ac35fb96bab6a1d2c3598fe5ebb29aafb52c0aaa482b5a3ed9d8ba3edc11631e3ec2637660c44b3ce0e61a08d54946e8af30dec0b60a7c27296c68ffd05 + languageName: node + linkType: hard + "is-plain-object@npm:^5.0.0": version: 5.0.0 resolution: "is-plain-object@npm:5.0.0" @@ -7106,6 +7536,13 @@ __metadata: languageName: node linkType: hard +"jschardet@npm:latest": + version: 3.1.4 + resolution: "jschardet@npm:3.1.4" + checksum: 10c0/d72c724ff60bc185d3962617ffda6849c6d632a935820841078c656a5247d73617a5df3b233e1fb1064de8683f7dae1b422b68186d1d6db22117b59edb5433dc + languageName: node + linkType: hard + "jsdom@npm:^25.0.0": version: 25.0.1 resolution: "jsdom@npm:25.0.1" @@ -7296,7 +7733,7 @@ __metadata: languageName: node linkType: hard -"keyv@npm:^4.5.4": +"keyv@npm:^4.5.3, keyv@npm:^4.5.4": version: 4.5.4 resolution: "keyv@npm:4.5.4" dependencies: @@ -7410,7 +7847,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.21": +"lodash@npm:^4.17.14, lodash@npm:^4.17.21": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c @@ -7641,7 +8078,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": +"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" dependencies: @@ -7838,23 +8275,23 @@ __metadata: linkType: hard "neostandard@npm:^0.11.7": - version: 0.11.8 - resolution: "neostandard@npm:0.11.8" + version: 0.11.9 + resolution: "neostandard@npm:0.11.9" dependencies: "@humanwhocodes/gitignore-to-minimatch": "npm:^1.0.2" - "@stylistic/eslint-plugin": "npm:^2.10.1" - eslint-plugin-n: "npm:^17.13.1" + "@stylistic/eslint-plugin": "npm:^2.11.0" + eslint-plugin-n: "npm:^17.14.0" eslint-plugin-promise: "npm:^7.1.0" eslint-plugin-react: "npm:^7.36.1" find-up: "npm:^5.0.0" globals: "npm:^15.12.0" peowly: "npm:^1.3.2" - typescript-eslint: "npm:^8.13.0" + typescript-eslint: "npm:^8.15.0" peerDependencies: eslint: ^9.0.0 bin: neostandard: cli.mjs - checksum: 10c0/c1b6860867dcddcfa7805ac6eb362a0494f3735256c85e961d7ac450aa6cd85021109c844adf0f3b1be1f7248f23dc29ac9498f860e187aadfd13a734e0a40fb + checksum: 10c0/c369db757ba134fd939a94a627afd3a0556fe04e866651fb41593d49cdb25e93ea0ce9f11656a18ebc52919a2fbe010f7124e3edcc230fa7ddcdf92d31cef4fa languageName: node linkType: hard @@ -7891,7 +8328,7 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:^2.6.12, node-fetch@npm:^2.6.9": +"node-fetch@npm:^2.6.9": version: 2.7.0 resolution: "node-fetch@npm:2.7.0" dependencies: @@ -7962,7 +8399,7 @@ __metadata: languageName: node linkType: hard -"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": +"normalize-path@npm:^3.0.0": version: 3.0.0 resolution: "normalize-path@npm:3.0.0" checksum: 10c0/e008c8142bcc335b5e38cf0d63cfd39d6cf2d97480af9abdbe9a439221fd4d749763bab492a8ee708ce7a194bb00c9da6d0a115018672310850489137b3da046 @@ -8410,21 +8847,14 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1, picocolors@npm:^1.1.0": - version: 1.1.0 - resolution: "picocolors@npm:1.1.0" - checksum: 10c0/86946f6032148801ef09c051c6fb13b5cf942eaf147e30ea79edb91dd32d700934edebe782a1078ff859fb2b816792e97ef4dab03d7f0b804f6b01a0df35e023 - languageName: node - linkType: hard - -"picocolors@npm:^1.1.1": +"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1, picocolors@npm:^1.1.1": version: 1.1.1 resolution: "picocolors@npm:1.1.1" checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 languageName: node linkType: hard -"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be @@ -8439,8 +8869,8 @@ __metadata: linkType: hard "pinia@npm:^2.1.7": - version: 2.2.6 - resolution: "pinia@npm:2.2.6" + version: 2.2.8 + resolution: "pinia@npm:2.2.8" dependencies: "@vue/devtools-api": "npm:^6.6.3" vue-demi: "npm:^0.14.10" @@ -8453,7 +8883,7 @@ __metadata: optional: true typescript: optional: true - checksum: 10c0/2158513467ca95a93114bbc5f446445ec89c4ee8955632abbc8d9be0bdf62e622af82d051b1027b66bf919434c01228f70f0811d7ce30dbeb205c879ce405355 + checksum: 10c0/afcaba130850d939659d72d855f449d5d153a623d81139cf4667526253e6dcc426219cafd898b544cd538ffe63d3f750ac023a643056ec20e8c19cb909678f32 languageName: node linkType: hard @@ -8490,18 +8920,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.3.11, postcss@npm:^8.4.43": - version: 8.4.47 - resolution: "postcss@npm:8.4.47" - dependencies: - nanoid: "npm:^3.3.7" - picocolors: "npm:^1.1.0" - source-map-js: "npm:^1.2.1" - checksum: 10c0/929f68b5081b7202709456532cee2a145c1843d391508c5a09de2517e8c4791638f71dd63b1898dba6712f8839d7a6da046c72a5e44c162e908f5911f57b5f44 - languageName: node - linkType: hard - -"postcss@npm:^8.4.48": +"postcss@npm:^8.3.11, postcss@npm:^8.4.43, postcss@npm:^8.4.48, postcss@npm:^8.4.49": version: 8.4.49 resolution: "postcss@npm:8.4.49" dependencies: @@ -8669,15 +9088,6 @@ __metadata: languageName: node linkType: hard -"readdirp@npm:~3.6.0": - version: 3.6.0 - resolution: "readdirp@npm:3.6.0" - dependencies: - picomatch: "npm:^2.2.1" - checksum: 10c0/6fa848cf63d1b82ab4e985f4cf72bd55b7dcfd8e0a376905804e48c3634b7e749170940ba77b32804d5fe93b3cc521aa95a8d7e7d725f830da6d93f3669ce66b - languageName: node - linkType: hard - "reflect.getprototypeof@npm:^1.0.4": version: 1.0.6 resolution: "reflect.getprototypeof@npm:1.0.6" @@ -8959,6 +9369,75 @@ __metadata: languageName: node linkType: hard +"rollup@npm:^4.23.0": + version: 4.28.0 + resolution: "rollup@npm:4.28.0" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.28.0" + "@rollup/rollup-android-arm64": "npm:4.28.0" + "@rollup/rollup-darwin-arm64": "npm:4.28.0" + "@rollup/rollup-darwin-x64": "npm:4.28.0" + "@rollup/rollup-freebsd-arm64": "npm:4.28.0" + "@rollup/rollup-freebsd-x64": "npm:4.28.0" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.28.0" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.28.0" + "@rollup/rollup-linux-arm64-gnu": "npm:4.28.0" + "@rollup/rollup-linux-arm64-musl": "npm:4.28.0" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.28.0" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.28.0" + "@rollup/rollup-linux-s390x-gnu": "npm:4.28.0" + "@rollup/rollup-linux-x64-gnu": "npm:4.28.0" + "@rollup/rollup-linux-x64-musl": "npm:4.28.0" + "@rollup/rollup-win32-arm64-msvc": "npm:4.28.0" + "@rollup/rollup-win32-ia32-msvc": "npm:4.28.0" + "@rollup/rollup-win32-x64-msvc": "npm:4.28.0" + "@types/estree": "npm:1.0.6" + fsevents: "npm:~2.3.2" + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-powerpc64le-gnu": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 10c0/98d3bc2b784eff71b997cfc2be97c00e2f100ee38adc2f8ada7b9b9ecbbc96937f667a6a247a45491807b3f2adef3c73d1f5df40d71771bff0c2d8c0cca9b369 + languageName: node + linkType: hard + "rrweb-cssom@npm:^0.7.1": version: 0.7.1 resolution: "rrweb-cssom@npm:0.7.1" @@ -9930,37 +10409,39 @@ __metadata: languageName: node linkType: hard -"typescript-eslint@npm:^8.13.0": - version: 8.14.0 - resolution: "typescript-eslint@npm:8.14.0" +"typescript-eslint@npm:^8.15.0": + version: 8.16.0 + resolution: "typescript-eslint@npm:8.16.0" dependencies: - "@typescript-eslint/eslint-plugin": "npm:8.14.0" - "@typescript-eslint/parser": "npm:8.14.0" - "@typescript-eslint/utils": "npm:8.14.0" + "@typescript-eslint/eslint-plugin": "npm:8.16.0" + "@typescript-eslint/parser": "npm:8.16.0" + "@typescript-eslint/utils": "npm:8.16.0" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/b9c2f32139d3df52057bfb80d4663fd5e440ccd0da75d92fe91582fe5216213e7012ef691e7d91c75e402e373b9aded6b128b005aaeeae32d7b9d7b39732bcc7 + checksum: 10c0/3da9401d6c2416b9d95c96a41a9423a5379d233a120cd3304e2c03f191d350ce91cf0c7e60017f7b10c93b4cc1190592702735735b771c1ce1bf68f71a9f1647 languageName: node linkType: hard "typescript@npm:^5.6.3": - version: 5.6.3 - resolution: "typescript@npm:5.6.3" + version: 5.7.2 + resolution: "typescript@npm:5.7.2" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/44f61d3fb15c35359bc60399cb8127c30bae554cd555b8e2b46d68fa79d680354b83320ad419ff1b81a0bdf324197b29affe6cc28988cd6a74d4ac60c94f9799 + checksum: 10c0/a873118b5201b2ef332127ef5c63fb9d9c155e6fdbe211cbd9d8e65877283797cca76546bad742eea36ed7efbe3424a30376818f79c7318512064e8625d61622 languageName: node linkType: hard "typescript@patch:typescript@npm%3A^5.6.3#optional!builtin": - version: 5.6.3 - resolution: "typescript@patch:typescript@npm%3A5.6.3#optional!builtin::version=5.6.3&hash=8c6c40" + version: 5.7.2 + resolution: "typescript@patch:typescript@npm%3A5.7.2#optional!builtin::version=5.7.2&hash=5786d5" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/7c9d2e07c81226d60435939618c91ec2ff0b75fbfa106eec3430f0fcf93a584bc6c73176676f532d78c3594fe28a54b36eb40b3d75593071a7ec91301533ace7 + checksum: 10c0/f3b8082c9d1d1629a215245c9087df56cb784f9fb6f27b5d55577a20e68afe2a889c040aacff6d27e35be165ecf9dca66e694c42eb9a50b3b2c451b36b5675cb languageName: node linkType: hard @@ -10036,30 +10517,28 @@ __metadata: linkType: hard "unplugin-fonts@npm:^1.1.1": - version: 1.1.1 - resolution: "unplugin-fonts@npm:1.1.1" + version: 1.3.1 + resolution: "unplugin-fonts@npm:1.3.1" dependencies: - fast-glob: "npm:^3.2.12" - unplugin: "npm:^1.3.1" + fast-glob: "npm:^3.3.2" + unplugin: "npm:2.0.0-beta.1" peerDependencies: "@nuxt/kit": ^3.0.0 - vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 peerDependenciesMeta: "@nuxt/kit": optional: true - checksum: 10c0/8bd2fd6320087f3843eb1d63fd4e6bd4dd516649e3f873af828f814954d797a2b722a0a2e344384eef882b4f060b88c2aae0728c3c561adfd390bf17a07d441c + checksum: 10c0/6be3c99618a4eec762421971013ceb3e4601084f940356ff7783327e36a3303a8eeca1abfa974d7fafe5fa2cac0be4e3ca1be6484d24eb8ad791468dedd91519 languageName: node linkType: hard -"unplugin@npm:^1.3.1": - version: 1.5.0 - resolution: "unplugin@npm:1.5.0" +"unplugin@npm:2.0.0-beta.1": + version: 2.0.0-beta.1 + resolution: "unplugin@npm:2.0.0-beta.1" dependencies: - acorn: "npm:^8.10.0" - chokidar: "npm:^3.5.3" - webpack-sources: "npm:^3.2.3" - webpack-virtual-modules: "npm:^0.5.0" - checksum: 10c0/2f79a7bf6b428a6aac80bf21852ed83cafead0ae3ed8866db1dca1cd4489f3b50c95874275e9a9b0f10c2e3c4892bfe0431c70d13635775c4c620a6a3f9eae37 + acorn: "npm:^8.14.0" + webpack-virtual-modules: "npm:^0.6.2" + checksum: 10c0/4a700c9fc5d29366e80709f30760af675eacfc95448d2811627572e3efb74b6837b036bc7369dbca088ae5d6841d3e9c16aed8c94af6f058474df7c0ca1600bb languageName: node linkType: hard @@ -10100,6 +10579,13 @@ __metadata: languageName: node linkType: hard +"utf8@npm:^3.0.0": + version: 3.0.0 + resolution: "utf8@npm:3.0.0" + checksum: 10c0/675d008bab65fc463ce718d5cae8fd4c063540f269e4f25afebce643098439d53e7164bb1f193e0c3852825c7e3e32fbd8641163d19a618dbb53f1f09acb0d5a + languageName: node + linkType: hard + "util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" @@ -10141,9 +10627,9 @@ __metadata: languageName: node linkType: hard -"vite-node@npm:2.1.5": - version: 2.1.5 - resolution: "vite-node@npm:2.1.5" +"vite-node@npm:2.1.7": + version: 2.1.7 + resolution: "vite-node@npm:2.1.7" dependencies: cac: "npm:^6.7.14" debug: "npm:^4.3.7" @@ -10152,7 +10638,7 @@ __metadata: vite: "npm:^5.0.0" bin: vite-node: vite-node.mjs - checksum: 10c0/4ebe6bdf52f5ed65cb6f18af087faa87d8dca8e1a87413d1dbb8ead141d6e5d359ae006bd6c5e8f8c89cd5d90499bbf1d3f9e9a161dcc4bc86ec526862c01360 + checksum: 10c0/bc404fe491f22f378df843885381327fb93d6f3b273cbc5a410e348f422975198b8651c2745ae36cb41b712dd0148f7c5160191f321bce12b7af76219832647a languageName: node linkType: hard @@ -10184,7 +10670,7 @@ __metadata: languageName: node linkType: hard -"vite@npm:^5.0.0, vite@npm:^5.1.6": +"vite@npm:^5.0.0": version: 5.4.11 resolution: "vite@npm:5.4.11" dependencies: @@ -10227,28 +10713,78 @@ __metadata: languageName: node linkType: hard -"vitest-fetch-mock@npm:^0.3.0": - version: 0.3.0 - resolution: "vitest-fetch-mock@npm:0.3.0" +"vite@npm:^6.0.0": + version: 6.0.2 + resolution: "vite@npm:6.0.2" dependencies: - cross-fetch: "npm:^4.0.0" + esbuild: "npm:^0.24.0" + fsevents: "npm:~2.3.3" + postcss: "npm:^8.4.49" + rollup: "npm:^4.23.0" + peerDependencies: + "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: ">=1.21.0" + less: "*" + lightningcss: ^1.21.0 + sass: "*" + sass-embedded: "*" + stylus: "*" + sugarss: "*" + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + bin: + vite: bin/vite.js + checksum: 10c0/45fc609f2bc5fb5beb5a8e2cad9ad6c2edce229a922f6fc1270ea2a9d75819482edcc0f77c85b4a7abdad7eb69ce6a4f26131925d47cdc0778fc15d1bbc3b6a2 + languageName: node + linkType: hard + +"vitest-fetch-mock@npm:^0.4.0": + version: 0.4.2 + resolution: "vitest-fetch-mock@npm:0.4.2" peerDependencies: vitest: ">=2.0.0" - checksum: 10c0/794a3ba957d419ff862139872c9ef55f0add1937003157ce734f11f294c5733bee1874c57fd00b7d49b8a1ef68ea4abe7e2d22573be3dd72bd90829046729aef + checksum: 10c0/d583056cf40e25177a71e9208ee48017e30add0e84aaa6c2582ab71234d616942cff7839fb3b46c01d5a56eeceba9521dd6cc1a938cfe252404c1aab815d584d languageName: node linkType: hard "vitest@npm:^2.0.0": - version: 2.1.5 - resolution: "vitest@npm:2.1.5" - dependencies: - "@vitest/expect": "npm:2.1.5" - "@vitest/mocker": "npm:2.1.5" - "@vitest/pretty-format": "npm:^2.1.5" - "@vitest/runner": "npm:2.1.5" - "@vitest/snapshot": "npm:2.1.5" - "@vitest/spy": "npm:2.1.5" - "@vitest/utils": "npm:2.1.5" + version: 2.1.7 + resolution: "vitest@npm:2.1.7" + dependencies: + "@vitest/expect": "npm:2.1.7" + "@vitest/mocker": "npm:2.1.7" + "@vitest/pretty-format": "npm:^2.1.7" + "@vitest/runner": "npm:2.1.7" + "@vitest/snapshot": "npm:2.1.7" + "@vitest/spy": "npm:2.1.7" + "@vitest/utils": "npm:2.1.7" chai: "npm:^5.1.2" debug: "npm:^4.3.7" expect-type: "npm:^1.1.0" @@ -10260,13 +10796,13 @@ __metadata: tinypool: "npm:^1.0.1" tinyrainbow: "npm:^1.2.0" vite: "npm:^5.0.0" - vite-node: "npm:2.1.5" + vite-node: "npm:2.1.7" why-is-node-running: "npm:^2.3.0" peerDependencies: "@edge-runtime/vm": "*" - "@types/node": ^18.0.0 || >=20.0.0 - "@vitest/browser": 2.1.5 - "@vitest/ui": 2.1.5 + "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 + "@vitest/browser": 2.1.7 + "@vitest/ui": 2.1.7 happy-dom: "*" jsdom: "*" peerDependenciesMeta: @@ -10284,7 +10820,7 @@ __metadata: optional: true bin: vitest: vitest.mjs - checksum: 10c0/1befb842da0826eed8761fe6cbd6ecae6b38d1ae83ac6619b994544d07e47905feaff2b254210315aa8e9b86645174c71a63b5d809799a289679a0063381c9a4 + checksum: 10c0/936842ed03043d7f85d6b8e0c13a4786a45019852b3b831f4f5be89c2cb07bdf4a5c653af32454021fc1e503faac8b293d82d40e3437b20827e2123654defd05 languageName: node linkType: hard @@ -10309,9 +10845,9 @@ __metadata: languageName: node linkType: hard -"vue-demi@npm:>=0.14.10, vue-demi@npm:^0.14.10": - version: 0.14.10 - resolution: "vue-demi@npm:0.14.10" +"vue-demi@npm:^0.13.11": + version: 0.13.11 + resolution: "vue-demi@npm:0.13.11" peerDependencies: "@vue/composition-api": ^1.0.0-rc.1 vue: ^3.0.0-0 || ^2.6.0 @@ -10321,13 +10857,13 @@ __metadata: bin: vue-demi-fix: bin/vue-demi-fix.js vue-demi-switch: bin/vue-demi-switch.js - checksum: 10c0/a9ed8712fa36d01bc13c39757f95f30cebf42d557b99e94bff86d8660c81f2911b41220f7affc023d1ffcc19e13999e4a83019991e264787cca2c616e83aea48 + checksum: 10c0/8f1a38e41e3dd0a4821c87231c664dcc00e6dbf5eecd3de397b7ddb6ae01f173aed5385c55a3c3239be36145742f1a5be407662fc67f9c4515ea691dd0ac93e1 languageName: node linkType: hard -"vue-demi@npm:^0.13.11": - version: 0.13.11 - resolution: "vue-demi@npm:0.13.11" +"vue-demi@npm:^0.14.10": + version: 0.14.10 + resolution: "vue-demi@npm:0.14.10" peerDependencies: "@vue/composition-api": ^1.0.0-rc.1 vue: ^3.0.0-0 || ^2.6.0 @@ -10337,7 +10873,7 @@ __metadata: bin: vue-demi-fix: bin/vue-demi-fix.js vue-demi-switch: bin/vue-demi-switch.js - checksum: 10c0/8f1a38e41e3dd0a4821c87231c664dcc00e6dbf5eecd3de397b7ddb6ae01f173aed5385c55a3c3239be36145742f1a5be407662fc67f9c4515ea691dd0ac93e1 + checksum: 10c0/a9ed8712fa36d01bc13c39757f95f30cebf42d557b99e94bff86d8660c81f2911b41220f7affc023d1ffcc19e13999e4a83019991e264787cca2c616e83aea48 languageName: node linkType: hard @@ -10378,7 +10914,7 @@ __metadata: languageName: node linkType: hard -"vue@npm:*, vue@npm:^3.4.21": +"vue@npm:*, vue@npm:^3.4.21, vue@npm:^3.5.13": version: 3.5.13 resolution: "vue@npm:3.5.13" dependencies: @@ -10397,8 +10933,8 @@ __metadata: linkType: hard "vuetify@npm:^3.5.10": - version: 3.7.4 - resolution: "vuetify@npm:3.7.4" + version: 3.7.5 + resolution: "vuetify@npm:3.7.5" peerDependencies: typescript: ">=4.7" vite-plugin-vuetify: ">=1.0.0" @@ -10411,7 +10947,7 @@ __metadata: optional: true webpack-plugin-vuetify: optional: true - checksum: 10c0/75d9d90b01f1291af46142175a9afdc7c55bc3a2668ad616c4dcdaf9a9a537a98c0865739e7507e91ba73dfb0c082c31fc52069c1dde986acd4a7527580aff5a + checksum: 10c0/d5bbfea084c3221786eabc51dbaa87c69f1fafc9e2f5e84a9a247647a3071c9c3822394d8d6ae41f57b4ca13a1858c78c0dafc31e4181564b3e5cb9ecbc818d1 languageName: node linkType: hard @@ -10470,17 +11006,10 @@ __metadata: languageName: node linkType: hard -"webpack-sources@npm:^3.2.3": - version: 3.2.3 - resolution: "webpack-sources@npm:3.2.3" - checksum: 10c0/2ef63d77c4fad39de4a6db17323d75eb92897b32674e97d76f0a1e87c003882fc038571266ad0ef581ac734cbe20952912aaa26155f1905e96ce251adbb1eb4e - languageName: node - linkType: hard - -"webpack-virtual-modules@npm:^0.5.0": - version: 0.5.0 - resolution: "webpack-virtual-modules@npm:0.5.0" - checksum: 10c0/0742e069cd49d91ccd0b59431b3666903d321582c1b1062fa6bdae005c3538af55ff8787ea5eafbf72662f3496d3a879e2c705d55ca0af8283548a925be18484 +"webpack-virtual-modules@npm:^0.6.2": + version: 0.6.2 + resolution: "webpack-virtual-modules@npm:0.6.2" + checksum: 10c0/5ffbddf0e84bf1562ff86cf6fcf039c74edf09d78358a6904a09bbd4484e8bb6812dc385fe14330b715031892dcd8423f7a88278b57c9f5002c84c2860179add languageName: node linkType: hard