From 9754140cbfcdf0ada97fa777806c4dfe6f7158f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A6=E5=90=9B?= <73606411+setube@users.noreply.github.com> Date: Thu, 11 Dec 2025 15:21:51 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=20README=20=E5=8F=8A?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E7=BB=93=E6=9E=84=EF=BC=8C=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E8=8B=B1=E6=96=87=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 删除 README.zh-CN.md,新增英文版 README.EN.md,简体中文说明合并至 README.md 并补充内容。同步 docs/assets 下页面 JS/CSS 文件,优化文档资源命名与引用,提升多语言文档一致性。 --- README.EN.md | 241 ++++++++++++ README.md | 311 +++++++-------- README.zh-CN.md | 243 ------------ docs/assets/AlertDialog-BbpHh-RO.js | 1 - docs/assets/AlertDialog-_72FqRCT.js | 1 + docs/assets/BattleSimulatorView-DADwA9bi.js | 1 + docs/assets/BattleSimulatorView-DI2C9KJc.js | 1 - docs/assets/BuildingsView-B00w_iux.js | 1 - docs/assets/BuildingsView-DhLhA5iU.js | 1 + docs/assets/CardDescription-CRV0m8La.js | 1 + docs/assets/CardDescription-Cb9v68Xa.js | 1 - docs/assets/CardUnlockOverlay-SeY-L1Ut.js | 2 + docs/assets/CardUnlockOverlay-tiSNfyF3.js | 2 - docs/assets/DefenseView-4OcM0vVE.js | 1 - docs/assets/DefenseView-Dgqev78h.js | 1 + docs/assets/FleetView-BtTh_NDj.js | 1 + docs/assets/FleetView-DY7yR25i.js | 1 - docs/assets/GalaxyView-BQhXx0XP.js | 1 + docs/assets/GalaxyView-C-Ue9wLo.js | 1 - docs/assets/MessagesView-0qhXN5qt.js | 1 + docs/assets/MessagesView-sKxpYFTS.js | 1 - docs/assets/OfficersView-B0Yv-kWu.js | 1 + docs/assets/OfficersView-D9JTCZE2.js | 1 - docs/assets/OverviewView-BBQfV6K0.js | 1 - docs/assets/OverviewView-CmVFZWGR.js | 1 + docs/assets/ResearchView-BnXltulQ.js | 1 + docs/assets/ResearchView-Do1WxfNH.js | 1 - docs/assets/SettingsView-IZn-5kW1.js | 1 - docs/assets/SettingsView-VjOhq7qI.js | 1 + docs/assets/ShipyardView-BGb4XhA2.js | 1 - docs/assets/ShipyardView-DXEuisRD.js | 1 + docs/assets/UnlockRequirement-BdFx1RC0.js | 1 + docs/assets/UnlockRequirement-DeOUxO_t.js | 1 - .../{eye-BrZrKlSB.js => eye-B5ACPUPU.js} | 2 +- docs/assets/index-B25uYV3W.css | 2 + docs/assets/index-BXmZ_V9Y.css | 2 - docs/assets/index-BpOElaf9.js | 53 --- docs/assets/index-Cch-Ig40.js | 44 +++ docs/assets/rolldown-runtime-CIDIeb-o.js | 1 + docs/assets/shipValidation-BZIVAW1v.js | 1 - docs/assets/shipValidation-Cx6mhfwF.js | 1 + docs/assets/useGameConfig-D2EZdt1x.js | 1 + docs/assets/useGameConfig-DqswvIth.js | 1 - docs/assets/vendor-ui-DBxeWLyT.js | 10 + docs/assets/vendor-vue-Bqq1sBNf.js | 1 + docs/index.html | 17 +- package.json | 2 + pnpm-lock.yaml | 359 +++++++++++++++++- vite.config.ts | 23 +- 49 files changed, 860 insertions(+), 487 deletions(-) create mode 100644 README.EN.md delete mode 100644 README.zh-CN.md delete mode 100644 docs/assets/AlertDialog-BbpHh-RO.js create mode 100644 docs/assets/AlertDialog-_72FqRCT.js create mode 100644 docs/assets/BattleSimulatorView-DADwA9bi.js delete mode 100644 docs/assets/BattleSimulatorView-DI2C9KJc.js delete mode 100644 docs/assets/BuildingsView-B00w_iux.js create mode 100644 docs/assets/BuildingsView-DhLhA5iU.js create mode 100644 docs/assets/CardDescription-CRV0m8La.js delete mode 100644 docs/assets/CardDescription-Cb9v68Xa.js create mode 100644 docs/assets/CardUnlockOverlay-SeY-L1Ut.js delete mode 100644 docs/assets/CardUnlockOverlay-tiSNfyF3.js delete mode 100644 docs/assets/DefenseView-4OcM0vVE.js create mode 100644 docs/assets/DefenseView-Dgqev78h.js create mode 100644 docs/assets/FleetView-BtTh_NDj.js delete mode 100644 docs/assets/FleetView-DY7yR25i.js create mode 100644 docs/assets/GalaxyView-BQhXx0XP.js delete mode 100644 docs/assets/GalaxyView-C-Ue9wLo.js create mode 100644 docs/assets/MessagesView-0qhXN5qt.js delete mode 100644 docs/assets/MessagesView-sKxpYFTS.js create mode 100644 docs/assets/OfficersView-B0Yv-kWu.js delete mode 100644 docs/assets/OfficersView-D9JTCZE2.js delete mode 100644 docs/assets/OverviewView-BBQfV6K0.js create mode 100644 docs/assets/OverviewView-CmVFZWGR.js create mode 100644 docs/assets/ResearchView-BnXltulQ.js delete mode 100644 docs/assets/ResearchView-Do1WxfNH.js delete mode 100644 docs/assets/SettingsView-IZn-5kW1.js create mode 100644 docs/assets/SettingsView-VjOhq7qI.js delete mode 100644 docs/assets/ShipyardView-BGb4XhA2.js create mode 100644 docs/assets/ShipyardView-DXEuisRD.js create mode 100644 docs/assets/UnlockRequirement-BdFx1RC0.js delete mode 100644 docs/assets/UnlockRequirement-DeOUxO_t.js rename docs/assets/{eye-BrZrKlSB.js => eye-B5ACPUPU.js} (73%) create mode 100644 docs/assets/index-B25uYV3W.css delete mode 100644 docs/assets/index-BXmZ_V9Y.css delete mode 100644 docs/assets/index-BpOElaf9.js create mode 100644 docs/assets/index-Cch-Ig40.js create mode 100644 docs/assets/rolldown-runtime-CIDIeb-o.js delete mode 100644 docs/assets/shipValidation-BZIVAW1v.js create mode 100644 docs/assets/shipValidation-Cx6mhfwF.js create mode 100644 docs/assets/useGameConfig-D2EZdt1x.js delete mode 100644 docs/assets/useGameConfig-DqswvIth.js create mode 100644 docs/assets/vendor-ui-DBxeWLyT.js create mode 100644 docs/assets/vendor-vue-Bqq1sBNf.js diff --git a/README.EN.md b/README.EN.md new file mode 100644 index 0000000..3fd835f --- /dev/null +++ b/README.EN.md @@ -0,0 +1,241 @@ +
+ OGame Vue TS Logo + + # OGame Vue TS + + A modern web-based implementation of the classic OGame space strategy game, built with Vue 3 and TypeScript. + + [![License: CC BY-NC 4.0](https://img.shields.io/badge/License-CC%20BY--NC%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc/4.0/) + [![Vue 3](https://img.shields.io/badge/Vue-3.5-brightgreen.svg)](https://vuejs.org/) + [![TypeScript](https://img.shields.io/badge/TypeScript-5.9-blue.svg)](https://www.typescriptlang.org/) + [![Vite](https://img.shields.io/badge/Vite-7.2-646CFF.svg)](https://vitejs.dev/) + [简体中文](README.md) | English + +
+ +## 📖 About + +OGame Vue TS is a single-player, browser-based space strategy game inspired by the classic OGame. Build your empire across the galaxy, research technologies, construct ships, and engage in epic space battles. This project is built with modern web technologies, offering a smooth and responsive gaming experience entirely in your browser with local data persistence. + +## ✨ Features + +- 🌍 **Multi-language Support** - Available in 6 languages: English, Chinese (Simplified & Traditional), German, Russian, and Korean +- 🏗️ **Building Management** - Construct and upgrade various buildings on planets and moons +- 🔬 **Research Technologies** - Unlock advanced technologies to enhance your empire +- 🚀 **Fleet Management** - Build ships, send missions, and engage in tactical space battles +- 🛡️ **Defense Systems** - Deploy defensive structures to protect your colonies +- 👨‍✈️ **Officers System** - Recruit officers to gain strategic advantages +- ⚔️ **Battle Simulator** - Test combat scenarios before committing resources +- 🌌 **Galaxy View** - Explore the universe and interact with other planets +- 💾 **Local Data Persistence** - All game data is encrypted and stored locally in your browser +- 🌓 **Dark/Light Mode** - Choose your preferred visual theme +- 📊 **Queue Management** - Manage multiple build and research queues +- 🌙 **Moon Generation** - Chance-based moon creation from debris fields + +## 🛠️ Tech Stack + +- **Frontend Framework:** [Vue 3](https://vuejs.org/) with Composition API (` - + + + + +
+ + + \ No newline at end of file diff --git a/package.json b/package.json index 3ff44f1..c83621a 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,8 @@ "@vueuse/core": "^14.1.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", + "crypto-js": "^4.2.0", + "file-saver": "^2.0.5", "lucide-vue-next": "^0.556.0", "pinia": "^3.0.4", "pinia-plugin-persistedstate": "^4.7.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bd5d45c..4698250 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,7 @@ importers: dependencies: '@tailwindcss/vite': specifier: ^4.1.17 - version: 4.1.17(rolldown-vite@7.2.5(@types/node@24.10.2)(jiti@2.6.1)) + version: 4.1.17(rolldown-vite@7.2.5(@types/node@24.10.2)(esbuild@0.27.1)(jiti@2.6.1)(terser@5.44.1)) '@tanstack/vue-table': specifier: ^8.21.3 version: 8.21.3(vue@3.5.25(typescript@5.9.3)) @@ -26,6 +26,12 @@ importers: clsx: specifier: ^2.1.1 version: 2.1.1 + crypto-js: + specifier: ^4.2.0 + version: 4.2.0 + file-saver: + specifier: ^2.0.5 + version: 2.0.5 lucide-vue-next: specifier: ^0.556.0 version: 0.556.0(vue@3.5.25(typescript@5.9.3)) @@ -65,10 +71,16 @@ importers: version: 24.10.2 '@vitejs/plugin-vue': specifier: ^6.0.1 - version: 6.0.2(rolldown-vite@7.2.5(@types/node@24.10.2)(jiti@2.6.1))(vue@3.5.25(typescript@5.9.3)) + version: 6.0.2(rolldown-vite@7.2.5(@types/node@24.10.2)(esbuild@0.27.1)(jiti@2.6.1)(terser@5.44.1))(vue@3.5.25(typescript@5.9.3)) '@vue/tsconfig': specifier: ^0.8.1 version: 0.8.1(typescript@5.9.3)(vue@3.5.25(typescript@5.9.3)) + esbuild: + specifier: ^0.27.1 + version: 0.27.1 + terser: + specifier: ^5.44.1 + version: 5.44.1 tw-animate-css: specifier: ^1.4.0 version: 1.4.0 @@ -77,7 +89,7 @@ importers: version: 5.9.3 vite: specifier: npm:rolldown-vite@7.2.5 - version: rolldown-vite@7.2.5(@types/node@24.10.2)(jiti@2.6.1) + version: rolldown-vite@7.2.5(@types/node@24.10.2)(esbuild@0.27.1)(jiti@2.6.1)(terser@5.44.1) vue-tsc: specifier: ^3.1.4 version: 3.1.8(typescript@5.9.3) @@ -110,6 +122,162 @@ packages: '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + '@esbuild/aix-ppc64@0.27.1': + resolution: {integrity: sha512-HHB50pdsBX6k47S4u5g/CaLjqS3qwaOVE5ILsq64jyzgMhLuCuZ8rGzM9yhsAjfjkbgUPMzZEPa7DAp7yz6vuA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.27.1': + resolution: {integrity: sha512-45fuKmAJpxnQWixOGCrS+ro4Uvb4Re9+UTieUY2f8AEc+t7d4AaZ6eUJ3Hva7dtrxAAWHtlEFsXFMAgNnGU9uQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.27.1': + resolution: {integrity: sha512-kFqa6/UcaTbGm/NncN9kzVOODjhZW8e+FRdSeypWe6j33gzclHtwlANs26JrupOntlcWmB0u8+8HZo8s7thHvg==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.27.1': + resolution: {integrity: sha512-LBEpOz0BsgMEeHgenf5aqmn/lLNTFXVfoWMUox8CtWWYK9X4jmQzWjoGoNb8lmAYml/tQ/Ysvm8q7szu7BoxRQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.27.1': + resolution: {integrity: sha512-veg7fL8eMSCVKL7IW4pxb54QERtedFDfY/ASrumK/SbFsXnRazxY4YykN/THYqFnFwJ0aVjiUrVG2PwcdAEqQQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.27.1': + resolution: {integrity: sha512-+3ELd+nTzhfWb07Vol7EZ+5PTbJ/u74nC6iv4/lwIU99Ip5uuY6QoIf0Hn4m2HoV0qcnRivN3KSqc+FyCHjoVQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.27.1': + resolution: {integrity: sha512-/8Rfgns4XD9XOSXlzUDepG8PX+AVWHliYlUkFI3K3GB6tqbdjYqdhcb4BKRd7C0BhZSoaCxhv8kTcBrcZWP+xg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.27.1': + resolution: {integrity: sha512-GITpD8dK9C+r+5yRT/UKVT36h/DQLOHdwGVwwoHidlnA168oD3uxA878XloXebK4Ul3gDBBIvEdL7go9gCUFzQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.27.1': + resolution: {integrity: sha512-W9//kCrh/6in9rWIBdKaMtuTTzNj6jSeG/haWBADqLLa9P8O5YSRDzgD5y9QBok4AYlzS6ARHifAb75V6G670Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.27.1': + resolution: {integrity: sha512-ieMID0JRZY/ZeCrsFQ3Y3NlHNCqIhTprJfDgSB3/lv5jJZ8FX3hqPyXWhe+gvS5ARMBJ242PM+VNz/ctNj//eA==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.27.1': + resolution: {integrity: sha512-VIUV4z8GD8rtSVMfAj1aXFahsi/+tcoXXNYmXgzISL+KB381vbSTNdeZHHHIYqFyXcoEhu9n5cT+05tRv13rlw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.27.1': + resolution: {integrity: sha512-l4rfiiJRN7sTNI//ff65zJ9z8U+k6zcCg0LALU5iEWzY+a1mVZ8iWC1k5EsNKThZ7XCQ6YWtsZ8EWYm7r1UEsg==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.27.1': + resolution: {integrity: sha512-U0bEuAOLvO/DWFdygTHWY8C067FXz+UbzKgxYhXC0fDieFa0kDIra1FAhsAARRJbvEyso8aAqvPdNxzWuStBnA==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.27.1': + resolution: {integrity: sha512-NzdQ/Xwu6vPSf/GkdmRNsOfIeSGnh7muundsWItmBsVpMoNPVpM61qNzAVY3pZ1glzzAxLR40UyYM23eaDDbYQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.27.1': + resolution: {integrity: sha512-7zlw8p3IApcsN7mFw0O1Z1PyEk6PlKMu18roImfl3iQHTnr/yAfYv6s4hXPidbDoI2Q0pW+5xeoM4eTCC0UdrQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.27.1': + resolution: {integrity: sha512-cGj5wli+G+nkVQdZo3+7FDKC25Uh4ZVwOAK6A06Hsvgr8WqBBuOy/1s+PUEd/6Je+vjfm6stX0kmib5b/O2Ykw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.27.1': + resolution: {integrity: sha512-z3H/HYI9MM0HTv3hQZ81f+AKb+yEoCRlUby1F80vbQ5XdzEMyY/9iNlAmhqiBKw4MJXwfgsh7ERGEOhrM1niMA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.27.1': + resolution: {integrity: sha512-wzC24DxAvk8Em01YmVXyjl96Mr+ecTPyOuADAvjGg+fyBpGmxmcr2E5ttf7Im8D0sXZihpxzO1isus8MdjMCXQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.27.1': + resolution: {integrity: sha512-1YQ8ybGi2yIXswu6eNzJsrYIGFpnlzEWRl6iR5gMgmsrR0FcNoV1m9k9sc3PuP5rUBLshOZylc9nqSgymI+TYg==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.27.1': + resolution: {integrity: sha512-5Z+DzLCrq5wmU7RDaMDe2DVXMRm2tTDvX2KU14JJVBN2CT/qov7XVix85QoJqHltpvAOZUAc3ndU56HSMWrv8g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.27.1': + resolution: {integrity: sha512-Q73ENzIdPF5jap4wqLtsfh8YbYSZ8Q0wnxplOlZUOyZy7B4ZKW8DXGWgTCZmF8VWD7Tciwv5F4NsRf6vYlZtqg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.27.1': + resolution: {integrity: sha512-ajbHrGM/XiK+sXM0JzEbJAen+0E+JMQZ2l4RR4VFwvV9JEERx+oxtgkpoKv1SevhjavK2z2ReHk32pjzktWbGg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.27.1': + resolution: {integrity: sha512-IPUW+y4VIjuDVn+OMzHc5FV4GubIwPnsz6ubkvN8cuhEqH81NovB53IUlrlBkPMEPxvNnf79MGBoz8rZ2iW8HA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.27.1': + resolution: {integrity: sha512-RIVRWiljWA6CdVu8zkWcRmGP7iRRIIwvhDKem8UMBjPql2TXM5PkDVvvrzMtj1V+WFPB4K7zkIGM7VzRtFkjdg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.27.1': + resolution: {integrity: sha512-2BR5M8CPbptC1AK5JbJT1fWrHLvejwZidKx3UMSF0ecHMa+smhi16drIrCEggkgviBwLYd5nwrFLSl5Kho96RQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.27.1': + resolution: {integrity: sha512-d5X6RMYv6taIymSk8JBP+nxv8DQAMY6A51GPgusqLdK9wBz5wWIXy1KjTck6HnjE9hqJzJRdk+1p/t5soSbCtw==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@floating-ui/core@1.7.3': resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} @@ -138,6 +306,9 @@ packages: resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} + '@jridgewell/source-map@0.3.11': + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} + '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} @@ -472,6 +643,11 @@ packages: peerDependencies: vue: ^3.5.0 + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + alien-signals@3.1.1: resolution: {integrity: sha512-ogkIWbVrLwKtHY6oOAXaYkAxP+cTH7V5FZ5+Tm4NZFd8VDZ6uNMDrfzqctTZ42eTMCSR3ne3otpcxmqSnFfPYA==} @@ -482,6 +658,9 @@ packages: birpc@2.9.0: resolution: {integrity: sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==} + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + class-variance-authority@0.7.1: resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} @@ -489,10 +668,16 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + copy-anything@4.0.5: resolution: {integrity: sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==} engines: {node: '>=18'} + crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} @@ -511,6 +696,11 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + esbuild@0.27.1: + resolution: {integrity: sha512-yY35KZckJJuVVPXpvjgxiCuVEJT67F6zDeVTv4rizyPrfGBUpZQsvmxnN+C371c2esD/hNMjj4tpBhuueLN7aA==} + engines: {node: '>=18'} + hasBin: true + estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} @@ -523,6 +713,9 @@ packages: picomatch: optional: true + file-saver@2.0.5: + resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==} + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -735,6 +928,13 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + speakingurl@14.0.1: resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} engines: {node: '>=0.10.0'} @@ -753,6 +953,11 @@ packages: resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} + terser@5.44.1: + resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==} + engines: {node: '>=10'} + hasBin: true + tinyglobby@0.2.15: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} @@ -849,6 +1054,84 @@ snapshots: tslib: 2.8.1 optional: true + '@esbuild/aix-ppc64@0.27.1': + optional: true + + '@esbuild/android-arm64@0.27.1': + optional: true + + '@esbuild/android-arm@0.27.1': + optional: true + + '@esbuild/android-x64@0.27.1': + optional: true + + '@esbuild/darwin-arm64@0.27.1': + optional: true + + '@esbuild/darwin-x64@0.27.1': + optional: true + + '@esbuild/freebsd-arm64@0.27.1': + optional: true + + '@esbuild/freebsd-x64@0.27.1': + optional: true + + '@esbuild/linux-arm64@0.27.1': + optional: true + + '@esbuild/linux-arm@0.27.1': + optional: true + + '@esbuild/linux-ia32@0.27.1': + optional: true + + '@esbuild/linux-loong64@0.27.1': + optional: true + + '@esbuild/linux-mips64el@0.27.1': + optional: true + + '@esbuild/linux-ppc64@0.27.1': + optional: true + + '@esbuild/linux-riscv64@0.27.1': + optional: true + + '@esbuild/linux-s390x@0.27.1': + optional: true + + '@esbuild/linux-x64@0.27.1': + optional: true + + '@esbuild/netbsd-arm64@0.27.1': + optional: true + + '@esbuild/netbsd-x64@0.27.1': + optional: true + + '@esbuild/openbsd-arm64@0.27.1': + optional: true + + '@esbuild/openbsd-x64@0.27.1': + optional: true + + '@esbuild/openharmony-arm64@0.27.1': + optional: true + + '@esbuild/sunos-x64@0.27.1': + optional: true + + '@esbuild/win32-arm64@0.27.1': + optional: true + + '@esbuild/win32-ia32@0.27.1': + optional: true + + '@esbuild/win32-x64@0.27.1': + optional: true + '@floating-ui/core@1.7.3': dependencies: '@floating-ui/utils': 0.2.10 @@ -889,6 +1172,11 @@ snapshots: '@jridgewell/resolve-uri@3.1.2': {} + '@jridgewell/source-map@0.3.11': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + '@jridgewell/sourcemap-codec@1.5.5': {} '@jridgewell/trace-mapping@0.3.31': @@ -1018,12 +1306,12 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.1.17 '@tailwindcss/oxide-win32-x64-msvc': 4.1.17 - '@tailwindcss/vite@4.1.17(rolldown-vite@7.2.5(@types/node@24.10.2)(jiti@2.6.1))': + '@tailwindcss/vite@4.1.17(rolldown-vite@7.2.5(@types/node@24.10.2)(esbuild@0.27.1)(jiti@2.6.1)(terser@5.44.1))': dependencies: '@tailwindcss/node': 4.1.17 '@tailwindcss/oxide': 4.1.17 tailwindcss: 4.1.17 - vite: rolldown-vite@7.2.5(@types/node@24.10.2)(jiti@2.6.1) + vite: rolldown-vite@7.2.5(@types/node@24.10.2)(esbuild@0.27.1)(jiti@2.6.1)(terser@5.44.1) '@tanstack/table-core@8.21.3': {} @@ -1054,10 +1342,10 @@ snapshots: '@types/web-bluetooth@0.0.21': {} - '@vitejs/plugin-vue@6.0.2(rolldown-vite@7.2.5(@types/node@24.10.2)(jiti@2.6.1))(vue@3.5.25(typescript@5.9.3))': + '@vitejs/plugin-vue@6.0.2(rolldown-vite@7.2.5(@types/node@24.10.2)(esbuild@0.27.1)(jiti@2.6.1)(terser@5.44.1))(vue@3.5.25(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.50 - vite: rolldown-vite@7.2.5(@types/node@24.10.2)(jiti@2.6.1) + vite: rolldown-vite@7.2.5(@types/node@24.10.2)(esbuild@0.27.1)(jiti@2.6.1)(terser@5.44.1) vue: 3.5.25(typescript@5.9.3) '@volar/language-core@2.4.26': @@ -1193,6 +1481,8 @@ snapshots: dependencies: vue: 3.5.25(typescript@5.9.3) + acorn@8.15.0: {} + alien-signals@3.1.1: {} aria-hidden@1.2.6: @@ -1201,16 +1491,22 @@ snapshots: birpc@2.9.0: {} + buffer-from@1.1.2: {} + class-variance-authority@0.7.1: dependencies: clsx: 2.1.1 clsx@2.1.1: {} + commander@2.20.3: {} + copy-anything@4.0.5: dependencies: is-what: 5.5.0 + crypto-js@4.2.0: {} + csstype@3.2.3: {} defu@6.1.4: {} @@ -1224,12 +1520,43 @@ snapshots: entities@4.5.0: {} + esbuild@0.27.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.1 + '@esbuild/android-arm': 0.27.1 + '@esbuild/android-arm64': 0.27.1 + '@esbuild/android-x64': 0.27.1 + '@esbuild/darwin-arm64': 0.27.1 + '@esbuild/darwin-x64': 0.27.1 + '@esbuild/freebsd-arm64': 0.27.1 + '@esbuild/freebsd-x64': 0.27.1 + '@esbuild/linux-arm': 0.27.1 + '@esbuild/linux-arm64': 0.27.1 + '@esbuild/linux-ia32': 0.27.1 + '@esbuild/linux-loong64': 0.27.1 + '@esbuild/linux-mips64el': 0.27.1 + '@esbuild/linux-ppc64': 0.27.1 + '@esbuild/linux-riscv64': 0.27.1 + '@esbuild/linux-s390x': 0.27.1 + '@esbuild/linux-x64': 0.27.1 + '@esbuild/netbsd-arm64': 0.27.1 + '@esbuild/netbsd-x64': 0.27.1 + '@esbuild/openbsd-arm64': 0.27.1 + '@esbuild/openbsd-x64': 0.27.1 + '@esbuild/openharmony-arm64': 0.27.1 + '@esbuild/sunos-x64': 0.27.1 + '@esbuild/win32-arm64': 0.27.1 + '@esbuild/win32-ia32': 0.27.1 + '@esbuild/win32-x64': 0.27.1 + estree-walker@2.0.2: {} fdir@6.5.0(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 + file-saver@2.0.5: {} + fsevents@2.3.3: optional: true @@ -1352,7 +1679,7 @@ snapshots: rfdc@1.4.1: {} - rolldown-vite@7.2.5(@types/node@24.10.2)(jiti@2.6.1): + rolldown-vite@7.2.5(@types/node@24.10.2)(esbuild@0.27.1)(jiti@2.6.1)(terser@5.44.1): dependencies: '@oxc-project/runtime': 0.97.0 fdir: 6.5.0(picomatch@4.0.3) @@ -1363,8 +1690,10 @@ snapshots: tinyglobby: 0.2.15 optionalDependencies: '@types/node': 24.10.2 + esbuild: 0.27.1 fsevents: 2.3.3 jiti: 2.6.1 + terser: 5.44.1 rolldown@1.0.0-beta.50: dependencies: @@ -1388,6 +1717,13 @@ snapshots: source-map-js@1.2.1: {} + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + speakingurl@14.0.1: {} superjson@2.2.6: @@ -1400,6 +1736,13 @@ snapshots: tapable@2.3.0: {} + terser@5.44.1: + dependencies: + '@jridgewell/source-map': 0.3.11 + acorn: 8.15.0 + commander: 2.20.3 + source-map-support: 0.5.21 + tinyglobby@0.2.15: dependencies: fdir: 6.5.0(picomatch@4.0.3) diff --git a/vite.config.ts b/vite.config.ts index fee4aea..6a60bff 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -5,7 +5,26 @@ import path from 'node:path' export default defineConfig({ base: './', - build: { outDir: 'docs' }, + build: { + outDir: 'docs', + sourcemap: false, + cssCodeSplit: true, + rollupOptions: { + output: { + manualChunks(id) { + if (id.includes('node_modules/vue')) return 'vendor-vue' + if (id.includes('node_modules/vue-router')) return 'vendor-vue' + if (id.includes('node_modules/pinia')) return 'vendor-vue' + if (id.includes('node_modules/reka-ui')) return 'vendor-ui' + if (id.includes('node_modules/@vueuse/core')) return 'vendor-ui' + } + } + }, + }, plugins: [vue(), tailwindcss()], - resolve: { alias: { '@': path.resolve(__dirname, './src') } } + resolve: { + alias: { + '@': path.resolve(__dirname, './src'), + } + } })