@4399ywkf/cli 0.0.21 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +19 -638
- package/dist/templates/404/index.tsx +5 -0
- package/dist/templates/404/page.tsx +27 -0
- package/dist/templates/404.png +0 -0
- package/dist/templates/404.tsx +5 -0
- package/dist/templates/BaseLayout.tsx +15 -0
- package/dist/templates/ColorScales/ScaleRow.tsx +74 -0
- package/dist/templates/ColorScales/index.md +168 -0
- package/dist/templates/ColorScales/index.tsx +70 -0
- package/dist/templates/ColorScales/style.ts +42 -0
- package/dist/templates/ConfigProvider/index.md +63 -0
- package/dist/templates/ConfigProvider/index.tsx +42 -0
- package/dist/templates/ContentFormWrapper.tsx +11 -0
- package/dist/templates/ContentWrapper.module.less +137 -0
- package/dist/templates/ContentWrapper.tsx +13 -0
- package/dist/templates/ErrorBoundary/index.tsx +506 -0
- package/dist/templates/FontLoader/index.md +12 -0
- package/dist/templates/FontLoader/index.tsx +41 -0
- package/dist/templates/GlobalStyle/antdOverride.ts +89 -0
- package/dist/templates/GlobalStyle/global.ts +61 -0
- package/dist/templates/GlobalStyle/index.ts +10 -0
- package/dist/templates/Loading/__tests__/Loading.test.tsx +23 -0
- package/dist/templates/Loading/index.tsx +21 -0
- package/dist/templates/Loading.test.tsx +23 -0
- package/dist/templates/Locale.tsx +89 -0
- package/dist/templates/MainContentWrap.tsx +68 -0
- package/dist/templates/ManualSlave/ManualSlavePage.module.less +25 -0
- package/dist/templates/ManualSlave/ManualSlavePage.tsx +45 -0
- package/dist/templates/ManualSlave/index.ts +1 -0
- package/dist/templates/ManualSlavePage.module.less +25 -0
- package/dist/templates/ManualSlavePage.tsx +45 -0
- package/dist/templates/Meta.tsx +75 -0
- package/dist/templates/RequireAuth/RequireAuth.tsx +76 -0
- package/dist/templates/RequireAuth/index.ts +1 -0
- package/dist/templates/RequireAuth.tsx +76 -0
- package/dist/templates/RoutesConventionsRspackPlugin.js +100 -0
- package/dist/templates/ScaleRow.tsx +74 -0
- package/dist/templates/ThemeContext.tsx +132 -0
- package/dist/templates/ThemeProvider/GlobalStyle/antdOverride.ts +89 -0
- package/dist/templates/ThemeProvider/GlobalStyle/global.ts +61 -0
- package/dist/templates/ThemeProvider/GlobalStyle/index.ts +10 -0
- package/dist/templates/ThemeProvider/Meta.tsx +75 -0
- package/dist/templates/ThemeProvider/ThemeProvider.tsx +109 -0
- package/dist/templates/ThemeProvider/index.md +69 -0
- package/dist/templates/ThemeProvider/index.ts +3 -0
- package/dist/templates/ThemeProvider/type.ts +28 -0
- package/dist/templates/ThemeProvider.tsx +109 -0
- package/dist/templates/__mocks__/fileMock.js +1 -0
- package/dist/templates/__mocks__/styleMock.ts +1 -0
- package/dist/templates/__tests__/Loading.test.tsx +23 -0
- package/dist/templates/__tests__/example.test.ts +7 -0
- package/dist/templates/actions.ts +23 -0
- package/dist/templates/algorithms/darkAlgorithm.ts +47 -0
- package/dist/templates/algorithms/lightAlgorithm.ts +44 -0
- package/dist/templates/antdOverride.ts +89 -0
- package/dist/templates/antdTheme.ts +62 -0
- package/dist/templates/api.ts +5 -0
- package/dist/templates/app/.browserslistrc +5 -0
- package/dist/templates/app/.gitignore.tpl +30 -0
- package/dist/templates/app/.npmrc.tpl +2 -0
- package/dist/templates/app/.nvmrc +1 -0
- package/dist/templates/app/.vscode/settings.json +88 -0
- package/dist/templates/app/config/env/.env.development +5 -0
- package/dist/templates/app/config/env/.env.production +2 -0
- package/dist/templates/app/config/env/.env.public.tpl +31 -0
- package/dist/templates/app/config/jwt/index.ts +31 -0
- package/dist/templates/app/config/public/404.png +0 -0
- package/dist/templates/app/config/public/favicon.ico +0 -0
- package/dist/templates/app/config/public/images/banner_market_modal.webp +0 -0
- package/dist/templates/app/config/public/images/chatmode_chat_dark.webp +0 -0
- package/dist/templates/app/config/public/images/chatmode_chat_light.webp +0 -0
- package/dist/templates/app/config/public/images/chatmode_docs_dark.webp +0 -0
- package/dist/templates/app/config/public/images/chatmode_docs_light.webp +0 -0
- package/dist/templates/app/config/public/images/empty_topic_dark.webp +0 -0
- package/dist/templates/app/config/public/images/empty_topic_light.webp +0 -0
- package/dist/templates/app/config/public/images/screenshot_background.webp +0 -0
- package/dist/templates/app/config/public/images/theme_auto.webp +0 -0
- package/dist/templates/app/config/public/images/theme_dark.webp +0 -0
- package/dist/templates/app/config/public/images/theme_light.webp +0 -0
- package/dist/templates/app/config/public/index.html +29 -0
- package/dist/templates/app/config/request/index.ts +174 -0
- package/dist/templates/app/config/router/index.tsx +26 -0
- package/dist/templates/app/config/rspack/paths.js +12 -0
- package/dist/templates/app/config/rspack/plugins/RoutesConventionsRspackPlugin.js +100 -0
- package/dist/templates/app/config/rspack/rspack.config.mjs +186 -0
- package/dist/templates/app/config/rspack/rspack.dev.mjs +219 -0
- package/dist/templates/app/config/rspack/rspack.prod.mjs +254 -0
- package/dist/templates/app/config/sentry/sentry.config.ts +188 -0
- package/dist/templates/app/locales/en-US/common.json +74 -0
- package/dist/templates/app/locales/en-US/generate.json +71 -0
- package/dist/templates/app/locales/en-US/nav.json +10 -0
- package/dist/templates/app/locales/en-US/overview.json +6 -0
- package/dist/templates/app/locales/en-US/retopology.json +4 -0
- package/dist/templates/app/locales/en-US/rigging.json +21 -0
- package/dist/templates/app/locales/en-US/segmentation.json +4 -0
- package/dist/templates/app/locales/en-US/stylization.json +11 -0
- package/dist/templates/app/locales/en-US/texture.json +4 -0
- package/dist/templates/app/locales/en-US/threeModel.json +9 -0
- package/dist/templates/app/locales/en-US/toolbox.json +11 -0
- package/dist/templates/app/locales/zh-CN/common.json +74 -0
- package/dist/templates/app/locales/zh-CN/generate.json +71 -0
- package/dist/templates/app/locales/zh-CN/nav.json +10 -0
- package/dist/templates/app/locales/zh-CN/overview.json +6 -0
- package/dist/templates/app/locales/zh-CN/retopology.json +4 -0
- package/dist/templates/app/locales/zh-CN/rigging.json +21 -0
- package/dist/templates/app/locales/zh-CN/segmentation.json +4 -0
- package/dist/templates/app/locales/zh-CN/stylization.json +11 -0
- package/dist/templates/app/locales/zh-CN/texture.json +4 -0
- package/dist/templates/app/locales/zh-CN/threeModel.json +9 -0
- package/dist/templates/app/locales/zh-CN/toolbox.json +11 -0
- package/dist/templates/app/package.json.tpl +145 -0
- package/dist/templates/app/postcss.config.js +6 -0
- package/dist/templates/app/react-app-env.d.ts +14 -0
- package/dist/templates/app/scripts/convert-locales-to-json.js +47 -0
- package/dist/templates/app/src/__mocks__/fileMock.js +1 -0
- package/dist/templates/app/src/__mocks__/styleMock.ts +1 -0
- package/dist/templates/app/src/color/ColorScales/ScaleRow.tsx +74 -0
- package/dist/templates/app/src/color/ColorScales/index.md +168 -0
- package/dist/templates/app/src/color/ColorScales/index.tsx +70 -0
- package/dist/templates/app/src/color/ColorScales/style.ts +42 -0
- package/dist/templates/app/src/color/colors/blue.ts +66 -0
- package/dist/templates/app/src/color/colors/cyan.ts +66 -0
- package/dist/templates/app/src/color/colors/geekblue.ts +66 -0
- package/dist/templates/app/src/color/colors/gold.ts +66 -0
- package/dist/templates/app/src/color/colors/gray.ts +66 -0
- package/dist/templates/app/src/color/colors/green.ts +66 -0
- package/dist/templates/app/src/color/colors/index.ts +66 -0
- package/dist/templates/app/src/color/colors/lime.ts +66 -0
- package/dist/templates/app/src/color/colors/magenta.ts +66 -0
- package/dist/templates/app/src/color/colors/orange.ts +66 -0
- package/dist/templates/app/src/color/colors/primary.ts +66 -0
- package/dist/templates/app/src/color/colors/purple.ts +66 -0
- package/dist/templates/app/src/color/colors/red.ts +66 -0
- package/dist/templates/app/src/color/colors/volcano.ts +66 -0
- package/dist/templates/app/src/color/colors/yellow.ts +66 -0
- package/dist/templates/app/src/color/index.ts +4 -0
- package/dist/templates/app/src/color/neutrals/index.ts +30 -0
- package/dist/templates/app/src/color/neutrals/mauve.ts +66 -0
- package/dist/templates/app/src/color/neutrals/olive.ts +66 -0
- package/dist/templates/app/src/color/neutrals/sage.ts +66 -0
- package/dist/templates/app/src/color/neutrals/sand.ts +66 -0
- package/dist/templates/app/src/color/neutrals/slate.ts +66 -0
- package/dist/templates/app/src/color/types.ts +21 -0
- package/dist/templates/app/src/components/ConfigProvider/index.md +63 -0
- package/dist/templates/app/src/components/ConfigProvider/index.tsx +42 -0
- package/dist/templates/app/src/components/ErrorBoundary/index.tsx +506 -0
- package/dist/templates/app/src/components/FontLoader/index.md +12 -0
- package/dist/templates/app/src/components/FontLoader/index.tsx +41 -0
- package/dist/templates/app/src/components/Loading/__tests__/Loading.test.tsx +23 -0
- package/dist/templates/app/src/components/Loading/index.tsx +21 -0
- package/dist/templates/app/src/components/ManualSlave/ManualSlavePage.module.less +25 -0
- package/dist/templates/app/src/components/ManualSlave/ManualSlavePage.tsx +45 -0
- package/dist/templates/app/src/components/ManualSlave/index.ts +1 -0
- package/dist/templates/app/src/components/RequireAuth/RequireAuth.tsx +76 -0
- package/dist/templates/app/src/components/RequireAuth/index.ts +1 -0
- package/dist/templates/app/src/components/ThemeProvider/GlobalStyle/antdOverride.ts +89 -0
- package/dist/templates/app/src/components/ThemeProvider/GlobalStyle/global.ts +61 -0
- package/dist/templates/app/src/components/ThemeProvider/GlobalStyle/index.ts +10 -0
- package/dist/templates/app/src/components/ThemeProvider/Meta.tsx +75 -0
- package/dist/templates/app/src/components/ThemeProvider/ThemeProvider.tsx +109 -0
- package/dist/templates/app/src/components/ThemeProvider/index.md +69 -0
- package/dist/templates/app/src/components/ThemeProvider/index.ts +3 -0
- package/dist/templates/app/src/components/ThemeProvider/type.ts +28 -0
- package/dist/templates/app/src/const/constants.ts +0 -0
- package/dist/templates/app/src/const/locale.ts +9 -0
- package/dist/templates/app/src/const/system.ts +1 -0
- package/dist/templates/app/src/const/theme.ts +5 -0
- package/dist/templates/app/src/const/url.ts +1 -0
- package/dist/templates/app/src/hooks/useRouteTitle.tsx +36 -0
- package/dist/templates/app/src/hooks/useSentry.ts +92 -0
- package/dist/templates/app/src/index.css +2 -0
- package/dist/templates/app/src/index.tsx +56 -0
- package/dist/templates/app/src/layout/BaseLayout.tsx +15 -0
- package/dist/templates/app/src/layout/ContentFormWrapper.tsx +11 -0
- package/dist/templates/app/src/layout/ContentWrapper.module.less +137 -0
- package/dist/templates/app/src/layout/ContentWrapper.tsx +13 -0
- package/dist/templates/app/src/layout/Locale.tsx +89 -0
- package/dist/templates/app/src/layout/MainContentWrap.tsx +68 -0
- package/dist/templates/app/src/layout/ThemeContext.tsx +132 -0
- package/dist/templates/app/src/loading.tsx +52 -0
- package/dist/templates/app/src/locales/create.ts +56 -0
- package/dist/templates/app/src/locales/default/chat.ts +455 -0
- package/dist/templates/app/src/locales/default/index.ts +7 -0
- package/dist/templates/app/src/locales/resources.ts +104 -0
- package/dist/templates/app/src/pages/404/index.tsx +5 -0
- package/dist/templates/app/src/pages/404/page.tsx +27 -0
- package/dist/templates/app/src/pages/404.tsx +5 -0
- package/dist/templates/app/src/pages/base/index.tsx +32 -0
- package/dist/templates/app/src/pages/base/layout.tsx +6 -0
- package/dist/templates/app/src/pages/base/page.tsx +25 -0
- package/dist/templates/app/src/pages/index.css +282 -0
- package/dist/templates/app/src/pages/index.tsx +5 -0
- package/dist/templates/app/src/routes.tsx +18 -0
- package/dist/templates/app/src/setupTests.ts +39 -0
- package/dist/templates/app/src/styles/antdOverride.ts +24 -0
- package/dist/templates/app/src/styles/customTheme.ts +70 -0
- package/dist/templates/app/src/styles/global.ts +53 -0
- package/dist/templates/app/src/styles/highlighter.ts +34 -0
- package/dist/templates/app/src/styles/index.ts +23 -0
- package/dist/templates/app/src/styles/mermaid.ts +7 -0
- package/dist/templates/app/src/styles/text.ts +10 -0
- package/dist/templates/app/src/styles/theme/algorithms/darkAlgorithm.ts +47 -0
- package/dist/templates/app/src/styles/theme/algorithms/lightAlgorithm.ts +44 -0
- package/dist/templates/app/src/styles/theme/antdTheme.ts +62 -0
- package/dist/templates/app/src/styles/theme/customStylish.ts +189 -0
- package/dist/templates/app/src/styles/theme/customToken.ts +93 -0
- package/dist/templates/app/src/styles/theme/generateColorPalette.ts +59 -0
- package/dist/templates/app/src/styles/theme/token/base.ts +16 -0
- package/dist/templates/app/src/styles/theme/token/dark.ts +60 -0
- package/dist/templates/app/src/styles/theme/token/light.ts +60 -0
- package/dist/templates/app/src/test-utils.tsx +18 -0
- package/dist/templates/app/src/types/customStylish.ts +20 -0
- package/dist/templates/app/src/types/customToken.ts +70 -0
- package/dist/templates/app/src/types/index.ts +21 -0
- package/dist/templates/app/src/types/routes.ts +70 -0
- package/dist/templates/app/src/utils/__tests__/example.test.ts +7 -0
- package/dist/templates/app/src/utils/convert.ts +40 -0
- package/dist/templates/app/src/utils/cookie.ts +25 -0
- package/dist/templates/app/src/utils/copyToClipboard.ts +13 -0
- package/dist/templates/app/src/utils/difference.ts +26 -0
- package/dist/templates/app/src/utils/env.ts +3 -0
- package/dist/templates/app/src/utils/format.ts +21 -0
- package/dist/templates/app/src/utils/genCdnUrl.ts +30 -0
- package/dist/templates/app/src/utils/getMicroApp.ts +39 -0
- package/dist/templates/app/src/utils/index.ts +1 -0
- package/dist/templates/app/src/utils/locale.ts +46 -0
- package/dist/templates/app/src/utils/sentry.ts +187 -0
- package/dist/templates/app/src/utils/sentryDecorators.ts +34 -0
- package/dist/templates/app/src/utils/updateVersion.ts +186 -0
- package/dist/templates/app/store/auth/index.tsx +82 -0
- package/dist/templates/app/store/auth/indexApi.tsx +11 -0
- package/dist/templates/app/store/global/index.tsx +133 -0
- package/dist/templates/app/store/global/indexApi.tsx +19 -0
- package/dist/templates/app/store/global/types.ts +62 -0
- package/dist/templates/app/store/middleware/createDevtools.ts +23 -0
- package/dist/templates/app/store/middleware/createHyperStorage/index.ts +127 -0
- package/dist/templates/app/store/middleware/createHyperStorage/indexedDB.ts +31 -0
- package/dist/templates/app/store/middleware/createHyperStorage/keyMapper.ts +57 -0
- package/dist/templates/app/store/middleware/createHyperStorage/localStorage.ts +23 -0
- package/dist/templates/app/store/middleware/createHyperStorage/type.ts +27 -0
- package/dist/templates/app/store/middleware/createHyperStorage/urlStorage.ts +85 -0
- package/dist/templates/app/store/theme/index.ts +25 -0
- package/dist/templates/app/store/types.ts +83 -0
- package/dist/templates/app/store/user/index.tsx +1 -0
- package/dist/templates/app/store/user/indexApi.tsx +5 -0
- package/dist/templates/app/store/user/initialState.ts +15 -0
- package/dist/templates/app/store/user/slices/profile/actions.ts +20 -0
- package/dist/templates/app/store/user/slices/profile/api.ts +5 -0
- package/dist/templates/app/store/user/slices/profile/initialState.ts +14 -0
- package/dist/templates/app/store/user/slices/settings/actions.ts +23 -0
- package/dist/templates/app/store/user/slices/settings/initialState.ts +32 -0
- package/dist/templates/app/store/user/store.ts +39 -0
- package/dist/templates/app/tailwind.config.js +13 -0
- package/dist/templates/app/tsconfig.json +27 -0
- package/dist/templates/app//347/277/273/350/257/221.md +9 -0
- package/dist/templates/auth/index.tsx +82 -0
- package/dist/templates/auth/indexApi.tsx +11 -0
- package/dist/templates/banner_market_modal.webp +0 -0
- package/dist/templates/base/index.tsx +32 -0
- package/dist/templates/base/layout.tsx +6 -0
- package/dist/templates/base/page.tsx +25 -0
- package/dist/templates/base.ts +16 -0
- package/dist/templates/blue.ts +66 -0
- package/dist/templates/chat.ts +455 -0
- package/dist/templates/chatmode_chat_dark.webp +0 -0
- package/dist/templates/chatmode_chat_light.webp +0 -0
- package/dist/templates/chatmode_docs_dark.webp +0 -0
- package/dist/templates/chatmode_docs_light.webp +0 -0
- package/dist/templates/color/ColorScales/ScaleRow.tsx +74 -0
- package/dist/templates/color/ColorScales/index.md +168 -0
- package/dist/templates/color/ColorScales/index.tsx +70 -0
- package/dist/templates/color/ColorScales/style.ts +42 -0
- package/dist/templates/color/colors/blue.ts +66 -0
- package/dist/templates/color/colors/cyan.ts +66 -0
- package/dist/templates/color/colors/geekblue.ts +66 -0
- package/dist/templates/color/colors/gold.ts +66 -0
- package/dist/templates/color/colors/gray.ts +66 -0
- package/dist/templates/color/colors/green.ts +66 -0
- package/dist/templates/color/colors/index.ts +66 -0
- package/dist/templates/color/colors/lime.ts +66 -0
- package/dist/templates/color/colors/magenta.ts +66 -0
- package/dist/templates/color/colors/orange.ts +66 -0
- package/dist/templates/color/colors/primary.ts +66 -0
- package/dist/templates/color/colors/purple.ts +66 -0
- package/dist/templates/color/colors/red.ts +66 -0
- package/dist/templates/color/colors/volcano.ts +66 -0
- package/dist/templates/color/colors/yellow.ts +66 -0
- package/dist/templates/color/index.ts +4 -0
- package/dist/templates/color/neutrals/index.ts +30 -0
- package/dist/templates/color/neutrals/mauve.ts +66 -0
- package/dist/templates/color/neutrals/olive.ts +66 -0
- package/dist/templates/color/neutrals/sage.ts +66 -0
- package/dist/templates/color/neutrals/sand.ts +66 -0
- package/dist/templates/color/neutrals/slate.ts +66 -0
- package/dist/templates/color/types.ts +21 -0
- package/dist/templates/colors/blue.ts +66 -0
- package/dist/templates/colors/cyan.ts +66 -0
- package/dist/templates/colors/geekblue.ts +66 -0
- package/dist/templates/colors/gold.ts +66 -0
- package/dist/templates/colors/gray.ts +66 -0
- package/dist/templates/colors/green.ts +66 -0
- package/dist/templates/colors/index.ts +66 -0
- package/dist/templates/colors/lime.ts +66 -0
- package/dist/templates/colors/magenta.ts +66 -0
- package/dist/templates/colors/orange.ts +66 -0
- package/dist/templates/colors/primary.ts +66 -0
- package/dist/templates/colors/purple.ts +66 -0
- package/dist/templates/colors/red.ts +66 -0
- package/dist/templates/colors/volcano.ts +66 -0
- package/dist/templates/colors/yellow.ts +66 -0
- package/dist/templates/common.json +74 -0
- package/dist/templates/components/ConfigProvider/index.md +63 -0
- package/dist/templates/components/ConfigProvider/index.tsx +42 -0
- package/dist/templates/components/ErrorBoundary/index.tsx +506 -0
- package/dist/templates/components/FontLoader/index.md +12 -0
- package/dist/templates/components/FontLoader/index.tsx +41 -0
- package/dist/templates/components/Loading/__tests__/Loading.test.tsx +23 -0
- package/dist/templates/components/Loading/index.tsx +21 -0
- package/dist/templates/components/ManualSlave/ManualSlavePage.module.less +25 -0
- package/dist/templates/components/ManualSlave/ManualSlavePage.tsx +45 -0
- package/dist/templates/components/ManualSlave/index.ts +1 -0
- package/dist/templates/components/RequireAuth/RequireAuth.tsx +76 -0
- package/dist/templates/components/RequireAuth/index.ts +1 -0
- package/dist/templates/components/ThemeProvider/GlobalStyle/antdOverride.ts +89 -0
- package/dist/templates/components/ThemeProvider/GlobalStyle/global.ts +61 -0
- package/dist/templates/components/ThemeProvider/GlobalStyle/index.ts +10 -0
- package/dist/templates/components/ThemeProvider/Meta.tsx +75 -0
- package/dist/templates/components/ThemeProvider/ThemeProvider.tsx +109 -0
- package/dist/templates/components/ThemeProvider/index.md +69 -0
- package/dist/templates/components/ThemeProvider/index.ts +3 -0
- package/dist/templates/components/ThemeProvider/type.ts +28 -0
- package/dist/templates/config/env/.env.development +5 -0
- package/dist/templates/config/env/.env.production +2 -0
- package/dist/templates/config/env/.env.public.tpl +31 -0
- package/dist/templates/config/jwt/index.ts +31 -0
- package/dist/templates/config/public/404.png +0 -0
- package/dist/templates/config/public/favicon.ico +0 -0
- package/dist/templates/config/public/images/banner_market_modal.webp +0 -0
- package/dist/templates/config/public/images/chatmode_chat_dark.webp +0 -0
- package/dist/templates/config/public/images/chatmode_chat_light.webp +0 -0
- package/dist/templates/config/public/images/chatmode_docs_dark.webp +0 -0
- package/dist/templates/config/public/images/chatmode_docs_light.webp +0 -0
- package/dist/templates/config/public/images/empty_topic_dark.webp +0 -0
- package/dist/templates/config/public/images/empty_topic_light.webp +0 -0
- package/dist/templates/config/public/images/screenshot_background.webp +0 -0
- package/dist/templates/config/public/images/theme_auto.webp +0 -0
- package/dist/templates/config/public/images/theme_dark.webp +0 -0
- package/dist/templates/config/public/images/theme_light.webp +0 -0
- package/dist/templates/config/public/index.html +29 -0
- package/dist/templates/config/request/index.ts +174 -0
- package/dist/templates/config/router/index.tsx +26 -0
- package/dist/templates/config/rspack/paths.js +12 -0
- package/dist/templates/config/rspack/plugins/RoutesConventionsRspackPlugin.js +100 -0
- package/dist/templates/config/rspack/rspack.config.mjs +186 -0
- package/dist/templates/config/rspack/rspack.dev.mjs +219 -0
- package/dist/templates/config/rspack/rspack.prod.mjs +254 -0
- package/dist/templates/config/sentry/sentry.config.ts +188 -0
- package/dist/templates/const/constants.ts +0 -0
- package/dist/templates/const/locale.ts +9 -0
- package/dist/templates/const/system.ts +1 -0
- package/dist/templates/const/theme.ts +5 -0
- package/dist/templates/const/url.ts +1 -0
- package/dist/templates/constants.ts +0 -0
- package/dist/templates/convert-locales-to-json.js +47 -0
- package/dist/templates/convert.ts +40 -0
- package/dist/templates/cookie.ts +25 -0
- package/dist/templates/copyToClipboard.ts +13 -0
- package/dist/templates/create.ts +56 -0
- package/dist/templates/createDevtools.ts +23 -0
- package/dist/templates/createHyperStorage/index.ts +127 -0
- package/dist/templates/createHyperStorage/indexedDB.ts +31 -0
- package/dist/templates/createHyperStorage/keyMapper.ts +57 -0
- package/dist/templates/createHyperStorage/localStorage.ts +23 -0
- package/dist/templates/createHyperStorage/type.ts +27 -0
- package/dist/templates/createHyperStorage/urlStorage.ts +85 -0
- package/dist/templates/customStylish.ts +189 -0
- package/dist/templates/customTheme.ts +70 -0
- package/dist/templates/customToken.ts +93 -0
- package/dist/templates/cyan.ts +66 -0
- package/dist/templates/dark.ts +60 -0
- package/dist/templates/darkAlgorithm.ts +47 -0
- package/dist/templates/default/chat.ts +455 -0
- package/dist/templates/default/index.ts +7 -0
- package/dist/templates/difference.ts +26 -0
- package/dist/templates/empty_topic_dark.webp +0 -0
- package/dist/templates/empty_topic_light.webp +0 -0
- package/dist/templates/en-US/common.json +74 -0
- package/dist/templates/en-US/generate.json +71 -0
- package/dist/templates/en-US/nav.json +10 -0
- package/dist/templates/en-US/overview.json +6 -0
- package/dist/templates/en-US/retopology.json +4 -0
- package/dist/templates/en-US/rigging.json +21 -0
- package/dist/templates/en-US/segmentation.json +4 -0
- package/dist/templates/en-US/stylization.json +11 -0
- package/dist/templates/en-US/texture.json +4 -0
- package/dist/templates/en-US/threeModel.json +9 -0
- package/dist/templates/en-US/toolbox.json +11 -0
- package/dist/templates/env/.env.development +5 -0
- package/dist/templates/env/.env.production +2 -0
- package/dist/templates/env/.env.public.tpl +31 -0
- package/dist/templates/env.ts +3 -0
- package/dist/templates/example.test.ts +7 -0
- package/dist/templates/favicon.ico +0 -0
- package/dist/templates/fileMock.js +1 -0
- package/dist/templates/format.ts +21 -0
- package/dist/templates/geekblue.ts +66 -0
- package/dist/templates/genCdnUrl.ts +30 -0
- package/dist/templates/generate.json +71 -0
- package/dist/templates/generateColorPalette.ts +59 -0
- package/dist/templates/getMicroApp.ts +39 -0
- package/dist/templates/global/index.tsx +133 -0
- package/dist/templates/global/indexApi.tsx +19 -0
- package/dist/templates/global/types.ts +62 -0
- package/dist/templates/global.ts +61 -0
- package/dist/templates/gold.ts +66 -0
- package/dist/templates/gray.ts +66 -0
- package/dist/templates/green.ts +66 -0
- package/dist/templates/highlighter.ts +34 -0
- package/dist/templates/hooks/useRouteTitle.tsx +36 -0
- package/dist/templates/hooks/useSentry.ts +92 -0
- package/dist/templates/images/banner_market_modal.webp +0 -0
- package/dist/templates/images/chatmode_chat_dark.webp +0 -0
- package/dist/templates/images/chatmode_chat_light.webp +0 -0
- package/dist/templates/images/chatmode_docs_dark.webp +0 -0
- package/dist/templates/images/chatmode_docs_light.webp +0 -0
- package/dist/templates/images/empty_topic_dark.webp +0 -0
- package/dist/templates/images/empty_topic_light.webp +0 -0
- package/dist/templates/images/screenshot_background.webp +0 -0
- package/dist/templates/images/theme_auto.webp +0 -0
- package/dist/templates/images/theme_dark.webp +0 -0
- package/dist/templates/images/theme_light.webp +0 -0
- package/dist/templates/index.css +282 -0
- package/dist/templates/index.html +29 -0
- package/dist/templates/index.md +69 -0
- package/dist/templates/index.ts +10 -0
- package/dist/templates/index.tsx +32 -0
- package/dist/templates/indexApi.tsx +5 -0
- package/dist/templates/indexedDB.ts +31 -0
- package/dist/templates/initialState.ts +32 -0
- package/dist/templates/jwt/index.ts +31 -0
- package/dist/templates/keyMapper.ts +57 -0
- package/dist/templates/layout/BaseLayout.tsx +15 -0
- package/dist/templates/layout/ContentFormWrapper.tsx +11 -0
- package/dist/templates/layout/ContentWrapper.module.less +137 -0
- package/dist/templates/layout/ContentWrapper.tsx +13 -0
- package/dist/templates/layout/Locale.tsx +89 -0
- package/dist/templates/layout/MainContentWrap.tsx +68 -0
- package/dist/templates/layout/ThemeContext.tsx +132 -0
- package/dist/templates/layout.tsx +6 -0
- package/dist/templates/light.ts +60 -0
- package/dist/templates/lightAlgorithm.ts +44 -0
- package/dist/templates/lime.ts +66 -0
- package/dist/templates/loading.tsx +52 -0
- package/dist/templates/localStorage.ts +23 -0
- package/dist/templates/locale.ts +46 -0
- package/dist/templates/locales/create.ts +56 -0
- package/dist/templates/locales/default/chat.ts +455 -0
- package/dist/templates/locales/default/index.ts +7 -0
- package/dist/templates/locales/en-US/common.json +74 -0
- package/dist/templates/locales/en-US/generate.json +71 -0
- package/dist/templates/locales/en-US/nav.json +10 -0
- package/dist/templates/locales/en-US/overview.json +6 -0
- package/dist/templates/locales/en-US/retopology.json +4 -0
- package/dist/templates/locales/en-US/rigging.json +21 -0
- package/dist/templates/locales/en-US/segmentation.json +4 -0
- package/dist/templates/locales/en-US/stylization.json +11 -0
- package/dist/templates/locales/en-US/texture.json +4 -0
- package/dist/templates/locales/en-US/threeModel.json +9 -0
- package/dist/templates/locales/en-US/toolbox.json +11 -0
- package/dist/templates/locales/resources.ts +104 -0
- package/dist/templates/locales/zh-CN/common.json +74 -0
- package/dist/templates/locales/zh-CN/generate.json +71 -0
- package/dist/templates/locales/zh-CN/nav.json +10 -0
- package/dist/templates/locales/zh-CN/overview.json +6 -0
- package/dist/templates/locales/zh-CN/retopology.json +4 -0
- package/dist/templates/locales/zh-CN/rigging.json +21 -0
- package/dist/templates/locales/zh-CN/segmentation.json +4 -0
- package/dist/templates/locales/zh-CN/stylization.json +11 -0
- package/dist/templates/locales/zh-CN/texture.json +4 -0
- package/dist/templates/locales/zh-CN/threeModel.json +9 -0
- package/dist/templates/locales/zh-CN/toolbox.json +11 -0
- package/dist/templates/magenta.ts +66 -0
- package/dist/templates/mauve.ts +66 -0
- package/dist/templates/mermaid.ts +7 -0
- package/dist/templates/middleware/createDevtools.ts +23 -0
- package/dist/templates/middleware/createHyperStorage/index.ts +127 -0
- package/dist/templates/middleware/createHyperStorage/indexedDB.ts +31 -0
- package/dist/templates/middleware/createHyperStorage/keyMapper.ts +57 -0
- package/dist/templates/middleware/createHyperStorage/localStorage.ts +23 -0
- package/dist/templates/middleware/createHyperStorage/type.ts +27 -0
- package/dist/templates/middleware/createHyperStorage/urlStorage.ts +85 -0
- package/dist/templates/nav.json +10 -0
- package/dist/templates/neutrals/index.ts +30 -0
- package/dist/templates/neutrals/mauve.ts +66 -0
- package/dist/templates/neutrals/olive.ts +66 -0
- package/dist/templates/neutrals/sage.ts +66 -0
- package/dist/templates/neutrals/sand.ts +66 -0
- package/dist/templates/neutrals/slate.ts +66 -0
- package/dist/templates/olive.ts +66 -0
- package/dist/templates/orange.ts +66 -0
- package/dist/templates/overview.json +6 -0
- package/dist/templates/package.json.tpl +145 -0
- package/dist/templates/page.tsx +25 -0
- package/dist/templates/pages/404/index.tsx +5 -0
- package/dist/templates/pages/404/page.tsx +27 -0
- package/dist/templates/pages/404.tsx +5 -0
- package/dist/templates/pages/base/index.tsx +32 -0
- package/dist/templates/pages/base/layout.tsx +6 -0
- package/dist/templates/pages/base/page.tsx +25 -0
- package/dist/templates/pages/index.css +282 -0
- package/dist/templates/pages/index.tsx +5 -0
- package/dist/templates/paths.js +12 -0
- package/dist/templates/plugins/RoutesConventionsRspackPlugin.js +100 -0
- package/dist/templates/postcss.config.js +6 -0
- package/dist/templates/primary.ts +66 -0
- package/dist/templates/profile/actions.ts +20 -0
- package/dist/templates/profile/api.ts +5 -0
- package/dist/templates/profile/initialState.ts +14 -0
- package/dist/templates/public/404.png +0 -0
- package/dist/templates/public/favicon.ico +0 -0
- package/dist/templates/public/images/banner_market_modal.webp +0 -0
- package/dist/templates/public/images/chatmode_chat_dark.webp +0 -0
- package/dist/templates/public/images/chatmode_chat_light.webp +0 -0
- package/dist/templates/public/images/chatmode_docs_dark.webp +0 -0
- package/dist/templates/public/images/chatmode_docs_light.webp +0 -0
- package/dist/templates/public/images/empty_topic_dark.webp +0 -0
- package/dist/templates/public/images/empty_topic_light.webp +0 -0
- package/dist/templates/public/images/screenshot_background.webp +0 -0
- package/dist/templates/public/images/theme_auto.webp +0 -0
- package/dist/templates/public/images/theme_dark.webp +0 -0
- package/dist/templates/public/images/theme_light.webp +0 -0
- package/dist/templates/public/index.html +29 -0
- package/dist/templates/purple.ts +66 -0
- package/dist/templates/react-app-env.d.ts +14 -0
- package/dist/templates/red.ts +66 -0
- package/dist/templates/request/index.ts +174 -0
- package/dist/templates/resources.ts +104 -0
- package/dist/templates/retopology.json +4 -0
- package/dist/templates/rigging.json +21 -0
- package/dist/templates/router/index.tsx +26 -0
- package/dist/templates/routes.ts +70 -0
- package/dist/templates/routes.tsx +18 -0
- package/dist/templates/rspack/paths.js +12 -0
- package/dist/templates/rspack/plugins/RoutesConventionsRspackPlugin.js +100 -0
- package/dist/templates/rspack/rspack.config.mjs +186 -0
- package/dist/templates/rspack/rspack.dev.mjs +219 -0
- package/dist/templates/rspack/rspack.prod.mjs +254 -0
- package/dist/templates/rspack.config.mjs +186 -0
- package/dist/templates/rspack.dev.mjs +219 -0
- package/dist/templates/rspack.prod.mjs +254 -0
- package/dist/templates/sage.ts +66 -0
- package/dist/templates/sand.ts +66 -0
- package/dist/templates/screenshot_background.webp +0 -0
- package/dist/templates/scripts/convert-locales-to-json.js +47 -0
- package/dist/templates/segmentation.json +4 -0
- package/dist/templates/sentry/sentry.config.ts +188 -0
- package/dist/templates/sentry.config.ts +188 -0
- package/dist/templates/sentry.ts +187 -0
- package/dist/templates/sentryDecorators.ts +34 -0
- package/dist/templates/settings/actions.ts +23 -0
- package/dist/templates/settings/initialState.ts +32 -0
- package/dist/templates/setupTests.ts +39 -0
- package/dist/templates/slate.ts +66 -0
- package/dist/templates/slices/profile/actions.ts +20 -0
- package/dist/templates/slices/profile/api.ts +5 -0
- package/dist/templates/slices/profile/initialState.ts +14 -0
- package/dist/templates/slices/settings/actions.ts +23 -0
- package/dist/templates/slices/settings/initialState.ts +32 -0
- package/dist/templates/src/__mocks__/fileMock.js +1 -0
- package/dist/templates/src/__mocks__/styleMock.ts +1 -0
- package/dist/templates/src/color/ColorScales/ScaleRow.tsx +74 -0
- package/dist/templates/src/color/ColorScales/index.md +168 -0
- package/dist/templates/src/color/ColorScales/index.tsx +70 -0
- package/dist/templates/src/color/ColorScales/style.ts +42 -0
- package/dist/templates/src/color/colors/blue.ts +66 -0
- package/dist/templates/src/color/colors/cyan.ts +66 -0
- package/dist/templates/src/color/colors/geekblue.ts +66 -0
- package/dist/templates/src/color/colors/gold.ts +66 -0
- package/dist/templates/src/color/colors/gray.ts +66 -0
- package/dist/templates/src/color/colors/green.ts +66 -0
- package/dist/templates/src/color/colors/index.ts +66 -0
- package/dist/templates/src/color/colors/lime.ts +66 -0
- package/dist/templates/src/color/colors/magenta.ts +66 -0
- package/dist/templates/src/color/colors/orange.ts +66 -0
- package/dist/templates/src/color/colors/primary.ts +66 -0
- package/dist/templates/src/color/colors/purple.ts +66 -0
- package/dist/templates/src/color/colors/red.ts +66 -0
- package/dist/templates/src/color/colors/volcano.ts +66 -0
- package/dist/templates/src/color/colors/yellow.ts +66 -0
- package/dist/templates/src/color/index.ts +4 -0
- package/dist/templates/src/color/neutrals/index.ts +30 -0
- package/dist/templates/src/color/neutrals/mauve.ts +66 -0
- package/dist/templates/src/color/neutrals/olive.ts +66 -0
- package/dist/templates/src/color/neutrals/sage.ts +66 -0
- package/dist/templates/src/color/neutrals/sand.ts +66 -0
- package/dist/templates/src/color/neutrals/slate.ts +66 -0
- package/dist/templates/src/color/types.ts +21 -0
- package/dist/templates/src/components/ConfigProvider/index.md +63 -0
- package/dist/templates/src/components/ConfigProvider/index.tsx +42 -0
- package/dist/templates/src/components/ErrorBoundary/index.tsx +506 -0
- package/dist/templates/src/components/FontLoader/index.md +12 -0
- package/dist/templates/src/components/FontLoader/index.tsx +41 -0
- package/dist/templates/src/components/Loading/__tests__/Loading.test.tsx +23 -0
- package/dist/templates/src/components/Loading/index.tsx +21 -0
- package/dist/templates/src/components/ManualSlave/ManualSlavePage.module.less +25 -0
- package/dist/templates/src/components/ManualSlave/ManualSlavePage.tsx +45 -0
- package/dist/templates/src/components/ManualSlave/index.ts +1 -0
- package/dist/templates/src/components/RequireAuth/RequireAuth.tsx +76 -0
- package/dist/templates/src/components/RequireAuth/index.ts +1 -0
- package/dist/templates/src/components/ThemeProvider/GlobalStyle/antdOverride.ts +89 -0
- package/dist/templates/src/components/ThemeProvider/GlobalStyle/global.ts +61 -0
- package/dist/templates/src/components/ThemeProvider/GlobalStyle/index.ts +10 -0
- package/dist/templates/src/components/ThemeProvider/Meta.tsx +75 -0
- package/dist/templates/src/components/ThemeProvider/ThemeProvider.tsx +109 -0
- package/dist/templates/src/components/ThemeProvider/index.md +69 -0
- package/dist/templates/src/components/ThemeProvider/index.ts +3 -0
- package/dist/templates/src/components/ThemeProvider/type.ts +28 -0
- package/dist/templates/src/const/constants.ts +0 -0
- package/dist/templates/src/const/locale.ts +9 -0
- package/dist/templates/src/const/system.ts +1 -0
- package/dist/templates/src/const/theme.ts +5 -0
- package/dist/templates/src/const/url.ts +1 -0
- package/dist/templates/src/hooks/useRouteTitle.tsx +36 -0
- package/dist/templates/src/hooks/useSentry.ts +92 -0
- package/dist/templates/src/index.css +2 -0
- package/dist/templates/src/index.tsx +56 -0
- package/dist/templates/src/layout/BaseLayout.tsx +15 -0
- package/dist/templates/src/layout/ContentFormWrapper.tsx +11 -0
- package/dist/templates/src/layout/ContentWrapper.module.less +137 -0
- package/dist/templates/src/layout/ContentWrapper.tsx +13 -0
- package/dist/templates/src/layout/Locale.tsx +89 -0
- package/dist/templates/src/layout/MainContentWrap.tsx +68 -0
- package/dist/templates/src/layout/ThemeContext.tsx +132 -0
- package/dist/templates/src/loading.tsx +52 -0
- package/dist/templates/src/locales/create.ts +56 -0
- package/dist/templates/src/locales/default/chat.ts +455 -0
- package/dist/templates/src/locales/default/index.ts +7 -0
- package/dist/templates/src/locales/resources.ts +104 -0
- package/dist/templates/src/pages/404/index.tsx +5 -0
- package/dist/templates/src/pages/404/page.tsx +27 -0
- package/dist/templates/src/pages/404.tsx +5 -0
- package/dist/templates/src/pages/base/index.tsx +32 -0
- package/dist/templates/src/pages/base/layout.tsx +6 -0
- package/dist/templates/src/pages/base/page.tsx +25 -0
- package/dist/templates/src/pages/index.css +282 -0
- package/dist/templates/src/pages/index.tsx +5 -0
- package/dist/templates/src/routes.tsx +18 -0
- package/dist/templates/src/setupTests.ts +39 -0
- package/dist/templates/src/styles/antdOverride.ts +24 -0
- package/dist/templates/src/styles/customTheme.ts +70 -0
- package/dist/templates/src/styles/global.ts +53 -0
- package/dist/templates/src/styles/highlighter.ts +34 -0
- package/dist/templates/src/styles/index.ts +23 -0
- package/dist/templates/src/styles/mermaid.ts +7 -0
- package/dist/templates/src/styles/text.ts +10 -0
- package/dist/templates/src/styles/theme/algorithms/darkAlgorithm.ts +47 -0
- package/dist/templates/src/styles/theme/algorithms/lightAlgorithm.ts +44 -0
- package/dist/templates/src/styles/theme/antdTheme.ts +62 -0
- package/dist/templates/src/styles/theme/customStylish.ts +189 -0
- package/dist/templates/src/styles/theme/customToken.ts +93 -0
- package/dist/templates/src/styles/theme/generateColorPalette.ts +59 -0
- package/dist/templates/src/styles/theme/token/base.ts +16 -0
- package/dist/templates/src/styles/theme/token/dark.ts +60 -0
- package/dist/templates/src/styles/theme/token/light.ts +60 -0
- package/dist/templates/src/test-utils.tsx +18 -0
- package/dist/templates/src/types/customStylish.ts +20 -0
- package/dist/templates/src/types/customToken.ts +70 -0
- package/dist/templates/src/types/index.ts +21 -0
- package/dist/templates/src/types/routes.ts +70 -0
- package/dist/templates/src/utils/__tests__/example.test.ts +7 -0
- package/dist/templates/src/utils/convert.ts +40 -0
- package/dist/templates/src/utils/cookie.ts +25 -0
- package/dist/templates/src/utils/copyToClipboard.ts +13 -0
- package/dist/templates/src/utils/difference.ts +26 -0
- package/dist/templates/src/utils/env.ts +3 -0
- package/dist/templates/src/utils/format.ts +21 -0
- package/dist/templates/src/utils/genCdnUrl.ts +30 -0
- package/dist/templates/src/utils/getMicroApp.ts +39 -0
- package/dist/templates/src/utils/index.ts +1 -0
- package/dist/templates/src/utils/locale.ts +46 -0
- package/dist/templates/src/utils/sentry.ts +187 -0
- package/dist/templates/src/utils/sentryDecorators.ts +34 -0
- package/dist/templates/src/utils/updateVersion.ts +186 -0
- package/dist/templates/store/auth/index.tsx +82 -0
- package/dist/templates/store/auth/indexApi.tsx +11 -0
- package/dist/templates/store/global/index.tsx +133 -0
- package/dist/templates/store/global/indexApi.tsx +19 -0
- package/dist/templates/store/global/types.ts +62 -0
- package/dist/templates/store/middleware/createDevtools.ts +23 -0
- package/dist/templates/store/middleware/createHyperStorage/index.ts +127 -0
- package/dist/templates/store/middleware/createHyperStorage/indexedDB.ts +31 -0
- package/dist/templates/store/middleware/createHyperStorage/keyMapper.ts +57 -0
- package/dist/templates/store/middleware/createHyperStorage/localStorage.ts +23 -0
- package/dist/templates/store/middleware/createHyperStorage/type.ts +27 -0
- package/dist/templates/store/middleware/createHyperStorage/urlStorage.ts +85 -0
- package/dist/templates/store/theme/index.ts +25 -0
- package/dist/templates/store/types.ts +83 -0
- package/dist/templates/store/user/index.tsx +1 -0
- package/dist/templates/store/user/indexApi.tsx +5 -0
- package/dist/templates/store/user/initialState.ts +15 -0
- package/dist/templates/store/user/slices/profile/actions.ts +20 -0
- package/dist/templates/store/user/slices/profile/api.ts +5 -0
- package/dist/templates/store/user/slices/profile/initialState.ts +14 -0
- package/dist/templates/store/user/slices/settings/actions.ts +23 -0
- package/dist/templates/store/user/slices/settings/initialState.ts +32 -0
- package/dist/templates/store/user/store.ts +39 -0
- package/dist/templates/store.ts +39 -0
- package/dist/templates/style.ts +42 -0
- package/dist/templates/styleMock.ts +1 -0
- package/dist/templates/styles/antdOverride.ts +24 -0
- package/dist/templates/styles/customTheme.ts +70 -0
- package/dist/templates/styles/global.ts +53 -0
- package/dist/templates/styles/highlighter.ts +34 -0
- package/dist/templates/styles/index.ts +23 -0
- package/dist/templates/styles/mermaid.ts +7 -0
- package/dist/templates/styles/text.ts +10 -0
- package/dist/templates/styles/theme/algorithms/darkAlgorithm.ts +47 -0
- package/dist/templates/styles/theme/algorithms/lightAlgorithm.ts +44 -0
- package/dist/templates/styles/theme/antdTheme.ts +62 -0
- package/dist/templates/styles/theme/customStylish.ts +189 -0
- package/dist/templates/styles/theme/customToken.ts +93 -0
- package/dist/templates/styles/theme/generateColorPalette.ts +59 -0
- package/dist/templates/styles/theme/token/base.ts +16 -0
- package/dist/templates/styles/theme/token/dark.ts +60 -0
- package/dist/templates/styles/theme/token/light.ts +60 -0
- package/dist/templates/stylization.json +11 -0
- package/dist/templates/system.ts +1 -0
- package/dist/templates/tailwind.config.js +13 -0
- package/dist/templates/test-utils.tsx +18 -0
- package/dist/templates/text.ts +10 -0
- package/dist/templates/texture.json +4 -0
- package/dist/templates/theme/algorithms/darkAlgorithm.ts +47 -0
- package/dist/templates/theme/algorithms/lightAlgorithm.ts +44 -0
- package/dist/templates/theme/antdTheme.ts +62 -0
- package/dist/templates/theme/customStylish.ts +189 -0
- package/dist/templates/theme/customToken.ts +93 -0
- package/dist/templates/theme/generateColorPalette.ts +59 -0
- package/dist/templates/theme/index.ts +25 -0
- package/dist/templates/theme/token/base.ts +16 -0
- package/dist/templates/theme/token/dark.ts +60 -0
- package/dist/templates/theme/token/light.ts +60 -0
- package/dist/templates/theme.ts +5 -0
- package/dist/templates/theme_auto.webp +0 -0
- package/dist/templates/theme_dark.webp +0 -0
- package/dist/templates/theme_light.webp +0 -0
- package/dist/templates/threeModel.json +9 -0
- package/dist/templates/token/base.ts +16 -0
- package/dist/templates/token/dark.ts +60 -0
- package/dist/templates/token/light.ts +60 -0
- package/dist/templates/toolbox.json +11 -0
- package/dist/templates/tsconfig.json +27 -0
- package/dist/templates/type.ts +28 -0
- package/dist/templates/types/customStylish.ts +20 -0
- package/dist/templates/types/customToken.ts +70 -0
- package/dist/templates/types/index.ts +21 -0
- package/dist/templates/types/routes.ts +70 -0
- package/dist/templates/types.ts +21 -0
- package/dist/templates/updateVersion.ts +186 -0
- package/dist/templates/url.ts +1 -0
- package/dist/templates/urlStorage.ts +85 -0
- package/dist/templates/useRouteTitle.tsx +36 -0
- package/dist/templates/useSentry.ts +92 -0
- package/dist/templates/user/index.tsx +1 -0
- package/dist/templates/user/indexApi.tsx +5 -0
- package/dist/templates/user/initialState.ts +15 -0
- package/dist/templates/user/slices/profile/actions.ts +20 -0
- package/dist/templates/user/slices/profile/api.ts +5 -0
- package/dist/templates/user/slices/profile/initialState.ts +14 -0
- package/dist/templates/user/slices/settings/actions.ts +23 -0
- package/dist/templates/user/slices/settings/initialState.ts +32 -0
- package/dist/templates/user/store.ts +39 -0
- package/dist/templates/utils/__tests__/example.test.ts +7 -0
- package/dist/templates/utils/convert.ts +40 -0
- package/dist/templates/utils/cookie.ts +25 -0
- package/dist/templates/utils/copyToClipboard.ts +13 -0
- package/dist/templates/utils/difference.ts +26 -0
- package/dist/templates/utils/env.ts +3 -0
- package/dist/templates/utils/format.ts +21 -0
- package/dist/templates/utils/genCdnUrl.ts +30 -0
- package/dist/templates/utils/getMicroApp.ts +39 -0
- package/dist/templates/utils/index.ts +1 -0
- package/dist/templates/utils/locale.ts +46 -0
- package/dist/templates/utils/sentry.ts +187 -0
- package/dist/templates/utils/sentryDecorators.ts +34 -0
- package/dist/templates/utils/updateVersion.ts +186 -0
- package/dist/templates/volcano.ts +66 -0
- package/dist/templates/yellow.ts +66 -0
- package/dist/templates/zh-CN/common.json +74 -0
- package/dist/templates/zh-CN/generate.json +71 -0
- package/dist/templates/zh-CN/nav.json +10 -0
- package/dist/templates/zh-CN/overview.json +6 -0
- package/dist/templates/zh-CN/retopology.json +4 -0
- package/dist/templates/zh-CN/rigging.json +21 -0
- package/dist/templates/zh-CN/segmentation.json +4 -0
- package/dist/templates/zh-CN/stylization.json +11 -0
- package/dist/templates/zh-CN/texture.json +4 -0
- package/dist/templates/zh-CN/threeModel.json +9 -0
- package/dist/templates/zh-CN/toolbox.json +11 -0
- package/dist/templates//347/277/273/350/257/221.md +9 -0
- package/package.json +29 -21
- package/README.md +0 -180
- package/dist/api.js +0 -44
- package/dist/templates.js +0 -87
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { DEFAULT_LANG } from '@/const/locale';
|
|
2
|
+
|
|
3
|
+
export const locales = ['ar', 'bg-BG', 'de-DE', 'en-US', 'es-ES', 'fr-FR', 'ja-JP', 'ko-KR', 'pt-BR', 'ru-RU', 'tr-TR', 'zh-CN', 'zh-TW', 'vi-VN', 'fa-IR'] as const;
|
|
4
|
+
|
|
5
|
+
export type Locales = (typeof locales)[number];
|
|
6
|
+
|
|
7
|
+
type LocaleOptions = {
|
|
8
|
+
label: string;
|
|
9
|
+
value: Locales;
|
|
10
|
+
}[];
|
|
11
|
+
|
|
12
|
+
export const localeOptions: LocaleOptions = [
|
|
13
|
+
{
|
|
14
|
+
label: 'English',
|
|
15
|
+
value: 'en-US',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
label: '简体中文',
|
|
19
|
+
value: 'zh-CN',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
label: '繁體中文',
|
|
23
|
+
value: 'zh-TW',
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
label: '日本語',
|
|
27
|
+
value: 'ja-JP',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
label: '한국어',
|
|
31
|
+
value: 'ko-KR',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
label: 'Deutsch',
|
|
35
|
+
value: 'de-DE',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
label: 'Español',
|
|
39
|
+
value: 'es-ES',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
label: 'العربية',
|
|
43
|
+
value: 'ar',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
label: 'Français',
|
|
47
|
+
value: 'fr-FR',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
label: 'Português',
|
|
51
|
+
value: 'pt-BR',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
label: 'Русский',
|
|
55
|
+
value: 'ru-RU',
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
label: 'Türkçe',
|
|
59
|
+
value: 'tr-TR',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
label: 'Polski',
|
|
63
|
+
value: 'pl-PL',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
label: 'Nederlands',
|
|
67
|
+
value: 'nl-NL',
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
label: 'Italiano',
|
|
71
|
+
value: 'it-IT',
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
label: 'Tiếng Việt',
|
|
75
|
+
value: 'vi-VN',
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
label: 'Български',
|
|
79
|
+
value: 'bg-BG',
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
label: 'فارسی',
|
|
83
|
+
value: 'fa-IR',
|
|
84
|
+
},
|
|
85
|
+
] as LocaleOptions;
|
|
86
|
+
|
|
87
|
+
export const normalizeLocale = (locale?: string): string => {
|
|
88
|
+
if (!locale) return DEFAULT_LANG;
|
|
89
|
+
|
|
90
|
+
if (locale.startsWith('ar')) return 'ar';
|
|
91
|
+
if (locale.startsWith('fa')) return 'fa-IR';
|
|
92
|
+
|
|
93
|
+
if (locale.startsWith('cn')) return 'zh-CN';
|
|
94
|
+
|
|
95
|
+
for (const l of locales) {
|
|
96
|
+
if (l.startsWith(locale)) {
|
|
97
|
+
return l;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return DEFAULT_LANG;
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
export const supportLocales: string[] = [...locales, 'en', 'zh'];
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"lang": {
|
|
3
|
+
"ar": "阿拉伯语",
|
|
4
|
+
"bg-BG": "保加利亚语",
|
|
5
|
+
"bn": "孟加拉语",
|
|
6
|
+
"cs-CZ": "捷克语",
|
|
7
|
+
"da-DK": "丹麦语",
|
|
8
|
+
"de-DE": "德语",
|
|
9
|
+
"el-GR": "希腊语",
|
|
10
|
+
"en": "英语",
|
|
11
|
+
"en-US": "英语",
|
|
12
|
+
"es-ES": "西班牙语",
|
|
13
|
+
"fa-IR": "波斯语",
|
|
14
|
+
"fi-FI": "芬兰语",
|
|
15
|
+
"fr-FR": "法语",
|
|
16
|
+
"hi-IN": "印地语",
|
|
17
|
+
"hu-HU": "匈牙利语",
|
|
18
|
+
"id-ID": "印尼语",
|
|
19
|
+
"it-IT": "意大利语",
|
|
20
|
+
"ja-JP": "日语",
|
|
21
|
+
"ko-KR": "韩语",
|
|
22
|
+
"nl-NL": "荷兰语",
|
|
23
|
+
"no-NO": "挪威语",
|
|
24
|
+
"pl-PL": "波兰语",
|
|
25
|
+
"pt-BR": "葡萄牙语",
|
|
26
|
+
"pt-PT": "葡萄牙语",
|
|
27
|
+
"ro-RO": "罗马尼亚语",
|
|
28
|
+
"ru-RU": "俄语",
|
|
29
|
+
"sk-SK": "斯洛伐克语",
|
|
30
|
+
"sr-RS": "塞尔维亚语",
|
|
31
|
+
"sv-SE": "瑞典语",
|
|
32
|
+
"th-TH": "泰语",
|
|
33
|
+
"tr-TR": "土耳其语",
|
|
34
|
+
"uk-UA": "乌克兰语",
|
|
35
|
+
"vi-VN": "越南语",
|
|
36
|
+
"zh": "简体中文",
|
|
37
|
+
"zh-CN": "简体中文",
|
|
38
|
+
"zh-TW": "繁体中文"
|
|
39
|
+
},
|
|
40
|
+
"tab": {
|
|
41
|
+
"model": "模型",
|
|
42
|
+
"generate": "生成",
|
|
43
|
+
"overview": "模型概览",
|
|
44
|
+
"segmentation": "分割",
|
|
45
|
+
"retopology": "重拓扑",
|
|
46
|
+
"texture": "纹理",
|
|
47
|
+
"rigging": "一键绑骨",
|
|
48
|
+
"stylization": "风格化"
|
|
49
|
+
},
|
|
50
|
+
"imageUpload": {
|
|
51
|
+
"actions": "点击 / 拖拽",
|
|
52
|
+
"desc": "支持 JPG 和 PNG 格式,最大尺寸为 20 MB"
|
|
53
|
+
},
|
|
54
|
+
"loading": "加载中...",
|
|
55
|
+
"processing": "解析中...",
|
|
56
|
+
"rigging": {
|
|
57
|
+
"run": "自动绑定",
|
|
58
|
+
"preRigging": "骨骼绑定中...",
|
|
59
|
+
"retargeting": "动画中...",
|
|
60
|
+
"stylizing": "风格化中..."
|
|
61
|
+
},
|
|
62
|
+
"tour": {
|
|
63
|
+
"one": {
|
|
64
|
+
"title": "欢迎来到Tripo Studio工作区!",
|
|
65
|
+
"desc": "用鼠标或触控板熟悉视图控制!"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"exportPopover": {
|
|
69
|
+
"fileName": "文件名",
|
|
70
|
+
"fileNamePlaceholder": "请输入文件名",
|
|
71
|
+
"format": "格式",
|
|
72
|
+
"export": "导出"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "生成3D模型",
|
|
3
|
+
"desc": "使用AI技术快速生成高质量的3D模型",
|
|
4
|
+
"textTo3D": "文生模型",
|
|
5
|
+
"imageTo3D": "图生模型",
|
|
6
|
+
"multiViewsTo3D": "多视图生模型",
|
|
7
|
+
"batch3DGen": "批量图生模型",
|
|
8
|
+
"stayTuned": "即将上线",
|
|
9
|
+
"style": {
|
|
10
|
+
"title": "风格",
|
|
11
|
+
"none": "无",
|
|
12
|
+
"cartoon": "卡通",
|
|
13
|
+
"christmas": "圣诞",
|
|
14
|
+
"barbie": "芭比",
|
|
15
|
+
"clay": "粘土",
|
|
16
|
+
"steam_punk": "蒸汽朋克",
|
|
17
|
+
"alien": "外星人",
|
|
18
|
+
"gold": "黄金",
|
|
19
|
+
"bronze": "青铜",
|
|
20
|
+
"wood": "木头",
|
|
21
|
+
"stone": "石头",
|
|
22
|
+
"metal": "金属",
|
|
23
|
+
"plastic": "塑料"
|
|
24
|
+
},
|
|
25
|
+
"hdTexture": {
|
|
26
|
+
"title": "高清纹理",
|
|
27
|
+
"desc": "高分辨率纹理,细节更丰富"
|
|
28
|
+
},
|
|
29
|
+
"modelVersion": {
|
|
30
|
+
"title": "模型",
|
|
31
|
+
"desc": "V2.5-20250123 前所未有的细节与真实感\nV2.0-20240919 行业内领先的几何体与 PBR"
|
|
32
|
+
},
|
|
33
|
+
"topology": {
|
|
34
|
+
"title": "拓扑",
|
|
35
|
+
"desc": "选择四边面将强制输出为 FBX 模型。",
|
|
36
|
+
"quad": "四边面",
|
|
37
|
+
"triangle": "三角面"
|
|
38
|
+
},
|
|
39
|
+
"polycount": {
|
|
40
|
+
"title": "面数限制",
|
|
41
|
+
"auto": "自动"
|
|
42
|
+
},
|
|
43
|
+
"textureAlignment": {
|
|
44
|
+
"title": "纹理对齐",
|
|
45
|
+
"desc": "图像对齐:与原始图像高度相似,可能存在3D细节上的差异\n结构对齐:保持精确的3D结构,可能与原始图像略有不同",
|
|
46
|
+
"originalImageDesc": "图像对齐",
|
|
47
|
+
"geometryDesc": "结构对齐"
|
|
48
|
+
},
|
|
49
|
+
"moreSettings": "高级设置",
|
|
50
|
+
"generate": "生成",
|
|
51
|
+
"front": "正视图",
|
|
52
|
+
"left": "左视图",
|
|
53
|
+
"right": "右视图",
|
|
54
|
+
"back": "后视图",
|
|
55
|
+
"multiViewToModel": {
|
|
56
|
+
"imagesTip": "请上传至少一张正视图以及一张侧视图或后视图。"
|
|
57
|
+
},
|
|
58
|
+
"setting": {
|
|
59
|
+
"autoSize": "尺寸缩放",
|
|
60
|
+
"modelSeed": "模型种子",
|
|
61
|
+
"textureSeed": "纹理种子",
|
|
62
|
+
"autoSizeDesc": "自动将模型缩放到真实尺寸,单位为米。",
|
|
63
|
+
"modelSeedDesc": "种子控制几何生成过程,使用相同种子时生成的模型相同",
|
|
64
|
+
"textureSeedDesc": "使用相同的种子将产生相同的纹理",
|
|
65
|
+
"pbrDesc": "通过模拟物理特性精准呈现物体外观"
|
|
66
|
+
},
|
|
67
|
+
"yes": "是",
|
|
68
|
+
"no": "否",
|
|
69
|
+
"on": "开",
|
|
70
|
+
"off": "关"
|
|
71
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "绑定与动画",
|
|
3
|
+
"desc": "即时自动绑定模型并生成可用动画",
|
|
4
|
+
"run": "自动绑定",
|
|
5
|
+
"actions": {
|
|
6
|
+
"stand": "站立",
|
|
7
|
+
"walk": "行走",
|
|
8
|
+
"run": "跑步",
|
|
9
|
+
"climb": "攀爬",
|
|
10
|
+
"jump": "跳跃",
|
|
11
|
+
"slash": "劈砍",
|
|
12
|
+
"shoot": "射击",
|
|
13
|
+
"hurt": "受击",
|
|
14
|
+
"fall": "坠落",
|
|
15
|
+
"turn": "转身",
|
|
16
|
+
"dive": "翻滚",
|
|
17
|
+
"idle": "待机"
|
|
18
|
+
},
|
|
19
|
+
"retry": "重试",
|
|
20
|
+
"preRiggingFailed": "当前模型不支持自动绑定。"
|
|
21
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { ColorScaleItem } from '../types';
|
|
2
|
+
|
|
3
|
+
const magenta: ColorScaleItem = {
|
|
4
|
+
dark: [
|
|
5
|
+
'#100002',
|
|
6
|
+
'#350011',
|
|
7
|
+
'#4b001e',
|
|
8
|
+
'#63002d',
|
|
9
|
+
'#79093f',
|
|
10
|
+
'#8e1752',
|
|
11
|
+
'#a32466',
|
|
12
|
+
'#b8317b',
|
|
13
|
+
'#ce3e91',
|
|
14
|
+
'#e34ba9',
|
|
15
|
+
'#f38bcb',
|
|
16
|
+
'#fec5e8',
|
|
17
|
+
'#ffffff',
|
|
18
|
+
],
|
|
19
|
+
darkA: [
|
|
20
|
+
'rgba(229, 0, 29, 0.07)',
|
|
21
|
+
'rgba(252, 0, 81, 0.21)',
|
|
22
|
+
'rgba(250, 0, 100, 0.3)',
|
|
23
|
+
'rgba(254, 0, 115, 0.39)',
|
|
24
|
+
'rgba(252, 19, 131, 0.48)',
|
|
25
|
+
'rgba(254, 41, 146, 0.56)',
|
|
26
|
+
'rgba(255, 56, 159, 0.64)',
|
|
27
|
+
'rgba(252, 67, 168, 0.73)',
|
|
28
|
+
'rgba(254, 77, 179, 0.81)',
|
|
29
|
+
'rgba(255, 84, 190, 0.89)',
|
|
30
|
+
'rgba(253, 145, 211, 0.96)',
|
|
31
|
+
'#fec5e8',
|
|
32
|
+
'#ffffff',
|
|
33
|
+
],
|
|
34
|
+
light: [
|
|
35
|
+
'#ffffff',
|
|
36
|
+
'#fff7f9',
|
|
37
|
+
'#ffeaf4',
|
|
38
|
+
'#ffdaee',
|
|
39
|
+
'#ffc7e7',
|
|
40
|
+
'#ffb2df',
|
|
41
|
+
'#ff99d6',
|
|
42
|
+
'#f980ca',
|
|
43
|
+
'#ef67ba',
|
|
44
|
+
'#e34ba9',
|
|
45
|
+
'#a32466',
|
|
46
|
+
'#63002d',
|
|
47
|
+
'#100002',
|
|
48
|
+
],
|
|
49
|
+
lightA: [
|
|
50
|
+
'rgba(255, 255, 255, 0.01)',
|
|
51
|
+
'rgba(255, 55, 105, 0.04)',
|
|
52
|
+
'rgba(255, 22, 133, 0.09)',
|
|
53
|
+
'rgba(255, 8, 142, 0.15)',
|
|
54
|
+
'rgba(255, 0, 146, 0.22)',
|
|
55
|
+
'rgba(255, 7, 152, 0.31)',
|
|
56
|
+
'rgba(255, 0, 153, 0.4)',
|
|
57
|
+
'rgba(243, 1, 149, 0.5)',
|
|
58
|
+
'rgba(228, 2, 140, 0.6)',
|
|
59
|
+
'rgba(216, 1, 134, 0.71)',
|
|
60
|
+
'rgba(148, 0, 77, 0.86)',
|
|
61
|
+
'#63002d',
|
|
62
|
+
'#100002',
|
|
63
|
+
],
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export default magenta;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { ColorScaleItem } from '../types';
|
|
2
|
+
|
|
3
|
+
const mauve: ColorScaleItem = {
|
|
4
|
+
dark: [
|
|
5
|
+
'#000000',
|
|
6
|
+
'#1c1b1e',
|
|
7
|
+
'#252528',
|
|
8
|
+
'#2f2f32',
|
|
9
|
+
'#3a393d',
|
|
10
|
+
'#454448',
|
|
11
|
+
'#504f53',
|
|
12
|
+
'#5b5a5f',
|
|
13
|
+
'#67666a',
|
|
14
|
+
'#737177',
|
|
15
|
+
'#7f7d83',
|
|
16
|
+
'#bbb9bd',
|
|
17
|
+
'#ffffff',
|
|
18
|
+
],
|
|
19
|
+
darkA: [
|
|
20
|
+
'rgba(255, 255, 255, 0.02)',
|
|
21
|
+
'rgba(233, 225, 250, 0.12)',
|
|
22
|
+
'rgba(231, 231, 250, 0.16)',
|
|
23
|
+
'rgba(235, 235, 250, 0.2)',
|
|
24
|
+
'rgba(242, 237, 254, 0.24)',
|
|
25
|
+
'rgba(238, 234, 248, 0.29)',
|
|
26
|
+
'rgba(242, 239, 252, 0.33)',
|
|
27
|
+
'rgba(239, 237, 250, 0.38)',
|
|
28
|
+
'rgba(245, 243, 252, 0.42)',
|
|
29
|
+
'rgba(245, 240, 253, 0.47)',
|
|
30
|
+
'rgba(244, 240, 252, 0.52)',
|
|
31
|
+
'rgba(253, 250, 255, 0.74)',
|
|
32
|
+
'#ffffff',
|
|
33
|
+
],
|
|
34
|
+
light: [
|
|
35
|
+
'#ffffff',
|
|
36
|
+
'#fcf8fb',
|
|
37
|
+
'#edeaed',
|
|
38
|
+
'#dfdcdf',
|
|
39
|
+
'#d1ced2',
|
|
40
|
+
'#c2c0c4',
|
|
41
|
+
'#b4b2b7',
|
|
42
|
+
'#a7a4a9',
|
|
43
|
+
'#99979c',
|
|
44
|
+
'#8c8a90',
|
|
45
|
+
'#7f7d83',
|
|
46
|
+
'#4a494d',
|
|
47
|
+
'#111',
|
|
48
|
+
],
|
|
49
|
+
lightA: [
|
|
50
|
+
'rgba(0, 0, 0, 0.015)',
|
|
51
|
+
'rgba(155, 22, 122, 0.03)',
|
|
52
|
+
'rgba(55, 22, 55, 0.09)',
|
|
53
|
+
'rgba(26, 5, 26, 0.14)',
|
|
54
|
+
'rgba(25, 10, 30, 0.2)',
|
|
55
|
+
'rgba(11, 3, 19, 0.25)',
|
|
56
|
+
'rgba(13, 7, 23, 0.31)',
|
|
57
|
+
'rgba(11, 2, 16, 0.36)',
|
|
58
|
+
'rgba(6, 1, 14, 0.41)',
|
|
59
|
+
'rgba(5, 1, 14, 0.46)',
|
|
60
|
+
'rgba(4, 0, 12, 0.51)',
|
|
61
|
+
'rgba(4, 2, 8, 0.72)',
|
|
62
|
+
'rgba(3, 2, 5, 0.9)',
|
|
63
|
+
],
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export default mauve;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { optionalDevtools } from 'zustand-utils';
|
|
2
|
+
import type { devtools as _devtools } from 'zustand/middleware';
|
|
3
|
+
|
|
4
|
+
import { isDev } from '@/utils/env';
|
|
5
|
+
|
|
6
|
+
export const createDevtools =
|
|
7
|
+
(name: string): typeof _devtools =>
|
|
8
|
+
initializer => {
|
|
9
|
+
let showDevtools = false;
|
|
10
|
+
|
|
11
|
+
// check url to show devtools
|
|
12
|
+
if (typeof window !== 'undefined') {
|
|
13
|
+
const url = new URL(window.location.href);
|
|
14
|
+
const debug = url.searchParams.get('debug');
|
|
15
|
+
if (debug?.includes(name)) {
|
|
16
|
+
showDevtools = true;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return optionalDevtools(showDevtools)(initializer, {
|
|
21
|
+
name: `LobeChat_${name}${isDev ? '_DEV' : ''}`,
|
|
22
|
+
});
|
|
23
|
+
};
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import type { PersistStorage, StorageValue } from 'zustand/middleware';
|
|
2
|
+
|
|
3
|
+
import { createIndexedDB } from './indexedDB';
|
|
4
|
+
import { createKeyMapper } from './keyMapper';
|
|
5
|
+
import { createLocalStorage } from './localStorage';
|
|
6
|
+
import type { HyperStorageOptions } from './type';
|
|
7
|
+
import { creatUrlStorage } from './urlStorage';
|
|
8
|
+
|
|
9
|
+
export const createHyperStorage = <T extends object>(
|
|
10
|
+
options: HyperStorageOptions,
|
|
11
|
+
): PersistStorage<T> => {
|
|
12
|
+
const optionsObj = typeof options === 'function' ? options() : options;
|
|
13
|
+
|
|
14
|
+
const getLocalStorageConfig = () => {
|
|
15
|
+
if (optionsObj.localStorage === false) {
|
|
16
|
+
return { dbName: '', skipLocalStorage: true, useIndexedDB: false };
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const useIndexedDB = optionsObj.localStorage?.mode === 'indexedDB';
|
|
20
|
+
const dbName = optionsObj.localStorage?.dbName || 'indexedDB';
|
|
21
|
+
|
|
22
|
+
return { dbName, skipLocalStorage: false, useIndexedDB };
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const hasUrl = !!optionsObj.url;
|
|
26
|
+
|
|
27
|
+
const { skipLocalStorage, useIndexedDB, dbName } = getLocalStorageConfig();
|
|
28
|
+
|
|
29
|
+
const { mapStateKeyToStorageKey, getStateKeyFromStorageKey } =
|
|
30
|
+
createKeyMapper(optionsObj);
|
|
31
|
+
|
|
32
|
+
const indexedDB = createIndexedDB(dbName);
|
|
33
|
+
const localStorage = createLocalStorage();
|
|
34
|
+
const urlStorage = creatUrlStorage(optionsObj.url?.mode);
|
|
35
|
+
return {
|
|
36
|
+
getItem: async (name): Promise<StorageValue<T>> => {
|
|
37
|
+
const state: any = {};
|
|
38
|
+
let version: number | undefined;
|
|
39
|
+
|
|
40
|
+
// ============== 处理 Local Storage ============== //
|
|
41
|
+
if (!skipLocalStorage) {
|
|
42
|
+
let localState: StorageValue<T> | undefined;
|
|
43
|
+
|
|
44
|
+
// 如果使用 indexedDB,优先从 indexedDB 中获取
|
|
45
|
+
if (useIndexedDB) {
|
|
46
|
+
localState = await indexedDB.getItem(name);
|
|
47
|
+
}
|
|
48
|
+
// 如果 indexedDB 中不存在,则再试试 localStorage
|
|
49
|
+
if (!localState) localState = localStorage.getItem(name);
|
|
50
|
+
|
|
51
|
+
if (localState) {
|
|
52
|
+
version = localState.version;
|
|
53
|
+
for (const [k, v] of Object.entries(localState.state)) {
|
|
54
|
+
const key = getStateKeyFromStorageKey(k, 'localStorage');
|
|
55
|
+
if (key) state[key] = v;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// ============== 处理 URL Storage ============== //
|
|
61
|
+
// 不从 URL 中获取 version,由于 url 状态是临时态 不作为版本控制的依据
|
|
62
|
+
if (hasUrl) {
|
|
63
|
+
const urlState = urlStorage.getItem();
|
|
64
|
+
|
|
65
|
+
if (urlState) {
|
|
66
|
+
for (const [k, v] of Object.entries(urlState.state)) {
|
|
67
|
+
const key = getStateKeyFromStorageKey(k, 'url');
|
|
68
|
+
// 当存在 UrlSelector 逻辑,且 key 有效时,才将状态加入终态 state
|
|
69
|
+
if (hasUrl && key) {
|
|
70
|
+
state[key] = v;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return { state, version };
|
|
77
|
+
},
|
|
78
|
+
removeItem: async key => {
|
|
79
|
+
// ============== 处理 Local Storage ============== //
|
|
80
|
+
if (!skipLocalStorage) {
|
|
81
|
+
if (useIndexedDB) {
|
|
82
|
+
await indexedDB.removeItem(key);
|
|
83
|
+
} else {
|
|
84
|
+
localStorage.removeItem(key);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// ============== 处理 URL Storage ============== //
|
|
89
|
+
if (hasUrl) {
|
|
90
|
+
const storageKey = getStateKeyFromStorageKey(key, 'url');
|
|
91
|
+
|
|
92
|
+
urlStorage.removeItem(storageKey);
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
|
|
96
|
+
setItem: async (name, newValue) => {
|
|
97
|
+
// ============== 处理 Local Storage ============== //
|
|
98
|
+
const localState: Record<string, any> = {};
|
|
99
|
+
for (const [k, v] of Object.entries(newValue.state)) {
|
|
100
|
+
const localKey = mapStateKeyToStorageKey(k, 'localStorage');
|
|
101
|
+
if (localKey) localState[localKey] = v;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
if (!skipLocalStorage) {
|
|
105
|
+
if (useIndexedDB) {
|
|
106
|
+
await indexedDB.setItem(name, localState, newValue.version);
|
|
107
|
+
} else {
|
|
108
|
+
localStorage.setItem(name, localState, newValue.version);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// ============== 处理 URL Storage ============== //
|
|
113
|
+
if (hasUrl) {
|
|
114
|
+
// 转换 key 为目标 key
|
|
115
|
+
const finalEntries = Object.entries(newValue.state)
|
|
116
|
+
.map(([k, v]) => {
|
|
117
|
+
const urlKey = mapStateKeyToStorageKey(k, 'url');
|
|
118
|
+
if (!urlKey) return undefined;
|
|
119
|
+
return [urlKey, v];
|
|
120
|
+
})
|
|
121
|
+
.filter(Boolean) as [string, any][];
|
|
122
|
+
|
|
123
|
+
urlStorage.setItem(name, Object.fromEntries(finalEntries));
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { createStore, delMany, getMany, setMany } from 'idb-keyval';
|
|
2
|
+
import type { StorageValue } from 'zustand/middleware';
|
|
3
|
+
|
|
4
|
+
export const createIndexedDB = <State>(dbName = 'indexedDB') => ({
|
|
5
|
+
getItem: async <T extends State>(
|
|
6
|
+
name: string,
|
|
7
|
+
): Promise<StorageValue<T> | undefined> => {
|
|
8
|
+
const [version, state] = await getMany(
|
|
9
|
+
['version', 'state'],
|
|
10
|
+
createStore(dbName, name),
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
if (!state) return undefined;
|
|
14
|
+
|
|
15
|
+
return { state, version };
|
|
16
|
+
},
|
|
17
|
+
removeItem: async (name: string) => {
|
|
18
|
+
await delMany(['version', 'state'], createStore(dbName, name));
|
|
19
|
+
},
|
|
20
|
+
setItem: async (name: string, state: any, version: number | undefined) => {
|
|
21
|
+
const store = createStore(dbName, name);
|
|
22
|
+
|
|
23
|
+
await setMany(
|
|
24
|
+
[
|
|
25
|
+
['version', version],
|
|
26
|
+
['state', state],
|
|
27
|
+
],
|
|
28
|
+
store,
|
|
29
|
+
);
|
|
30
|
+
},
|
|
31
|
+
});
|