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": { "scripts": {
"dev": "vite", "dev": "vite",
"build": "vite build", "build": "vite build",
"lint": "eslint .",
"preview": "vite preview", "preview": "vite preview",
"pub": "envision deploy ./dist -k vite-react -v 0.0.1", "pub": "envision deploy ./dist -k vite-react -v 0.0.1",
"ev": "npm run build && npm run deploy",
"dev:lib": "turbo dev" "dev:lib": "turbo dev"
}, },
"author": "abearxiong <xiongxiao@xiongxiao.me>", "author": "abearxiong <xiongxiao@xiongxiao.me>",
@ -20,24 +18,25 @@
"clsx": "^2.1.1", "clsx": "^2.1.1",
"dayjs": "^1.11.13", "dayjs": "^1.11.13",
"lodash-es": "^4.17.21", "lodash-es": "^4.17.21",
"lucide-react": "^0.484.0", "lucide-react": "^0.487.0",
"nanoid": "^5.1.5", "nanoid": "^5.1.5",
"react": "^19.0.0", "react": "^19.1.0",
"react-dom": "^19.0.0", "react-dom": "^19.1.0",
"react-toastify": "^11.0.5", "react-toastify": "^11.0.5",
"zustand": "^5.0.3" "zustand": "^5.0.3"
}, },
"devDependencies": { "devDependencies": {
"@kevisual/query": "0.0.15", "@kevisual/query": "0.0.15",
"@kevisual/types": "^0.0.6", "@kevisual/types": "^0.0.6",
"@tailwindcss/vite": "^4.0.16", "@tailwindcss/vite": "^4.1.1",
"@types/node": "^22.13.13", "@types/node": "^22.13.17",
"@types/react": "^19.0.12", "@types/react": "^19.1.0",
"@types/react-dom": "^19.0.4", "@types/react-dom": "^19.1.1",
"@vitejs/plugin-basic-ssl": "^2.0.0",
"@vitejs/plugin-react": "^4.3.4", "@vitejs/plugin-react": "^4.3.4",
"tailwindcss": "^4.0.16", "tailwindcss": "^4.1.1",
"typescript": "^5.8.2", "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 specifier: ^4.17.21
version: 4.17.21 version: 4.17.21
lucide-react: lucide-react:
specifier: ^0.484.0 specifier: ^0.487.0
version: 0.484.0(react@19.0.0) version: 0.487.0(react@19.1.0)
nanoid: nanoid:
specifier: ^5.1.5 specifier: ^5.1.5
version: 5.1.5 version: 5.1.5
react: react:
specifier: ^19.0.0 specifier: ^19.1.0
version: 19.0.0 version: 19.1.0
react-dom: react-dom:
specifier: ^19.0.0 specifier: ^19.1.0
version: 19.0.0(react@19.0.0) version: 19.1.0(react@19.1.0)
react-toastify: react-toastify:
specifier: ^11.0.5 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: zustand:
specifier: ^5.0.3 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: devDependencies:
'@kevisual/query': '@kevisual/query':
specifier: 0.0.15 specifier: 0.0.15
@ -46,29 +46,32 @@ importers:
specifier: ^0.0.6 specifier: ^0.0.6
version: 0.0.6 version: 0.0.6
'@tailwindcss/vite': '@tailwindcss/vite':
specifier: ^4.0.16 specifier: ^4.1.0
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)) 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': '@types/node':
specifier: ^22.13.13 specifier: ^22.13.17
version: 22.13.13 version: 22.13.17
'@types/react': '@types/react':
specifier: ^19.0.12 specifier: ^19.1.0
version: 19.0.12 version: 19.1.0
'@types/react-dom': '@types/react-dom':
specifier: ^19.0.4 specifier: ^19.1.1
version: 19.0.4(@types/react@19.0.12) 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': '@vitejs/plugin-react':
specifier: ^4.3.4 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: tailwindcss:
specifier: ^4.0.16 specifier: ^4.1.0
version: 4.0.16 version: 4.1.0
typescript: typescript:
specifier: ^5.8.2 specifier: ^5.8.2
version: 5.8.2 version: 5.8.2
vite: vite:
specifier: ^6.2.3 specifier: ^6.2.4
version: 6.2.3(@types/node@22.13.13)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.5.1) version: 6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.5.1)
packages: packages:
@ -444,81 +447,81 @@ packages:
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
'@tailwindcss/node@4.0.16': '@tailwindcss/node@4.1.0':
resolution: {integrity: sha512-T6IK79hoCFScxD5tRxWMtwqwSs4sT81Vw+YbzL7RZD0/Ndm4y5kboV7LdQ97YGH6udoOZyVT/uEfrnU2L5Nkog==} resolution: {integrity: sha512-mfgxGxFaxbsUbaGwKIAQXUSm7Qoojw53FftpoKwo4ANwr9wnDaByz4vi1gMti/xfJvmQ5lzA1DvPiX5yCHtBkQ==}
'@tailwindcss/oxide-android-arm64@4.0.16': '@tailwindcss/oxide-android-arm64@4.1.0':
resolution: {integrity: sha512-mieEZrNLHatpQu6ad0pWBnL8ObUE9ZSe4eoX6GKTqsKv98AxNw5lUa5nJM0FgD8rYJeZ2dPtHNN/YM2xY9R+9g==} resolution: {integrity: sha512-UredFljuHey2Kh5qyYfQVBr0Xfq70ZE5Df6i5IubNYQGs2JXXT4VL0SIUjwzHx5W9T6t7dT7banunlV6lthGPQ==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [android] os: [android]
'@tailwindcss/oxide-darwin-arm64@4.0.16': '@tailwindcss/oxide-darwin-arm64@4.1.0':
resolution: {integrity: sha512-pfilSvgrX5UDdjh09gGVMhAPfZVucm4AnwFBkwBe6WFl7gzMAZ92/35GC0yMDeS+W+RNSXclXJz+HamF1iS/aA==} resolution: {integrity: sha512-QHQ/46lRVwH9zEBNiRk8AJ3Af4pMq6DuZAI//q323qrPOXjsRdrhLsH9LUO3mqBfHr5EZNUxN3Am5vpO89sntw==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
'@tailwindcss/oxide-darwin-x64@4.0.16': '@tailwindcss/oxide-darwin-x64@4.1.0':
resolution: {integrity: sha512-Z3lJY3yUjlHbzgXwWH9Y6IGeSGXfwjbXuvTPolyJUGMZl2ZaHdQMPOZ8dMll1knSLjctOif+QijMab0+GSXYLQ==} resolution: {integrity: sha512-lEMgYHCvQQ6x2KOZ4FwnPprwfnc+UnjzwXRqEYIhB/NlYvXQD1QMf7oKEDRqy94DiZaYox9ZRfG2YJOBgM0UkA==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
'@tailwindcss/oxide-freebsd-x64@4.0.16': '@tailwindcss/oxide-freebsd-x64@4.1.0':
resolution: {integrity: sha512-dv2U8Yc7vKIDyiJkUouhjsl+dTfRImNyZRCTFsHvvrhJvenYZBRtE/wDSYlZHR0lWKhIocxk1ScAkAcMR3F3QQ==} resolution: {integrity: sha512-9fdImTc+2lA5yHqJ61oeTXfCtzylNOzJVFhyWwVQAJESJJbVCPnj6f+b+Zf/AYAdKQfS6FCThbPEahkQrDCgLQ==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [freebsd] os: [freebsd]
'@tailwindcss/oxide-linux-arm-gnueabihf@4.0.16': '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.0':
resolution: {integrity: sha512-XBRXyUUyjMg5UMiyuQxJqWSs27w0V49g1iPuhrFakmu1/idDSly59XYteRrI2onoS9AzmMwfyzdiQSJXM89+PQ==} resolution: {integrity: sha512-HB0bTkUOuTLLSdadyRhKE9yps4/ZBjrojbHTPMSvvf/8yBLZRPpWb+A6IgW5R+2A2AL4KhVPgLwWfoXsErxJFg==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
'@tailwindcss/oxide-linux-arm64-gnu@4.0.16': '@tailwindcss/oxide-linux-arm64-gnu@4.1.0':
resolution: {integrity: sha512-+bL1zkU8MDzv389OqyI0SJbrG9kGsdxf+k2ZAILlw1TPWg5oeMkwoqgaQRqGwpOHz0pycT94qIgWVNJavAz+Iw==} resolution: {integrity: sha512-+QtYCwvKLjC46h6RikKkpELJWrpiMMtgyK0aaqhwPLEx1icGgIhwz8dqrkAiqbFRE0KiRrE2aenhYoEkplyRmA==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@tailwindcss/oxide-linux-arm64-musl@4.0.16': '@tailwindcss/oxide-linux-arm64-musl@4.1.0':
resolution: {integrity: sha512-Uqfnyx9oFxoX+/iy9pIDTADHLLNwuZNB8QSp+BwKAhtHjBTTYmDAdxKy3u8lJZve1aOd+S145eWpn3tT08cm4w==} resolution: {integrity: sha512-nApadFKM9GauzuPZPlt6TKfELavMHqJ0gVd+GYkYBTwr2t9KhgCAb2sKiFDDIhs1a7gOjsU7P1lEauv3iKFp+Q==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@tailwindcss/oxide-linux-x64-gnu@4.0.16': '@tailwindcss/oxide-linux-x64-gnu@4.1.0':
resolution: {integrity: sha512-v0Hx0KD94F6FG0IW3AJyCzQepSv/47xhShCgiWJ2TNVu406VtREkGpJtxS0Gu1ecSXhgn/36LToU5kivAuQiPg==} resolution: {integrity: sha512-cp0Rf9Wit2kZHhrV8HIoDFD8dxU2+ZTCFCFbDj3a07pGyyPwLCJm5H5VipKXgYrBaLmlYu73ERidW0S5sdEXEg==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@tailwindcss/oxide-linux-x64-musl@4.0.16': '@tailwindcss/oxide-linux-x64-musl@4.1.0':
resolution: {integrity: sha512-CjV6hhQAVNYw6W2EXp1ZVL81CTSBEh6nTmS5EZq5rdEhqOx8G8YQtFKjcCJiojsS+vMXt9r87gGoORJcHOA0lg==} resolution: {integrity: sha512-4/wf42XWBJGXsOS6BhgPhdQbg/qyfdZ1nZvTL9sJoxYN+Ah+cfY5Dd7R0smzI8hmgCRt3TD1lYb72ChTyIA59w==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@tailwindcss/oxide-win32-arm64-msvc@4.0.16': '@tailwindcss/oxide-win32-arm64-msvc@4.1.0':
resolution: {integrity: sha512-Pj9eaAtXYH7NrvVx8Jx0U/sEaNpcIbb8d+2WnC8a+xL0LfIXWsu4AyeRUeTeb8Ty4fTGhKSJTohdXj1iSdN9WQ==} resolution: {integrity: sha512-caXJJ0G6NwGbcoxEYdH3MZYN84C3PldaMdAEPMU6bjJXURQlKdSlQ/Ecis7/nSgBkMkicZyhqWmb36Tw/BFSIw==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
'@tailwindcss/oxide-win32-x64-msvc@4.0.16': '@tailwindcss/oxide-win32-x64-msvc@4.1.0':
resolution: {integrity: sha512-M35hoFrhJe+1QdSiZpn85y8K7tfEVw6lswv3TjIfJ44JiPjPzZ4URg+rsTjTq0kue6NjNCbbY99AsRSSpJZxOw==} resolution: {integrity: sha512-ZHXRXRxB7HBmkUE8U13nmkGGYfR1I2vsuhiYjeDDUFIYpk1BL6caU8hvzkSlL/X5CAQNdIUUJRGom5I0ZyfJOA==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
'@tailwindcss/oxide@4.0.16': '@tailwindcss/oxide@4.1.0':
resolution: {integrity: sha512-n++F8Rzvo/e+FYxikZgKW4sCRXneSstLhTI91Ay9toeRcE/+WO33SQWzGtgmjWJcTupXZreskJ8FCr9b+kdXew==} resolution: {integrity: sha512-A33oyZKpPFH08d7xkl13Dc8OTsbPhsuls0z9gUCxIHvn8c1BsUACddQxL6HwaeJR1fSYyXZUw8bdWcD8bVawpQ==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
'@tailwindcss/vite@4.0.16': '@tailwindcss/vite@4.1.0':
resolution: {integrity: sha512-6mZVWhAyjVNMMRw0Pvv2RZfTttjsAClU8HouLNZbeLbX0yURMa0UYEY/qS4dB1tZlRpiDBnCLsGsWbxEyIjW6A==} resolution: {integrity: sha512-IszG0h/o8jOGheY0f7v41a9qyDymZ5eU8qm4koTypMKagBhaQA06Keip13wch6sz7rG3cvIG7A3/ytdfRh2BUw==}
peerDependencies: peerDependencies:
vite: ^5.2.0 || ^6 vite: ^5.2.0 || ^6
@ -546,16 +549,22 @@ packages:
'@types/node@18.19.83': '@types/node@18.19.83':
resolution: {integrity: sha512-D69JeR5SfFS5H6FLbUaS0vE4r1dGhmMBbG4Ed6BNS4wkDK8GZjsdCShT5LCN59vOHEUHnFCY9J4aclXlIphMkA==} resolution: {integrity: sha512-D69JeR5SfFS5H6FLbUaS0vE4r1dGhmMBbG4Ed6BNS4wkDK8GZjsdCShT5LCN59vOHEUHnFCY9J4aclXlIphMkA==}
'@types/node@22.13.13': '@types/node@22.13.17':
resolution: {integrity: sha512-ClsL5nMwKaBRwPcCvH8E7+nU4GxHVx1axNvMZTFHMEfNI7oahimt26P5zjVCRrjiIWj6YFXfE1v3dEp94wLcGQ==} resolution: {integrity: sha512-nAJuQXoyPj04uLgu+obZcSmsfOenUg6DxPKogeUy6yNCFwWaj5sBF8/G/pNo8EtBJjAfSVgfIlugR/BCOleO+g==}
'@types/react-dom@19.0.4': '@types/react-dom@19.1.1':
resolution: {integrity: sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==} resolution: {integrity: sha512-jFf/woGTVTjUJsl2O7hcopJ1r0upqoq/vIOoCj0yLh3RIXxWcljlpuZ+vEBRXsymD1jhfeJrlyTy/S1UW+4y1w==}
peerDependencies: peerDependencies:
'@types/react': ^19.0.0 '@types/react': ^19.0.0
'@types/react@19.0.12': '@types/react@19.1.0':
resolution: {integrity: sha512-V6Ar115dBDrjbtXSrS+/Oruobc+qVbbUxDFC1RSbRqLt5SYvxxyIDrSC85RWml54g+jfNeEMZhEj7wW07ONQhA==} 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': '@vitejs/plugin-react@4.3.4':
resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==}
@ -807,8 +816,8 @@ packages:
lru-cache@5.1.1: lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
lucide-react@0.484.0: lucide-react@0.487.0:
resolution: {integrity: sha512-oZy8coK9kZzvqhSgfbGkPtTgyjpBvs3ukLgDPv14dSOZtBtboryWF5o8i3qen7QbGg7JhiJBz5mK1p8YoMZTLQ==} resolution: {integrity: sha512-aKqhOQ+YmFnwq8dWgGjOuLc8V1R9/c/yOd+zDY4+ohsR2Jo05lSGc3WsstYPIzcTpeosN7LoCkLReUUITvaIvw==}
peerDependencies: peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 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==} resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
engines: {node: ^10 || ^12 || >=14} engines: {node: ^10 || ^12 || >=14}
react-dom@19.0.0: react-dom@19.1.0:
resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==}
peerDependencies: peerDependencies:
react: ^19.0.0 react: ^19.1.0
react-refresh@0.14.2: react-refresh@0.14.2:
resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
@ -898,8 +907,8 @@ packages:
react: ^18 || ^19 react: ^18 || ^19
react-dom: ^18 || ^19 react-dom: ^18 || ^19
react@19.0.0: react@19.1.0:
resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
rollup@4.34.8: rollup@4.34.8:
@ -907,8 +916,8 @@ packages:
engines: {node: '>=18.0.0', npm: '>=8.0.0'} engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true hasBin: true
scheduler@0.25.0: scheduler@0.26.0:
resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==}
selfsigned@2.4.1: selfsigned@2.4.1:
resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==}
@ -922,8 +931,8 @@ packages:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
tailwindcss@4.0.16: tailwindcss@4.1.0:
resolution: {integrity: sha512-i/SbG7ThTIcLshcFJL+je7hCv9dPis4Xl4XNeel6iZNX42pp/BZ+la+SbZIPoYE+PN8zhKbnHblpQ/lhOWwIeQ==} resolution: {integrity: sha512-vBYstoFnvUZCDxaauNGQQEvJNQgCd1vSMDRYuZZMH1xRRcTboOk1rJrW5yFkEabU9X6Yx1C4LQ+QvPOvQj4Daw==}
tapable@2.2.1: tapable@2.2.1:
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
@ -958,8 +967,8 @@ packages:
peerDependencies: peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0
vite@6.2.3: vite@6.2.4:
resolution: {integrity: sha512-IzwM54g4y9JA/xAeBPNaDXiBF8Jsgl3VBQ2YQ/wOY6fyW3xMdSoltIV3Bo59DErdqdE6RxUfv8W69DvUorE4Eg==} resolution: {integrity: sha512-veHMSew8CcRzhL5o8ONjy8gkfmFJAd5Ac16oxBUjlwgX3Gq2Wqr+qNC3TjPIpy7TPV/KporLga5GT9HqdrCizw==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@ -1345,66 +1354,66 @@ snapshots:
'@rollup/rollup-win32-x64-msvc@4.34.8': '@rollup/rollup-win32-x64-msvc@4.34.8':
optional: true optional: true
'@tailwindcss/node@4.0.16': '@tailwindcss/node@4.1.0':
dependencies: dependencies:
enhanced-resolve: 5.18.1 enhanced-resolve: 5.18.1
jiti: 2.4.2 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 lightningcss: 1.29.2
tailwindcss: 4.0.16 tailwindcss: 4.1.0
vite: 6.2.3(@types/node@22.13.13)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.5.1)
'@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': '@types/babel__core@7.20.5':
dependencies: dependencies:
@ -1431,37 +1440,41 @@ snapshots:
'@types/node-fetch@2.6.12': '@types/node-fetch@2.6.12':
dependencies: dependencies:
'@types/node': 22.13.13 '@types/node': 22.13.17
form-data: 4.0.2 form-data: 4.0.2
'@types/node-forge@1.3.11': '@types/node-forge@1.3.11':
dependencies: dependencies:
'@types/node': 22.13.13 '@types/node': 22.13.17
'@types/node@18.19.83': '@types/node@18.19.83':
dependencies: dependencies:
undici-types: 5.26.5 undici-types: 5.26.5
'@types/node@22.13.13': '@types/node@22.13.17':
dependencies: dependencies:
undici-types: 6.20.0 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: dependencies:
'@types/react': 19.0.12 '@types/react': 19.1.0
'@types/react@19.0.12': '@types/react@19.1.0':
dependencies: dependencies:
csstype: 3.1.3 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: dependencies:
'@babel/core': 7.26.0 '@babel/core': 7.26.0
'@babel/plugin-transform-react-jsx-self': 7.25.9(@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) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0)
'@types/babel__core': 7.20.5 '@types/babel__core': 7.20.5
react-refresh: 0.14.2 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: transitivePeerDependencies:
- supports-color - supports-color
@ -1690,9 +1703,9 @@ snapshots:
dependencies: dependencies:
yallist: 3.1.1 yallist: 3.1.1
lucide-react@0.484.0(react@19.0.0): lucide-react@0.487.0(react@19.1.0):
dependencies: dependencies:
react: 19.0.0 react: 19.1.0
math-intrinsics@1.1.0: {} math-intrinsics@1.1.0: {}
@ -1744,20 +1757,20 @@ snapshots:
picocolors: 1.1.1 picocolors: 1.1.1
source-map-js: 1.2.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: dependencies:
react: 19.0.0 react: 19.1.0
scheduler: 0.25.0 scheduler: 0.26.0
react-refresh@0.14.2: {} 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: dependencies:
clsx: 2.1.1 clsx: 2.1.1
react: 19.0.0 react: 19.1.0
react-dom: 19.0.0(react@19.0.0) react-dom: 19.1.0(react@19.1.0)
react@19.0.0: {} react@19.1.0: {}
rollup@4.34.8: rollup@4.34.8:
dependencies: dependencies:
@ -1784,7 +1797,7 @@ snapshots:
'@rollup/rollup-win32-x64-msvc': 4.34.8 '@rollup/rollup-win32-x64-msvc': 4.34.8
fsevents: 2.3.3 fsevents: 2.3.3
scheduler@0.25.0: {} scheduler@0.26.0: {}
selfsigned@2.4.1: selfsigned@2.4.1:
dependencies: dependencies:
@ -1795,7 +1808,7 @@ snapshots:
source-map-js@1.2.1: {} source-map-js@1.2.1: {}
tailwindcss@4.0.16: {} tailwindcss@4.1.0: {}
tapable@2.2.1: {} tapable@2.2.1: {}
@ -1815,18 +1828,18 @@ snapshots:
escalade: 3.2.0 escalade: 3.2.0
picocolors: 1.1.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: dependencies:
react: 19.0.0 react: 19.1.0
optional: true 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: dependencies:
esbuild: 0.25.0 esbuild: 0.25.0
postcss: 8.5.3 postcss: 8.5.3
rollup: 4.34.8 rollup: 4.34.8
optionalDependencies: optionalDependencies:
'@types/node': 22.13.13 '@types/node': 22.13.17
fsevents: 2.3.3 fsevents: 2.3.3
jiti: 2.4.2 jiti: 2.4.2
lightningcss: 1.29.2 lightningcss: 1.29.2
@ -1848,9 +1861,9 @@ snapshots:
yaml@2.5.1: yaml@2.5.1:
optional: true 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: optionalDependencies:
'@types/react': 19.0.12 '@types/react': 19.1.0
immer: 10.1.1 immer: 10.1.1
react: 19.0.0 react: 19.1.0
use-sync-external-store: 1.2.2(react@19.0.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'; import { basename } from '../modules/basename';
console.log('basename', basename); console.log('basename', basename);
export const App = () => { 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": [], "compilerOptions": {
"references": [ "target": "ES2020",
{ "path": "./tsconfig.app.json" }, "useDefineForClassFields": true,
{ "path": "./tsconfig.node.json" } "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 path from 'path';
import tailwindcss from '@tailwindcss/vite'; import tailwindcss from '@tailwindcss/vite';
import pkgs from './package.json' with { type: 'json' }; import pkgs from './package.json' with { type: 'json' };
const version = pkgs.version || '0.0.1'; const version = pkgs.version || '0.0.1';
const isDev = process.env.NODE_ENV === 'development'; const isDev = process.env.NODE_ENV === 'development';
const basename = isDev ? '/' : pkgs?.basename || '/'; 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({ export default defineConfig({
plugins: [react(), tailwindcss()], plugins,
resolve: { resolve: {
alias: { alias: {
'@': path.resolve(__dirname, './src'), '@': path.resolve(__dirname, './src'),
@ -25,10 +55,10 @@ export default defineConfig({
BASE_NAME: JSON.stringify(basename), BASE_NAME: JSON.stringify(basename),
}, },
build: { build: {
target: 'esnext', target: 'modules',
}, },
server: { server: {
port: 6004, port: 7006,
host: '0.0.0.0', host: '0.0.0.0',
proxy: { proxy: {
'/api': { '/api': {
@ -45,6 +75,7 @@ export default defineConfig({
rewriteWsOrigin: true, rewriteWsOrigin: true,
rewrite: (path) => path.replace(/^\/api/, '/api'), rewrite: (path) => path.replace(/^\/api/, '/api'),
}, },
...proxy,
}, },
}, },
}); });