diff --git a/package.json b/package.json index ddfb78b..70d3d2d 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,8 @@ "main": "./dist/index.js", "icon": "res/icon.png", "files": [ - "dist" + "dist", + "res" ], "engines": { "vscode": "^1.70.0" @@ -100,6 +101,12 @@ "description": "command to open your preferred file browser. Use the ${traceDir} substitution variable", "order": 8 }, + "tsperf.tracer.enableInlineDecorations": { + "type": "boolean", + "default": true, + "description": "Show inline decorations for type complexity hotspots", + "order": 9 + }, "tsperf.tracer.traceTimeThresholds": { "type": "object", "properties": { @@ -125,7 +132,7 @@ "error": -1 }, "description": "todo", - "order": 9, + "order": 10, "markdownDescription": "# Trace Time Thresholds\n\nTrigger diagnostics from trace files when check time in ms exceeds these thresholds.\n\n* -1 will disable diagnostics of that severity\n" }, "tsperf.tracer.traceTypeThresholds": { @@ -153,7 +160,7 @@ "error": -1 }, "description": "todo", - "order": 10, + "order": 11, "markdownDescription": "# Trace Type Thresholds\n\nTrigger diagnostics from trace files when the number of types created locally in this check call exceeds these thresholds.\n\n* -1 will disable diagnostics of that severity\n" }, "tsperf.tracer.traceTotalTypeThresholds": { @@ -181,14 +188,14 @@ "error": -1 }, "description": "todo", - "order": 11, + "order": 12, "markdownDescription": "# Trace Total Type Thresholds\n\nTrigger diagnostics from trace files when the number of types created in this check call stack exceeds these thresholds.\n\n* -1 will disable diagnostics of that severity\n" }, "tsperf.tracer.traceDiagnosticsRelative": { "type": "boolean", "default": false, "description": "Use measurements relative to the average for trace diagnostics", - "order": 12 + "order": 13 }, "tsperf.tracer.traceTimeRelativeThresholds": { "type": "object", @@ -215,7 +222,7 @@ "error": -1 }, "description": "todo", - "order": 13 + "order": 14 }, "tsperf.tracer.traceTypeRelativeThresholds": { "type": "object", @@ -242,7 +249,7 @@ "error": -1 }, "description": "todo", - "order": 14 + "order": 15 }, "tsperf.tracer.traceTotalTypeRelativeThresholds": { "type": "object", @@ -269,7 +276,7 @@ "error": -1 }, "description": "todo", - "order": 15 + "order": 16 } } }, @@ -311,6 +318,21 @@ "title": "Open trace directory in file browser", "command": "tsperf.tracer.openTraceDirExternal", "category": "Tracer" + }, + { + "title": "Trace expression at cursor", + "command": "tsperf.tracer.traceExpression", + "category": "Tracer" + }, + { + "title": "Select tsconfig for tracing", + "command": "tsperf.tracer.selectTsconfig", + "category": "Tracer" + }, + { + "title": "Show metrics overview", + "command": "tsperf.tracer.showMetrics", + "category": "Tracer" } ], "menus": { @@ -340,6 +362,23 @@ "category": "Tracer" } ] + }, + "viewsContainers": { + "activitybar": [ + { + "id": "tsperf-tracer", + "title": "TSPerf Tracer", + "icon": "res/icon.svg" + } + ] + }, + "views": { + "tsperf-tracer": [ + { + "id": "tsperf-tracer-hotspots", + "name": "Hot Spots" + } + ] } }, "scripts": { @@ -349,7 +388,7 @@ "build": "nr generate:contributes && nr srcDev:build && nr ui:build && rollup -c", "dev": "nr build --watch --sourcemap", "ui:dev": "nuxt dev ui", - "ui:build": "nuxt build ui", + "ui:build": "npx nuxt build ui", "srcDev:dev": "nr build --filter ./srcDev --watch --srcmap", "srcDev:build": "cd srcDev && rollup -c && cd ..", "lint": "eslint .", @@ -375,6 +414,7 @@ "d3": "^7.9.0", "d3-flame-graph": "^4.1.3", "eslint": "^9.3.0", + "jiti": "^2.7.0", "open": "^10.1.0", "perfect-debounce": "^1.0.0", "rollup": "^4.18.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 06cc51d..cb87b45 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,7 +14,7 @@ importers: devDependencies: '@antfu/eslint-config': specifier: ^2.19.1 - version: 2.19.1(@vue/compiler-sfc@3.4.27)(eslint@9.3.0)(typescript@5.4.5)(vitest@1.6.0(@types/node@20.12.12)(terser@5.31.0)) + version: 2.19.1(@vue/compiler-sfc@3.5.35)(eslint@9.3.0)(typescript@5.4.5)(vitest@1.6.0(@types/node@20.12.12)(terser@5.31.0)) '@antfu/ni': specifier: ^0.21.12 version: 0.21.12 @@ -45,6 +45,9 @@ importers: eslint: specifier: ^9.3.0 version: 9.3.0 + jiti: + specifier: ^2.7.0 + version: 2.7.0 open: specifier: ^10.1.0 version: 10.1.0 @@ -59,7 +62,7 @@ importers: version: 6.1.1(esbuild@0.20.2)(rollup@4.18.0) rollup-plugin-vue: specifier: ^6.0.0 - version: 6.0.0(@vue/compiler-sfc@3.4.27) + version: 6.0.0(@vue/compiler-sfc@3.5.35) typescript: specifier: ^5.4.5 version: 5.4.5 @@ -95,10 +98,10 @@ importers: dependencies: '@nuxt/devtools': specifier: latest - version: 1.3.3(@unocss/reset@0.60.2)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)))(fuse.js@6.6.2)(nuxt@3.11.2(@azure/identity@4.2.0)(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)))(rollup@4.18.0)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5)) + version: 4.0.0-alpha.7(ioredis@5.4.1)(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.5.35(typescript@5.4.5)) '@nuxt/ui': specifier: ^2.16.0 - version: 2.16.0(focus-trap@7.5.4)(nuxt@3.11.2(@azure/identity@4.2.0)(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)))(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5)) + version: 2.16.0(focus-trap@7.5.4)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.5.35(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)))(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.5.35(typescript@5.4.5)) '@nuxtjs/color-mode': specifier: ^3.4.1 version: 3.4.1(rollup@4.18.0) @@ -108,9 +111,6 @@ importers: '@vscode/webview-ui-toolkit': specifier: ^1.4.0 version: 1.4.0(react@18.3.1) - nuxt: - specifier: ^3.11.2 - version: 3.11.2(@azure/identity@4.2.0)(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)) zod: specifier: ^3.23.8 version: 3.23.8 @@ -118,6 +118,9 @@ importers: '@types/vscode-webview': specifier: ^1.57.5 version: 1.57.5 + nuxt: + specifier: ^3.11.2 + version: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.5.35(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)) vue-tsc: specifier: ^2.0.19 version: 2.0.19(typescript@5.4.5) @@ -329,10 +332,18 @@ packages: resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.29.7': + resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.24.5': resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.29.7': + resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.23.5': resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} @@ -350,6 +361,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.29.7': + resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-proposal-decorators@7.24.1': resolution: {integrity: sha512-zPEvzFijn+hRvJuX2Vu3KbEBN39LN3f7tW3MQO2LsIs57B26KU+kUc82BdAktS1VCM6libzh45eKGI65lg0cpA==} engines: {node: '>=6.9.0'} @@ -423,6 +439,10 @@ packages: resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} engines: {node: '>=6.9.0'} + '@babel/types@7.29.7': + resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} + engines: {node: '>=6.9.0'} + '@clack/core@0.3.4': resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==} @@ -447,11 +467,25 @@ packages: peerDependencies: postcss-selector-parser: ^6.0.13 + '@devframes/hub@0.5.2': + resolution: {integrity: sha512-qMkBFw1OqhPuNs1tQWkRq0z0Tg49kXNu53bs59tdF4lytKupatWVnL3cpsVPqn+Q5P7A70r99BKTcm+prMtHqw==} + peerDependencies: + devframe: 0.5.2 + '@egoist/tailwindcss-icons@1.8.0': resolution: {integrity: sha512-75LfllKL2lq0sGH+wcpsn/sLtJ0kMkDWmcZTLAB76QLDTmfsFu4QHwZVbtCD2woGyKl9c8KvtOUW9JSjRqOVtA==} peerDependencies: tailwindcss: '*' + '@emnapi/core@1.10.0': + resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} + + '@emnapi/runtime@1.10.0': + resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} + + '@emnapi/wasi-threads@1.2.1': + resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} + '@es-joy/jsdoccomment@0.43.0': resolution: {integrity: sha512-Q1CnsQrytI3TlCB1IVWXWeqUIPGVEKGaE7IbVdt13Nq/3i0JESAkQQERrfiQkmlpijl+++qyqPgaS31Bvc1jRQ==} engines: {node: '>=16'} @@ -616,14 +650,17 @@ packages: resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} - '@floating-ui/core@1.6.2': - resolution: {integrity: sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==} + '@floating-ui/core@1.7.5': + resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==} '@floating-ui/dom@1.1.1': resolution: {integrity: sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw==} - '@floating-ui/utils@0.2.2': - resolution: {integrity: sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==} + '@floating-ui/dom@1.7.6': + resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==} + + '@floating-ui/utils@0.2.11': + resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==} '@headlessui/tailwindcss@0.2.0': resolution: {integrity: sha512-fpL830Fln1SykOCboExsWr3JIVeQKieLJ3XytLe/tt1A0XzqUthOftDmjcCYLW62w7mQI7wXcoPXr3tZ9QfGxw==} @@ -640,6 +677,7 @@ packages: '@humanwhocodes/config-array@0.13.0': resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} @@ -647,6 +685,7 @@ packages: '@humanwhocodes/object-schema@2.0.3': resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead '@humanwhocodes/retry@0.3.0': resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} @@ -684,6 +723,9 @@ packages: resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -698,6 +740,9 @@ packages: '@jridgewell/sourcemap-codec@1.4.15': resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} @@ -708,6 +753,7 @@ packages: '@koa/router@12.0.1': resolution: {integrity: sha512-ribfPYfHb+Uw3b27Eiw6NPqjhIhTpVFzEWLwyc/1Xp+DCdwRRyIlAUODX+9bPARF6aQtUu1+/PHzdNvRzcs/+Q==} engines: {node: '>= 12'} + deprecated: Use v12.0.2 or higher to fix the vulnerability issue '@kwsites/file-exists@1.1.1': resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} @@ -733,6 +779,12 @@ packages: '@microsoft/fast-web-utilities@5.4.1': resolution: {integrity: sha512-ReWYncndjV3c8D8iq9tp7NcFNc1vbVHvcBFPME2nNFKNbS1XCesYZGlIlf3ot5EmuOXPlrzUHOWzQ2vFpIkqDg==} + '@napi-rs/wasm-runtime@1.1.4': + resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 + '@netlify/functions@2.7.0': resolution: {integrity: sha512-4pXC/fuj3eGQ86wbgPiM4zY8+AsNrdz6vcv6FEdUJnZW+LqF8IWjQcY3S0d1hLeLKODYOqq4CkrzGyCpce63Nw==} engines: {node: '>=14.0.0'} @@ -797,18 +849,17 @@ packages: '@nuxt/devalue@2.0.2': resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} - '@nuxt/devtools-kit@1.3.1': - resolution: {integrity: sha512-YckEiiTef3dMckwLLUb+feKV0O8pS9s8ujw/FQ600oQbOCbq6hpWY5HQYxVYc3E41wu87lFiIZ1rnHjO3nM9sw==} - peerDependencies: - nuxt: ^3.9.0 - vite: '*' - '@nuxt/devtools-kit@1.3.3': resolution: {integrity: sha512-YkcuSirzVVi36gWjIl9sJ4lsuiuQiIStY3upLy829zMTIXXeF8yUEBexKL6zHD3UPqCigoF7IuovnfLw78BQ9g==} peerDependencies: nuxt: ^3.9.0 vite: '*' + '@nuxt/devtools-kit@4.0.0-alpha.7': + resolution: {integrity: sha512-Tgh+tSejh1GnZjdjgWyc4qCxskeX08XuSQBYMn/4SIV5AubeqYeAOMBD2qSmHOXjMCUpgyzpEhODcP3sgdgGRA==} + peerDependencies: + vite: '>=6.0' + '@nuxt/devtools-wizard@1.3.3': resolution: {integrity: sha512-9Umo9eDgwhSBDnTzWINXwJBYy2J3ay6OviM7Qdr08B9hDu+CU6MrEpsT4hZ3npD7p1E+9t1YQw/4fZ8NMcPVnw==} hasBin: true @@ -820,10 +871,19 @@ packages: nuxt: ^3.9.0 vite: '*' + '@nuxt/devtools@4.0.0-alpha.7': + resolution: {integrity: sha512-ZWPhutVNQwBx1AmjRbaVEvDEl6JT6bIF9s6v/lorMOhNNV99TdfOcv5o8kytdFNhkzzIsAyIFB09bK3gj0y61Q==} + peerDependencies: + vite: '>=6.0' + '@nuxt/kit@3.11.2': resolution: {integrity: sha512-yiYKP0ZWMW7T3TCmsv4H8+jEsB/nFriRAR8bKoSqSV9bkVYWPE36sf7JDux30dQ91jSlQG6LQkB3vCHYTS2cIg==} engines: {node: ^14.18.0 || >=16.10.0} + '@nuxt/kit@4.4.7': + resolution: {integrity: sha512-QwtpqNxSOLyJH1UoDpcgsfzVEw95J0893hn1A+CvgeOxoTos1BGvD15D1v/OVQ2MK1EpfnFZJby51t1yudOvBA==} + engines: {node: '>=18.12.0'} + '@nuxt/schema@3.11.2': resolution: {integrity: sha512-Z0bx7N08itD5edtpkstImLctWMNvxTArsKXzS35ZuqyAyKBPcRjO1CU01slH0ahO30Gg9kbck3/RKNZPwfOjJg==} engines: {node: ^14.18.0 || >=16.10.0} @@ -922,6 +982,136 @@ packages: resolution: {integrity: sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==} engines: {node: '>=14'} + '@oxc-parser/binding-android-arm-eabi@0.132.0': + resolution: {integrity: sha512-KrLaPWa5c9Y7LkW+rKkaUE3y7DBDrQtaf7rlsSDfv6KAHUjgzAIRA761Lrrp6//Yd/Rlie/yEOt9YENCoJnOcw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxc-parser/binding-android-arm64@0.132.0': + resolution: {integrity: sha512-SThDrSeamB/kG2+NxcJ5/wSLcV6dUqDknrPLqFYQ0ST/55mtBP4M7Q/f3QbubH6aAd11wpzZn/nwbVRSdobOpg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxc-parser/binding-darwin-arm64@0.132.0': + resolution: {integrity: sha512-Lc0f/TYoKBghE5/2Gsv7bLXk+TJZunx2Tf61X8hG4ARXdc8UYI26dCGccFSd1AyFbK3jfaNXtMnupggDbjPXdQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxc-parser/binding-darwin-x64@0.132.0': + resolution: {integrity: sha512-RG2eJIpf7C21z9HSSXFw1bTArdpKe7Y4fwcJTwRq1yCSe1vSavaN9GA1sm9KqzemTLAGVktQ+7qBTGp0vQeUZg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxc-parser/binding-freebsd-x64@0.132.0': + resolution: {integrity: sha512-wQIPntPLtJ8NcBpvKPbEv3NqzV6k8eP8tP/jE9Rg8HTg/j7urZGFSsTCPCW5k77Qfw2DM4vRvc9p3I4yq/Shvw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxc-parser/binding-linux-arm-gnueabihf@0.132.0': + resolution: {integrity: sha512-PixKEpeSe3yxQWqNyOCBALRYc72+Tj7ILDofUl3iXo25cVOzLA6jHUhmOINRtWIPh7dbUie3QNeabwaQpZTw6w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxc-parser/binding-linux-arm-musleabihf@0.132.0': + resolution: {integrity: sha512-sCR+DzGHlyHKnbA2z9zWjTUhIo8Sy0enJl4RDsBwPmkxYynPatpwOAWe8W5127SlW0boqUWHGtr1NWn5UwIhXQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxc-parser/binding-linux-arm64-gnu@0.132.0': + resolution: {integrity: sha512-sQBix5P2cW+IpzTcCwYxnh9yALrKSIkKJThspBvMGcygSMnbzkSvhN7SfuX1hvBk8y1XEChsdkU3ET0V5DmzUw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-arm64-musl@0.132.0': + resolution: {integrity: sha512-WozHg3Kc//8Sk756HXXgMbEAvqtG+Lzb9JOojwQzIGDtN78Az2dLttkb71akWYUF/8IgYfDSlfKh4Uot8is5Vw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxc-parser/binding-linux-ppc64-gnu@0.132.0': + resolution: {integrity: sha512-CmX/ulNBOEwWTyVRmcpYKAcAizW6+OjtLJgo7fXoL9OqQvjF4VER8tPomv44vwzfSCy1BHbsB0ZlZYzYJNj4cA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-riscv64-gnu@0.132.0': + resolution: {integrity: sha512-j9oQS+hM90SdhviNGWbPgT4+Rlq+ac++q/zjgwPD1mVHgxHzATvoRGtDx0sXGmFOQ9J9YkwAhYGb5MAHL6TAsA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-riscv64-musl@0.132.0': + resolution: {integrity: sha512-bLz+Xi+Agnfmd7kWPEsSVwCn2k4EyIalZkNBcQ0OGIv9rqn8VgCPLNd03tM9mKX/5TdlvDXalz0q71BIrOPNqg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@oxc-parser/binding-linux-s390x-gnu@0.132.0': + resolution: {integrity: sha512-U6t2qbJU0ypTfyj9QV3W1Y6mITDTL8ai/OR6NUn85vyHthOvobKWgXzU4tu0EskSzlpuVFz1g0jFGulDIUKHxQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-x64-gnu@0.132.0': + resolution: {integrity: sha512-WcEaSNHFk8yz5YFlQQAlhq6jOFmZBB/RKE7uzhyCIf+pF1Lmv9gUH4221mle2Gd9iHyWT3ySNph8yZgb1xYdWg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-x64-musl@0.132.0': + resolution: {integrity: sha512-iQrV4iJzQgRwK3BWRmQl1C3C6g3wYpXN2WLdQdyR+efoUnncdShZAVp9OgcojtlD3MDRbuOMGG3SjxF4fL4nlQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxc-parser/binding-openharmony-arm64@0.132.0': + resolution: {integrity: sha512-FWzmUGrZ6GUby4U7WIwcCtab6tdmlTO3xTRRKyb5kjIJVEiaUAT8animUG/nK8ZCA8gkRkPOTId4rl6uTqUmJQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxc-parser/binding-wasm32-wasi@0.132.0': + resolution: {integrity: sha512-TlbMppxJI5CjWDes0QaP6G3aneVg1yikBu5QYI+DUShF9WDL66ccgKFNNGmi/Wybtszw6hxwAvv76T4DaPKnHw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [wasm32] + + '@oxc-parser/binding-win32-arm64-msvc@0.132.0': + resolution: {integrity: sha512-RH/NbFjGKqdUAUi7Oh3LQPxUk2hsWFEEQ38HSnbRQT8QjBZFKqL1fMbmsB3N4jy/KPh9iX94+9dmkEMBBbambw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxc-parser/binding-win32-ia32-msvc@0.132.0': + resolution: {integrity: sha512-JUr4jQY9jxoIB/YTLXr6XofSi5xikj6p5/Ns1h0VOBDT0j1jKU+kMsv2xxv51RwnETcXpA1Yw/9oUAfcqfaqEA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxc-parser/binding-win32-x64-msvc@0.132.0': + resolution: {integrity: sha512-2dapgHpA5X8DSXF4AU36hJWYf6zP0tKjMXFRAZFBD62pkevW/uhFDXoFH9Y/3Fd2EtDrw5ByNnR1wVE9X9y0SQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@oxc-project/types@0.132.0': + resolution: {integrity: sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ==} + '@parcel/watcher-android-arm64@2.4.1': resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} engines: {node: '>= 10.0.0'} @@ -951,30 +1141,35 @@ packages: engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + libc: [glibc] '@parcel/watcher-linux-arm64-glibc@2.4.1': resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] '@parcel/watcher-linux-arm64-musl@2.4.1': resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + libc: [musl] '@parcel/watcher-linux-x64-glibc@2.4.1': resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + libc: [glibc] '@parcel/watcher-linux-x64-musl@2.4.1': resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + libc: [musl] '@parcel/watcher-wasm@2.4.1': resolution: {integrity: sha512-/ZR0RxqxU/xxDGzbzosMjh4W6NdYFMqq2nvo2b8SLi7rsl/4jkL8S5stIikorNkdR50oVDvqb/3JT05WM+CRRA==} @@ -1014,6 +1209,16 @@ packages: '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + '@publint/pack@0.1.4': + resolution: {integrity: sha512-HDVTWq3H0uTXiU0eeSQntcVUTPP3GamzeXI41+x7uU9J65JgWQh3qWZHblR1i0npXfFtF+mxBiU2nJH8znxWnQ==} + engines: {node: '>=18'} + + '@quansync/fs@1.0.0': + resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==} + + '@rolldown/debug@1.0.3': + resolution: {integrity: sha512-mQ4V7ODNxW4o09we34Dw9I29ByK/m7yTHT8Nqt+wwWCcxPsiGoixUsFDiruxGQwrjk6XYgwi/Cf0Prg0x5ABsA==} + '@rollup/plugin-alias@5.1.0': resolution: {integrity: sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==} engines: {node: '>=14.0.0'} @@ -1127,46 +1332,55 @@ packages: resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.18.0': resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.18.0': resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.18.0': resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.18.0': resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-s390x-gnu@4.18.0': resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.18.0': resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-musl@4.18.0': resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-win32-arm64-msvc@4.18.0': resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} @@ -1289,6 +1503,9 @@ packages: resolution: {integrity: sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==} engines: {node: ^16.14.0 || >=18.0.0} + '@tybys/wasm-util@0.10.2': + resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} + '@types/body-parser@1.19.5': resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} @@ -1645,11 +1862,30 @@ packages: peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + '@valibot/to-json-schema@1.7.0': + resolution: {integrity: sha512-Y3pPVibbIOHzohrlxSINvO7w/bvXkoYS3BQHoImV9ynE+bXKf171bdMucPurV2zp7gdmt0L1HCcNAsbo7cFRQw==} + peerDependencies: + valibot: ^1.4.0 + '@vercel/nft@0.26.5': resolution: {integrity: sha512-NHxohEqad6Ra/r4lGknO52uc/GrWILXAMs1BB4401GTqww0fw1bAqzpG1XHuDO+dprg4GvsD9ZLLSsdo78p9hQ==} engines: {node: '>=16'} hasBin: true + '@vitejs/devtools-kit@0.3.1': + resolution: {integrity: sha512-0zwX4IpFMbNWsiDMj/WnRZFdJU+zY8gU/uBf2jr5UktDicmwL+6yVZRF5zgOA6XZ3yj4+TLSdWQfVlaMerBWaw==} + peerDependencies: + vite: '*' + + '@vitejs/devtools-rolldown@0.3.1': + resolution: {integrity: sha512-yrlrezS7xaR/nxRRTqsJevUPeZOWIQKX3wwK38zGsEEEMn8oyls8DBmYVagtXNPqUk9XW9bt5sVIsrR2n2F8+w==} + + '@vitejs/devtools@0.3.1': + resolution: {integrity: sha512-uRgicpM7gzCJ4dHzs717uLvzvw2sdnVzxp7bui/cyezWyILjc0DYlPlFEwS2kIFLOnnQNGeryRbs/M96C7Ts8Q==} + hasBin: true + peerDependencies: + vite: '*' + '@vitejs/plugin-vue-jsx@3.1.0': resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -1695,6 +1931,7 @@ packages: '@vscode/webview-ui-toolkit@1.4.0': resolution: {integrity: sha512-modXVHQkZLsxgmd5yoP3ptRC/G8NBDD+ob+ngPiWNQdlrH6H1xR/qgOBD85bfU3BhOB5sZzFWBwwhp9/SfoHww==} + deprecated: This package has been deprecated, https://github.com/microsoft/vscode-webview-ui-toolkit/issues/561 peerDependencies: react: '>=16.9.0' @@ -1726,15 +1963,27 @@ packages: '@vue/compiler-core@3.4.27': resolution: {integrity: sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==} + '@vue/compiler-core@3.5.35': + resolution: {integrity: sha512-BUmHaR1J+O+CKZ9uJucdVTEr1LHsdyvv7vG3eNRhK3CczEHeMd/LtsHAuD7PbrxvI2envCY2v7HI1vC1aBRzKw==} + '@vue/compiler-dom@3.4.27': resolution: {integrity: sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==} + '@vue/compiler-dom@3.5.35': + resolution: {integrity: sha512-k+bprkXxuqhVajgTx5mUHuir7TwQzUKOWR40ng1ncAqQRPnrLngGGgqVEEhOnTMlc8btHYVKmrP8s5Qyg0hvYA==} + '@vue/compiler-sfc@3.4.27': resolution: {integrity: sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==} + '@vue/compiler-sfc@3.5.35': + resolution: {integrity: sha512-G5VPMcXTSywXBgtFOZOnHKBxKSrwXUcvY1iaF5/hRcy7t0J6CH/d8ha9F4nzi00Fax1eLV0QHM7v4mQu68jydw==} + '@vue/compiler-ssr@3.4.27': resolution: {integrity: sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==} + '@vue/compiler-ssr@3.5.35': + resolution: {integrity: sha512-rGhAeXgdM7/ffTJGXT69rCCdTmjDewnFuUZfBQQHTdcEBeWdT5HCGY60y2ytLJr9/Dsu7IntUi5z/w0h6Rjnzw==} + '@vue/devtools-api@6.6.1': resolution: {integrity: sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==} @@ -1749,6 +1998,11 @@ packages: '@vue/devtools-core@7.2.1': resolution: {integrity: sha512-OyWl455UnJIVgZ6lo5WQ79WbDMoXtSRwyNKp9WzCZ0HhuQywIk4qv59KtLRe75uVmtGBde4hXNaSyRm+x9bY6g==} + '@vue/devtools-core@8.1.2': + resolution: {integrity: sha512-ZGGyaSBP4/+bN2Nd9ZHNYAVDRIzMw1rv2RyXWtyZlo6mQal+IDmTvKY4V+DjAEBhaXt30mHmsgYp1yXJ/2tIWg==} + peerDependencies: + vue: ^3.0.0 + '@vue/devtools-kit@7.1.3': resolution: {integrity: sha512-NFskFSJMVCBXTkByuk2llzI3KD3Blcm7WqiRorWjD6nClHPgkH5BobDH08rfulqq5ocRt5xV+3qOT1Q9FXJrwQ==} peerDependencies: @@ -1759,9 +2013,15 @@ packages: peerDependencies: vue: ^3.0.0 + '@vue/devtools-kit@8.1.2': + resolution: {integrity: sha512-f75/upc+GCyjXErpgPGz4582ujS0L/adAltGy+tqXMGUJpgAcfGr6CxnnhpZY8BHuMYt6KpbF8uaFrrQG66rGQ==} + '@vue/devtools-shared@7.2.1': resolution: {integrity: sha512-PCJF4UknJmOal68+X9XHyVeQ+idv0LFujkTOIW30+GaMJqwFVN9LkQKX4gLqn61KkGMdJTzQ1bt7EJag3TI6AA==} + '@vue/devtools-shared@8.1.2': + resolution: {integrity: sha512-X9RyVFYAdkBe4IUf5v48TxBF/6QPmF8CmWrDAjXzfUHrgQ/HGfTC1A6TqgXqZ03ye66l3AD51BAGD69IvKM9sw==} + '@vue/devtools-ui@7.2.1': resolution: {integrity: sha512-3XwW6uTn5noXKN4T4T9rpFlQR0B050ebwUO+Y8HsWHv8XZ451xk+A89y00s1Zx7P2SRkDqeJgbi4kYSHnXkxbg==} peerDependencies: @@ -1781,20 +2041,37 @@ packages: '@vue/reactivity@3.4.27': resolution: {integrity: sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA==} + '@vue/reactivity@3.5.35': + resolution: {integrity: sha512-tVc+SsHConvh/Lz64qq1pP3rYArBmK42xonovEcxY74SQtvctZodG/zhq54P5dr38cVuw25d27cPNRdlMidpGQ==} + '@vue/runtime-core@3.4.27': resolution: {integrity: sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA==} + '@vue/runtime-core@3.5.35': + resolution: {integrity: sha512-A/xFNX9loIcWDygeQuNCfKuh0CoYBzxhqEMNah5TSFg9Z53DrFYEN2qi5CU9necjM1OWYegYREUTHmXTmhfXtg==} + '@vue/runtime-dom@3.4.27': resolution: {integrity: sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q==} + '@vue/runtime-dom@3.5.35': + resolution: {integrity: sha512-odrJ1C391dbGnyDRh8U+rnP7J2amIEzfmRk5vXy7xi3aZhEXofTvpi0T4HJb6jlNqQZTNPR5MPHSB3RHNkIORA==} + '@vue/server-renderer@3.4.27': resolution: {integrity: sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA==} peerDependencies: vue: 3.4.27 + '@vue/server-renderer@3.5.35': + resolution: {integrity: sha512-NkebSOYdB97wi8OQcO3HqzZSlymJi/aWsN/7h74OSVhRTm6qGs3Jp3e0rCXynmWwSlKeRrnlIug+ilYoHBmQDA==} + peerDependencies: + vue: 3.5.35 + '@vue/shared@3.4.27': resolution: {integrity: sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==} + '@vue/shared@3.5.35': + resolution: {integrity: sha512-zSbjL7gRXwks2ZQLRGCajBtBXEOXW9Ddhn/HvSdrGkE2dqGnumzW8XtusRrxrE9LvqtiqDXQ+A60Hp6mvdYxfA==} + '@vueuse/components@10.9.0': resolution: {integrity: sha512-BHQpA0yIi3y7zKa1gYD0FUzLLkcRTqVhP8smnvsCK6GFpd94Nziq1XVPD7YpFeho0k5BzbBiNZF7V/DpkJ967A==} @@ -1885,6 +2162,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + engines: {node: '>=0.4.0'} + hasBin: true + agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -1932,6 +2214,10 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} + ansis@4.3.1: + resolution: {integrity: sha512-BJ8/l4R5LRE7hW9WdSuGYrLSHi2ynxeFpDFbH0K/CgNeY/tyhk+vO6TYxXC5r5CpUhNVX310xzPsN/H9lCdfOA==} + engines: {node: '>=14'} + any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} @@ -2039,6 +2325,12 @@ packages: birpc@0.2.17: resolution: {integrity: sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==} + birpc@2.9.0: + resolution: {integrity: sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==} + + birpc@4.0.0: + resolution: {integrity: sha512-LShSxJP0KTmd101b6DRyGBj57LZxSDYWKitQNW/mi8GRMvZb078Uf9+pveax1DrVL89vm7mWe+TovdI/UDOuPw==} + bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -2103,10 +2395,22 @@ packages: c12@1.10.0: resolution: {integrity: sha512-0SsG7UDhoRWcuSvKWHaXmu5uNjDCDN3nkQLRL4Q42IlFy+ze58FcCoI3uPwINXinkz7ZinbhEgyzYFw9u9ZV8g==} + c12@3.3.4: + resolution: {integrity: sha512-cM0ApFQSBXuourJejzwv/AuPRvAxordTyParRVcHjjtXirtkzM0uK2L9TTn9s0cXZbG7E55jCivRQzoxYmRAlA==} + peerDependencies: + magicast: '*' + peerDependenciesMeta: + magicast: + optional: true + cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} + cac@7.0.0: + resolution: {integrity: sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==} + engines: {node: '>=20.19.0'} + cacache@18.0.3: resolution: {integrity: sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==} engines: {node: ^16.14.0 || >=18.0.0} @@ -2179,6 +2483,10 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chokidar@5.0.0: + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} + engines: {node: '>= 20.19.0'} + chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -2290,10 +2598,20 @@ packages: confbox@0.1.7: resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + confbox@0.2.4: + resolution: {integrity: sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==} + consola@3.2.3: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} + consola@3.4.2: + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} + engines: {node: ^14.18.0 || >=16.10.0} + console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} @@ -2311,6 +2629,9 @@ packages: cookie-es@1.1.0: resolution: {integrity: sha512-L2rLOcK0wzWSfSDA33YR+PUHDG10a8px7rUHKWbGLP4YfbsMed2KFUw5fczvDPbT98DDe3LEzviswl810apTEw==} + cookie-es@1.2.3: + resolution: {integrity: sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==} + cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} @@ -2368,6 +2689,9 @@ packages: uWebSockets.js: optional: true + crossws@0.3.5: + resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} + css-declaration-sorter@7.2.0: resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} engines: {node: ^14 || ^16 || >=18} @@ -2419,6 +2743,9 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + d3-array@3.2.4: resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} engines: {node: '>=12'} @@ -2621,6 +2948,10 @@ packages: resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} engines: {node: '>=18'} + default-browser@5.5.0: + resolution: {integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==} + engines: {node: '>=18'} + define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -2636,6 +2967,9 @@ packages: defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + defu@6.1.7: + resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==} + delaunator@5.0.1: resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==} @@ -2661,6 +2995,9 @@ packages: destr@2.0.3: resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + destr@2.0.5: + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -2677,6 +3014,14 @@ packages: devalue@4.3.3: resolution: {integrity: sha512-UH8EL6H2ifcY8TbD2QsxwCC/pr5xSwPvv85LrLXVihmHVC3T3YqTCIwnR5ak0yO1KYqlxrPVOA/JVZJYPy2ATg==} + devframe@0.5.2: + resolution: {integrity: sha512-8dIdlOmuY+6NcCsaI2qS0uRLTZ3SvpejY8OYVbXvdWSQV7pvjdWaYNZhVfOfCSd/a5dSCgSge4vW4DCyJSf7+g==} + peerDependencies: + '@modelcontextprotocol/sdk': ^1.0.0 + peerDependenciesMeta: + '@modelcontextprotocol/sdk': + optional: true + didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} @@ -2688,6 +3033,10 @@ packages: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} + diff@9.0.0: + resolution: {integrity: sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==} + engines: {node: '>=0.3.1'} + dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -2720,6 +3069,10 @@ packages: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} + dotenv@17.4.2: + resolution: {integrity: sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==} + engines: {node: '>=12'} + duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} @@ -2773,6 +3126,10 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -2786,6 +3143,12 @@ packages: error-stack-parser-es@0.1.4: resolution: {integrity: sha512-l0uy0kAoo6toCgVOYaAayqtPa2a1L15efxUMEnQebKwLQX2X0OpS6wMMQdc4juJXmxd9i40DuaUHq+mjIya9TQ==} + error-stack-parser-es@1.0.5: + resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} + + errx@0.1.0: + resolution: {integrity: sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q==} + es-define-property@1.0.0: resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} @@ -2884,6 +3247,7 @@ packages: eslint-plugin-markdown@5.0.0: resolution: {integrity: sha512-kY2u9yDhzvfZ0kmRTsvgm3mTnvZgTSGIIPeHg3yesSx4R5CTCnITUjCPhzCD1MUhNcqHU5Tr6lzx+02EclVPbw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + deprecated: Please use @eslint/markdown instead peerDependencies: eslint: '>=8' @@ -3070,6 +3434,9 @@ packages: resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} engines: {node: '>= 0.10.0'} + exsolve@1.0.8: + resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} + externality@1.0.2: resolution: {integrity: sha512-LyExtJWKxtgVzmgtEHyQtLFpw1KFhQphF9nTG8TpAIVkiI/xQ3FJh75tRFLYl4hkn7BNIIdLJInuDAavX35pMw==} @@ -3089,12 +3456,25 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-npm-meta@2.0.0: + resolution: {integrity: sha512-R8P+1F29waIKTtT6knAP2BzK9We2o0flgN1BaP/eaIMa1vtAb7olV9/N2cvNEKi5D+cS++2S6pUhluG4IhCmqg==} + hasBin: true + fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} @@ -3217,6 +3597,9 @@ packages: get-port-please@3.1.2: resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} + get-port-please@3.2.0: + resolution: {integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==} + get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -3232,6 +3615,10 @@ packages: resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} hasBin: true + giget@3.2.0: + resolution: {integrity: sha512-GvHTWcykIR/fP8cj8dMpuMMkvaeJfPvYnhq0oW+chSeIr+ldX21ifU2Ms6KBoyKZQZmVaUAAhQ2EZ68KJF8a7A==} + hasBin: true + git-config-path@2.0.0: resolution: {integrity: sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA==} engines: {node: '>=4'} @@ -3315,6 +3702,19 @@ packages: h3@1.11.1: resolution: {integrity: sha512-AbaH6IDnZN6nmbnJOH72y3c5Wwh9P97soSVdGSBbcDACRdkC0FEWf25pzx4f/NuOCK6quHmW18yF2Wx+G4Zi1A==} + h3@1.15.11: + resolution: {integrity: sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==} + + h3@2.0.1-rc.22: + resolution: {integrity: sha512-Esv0DMIuPkCTSWCA0vO73vcTqwzH1wjSrAO1TXNu/K3up1sZHa9EKMapbmxCDYBeymC3fVTk4qxp7ogQWQ+KgA==} + engines: {node: '>=20.11.1'} + hasBin: true + peerDependencies: + crossws: ^0.4.1 + peerDependenciesMeta: + crossws: + optional: true + has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -3355,6 +3755,9 @@ packages: hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + hookable@6.1.1: + resolution: {integrity: sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==} + hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -3442,9 +3845,16 @@ packages: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + image-meta@0.2.0: resolution: {integrity: sha512-ZBGjl0ZMEMeOC3Ns0wUF/5UdUmr3qQhBSCniT0LxOgGGIRHiNFOkMtIHB7EOznRU47V2AxPgiVP+s+0/UCU0Hg==} + image-meta@0.2.2: + resolution: {integrity: sha512-3MOLanc3sb3LNGWQl1RlQlNWURE5g32aUphrDyFeCsxBTk08iE3VNe4CwsUZ0Qs1X+EfX0+r29Sxdpza4B+yRA==} + import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -3545,6 +3955,10 @@ packages: is-hexadecimal@1.0.4: resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + is-in-ssh@1.0.0: + resolution: {integrity: sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==} + engines: {node: '>=20'} + is-inside-container@1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} engines: {node: '>=14.16'} @@ -3612,6 +4026,10 @@ packages: resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} engines: {node: '>=16'} + isexe@4.0.0: + resolution: {integrity: sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==} + engines: {node: '>=20'} + jackspeak@2.3.6: resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} @@ -3620,6 +4038,10 @@ packages: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true + jiti@2.7.0: + resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} + hasBin: true + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -3723,6 +4145,9 @@ packages: knitwork@1.1.0: resolution: {integrity: sha512-oHnmiBUVHz1V+URE77PNot2lv3QiYU2zQf1JjOVkMt3YDKGbu8NAFr+c4mcNOhdsGrB/VpVbRwPwhiXrPhxQbw==} + knitwork@1.3.0: + resolution: {integrity: sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw==} + koa-compose@4.1.0: resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==} @@ -3745,6 +4170,9 @@ packages: kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + launch-editor@2.14.1: + resolution: {integrity: sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==} + launch-editor@2.6.1: resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} @@ -3786,6 +4214,10 @@ packages: resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} engines: {node: '>=14'} + local-pkg@1.2.1: + resolution: {integrity: sha512-++gUqRDEvcnN6Zhqrr+y/CkVEHhlrR96vZn3nZZPYzMcBUyBtTKzB9NadClFIsIVSsu+3i9tfk/erqy9kAmt7Q==} + engines: {node: '>=14'} + locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -3854,6 +4286,10 @@ packages: resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} engines: {node: 14 || >=16.14} + lru-cache@11.5.1: + resolution: {integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -3868,9 +4304,15 @@ packages: magic-string@0.30.10: resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + magicast@0.3.4: resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} + magicast@0.5.3: + resolution: {integrity: sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==} + make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} @@ -4040,6 +4482,9 @@ packages: mlly@1.7.0: resolution: {integrity: sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==} + mlly@1.8.2: + resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} + mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -4048,6 +4493,10 @@ packages: resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} engines: {node: '>=10'} + mrmime@2.0.1: + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} + engines: {node: '>=10'} + ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -4066,6 +4515,11 @@ packages: mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + nanoid@3.3.12: + resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -4113,6 +4567,9 @@ packages: node-fetch-native@1.6.4: resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} + node-fetch-native@1.6.7: + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} + node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} @@ -4135,6 +4592,9 @@ packages: engines: {node: ^16.14.0 || >=18.0.0} hasBin: true + node-mock-http@1.0.4: + resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==} + node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} @@ -4163,6 +4623,9 @@ packages: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} + nostics@0.2.0: + resolution: {integrity: sha512-/WQpI46UMbqvy1okYb+V+9wW3J8/m6GJ33wm691n/tyi6YtJiZ6ssJjENAU7y4evfYrrgYN9HllKDzPvffil1w==} + npm-bundled@3.0.1: resolution: {integrity: sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -4243,12 +4706,21 @@ packages: object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + obug@2.1.1: + resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} + ofetch@1.3.4: resolution: {integrity: sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw==} + ofetch@1.5.1: + resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} + ohash@1.1.3: resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} + ohash@2.0.11: + resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} + on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -4271,6 +4743,10 @@ packages: resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} engines: {node: '>=18'} + open@11.0.0: + resolution: {integrity: sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==} + engines: {node: '>=20'} + open@7.4.2: resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} engines: {node: '>=8'} @@ -4287,6 +4763,10 @@ packages: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} + oxc-parser@0.132.0: + resolution: {integrity: sha512-+0LAPHaqtfQlvWdpaAa09SmOaZZgP8C552xosEkGJ4+ruEwP1Vgx+sqBgcBCNfR6KDCmagGOZTde8wmAvcI/Hg==} + engines: {node: ^20.19.0 || >=22.12.0} + p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -4303,6 +4783,10 @@ packages: resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} engines: {node: '>=18'} + p-limit@7.3.0: + resolution: {integrity: sha512-7cIXg/Z0M5WZRblrsOla88S4wAK+zOQQWeBYfV3qJuJXMr+LnbYjaadrFaS0JILfEDPVqHyKnZ1Z/1d6J9VVUw==} + engines: {node: '>=20'} + p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -4323,6 +4807,9 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + package-manager-detector@1.6.0: + resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} + pacote@18.0.6: resolution: {integrity: sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==} engines: {node: ^16.14.0 || >=18.0.0} @@ -4413,6 +4900,9 @@ packages: pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} @@ -4422,9 +4912,15 @@ packages: perfect-debounce@1.0.0: resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + perfect-debounce@2.1.0: + resolution: {integrity: sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==} + picocolors@1.0.1: resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -4433,6 +4929,10 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + engines: {node: '>=12'} + pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -4444,6 +4944,12 @@ packages: pkg-types@1.1.1: resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + + pkg-types@2.3.1: + resolution: {integrity: sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg==} + pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} @@ -4665,6 +5171,14 @@ packages: resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.15: + resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} + engines: {node: ^10 || ^12 || >=14} + + powershell-utils@0.1.0: + resolution: {integrity: sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==} + engines: {node: '>=20'} + prebuild-install@7.1.2: resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} engines: {node: '>=10'} @@ -4720,6 +5234,11 @@ packages: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} + publint@0.3.21: + resolution: {integrity: sha512-OqejcnMV6E9zel2oCrUOJEiiFkGiAAni0A6ibfQNh1k9Gu5z4F+Yso8lllam7AzmV6Do0vp7u3UpZNRBwuXaHQ==} + engines: {node: '>=18'} + hasBin: true + pump@3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} @@ -4735,6 +5254,12 @@ packages: resolution: {integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==} engines: {node: '>=0.6'} + quansync@0.2.11: + resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} + + quansync@1.0.0: + resolution: {integrity: sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -4758,6 +5283,9 @@ packages: rc9@2.1.2: resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} + rc9@3.0.1: + resolution: {integrity: sha512-gMDyleLWVE+i6Sgtc0QbbY6pEKqYs97NGi6isHQPqYlLemPoO8dxQ3uGi0f4NiP98c+jMW6cG1Kx9dDwfvqARQ==} + rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true @@ -4802,6 +5330,10 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + readdirp@5.0.0: + resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} + engines: {node: '>= 20.19.0'} + redis-errors@1.2.0: resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} engines: {node: '>=4'} @@ -4906,6 +5438,9 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rou3@0.8.1: + resolution: {integrity: sha512-ePa+XGk00/3HuCqrEnK3LxJW7I0SdNg6EFzKUJG73hMAdDcOUC/i/aSz7LSDwLrGr33kal/rqOGydzwl6U7zBA==} + run-applescript@7.0.0: resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} engines: {node: '>=18'} @@ -4916,6 +5451,10 @@ packages: rw@1.3.3: resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -4948,6 +5487,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.8.1: + resolution: {integrity: sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==} + engines: {node: '>=10'} + hasBin: true + send@0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} @@ -4986,6 +5530,10 @@ packages: shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + shell-quote@1.8.4: + resolution: {integrity: sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==} + engines: {node: '>= 0.4'} + shiki@1.3.0: resolution: {integrity: sha512-9aNdQy/etMXctnPzsje1h1XIGm9YfRcSksKOGqZWXA/qP9G18/8fpz5Bjpma8bOgz3tqIpjERAd6/lLjFyzoww==} @@ -5020,6 +5568,10 @@ packages: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} + sirv@3.0.2: + resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} + engines: {node: '>=18'} + sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -5069,6 +5621,10 @@ packages: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -5105,6 +5661,11 @@ packages: sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + srvx@0.11.16: + resolution: {integrity: sha512-bp07zRuycfTY43IjAvvTFnmnJi8ikW0VFiHwOhhYcVW/L4xQ1XY4PAd4Nuum1rsA17C39zL7x+CDhrn5AL32Rw==} + engines: {node: '>=20.16.0'} + hasBin: true + ssri@10.0.6: resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -5185,6 +5746,9 @@ packages: strip-literal@2.1.0: resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} + structured-clone-es@2.0.0: + resolution: {integrity: sha512-5UuAHmBLXYPCl22xWJrFuGmIhBKQzxISPVz6E7nmTmTcAOpUzlbjKJsRrCE4vADmMQ0dzeCnlWn9XufnAGf76Q==} + stylehacks@6.1.1: resolution: {integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==} engines: {node: ^14 || ^16 || >=18.0} @@ -5288,6 +5852,14 @@ packages: tinybench@2.8.0: resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} + tinyexec@1.2.4: + resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==} + engines: {node: '>=18'} + + tinyglobby@0.2.17: + resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} + engines: {node: '>=12.0.0'} + tinypool@0.8.4: resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} engines: {node: '>=14.0.0'} @@ -5399,18 +5971,30 @@ packages: ufo@1.5.3: resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + ufo@1.6.4: + resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} + ultrahtml@1.5.3: resolution: {integrity: sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==} + unconfig-core@7.5.0: + resolution: {integrity: sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==} + unconfig@0.3.13: resolution: {integrity: sha512-N9Ph5NC4+sqtcOjPfHrRcHekBCadCXWTBzp2VYYbySOHW0PfD9XLCeXshTXjkPYwLrBr9AtSeU0CZmkYECJhng==} + unconfig@7.5.0: + resolution: {integrity: sha512-oi8Qy2JV4D3UQ0PsopR28CzdQ3S/5A1zwsUwp/rosSbfhJ5z7b90bIyTwi/F7hCLD4SGcZVjDzd4XoUQcEanvA==} + uncrypto@0.1.3: resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} unctx@2.3.1: resolution: {integrity: sha512-PhKke8ZYauiqh3FEMVNm7ljvzQiph0Mt3GBRve03IJm7ukfaON2OBK795tLwhbyfzknuRRkW0+Ze+CQUmzOZ+A==} + unctx@2.5.0: + resolution: {integrity: sha512-p+Rz9x0R7X+CYDkT+Xg8/GhpcShTlU8n+cf9OtOEf7zEQsNcCZO1dPKNRDqvUTaq+P32PMMkxWHwfrxkqfqAYg==} + underscore@1.13.6: resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==} @@ -5465,6 +6049,10 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} + unplugin-utils@0.3.1: + resolution: {integrity: sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==} + engines: {node: '>=20.19.0'} + unplugin-vue-router@0.7.0: resolution: {integrity: sha512-ddRreGq0t5vlSB7OMy4e4cfU1w2AwBQCwmvW3oP/0IHQiokzbx4hd3TpwBu3eIAFVuhX2cwNQwp1U32UybTVCw==} peerDependencies: @@ -5477,6 +6065,14 @@ packages: resolution: {integrity: sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==} engines: {node: '>=14.0.0'} + unplugin@2.3.11: + resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==} + engines: {node: '>=18.12.0'} + + unplugin@3.0.0: + resolution: {integrity: sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==} + engines: {node: ^20.19.0 || >=22.12.0} + unstorage@1.10.2: resolution: {integrity: sha512-cULBcwDqrS8UhlIysUJs2Dk0Mmt8h7B0E6mtR+relW9nZvsf/u4SkAYyNliPiPW7XtFNb5u3IUMkxGxFTTRTgQ==} peerDependencies: @@ -5521,15 +6117,81 @@ packages: ioredis: optional: true - untun@0.1.3: - resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} - hasBin: true - - untyped@1.4.2: - resolution: {integrity: sha512-nC5q0DnPEPVURPhfPQLahhSTnemVtPzdx7ofiRxXpOB2SYnb3MfdU3DVGyJdS8Lx+tBWeAePO8BfU/3EgksM7Q==} - hasBin: true - - unwasm@0.3.9: + unstorage@1.17.5: + resolution: {integrity: sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==} + peerDependencies: + '@azure/app-configuration': ^1.8.0 + '@azure/cosmos': ^4.2.0 + '@azure/data-tables': ^13.3.0 + '@azure/identity': ^4.6.0 + '@azure/keyvault-secrets': ^4.9.0 + '@azure/storage-blob': ^12.26.0 + '@capacitor/preferences': ^6 || ^7 || ^8 + '@deno/kv': '>=0.9.0' + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 + '@planetscale/database': ^1.19.0 + '@upstash/redis': ^1.34.3 + '@vercel/blob': '>=0.27.1' + '@vercel/functions': ^2.2.12 || ^3.0.0 + '@vercel/kv': ^1 || ^2 || ^3 + aws4fetch: ^1.0.20 + db0: '>=0.2.1' + idb-keyval: ^6.2.1 + ioredis: ^5.4.2 + uploadthing: ^7.4.4 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@deno/kv': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/blob': + optional: true + '@vercel/functions': + optional: true + '@vercel/kv': + optional: true + aws4fetch: + optional: true + db0: + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + uploadthing: + optional: true + + untun@0.1.3: + resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} + hasBin: true + + untyped@1.4.2: + resolution: {integrity: sha512-nC5q0DnPEPVURPhfPQLahhSTnemVtPzdx7ofiRxXpOB2SYnb3MfdU3DVGyJdS8Lx+tBWeAePO8BfU/3EgksM7Q==} + hasBin: true + + untyped@2.0.0: + resolution: {integrity: sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==} + hasBin: true + + unwasm@0.3.9: resolution: {integrity: sha512-LDxTx/2DkFURUd+BU1vUsF/moj0JsoTvl+2tcg2AUOiEzVturhGGx17/IMgGvKUYdZwr33EJHtChCJuhu9Ouvg==} update-browserslist-db@1.0.15: @@ -5561,6 +6223,14 @@ packages: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true + valibot@1.4.1: + resolution: {integrity: sha512-klCmFTz2jeDluy9RwX+F884TCiogtdBJ/YaxSx1EOBYXa3NXNWj8kR1jjN8rzluwojJVWWaHJ4r1U5LfICnM3g==} + peerDependencies: + typescript: '>=5' + peerDependenciesMeta: + typescript: + optional: true + validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -5623,11 +6293,27 @@ packages: '@nuxt/kit': optional: true + vite-plugin-inspect@12.0.0-beta.3: + resolution: {integrity: sha512-1uMZPSO7Y09KGRhBIhdxdobot14VxKrxm/yYxs5h5FqI4UplbP8PADazLveAUiQSvNwyl9taGPMBfgktX5g8Gg==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': '*' + vite: ^8.0.0-0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + vite-plugin-vue-inspector@5.1.0: resolution: {integrity: sha512-yIw9dvBz9nQW7DPfbJtUVW6JTnt67hqTPRnTwT2CZWMqDvISyQHRjgKl32nlMh1DRH+92533Sv6t59pWMLUCWA==} peerDependencies: vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 + vite-plugin-vue-tracer@1.4.0: + resolution: {integrity: sha512-0tQCjCqZWVSK6UeRW9S4ABbf47lKQ68zvrT2FNvZmiL+alDydCVyH/T3Jlfbdc3T3C2Iuyyl5aVsMbF8IQIoxA==} + peerDependencies: + vite: ^6.0.0 || ^7.0.0 || ^8.0.0-0 + vue: ^3.5.0 + vite@5.2.11: resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==} engines: {node: ^18.0.0 || >=20.0.0} @@ -5757,6 +6443,11 @@ packages: peerDependencies: vue: ^3.2.0 + vue-virtual-scroller@3.0.4: + resolution: {integrity: sha512-3qh3c9VUVysuXynaa4fVZ3ncx3VgD7EPRiQcj+jUVZl5u/TTkD3c27XvSEu3JGJfsJt/vVTVziZ3djiiHtW4cQ==} + peerDependencies: + vue: ^3.3.0 + vue@3.4.27: resolution: {integrity: sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA==} peerDependencies: @@ -5765,6 +6456,14 @@ packages: typescript: optional: true + vue@3.5.35: + resolution: {integrity: sha512-cx89fnr+0kVGHiNFG6y6s0bdjypJRFNZn6x3WPstNdQR1bi1mbB7h4v5IBGTsPJU3nK1+0Iqj3Zf+hZWMieR4Q==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -5775,6 +6474,9 @@ packages: webpack-virtual-modules@0.6.1: resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} @@ -5793,6 +6495,11 @@ packages: engines: {node: ^16.13.0 || >=18.0.0} hasBin: true + which@7.0.0: + resolution: {integrity: sha512-RancgH2dmbLdHl6LRhEqvklWMgl/Hdnun0Y90KhBOLkMefg8Qa7/Zel8Sm+8HEcP6DEjzsWzpkuBQEZok58isA==} + engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0} + hasBin: true + why-is-node-running@2.2.2: resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} engines: {node: '>=8'} @@ -5840,6 +6547,22 @@ packages: utf-8-validate: optional: true + ws@8.21.0: + resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + wsl-utils@0.3.1: + resolution: {integrity: sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==} + engines: {node: '>=20'} + xml-name-validator@4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} @@ -5901,6 +6624,10 @@ packages: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} + yocto-queue@1.2.2: + resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} + engines: {node: '>=12.20'} + zhead@2.2.4: resolution: {integrity: sha512-8F0OI5dpWIA5IGG5NHUg9staDwz/ZPxZtvGVf01j7vHqSyZ0raHY+78atOVxRqb73AotX22uV1pXt3gYSstGag==} @@ -5920,7 +6647,7 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@antfu/eslint-config@2.19.1(@vue/compiler-sfc@3.4.27)(eslint@9.3.0)(typescript@5.4.5)(vitest@1.6.0(@types/node@20.12.12)(terser@5.31.0))': + '@antfu/eslint-config@2.19.1(@vue/compiler-sfc@3.5.35)(eslint@9.3.0)(typescript@5.4.5)(vitest@1.6.0(@types/node@20.12.12)(terser@5.31.0))': dependencies: '@antfu/install-pkg': 0.3.3 '@clack/prompts': 0.7.0 @@ -5948,7 +6675,7 @@ snapshots: eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@7.11.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.4.5))(eslint@9.3.0)(typescript@5.4.5))(eslint@9.3.0)(typescript@5.4.5)(vitest@1.6.0(@types/node@20.12.12)(terser@5.31.0)) eslint-plugin-vue: 9.26.0(eslint@9.3.0) eslint-plugin-yml: 1.14.0(eslint@9.3.0) - eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.4.27)(eslint@9.3.0) + eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.5.35)(eslint@9.3.0) globals: 15.3.0 jsonc-eslint-parser: 2.4.0 local-pkg: 0.5.0 @@ -6179,8 +6906,12 @@ snapshots: '@babel/helper-string-parser@7.24.1': {} + '@babel/helper-string-parser@7.29.7': {} + '@babel/helper-validator-identifier@7.24.5': {} + '@babel/helper-validator-identifier@7.29.7': {} + '@babel/helper-validator-option@7.23.5': {} '@babel/helpers@7.24.5': @@ -6202,6 +6933,10 @@ snapshots: dependencies: '@babel/types': 7.24.5 + '@babel/parser@7.29.7': + dependencies: + '@babel/types': 7.29.7 + '@babel/plugin-proposal-decorators@7.24.1(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 @@ -6291,6 +7026,11 @@ snapshots: '@babel/helper-validator-identifier': 7.24.5 to-fast-properties: 2.0.0 + '@babel/types@7.29.7': + dependencies: + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@clack/core@0.3.4': dependencies: picocolors: 1.0.1 @@ -6314,6 +7054,15 @@ snapshots: dependencies: postcss-selector-parser: 6.0.16 + '@devframes/hub@0.5.2(devframe@0.5.2(typescript@5.4.5))': + dependencies: + birpc: 4.0.0 + devframe: 0.5.2(typescript@5.4.5) + nostics: 0.2.0 + pathe: 2.0.3 + perfect-debounce: 2.1.0 + tinyexec: 1.2.4 + '@egoist/tailwindcss-icons@1.8.0(tailwindcss@3.4.3)': dependencies: '@iconify/utils': 2.1.23 @@ -6321,6 +7070,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@emnapi/core@1.10.0': + dependencies: + '@emnapi/wasi-threads': 1.2.1 + tslib: 2.6.2 + optional: true + + '@emnapi/runtime@1.10.0': + dependencies: + tslib: 2.6.2 + optional: true + + '@emnapi/wasi-threads@1.2.1': + dependencies: + tslib: 2.6.2 + optional: true + '@es-joy/jsdoccomment@0.43.0': dependencies: '@types/eslint': 8.56.10 @@ -6424,24 +7189,29 @@ snapshots: '@fastify/busboy@2.1.1': {} - '@floating-ui/core@1.6.2': + '@floating-ui/core@1.7.5': dependencies: - '@floating-ui/utils': 0.2.2 + '@floating-ui/utils': 0.2.11 '@floating-ui/dom@1.1.1': dependencies: - '@floating-ui/core': 1.6.2 + '@floating-ui/core': 1.7.5 - '@floating-ui/utils@0.2.2': {} + '@floating-ui/dom@1.7.6': + dependencies: + '@floating-ui/core': 1.7.5 + '@floating-ui/utils': 0.2.11 + + '@floating-ui/utils@0.2.11': {} '@headlessui/tailwindcss@0.2.0(tailwindcss@3.4.3)': dependencies: tailwindcss: 3.4.3 - '@headlessui/vue@1.7.22(vue@3.4.27(typescript@5.4.5))': + '@headlessui/vue@1.7.22(vue@3.5.35(typescript@5.4.5))': dependencies: - '@tanstack/vue-virtual': 3.5.0(vue@3.4.27(typescript@5.4.5)) - vue: 3.4.27(typescript@5.4.5) + '@tanstack/vue-virtual': 3.5.0(vue@3.5.35(typescript@5.4.5)) + vue: 3.5.35(typescript@5.4.5) '@humanwhocodes/config-array@0.13.0': dependencies: @@ -6479,10 +7249,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@iconify/vue@4.1.2(vue@3.4.27(typescript@5.4.5))': + '@iconify/vue@4.1.2(vue@3.5.35(typescript@5.4.5))': dependencies: '@iconify/types': 2.0.0 - vue: 3.4.27(typescript@5.4.5) + vue: 3.5.35(typescript@5.4.5) '@ioredis/commands@1.2.0': {} @@ -6505,6 +7275,11 @@ snapshots: '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.2.1': {} @@ -6516,6 +7291,8 @@ snapshots: '@jridgewell/sourcemap-codec@1.4.15': {} + '@jridgewell/sourcemap-codec@1.5.5': {} + '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 @@ -6580,6 +7357,13 @@ snapshots: dependencies: exenv-es6: 1.1.1 + '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + dependencies: + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@tybys/wasm-util': 0.10.2 + optional: true + '@netlify/functions@2.7.0(@opentelemetry/api@1.8.0)': dependencies: '@netlify/serverless-functions-api': 1.18.1(@opentelemetry/api@1.8.0) @@ -6678,27 +7462,24 @@ snapshots: '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@1.3.1(nuxt@3.11.2(@azure/identity@4.2.0)(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)))(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))': + '@nuxt/devtools-kit@1.3.3(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.5.35(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)))(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))': dependencies: '@nuxt/kit': 3.11.2(rollup@4.18.0) '@nuxt/schema': 3.11.2(rollup@4.18.0) execa: 7.2.0 - nuxt: 3.11.2(@azure/identity@4.2.0)(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)) + nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.5.35(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)) vite: 5.2.11(@types/node@20.12.12)(terser@5.31.0) transitivePeerDependencies: - rollup - supports-color - '@nuxt/devtools-kit@1.3.3(nuxt@3.11.2(@azure/identity@4.2.0)(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)))(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))': + '@nuxt/devtools-kit@4.0.0-alpha.7(magicast@0.5.3)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))': dependencies: - '@nuxt/kit': 3.11.2(rollup@4.18.0) - '@nuxt/schema': 3.11.2(rollup@4.18.0) - execa: 7.2.0 - nuxt: 3.11.2(@azure/identity@4.2.0)(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)) + '@nuxt/kit': 4.4.7(magicast@0.5.3) + tinyexec: 1.2.4 vite: 5.2.11(@types/node@20.12.12)(terser@5.31.0) transitivePeerDependencies: - - rollup - - supports-color + - magicast '@nuxt/devtools-wizard@1.3.3': dependencies: @@ -6713,13 +7494,13 @@ snapshots: rc9: 2.1.2 semver: 7.6.2 - '@nuxt/devtools@1.3.3(@unocss/reset@0.60.2)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)))(fuse.js@6.6.2)(nuxt@3.11.2(@azure/identity@4.2.0)(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)))(rollup@4.18.0)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))': + '@nuxt/devtools@1.3.3(@unocss/reset@0.60.2)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.5.35(typescript@5.4.5)))(fuse.js@6.6.2)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.5.35(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)))(rollup@4.18.0)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))': dependencies: '@antfu/utils': 0.7.8 - '@nuxt/devtools-kit': 1.3.3(nuxt@3.11.2(@azure/identity@4.2.0)(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)))(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)) + '@nuxt/devtools-kit': 1.3.3(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.5.35(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)))(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)) '@nuxt/devtools-wizard': 1.3.3 '@nuxt/kit': 3.11.2(rollup@4.18.0) - '@vue/devtools-applet': 7.1.3(@unocss/reset@0.60.2)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)))(fuse.js@6.6.2)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5)) + '@vue/devtools-applet': 7.1.3(@unocss/reset@0.60.2)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.5.35(typescript@5.4.5)))(fuse.js@6.6.2)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-core': 7.1.3(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.4.5)) birpc: 0.2.17 @@ -6737,7 +7518,7 @@ snapshots: launch-editor: 2.6.1 local-pkg: 0.5.0 magicast: 0.3.4 - nuxt: 3.11.2(@azure/identity@4.2.0)(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)) + nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.5.35(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)) nypm: 0.3.8 ohash: 1.1.3 pacote: 18.0.6 @@ -6778,6 +7559,67 @@ snapshots: - utf-8-validate - vue + '@nuxt/devtools@4.0.0-alpha.7(ioredis@5.4.1)(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.5.35(typescript@5.4.5))': + dependencies: + '@nuxt/devtools-kit': 4.0.0-alpha.7(magicast@0.5.3)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)) + '@nuxt/kit': 4.4.7(magicast@0.5.3) + '@vitejs/devtools': 0.3.1(ioredis@5.4.1)(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)) + '@vitejs/devtools-kit': 0.3.1(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)) + '@vue/devtools-core': 8.1.2(vue@3.5.35(typescript@5.4.5)) + '@vue/devtools-kit': 8.1.2 + birpc: 4.0.0 + consola: 3.4.2 + destr: 2.0.5 + error-stack-parser-es: 1.0.5 + fast-npm-meta: 2.0.0 + get-port-please: 3.2.0 + hookable: 6.1.1 + image-meta: 0.2.2 + launch-editor: 2.14.1 + local-pkg: 1.2.1 + magicast: 0.5.3 + ohash: 2.0.11 + pathe: 2.0.3 + perfect-debounce: 2.1.0 + pkg-types: 2.3.1 + semver: 7.8.1 + sirv: 3.0.2 + structured-clone-es: 2.0.0 + tinyexec: 1.2.4 + tinyglobby: 0.2.17 + unstorage: 1.17.5(ioredis@5.4.1) + vite: 5.2.11(@types/node@20.12.12)(terser@5.31.0) + vite-plugin-inspect: 12.0.0-beta.3(@nuxt/kit@4.4.7(magicast@0.5.3))(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)) + vite-plugin-vue-tracer: 1.4.0(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.5.35(typescript@5.4.5)) + which: 7.0.0 + ws: 8.21.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@modelcontextprotocol/sdk' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - crossws + - db0 + - idb-keyval + - ioredis + - typescript + - uploadthing + - utf-8-validate + - vue + '@nuxt/kit@3.11.2(rollup@4.18.0)': dependencies: '@nuxt/schema': 3.11.2(rollup@4.18.0) @@ -6802,6 +7644,31 @@ snapshots: - rollup - supports-color + '@nuxt/kit@4.4.7(magicast@0.5.3)': + dependencies: + c12: 3.3.4(magicast@0.5.3) + consola: 3.4.2 + defu: 6.1.7 + destr: 2.0.5 + errx: 0.1.0 + exsolve: 1.0.8 + ignore: 7.0.5 + jiti: 2.7.0 + klona: 2.0.6 + mlly: 1.8.2 + ohash: 2.0.11 + pathe: 2.0.3 + pkg-types: 2.3.1 + rc9: 3.0.1 + scule: 1.3.0 + semver: 7.8.1 + tinyglobby: 0.2.17 + ufo: 1.6.4 + unctx: 2.5.0 + untyped: 2.0.0 + transitivePeerDependencies: + - magicast + '@nuxt/schema@3.11.2(rollup@4.18.0)': dependencies: '@nuxt/ui-templates': 1.3.3 @@ -6844,11 +7711,11 @@ snapshots: '@nuxt/ui-templates@1.3.3': {} - '@nuxt/ui@2.16.0(focus-trap@7.5.4)(nuxt@3.11.2(@azure/identity@4.2.0)(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)))(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))': + '@nuxt/ui@2.16.0(focus-trap@7.5.4)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.5.35(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)))(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.5.35(typescript@5.4.5))': dependencies: '@egoist/tailwindcss-icons': 1.8.0(tailwindcss@3.4.3) '@headlessui/tailwindcss': 0.2.0(tailwindcss@3.4.3) - '@headlessui/vue': 1.7.22(vue@3.4.27(typescript@5.4.5)) + '@headlessui/vue': 1.7.22(vue@3.5.35(typescript@5.4.5)) '@iconify-json/heroicons': 1.1.21 '@nuxt/kit': 3.11.2(rollup@4.18.0) '@nuxtjs/color-mode': 3.4.1(rollup@4.18.0) @@ -6858,12 +7725,12 @@ snapshots: '@tailwindcss/container-queries': 0.1.1(tailwindcss@3.4.3) '@tailwindcss/forms': 0.5.7(tailwindcss@3.4.3) '@tailwindcss/typography': 0.5.13(tailwindcss@3.4.3) - '@vueuse/core': 10.9.0(vue@3.4.27(typescript@5.4.5)) - '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(fuse.js@6.6.2)(vue@3.4.27(typescript@5.4.5)) - '@vueuse/math': 10.9.0(vue@3.4.27(typescript@5.4.5)) + '@vueuse/core': 10.9.0(vue@3.5.35(typescript@5.4.5)) + '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(fuse.js@6.6.2)(vue@3.5.35(typescript@5.4.5)) + '@vueuse/math': 10.9.0(vue@3.5.35(typescript@5.4.5)) defu: 6.1.4 fuse.js: 6.6.2 - nuxt-icon: 0.6.10(nuxt@3.11.2(@azure/identity@4.2.0)(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)))(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5)) + nuxt-icon: 0.6.10(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.5.35(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)))(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.5.35(typescript@5.4.5)) ohash: 1.1.3 pathe: 1.1.2 scule: 1.3.0 @@ -7047,6 +7914,72 @@ snapshots: '@opentelemetry/semantic-conventions@1.24.1': {} + '@oxc-parser/binding-android-arm-eabi@0.132.0': + optional: true + + '@oxc-parser/binding-android-arm64@0.132.0': + optional: true + + '@oxc-parser/binding-darwin-arm64@0.132.0': + optional: true + + '@oxc-parser/binding-darwin-x64@0.132.0': + optional: true + + '@oxc-parser/binding-freebsd-x64@0.132.0': + optional: true + + '@oxc-parser/binding-linux-arm-gnueabihf@0.132.0': + optional: true + + '@oxc-parser/binding-linux-arm-musleabihf@0.132.0': + optional: true + + '@oxc-parser/binding-linux-arm64-gnu@0.132.0': + optional: true + + '@oxc-parser/binding-linux-arm64-musl@0.132.0': + optional: true + + '@oxc-parser/binding-linux-ppc64-gnu@0.132.0': + optional: true + + '@oxc-parser/binding-linux-riscv64-gnu@0.132.0': + optional: true + + '@oxc-parser/binding-linux-riscv64-musl@0.132.0': + optional: true + + '@oxc-parser/binding-linux-s390x-gnu@0.132.0': + optional: true + + '@oxc-parser/binding-linux-x64-gnu@0.132.0': + optional: true + + '@oxc-parser/binding-linux-x64-musl@0.132.0': + optional: true + + '@oxc-parser/binding-openharmony-arm64@0.132.0': + optional: true + + '@oxc-parser/binding-wasm32-wasi@0.132.0': + dependencies: + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + optional: true + + '@oxc-parser/binding-win32-arm64-msvc@0.132.0': + optional: true + + '@oxc-parser/binding-win32-ia32-msvc@0.132.0': + optional: true + + '@oxc-parser/binding-win32-x64-msvc@0.132.0': + optional: true + + '@oxc-project/types@0.132.0': {} + '@parcel/watcher-android-arm64@2.4.1': optional: true @@ -7115,6 +8048,14 @@ snapshots: '@popperjs/core@2.11.8': {} + '@publint/pack@0.1.4': {} + + '@quansync/fs@1.0.0': + dependencies: + quansync: 1.0.0 + + '@rolldown/debug@1.0.3': {} + '@rollup/plugin-alias@5.1.0(rollup@4.18.0)': dependencies: slash: 4.0.0 @@ -7351,10 +8292,10 @@ snapshots: '@tanstack/virtual-core@3.5.0': {} - '@tanstack/vue-virtual@3.5.0(vue@3.4.27(typescript@5.4.5))': + '@tanstack/vue-virtual@3.5.0(vue@3.5.35(typescript@5.4.5))': dependencies: '@tanstack/virtual-core': 3.5.0 - vue: 3.4.27(typescript@5.4.5) + vue: 3.5.35(typescript@5.4.5) '@trysound/sax@0.2.0': {} @@ -7365,6 +8306,11 @@ snapshots: '@tufjs/canonical-json': 2.0.0 minimatch: 9.0.4 + '@tybys/wasm-util@0.10.2': + dependencies: + tslib: 2.6.2 + optional: true + '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 @@ -7731,9 +8677,9 @@ snapshots: cac: 6.7.14 chokidar: 3.6.0 colorette: 2.0.20 - consola: 3.2.3 + consola: 3.4.2 fast-glob: 3.3.2 - magic-string: 0.30.10 + magic-string: 0.30.21 pathe: 1.1.2 perfect-debounce: 1.0.0 transitivePeerDependencies: @@ -7764,7 +8710,7 @@ snapshots: '@unocss/rule-utils': 0.60.2 css-tree: 2.3.1 fast-glob: 3.3.2 - magic-string: 0.30.10 + magic-string: 0.30.21 postcss: 8.4.38 '@unocss/preset-attributify@0.60.2': @@ -7775,7 +8721,7 @@ snapshots: dependencies: '@iconify/utils': 2.1.23 '@unocss/core': 0.60.2 - ofetch: 1.3.4 + ofetch: 1.5.1 transitivePeerDependencies: - supports-color @@ -7804,7 +8750,7 @@ snapshots: '@unocss/preset-web-fonts@0.60.2': dependencies: '@unocss/core': 0.60.2 - ofetch: 1.3.4 + ofetch: 1.5.1 '@unocss/preset-wind@0.60.2': dependencies: @@ -7817,7 +8763,7 @@ snapshots: '@unocss/rule-utils@0.60.2': dependencies: '@unocss/core': 0.60.2 - magic-string: 0.30.10 + magic-string: 0.30.21 '@unocss/scope@0.60.2': {} @@ -7859,11 +8805,15 @@ snapshots: '@unocss/transformer-directives': 0.60.2 chokidar: 3.6.0 fast-glob: 3.3.2 - magic-string: 0.30.10 + magic-string: 0.30.21 vite: 5.2.11(@types/node@20.12.12)(terser@5.31.0) transitivePeerDependencies: - rollup + '@valibot/to-json-schema@1.7.0(valibot@1.4.1(typescript@5.4.5))': + dependencies: + valibot: 1.4.1(typescript@5.4.5) + '@vercel/nft@0.26.5(encoding@0.1.13)': dependencies: '@mapbox/node-pre-gyp': 1.0.11(encoding@0.1.13) @@ -7882,6 +8832,119 @@ snapshots: - encoding - supports-color + '@vitejs/devtools-kit@0.3.1(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))': + dependencies: + '@devframes/hub': 0.5.2(devframe@0.5.2(typescript@5.4.5)) + birpc: 4.0.0 + devframe: 0.5.2(typescript@5.4.5) + mlly: 1.8.2 + nostics: 0.2.0 + pathe: 2.0.3 + perfect-debounce: 2.1.0 + tinyexec: 1.2.4 + vite: 5.2.11(@types/node@20.12.12)(terser@5.31.0) + transitivePeerDependencies: + - '@modelcontextprotocol/sdk' + - bufferutil + - crossws + - typescript + - utf-8-validate + + '@vitejs/devtools-rolldown@0.3.1(ioredis@5.4.1)(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.5.35(typescript@5.4.5))': + dependencies: + '@floating-ui/dom': 1.7.6 + '@rolldown/debug': 1.0.3 + '@vitejs/devtools-kit': 0.3.1(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)) + birpc: 4.0.0 + cac: 7.0.0 + d3-shape: 3.2.0 + devframe: 0.5.2(typescript@5.4.5) + diff: 9.0.0 + get-port-please: 3.2.0 + h3: 2.0.1-rc.22 + mlly: 1.8.2 + mrmime: 2.0.1 + nostics: 0.2.0 + p-limit: 7.3.0 + pathe: 2.0.3 + publint: 0.3.21 + tinyglobby: 0.2.17 + unconfig: 7.5.0 + unstorage: 1.17.5(ioredis@5.4.1) + vue-virtual-scroller: 3.0.4(vue@3.5.35(typescript@5.4.5)) + ws: 8.21.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@modelcontextprotocol/sdk' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - crossws + - db0 + - idb-keyval + - ioredis + - typescript + - uploadthing + - utf-8-validate + - vite + - vue + + '@vitejs/devtools@0.3.1(ioredis@5.4.1)(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))': + dependencies: + '@devframes/hub': 0.5.2(devframe@0.5.2(typescript@5.4.5)) + '@vitejs/devtools-kit': 0.3.1(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)) + '@vitejs/devtools-rolldown': 0.3.1(ioredis@5.4.1)(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.5.35(typescript@5.4.5)) + birpc: 4.0.0 + cac: 7.0.0 + devframe: 0.5.2(typescript@5.4.5) + h3: 2.0.1-rc.22 + mlly: 1.8.2 + nostics: 0.2.0 + obug: 2.1.1 + pathe: 2.0.3 + perfect-debounce: 2.1.0 + tinyexec: 1.2.4 + vite: 5.2.11(@types/node@20.12.12)(terser@5.31.0) + vue: 3.5.35(typescript@5.4.5) + ws: 8.21.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@modelcontextprotocol/sdk' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - crossws + - db0 + - idb-keyval + - ioredis + - typescript + - uploadthing + - utf-8-validate + '@vitejs/plugin-vue-jsx@3.1.0(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))': dependencies: '@babel/core': 7.24.5 @@ -8027,11 +9090,24 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.0 + '@vue/compiler-core@3.5.35': + dependencies: + '@babel/parser': 7.29.7 + '@vue/shared': 3.5.35 + entities: 7.0.1 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + '@vue/compiler-dom@3.4.27': dependencies: '@vue/compiler-core': 3.4.27 '@vue/shared': 3.4.27 + '@vue/compiler-dom@3.5.35': + dependencies: + '@vue/compiler-core': 3.5.35 + '@vue/shared': 3.5.35 + '@vue/compiler-sfc@3.4.27': dependencies: '@babel/parser': 7.24.5 @@ -8044,19 +9120,36 @@ snapshots: postcss: 8.4.38 source-map-js: 1.2.0 + '@vue/compiler-sfc@3.5.35': + dependencies: + '@babel/parser': 7.29.7 + '@vue/compiler-core': 3.5.35 + '@vue/compiler-dom': 3.5.35 + '@vue/compiler-ssr': 3.5.35 + '@vue/shared': 3.5.35 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.15 + source-map-js: 1.2.1 + '@vue/compiler-ssr@3.4.27': dependencies: '@vue/compiler-dom': 3.4.27 '@vue/shared': 3.4.27 + '@vue/compiler-ssr@3.5.35': + dependencies: + '@vue/compiler-dom': 3.5.35 + '@vue/shared': 3.5.35 + '@vue/devtools-api@6.6.1': {} - '@vue/devtools-applet@7.1.3(@unocss/reset@0.60.2)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)))(fuse.js@6.6.2)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))': + '@vue/devtools-applet@7.1.3(@unocss/reset@0.60.2)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.5.35(typescript@5.4.5)))(fuse.js@6.6.2)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))': dependencies: '@vue/devtools-core': 7.2.1(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-kit': 7.2.1(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-shared': 7.2.1 - '@vue/devtools-ui': 7.2.1(@unocss/reset@0.60.2)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)))(fuse.js@6.6.2)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vue@3.4.27(typescript@5.4.5)) + '@vue/devtools-ui': 7.2.1(@unocss/reset@0.60.2)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.5.35(typescript@5.4.5)))(fuse.js@6.6.2)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vue@3.4.27(typescript@5.4.5)) lodash-es: 4.17.21 perfect-debounce: 1.0.0 shiki: 1.3.0 @@ -8105,6 +9198,12 @@ snapshots: - vite - vue + '@vue/devtools-core@8.1.2(vue@3.5.35(typescript@5.4.5))': + dependencies: + '@vue/devtools-kit': 8.1.2 + '@vue/devtools-shared': 8.1.2 + vue: 3.5.35(typescript@5.4.5) + '@vue/devtools-kit@7.1.3(vue@3.4.27(typescript@5.4.5))': dependencies: '@vue/devtools-shared': 7.2.1 @@ -8123,11 +9222,20 @@ snapshots: speakingurl: 14.0.1 vue: 3.4.27(typescript@5.4.5) + '@vue/devtools-kit@8.1.2': + dependencies: + '@vue/devtools-shared': 8.1.2 + birpc: 2.9.0 + hookable: 5.5.3 + perfect-debounce: 2.1.0 + '@vue/devtools-shared@7.2.1': dependencies: rfdc: 1.3.1 - '@vue/devtools-ui@7.2.1(@unocss/reset@0.60.2)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)))(fuse.js@6.6.2)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vue@3.4.27(typescript@5.4.5))': + '@vue/devtools-shared@8.1.2': {} + + '@vue/devtools-ui@7.2.1(@unocss/reset@0.60.2)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.5.35(typescript@5.4.5)))(fuse.js@6.6.2)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vue@3.4.27(typescript@5.4.5))': dependencies: '@unocss/reset': 0.60.2 '@vue/devtools-shared': 7.2.1 @@ -8135,7 +9243,7 @@ snapshots: '@vueuse/core': 10.9.0(vue@3.4.27(typescript@5.4.5)) '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(fuse.js@6.6.2)(vue@3.4.27(typescript@5.4.5)) colord: 2.9.3 - floating-vue: 5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)) + floating-vue: 5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.5.35(typescript@5.4.5)) focus-trap: 7.5.4 unocss: 0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)) vue: 3.4.27(typescript@5.4.5) @@ -8169,25 +9277,49 @@ snapshots: dependencies: '@vue/shared': 3.4.27 + '@vue/reactivity@3.5.35': + dependencies: + '@vue/shared': 3.5.35 + '@vue/runtime-core@3.4.27': dependencies: '@vue/reactivity': 3.4.27 '@vue/shared': 3.4.27 + '@vue/runtime-core@3.5.35': + dependencies: + '@vue/reactivity': 3.5.35 + '@vue/shared': 3.5.35 + '@vue/runtime-dom@3.4.27': dependencies: '@vue/runtime-core': 3.4.27 '@vue/shared': 3.4.27 csstype: 3.1.3 + '@vue/runtime-dom@3.5.35': + dependencies: + '@vue/reactivity': 3.5.35 + '@vue/runtime-core': 3.5.35 + '@vue/shared': 3.5.35 + csstype: 3.2.3 + '@vue/server-renderer@3.4.27(vue@3.4.27(typescript@5.4.5))': dependencies: '@vue/compiler-ssr': 3.4.27 '@vue/shared': 3.4.27 vue: 3.4.27(typescript@5.4.5) + '@vue/server-renderer@3.5.35(vue@3.5.35(typescript@5.4.5))': + dependencies: + '@vue/compiler-ssr': 3.5.35 + '@vue/shared': 3.5.35 + vue: 3.5.35(typescript@5.4.5) + '@vue/shared@3.4.27': {} + '@vue/shared@3.5.35': {} + '@vueuse/components@10.9.0(vue@3.4.27(typescript@5.4.5))': dependencies: '@vueuse/core': 10.9.0(vue@3.4.27(typescript@5.4.5)) @@ -8207,6 +9339,16 @@ snapshots: - '@vue/composition-api' - vue + '@vueuse/core@10.9.0(vue@3.5.35(typescript@5.4.5))': + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.9.0 + '@vueuse/shared': 10.9.0(vue@3.5.35(typescript@5.4.5)) + vue-demi: 0.14.7(vue@3.5.35(typescript@5.4.5)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + '@vueuse/integrations@10.9.0(focus-trap@7.5.4)(fuse.js@6.6.2)(vue@3.4.27(typescript@5.4.5))': dependencies: '@vueuse/core': 10.9.0(vue@3.4.27(typescript@5.4.5)) @@ -8219,10 +9361,22 @@ snapshots: - '@vue/composition-api' - vue - '@vueuse/math@10.9.0(vue@3.4.27(typescript@5.4.5))': + '@vueuse/integrations@10.9.0(focus-trap@7.5.4)(fuse.js@6.6.2)(vue@3.5.35(typescript@5.4.5))': dependencies: - '@vueuse/shared': 10.9.0(vue@3.4.27(typescript@5.4.5)) - vue-demi: 0.14.7(vue@3.4.27(typescript@5.4.5)) + '@vueuse/core': 10.9.0(vue@3.5.35(typescript@5.4.5)) + '@vueuse/shared': 10.9.0(vue@3.5.35(typescript@5.4.5)) + vue-demi: 0.14.7(vue@3.5.35(typescript@5.4.5)) + optionalDependencies: + focus-trap: 7.5.4 + fuse.js: 6.6.2 + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@vueuse/math@10.9.0(vue@3.5.35(typescript@5.4.5))': + dependencies: + '@vueuse/shared': 10.9.0(vue@3.5.35(typescript@5.4.5)) + vue-demi: 0.14.7(vue@3.5.35(typescript@5.4.5)) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -8236,6 +9390,13 @@ snapshots: - '@vue/composition-api' - vue + '@vueuse/shared@10.9.0(vue@3.5.35(typescript@5.4.5))': + dependencies: + vue-demi: 0.14.7(vue@3.5.35(typescript@5.4.5)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + abbrev@1.1.1: {} abbrev@2.0.0: {} @@ -8261,6 +9422,8 @@ snapshots: acorn@8.11.3: {} + acorn@8.16.0: {} + agent-base@6.0.2: dependencies: debug: 4.3.4 @@ -8307,6 +9470,8 @@ snapshots: ansi-styles@6.2.1: {} + ansis@4.3.1: {} + any-promise@1.3.0: {} anymatch@3.1.3: @@ -8419,6 +9584,10 @@ snapshots: birpc@0.2.17: {} + birpc@2.9.0: {} + + birpc@4.0.0: {} + bl@4.1.0: dependencies: buffer: 5.7.1 @@ -8518,8 +9687,27 @@ snapshots: pkg-types: 1.1.1 rc9: 2.1.2 + c12@3.3.4(magicast@0.5.3): + dependencies: + chokidar: 5.0.0 + confbox: 0.2.4 + defu: 6.1.7 + dotenv: 17.4.2 + exsolve: 1.0.8 + giget: 3.2.0 + jiti: 2.7.0 + ohash: 2.0.11 + pathe: 2.0.3 + perfect-debounce: 2.1.0 + pkg-types: 2.3.1 + rc9: 3.0.1 + optionalDependencies: + magicast: 0.5.3 + cac@6.7.14: {} + cac@7.0.0: {} + cacache@18.0.3: dependencies: '@npmcli/fs': 3.1.1 @@ -8629,6 +9817,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chokidar@5.0.0: + dependencies: + readdirp: 5.0.0 + chownr@1.1.4: optional: true @@ -8716,8 +9908,14 @@ snapshots: confbox@0.1.7: {} + confbox@0.1.8: {} + + confbox@0.2.4: {} + consola@3.2.3: {} + consola@3.4.2: {} + console-control-strings@1.1.0: {} content-disposition@0.5.4: @@ -8730,6 +9928,8 @@ snapshots: cookie-es@1.1.0: {} + cookie-es@1.2.3: {} + cookie-signature@1.0.6: {} cookie@0.4.2: {} @@ -8773,6 +9973,10 @@ snapshots: crossws@0.2.4: {} + crossws@0.3.5: + dependencies: + uncrypto: 0.1.3 + css-declaration-sorter@7.2.0(postcss@8.4.38): dependencies: postcss: 8.4.38 @@ -8849,6 +10053,8 @@ snapshots: csstype@3.1.3: {} + csstype@3.2.3: {} + d3-array@3.2.4: dependencies: internmap: 2.0.3 @@ -9053,6 +10259,11 @@ snapshots: bundle-name: 4.1.0 default-browser-id: 5.0.0 + default-browser@5.5.0: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + define-data-property@1.1.4: dependencies: es-define-property: 1.0.0 @@ -9065,6 +10276,8 @@ snapshots: defu@6.1.4: {} + defu@6.1.7: {} + delaunator@5.0.1: dependencies: robust-predicates: 3.0.2 @@ -9081,6 +10294,8 @@ snapshots: destr@2.0.3: {} + destr@2.0.5: {} + destroy@1.2.0: {} detect-libc@1.0.3: {} @@ -9089,12 +10304,31 @@ snapshots: devalue@4.3.3: {} + devframe@0.5.2(typescript@5.4.5): + dependencies: + '@valibot/to-json-schema': 1.7.0(valibot@1.4.1(typescript@5.4.5)) + birpc: 4.0.0 + cac: 7.0.0 + h3: 2.0.1-rc.22 + mrmime: 2.0.1 + nostics: 0.2.0 + pathe: 2.0.3 + valibot: 1.4.1(typescript@5.4.5) + ws: 8.21.0 + transitivePeerDependencies: + - bufferutil + - crossws + - typescript + - utf-8-validate + didyoumean@1.2.2: {} diff-sequences@29.6.3: {} diff@5.2.0: {} + diff@9.0.0: {} + dir-glob@3.0.1: dependencies: path-type: 4.0.0 @@ -9129,6 +10363,8 @@ snapshots: dotenv@16.4.5: {} + dotenv@17.4.2: {} + duplexer@0.1.2: {} eastasianwidth@0.2.0: {} @@ -9197,6 +10433,8 @@ snapshots: entities@4.5.0: {} + entities@7.0.1: {} + env-paths@2.2.1: {} err-code@2.0.3: {} @@ -9207,6 +10445,10 @@ snapshots: error-stack-parser-es@0.1.4: {} + error-stack-parser-es@1.0.5: {} + + errx@0.1.0: {} + es-define-property@1.0.0: dependencies: get-intrinsic: 1.2.4 @@ -9461,9 +10703,9 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.4.27)(eslint@9.3.0): + eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.5.35)(eslint@9.3.0): dependencies: - '@vue/compiler-sfc': 3.4.27 + '@vue/compiler-sfc': 3.5.35 eslint: 9.3.0 eslint-rule-composer@0.3.0: {} @@ -9638,6 +10880,8 @@ snapshots: transitivePeerDependencies: - supports-color + exsolve@1.0.8: {} + externality@1.0.2: dependencies: enhanced-resolve: 5.16.1 @@ -9661,6 +10905,8 @@ snapshots: fast-levenshtein@2.0.6: {} + fast-npm-meta@2.0.0: {} + fastq@1.17.1: dependencies: reusify: 1.0.4 @@ -9669,6 +10915,10 @@ snapshots: dependencies: pend: 1.2.0 + fdir@6.5.0(picomatch@4.0.4): + optionalDependencies: + picomatch: 4.0.4 + file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 @@ -9714,11 +10964,11 @@ snapshots: flatted@3.3.1: {} - floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)): + floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.5.35(typescript@5.4.5)): dependencies: '@floating-ui/dom': 1.1.1 - vue: 3.4.27(typescript@5.4.5) - vue-resize: 2.0.0-alpha.1(vue@3.4.27(typescript@5.4.5)) + vue: 3.5.35(typescript@5.4.5) + vue-resize: 2.0.0-alpha.1(vue@3.5.35(typescript@5.4.5)) optionalDependencies: '@nuxt/kit': 3.11.2(rollup@4.18.0) @@ -9804,6 +11054,8 @@ snapshots: get-port-please@3.1.2: {} + get-port-please@3.2.0: {} + get-stream@6.0.1: {} get-stream@8.0.1: {} @@ -9823,6 +11075,8 @@ snapshots: pathe: 1.1.2 tar: 6.2.1 + giget@3.2.0: {} + git-config-path@2.0.0: {} git-up@7.0.0: @@ -9933,6 +11187,23 @@ snapshots: transitivePeerDependencies: - uWebSockets.js + h3@1.15.11: + dependencies: + cookie-es: 1.2.3 + crossws: 0.3.5 + defu: 6.1.7 + destr: 2.0.5 + iron-webcrypto: 1.2.1 + node-mock-http: 1.0.4 + radix3: 1.1.2 + ufo: 1.6.4 + uncrypto: 0.1.3 + + h3@2.0.1-rc.22: + dependencies: + rou3: 0.8.1 + srvx: 0.11.16 + has-flag@3.0.0: {} has-flag@4.0.0: {} @@ -9961,6 +11232,8 @@ snapshots: hookable@5.5.3: {} + hookable@6.1.1: {} + hosted-git-info@2.8.9: {} hosted-git-info@4.1.0: @@ -10057,8 +11330,12 @@ snapshots: ignore@5.3.1: {} + ignore@7.0.5: {} + image-meta@0.2.0: {} + image-meta@0.2.2: {} + import-fresh@3.3.0: dependencies: parent-module: 1.0.1 @@ -10147,6 +11424,8 @@ snapshots: is-hexadecimal@1.0.4: {} + is-in-ssh@1.0.0: {} + is-inside-container@1.0.0: dependencies: is-docker: 3.0.0 @@ -10198,6 +11477,8 @@ snapshots: isexe@3.1.1: {} + isexe@4.0.0: {} + jackspeak@2.3.6: dependencies: '@isaacs/cliui': 8.0.2 @@ -10206,6 +11487,8 @@ snapshots: jiti@1.21.0: {} + jiti@2.7.0: {} + js-tokens@4.0.0: {} js-tokens@9.0.0: {} @@ -10308,6 +11591,8 @@ snapshots: knitwork@1.1.0: {} + knitwork@1.3.0: {} + koa-compose@4.1.0: {} koa-convert@2.0.0: @@ -10360,6 +11645,11 @@ snapshots: kolorist@1.8.0: {} + launch-editor@2.14.1: + dependencies: + picocolors: 1.1.1 + shell-quote: 1.8.4 + launch-editor@2.6.1: dependencies: picocolors: 1.0.1 @@ -10416,6 +11706,12 @@ snapshots: mlly: 1.7.0 pkg-types: 1.1.1 + local-pkg@1.2.1: + dependencies: + mlly: 1.8.2 + pkg-types: 2.3.1 + quansync: 0.2.11 + locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -10468,6 +11764,8 @@ snapshots: lru-cache@10.2.2: {} + lru-cache@11.5.1: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -10484,12 +11782,22 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + magicast@0.3.4: dependencies: '@babel/parser': 7.24.5 '@babel/types': 7.24.5 source-map-js: 1.2.0 + magicast@0.5.3: + dependencies: + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 + source-map-js: 1.2.1 + make-dir@3.1.0: dependencies: semver: 6.3.1 @@ -10658,10 +11966,19 @@ snapshots: pkg-types: 1.1.1 ufo: 1.5.3 + mlly@1.8.2: + dependencies: + acorn: 8.16.0 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.6.4 + mri@1.2.0: {} mrmime@2.0.0: {} + mrmime@2.0.1: {} + ms@2.0.0: {} ms@2.1.2: {} @@ -10678,6 +11995,8 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 + nanoid@3.3.12: {} + nanoid@3.3.7: {} nanoid@5.0.7: {} @@ -10691,7 +12010,7 @@ snapshots: negotiator@0.6.3: {} - nitropack@2.9.6(@azure/identity@4.2.0)(@opentelemetry/api@1.8.0)(encoding@0.1.13): + nitropack@2.9.6(@opentelemetry/api@1.8.0)(encoding@0.1.13): dependencies: '@cloudflare/kv-asset-handler': 0.3.2 '@netlify/functions': 2.7.0(@opentelemetry/api@1.8.0) @@ -10758,7 +12077,7 @@ snapshots: unctx: 2.3.1 unenv: 1.9.0 unimport: 3.7.1(rollup@4.18.0) - unstorage: 1.10.2(@azure/identity@4.2.0)(ioredis@5.4.1) + unstorage: 1.10.2(ioredis@5.4.1) unwasm: 0.3.9 transitivePeerDependencies: - '@azure/app-configuration' @@ -10793,6 +12112,8 @@ snapshots: node-fetch-native@1.6.4: {} + node-fetch-native@1.6.7: {} + node-fetch@2.7.0(encoding@0.1.13): dependencies: whatwg-url: 5.0.0 @@ -10818,6 +12139,8 @@ snapshots: transitivePeerDependencies: - supports-color + node-mock-http@1.0.4: {} + node-releases@2.0.14: {} nopt@5.0.0: @@ -10846,6 +12169,12 @@ snapshots: normalize-range@0.1.2: {} + nostics@0.2.0: + dependencies: + magic-string: 0.30.21 + oxc-parser: 0.132.0 + unplugin: 3.0.0 + npm-bundled@3.0.1: dependencies: npm-normalize-package-bin: 3.0.1 @@ -10910,11 +12239,11 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - nuxt-icon@0.6.10(nuxt@3.11.2(@azure/identity@4.2.0)(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)))(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5)): + nuxt-icon@0.6.10(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.5.35(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)))(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.5.35(typescript@5.4.5)): dependencies: '@iconify/collections': 1.0.423 - '@iconify/vue': 4.1.2(vue@3.4.27(typescript@5.4.5)) - '@nuxt/devtools-kit': 1.3.1(nuxt@3.11.2(@azure/identity@4.2.0)(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)))(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)) + '@iconify/vue': 4.1.2(vue@3.5.35(typescript@5.4.5)) + '@nuxt/devtools-kit': 1.3.3(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.5.35(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)))(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)) '@nuxt/kit': 3.11.2(rollup@4.18.0) transitivePeerDependencies: - nuxt @@ -10923,10 +12252,10 @@ snapshots: - vite - vue - nuxt@3.11.2(@azure/identity@4.2.0)(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)): + nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.5.35(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)): dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.3.3(@unocss/reset@0.60.2)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)))(fuse.js@6.6.2)(nuxt@3.11.2(@azure/identity@4.2.0)(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.4.27(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)))(rollup@4.18.0)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5)) + '@nuxt/devtools': 1.3.3(@unocss/reset@0.60.2)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.5.35(typescript@5.4.5)))(fuse.js@6.6.2)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.12)(@unocss/reset@0.60.2)(encoding@0.1.13)(eslint@9.3.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.18.0))(vue@3.5.35(typescript@5.4.5)))(fuse.js@6.6.2)(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)))(rollup@4.18.0)(unocss@0.60.2(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5)) '@nuxt/kit': 3.11.2(rollup@4.18.0) '@nuxt/schema': 3.11.2(rollup@4.18.0) '@nuxt/telemetry': 2.5.4(rollup@4.18.0) @@ -10955,7 +12284,7 @@ snapshots: knitwork: 1.1.0 magic-string: 0.30.10 mlly: 1.7.0 - nitropack: 2.9.6(@azure/identity@4.2.0)(@opentelemetry/api@1.8.0)(encoding@0.1.13) + nitropack: 2.9.6(@opentelemetry/api@1.8.0)(encoding@0.1.13) nuxi: 3.11.1 nypm: 0.3.8 ofetch: 1.3.4 @@ -10975,12 +12304,12 @@ snapshots: unimport: 3.7.1(rollup@4.18.0) unplugin: 1.10.1 unplugin-vue-router: 0.7.0(rollup@4.18.0)(vue-router@4.3.2(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) - unstorage: 1.10.2(@azure/identity@4.2.0)(ioredis@5.4.1) + unstorage: 1.10.2(ioredis@5.4.1) untyped: 1.4.2 vue: 3.4.27(typescript@5.4.5) vue-bundle-renderer: 2.1.0 vue-devtools-stub: 0.1.0 - vue-router: 4.3.2(vue@3.4.27(typescript@5.4.5)) + vue-router: 4.3.2(vue@3.5.35(typescript@5.4.5)) optionalDependencies: '@parcel/watcher': 2.4.1 '@types/node': 20.12.12 @@ -11054,14 +12383,24 @@ snapshots: object-inspect@1.13.1: {} + obug@2.1.1: {} + ofetch@1.3.4: dependencies: destr: 2.0.3 node-fetch-native: 1.6.4 ufo: 1.5.3 + ofetch@1.5.1: + dependencies: + destr: 2.0.5 + node-fetch-native: 1.6.7 + ufo: 1.6.4 + ohash@1.1.3: {} + ohash@2.0.11: {} + on-finished@2.4.1: dependencies: ee-first: 1.1.1 @@ -11087,6 +12426,15 @@ snapshots: is-inside-container: 1.0.0 is-wsl: 3.1.0 + open@11.0.0: + dependencies: + default-browser: 5.5.0 + define-lazy-prop: 3.0.0 + is-in-ssh: 1.0.0 + is-inside-container: 1.0.0 + powershell-utils: 0.1.0 + wsl-utils: 0.3.1 + open@7.4.2: dependencies: is-docker: 2.2.1 @@ -11116,6 +12464,31 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 + oxc-parser@0.132.0: + dependencies: + '@oxc-project/types': 0.132.0 + optionalDependencies: + '@oxc-parser/binding-android-arm-eabi': 0.132.0 + '@oxc-parser/binding-android-arm64': 0.132.0 + '@oxc-parser/binding-darwin-arm64': 0.132.0 + '@oxc-parser/binding-darwin-x64': 0.132.0 + '@oxc-parser/binding-freebsd-x64': 0.132.0 + '@oxc-parser/binding-linux-arm-gnueabihf': 0.132.0 + '@oxc-parser/binding-linux-arm-musleabihf': 0.132.0 + '@oxc-parser/binding-linux-arm64-gnu': 0.132.0 + '@oxc-parser/binding-linux-arm64-musl': 0.132.0 + '@oxc-parser/binding-linux-ppc64-gnu': 0.132.0 + '@oxc-parser/binding-linux-riscv64-gnu': 0.132.0 + '@oxc-parser/binding-linux-riscv64-musl': 0.132.0 + '@oxc-parser/binding-linux-s390x-gnu': 0.132.0 + '@oxc-parser/binding-linux-x64-gnu': 0.132.0 + '@oxc-parser/binding-linux-x64-musl': 0.132.0 + '@oxc-parser/binding-openharmony-arm64': 0.132.0 + '@oxc-parser/binding-wasm32-wasi': 0.132.0 + '@oxc-parser/binding-win32-arm64-msvc': 0.132.0 + '@oxc-parser/binding-win32-ia32-msvc': 0.132.0 + '@oxc-parser/binding-win32-x64-msvc': 0.132.0 + p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -11132,6 +12505,10 @@ snapshots: dependencies: yocto-queue: 1.0.0 + p-limit@7.3.0: + dependencies: + yocto-queue: 1.2.2 + p-locate@4.1.0: dependencies: p-limit: 2.3.0 @@ -11150,6 +12527,8 @@ snapshots: p-try@2.2.0: {} + package-manager-detector@1.6.0: {} + pacote@18.0.6: dependencies: '@npmcli/git': 5.0.7 @@ -11252,18 +12631,26 @@ snapshots: pathe@1.1.2: {} + pathe@2.0.3: {} + pathval@1.1.1: {} pend@1.2.0: {} perfect-debounce@1.0.0: {} + perfect-debounce@2.1.0: {} + picocolors@1.0.1: {} + picocolors@1.1.1: {} + picomatch@2.3.1: {} picomatch@4.0.2: {} + picomatch@4.0.4: {} + pify@2.3.0: {} pirates@4.0.6: {} @@ -11274,6 +12661,18 @@ snapshots: mlly: 1.7.0 pathe: 1.1.2 + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.8.2 + pathe: 2.0.3 + + pkg-types@2.3.1: + dependencies: + confbox: 0.2.4 + exsolve: 1.0.8 + pathe: 2.0.3 + pluralize@8.0.0: {} portfinder@1.0.32: @@ -11480,6 +12879,14 @@ snapshots: picocolors: 1.0.1 source-map-js: 1.2.0 + postcss@8.5.15: + dependencies: + nanoid: 3.3.12 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + powershell-utils@0.1.0: {} + prebuild-install@7.1.2: dependencies: detect-libc: 2.0.3 @@ -11533,6 +12940,13 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 + publint@0.3.21: + dependencies: + '@publint/pack': 0.1.4 + package-manager-detector: 1.6.0 + picocolors: 1.1.1 + sade: 1.8.1 + pump@3.0.0: dependencies: end-of-stream: 1.4.4 @@ -11549,6 +12963,10 @@ snapshots: dependencies: side-channel: 1.0.6 + quansync@0.2.11: {} + + quansync@1.0.0: {} + queue-microtask@1.2.3: {} queue-tick@1.0.1: {} @@ -11573,6 +12991,11 @@ snapshots: defu: 6.1.4 destr: 2.0.3 + rc9@3.0.1: + dependencies: + defu: 6.1.7 + destr: 2.0.5 + rc@1.2.8: dependencies: deep-extend: 0.6.0 @@ -11640,6 +13063,8 @@ snapshots: dependencies: picomatch: 2.3.1 + readdirp@5.0.0: {} + redis-errors@1.2.0: {} redis-parser@3.0.0: @@ -11720,9 +13145,9 @@ snapshots: optionalDependencies: rollup: 4.18.0 - rollup-plugin-vue@6.0.0(@vue/compiler-sfc@3.4.27): + rollup-plugin-vue@6.0.0(@vue/compiler-sfc@3.5.35): dependencies: - '@vue/compiler-sfc': 3.4.27 + '@vue/compiler-sfc': 3.5.35 debug: 4.3.4 hash-sum: 2.0.0 rollup-pluginutils: 2.8.2 @@ -11755,6 +13180,8 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.18.0 fsevents: 2.3.3 + rou3@0.8.1: {} + run-applescript@7.0.0: {} run-parallel@1.2.0: @@ -11763,6 +13190,10 @@ snapshots: rw@1.3.3: {} + sade@1.8.1: + dependencies: + mri: 1.2.0 + safe-buffer@5.1.2: {} safe-buffer@5.2.1: {} @@ -11785,6 +13216,8 @@ snapshots: semver@7.6.2: {} + semver@7.8.1: {} + send@0.18.0: dependencies: debug: 2.6.9 @@ -11843,6 +13276,8 @@ snapshots: shell-quote@1.8.1: {} + shell-quote@1.8.4: {} + shiki@1.3.0: dependencies: '@shikijs/core': 1.3.0 @@ -11895,6 +13330,12 @@ snapshots: mrmime: 2.0.0 totalist: 3.0.1 + sirv@3.0.2: + dependencies: + '@polka/url': 1.0.0-next.25 + mrmime: 2.0.0 + totalist: 3.0.1 + sisteransi@1.0.5: {} slash@3.0.0: {} @@ -11963,6 +13404,8 @@ snapshots: source-map-js@1.2.0: {} + source-map-js@1.2.1: {} + source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 @@ -11997,6 +13440,8 @@ snapshots: sprintf-js@1.1.3: {} + srvx@0.11.16: {} + ssri@10.0.6: dependencies: minipass: 7.1.1 @@ -12071,6 +13516,8 @@ snapshots: dependencies: js-tokens: 9.0.0 + structured-clone-es@2.0.0: {} + stylehacks@6.1.1(postcss@8.4.38): dependencies: browserslist: 4.23.0 @@ -12221,6 +13668,13 @@ snapshots: tinybench@2.8.0: {} + tinyexec@1.2.4: {} + + tinyglobby@0.2.17: + dependencies: + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + tinypool@0.8.4: {} tinyspy@2.2.1: {} @@ -12303,14 +13757,29 @@ snapshots: ufo@1.5.3: {} + ufo@1.6.4: {} + ultrahtml@1.5.3: {} + unconfig-core@7.5.0: + dependencies: + '@quansync/fs': 1.0.0 + quansync: 1.0.0 + unconfig@0.3.13: dependencies: '@antfu/utils': 0.7.8 - defu: 6.1.4 + defu: 6.1.7 jiti: 1.21.0 + unconfig@7.5.0: + dependencies: + '@quansync/fs': 1.0.0 + defu: 6.1.4 + jiti: 2.7.0 + quansync: 1.0.0 + unconfig-core: 7.5.0 + uncrypto@0.1.3: {} unctx@2.3.1: @@ -12320,6 +13789,13 @@ snapshots: magic-string: 0.30.10 unplugin: 1.10.1 + unctx@2.5.0: + dependencies: + acorn: 8.16.0 + estree-walker: 3.0.3 + magic-string: 0.30.21 + unplugin: 2.3.11 + underscore@1.13.6: {} undici-types@5.26.5: {} @@ -12408,6 +13884,11 @@ snapshots: unpipe@1.0.0: {} + unplugin-utils@0.3.1: + dependencies: + pathe: 2.0.3 + picomatch: 4.0.4 + unplugin-vue-router@0.7.0(rollup@4.18.0)(vue-router@4.3.2(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)): dependencies: '@babel/types': 7.24.5 @@ -12424,7 +13905,7 @@ snapshots: unplugin: 1.10.1 yaml: 2.4.2 optionalDependencies: - vue-router: 4.3.2(vue@3.4.27(typescript@5.4.5)) + vue-router: 4.3.2(vue@3.5.35(typescript@5.4.5)) transitivePeerDependencies: - rollup - vue @@ -12436,7 +13917,20 @@ snapshots: webpack-sources: 3.2.3 webpack-virtual-modules: 0.6.1 - unstorage@1.10.2(@azure/identity@4.2.0)(ioredis@5.4.1): + unplugin@2.3.11: + dependencies: + '@jridgewell/remapping': 2.3.5 + acorn: 8.16.0 + picomatch: 4.0.4 + webpack-virtual-modules: 0.6.2 + + unplugin@3.0.0: + dependencies: + '@jridgewell/remapping': 2.3.5 + picomatch: 4.0.4 + webpack-virtual-modules: 0.6.2 + + unstorage@1.10.2(ioredis@5.4.1): dependencies: anymatch: 3.1.3 chokidar: 3.6.0 @@ -12449,11 +13943,23 @@ snapshots: ofetch: 1.3.4 ufo: 1.5.3 optionalDependencies: - '@azure/identity': 4.2.0 ioredis: 5.4.1 transitivePeerDependencies: - uWebSockets.js + unstorage@1.17.5(ioredis@5.4.1): + dependencies: + anymatch: 3.1.3 + chokidar: 5.0.0 + destr: 2.0.5 + h3: 1.15.11 + lru-cache: 11.5.1 + node-fetch-native: 1.6.7 + ofetch: 1.5.1 + ufo: 1.6.4 + optionalDependencies: + ioredis: 5.4.1 + untun@0.1.3: dependencies: citty: 0.1.6 @@ -12472,6 +13978,14 @@ snapshots: transitivePeerDependencies: - supports-color + untyped@2.0.0: + dependencies: + citty: 0.1.6 + defu: 6.1.7 + jiti: 2.7.0 + knitwork: 1.3.0 + scule: 1.3.0 + unwasm@0.3.9: dependencies: knitwork: 1.1.0 @@ -12503,6 +14017,10 @@ snapshots: uuid@8.3.2: {} + valibot@1.4.1(typescript@5.4.5): + optionalDependencies: + typescript: 5.4.5 + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 @@ -12575,6 +14093,27 @@ snapshots: - rollup - supports-color + vite-plugin-inspect@12.0.0-beta.3(@nuxt/kit@4.4.7(magicast@0.5.3))(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)): + dependencies: + '@vitejs/devtools-kit': 0.3.1(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)) + ansis: 4.3.1 + error-stack-parser-es: 1.0.5 + obug: 2.1.1 + ohash: 2.0.11 + open: 11.0.0 + perfect-debounce: 2.1.0 + sirv: 3.0.2 + unplugin-utils: 0.3.1 + vite: 5.2.11(@types/node@20.12.12)(terser@5.31.0) + optionalDependencies: + '@nuxt/kit': 4.4.7(magicast@0.5.3) + transitivePeerDependencies: + - '@modelcontextprotocol/sdk' + - bufferutil + - crossws + - typescript + - utf-8-validate + vite-plugin-vue-inspector@5.1.0(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0)): dependencies: '@babel/core': 7.24.5 @@ -12590,6 +14129,16 @@ snapshots: transitivePeerDependencies: - supports-color + vite-plugin-vue-tracer@1.4.0(vite@5.2.11(@types/node@20.12.12)(terser@5.31.0))(vue@3.5.35(typescript@5.4.5)): + dependencies: + estree-walker: 3.0.3 + exsolve: 1.0.8 + magic-string: 0.30.21 + pathe: 2.0.3 + source-map-js: 1.2.1 + vite: 5.2.11(@types/node@20.12.12)(terser@5.31.0) + vue: 3.5.35(typescript@5.4.5) + vite@5.2.11(@types/node@20.12.12)(terser@5.31.0): dependencies: esbuild: 0.20.2 @@ -12664,6 +14213,10 @@ snapshots: dependencies: vue: 3.4.27(typescript@5.4.5) + vue-demi@0.14.7(vue@3.5.35(typescript@5.4.5)): + dependencies: + vue: 3.5.35(typescript@5.4.5) + vue-devtools-stub@0.1.0: {} vue-eslint-parser@9.4.2(eslint@9.3.0): @@ -12687,10 +14240,14 @@ snapshots: dependencies: vue: 3.4.27(typescript@5.4.5) - vue-router@4.3.2(vue@3.4.27(typescript@5.4.5)): + vue-resize@2.0.0-alpha.1(vue@3.5.35(typescript@5.4.5)): + dependencies: + vue: 3.5.35(typescript@5.4.5) + + vue-router@4.3.2(vue@3.5.35(typescript@5.4.5)): dependencies: '@vue/devtools-api': 6.6.1 - vue: 3.4.27(typescript@5.4.5) + vue: 3.5.35(typescript@5.4.5) vue-template-compiler@2.7.16: dependencies: @@ -12711,6 +14268,10 @@ snapshots: vue-observe-visibility: 2.0.0-alpha.1(vue@3.4.27(typescript@5.4.5)) vue-resize: 2.0.0-alpha.1(vue@3.4.27(typescript@5.4.5)) + vue-virtual-scroller@3.0.4(vue@3.5.35(typescript@5.4.5)): + dependencies: + vue: 3.5.35(typescript@5.4.5) + vue@3.4.27(typescript@5.4.5): dependencies: '@vue/compiler-dom': 3.4.27 @@ -12721,12 +14282,24 @@ snapshots: optionalDependencies: typescript: 5.4.5 + vue@3.5.35(typescript@5.4.5): + dependencies: + '@vue/compiler-dom': 3.5.35 + '@vue/compiler-sfc': 3.5.35 + '@vue/runtime-dom': 3.5.35 + '@vue/server-renderer': 3.5.35(vue@3.5.35(typescript@5.4.5)) + '@vue/shared': 3.5.35 + optionalDependencies: + typescript: 5.4.5 + webidl-conversions@3.0.1: {} webpack-sources@3.2.3: {} webpack-virtual-modules@0.6.1: {} + webpack-virtual-modules@0.6.2: {} + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 @@ -12744,6 +14317,10 @@ snapshots: dependencies: isexe: 3.1.1 + which@7.0.0: + dependencies: + isexe: 4.0.0 + why-is-node-running@2.2.2: dependencies: siginfo: 2.0.0 @@ -12773,6 +14350,13 @@ snapshots: ws@8.17.0: {} + ws@8.21.0: {} + + wsl-utils@0.3.1: + dependencies: + is-wsl: 3.1.0 + powershell-utils: 0.1.0 + xml-name-validator@4.0.0: {} xml2js@0.5.0: @@ -12825,6 +14409,8 @@ snapshots: yocto-queue@1.0.0: {} + yocto-queue@1.2.2: {} + zhead@2.2.4: {} zip-stream@6.0.1: diff --git a/res/icon.svg b/res/icon.svg new file mode 100644 index 0000000..47547c8 --- /dev/null +++ b/res/icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/scripts/generate-contributes.ts b/scripts/generate-contributes.ts index 59f33f1..843eb37 100755 --- a/scripts/generate-contributes.ts +++ b/scripts/generate-contributes.ts @@ -62,7 +62,15 @@ const commandRecord: Record = { 'tsperf.tracer.openTraceDirExternal': { title: 'Open trace directory in file browser', }, - + 'tsperf.tracer.traceExpression': { + title: 'Trace expression at cursor', + }, + 'tsperf.tracer.selectTsconfig': { + title: 'Select tsconfig for tracing', + }, + 'tsperf.tracer.showMetrics': { + title: 'Show metrics overview', + }, } const includeExperimental = env.TraceExperimental === 'true' @@ -184,6 +192,13 @@ const orderedConfigurationProperties: Partial { showTree('check', '', 0) - clearTaceDiagnostics() + clearTraceDiagnostics() for (const editor of vscode.window.visibleTextEditors) { const visibleFileName = editor.document.fileName addTraceDiagnostics(visibleFileName, getStatsFromTree(visibleFileName)) diff --git a/src/commands/traceExpression.ts b/src/commands/traceExpression.ts new file mode 100644 index 0000000..4a618a9 --- /dev/null +++ b/src/commands/traceExpression.ts @@ -0,0 +1,124 @@ +import * as vscode from 'vscode' +import type { server } from 'typescript' +import { getCurrentConfig } from '../configuration' + +let resultDecorationType: vscode.TextEditorDecorationType + +export function initTraceExpression(ctx: vscode.ExtensionContext): void { + resultDecorationType = vscode.window.createTextEditorDecorationType({ + after: { + margin: '0 0 0 1em', + textDecoration: 'none', + }, + }) + ctx.subscriptions.push(resultDecorationType) + + ctx.subscriptions.push( + vscode.commands.registerCommand('tsperf.tracer.traceExpression', traceExpression), + ) +} + +async function traceExpression(): Promise { + const editor = vscode.window.activeTextEditor + if (!editor) + return + + const selection = editor.selection + if (selection.isEmpty) { + vscode.window.showInformationMessage('Select an expression to trace its type complexity') + return + } + + const fileName = editor.document.fileName + const startLine = selection.start.line + 1 + const startOffset = selection.start.character + 1 + + const config = getCurrentConfig() + if (!config.enableRealtimeMetrics) { + vscode.window.showInformationMessage('Enable realtime metrics to trace expressions') + return + } + + try { + const [quickInfoResult, completionsResult] = await Promise.all([ + measureQuickInfo(fileName, startLine, startOffset), + measureCompletions(fileName, startLine, startOffset), + ]) + + const quickInfoDuration = quickInfoResult.duration + const completionsDuration = completionsResult.duration + const avgDuration = (quickInfoDuration + completionsDuration) / 2 + + const severity = avgDuration > 200 ? 'error' : avgDuration > 50 ? 'warning' : 'info' + const color = severity === 'error' ? 'rgba(255,50,50,0.9)' : severity === 'warning' ? 'rgba(255,180,0,0.8)' : 'rgba(100,200,100,0.7)' + + const text = editor.document.getText(selection) + const hoverMessage = [ + '**Expression Trace Result**', + '', + `Expression: \`${text}\``, + `Quick Info: ${Math.round(quickInfoDuration)}ms`, + `Completions: ${Math.round(completionsDuration)}ms`, + `Average: ${Math.round(avgDuration)}ms`, + '', + quickInfoResult.typeName ? `Type: \`${quickInfoResult.typeName}\`` : '', + ].filter(Boolean).join('\n') + + const decoration = { + range: selection, + hoverMessage: new vscode.MarkdownString(hoverMessage), + renderOptions: { + after: { + contentText: ` ${Math.round(avgDuration)}ms`, + color, + }, + }, + } + + editor.setDecorations(resultDecorationType, [decoration]) + + // Auto-clear after 5 seconds + setTimeout(() => { + if (vscode.window.activeTextEditor === editor) + editor.setDecorations(resultDecorationType, []) + }, 5000) + } + catch (e) { + vscode.window.showErrorMessage(`Trace expression failed: ${e}`) + } +} + +interface MeasurementResult { + duration: number + typeName?: string +} + +async function measureQuickInfo(fileName: string, line: number, offset: number): Promise { + const start = performance.now() + const result = await vscode.commands.executeCommand('typescript.tsserverRequest', 'quickinfo-full', { + file: fileName, + line, + offset, + } satisfies server.protocol.FileLocationRequestArgs) as server.protocol.QuickInfoResponse + const duration = performance.now() - start + + return { + duration, + typeName: result?.body?.displayString, + } +} + +async function measureCompletions(fileName: string, line: number, offset: number): Promise { + const start = performance.now() + const result = await vscode.commands.executeCommand('typescript.tsserverRequest', 'completionInfo', { + file: fileName, + line, + offset, + } satisfies server.protocol.CompletionsRequestArgs) as server.protocol.CompletionInfoResponse + const duration = performance.now() - start + + return { + duration, + typeName: result?.body?.entries?.length ? `${result.body.entries.length} completions` : undefined, + } +} diff --git a/src/configuration.ts b/src/configuration.ts index 3193be0..cfc86e5 100644 --- a/src/configuration.ts +++ b/src/configuration.ts @@ -20,6 +20,7 @@ const currentConfig = { traceTotalTypeRelativeThresholds: { info: 1, warning: -1, error: -1 }, enableTraceMetrics: true, enableRealtimeMetrics: true, + enableInlineDecorations: true, fileBrowserExecutable: '', } satisfies Record @@ -66,6 +67,7 @@ const configValidate = { traceTotalTypeRelativeThresholds: isThresholds, enableTraceMetrics: isBoolean, enableRealtimeMetrics: isBoolean, + enableInlineDecorations: isBoolean, fileBrowserExecutable: isString, } satisfies Record @@ -88,6 +90,7 @@ const configHandlers = { traceTotalTypeRelativeThresholds: noop, enableTraceMetrics: noop, enableRealtimeMetrics: noop, + enableInlineDecorations: noop, fileBrowserExecutable: noop, } satisfies Record diff --git a/src/constants.ts b/src/constants.ts index fc97b3b..331400e 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -16,6 +16,7 @@ export const configKeys = [ 'traceTotalTypeRelativeThresholds', 'enableTraceMetrics', 'enableRealtimeMetrics', + 'enableInlineDecorations', 'fileBrowserExecutable', ] as const @@ -28,6 +29,9 @@ export const commandIds = [ 'tsperf.tracer.sendTrace', 'tsperf.tracer.openTerminal', 'tsperf.tracer.openTraceDirExternal', + 'tsperf.tracer.traceExpression', + 'tsperf.tracer.selectTsconfig', + 'tsperf.tracer.showMetrics', ] as const export type CommandId = typeof commandIds[number] diff --git a/src/decorations.ts b/src/decorations.ts new file mode 100644 index 0000000..7b03d52 --- /dev/null +++ b/src/decorations.ts @@ -0,0 +1,143 @@ +import * as vscode from 'vscode' +import type { FileStat } from '../shared/src/messages' +import { afterConfigUpdate, getCurrentConfig } from './configuration' + +let decorationTypes: vscode.TextEditorDecorationType[] = [] +let enableDecorations = true + +const severityColors = { + error: 'rgba(255, 50, 50, 0.15)', + warning: 'rgba(255, 180, 0, 0.12)', + info: 'rgba(100, 200, 100, 0.08)', +} + +const gutterColors = { + error: 'rgba(255, 50, 50, 0.8)', + warning: 'rgba(255, 180, 0, 0.7)', + info: 'rgba(100, 200, 100, 0.5)', +} + +function createDecorationType(severity: 'error' | 'warning' | 'info'): vscode.TextEditorDecorationType { + return vscode.window.createTextEditorDecorationType({ + backgroundColor: severityColors[severity], + gutterIconPath: createGutterIcon(gutterColors[severity]), + gutterIconSize: 'contain', + overviewRulerColor: gutterColors[severity], + overviewRulerLane: vscode.OverviewRulerLane.Right, + rangeBehavior: vscode.DecorRangeBehavior.ClosedClosed, + after: { + margin: '0 0 0 1em', + textDecoration: 'none', + }, + }) +} + +function createGutterIcon(color: string): vscode.Uri { + const svg = `` + return vscode.Uri.parse(`data:image/svg+xml,${encodeURIComponent(svg)}`) +} + +const infoDecoration = createDecorationType('info') +const warningDecoration = createDecorationType('warning') +const errorDecoration = createDecorationType('error') + +decorationTypes = [infoDecoration, warningDecoration, errorDecoration] + +interface DecorationInfo { + range: vscode.Range + severity: 'info' | 'warning' | 'error' + hoverMessage: string + afterText: string +} + +function getSeverityFromThresholds(dur: number, types: number, totalTypes: number): 'info' | 'warning' | 'error' | undefined { + const config = getCurrentConfig() + const durMs = dur / 1000 + const thresholds = config.traceTimeThresholds + if (thresholds.error >= 0 && durMs >= thresholds.error) + return 'error' + if (thresholds.warning >= 0 && durMs >= thresholds.warning) + return 'warning' + if (thresholds.info >= 0 && durMs >= thresholds.info) + return 'info' + + const typeThresholds = config.traceTypeThresholds + if (typeThresholds.error >= 0 && types >= typeThresholds.error) + return 'error' + if (typeThresholds.warning >= 0 && types >= typeThresholds.warning) + return 'warning' + if (typeThresholds.info >= 0 && types >= typeThresholds.info) + return 'info' + + return undefined +} + +export function updateDecorations(editor: vscode.TextEditor, stats: FileStat[]): void { + if (!enableDecorations || !getCurrentConfig().enableTraceMetrics) + return + + const decorations: Record = { + info: [], + warning: [], + error: [], + } + + const document = editor.document + const seen = new Set() + + for (const stat of stats) { + if (seen.has(stat.pos)) + continue + seen.add(stat.pos) + + const severity = getSeverityFromThresholds(stat.dur, stat.types, stat.totalTypes) + if (!severity) + continue + + const startPos = document.positionAt(stat.pos + 1) + const endPos = document.positionAt(stat.end) + const range = new vscode.Range(startPos, endPos) + + const durationMs = Math.round(stat.dur) / 1000 + const hoverMessage = `**Type Complexity**\n\nCheck time: ${durationMs}ms\nTypes: ${stat.types}\nTotal types: ${stat.totalTypes}` + const afterText = ` ${durationMs}ms` + + decorations[severity].push({ range, severity, hoverMessage, afterText }) + } + + editor.setDecorations(infoDecoration, decorations.info.map(d => ({ + range: d.range, + hoverMessage: new vscode.MarkdownString(d.hoverMessage), + renderOptions: { after: { contentText: d.afterText, color: 'rgba(100, 200, 100, 0.7)' } }, + }))) + + editor.setDecorations(warningDecoration, decorations.warning.map(d => ({ + range: d.range, + hoverMessage: new vscode.MarkdownString(d.hoverMessage), + renderOptions: { after: { contentText: d.afterText, color: 'rgba(255, 180, 0, 0.8)' } }, + }))) + + editor.setDecorations(errorDecoration, decorations.error.map(d => ({ + range: d.range, + hoverMessage: new vscode.MarkdownString(d.hoverMessage), + renderOptions: { after: { contentText: d.afterText, color: 'rgba(255, 50, 50, 0.9)' } }, + }))) +} + +export function clearDecorations(): void { + for (const editor of vscode.window.visibleTextEditors) { + for (const decorationType of decorationTypes) { + editor.setDecorations(decorationType, []) + } + } +} + +export function initDecorations(ctx: vscode.ExtensionContext): void { + ctx.subscriptions.push(infoDecoration, warningDecoration, errorDecoration) + + afterConfigUpdate(['enableTraceMetrics', 'enableInlineDecorations'], (config) => { + enableDecorations = config.enableInlineDecorations ?? true + if (!enableDecorations || !config.enableTraceMetrics) + clearDecorations() + }) +} diff --git a/src/incrementalMetrics.ts b/src/incrementalMetrics.ts new file mode 100644 index 0000000..41a5eb2 --- /dev/null +++ b/src/incrementalMetrics.ts @@ -0,0 +1,214 @@ +import * as vscode from 'vscode' +import type { server } from 'typescript' +import { getCurrentConfig } from './configuration' +import { log } from './logger' + +export interface MeasurementEntry { + fileName: string + line: number + offset: number + quickInfoDuration: number + completionsDuration: number + avgDuration: number + typeName?: string + timestamp: number + documentVersion: number +} + +interface FileMeasurements { + version: number + entries: MeasurementEntry[] + totalDuration: number + maxDuration: number + lastUpdated: number +} + +const measurementCache = new Map() +let isEnabled = true + +export function initIncrementalMetrics(ctx: vscode.ExtensionContext): void { + ctx.subscriptions.push( + vscode.commands.registerCommand('tsperf.tracer.showMetrics', showMetricsPanel), + ) + + // Clear cache when document closes + ctx.subscriptions.push( + vscode.workspace.onDidCloseTextDocument((doc) => { + measurementCache.delete(doc.fileName) + }), + ) + + // Invalidate cache on document change + ctx.subscriptions.push( + vscode.workspace.onDidChangeTextDocument((event) => { + const entry = measurementCache.get(event.document.fileName) + if (entry) { + entry.version = -1 // Mark as stale + } + }), + ) +} + +export function getFileMeasurements(fileName: string): FileMeasurements | undefined { + return measurementCache.get(fileName) +} + +export function getAllMeasurements(): Map { + return measurementCache +} + +export function isCacheValid(fileName: string, version: number): boolean { + const entry = measurementCache.get(fileName) + return entry !== undefined && entry.version === version +} + +export async function measurePosition( + fileName: string, + line: number, + offset: number, + documentVersion: number, +): Promise { + if (!isEnabled) + return undefined + + const config = getCurrentConfig() + if (!config.enableRealtimeMetrics) + return undefined + + try { + const startQuick = performance.now() + const quickInfoResult = await vscode.commands.executeCommand( + 'typescript.tsserverRequest', + 'quickinfo-full', + { file: fileName, line, offset } satisfies server.protocol.FileLocationRequestArgs, + ) as server.protocol.QuickInfoResponse + const quickInfoDuration = performance.now() - startQuick + + const startComp = performance.now() + await vscode.commands.executeCommand( + 'typescript.tsserverRequest', + 'completionInfo', + { file: fileName, line, offset } satisfies server.protocol.CompletionsRequestArgs, + ) as server.protocol.CompletionInfoResponse + const completionsDuration = performance.now() - startComp + + const avgDuration = (quickInfoDuration + completionsDuration) / 2 + + const entry: MeasurementEntry = { + fileName, + line, + offset, + quickInfoDuration, + completionsDuration, + avgDuration, + typeName: quickInfoResult?.body?.displayString, + timestamp: Date.now(), + documentVersion, + } + + updateCacheEntry(fileName, documentVersion, entry) + return entry + } + catch (e) { + log(`measurePosition failed: ${e}`) + return undefined + } +} + +export async function measureFileIncremental( + fileName: string, + positions: Array<{ line: number, offset: number }>, + documentVersion: number, +): Promise { + if (!isEnabled) + return [] + + const config = getCurrentConfig() + if (!config.enableRealtimeMetrics) + return [] + + // If cache is still valid, return cached results + if (isCacheValid(fileName, documentVersion)) { + return measurementCache.get(fileName)!.entries + } + + const results: MeasurementEntry[] = [] + + for (const pos of positions) { + const entry = await measurePosition(fileName, pos.line, pos.offset, documentVersion) + if (entry) + results.push(entry) + } + + return results +} + +function updateCacheEntry(fileName: string, version: number, entry: MeasurementEntry): void { + let fileEntry = measurementCache.get(fileName) + if (!fileEntry || fileEntry.version !== version) { + fileEntry = { version, entries: [], totalDuration: 0, maxDuration: 0, lastUpdated: Date.now() } + measurementCache.set(fileName, fileEntry) + } + + // Replace existing entry at same position or add new + const existingIdx = fileEntry.entries.findIndex( + e => e.line === entry.line && e.offset === entry.offset, + ) + if (existingIdx >= 0) + fileEntry.entries[existingIdx] = entry + else + fileEntry.entries.push(entry) + + fileEntry.totalDuration = fileEntry.entries.reduce((sum, e) => sum + e.avgDuration, 0) + fileEntry.maxDuration = Math.max(...fileEntry.entries.map(e => e.avgDuration)) + fileEntry.lastUpdated = Date.now() +} + +export function clearCache(fileName?: string): void { + if (fileName) + measurementCache.delete(fileName) + else + measurementCache.clear() +} + +export function getTopHotSpots(count = 10): Array<{ fileName: string, entry: MeasurementEntry }> { + const all: Array<{ fileName: string, entry: MeasurementEntry }> = [] + for (const [fileName, fileEntry] of measurementCache) { + for (const entry of fileEntry.entries) { + all.push({ fileName, entry }) + } + } + return all.sort((a, b) => b.entry.avgDuration - a.entry.avgDuration).slice(0, count) +} + +async function showMetricsPanel(): Promise { + const hotSpots = getTopHotSpots(20) + if (hotSpots.length === 0) { + vscode.window.showInformationMessage('No metrics collected yet. Open a TypeScript file to start collecting.') + return + } + + const items = hotSpots.map(({ fileName, entry }) => ({ + label: `${ + entry.avgDuration > 200 ? '$(error)' : entry.avgDuration > 50 ? '$(warning)' : '$(check)' + } ${entry.typeName || `L${entry.line}:C${entry.offset}`}`, + description: `${Math.round(entry.avgDuration)}ms`, + detail: `${fileName} - QuickInfo: ${Math.round(entry.quickInfoDuration)}ms, Completions: ${Math.round(entry.completionsDuration)}ms`, + fileName, + line: entry.line, + offset: entry.offset, + })) + + const selected = await vscode.window.showQuickPick(items, { + placeHolder: 'Top type complexity hot spots', + title: 'TSPerf: Metrics Overview', + }) + + if (selected) { + const doc = await vscode.workspace.openTextDocument(selected.fileName) + const editor = await vscode.window.showTextDocument(doc) + const position = new vscode.Position(selected.line - 1, selected.offset - 1) + editor.selection = new vscode.Selection(position, position) + editor.revealRange(new vscode.Range(position, position)) + } +} diff --git a/src/index.ts b/src/index.ts index ced41cc..f2b5512 100644 --- a/src/index.ts +++ b/src/index.ts @@ -12,6 +12,12 @@ import { afterConfigUpdate, getCurrentConfig, updateConfig } from './configurati import { getTsPath } from './tsUtil' import { registerCommands } from './commands' import { initDiagnostics } from './traceDiagnostics' +import { initDecorations } from './decorations' +import { initSidebar } from './sidebar/sidebarProvider' +import { initTraceExpression } from './commands/traceExpression' +import { initMultiRoot } from './multiRoot' +import { initIncrementalMetrics } from './incrementalMetrics' +import { initSuggestionProvider } from './suggestions/suggestionProvider' import { initWebviewPanel } from './webview' import { initStatusBar } from './statusBar' import { initAppState } from './appState' @@ -60,6 +66,12 @@ export async function activate(context: vscode.ExtensionContext) { registerCommands(context) initStatusBar(context) initDiagnostics(context) + initDecorations(context) + initSidebar(context) + initTraceExpression(context) + initMultiRoot(context) + initIncrementalMetrics(context) + initSuggestionProvider(context) } export function deactivate() {} diff --git a/src/multiRoot.ts b/src/multiRoot.ts new file mode 100644 index 0000000..755ea1e --- /dev/null +++ b/src/multiRoot.ts @@ -0,0 +1,71 @@ +import * as vscode from 'vscode' +import { getWorkspacePath } from './storage' +import { state } from './appState' + +let selectedTsconfig: string | undefined + +export function initMultiRoot(ctx: vscode.ExtensionContext): void { + ctx.subscriptions.push( + vscode.commands.registerCommand('tsperf.tracer.selectTsconfig', selectTsconfig), + ) +} + +export async function selectTsconfig(): Promise { + const files = await vscode.workspace.findFiles('**/tsconfig.json', '**/node_modules/**') + const filteredFiles = files.filter(p => !p.fsPath.includes('node_modules')) + + if (filteredFiles.length === 0) { + vscode.window.showWarningMessage('No tsconfig.json found in workspace') + return + } + + if (filteredFiles.length === 1) { + selectedTsconfig = filteredFiles[0].fsPath + vscode.window.showInformationMessage(`Using ${relativePath(filteredFiles[0].fsPath)}`) + return + } + + const items = filteredFiles.map((file) => { + const relative = vscode.workspace.asRelativePath(file) + return { + label: relative, + description: file.fsPath, + picked: selectedTsconfig === file.fsPath, + } + }) + + const selected = await vscode.window.showQuickPick(items, { + placeHolder: 'Select tsconfig.json for tracing', + title: 'TSPerf: Select Project Configuration', + }) + + if (selected) { + selectedTsconfig = selected.description + vscode.window.showInformationMessage(`Switched to ${selected.label}`) + + // Update workspace path to the tsconfig's parent directory + const projectDir = vscode.Uri.joinPath(vscode.Uri.file(selectedTsconfig!), '..').fsPath + if (state.workspacePath.value !== projectDir) { + state.saveName.value = 'default' + } + } +} + +export function getSelectedTsconfig(): string | undefined { + return selectedTsconfig +} + +export function getActiveWorkspacePath(): string { + if (selectedTsconfig) { + const projectDir = vscode.Uri.joinPath(vscode.Uri.file(selectedTsconfig), '..').fsPath + return projectDir + } + return getWorkspacePath() +} + +function relativePath(absolutePath: string): string { + const workspacePath = getWorkspacePath() + if (absolutePath.startsWith(workspacePath)) + return absolutePath.slice(workspacePath.length + 1) + return absolutePath +} diff --git a/src/sidebar/sidebarProvider.ts b/src/sidebar/sidebarProvider.ts new file mode 100644 index 0000000..4a85502 --- /dev/null +++ b/src/sidebar/sidebarProvider.ts @@ -0,0 +1,214 @@ +import * as vscode from 'vscode' +import { getStatsFromTree } from '../traceTree' +import { getCurrentConfig } from '../configuration' +import { getWorkspacePath } from '../storage' +import { relative } from 'node:path' + +export type HotSpotSeverity = 'error' | 'warning' | 'info' + +export interface HotSpot { + label: string + description: string + severity: HotSpotSeverity + pos: number + end: number + dur: number + types: number + totalTypes: number + fileName: string +} + +export interface FileSummary { + fileName: string + relativePath: string + totalCheckTime: number + hotSpotCount: number + maxSeverity: HotSpotSeverity + hotSpots: HotSpot[] +} + +export class SidebarProvider implements vscode.TreeDataProvider { + private _onDidChangeTreeData = new vscode.EventEmitter() + readonly onDidChangeTreeData = this._onDidChangeTreeData.event + + private summaries: FileSummary[] = [] + + refresh(fileName?: string): void { + if (fileName) { + this.updateFileSummary(fileName) + } + else { + this.summaries = [] + for (const editor of vscode.window.visibleTextEditors) { + this.updateFileSummary(editor.document.fileName) + } + } + this._onDidChangeTreeData.fire(undefined) + } + + private updateFileSummary(fileName: string): void { + const stats = getStatsFromTree(fileName) + const workspacePath = getWorkspacePath() + const relativePath = relative(workspacePath, fileName) + + const config = getCurrentConfig() + if (!config.enableTraceMetrics) { + this.summaries = this.summaries.filter(s => s.fileName !== fileName) + return + } + + const hotSpots: HotSpot[] = [] + for (const stat of stats) { + const severity = this.getSeverity(stat.dur, stat.types, stat.totalTypes) + if (!severity) + continue + + hotSpots.push({ + label: this.getPositionLabel(fileName, stat.pos), + description: `${Math.round(stat.dur / 100) / 10}ms`, + severity, + pos: stat.pos, + end: stat.end, + dur: stat.dur, + types: stat.types, + totalTypes: stat.totalTypes, + fileName, + }) + } + + hotSpots.sort((a, b) => b.dur - a.dur) + + const totalCheckTime = stats.reduce((sum, s) => sum + s.dur, 0) + const maxSeverity = hotSpots.length > 0 + ? hotSpots.some(h => h.severity === 'error') ? 'error' + : hotSpots.some(h => h.severity === 'warning') ? 'warning' : 'info' + : 'info' + + const summary: FileSummary = { + fileName, + relativePath, + totalCheckTime, + hotSpotCount: hotSpots.length, + maxSeverity, + hotSpots, + } + + const existing = this.summaries.findIndex(s => s.fileName === fileName) + if (existing >= 0) + this.summaries[existing] = summary + else + this.summaries.push(summary) + + this.summaries.sort((a, b) => b.totalCheckTime - a.totalCheckTime) + } + + private getSeverity(dur: number, types: number, totalTypes: number): HotSpotSeverity | undefined { + const config = getCurrentConfig() + const durMs = dur / 1000 + const t = config.traceTimeThresholds + if (t.error >= 0 && durMs >= t.error) return 'error' + if (t.warning >= 0 && durMs >= t.warning) return 'warning' + if (t.info >= 0 && durMs >= t.info) return 'info' + + const tt = config.traceTypeThresholds + if (tt.error >= 0 && types >= tt.error) return 'error' + if (tt.warning >= 0 && types >= tt.warning) return 'warning' + if (tt.info >= 0 && types >= tt.info) return 'info' + + return undefined + } + + private getPositionLabel(fileName: string, pos: number): string { + const editor = vscode.window.visibleTextEditors.find(e => e.document.fileName === fileName) + if (editor) { + const position = editor.document.positionAt(pos + 1) + return `L${position.line + 1}:C${position.character + 1}` + } + return `pos:${pos}` + } + + getTreeItem(element: SidebarItem): vscode.TreeItem { + return element + } + + getChildren(element?: SidebarItem): SidebarItem[] { + if (!element) { + // Root level: file summaries + return this.summaries.map((summary) => { + const iconPath = this.getSeverityIcon(summary.maxSeverity) + const item = new SidebarItem( + summary.relativePath, + vscode.TreeItemCollapsibleState.Collapsed, + `Total: ${Math.round(summary.totalCheckTime / 100) / 10}ms | ${summary.hotSpotCount} hot spots`, + iconPath, + ) + item.summary = summary + return item + }) + } + + // Child level: hot spots within a file + if (element.summary) { + return element.summary.hotSpots.map((hotSpot) => { + const iconPath = this.getSeverityIcon(hotSpot.severity) + const item = new SidebarItem( + hotSpot.label, + vscode.TreeItemCollapsibleState.None, + hotSpot.description, + iconPath, + ) + item.hotSpot = hotSpot + item.command = { + command: 'tsperf.tracer.gotoTracePosition', + title: 'Go to Position', + arguments: [], + } + item.contextValue = 'hotSpot' + return item + }) + } + + return [] + } + + private getSeverityIcon(severity: HotSpotSeverity): vscode.ThemeIcon { + switch (severity) { + case 'error': return new vscode.ThemeIcon('error', new vscode.ThemeColor('errorForeground')) + case 'warning': return new vscode.ThemeIcon('warning', new vscode.ThemeColor('editorWarning.foreground')) + case 'info': return new vscode.ThemeIcon('info', new vscode.ThemeColor('editorInfo.foreground')) + } + } +} + +export class SidebarItem extends vscode.TreeItem { + summary?: FileSummary + hotSpot?: HotSpot + + constructor( + label: string, + collapsibleState: vscode.TreeItemCollapsibleState, + description?: string, + iconPath?: vscode.ThemeIcon, + ) { + super(label, collapsibleState) + if (description) + this.description = description + if (iconPath) + this.iconPath = iconPath + } +} + +let sidebarProvider: SidebarProvider + +export function initSidebar(ctx: vscode.ExtensionContext): void { + sidebarProvider = new SidebarProvider() + const treeView = vscode.window.createTreeView('tsperf-tracer-hotspots', { + treeDataProvider: sidebarProvider, + showCollapseAll: true, + }) + ctx.subscriptions.push(treeView) +} + +export function getSidebarProvider(): SidebarProvider { + return sidebarProvider +} diff --git a/src/suggestions/suggestionProvider.ts b/src/suggestions/suggestionProvider.ts new file mode 100644 index 0000000..8b50cbe --- /dev/null +++ b/src/suggestions/suggestionProvider.ts @@ -0,0 +1,142 @@ +import * as vscode from 'vscode' +import { getStatsFromTree } from '../traceTree' +import { getCurrentConfig } from '../configuration' + +interface TypeSuggestion { + title: string + kind: vscode.CodeActionKind + edit: (document: vscode.TextDocument, range: vscode.Range) => vscode.WorkspaceEdit | undefined + isApplicable: (text: string) => boolean +} + +const suggestions: TypeSuggestion[] = [ + { + title: 'Extract type alias for complex type', + kind: vscode.CodeActionKind.QuickFix, + isApplicable: (text) => { + // Detect complex union/intersection types + const pipeCount = (text.match(/\|/g) || []).length + const ampersandCount = (text.match(/&/g) || []).length + return pipeCount >= 3 || ampersandCount >= 3 || text.length > 80 + }, + edit: (document, range) => { + const text = document.getText(range) + if (!text.trim()) + return undefined + + const aliasName = `ExtractedType` + const workspaceEdit = new vscode.WorkspaceEdit() + + // Replace the complex type with an alias reference + workspaceEdit.replace(document.uri, range, aliasName) + + // Add type alias at the top of the file (after imports) + const lineCount = document.lineCount + let insertLine = 0 + for (let i = 0; i < lineCount; i++) { + const lineText = document.lineAt(i).text + if (lineText.startsWith('import ') || lineText.trim() === '' || lineText.startsWith('//') || lineText.startsWith('/*')) { + insertLine = i + 1 + } + else { + break + } + } + + const insertPos = new vscode.Position(insertLine, 0) + workspaceEdit.insert(document.uri, insertPos, `type ${aliasName} = ${text}\n\n`) + + return workspaceEdit + }, + }, + { + title: 'Consider using `satisfies` for type validation', + kind: vscode.CodeActionKind.QuickFix, + isApplicable: (text) => { + // Detect type annotation on object literals + return /:\s*\{[^}]*\}\s*=/.test(text) || /:\s*\w+\s*=\s*\{/.test(text) + }, + edit: (document, range) => { + const text = document.getText(range) + // Replace `: Type = expr` with `= expr satisfies Type` + const match = text.match(/^([^:]+):\s*(\w+(?:<[^>]+>)?)\s*=\s*(.+)$/s) + if (!match) + return undefined + + const [, prefix, typeName, expression] = match + const workspaceEdit = new vscode.WorkspaceEdit() + workspaceEdit.replace(document.uri, range, `${prefix}= ${expression.trim()} satisfies ${typeName}`) + return workspaceEdit + }, + }, + { + title: 'Add explicit type annotation to reduce inference cost', + kind: vscode.CodeActionKind.QuickFix, + isApplicable: (text) => { + // Detect variable declarations without type annotations + return /^(const|let|var)\s+\w+\s*=/.test(text.trim()) && !text.includes(':') + }, + edit: (document, range) => { + const text = document.getText(range) + const match = text.match(/^(const|let|var)\s+(\w+)\s*=\s*(.+)$/s) + if (!match) + return undefined + + const [, keyword, name, _expression] = match + const workspaceEdit = new vscode.WorkspaceEdit() + + // Suggest adding `: typeof` annotation + workspaceEdit.replace(document.uri, range, `${keyword} ${name}: typeof ${name} = ${_expression.trim()}`) + return workspaceEdit + }, + }, +] + +export function initSuggestionProvider(ctx: vscode.ExtensionContext): void { + const provider: vscode.CodeActionProvider = { + provideCodeActions(document, range, context) { + const config = getCurrentConfig() + if (!config.enableTraceMetrics) + return undefined + + // Only provide suggestions for TypeScript files + if (document.languageId !== 'typescript' && document.languageId !== 'typescriptreact') + return undefined + + // Check if this position has trace data indicating a slow type + const stats = getStatsFromTree(document.fileName) + const pos = document.offsetAt(range.start) + const relevantStats = stats.filter( + s => pos >= s.pos && pos <= s.end && s.dur / 1000 > (config.traceTimeThresholds.info || 1), + ) + + if (relevantStats.length === 0) + return undefined + + const text = document.getText(range) + const actions: vscode.CodeAction[] = [] + + for (const suggestion of suggestions) { + if (suggestion.isApplicable(text)) { + const action = new vscode.CodeAction(suggestion.title, suggestion.kind) + const edit = suggestion.edit(document, range) + if (edit) { + action.edit = edit + action.diagnostics = context.diagnostics + actions.push(action) + } + } + } + + return actions.length > 0 ? actions : undefined + }, + } + + ctx.subscriptions.push( + vscode.languages.registerCodeActionsProvider( + ['typescript', 'typescriptreact'], + provider, + { providedCodeActionKinds: [vscode.CodeActionKind.QuickFix] }, + ), + ) +} diff --git a/src/traceDiagnostics.ts b/src/traceDiagnostics.ts index 48e5601..b1a4f6c 100644 --- a/src/traceDiagnostics.ts +++ b/src/traceDiagnostics.ts @@ -2,6 +2,7 @@ import * as vscode from 'vscode' import type { FileStat } from '../shared/src/messages' import { getStatsFromTree } from './traceTree' import { afterConfigUpdate, getCurrentConfig } from './configuration' +import { clearDecorations, updateDecorations } from './decorations' let diagnosticCollection: vscode.DiagnosticCollection @@ -23,8 +24,9 @@ vscode.window.onDidChangeActiveTextEditor((event) => { addTraceDiagnostics(fileName, getStatsFromTree(fileName)) }) -export function clearTaceDiagnostics() { +export function clearTraceDiagnostics() { fileStatus.clear() + clearDecorations() if (diagnosticCollection) diagnosticCollection.clear() } @@ -79,6 +81,11 @@ export async function addTraceDiagnostics(fileName: string, stats: FileStat[]) { lastPos = stat.pos } diagnosticCollection.set(uri, diagnostics) + + // Update inline decorations for visible editors + const editor = vscode.window.visibleTextEditors.find(e => e.document.fileName === fileName) + if (editor) + updateDecorations(editor, stats) } function relativeString(value: number) { diff --git a/ui/app.vue b/ui/app.vue index bbd026b..f928bb7 100644 --- a/ui/app.vue +++ b/ui/app.vue @@ -1,5 +1,5 @@ + + + + diff --git a/ui/components/FlameChart.vue b/ui/components/FlameChart.vue new file mode 100644 index 0000000..a28f3b9 --- /dev/null +++ b/ui/components/FlameChart.vue @@ -0,0 +1,157 @@ + + + + + diff --git a/ui/components/TreeNode.vue b/ui/components/TreeNode.vue index 997a094..a94cfcf 100644 --- a/ui/components/TreeNode.vue +++ b/ui/components/TreeNode.vue @@ -30,44 +30,74 @@ function gotoPosition() { } const insetClass = `border-e min-w-2 border-[var(--vscode-tree-inactiveIndentGuidesStroke)] hover:border-[var(--vscode-tree-indentGuidesStroke)]` + +// Visual tone: color based on duration +function getDurationColor(dur: number | undefined): string { + if (!dur || dur <= 0) return 'transparent' + const ms = dur / 1000 + if (ms > 10) return 'rgba(255, 50, 50, 0.15)' + if (ms > 5) return 'rgba(255, 180, 0, 0.12)' + if (ms > 1) return 'rgba(100, 200, 100, 0.08)' + return 'transparent' +} + +function formatDuration(dur: number | undefined): string { + if (!dur) return '0ms' + return `${Math.round(dur / 100) / 10}ms` +} + +// Duration bar width (relative to max) +const maxDur = 10_000_000 // 10s as reference +function getDurationBarWidth(dur: number | undefined): string { + if (!dur) return '0%' + const pct = Math.min((dur / maxDur) * 100, 100) + return `${pct}%` +}