From 08b0f87596d442d3af8aeb9c0cf82692940df998 Mon Sep 17 00:00:00 2001 From: Moritz Ruth Date: Thu, 26 Dec 2024 18:54:19 +0100 Subject: [PATCH] commit 01 --- .gitignore | 3 + .nvmrc | 1 + index.html | 14 + package.json | 53 + pnpm-lock.yaml | 3068 ++++++++++++++++++++++++ public/objects/haustür.png | Bin 0 -> 11838 bytes public/objects/kakao.png | Bin 0 -> 16479 bytes public/objects/kakaopulver.png | Bin 0 -> 16564 bytes public/objects/kühlschrank.png | Bin 0 -> 23849 bytes public/objects/milch.png | Bin 0 -> 21845 bytes public/objects/offene-haustür.png | Bin 0 -> 12809 bytes public/objects/schlüssel.png | Bin 0 -> 19356 bytes src/App.vue | 93 + src/assets/noise.png | Bin 0 -> 18659 bytes src/components/ObjectCard.vue | 82 + src/components/ObjectCardDropZone.vue | 64 + src/game.ts | 63 + src/index.ts | 19 + src/screens/AdminScreen.vue | 11 + src/screens/InteractionsScreen.vue | 91 + src/server/game.ts | 69 + src/server/index.ts | 1 + src/server/isDev.ts | 1 + src/server/main.ts | 38 + src/server/trpc/base.ts | 17 + src/server/trpc/director.ts | 20 + src/server/trpc/index.ts | 29 + src/server/trpc/player.ts | 22 + src/shared/gameEvents.ts | 6 + src/shared/script/index.ts | 12 + src/shared/script/rooms/hauseingang.ts | 41 + src/shared/script/rooms/küche.ts | 49 + src/shared/script/types.ts | 46 + src/shared/util.ts | 12 + src/trpc.ts | 19 + tsconfig.json | 31 + vite.config.ts | 23 + windi.config.ts | 23 + 38 files changed, 4021 insertions(+) create mode 100644 .gitignore create mode 100644 .nvmrc create mode 100644 index.html create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 public/objects/haustür.png create mode 100644 public/objects/kakao.png create mode 100644 public/objects/kakaopulver.png create mode 100644 public/objects/kühlschrank.png create mode 100644 public/objects/milch.png create mode 100644 public/objects/offene-haustür.png create mode 100644 public/objects/schlüssel.png create mode 100644 src/App.vue create mode 100644 src/assets/noise.png create mode 100644 src/components/ObjectCard.vue create mode 100644 src/components/ObjectCardDropZone.vue create mode 100644 src/game.ts create mode 100644 src/index.ts create mode 100644 src/screens/AdminScreen.vue create mode 100644 src/screens/InteractionsScreen.vue create mode 100644 src/server/game.ts create mode 100644 src/server/index.ts create mode 100644 src/server/isDev.ts create mode 100644 src/server/main.ts create mode 100644 src/server/trpc/base.ts create mode 100644 src/server/trpc/director.ts create mode 100644 src/server/trpc/index.ts create mode 100644 src/server/trpc/player.ts create mode 100644 src/shared/gameEvents.ts create mode 100644 src/shared/script/index.ts create mode 100644 src/shared/script/rooms/hauseingang.ts create mode 100644 src/shared/script/rooms/küche.ts create mode 100644 src/shared/script/types.ts create mode 100644 src/shared/util.ts create mode 100644 src/trpc.ts create mode 100644 tsconfig.json create mode 100644 vite.config.ts create mode 100644 windi.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..72bfa4c --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.idea/ +node_modules/ +*.env \ No newline at end of file diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..8fdd954 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +22 \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..8d8ab6e --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + + + Level Up + + + + + + +
+ + diff --git a/package.json b/package.json new file mode 100644 index 0000000..0439f9e --- /dev/null +++ b/package.json @@ -0,0 +1,53 @@ +{ + "name": "level-up", + "version": "1.0.0", + "type": "module", + "scripts": { + "start:ui": "vite preview --host --port 4000", + "start:server": "NODE_ENV=production tsx ./src/server/main.ts", + "build:ui": "vite build", + "dev:ui": "vite", + "dev:server": "NODE_ENV=development tsx watch --clear-screen=false ./src/server/main.ts" + }, + "devDependencies": { + "@iconify-json/ph": "^1.2.2", + "@types/express": "^5.0.0", + "@types/lodash-es": "^4.17.12", + "@types/node": "22.10.2", + "@types/ws": "^8.5.13", + "@vitejs/plugin-vue": "^5.2.1", + "sass": "^1.83.0", + "tsx": "^4.19.2", + "typescript": "^5.7.2", + "unplugin-icons": "^0.22.0", + "vite": "^6.0.3", + "vite-plugin-pages": "^0.32.4", + "vite-plugin-windicss": "^1.9.4", + "windicss": "^3.5.6" + }, + "dependencies": { + "@fontsource-variable/inter": "^5.1.0", + "@fontsource/titan-one": "^5.1.0", + "@headlessui/vue": "^1.7.23", + "@interactjs/actions": "^1.10.27", + "@interactjs/auto-start": "^1.10.27", + "@interactjs/interact": "^1.10.27", + "@trpc/client": "^10.45.2", + "@trpc/server": "^10.45.2", + "@vueuse/core": "^12.0.0", + "@vueuse/integrations": "^12.0.0", + "bufferutil": "^4.0.8", + "eventemitter3": "^5.0.1", + "express": "^4.21.2", + "immer": "^10.1.1", + "listhen": "^1.9.0", + "lodash-es": "^4.17.21", + "nanoid": "^5.0.9", + "pinia": "^2.3.0", + "superjson": "^2.2.2", + "vue": "^3.5.13", + "vue-router": "^4.5.0", + "ws": "^8.18.0", + "zod": "^3.24.1" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..068618c --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,3068 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@fontsource-variable/inter': + specifier: ^5.1.0 + version: 5.1.0 + '@fontsource/titan-one': + specifier: ^5.1.0 + version: 5.1.0 + '@headlessui/vue': + specifier: ^1.7.23 + version: 1.7.23(vue@3.5.13(typescript@5.7.2)) + '@interactjs/actions': + specifier: ^1.10.27 + version: 1.10.27(@interactjs/core@1.10.27(@interactjs/utils@1.10.27))(@interactjs/utils@1.10.27) + '@interactjs/auto-start': + specifier: ^1.10.27 + version: 1.10.27(@interactjs/core@1.10.27(@interactjs/utils@1.10.27))(@interactjs/utils@1.10.27) + '@interactjs/interact': + specifier: ^1.10.27 + version: 1.10.27 + '@trpc/client': + specifier: ^10.45.2 + version: 10.45.2(@trpc/server@10.45.2) + '@trpc/server': + specifier: ^10.45.2 + version: 10.45.2 + '@vueuse/core': + specifier: ^12.0.0 + version: 12.0.0(typescript@5.7.2) + '@vueuse/integrations': + specifier: ^12.0.0 + version: 12.0.0(typescript@5.7.2) + bufferutil: + specifier: ^4.0.8 + version: 4.0.8 + eventemitter3: + specifier: ^5.0.1 + version: 5.0.1 + express: + specifier: ^4.21.2 + version: 4.21.2 + immer: + specifier: ^10.1.1 + version: 10.1.1 + listhen: + specifier: ^1.9.0 + version: 1.9.0 + lodash-es: + specifier: ^4.17.21 + version: 4.17.21 + nanoid: + specifier: ^5.0.9 + version: 5.0.9 + pinia: + specifier: ^2.3.0 + version: 2.3.0(typescript@5.7.2)(vue@3.5.13(typescript@5.7.2)) + superjson: + specifier: ^2.2.2 + version: 2.2.2 + vue: + specifier: ^3.5.13 + version: 3.5.13(typescript@5.7.2) + vue-router: + specifier: ^4.5.0 + version: 4.5.0(vue@3.5.13(typescript@5.7.2)) + ws: + specifier: ^8.18.0 + version: 8.18.0(bufferutil@4.0.8) + zod: + specifier: ^3.24.1 + version: 3.24.1 + devDependencies: + '@iconify-json/ph': + specifier: ^1.2.2 + version: 1.2.2 + '@types/express': + specifier: ^5.0.0 + version: 5.0.0 + '@types/lodash-es': + specifier: ^4.17.12 + version: 4.17.12 + '@types/node': + specifier: 22.10.2 + version: 22.10.2 + '@types/ws': + specifier: ^8.5.13 + version: 8.5.13 + '@vitejs/plugin-vue': + specifier: ^5.2.1 + version: 5.2.1(vite@6.0.3(@types/node@22.10.2)(jiti@2.4.2)(sass@1.83.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) + sass: + specifier: ^1.83.0 + version: 1.83.0 + tsx: + specifier: ^4.19.2 + version: 4.19.2 + typescript: + specifier: ^5.7.2 + version: 5.7.2 + unplugin-icons: + specifier: ^0.22.0 + version: 0.22.0(@vue/compiler-sfc@3.5.13) + vite: + specifier: ^6.0.3 + version: 6.0.3(@types/node@22.10.2)(jiti@2.4.2)(sass@1.83.0)(tsx@4.19.2)(yaml@2.6.1) + vite-plugin-pages: + specifier: ^0.32.4 + version: 0.32.4(@vue/compiler-sfc@3.5.13)(vite@6.0.3(@types/node@22.10.2)(jiti@2.4.2)(sass@1.83.0)(tsx@4.19.2)(yaml@2.6.1))(vue-router@4.5.0(vue@3.5.13(typescript@5.7.2))) + vite-plugin-windicss: + specifier: ^1.9.4 + version: 1.9.4(vite@6.0.3(@types/node@22.10.2)(jiti@2.4.2)(sass@1.83.0)(tsx@4.19.2)(yaml@2.6.1)) + windicss: + specifier: ^3.5.6 + version: 3.5.6 + +packages: + + '@antfu/install-pkg@0.4.1': + resolution: {integrity: sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==} + + '@antfu/install-pkg@0.5.0': + resolution: {integrity: sha512-dKnk2xlAyC7rvTkpkHmu+Qy/2Zc3Vm/l8PtNyIOGDBtXPY3kThfU4ORNEp3V7SXw5XSOb+tOJaUYpfquPzL/Tg==} + + '@antfu/utils@0.7.10': + resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} + + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.26.3': + resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/types@7.26.3': + resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} + engines: {node: '>=6.9.0'} + + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.24.0': + resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.24.0': + resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.24.0': + resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.24.0': + resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.24.0': + resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.24.0': + resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.24.0': + resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.24.0': + resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.24.0': + resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.24.0': + resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.24.0': + resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.24.0': + resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.24.0': + resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.24.0': + resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.24.0': + resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.24.0': + resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.24.0': + resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.24.0': + resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-arm64@0.24.0': + resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.24.0': + resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.24.0': + resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.24.0': + resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.24.0': + resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.24.0': + resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@fontsource-variable/inter@5.1.0': + resolution: {integrity: sha512-Wj2dUGP0vUpxRGQTXQTCNJO+aLcFcQm+gUPXfj/aS877bQkEPBPv9JvZJpwdm2vzelt8NTZ+ausKlBCJjh2XIg==} + + '@fontsource/titan-one@5.1.0': + resolution: {integrity: sha512-nRZSxqYqKVXs71mxEnJ9hrF02uBztbvf2Df0+orH5LrqYhmU6Ie/AS0zG/dDSpUuJdlU0qi4wsYyGET1UdzAIw==} + + '@headlessui/vue@1.7.23': + resolution: {integrity: sha512-JzdCNqurrtuu0YW6QaDtR2PIYCKPUWq28csDyMvN4zmGccmE7lz40Is6hc3LA4HFeCI7sekZ/PQMTNmn9I/4Wg==} + engines: {node: '>=10'} + peerDependencies: + vue: ^3.2.0 + + '@iconify-json/ph@1.2.2': + resolution: {integrity: sha512-PgkEZNtqa8hBGjHXQa4pMwZa93hmfu8FUSjs/nv4oUU6yLsgv+gh9nu28Kqi8Fz9CCVu4hj1MZs9/60J57IzFw==} + + '@iconify/types@2.0.0': + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + + '@iconify/utils@2.2.1': + resolution: {integrity: sha512-0/7J7hk4PqXmxo5PDBDxmnecw5PxklZJfNjIVG9FM0mEfVrvfudS22rYWsqVk6gR3UJ/mSYS90X4R3znXnqfNA==} + + '@interactjs/actions@1.10.27': + resolution: {integrity: sha512-FCRg5KwB+stkPcAMx/Cn0fgGP6p4LyMX9S/Upcn/W+hpYme31bPi54PCqmOebzz6myTthN6zFf9jMyLOqtI/gg==} + peerDependencies: + '@interactjs/core': 1.10.27 + '@interactjs/utils': 1.10.27 + + '@interactjs/auto-start@1.10.27': + resolution: {integrity: sha512-ECLBO/nxmaF1knncJKIE5F7la3KKRgEkn0Cu2JTPOYj9xy/LpfYElo3wkRHsodgOqF651nR70GK2/IzPR2lO9A==} + peerDependencies: + '@interactjs/core': 1.10.27 + '@interactjs/utils': 1.10.27 + + '@interactjs/core@1.10.27': + resolution: {integrity: sha512-SliUr/3ZbLAdED8LokzYzWHWMdCB5Cq+UnpXuRy+BIod1j97m4IUFf/D1iIKUBBjBcucgXbz28z96WnenVCB7Q==} + peerDependencies: + '@interactjs/utils': 1.10.27 + + '@interactjs/interact@1.10.27': + resolution: {integrity: sha512-XdH3A2UUzjEFGGJgFuJlhiz99tE8jB8xNh/DmnoMuL6uOQPxNA+sWRnzEVjG0+zY2P3/dbhEpi4Cn3FLPzydwA==} + + '@interactjs/utils@1.10.27': + resolution: {integrity: sha512-+qfLOio2OxQqg1cXSnRaCl+N8MQDQLDS9w+aOGxH8YLAhIMyt7Asxx/46//sT8orgsi16pmlBPtngPHT9s8zKw==} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@parcel/watcher-android-arm64@2.5.0': + resolution: {integrity: sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.5.0': + resolution: {integrity: sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.5.0': + resolution: {integrity: sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.5.0': + resolution: {integrity: sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.5.0': + resolution: {integrity: sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm-musl@2.5.0': + resolution: {integrity: sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm64-glibc@2.5.0': + resolution: {integrity: sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-arm64-musl@2.5.0': + resolution: {integrity: sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-x64-glibc@2.5.0': + resolution: {integrity: sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-linux-x64-musl@2.5.0': + resolution: {integrity: sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-wasm@2.5.0': + resolution: {integrity: sha512-Z4ouuR8Pfggk1EYYbTaIoxc+Yv4o7cGQnH0Xy8+pQ+HbiW+ZnwhcD2LPf/prfq1nIWpAxjOkQ8uSMFWMtBLiVQ==} + engines: {node: '>= 10.0.0'} + bundledDependencies: + - napi-wasm + + '@parcel/watcher-win32-arm64@2.5.0': + resolution: {integrity: sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-ia32@2.5.0': + resolution: {integrity: sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + + '@parcel/watcher-win32-x64@2.5.0': + resolution: {integrity: sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.5.0': + resolution: {integrity: sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==} + engines: {node: '>= 10.0.0'} + + '@rollup/rollup-android-arm-eabi@4.28.1': + resolution: {integrity: sha512-2aZp8AES04KI2dy3Ss6/MDjXbwBzj+i0GqKtWXgw2/Ma6E4jJvujryO6gJAghIRVz7Vwr9Gtl/8na3nDUKpraQ==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.28.1': + resolution: {integrity: sha512-EbkK285O+1YMrg57xVA+Dp0tDBRB93/BZKph9XhMjezf6F4TpYjaUSuPt5J0fZXlSag0LmZAsTmdGGqPp4pQFA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.28.1': + resolution: {integrity: sha512-prduvrMKU6NzMq6nxzQw445zXgaDBbMQvmKSJaxpaZ5R1QDM8w+eGxo6Y/jhT/cLoCvnZI42oEqf9KQNYz1fqQ==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.28.1': + resolution: {integrity: sha512-WsvbOunsUk0wccO/TV4o7IKgloJ942hVFK1CLatwv6TJspcCZb9umQkPdvB7FihmdxgaKR5JyxDjWpCOp4uZlQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.28.1': + resolution: {integrity: sha512-HTDPdY1caUcU4qK23FeeGxCdJF64cKkqajU0iBnTVxS8F7H/7BewvYoG+va1KPSL63kQ1PGNyiwKOfReavzvNA==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.28.1': + resolution: {integrity: sha512-m/uYasxkUevcFTeRSM9TeLyPe2QDuqtjkeoTpP9SW0XxUWfcYrGDMkO/m2tTw+4NMAF9P2fU3Mw4ahNvo7QmsQ==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.28.1': + resolution: {integrity: sha512-QAg11ZIt6mcmzpNE6JZBpKfJaKkqTm1A9+y9O+frdZJEuhQxiugM05gnCWiANHj4RmbgeVJpTdmKRmH/a+0QbA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.28.1': + resolution: {integrity: sha512-dRP9PEBfolq1dmMcFqbEPSd9VlRuVWEGSmbxVEfiq2cs2jlZAl0YNxFzAQS2OrQmsLBLAATDMb3Z6MFv5vOcXg==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.28.1': + resolution: {integrity: sha512-uGr8khxO+CKT4XU8ZUH1TTEUtlktK6Kgtv0+6bIFSeiSlnGJHG1tSFSjm41uQ9sAO/5ULx9mWOz70jYLyv1QkA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.28.1': + resolution: {integrity: sha512-QF54q8MYGAqMLrX2t7tNpi01nvq5RI59UBNx+3+37zoKX5KViPo/gk2QLhsuqok05sSCRluj0D00LzCwBikb0A==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loongarch64-gnu@4.28.1': + resolution: {integrity: sha512-vPul4uodvWvLhRco2w0GcyZcdyBfpfDRgNKU+p35AWEbJ/HPs1tOUrkSueVbBS0RQHAf/A+nNtDpvw95PeVKOA==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.28.1': + resolution: {integrity: sha512-pTnTdBuC2+pt1Rmm2SV7JWRqzhYpEILML4PKODqLz+C7Ou2apEV52h19CR7es+u04KlqplggmN9sqZlekg3R1A==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.28.1': + resolution: {integrity: sha512-vWXy1Nfg7TPBSuAncfInmAI/WZDd5vOklyLJDdIRKABcZWojNDY0NJwruY2AcnCLnRJKSaBgf/GiJfauu8cQZA==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.28.1': + resolution: {integrity: sha512-/yqC2Y53oZjb0yz8PVuGOQQNOTwxcizudunl/tFs1aLvObTclTwZ0JhXF2XcPT/zuaymemCDSuuUPXJJyqeDOg==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.28.1': + resolution: {integrity: sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.28.1': + resolution: {integrity: sha512-xQTDVzSGiMlSshpJCtudbWyRfLaNiVPXt1WgdWTwWz9n0U12cI2ZVtWe/Jgwyv/6wjL7b66uu61Vg0POWVfz4g==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.28.1': + resolution: {integrity: sha512-wSXmDRVupJstFP7elGMgv+2HqXelQhuNf+IS4V+nUpNVi/GUiBgDmfwD0UGN3pcAnWsgKG3I52wMOBnk1VHr/A==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.28.1': + resolution: {integrity: sha512-ZkyTJ/9vkgrE/Rk9vhMXhf8l9D+eAhbAVbsGsXKy2ohmJaWg0LPQLnIxRdRp/bKyr8tXuPlXhIoGlEB5XpJnGA==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.28.1': + resolution: {integrity: sha512-ZvK2jBafvttJjoIdKm/Q/Bh7IJ1Ose9IBOwpOXcOvW3ikGTQGmKDgxTC6oCAzW6PynbkKP8+um1du81XJHZ0JA==} + cpu: [x64] + os: [win32] + + '@tanstack/virtual-core@3.11.2': + resolution: {integrity: sha512-vTtpNt7mKCiZ1pwU9hfKPhpdVO2sVzFQsxoVBGtOSHxlrRRzYr8iQ2TlwbAcRYCcEiZ9ECAM8kBzH0v2+VzfKw==} + + '@tanstack/vue-virtual@3.11.2': + resolution: {integrity: sha512-y0b1p1FTlzxcSt/ZdGWY1AZ52ddwSU69pvFRYAELUSdLLxV8QOPe9dyT/KATO43UCb3DAwiyzi96h2IoYstBOQ==} + peerDependencies: + vue: ^2.7.0 || ^3.0.0 + + '@trpc/client@10.45.2': + resolution: {integrity: sha512-ykALM5kYWTLn1zYuUOZ2cPWlVfrXhc18HzBDyRhoPYN0jey4iQHEFSEowfnhg1RvYnrAVjNBgHNeSAXjrDbGwg==} + peerDependencies: + '@trpc/server': 10.45.2 + + '@trpc/server@10.45.2': + resolution: {integrity: sha512-wOrSThNNE4HUnuhJG6PfDRp4L2009KDVxsd+2VYH8ro6o/7/jwYZ8Uu5j+VaW+mOmc8EHerHzGcdbGNQSAUPgg==} + + '@types/body-parser@1.19.5': + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/express-serve-static-core@5.0.2': + resolution: {integrity: sha512-vluaspfvWEtE4vcSDlKRNer52DvOGrB2xv6diXy6UKyKW0lqZiWHGNApSyxOv+8DE5Z27IzVvE7hNkxg7EXIcg==} + + '@types/express@5.0.0': + resolution: {integrity: sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==} + + '@types/http-errors@2.0.4': + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + + '@types/lodash-es@4.17.12': + resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} + + '@types/lodash@4.17.13': + resolution: {integrity: sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==} + + '@types/mime@1.3.5': + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + + '@types/ms@0.7.34': + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + + '@types/node@22.10.2': + resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} + + '@types/qs@6.9.17': + resolution: {integrity: sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==} + + '@types/range-parser@1.2.7': + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + + '@types/send@0.17.4': + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + + '@types/serve-static@1.15.7': + resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + + '@types/web-bluetooth@0.0.20': + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} + + '@types/ws@8.5.13': + resolution: {integrity: sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==} + + '@vitejs/plugin-vue@5.2.1': + resolution: {integrity: sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 + vue: ^3.2.25 + + '@vue/compiler-core@3.5.13': + resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} + + '@vue/compiler-dom@3.5.13': + resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} + + '@vue/compiler-sfc@3.5.13': + resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} + + '@vue/compiler-ssr@3.5.13': + resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} + + '@vue/devtools-api@6.6.4': + resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} + + '@vue/reactivity@3.5.13': + resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==} + + '@vue/runtime-core@3.5.13': + resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==} + + '@vue/runtime-dom@3.5.13': + resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==} + + '@vue/server-renderer@3.5.13': + resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==} + peerDependencies: + vue: 3.5.13 + + '@vue/shared@3.5.13': + resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} + + '@vueuse/core@12.0.0': + resolution: {integrity: sha512-C12RukhXiJCbx4MGhjmd/gH52TjJsc3G0E0kQj/kb19H3Nt6n1CA4DRWuTdWWcaFRdlTe0npWDS942mvacvNBw==} + + '@vueuse/integrations@12.0.0': + resolution: {integrity: sha512-M16fkVp+i4je75I7uvifMbJKHFrjx2+0LuHEH9++iPJ11zc4SRy5NdRN0z2NR+a54eQ5Gs2Ds7pby5ST96zxCA==} + peerDependencies: + async-validator: ^4 + axios: ^1 + change-case: ^5 + drauu: ^0.4 + focus-trap: ^7 + fuse.js: ^7 + idb-keyval: ^6 + jwt-decode: ^4 + nprogress: ^0.2 + qrcode: ^1.5 + sortablejs: ^1 + universal-cookie: ^7 + peerDependenciesMeta: + async-validator: + optional: true + axios: + optional: true + change-case: + optional: true + drauu: + optional: true + focus-trap: + optional: true + fuse.js: + optional: true + idb-keyval: + optional: true + jwt-decode: + optional: true + nprogress: + optional: true + qrcode: + optional: true + sortablejs: + optional: true + universal-cookie: + optional: true + + '@vueuse/metadata@12.0.0': + resolution: {integrity: sha512-Yzimd1D3sjxTDOlF05HekU5aSGdKjxhuhRFHA7gDWLn57PRbBIh+SF5NmjhJ0WRgF3my7T8LBucyxdFJjIfRJQ==} + + '@vueuse/shared@12.0.0': + resolution: {integrity: sha512-3i6qtcq2PIio5i/vVYidkkcgvmTjCqrf26u+Fd4LhnbBmIT6FN8y6q/GJERp8lfcB9zVEfjdV0Br0443qZuJpw==} + + '@windicss/config@1.9.4': + resolution: {integrity: sha512-vKXJlEC01/LFuYLF6XZsrCv13QKsxByWFqzDRctTva+O4yqr5j0e5VWB4Dr2tgzVbZuYG5ewg7qywAI/9JD0Cw==} + + '@windicss/plugin-utils@1.9.4': + resolution: {integrity: sha512-GUAX0z+wnq6Rn3+YGJli/keGja73+a6I/PtTpH8EMlNNHrHBbqsbyY5+25QagV39rHwTe/IbkiSdD3csP8L6MA==} + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + + array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + + body-parser@1.20.3: + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + bufferutil@4.0.8: + resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} + engines: {node: '>=6.14.2'} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + call-bind-apply-helpers@1.0.1: + resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} + engines: {node: '>= 0.4'} + + call-bound@1.0.3: + resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} + engines: {node: '>= 0.4'} + + chokidar@4.0.2: + resolution: {integrity: sha512-/b57FK+bblSU+dfewfFe0rT1YjVDfOmeLQwCAuC+vwvgLkXboATqqmy+Ipux6JrF6L5joe5CBnFOw+gLWH6yKg==} + engines: {node: '>= 14.16.0'} + + citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + + clipboardy@4.0.0: + resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} + engines: {node: '>=18'} + + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} + + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + cookie-es@1.2.2: + resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} + + cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + + cookie@0.7.1: + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} + engines: {node: '>= 0.6'} + + copy-anything@3.0.5: + resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} + engines: {node: '>=12.13'} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + crossws@0.3.1: + resolution: {integrity: sha512-HsZgeVYaG+b5zA+9PbIPGq4+J/CJynJuearykPsXx4V/eMhyQ5EDVg3Ak2FBZtVXCiOLu/U7IiwDHTr9MA+IKw==} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + destr@2.0.3: + resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + engines: {node: '>=18'} + hasBin: true + + esbuild@0.24.0: + resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} + engines: {node: '>=18'} + hasBin: true + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + esprima-extract-comments@1.1.0: + resolution: {integrity: sha512-sBQUnvJwpeE9QnPrxh7dpI/dp67erYG4WXEAreAMoelPRpMR7NWb4YtwRPn9b+H1uLQKl/qS8WYmyaljTpjIsw==} + engines: {node: '>=4'} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + + express@4.21.2: + resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} + engines: {node: '>= 0.10.0'} + + extract-comments@1.1.0: + resolution: {integrity: sha512-dzbZV2AdSSVW/4E7Ti5hZdHWbA+Z80RJsJhr5uiL10oyjl/gy7/o+HI1HwK4/WSZhlq4SNKU3oUzXlM13Qx02Q==} + engines: {node: '>=6'} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + finalhandler@1.3.1: + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} + engines: {node: '>= 0.8'} + + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-intrinsic@1.2.6: + resolution: {integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==} + engines: {node: '>= 0.4'} + + get-port-please@3.1.2: + resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + + get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + globals@15.14.0: + resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==} + engines: {node: '>=18'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + h3@1.13.0: + resolution: {integrity: sha512-vFEAu/yf8UMUcB4s43OaDaigcqpQd14yanmOsn+NcRX3/guSKncyE2rOYhq8RIchgJrPSs/QiIddnTTR1ddiAg==} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + http-shutdown@1.2.2: + resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + immer@10.1.1: + resolution: {integrity: sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==} + + immutable@5.0.3: + resolution: {integrity: sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + iron-webcrypto@1.2.1: + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-what@4.1.16: + resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} + engines: {node: '>=12.13'} + + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + + is64bit@2.0.0: + resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} + engines: {node: '>=18'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + jiti@1.21.7: + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} + hasBin: true + + jiti@2.4.2: + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + hasBin: true + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + + listhen@1.9.0: + resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==} + hasBin: true + + local-pkg@0.5.1: + resolution: {integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==} + engines: {node: '>=14'} + + lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + + math-intrinsics@1.0.0: + resolution: {integrity: sha512-4MqMiKP90ybymYvsut0CH2g4XWbfLtmlCkXmtmdcDCxNB+mQcu1w/1+L/VD7vi/PSv7X2JYV7SCcR+jiPXnQtA==} + engines: {node: '>= 0.4'} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + mlly@1.7.3: + resolution: {integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanoid@5.0.9: + resolution: {integrity: sha512-Aooyr6MXU6HpvvWXKoVoXwKMs/KyVakWwg7xQfv5/S/RIgJMy0Ifa45H9qqYy7pTCszrHzP21Uk4PZq2HpEM8Q==} + engines: {node: ^18 || >=20} + hasBin: true + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + + node-fetch-native@1.6.4: + resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} + + node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} + engines: {node: '>= 0.4'} + + ohash@1.1.4: + resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + package-manager-detector@0.2.7: + resolution: {integrity: sha512-g4+387DXDKlZzHkP+9FLt8yKj8+/3tOkPv7DVTJGGRm00RkEWgqbFstX1mXJ4M0VDYhUqsTOiISqNOJnhAu3PQ==} + + parse-code-context@1.0.0: + resolution: {integrity: sha512-OZQaqKaQnR21iqhlnPfVisFjBWjhnMl5J9MgbP8xC+EwoVqbXrq78lp+9Zb3ahmLzrIX5Us/qbvBnaS3hkH6OA==} + engines: {node: '>=6'} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-to-regexp@0.1.12: + resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pinia@2.3.0: + resolution: {integrity: sha512-ohZj3jla0LL0OH5PlLTDMzqKiVw2XARmC1XYLdLWIPBMdhDW/123ZWr4zVAhtJm+aoSkFa13pYXskAvAscIkhQ==} + peerDependencies: + typescript: '>=4.4.4' + vue: ^2.7.0 || ^3.5.11 + peerDependenciesMeta: + typescript: + optional: true + + pkg-types@1.2.1: + resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} + + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} + engines: {node: ^10 || ^12 || >=14} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + engines: {node: '>=0.6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + radix3@1.1.2: + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + + readdirp@4.0.2: + resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} + engines: {node: '>= 14.16.0'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rollup@4.28.1: + resolution: {integrity: sha512-61fXYl/qNVinKmGSTHAZ6Yy8I3YIJC/r2m9feHo6SwVAVcLT5MPwOUFe7EuURA/4m0NR8lXG4BBXuo/IZEsjMg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sass@1.83.0: + resolution: {integrity: sha512-qsSxlayzoOjdvXMVLkzF84DJFc2HZEL/rFyGIKbbilYtAvlCxyuzUeff9LawTn4btVnLKg75Z8MMr1lxU1lfGw==} + engines: {node: '>=14.0.0'} + hasBin: true + + send@0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} + engines: {node: '>= 0.8.0'} + + serve-static@1.16.2: + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} + engines: {node: '>= 0.8.0'} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + std-env@3.8.0: + resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + superjson@2.2.2: + resolution: {integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==} + engines: {node: '>=16'} + + system-architecture@0.1.0: + resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} + engines: {node: '>=18'} + + tinyexec@0.3.1: + resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + tsx@4.19.2: + resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==} + engines: {node: '>=18.0.0'} + hasBin: true + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + typescript@5.7.2: + resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + + uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + + unenv@1.10.0: + resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + unplugin-icons@0.22.0: + resolution: {integrity: sha512-CP+iZq5U7doOifer5bcM0jQ9t3Is7EGybIYt3myVxceI8Zuk8EZEpe1NPtJvh7iqMs1VdbK0L41t9+um9VuuLw==} + peerDependencies: + '@svgr/core': '>=7.0.0' + '@svgx/core': ^1.0.1 + '@vue/compiler-sfc': ^3.0.2 || ^2.7.0 + svelte: ^3.0.0 || ^4.0.0 || ^5.0.0 + vue-template-compiler: ^2.6.12 + vue-template-es2015-compiler: ^1.9.0 + peerDependenciesMeta: + '@svgr/core': + optional: true + '@svgx/core': + optional: true + '@vue/compiler-sfc': + optional: true + svelte: + optional: true + vue-template-compiler: + optional: true + vue-template-es2015-compiler: + optional: true + + unplugin@2.1.0: + resolution: {integrity: sha512-us4j03/499KhbGP8BU7Hrzrgseo+KdfJYWcbcajCOqsAyb8Gk0Yn2kiUIcZISYCb1JFaZfIuG3b42HmguVOKCQ==} + engines: {node: '>=18.12.0'} + + untun@0.1.3: + resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} + hasBin: true + + uqr@0.1.2: + resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} + + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + vite-plugin-pages@0.32.4: + resolution: {integrity: sha512-OM8CNb8mAzyYR8ASRC0+2LXVB8ecR/5JHc5RpxbWtF+CmhjhmIELs0iV5y8qvU48soZbk+NsFOYlhoIcjw3+ew==} + peerDependencies: + '@solidjs/router': '*' + '@vue/compiler-sfc': ^2.7.0 || ^3.0.0 + react-router: '*' + vite: ^2.0.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0 || ^6.0.0 + vue-router: '*' + peerDependenciesMeta: + '@solidjs/router': + optional: true + '@vue/compiler-sfc': + optional: true + react-router: + optional: true + vue-router: + optional: true + + vite-plugin-windicss@1.9.4: + resolution: {integrity: sha512-3t1AUVrs2XBXGc2BefRPRvy1CLy8qA/5A1J1Z73Ej1DIx+puXn39MQSWluxZ2FHEz8z9OEIvsoIIPc/s/P3OmQ==} + peerDependencies: + vite: '*' + + vite@6.0.3: + resolution: {integrity: sha512-Cmuo5P0ENTN6HxLSo6IHsjCLn/81Vgrp81oaiFFMRa8gGDj5xEjIcEpf2ZymZtZR8oU0P2JX5WuUp/rlXcHkAw==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vue-demi@0.14.10: + resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} + engines: {node: '>=12'} + hasBin: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + + vue-router@4.5.0: + resolution: {integrity: sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==} + peerDependencies: + vue: ^3.2.0 + + vue@3.5.13: + resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + windicss@3.5.6: + resolution: {integrity: sha512-P1mzPEjgFMZLX0ZqfFht4fhV/FX8DTG7ERG1fBLiWvd34pTLVReS5CVsewKn9PApSgXnVfPWwvq+qUsRwpnwFA==} + engines: {node: '>= 12'} + hasBin: true + + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + 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 + + yaml@2.6.1: + resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} + engines: {node: '>= 14'} + hasBin: true + + zod@3.24.1: + resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} + +snapshots: + + '@antfu/install-pkg@0.4.1': + dependencies: + package-manager-detector: 0.2.7 + tinyexec: 0.3.1 + + '@antfu/install-pkg@0.5.0': + dependencies: + package-manager-detector: 0.2.7 + tinyexec: 0.3.1 + + '@antfu/utils@0.7.10': {} + + '@babel/helper-string-parser@7.25.9': {} + + '@babel/helper-validator-identifier@7.25.9': {} + + '@babel/parser@7.26.3': + dependencies: + '@babel/types': 7.26.3 + + '@babel/types@7.26.3': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + + '@esbuild/aix-ppc64@0.23.1': + optional: true + + '@esbuild/aix-ppc64@0.24.0': + optional: true + + '@esbuild/android-arm64@0.23.1': + optional: true + + '@esbuild/android-arm64@0.24.0': + optional: true + + '@esbuild/android-arm@0.23.1': + optional: true + + '@esbuild/android-arm@0.24.0': + optional: true + + '@esbuild/android-x64@0.23.1': + optional: true + + '@esbuild/android-x64@0.24.0': + optional: true + + '@esbuild/darwin-arm64@0.23.1': + optional: true + + '@esbuild/darwin-arm64@0.24.0': + optional: true + + '@esbuild/darwin-x64@0.23.1': + optional: true + + '@esbuild/darwin-x64@0.24.0': + optional: true + + '@esbuild/freebsd-arm64@0.23.1': + optional: true + + '@esbuild/freebsd-arm64@0.24.0': + optional: true + + '@esbuild/freebsd-x64@0.23.1': + optional: true + + '@esbuild/freebsd-x64@0.24.0': + optional: true + + '@esbuild/linux-arm64@0.23.1': + optional: true + + '@esbuild/linux-arm64@0.24.0': + optional: true + + '@esbuild/linux-arm@0.23.1': + optional: true + + '@esbuild/linux-arm@0.24.0': + optional: true + + '@esbuild/linux-ia32@0.23.1': + optional: true + + '@esbuild/linux-ia32@0.24.0': + optional: true + + '@esbuild/linux-loong64@0.23.1': + optional: true + + '@esbuild/linux-loong64@0.24.0': + optional: true + + '@esbuild/linux-mips64el@0.23.1': + optional: true + + '@esbuild/linux-mips64el@0.24.0': + optional: true + + '@esbuild/linux-ppc64@0.23.1': + optional: true + + '@esbuild/linux-ppc64@0.24.0': + optional: true + + '@esbuild/linux-riscv64@0.23.1': + optional: true + + '@esbuild/linux-riscv64@0.24.0': + optional: true + + '@esbuild/linux-s390x@0.23.1': + optional: true + + '@esbuild/linux-s390x@0.24.0': + optional: true + + '@esbuild/linux-x64@0.23.1': + optional: true + + '@esbuild/linux-x64@0.24.0': + optional: true + + '@esbuild/netbsd-x64@0.23.1': + optional: true + + '@esbuild/netbsd-x64@0.24.0': + optional: true + + '@esbuild/openbsd-arm64@0.23.1': + optional: true + + '@esbuild/openbsd-arm64@0.24.0': + optional: true + + '@esbuild/openbsd-x64@0.23.1': + optional: true + + '@esbuild/openbsd-x64@0.24.0': + optional: true + + '@esbuild/sunos-x64@0.23.1': + optional: true + + '@esbuild/sunos-x64@0.24.0': + optional: true + + '@esbuild/win32-arm64@0.23.1': + optional: true + + '@esbuild/win32-arm64@0.24.0': + optional: true + + '@esbuild/win32-ia32@0.23.1': + optional: true + + '@esbuild/win32-ia32@0.24.0': + optional: true + + '@esbuild/win32-x64@0.23.1': + optional: true + + '@esbuild/win32-x64@0.24.0': + optional: true + + '@fontsource-variable/inter@5.1.0': {} + + '@fontsource/titan-one@5.1.0': {} + + '@headlessui/vue@1.7.23(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@tanstack/vue-virtual': 3.11.2(vue@3.5.13(typescript@5.7.2)) + vue: 3.5.13(typescript@5.7.2) + + '@iconify-json/ph@1.2.2': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify/types@2.0.0': {} + + '@iconify/utils@2.2.1': + dependencies: + '@antfu/install-pkg': 0.4.1 + '@antfu/utils': 0.7.10 + '@iconify/types': 2.0.0 + debug: 4.4.0 + globals: 15.14.0 + kolorist: 1.8.0 + local-pkg: 0.5.1 + mlly: 1.7.3 + transitivePeerDependencies: + - supports-color + + '@interactjs/actions@1.10.27(@interactjs/core@1.10.27(@interactjs/utils@1.10.27))(@interactjs/utils@1.10.27)': + dependencies: + '@interactjs/core': 1.10.27(@interactjs/utils@1.10.27) + '@interactjs/utils': 1.10.27 + optionalDependencies: + '@interactjs/interact': 1.10.27 + + '@interactjs/auto-start@1.10.27(@interactjs/core@1.10.27(@interactjs/utils@1.10.27))(@interactjs/utils@1.10.27)': + dependencies: + '@interactjs/core': 1.10.27(@interactjs/utils@1.10.27) + '@interactjs/utils': 1.10.27 + optionalDependencies: + '@interactjs/interact': 1.10.27 + + '@interactjs/core@1.10.27(@interactjs/utils@1.10.27)': + dependencies: + '@interactjs/utils': 1.10.27 + + '@interactjs/interact@1.10.27': + dependencies: + '@interactjs/core': 1.10.27(@interactjs/utils@1.10.27) + '@interactjs/utils': 1.10.27 + + '@interactjs/utils@1.10.27': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@parcel/watcher-android-arm64@2.5.0': + optional: true + + '@parcel/watcher-darwin-arm64@2.5.0': + optional: true + + '@parcel/watcher-darwin-x64@2.5.0': + optional: true + + '@parcel/watcher-freebsd-x64@2.5.0': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.5.0': + optional: true + + '@parcel/watcher-linux-arm-musl@2.5.0': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.5.0': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.5.0': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.5.0': + optional: true + + '@parcel/watcher-linux-x64-musl@2.5.0': + optional: true + + '@parcel/watcher-wasm@2.5.0': + dependencies: + is-glob: 4.0.3 + micromatch: 4.0.8 + + '@parcel/watcher-win32-arm64@2.5.0': + optional: true + + '@parcel/watcher-win32-ia32@2.5.0': + optional: true + + '@parcel/watcher-win32-x64@2.5.0': + optional: true + + '@parcel/watcher@2.5.0': + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.8 + node-addon-api: 7.1.1 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.5.0 + '@parcel/watcher-darwin-arm64': 2.5.0 + '@parcel/watcher-darwin-x64': 2.5.0 + '@parcel/watcher-freebsd-x64': 2.5.0 + '@parcel/watcher-linux-arm-glibc': 2.5.0 + '@parcel/watcher-linux-arm-musl': 2.5.0 + '@parcel/watcher-linux-arm64-glibc': 2.5.0 + '@parcel/watcher-linux-arm64-musl': 2.5.0 + '@parcel/watcher-linux-x64-glibc': 2.5.0 + '@parcel/watcher-linux-x64-musl': 2.5.0 + '@parcel/watcher-win32-arm64': 2.5.0 + '@parcel/watcher-win32-ia32': 2.5.0 + '@parcel/watcher-win32-x64': 2.5.0 + + '@rollup/rollup-android-arm-eabi@4.28.1': + optional: true + + '@rollup/rollup-android-arm64@4.28.1': + optional: true + + '@rollup/rollup-darwin-arm64@4.28.1': + optional: true + + '@rollup/rollup-darwin-x64@4.28.1': + optional: true + + '@rollup/rollup-freebsd-arm64@4.28.1': + optional: true + + '@rollup/rollup-freebsd-x64@4.28.1': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.28.1': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.28.1': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.28.1': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.28.1': + optional: true + + '@rollup/rollup-linux-loongarch64-gnu@4.28.1': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.28.1': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.28.1': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.28.1': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.28.1': + optional: true + + '@rollup/rollup-linux-x64-musl@4.28.1': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.28.1': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.28.1': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.28.1': + optional: true + + '@tanstack/virtual-core@3.11.2': {} + + '@tanstack/vue-virtual@3.11.2(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@tanstack/virtual-core': 3.11.2 + vue: 3.5.13(typescript@5.7.2) + + '@trpc/client@10.45.2(@trpc/server@10.45.2)': + dependencies: + '@trpc/server': 10.45.2 + + '@trpc/server@10.45.2': {} + + '@types/body-parser@1.19.5': + dependencies: + '@types/connect': 3.4.38 + '@types/node': 22.10.2 + + '@types/connect@3.4.38': + dependencies: + '@types/node': 22.10.2 + + '@types/debug@4.1.12': + dependencies: + '@types/ms': 0.7.34 + + '@types/estree@1.0.6': {} + + '@types/express-serve-static-core@5.0.2': + dependencies: + '@types/node': 22.10.2 + '@types/qs': 6.9.17 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 + + '@types/express@5.0.0': + dependencies: + '@types/body-parser': 1.19.5 + '@types/express-serve-static-core': 5.0.2 + '@types/qs': 6.9.17 + '@types/serve-static': 1.15.7 + + '@types/http-errors@2.0.4': {} + + '@types/lodash-es@4.17.12': + dependencies: + '@types/lodash': 4.17.13 + + '@types/lodash@4.17.13': {} + + '@types/mime@1.3.5': {} + + '@types/ms@0.7.34': {} + + '@types/node@22.10.2': + dependencies: + undici-types: 6.20.0 + + '@types/qs@6.9.17': {} + + '@types/range-parser@1.2.7': {} + + '@types/send@0.17.4': + dependencies: + '@types/mime': 1.3.5 + '@types/node': 22.10.2 + + '@types/serve-static@1.15.7': + dependencies: + '@types/http-errors': 2.0.4 + '@types/node': 22.10.2 + '@types/send': 0.17.4 + + '@types/web-bluetooth@0.0.20': {} + + '@types/ws@8.5.13': + dependencies: + '@types/node': 22.10.2 + + '@vitejs/plugin-vue@5.2.1(vite@6.0.3(@types/node@22.10.2)(jiti@2.4.2)(sass@1.83.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))': + dependencies: + vite: 6.0.3(@types/node@22.10.2)(jiti@2.4.2)(sass@1.83.0)(tsx@4.19.2)(yaml@2.6.1) + vue: 3.5.13(typescript@5.7.2) + + '@vue/compiler-core@3.5.13': + dependencies: + '@babel/parser': 7.26.3 + '@vue/shared': 3.5.13 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.13': + dependencies: + '@vue/compiler-core': 3.5.13 + '@vue/shared': 3.5.13 + + '@vue/compiler-sfc@3.5.13': + dependencies: + '@babel/parser': 7.26.3 + '@vue/compiler-core': 3.5.13 + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-ssr': 3.5.13 + '@vue/shared': 3.5.13 + estree-walker: 2.0.2 + magic-string: 0.30.17 + postcss: 8.4.49 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.13': + dependencies: + '@vue/compiler-dom': 3.5.13 + '@vue/shared': 3.5.13 + + '@vue/devtools-api@6.6.4': {} + + '@vue/reactivity@3.5.13': + dependencies: + '@vue/shared': 3.5.13 + + '@vue/runtime-core@3.5.13': + dependencies: + '@vue/reactivity': 3.5.13 + '@vue/shared': 3.5.13 + + '@vue/runtime-dom@3.5.13': + dependencies: + '@vue/reactivity': 3.5.13 + '@vue/runtime-core': 3.5.13 + '@vue/shared': 3.5.13 + csstype: 3.1.3 + + '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue/compiler-ssr': 3.5.13 + '@vue/shared': 3.5.13 + vue: 3.5.13(typescript@5.7.2) + + '@vue/shared@3.5.13': {} + + '@vueuse/core@12.0.0(typescript@5.7.2)': + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 12.0.0 + '@vueuse/shared': 12.0.0(typescript@5.7.2) + vue: 3.5.13(typescript@5.7.2) + transitivePeerDependencies: + - typescript + + '@vueuse/integrations@12.0.0(typescript@5.7.2)': + dependencies: + '@vueuse/core': 12.0.0(typescript@5.7.2) + '@vueuse/shared': 12.0.0(typescript@5.7.2) + vue: 3.5.13(typescript@5.7.2) + transitivePeerDependencies: + - typescript + + '@vueuse/metadata@12.0.0': {} + + '@vueuse/shared@12.0.0(typescript@5.7.2)': + dependencies: + vue: 3.5.13(typescript@5.7.2) + transitivePeerDependencies: + - typescript + + '@windicss/config@1.9.4': + dependencies: + debug: 4.4.0 + jiti: 1.21.7 + windicss: 3.5.6 + transitivePeerDependencies: + - supports-color + + '@windicss/plugin-utils@1.9.4': + dependencies: + '@antfu/utils': 0.7.10 + '@windicss/config': 1.9.4 + debug: 4.4.0 + fast-glob: 3.3.2 + magic-string: 0.30.17 + micromatch: 4.0.8 + windicss: 3.5.6 + transitivePeerDependencies: + - supports-color + + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + acorn@8.14.0: {} + + array-flatten@1.1.1: {} + + body-parser@1.20.3: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.13.0 + raw-body: 2.5.2 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + bufferutil@4.0.8: + dependencies: + node-gyp-build: 4.8.4 + + bytes@3.1.2: {} + + call-bind-apply-helpers@1.0.1: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bound@1.0.3: + dependencies: + call-bind-apply-helpers: 1.0.1 + get-intrinsic: 1.2.6 + + chokidar@4.0.2: + dependencies: + readdirp: 4.0.2 + + citty@0.1.6: + dependencies: + consola: 3.2.3 + + clipboardy@4.0.0: + dependencies: + execa: 8.0.1 + is-wsl: 3.1.0 + is64bit: 2.0.0 + + confbox@0.1.8: {} + + consola@3.2.3: {} + + content-disposition@0.5.4: + dependencies: + safe-buffer: 5.2.1 + + content-type@1.0.5: {} + + cookie-es@1.2.2: {} + + cookie-signature@1.0.6: {} + + cookie@0.7.1: {} + + copy-anything@3.0.5: + dependencies: + is-what: 4.1.16 + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crossws@0.3.1: + dependencies: + uncrypto: 0.1.3 + + csstype@3.1.3: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@4.4.0: + dependencies: + ms: 2.1.3 + + defu@6.1.4: {} + + depd@2.0.0: {} + + dequal@2.0.3: {} + + destr@2.0.3: {} + + destroy@1.2.0: {} + + detect-libc@1.0.3: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + ee-first@1.1.1: {} + + encodeurl@1.0.2: {} + + encodeurl@2.0.0: {} + + entities@4.5.0: {} + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-object-atoms@1.0.0: + dependencies: + es-errors: 1.3.0 + + esbuild@0.23.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 + + esbuild@0.24.0: + optionalDependencies: + '@esbuild/aix-ppc64': 0.24.0 + '@esbuild/android-arm': 0.24.0 + '@esbuild/android-arm64': 0.24.0 + '@esbuild/android-x64': 0.24.0 + '@esbuild/darwin-arm64': 0.24.0 + '@esbuild/darwin-x64': 0.24.0 + '@esbuild/freebsd-arm64': 0.24.0 + '@esbuild/freebsd-x64': 0.24.0 + '@esbuild/linux-arm': 0.24.0 + '@esbuild/linux-arm64': 0.24.0 + '@esbuild/linux-ia32': 0.24.0 + '@esbuild/linux-loong64': 0.24.0 + '@esbuild/linux-mips64el': 0.24.0 + '@esbuild/linux-ppc64': 0.24.0 + '@esbuild/linux-riscv64': 0.24.0 + '@esbuild/linux-s390x': 0.24.0 + '@esbuild/linux-x64': 0.24.0 + '@esbuild/netbsd-x64': 0.24.0 + '@esbuild/openbsd-arm64': 0.24.0 + '@esbuild/openbsd-x64': 0.24.0 + '@esbuild/sunos-x64': 0.24.0 + '@esbuild/win32-arm64': 0.24.0 + '@esbuild/win32-ia32': 0.24.0 + '@esbuild/win32-x64': 0.24.0 + + escape-html@1.0.3: {} + + esprima-extract-comments@1.1.0: + dependencies: + esprima: 4.0.1 + + esprima@4.0.1: {} + + estree-walker@2.0.2: {} + + etag@1.8.1: {} + + eventemitter3@5.0.1: {} + + execa@8.0.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + + express@4.21.2: + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.3 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.7.1 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.3.1 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.3 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.12 + proxy-addr: 2.0.7 + qs: 6.13.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.19.0 + serve-static: 1.16.2 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + extract-comments@1.1.0: + dependencies: + esprima-extract-comments: 1.1.0 + parse-code-context: 1.0.0 + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + finalhandler@1.3.1: + dependencies: + debug: 2.6.9 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + forwarded@0.2.0: {} + + fresh@0.5.2: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + get-intrinsic@1.2.6: + dependencies: + call-bind-apply-helpers: 1.0.1 + dunder-proto: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + function-bind: 1.1.2 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.0.0 + + get-port-please@3.1.2: {} + + get-stream@8.0.1: {} + + get-tsconfig@4.8.1: + dependencies: + resolve-pkg-maps: 1.0.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + globals@15.14.0: {} + + gopd@1.2.0: {} + + h3@1.13.0: + dependencies: + cookie-es: 1.2.2 + crossws: 0.3.1 + defu: 6.1.4 + destr: 2.0.3 + iron-webcrypto: 1.2.1 + ohash: 1.1.4 + radix3: 1.1.2 + ufo: 1.5.4 + uncrypto: 0.1.3 + unenv: 1.10.0 + + has-symbols@1.1.0: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + http-shutdown@1.2.2: {} + + human-signals@5.0.0: {} + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + immer@10.1.1: {} + + immutable@5.0.3: {} + + inherits@2.0.4: {} + + ipaddr.js@1.9.1: {} + + iron-webcrypto@1.2.1: {} + + is-docker@3.0.0: {} + + is-extglob@2.1.1: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-number@7.0.0: {} + + is-stream@3.0.0: {} + + is-what@4.1.16: {} + + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + + is64bit@2.0.0: + dependencies: + system-architecture: 0.1.0 + + isexe@2.0.0: {} + + jiti@1.21.7: {} + + jiti@2.4.2: {} + + json5@2.2.3: {} + + kolorist@1.8.0: {} + + listhen@1.9.0: + dependencies: + '@parcel/watcher': 2.5.0 + '@parcel/watcher-wasm': 2.5.0 + citty: 0.1.6 + clipboardy: 4.0.0 + consola: 3.2.3 + crossws: 0.3.1 + defu: 6.1.4 + get-port-please: 3.1.2 + h3: 1.13.0 + http-shutdown: 1.2.2 + jiti: 2.4.2 + mlly: 1.7.3 + node-forge: 1.3.1 + pathe: 1.1.2 + std-env: 3.8.0 + ufo: 1.5.4 + untun: 0.1.3 + uqr: 0.1.2 + + local-pkg@0.5.1: + dependencies: + mlly: 1.7.3 + pkg-types: 1.2.1 + + lodash-es@4.17.21: {} + + magic-string@0.30.17: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + math-intrinsics@1.0.0: {} + + media-typer@0.3.0: {} + + merge-descriptors@1.0.3: {} + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + methods@1.1.2: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime@1.6.0: {} + + mime@3.0.0: {} + + mimic-fn@4.0.0: {} + + mlly@1.7.3: + dependencies: + acorn: 8.14.0 + pathe: 1.1.2 + pkg-types: 1.2.1 + ufo: 1.5.4 + + ms@2.0.0: {} + + ms@2.1.3: {} + + nanoid@3.3.8: {} + + nanoid@5.0.9: {} + + negotiator@0.6.3: {} + + node-addon-api@7.1.1: {} + + node-fetch-native@1.6.4: {} + + node-forge@1.3.1: {} + + node-gyp-build@4.8.4: {} + + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + + object-inspect@1.13.3: {} + + ohash@1.1.4: {} + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + + package-manager-detector@0.2.7: {} + + parse-code-context@1.0.0: {} + + parseurl@1.3.3: {} + + path-key@3.1.1: {} + + path-key@4.0.0: {} + + path-to-regexp@0.1.12: {} + + pathe@1.1.2: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + pinia@2.3.0(typescript@5.7.2)(vue@3.5.13(typescript@5.7.2)): + dependencies: + '@vue/devtools-api': 6.6.4 + vue: 3.5.13(typescript@5.7.2) + vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.2)) + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - '@vue/composition-api' + + pkg-types@1.2.1: + dependencies: + confbox: 0.1.8 + mlly: 1.7.3 + pathe: 1.1.2 + + postcss@8.4.49: + dependencies: + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + qs@6.13.0: + dependencies: + side-channel: 1.1.0 + + queue-microtask@1.2.3: {} + + radix3@1.1.2: {} + + range-parser@1.2.1: {} + + raw-body@2.5.2: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + readdirp@4.0.2: {} + + resolve-pkg-maps@1.0.0: {} + + reusify@1.0.4: {} + + rollup@4.28.1: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.28.1 + '@rollup/rollup-android-arm64': 4.28.1 + '@rollup/rollup-darwin-arm64': 4.28.1 + '@rollup/rollup-darwin-x64': 4.28.1 + '@rollup/rollup-freebsd-arm64': 4.28.1 + '@rollup/rollup-freebsd-x64': 4.28.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.28.1 + '@rollup/rollup-linux-arm-musleabihf': 4.28.1 + '@rollup/rollup-linux-arm64-gnu': 4.28.1 + '@rollup/rollup-linux-arm64-musl': 4.28.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.28.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.28.1 + '@rollup/rollup-linux-riscv64-gnu': 4.28.1 + '@rollup/rollup-linux-s390x-gnu': 4.28.1 + '@rollup/rollup-linux-x64-gnu': 4.28.1 + '@rollup/rollup-linux-x64-musl': 4.28.1 + '@rollup/rollup-win32-arm64-msvc': 4.28.1 + '@rollup/rollup-win32-ia32-msvc': 4.28.1 + '@rollup/rollup-win32-x64-msvc': 4.28.1 + fsevents: 2.3.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + sass@1.83.0: + dependencies: + chokidar: 4.0.2 + immutable: 5.0.3 + source-map-js: 1.2.1 + optionalDependencies: + '@parcel/watcher': 2.5.0 + + send@0.19.0: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + + serve-static@1.16.2: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.19.0 + transitivePeerDependencies: + - supports-color + + setprototypeof@1.2.0: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.3 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.6 + object-inspect: 1.13.3 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.6 + object-inspect: 1.13.3 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.3 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + signal-exit@4.1.0: {} + + source-map-js@1.2.1: {} + + statuses@2.0.1: {} + + std-env@3.8.0: {} + + strip-final-newline@3.0.0: {} + + superjson@2.2.2: + dependencies: + copy-anything: 3.0.5 + + system-architecture@0.1.0: {} + + tinyexec@0.3.1: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toidentifier@1.0.1: {} + + tsx@4.19.2: + dependencies: + esbuild: 0.23.1 + get-tsconfig: 4.8.1 + optionalDependencies: + fsevents: 2.3.3 + + type-is@1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + typescript@5.7.2: {} + + ufo@1.5.4: {} + + uncrypto@0.1.3: {} + + undici-types@6.20.0: {} + + unenv@1.10.0: + dependencies: + consola: 3.2.3 + defu: 6.1.4 + mime: 3.0.0 + node-fetch-native: 1.6.4 + pathe: 1.1.2 + + unpipe@1.0.0: {} + + unplugin-icons@0.22.0(@vue/compiler-sfc@3.5.13): + dependencies: + '@antfu/install-pkg': 0.5.0 + '@antfu/utils': 0.7.10 + '@iconify/utils': 2.2.1 + debug: 4.4.0 + kolorist: 1.8.0 + local-pkg: 0.5.1 + unplugin: 2.1.0 + optionalDependencies: + '@vue/compiler-sfc': 3.5.13 + transitivePeerDependencies: + - supports-color + + unplugin@2.1.0: + dependencies: + acorn: 8.14.0 + webpack-virtual-modules: 0.6.2 + + untun@0.1.3: + dependencies: + citty: 0.1.6 + consola: 3.2.3 + pathe: 1.1.2 + + uqr@0.1.2: {} + + utils-merge@1.0.1: {} + + vary@1.1.2: {} + + vite-plugin-pages@0.32.4(@vue/compiler-sfc@3.5.13)(vite@6.0.3(@types/node@22.10.2)(jiti@2.4.2)(sass@1.83.0)(tsx@4.19.2)(yaml@2.6.1))(vue-router@4.5.0(vue@3.5.13(typescript@5.7.2))): + dependencies: + '@types/debug': 4.1.12 + debug: 4.4.0 + dequal: 2.0.3 + extract-comments: 1.1.0 + fast-glob: 3.3.2 + json5: 2.2.3 + local-pkg: 0.5.1 + picocolors: 1.1.1 + vite: 6.0.3(@types/node@22.10.2)(jiti@2.4.2)(sass@1.83.0)(tsx@4.19.2)(yaml@2.6.1) + yaml: 2.6.1 + optionalDependencies: + '@vue/compiler-sfc': 3.5.13 + vue-router: 4.5.0(vue@3.5.13(typescript@5.7.2)) + transitivePeerDependencies: + - supports-color + + vite-plugin-windicss@1.9.4(vite@6.0.3(@types/node@22.10.2)(jiti@2.4.2)(sass@1.83.0)(tsx@4.19.2)(yaml@2.6.1)): + dependencies: + '@windicss/plugin-utils': 1.9.4 + debug: 4.4.0 + kolorist: 1.8.0 + vite: 6.0.3(@types/node@22.10.2)(jiti@2.4.2)(sass@1.83.0)(tsx@4.19.2)(yaml@2.6.1) + windicss: 3.5.6 + transitivePeerDependencies: + - supports-color + + vite@6.0.3(@types/node@22.10.2)(jiti@2.4.2)(sass@1.83.0)(tsx@4.19.2)(yaml@2.6.1): + dependencies: + esbuild: 0.24.0 + postcss: 8.4.49 + rollup: 4.28.1 + optionalDependencies: + '@types/node': 22.10.2 + fsevents: 2.3.3 + jiti: 2.4.2 + sass: 1.83.0 + tsx: 4.19.2 + yaml: 2.6.1 + + vue-demi@0.14.10(vue@3.5.13(typescript@5.7.2)): + dependencies: + vue: 3.5.13(typescript@5.7.2) + + vue-router@4.5.0(vue@3.5.13(typescript@5.7.2)): + dependencies: + '@vue/devtools-api': 6.6.4 + vue: 3.5.13(typescript@5.7.2) + + vue@3.5.13(typescript@5.7.2): + dependencies: + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-sfc': 3.5.13 + '@vue/runtime-dom': 3.5.13 + '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.7.2)) + '@vue/shared': 3.5.13 + optionalDependencies: + typescript: 5.7.2 + + webpack-virtual-modules@0.6.2: {} + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + windicss@3.5.6: {} + + ws@8.18.0(bufferutil@4.0.8): + optionalDependencies: + bufferutil: 4.0.8 + + yaml@2.6.1: {} + + zod@3.24.1: {} diff --git a/public/objects/haustür.png b/public/objects/haustür.png new file mode 100644 index 0000000000000000000000000000000000000000..c380901ad383d1f52b07b2ca9763f279126bf5cc GIT binary patch literal 11838 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%0DP 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 literal 0 HcmV?d00001 diff --git a/public/objects/milch.png b/public/objects/milch.png new file mode 100644 index 0000000000000000000000000000000000000000..b55ceb19e7e9342b98bb89552b79a1dc4d3dd838 GIT binary patch literal 21845 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 literal 0 HcmV?d00001 diff --git a/public/objects/offene-haustür.png b/public/objects/offene-haustür.png new file mode 100644 index 0000000000000000000000000000000000000000..f135a4a9dc19eef5b97717a6a6f278c2ea8f0f25 GIT binary patch literal 12809 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 literal 0 HcmV?d00001 diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..d41bcf3 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,93 @@ + + + + + + + diff --git a/src/assets/noise.png b/src/assets/noise.png new file mode 100644 index 0000000000000000000000000000000000000000..019b5ce19a14130ce1a9a26d88266d3b1202bc1f GIT binary patch literal 18659 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 +
+ +
+ {{ object.label }} +
+
+ + + + + \ No newline at end of file diff --git a/src/components/ObjectCardDropZone.vue b/src/components/ObjectCardDropZone.vue new file mode 100644 index 0000000..6572c1f --- /dev/null +++ b/src/components/ObjectCardDropZone.vue @@ -0,0 +1,64 @@ + + + + + \ No newline at end of file diff --git a/src/game.ts b/src/game.ts new file mode 100644 index 0000000..c24d8b7 --- /dev/null +++ b/src/game.ts @@ -0,0 +1,63 @@ +import { defineStore } from "pinia" +import { computed, reactive, ref } from "vue" +import { script } from "./shared/script" +import type { Interaction, InteractionQueueItem } from "./shared/script/types" +import { trpcClient } from "./trpc" +import type { GameEvent } from "./shared/gameEvents" +import { getInteractionQueueItemId } from "./shared/util" + +export const useGame = defineStore("gameState", () => { + const currentRoomId = ref(script.roomsById.values().next().value!.id) + const interactionQueue = reactive(new Map()) + const currentInteraction = ref(null) + const currentInteractionId = computed(() => + currentInteraction.value === null ? null : getInteractionQueueItemId(currentInteraction.value)) + + return { + currentRoomId, + interactionQueue, + currentRoom: computed(() => script.roomsById.get(currentRoomId.value)!), + currentInteraction, + currentInteractionId, + voteForInteraction(interaction: Interaction) { + if (currentInteractionId.value === getInteractionQueueItemId(interaction)) return + if (currentInteractionId.value !== null) trpcClient.player.removeInteractionVote.mutate({ queueItemId: currentInteractionId.value }) + currentInteraction.value = interaction + trpcClient.player.voteForInteraction.mutate({ interaction }) + }, + removeInteractionVote(queueItemId: string) { + trpcClient.player.removeInteractionVote.mutate({ queueItemId }) + currentInteraction.value = null + }, + switchRoom(roomId: string) { + trpcClient.director.switchRoom.mutate({ roomId }) + }, + removeInteractionQueueItem(id: string) { + trpcClient.director.removeInteractionQueueItem.mutate({ id }) + }, + handleGameEvent(event: GameEvent) { + console.log(event) + switch (event.type) { + case "room-changed": + interactionQueue.clear() + currentRoomId.value = event.roomId + currentInteraction.value = null + break + + case "interaction-queued": + interactionQueue.set(event.item.id, event.item) + break + + case "interaction-votes-changed": + if (event.votes <= 0) { + interactionQueue.delete(event.id) + if (currentInteractionId.value === event.id) currentInteraction.value = null + } else { + interactionQueue.get(event.id)!.votes = event.votes + } + + break + } + } + } +}) \ No newline at end of file diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..b0d7b0e --- /dev/null +++ b/src/index.ts @@ -0,0 +1,19 @@ +import "virtual:windi.css" +import "@interactjs/actions" +import "@interactjs/auto-start" + +import { createApp } from "vue" +import { createRouter, createWebHistory } from "vue-router" +import App from "./App.vue" +import routes from "virtual:generated-pages" +import { createPinia } from "pinia" + +const router = createRouter({ + routes, + history: createWebHistory() +}) + +createApp(App) + .use(router) + .use(createPinia()) + .mount("#app") diff --git a/src/screens/AdminScreen.vue b/src/screens/AdminScreen.vue new file mode 100644 index 0000000..b9381d9 --- /dev/null +++ b/src/screens/AdminScreen.vue @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/src/screens/InteractionsScreen.vue b/src/screens/InteractionsScreen.vue new file mode 100644 index 0000000..2fba867 --- /dev/null +++ b/src/screens/InteractionsScreen.vue @@ -0,0 +1,91 @@ + + + + + \ No newline at end of file diff --git a/src/server/game.ts b/src/server/game.ts new file mode 100644 index 0000000..6edebb8 --- /dev/null +++ b/src/server/game.ts @@ -0,0 +1,69 @@ +import EventEmitter from "eventemitter3" +import type { GameEvent } from "../shared/gameEvents" +import type { Interaction, InteractionQueueItem } from "../shared/script/types" +import { script } from "../shared/script" +import { getInteractionQueueItemId } from "../shared/util" + +interface Events { + "game-event": [GameEvent] +} + +export class Game extends EventEmitter { + private currentRoomId: string = script.roomsById.values().next()!.value!.id + private interactionQueue: Map = new Map() + + constructor() { + super() + } + + getInitialStateEvents(): GameEvent[] { + const events: GameEvent[] = [] + + events.push({ type: "room-changed", roomId: this.currentRoomId }) + this.interactionQueue.forEach(item => events.push({ type: "interaction-queued", item })) + + return events + } + + addInteractionVote(interaction: Interaction) { + const id = getInteractionQueueItemId(interaction) + const existingItem = this.interactionQueue.get(id) + if (existingItem === undefined) { + const item = { + id, + votes: 1, + interaction + } + + this.interactionQueue.set(item.id, item) + this.emit("game-event", { type: "interaction-queued", item }) + } else { + existingItem.votes += 1 + this.emit("game-event", { type: "interaction-votes-changed", id: existingItem.id, votes: existingItem.votes }) + } + } + + removeInteractionVote(id: string) { + const item = this.interactionQueue.get(id) + if (item !== undefined) { + item.votes -= 1 + this.emit("game-event", { type: "interaction-votes-changed", id: item.id, votes: item.votes }) + + if (item.votes <= 0) this.interactionQueue.delete(id) + } + } + + switchRoom(roomId: string) { + this.currentRoomId = roomId + this.interactionQueue.clear() + this.emit("game-event", { type: "room-changed", roomId }) + } + + removeInteractionQueueItem(id: string) { + if (!this.interactionQueue.has(id)) return + this.emit("game-event", { type: "interaction-votes-changed", id: id, votes: 0 }) + this.interactionQueue.delete(id) + } +} + +export const game = new Game() \ No newline at end of file diff --git a/src/server/index.ts b/src/server/index.ts new file mode 100644 index 0000000..173efaa --- /dev/null +++ b/src/server/index.ts @@ -0,0 +1 @@ +export type { AppRouter } from "./trpc" \ No newline at end of file diff --git a/src/server/isDev.ts b/src/server/isDev.ts new file mode 100644 index 0000000..38bb893 --- /dev/null +++ b/src/server/isDev.ts @@ -0,0 +1 @@ +export const isDev = process.env.NODE_ENV === "development" \ No newline at end of file diff --git a/src/server/main.ts b/src/server/main.ts new file mode 100644 index 0000000..04ce823 --- /dev/null +++ b/src/server/main.ts @@ -0,0 +1,38 @@ +import createExpressApp from "express" +import { listen } from "listhen" +import { WebSocketServer } from "ws" +import { appRouter } from "./trpc" +import { createExpressMiddleware as createTrpcMiddleware } from "@trpc/server/adapters/express" +import { applyWSSHandler } from "@trpc/server/adapters/ws" +import { createContext } from "./trpc/base" +import { isDev } from "./isDev" + +const expressApp = createExpressApp() + +expressApp.use("/trpc", createTrpcMiddleware({ + router: appRouter, + createContext: ({ req, res }) => createContext(res), +})) + +const { server } = await listen(expressApp, { isProd: !isDev, autoClose: false }) + +const wss = new WebSocketServer({ server, path: "/ws" }) +const wssTrpcHandler = applyWSSHandler({ + wss, + router: appRouter, + createContext: () => createContext(undefined) +}) + +const stop = () => { + console.log("Received stop signal") + server.close() + wssTrpcHandler.broadcastReconnectNotification() + wss.close(console.error) +} + +process.on("SIGTERM", stop) +process.on("SIGINT", stop) + +process.on("exit", () => { + console.log("exit") +}) \ No newline at end of file diff --git a/src/server/trpc/base.ts b/src/server/trpc/base.ts new file mode 100644 index 0000000..2d588f7 --- /dev/null +++ b/src/server/trpc/base.ts @@ -0,0 +1,17 @@ +import { initTRPC } from "@trpc/server" +import type { Response } from "express" +import superjson from "superjson" + +export interface Context { + res?: Response +} + +export async function createContext(res: Response | undefined): Promise { + return { + res + } +} + +export const t = initTRPC.context().create({ + transformer: superjson +}) \ No newline at end of file diff --git a/src/server/trpc/director.ts b/src/server/trpc/director.ts new file mode 100644 index 0000000..4705819 --- /dev/null +++ b/src/server/trpc/director.ts @@ -0,0 +1,20 @@ +import { t } from "./base" +import { z } from "zod" + +export const directorRouter = t.router({ + switchRoom: t.procedure + .input(z.object({ + roomId: z.string() + })) + .mutation(async ({ input, ctx }) => { + ctx.game.switchRoom(input.roomId) + }), + + removeInteractionQueueItem: t.procedure + .input(z.object({ + id: z.string() + })) + .mutation(async ({ input, ctx }) => { + ctx.game.removeInteractionQueueItem(input.id) + }), +}) \ No newline at end of file diff --git a/src/server/trpc/index.ts b/src/server/trpc/index.ts new file mode 100644 index 0000000..52e519d --- /dev/null +++ b/src/server/trpc/index.ts @@ -0,0 +1,29 @@ +import { t } from "./base" +import { playerRouter } from "./player" +import { observable } from "@trpc/server/observable" +import type { GameEvent } from "../../shared/gameEvents" +import { directorRouter } from "./director" +import { game } from "../game" + +export const appRouter = t.router({ + player: playerRouter, + director: directorRouter, + + join: t.procedure + .subscription(({ ctx }) => { + return observable(emit => { + const handleGameEvent = (event: GameEvent) => emit.next(event) + const handleDestroyed = () => setTimeout(() => emit.complete(), 500) + + game.on("game-event", handleGameEvent) + + game.getInitialStateEvents().forEach(event => emit.next(event)) + + return () => { + game.off("game-event", handleGameEvent) + } + }) + }), +}) + +export type AppRouter = typeof appRouter \ No newline at end of file diff --git a/src/server/trpc/player.ts b/src/server/trpc/player.ts new file mode 100644 index 0000000..3246cec --- /dev/null +++ b/src/server/trpc/player.ts @@ -0,0 +1,22 @@ +import { t } from "./base" +import { z } from "zod" +import { interactionSchema } from "../../shared/script/types" +import { game } from "../game" + +export const playerRouter = t.router({ + voteForInteraction: t.procedure + .input(z.object({ + interaction: interactionSchema + })) + .mutation(async ({ input, ctx }) => { + game.addInteractionVote(input.interaction) + }), + + removeInteractionVote: t.procedure + .input(z.object({ + queueItemId: z.string() + })) + .mutation(async ({ input, ctx }) => { + game.removeInteractionVote(input.queueItemId) + }), +}) \ No newline at end of file diff --git a/src/shared/gameEvents.ts b/src/shared/gameEvents.ts new file mode 100644 index 0000000..a5daadc --- /dev/null +++ b/src/shared/gameEvents.ts @@ -0,0 +1,6 @@ +import type { InteractionQueueItem } from "./script/types" + +export type GameEvent = + | { type: "room-changed"; roomId: string } + | { type: "interaction-queued"; item: InteractionQueueItem } + | { type: "interaction-votes-changed"; id: string; votes: number } \ No newline at end of file diff --git a/src/shared/script/index.ts b/src/shared/script/index.ts new file mode 100644 index 0000000..0d41152 --- /dev/null +++ b/src/shared/script/index.ts @@ -0,0 +1,12 @@ +import type { Script } from "./types" +import { roomHauseingang } from "./rooms/hauseingang" +import { roomKueche } from "./rooms/küche" + +const script: Script = { + roomsById: new Map +} + +script.roomsById.set("hauseingang", roomHauseingang) +script.roomsById.set("küche", roomKueche) + +export { script } \ No newline at end of file diff --git a/src/shared/script/rooms/hauseingang.ts b/src/shared/script/rooms/hauseingang.ts new file mode 100644 index 0000000..6d813ce --- /dev/null +++ b/src/shared/script/rooms/hauseingang.ts @@ -0,0 +1,41 @@ +import type { Room } from "../types" +import { cSet } from "../../util" + +export const roomHauseingang: Room = { + id: "hauseingang", + label: "Hauseingang", + initialObjects: cSet( + { + id: "schlüssel", + label: "Schlüssel", + }, + { + id: "haustür", + label: "Haustür" + } + ), + hiddenObjects: cSet( + { + id: "offene-haustür", + label: "Offene Haustür" + } + ), + combinations: cSet( + { + id: "open-door", + inputs: cSet( + { + objectId: "schlüssel", + isConsumed: false + }, + { + objectId: "haustür", + isConsumed: true + } + ), + outputIds: cSet( + "offene-haustür" + ) + } + ) +} \ No newline at end of file diff --git a/src/shared/script/rooms/küche.ts b/src/shared/script/rooms/küche.ts new file mode 100644 index 0000000..e88c442 --- /dev/null +++ b/src/shared/script/rooms/küche.ts @@ -0,0 +1,49 @@ +import type { Room } from "../types" +import { cSet } from "../../util" + +export const roomKueche: Room = { + id: "küche", + label: "Küche", + initialObjects: cSet( + { + id: "schüssel", + label: "Schüssel" + }, + { + id: "kühlschrank", + label: "Kühlschrank" + }, + { + id: "kakaopulver", + label: "Kakaopulver" + } + ), + hiddenObjects: cSet( + { + id: "milch", + label: "Milch" + }, + { + id: "kakao", + label: "Kakao" + } + ), + combinations: cSet( + { + id: "kakao", + inputs: cSet( + { + objectId: "milch", + isConsumed: true + }, + { + objectId: "kakaopulver", + isConsumed: false + } + ), + outputIds: cSet( + "kakao" + ) + } + ) +} \ No newline at end of file diff --git a/src/shared/script/types.ts b/src/shared/script/types.ts new file mode 100644 index 0000000..62700a6 --- /dev/null +++ b/src/shared/script/types.ts @@ -0,0 +1,46 @@ +import { z } from "zod" + +export interface Script { + roomsById: Map +} + +export interface Room { + id: string + label: string + initialObjects: Set + hiddenObjects: Set + combinations: Set +} + +export interface GameObject { + id: string + label: string +} + +export interface Combination { + id: string + inputs: Set<{ + objectId: string + isConsumed: boolean + }> + outputIds: Set +} + +export const interactionSchema = z.discriminatedUnion("type", [ + z.object({ + type: z.literal("use"), + objectId: z.string() + }), + z.object({ + type: z.literal("combine"), + objectIds: z.set(z.string()) + }) +]) + +export type Interaction = z.infer + +export interface InteractionQueueItem { + id: string + votes: number + interaction: Interaction +} diff --git a/src/shared/util.ts b/src/shared/util.ts new file mode 100644 index 0000000..4601d7c --- /dev/null +++ b/src/shared/util.ts @@ -0,0 +1,12 @@ +import type { Interaction } from "./script/types" + +export const cSet = (...values: T[]) => new Set(values) +export const cMap = (object: Record) => new Map(Object.entries(object)) + +export function getInteractionQueueItemId(interaction: Interaction) { + let id: string + if (interaction.type === "use") id = `use-${interaction.objectId}` + else if (interaction.type === "combine") id = `combine-${[...interaction.objectIds].sort().join("_")}` + else throw new Error("Unknown interaction type") + return id +} \ No newline at end of file diff --git a/src/trpc.ts b/src/trpc.ts new file mode 100644 index 0000000..0638719 --- /dev/null +++ b/src/trpc.ts @@ -0,0 +1,19 @@ +import { createTRPCProxyClient, createWSClient, wsLink } from "@trpc/client" +import superjson from "superjson" +import type { AppRouter } from "./server" + +const wsUrl = new URL(location.href) +wsUrl.protocol = wsUrl.protocol.replace("http", "ws") +wsUrl.pathname = "/ws" +wsUrl.hash = "" + +export const trpcClient = createTRPCProxyClient({ + links: [ + wsLink({ + client: createWSClient({ + url: wsUrl.href + }) + }) + ], + transformer: superjson +}) diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..161d0eb --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "declaration": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "jsx": "preserve", + "lib": ["esnext", "dom"], + "module": "esnext", + "moduleResolution": "node", + "allowJs": true, + "resolveJsonModule": true, + "importsNotUsedAsValues": "error", + "isolatedModules": true, + "rootDir": "src", + "skipLibCheck": true, + "sourceMap": true, + "strict": true, + "stripInternal": true, + "target": "esnext", + "types": [ + "./src/types.d.ts", + "vite/client", + "unplugin-icons/types/vue", + "vite-plugin-pages/client" + ] + }, + "include": [ + "src/**/*.ts", + "src/**/*.vue" + ] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..f33ee20 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,23 @@ +import { defineConfig } from "vite" +import vuePlugin from "@vitejs/plugin-vue" +import iconsPlugin from "unplugin-icons/vite" +import pagesPlugin from "vite-plugin-pages" +import windiPlugin from "vite-plugin-windicss" + +export default defineConfig({ + plugins: [ + vuePlugin(), + iconsPlugin(), + pagesPlugin(), + windiPlugin() + ], + server: { + proxy: { + "/trpc": "http://localhost:3000", + "/ws": { + target: "http://localhost:3000", + ws: true + } + } + } +}) diff --git a/windi.config.ts b/windi.config.ts new file mode 100644 index 0000000..4db5b13 --- /dev/null +++ b/windi.config.ts @@ -0,0 +1,23 @@ +import { defineConfig } from "vite-plugin-windicss" +import colors from "windicss/colors" + +export default defineConfig({ + theme: { + fontFamily: { + "normal": ["InterVariable", "sans-serif"], + "fat": ["Titan One", "sans-serif"] + }, + colors: { + transparent: "transparent", + white: "white", + black: "black", + gray: colors.zinc, + light: colors.light, + dark: colors.dark, + red: colors.rose, + yellow: colors.yellow, + green: colors.green, + blue: colors.indigo, + } + } +}) \ No newline at end of file