This commit is contained in:
abearxiong 2025-04-02 17:53:50 +08:00
parent a65cd7b4ce
commit 839eac2894
9 changed files with 265 additions and 271 deletions

View File

@ -1,31 +0,0 @@
import js from '@eslint/js';
import globals from 'globals';
import reactHooks from 'eslint-plugin-react-hooks';
import reactRefresh from 'eslint-plugin-react-refresh';
import tseslint from 'typescript-eslint';
import react from 'eslint-plugin-react';
export default tseslint.config(
{ ignores: ['dist'] },
{
extends: [js.configs.recommended, ...tseslint.configs.recommended],
files: ['**/*.{ts,tsx}'],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
},
plugins: {
'react-hooks': reactHooks,
'react-refresh': reactRefresh,
},
rules: {
...reactHooks.configs.recommended.rules,
'react-refresh/only-export-components': ['warn', { allowConstantExport: true }],
'@typescript-eslint/no-explicit-any': 'off',
...react.configs.recommended.rules,
...react.configs['jsx-runtime'].rules,
'@typescript-eslint/no-unused-vars': 'off',
'no-debugger': 'off',
},
},
);

View File

@ -7,10 +7,8 @@
"scripts": {
"dev": "vite",
"build": "vite build",
"lint": "eslint .",
"preview": "vite preview",
"pub": "envision deploy ./dist -k vite-react -v 0.0.1",
"ev": "npm run build && npm run deploy",
"dev:lib": "turbo dev"
},
"author": "abearxiong <xiongxiao@xiongxiao.me>",
@ -20,24 +18,25 @@
"clsx": "^2.1.1",
"dayjs": "^1.11.13",
"lodash-es": "^4.17.21",
"lucide-react": "^0.484.0",
"lucide-react": "^0.487.0",
"nanoid": "^5.1.5",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"react-toastify": "^11.0.5",
"zustand": "^5.0.3"
},
"devDependencies": {
"@kevisual/query": "0.0.15",
"@kevisual/types": "^0.0.6",
"@tailwindcss/vite": "^4.0.16",
"@types/node": "^22.13.13",
"@types/react": "^19.0.12",
"@types/react-dom": "^19.0.4",
"@tailwindcss/vite": "^4.1.1",
"@types/node": "^22.13.17",
"@types/react": "^19.1.0",
"@types/react-dom": "^19.1.1",
"@vitejs/plugin-basic-ssl": "^2.0.0",
"@vitejs/plugin-react": "^4.3.4",
"tailwindcss": "^4.0.16",
"tailwindcss": "^4.1.1",
"typescript": "^5.8.2",
"vite": "^6.2.3"
"vite": "^6.2.4"
},
"packageManager": "pnpm@10.6.5"
"packageManager": "pnpm@10.7.1"
}

315
pnpm-lock.yaml generated
View File

@ -21,23 +21,23 @@ importers:
specifier: ^4.17.21
version: 4.17.21
lucide-react:
specifier: ^0.484.0
version: 0.484.0(react@19.0.0)
specifier: ^0.487.0
version: 0.487.0(react@19.1.0)
nanoid:
specifier: ^5.1.5
version: 5.1.5
react:
specifier: ^19.0.0
version: 19.0.0
specifier: ^19.1.0
version: 19.1.0
react-dom:
specifier: ^19.0.0
version: 19.0.0(react@19.0.0)
specifier: ^19.1.0
version: 19.1.0(react@19.1.0)
react-toastify:
specifier: ^11.0.5
version: 11.0.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
version: 11.0.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
zustand:
specifier: ^5.0.3
version: 5.0.3(@types/react@19.0.12)(immer@10.1.1)(react@19.0.0)(use-sync-external-store@1.2.2(react@19.0.0))
version: 5.0.3(@types/react@19.1.0)(immer@10.1.1)(react@19.1.0)(use-sync-external-store@1.2.2(react@19.1.0))
devDependencies:
'@kevisual/query':
specifier: 0.0.15
@ -46,29 +46,32 @@ importers:
specifier: ^0.0.6
version: 0.0.6
'@tailwindcss/vite':
specifier: ^4.0.16
version: 4.0.16(vite@6.2.3(@types/node@22.13.13)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.5.1))
specifier: ^4.1.0
version: 4.1.0(vite@6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.5.1))
'@types/node':
specifier: ^22.13.13
version: 22.13.13
specifier: ^22.13.17
version: 22.13.17
'@types/react':
specifier: ^19.0.12
version: 19.0.12
specifier: ^19.1.0
version: 19.1.0
'@types/react-dom':
specifier: ^19.0.4
version: 19.0.4(@types/react@19.0.12)
specifier: ^19.1.1
version: 19.1.1(@types/react@19.1.0)
'@vitejs/plugin-basic-ssl':
specifier: ^2.0.0
version: 2.0.0(vite@6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.5.1))
'@vitejs/plugin-react':
specifier: ^4.3.4
version: 4.3.4(vite@6.2.3(@types/node@22.13.13)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.5.1))
version: 4.3.4(vite@6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.5.1))
tailwindcss:
specifier: ^4.0.16
version: 4.0.16
specifier: ^4.1.0
version: 4.1.0
typescript:
specifier: ^5.8.2
version: 5.8.2
vite:
specifier: ^6.2.3
version: 6.2.3(@types/node@22.13.13)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.5.1)
specifier: ^6.2.4
version: 6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.5.1)
packages:
@ -444,81 +447,81 @@ packages:
cpu: [x64]
os: [win32]
'@tailwindcss/node@4.0.16':
resolution: {integrity: sha512-T6IK79hoCFScxD5tRxWMtwqwSs4sT81Vw+YbzL7RZD0/Ndm4y5kboV7LdQ97YGH6udoOZyVT/uEfrnU2L5Nkog==}
'@tailwindcss/node@4.1.0':
resolution: {integrity: sha512-mfgxGxFaxbsUbaGwKIAQXUSm7Qoojw53FftpoKwo4ANwr9wnDaByz4vi1gMti/xfJvmQ5lzA1DvPiX5yCHtBkQ==}
'@tailwindcss/oxide-android-arm64@4.0.16':
resolution: {integrity: sha512-mieEZrNLHatpQu6ad0pWBnL8ObUE9ZSe4eoX6GKTqsKv98AxNw5lUa5nJM0FgD8rYJeZ2dPtHNN/YM2xY9R+9g==}
'@tailwindcss/oxide-android-arm64@4.1.0':
resolution: {integrity: sha512-UredFljuHey2Kh5qyYfQVBr0Xfq70ZE5Df6i5IubNYQGs2JXXT4VL0SIUjwzHx5W9T6t7dT7banunlV6lthGPQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [android]
'@tailwindcss/oxide-darwin-arm64@4.0.16':
resolution: {integrity: sha512-pfilSvgrX5UDdjh09gGVMhAPfZVucm4AnwFBkwBe6WFl7gzMAZ92/35GC0yMDeS+W+RNSXclXJz+HamF1iS/aA==}
'@tailwindcss/oxide-darwin-arm64@4.1.0':
resolution: {integrity: sha512-QHQ/46lRVwH9zEBNiRk8AJ3Af4pMq6DuZAI//q323qrPOXjsRdrhLsH9LUO3mqBfHr5EZNUxN3Am5vpO89sntw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
'@tailwindcss/oxide-darwin-x64@4.0.16':
resolution: {integrity: sha512-Z3lJY3yUjlHbzgXwWH9Y6IGeSGXfwjbXuvTPolyJUGMZl2ZaHdQMPOZ8dMll1knSLjctOif+QijMab0+GSXYLQ==}
'@tailwindcss/oxide-darwin-x64@4.1.0':
resolution: {integrity: sha512-lEMgYHCvQQ6x2KOZ4FwnPprwfnc+UnjzwXRqEYIhB/NlYvXQD1QMf7oKEDRqy94DiZaYox9ZRfG2YJOBgM0UkA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
'@tailwindcss/oxide-freebsd-x64@4.0.16':
resolution: {integrity: sha512-dv2U8Yc7vKIDyiJkUouhjsl+dTfRImNyZRCTFsHvvrhJvenYZBRtE/wDSYlZHR0lWKhIocxk1ScAkAcMR3F3QQ==}
'@tailwindcss/oxide-freebsd-x64@4.1.0':
resolution: {integrity: sha512-9fdImTc+2lA5yHqJ61oeTXfCtzylNOzJVFhyWwVQAJESJJbVCPnj6f+b+Zf/AYAdKQfS6FCThbPEahkQrDCgLQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [freebsd]
'@tailwindcss/oxide-linux-arm-gnueabihf@4.0.16':
resolution: {integrity: sha512-XBRXyUUyjMg5UMiyuQxJqWSs27w0V49g1iPuhrFakmu1/idDSly59XYteRrI2onoS9AzmMwfyzdiQSJXM89+PQ==}
'@tailwindcss/oxide-linux-arm-gnueabihf@4.1.0':
resolution: {integrity: sha512-HB0bTkUOuTLLSdadyRhKE9yps4/ZBjrojbHTPMSvvf/8yBLZRPpWb+A6IgW5R+2A2AL4KhVPgLwWfoXsErxJFg==}
engines: {node: '>= 10'}
cpu: [arm]
os: [linux]
'@tailwindcss/oxide-linux-arm64-gnu@4.0.16':
resolution: {integrity: sha512-+bL1zkU8MDzv389OqyI0SJbrG9kGsdxf+k2ZAILlw1TPWg5oeMkwoqgaQRqGwpOHz0pycT94qIgWVNJavAz+Iw==}
'@tailwindcss/oxide-linux-arm64-gnu@4.1.0':
resolution: {integrity: sha512-+QtYCwvKLjC46h6RikKkpELJWrpiMMtgyK0aaqhwPLEx1icGgIhwz8dqrkAiqbFRE0KiRrE2aenhYoEkplyRmA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
'@tailwindcss/oxide-linux-arm64-musl@4.0.16':
resolution: {integrity: sha512-Uqfnyx9oFxoX+/iy9pIDTADHLLNwuZNB8QSp+BwKAhtHjBTTYmDAdxKy3u8lJZve1aOd+S145eWpn3tT08cm4w==}
'@tailwindcss/oxide-linux-arm64-musl@4.1.0':
resolution: {integrity: sha512-nApadFKM9GauzuPZPlt6TKfELavMHqJ0gVd+GYkYBTwr2t9KhgCAb2sKiFDDIhs1a7gOjsU7P1lEauv3iKFp+Q==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
'@tailwindcss/oxide-linux-x64-gnu@4.0.16':
resolution: {integrity: sha512-v0Hx0KD94F6FG0IW3AJyCzQepSv/47xhShCgiWJ2TNVu406VtREkGpJtxS0Gu1ecSXhgn/36LToU5kivAuQiPg==}
'@tailwindcss/oxide-linux-x64-gnu@4.1.0':
resolution: {integrity: sha512-cp0Rf9Wit2kZHhrV8HIoDFD8dxU2+ZTCFCFbDj3a07pGyyPwLCJm5H5VipKXgYrBaLmlYu73ERidW0S5sdEXEg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
'@tailwindcss/oxide-linux-x64-musl@4.0.16':
resolution: {integrity: sha512-CjV6hhQAVNYw6W2EXp1ZVL81CTSBEh6nTmS5EZq5rdEhqOx8G8YQtFKjcCJiojsS+vMXt9r87gGoORJcHOA0lg==}
'@tailwindcss/oxide-linux-x64-musl@4.1.0':
resolution: {integrity: sha512-4/wf42XWBJGXsOS6BhgPhdQbg/qyfdZ1nZvTL9sJoxYN+Ah+cfY5Dd7R0smzI8hmgCRt3TD1lYb72ChTyIA59w==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
'@tailwindcss/oxide-win32-arm64-msvc@4.0.16':
resolution: {integrity: sha512-Pj9eaAtXYH7NrvVx8Jx0U/sEaNpcIbb8d+2WnC8a+xL0LfIXWsu4AyeRUeTeb8Ty4fTGhKSJTohdXj1iSdN9WQ==}
'@tailwindcss/oxide-win32-arm64-msvc@4.1.0':
resolution: {integrity: sha512-caXJJ0G6NwGbcoxEYdH3MZYN84C3PldaMdAEPMU6bjJXURQlKdSlQ/Ecis7/nSgBkMkicZyhqWmb36Tw/BFSIw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
'@tailwindcss/oxide-win32-x64-msvc@4.0.16':
resolution: {integrity: sha512-M35hoFrhJe+1QdSiZpn85y8K7tfEVw6lswv3TjIfJ44JiPjPzZ4URg+rsTjTq0kue6NjNCbbY99AsRSSpJZxOw==}
'@tailwindcss/oxide-win32-x64-msvc@4.1.0':
resolution: {integrity: sha512-ZHXRXRxB7HBmkUE8U13nmkGGYfR1I2vsuhiYjeDDUFIYpk1BL6caU8hvzkSlL/X5CAQNdIUUJRGom5I0ZyfJOA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
'@tailwindcss/oxide@4.0.16':
resolution: {integrity: sha512-n++F8Rzvo/e+FYxikZgKW4sCRXneSstLhTI91Ay9toeRcE/+WO33SQWzGtgmjWJcTupXZreskJ8FCr9b+kdXew==}
'@tailwindcss/oxide@4.1.0':
resolution: {integrity: sha512-A33oyZKpPFH08d7xkl13Dc8OTsbPhsuls0z9gUCxIHvn8c1BsUACddQxL6HwaeJR1fSYyXZUw8bdWcD8bVawpQ==}
engines: {node: '>= 10'}
'@tailwindcss/vite@4.0.16':
resolution: {integrity: sha512-6mZVWhAyjVNMMRw0Pvv2RZfTttjsAClU8HouLNZbeLbX0yURMa0UYEY/qS4dB1tZlRpiDBnCLsGsWbxEyIjW6A==}
'@tailwindcss/vite@4.1.0':
resolution: {integrity: sha512-IszG0h/o8jOGheY0f7v41a9qyDymZ5eU8qm4koTypMKagBhaQA06Keip13wch6sz7rG3cvIG7A3/ytdfRh2BUw==}
peerDependencies:
vite: ^5.2.0 || ^6
@ -546,16 +549,22 @@ packages:
'@types/node@18.19.83':
resolution: {integrity: sha512-D69JeR5SfFS5H6FLbUaS0vE4r1dGhmMBbG4Ed6BNS4wkDK8GZjsdCShT5LCN59vOHEUHnFCY9J4aclXlIphMkA==}
'@types/node@22.13.13':
resolution: {integrity: sha512-ClsL5nMwKaBRwPcCvH8E7+nU4GxHVx1axNvMZTFHMEfNI7oahimt26P5zjVCRrjiIWj6YFXfE1v3dEp94wLcGQ==}
'@types/node@22.13.17':
resolution: {integrity: sha512-nAJuQXoyPj04uLgu+obZcSmsfOenUg6DxPKogeUy6yNCFwWaj5sBF8/G/pNo8EtBJjAfSVgfIlugR/BCOleO+g==}
'@types/react-dom@19.0.4':
resolution: {integrity: sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==}
'@types/react-dom@19.1.1':
resolution: {integrity: sha512-jFf/woGTVTjUJsl2O7hcopJ1r0upqoq/vIOoCj0yLh3RIXxWcljlpuZ+vEBRXsymD1jhfeJrlyTy/S1UW+4y1w==}
peerDependencies:
'@types/react': ^19.0.0
'@types/react@19.0.12':
resolution: {integrity: sha512-V6Ar115dBDrjbtXSrS+/Oruobc+qVbbUxDFC1RSbRqLt5SYvxxyIDrSC85RWml54g+jfNeEMZhEj7wW07ONQhA==}
'@types/react@19.1.0':
resolution: {integrity: sha512-UaicktuQI+9UKyA4njtDOGBD/67t8YEBt2xdfqu8+gP9hqPUPsiXlNPcpS2gVdjmis5GKPG3fCxbQLVgxsQZ8w==}
'@vitejs/plugin-basic-ssl@2.0.0':
resolution: {integrity: sha512-gc9Tjg8bUxBVSTzeWT3Njc0Cl3PakHFKdNfABnZWiUgbxqmHDEn7uECv3fHVylxoYgNzAcmU7ZrILz+BwSo3sA==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
peerDependencies:
vite: ^6.0.0
'@vitejs/plugin-react@4.3.4':
resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==}
@ -807,8 +816,8 @@ packages:
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
lucide-react@0.484.0:
resolution: {integrity: sha512-oZy8coK9kZzvqhSgfbGkPtTgyjpBvs3ukLgDPv14dSOZtBtboryWF5o8i3qen7QbGg7JhiJBz5mK1p8YoMZTLQ==}
lucide-react@0.487.0:
resolution: {integrity: sha512-aKqhOQ+YmFnwq8dWgGjOuLc8V1R9/c/yOd+zDY4+ohsR2Jo05lSGc3WsstYPIzcTpeosN7LoCkLReUUITvaIvw==}
peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
@ -883,10 +892,10 @@ packages:
resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
engines: {node: ^10 || ^12 || >=14}
react-dom@19.0.0:
resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==}
react-dom@19.1.0:
resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==}
peerDependencies:
react: ^19.0.0
react: ^19.1.0
react-refresh@0.14.2:
resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
@ -898,8 +907,8 @@ packages:
react: ^18 || ^19
react-dom: ^18 || ^19
react@19.0.0:
resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==}
react@19.1.0:
resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==}
engines: {node: '>=0.10.0'}
rollup@4.34.8:
@ -907,8 +916,8 @@ packages:
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
scheduler@0.25.0:
resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==}
scheduler@0.26.0:
resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==}
selfsigned@2.4.1:
resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==}
@ -922,8 +931,8 @@ packages:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines: {node: '>=0.10.0'}
tailwindcss@4.0.16:
resolution: {integrity: sha512-i/SbG7ThTIcLshcFJL+je7hCv9dPis4Xl4XNeel6iZNX42pp/BZ+la+SbZIPoYE+PN8zhKbnHblpQ/lhOWwIeQ==}
tailwindcss@4.1.0:
resolution: {integrity: sha512-vBYstoFnvUZCDxaauNGQQEvJNQgCd1vSMDRYuZZMH1xRRcTboOk1rJrW5yFkEabU9X6Yx1C4LQ+QvPOvQj4Daw==}
tapable@2.2.1:
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
@ -958,8 +967,8 @@ packages:
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
vite@6.2.3:
resolution: {integrity: sha512-IzwM54g4y9JA/xAeBPNaDXiBF8Jsgl3VBQ2YQ/wOY6fyW3xMdSoltIV3Bo59DErdqdE6RxUfv8W69DvUorE4Eg==}
vite@6.2.4:
resolution: {integrity: sha512-veHMSew8CcRzhL5o8ONjy8gkfmFJAd5Ac16oxBUjlwgX3Gq2Wqr+qNC3TjPIpy7TPV/KporLga5GT9HqdrCizw==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
peerDependencies:
@ -1345,66 +1354,66 @@ snapshots:
'@rollup/rollup-win32-x64-msvc@4.34.8':
optional: true
'@tailwindcss/node@4.0.16':
'@tailwindcss/node@4.1.0':
dependencies:
enhanced-resolve: 5.18.1
jiti: 2.4.2
tailwindcss: 4.0.16
'@tailwindcss/oxide-android-arm64@4.0.16':
optional: true
'@tailwindcss/oxide-darwin-arm64@4.0.16':
optional: true
'@tailwindcss/oxide-darwin-x64@4.0.16':
optional: true
'@tailwindcss/oxide-freebsd-x64@4.0.16':
optional: true
'@tailwindcss/oxide-linux-arm-gnueabihf@4.0.16':
optional: true
'@tailwindcss/oxide-linux-arm64-gnu@4.0.16':
optional: true
'@tailwindcss/oxide-linux-arm64-musl@4.0.16':
optional: true
'@tailwindcss/oxide-linux-x64-gnu@4.0.16':
optional: true
'@tailwindcss/oxide-linux-x64-musl@4.0.16':
optional: true
'@tailwindcss/oxide-win32-arm64-msvc@4.0.16':
optional: true
'@tailwindcss/oxide-win32-x64-msvc@4.0.16':
optional: true
'@tailwindcss/oxide@4.0.16':
optionalDependencies:
'@tailwindcss/oxide-android-arm64': 4.0.16
'@tailwindcss/oxide-darwin-arm64': 4.0.16
'@tailwindcss/oxide-darwin-x64': 4.0.16
'@tailwindcss/oxide-freebsd-x64': 4.0.16
'@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.16
'@tailwindcss/oxide-linux-arm64-gnu': 4.0.16
'@tailwindcss/oxide-linux-arm64-musl': 4.0.16
'@tailwindcss/oxide-linux-x64-gnu': 4.0.16
'@tailwindcss/oxide-linux-x64-musl': 4.0.16
'@tailwindcss/oxide-win32-arm64-msvc': 4.0.16
'@tailwindcss/oxide-win32-x64-msvc': 4.0.16
'@tailwindcss/vite@4.0.16(vite@6.2.3(@types/node@22.13.13)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.5.1))':
dependencies:
'@tailwindcss/node': 4.0.16
'@tailwindcss/oxide': 4.0.16
lightningcss: 1.29.2
tailwindcss: 4.0.16
vite: 6.2.3(@types/node@22.13.13)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.5.1)
tailwindcss: 4.1.0
'@tailwindcss/oxide-android-arm64@4.1.0':
optional: true
'@tailwindcss/oxide-darwin-arm64@4.1.0':
optional: true
'@tailwindcss/oxide-darwin-x64@4.1.0':
optional: true
'@tailwindcss/oxide-freebsd-x64@4.1.0':
optional: true
'@tailwindcss/oxide-linux-arm-gnueabihf@4.1.0':
optional: true
'@tailwindcss/oxide-linux-arm64-gnu@4.1.0':
optional: true
'@tailwindcss/oxide-linux-arm64-musl@4.1.0':
optional: true
'@tailwindcss/oxide-linux-x64-gnu@4.1.0':
optional: true
'@tailwindcss/oxide-linux-x64-musl@4.1.0':
optional: true
'@tailwindcss/oxide-win32-arm64-msvc@4.1.0':
optional: true
'@tailwindcss/oxide-win32-x64-msvc@4.1.0':
optional: true
'@tailwindcss/oxide@4.1.0':
optionalDependencies:
'@tailwindcss/oxide-android-arm64': 4.1.0
'@tailwindcss/oxide-darwin-arm64': 4.1.0
'@tailwindcss/oxide-darwin-x64': 4.1.0
'@tailwindcss/oxide-freebsd-x64': 4.1.0
'@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.0
'@tailwindcss/oxide-linux-arm64-gnu': 4.1.0
'@tailwindcss/oxide-linux-arm64-musl': 4.1.0
'@tailwindcss/oxide-linux-x64-gnu': 4.1.0
'@tailwindcss/oxide-linux-x64-musl': 4.1.0
'@tailwindcss/oxide-win32-arm64-msvc': 4.1.0
'@tailwindcss/oxide-win32-x64-msvc': 4.1.0
'@tailwindcss/vite@4.1.0(vite@6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.5.1))':
dependencies:
'@tailwindcss/node': 4.1.0
'@tailwindcss/oxide': 4.1.0
tailwindcss: 4.1.0
vite: 6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.5.1)
'@types/babel__core@7.20.5':
dependencies:
@ -1431,37 +1440,41 @@ snapshots:
'@types/node-fetch@2.6.12':
dependencies:
'@types/node': 22.13.13
'@types/node': 22.13.17
form-data: 4.0.2
'@types/node-forge@1.3.11':
dependencies:
'@types/node': 22.13.13
'@types/node': 22.13.17
'@types/node@18.19.83':
dependencies:
undici-types: 5.26.5
'@types/node@22.13.13':
'@types/node@22.13.17':
dependencies:
undici-types: 6.20.0
'@types/react-dom@19.0.4(@types/react@19.0.12)':
'@types/react-dom@19.1.1(@types/react@19.1.0)':
dependencies:
'@types/react': 19.0.12
'@types/react': 19.1.0
'@types/react@19.0.12':
'@types/react@19.1.0':
dependencies:
csstype: 3.1.3
'@vitejs/plugin-react@4.3.4(vite@6.2.3(@types/node@22.13.13)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.5.1))':
'@vitejs/plugin-basic-ssl@2.0.0(vite@6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.5.1))':
dependencies:
vite: 6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.5.1)
'@vitejs/plugin-react@4.3.4(vite@6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.5.1))':
dependencies:
'@babel/core': 7.26.0
'@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0)
'@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0)
'@types/babel__core': 7.20.5
react-refresh: 0.14.2
vite: 6.2.3(@types/node@22.13.13)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.5.1)
vite: 6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.5.1)
transitivePeerDependencies:
- supports-color
@ -1690,9 +1703,9 @@ snapshots:
dependencies:
yallist: 3.1.1
lucide-react@0.484.0(react@19.0.0):
lucide-react@0.487.0(react@19.1.0):
dependencies:
react: 19.0.0
react: 19.1.0
math-intrinsics@1.1.0: {}
@ -1744,20 +1757,20 @@ snapshots:
picocolors: 1.1.1
source-map-js: 1.2.1
react-dom@19.0.0(react@19.0.0):
react-dom@19.1.0(react@19.1.0):
dependencies:
react: 19.0.0
scheduler: 0.25.0
react: 19.1.0
scheduler: 0.26.0
react-refresh@0.14.2: {}
react-toastify@11.0.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
react-toastify@11.0.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
dependencies:
clsx: 2.1.1
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
react@19.0.0: {}
react@19.1.0: {}
rollup@4.34.8:
dependencies:
@ -1784,7 +1797,7 @@ snapshots:
'@rollup/rollup-win32-x64-msvc': 4.34.8
fsevents: 2.3.3
scheduler@0.25.0: {}
scheduler@0.26.0: {}
selfsigned@2.4.1:
dependencies:
@ -1795,7 +1808,7 @@ snapshots:
source-map-js@1.2.1: {}
tailwindcss@4.0.16: {}
tailwindcss@4.1.0: {}
tapable@2.2.1: {}
@ -1815,18 +1828,18 @@ snapshots:
escalade: 3.2.0
picocolors: 1.1.0
use-sync-external-store@1.2.2(react@19.0.0):
use-sync-external-store@1.2.2(react@19.1.0):
dependencies:
react: 19.0.0
react: 19.1.0
optional: true
vite@6.2.3(@types/node@22.13.13)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.5.1):
vite@6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.5.1):
dependencies:
esbuild: 0.25.0
postcss: 8.5.3
rollup: 4.34.8
optionalDependencies:
'@types/node': 22.13.13
'@types/node': 22.13.17
fsevents: 2.3.3
jiti: 2.4.2
lightningcss: 1.29.2
@ -1848,9 +1861,9 @@ snapshots:
yaml@2.5.1:
optional: true
zustand@5.0.3(@types/react@19.0.12)(immer@10.1.1)(react@19.0.0)(use-sync-external-store@1.2.2(react@19.0.0)):
zustand@5.0.3(@types/react@19.1.0)(immer@10.1.1)(react@19.1.0)(use-sync-external-store@1.2.2(react@19.1.0)):
optionalDependencies:
'@types/react': 19.0.12
'@types/react': 19.1.0
immer: 10.1.1
react: 19.0.0
use-sync-external-store: 1.2.2(react@19.0.0)
react: 19.1.0
use-sync-external-store: 1.2.2(react@19.1.0)

11
script/clear.ts Normal file
View File

@ -0,0 +1,11 @@
import fs from 'fs';
import path from 'path';
export const root = process.cwd();
export const clearWorkspace = () => {
const files = ['submodules', 'packages', 'pnpm-workspace.yaml', 'turbo.json'];
for (const file of files) {
fs.rmSync(path.join(root, file), { recursive: true, force: true });
}
};

View File

@ -1,5 +1,5 @@
import { basename } from '../modules/basename';
console.log('basename', basename);
export const App = () => {
return <div className='bg-slate-200 w-full h-full border'></div>;
return <div className='bg-slate-200 w-full h-full border'>123</div>;
};

View File

@ -1,43 +0,0 @@
{
"compilerOptions": {
"target": "ES2020",
"useDefineForClassFields": true,
"lib": [
"ES2020",
"DOM",
"DOM.Iterable"
],
"module": "ESNext",
"skipLibCheck": true,
/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"isolatedModules": true,
"moduleDetection": "force",
"noEmit": true,
// "jsx": "react",
// "jsxFragmentFactory": "Fragment",
// "jsxFactory": "h",
"jsx": "react-jsx",
"baseUrl": "./",
"typeRoots": [
"node_modules/@types",
"node_modules/@kevisual/types",
],
"paths": {
"@/*": [
"src/*"
]
},
/* Linting */
"strict": true,
"noImplicitAny": false,
"noUnusedLocals": false,
"noUnusedParameters": false,
"noFallthroughCasesInSwitch": true
},
"include": [
"src",
"typings.d.ts"
]
}

View File

@ -1,7 +1,43 @@
{
"files": [],
"references": [
{ "path": "./tsconfig.app.json" },
{ "path": "./tsconfig.node.json" }
"compilerOptions": {
"target": "ES2020",
"useDefineForClassFields": true,
"lib": [
"ES2020",
"DOM",
"DOM.Iterable"
],
"module": "ESNext",
"skipLibCheck": true,
/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"isolatedModules": true,
"moduleDetection": "force",
"noEmit": true,
// "jsx": "react",
// "jsxFragmentFactory": "Fragment",
// "jsxFactory": "h",
"jsx": "react-jsx",
"baseUrl": "./",
"typeRoots": [
"node_modules/@types",
"node_modules/@kevisual/types",
],
"paths": {
"@/*": [
"src/*"
]
},
/* Linting */
"strict": true,
"noImplicitAny": false,
"noUnusedLocals": false,
"noUnusedParameters": false,
"noFallthroughCasesInSwitch": true
},
"include": [
"src",
"typings.d.ts"
]
}

View File

@ -1,22 +0,0 @@
{
"compilerOptions": {
"target": "ES2022",
"lib": ["ES2023"],
"module": "ESNext",
"skipLibCheck": true,
/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"isolatedModules": true,
"moduleDetection": "force",
"noEmit": true,
/* Linting */
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true
},
"include": ["vite.config.ts"]
}

View File

@ -3,16 +3,46 @@ import react from '@vitejs/plugin-react';
import path from 'path';
import tailwindcss from '@tailwindcss/vite';
import pkgs from './package.json' with { type: 'json' };
const version = pkgs.version || '0.0.1';
const isDev = process.env.NODE_ENV === 'development';
const basename = isDev ? '/' : pkgs?.basename || '/';
// https://vitejs.dev/config/
const checkJsh = () => {
return process.env.SHELL === '/bin/jsh';
};
const isJsh = checkJsh();
const plugins = [react(), tailwindcss()];
if (!isJsh) {
const basicSsl = await import('@vitejs/plugin-basic-ssl');
const defaultPlugin = basicSsl.default;
plugins.push(defaultPlugin());
}
let target = 'https://kevisual.xiongxiao.me';
if (isDev) {
target = 'https://kevisual.xiongxiao.me';
} else {
target = 'https://kevisual.cn';
}
let proxy = {
'/user/login/': {
target: `https://${target}/user/login/`,
},
'/api': {
target: `https://${target}`,
changeOrigin: true,
ws: true,
rewriteWsOrigin: true,
},
};
/**
* @see https://vitejs.dev/config/
*/
export default defineConfig({
plugins: [react(), tailwindcss()],
plugins,
resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
@ -25,10 +55,10 @@ export default defineConfig({
BASE_NAME: JSON.stringify(basename),
},
build: {
target: 'esnext',
target: 'modules',
},
server: {
port: 6004,
port: 7006,
host: '0.0.0.0',
proxy: {
'/api': {
@ -45,6 +75,7 @@ export default defineConfig({
rewriteWsOrigin: true,
rewrite: (path) => path.replace(/^\/api/, '/api'),
},
...proxy,
},
},
});