├── .gitignore
├── LICENSE
├── README.md
├── index.html
├── package-lock.json
├── package.json
├── public
└── vite.svg
├── src
├── App.vue
├── components
│ ├── Game.vue
│ └── PhaserContainer.vue
├── game
│ ├── assets
│ │ ├── bomb.png
│ │ ├── sky.png
│ │ └── thud.mp3
│ ├── game.ts
│ └── scenes
│ │ ├── BootScene.ts
│ │ └── PlayScene.ts
├── main.ts
└── vite-env.d.ts
├── tsconfig.app.json
├── tsconfig.json
├── tsconfig.node.json
└── vite.config.ts
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | .idea
18 | .DS_Store
19 | *.suo
20 | *.ntvs*
21 | *.njsproj
22 | *.sln
23 | *.sw?
24 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2025 Markus Appel
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # vue-phaser-vite
2 |
3 | #### Vite boilerplate that integrates Phaser 3 into a Vue 3 project.
4 |
5 | This project template has been set up using **Vite** and includes:
6 | * *Typescript*
7 | * *Code Splitting*
8 | * *Source Minification*
9 | * *CSS Postprocessing*
10 |
11 | ## Build Setup
12 |
13 | ``` bash
14 | # install dependencies
15 | npm install
16 |
17 | # serve with live reloading on localhost
18 | npm run dev
19 |
20 | # build for production
21 | npm run build
22 |
23 | # serve your production build on localhost
24 | npm run preview
25 | ```
26 |
27 | ## Extending the project to your needs
28 |
29 | If you want to add more features like *linting*, *unit testing* or *SCSS* to
30 | your own project, you can do so quite easily with Vite. Read the
31 | documentation to get
32 | familiar with the tool. Also take a look at
33 |
34 | awesome-vite for plugins and more.
35 |
36 | ## Converting into your own repository
37 |
38 | If you want to maintain your own repo based on this boilerplate, you first need
39 | to detach it from this repo. Here is what you need to do:
40 |
41 | 1. edit these files and enter your own project info
42 | * *package.json*
43 | * *README.md*
44 | * *index.html*
45 |
46 | 2. delete *LICENSE* (and perhaps add your own)
47 |
48 | 3. reinitialize git
49 |
rm -rf .git
50 | git init
51 | git add .
52 | git commit -m "Initial commit"
53 |
54 |
55 | ## Sharing data between Vue and Phaser
56 |
57 | You might want to expose some game state that lives inside of your Phaser code
58 | to your Vue components and vice versa, for example a highscore. Here are two
59 | ways you can achieve sharing state between the frameworks.
60 |
61 | * Import a Phaser EventEmitter instance in
62 | both your Vue components and Phaser modules. Both sides can then listen to and
63 | emit events on that emitter.
64 |
65 | * Have both sides share a
66 | Pinia store instance. It works like an event emitter, but can also hold
67 | state. The Pinia store is nicely integrated into your Vue components and is easily
68 | accessible on the Phaser side by applying the *useStore* hook.
69 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vue + Phaser + Vite
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-phaser-vite",
3 | "version": "1.1.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "vue-phaser-vite",
9 | "version": "1.1.0",
10 | "license": "MIT",
11 | "dependencies": {
12 | "phaser": "^3.88.2",
13 | "vue": "^3.5.13"
14 | },
15 | "devDependencies": {
16 | "@types/node": "^22.13.5",
17 | "@vitejs/plugin-vue": "^5.2.1",
18 | "@vue/tsconfig": "^0.7.0",
19 | "typescript": "~5.7.2",
20 | "vite": "^6.2.0",
21 | "vue-tsc": "^2.2.4"
22 | }
23 | },
24 | "node_modules/@babel/helper-string-parser": {
25 | "version": "7.25.9",
26 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
27 | "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
28 | "license": "MIT",
29 | "engines": {
30 | "node": ">=6.9.0"
31 | }
32 | },
33 | "node_modules/@babel/helper-validator-identifier": {
34 | "version": "7.25.9",
35 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
36 | "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
37 | "license": "MIT",
38 | "engines": {
39 | "node": ">=6.9.0"
40 | }
41 | },
42 | "node_modules/@babel/parser": {
43 | "version": "7.26.9",
44 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz",
45 | "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==",
46 | "license": "MIT",
47 | "dependencies": {
48 | "@babel/types": "^7.26.9"
49 | },
50 | "bin": {
51 | "parser": "bin/babel-parser.js"
52 | },
53 | "engines": {
54 | "node": ">=6.0.0"
55 | }
56 | },
57 | "node_modules/@babel/types": {
58 | "version": "7.26.9",
59 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz",
60 | "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==",
61 | "license": "MIT",
62 | "dependencies": {
63 | "@babel/helper-string-parser": "^7.25.9",
64 | "@babel/helper-validator-identifier": "^7.25.9"
65 | },
66 | "engines": {
67 | "node": ">=6.9.0"
68 | }
69 | },
70 | "node_modules/@esbuild/aix-ppc64": {
71 | "version": "0.25.0",
72 | "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz",
73 | "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==",
74 | "cpu": [
75 | "ppc64"
76 | ],
77 | "dev": true,
78 | "license": "MIT",
79 | "optional": true,
80 | "os": [
81 | "aix"
82 | ],
83 | "engines": {
84 | "node": ">=18"
85 | }
86 | },
87 | "node_modules/@esbuild/android-arm": {
88 | "version": "0.25.0",
89 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz",
90 | "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==",
91 | "cpu": [
92 | "arm"
93 | ],
94 | "dev": true,
95 | "license": "MIT",
96 | "optional": true,
97 | "os": [
98 | "android"
99 | ],
100 | "engines": {
101 | "node": ">=18"
102 | }
103 | },
104 | "node_modules/@esbuild/android-arm64": {
105 | "version": "0.25.0",
106 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz",
107 | "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==",
108 | "cpu": [
109 | "arm64"
110 | ],
111 | "dev": true,
112 | "license": "MIT",
113 | "optional": true,
114 | "os": [
115 | "android"
116 | ],
117 | "engines": {
118 | "node": ">=18"
119 | }
120 | },
121 | "node_modules/@esbuild/android-x64": {
122 | "version": "0.25.0",
123 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz",
124 | "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==",
125 | "cpu": [
126 | "x64"
127 | ],
128 | "dev": true,
129 | "license": "MIT",
130 | "optional": true,
131 | "os": [
132 | "android"
133 | ],
134 | "engines": {
135 | "node": ">=18"
136 | }
137 | },
138 | "node_modules/@esbuild/darwin-arm64": {
139 | "version": "0.25.0",
140 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz",
141 | "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==",
142 | "cpu": [
143 | "arm64"
144 | ],
145 | "dev": true,
146 | "license": "MIT",
147 | "optional": true,
148 | "os": [
149 | "darwin"
150 | ],
151 | "engines": {
152 | "node": ">=18"
153 | }
154 | },
155 | "node_modules/@esbuild/darwin-x64": {
156 | "version": "0.25.0",
157 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz",
158 | "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==",
159 | "cpu": [
160 | "x64"
161 | ],
162 | "dev": true,
163 | "license": "MIT",
164 | "optional": true,
165 | "os": [
166 | "darwin"
167 | ],
168 | "engines": {
169 | "node": ">=18"
170 | }
171 | },
172 | "node_modules/@esbuild/freebsd-arm64": {
173 | "version": "0.25.0",
174 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz",
175 | "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==",
176 | "cpu": [
177 | "arm64"
178 | ],
179 | "dev": true,
180 | "license": "MIT",
181 | "optional": true,
182 | "os": [
183 | "freebsd"
184 | ],
185 | "engines": {
186 | "node": ">=18"
187 | }
188 | },
189 | "node_modules/@esbuild/freebsd-x64": {
190 | "version": "0.25.0",
191 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz",
192 | "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==",
193 | "cpu": [
194 | "x64"
195 | ],
196 | "dev": true,
197 | "license": "MIT",
198 | "optional": true,
199 | "os": [
200 | "freebsd"
201 | ],
202 | "engines": {
203 | "node": ">=18"
204 | }
205 | },
206 | "node_modules/@esbuild/linux-arm": {
207 | "version": "0.25.0",
208 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz",
209 | "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==",
210 | "cpu": [
211 | "arm"
212 | ],
213 | "dev": true,
214 | "license": "MIT",
215 | "optional": true,
216 | "os": [
217 | "linux"
218 | ],
219 | "engines": {
220 | "node": ">=18"
221 | }
222 | },
223 | "node_modules/@esbuild/linux-arm64": {
224 | "version": "0.25.0",
225 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz",
226 | "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==",
227 | "cpu": [
228 | "arm64"
229 | ],
230 | "dev": true,
231 | "license": "MIT",
232 | "optional": true,
233 | "os": [
234 | "linux"
235 | ],
236 | "engines": {
237 | "node": ">=18"
238 | }
239 | },
240 | "node_modules/@esbuild/linux-ia32": {
241 | "version": "0.25.0",
242 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz",
243 | "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==",
244 | "cpu": [
245 | "ia32"
246 | ],
247 | "dev": true,
248 | "license": "MIT",
249 | "optional": true,
250 | "os": [
251 | "linux"
252 | ],
253 | "engines": {
254 | "node": ">=18"
255 | }
256 | },
257 | "node_modules/@esbuild/linux-loong64": {
258 | "version": "0.25.0",
259 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz",
260 | "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==",
261 | "cpu": [
262 | "loong64"
263 | ],
264 | "dev": true,
265 | "license": "MIT",
266 | "optional": true,
267 | "os": [
268 | "linux"
269 | ],
270 | "engines": {
271 | "node": ">=18"
272 | }
273 | },
274 | "node_modules/@esbuild/linux-mips64el": {
275 | "version": "0.25.0",
276 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz",
277 | "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==",
278 | "cpu": [
279 | "mips64el"
280 | ],
281 | "dev": true,
282 | "license": "MIT",
283 | "optional": true,
284 | "os": [
285 | "linux"
286 | ],
287 | "engines": {
288 | "node": ">=18"
289 | }
290 | },
291 | "node_modules/@esbuild/linux-ppc64": {
292 | "version": "0.25.0",
293 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz",
294 | "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==",
295 | "cpu": [
296 | "ppc64"
297 | ],
298 | "dev": true,
299 | "license": "MIT",
300 | "optional": true,
301 | "os": [
302 | "linux"
303 | ],
304 | "engines": {
305 | "node": ">=18"
306 | }
307 | },
308 | "node_modules/@esbuild/linux-riscv64": {
309 | "version": "0.25.0",
310 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz",
311 | "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==",
312 | "cpu": [
313 | "riscv64"
314 | ],
315 | "dev": true,
316 | "license": "MIT",
317 | "optional": true,
318 | "os": [
319 | "linux"
320 | ],
321 | "engines": {
322 | "node": ">=18"
323 | }
324 | },
325 | "node_modules/@esbuild/linux-s390x": {
326 | "version": "0.25.0",
327 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz",
328 | "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==",
329 | "cpu": [
330 | "s390x"
331 | ],
332 | "dev": true,
333 | "license": "MIT",
334 | "optional": true,
335 | "os": [
336 | "linux"
337 | ],
338 | "engines": {
339 | "node": ">=18"
340 | }
341 | },
342 | "node_modules/@esbuild/linux-x64": {
343 | "version": "0.25.0",
344 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz",
345 | "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==",
346 | "cpu": [
347 | "x64"
348 | ],
349 | "dev": true,
350 | "license": "MIT",
351 | "optional": true,
352 | "os": [
353 | "linux"
354 | ],
355 | "engines": {
356 | "node": ">=18"
357 | }
358 | },
359 | "node_modules/@esbuild/netbsd-arm64": {
360 | "version": "0.25.0",
361 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz",
362 | "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==",
363 | "cpu": [
364 | "arm64"
365 | ],
366 | "dev": true,
367 | "license": "MIT",
368 | "optional": true,
369 | "os": [
370 | "netbsd"
371 | ],
372 | "engines": {
373 | "node": ">=18"
374 | }
375 | },
376 | "node_modules/@esbuild/netbsd-x64": {
377 | "version": "0.25.0",
378 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz",
379 | "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==",
380 | "cpu": [
381 | "x64"
382 | ],
383 | "dev": true,
384 | "license": "MIT",
385 | "optional": true,
386 | "os": [
387 | "netbsd"
388 | ],
389 | "engines": {
390 | "node": ">=18"
391 | }
392 | },
393 | "node_modules/@esbuild/openbsd-arm64": {
394 | "version": "0.25.0",
395 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz",
396 | "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==",
397 | "cpu": [
398 | "arm64"
399 | ],
400 | "dev": true,
401 | "license": "MIT",
402 | "optional": true,
403 | "os": [
404 | "openbsd"
405 | ],
406 | "engines": {
407 | "node": ">=18"
408 | }
409 | },
410 | "node_modules/@esbuild/openbsd-x64": {
411 | "version": "0.25.0",
412 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz",
413 | "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==",
414 | "cpu": [
415 | "x64"
416 | ],
417 | "dev": true,
418 | "license": "MIT",
419 | "optional": true,
420 | "os": [
421 | "openbsd"
422 | ],
423 | "engines": {
424 | "node": ">=18"
425 | }
426 | },
427 | "node_modules/@esbuild/sunos-x64": {
428 | "version": "0.25.0",
429 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz",
430 | "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==",
431 | "cpu": [
432 | "x64"
433 | ],
434 | "dev": true,
435 | "license": "MIT",
436 | "optional": true,
437 | "os": [
438 | "sunos"
439 | ],
440 | "engines": {
441 | "node": ">=18"
442 | }
443 | },
444 | "node_modules/@esbuild/win32-arm64": {
445 | "version": "0.25.0",
446 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz",
447 | "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==",
448 | "cpu": [
449 | "arm64"
450 | ],
451 | "dev": true,
452 | "license": "MIT",
453 | "optional": true,
454 | "os": [
455 | "win32"
456 | ],
457 | "engines": {
458 | "node": ">=18"
459 | }
460 | },
461 | "node_modules/@esbuild/win32-ia32": {
462 | "version": "0.25.0",
463 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz",
464 | "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==",
465 | "cpu": [
466 | "ia32"
467 | ],
468 | "dev": true,
469 | "license": "MIT",
470 | "optional": true,
471 | "os": [
472 | "win32"
473 | ],
474 | "engines": {
475 | "node": ">=18"
476 | }
477 | },
478 | "node_modules/@esbuild/win32-x64": {
479 | "version": "0.25.0",
480 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz",
481 | "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==",
482 | "cpu": [
483 | "x64"
484 | ],
485 | "dev": true,
486 | "license": "MIT",
487 | "optional": true,
488 | "os": [
489 | "win32"
490 | ],
491 | "engines": {
492 | "node": ">=18"
493 | }
494 | },
495 | "node_modules/@jridgewell/sourcemap-codec": {
496 | "version": "1.5.0",
497 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
498 | "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
499 | "license": "MIT"
500 | },
501 | "node_modules/@rollup/rollup-android-arm-eabi": {
502 | "version": "4.34.8",
503 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.8.tgz",
504 | "integrity": "sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==",
505 | "cpu": [
506 | "arm"
507 | ],
508 | "dev": true,
509 | "license": "MIT",
510 | "optional": true,
511 | "os": [
512 | "android"
513 | ]
514 | },
515 | "node_modules/@rollup/rollup-android-arm64": {
516 | "version": "4.34.8",
517 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.8.tgz",
518 | "integrity": "sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==",
519 | "cpu": [
520 | "arm64"
521 | ],
522 | "dev": true,
523 | "license": "MIT",
524 | "optional": true,
525 | "os": [
526 | "android"
527 | ]
528 | },
529 | "node_modules/@rollup/rollup-darwin-arm64": {
530 | "version": "4.34.8",
531 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.8.tgz",
532 | "integrity": "sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==",
533 | "cpu": [
534 | "arm64"
535 | ],
536 | "dev": true,
537 | "license": "MIT",
538 | "optional": true,
539 | "os": [
540 | "darwin"
541 | ]
542 | },
543 | "node_modules/@rollup/rollup-darwin-x64": {
544 | "version": "4.34.8",
545 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.8.tgz",
546 | "integrity": "sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==",
547 | "cpu": [
548 | "x64"
549 | ],
550 | "dev": true,
551 | "license": "MIT",
552 | "optional": true,
553 | "os": [
554 | "darwin"
555 | ]
556 | },
557 | "node_modules/@rollup/rollup-freebsd-arm64": {
558 | "version": "4.34.8",
559 | "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.8.tgz",
560 | "integrity": "sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==",
561 | "cpu": [
562 | "arm64"
563 | ],
564 | "dev": true,
565 | "license": "MIT",
566 | "optional": true,
567 | "os": [
568 | "freebsd"
569 | ]
570 | },
571 | "node_modules/@rollup/rollup-freebsd-x64": {
572 | "version": "4.34.8",
573 | "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.8.tgz",
574 | "integrity": "sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==",
575 | "cpu": [
576 | "x64"
577 | ],
578 | "dev": true,
579 | "license": "MIT",
580 | "optional": true,
581 | "os": [
582 | "freebsd"
583 | ]
584 | },
585 | "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
586 | "version": "4.34.8",
587 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.8.tgz",
588 | "integrity": "sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==",
589 | "cpu": [
590 | "arm"
591 | ],
592 | "dev": true,
593 | "license": "MIT",
594 | "optional": true,
595 | "os": [
596 | "linux"
597 | ]
598 | },
599 | "node_modules/@rollup/rollup-linux-arm-musleabihf": {
600 | "version": "4.34.8",
601 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.8.tgz",
602 | "integrity": "sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==",
603 | "cpu": [
604 | "arm"
605 | ],
606 | "dev": true,
607 | "license": "MIT",
608 | "optional": true,
609 | "os": [
610 | "linux"
611 | ]
612 | },
613 | "node_modules/@rollup/rollup-linux-arm64-gnu": {
614 | "version": "4.34.8",
615 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.8.tgz",
616 | "integrity": "sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==",
617 | "cpu": [
618 | "arm64"
619 | ],
620 | "dev": true,
621 | "license": "MIT",
622 | "optional": true,
623 | "os": [
624 | "linux"
625 | ]
626 | },
627 | "node_modules/@rollup/rollup-linux-arm64-musl": {
628 | "version": "4.34.8",
629 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.8.tgz",
630 | "integrity": "sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==",
631 | "cpu": [
632 | "arm64"
633 | ],
634 | "dev": true,
635 | "license": "MIT",
636 | "optional": true,
637 | "os": [
638 | "linux"
639 | ]
640 | },
641 | "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
642 | "version": "4.34.8",
643 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.8.tgz",
644 | "integrity": "sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==",
645 | "cpu": [
646 | "loong64"
647 | ],
648 | "dev": true,
649 | "license": "MIT",
650 | "optional": true,
651 | "os": [
652 | "linux"
653 | ]
654 | },
655 | "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
656 | "version": "4.34.8",
657 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.8.tgz",
658 | "integrity": "sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==",
659 | "cpu": [
660 | "ppc64"
661 | ],
662 | "dev": true,
663 | "license": "MIT",
664 | "optional": true,
665 | "os": [
666 | "linux"
667 | ]
668 | },
669 | "node_modules/@rollup/rollup-linux-riscv64-gnu": {
670 | "version": "4.34.8",
671 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.8.tgz",
672 | "integrity": "sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==",
673 | "cpu": [
674 | "riscv64"
675 | ],
676 | "dev": true,
677 | "license": "MIT",
678 | "optional": true,
679 | "os": [
680 | "linux"
681 | ]
682 | },
683 | "node_modules/@rollup/rollup-linux-s390x-gnu": {
684 | "version": "4.34.8",
685 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.8.tgz",
686 | "integrity": "sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==",
687 | "cpu": [
688 | "s390x"
689 | ],
690 | "dev": true,
691 | "license": "MIT",
692 | "optional": true,
693 | "os": [
694 | "linux"
695 | ]
696 | },
697 | "node_modules/@rollup/rollup-linux-x64-gnu": {
698 | "version": "4.34.8",
699 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.8.tgz",
700 | "integrity": "sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==",
701 | "cpu": [
702 | "x64"
703 | ],
704 | "dev": true,
705 | "license": "MIT",
706 | "optional": true,
707 | "os": [
708 | "linux"
709 | ]
710 | },
711 | "node_modules/@rollup/rollup-linux-x64-musl": {
712 | "version": "4.34.8",
713 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.8.tgz",
714 | "integrity": "sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==",
715 | "cpu": [
716 | "x64"
717 | ],
718 | "dev": true,
719 | "license": "MIT",
720 | "optional": true,
721 | "os": [
722 | "linux"
723 | ]
724 | },
725 | "node_modules/@rollup/rollup-win32-arm64-msvc": {
726 | "version": "4.34.8",
727 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.8.tgz",
728 | "integrity": "sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==",
729 | "cpu": [
730 | "arm64"
731 | ],
732 | "dev": true,
733 | "license": "MIT",
734 | "optional": true,
735 | "os": [
736 | "win32"
737 | ]
738 | },
739 | "node_modules/@rollup/rollup-win32-ia32-msvc": {
740 | "version": "4.34.8",
741 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.8.tgz",
742 | "integrity": "sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==",
743 | "cpu": [
744 | "ia32"
745 | ],
746 | "dev": true,
747 | "license": "MIT",
748 | "optional": true,
749 | "os": [
750 | "win32"
751 | ]
752 | },
753 | "node_modules/@rollup/rollup-win32-x64-msvc": {
754 | "version": "4.34.8",
755 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.8.tgz",
756 | "integrity": "sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==",
757 | "cpu": [
758 | "x64"
759 | ],
760 | "dev": true,
761 | "license": "MIT",
762 | "optional": true,
763 | "os": [
764 | "win32"
765 | ]
766 | },
767 | "node_modules/@types/estree": {
768 | "version": "1.0.6",
769 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
770 | "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
771 | "dev": true,
772 | "license": "MIT"
773 | },
774 | "node_modules/@types/node": {
775 | "version": "22.13.5",
776 | "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.5.tgz",
777 | "integrity": "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==",
778 | "dev": true,
779 | "license": "MIT",
780 | "dependencies": {
781 | "undici-types": "~6.20.0"
782 | }
783 | },
784 | "node_modules/@vitejs/plugin-vue": {
785 | "version": "5.2.1",
786 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.1.tgz",
787 | "integrity": "sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==",
788 | "dev": true,
789 | "license": "MIT",
790 | "engines": {
791 | "node": "^18.0.0 || >=20.0.0"
792 | },
793 | "peerDependencies": {
794 | "vite": "^5.0.0 || ^6.0.0",
795 | "vue": "^3.2.25"
796 | }
797 | },
798 | "node_modules/@volar/language-core": {
799 | "version": "2.4.11",
800 | "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.11.tgz",
801 | "integrity": "sha512-lN2C1+ByfW9/JRPpqScuZt/4OrUUse57GLI6TbLgTIqBVemdl1wNcZ1qYGEo2+Gw8coYLgCy7SuKqn6IrQcQgg==",
802 | "dev": true,
803 | "license": "MIT",
804 | "dependencies": {
805 | "@volar/source-map": "2.4.11"
806 | }
807 | },
808 | "node_modules/@volar/source-map": {
809 | "version": "2.4.11",
810 | "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.11.tgz",
811 | "integrity": "sha512-ZQpmafIGvaZMn/8iuvCFGrW3smeqkq/IIh9F1SdSx9aUl0J4Iurzd6/FhmjNO5g2ejF3rT45dKskgXWiofqlZQ==",
812 | "dev": true,
813 | "license": "MIT"
814 | },
815 | "node_modules/@volar/typescript": {
816 | "version": "2.4.11",
817 | "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.11.tgz",
818 | "integrity": "sha512-2DT+Tdh88Spp5PyPbqhyoYavYCPDsqbHLFwcUI9K1NlY1YgUJvujGdrqUp0zWxnW7KWNTr3xSpMuv2WnaTKDAw==",
819 | "dev": true,
820 | "license": "MIT",
821 | "dependencies": {
822 | "@volar/language-core": "2.4.11",
823 | "path-browserify": "^1.0.1",
824 | "vscode-uri": "^3.0.8"
825 | }
826 | },
827 | "node_modules/@vue/compiler-core": {
828 | "version": "3.5.13",
829 | "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz",
830 | "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==",
831 | "license": "MIT",
832 | "dependencies": {
833 | "@babel/parser": "^7.25.3",
834 | "@vue/shared": "3.5.13",
835 | "entities": "^4.5.0",
836 | "estree-walker": "^2.0.2",
837 | "source-map-js": "^1.2.0"
838 | }
839 | },
840 | "node_modules/@vue/compiler-dom": {
841 | "version": "3.5.13",
842 | "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz",
843 | "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==",
844 | "license": "MIT",
845 | "dependencies": {
846 | "@vue/compiler-core": "3.5.13",
847 | "@vue/shared": "3.5.13"
848 | }
849 | },
850 | "node_modules/@vue/compiler-sfc": {
851 | "version": "3.5.13",
852 | "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz",
853 | "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==",
854 | "license": "MIT",
855 | "dependencies": {
856 | "@babel/parser": "^7.25.3",
857 | "@vue/compiler-core": "3.5.13",
858 | "@vue/compiler-dom": "3.5.13",
859 | "@vue/compiler-ssr": "3.5.13",
860 | "@vue/shared": "3.5.13",
861 | "estree-walker": "^2.0.2",
862 | "magic-string": "^0.30.11",
863 | "postcss": "^8.4.48",
864 | "source-map-js": "^1.2.0"
865 | }
866 | },
867 | "node_modules/@vue/compiler-ssr": {
868 | "version": "3.5.13",
869 | "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz",
870 | "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==",
871 | "license": "MIT",
872 | "dependencies": {
873 | "@vue/compiler-dom": "3.5.13",
874 | "@vue/shared": "3.5.13"
875 | }
876 | },
877 | "node_modules/@vue/compiler-vue2": {
878 | "version": "2.7.16",
879 | "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz",
880 | "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==",
881 | "dev": true,
882 | "license": "MIT",
883 | "dependencies": {
884 | "de-indent": "^1.0.2",
885 | "he": "^1.2.0"
886 | }
887 | },
888 | "node_modules/@vue/language-core": {
889 | "version": "2.2.4",
890 | "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.2.4.tgz",
891 | "integrity": "sha512-eGGdw7eWUwdIn9Fy/irJ7uavCGfgemuHQABgJ/hU1UgZFnbTg9VWeXvHQdhY+2SPQZWJqWXvRWIg67t4iWEa+Q==",
892 | "dev": true,
893 | "license": "MIT",
894 | "dependencies": {
895 | "@volar/language-core": "~2.4.11",
896 | "@vue/compiler-dom": "^3.5.0",
897 | "@vue/compiler-vue2": "^2.7.16",
898 | "@vue/shared": "^3.5.0",
899 | "alien-signals": "^1.0.3",
900 | "minimatch": "^9.0.3",
901 | "muggle-string": "^0.4.1",
902 | "path-browserify": "^1.0.1"
903 | },
904 | "peerDependencies": {
905 | "typescript": "*"
906 | },
907 | "peerDependenciesMeta": {
908 | "typescript": {
909 | "optional": true
910 | }
911 | }
912 | },
913 | "node_modules/@vue/reactivity": {
914 | "version": "3.5.13",
915 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz",
916 | "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==",
917 | "license": "MIT",
918 | "dependencies": {
919 | "@vue/shared": "3.5.13"
920 | }
921 | },
922 | "node_modules/@vue/runtime-core": {
923 | "version": "3.5.13",
924 | "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz",
925 | "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==",
926 | "license": "MIT",
927 | "dependencies": {
928 | "@vue/reactivity": "3.5.13",
929 | "@vue/shared": "3.5.13"
930 | }
931 | },
932 | "node_modules/@vue/runtime-dom": {
933 | "version": "3.5.13",
934 | "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz",
935 | "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==",
936 | "license": "MIT",
937 | "dependencies": {
938 | "@vue/reactivity": "3.5.13",
939 | "@vue/runtime-core": "3.5.13",
940 | "@vue/shared": "3.5.13",
941 | "csstype": "^3.1.3"
942 | }
943 | },
944 | "node_modules/@vue/server-renderer": {
945 | "version": "3.5.13",
946 | "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz",
947 | "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==",
948 | "license": "MIT",
949 | "dependencies": {
950 | "@vue/compiler-ssr": "3.5.13",
951 | "@vue/shared": "3.5.13"
952 | },
953 | "peerDependencies": {
954 | "vue": "3.5.13"
955 | }
956 | },
957 | "node_modules/@vue/shared": {
958 | "version": "3.5.13",
959 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz",
960 | "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==",
961 | "license": "MIT"
962 | },
963 | "node_modules/@vue/tsconfig": {
964 | "version": "0.7.0",
965 | "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.7.0.tgz",
966 | "integrity": "sha512-ku2uNz5MaZ9IerPPUyOHzyjhXoX2kVJaVf7hL315DC17vS6IiZRmmCPfggNbU16QTvM80+uYYy3eYJB59WCtvg==",
967 | "dev": true,
968 | "license": "MIT",
969 | "peerDependencies": {
970 | "typescript": "5.x",
971 | "vue": "^3.4.0"
972 | },
973 | "peerDependenciesMeta": {
974 | "typescript": {
975 | "optional": true
976 | },
977 | "vue": {
978 | "optional": true
979 | }
980 | }
981 | },
982 | "node_modules/alien-signals": {
983 | "version": "1.0.4",
984 | "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-1.0.4.tgz",
985 | "integrity": "sha512-DJqqQD3XcsaQcQ1s+iE2jDUZmmQpXwHiR6fCAim/w87luaW+vmLY8fMlrdkmRwzaFXhkxf3rqPCR59tKVv1MDw==",
986 | "dev": true,
987 | "license": "MIT"
988 | },
989 | "node_modules/balanced-match": {
990 | "version": "1.0.2",
991 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
992 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
993 | "dev": true,
994 | "license": "MIT"
995 | },
996 | "node_modules/brace-expansion": {
997 | "version": "2.0.1",
998 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
999 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
1000 | "dev": true,
1001 | "license": "MIT",
1002 | "dependencies": {
1003 | "balanced-match": "^1.0.0"
1004 | }
1005 | },
1006 | "node_modules/csstype": {
1007 | "version": "3.1.3",
1008 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
1009 | "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
1010 | "license": "MIT"
1011 | },
1012 | "node_modules/de-indent": {
1013 | "version": "1.0.2",
1014 | "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
1015 | "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==",
1016 | "dev": true,
1017 | "license": "MIT"
1018 | },
1019 | "node_modules/entities": {
1020 | "version": "4.5.0",
1021 | "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
1022 | "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
1023 | "license": "BSD-2-Clause",
1024 | "engines": {
1025 | "node": ">=0.12"
1026 | },
1027 | "funding": {
1028 | "url": "https://github.com/fb55/entities?sponsor=1"
1029 | }
1030 | },
1031 | "node_modules/esbuild": {
1032 | "version": "0.25.0",
1033 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz",
1034 | "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==",
1035 | "dev": true,
1036 | "hasInstallScript": true,
1037 | "license": "MIT",
1038 | "bin": {
1039 | "esbuild": "bin/esbuild"
1040 | },
1041 | "engines": {
1042 | "node": ">=18"
1043 | },
1044 | "optionalDependencies": {
1045 | "@esbuild/aix-ppc64": "0.25.0",
1046 | "@esbuild/android-arm": "0.25.0",
1047 | "@esbuild/android-arm64": "0.25.0",
1048 | "@esbuild/android-x64": "0.25.0",
1049 | "@esbuild/darwin-arm64": "0.25.0",
1050 | "@esbuild/darwin-x64": "0.25.0",
1051 | "@esbuild/freebsd-arm64": "0.25.0",
1052 | "@esbuild/freebsd-x64": "0.25.0",
1053 | "@esbuild/linux-arm": "0.25.0",
1054 | "@esbuild/linux-arm64": "0.25.0",
1055 | "@esbuild/linux-ia32": "0.25.0",
1056 | "@esbuild/linux-loong64": "0.25.0",
1057 | "@esbuild/linux-mips64el": "0.25.0",
1058 | "@esbuild/linux-ppc64": "0.25.0",
1059 | "@esbuild/linux-riscv64": "0.25.0",
1060 | "@esbuild/linux-s390x": "0.25.0",
1061 | "@esbuild/linux-x64": "0.25.0",
1062 | "@esbuild/netbsd-arm64": "0.25.0",
1063 | "@esbuild/netbsd-x64": "0.25.0",
1064 | "@esbuild/openbsd-arm64": "0.25.0",
1065 | "@esbuild/openbsd-x64": "0.25.0",
1066 | "@esbuild/sunos-x64": "0.25.0",
1067 | "@esbuild/win32-arm64": "0.25.0",
1068 | "@esbuild/win32-ia32": "0.25.0",
1069 | "@esbuild/win32-x64": "0.25.0"
1070 | }
1071 | },
1072 | "node_modules/estree-walker": {
1073 | "version": "2.0.2",
1074 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
1075 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
1076 | "license": "MIT"
1077 | },
1078 | "node_modules/eventemitter3": {
1079 | "version": "5.0.1",
1080 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
1081 | "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==",
1082 | "license": "MIT"
1083 | },
1084 | "node_modules/fsevents": {
1085 | "version": "2.3.3",
1086 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
1087 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
1088 | "dev": true,
1089 | "hasInstallScript": true,
1090 | "license": "MIT",
1091 | "optional": true,
1092 | "os": [
1093 | "darwin"
1094 | ],
1095 | "engines": {
1096 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
1097 | }
1098 | },
1099 | "node_modules/he": {
1100 | "version": "1.2.0",
1101 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
1102 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
1103 | "dev": true,
1104 | "license": "MIT",
1105 | "bin": {
1106 | "he": "bin/he"
1107 | }
1108 | },
1109 | "node_modules/magic-string": {
1110 | "version": "0.30.17",
1111 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
1112 | "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
1113 | "license": "MIT",
1114 | "dependencies": {
1115 | "@jridgewell/sourcemap-codec": "^1.5.0"
1116 | }
1117 | },
1118 | "node_modules/minimatch": {
1119 | "version": "9.0.5",
1120 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
1121 | "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
1122 | "dev": true,
1123 | "license": "ISC",
1124 | "dependencies": {
1125 | "brace-expansion": "^2.0.1"
1126 | },
1127 | "engines": {
1128 | "node": ">=16 || 14 >=14.17"
1129 | },
1130 | "funding": {
1131 | "url": "https://github.com/sponsors/isaacs"
1132 | }
1133 | },
1134 | "node_modules/muggle-string": {
1135 | "version": "0.4.1",
1136 | "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz",
1137 | "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==",
1138 | "dev": true,
1139 | "license": "MIT"
1140 | },
1141 | "node_modules/nanoid": {
1142 | "version": "3.3.8",
1143 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
1144 | "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
1145 | "funding": [
1146 | {
1147 | "type": "github",
1148 | "url": "https://github.com/sponsors/ai"
1149 | }
1150 | ],
1151 | "license": "MIT",
1152 | "bin": {
1153 | "nanoid": "bin/nanoid.cjs"
1154 | },
1155 | "engines": {
1156 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1157 | }
1158 | },
1159 | "node_modules/path-browserify": {
1160 | "version": "1.0.1",
1161 | "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
1162 | "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
1163 | "dev": true,
1164 | "license": "MIT"
1165 | },
1166 | "node_modules/phaser": {
1167 | "version": "3.88.2",
1168 | "resolved": "https://registry.npmjs.org/phaser/-/phaser-3.88.2.tgz",
1169 | "integrity": "sha512-UBgd2sAFuRJbF2xKaQ5jpMWB8oETncChLnymLGHcrnT53vaqiGrQWbUKUDBawKLm24sghjKo4Bf+/xfv8espZQ==",
1170 | "license": "MIT",
1171 | "dependencies": {
1172 | "eventemitter3": "^5.0.1"
1173 | }
1174 | },
1175 | "node_modules/picocolors": {
1176 | "version": "1.1.1",
1177 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
1178 | "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
1179 | "license": "ISC"
1180 | },
1181 | "node_modules/postcss": {
1182 | "version": "8.5.3",
1183 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
1184 | "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
1185 | "funding": [
1186 | {
1187 | "type": "opencollective",
1188 | "url": "https://opencollective.com/postcss/"
1189 | },
1190 | {
1191 | "type": "tidelift",
1192 | "url": "https://tidelift.com/funding/github/npm/postcss"
1193 | },
1194 | {
1195 | "type": "github",
1196 | "url": "https://github.com/sponsors/ai"
1197 | }
1198 | ],
1199 | "license": "MIT",
1200 | "dependencies": {
1201 | "nanoid": "^3.3.8",
1202 | "picocolors": "^1.1.1",
1203 | "source-map-js": "^1.2.1"
1204 | },
1205 | "engines": {
1206 | "node": "^10 || ^12 || >=14"
1207 | }
1208 | },
1209 | "node_modules/rollup": {
1210 | "version": "4.34.8",
1211 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.8.tgz",
1212 | "integrity": "sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==",
1213 | "dev": true,
1214 | "license": "MIT",
1215 | "dependencies": {
1216 | "@types/estree": "1.0.6"
1217 | },
1218 | "bin": {
1219 | "rollup": "dist/bin/rollup"
1220 | },
1221 | "engines": {
1222 | "node": ">=18.0.0",
1223 | "npm": ">=8.0.0"
1224 | },
1225 | "optionalDependencies": {
1226 | "@rollup/rollup-android-arm-eabi": "4.34.8",
1227 | "@rollup/rollup-android-arm64": "4.34.8",
1228 | "@rollup/rollup-darwin-arm64": "4.34.8",
1229 | "@rollup/rollup-darwin-x64": "4.34.8",
1230 | "@rollup/rollup-freebsd-arm64": "4.34.8",
1231 | "@rollup/rollup-freebsd-x64": "4.34.8",
1232 | "@rollup/rollup-linux-arm-gnueabihf": "4.34.8",
1233 | "@rollup/rollup-linux-arm-musleabihf": "4.34.8",
1234 | "@rollup/rollup-linux-arm64-gnu": "4.34.8",
1235 | "@rollup/rollup-linux-arm64-musl": "4.34.8",
1236 | "@rollup/rollup-linux-loongarch64-gnu": "4.34.8",
1237 | "@rollup/rollup-linux-powerpc64le-gnu": "4.34.8",
1238 | "@rollup/rollup-linux-riscv64-gnu": "4.34.8",
1239 | "@rollup/rollup-linux-s390x-gnu": "4.34.8",
1240 | "@rollup/rollup-linux-x64-gnu": "4.34.8",
1241 | "@rollup/rollup-linux-x64-musl": "4.34.8",
1242 | "@rollup/rollup-win32-arm64-msvc": "4.34.8",
1243 | "@rollup/rollup-win32-ia32-msvc": "4.34.8",
1244 | "@rollup/rollup-win32-x64-msvc": "4.34.8",
1245 | "fsevents": "~2.3.2"
1246 | }
1247 | },
1248 | "node_modules/source-map-js": {
1249 | "version": "1.2.1",
1250 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
1251 | "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
1252 | "license": "BSD-3-Clause",
1253 | "engines": {
1254 | "node": ">=0.10.0"
1255 | }
1256 | },
1257 | "node_modules/typescript": {
1258 | "version": "5.7.3",
1259 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
1260 | "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
1261 | "devOptional": true,
1262 | "license": "Apache-2.0",
1263 | "bin": {
1264 | "tsc": "bin/tsc",
1265 | "tsserver": "bin/tsserver"
1266 | },
1267 | "engines": {
1268 | "node": ">=14.17"
1269 | }
1270 | },
1271 | "node_modules/undici-types": {
1272 | "version": "6.20.0",
1273 | "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
1274 | "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
1275 | "dev": true,
1276 | "license": "MIT"
1277 | },
1278 | "node_modules/vite": {
1279 | "version": "6.2.0",
1280 | "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.0.tgz",
1281 | "integrity": "sha512-7dPxoo+WsT/64rDcwoOjk76XHj+TqNTIvHKcuMQ1k4/SeHDaQt5GFAeLYzrimZrMpn/O6DtdI03WUjdxuPM0oQ==",
1282 | "dev": true,
1283 | "license": "MIT",
1284 | "dependencies": {
1285 | "esbuild": "^0.25.0",
1286 | "postcss": "^8.5.3",
1287 | "rollup": "^4.30.1"
1288 | },
1289 | "bin": {
1290 | "vite": "bin/vite.js"
1291 | },
1292 | "engines": {
1293 | "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
1294 | },
1295 | "funding": {
1296 | "url": "https://github.com/vitejs/vite?sponsor=1"
1297 | },
1298 | "optionalDependencies": {
1299 | "fsevents": "~2.3.3"
1300 | },
1301 | "peerDependencies": {
1302 | "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
1303 | "jiti": ">=1.21.0",
1304 | "less": "*",
1305 | "lightningcss": "^1.21.0",
1306 | "sass": "*",
1307 | "sass-embedded": "*",
1308 | "stylus": "*",
1309 | "sugarss": "*",
1310 | "terser": "^5.16.0",
1311 | "tsx": "^4.8.1",
1312 | "yaml": "^2.4.2"
1313 | },
1314 | "peerDependenciesMeta": {
1315 | "@types/node": {
1316 | "optional": true
1317 | },
1318 | "jiti": {
1319 | "optional": true
1320 | },
1321 | "less": {
1322 | "optional": true
1323 | },
1324 | "lightningcss": {
1325 | "optional": true
1326 | },
1327 | "sass": {
1328 | "optional": true
1329 | },
1330 | "sass-embedded": {
1331 | "optional": true
1332 | },
1333 | "stylus": {
1334 | "optional": true
1335 | },
1336 | "sugarss": {
1337 | "optional": true
1338 | },
1339 | "terser": {
1340 | "optional": true
1341 | },
1342 | "tsx": {
1343 | "optional": true
1344 | },
1345 | "yaml": {
1346 | "optional": true
1347 | }
1348 | }
1349 | },
1350 | "node_modules/vscode-uri": {
1351 | "version": "3.1.0",
1352 | "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz",
1353 | "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==",
1354 | "dev": true,
1355 | "license": "MIT"
1356 | },
1357 | "node_modules/vue": {
1358 | "version": "3.5.13",
1359 | "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz",
1360 | "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==",
1361 | "license": "MIT",
1362 | "dependencies": {
1363 | "@vue/compiler-dom": "3.5.13",
1364 | "@vue/compiler-sfc": "3.5.13",
1365 | "@vue/runtime-dom": "3.5.13",
1366 | "@vue/server-renderer": "3.5.13",
1367 | "@vue/shared": "3.5.13"
1368 | },
1369 | "peerDependencies": {
1370 | "typescript": "*"
1371 | },
1372 | "peerDependenciesMeta": {
1373 | "typescript": {
1374 | "optional": true
1375 | }
1376 | }
1377 | },
1378 | "node_modules/vue-tsc": {
1379 | "version": "2.2.4",
1380 | "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.2.4.tgz",
1381 | "integrity": "sha512-3EVHlxtpMXcb5bCaK7QDFTbEkMusDfVk0HVRrkv5hEb+Clpu9a96lKUXJAeD/akRlkoA4H8MCHgBDN19S6FnzA==",
1382 | "dev": true,
1383 | "license": "MIT",
1384 | "dependencies": {
1385 | "@volar/typescript": "~2.4.11",
1386 | "@vue/language-core": "2.2.4"
1387 | },
1388 | "bin": {
1389 | "vue-tsc": "bin/vue-tsc.js"
1390 | },
1391 | "peerDependencies": {
1392 | "typescript": ">=5.0.0"
1393 | }
1394 | }
1395 | }
1396 | }
1397 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-phaser-vite",
3 | "version": "1.1.0",
4 | "author": "Markus Appel ",
5 | "description": "Template for working with Phaser in a Vue project based on Vite",
6 | "keywords": [
7 | "vue",
8 | "phaser",
9 | "vite",
10 | "boilerplate",
11 | "template"
12 | ],
13 | "license": "MIT",
14 | "repository": {
15 | "type": "git",
16 | "url": "https://github.com/Sun0fABeach/vue-phaser-vite.git"
17 | },
18 | "type": "module",
19 | "scripts": {
20 | "dev": "vite",
21 | "build": "vue-tsc -b && vite build",
22 | "preview": "vite preview"
23 | },
24 | "dependencies": {
25 | "phaser": "^3.88.2",
26 | "vue": "^3.5.13"
27 | },
28 | "devDependencies": {
29 | "@types/node": "^22.13.5",
30 | "@vitejs/plugin-vue": "^5.2.1",
31 | "@vue/tsconfig": "^0.7.0",
32 | "typescript": "~5.7.2",
33 | "vite": "^6.2.0",
34 | "vue-tsc": "^2.2.4"
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/public/vite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
18 |
--------------------------------------------------------------------------------
/src/components/Game.vue:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | Downloading ...
12 |
13 |
14 |
15 |
16 |
17 |
23 |
--------------------------------------------------------------------------------
/src/components/PhaserContainer.vue:
--------------------------------------------------------------------------------
1 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/game/assets/bomb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Sun0fABeach/vue-phaser-vite/62ef8afe67f1c62ac4adccf78f687c21aeb96eae/src/game/assets/bomb.png
--------------------------------------------------------------------------------
/src/game/assets/sky.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Sun0fABeach/vue-phaser-vite/62ef8afe67f1c62ac4adccf78f687c21aeb96eae/src/game/assets/sky.png
--------------------------------------------------------------------------------
/src/game/assets/thud.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Sun0fABeach/vue-phaser-vite/62ef8afe67f1c62ac4adccf78f687c21aeb96eae/src/game/assets/thud.mp3
--------------------------------------------------------------------------------
/src/game/game.ts:
--------------------------------------------------------------------------------
1 | import Phaser from 'phaser'
2 | import BootScene from '@/game/scenes/BootScene'
3 | import PlayScene from '@/game/scenes/PlayScene'
4 |
5 | function launch(containerId: string) {
6 | return new Phaser.Game({
7 | type: Phaser.AUTO,
8 | width: 800,
9 | height: 600,
10 | parent: containerId,
11 | physics: {
12 | default: 'arcade',
13 | arcade: {
14 | gravity: { x: 0, y: 300 },
15 | debug: false
16 | }
17 | },
18 | scene: [BootScene, PlayScene]
19 | })
20 | }
21 |
22 | export default launch
23 | export { launch }
24 |
--------------------------------------------------------------------------------
/src/game/scenes/BootScene.ts:
--------------------------------------------------------------------------------
1 | import { Scene } from 'phaser'
2 | import sky from '@/game/assets/sky.png'
3 | import bomb from '@/game/assets/bomb.png'
4 | import thud from '@/game/assets/thud.mp3'
5 |
6 | export default class BootScene extends Scene {
7 | constructor () {
8 | super({ key: 'BootScene' })
9 | }
10 |
11 | preload () {
12 | this.load.image('sky', sky)
13 | this.load.image('bomb', bomb)
14 | this.load.audio('thud', thud)
15 | }
16 |
17 | create () {
18 | this.scene.start('PlayScene')
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/game/scenes/PlayScene.ts:
--------------------------------------------------------------------------------
1 | import { Scene } from 'phaser'
2 |
3 | export default class PlayScene extends Scene {
4 | constructor () {
5 | super({ key: 'PlayScene' })
6 | }
7 |
8 | create () {
9 | this.add.image(400, 300, 'sky')
10 |
11 | const bomb = this.physics.add.image(400, 200, 'bomb')
12 | bomb.setCollideWorldBounds(true)
13 | bomb.body.onWorldBounds = true // enable worldbounds collision event
14 | bomb.setBounce(1)
15 | bomb.setVelocity(200, 20)
16 |
17 | this.sound.add('thud')
18 | this.physics.world.on('worldbounds', () => {
19 | this.sound.play('thud', { volume: 0.75 })
20 | })
21 | }
22 |
23 | update () {
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/main.ts:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue'
2 | import App from './App.vue'
3 |
4 | createApp(App).mount('#app')
5 |
--------------------------------------------------------------------------------
/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "@vue/tsconfig/tsconfig.dom.json",
3 | "compilerOptions": {
4 | "paths": {
5 | "@/*": ["./src/*"],
6 | },
7 |
8 | "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
9 |
10 | /* Linting */
11 | "strict": true,
12 | "noUnusedLocals": true,
13 | "noUnusedParameters": true,
14 | "noFallthroughCasesInSwitch": true,
15 | "noUncheckedSideEffectImports": true
16 | },
17 | "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"]
18 | }
19 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "files": [],
3 | "references": [
4 | { "path": "./tsconfig.app.json" },
5 | { "path": "./tsconfig.node.json" }
6 | ]
7 | }
8 |
--------------------------------------------------------------------------------
/tsconfig.node.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
4 | "target": "ES2022",
5 | "lib": ["ES2023"],
6 | "module": "ESNext",
7 | "skipLibCheck": true,
8 |
9 | /* Bundler mode */
10 | "moduleResolution": "bundler",
11 | "allowImportingTsExtensions": true,
12 | "isolatedModules": true,
13 | "moduleDetection": "force",
14 | "noEmit": true,
15 |
16 | /* Linting */
17 | "strict": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "noFallthroughCasesInSwitch": true,
21 | "noUncheckedSideEffectImports": true
22 | },
23 | "include": ["vite.config.ts"]
24 | }
25 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { fileURLToPath, URL } from 'node:url'
2 | import { defineConfig } from 'vite'
3 | import vue from '@vitejs/plugin-vue'
4 |
5 | // https://vitejs.dev/config/
6 | export default defineConfig({
7 | plugins: [vue()],
8 | resolve: {
9 | alias: {
10 | '@': fileURLToPath(new URL('./src', import.meta.url))
11 | }
12 | }
13 | })
14 |
--------------------------------------------------------------------------------