From cd35bfecbef295c9960d5d3e1511e42818b0cb33 Mon Sep 17 00:00:00 2001 From: G Date: Fri, 5 Jan 2024 00:17:38 +0800 Subject: [PATCH 01/26] =?UTF-8?q?refactor:=20:recycle:=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=8E=98=E9=87=91=E6=96=87=E7=AB=A0=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=95=B0=E6=8D=AEmock?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/mock/data/table.ts | 532 ++++- apps/admin/src/api/index.ts | 12 +- apps/admin/src/gbeata/index.tsx | 28 + apps/admin/src/layout/index.style.ts | 45 +- apps/admin/src/layout/index.tsx | 1 + apps/admin/src/views/home/components/data.ts | 1711 +---------------- .../src/views/home/components/juejinTable.tsx | 17 +- 7 files changed, 569 insertions(+), 1777 deletions(-) create mode 100644 apps/admin/src/gbeata/index.tsx diff --git a/apps/admin/mock/data/table.ts b/apps/admin/mock/data/table.ts index 05ed4caa..cac6bf88 100644 --- a/apps/admin/mock/data/table.ts +++ b/apps/admin/mock/data/table.ts @@ -1,39 +1,39 @@ -import { MockMethod } from 'vite-plugin-mock' -import { Random } from 'mockjs' -import { resultPageSuccess } from '../_utils' +import { MockMethod } from 'vite-plugin-mock'; +import { Random } from 'mockjs'; +import { resultPageSuccess } from '../_utils'; const getPhone = () => { - const prefixList = [135, 136, 137, 138, 139, 155, 158, 183, 185, 189] - const randomNum = Math.floor(Math.random() * 10) - const phoneStr = prefixList[randomNum] + Math.random().toString().slice(-8) - return Number(phoneStr) -} + const prefixList = [135, 136, 137, 138, 139, 155, 158, 183, 185, 189]; + const randomNum = Math.floor(Math.random() * 10); + const phoneStr = prefixList[randomNum] + Math.random().toString().slice(-8); + return Number(phoneStr); +}; const getEducation = () => { - const educationList = ['小学', '初中', '高中', '专科', '本科', '研究生'] - const randomNum = Math.floor(Math.random() * educationList.length) - return educationList[randomNum] -} + const educationList = ['小学', '初中', '高中', '专科', '本科', '研究生']; + const randomNum = Math.floor(Math.random() * educationList.length); + return educationList[randomNum]; +}; const getMarried = () => { - return Math.floor(Math.random() * 4) -} + return Math.floor(Math.random() * 4); +}; const getHobby = () => { - const list: any[] = [] - const hobbyList = ['羽毛球', '乒乓球', '篮球', '排球', '网球', '游泳', '滑雪', '跳高', '滑翔', '潜水'] - const len = [3, 4][Number(Random.boolean())] + const list: any[] = []; + const hobbyList = ['羽毛球', '乒乓球', '篮球', '排球', '网球', '游泳', '滑雪', '跳高', '滑翔', '潜水']; + const len = [3, 4][Number(Random.boolean())]; for (let key = 0; key < len; key++) { - const randomNum = Math.floor(Math.random() * 10) - list.push(hobbyList[randomNum]) + const randomNum = Math.floor(Math.random() * 10); + list.push(hobbyList[randomNum]); } - return list -} + return list; +}; const genList = () => { - const list: any[] = [] + const list: any[] = []; for (let index = 0; index < 100; index++) { - const num = index < 10 ? '0' + index : index + const num = index < 10 ? '0' + index : index; list.push({ id: Number(`10${num}`) + 1, name: Random.cname(), @@ -42,11 +42,470 @@ const genList = () => { education: getEducation(), married: getMarried(), forbid: Random.boolean(), - hobby: getHobby() - }) + hobby: getHobby(), + }); } - return list -} + return list; +}; + +const articleListData = [ + { + article_id: '7303048156967026714', + user_id: '2682464101469480', + category_id: '6809637767543259144', + tag_ids: [6809640407484334000, 6809640419505209000, 6809640793381274000], + visible_level: 0, + link_url: '', + cover_image: + 'https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/84274f1176744240b47471a79d920a2f~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=1276&h=638&s=1250001&e=gif&f=46&b=d3d9dc', + is_gfw: 0, + title: '3D数字孪生 - 智能仓储管理平台-开源啦💐', + brief_content: + ' 截止目前,相信你在社区上很难找到开源且真正对前期的你学习有帮助的案例和文章,之所以做这类分享,纯粹的是用爱发电,新的领域学习,让我痛苦的度过了好多个夜晚,值得庆幸自己的思路和计划都能按照设想的方案实', + is_english: 0, + is_original: 1, + user_index: 0, + original_type: 0, + original_author: '', + content: '', + ctime: '1700465692', + mtime: '1700532628', + rtime: '-62135596800', + draft_id: '7302787905043693577', + view_count: 397, + collect_count: 5, + digg_count: 7, + comment_count: 0, + hot_index: 26, + is_hot: 0, + rank_index: 1.2e-7, + status: 1, + verify_status: 1, + audit_status: 2, + mark_content: '', + display_count: 0, + is_markdown: 1, + app_html_content: '', + version: 4, + web_html_content: null, + meta_info: null, + catalog: null, + homepage_top_time: -62135596800, + homepage_top_status: 0, + content_count: 1012, + read_time: '3分钟', + }, + { + article_id: '7299709109879324691', + user_id: '2682464101469480', + category_id: '6809637776263217160', + tag_ids: [6809640407484334000, 6809640402103042000, 6809640419505209000], + visible_level: 0, + link_url: '', + cover_image: + 'https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/941af6d2401c4600b2867fc314dbbeaf~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=1886&h=1186&s=505219&e=png&b=260947', + is_gfw: 0, + title: '仿mac系统交互设计的车载Pad操作系统', + brief_content: + '时隔100天,我又来水文了!3D数字孪生的系列好多小伙伴都感兴趣,项目在10月就已经完结了,后续我会将继续补充如何完整的做完一个3D数字孪生项目', + is_english: 0, + is_original: 1, + user_index: 11.437480020762536, + original_type: 0, + original_author: '', + content: '', + ctime: '1699636366', + mtime: '1699778058', + rtime: '1699778058', + draft_id: '7299506825875226661', + view_count: 2077, + collect_count: 10, + digg_count: 15, + comment_count: 2, + hot_index: 120, + is_hot: 0, + rank_index: 0.01209184, + status: 2, + verify_status: 1, + audit_status: 2, + mark_content: '', + display_count: 0, + is_markdown: 1, + app_html_content: '', + version: 2, + web_html_content: null, + meta_info: null, + catalog: null, + homepage_top_time: -62135596800, + homepage_top_status: 0, + content_count: 1841, + read_time: '6分钟', + }, + { + article_id: '7256964915133694008', + user_id: '2682464101469480', + category_id: '6809637767543259144', + tag_ids: [6809640407484334000, 6809640404791591000], + visible_level: 0, + link_url: '', + cover_image: + 'https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b5542f51a3274f8791ce1d8257dc4039~tplv-k3u1fbpfcp-watermark.image?', + is_gfw: 0, + title: '制造业领域,我是如何被逼到做顶级架构设计的', + brief_content: + '什么是顶级?还是澄清下吧; 这里的顶级并非说“最牛&”、最高档次,而指的是在开发一个复杂系统或软件时的最高层次设计的过程。 接下来,我要介绍的是,我是如何被逼到从单业务系统到系统与系统层面的顶级设计。', + is_english: 0, + is_original: 1, + user_index: 10.070339420019154, + original_type: 0, + original_author: '', + content: '', + ctime: '1689652100', + mtime: '1689668573', + rtime: '1689668573', + draft_id: '7255491496831631416', + view_count: 1404, + collect_count: 21, + digg_count: 19, + comment_count: 6, + hot_index: 95, + is_hot: 0, + rank_index: 0.00212567, + status: 2, + verify_status: 1, + audit_status: 2, + mark_content: '', + display_count: 0, + is_markdown: 1, + app_html_content: '', + version: 2, + web_html_content: null, + meta_info: null, + catalog: null, + homepage_top_time: -62135596800, + homepage_top_status: 0, + content_count: 2360, + read_time: '8分钟', + }, + { + article_id: '7250318500882432057', + user_id: '2682464101469480', + category_id: '6809637767543259144', + tag_ids: [6809640793381274000, 6809640525595935000], + visible_level: 0, + link_url: '', + cover_image: + 'https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/3727534baa6a478e9bbcb30d7472d40f~tplv-k3u1fbpfcp-watermark.image?', + is_gfw: 0, + title: '3D数字孪生 - Three.js 项目实战之相机控制器(五)', + brief_content: + '机器学习 oz@0xozram 9号在twitter上发了这样的一个短视频: 当然,这属于机器学习领域的内容,也就是大名鼎鼎的 google 在2015开源的 tensorflow,TensorFlo', + is_english: 0, + is_original: 1, + user_index: 9.463944942479607, + original_type: 0, + original_author: '', + content: '', + ctime: '1688108878', + mtime: '1688831884', + rtime: '1688831884', + draft_id: '7249765949742530597', + view_count: 2280, + collect_count: 24, + digg_count: 16, + comment_count: 5, + hot_index: 135, + is_hot: 0, + rank_index: 0.0027185, + status: 2, + verify_status: 1, + audit_status: 2, + mark_content: '', + display_count: 0, + is_markdown: 1, + app_html_content: '', + version: 1, + web_html_content: null, + meta_info: null, + catalog: null, + homepage_top_time: -62135596800, + homepage_top_status: 0, + content_count: 1808, + read_time: '6分钟', + }, + { + article_id: '7248545082130169893', + user_id: '2682464101469480', + category_id: '6809637767543259144', + tag_ids: [6809640793381274000, 6809640497393435000], + visible_level: 0, + link_url: '', + cover_image: + 'https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/05bba1c501124628a6bd11dc7f93a96a~tplv-k3u1fbpfcp-watermark.image?', + is_gfw: 0, + title: '3D数字孪生 - Three.js 项目实战之相机(四)', + brief_content: + '承上 在第一篇# 3D数字孪生 - Three.js 项目介绍与基础环境搭建(一)有介绍,在使用 three/filber 的Canvas组件时,默认情况下,会自动添加初始化一个透视相机(Perspe', + is_english: 0, + is_original: 1, + user_index: 9.01959424539129, + original_type: 0, + original_author: '', + content: '', + ctime: '1687694967', + mtime: '1687748103', + rtime: '1687748103', + draft_id: '7248466120364343333', + view_count: 1752, + collect_count: 32, + digg_count: 22, + comment_count: 1, + hot_index: 110, + is_hot: 0, + rank_index: 0.0020533, + status: 2, + verify_status: 1, + audit_status: 2, + mark_content: '', + display_count: 0, + is_markdown: 1, + app_html_content: '', + version: 1, + web_html_content: null, + meta_info: null, + catalog: null, + homepage_top_time: -62135596800, + homepage_top_status: 0, + content_count: 1576, + read_time: '5分钟', + }, + { + article_id: '7246657502842945597', + user_id: '2682464101469480', + category_id: '6809637767543259144', + tag_ids: [6809640793381274000], + visible_level: 0, + link_url: '', + cover_image: + 'https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1465296be96f41f58e9a2c9a35551736~tplv-k3u1fbpfcp-watermark.image?', + is_gfw: 0, + title: '3D数字孪生 - Three.js 项目实战之场景材质(三)', + brief_content: + '接上文# 3D数字孪生 - Three.js 场景光源(二)最后的问题: “为何已关闭场景中所有光源,仍然有些面是亮的呢?” 我们不妨近距离的观察一下,打开场景中的方向光 DirectionalLig', + is_english: 0, + is_original: 1, + user_index: 8.52173105363898, + original_type: 0, + original_author: '', + content: '', + ctime: '1687251948', + mtime: '1687335742', + rtime: '1687335742', + draft_id: '7246564869222580282', + view_count: 1869, + collect_count: 24, + digg_count: 13, + comment_count: 0, + hot_index: 106, + is_hot: 0, + rank_index: 0.00191366, + status: 2, + verify_status: 1, + audit_status: 2, + mark_content: '', + display_count: 0, + is_markdown: 1, + app_html_content: '', + version: 4, + web_html_content: null, + meta_info: null, + catalog: null, + homepage_top_time: -62135596800, + homepage_top_status: 0, + content_count: 1284, + read_time: '4分钟', + }, + { + article_id: '7246316652048269373', + user_id: '2682464101469480', + category_id: '6809637767543259144', + tag_ids: [6809640793381274000], + visible_level: 0, + link_url: '', + cover_image: + 'https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/638de6b1ba4b48bab0229b70095e718e~tplv-k3u1fbpfcp-watermark.image?', + is_gfw: 0, + title: '3D数字孪生 - Three.js 项目实战之场景光源(二)', + brief_content: + '前言 接下来的项目实战讲解过程中,有必要多花几个篇幅介绍一下项目中用到的两个库。 "@react-three/drei": "^9.70.3", "@react-three/fiber": "^8.1', + is_english: 0, + is_original: 1, + user_index: 9.158795645897236, + original_type: 0, + original_author: '', + content: '', + ctime: '1687179552', + mtime: '1687331693', + rtime: '1687239614', + draft_id: '7246311040267370556', + view_count: 1414, + collect_count: 19, + digg_count: 10, + comment_count: 2, + hot_index: 82, + is_hot: 0, + rank_index: 0.00151119, + status: 2, + verify_status: 1, + audit_status: 2, + mark_content: '', + display_count: 0, + is_markdown: 1, + app_html_content: '', + version: 2, + web_html_content: null, + meta_info: null, + catalog: null, + homepage_top_time: -62135596800, + homepage_top_status: 0, + content_count: 1143, + read_time: '4分钟', + }, + { + article_id: '7244894506305536057', + user_id: '2682464101469480', + category_id: '6809637767543259144', + tag_ids: [6809640793381274000, 6809640357354013000, 6809640407484334000], + visible_level: 0, + link_url: '', + cover_image: + 'https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6dac5e4b92d048409629828852b2d79d~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=1919&h=959&s=1380008&e=png&b=e0dede', + is_gfw: 0, + title: '3D数字孪生 - Three.js 项目介绍与基础环境搭建(一)', + brief_content: + '3D数字孪生,生成3D可视化仓库地图,实时监控仓库库位坐标、调度任务状态、车辆位置等信息。 根据调度信息,动态展现小车任务状态', + is_english: 0, + is_original: 1, + user_index: 8.905619350311529, + original_type: 0, + original_author: '', + content: '', + ctime: '1686886155', + mtime: '1702997867', + rtime: '1686908640', + draft_id: '7244785030567886907', + view_count: 9415, + collect_count: 186, + digg_count: 86, + comment_count: 33, + hot_index: 589, + is_hot: 0, + rank_index: 0.00966501, + status: 2, + verify_status: 1, + audit_status: 2, + mark_content: '', + display_count: 0, + is_markdown: 1, + app_html_content: '', + version: 10, + web_html_content: null, + meta_info: null, + catalog: null, + homepage_top_time: -62135596800, + homepage_top_status: 0, + content_count: 1859, + read_time: '6分钟', + }, + { + article_id: '7235027795393462333', + user_id: '2682464101469480', + category_id: '6809637767543259144', + tag_ids: [6809640497393435000], + visible_level: 0, + link_url: '', + cover_image: '', + is_gfw: 0, + title: 'konva绘制图像标定', + brief_content: '视频流标定工具,矩形与多边形绘制。仓库地图动态标注摄像机位置。konva.js konva-react实战', + is_english: 0, + is_original: 1, + user_index: 0, + original_type: 0, + original_author: '', + content: '', + ctime: '1684553355', + mtime: '1684571408', + rtime: '1684571408', + draft_id: '7234887157000454202', + view_count: 1418, + collect_count: 9, + digg_count: 2, + comment_count: 2, + hot_index: 74, + is_hot: 0, + rank_index: 0.00101618, + status: 2, + verify_status: 1, + audit_status: 2, + mark_content: '', + display_count: 0, + is_markdown: 1, + app_html_content: '', + version: 3, + web_html_content: null, + meta_info: null, + catalog: null, + homepage_top_time: -62135596800, + homepage_top_status: 0, + content_count: 1222, + read_time: '4分钟', + }, + { + article_id: '7235027795393462333', + user_id: '2682464101469480', + category_id: '6809637767543259144', + tag_ids: [6809640497393435000], + visible_level: 0, + link_url: '', + cover_image: '', + is_gfw: 0, + title: 'konva绘制图像标定', + brief_content: '视频流标定工具,矩形与多边形绘制。仓库地图动态标注摄像机位置。konva.js konva-react实战', + is_english: 0, + is_original: 1, + user_index: 0, + original_type: 0, + original_author: '', + content: '', + ctime: '1684553355', + mtime: '1684571408', + rtime: '1684571408', + draft_id: '7234887157000454202', + view_count: 1418, + collect_count: 9, + digg_count: 2, + comment_count: 2, + hot_index: 74, + is_hot: 0, + rank_index: 0.00101618, + status: 2, + verify_status: 1, + audit_status: 2, + mark_content: '', + display_count: 0, + is_markdown: 1, + app_html_content: '', + version: 3, + web_html_content: null, + meta_info: null, + catalog: null, + homepage_top_time: -62135596800, + homepage_top_status: 0, + content_count: 1222, + read_time: '4分钟', + }, +]; export default [ { @@ -54,8 +513,17 @@ export default [ timeout: 200, method: 'get', response: ({ query }) => { - const { current = 1, pageSize = 10 } = query - return resultPageSuccess(current, pageSize, genList()) - } - } -] as MockMethod[] \ No newline at end of file + const { current = 1, pageSize = 10 } = query; + return resultPageSuccess(current, pageSize, genList()); + }, + }, + { + url: '/api/article/queryList', + timeout: 200, + method: 'post', + response: ({ body }) => { + const { current = 1, pageSize = 10 } = body; + return resultPageSuccess(current, pageSize, articleListData); + }, + }, +] as MockMethod[]; diff --git a/apps/admin/src/api/index.ts b/apps/admin/src/api/index.ts index 446a9449..223a80e5 100644 --- a/apps/admin/src/api/index.ts +++ b/apps/admin/src/api/index.ts @@ -1,8 +1,8 @@ import { service } from '@/utils/axios'; interface LoginParams { - username: string - password: string + username: string; + password: string; } // User login api @@ -38,3 +38,11 @@ export function getTableList(params: any) { params, }); } + +// juejin api +export function getJueJinList() { + return service({ + url: 'article/queryList', + method: 'post', + }); +} diff --git a/apps/admin/src/gbeata/index.tsx b/apps/admin/src/gbeata/index.tsx new file mode 100644 index 00000000..2dfc67d1 --- /dev/null +++ b/apps/admin/src/gbeata/index.tsx @@ -0,0 +1,28 @@ +import { setDefaultDataFilter, setDefaultSearchFilter, setGlobalDialogField } from 'gbeata'; + +/** + * 表格请求后过滤 + * @param data object 接口请求完成的数据 + */ +setDefaultDataFilter((res: any) => ({ + // 表格列表的数据 + content: res.list, + // 数据总共 n 条 + totalCount: res.total, + ...res, +})); + +setGlobalDialogField(() => ({ + maskClosable: false, + destroyOnClose: true, +})); + +setDefaultSearchFilter((params: Record) => { + const searchData: Record = { + pageSize: params.pagination.pageSize, + pageIndex: params.pagination.current, + }; + const paramsSearch = params.search; + searchData.query = paramsSearch; + return searchData; +}); diff --git a/apps/admin/src/layout/index.style.ts b/apps/admin/src/layout/index.style.ts index 5b9c16a4..5e5ac568 100644 --- a/apps/admin/src/layout/index.style.ts +++ b/apps/admin/src/layout/index.style.ts @@ -1,31 +1,28 @@ import { createStyles } from 'antd-style'; -const useStyles = createStyles(({ token }) => { - console.log(token); - return { - layout_wrapper: { - display: 'flex', - width: '100%', - height: '100vh', +const useStyles = createStyles(({ token }) => ({ + layout_wrapper: { + display: 'flex', + width: '100%', + height: '100vh', + overflowX: 'hidden', + background: token.colorBgContainer, + '.ant-layout-content': { + height: 'calc(100vh - 48px)', + boxSizing: 'border-box', + flex: '1', + padding: token.paddingMD, overflowX: 'hidden', + }, + '.ant-layout-sider': { + height: 'calc(100vh)', + borderInlineEnd: '1px solid rgba(5, 5, 5, 0.06)', + marginInlineEnd: '-1px', + }, + '.ant-layout': { background: token.colorBgContainer, - '.ant-layout-content': { - height: 'calc(100vh - 48px)', - boxSizing: 'border-box', - flex: '1', - padding: '12px', - overflowX: 'hidden', - }, - '.ant-layout-sider': { - height: 'calc(100vh)', - borderInlineEnd: '1px solid rgba(5, 5, 5, 0.06)', - marginInlineEnd: '-1px', - }, - '.ant-layout': { - background: token.colorBgContainer, - }, }, - }; -}); + }, +})); export default useStyles; diff --git a/apps/admin/src/layout/index.tsx b/apps/admin/src/layout/index.tsx index ed302df8..9fdf3c1c 100644 --- a/apps/admin/src/layout/index.tsx +++ b/apps/admin/src/layout/index.tsx @@ -1,6 +1,7 @@ import { Layout } from 'antd'; import ErrorBoundary from 'antd/es/alert/ErrorBoundary'; import { Outlet } from 'react-router-dom'; +import '@/gbeata'; import { AppLogo } from '@/components/AppLogo'; diff --git a/apps/admin/src/views/home/components/data.ts b/apps/admin/src/views/home/components/data.ts index 9e2e35a8..a7a81f92 100644 --- a/apps/admin/src/views/home/components/data.ts +++ b/apps/admin/src/views/home/components/data.ts @@ -1,1710 +1 @@ -export const juejinData = [ - { - article_id: '7303048156967026714', - article_info: { - article_id: '7303048156967026714', - user_id: '2682464101469480', - category_id: '6809637767543259144', - tag_ids: [6809640407484334000, 6809640419505209000, 6809640793381274000], - visible_level: 0, - link_url: '', - cover_image: - 'https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/84274f1176744240b47471a79d920a2f~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=1276&h=638&s=1250001&e=gif&f=46&b=d3d9dc', - is_gfw: 0, - title: '3D数字孪生 - 智能仓储管理平台-开源啦💐', - brief_content: - ' 截止目前,相信你在社区上很难找到开源且真正对前期的你学习有帮助的案例和文章,之所以做这类分享,纯粹的是用爱发电,新的领域学习,让我痛苦的度过了好多个夜晚,值得庆幸自己的思路和计划都能按照设想的方案实', - is_english: 0, - is_original: 1, - user_index: 0, - original_type: 0, - original_author: '', - content: '', - ctime: '1700465692', - mtime: '1700532628', - rtime: '-62135596800', - draft_id: '7302787905043693577', - view_count: 397, - collect_count: 5, - digg_count: 7, - comment_count: 0, - hot_index: 26, - is_hot: 0, - rank_index: 1.2e-7, - status: 1, - verify_status: 1, - audit_status: 2, - mark_content: '', - display_count: 0, - is_markdown: 1, - app_html_content: '', - version: 4, - web_html_content: null, - meta_info: null, - catalog: null, - homepage_top_time: -62135596800, - homepage_top_status: 0, - content_count: 1012, - read_time: '3分钟', - }, - author_user_info: { - user_id: '2682464101469480', - user_name: 'G_大雨', - company: '', - job_title: '', - avatar_large: - 'https://p3-passport.byteacctimg.com/img/user-avatar/c2fb4874b00b9202d5d26eb6624101d3~300x300.image', - level: 3, - description: '', - followee_count: 10, - follower_count: 129, - post_article_count: 9, - digg_article_count: 48, - got_digg_count: 190, - got_view_count: 22026, - post_shortmsg_count: 5, - digg_shortmsg_count: 0, - isfollowed: false, - favorable_author: 0, - power: 971, - study_point: 0, - university: { - university_id: '0', - name: '', - logo: '', - }, - major: { - major_id: '0', - parent_id: '0', - name: '', - }, - student_status: 0, - select_event_count: 0, - select_online_course_count: 0, - identity: 0, - is_select_annual: true, - select_annual_rank: 0, - annual_list_type: 0, - extraMap: {}, - is_logout: 0, - annual_info: [], - account_amount: 0, - user_growth_info: { - user_id: 2682464101469480, - jpower: 971, - jscore: 929.5, - jpower_level: 3, - jscore_level: 5, - jscore_title: '先锋掘友', - author_achievement_list: [], - vip_level: 0, - vip_title: '', - jscore_next_level_score: 2000, - jscore_this_level_mini_score: 500, - vip_score: 0, - }, - is_vip: false, - become_author_days: 0, - collection_set_article_count: 0, - recommend_article_count_daily: 0, - article_collect_count_daily: 0, - user_priv_info: { - administrator: 0, - builder: 0, - favorable_author: 0, - book_author: 0, - forbidden_words: 0, - can_tag_cnt: 0, - auto_recommend: 0, - signed_author: 0, - popular_author: 0, - can_add_video: 0, - }, - }, - category: { - category_id: '6809637767543259144', - category_name: '前端', - category_url: 'frontend', - rank: 2, - back_ground: 'https://lc-mhke0kuv.cn-n1.lcfile.com/8c95587526f346c0.png', - icon: 'https://lc-mhke0kuv.cn-n1.lcfile.com/1c40f5eaba561e32.png', - ctime: 1457483942, - mtime: 1432503190, - show_type: 3, - item_type: 2, - promote_tag_cap: 4, - promote_priority: 2, - }, - tags: [ - { - id: 2546526, - tag_id: '6809640407484334093', - tag_name: '前端', - color: '#60ADFF', - icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/bac28828a49181c34110.png~tplv-t2oaga2asx-image.image', - back_ground: '', - show_navi: 1, - ctime: 1435971546, - mtime: 1704364179, - id_type: 9, - tag_alias: '', - post_article_count: 437520, - concern_user_count: 674239, - }, - { - id: 2546535, - tag_id: '6809640419505209358', - tag_name: '开源', - color: '#6EBD68', - icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/553ecacd498946a9a6d9.png~tplv-t2oaga2asx-image.image', - back_ground: '', - show_navi: 0, - ctime: 1435972427, - mtime: 1704363524, - id_type: 9, - tag_alias: '', - post_article_count: 11756, - concern_user_count: 249816, - }, - { - id: 2546806, - tag_id: '6809640793381273614', - tag_name: 'three.js', - color: '#000000', - icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/edf74d6b6b4f5121731c.png~tplv-t2oaga2asx-image.image', - back_ground: '', - show_navi: 0, - ctime: 1488865919, - mtime: 1704360273, - id_type: 9, - tag_alias: '', - post_article_count: 1781, - concern_user_count: 28094, - }, - ], - user_interact: { - id: 7303048156967027000, - omitempty: 2, - user_id: 0, - is_digg: false, - is_follow: false, - is_collect: false, - collect_set_count: 0, - }, - org: { - org_info: null, - is_followed: false, - }, - req_id: '2024010418301169F36BCDF5FB8E1AB87B', - status: { - push_status: 0, - }, - theme_list: [], - extra: { - extra: '', - }, - }, - { - article_id: '7299709109879324691', - article_info: { - article_id: '7299709109879324691', - user_id: '2682464101469480', - category_id: '6809637776263217160', - tag_ids: [6809640407484334000, 6809640402103042000, 6809640419505209000], - visible_level: 0, - link_url: '', - cover_image: - 'https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/941af6d2401c4600b2867fc314dbbeaf~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=1886&h=1186&s=505219&e=png&b=260947', - is_gfw: 0, - title: '仿mac系统交互设计的车载Pad操作系统', - brief_content: - '时隔100天,我又来水文了!3D数字孪生的系列好多小伙伴都感兴趣,项目在10月就已经完结了,后续我会将继续补充如何完整的做完一个3D数字孪生项目', - is_english: 0, - is_original: 1, - user_index: 11.437480020762536, - original_type: 0, - original_author: '', - content: '', - ctime: '1699636366', - mtime: '1699778058', - rtime: '1699778058', - draft_id: '7299506825875226661', - view_count: 2077, - collect_count: 10, - digg_count: 15, - comment_count: 2, - hot_index: 120, - is_hot: 0, - rank_index: 0.01209184, - status: 2, - verify_status: 1, - audit_status: 2, - mark_content: '', - display_count: 0, - is_markdown: 1, - app_html_content: '', - version: 2, - web_html_content: null, - meta_info: null, - catalog: null, - homepage_top_time: -62135596800, - homepage_top_status: 0, - content_count: 1841, - read_time: '6分钟', - }, - author_user_info: { - user_id: '2682464101469480', - user_name: 'G_大雨', - company: '', - job_title: '', - avatar_large: - 'https://p3-passport.byteacctimg.com/img/user-avatar/c2fb4874b00b9202d5d26eb6624101d3~300x300.image', - level: 3, - description: '', - followee_count: 10, - follower_count: 129, - post_article_count: 9, - digg_article_count: 48, - got_digg_count: 190, - got_view_count: 22026, - post_shortmsg_count: 5, - digg_shortmsg_count: 0, - isfollowed: false, - favorable_author: 0, - power: 971, - study_point: 0, - university: { - university_id: '0', - name: '', - logo: '', - }, - major: { - major_id: '0', - parent_id: '0', - name: '', - }, - student_status: 0, - select_event_count: 0, - select_online_course_count: 0, - identity: 0, - is_select_annual: true, - select_annual_rank: 0, - annual_list_type: 0, - extraMap: {}, - is_logout: 0, - annual_info: [], - account_amount: 0, - user_growth_info: { - user_id: 2682464101469480, - jpower: 971, - jscore: 929.5, - jpower_level: 3, - jscore_level: 5, - jscore_title: '先锋掘友', - author_achievement_list: [], - vip_level: 0, - vip_title: '', - jscore_next_level_score: 2000, - jscore_this_level_mini_score: 500, - vip_score: 0, - }, - is_vip: false, - become_author_days: 0, - collection_set_article_count: 0, - recommend_article_count_daily: 0, - article_collect_count_daily: 0, - user_priv_info: { - administrator: 0, - builder: 0, - favorable_author: 0, - book_author: 0, - forbidden_words: 0, - can_tag_cnt: 0, - auto_recommend: 0, - signed_author: 0, - popular_author: 0, - can_add_video: 0, - }, - }, - category: { - category_id: '6809637776263217160', - category_name: '代码人生', - category_url: 'career', - rank: 7, - back_ground: '', - icon: '', - ctime: 1553759544, - mtime: 1553759548, - show_type: 3, - item_type: 2, - promote_tag_cap: 4, - promote_priority: 7, - }, - tags: [ - { - id: 2546526, - tag_id: '6809640407484334093', - tag_name: '前端', - color: '#60ADFF', - icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/bac28828a49181c34110.png~tplv-t2oaga2asx-image.image', - back_ground: '', - show_navi: 1, - ctime: 1435971546, - mtime: 1704364179, - id_type: 9, - tag_alias: '', - post_article_count: 437520, - concern_user_count: 674239, - }, - { - id: 2546522, - tag_id: '6809640402103042061', - tag_name: '前端框架', - color: '#F2AB5B', - icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/f7a198f1e1aeb6d79878.png~tplv-t2oaga2asx-image.image', - back_ground: '', - show_navi: 0, - ctime: 1435964339, - mtime: 1704364179, - id_type: 9, - tag_alias: '', - post_article_count: 7744, - concern_user_count: 326495, - }, - { - id: 2546535, - tag_id: '6809640419505209358', - tag_name: '开源', - color: '#6EBD68', - icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/553ecacd498946a9a6d9.png~tplv-t2oaga2asx-image.image', - back_ground: '', - show_navi: 0, - ctime: 1435972427, - mtime: 1704363524, - id_type: 9, - tag_alias: '', - post_article_count: 11756, - concern_user_count: 249816, - }, - ], - user_interact: { - id: 7299709109879325000, - omitempty: 2, - user_id: 0, - is_digg: false, - is_follow: false, - is_collect: false, - collect_set_count: 0, - }, - org: { - org_info: null, - is_followed: false, - }, - req_id: '2024010418301169F36BCDF5FB8E1AB87B', - status: { - push_status: 0, - }, - theme_list: [], - extra: { - extra: '', - }, - }, - { - article_id: '7256964915133694008', - article_info: { - article_id: '7256964915133694008', - user_id: '2682464101469480', - category_id: '6809637767543259144', - tag_ids: [6809640407484334000, 6809640404791591000], - visible_level: 0, - link_url: '', - cover_image: - 'https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b5542f51a3274f8791ce1d8257dc4039~tplv-k3u1fbpfcp-watermark.image?', - is_gfw: 0, - title: '制造业领域,我是如何被逼到做顶级架构设计的', - brief_content: - '什么是顶级?还是澄清下吧; 这里的顶级并非说“最牛&”、最高档次,而指的是在开发一个复杂系统或软件时的最高层次设计的过程。 接下来,我要介绍的是,我是如何被逼到从单业务系统到系统与系统层面的顶级设计。', - is_english: 0, - is_original: 1, - user_index: 10.070339420019154, - original_type: 0, - original_author: '', - content: '', - ctime: '1689652100', - mtime: '1689668573', - rtime: '1689668573', - draft_id: '7255491496831631416', - view_count: 1404, - collect_count: 21, - digg_count: 19, - comment_count: 6, - hot_index: 95, - is_hot: 0, - rank_index: 0.00212567, - status: 2, - verify_status: 1, - audit_status: 2, - mark_content: '', - display_count: 0, - is_markdown: 1, - app_html_content: '', - version: 2, - web_html_content: null, - meta_info: null, - catalog: null, - homepage_top_time: -62135596800, - homepage_top_status: 0, - content_count: 2360, - read_time: '8分钟', - }, - author_user_info: { - user_id: '2682464101469480', - user_name: 'G_大雨', - company: '', - job_title: '', - avatar_large: - 'https://p3-passport.byteacctimg.com/img/user-avatar/c2fb4874b00b9202d5d26eb6624101d3~300x300.image', - level: 3, - description: '', - followee_count: 10, - follower_count: 129, - post_article_count: 9, - digg_article_count: 48, - got_digg_count: 190, - got_view_count: 22026, - post_shortmsg_count: 5, - digg_shortmsg_count: 0, - isfollowed: false, - favorable_author: 0, - power: 971, - study_point: 0, - university: { - university_id: '0', - name: '', - logo: '', - }, - major: { - major_id: '0', - parent_id: '0', - name: '', - }, - student_status: 0, - select_event_count: 0, - select_online_course_count: 0, - identity: 0, - is_select_annual: true, - select_annual_rank: 0, - annual_list_type: 0, - extraMap: {}, - is_logout: 0, - annual_info: [], - account_amount: 0, - user_growth_info: { - user_id: 2682464101469480, - jpower: 971, - jscore: 929.5, - jpower_level: 3, - jscore_level: 5, - jscore_title: '先锋掘友', - author_achievement_list: [], - vip_level: 0, - vip_title: '', - jscore_next_level_score: 2000, - jscore_this_level_mini_score: 500, - vip_score: 0, - }, - is_vip: false, - become_author_days: 0, - collection_set_article_count: 0, - recommend_article_count_daily: 0, - article_collect_count_daily: 0, - user_priv_info: { - administrator: 0, - builder: 0, - favorable_author: 0, - book_author: 0, - forbidden_words: 0, - can_tag_cnt: 0, - auto_recommend: 0, - signed_author: 0, - popular_author: 0, - can_add_video: 0, - }, - }, - category: { - category_id: '6809637767543259144', - category_name: '前端', - category_url: 'frontend', - rank: 2, - back_ground: 'https://lc-mhke0kuv.cn-n1.lcfile.com/8c95587526f346c0.png', - icon: 'https://lc-mhke0kuv.cn-n1.lcfile.com/1c40f5eaba561e32.png', - ctime: 1457483942, - mtime: 1432503190, - show_type: 3, - item_type: 2, - promote_tag_cap: 4, - promote_priority: 2, - }, - tags: [ - { - id: 2546526, - tag_id: '6809640407484334093', - tag_name: '前端', - color: '#60ADFF', - icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/bac28828a49181c34110.png~tplv-t2oaga2asx-image.image', - back_ground: '', - show_navi: 1, - ctime: 1435971546, - mtime: 1704364179, - id_type: 9, - tag_alias: '', - post_article_count: 437520, - concern_user_count: 674239, - }, - { - id: 2546524, - tag_id: '6809640404791590919', - tag_name: '面试', - color: '#545454', - icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/85dd1ce8008458ac220c.png~tplv-t2oaga2asx-image.image', - back_ground: '', - show_navi: 0, - ctime: 1435971430, - mtime: 1704364179, - id_type: 9, - tag_alias: '', - post_article_count: 46282, - concern_user_count: 465905, - }, - ], - user_interact: { - id: 7256964915133694000, - omitempty: 2, - user_id: 0, - is_digg: false, - is_follow: false, - is_collect: false, - collect_set_count: 0, - }, - org: { - org_info: null, - is_followed: false, - }, - req_id: '2024010418301169F36BCDF5FB8E1AB87B', - status: { - push_status: 0, - }, - theme_list: [], - extra: { - extra: '', - }, - }, - { - article_id: '7250318500882432057', - article_info: { - article_id: '7250318500882432057', - user_id: '2682464101469480', - category_id: '6809637767543259144', - tag_ids: [6809640793381274000, 6809640525595935000], - visible_level: 0, - link_url: '', - cover_image: - 'https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/3727534baa6a478e9bbcb30d7472d40f~tplv-k3u1fbpfcp-watermark.image?', - is_gfw: 0, - title: '3D数字孪生 - Three.js 项目实战之相机控制器(五)', - brief_content: - '机器学习 oz@0xozram 9号在twitter上发了这样的一个短视频: 当然,这属于机器学习领域的内容,也就是大名鼎鼎的 google 在2015开源的 tensorflow,TensorFlo', - is_english: 0, - is_original: 1, - user_index: 9.463944942479607, - original_type: 0, - original_author: '', - content: '', - ctime: '1688108878', - mtime: '1688831884', - rtime: '1688831884', - draft_id: '7249765949742530597', - view_count: 2280, - collect_count: 24, - digg_count: 16, - comment_count: 5, - hot_index: 135, - is_hot: 0, - rank_index: 0.0027185, - status: 2, - verify_status: 1, - audit_status: 2, - mark_content: '', - display_count: 0, - is_markdown: 1, - app_html_content: '', - version: 1, - web_html_content: null, - meta_info: null, - catalog: null, - homepage_top_time: -62135596800, - homepage_top_status: 0, - content_count: 1808, - read_time: '6分钟', - }, - author_user_info: { - user_id: '2682464101469480', - user_name: 'G_大雨', - company: '', - job_title: '', - avatar_large: - 'https://p3-passport.byteacctimg.com/img/user-avatar/c2fb4874b00b9202d5d26eb6624101d3~300x300.image', - level: 3, - description: '', - followee_count: 10, - follower_count: 129, - post_article_count: 9, - digg_article_count: 48, - got_digg_count: 190, - got_view_count: 22026, - post_shortmsg_count: 5, - digg_shortmsg_count: 0, - isfollowed: false, - favorable_author: 0, - power: 971, - study_point: 0, - university: { - university_id: '0', - name: '', - logo: '', - }, - major: { - major_id: '0', - parent_id: '0', - name: '', - }, - student_status: 0, - select_event_count: 0, - select_online_course_count: 0, - identity: 0, - is_select_annual: true, - select_annual_rank: 0, - annual_list_type: 0, - extraMap: {}, - is_logout: 0, - annual_info: [], - account_amount: 0, - user_growth_info: { - user_id: 2682464101469480, - jpower: 971, - jscore: 929.5, - jpower_level: 3, - jscore_level: 5, - jscore_title: '先锋掘友', - author_achievement_list: [], - vip_level: 0, - vip_title: '', - jscore_next_level_score: 2000, - jscore_this_level_mini_score: 500, - vip_score: 0, - }, - is_vip: false, - become_author_days: 0, - collection_set_article_count: 0, - recommend_article_count_daily: 0, - article_collect_count_daily: 0, - user_priv_info: { - administrator: 0, - builder: 0, - favorable_author: 0, - book_author: 0, - forbidden_words: 0, - can_tag_cnt: 0, - auto_recommend: 0, - signed_author: 0, - popular_author: 0, - can_add_video: 0, - }, - }, - category: { - category_id: '6809637767543259144', - category_name: '前端', - category_url: 'frontend', - rank: 2, - back_ground: 'https://lc-mhke0kuv.cn-n1.lcfile.com/8c95587526f346c0.png', - icon: 'https://lc-mhke0kuv.cn-n1.lcfile.com/1c40f5eaba561e32.png', - ctime: 1457483942, - mtime: 1432503190, - show_type: 3, - item_type: 2, - promote_tag_cap: 4, - promote_priority: 2, - }, - tags: [ - { - id: 2546806, - tag_id: '6809640793381273614', - tag_name: 'three.js', - color: '#000000', - icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/edf74d6b6b4f5121731c.png~tplv-t2oaga2asx-image.image', - back_ground: '', - show_navi: 0, - ctime: 1488865919, - mtime: 1704360273, - id_type: 9, - tag_alias: '', - post_article_count: 1781, - concern_user_count: 28094, - }, - { - id: 2546612, - tag_id: '6809640525595934734', - tag_name: '机器学习', - color: '#616161', - icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/a066ea8ec92485ff84e8.png~tplv-t2oaga2asx-image.image', - back_ground: '', - show_navi: 0, - ctime: 1440889206, - mtime: 1704362750, - id_type: 9, - tag_alias: '', - post_article_count: 10146, - concern_user_count: 166781, - }, - ], - user_interact: { - id: 7250318500882432000, - omitempty: 2, - user_id: 0, - is_digg: false, - is_follow: false, - is_collect: false, - collect_set_count: 0, - }, - org: { - org_info: null, - is_followed: false, - }, - req_id: '2024010418301169F36BCDF5FB8E1AB87B', - status: { - push_status: 0, - }, - theme_list: [], - extra: { - extra: '', - }, - }, - { - article_id: '7248545082130169893', - article_info: { - article_id: '7248545082130169893', - user_id: '2682464101469480', - category_id: '6809637767543259144', - tag_ids: [6809640793381274000, 6809640497393435000], - visible_level: 0, - link_url: '', - cover_image: - 'https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/05bba1c501124628a6bd11dc7f93a96a~tplv-k3u1fbpfcp-watermark.image?', - is_gfw: 0, - title: '3D数字孪生 - Three.js 项目实战之相机(四)', - brief_content: - '承上 在第一篇# 3D数字孪生 - Three.js 项目介绍与基础环境搭建(一)有介绍,在使用 three/filber 的Canvas组件时,默认情况下,会自动添加初始化一个透视相机(Perspe', - is_english: 0, - is_original: 1, - user_index: 9.01959424539129, - original_type: 0, - original_author: '', - content: '', - ctime: '1687694967', - mtime: '1687748103', - rtime: '1687748103', - draft_id: '7248466120364343333', - view_count: 1752, - collect_count: 32, - digg_count: 22, - comment_count: 1, - hot_index: 110, - is_hot: 0, - rank_index: 0.0020533, - status: 2, - verify_status: 1, - audit_status: 2, - mark_content: '', - display_count: 0, - is_markdown: 1, - app_html_content: '', - version: 1, - web_html_content: null, - meta_info: null, - catalog: null, - homepage_top_time: -62135596800, - homepage_top_status: 0, - content_count: 1576, - read_time: '5分钟', - }, - author_user_info: { - user_id: '2682464101469480', - user_name: 'G_大雨', - company: '', - job_title: '', - avatar_large: - 'https://p3-passport.byteacctimg.com/img/user-avatar/c2fb4874b00b9202d5d26eb6624101d3~300x300.image', - level: 3, - description: '', - followee_count: 10, - follower_count: 129, - post_article_count: 9, - digg_article_count: 48, - got_digg_count: 190, - got_view_count: 22026, - post_shortmsg_count: 5, - digg_shortmsg_count: 0, - isfollowed: false, - favorable_author: 0, - power: 971, - study_point: 0, - university: { - university_id: '0', - name: '', - logo: '', - }, - major: { - major_id: '0', - parent_id: '0', - name: '', - }, - student_status: 0, - select_event_count: 0, - select_online_course_count: 0, - identity: 0, - is_select_annual: true, - select_annual_rank: 0, - annual_list_type: 0, - extraMap: {}, - is_logout: 0, - annual_info: [], - account_amount: 0, - user_growth_info: { - user_id: 2682464101469480, - jpower: 971, - jscore: 929.5, - jpower_level: 3, - jscore_level: 5, - jscore_title: '先锋掘友', - author_achievement_list: [], - vip_level: 0, - vip_title: '', - jscore_next_level_score: 2000, - jscore_this_level_mini_score: 500, - vip_score: 0, - }, - is_vip: false, - become_author_days: 0, - collection_set_article_count: 0, - recommend_article_count_daily: 0, - article_collect_count_daily: 0, - user_priv_info: { - administrator: 0, - builder: 0, - favorable_author: 0, - book_author: 0, - forbidden_words: 0, - can_tag_cnt: 0, - auto_recommend: 0, - signed_author: 0, - popular_author: 0, - can_add_video: 0, - }, - }, - category: { - category_id: '6809637767543259144', - category_name: '前端', - category_url: 'frontend', - rank: 2, - back_ground: 'https://lc-mhke0kuv.cn-n1.lcfile.com/8c95587526f346c0.png', - icon: 'https://lc-mhke0kuv.cn-n1.lcfile.com/1c40f5eaba561e32.png', - ctime: 1457483942, - mtime: 1432503190, - show_type: 3, - item_type: 2, - promote_tag_cap: 4, - promote_priority: 2, - }, - tags: [ - { - id: 2546806, - tag_id: '6809640793381273614', - tag_name: 'three.js', - color: '#000000', - icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/edf74d6b6b4f5121731c.png~tplv-t2oaga2asx-image.image', - back_ground: '', - show_navi: 0, - ctime: 1488865919, - mtime: 1704360273, - id_type: 9, - tag_alias: '', - post_article_count: 1781, - concern_user_count: 28094, - }, - { - id: 2546591, - tag_id: '6809640497393434632', - tag_name: 'Canvas', - color: '#F51A00', - icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/d21230e1c079d7706713.png~tplv-t2oaga2asx-image.image', - back_ground: '', - show_navi: 0, - ctime: 1439500018, - mtime: 1704364179, - id_type: 9, - tag_alias: '', - post_article_count: 3106, - concern_user_count: 84113, - }, - ], - user_interact: { - id: 7248545082130170000, - omitempty: 2, - user_id: 0, - is_digg: false, - is_follow: false, - is_collect: false, - collect_set_count: 0, - }, - org: { - org_info: null, - is_followed: false, - }, - req_id: '2024010418301169F36BCDF5FB8E1AB87B', - status: { - push_status: 0, - }, - theme_list: [], - extra: { - extra: '', - }, - }, - { - article_id: '7246657502842945597', - article_info: { - article_id: '7246657502842945597', - user_id: '2682464101469480', - category_id: '6809637767543259144', - tag_ids: [6809640793381274000], - visible_level: 0, - link_url: '', - cover_image: - 'https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1465296be96f41f58e9a2c9a35551736~tplv-k3u1fbpfcp-watermark.image?', - is_gfw: 0, - title: '3D数字孪生 - Three.js 项目实战之场景材质(三)', - brief_content: - '接上文# 3D数字孪生 - Three.js 场景光源(二)最后的问题: “为何已关闭场景中所有光源,仍然有些面是亮的呢?” 我们不妨近距离的观察一下,打开场景中的方向光 DirectionalLig', - is_english: 0, - is_original: 1, - user_index: 8.52173105363898, - original_type: 0, - original_author: '', - content: '', - ctime: '1687251948', - mtime: '1687335742', - rtime: '1687335742', - draft_id: '7246564869222580282', - view_count: 1869, - collect_count: 24, - digg_count: 13, - comment_count: 0, - hot_index: 106, - is_hot: 0, - rank_index: 0.00191366, - status: 2, - verify_status: 1, - audit_status: 2, - mark_content: '', - display_count: 0, - is_markdown: 1, - app_html_content: '', - version: 4, - web_html_content: null, - meta_info: null, - catalog: null, - homepage_top_time: -62135596800, - homepage_top_status: 0, - content_count: 1284, - read_time: '4分钟', - }, - author_user_info: { - user_id: '2682464101469480', - user_name: 'G_大雨', - company: '', - job_title: '', - avatar_large: - 'https://p3-passport.byteacctimg.com/img/user-avatar/c2fb4874b00b9202d5d26eb6624101d3~300x300.image', - level: 3, - description: '', - followee_count: 10, - follower_count: 129, - post_article_count: 9, - digg_article_count: 48, - got_digg_count: 190, - got_view_count: 22026, - post_shortmsg_count: 5, - digg_shortmsg_count: 0, - isfollowed: false, - favorable_author: 0, - power: 971, - study_point: 0, - university: { - university_id: '0', - name: '', - logo: '', - }, - major: { - major_id: '0', - parent_id: '0', - name: '', - }, - student_status: 0, - select_event_count: 0, - select_online_course_count: 0, - identity: 0, - is_select_annual: true, - select_annual_rank: 0, - annual_list_type: 0, - extraMap: {}, - is_logout: 0, - annual_info: [], - account_amount: 0, - user_growth_info: { - user_id: 2682464101469480, - jpower: 971, - jscore: 929.5, - jpower_level: 3, - jscore_level: 5, - jscore_title: '先锋掘友', - author_achievement_list: [], - vip_level: 0, - vip_title: '', - jscore_next_level_score: 2000, - jscore_this_level_mini_score: 500, - vip_score: 0, - }, - is_vip: false, - become_author_days: 0, - collection_set_article_count: 0, - recommend_article_count_daily: 0, - article_collect_count_daily: 0, - user_priv_info: { - administrator: 0, - builder: 0, - favorable_author: 0, - book_author: 0, - forbidden_words: 0, - can_tag_cnt: 0, - auto_recommend: 0, - signed_author: 0, - popular_author: 0, - can_add_video: 0, - }, - }, - category: { - category_id: '6809637767543259144', - category_name: '前端', - category_url: 'frontend', - rank: 2, - back_ground: 'https://lc-mhke0kuv.cn-n1.lcfile.com/8c95587526f346c0.png', - icon: 'https://lc-mhke0kuv.cn-n1.lcfile.com/1c40f5eaba561e32.png', - ctime: 1457483942, - mtime: 1432503190, - show_type: 3, - item_type: 2, - promote_tag_cap: 4, - promote_priority: 2, - }, - tags: [ - { - id: 2546806, - tag_id: '6809640793381273614', - tag_name: 'three.js', - color: '#000000', - icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/edf74d6b6b4f5121731c.png~tplv-t2oaga2asx-image.image', - back_ground: '', - show_navi: 0, - ctime: 1488865919, - mtime: 1704360273, - id_type: 9, - tag_alias: '', - post_article_count: 1781, - concern_user_count: 28094, - }, - ], - user_interact: { - id: 7246657502842946000, - omitempty: 2, - user_id: 0, - is_digg: false, - is_follow: false, - is_collect: false, - collect_set_count: 0, - }, - org: { - org_info: null, - is_followed: false, - }, - req_id: '2024010418301169F36BCDF5FB8E1AB87B', - status: { - push_status: 0, - }, - theme_list: [], - extra: { - extra: '', - }, - }, - { - article_id: '7246316652048269373', - article_info: { - article_id: '7246316652048269373', - user_id: '2682464101469480', - category_id: '6809637767543259144', - tag_ids: [6809640793381274000], - visible_level: 0, - link_url: '', - cover_image: - 'https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/638de6b1ba4b48bab0229b70095e718e~tplv-k3u1fbpfcp-watermark.image?', - is_gfw: 0, - title: '3D数字孪生 - Three.js 项目实战之场景光源(二)', - brief_content: - '前言 接下来的项目实战讲解过程中,有必要多花几个篇幅介绍一下项目中用到的两个库。 "@react-three/drei": "^9.70.3", "@react-three/fiber": "^8.1', - is_english: 0, - is_original: 1, - user_index: 9.158795645897236, - original_type: 0, - original_author: '', - content: '', - ctime: '1687179552', - mtime: '1687331693', - rtime: '1687239614', - draft_id: '7246311040267370556', - view_count: 1414, - collect_count: 19, - digg_count: 10, - comment_count: 2, - hot_index: 82, - is_hot: 0, - rank_index: 0.00151119, - status: 2, - verify_status: 1, - audit_status: 2, - mark_content: '', - display_count: 0, - is_markdown: 1, - app_html_content: '', - version: 2, - web_html_content: null, - meta_info: null, - catalog: null, - homepage_top_time: -62135596800, - homepage_top_status: 0, - content_count: 1143, - read_time: '4分钟', - }, - author_user_info: { - user_id: '2682464101469480', - user_name: 'G_大雨', - company: '', - job_title: '', - avatar_large: - 'https://p3-passport.byteacctimg.com/img/user-avatar/c2fb4874b00b9202d5d26eb6624101d3~300x300.image', - level: 3, - description: '', - followee_count: 10, - follower_count: 129, - post_article_count: 9, - digg_article_count: 48, - got_digg_count: 190, - got_view_count: 22026, - post_shortmsg_count: 5, - digg_shortmsg_count: 0, - isfollowed: false, - favorable_author: 0, - power: 971, - study_point: 0, - university: { - university_id: '0', - name: '', - logo: '', - }, - major: { - major_id: '0', - parent_id: '0', - name: '', - }, - student_status: 0, - select_event_count: 0, - select_online_course_count: 0, - identity: 0, - is_select_annual: true, - select_annual_rank: 0, - annual_list_type: 0, - extraMap: {}, - is_logout: 0, - annual_info: [], - account_amount: 0, - user_growth_info: { - user_id: 2682464101469480, - jpower: 971, - jscore: 929.5, - jpower_level: 3, - jscore_level: 5, - jscore_title: '先锋掘友', - author_achievement_list: [], - vip_level: 0, - vip_title: '', - jscore_next_level_score: 2000, - jscore_this_level_mini_score: 500, - vip_score: 0, - }, - is_vip: false, - become_author_days: 0, - collection_set_article_count: 0, - recommend_article_count_daily: 0, - article_collect_count_daily: 0, - user_priv_info: { - administrator: 0, - builder: 0, - favorable_author: 0, - book_author: 0, - forbidden_words: 0, - can_tag_cnt: 0, - auto_recommend: 0, - signed_author: 0, - popular_author: 0, - can_add_video: 0, - }, - }, - category: { - category_id: '6809637767543259144', - category_name: '前端', - category_url: 'frontend', - rank: 2, - back_ground: 'https://lc-mhke0kuv.cn-n1.lcfile.com/8c95587526f346c0.png', - icon: 'https://lc-mhke0kuv.cn-n1.lcfile.com/1c40f5eaba561e32.png', - ctime: 1457483942, - mtime: 1432503190, - show_type: 3, - item_type: 2, - promote_tag_cap: 4, - promote_priority: 2, - }, - tags: [ - { - id: 2546806, - tag_id: '6809640793381273614', - tag_name: 'three.js', - color: '#000000', - icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/edf74d6b6b4f5121731c.png~tplv-t2oaga2asx-image.image', - back_ground: '', - show_navi: 0, - ctime: 1488865919, - mtime: 1704360273, - id_type: 9, - tag_alias: '', - post_article_count: 1781, - concern_user_count: 28094, - }, - ], - user_interact: { - id: 7246316652048269000, - omitempty: 2, - user_id: 0, - is_digg: false, - is_follow: false, - is_collect: false, - collect_set_count: 0, - }, - org: { - org_info: null, - is_followed: false, - }, - req_id: '2024010418301169F36BCDF5FB8E1AB87B', - status: { - push_status: 0, - }, - theme_list: [], - extra: { - extra: '', - }, - }, - { - article_id: '7244894506305536057', - article_info: { - article_id: '7244894506305536057', - user_id: '2682464101469480', - category_id: '6809637767543259144', - tag_ids: [6809640793381274000, 6809640357354013000, 6809640407484334000], - visible_level: 0, - link_url: '', - cover_image: - 'https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6dac5e4b92d048409629828852b2d79d~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=1919&h=959&s=1380008&e=png&b=e0dede', - is_gfw: 0, - title: '3D数字孪生 - Three.js 项目介绍与基础环境搭建(一)', - brief_content: - '3D数字孪生,生成3D可视化仓库地图,实时监控仓库库位坐标、调度任务状态、车辆位置等信息。 根据调度信息,动态展现小车任务状态', - is_english: 0, - is_original: 1, - user_index: 8.905619350311529, - original_type: 0, - original_author: '', - content: '', - ctime: '1686886155', - mtime: '1702997867', - rtime: '1686908640', - draft_id: '7244785030567886907', - view_count: 9415, - collect_count: 186, - digg_count: 86, - comment_count: 33, - hot_index: 589, - is_hot: 0, - rank_index: 0.00966501, - status: 2, - verify_status: 1, - audit_status: 2, - mark_content: '', - display_count: 0, - is_markdown: 1, - app_html_content: '', - version: 10, - web_html_content: null, - meta_info: null, - catalog: null, - homepage_top_time: -62135596800, - homepage_top_status: 0, - content_count: 1859, - read_time: '6分钟', - }, - author_user_info: { - user_id: '2682464101469480', - user_name: 'G_大雨', - company: '', - job_title: '', - avatar_large: - 'https://p3-passport.byteacctimg.com/img/user-avatar/c2fb4874b00b9202d5d26eb6624101d3~300x300.image', - level: 3, - description: '', - followee_count: 10, - follower_count: 129, - post_article_count: 9, - digg_article_count: 48, - got_digg_count: 190, - got_view_count: 22026, - post_shortmsg_count: 5, - digg_shortmsg_count: 0, - isfollowed: false, - favorable_author: 0, - power: 971, - study_point: 0, - university: { - university_id: '0', - name: '', - logo: '', - }, - major: { - major_id: '0', - parent_id: '0', - name: '', - }, - student_status: 0, - select_event_count: 0, - select_online_course_count: 0, - identity: 0, - is_select_annual: true, - select_annual_rank: 0, - annual_list_type: 0, - extraMap: {}, - is_logout: 0, - annual_info: [], - account_amount: 0, - user_growth_info: { - user_id: 2682464101469480, - jpower: 971, - jscore: 929.5, - jpower_level: 3, - jscore_level: 5, - jscore_title: '先锋掘友', - author_achievement_list: [], - vip_level: 0, - vip_title: '', - jscore_next_level_score: 2000, - jscore_this_level_mini_score: 500, - vip_score: 0, - }, - is_vip: false, - become_author_days: 0, - collection_set_article_count: 0, - recommend_article_count_daily: 0, - article_collect_count_daily: 0, - user_priv_info: { - administrator: 0, - builder: 0, - favorable_author: 0, - book_author: 0, - forbidden_words: 0, - can_tag_cnt: 0, - auto_recommend: 0, - signed_author: 0, - popular_author: 0, - can_add_video: 0, - }, - }, - category: { - category_id: '6809637767543259144', - category_name: '前端', - category_url: 'frontend', - rank: 2, - back_ground: 'https://lc-mhke0kuv.cn-n1.lcfile.com/8c95587526f346c0.png', - icon: 'https://lc-mhke0kuv.cn-n1.lcfile.com/1c40f5eaba561e32.png', - ctime: 1457483942, - mtime: 1432503190, - show_type: 3, - item_type: 2, - promote_tag_cap: 4, - promote_priority: 2, - }, - tags: [ - { - id: 2546806, - tag_id: '6809640793381273614', - tag_name: 'three.js', - color: '#000000', - icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/edf74d6b6b4f5121731c.png~tplv-t2oaga2asx-image.image', - back_ground: '', - show_navi: 0, - ctime: 1488865919, - mtime: 1704360273, - id_type: 9, - tag_alias: '', - post_article_count: 1781, - concern_user_count: 28094, - }, - { - id: 2546490, - tag_id: '6809640357354012685', - tag_name: 'React.js', - color: '#61DAFB', - icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/f655215074250f10f8d4.png~tplv-t2oaga2asx-image.image', - back_ground: '', - show_navi: 0, - ctime: 1432234367, - mtime: 1704364179, - id_type: 9, - tag_alias: '', - post_article_count: 30277, - concern_user_count: 292781, - }, - { - id: 2546526, - tag_id: '6809640407484334093', - tag_name: '前端', - color: '#60ADFF', - icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/bac28828a49181c34110.png~tplv-t2oaga2asx-image.image', - back_ground: '', - show_navi: 1, - ctime: 1435971546, - mtime: 1704364179, - id_type: 9, - tag_alias: '', - post_article_count: 437520, - concern_user_count: 674239, - }, - ], - user_interact: { - id: 7244894506305536000, - omitempty: 2, - user_id: 0, - is_digg: false, - is_follow: false, - is_collect: false, - collect_set_count: 0, - }, - org: { - org_info: null, - is_followed: false, - }, - req_id: '2024010418301169F36BCDF5FB8E1AB87B', - status: { - push_status: 0, - }, - theme_list: [], - extra: { - extra: '', - }, - }, - { - article_id: '7235027795393462333', - article_info: { - article_id: '7235027795393462333', - user_id: '2682464101469480', - category_id: '6809637767543259144', - tag_ids: [6809640497393435000], - visible_level: 0, - link_url: '', - cover_image: '', - is_gfw: 0, - title: 'konva绘制图像标定', - brief_content: '视频流标定工具,矩形与多边形绘制。仓库地图动态标注摄像机位置。konva.js konva-react实战', - is_english: 0, - is_original: 1, - user_index: 0, - original_type: 0, - original_author: '', - content: '', - ctime: '1684553355', - mtime: '1684571408', - rtime: '1684571408', - draft_id: '7234887157000454202', - view_count: 1418, - collect_count: 9, - digg_count: 2, - comment_count: 2, - hot_index: 74, - is_hot: 0, - rank_index: 0.00101618, - status: 2, - verify_status: 1, - audit_status: 2, - mark_content: '', - display_count: 0, - is_markdown: 1, - app_html_content: '', - version: 3, - web_html_content: null, - meta_info: null, - catalog: null, - homepage_top_time: -62135596800, - homepage_top_status: 0, - content_count: 1222, - read_time: '4分钟', - }, - author_user_info: { - user_id: '2682464101469480', - user_name: 'G_大雨', - company: '', - job_title: '', - avatar_large: - 'https://p3-passport.byteacctimg.com/img/user-avatar/c2fb4874b00b9202d5d26eb6624101d3~300x300.image', - level: 3, - description: '', - followee_count: 10, - follower_count: 129, - post_article_count: 9, - digg_article_count: 48, - got_digg_count: 190, - got_view_count: 22026, - post_shortmsg_count: 5, - digg_shortmsg_count: 0, - isfollowed: false, - favorable_author: 0, - power: 971, - study_point: 0, - university: { - university_id: '0', - name: '', - logo: '', - }, - major: { - major_id: '0', - parent_id: '0', - name: '', - }, - student_status: 0, - select_event_count: 0, - select_online_course_count: 0, - identity: 0, - is_select_annual: true, - select_annual_rank: 0, - annual_list_type: 0, - extraMap: {}, - is_logout: 0, - annual_info: [], - account_amount: 0, - user_growth_info: { - user_id: 2682464101469480, - jpower: 971, - jscore: 929.5, - jpower_level: 3, - jscore_level: 5, - jscore_title: '先锋掘友', - author_achievement_list: [], - vip_level: 0, - vip_title: '', - jscore_next_level_score: 2000, - jscore_this_level_mini_score: 500, - vip_score: 0, - }, - is_vip: false, - become_author_days: 0, - collection_set_article_count: 0, - recommend_article_count_daily: 0, - article_collect_count_daily: 0, - user_priv_info: { - administrator: 0, - builder: 0, - favorable_author: 0, - book_author: 0, - forbidden_words: 0, - can_tag_cnt: 0, - auto_recommend: 0, - signed_author: 0, - popular_author: 0, - can_add_video: 0, - }, - }, - category: { - category_id: '6809637767543259144', - category_name: '前端', - category_url: 'frontend', - rank: 2, - back_ground: 'https://lc-mhke0kuv.cn-n1.lcfile.com/8c95587526f346c0.png', - icon: 'https://lc-mhke0kuv.cn-n1.lcfile.com/1c40f5eaba561e32.png', - ctime: 1457483942, - mtime: 1432503190, - show_type: 3, - item_type: 2, - promote_tag_cap: 4, - promote_priority: 2, - }, - tags: [ - { - id: 2546591, - tag_id: '6809640497393434632', - tag_name: 'Canvas', - color: '#F51A00', - icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/d21230e1c079d7706713.png~tplv-t2oaga2asx-image.image', - back_ground: '', - show_navi: 0, - ctime: 1439500018, - mtime: 1704364179, - id_type: 9, - tag_alias: '', - post_article_count: 3106, - concern_user_count: 84113, - }, - ], - user_interact: { - id: 7235027795393462000, - omitempty: 2, - user_id: 0, - is_digg: false, - is_follow: false, - is_collect: false, - collect_set_count: 0, - }, - org: { - org_info: null, - is_followed: false, - }, - req_id: '2024010418301169F36BCDF5FB8E1AB87B', - status: { - push_status: 0, - }, - theme_list: [], - extra: { - extra: '', - }, - }, -]; +export const juejinData = []; diff --git a/apps/admin/src/views/home/components/juejinTable.tsx b/apps/admin/src/views/home/components/juejinTable.tsx index b27f6f9e..8e1b4832 100644 --- a/apps/admin/src/views/home/components/juejinTable.tsx +++ b/apps/admin/src/views/home/components/juejinTable.tsx @@ -1,8 +1,8 @@ import { Card } from 'antd'; import { GSearchTable } from 'gbeata'; -import React, { useState } from 'react'; +import React from 'react'; -import { juejinData } from './data'; +import { getJueJinList } from '@/api'; import type { GSearchTableField } from 'gbeata/lib/GSearchTable/g-search-table'; @@ -13,7 +13,7 @@ const fields: Array = [ search: true, render: (text, record) => { // eslint-disable-next-line @typescript-eslint/naming-convention - const { title, article_id } = record.article_info; + const { title, article_id } = record; return ( {title} @@ -26,7 +26,7 @@ const fields: Array = [ key: 'brief_content', render: (text, record) => { // eslint-disable-next-line @typescript-eslint/naming-convention - const { brief_content } = record.article_info; + const { brief_content } = record; return brief_content; }, }, @@ -37,7 +37,7 @@ const fields: Array = [ key: 'view_count', render: (text, record) => { // eslint-disable-next-line @typescript-eslint/naming-convention - const { view_count } = record.article_info; + const { view_count } = record; return view_count; }, }, @@ -48,7 +48,7 @@ const fields: Array = [ sort: true, render: (text, record) => { // eslint-disable-next-line @typescript-eslint/naming-convention - const { digg_count } = record.article_info; + const { digg_count } = record; return digg_count; }, }, @@ -58,17 +58,16 @@ const fields: Array = [ width: '90px', render: (text, record) => { // eslint-disable-next-line @typescript-eslint/naming-convention - const { collect_count } = record.article_info; + const { collect_count } = record; return collect_count; }, }, ]; export default function JuejinTable() { - const [data] = useState(juejinData); return ( - + ); } From 93b4a7fce87d1cb52a30d524b2d39e14f289bdec Mon Sep 17 00:00:00 2001 From: G Date: Fri, 5 Jan 2024 16:20:01 +0800 Subject: [PATCH 02/26] =?UTF-8?q?docs:=20:memo:=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.md | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 93 insertions(+), 4 deletions(-) diff --git a/Readme.md b/Readme.md index b2a05004..0e4f0e54 100644 --- a/Readme.md +++ b/Readme.md @@ -1,8 +1,58 @@ -## monorepo react-admin集成方案 + -### 简介 +
-方案集成当下最流行的一些前端框架和库做集成,致力于构建一套通用型强的前端后台管理系统解决方案。 + + +

Gbeata Admin

+ +Gbeata Admin是一套用于快速构建后台管理系统模板 + +[English](./README.md) ・ 简体中文 ・ [更新日志](./CHANGELOG.md) · [报告问题][github-issues-link] · [请求功能][github-issues-link] + + + +[![][npm-release-shield]][npm-release-link] +[![][vercel-shield]][vercel-link] +[![][discord-shield]][discord-link] +[![][npm-downloads-shield]][npm-downloads-link] +[![][github-releasedate-shield]][github-releasedate-link] +[![][github-action-test-shield]][github-action-test-link] +[![][github-action-release-shield]][github-action-release-link]
+[![][github-contributors-shield]][github-contributors-link] +[![][github-forks-shield]][github-forks-link] +[![][github-stars-shield]][github-stars-link] +[![][github-issues-shield]][github-issues-link] +[![][github-license-shield]][github-license-link] + +[![][banner]][vercel-link] + +
+ +
+目录 + +#### TOC + +- [简介](#简介) + - [动机 | 为什么想做这个](#动机--为什么想做这个) + - [特性](#特性) +- [建设目标](#建设目标) + - [第一阶段:组件库设计阶段](#第一阶段组件库设计阶段) + - [第二阶段:react-antd-admin模板搭建](#第二阶段react-antd-admin模板搭建) +- [使用](#使用) +- [分支管理](#分支管理) +- [注意点:](#注意点) +- [贡献](#贡献) + +#### + +
+ +## 简介 + +> \[!IMPORTANT]\ +> 方案集成当下最流行的一些前端框架和库做集成,致力于构建一套通用型强的前端后台管理系统解决方案。 ### 动机 | 为什么想做这个 @@ -21,7 +71,7 @@ antd5已经发布很久了,之前一直在维护的一套基于antd4版本的 - 代码规范设计 - ... -### 建设目标 +## 建设目标 - [x] pnpm turbo vite 集成方案搭建 - [x] 配置代码提交规范与自动化部署 @@ -56,12 +106,42 @@ antd5已经发布很久了,之前一直在维护的一套基于antd4版本的 - [x] 主题控制面板 - [x] 模块高亮搜索 +## 使用 + +> \[!IMPORTANT]\ +> 代码中包含gbeata组件库,如果不想使用到package/gbeata组件库源码,可直接从npm包中安装。 + +```bash +git clone git@github.com:anyone-yuren/react-antd-admin-pnpm.git + + +pnpm bootstrap + +pnpm build --filter gbeata + +pnpm dev --filter gbeata-admin +``` + +也可以直接使用pnpm dev,但这样就会启动项目中所有包含dev命令的包项目。 + +
+ +[![][back-to-top]](#readme-top) + +
+ ## 分支管理 发布组件库分支: `main` 后台管理模板分支: `admin` +
+ +[![][back-to-top]](#readme-top) + +
+ ## 注意点: 1. 使用semantic-release做自动化发布时,不需要打包的子包,设置`"private": true` @@ -73,7 +153,11 @@ npx @chenshuai2144/less2cssinjs less2js -i src ``` 3. 关于本地运行项目,出现gbeata未定义的问题,起初在设计组件库阶段,并没有打算直接在项目包中直接应用workspace中的源码,所以,你可以在执行 ` pnpm dev --filter gbeata-admin` 之前,请先将gbeata组件包打包生成lib目录, 执行` pnpm build --filter gbeata` +
+ +[![][back-to-top]](#readme-top) +
## 贡献 @@ -83,3 +167,8 @@ npx @chenshuai2144/less2cssinjs less2js -i src 欢迎 PR,当然您也可以扫码进群讨论,或者直接联系我,QQ: 1003473088,如果这是一个很大的变化!欢迎您的加入! +
+ +[![][back-to-top]](#readme-top) + +
From 07e6bfb4d6f6baf540a2b45a85022a8a829b2415 Mon Sep 17 00:00:00 2001 From: G Date: Fri, 5 Jan 2024 17:08:15 +0800 Subject: [PATCH 03/26] =?UTF-8?q?docs:=20:memo:=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 48 insertions(+), 4 deletions(-) diff --git a/Readme.md b/Readme.md index 0e4f0e54..08f980b6 100644 --- a/Readme.md +++ b/Readme.md @@ -13,11 +13,8 @@ Gbeata Admin是一套用于快速构建后台管理系统模板 [![][npm-release-shield]][npm-release-link] -[![][vercel-shield]][vercel-link] -[![][discord-shield]][discord-link] [![][npm-downloads-shield]][npm-downloads-link] [![][github-releasedate-shield]][github-releasedate-link] -[![][github-action-test-shield]][github-action-test-link] [![][github-action-release-shield]][github-action-release-link]
[![][github-contributors-shield]][github-contributors-link] [![][github-forks-shield]][github-forks-link] @@ -32,7 +29,7 @@ Gbeata Admin是一套用于快速构建后台管理系统模板
目录 -#### TOC +#### 目录 - [简介](#简介) - [动机 | 为什么想做这个](#动机--为什么想做这个) @@ -158,8 +155,13 @@ npx @chenshuai2144/less2cssinjs less2js -i src [![][back-to-top]](#readme-top) + ## 贡献 +欢迎各种类型的贡献,如果您有兴趣贡献代码,请随时查看我们的 GitHub [问题][github-issues-link],并展示您的才华。 + +[![][pr-welcome-shield]][pr-welcome-link] + @@ -172,3 +174,45 @@ npx @chenshuai2144/less2cssinjs less2js -i src [![][back-to-top]](#readme-top) + + + +[back-to-top]: https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square +[banner]: https://github.com/anyone-yuren/multiway/blob/master/iShot_2024-01-05_17.05.52.gif?raw=true +[bun-link]: https://bun.sh +[bun-shield]: https://img.shields.io/badge/-speedup%20with%20bun-black?logo=bun&style=for-the-badge +[codespaces-link]: https://codespaces.new/anyone-yuren/react-antd-admin-pnpm +[codespaces-shield]: https://github.com/codespaces/badge.svg +[contributors-contrib]: https://contrib.rocks/image?repo=anyone-yuren/react-antd-admin-pnpm +[contributors-link]: https://github.com/anyone-yuren/react-antd-admin-pnpm/graphs/contributors +[discord-link]: https://discord.gg/AYFPHvv2jT +[discord-shield]: https://img.shields.io/discord/1127171173982154893?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=flat-square +[fossa-license-link]: https://app.fossa.com/projects/git%2Bgithub.com%2Fanyone-yuren%2Freact-antd-admin-pnpm +[fossa-license-shield]: https://app.fossa.com/api/projects/git%2Bgithub.com%2Fanyone-yuren%2Freact-antd-admin-pnpm.svg?type=large +[github-action-release-link]: https://github.com/actions/workflows/anyone-yuren/react-antd-admin-pnpm/blank.yml +[github-action-release-shield]: https://img.shields.io/github/actions/workflow/status/anyone-yuren/react-antd-admin-pnpm/release.yml?label=release&labelColor=black&logo=githubactions&logoColor=white&style=flat-square +[github-action-test-link]: https://github.com/actions/workflows/anyone-yuren/react-antd-admin-pnpm/test.yml +[github-action-test-shield]: https://img.shields.io/github/actions/workflow/status/anyone-yuren/react-antd-admin-pnpm/test.yml?label=test&labelColor=black&logo=githubactions&logoColor=white&style=flat-square +[github-contributors-link]: https://github.com/anyone-yuren/react-antd-admin-pnpm/graphs/contributors +[github-contributors-shield]: https://img.shields.io/github/contributors/anyone-yuren/react-antd-admin-pnpm?color=c4f042&labelColor=black&style=flat-square +[github-forks-link]: https://github.com/anyone-yuren/react-antd-admin-pnpm/network/members +[github-forks-shield]: https://img.shields.io/github/forks/anyone-yuren/react-antd-admin-pnpm?color=8ae8ff&labelColor=black&style=flat-square +[github-issues-link]: https://github.com/anyone-yuren/react-antd-admin-pnpm/issues +[github-issues-shield]: https://img.shields.io/github/issues/anyone-yuren/react-antd-admin-pnpm?color=ff80eb&labelColor=black&style=flat-square +[github-license-link]: https://github.com/anyone-yuren/react-antd-admin-pnpm/blob/master/LICENSE +[github-license-shield]: https://img.shields.io/github/license/anyone-yuren/react-antd-admin-pnpm?color=white&labelColor=black&style=flat-square +[github-releasedate-link]: https://github.com/anyone-yuren/react-antd-admin-pnpm/releases +[github-releasedate-shield]: https://img.shields.io/github/release-date/anyone-yuren/react-antd-admin-pnpm?labelColor=black&style=flat-square +[github-stars-link]: https://github.com/anyone-yuren/react-antd-admin-pnpm/network/stargazers +[github-stars-shield]: https://img.shields.io/github/stars/anyone-yuren/react-antd-admin-pnpm?color=ffcb47&labelColor=black&style=flat-square +[lobe-chat]: https://github.com/anyone-yuren/lobe-chat +[lobe-commit]: https://github.com/anyone-yuren/lobe-commit/tree/master/packages/lobe-commit +[lobe-i18n]: https://github.com/anyone-yuren/lobe-commit/tree/master/packages/lobe-i18n +[lobe-theme]: https://github.com/anyone-yuren/sd-webui-lobe-theme +[npm-downloads-link]: https://www.npmjs.com/package/gbeata +[npm-downloads-shield]: https://img.shields.io/npm/dt/@anyone-yuren/ui?labelColor=black&style=flat-square +[npm-release-link]: https://www.npmjs.com/package/gbeata +[npm-release-shield]: https://img.shields.io/npm/v/@anyone-yuren/ui?color=369eff&labelColor=black&logo=npm&logoColor=white&style=flat-square +[pr-welcome-link]: https://github.com/anyone-yuren/lobe-chat/pulls +[pr-welcome-shield]: https://img.shields.io/badge/🤯_pr_welcome-%E2%86%92-ffcb47?labelColor=black&style=for-the-badge +[profile-link]: https://github.com/anyone-yuren From 816e20134afd9834ce8a42291601cf51171d8451 Mon Sep 17 00:00:00 2001 From: G Date: Fri, 5 Jan 2024 17:12:55 +0800 Subject: [PATCH 04/26] =?UTF-8?q?docs:=20:memo:=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Readme.md b/Readme.md index 08f980b6..93a2c6fd 100644 --- a/Readme.md +++ b/Readme.md @@ -22,7 +22,7 @@ Gbeata Admin是一套用于快速构建后台管理系统模板 [![][github-issues-shield]][github-issues-link] [![][github-license-shield]][github-license-link] -[![][banner]][vercel-link] +![][banner] @@ -205,7 +205,7 @@ npx @chenshuai2144/less2cssinjs less2js -i src [github-releasedate-shield]: https://img.shields.io/github/release-date/anyone-yuren/react-antd-admin-pnpm?labelColor=black&style=flat-square [github-stars-link]: https://github.com/anyone-yuren/react-antd-admin-pnpm/network/stargazers [github-stars-shield]: https://img.shields.io/github/stars/anyone-yuren/react-antd-admin-pnpm?color=ffcb47&labelColor=black&style=flat-square -[lobe-chat]: https://github.com/anyone-yuren/lobe-chat +[react-antd-admin-pnpm]: https://github.com/anyone-yuren/react-antd-admin-pnpm [lobe-commit]: https://github.com/anyone-yuren/lobe-commit/tree/master/packages/lobe-commit [lobe-i18n]: https://github.com/anyone-yuren/lobe-commit/tree/master/packages/lobe-i18n [lobe-theme]: https://github.com/anyone-yuren/sd-webui-lobe-theme @@ -213,6 +213,6 @@ npx @chenshuai2144/less2cssinjs less2js -i src [npm-downloads-shield]: https://img.shields.io/npm/dt/@anyone-yuren/ui?labelColor=black&style=flat-square [npm-release-link]: https://www.npmjs.com/package/gbeata [npm-release-shield]: https://img.shields.io/npm/v/@anyone-yuren/ui?color=369eff&labelColor=black&logo=npm&logoColor=white&style=flat-square -[pr-welcome-link]: https://github.com/anyone-yuren/lobe-chat/pulls +[pr-welcome-link]: https://github.com/anyone-yuren/react-antd-admin-pnpm/pulls [pr-welcome-shield]: https://img.shields.io/badge/🤯_pr_welcome-%E2%86%92-ffcb47?labelColor=black&style=for-the-badge [profile-link]: https://github.com/anyone-yuren From 9a07d0de4bee38296ee4065dca8600b1f0ed3f4a Mon Sep 17 00:00:00 2001 From: G Date: Fri, 5 Jan 2024 17:22:26 +0800 Subject: [PATCH 05/26] =?UTF-8?q?docs:=20:memo:=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.md | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/Readme.md b/Readme.md index 93a2c6fd..c041b5a9 100644 --- a/Readme.md +++ b/Readme.md @@ -26,7 +26,7 @@ Gbeata Admin是一套用于快速构建后台管理系统模板 -
+
目录 #### 目录 @@ -89,12 +89,7 @@ antd5已经发布很久了,之前一直在维护的一套基于antd4版本的 ### 第二阶段:react-antd-admin模板搭建 -- [ ] 技术选型 - - - +- [x] 技术选型 - [x] 框架设计 - [x] 主题设计 - [x] 登录页设计 @@ -111,7 +106,6 @@ antd5已经发布很久了,之前一直在维护的一套基于antd4版本的 ```bash git clone git@github.com:anyone-yuren/react-antd-admin-pnpm.git - pnpm bootstrap pnpm build --filter gbeata @@ -189,7 +183,7 @@ npx @chenshuai2144/less2cssinjs less2js -i src [discord-shield]: https://img.shields.io/discord/1127171173982154893?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=flat-square [fossa-license-link]: https://app.fossa.com/projects/git%2Bgithub.com%2Fanyone-yuren%2Freact-antd-admin-pnpm [fossa-license-shield]: https://app.fossa.com/api/projects/git%2Bgithub.com%2Fanyone-yuren%2Freact-antd-admin-pnpm.svg?type=large -[github-action-release-link]: https://github.com/actions/workflows/anyone-yuren/react-antd-admin-pnpm/blank.yml +[github-action-release-link]: https://github.com/anyone-yuren/react-antd-admin-pnpm/actions/workflows/blank.yml [github-action-release-shield]: https://img.shields.io/github/actions/workflow/status/anyone-yuren/react-antd-admin-pnpm/release.yml?label=release&labelColor=black&logo=githubactions&logoColor=white&style=flat-square [github-action-test-link]: https://github.com/actions/workflows/anyone-yuren/react-antd-admin-pnpm/test.yml [github-action-test-shield]: https://img.shields.io/github/actions/workflow/status/anyone-yuren/react-antd-admin-pnpm/test.yml?label=test&labelColor=black&logo=githubactions&logoColor=white&style=flat-square From e6abc1af119bf224e174ea7bd5c181c0621efe9c Mon Sep 17 00:00:00 2001 From: G Date: Sat, 6 Jan 2024 11:02:45 +0800 Subject: [PATCH 06/26] =?UTF-8?q?refactor:=20:recycle:=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E7=94=A8=E6=88=B7=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/mock/_utils.ts | 27 ++++------ apps/admin/mock/data/userList.ts | 55 ++++++++++++++++++++ apps/admin/src/api/index.ts | 7 +++ apps/admin/src/components/SvgIcon/index.tsx | 2 - apps/admin/src/components/UserCard/index.tsx | 33 ++++++++---- apps/admin/src/components/UserCard/styles.ts | 4 +- apps/admin/src/views/home/index.tsx | 2 +- apps/admin/src/views/user/list/index.tsx | 46 +++++++++++++--- apps/admin/src/views/user/list/style.ts | 9 ++++ apps/admin/src/views/user/types/index.ts | 14 +++++ 10 files changed, 159 insertions(+), 40 deletions(-) create mode 100644 apps/admin/mock/data/userList.ts create mode 100644 apps/admin/src/views/user/list/style.ts create mode 100644 apps/admin/src/views/user/types/index.ts diff --git a/apps/admin/mock/_utils.ts b/apps/admin/mock/_utils.ts index 0e2b991d..96579d5d 100644 --- a/apps/admin/mock/_utils.ts +++ b/apps/admin/mock/_utils.ts @@ -1,10 +1,10 @@ // Interface data format used to return a unified format -export interface requestParams { - headers?: { authorization?: string } - method: string - body: any - query: any +export interface RequestParams { + headers?: { authorization?: string }; + method: string; + body: any; + query: any; } export function resultSuccess(data: T, { message = '成功' } = {}) { @@ -26,27 +26,18 @@ export function resultError(message = '失败', { code = -1, data = null } = {}) } // This function is used to get a token from the request data -export function getRequestToken({ headers }: requestParams): string | undefined { +export function getRequestToken({ headers }: RequestParams): string | undefined { return headers?.authorization; } -export function pagination( - currentPage: number, - pageSize: number, - array: T[], -): T[] { +export function pagination(currentPage: number, pageSize: number, array: T[]): T[] { const offset = (currentPage - 1) * Number(pageSize); - return (offset + Number(pageSize)) >= array.length + return offset + Number(pageSize) >= array.length ? array.slice(offset, array.length) : array.slice(offset, offset + Number(pageSize)); } -export function resultPageSuccess( - currentPage: number, - pageSize: number, - list: T[], - { message = 'ok' } = {}, -) { +export function resultPageSuccess(currentPage: number, pageSize: number, list: T[], { message = 'ok' } = {}) { const pageData = pagination(currentPage, pageSize, list); return { diff --git a/apps/admin/mock/data/userList.ts b/apps/admin/mock/data/userList.ts new file mode 100644 index 00000000..4812bfee --- /dev/null +++ b/apps/admin/mock/data/userList.ts @@ -0,0 +1,55 @@ +import { Random } from 'mockjs'; + +import { resultPageSuccess } from '../_utils'; + +import type { MockMethod } from 'vite-plugin-mock'; + +const geFollwer = () => Math.floor(Math.random() * 4); + +const getPosition = () => { + const hobbyList = [ + 'HR Manager', + 'Data Observer', + 'Frontend Engineer', + 'Backend Engineer', + 'Project Manager', + 'QA Engineer', + 'Fullstack Engineer', + 'Registered Nurse', + 'Business Analyst', + 'Creative Director', + 'Software Developer', + 'Research Scientist', + ]; + const randomNum = Math.floor(Math.random() * hobbyList.length); + return hobbyList[randomNum]; +}; + +const genList = () => { + const list: any[] = []; + for (let index = 0; index < 100; index += 1) { + const num = index < 10 ? `0${index}` : index; + list.push({ + id: Number(`10${num}`) + 1, + name: Random.name(), + position: getPosition(), + sex: ['男', '女'][Number(Random.boolean())], + follwer: geFollwer(), + mits: Math.floor(Math.random() * 10), + forbid: Random.boolean(), + }); + } + return list; +}; + +export default [ + { + url: '/api/user/getUserList', + timeout: 200, + method: 'get', + response: ({ query }) => { + const { current = 1, pageSize = 10 } = query; + return resultPageSuccess(current, pageSize, genList()); + }, + }, +] as MockMethod[]; diff --git a/apps/admin/src/api/index.ts b/apps/admin/src/api/index.ts index 223a80e5..7dc2f2e6 100644 --- a/apps/admin/src/api/index.ts +++ b/apps/admin/src/api/index.ts @@ -46,3 +46,10 @@ export function getJueJinList() { method: 'post', }); } + +export function getUsersList() { + return service({ + url: 'user/getUserList', + method: 'get', + }) as unknown as Promise; +} diff --git a/apps/admin/src/components/SvgIcon/index.tsx b/apps/admin/src/components/SvgIcon/index.tsx index 38cd6ad1..254464d8 100644 --- a/apps/admin/src/components/SvgIcon/index.tsx +++ b/apps/admin/src/components/SvgIcon/index.tsx @@ -5,8 +5,6 @@ import useStyles from './index.module.style'; import type { SvgIconProp } from './types'; export default function SvgIcon({ name, prefix = 'icon', size = 16, style, className }: SvgIconProp) { - console.log(className); - const { styles } = useStyles(); const symbolId = `#${prefix}-${name}`; const iconStyle = { diff --git a/apps/admin/src/components/UserCard/index.tsx b/apps/admin/src/components/UserCard/index.tsx index c822a0df..d722690f 100644 --- a/apps/admin/src/components/UserCard/index.tsx +++ b/apps/admin/src/components/UserCard/index.tsx @@ -14,6 +14,8 @@ const { Text, Title } = Typography; export interface UserCardProp extends CardProps { children?: React.ReactNode; + data?: any; + index?: number; } export const UserFooter: React.FC<{ name: string; count: number }> = ({ name, count }) => ( @@ -25,14 +27,27 @@ export const UserFooter: React.FC<{ name: string; count: number }> = ({ name, co ); -const UserCard: React.FC = (prop) => { - const { children, ...rest } = prop; +const UserCard: React.FC = ({ + data = { + id: 1, + name: 'Gbeata', + position: 'Front-end', + sex: 'male', + follwer: 1341, + mits: 231, + forbid: false, + }, + index = 1, + ...rest +}) => { + console.log(index); + const [loading, setLoading] = React.useState(true); const { styles } = useStyles(); React.useEffect(() => { setTimeout(() => { setLoading(false); - }, 1500); + }, 500); }, []); return ( <> @@ -49,7 +64,7 @@ const UserCard: React.FC = (prop) => { )} - + = (prop) => { } actions={[ - , - , - , + , + , + , ]} >
@@ -70,9 +85,9 @@ const UserCard: React.FC = (prop) => {
- Gbeata + {data.name} - 来历不明 + {data.position} + + + {tableTableData?.map((item, index) => ( + + + + ))} + + + ); +}; export default UserList; diff --git a/apps/admin/src/views/user/list/style.ts b/apps/admin/src/views/user/list/style.ts new file mode 100644 index 00000000..42bd3c25 --- /dev/null +++ b/apps/admin/src/views/user/list/style.ts @@ -0,0 +1,9 @@ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(({ token }) => ({ + 'add-button': { + background: token.colorDefault, + }, +})); + +export default useStyles; diff --git a/apps/admin/src/views/user/types/index.ts b/apps/admin/src/views/user/types/index.ts new file mode 100644 index 00000000..1ac33d9a --- /dev/null +++ b/apps/admin/src/views/user/types/index.ts @@ -0,0 +1,14 @@ +export interface ListResult { + list: any[]; + total: number; +} + +export interface UserItemType { + id: number; + name: string; + position: string; + sex: string; + follwer: number; + mits: number; + forbid: boolean; +} From c61f03a612d2e28419535102b66ddc14a4caf563 Mon Sep 17 00:00:00 2001 From: G Date: Sat, 6 Jan 2024 11:37:59 +0800 Subject: [PATCH 07/26] =?UTF-8?q?feat:=20:sparkles:=20=E8=BF=98=E5=8E=9F?= =?UTF-8?q?=E8=B7=AF=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/package.json | 2 + apps/admin/src/router/routes/compo.tsx | 81 ++++++++ apps/admin/src/router/routes/excel.tsx | 43 +++++ apps/admin/src/router/routes/exception.tsx | 58 ++++++ apps/admin/src/router/routes/form.tsx | 43 +++++ apps/admin/src/router/routes/images.tsx | 43 +++++ apps/admin/src/router/routes/table.tsx | 43 +++++ apps/admin/src/router/routes/text-editor.tsx | 53 ++++++ apps/admin/src/router/routes/tree.tsx | 43 +++++ apps/admin/src/router/routes/video.tsx | 33 ++++ apps/admin/src/router/types.ts | 3 +- apps/admin/src/utils/image.ts | 123 +++++++++++- apps/admin/src/views/image/image-compress.tsx | 177 ++++++++++++++++++ pnpm-lock.yaml | 18 ++ 14 files changed, 757 insertions(+), 6 deletions(-) create mode 100644 apps/admin/src/router/routes/compo.tsx create mode 100644 apps/admin/src/router/routes/excel.tsx create mode 100644 apps/admin/src/router/routes/exception.tsx create mode 100644 apps/admin/src/router/routes/form.tsx create mode 100644 apps/admin/src/router/routes/images.tsx create mode 100644 apps/admin/src/router/routes/table.tsx create mode 100644 apps/admin/src/router/routes/text-editor.tsx create mode 100644 apps/admin/src/router/routes/tree.tsx create mode 100644 apps/admin/src/router/routes/video.tsx create mode 100644 apps/admin/src/views/image/image-compress.tsx diff --git a/apps/admin/package.json b/apps/admin/package.json index 75279713..d23679f8 100644 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -28,6 +28,7 @@ "cropperjs": "^1.6.1", "crypto-js": "^4.2.0", "dayjs": "^1.11.10", + "dom-to-image": "^2.6.0", "echarts": "^5.4.3", "echarts-for-react": "^3.0.2", "file-saver": "^2.0.5", @@ -60,6 +61,7 @@ "@commitlint/cli": "^18.4.3", "@commitlint/config-conventional": "^18.4.3", "@types/crypto-js": "^4.2.1", + "@types/dom-to-image": "^2.6.7", "@types/file-saver": "^2.0.7", "@types/lodash-es": "^4.17.11", "@types/node": "^20.9.2", diff --git a/apps/admin/src/router/routes/compo.tsx b/apps/admin/src/router/routes/compo.tsx new file mode 100644 index 00000000..95911978 --- /dev/null +++ b/apps/admin/src/router/routes/compo.tsx @@ -0,0 +1,81 @@ +import { lazy } from '@loadable/component'; + +import LazyLoad from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; + +import type { RouteObject } from '../types'; + +// component module page +const CompoRoute: RouteObject = { + path: '/compo', + name: 'Compo', + element: , + meta: { + title: '组件', + icon: 'compo', + orderNo: 6, + }, + children: [ + { + path: 'image-upload', + name: 'ImageUpload', + // element: , + element: LazyLoad(lazy(() => import('@/views/compo/image-upload'))), + meta: { + title: '图片上传', + key: 'imageUpload', + }, + }, + { + path: 'drag', + name: 'Drag', + meta: { + title: '拖拽', + }, + children: [ + { + path: 'drag-list', + name: 'DragList', + // element: , + element: LazyLoad(lazy(() => import('@/views/compo/drag/drag-list'))), + meta: { + title: '列表拖拽', + key: 'dragList', + }, + }, + { + path: 'drag-resize', + name: 'DragResize', + // element: , + element: LazyLoad(lazy(() => import('@/views/compo/drag/drag-resize'))), + meta: { + title: '组件拖拽', + key: 'dragResize', + }, + }, + ], + }, + { + path: 'transfer', + name: 'Transfer', + // element: , + element: LazyLoad(lazy(() => import('@/views/compo/transfer'))), + meta: { + title: '穿梭框', + }, + }, + { + path: 'count-up', + name: 'CountUp', + // element: , + element: LazyLoad(lazy(() => import('@/views/compo/count-up'))), + meta: { + title: '数字滚动', + key: 'countUp', + }, + }, + ], +}; + +export default CompoRoute; diff --git a/apps/admin/src/router/routes/excel.tsx b/apps/admin/src/router/routes/excel.tsx new file mode 100644 index 00000000..a2504a04 --- /dev/null +++ b/apps/admin/src/router/routes/excel.tsx @@ -0,0 +1,43 @@ +import { lazy } from '@loadable/component'; + +import LazyLoad from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; + +import type { RouteObject } from '../types'; + +// excel module page +const ExcelRoute: RouteObject = { + path: '/excel', + name: 'Excel', + element: , + meta: { + title: 'Excel', + icon: 'excel', + orderNo: 10, + }, + children: [ + { + path: 'export-excel', + name: 'ExportExcel', + // element: , + element: LazyLoad(lazy(() => import('@/views/excel/export-excel'))), + meta: { + title: '导出Excel', + key: 'exportExcel', + }, + }, + { + path: 'import-excel', + name: 'ImportExcel', + // element: , + element: LazyLoad(lazy(() => import('@/views/excel/import-excel'))), + meta: { + title: '导入Excel', + key: 'importExcel', + }, + }, + ], +}; + +export default ExcelRoute; diff --git a/apps/admin/src/router/routes/exception.tsx b/apps/admin/src/router/routes/exception.tsx new file mode 100644 index 00000000..425e613a --- /dev/null +++ b/apps/admin/src/router/routes/exception.tsx @@ -0,0 +1,58 @@ +import { lazy } from '@loadable/component'; + +import LazyLoad from '@/components/LazyLoad'; + +import { ExceptionEnum } from '@/enums/exceptionEnum'; + +import { LayoutGuard } from '../guard'; + +import type { RouteObject } from '../types'; + +// exception module page +const ExceptionRoute: RouteObject = { + path: '/exception', + name: 'ExceptionPage', + element: , + meta: { + title: '异常页面', + icon: 'bug', + orderNo: 11, + }, + children: [ + { + path: 'page-403', + name: 'Page403', + // element: , + element: LazyLoad(lazy(() => import('@/views/exception'))), + meta: { + title: '403页面', + key: 'page403', + }, + loader: () => ({ status: ExceptionEnum.PAGE_NOT_ACCESS, withCard: true }), + }, + { + path: 'page-404', + name: 'Page404', + // element: , + element: LazyLoad(lazy(() => import('@/views/exception'))), + meta: { + title: '404页面', + key: 'page404', + }, + loader: () => ({ status: ExceptionEnum.PAGE_NOT_FOUND, withCard: true }), + }, + { + path: 'page-500', + name: 'Page500', + // element: , + element: LazyLoad(lazy(() => import('@/views/exception'))), + meta: { + title: '500页面', + key: 'page500', + }, + loader: () => ({ status: ExceptionEnum.SERVER_ERROR, withCard: true }), + }, + ], +}; + +export default ExceptionRoute; diff --git a/apps/admin/src/router/routes/form.tsx b/apps/admin/src/router/routes/form.tsx new file mode 100644 index 00000000..63085a11 --- /dev/null +++ b/apps/admin/src/router/routes/form.tsx @@ -0,0 +1,43 @@ +import { lazy } from '@loadable/component'; + +import LazyLoad from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; + +import type { RouteObject } from '../types'; + +// form module page +const FormRoute: RouteObject = { + path: '/form', + name: 'Form', + element: , + meta: { + title: '表单', + icon: 'form', + orderNo: 2, + }, + children: [ + { + path: 'basic-form', + name: 'BasicForm', + // element: , + element: LazyLoad(lazy(() => import('@/views/form/basic-form'))), + meta: { + title: '基础表单', + key: 'basicForm', + }, + }, + { + path: 'form-designer', + name: 'FormDesigner', + // element: , + element: LazyLoad(lazy(() => import('@/views/blank'))), + meta: { + title: '表单设计器', + key: 'formDesigner', + }, + }, + ], +}; + +export default FormRoute; diff --git a/apps/admin/src/router/routes/images.tsx b/apps/admin/src/router/routes/images.tsx new file mode 100644 index 00000000..a77e0c53 --- /dev/null +++ b/apps/admin/src/router/routes/images.tsx @@ -0,0 +1,43 @@ +import { lazy } from '@loadable/component'; + +import LazyLoad from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; + +import type { RouteObject } from '../types'; + +// image module page +const ImageRoute: RouteObject = { + path: '/image', + name: 'Image', + element: , + meta: { + title: '图片处理', + icon: 'image', + orderNo: 4, + }, + children: [ + { + path: 'image-cropper', + name: 'ImageCropper', + // element: , + element: LazyLoad(lazy(() => import('@/views/image/image-cropper'))), + meta: { + title: '图片裁剪', + key: 'imageCropper', + }, + }, + { + path: 'image-compress', + name: 'ImageCompress', + // element: , + element: LazyLoad(lazy(() => import('@/views/image/image-compress'))), + meta: { + title: '图片压缩', + key: 'imageCompress', + }, + }, + ], +}; + +export default ImageRoute; diff --git a/apps/admin/src/router/routes/table.tsx b/apps/admin/src/router/routes/table.tsx new file mode 100644 index 00000000..ba03f0ea --- /dev/null +++ b/apps/admin/src/router/routes/table.tsx @@ -0,0 +1,43 @@ +import { lazy } from '@loadable/component'; + +import LazyLoad from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; + +import type { RouteObject } from '../types'; + +// table module page +const TableRoute: RouteObject = { + path: '/table', + name: 'Table', + element: , + meta: { + title: '表格', + icon: 'table', + orderNo: 3, + }, + children: [ + { + path: 'table-basic', + name: 'TableBasic', + // element: , + element: LazyLoad(lazy(() => import('@/views/table/table-basic'))), + meta: { + title: '基础表格', + key: 'tableBasic', + }, + }, + { + path: 'table-edit-row', + name: 'TableEditRow', + // element: , + element: LazyLoad(lazy(() => import('@/views/table/table-edit-row'))), + meta: { + title: '可编辑行表格', + key: 'tableEditRow', + }, + }, + ], +}; + +export default TableRoute; diff --git a/apps/admin/src/router/routes/text-editor.tsx b/apps/admin/src/router/routes/text-editor.tsx new file mode 100644 index 00000000..c2359f88 --- /dev/null +++ b/apps/admin/src/router/routes/text-editor.tsx @@ -0,0 +1,53 @@ +import { lazy } from '@loadable/component'; + +import LazyLoad from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; + +import type { RouteObject } from '../types'; + +// text-editor module page +const TextEditorRoute: RouteObject = { + path: '/editor', + name: 'Editor', + element: , + meta: { + title: '文本编辑器', + icon: 'editor', + orderNo: 7, + }, + children: [ + { + path: 'markdown', + name: 'Markdown', + // element: , + element: LazyLoad(lazy(() => import('@/views/editor/markdown'))), + meta: { + title: 'Markdown编辑器', + key: 'markdown', + }, + }, + { + path: 'rich-text', + name: 'RichText', + // element: , + element: LazyLoad(lazy(() => import('@/views/editor/rich-text'))), + meta: { + title: '富文本编辑器', + key: 'richText', + }, + }, + { + path: 'code-editor', + name: 'CodeEditor', + // element: , + element: LazyLoad(lazy(() => import('@/views/editor/code-mirror'))), + meta: { + title: '代码编辑器', + key: 'codeEditor', + }, + }, + ], +}; + +export default TextEditorRoute; diff --git a/apps/admin/src/router/routes/tree.tsx b/apps/admin/src/router/routes/tree.tsx new file mode 100644 index 00000000..a790d09f --- /dev/null +++ b/apps/admin/src/router/routes/tree.tsx @@ -0,0 +1,43 @@ +import { lazy } from '@loadable/component'; + +import LazyLoad from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; + +import type { RouteObject } from '../types'; + +// tree module page +const TreeRoute: RouteObject = { + path: '/tree', + name: 'Tree', + element: , + meta: { + title: '树形结构', + icon: 'tree', + orderNo: 9, + }, + children: [ + { + path: 'org-tree', + name: 'OrgTree', + // element: , + element: LazyLoad(lazy(() => import('@/views/tree/org-tree'))), + meta: { + title: '组织树', + key: 'orgTree', + }, + }, + { + path: 'antd-tree', + name: 'AntdTree', + // element: , + element: LazyLoad(lazy(() => import('@/views/tree/antd-tree'))), + meta: { + title: '控件树', + key: 'antdTree', + }, + }, + ], +}; + +export default TreeRoute; diff --git a/apps/admin/src/router/routes/video.tsx b/apps/admin/src/router/routes/video.tsx new file mode 100644 index 00000000..dbb2d1d1 --- /dev/null +++ b/apps/admin/src/router/routes/video.tsx @@ -0,0 +1,33 @@ +import { lazy } from '@loadable/component'; + +import LazyLoad from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; + +import type { RouteObject } from '../types'; + +// video module page +const VideoRoute: RouteObject = { + path: '/video', + name: 'Video', + element: , + meta: { + title: '视频处理', + icon: 'video', + orderNo: 5, + }, + children: [ + { + path: 'video-player', + name: 'VideoPlayer', + // element: , + element: LazyLoad(lazy(() => import('@/views/video/video-player'))), + meta: { + title: '视频播放器', + key: 'videoPlayer', + }, + }, + ], +}; + +export default VideoRoute; diff --git a/apps/admin/src/router/types.ts b/apps/admin/src/router/types.ts index 4981fa0f..3fdf2554 100644 --- a/apps/admin/src/router/types.ts +++ b/apps/admin/src/router/types.ts @@ -1,5 +1,5 @@ import type { ReactNode } from 'react'; -import type { NonIndexRouteObject, LoaderFunction } from 'react-router-dom'; +import type { LoaderFunction, NonIndexRouteObject } from 'react-router-dom'; export interface MetaProps { title: string; @@ -22,6 +22,7 @@ export interface RouteObject extends NonIndexRouteObject { children?: RouteObject[]; index?: false; meta?: MetaProps; + name?: string; } export interface AppMenu { diff --git a/apps/admin/src/utils/image.ts b/apps/admin/src/utils/image.ts index 734d660d..e1e336bd 100644 --- a/apps/admin/src/utils/image.ts +++ b/apps/admin/src/utils/image.ts @@ -1,5 +1,5 @@ /** - * Image base64 to Blob + * 图片base64转blob * @param image * @returns {Blob} */ @@ -17,17 +17,18 @@ export function base64toBlob(base64Buf: string): Blob { } /** - * Image url to base64 + * 图片url转base64 * @param url - * @param mineType + * @param mimeType */ -export function urlToBase64(url: string, mineType?: string): Promise { +export function urlToBase64(url: string, mimeType?: string): Promise { return new Promise((resolve, reject) => { let canvas = document.createElement('CANVAS') as Nullable; const ctx = canvas!.getContext('2d'); const img = new Image(); img.crossOrigin = ''; + // eslint-disable-next-line consistent-return img.onload = function () { if (!canvas || !ctx) { return reject(); @@ -35,10 +36,122 @@ export function urlToBase64(url: string, mineType?: string): Promise { canvas.width = img.width; canvas.height = img.height; ctx.drawImage(img, 0, 0); - const dataURL = canvas.toDataURL(mineType || 'image/png'); + const dataURL = canvas.toDataURL(mimeType || 'image/png'); canvas = null; resolve(dataURL); }; img.src = url; }); } + +/** + * 获取图片宽高 + * @param url + * @returns {Promise<{width: number; height: number}>} + */ +export function getImageSize(url: string): Promise<{ width: number; height: number }> { + return new Promise((resolve, reject) => { + const img = new Image(); + img.onload = function () { + resolve({ + width: img.width, + height: img.height, + }); + }; + img.onerror = function () { + reject(); + }; + img.src = url; + }); +} + +/** + * 压缩图片 + * @param url + * @param options + * @returns {Promise} + */ +export function compressImage( + url: string, + options: { width: number; height: number; quality: number; mimeType: string }, +): Promise { + return new Promise((resolve, reject) => { + const { width, height, quality, mimeType } = options; + + let canvas = document.createElement('CANVAS') as Nullable; + const ctx = canvas!.getContext('2d'); + + const img = new Image(); + img.crossOrigin = ''; + // eslint-disable-next-line consistent-return + img.onload = function () { + if (!canvas || !ctx) { + return reject(); + } + + canvas.width = width; + canvas.height = height; + ctx.drawImage(img, 0, 0, width, height); + const dataURL = canvas.toDataURL(mimeType || 'image/png', quality); + canvas = null; + resolve(dataURL); + }; + img.src = url; + }); +} + +/** + * 计算图片宽高及比率 + * @param imageTrueW 图片实际宽 + * @param imageTrueH 图片实际高 + * @param showAreaW 展示区宽度 + * @param showAreaH 展示区高度 + * @returns {{width: number; height: number; ratio: number}} + */ +export function calcImageSize( + imageTrueW: number, + imageTrueH: number, + showAreaW: number, + showAreaH: number, +): { width: number; height: number; ratio: number } { + let [width, height, ratio] = [0, 0, 0]; + // 图片真实宽大于真实高 + if (imageTrueW > imageTrueH) { + if (imageTrueW >= showAreaW) { + // 真实宽大于或等于展示区最大宽 + const imageRatioH = imageTrueH * (showAreaW / imageTrueW); + // 按展示区最大宽与实际宽比率换算后,高度大于显示高度时 + if (imageRatioH >= showAreaW) { + width = imageTrueW * (showAreaH / imageTrueH); + height = showAreaH; + ratio = imageTrueH / showAreaH; + } else { + width = showAreaW; + height = imageRatioH; + ratio = imageTrueW / showAreaW; + } + } else { + width = imageTrueW; + height = imageTrueH; + ratio = 1; + } + } else { + // 图片真实宽小于或等于真实高 + // eslint-disable-next-line no-lonely-if + if (imageTrueH >= showAreaH) { + // 真实高大于或等于展示区最大高 + width = imageTrueW * (showAreaH / imageTrueH); + height = showAreaH; + ratio = imageTrueH / showAreaH; + } else { + width = imageTrueW; + height = imageTrueH; + ratio = 1; + } + } + return { + width, + height, + ratio, + }; +} diff --git a/apps/admin/src/views/image/image-compress.tsx b/apps/admin/src/views/image/image-compress.tsx new file mode 100644 index 00000000..b406e3bd --- /dev/null +++ b/apps/admin/src/views/image/image-compress.tsx @@ -0,0 +1,177 @@ +import { Button, Card, Col, Form, InputNumber, Row, Select, Space } from 'antd'; +import { type FC, useEffect, useState } from 'react'; + +import { PageWrapper } from '@/components/Page'; +import SvgIcon from '@/components/SvgIcon'; +import { UploadImage } from '@/components/Upload'; + +import { downloadImgByBase64 } from '@/utils/download'; +import { compressImage, getImageSize } from '@/utils/image'; + +import { COMPRESS_IMG_SRC, IMAGE_COMPRESS } from '@/settings/websiteSetting'; + +interface FormState { + width: number; + height: number; + ratio: number; + quality: number; + type: string; +} + +interface ImageState { + width: number; + height: number; + aspectRatio: number; + imgSrc: string; +} + +const defaultForm: FormState = { + width: 1920, + height: 1080, + ratio: 100, + quality: 1, + type: 'image/png', +}; + +const defaultImage: ImageState = { + width: 1920, + height: 1080, + aspectRatio: 1920 / 1080, + imgSrc: COMPRESS_IMG_SRC, +}; + +const ImageCompress: FC = () => { + const [form] = Form.useForm(); + const [imageInfo, setImageInfo] = useState(defaultImage); + + useEffect(() => { + getImageSize(COMPRESS_IMG_SRC).then(({ width, height }) => { + form.setFieldsValue({ width, height }); + setImageInfo({ ...imageInfo, width, height, aspectRatio: width / height }); + }); + }, []); + + const handleSuccess = (url: string) => { + setImageInfo({ ...imageInfo, imgSrc: url }); + getImageSize(url).then(({ width, height }) => { + form.setFieldsValue({ width, height }); + setImageInfo({ ...imageInfo, width, height, aspectRatio: width / height }); + }); + }; + + const handleChange = (value: number, type: 'width' | 'height') => { + const getCalcVal = Number(Math.round(value / imageInfo.aspectRatio).toFixed(0)); + const ratio = Number(Math.round((getCalcVal / imageInfo[type]) * 100).toFixed(2)); + form.setFieldsValue({ [type]: getCalcVal, ratio }); + }; + + const onFinish = (values: FormState) => { + const { width, height, quality, type: mimeType } = values; + const fileType = mimeType.replace(/image\//, '') || 'png'; + compressImage(imageInfo.imgSrc, { width, height, quality, mimeType }).then((img: string) => { + downloadImgByBase64(img, `compress-image.${fileType}`); + }); + }; + + return ( + + + + +
+
+
+ + + + +
+ + + + + + + 宽} + onChange={(value: any) => handleChange(value, 'height')} + /> + + + + + + 高} + onChange={(value: any) => handleChange(value, 'width')} + /> + + + + + `${value}%`} + disabled + style={{ width: '100%' }} + /> + + + + + + + +
+
+ + + + ); +}; + +export default ImageCompress; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9b7609c7..21c9131e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -126,6 +126,9 @@ importers: dayjs: specifier: ^1.11.10 version: registry.npmmirror.com/dayjs@1.11.10 + dom-to-image: + specifier: ^2.6.0 + version: registry.npmmirror.com/dom-to-image@2.6.0 echarts: specifier: ^5.4.3 version: registry.npmmirror.com/echarts@5.4.3 @@ -217,6 +220,9 @@ importers: '@types/crypto-js': specifier: ^4.2.1 version: registry.npmmirror.com/@types/crypto-js@4.2.1 + '@types/dom-to-image': + specifier: ^2.6.7 + version: registry.npmmirror.com/@types/dom-to-image@2.6.7 '@types/file-saver': specifier: ^2.0.7 version: registry.npmmirror.com/@types/file-saver@2.0.7 @@ -5337,6 +5343,12 @@ packages: dependencies: '@types/ms': registry.npmmirror.com/@types/ms@0.7.34 + registry.npmmirror.com/@types/dom-to-image@2.6.7: + resolution: {integrity: sha512-me5VbCv+fcXozblWwG13krNBvuEOm6kA5xoa4RrjDJCNFOZSWR3/QLtOXimBHk1Fisq69Gx3JtOoXtg1N1tijg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/dom-to-image/-/dom-to-image-2.6.7.tgz} + name: '@types/dom-to-image' + version: 2.6.7 + dev: true + registry.npmmirror.com/@types/eslint-scope@3.7.7: resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz} name: '@types/eslint-scope' @@ -10172,6 +10184,12 @@ packages: domhandler: registry.npmmirror.com/domhandler@5.0.3 entities: registry.npmmirror.com/entities@4.5.0 + registry.npmmirror.com/dom-to-image@2.6.0: + resolution: {integrity: sha512-Dt0QdaHmLpjURjU7Tnu3AgYSF2LuOmksSGsUcE6ItvJoCWTBEmiMXcqBdNSAm9+QbbwD7JMoVsuuKX6ZVQv1qA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dom-to-image/-/dom-to-image-2.6.0.tgz} + name: dom-to-image + version: 2.6.0 + dev: false + registry.npmmirror.com/dom7@3.0.0: resolution: {integrity: sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dom7/-/dom7-3.0.0.tgz} name: dom7 From 251a1c43b88a4d0116827ae91172174f036ebe53 Mon Sep 17 00:00:00 2001 From: G Date: Sun, 7 Jan 2024 00:16:04 +0800 Subject: [PATCH 08/26] =?UTF-8?q?refactor:=20:recycle:=20=E9=9A=90?= =?UTF-8?q?=E8=97=8F=E6=9A=82=E6=9C=AA=E5=BC=80=E5=8F=91=E5=AE=8C=E6=95=B4?= =?UTF-8?q?=E7=9A=84=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/router/{routes => waitingRouter}/excel.tsx | 0 apps/admin/src/router/{routes => waitingRouter}/form.tsx | 0 apps/admin/src/router/{routes => waitingRouter}/images.tsx | 0 apps/admin/src/router/{routes => waitingRouter}/table.tsx | 0 apps/admin/src/router/{routes => waitingRouter}/text-editor.tsx | 0 apps/admin/src/router/{routes => waitingRouter}/tree.tsx | 0 apps/admin/src/router/{routes => waitingRouter}/video.tsx | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename apps/admin/src/router/{routes => waitingRouter}/excel.tsx (100%) rename apps/admin/src/router/{routes => waitingRouter}/form.tsx (100%) rename apps/admin/src/router/{routes => waitingRouter}/images.tsx (100%) rename apps/admin/src/router/{routes => waitingRouter}/table.tsx (100%) rename apps/admin/src/router/{routes => waitingRouter}/text-editor.tsx (100%) rename apps/admin/src/router/{routes => waitingRouter}/tree.tsx (100%) rename apps/admin/src/router/{routes => waitingRouter}/video.tsx (100%) diff --git a/apps/admin/src/router/routes/excel.tsx b/apps/admin/src/router/waitingRouter/excel.tsx similarity index 100% rename from apps/admin/src/router/routes/excel.tsx rename to apps/admin/src/router/waitingRouter/excel.tsx diff --git a/apps/admin/src/router/routes/form.tsx b/apps/admin/src/router/waitingRouter/form.tsx similarity index 100% rename from apps/admin/src/router/routes/form.tsx rename to apps/admin/src/router/waitingRouter/form.tsx diff --git a/apps/admin/src/router/routes/images.tsx b/apps/admin/src/router/waitingRouter/images.tsx similarity index 100% rename from apps/admin/src/router/routes/images.tsx rename to apps/admin/src/router/waitingRouter/images.tsx diff --git a/apps/admin/src/router/routes/table.tsx b/apps/admin/src/router/waitingRouter/table.tsx similarity index 100% rename from apps/admin/src/router/routes/table.tsx rename to apps/admin/src/router/waitingRouter/table.tsx diff --git a/apps/admin/src/router/routes/text-editor.tsx b/apps/admin/src/router/waitingRouter/text-editor.tsx similarity index 100% rename from apps/admin/src/router/routes/text-editor.tsx rename to apps/admin/src/router/waitingRouter/text-editor.tsx diff --git a/apps/admin/src/router/routes/tree.tsx b/apps/admin/src/router/waitingRouter/tree.tsx similarity index 100% rename from apps/admin/src/router/routes/tree.tsx rename to apps/admin/src/router/waitingRouter/tree.tsx diff --git a/apps/admin/src/router/routes/video.tsx b/apps/admin/src/router/waitingRouter/video.tsx similarity index 100% rename from apps/admin/src/router/routes/video.tsx rename to apps/admin/src/router/waitingRouter/video.tsx From 59c59970d65c23523329528cd18ea7309502959f Mon Sep 17 00:00:00 2001 From: G Date: Sun, 7 Jan 2024 01:06:46 +0800 Subject: [PATCH 09/26] =?UTF-8?q?feat:=20:sparkles:=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E9=A1=B5=E9=9D=A2=E8=AE=BE=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/assets/icons/camera.svg | 1 + apps/admin/src/views/user/addUser/index.tsx | 39 +++++++++++++--- apps/admin/src/views/user/addUser/style.ts | 50 +++++++++++++++++++++ 3 files changed, 85 insertions(+), 5 deletions(-) create mode 100644 apps/admin/src/assets/icons/camera.svg create mode 100644 apps/admin/src/views/user/addUser/style.ts diff --git a/apps/admin/src/assets/icons/camera.svg b/apps/admin/src/assets/icons/camera.svg new file mode 100644 index 00000000..ab9fd8b4 --- /dev/null +++ b/apps/admin/src/assets/icons/camera.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/src/views/user/addUser/index.tsx b/apps/admin/src/views/user/addUser/index.tsx index e5ba70b5..fb5858f0 100644 --- a/apps/admin/src/views/user/addUser/index.tsx +++ b/apps/admin/src/views/user/addUser/index.tsx @@ -1,3 +1,8 @@ +import { Card, Col, Flex, Row, Upload } from 'antd'; +import { SvgIcon, Translatex } from 'ui'; + +import useStyles from './style'; + import type { FC } from 'react'; interface PAddUser { @@ -5,12 +10,36 @@ interface PAddUser { } const AddUser: FC = ({ onAdd = () => {} }) => { - console.log(onAdd); - + const { Dragger } = Upload; + const { styles } = useStyles(); return ( -
-
添加用户
-
+ + + + + +
+ + + upload phone + +
+

+ 将图片拖到此处, 或点击上传 +

+

只能上传jpg、jpeg、gif、png、bmp文件, 且不超过500kb

+
+
+ + 2 +
+
); }; export default AddUser; diff --git a/apps/admin/src/views/user/addUser/style.ts b/apps/admin/src/views/user/addUser/style.ts new file mode 100644 index 00000000..6b6f0732 --- /dev/null +++ b/apps/admin/src/views/user/addUser/style.ts @@ -0,0 +1,50 @@ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(({ token }) => ({ + 'custom-upload-drag': { + '.ant-upload-drag': { + background: '#fff', + border: 'none', + '&:hover': { + '.add-phone-box': { + border: `1px dashed ${token.colorPrimary}`, + '.add-phone': { + background: token.colorBgTextActive, + }, + }, + }, + '.add-phone-box': { + width: '144px', + height: '144px', + borderRadius: '50%', + overflow: 'hidden', + cursor: 'pointer', + margin: '0 auto', + padding: token.paddingSM, + border: `1px dashed ${token.colorBorderSecondary}`, + transition: 'border-color .3s ease', + '&:hover': { + border: `1px dashed ${token.colorPrimary}`, + }, + '.add-phone': { + width: '100%', + height: '100%', + background: token.colorBgContainerDisabled, + borderRadius: '50%', + color: token.colorTextDisabled, + transition: 'all .3s ease', + '&:hover': { + background: token.colorBgTextActive, + }, + }, + }, + }, + }, + 'add-user-form': { + '.ant-input': { + borderRadius: token.borderRadiusLG, + }, + }, +})); + +export default useStyles; From 6f082082b47bb3bd1c4b36e3318abb45155f2bb0 Mon Sep 17 00:00:00 2001 From: G Date: Mon, 8 Jan 2024 00:29:34 +0800 Subject: [PATCH 10/26] =?UTF-8?q?fix:=20:bug:=20=E4=BF=AE=E5=A4=8Dta?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E8=AF=AD=E6=B3=95=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/layout/tags/index.tsx | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/apps/admin/src/layout/tags/index.tsx b/apps/admin/src/layout/tags/index.tsx index 2502efab..151b987b 100644 --- a/apps/admin/src/layout/tags/index.tsx +++ b/apps/admin/src/layout/tags/index.tsx @@ -53,9 +53,9 @@ const LayoutTags: FC = () => { useEffect(() => { const affixTags = initAffixTags(basicRoutes); - for (const tag of affixTags) { + affixTags.forEach((tag) => { dispatch(addVisitedTags(tag)); - } + }); }, []); useEffect(() => { @@ -73,9 +73,9 @@ const LayoutTags: FC = () => { }, [activeTag]); const initAffixTags = (routes: RouteObject[], basePath: string = '/') => { - let affixTags: RouteObject[] = []; + const affixTags: RouteObject[] = []; - for (const route of routes) { + const processRoute = (route: RouteObject) => { if (route.meta?.affix) { const fullPath = route.path!.startsWith('/') ? route.path : basePath + route.path; affixTags.push({ @@ -84,9 +84,11 @@ const LayoutTags: FC = () => { }); } if (route.children && route.children.length) { - affixTags = affixTags.concat(initAffixTags(route.children, route.path)); + route.children.forEach((child) => processRoute(child)); } - } + }; + + routes.forEach((route) => processRoute(route)); return affixTags; }; @@ -98,15 +100,18 @@ const LayoutTags: FC = () => { const mainBodyWidth = tagsMainBody.current?.offsetWidth!; if (mainBodyWidth < mainWidth) { leftOffset = 0; - } else if (tag?.offsetLeft! < -tagsBodyLeft) { + } else if ((tag?.offsetLeft ?? 0) < -tagsBodyLeft) { // 标签在可视区域左侧 (The active tag on the left side of the layout_tags-main) - leftOffset = -tag?.offsetLeft! + mainBodyPadding; - } else if (tag?.offsetLeft! > -tagsBodyLeft && tag?.offsetLeft! + tag?.offsetWidth! < -tagsBodyLeft + mainWidth) { + leftOffset = (tag?.offsetLeft ?? 0) + mainBodyPadding; + } else if ( + (tag?.offsetLeft ?? 0) > -tagsBodyLeft && + (tag?.offsetLeft ?? 0) + (tag?.offsetWidth ?? 0) < -tagsBodyLeft + mainWidth + ) { // 标签在可视区域 (The active tag on the layout_tags-main) - leftOffset = Math.min(0, mainWidth - tag?.offsetWidth! - tag?.offsetLeft! - mainBodyPadding); + leftOffset = Math.min(0, mainWidth - (tag?.offsetWidth ?? 0) - (tag?.offsetLeft ?? 0) - mainBodyPadding); } else { // 标签在可视区域右侧 (The active tag on the right side of the layout_tags-main) - leftOffset = -(tag?.offsetLeft! - (mainWidth - mainBodyPadding - tag?.offsetWidth!)); + leftOffset = -((tag?.offsetLeft ?? 0) - (mainWidth - mainBodyPadding - (tag?.offsetWidth ?? 0))); } setTagsBodyLeft(leftOffset); }; From cbdc7ff9b102c1ac1d1ad3038eb0c259a70d0b1c Mon Sep 17 00:00:00 2001 From: G Date: Mon, 8 Jan 2024 01:12:43 +0800 Subject: [PATCH 11/26] =?UTF-8?q?feat:=20:sparkles:=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=88=B7=E6=96=B0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/layout/index.tsx | 8 +++++--- apps/admin/src/layout/tags/index.tsx | 15 +++++++++++++-- apps/admin/src/router/types.ts | 1 + 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/apps/admin/src/layout/index.tsx b/apps/admin/src/layout/index.tsx index 9fdf3c1c..c649c330 100644 --- a/apps/admin/src/layout/index.tsx +++ b/apps/admin/src/layout/index.tsx @@ -1,6 +1,6 @@ import { Layout } from 'antd'; import ErrorBoundary from 'antd/es/alert/ErrorBoundary'; -import { Outlet } from 'react-router-dom'; +import { Outlet, useLocation } from 'react-router-dom'; import '@/gbeata'; import { AppLogo } from '@/components/AppLogo'; @@ -14,11 +14,13 @@ import useStyles from './index.style'; import LayoutMenu from './menu'; export const BasicLayout = (props: any) => { + const { state } = useLocation(); + const { key = 'key' } = state || {}; useTitle(); const { Sider, Content } = Layout; const { styles } = useStyles(); - const getMenuFold = useAppSelector((state) => state.app.appConfig?.menuSetting?.menuFold); + const getMenuFold = useAppSelector((st) => st.app.appConfig?.menuSetting?.menuFold); return ( @@ -30,7 +32,7 @@ export const BasicLayout = (props: any) => { - + diff --git a/apps/admin/src/layout/tags/index.tsx b/apps/admin/src/layout/tags/index.tsx index 151b987b..12f9b485 100644 --- a/apps/admin/src/layout/tags/index.tsx +++ b/apps/admin/src/layout/tags/index.tsx @@ -8,7 +8,7 @@ import { searchRoute } from '@/utils'; import { basicRoutes } from '@/router'; import { useAppDispatch, useAppSelector } from '@/stores'; -import { addVisitedTags, closeAllTags, closeTagByKey, closeTagsByType } from '@/stores/modules/tags'; +import { addVisitedTags, closeAllTags, closeTagByKey, closeTagsByType, updateVisitedTags } from '@/stores/modules/tags'; import { TagItem } from './components'; import useStyles from './index.module.style'; @@ -166,7 +166,17 @@ const LayoutTags: FC = () => { navigate(path); }; - const handleReload = () => {}; + function getKey() { + return new Date().getTime().toString(); + } + const handleReload = () => { + // 刷新当前路由,页面不刷新 + const index = visitedTags.findIndex((tab) => tab.fullPath === activeTag); + if (index >= 0) { + // 这个是react的特性,key变了,组件会卸载重新渲染 + navigate(activeTag, { replace: true, state: { key: getKey() } }); + } + }; return (
@@ -182,6 +192,7 @@ const LayoutTags: FC = () => { {visitedTags.map((item: RouteObject) => ( Date: Mon, 8 Jan 2024 14:09:01 +0800 Subject: [PATCH 12/26] =?UTF-8?q?feat:=20:sparkles:=20=E6=96=B0=E5=A2=9Epl?= =?UTF-8?q?op=E8=84=9A=E6=89=8B=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .prettierignore | 1 + package.json | 3 +- plop/app/.env.development.hbs | 3 + plop/app/.env.production.hbs | 3 + plop/app/.env.single.hbs | 3 + plop/app/.eslintrc.cjs.hbs | 7 + plop/app/.gitignore.hbs | 4 + plop/app/README.md.hbs | 14 + plop/app/index.html.hbs | 12 + plop/app/package.json.hbs | 29 ++ plop/app/public/vite.svg.hbs | 1 + plop/app/src/App.tsx.hbs | 61 +++ plop/app/src/main.tsx.hbs | 27 + plop/app/src/pages/dashboard/index.tsx.hbs | 14 + plop/app/src/pages/dataTable/index.tsx.hbs | 15 + plop/app/src/pages/noFound/index.tsx.hbs | 10 + plop/app/src/router/keeperHoc.tsx.hbs | 20 + plop/app/src/router/router.tsx.hbs | 21 + plop/app/src/vite-env.d.ts.hbs | 1 + plop/app/tsconfig.json.hbs | 25 + plop/app/tsconfig.node.json.hbs | 9 + plop/app/vite.config.ts.hbs | 75 +++ plopfile.js | 89 ++++ pnpm-lock.yaml | 558 +++++++++++++++++++-- 24 files changed, 962 insertions(+), 43 deletions(-) create mode 100644 .prettierignore create mode 100644 plop/app/.env.development.hbs create mode 100644 plop/app/.env.production.hbs create mode 100644 plop/app/.env.single.hbs create mode 100644 plop/app/.eslintrc.cjs.hbs create mode 100644 plop/app/.gitignore.hbs create mode 100644 plop/app/README.md.hbs create mode 100644 plop/app/index.html.hbs create mode 100644 plop/app/package.json.hbs create mode 100644 plop/app/public/vite.svg.hbs create mode 100644 plop/app/src/App.tsx.hbs create mode 100644 plop/app/src/main.tsx.hbs create mode 100644 plop/app/src/pages/dashboard/index.tsx.hbs create mode 100644 plop/app/src/pages/dataTable/index.tsx.hbs create mode 100644 plop/app/src/pages/noFound/index.tsx.hbs create mode 100644 plop/app/src/router/keeperHoc.tsx.hbs create mode 100644 plop/app/src/router/router.tsx.hbs create mode 100644 plop/app/src/vite-env.d.ts.hbs create mode 100644 plop/app/tsconfig.json.hbs create mode 100644 plop/app/tsconfig.node.json.hbs create mode 100644 plop/app/vite.config.ts.hbs create mode 100644 plopfile.js diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..b6601b5f --- /dev/null +++ b/.prettierignore @@ -0,0 +1 @@ +plop \ No newline at end of file diff --git a/package.json b/package.json index 1da1cb05..438338e1 100644 --- a/package.json +++ b/package.json @@ -52,6 +52,7 @@ "@ant-design/icons": "^5.2.6", "antd": "^5.12.1", "antd-style": "^3.6.1", - "esbuild": "0.18.20" + "esbuild": "0.18.20", + "plop": "^4.0.1" } } diff --git a/plop/app/.env.development.hbs b/plop/app/.env.development.hbs new file mode 100644 index 00000000..562e713f --- /dev/null +++ b/plop/app/.env.development.hbs @@ -0,0 +1,3 @@ +VITE_FEDERATION_HOST=http://localhost:8000 +VITE_APP_HOST=http://127.0.0.1:8001/ +VITE_APP_NAME={{appName}} \ No newline at end of file diff --git a/plop/app/.env.production.hbs b/plop/app/.env.production.hbs new file mode 100644 index 00000000..e1a534da --- /dev/null +++ b/plop/app/.env.production.hbs @@ -0,0 +1,3 @@ +VITE_FEDERATION_HOST=http://127.0.0.1:8010 +VITE_APP_HOST=http://127.0.0.1:8011/ +VITE_APP_NAME={{appName}} \ No newline at end of file diff --git a/plop/app/.env.single.hbs b/plop/app/.env.single.hbs new file mode 100644 index 00000000..2f5809e8 --- /dev/null +++ b/plop/app/.env.single.hbs @@ -0,0 +1,3 @@ +VITE_FEDERATION_HOST=http://127.0.0.1:8010 +VITE_APP_HOST=http://127.0.0.1:8001/ +VITE_APP_NAME={{appName}} \ No newline at end of file diff --git a/plop/app/.eslintrc.cjs.hbs b/plop/app/.eslintrc.cjs.hbs new file mode 100644 index 00000000..5ccaf5d4 --- /dev/null +++ b/plop/app/.eslintrc.cjs.hbs @@ -0,0 +1,7 @@ +module.exports = { root: true, env: { browser: true, es2020: true }, extends: +['eslint:recommended', 'plugin:@typescript-eslint/recommended', +'plugin:react-hooks/recommended', 'gbeata-eslint'], ignorePatterns: ['dist', +'.eslintrc.cjs'], parser: '@typescript-eslint/parser', plugins: +['react-refresh'], rules: { 'react-refresh/only-export-components': ['warn', { +allowConstantExport: true }], 'react-refresh/only-export-components': 'off', +'@typescript-eslint/ban-ts-comment': 'off' } } \ No newline at end of file diff --git a/plop/app/.gitignore.hbs b/plop/app/.gitignore.hbs new file mode 100644 index 00000000..cebdd8f3 --- /dev/null +++ b/plop/app/.gitignore.hbs @@ -0,0 +1,4 @@ +# Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* pnpm-debug.log* +lerna-debug.log* node_modules dist dist-ssr *.local # Editor directories and +files .vscode/* !.vscode/extensions.json .idea .DS_Store *.suo *.ntvs* *.njsproj +*.sln *.sw? \ No newline at end of file diff --git a/plop/app/README.md.hbs b/plop/app/README.md.hbs new file mode 100644 index 00000000..46ace669 --- /dev/null +++ b/plop/app/README.md.hbs @@ -0,0 +1,14 @@ +# {{appName}} + +{{description}} + +## How to use + +Install it and run: + +```bash +pnpm install +pnpm dev +``` + + diff --git a/plop/app/index.html.hbs b/plop/app/index.html.hbs new file mode 100644 index 00000000..2d6cd4f8 --- /dev/null +++ b/plop/app/index.html.hbs @@ -0,0 +1,12 @@ + + + + + + Gbeata Admin Template + + +
+ + + \ No newline at end of file diff --git a/plop/app/package.json.hbs b/plop/app/package.json.hbs new file mode 100644 index 00000000..e344c0e4 --- /dev/null +++ b/plop/app/package.json.hbs @@ -0,0 +1,29 @@ +{ + "name": "{{appName}}", + "description": "{{description}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0" + }, + "dependencies": { + "react": "latest", + "react": "latest", + "react-dom": "latest", + "react-router-dom": "^6.17.0", + "mockjs": "^1.1.0", + "ui": "workspace:^", + }, + "devDependencies": { + "@types/react": "latest", + "@types/react-dom": "latest", + "eslint-config-gbeata-eslint": "workspace:^", + "typescript": "latest", + "vite": "latest", + "vite-plugin-mock": "2.9.6", + } +} diff --git a/plop/app/public/vite.svg.hbs b/plop/app/public/vite.svg.hbs new file mode 100644 index 00000000..e7b8dfb1 --- /dev/null +++ b/plop/app/public/vite.svg.hbs @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plop/app/src/App.tsx.hbs b/plop/app/src/App.tsx.hbs new file mode 100644 index 00000000..bb3a951f --- /dev/null +++ b/plop/app/src/App.tsx.hbs @@ -0,0 +1,61 @@ +import { ThemeProvider } from 'antd-style'; +import { useEffect, useState } from 'react'; +import { HashRouter, RouterProvider } from 'react-router-dom'; +import { useGlobalStore } from 'store'; +import { GlobalConfig } from 'ui'; + +import router, { Router } from '@/router'; +import CustomGlobal from '@/styles/GlobalPager'; + +import LoadingPage from './components/LoadingPage'; + +function App() { + const preset = useGlobalStore((state) => state.preset); + const [loading, setLoading] = useState(true); + + useEffect(() => { + // 异步操作模拟(例如数据加载、初始化等) + const asyncOperation = async () => { + // 模拟异步操作 + await new Promise((resolve) => { + setTimeout(resolve, 3000); + }); + // 完成异步操作后,切换到主应用 + setLoading(false); + }; + + asyncOperation(); + }, []); // 仅在组件挂载时执行 + return ( + + + + {loading ? : } + {/* {loading ? ( + + ) : ( + + + + )} */} + + + ); +} + +export default App; diff --git a/plop/app/src/main.tsx.hbs b/plop/app/src/main.tsx.hbs new file mode 100644 index 00000000..554385ba --- /dev/null +++ b/plop/app/src/main.tsx.hbs @@ -0,0 +1,27 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; +// register svg icon +import 'virtual:svg-icons-register'; + +import App from './App'; + +interface NewToken { + colorDefault: string; + paperRedImg: string; + paperCyanImg: string; +} + +// 通过给 antd-style 扩展 CustomToken 对象类型定义,可以为 useTheme 中增加相应的 token 对象 +declare module 'antd-style' { + // eslint-disable-next-line @typescript-eslint/no-empty-interface + export interface CustomToken extends NewToken {} +} + +// const { preset } = useGlobalState(); +// console.log(preset); + +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( + + + , +); diff --git a/plop/app/src/pages/dashboard/index.tsx.hbs b/plop/app/src/pages/dashboard/index.tsx.hbs new file mode 100644 index 00000000..d0940a1a --- /dev/null +++ b/plop/app/src/pages/dashboard/index.tsx.hbs @@ -0,0 +1,14 @@ +import { Button } from "@mui/material"; +import { Link } from "react-router-dom"; +const Dashboard = () => { + return ( + <> + {{appName}} Dashboard + + + ); +}; + +export default Dashboard; diff --git a/plop/app/src/pages/dataTable/index.tsx.hbs b/plop/app/src/pages/dataTable/index.tsx.hbs new file mode 100644 index 00000000..2d359b7b --- /dev/null +++ b/plop/app/src/pages/dataTable/index.tsx.hbs @@ -0,0 +1,15 @@ +import { Button } from "@mui/material"; +import { Link } from "react-router-dom"; + +const DataTable = () => { + return ( + <> + {{appName}} DataTable + + + ); +}; + +export default DataTable; diff --git a/plop/app/src/pages/noFound/index.tsx.hbs b/plop/app/src/pages/noFound/index.tsx.hbs new file mode 100644 index 00000000..1f6b3e4d --- /dev/null +++ b/plop/app/src/pages/noFound/index.tsx.hbs @@ -0,0 +1,10 @@ +import { Link } from "react-router-dom"; + +export default function NotFound() { + return ( +
+

抱歉,您访问的页面不存在.

+ 返回到首页. +
+ ); +} diff --git a/plop/app/src/router/keeperHoc.tsx.hbs b/plop/app/src/router/keeperHoc.tsx.hbs new file mode 100644 index 00000000..25695ebc --- /dev/null +++ b/plop/app/src/router/keeperHoc.tsx.hbs @@ -0,0 +1,20 @@ +import { ReactNode } from 'react' +/** + * 预留组件,为后续统一处理路由模块准备 + * + * @param {string} name - The name of the keeper. + * @param {ReactNode} children - The children elements to render. + * @returns {ReactNode} - The rendered children elements. + */ +/* eslint-disable */ +function Keeper({ name, children }: { name: string; children: ReactNode }) { + return <>{children} +} + +export default function KeeperHoc(name: string, Component: ReactNode): ReactNode { + return ( + + {Component} + + ) +} diff --git a/plop/app/src/router/router.tsx.hbs b/plop/app/src/router/router.tsx.hbs new file mode 100644 index 00000000..83962ec3 --- /dev/null +++ b/plop/app/src/router/router.tsx.hbs @@ -0,0 +1,21 @@ +import Dashboard from '@/pages/dashboard' +import DataTable from '@/pages/dataTable' +import NotFound from '@/pages/noFound' + +import KeeperHoc from './keeperHoc' +const router = [ + { + path: '/', + element: KeeperHoc('/', ) + }, + { + path: '/data-table', + element: KeeperHoc('/data-table', ) + }, + { + path: '*', + element: + } +] + +export default router diff --git a/plop/app/src/vite-env.d.ts.hbs b/plop/app/src/vite-env.d.ts.hbs new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/plop/app/src/vite-env.d.ts.hbs @@ -0,0 +1 @@ +/// diff --git a/plop/app/tsconfig.json.hbs b/plop/app/tsconfig.json.hbs new file mode 100644 index 00000000..5c63679f --- /dev/null +++ b/plop/app/tsconfig.json.hbs @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "baseUrl": "./", + "paths": { + "@/*": ["src/*"] + } + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/plop/app/tsconfig.node.json.hbs b/plop/app/tsconfig.node.json.hbs new file mode 100644 index 00000000..9d31e2ae --- /dev/null +++ b/plop/app/tsconfig.node.json.hbs @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/plop/app/vite.config.ts.hbs b/plop/app/vite.config.ts.hbs new file mode 100644 index 00000000..83db160b --- /dev/null +++ b/plop/app/vite.config.ts.hbs @@ -0,0 +1,75 @@ +/* eslint-disable no-useless-escape */ +/* eslint-disable import/no-extraneous-dependencies */ +import react from '@vitejs/plugin-react'; +// 需要安装 @typings/node 插件 +// import { resolve } from 'path'; +import path, { resolve } from 'path'; +import { loadEnv } from 'vite'; +import { viteMockServe } from 'vite-plugin-mock'; +import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'; + +import { wrapperEnv } from './build/utils'; + +import type { ConfigEnv, UserConfig } from 'vite'; + +/** @type {import('vite').UserConfig} */ +export default ({ command, mode }: ConfigEnv): UserConfig => { + const root = process.cwd(); + const isBuild = command === 'build'; + + const env = loadEnv(mode, root); + + // this function can be converted to different typings + const viteEnv: any = wrapperEnv(env); + const { VITE_PORT, VITE_DROP_CONSOLE, VITE_APP_BASE_URL } = viteEnv; + + return { + base: VITE_APP_BASE_URL, + server: { + // Listening on all local ips + host: true, + port: VITE_PORT, + }, + plugins: [ + react(), + createSvgIconsPlugin({ + iconDirs: [resolve(process.cwd(), 'src/assets/icons')], + symbolId: 'icon-[dir]-[name]', + }), + viteMockServe({ + mockPath: 'mock', + ignore: /^_/, + localEnabled: !isBuild, + prodEnabled: isBuild, + injectCode: ` + import { setupProdMockServer } from './_createProductionServer'; + console.log(10086); + setupProdMockServer() + `, + // 当前文件夹下的src/main.ts + injectFile: path.join(__dirname, '/src/main.tsx'), + }), + ], + + build: { + target: 'es2015', + cssTarget: 'chrome86', + minify: 'esbuild', + outDir: '../../gbeata-dist', + terserOptions: { + compress: { + keep_infinity: true, + // used to delete console and debugger in production environment + drop_console: VITE_DROP_CONSOLE, + }, + }, + chunkSizeWarningLimit: 2000, + }, + + resolve: { + alias: { + '@': resolve(__dirname, './src'), + }, + }, + }; +}; diff --git a/plopfile.js b/plopfile.js new file mode 100644 index 00000000..b4337c45 --- /dev/null +++ b/plopfile.js @@ -0,0 +1,89 @@ +const workspaces = ['apps'] +const generators = ['app'] + +const defaultOutDirs = { + app: 'apps' +} + +/** + * @param {import("plop").NodePlopAPI} plop + */ +module.exports = function main(plop) { + generators.forEach((gen) => { + plop.setGenerator(gen, { + description: `Generates a ${gen}`, + prompts: [ + { + type: 'input', + name: `${gen}Name`, + message: `Enter ${gen} name:`, + + validate: (value) => { + if (!value) { + return `${gen} name is required` + } + + // check is case is correct + if (value !== value.toLowerCase()) { + return `${gen} name must be in lowercase` + } + + // cannot have spaces + if (value.includes(' ')) { + return `${gen} name cannot have spaces` + } + + return true + } + }, + { + type: 'input', + name: 'description', + message: `The description of this ${gen}:` + }, + { + type: 'list', + name: 'outDir', + message: `where should this ${gen} live?`, + default: defaultOutDirs[gen], + choices: workspaces, + validate: (value) => { + if (!value) { + return `outDir is required` + } + + return true + } + } + ], + actions(answers) { + const actions = [] + + if (!answers) return actions + + const { description, outDir } = answers + const generatorName = answers[`${gen}Name`] ?? '' + + const data = { + [`${gen}Name`]: generatorName, + description, + outDir + } + + actions.push({ + type: 'addMany', + templateFiles: `plop/${gen}/**`, + destination: `./{{outDir}}/{{dashCase ${gen}Name}}`, + base: `plop/${gen}`, + data, + abortOnFail: true, + globOptions: { + dot: true + } + }) + + return actions + } + }) + }) +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 21c9131e..485450ee 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,6 +20,9 @@ importers: esbuild: specifier: 0.18.20 version: registry.npmmirror.com/esbuild@0.18.20 + plop: + specifier: ^4.0.1 + version: registry.npmmirror.com/plop@4.0.1 devDependencies: '@changesets/cli': specifier: ^2.27.1 @@ -3994,6 +3997,15 @@ packages: '@lezer/common': registry.npmmirror.com/@lezer/common@1.1.2 dev: false + registry.npmmirror.com/@ljharb/through@2.3.11: + resolution: {integrity: sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ljharb/through/-/through-2.3.11.tgz} + name: '@ljharb/through' + version: 2.3.11 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + dev: false + registry.npmmirror.com/@loadable/component@5.15.2(react@18.1.0): resolution: {integrity: sha512-ryFAZOX5P2vFkUdzaAtTG88IGnr9qxSdvLRvJySXcUA4B4xVWurUNADu3AnKPksxOZajljqTrDEDcYjeL4lvLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@loadable/component/-/component-5.15.2.tgz} id: registry.npmmirror.com/@loadable/component/5.15.2 @@ -5395,6 +5407,12 @@ packages: version: 2.0.7 dev: true + registry.npmmirror.com/@types/fined@1.1.5: + resolution: {integrity: sha512-2N93vadEGDFhASTIRbizbl4bNqpMOId5zZfj6hHqYZfEzEfO9onnU4Im8xvzo8uudySDveDHBOOSlTWf38ErfQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/fined/-/fined-1.1.5.tgz} + name: '@types/fined' + version: 1.1.5 + dev: false + registry.npmmirror.com/@types/fs-extra@11.0.1: resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/fs-extra/-/fs-extra-11.0.1.tgz} name: '@types/fs-extra' @@ -5441,6 +5459,15 @@ packages: name: '@types/html-minifier-terser' version: 6.1.0 + registry.npmmirror.com/@types/inquirer@9.0.7: + resolution: {integrity: sha512-Q0zyBupO6NxGRZut/JdmqYKOnN95Eg5V8Csg3PGKkP+FnvsUZx1jAyK7fztIszxxMuoBA6E3KXWvdZVXIpx60g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/inquirer/-/inquirer-9.0.7.tgz} + name: '@types/inquirer' + version: 9.0.7 + dependencies: + '@types/through': registry.npmmirror.com/@types/through@0.0.33 + rxjs: registry.npmmirror.com/rxjs@7.8.1 + dev: false + registry.npmmirror.com/@types/istanbul-lib-coverage@2.0.6: resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz} name: '@types/istanbul-lib-coverage' @@ -5491,6 +5518,15 @@ packages: dependencies: '@types/node': registry.npmmirror.com/@types/node@20.10.4 + registry.npmmirror.com/@types/liftoff@4.0.3: + resolution: {integrity: sha512-UgbL2kR5pLrWICvr8+fuSg0u43LY250q7ZMkC+XKC3E+rs/YBDEnQIzsnhU5dYsLlwMi3R75UvCL87pObP1sxw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/liftoff/-/liftoff-4.0.3.tgz} + name: '@types/liftoff' + version: 4.0.3 + dependencies: + '@types/fined': registry.npmmirror.com/@types/fined@1.1.5 + '@types/node': registry.npmmirror.com/@types/node@20.10.4 + dev: false + registry.npmmirror.com/@types/loadable__component@5.13.8: resolution: {integrity: sha512-0FF/WihuPkR5IFOHiBzC95bSACvgQNUQCuNy1WF8F/lCBBHgS2SxarIk4CTjWM10A72ovpmXZDRcuAXZNS+/kQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/loadable__component/-/loadable__component-5.13.8.tgz} name: '@types/loadable__component' @@ -5693,6 +5729,14 @@ packages: '@types/node': registry.npmmirror.com/@types/node@20.10.4 dev: true + registry.npmmirror.com/@types/through@0.0.33: + resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/through/-/through-0.0.33.tgz} + name: '@types/through' + version: 0.0.33 + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.10.4 + dev: false + registry.npmmirror.com/@types/unist@2.0.10: resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/unist/-/unist-2.0.10.tgz} name: '@types/unist' @@ -7034,7 +7078,6 @@ packages: dependencies: clean-stack: registry.npmmirror.com/clean-stack@4.2.0 indent-string: registry.npmmirror.com/indent-string@5.0.0 - dev: true registry.npmmirror.com/aggregate-error@5.0.0: resolution: {integrity: sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/aggregate-error/-/aggregate-error-5.0.0.tgz} @@ -7136,7 +7179,6 @@ packages: engines: {node: '>=8'} dependencies: type-fest: registry.npmmirror.com/type-fest@0.21.3 - dev: true registry.npmmirror.com/ansi-escapes@5.0.0: resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-5.0.0.tgz} @@ -7193,7 +7235,6 @@ packages: name: ansi-regex version: 6.0.1 engines: {node: '>=12'} - dev: true registry.npmmirror.com/ansi-styles@2.2.1: resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz} @@ -7466,6 +7507,13 @@ packages: call-bind: registry.npmmirror.com/call-bind@1.0.5 is-array-buffer: registry.npmmirror.com/is-array-buffer@3.0.2 + registry.npmmirror.com/array-each@1.0.1: + resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-each/-/array-each-1.0.1.tgz} + name: array-each + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: false + registry.npmmirror.com/array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-ify/-/array-ify-1.0.0.tgz} name: array-ify @@ -7484,6 +7532,13 @@ packages: get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 is-string: registry.npmmirror.com/is-string@1.0.7 + registry.npmmirror.com/array-slice@1.1.0: + resolution: {integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-slice/-/array-slice-1.1.0.tgz} + name: array-slice + version: 1.1.0 + engines: {node: '>=0.10.0'} + dev: false + registry.npmmirror.com/array-tree-filter@2.1.0: resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz} name: array-tree-filter @@ -7979,7 +8034,6 @@ packages: buffer: registry.npmmirror.com/buffer@5.7.1 inherits: registry.npmmirror.com/inherits@2.0.4 readable-stream: registry.npmmirror.com/readable-stream@3.6.2 - dev: true registry.npmmirror.com/bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz} @@ -8217,7 +8271,6 @@ packages: dependencies: base64-js: registry.npmmirror.com/base64-js@1.5.1 ieee754: registry.npmmirror.com/ieee754@1.2.1 - dev: true registry.npmmirror.com/builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/builtin-modules/-/builtin-modules-3.3.0.tgz} @@ -8373,6 +8426,16 @@ packages: name: caniuse-lite version: 1.0.30001570 + registry.npmmirror.com/capital-case@1.0.4: + resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/capital-case/-/capital-case-1.0.4.tgz} + name: capital-case + version: 1.0.4 + dependencies: + no-case: registry.npmmirror.com/no-case@3.0.4 + tslib: registry.npmmirror.com/tslib@2.6.2 + upper-case-first: registry.npmmirror.com/upper-case-first@2.0.2 + dev: false + registry.npmmirror.com/capture-stack-trace@1.0.2: resolution: {integrity: sha512-X/WM2UQs6VMHUtjUDnZTRI+i1crWteJySFzr9UpGoQa4WQffXVTTXuekjl7TjZRlcF2XfjgITT0HxZ9RnxeT0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/capture-stack-trace/-/capture-stack-trace-1.0.2.tgz} name: capture-stack-trace @@ -8441,7 +8504,25 @@ packages: name: chalk version: 5.3.0 engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - dev: true + + registry.npmmirror.com/change-case@4.1.2: + resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/change-case/-/change-case-4.1.2.tgz} + name: change-case + version: 4.1.2 + dependencies: + camel-case: registry.npmmirror.com/camel-case@4.1.2 + capital-case: registry.npmmirror.com/capital-case@1.0.4 + constant-case: registry.npmmirror.com/constant-case@3.0.4 + dot-case: registry.npmmirror.com/dot-case@3.0.4 + header-case: registry.npmmirror.com/header-case@2.0.4 + no-case: registry.npmmirror.com/no-case@3.0.4 + param-case: registry.npmmirror.com/param-case@3.0.4 + pascal-case: registry.npmmirror.com/pascal-case@3.1.2 + path-case: registry.npmmirror.com/path-case@3.0.4 + sentence-case: registry.npmmirror.com/sentence-case@3.0.4 + snake-case: registry.npmmirror.com/snake-case@3.0.4 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false registry.npmmirror.com/char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/char-regex/-/char-regex-1.0.2.tgz} @@ -8590,7 +8671,6 @@ packages: engines: {node: '>=12'} dependencies: escape-string-regexp: registry.npmmirror.com/escape-string-regexp@5.0.0 - dev: true registry.npmmirror.com/clean-stack@5.2.0: resolution: {integrity: sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/clean-stack/-/clean-stack-5.2.0.tgz} @@ -8622,7 +8702,6 @@ packages: engines: {node: '>=8'} dependencies: restore-cursor: registry.npmmirror.com/restore-cursor@3.1.0 - dev: true registry.npmmirror.com/cli-cursor@4.0.0: resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-cursor/-/cli-cursor-4.0.0.tgz} @@ -8631,7 +8710,6 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: restore-cursor: registry.npmmirror.com/restore-cursor@4.0.0 - dev: true registry.npmmirror.com/cli-spinners@1.3.1: resolution: {integrity: sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-spinners/-/cli-spinners-1.3.1.tgz} @@ -8644,7 +8722,6 @@ packages: name: cli-spinners version: 2.9.2 engines: {node: '>=6'} - dev: true registry.npmmirror.com/cli-table3@0.6.3: resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-table3/-/cli-table3-0.6.3.tgz} @@ -8689,6 +8766,13 @@ packages: engines: {node: '>= 10'} dev: true + registry.npmmirror.com/cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-width/-/cli-width-4.1.0.tgz} + name: cli-width + version: 4.1.0 + engines: {node: '>= 12'} + dev: false + registry.npmmirror.com/click-to-react-component@1.1.0(@types/react@18.2.45)(react-dom@18.1.0)(react@18.1.0): resolution: {integrity: sha512-/DjZemufS1BkxyRgZL3r7HXVVOFRWVQi5Xd4EBnjxZMwrHEh0OlUVA2N9CjXkZ0x8zMf8dL1cKnnx+xUWUg4VA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/click-to-react-component/-/click-to-react-component-1.1.0.tgz} id: registry.npmmirror.com/click-to-react-component/1.1.0 @@ -8730,7 +8814,6 @@ packages: name: clone version: 1.0.4 engines: {node: '>=0.8'} - dev: true registry.npmmirror.com/clone@2.1.2: resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/clone/-/clone-2.1.2.tgz} @@ -9073,6 +9156,16 @@ packages: name: console-browserify version: 1.2.0 + registry.npmmirror.com/constant-case@3.0.4: + resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/constant-case/-/constant-case-3.0.4.tgz} + name: constant-case + version: 3.0.4 + dependencies: + no-case: registry.npmmirror.com/no-case@3.0.4 + tslib: registry.npmmirror.com/tslib@2.6.2 + upper-case: registry.npmmirror.com/upper-case@2.0.2 + dev: false + registry.npmmirror.com/constants-browserify@1.0.0: resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/constants-browserify/-/constants-browserify-1.0.0.tgz} name: constants-browserify @@ -9971,7 +10064,6 @@ packages: version: 1.0.4 dependencies: clone: registry.npmmirror.com/clone@1.0.4 - dev: true registry.npmmirror.com/define-data-property@1.1.1: resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.1.tgz} @@ -10033,6 +10125,22 @@ packages: isobject: registry.npmmirror.com/isobject@3.0.1 dev: true + registry.npmmirror.com/del@7.1.0: + resolution: {integrity: sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/del/-/del-7.1.0.tgz} + name: del + version: 7.1.0 + engines: {node: '>=14.16'} + dependencies: + globby: registry.npmmirror.com/globby@13.2.2 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + is-glob: registry.npmmirror.com/is-glob@4.0.3 + is-path-cwd: registry.npmmirror.com/is-path-cwd@3.0.0 + is-path-inside: registry.npmmirror.com/is-path-inside@4.0.0 + p-map: registry.npmmirror.com/p-map@5.5.0 + rimraf: registry.npmmirror.com/rimraf@3.0.2 + slash: registry.npmmirror.com/slash@4.0.0 + dev: false + registry.npmmirror.com/delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz} name: delayed-stream @@ -10065,7 +10173,6 @@ packages: name: detect-file version: 1.0.0 engines: {node: '>=0.10.0'} - dev: true registry.npmmirror.com/detect-indent@6.1.0: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/detect-indent/-/detect-indent-6.1.0.tgz} @@ -10542,7 +10649,6 @@ packages: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/emoji-regex/-/emoji-regex-10.3.0.tgz} name: emoji-regex version: 10.3.0 - dev: true registry.npmmirror.com/emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz} @@ -11446,7 +11552,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: homedir-polyfill: registry.npmmirror.com/homedir-polyfill@1.0.3 - dev: true registry.npmmirror.com/ext@1.7.0: resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ext/-/ext-1.7.0.tgz} @@ -11664,6 +11769,16 @@ packages: escape-string-regexp: registry.npmmirror.com/escape-string-regexp@1.0.5 dev: true + registry.npmmirror.com/figures@5.0.0: + resolution: {integrity: sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/figures/-/figures-5.0.0.tgz} + name: figures + version: 5.0.0 + engines: {node: '>=14'} + dependencies: + escape-string-regexp: registry.npmmirror.com/escape-string-regexp@5.0.0 + is-unicode-supported: registry.npmmirror.com/is-unicode-supported@1.3.0 + dev: false + registry.npmmirror.com/figures@6.0.1: resolution: {integrity: sha512-0oY/olScYD4IhQ8u//gCPA4F3mlTn2dacYmiDm/mbDQvpmLjV4uH+zhsQ5IyXRyvqkvtUkXkNdGvg5OFJTCsuQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/figures/-/figures-6.0.1.tgz} name: figures @@ -11875,6 +11990,38 @@ packages: resolve-dir: registry.npmmirror.com/resolve-dir@1.0.1 dev: true + registry.npmmirror.com/findup-sync@5.0.0: + resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/findup-sync/-/findup-sync-5.0.0.tgz} + name: findup-sync + version: 5.0.0 + engines: {node: '>= 10.13.0'} + dependencies: + detect-file: registry.npmmirror.com/detect-file@1.0.0 + is-glob: registry.npmmirror.com/is-glob@4.0.3 + micromatch: registry.npmmirror.com/micromatch@4.0.5 + resolve-dir: registry.npmmirror.com/resolve-dir@1.0.1 + dev: false + + registry.npmmirror.com/fined@2.0.0: + resolution: {integrity: sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fined/-/fined-2.0.0.tgz} + name: fined + version: 2.0.0 + engines: {node: '>= 10.13.0'} + dependencies: + expand-tilde: registry.npmmirror.com/expand-tilde@2.0.2 + is-plain-object: registry.npmmirror.com/is-plain-object@5.0.0 + object.defaults: registry.npmmirror.com/object.defaults@1.1.0 + object.pick: registry.npmmirror.com/object.pick@1.3.0 + parse-filepath: registry.npmmirror.com/parse-filepath@1.0.2 + dev: false + + registry.npmmirror.com/flagged-respawn@2.0.0: + resolution: {integrity: sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/flagged-respawn/-/flagged-respawn-2.0.0.tgz} + name: flagged-respawn + version: 2.0.0 + engines: {node: '>= 10.13.0'} + dev: false + registry.npmmirror.com/flat-cache@3.2.0: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/flat-cache/-/flat-cache-3.2.0.tgz} name: flat-cache @@ -11932,7 +12079,15 @@ packages: name: for-in version: 1.0.2 engines: {node: '>=0.10.0'} - dev: true + + registry.npmmirror.com/for-own@1.0.0: + resolution: {integrity: sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/for-own/-/for-own-1.0.0.tgz} + name: for-own + version: 1.0.0 + engines: {node: '>=0.10.0'} + dependencies: + for-in: registry.npmmirror.com/for-in@1.0.2 + dev: false registry.npmmirror.com/foreground-child@3.1.1: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/foreground-child/-/foreground-child-3.1.1.tgz} @@ -12213,7 +12368,6 @@ packages: name: get-east-asian-width version: 1.2.0 engines: {node: '>=18'} - dev: true registry.npmmirror.com/get-intrinsic@1.2.2: resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz} @@ -12437,7 +12591,6 @@ packages: global-prefix: registry.npmmirror.com/global-prefix@1.0.2 is-windows: registry.npmmirror.com/is-windows@1.0.2 resolve-dir: registry.npmmirror.com/resolve-dir@1.0.1 - dev: true registry.npmmirror.com/global-modules@2.0.0: resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/global-modules/-/global-modules-2.0.0.tgz} @@ -12469,7 +12622,6 @@ packages: ini: registry.npmmirror.com/ini@1.3.8 is-windows: registry.npmmirror.com/is-windows@1.0.2 which: registry.npmmirror.com/which@1.3.1 - dev: true registry.npmmirror.com/global-prefix@3.0.0: resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/global-prefix/-/global-prefix-3.0.0.tgz} @@ -12614,7 +12766,6 @@ packages: wordwrap: registry.npmmirror.com/wordwrap@1.0.0 optionalDependencies: uglify-js: registry.npmmirror.com/uglify-js@3.17.4 - dev: true registry.npmmirror.com/hard-rejection@2.1.0: resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hard-rejection/-/hard-rejection-2.1.0.tgz} @@ -12953,6 +13104,15 @@ packages: version: 1.2.0 hasBin: true + registry.npmmirror.com/header-case@2.0.4: + resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/header-case/-/header-case-2.0.4.tgz} + name: header-case + version: 2.0.4 + dependencies: + capital-case: registry.npmmirror.com/capital-case@1.0.4 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + registry.npmmirror.com/heti-findandreplacedomtext@0.5.0: resolution: {integrity: sha512-GFZjqU8LAdu1uR72GqrReI+lzNLMlcWtvdz1TKNJiofyo1mfTecFYSZEoEbcLcRMl+KwEldnNQoS4BwO8wtg0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/heti-findandreplacedomtext/-/heti-findandreplacedomtext-0.5.0.tgz} name: heti-findandreplacedomtext @@ -13428,7 +13588,6 @@ packages: name: indent-string version: 5.0.0 engines: {node: '>=12'} - dev: true registry.npmmirror.com/index-to-position@0.1.2: resolution: {integrity: sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/index-to-position/-/index-to-position-0.1.2.tgz} @@ -13508,6 +13667,29 @@ packages: wrap-ansi: registry.npmmirror.com/wrap-ansi@7.0.0 dev: true + registry.npmmirror.com/inquirer@9.2.12: + resolution: {integrity: sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inquirer/-/inquirer-9.2.12.tgz} + name: inquirer + version: 9.2.12 + engines: {node: '>=14.18.0'} + dependencies: + '@ljharb/through': registry.npmmirror.com/@ljharb/through@2.3.11 + ansi-escapes: registry.npmmirror.com/ansi-escapes@4.3.2 + chalk: registry.npmmirror.com/chalk@5.3.0 + cli-cursor: registry.npmmirror.com/cli-cursor@3.1.0 + cli-width: registry.npmmirror.com/cli-width@4.1.0 + external-editor: registry.npmmirror.com/external-editor@3.1.0 + figures: registry.npmmirror.com/figures@5.0.0 + lodash: registry.npmmirror.com/lodash@4.17.21 + mute-stream: registry.npmmirror.com/mute-stream@1.0.0 + ora: registry.npmmirror.com/ora@5.4.1 + run-async: registry.npmmirror.com/run-async@3.0.0 + rxjs: registry.npmmirror.com/rxjs@7.8.1 + string-width: registry.npmmirror.com/string-width@4.2.3 + strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 + wrap-ansi: registry.npmmirror.com/wrap-ansi@6.2.0 + dev: false + registry.npmmirror.com/internal-slot@1.0.6: resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.6.tgz} name: internal-slot @@ -13518,6 +13700,13 @@ packages: hasown: registry.npmmirror.com/hasown@2.0.0 side-channel: registry.npmmirror.com/side-channel@1.0.4 + registry.npmmirror.com/interpret@3.1.1: + resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/interpret/-/interpret-3.1.1.tgz} + name: interpret + version: 3.1.1 + engines: {node: '>=10.13.0'} + dev: false + registry.npmmirror.com/intersection-observer@0.12.2: resolution: {integrity: sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/intersection-observer/-/intersection-observer-0.12.2.tgz} name: intersection-observer @@ -13556,6 +13745,16 @@ packages: name: ip version: 1.1.8 + registry.npmmirror.com/is-absolute@1.0.0: + resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-absolute/-/is-absolute-1.0.0.tgz} + name: is-absolute + version: 1.0.0 + engines: {node: '>=0.10.0'} + dependencies: + is-relative: registry.npmmirror.com/is-relative@1.0.0 + is-windows: registry.npmmirror.com/is-windows@1.0.2 + dev: false + registry.npmmirror.com/is-accessor-descriptor@1.0.1: resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz} name: is-accessor-descriptor @@ -13905,7 +14104,13 @@ packages: name: is-interactive version: 1.0.0 engines: {node: '>=8'} - dev: true + + registry.npmmirror.com/is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-interactive/-/is-interactive-2.0.0.tgz} + name: is-interactive + version: 2.0.0 + engines: {node: '>=12'} + dev: false registry.npmmirror.com/is-map@2.0.2: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-map/-/is-map-2.0.2.tgz} @@ -13966,6 +14171,13 @@ packages: engines: {node: '>=8'} dev: true + registry.npmmirror.com/is-path-cwd@3.0.0: + resolution: {integrity: sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-path-cwd/-/is-path-cwd-3.0.0.tgz} + name: is-path-cwd + version: 3.0.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false + registry.npmmirror.com/is-path-inside@1.0.1: resolution: {integrity: sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-path-inside/-/is-path-inside-1.0.1.tgz} name: is-path-inside @@ -13980,6 +14192,13 @@ packages: version: 3.0.3 engines: {node: '>=8'} + registry.npmmirror.com/is-path-inside@4.0.0: + resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-path-inside/-/is-path-inside-4.0.0.tgz} + name: is-path-inside + version: 4.0.0 + engines: {node: '>=12'} + dev: false + registry.npmmirror.com/is-plain-obj@1.1.0: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz} name: is-plain-obj @@ -14021,6 +14240,15 @@ packages: call-bind: registry.npmmirror.com/call-bind@1.0.5 has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + registry.npmmirror.com/is-relative@1.0.0: + resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-relative/-/is-relative-1.0.0.tgz} + name: is-relative + version: 1.0.0 + engines: {node: '>=0.10.0'} + dependencies: + is-unc-path: registry.npmmirror.com/is-unc-path@1.0.0 + dev: false + registry.npmmirror.com/is-retry-allowed@1.2.0: resolution: {integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz} name: is-retry-allowed @@ -14108,19 +14336,33 @@ packages: dependencies: which-typed-array: registry.npmmirror.com/which-typed-array@1.1.13 + registry.npmmirror.com/is-unc-path@1.0.0: + resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-unc-path/-/is-unc-path-1.0.0.tgz} + name: is-unc-path + version: 1.0.0 + engines: {node: '>=0.10.0'} + dependencies: + unc-path-regex: registry.npmmirror.com/unc-path-regex@0.1.2 + dev: false + registry.npmmirror.com/is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz} name: is-unicode-supported version: 0.1.0 engines: {node: '>=10'} - dev: true + + registry.npmmirror.com/is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz} + name: is-unicode-supported + version: 1.3.0 + engines: {node: '>=12'} + dev: false registry.npmmirror.com/is-unicode-supported@2.0.0: resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz} name: is-unicode-supported version: 2.0.0 engines: {node: '>=18'} - dev: true registry.npmmirror.com/is-url@1.2.4: resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-url/-/is-url-1.2.4.tgz} @@ -14170,7 +14412,6 @@ packages: name: is-windows version: 1.0.2 engines: {node: '>=0.10.0'} - dev: true registry.npmmirror.com/is-wsl@1.1.0: resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-wsl/-/is-wsl-1.1.0.tgz} @@ -14201,6 +14442,13 @@ packages: name: isarray version: 2.0.5 + registry.npmmirror.com/isbinaryfile@5.0.0: + resolution: {integrity: sha512-UDdnyGvMajJUWCkib7Cei/dvyJrrvo4FIrsvSFWdPpXSUorzXrDJ0S+X5Q4ZlasfPjca4yqCNNsjbCeiy8FFeg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isbinaryfile/-/isbinaryfile-5.0.0.tgz} + name: isbinaryfile + version: 5.0.0 + engines: {node: '>= 14.0.0'} + dev: false + registry.npmmirror.com/isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz} name: isexe @@ -14675,6 +14923,22 @@ packages: prelude-ls: registry.npmmirror.com/prelude-ls@1.2.1 type-check: registry.npmmirror.com/type-check@0.4.0 + registry.npmmirror.com/liftoff@4.0.0: + resolution: {integrity: sha512-rMGwYF8q7g2XhG2ulBmmJgWv25qBsqRbDn5gH0+wnuyeFt7QBJlHJmtg5qEdn4pN6WVAUMgXnIxytMFRX9c1aA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/liftoff/-/liftoff-4.0.0.tgz} + name: liftoff + version: 4.0.0 + engines: {node: '>=10.13.0'} + dependencies: + extend: registry.npmmirror.com/extend@3.0.2 + findup-sync: registry.npmmirror.com/findup-sync@5.0.0 + fined: registry.npmmirror.com/fined@2.0.0 + flagged-respawn: registry.npmmirror.com/flagged-respawn@2.0.0 + is-plain-object: registry.npmmirror.com/is-plain-object@5.0.0 + object.map: registry.npmmirror.com/object.map@1.0.1 + rechoir: registry.npmmirror.com/rechoir@0.8.0 + resolve: registry.npmmirror.com/resolve@1.22.8 + dev: false + registry.npmmirror.com/lightningcss-darwin-arm64@1.22.1: resolution: {integrity: sha512-ldvElu+R0QimNTjsKpaZkUv3zf+uefzLy/R1R19jtgOfSRM+zjUCUgDhfEDRmVqJtMwYsdhMI2aJtJChPC6Osg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.22.1.tgz} name: lightningcss-darwin-arm64 @@ -15025,7 +15289,6 @@ packages: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.get/-/lodash.get-4.4.2.tgz} name: lodash.get version: 4.4.2 - dev: true registry.npmmirror.com/lodash.isequal@4.5.0: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz} @@ -15146,7 +15409,16 @@ packages: dependencies: chalk: registry.npmmirror.com/chalk@4.1.2 is-unicode-supported: registry.npmmirror.com/is-unicode-supported@0.1.0 - dev: true + + registry.npmmirror.com/log-symbols@6.0.0: + resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/log-symbols/-/log-symbols-6.0.0.tgz} + name: log-symbols + version: 6.0.0 + engines: {node: '>=18'} + dependencies: + chalk: registry.npmmirror.com/chalk@5.3.0 + is-unicode-supported: registry.npmmirror.com/is-unicode-supported@1.3.0 + dev: false registry.npmmirror.com/log-update@5.0.1: resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/log-update/-/log-update-5.0.1.tgz} @@ -15302,6 +15574,15 @@ packages: transitivePeerDependencies: - supports-color + registry.npmmirror.com/make-iterator@1.0.1: + resolution: {integrity: sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/make-iterator/-/make-iterator-1.0.1.tgz} + name: make-iterator + version: 1.0.1 + engines: {node: '>=0.10.0'} + dependencies: + kind-of: registry.npmmirror.com/kind-of@6.0.3 + dev: false + registry.npmmirror.com/makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/makeerror/-/makeerror-1.0.12.tgz} name: makeerror @@ -15314,7 +15595,6 @@ packages: name: map-cache version: 0.2.2 engines: {node: '>=0.10.0'} - dev: true registry.npmmirror.com/map-obj@1.0.1: resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/map-obj/-/map-obj-1.0.1.tgz} @@ -16217,6 +16497,14 @@ packages: dependencies: minimist: registry.npmmirror.com/minimist@1.2.8 + registry.npmmirror.com/mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mkdirp/-/mkdirp-3.0.1.tgz} + name: mkdirp + version: 3.0.1 + engines: {node: '>=10'} + hasBin: true + dev: false + registry.npmmirror.com/mockjs@1.1.0: resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mockjs/-/mockjs-1.1.0.tgz} name: mockjs @@ -16279,6 +16567,13 @@ packages: version: 0.0.8 dev: true + registry.npmmirror.com/mute-stream@1.0.0: + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mute-stream/-/mute-stream-1.0.0.tgz} + name: mute-stream + version: 1.0.0 + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: false + registry.npmmirror.com/namespace-emitter@2.0.1: resolution: {integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/namespace-emitter/-/namespace-emitter-2.0.1.tgz} name: namespace-emitter @@ -16452,6 +16747,27 @@ packages: util: registry.npmmirror.com/util@0.11.1 vm-browserify: registry.npmmirror.com/vm-browserify@1.1.2 + registry.npmmirror.com/node-plop@0.32.0: + resolution: {integrity: sha512-lKFSRSRuDHhwDKMUobdsvaWCbbDRbV3jMUSMiajQSQux1aNUevAZVxUHc2JERI//W8ABPRbi3ebYuSuIzkNIpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-plop/-/node-plop-0.32.0.tgz} + name: node-plop + version: 0.32.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + '@types/inquirer': registry.npmmirror.com/@types/inquirer@9.0.7 + change-case: registry.npmmirror.com/change-case@4.1.2 + del: registry.npmmirror.com/del@7.1.0 + globby: registry.npmmirror.com/globby@13.2.2 + handlebars: registry.npmmirror.com/handlebars@4.7.8 + inquirer: registry.npmmirror.com/inquirer@9.2.12 + isbinaryfile: registry.npmmirror.com/isbinaryfile@5.0.0 + lodash.get: registry.npmmirror.com/lodash.get@4.4.2 + lower-case: registry.npmmirror.com/lower-case@2.0.2 + mkdirp: registry.npmmirror.com/mkdirp@3.0.1 + resolve: registry.npmmirror.com/resolve@1.22.8 + title-case: registry.npmmirror.com/title-case@3.0.3 + upper-case: registry.npmmirror.com/upper-case@2.0.2 + dev: false + registry.npmmirror.com/node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-releases/-/node-releases-2.0.14.tgz} name: node-releases @@ -16710,6 +17026,18 @@ packages: has-symbols: registry.npmmirror.com/has-symbols@1.0.3 object-keys: registry.npmmirror.com/object-keys@1.1.1 + registry.npmmirror.com/object.defaults@1.1.0: + resolution: {integrity: sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.defaults/-/object.defaults-1.1.0.tgz} + name: object.defaults + version: 1.1.0 + engines: {node: '>=0.10.0'} + dependencies: + array-each: registry.npmmirror.com/array-each@1.0.1 + array-slice: registry.npmmirror.com/array-slice@1.1.0 + for-own: registry.npmmirror.com/for-own@1.0.0 + isobject: registry.npmmirror.com/isobject@3.0.1 + dev: false + registry.npmmirror.com/object.entries@1.1.7: resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.entries/-/object.entries-1.1.7.tgz} name: object.entries @@ -16772,6 +17100,16 @@ packages: define-properties: registry.npmmirror.com/define-properties@1.2.1 es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + registry.npmmirror.com/object.map@1.0.1: + resolution: {integrity: sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.map/-/object.map-1.0.1.tgz} + name: object.map + version: 1.0.1 + engines: {node: '>=0.10.0'} + dependencies: + for-own: registry.npmmirror.com/for-own@1.0.0 + make-iterator: registry.npmmirror.com/make-iterator@1.0.1 + dev: false + registry.npmmirror.com/object.pick@1.3.0: resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.pick/-/object.pick-1.3.0.tgz} name: object.pick @@ -16779,7 +17117,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: isobject: registry.npmmirror.com/isobject@3.0.1 - dev: true registry.npmmirror.com/object.values@1.1.7: resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.values/-/object.values-1.1.7.tgz} @@ -16918,7 +17255,23 @@ packages: log-symbols: registry.npmmirror.com/log-symbols@4.1.0 strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 wcwidth: registry.npmmirror.com/wcwidth@1.0.1 - dev: true + + registry.npmmirror.com/ora@8.0.1: + resolution: {integrity: sha512-ANIvzobt1rls2BDny5fWZ3ZVKyD6nscLvfFRpQgfWsythlcsVUC9kL0zq6j2Z5z9wwp1kd7wpsD/T9qNPVLCaQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ora/-/ora-8.0.1.tgz} + name: ora + version: 8.0.1 + engines: {node: '>=18'} + dependencies: + chalk: registry.npmmirror.com/chalk@5.3.0 + cli-cursor: registry.npmmirror.com/cli-cursor@4.0.0 + cli-spinners: registry.npmmirror.com/cli-spinners@2.9.2 + is-interactive: registry.npmmirror.com/is-interactive@2.0.0 + is-unicode-supported: registry.npmmirror.com/is-unicode-supported@2.0.0 + log-symbols: registry.npmmirror.com/log-symbols@6.0.0 + stdin-discarder: registry.npmmirror.com/stdin-discarder@0.2.2 + string-width: registry.npmmirror.com/string-width@7.0.0 + strip-ansi: registry.npmmirror.com/strip-ansi@7.1.0 + dev: false registry.npmmirror.com/os-browserify@0.3.0: resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/os-browserify/-/os-browserify-0.3.0.tgz} @@ -17062,7 +17415,6 @@ packages: engines: {node: '>=12'} dependencies: aggregate-error: registry.npmmirror.com/aggregate-error@4.0.1 - dev: true registry.npmmirror.com/p-reduce@2.1.0: resolution: {integrity: sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-reduce/-/p-reduce-2.1.0.tgz} @@ -17199,6 +17551,17 @@ packages: is-decimal: registry.npmmirror.com/is-decimal@2.0.1 is-hexadecimal: registry.npmmirror.com/is-hexadecimal@2.0.1 + registry.npmmirror.com/parse-filepath@1.0.2: + resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-filepath/-/parse-filepath-1.0.2.tgz} + name: parse-filepath + version: 1.0.2 + engines: {node: '>=0.8'} + dependencies: + is-absolute: registry.npmmirror.com/is-absolute@1.0.0 + map-cache: registry.npmmirror.com/map-cache@0.2.2 + path-root: registry.npmmirror.com/path-root@0.1.1 + dev: false + registry.npmmirror.com/parse-git-config@0.2.0: resolution: {integrity: sha512-amapZFADOJtHvX2URcRfbzG2OFcW+UAwmdK2kht2N2vsH5Py65VxI5yZTlD2DjmxVhTz6htFoVCxROYUJaYOXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-git-config/-/parse-git-config-0.2.0.tgz} name: parse-git-config @@ -17315,6 +17678,15 @@ packages: name: path-browserify version: 0.0.1 + registry.npmmirror.com/path-case@3.0.4: + resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-case/-/path-case-3.0.4.tgz} + name: path-case + version: 3.0.4 + dependencies: + dot-case: registry.npmmirror.com/dot-case@3.0.4 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + registry.npmmirror.com/path-exists@3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-exists/-/path-exists-3.0.0.tgz} name: path-exists @@ -17362,6 +17734,22 @@ packages: name: path-parse version: 1.0.7 + registry.npmmirror.com/path-root-regex@0.1.2: + resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-root-regex/-/path-root-regex-0.1.2.tgz} + name: path-root-regex + version: 0.1.2 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/path-root@0.1.1: + resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-root/-/path-root-0.1.1.tgz} + name: path-root + version: 0.1.1 + engines: {node: '>=0.10.0'} + dependencies: + path-root-regex: registry.npmmirror.com/path-root-regex@0.1.2 + dev: false + registry.npmmirror.com/path-scurry@1.10.1: resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-scurry/-/path-scurry-1.10.1.tgz} name: path-scurry @@ -17517,6 +17905,23 @@ packages: find-up: registry.npmmirror.com/find-up@3.0.0 dev: true + registry.npmmirror.com/plop@4.0.1: + resolution: {integrity: sha512-5n8QU93kvL/ObOzBcPAB1siVFtAH1TZM6TntJ3JK5kXT0jIgnQV+j+uaOWWFJlg1cNkzLYm8klgASF65K36q9w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/plop/-/plop-4.0.1.tgz} + name: plop + version: 4.0.1 + engines: {node: '>=18'} + hasBin: true + dependencies: + '@types/liftoff': registry.npmmirror.com/@types/liftoff@4.0.3 + chalk: registry.npmmirror.com/chalk@5.3.0 + interpret: registry.npmmirror.com/interpret@3.1.1 + liftoff: registry.npmmirror.com/liftoff@4.0.0 + minimist: registry.npmmirror.com/minimist@1.2.8 + node-plop: registry.npmmirror.com/node-plop@0.32.0 + ora: registry.npmmirror.com/ora@8.0.1 + v8flags: registry.npmmirror.com/v8flags@4.0.1 + dev: false + registry.npmmirror.com/pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pluralize/-/pluralize-8.0.0.tgz} name: pluralize @@ -20153,6 +20558,15 @@ packages: version: 0.1.0 engines: {node: '>= 12.13.0'} + registry.npmmirror.com/rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rechoir/-/rechoir-0.8.0.tgz} + name: rechoir + version: 0.8.0 + engines: {node: '>= 10.13.0'} + dependencies: + resolve: registry.npmmirror.com/resolve@1.22.8 + dev: false + registry.npmmirror.com/redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/redent/-/redent-3.0.0.tgz} name: redent @@ -20627,7 +21041,6 @@ packages: dependencies: expand-tilde: registry.npmmirror.com/expand-tilde@2.0.2 global-modules: registry.npmmirror.com/global-modules@1.0.0 - dev: true registry.npmmirror.com/resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz} @@ -20708,7 +21121,6 @@ packages: dependencies: onetime: registry.npmmirror.com/onetime@5.1.2 signal-exit: registry.npmmirror.com/signal-exit@3.0.7 - dev: true registry.npmmirror.com/restore-cursor@4.0.0: resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/restore-cursor/-/restore-cursor-4.0.0.tgz} @@ -20718,7 +21130,6 @@ packages: dependencies: onetime: registry.npmmirror.com/onetime@5.1.2 signal-exit: registry.npmmirror.com/signal-exit@3.0.7 - dev: true registry.npmmirror.com/ret@0.1.15: resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ret/-/ret-0.1.15.tgz} @@ -20850,6 +21261,13 @@ packages: version: 2.4.1 engines: {node: '>=0.12.0'} + registry.npmmirror.com/run-async@3.0.0: + resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/run-async/-/run-async-3.0.0.tgz} + name: run-async + version: 3.0.0 + engines: {node: '>=0.12.0'} + dev: false + registry.npmmirror.com/run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz} name: run-parallel @@ -20878,7 +21296,6 @@ packages: version: 7.8.1 dependencies: tslib: registry.npmmirror.com/tslib@2.6.2 - dev: true registry.npmmirror.com/sade@1.8.1: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sade/-/sade-1.8.1.tgz} @@ -21104,6 +21521,16 @@ packages: dependencies: lru-cache: registry.npmmirror.com/lru-cache@6.0.0 + registry.npmmirror.com/sentence-case@3.0.4: + resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sentence-case/-/sentence-case-3.0.4.tgz} + name: sentence-case + version: 3.0.4 + dependencies: + no-case: registry.npmmirror.com/no-case@3.0.4 + tslib: registry.npmmirror.com/tslib@2.6.2 + upper-case-first: registry.npmmirror.com/upper-case-first@2.0.2 + dev: false + registry.npmmirror.com/serialize-javascript@6.0.1: resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz} name: serialize-javascript @@ -21376,6 +21803,15 @@ packages: engines: {node: '>=8.3.0'} dev: false + registry.npmmirror.com/snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/snake-case/-/snake-case-3.0.4.tgz} + name: snake-case + version: 3.0.4 + dependencies: + dot-case: registry.npmmirror.com/dot-case@3.0.4 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + registry.npmmirror.com/snapdragon-node@2.1.1: resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz} name: snapdragon-node @@ -21718,6 +22154,13 @@ packages: engines: {node: '>= 0.6'} dev: false + registry.npmmirror.com/stdin-discarder@0.2.2: + resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stdin-discarder/-/stdin-discarder-0.2.2.tgz} + name: stdin-discarder + version: 0.2.2 + engines: {node: '>=18'} + dev: false + registry.npmmirror.com/stop-iteration-iterator@1.0.0: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz} name: stop-iteration-iterator @@ -21840,7 +22283,6 @@ packages: emoji-regex: registry.npmmirror.com/emoji-regex@10.3.0 get-east-asian-width: registry.npmmirror.com/get-east-asian-width@1.2.0 strip-ansi: registry.npmmirror.com/strip-ansi@7.1.0 - dev: true registry.npmmirror.com/string.prototype.matchall@4.0.10: resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz} @@ -21953,7 +22395,6 @@ packages: engines: {node: '>=12'} dependencies: ansi-regex: registry.npmmirror.com/ansi-regex@6.0.1 - dev: true registry.npmmirror.com/strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz} @@ -22532,6 +22973,14 @@ packages: version: 1.0.3 dev: false + registry.npmmirror.com/title-case@3.0.3: + resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/title-case/-/title-case-3.0.3.tgz} + name: title-case + version: 3.0.3 + dependencies: + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + registry.npmmirror.com/titleize@3.0.0: resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/titleize/-/titleize-3.0.0.tgz} name: titleize @@ -22877,7 +23326,6 @@ packages: name: type-fest version: 0.21.3 engines: {node: '>=10'} - dev: true registry.npmmirror.com/type-fest@0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.6.0.tgz} @@ -23019,7 +23467,6 @@ packages: engines: {node: '>=0.8.0'} hasBin: true requiresBuild: true - dev: true optional: true registry.npmmirror.com/umi-request@1.4.0: @@ -23093,6 +23540,13 @@ packages: has-symbols: registry.npmmirror.com/has-symbols@1.0.3 which-boxed-primitive: registry.npmmirror.com/which-boxed-primitive@1.0.2 + registry.npmmirror.com/unc-path-regex@0.1.2: + resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz} + name: unc-path-regex + version: 0.1.2 + engines: {node: '>=0.10.0'} + dev: false + registry.npmmirror.com/undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz} name: undici-types @@ -23347,6 +23801,22 @@ packages: semver-diff: registry.npmmirror.com/semver-diff@2.1.0 xdg-basedir: registry.npmmirror.com/xdg-basedir@3.0.0 + registry.npmmirror.com/upper-case-first@2.0.2: + resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/upper-case-first/-/upper-case-first-2.0.2.tgz} + name: upper-case-first + version: 2.0.2 + dependencies: + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/upper-case@2.0.2: + resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/upper-case/-/upper-case-2.0.2.tgz} + name: upper-case + version: 2.0.2 + dependencies: + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + registry.npmmirror.com/uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz} name: uri-js @@ -23516,6 +23986,13 @@ packages: name: v8-compile-cache version: 2.4.0 + registry.npmmirror.com/v8flags@4.0.1: + resolution: {integrity: sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/v8flags/-/v8flags-4.0.1.tgz} + name: v8flags + version: 4.0.1 + engines: {node: '>= 10.13.0'} + dev: false + registry.npmmirror.com/validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz} name: validate-npm-package-license @@ -23768,7 +24245,6 @@ packages: version: 1.0.1 dependencies: defaults: registry.npmmirror.com/defaults@1.0.4 - dev: true registry.npmmirror.com/web-namespaces@2.0.1: resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/web-namespaces/-/web-namespaces-2.0.1.tgz} @@ -23959,7 +24435,6 @@ packages: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wordwrap/-/wordwrap-1.0.0.tgz} name: wordwrap version: 1.0.0 - dev: true registry.npmmirror.com/wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz} @@ -23970,7 +24445,6 @@ packages: ansi-styles: registry.npmmirror.com/ansi-styles@4.3.0 string-width: registry.npmmirror.com/string-width@4.2.3 strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 - dev: true registry.npmmirror.com/wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz} From d7c183312bf476307d581d91fe914c551152b22f Mon Sep 17 00:00:00 2001 From: niyonggui Date: Mon, 8 Jan 2024 16:24:23 +0800 Subject: [PATCH 13/26] =?UTF-8?q?feat:=20:sparkles:=20=E6=96=B0=E5=A2=9Epl?= =?UTF-8?q?op=E9=A1=B9=E7=9B=AE=E6=A8=A1=E6=9D=BFapp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/build/utils.ts | 6 +- package.json | 3 +- plop/app/.eslintrc.cjs.hbs | 7 - plop/app/.eslintrc.js.hbs | 12 + plop/app/build/utils.ts.hbs | 39 + plop/app/package.json.hbs | 13 +- plop/app/prettier.config.mjs.hbs | 27 + plop/app/src/App.tsx.hbs | 17 +- plop/app/src/_createProductionServer.ts.hbs | 23 + plop/app/src/components/LazyLoad/index.ts.hbs | 3 + .../components/LazyLoad/src/LazyLoad.tsx.hbs | 20 + .../components/LazyLoad/src/Loading.tsx.hbs | 52 + .../src/components/LoadingPage/index.tsx.hbs | 19 + .../src/components/LoadingPage/style.ts.hbs | 77 ++ .../SvgIcon/index.module.style.ts.hbs | 11 + plop/app/src/components/SvgIcon/index.tsx.hbs | 21 + plop/app/src/components/SvgIcon/types.ts.hbs | 7 + plop/app/src/main.tsx.hbs | 2 +- plop/app/src/pages/dashboard/index.tsx.hbs | 13 +- plop/app/src/pages/dataTable/index.tsx.hbs | 4 +- plop/app/src/router/router.tsx.hbs | 27 +- plop/app/src/styles/GlobalPager.ts.hbs | 9 + plop/app/vite.config.ts.hbs | 34 +- pnpm-lock.yaml | 911 ++++++++++++++++-- 24 files changed, 1205 insertions(+), 152 deletions(-) delete mode 100644 plop/app/.eslintrc.cjs.hbs create mode 100644 plop/app/.eslintrc.js.hbs create mode 100644 plop/app/build/utils.ts.hbs create mode 100644 plop/app/prettier.config.mjs.hbs create mode 100644 plop/app/src/_createProductionServer.ts.hbs create mode 100644 plop/app/src/components/LazyLoad/index.ts.hbs create mode 100644 plop/app/src/components/LazyLoad/src/LazyLoad.tsx.hbs create mode 100644 plop/app/src/components/LazyLoad/src/Loading.tsx.hbs create mode 100644 plop/app/src/components/LoadingPage/index.tsx.hbs create mode 100644 plop/app/src/components/LoadingPage/style.ts.hbs create mode 100644 plop/app/src/components/SvgIcon/index.module.style.ts.hbs create mode 100644 plop/app/src/components/SvgIcon/index.tsx.hbs create mode 100644 plop/app/src/components/SvgIcon/types.ts.hbs create mode 100644 plop/app/src/styles/GlobalPager.ts.hbs diff --git a/apps/admin/build/utils.ts b/apps/admin/build/utils.ts index fbab0b9b..d34623d4 100644 --- a/apps/admin/build/utils.ts +++ b/apps/admin/build/utils.ts @@ -1,9 +1,9 @@ declare type Recordable = Record; interface ViteEnv { - VITE_PORT: number - VITE_PROXY: [string, string][] - VITE_DROP_CONSOLE: boolean + VITE_PORT: number; + VITE_PROXY: [string, string][]; + VITE_DROP_CONSOLE: boolean; } // read all environment variable configuration files to process.env diff --git a/package.json b/package.json index 438338e1..8a961a38 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,8 @@ "clean": "pnpm clean:node-modules & pnpm clean:turbo-cache", "clean:node-modules": "find . -name 'node_modules' -type d -prune -exec rm -rf '{}' +", "clean:turbo-cache": "rm -rf ./node_modules/.cache", - "reinstall": "pnpm run clean && rm -rf node_modules && rm -rf pnpm-lock.yaml && pnpm run bootstrap" + "reinstall": "pnpm run clean && rm -rf node_modules && rm -rf pnpm-lock.yaml && pnpm run bootstrap", + "create:app": "plop app" }, "keywords": [], "author": "", diff --git a/plop/app/.eslintrc.cjs.hbs b/plop/app/.eslintrc.cjs.hbs deleted file mode 100644 index 5ccaf5d4..00000000 --- a/plop/app/.eslintrc.cjs.hbs +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { root: true, env: { browser: true, es2020: true }, extends: -['eslint:recommended', 'plugin:@typescript-eslint/recommended', -'plugin:react-hooks/recommended', 'gbeata-eslint'], ignorePatterns: ['dist', -'.eslintrc.cjs'], parser: '@typescript-eslint/parser', plugins: -['react-refresh'], rules: { 'react-refresh/only-export-components': ['warn', { -allowConstantExport: true }], 'react-refresh/only-export-components': 'off', -'@typescript-eslint/ban-ts-comment': 'off' } } \ No newline at end of file diff --git a/plop/app/.eslintrc.js.hbs b/plop/app/.eslintrc.js.hbs new file mode 100644 index 00000000..a70a4716 --- /dev/null +++ b/plop/app/.eslintrc.js.hbs @@ -0,0 +1,12 @@ +/** @type {import('eslint').Linter.Config} */ +module.exports = { + root: true, + extends: ['gbeata-eslint'], + parserOptions: { + tsconfigRootDir: __dirname, + project: ['./tsconfig.json'], + }, + rules: { + '@typescript-eslint/no-unused-expressions': 'off', + }, +}; diff --git a/plop/app/build/utils.ts.hbs b/plop/app/build/utils.ts.hbs new file mode 100644 index 00000000..d34623d4 --- /dev/null +++ b/plop/app/build/utils.ts.hbs @@ -0,0 +1,39 @@ +declare type Recordable = Record; + +interface ViteEnv { + VITE_PORT: number; + VITE_PROXY: [string, string][]; + VITE_DROP_CONSOLE: boolean; +} + +// read all environment variable configuration files to process.env +export function wrapperEnv(envConf: Recordable): ViteEnv { + const result: any = {}; + + for (const envName of Object.keys(envConf)) { + let realName = envConf[envName].replace(/\\n/g, '\n'); + realName = realName === 'true' ? true : realName === 'false' ? false : realName; + + if (envName === 'VITE_PORT') { + realName = Number(realName); + } + + if (envName === 'VITE_PROXY' && realName) { + try { + realName = JSON.parse(realName.replace(/'/g, '"')); + } catch (error) { + realName = ''; + } + } + + result[envName] = realName; + + if (typeof realName === 'string') { + process.env[envName] = realName; + } else if (typeof realName === 'object') { + process.env[envName] = JSON.stringify(realName); + } + } + + return result; +} diff --git a/plop/app/package.json.hbs b/plop/app/package.json.hbs index e344c0e4..83bef05f 100644 --- a/plop/app/package.json.hbs +++ b/plop/app/package.json.hbs @@ -11,19 +11,26 @@ "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0" }, "dependencies": { - "react": "latest", + "@ant-design/icons": "^5.2.6", + "antd": "^5.12.8", + "antd-style": "^3.6.1", + "mockjs": "^1.1.0", "react": "latest", "react-dom": "latest", "react-router-dom": "^6.17.0", - "mockjs": "^1.1.0", - "ui": "workspace:^", + "store": "workspace:^", + "ui": "workspace:^" }, "devDependencies": { "@types/react": "latest", "@types/react-dom": "latest", + "classnames": "^2.3.2", "eslint-config-gbeata-eslint": "workspace:^", "typescript": "latest", "vite": "latest", "vite-plugin-mock": "2.9.6", + "vite-plugin-svg-icons": "^2.0.1", + "prettier": "^3.1.0", + "@vitejs/plugin-react": "^4.2.0" } } diff --git a/plop/app/prettier.config.mjs.hbs b/plop/app/prettier.config.mjs.hbs new file mode 100644 index 00000000..a575ef6b --- /dev/null +++ b/plop/app/prettier.config.mjs.hbs @@ -0,0 +1,27 @@ +// 配置文档: https://prettier.nodejs.cn/ + +/** @type {import('prettier').Config} */ +export default { + // 每行最大宽度,超过换行 + printWidth: 120, + // 缩进级别的空格数 + tabWidth: 2, + // 用制表符而不是空格缩进行 + useTabs: false, + // 使用单引号而不是双引号 + singleQuote: true, + // 在 JSX 中使用单引号而不是双引号 + jsxSingleQuote: true, + // 对象字面量中括号之间有空格 { foo: bar } + bracketSpacing: true, + // 将多行 HTML(HTML、JSX)元素的 > 放在最后一行的末尾,而不是单独放在下一行 + bracketSameLine: false, + // 在唯一的箭头函数参数周围包含括号(avoid:省略括号, always:不省略括号) + arrowParens: 'always', + // 换行符使用 lf 结尾 可选值 auto|lf|crlf|cr + endOfLine: 'lf', + objectCurlyNewline: { + // 对象大括号换行 + multiline: true, + }, +}; diff --git a/plop/app/src/App.tsx.hbs b/plop/app/src/App.tsx.hbs index bb3a951f..cd6cec08 100644 --- a/plop/app/src/App.tsx.hbs +++ b/plop/app/src/App.tsx.hbs @@ -4,7 +4,7 @@ import { HashRouter, RouterProvider } from 'react-router-dom'; import { useGlobalStore } from 'store'; import { GlobalConfig } from 'ui'; -import router, { Router } from '@/router'; +import router from '@/router/router'; import CustomGlobal from '@/styles/GlobalPager'; import LoadingPage from './components/LoadingPage'; @@ -25,24 +25,11 @@ function App() { }; asyncOperation(); - }, []); // 仅在组件挂载时执行 + }, []); return ( {loading ? : } diff --git a/plop/app/src/_createProductionServer.ts.hbs b/plop/app/src/_createProductionServer.ts.hbs new file mode 100644 index 00000000..c0d25aa9 --- /dev/null +++ b/plop/app/src/_createProductionServer.ts.hbs @@ -0,0 +1,23 @@ +// eslint-disable-next-line import/no-extraneous-dependencies +import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer'; + +// 获取mock目录data的数据 + +const modules = import.meta.glob('../mock/data/*.ts', { eager: true }) as Recordable; + +const mockModules: any[] = []; +Object.keys(modules).forEach((key) => { + if (key.includes('/_')) return; + + const module = modules[key].default || {}; + const moduleList = Array.isArray(module) ? [...module] : [module]; + mockModules.push(...moduleList); +}); + +/** + * Used in a production environment, need to manually import all modules. + */ +export function setupProdMockServer() { + console.log(mockModules); + createProdMockServer(mockModules); +} diff --git a/plop/app/src/components/LazyLoad/index.ts.hbs b/plop/app/src/components/LazyLoad/index.ts.hbs new file mode 100644 index 00000000..24f41249 --- /dev/null +++ b/plop/app/src/components/LazyLoad/index.ts.hbs @@ -0,0 +1,3 @@ +import LazyLoad from './src/LazyLoad'; + +export default LazyLoad; diff --git a/plop/app/src/components/LazyLoad/src/LazyLoad.tsx.hbs b/plop/app/src/components/LazyLoad/src/LazyLoad.tsx.hbs new file mode 100644 index 00000000..e37bbd2a --- /dev/null +++ b/plop/app/src/components/LazyLoad/src/LazyLoad.tsx.hbs @@ -0,0 +1,20 @@ +import { type ReactNode, Suspense } from 'react'; + +import Loading from './Loading'; + +import type { LoadableComponent } from '@loadable/component'; + +/** + * @description 路由懒加载 + * @param {Element} Component 需要访问的组件 + * @returns element + */ +const LazyLoad = (Component: LoadableComponent<{}>): ReactNode => ( + <> + }> + + + +); + +export default LazyLoad; diff --git a/plop/app/src/components/LazyLoad/src/Loading.tsx.hbs b/plop/app/src/components/LazyLoad/src/Loading.tsx.hbs new file mode 100644 index 00000000..cdc9adeb --- /dev/null +++ b/plop/app/src/components/LazyLoad/src/Loading.tsx.hbs @@ -0,0 +1,52 @@ +/* HTML:
*/ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(({ css, token }) => ({ + loadingContainer: css` + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + background: rgba(255, 255, 255, 0.2); + backdrop-filter: blur(10px); + `, + loading: css` + width: 50px; + aspect-ratio: 1; + display: grid; + border: 4px solid #0000; + border-radius: 50%; + border-right-color: ${token.colorPrimary}; + animation: l15 1s infinite linear; + &:before, + &:after { + content: ''; + grid-area: 1/1; + margin: 2px; + border: inherit; + border-radius: 50%; + animation: l15 2s infinite; + } + &:after { + margin: 8px; + animation-duration: 3s; + } + @keyframes l15 { + 100% { + transform: rotate(1turn); + } + } + `, +})); + +const Loading = () => { + const { styles } = useStyles(); + return ( +
+
+
+ ); +}; + +export default Loading; diff --git a/plop/app/src/components/LoadingPage/index.tsx.hbs b/plop/app/src/components/LoadingPage/index.tsx.hbs new file mode 100644 index 00000000..3f9d7aa8 --- /dev/null +++ b/plop/app/src/components/LoadingPage/index.tsx.hbs @@ -0,0 +1,19 @@ +import SvgIcon from '../SvgIcon'; +import useStyles from './style'; + +const LoadingPage = () => { + const { styles } = useStyles(); + return ( +
+
+ +
+
+ ); +}; +export default LoadingPage; diff --git a/plop/app/src/components/LoadingPage/style.ts.hbs b/plop/app/src/components/LoadingPage/style.ts.hbs new file mode 100644 index 00000000..fb264224 --- /dev/null +++ b/plop/app/src/components/LoadingPage/style.ts.hbs @@ -0,0 +1,77 @@ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(({ token }) => ({ + 'loading-page': { + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + width: '100%', + height: '100vh', + '.loading-logo': { + position: 'absolute', + color: token.colorPrimary, + left: '50%', + marginLeft: '-16px', + animation: 'loading3 3s linear forwards', + transformOrigin: 'center center', + }, + '@keyframes loading3': { + '50%': { + transform: 'perspective(100px) rotateY(360deg) scale(0.8)', + opacity: 0.6, + }, + }, + '.loading-side': { + width: '80px', + height: '80px', + border: `2px solid ${token.colorPrimaryBorder}`, + animation: 'loading 3s linear forwards', + }, + '@keyframes loading': { + '25%': { + transform: 'rotate(180deg)', + }, + '50%': { + opacity: 0.5, + borderRadius: '50%', + transform: 'scale(0.85)', + }, + '100%': { + transform: 'scale(1.15)', + opacity: 1, + borderRadius: '30%', + borderColor: token.colorPrimaryBorderHover, + }, + }, + '.loading-in': { + width: '68px', + height: '68px', + position: 'absolute', + left: '50%', + marginLeft: '-38px', + border: `4px solid ${token.colorPrimaryBorderHover}`, + animation: 'loading1 3s linear forwards', + }, + '@keyframes loading1': { + '0%': { + transform: 'rotate(45deg)', + }, + '25%': { + transform: 'rotate(270deg) ', + }, + '50%': { + opacity: 0.5, + borderRadius: '50%', + transform: 'scale(1.4)', + }, + '100%': { + transform: 'scale(0.98)', + opacity: 1, + borderRadius: '30%', + borderColor: token.colorPrimaryBorder, + }, + }, + }, +})); + +export default useStyles; diff --git a/plop/app/src/components/SvgIcon/index.module.style.ts.hbs b/plop/app/src/components/SvgIcon/index.module.style.ts.hbs new file mode 100644 index 00000000..178a3971 --- /dev/null +++ b/plop/app/src/components/SvgIcon/index.module.style.ts.hbs @@ -0,0 +1,11 @@ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(() => ({ + 'svg-icon': { + display: 'inline-block', + verticalAlign: '-0.15em', + fill: 'currentColor', + overflow: 'hidden', + }, +})); +export default useStyles; diff --git a/plop/app/src/components/SvgIcon/index.tsx.hbs b/plop/app/src/components/SvgIcon/index.tsx.hbs new file mode 100644 index 00000000..254464d8 --- /dev/null +++ b/plop/app/src/components/SvgIcon/index.tsx.hbs @@ -0,0 +1,21 @@ +import classNames from 'classnames'; + +import useStyles from './index.module.style'; + +import type { SvgIconProp } from './types'; + +export default function SvgIcon({ name, prefix = 'icon', size = 16, style, className }: SvgIconProp) { + const { styles } = useStyles(); + const symbolId = `#${prefix}-${name}`; + const iconStyle = { + width: `${size}px`, + height: `${size}px`, + ...style, + }; + + return ( + + ); +} diff --git a/plop/app/src/components/SvgIcon/types.ts.hbs b/plop/app/src/components/SvgIcon/types.ts.hbs new file mode 100644 index 00000000..d97e67db --- /dev/null +++ b/plop/app/src/components/SvgIcon/types.ts.hbs @@ -0,0 +1,7 @@ +export interface SvgIconProp { + name: string; + prefix?: string; + size?: number; + style?: React.CSSProperties; + className?: string; +} diff --git a/plop/app/src/main.tsx.hbs b/plop/app/src/main.tsx.hbs index 554385ba..b4e129a7 100644 --- a/plop/app/src/main.tsx.hbs +++ b/plop/app/src/main.tsx.hbs @@ -20,7 +20,7 @@ declare module 'antd-style' { // const { preset } = useGlobalState(); // console.log(preset); -ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( +ReactDOM.createRoot(document.getElementById(`${appName}-root`) as HTMLElement).render( , diff --git a/plop/app/src/pages/dashboard/index.tsx.hbs b/plop/app/src/pages/dashboard/index.tsx.hbs index d0940a1a..ab38a88b 100644 --- a/plop/app/src/pages/dashboard/index.tsx.hbs +++ b/plop/app/src/pages/dashboard/index.tsx.hbs @@ -1,14 +1,15 @@ -import { Button } from "@mui/material"; +import { Button } from "antd"; import { Link } from "react-router-dom"; -const Dashboard = () => { + +const DataTable = () => { return ( <> - {{appName}} Dashboard - ); }; -export default Dashboard; +export default DataTable; diff --git a/plop/app/src/pages/dataTable/index.tsx.hbs b/plop/app/src/pages/dataTable/index.tsx.hbs index 2d359b7b..85bc3926 100644 --- a/plop/app/src/pages/dataTable/index.tsx.hbs +++ b/plop/app/src/pages/dataTable/index.tsx.hbs @@ -1,11 +1,11 @@ -import { Button } from "@mui/material"; +import { Button } from "antd"; import { Link } from "react-router-dom"; const DataTable = () => { return ( <> {{appName}} DataTable - diff --git a/plop/app/src/router/router.tsx.hbs b/plop/app/src/router/router.tsx.hbs index 83962ec3..35f7cae2 100644 --- a/plop/app/src/router/router.tsx.hbs +++ b/plop/app/src/router/router.tsx.hbs @@ -1,21 +1,22 @@ -import Dashboard from '@/pages/dashboard' -import DataTable from '@/pages/dataTable' -import NotFound from '@/pages/noFound' +import Dashboard from "@/pages/dashboard"; +import DataTable from "@/pages/dataTable"; +import NotFound from "@/pages/noFound"; + +import { createHashRouter } from "react-router-dom"; -import KeeperHoc from './keeperHoc' const router = [ { - path: '/', - element: KeeperHoc('/', ) + path: "/", + element: , }, { - path: '/data-table', - element: KeeperHoc('/data-table', ) + path: "/data-table", + element: , }, { - path: '*', - element: - } -] + path: "*", + element: , + }, +]; -export default router +export default createHashRouter(router); diff --git a/plop/app/src/styles/GlobalPager.ts.hbs b/plop/app/src/styles/GlobalPager.ts.hbs new file mode 100644 index 00000000..91ccdd80 --- /dev/null +++ b/plop/app/src/styles/GlobalPager.ts.hbs @@ -0,0 +1,9 @@ +import { createGlobalStyle } from 'antd-style'; +// 定义全局类名样式 +const CustomGlobal = createGlobalStyle` + .g-paper { + border-radius: ${(p) => p.theme.borderRadius * 2}px; + } +`; + +export default CustomGlobal; diff --git a/plop/app/vite.config.ts.hbs b/plop/app/vite.config.ts.hbs index 83db160b..10511f05 100644 --- a/plop/app/vite.config.ts.hbs +++ b/plop/app/vite.config.ts.hbs @@ -1,21 +1,21 @@ /* eslint-disable no-useless-escape */ /* eslint-disable import/no-extraneous-dependencies */ -import react from '@vitejs/plugin-react'; +import react from "@vitejs/plugin-react"; // 需要安装 @typings/node 插件 // import { resolve } from 'path'; -import path, { resolve } from 'path'; -import { loadEnv } from 'vite'; -import { viteMockServe } from 'vite-plugin-mock'; -import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'; +import path, { resolve } from "path"; +import { loadEnv } from "vite"; +import { viteMockServe } from "vite-plugin-mock"; +import { createSvgIconsPlugin } from "vite-plugin-svg-icons"; -import { wrapperEnv } from './build/utils'; +import { wrapperEnv } from "./build/utils"; -import type { ConfigEnv, UserConfig } from 'vite'; +import type { ConfigEnv, UserConfig } from "vite"; /** @type {import('vite').UserConfig} */ export default ({ command, mode }: ConfigEnv): UserConfig => { const root = process.cwd(); - const isBuild = command === 'build'; + const isBuild = command === "build"; const env = loadEnv(mode, root); @@ -33,11 +33,11 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { plugins: [ react(), createSvgIconsPlugin({ - iconDirs: [resolve(process.cwd(), 'src/assets/icons')], - symbolId: 'icon-[dir]-[name]', + iconDirs: [resolve(process.cwd(), "src/assets/icons")], + symbolId: "icon-[dir]-[name]", }), viteMockServe({ - mockPath: 'mock', + mockPath: "mock", ignore: /^_/, localEnabled: !isBuild, prodEnabled: isBuild, @@ -47,15 +47,15 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { setupProdMockServer() `, // 当前文件夹下的src/main.ts - injectFile: path.join(__dirname, '/src/main.tsx'), + injectFile: path.join(__dirname, "/src/main.tsx"), }), ], build: { - target: 'es2015', - cssTarget: 'chrome86', - minify: 'esbuild', - outDir: '../../gbeata-dist', + target: "es2015", + cssTarget: "chrome86", + minify: "esbuild", + outDir: "../../gbeata-dist", terserOptions: { compress: { keep_infinity: true, @@ -68,7 +68,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { resolve: { alias: { - '@': resolve(__dirname, './src'), + "@": resolve(__dirname, "./src"), }, }, }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 485450ee..2d180309 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -302,6 +302,122 @@ importers: specifier: ^2.0.1 version: registry.npmmirror.com/vite-plugin-svg-icons@2.0.1(vite@4.5.0) + apps/plop-test-app: + dependencies: + '@ant-design/icons': + specifier: ^5.2.6 + version: registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0) + antd: + specifier: ^5.12.8 + version: registry.npmmirror.com/antd@5.12.8(react-dom@18.2.0)(react@18.2.0) + antd-style: + specifier: ^3.6.1 + version: registry.npmmirror.com/antd-style@3.6.1(@types/react@18.2.47)(antd@5.12.8)(react-dom@18.2.0)(react@18.2.0) + mockjs: + specifier: ^1.1.0 + version: registry.npmmirror.com/mockjs@1.1.0 + react: + specifier: latest + version: registry.npmmirror.com/react@18.2.0 + react-dom: + specifier: latest + version: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + react-router-dom: + specifier: ^6.17.0 + version: registry.npmmirror.com/react-router-dom@6.21.1(react-dom@18.2.0)(react@18.2.0) + store: + specifier: workspace:^ + version: link:../../packages/store + ui: + specifier: workspace:^ + version: link:../../packages/ui + devDependencies: + '@types/react': + specifier: latest + version: registry.npmmirror.com/@types/react@18.2.47 + '@types/react-dom': + specifier: latest + version: registry.npmmirror.com/@types/react-dom@18.2.18 + classnames: + specifier: ^2.3.2 + version: registry.npmmirror.com/classnames@2.5.1 + eslint-config-gbeata-eslint: + specifier: workspace:^ + version: link:../../packages/config-eslint + typescript: + specifier: latest + version: registry.npmmirror.com/typescript@5.3.3 + vite: + specifier: latest + version: registry.npmmirror.com/vite@5.0.11(@types/node@18.19.3) + vite-plugin-mock: + specifier: 2.9.6 + version: registry.npmmirror.com/vite-plugin-mock@2.9.6(mockjs@1.1.0)(rollup@2.79.1)(vite@5.0.11) + vite-plugin-svg-icons: + specifier: ^2.0.1 + version: registry.npmmirror.com/vite-plugin-svg-icons@2.0.1(vite@5.0.11) + + apps/test-app: + dependencies: + '@ant-design/icons': + specifier: ^5.2.6 + version: registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0) + '@vitejs/plugin-react': + specifier: ^4.2.0 + version: registry.npmmirror.com/@vitejs/plugin-react@4.2.1(vite@5.0.11) + antd: + specifier: ^5.12.8 + version: registry.npmmirror.com/antd@5.12.8(react-dom@18.2.0)(react@18.2.0) + antd-style: + specifier: ^3.6.1 + version: registry.npmmirror.com/antd-style@3.6.1(@types/react@18.2.47)(antd@5.12.8)(react-dom@18.2.0)(react@18.2.0) + mockjs: + specifier: ^1.1.0 + version: registry.npmmirror.com/mockjs@1.1.0 + react: + specifier: latest + version: registry.npmmirror.com/react@18.2.0 + react-dom: + specifier: latest + version: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + react-router-dom: + specifier: ^6.17.0 + version: registry.npmmirror.com/react-router-dom@6.21.1(react-dom@18.2.0)(react@18.2.0) + store: + specifier: workspace:^ + version: link:../../packages/store + ui: + specifier: workspace:^ + version: link:../../packages/ui + devDependencies: + '@types/react': + specifier: latest + version: registry.npmmirror.com/@types/react@18.2.47 + '@types/react-dom': + specifier: latest + version: registry.npmmirror.com/@types/react-dom@18.2.18 + classnames: + specifier: ^2.3.2 + version: registry.npmmirror.com/classnames@2.5.1 + eslint-config-gbeata-eslint: + specifier: workspace:^ + version: link:../../packages/config-eslint + prettier: + specifier: ^3.1.0 + version: registry.npmmirror.com/prettier@3.1.1 + typescript: + specifier: latest + version: registry.npmmirror.com/typescript@5.3.3 + vite: + specifier: ^5.0.11 + version: registry.npmmirror.com/vite@5.0.11(@types/node@18.19.3) + vite-plugin-mock: + specifier: 2.9.6 + version: registry.npmmirror.com/vite-plugin-mock@2.9.6(mockjs@1.1.0)(rollup@2.79.1)(vite@5.0.11) + vite-plugin-svg-icons: + specifier: ^2.0.1 + version: registry.npmmirror.com/vite-plugin-svg-icons@2.0.1(vite@5.0.11) + packages/apis: dependencies: antd: @@ -500,6 +616,14 @@ packages: '@ctrl/tinycolor': registry.npmmirror.com/@ctrl/tinycolor@3.6.1 dev: false + registry.npmmirror.com/@ant-design/colors@7.0.2: + resolution: {integrity: sha512-7KJkhTiPiLHSu+LmMJnehfJ6242OCxSlR3xHVBecYxnMW8MS/878NXct1GqYARyL59fyeFdKRxXTfvR9SnDgJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/colors/-/colors-7.0.2.tgz} + name: '@ant-design/colors' + version: 7.0.2 + dependencies: + '@ctrl/tinycolor': registry.npmmirror.com/@ctrl/tinycolor@3.6.1 + dev: false + registry.npmmirror.com/@ant-design/cssinjs@1.18.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-1JURAPrsjK1GwpqByTq3bJ7nF7lbMKDZpehqeR2n8/IR5O58/W1U4VcOeaw5ZyTHri3tEMcom7dyP2tvxpW54g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/cssinjs/-/cssinjs-1.18.1.tgz} id: registry.npmmirror.com/@ant-design/cssinjs/1.18.1 @@ -512,7 +636,7 @@ packages: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 '@emotion/hash': registry.npmmirror.com/@emotion/hash@0.8.0 '@emotion/unitless': registry.npmmirror.com/@emotion/unitless@0.7.5 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 csstype: registry.npmmirror.com/csstype@3.1.2 rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 @@ -520,6 +644,26 @@ packages: stylis: registry.npmmirror.com/stylis@4.3.0 dev: false + registry.npmmirror.com/@ant-design/cssinjs@1.18.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-514V9rjLaFYb3v4s55/8bg2E6fb81b99s3crDZf4nSwtiDLLXs8axnIph+q2TVkY2hbJPZOn/cVsVcnLkzFy7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/cssinjs/-/cssinjs-1.18.2.tgz} + id: registry.npmmirror.com/@ant-design/cssinjs/1.18.2 + name: '@ant-design/cssinjs' + version: 1.18.2 + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + '@emotion/hash': registry.npmmirror.com/@emotion/hash@0.8.0 + '@emotion/unitless': registry.npmmirror.com/@emotion/unitless@0.7.5 + classnames: registry.npmmirror.com/classnames@2.5.1 + csstype: registry.npmmirror.com/csstype@3.1.3 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: registry.npmmirror.com/react@18.2.0 + react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + stylis: registry.npmmirror.com/stylis@4.3.0 + dev: false + registry.npmmirror.com/@ant-design/icons-svg@4.3.1: resolution: {integrity: sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.3.1.tgz} name: '@ant-design/icons-svg' @@ -535,10 +679,10 @@ packages: react: '>=16.0.0' react-dom: '>=16.0.0' dependencies: - '@ant-design/colors': registry.npmmirror.com/@ant-design/colors@7.0.0 + '@ant-design/colors': registry.npmmirror.com/@ant-design/colors@7.0.2 '@ant-design/icons-svg': registry.npmmirror.com/@ant-design/icons-svg@4.3.1 '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) @@ -553,7 +697,7 @@ packages: react: '>=16.9.0' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 json2mq: registry.npmmirror.com/json2mq@0.2.0 react: registry.npmmirror.com/react@18.2.0 resize-observer-polyfill: registry.npmmirror.com/resize-observer-polyfill@1.5.1 @@ -3065,6 +3209,30 @@ packages: react: registry.npmmirror.com/react@18.2.0 dev: false + registry.npmmirror.com/@emotion/react@11.11.1(@types/react@18.2.47)(react@18.2.0): + resolution: {integrity: sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/react/-/react-11.11.1.tgz} + id: registry.npmmirror.com/@emotion/react/11.11.1 + name: '@emotion/react' + version: 11.11.1 + peerDependencies: + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + '@emotion/babel-plugin': registry.npmmirror.com/@emotion/babel-plugin@11.11.0 + '@emotion/cache': registry.npmmirror.com/@emotion/cache@11.11.0 + '@emotion/serialize': registry.npmmirror.com/@emotion/serialize@1.1.2 + '@emotion/use-insertion-effect-with-fallbacks': registry.npmmirror.com/@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0) + '@emotion/utils': registry.npmmirror.com/@emotion/utils@1.2.1 + '@emotion/weak-memoize': registry.npmmirror.com/@emotion/weak-memoize@0.3.1 + '@types/react': registry.npmmirror.com/@types/react@18.2.47 + hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 + react: registry.npmmirror.com/react@18.2.0 + dev: false + registry.npmmirror.com/@emotion/serialize@1.1.2: resolution: {integrity: sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/serialize/-/serialize-1.1.2.tgz} name: '@emotion/serialize' @@ -3136,6 +3304,16 @@ packages: version: 0.3.1 dev: false + registry.npmmirror.com/@esbuild/aix-ppc64@0.19.11: + resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz} + name: '@esbuild/aix-ppc64' + version: 0.19.11 + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + optional: true + registry.npmmirror.com/@esbuild/android-arm64@0.17.19: resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz} name: '@esbuild/android-arm64' @@ -3156,6 +3334,16 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/android-arm64@0.19.11: + resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz} + name: '@esbuild/android-arm64' + version: 0.19.11 + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + registry.npmmirror.com/@esbuild/android-arm@0.17.19: resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz} name: '@esbuild/android-arm' @@ -3176,6 +3364,16 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/android-arm@0.19.11: + resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.19.11.tgz} + name: '@esbuild/android-arm' + version: 0.19.11 + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + registry.npmmirror.com/@esbuild/android-x64@0.17.19: resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz} name: '@esbuild/android-x64' @@ -3196,6 +3394,16 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/android-x64@0.19.11: + resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.19.11.tgz} + name: '@esbuild/android-x64' + version: 0.19.11 + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + optional: true + registry.npmmirror.com/@esbuild/darwin-arm64@0.17.19: resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz} name: '@esbuild/darwin-arm64' @@ -3216,6 +3424,16 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/darwin-arm64@0.19.11: + resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz} + name: '@esbuild/darwin-arm64' + version: 0.19.11 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + registry.npmmirror.com/@esbuild/darwin-x64@0.17.19: resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz} name: '@esbuild/darwin-x64' @@ -3236,6 +3454,16 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/darwin-x64@0.19.11: + resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz} + name: '@esbuild/darwin-x64' + version: 0.19.11 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + registry.npmmirror.com/@esbuild/freebsd-arm64@0.17.19: resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz} name: '@esbuild/freebsd-arm64' @@ -3256,6 +3484,16 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/freebsd-arm64@0.19.11: + resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz} + name: '@esbuild/freebsd-arm64' + version: 0.19.11 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + optional: true + registry.npmmirror.com/@esbuild/freebsd-x64@0.17.19: resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz} name: '@esbuild/freebsd-x64' @@ -3276,6 +3514,16 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/freebsd-x64@0.19.11: + resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz} + name: '@esbuild/freebsd-x64' + version: 0.19.11 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + optional: true + registry.npmmirror.com/@esbuild/linux-arm64@0.17.19: resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz} name: '@esbuild/linux-arm64' @@ -3296,6 +3544,16 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/linux-arm64@0.19.11: + resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz} + name: '@esbuild/linux-arm64' + version: 0.19.11 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + registry.npmmirror.com/@esbuild/linux-arm@0.17.19: resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz} name: '@esbuild/linux-arm' @@ -3316,6 +3574,16 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/linux-arm@0.19.11: + resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz} + name: '@esbuild/linux-arm' + version: 0.19.11 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + registry.npmmirror.com/@esbuild/linux-ia32@0.17.19: resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz} name: '@esbuild/linux-ia32' @@ -3336,6 +3604,16 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/linux-ia32@0.19.11: + resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz} + name: '@esbuild/linux-ia32' + version: 0.19.11 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + optional: true + registry.npmmirror.com/@esbuild/linux-loong64@0.17.19: resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz} name: '@esbuild/linux-loong64' @@ -3356,6 +3634,16 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/linux-loong64@0.19.11: + resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz} + name: '@esbuild/linux-loong64' + version: 0.19.11 + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + optional: true + registry.npmmirror.com/@esbuild/linux-mips64el@0.17.19: resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz} name: '@esbuild/linux-mips64el' @@ -3376,6 +3664,16 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/linux-mips64el@0.19.11: + resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz} + name: '@esbuild/linux-mips64el' + version: 0.19.11 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + optional: true + registry.npmmirror.com/@esbuild/linux-ppc64@0.17.19: resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz} name: '@esbuild/linux-ppc64' @@ -3396,6 +3694,16 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/linux-ppc64@0.19.11: + resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz} + name: '@esbuild/linux-ppc64' + version: 0.19.11 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + optional: true + registry.npmmirror.com/@esbuild/linux-riscv64@0.17.19: resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz} name: '@esbuild/linux-riscv64' @@ -3416,6 +3724,16 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/linux-riscv64@0.19.11: + resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz} + name: '@esbuild/linux-riscv64' + version: 0.19.11 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + registry.npmmirror.com/@esbuild/linux-s390x@0.17.19: resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz} name: '@esbuild/linux-s390x' @@ -3436,6 +3754,16 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/linux-s390x@0.19.11: + resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz} + name: '@esbuild/linux-s390x' + version: 0.19.11 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + optional: true + registry.npmmirror.com/@esbuild/linux-x64@0.17.19: resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz} name: '@esbuild/linux-x64' @@ -3456,6 +3784,16 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/linux-x64@0.19.11: + resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz} + name: '@esbuild/linux-x64' + version: 0.19.11 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + registry.npmmirror.com/@esbuild/netbsd-x64@0.17.19: resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz} name: '@esbuild/netbsd-x64' @@ -3476,6 +3814,16 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/netbsd-x64@0.19.11: + resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz} + name: '@esbuild/netbsd-x64' + version: 0.19.11 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + optional: true + registry.npmmirror.com/@esbuild/openbsd-x64@0.17.19: resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz} name: '@esbuild/openbsd-x64' @@ -3496,6 +3844,16 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/openbsd-x64@0.19.11: + resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz} + name: '@esbuild/openbsd-x64' + version: 0.19.11 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + optional: true + registry.npmmirror.com/@esbuild/sunos-x64@0.17.19: resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz} name: '@esbuild/sunos-x64' @@ -3516,6 +3874,16 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/sunos-x64@0.19.11: + resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz} + name: '@esbuild/sunos-x64' + version: 0.19.11 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + optional: true + registry.npmmirror.com/@esbuild/win32-arm64@0.17.19: resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz} name: '@esbuild/win32-arm64' @@ -3536,6 +3904,16 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/win32-arm64@0.19.11: + resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz} + name: '@esbuild/win32-arm64' + version: 0.19.11 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + registry.npmmirror.com/@esbuild/win32-ia32@0.17.19: resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz} name: '@esbuild/win32-ia32' @@ -3556,6 +3934,16 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/win32-ia32@0.19.11: + resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz} + name: '@esbuild/win32-ia32' + version: 0.19.11 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + registry.npmmirror.com/@esbuild/win32-x64@0.17.19: resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz} name: '@esbuild/win32-x64' @@ -3576,6 +3964,16 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/win32-x64@0.19.11: + resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz} + name: '@esbuild/win32-x64' + version: 0.19.11 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + registry.npmmirror.com/@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz} id: registry.npmmirror.com/@eslint-community/eslint-utils/4.4.0 @@ -4367,7 +4765,24 @@ packages: dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 '@ctrl/tinycolor': registry.npmmirror.com/@ctrl/tinycolor@3.6.1 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: registry.npmmirror.com/react@18.2.0 + react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/@rc-component/color-picker@1.5.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-onyAFhWKXuG4P162xE+7IgaJkPkwM94XlOYnQuu69XdXWMfxpeFi6tpJBsieIMV7EnyLV5J3lDzdLiFeK0iEBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/color-picker/-/color-picker-1.5.1.tgz} + id: registry.npmmirror.com/@rc-component/color-picker/1.5.1 + name: '@rc-component/color-picker' + version: 1.5.1 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + '@ctrl/tinycolor': registry.npmmirror.com/@ctrl/tinycolor@3.6.1 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) @@ -4408,7 +4823,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) @@ -4425,7 +4840,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) @@ -4443,7 +4858,7 @@ packages: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 '@rc-component/portal': registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0) '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) @@ -4461,7 +4876,7 @@ packages: dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 '@rc-component/portal': registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) @@ -4559,6 +4974,24 @@ packages: engines: {node: '>=14.0.0'} dev: false + registry.npmmirror.com/@rollup/plugin-node-resolve@13.3.0(rollup@2.79.1): + resolution: {integrity: sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz} + id: registry.npmmirror.com/@rollup/plugin-node-resolve/13.3.0 + name: '@rollup/plugin-node-resolve' + version: 13.3.0 + engines: {node: '>= 10.0.0'} + peerDependencies: + rollup: ^2.42.0 + dependencies: + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils@3.1.0(rollup@2.79.1) + '@types/resolve': registry.npmmirror.com/@types/resolve@1.17.1 + deepmerge: registry.npmmirror.com/deepmerge@4.3.1 + is-builtin-module: registry.npmmirror.com/is-builtin-module@3.2.1 + is-module: registry.npmmirror.com/is-module@1.0.0 + resolve: registry.npmmirror.com/resolve@1.22.8 + rollup: registry.npmmirror.com/rollup@2.79.1 + dev: true + registry.npmmirror.com/@rollup/plugin-node-resolve@13.3.0(rollup@4.9.0): resolution: {integrity: sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz} id: registry.npmmirror.com/@rollup/plugin-node-resolve/13.3.0 @@ -4577,6 +5010,21 @@ packages: rollup: registry.npmmirror.com/rollup@4.9.0 dev: false + registry.npmmirror.com/@rollup/pluginutils@3.1.0(rollup@2.79.1): + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz} + id: registry.npmmirror.com/@rollup/pluginutils/3.1.0 + name: '@rollup/pluginutils' + version: 3.1.0 + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree@0.0.39 + estree-walker: registry.npmmirror.com/estree-walker@1.0.1 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + rollup: registry.npmmirror.com/rollup@2.79.1 + dev: true + registry.npmmirror.com/@rollup/pluginutils@3.1.0(rollup@4.9.0): resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz} id: registry.npmmirror.com/@rollup/pluginutils/3.1.0 @@ -5339,7 +5787,7 @@ packages: version: 2.3.1 deprecated: This is a stub types definition. classnames provides its own type definitions, so you do not need this installed. dependencies: - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 dev: true registry.npmmirror.com/@types/crypto-js@4.2.1: @@ -5388,7 +5836,6 @@ packages: resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/estree/-/estree-0.0.39.tgz} name: '@types/estree' version: 0.0.39 - dev: false registry.npmmirror.com/@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz} @@ -5451,7 +5898,7 @@ packages: name: '@types/hoist-non-react-statics' version: 3.3.5 dependencies: - '@types/react': registry.npmmirror.com/@types/react@18.2.45 + '@types/react': registry.npmmirror.com/@types/react@18.2.47 hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 registry.npmmirror.com/@types/html-minifier-terser@6.1.0: @@ -5532,7 +5979,7 @@ packages: name: '@types/loadable__component' version: 5.13.8 dependencies: - '@types/react': registry.npmmirror.com/@types/react@18.2.45 + '@types/react': registry.npmmirror.com/@types/react@18.2.47 dev: false registry.npmmirror.com/@types/lodash-es@4.17.12: @@ -5565,7 +6012,6 @@ packages: resolution: {integrity: sha512-SXgrhajHG7boLv6oU93CcmdDm0HYRiceuz6b+7z+/2lCJPTWDv0V5YiwFHT2ejE4bQqgSXQiVPQYPWv7LGsK1g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/mockjs/-/mockjs-1.0.10.tgz} name: '@types/mockjs' version: 1.0.10 - dev: false registry.npmmirror.com/@types/ms@0.7.34: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/ms/-/ms-0.7.34.tgz} @@ -5589,7 +6035,6 @@ packages: version: 18.19.3 dependencies: undici-types: registry.npmmirror.com/undici-types@5.26.5 - dev: true registry.npmmirror.com/@types/node@20.10.4: resolution: {integrity: sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/-/node-20.10.4.tgz} @@ -5646,7 +6091,7 @@ packages: name: '@types/react-dom' version: 18.2.18 dependencies: - '@types/react': registry.npmmirror.com/@types/react@18.2.45 + '@types/react': registry.npmmirror.com/@types/react@18.2.47 registry.npmmirror.com/@types/react-router-dom@5.3.3: resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz} @@ -5654,7 +6099,7 @@ packages: version: 5.3.3 dependencies: '@types/history': registry.npmmirror.com/@types/history@4.7.11 - '@types/react': registry.npmmirror.com/@types/react@18.2.45 + '@types/react': registry.npmmirror.com/@types/react@18.2.47 '@types/react-router': registry.npmmirror.com/@types/react-router@5.1.20 dev: false @@ -5664,7 +6109,7 @@ packages: version: 5.1.20 dependencies: '@types/history': registry.npmmirror.com/@types/history@4.7.11 - '@types/react': registry.npmmirror.com/@types/react@18.2.45 + '@types/react': registry.npmmirror.com/@types/react@18.2.47 dev: false registry.npmmirror.com/@types/react-slick@0.23.13: @@ -5672,7 +6117,7 @@ packages: name: '@types/react-slick' version: 0.23.13 dependencies: - '@types/react': registry.npmmirror.com/@types/react@18.2.45 + '@types/react': registry.npmmirror.com/@types/react@18.2.47 dev: true registry.npmmirror.com/@types/react@18.2.45: @@ -5684,13 +6129,21 @@ packages: '@types/scheduler': registry.npmmirror.com/@types/scheduler@0.16.8 csstype: registry.npmmirror.com/csstype@3.1.3 + registry.npmmirror.com/@types/react@18.2.47: + resolution: {integrity: sha512-xquNkkOirwyCgoClNk85BjP+aqnIS+ckAJ8i37gAbDs14jfW/J23f2GItAf33oiUPQnqNMALiFeoM9Y5mbjpVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/react/-/react-18.2.47.tgz} + name: '@types/react' + version: 18.2.47 + dependencies: + '@types/prop-types': registry.npmmirror.com/@types/prop-types@15.7.11 + '@types/scheduler': registry.npmmirror.com/@types/scheduler@0.16.8 + csstype: registry.npmmirror.com/csstype@3.1.3 + registry.npmmirror.com/@types/resolve@1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/resolve/-/resolve-1.17.1.tgz} name: '@types/resolve' version: 1.17.1 dependencies: '@types/node': registry.npmmirror.com/@types/node@20.10.4 - dev: false registry.npmmirror.com/@types/responselike@1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/responselike/-/responselike-1.0.3.tgz} @@ -5753,7 +6206,7 @@ packages: name: '@types/video-react' version: 0.15.5 dependencies: - '@types/react': registry.npmmirror.com/@types/react@18.2.45 + '@types/react': registry.npmmirror.com/@types/react@18.2.47 dev: true registry.npmmirror.com/@types/yargs-parser@21.0.3: @@ -6652,6 +7105,25 @@ packages: - supports-color dev: true + registry.npmmirror.com/@vitejs/plugin-react@4.2.1(vite@5.0.11): + resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz} + id: registry.npmmirror.com/@vitejs/plugin-react/4.2.1 + name: '@vitejs/plugin-react' + version: 4.2.1 + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.6 + '@babel/plugin-transform-react-jsx-self': registry.npmmirror.com/@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-react-jsx-source': registry.npmmirror.com/@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.6) + '@types/babel__core': registry.npmmirror.com/@types/babel__core@7.20.5 + react-refresh: registry.npmmirror.com/react-refresh@0.14.0 + vite: registry.npmmirror.com/vite@5.0.11(@types/node@18.19.3) + transitivePeerDependencies: + - supports-color + dev: false + registry.npmmirror.com/@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1): resolution: {integrity: sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz} id: registry.npmmirror.com/@wangeditor/basic-modules/1.1.7 @@ -7272,7 +7744,32 @@ packages: version: 0.3.2 dev: true - registry.npmmirror.com/antd-style@3.6.1(@types/react@18.2.45)(antd@5.12.2)(react-dom@18.2.0)(react@18.2.0): + registry.npmmirror.com/antd-style@3.6.1(@types/react@18.2.45)(antd@5.12.2)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-KpKXiAIV3CAe6TfSh/m6ET2vGuhAof7qfqeaouh5WZ0JDl5jDXXSFPeEfqvZuHAckTl+A0NzArvIHKgKt/NZ9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/antd-style/-/antd-style-3.6.1.tgz} + id: registry.npmmirror.com/antd-style/3.6.1 + name: antd-style + version: 3.6.1 + peerDependencies: + antd: '>=5.8.1' + react: '>=18' + dependencies: + '@ant-design/cssinjs': registry.npmmirror.com/@ant-design/cssinjs@1.18.2(react-dom@18.2.0)(react@18.2.0) + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + '@emotion/cache': registry.npmmirror.com/@emotion/cache@11.11.0 + '@emotion/css': registry.npmmirror.com/@emotion/css@11.11.2 + '@emotion/react': registry.npmmirror.com/@emotion/react@11.11.1(@types/react@18.2.45)(react@18.2.0) + '@emotion/serialize': registry.npmmirror.com/@emotion/serialize@1.1.2 + '@emotion/server': registry.npmmirror.com/@emotion/server@11.11.0(@emotion/css@11.11.2) + '@emotion/utils': registry.npmmirror.com/@emotion/utils@1.2.1 + antd: registry.npmmirror.com/antd@5.12.2(react-dom@18.2.0)(react@18.2.0) + react: registry.npmmirror.com/react@18.2.0 + use-merge-value: registry.npmmirror.com/use-merge-value@1.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - react-dom + dev: false + + registry.npmmirror.com/antd-style@3.6.1(@types/react@18.2.45)(antd@5.12.8)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-KpKXiAIV3CAe6TfSh/m6ET2vGuhAof7qfqeaouh5WZ0JDl5jDXXSFPeEfqvZuHAckTl+A0NzArvIHKgKt/NZ9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/antd-style/-/antd-style-3.6.1.tgz} id: registry.npmmirror.com/antd-style/3.6.1 name: antd-style @@ -7281,7 +7778,7 @@ packages: antd: '>=5.8.1' react: '>=18' dependencies: - '@ant-design/cssinjs': registry.npmmirror.com/@ant-design/cssinjs@1.18.1(react-dom@18.2.0)(react@18.2.0) + '@ant-design/cssinjs': registry.npmmirror.com/@ant-design/cssinjs@1.18.2(react-dom@18.2.0)(react@18.2.0) '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 '@emotion/cache': registry.npmmirror.com/@emotion/cache@11.11.0 '@emotion/css': registry.npmmirror.com/@emotion/css@11.11.2 @@ -7289,7 +7786,32 @@ packages: '@emotion/serialize': registry.npmmirror.com/@emotion/serialize@1.1.2 '@emotion/server': registry.npmmirror.com/@emotion/server@11.11.0(@emotion/css@11.11.2) '@emotion/utils': registry.npmmirror.com/@emotion/utils@1.2.1 - antd: registry.npmmirror.com/antd@5.12.2(react-dom@18.2.0)(react@18.2.0) + antd: registry.npmmirror.com/antd@5.12.8(react-dom@18.2.0)(react@18.2.0) + react: registry.npmmirror.com/react@18.2.0 + use-merge-value: registry.npmmirror.com/use-merge-value@1.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - react-dom + dev: false + + registry.npmmirror.com/antd-style@3.6.1(@types/react@18.2.47)(antd@5.12.8)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-KpKXiAIV3CAe6TfSh/m6ET2vGuhAof7qfqeaouh5WZ0JDl5jDXXSFPeEfqvZuHAckTl+A0NzArvIHKgKt/NZ9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/antd-style/-/antd-style-3.6.1.tgz} + id: registry.npmmirror.com/antd-style/3.6.1 + name: antd-style + version: 3.6.1 + peerDependencies: + antd: '>=5.8.1' + react: '>=18' + dependencies: + '@ant-design/cssinjs': registry.npmmirror.com/@ant-design/cssinjs@1.18.2(react-dom@18.2.0)(react@18.2.0) + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + '@emotion/cache': registry.npmmirror.com/@emotion/cache@11.11.0 + '@emotion/css': registry.npmmirror.com/@emotion/css@11.11.2 + '@emotion/react': registry.npmmirror.com/@emotion/react@11.11.1(@types/react@18.2.47)(react@18.2.0) + '@emotion/serialize': registry.npmmirror.com/@emotion/serialize@1.1.2 + '@emotion/server': registry.npmmirror.com/@emotion/server@11.11.0(@emotion/css@11.11.2) + '@emotion/utils': registry.npmmirror.com/@emotion/utils@1.2.1 + antd: registry.npmmirror.com/antd@5.12.8(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 use-merge-value: registry.npmmirror.com/use-merge-value@1.2.0(react@18.2.0) transitivePeerDependencies: @@ -7316,7 +7838,7 @@ packages: '@rc-component/mutate-observer': registry.npmmirror.com/@rc-component/mutate-observer@1.1.0(react-dom@18.2.0)(react@18.2.0) '@rc-component/tour': registry.npmmirror.com/@rc-component/tour@1.11.1(react-dom@18.2.0)(react@18.2.0) '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 copy-to-clipboard: registry.npmmirror.com/copy-to-clipboard@3.3.3 dayjs: registry.npmmirror.com/dayjs@1.11.10 qrcode.react: registry.npmmirror.com/qrcode.react@3.1.0(react@18.2.0) @@ -7381,7 +7903,7 @@ packages: '@rc-component/mutate-observer': registry.npmmirror.com/@rc-component/mutate-observer@1.1.0(react-dom@18.2.0)(react@18.2.0) '@rc-component/tour': registry.npmmirror.com/@rc-component/tour@1.11.1(react-dom@18.2.0)(react@18.2.0) '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 copy-to-clipboard: registry.npmmirror.com/copy-to-clipboard@3.3.3 dayjs: registry.npmmirror.com/dayjs@1.11.10 qrcode.react: registry.npmmirror.com/qrcode.react@3.1.0(react@18.2.0) @@ -7427,6 +7949,70 @@ packages: - moment dev: false + registry.npmmirror.com/antd@5.12.8(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-R2CRcB+aaVZurb3J0IKpBRWq5kW4CLcSqDF58/QBsqYdzK7XjSvM8+eF3rWVRUDbSJfGmyW7I80ywNRYpW1+vA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/antd/-/antd-5.12.8.tgz} + id: registry.npmmirror.com/antd/5.12.8 + name: antd + version: 5.12.8 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@ant-design/colors': registry.npmmirror.com/@ant-design/colors@7.0.2 + '@ant-design/cssinjs': registry.npmmirror.com/@ant-design/cssinjs@1.18.2(react-dom@18.2.0)(react@18.2.0) + '@ant-design/icons': registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0) + '@ant-design/react-slick': registry.npmmirror.com/@ant-design/react-slick@1.0.2(react@18.2.0) + '@ctrl/tinycolor': registry.npmmirror.com/@ctrl/tinycolor@3.6.1 + '@rc-component/color-picker': registry.npmmirror.com/@rc-component/color-picker@1.5.1(react-dom@18.2.0)(react@18.2.0) + '@rc-component/mutate-observer': registry.npmmirror.com/@rc-component/mutate-observer@1.1.0(react-dom@18.2.0)(react@18.2.0) + '@rc-component/tour': registry.npmmirror.com/@rc-component/tour@1.11.1(react-dom@18.2.0)(react@18.2.0) + '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.5.1 + copy-to-clipboard: registry.npmmirror.com/copy-to-clipboard@3.3.3 + dayjs: registry.npmmirror.com/dayjs@1.11.10 + qrcode.react: registry.npmmirror.com/qrcode.react@3.1.0(react@18.2.0) + rc-cascader: registry.npmmirror.com/rc-cascader@3.20.0(react-dom@18.2.0)(react@18.2.0) + rc-checkbox: registry.npmmirror.com/rc-checkbox@3.1.0(react-dom@18.2.0)(react@18.2.0) + rc-collapse: registry.npmmirror.com/rc-collapse@3.7.2(react-dom@18.2.0)(react@18.2.0) + rc-dialog: registry.npmmirror.com/rc-dialog@9.3.4(react-dom@18.2.0)(react@18.2.0) + rc-drawer: registry.npmmirror.com/rc-drawer@6.5.2(react-dom@18.2.0)(react@18.2.0) + rc-dropdown: registry.npmmirror.com/rc-dropdown@4.1.0(react-dom@18.2.0)(react@18.2.0) + rc-field-form: registry.npmmirror.com/rc-field-form@1.41.0(react-dom@18.2.0)(react@18.2.0) + rc-image: registry.npmmirror.com/rc-image@7.5.1(react-dom@18.2.0)(react@18.2.0) + rc-input: registry.npmmirror.com/rc-input@1.3.11(react-dom@18.2.0)(react@18.2.0) + rc-input-number: registry.npmmirror.com/rc-input-number@8.4.0(react-dom@18.2.0)(react@18.2.0) + rc-mentions: registry.npmmirror.com/rc-mentions@2.9.1(react-dom@18.2.0)(react@18.2.0) + rc-menu: registry.npmmirror.com/rc-menu@9.12.4(react-dom@18.2.0)(react@18.2.0) + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-notification: registry.npmmirror.com/rc-notification@5.3.0(react-dom@18.2.0)(react@18.2.0) + rc-pagination: registry.npmmirror.com/rc-pagination@4.0.4(react-dom@18.2.0)(react@18.2.0) + rc-picker: registry.npmmirror.com/rc-picker@3.14.6(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0) + rc-progress: registry.npmmirror.com/rc-progress@3.5.1(react-dom@18.2.0)(react@18.2.0) + rc-rate: registry.npmmirror.com/rc-rate@2.12.0(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-segmented: registry.npmmirror.com/rc-segmented@2.2.2(react-dom@18.2.0)(react@18.2.0) + rc-select: registry.npmmirror.com/rc-select@14.10.0(react-dom@18.2.0)(react@18.2.0) + rc-slider: registry.npmmirror.com/rc-slider@10.5.0(react-dom@18.2.0)(react@18.2.0) + rc-steps: registry.npmmirror.com/rc-steps@6.0.1(react-dom@18.2.0)(react@18.2.0) + rc-switch: registry.npmmirror.com/rc-switch@4.1.0(react-dom@18.2.0)(react@18.2.0) + rc-table: registry.npmmirror.com/rc-table@7.36.1(react-dom@18.2.0)(react@18.2.0) + rc-tabs: registry.npmmirror.com/rc-tabs@12.14.1(react-dom@18.2.0)(react@18.2.0) + rc-textarea: registry.npmmirror.com/rc-textarea@1.5.3(react-dom@18.2.0)(react@18.2.0) + rc-tooltip: registry.npmmirror.com/rc-tooltip@6.1.3(react-dom@18.2.0)(react@18.2.0) + rc-tree: registry.npmmirror.com/rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0) + rc-tree-select: registry.npmmirror.com/rc-tree-select@5.15.0(react-dom@18.2.0)(react@18.2.0) + rc-upload: registry.npmmirror.com/rc-upload@4.5.2(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: registry.npmmirror.com/react@18.2.0 + react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + scroll-into-view-if-needed: registry.npmmirror.com/scroll-into-view-if-needed@3.1.0 + throttle-debounce: registry.npmmirror.com/throttle-debounce@5.0.0 + transitivePeerDependencies: + - date-fns + - luxon + - moment + dev: false + registry.npmmirror.com/anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz} name: anymatch @@ -8277,7 +8863,6 @@ packages: name: builtin-modules version: 3.3.0 engines: {node: '>=6'} - dev: false registry.npmmirror.com/builtin-status-codes@3.0.0: resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz} @@ -8649,6 +9234,11 @@ packages: name: classnames version: 2.3.2 + registry.npmmirror.com/classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/classnames/-/classnames-2.5.1.tgz} + name: classnames + version: 2.5.1 + registry.npmmirror.com/clean-css@5.3.3: resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/clean-css/-/clean-css-5.3.3.tgz} name: clean-css @@ -9149,7 +9739,6 @@ packages: utils-merge: registry.npmmirror.com/utils-merge@1.0.1 transitivePeerDependencies: - supports-color - dev: false registry.npmmirror.com/console-browserify@1.2.0: resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/console-browserify/-/console-browserify-1.2.0.tgz} @@ -10420,8 +11009,8 @@ packages: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 '@floating-ui/react': registry.npmmirror.com/@floating-ui/react@0.24.8(react-dom@18.2.0)(react@18.2.0) ahooks: registry.npmmirror.com/ahooks@3.7.8(react@18.2.0) - antd: registry.npmmirror.com/antd@5.12.2(react-dom@18.2.0)(react@18.2.0) - antd-style: registry.npmmirror.com/antd-style@3.6.1(@types/react@18.2.45)(antd@5.12.2)(react-dom@18.2.0)(react@18.2.0) + antd: registry.npmmirror.com/antd@5.12.8(react-dom@18.2.0)(react@18.2.0) + antd-style: registry.npmmirror.com/antd-style@3.6.1(@types/react@18.2.45)(antd@5.12.8)(react-dom@18.2.0)(react@18.2.0) chalk: registry.npmmirror.com/chalk@4.1.2 chroma-js: registry.npmmirror.com/chroma-js@2.4.2 copy-to-clipboard: registry.npmmirror.com/copy-to-clipboard@3.3.3 @@ -10625,7 +11214,6 @@ packages: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz} name: ee-first version: 1.1.1 - dev: false registry.npmmirror.com/electron-to-chromium@1.4.614: resolution: {integrity: sha512-X4ze/9Sc3QWs6h92yerwqv7aB/uU8vCjZcrMjA8N9R1pjMFRe44dLsck5FzLilOYvcXuDn93B+bpGYyufc70gQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.614.tgz} @@ -10678,7 +11266,6 @@ packages: name: encodeurl version: 1.0.2 engines: {node: '>= 0.8'} - dev: false registry.npmmirror.com/encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/encoding/-/encoding-0.1.13.tgz} @@ -10962,7 +11549,6 @@ packages: version: 0.11.3 hasBin: true requiresBuild: true - dev: false registry.npmmirror.com/esbuild@0.17.19: resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz} @@ -11026,6 +11612,38 @@ packages: '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.18.20 '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.18.20 + registry.npmmirror.com/esbuild@0.19.11: + resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.19.11.tgz} + name: esbuild + version: 0.19.11 + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': registry.npmmirror.com/@esbuild/aix-ppc64@0.19.11 + '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.19.11 + '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64@0.19.11 + '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64@0.19.11 + '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64@0.19.11 + '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64@0.19.11 + '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64@0.19.11 + '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64@0.19.11 + '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm@0.19.11 + '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64@0.19.11 + '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32@0.19.11 + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.19.11 + '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el@0.19.11 + '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64@0.19.11 + '@esbuild/linux-riscv64': registry.npmmirror.com/@esbuild/linux-riscv64@0.19.11 + '@esbuild/linux-s390x': registry.npmmirror.com/@esbuild/linux-s390x@0.19.11 + '@esbuild/linux-x64': registry.npmmirror.com/@esbuild/linux-x64@0.19.11 + '@esbuild/netbsd-x64': registry.npmmirror.com/@esbuild/netbsd-x64@0.19.11 + '@esbuild/openbsd-x64': registry.npmmirror.com/@esbuild/openbsd-x64@0.19.11 + '@esbuild/sunos-x64': registry.npmmirror.com/@esbuild/sunos-x64@0.19.11 + '@esbuild/win32-arm64': registry.npmmirror.com/@esbuild/win32-arm64@0.19.11 + '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.19.11 + '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.19.11 + registry.npmmirror.com/escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz} name: escalade @@ -11036,7 +11654,6 @@ packages: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz} name: escape-html version: 1.0.3 - dev: false registry.npmmirror.com/escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz} @@ -11402,7 +12019,6 @@ packages: resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-walker/-/estree-walker-1.0.1.tgz} name: estree-walker version: 1.0.1 - dev: false registry.npmmirror.com/estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz} @@ -11874,7 +12490,6 @@ packages: unpipe: registry.npmmirror.com/unpipe@1.0.0 transitivePeerDependencies: - supports-color - dev: false registry.npmmirror.com/find-babel-config@1.2.0: resolution: {integrity: sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-babel-config/-/find-babel-config-1.2.0.tgz} @@ -13878,7 +14493,6 @@ packages: engines: {node: '>=6'} dependencies: builtin-modules: registry.npmmirror.com/builtin-modules@3.3.0 - dev: false registry.npmmirror.com/is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz} @@ -14121,7 +14735,6 @@ packages: resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-module/-/is-module-1.0.0.tgz} name: is-module version: 1.0.0 - dev: false registry.npmmirror.com/is-negative-zero@2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz} @@ -16512,7 +17125,6 @@ packages: hasBin: true dependencies: commander: registry.npmmirror.com/commander@11.1.0 - dev: false registry.npmmirror.com/move-concurrently@1.0.1: resolution: {integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz} @@ -17154,7 +17766,6 @@ packages: engines: {node: '>= 0.8'} dependencies: ee-first: registry.npmmirror.com/ee-first@1.1.1 - dev: false registry.npmmirror.com/once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/once/-/once-1.4.0.tgz} @@ -17656,7 +18267,6 @@ packages: name: parseurl version: 1.3.3 engines: {node: '>= 0.8'} - dev: false registry.npmmirror.com/pascal-case@3.1.2: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz} @@ -17771,7 +18381,6 @@ packages: resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz} name: path-to-regexp version: 6.2.1 - dev: false registry.npmmirror.com/path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz} @@ -19296,7 +19905,7 @@ packages: dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 array-tree-filter: registry.npmmirror.com/array-tree-filter@2.1.0 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-select: registry.npmmirror.com/rc-select@14.10.0(react-dom@18.2.0)(react@18.2.0) rc-tree: registry.npmmirror.com/rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0) rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) @@ -19314,7 +19923,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) @@ -19330,7 +19939,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 @@ -19348,7 +19957,7 @@ packages: dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 '@rc-component/portal': registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 @@ -19366,7 +19975,7 @@ packages: dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 '@rc-component/portal': registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 @@ -19384,7 +19993,7 @@ packages: dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) @@ -19416,7 +20025,7 @@ packages: react-dom: '>=16.0.0' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) dev: false @@ -19432,7 +20041,7 @@ packages: dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 '@rc-component/portal': registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-dialog: registry.npmmirror.com/rc-dialog@9.3.4(react-dom@18.2.0)(react@18.2.0) rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) @@ -19451,7 +20060,7 @@ packages: dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 '@rc-component/mini-decimal': registry.npmmirror.com/@rc-component/mini-decimal@1.1.0 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-input: registry.npmmirror.com/rc-input@1.3.11(react-dom@18.2.0)(react@18.2.0) rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 @@ -19468,7 +20077,7 @@ packages: react-dom: '>=16.0.0' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) @@ -19485,7 +20094,7 @@ packages: dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-input: registry.npmmirror.com/rc-input@1.3.11(react-dom@18.2.0)(react@18.2.0) rc-menu: registry.npmmirror.com/rc-menu@9.12.4(react-dom@18.2.0)(react@18.2.0) rc-textarea: registry.npmmirror.com/rc-textarea@1.5.3(react-dom@18.2.0)(react@18.2.0) @@ -19505,7 +20114,7 @@ packages: dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) rc-overflow: registry.npmmirror.com/rc-overflow@1.3.2(react-dom@18.2.0)(react@18.2.0) rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) @@ -19522,7 +20131,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) @@ -19538,7 +20147,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 @@ -19555,7 +20164,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 @@ -19571,7 +20180,23 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: registry.npmmirror.com/react@18.2.0 + react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-pagination@4.0.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-GGrLT4NgG6wgJpT/hHIpL9nELv27A1XbSZzECIuQBQTVSf4xGKxWr6I/jhpRPauYEWEbWVw22ObG6tJQqwJqWQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-pagination/-/rc-pagination-4.0.4.tgz} + id: registry.npmmirror.com/rc-pagination/4.0.4 + name: rc-pagination + version: 4.0.4 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) @@ -19602,7 +20227,7 @@ packages: dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 dayjs: registry.npmmirror.com/dayjs@1.11.10 rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 @@ -19619,7 +20244,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) @@ -19636,7 +20261,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) @@ -19652,7 +20277,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) @@ -19668,7 +20293,7 @@ packages: react-dom: '>=16.0.0' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 @@ -19687,7 +20312,7 @@ packages: dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) rc-overflow: registry.npmmirror.com/rc-overflow@1.3.2(react-dom@18.2.0)(react@18.2.0) rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) @@ -19707,7 +20332,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) @@ -19724,7 +20349,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) @@ -19740,7 +20365,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) @@ -19758,7 +20383,27 @@ packages: dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 '@rc-component/context': registry.npmmirror.com/@rc-component/context@1.4.0(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 + rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + rc-virtual-list: registry.npmmirror.com/rc-virtual-list@3.11.3(react-dom@18.2.0)(react@18.2.0) + react: registry.npmmirror.com/react@18.2.0 + react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-table@7.36.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-9qMxEm/3Y8ukdW8I8ZvmhX0QImfNKzH0JEUlSbyaUlsYTB+/tQEbfaB8YkG4sHVZ1io4pxqK/BXoZYqebi/TIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-table/-/rc-table-7.36.1.tgz} + id: registry.npmmirror.com/rc-table/7.36.1 + name: rc-table + version: 7.36.1 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + '@rc-component/context': registry.npmmirror.com/@rc-component/context@1.4.0(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.5.1 rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) rc-virtual-list: registry.npmmirror.com/rc-virtual-list@3.11.3(react-dom@18.2.0)(react@18.2.0) @@ -19777,7 +20422,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-dropdown: registry.npmmirror.com/rc-dropdown@4.1.0(react-dom@18.2.0)(react@18.2.0) rc-menu: registry.npmmirror.com/rc-menu@9.12.4(react-dom@18.2.0)(react@18.2.0) rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) @@ -19798,7 +20443,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-dropdown: registry.npmmirror.com/rc-dropdown@4.1.0(react-dom@18.2.0)(react@18.2.0) rc-menu: registry.npmmirror.com/rc-menu@9.12.4(react-dom@18.2.0)(react@18.2.0) rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) @@ -19817,7 +20462,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-input: registry.npmmirror.com/rc-input@1.3.11(react-dom@18.2.0)(react@18.2.0) rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) @@ -19836,7 +20481,7 @@ packages: dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) dev: false @@ -19852,7 +20497,7 @@ packages: dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) dev: false @@ -19867,7 +20512,7 @@ packages: react-dom: '*' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-select: registry.npmmirror.com/rc-select@14.10.0(react-dom@18.2.0)(react@18.2.0) rc-tree: registry.npmmirror.com/rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0) rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) @@ -19886,7 +20531,7 @@ packages: react-dom: '*' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) rc-virtual-list: registry.npmmirror.com/rc-virtual-list@3.11.3(react-dom@18.2.0)(react@18.2.0) @@ -19903,7 +20548,23 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: registry.npmmirror.com/react@18.2.0 + react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-upload@4.5.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-QO3ne77DwnAPKFn0bA5qJM81QBjQi0e0NHdkvpFyY73Bea2NfITiotqJqVjHgeYPOJu5lLVR32TNGP084aSoXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-upload/-/rc-upload-4.5.2.tgz} + id: registry.npmmirror.com/rc-upload/4.5.2 + name: rc-upload + version: 4.5.2 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) @@ -19934,7 +20595,7 @@ packages: react-dom: '*' dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 @@ -20143,7 +20804,7 @@ packages: '@formatjs/intl-displaynames': registry.npmmirror.com/@formatjs/intl-displaynames@6.6.4 '@formatjs/intl-listformat': registry.npmmirror.com/@formatjs/intl-listformat@7.5.3 '@types/hoist-non-react-statics': registry.npmmirror.com/@types/hoist-non-react-statics@3.3.5 - '@types/react': registry.npmmirror.com/@types/react@18.2.45 + '@types/react': registry.npmmirror.com/@types/react@18.2.47 hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 intl-messageformat: registry.npmmirror.com/intl-messageformat@10.5.8 react: registry.npmmirror.com/react@18.2.0 @@ -20213,7 +20874,7 @@ packages: name: react-org-tree version: 1.0.1 dependencies: - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 dev: false registry.npmmirror.com/react-redux@8.1.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1): @@ -20392,7 +21053,7 @@ packages: react: ^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0 react-dom: ^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0 dependencies: - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 enquire.js: registry.npmmirror.com/enquire.js@2.1.6 json2mq: registry.npmmirror.com/json2mq@0.2.0 lodash.debounce: registry.npmmirror.com/lodash.debounce@4.0.8 @@ -22152,7 +22813,6 @@ packages: name: statuses version: 1.5.0 engines: {node: '>= 0.6'} - dev: false registry.npmmirror.com/stdin-discarder@0.2.2: resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stdin-discarder/-/stdin-discarder-0.2.2.tgz} @@ -23733,7 +24393,6 @@ packages: name: unpipe version: 1.0.0 engines: {node: '>= 0.8'} - dev: false registry.npmmirror.com/unquote@1.1.1: resolution: {integrity: sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unquote/-/unquote-1.1.1.tgz} @@ -23950,7 +24609,6 @@ packages: name: utils-merge version: 1.0.1 engines: {node: '>= 0.4.0'} - dev: false registry.npmmirror.com/uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz} @@ -24057,7 +24715,7 @@ packages: react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - classnames: registry.npmmirror.com/classnames@2.3.2 + classnames: registry.npmmirror.com/classnames@2.5.1 lodash.throttle: registry.npmmirror.com/lodash.throttle@4.1.1 prop-types: registry.npmmirror.com/prop-types@15.8.1 react: registry.npmmirror.com/react@18.2.0 @@ -24081,6 +24739,32 @@ packages: vite: registry.npmmirror.com/vite@4.5.0(@types/node@20.10.4)(less@4.2.0)(terser@5.26.0) dev: true + registry.npmmirror.com/vite-plugin-mock@2.9.6(mockjs@1.1.0)(rollup@2.79.1)(vite@5.0.11): + resolution: {integrity: sha512-/Rm59oPppe/ncbkSrUuAxIQihlI2YcBmnbR4ST1RA2VzM1C0tEQc1KlbQvnUGhXECAGTaQN2JyasiwXP6EtKgg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-plugin-mock/-/vite-plugin-mock-2.9.6.tgz} + id: registry.npmmirror.com/vite-plugin-mock/2.9.6 + name: vite-plugin-mock + version: 2.9.6 + engines: {node: '>=12.0.0'} + peerDependencies: + mockjs: '>=1.1.0' + vite: '>=2.0.0' + dependencies: + '@rollup/plugin-node-resolve': registry.npmmirror.com/@rollup/plugin-node-resolve@13.3.0(rollup@2.79.1) + '@types/mockjs': registry.npmmirror.com/@types/mockjs@1.0.10 + chalk: registry.npmmirror.com/chalk@4.1.2 + chokidar: registry.npmmirror.com/chokidar@3.5.3 + connect: registry.npmmirror.com/connect@3.7.0 + debug: registry.npmmirror.com/debug@4.3.4 + esbuild: registry.npmmirror.com/esbuild@0.11.3 + fast-glob: registry.npmmirror.com/fast-glob@3.3.2 + mockjs: registry.npmmirror.com/mockjs@1.1.0 + path-to-regexp: registry.npmmirror.com/path-to-regexp@6.2.1 + vite: registry.npmmirror.com/vite@5.0.11(@types/node@18.19.3) + transitivePeerDependencies: + - rollup + - supports-color + dev: true + registry.npmmirror.com/vite-plugin-mock@2.9.6(mockjs@1.1.0)(rollup@4.9.0)(vite@4.5.0): resolution: {integrity: sha512-/Rm59oPppe/ncbkSrUuAxIQihlI2YcBmnbR4ST1RA2VzM1C0tEQc1KlbQvnUGhXECAGTaQN2JyasiwXP6EtKgg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-plugin-mock/-/vite-plugin-mock-2.9.6.tgz} id: registry.npmmirror.com/vite-plugin-mock/2.9.6 @@ -24128,6 +24812,27 @@ packages: - supports-color dev: true + registry.npmmirror.com/vite-plugin-svg-icons@2.0.1(vite@5.0.11): + resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-plugin-svg-icons/-/vite-plugin-svg-icons-2.0.1.tgz} + id: registry.npmmirror.com/vite-plugin-svg-icons/2.0.1 + name: vite-plugin-svg-icons + version: 2.0.1 + peerDependencies: + vite: '>=2.0.0' + dependencies: + '@types/svgo': registry.npmmirror.com/@types/svgo@2.6.4 + cors: registry.npmmirror.com/cors@2.8.5 + debug: registry.npmmirror.com/debug@4.3.4 + etag: registry.npmmirror.com/etag@1.8.1 + fs-extra: registry.npmmirror.com/fs-extra@10.1.0 + pathe: registry.npmmirror.com/pathe@0.2.0 + svg-baker: registry.npmmirror.com/svg-baker@1.7.0 + svgo: registry.npmmirror.com/svgo@2.8.0 + vite: registry.npmmirror.com/vite@5.0.11(@types/node@18.19.3) + transitivePeerDependencies: + - supports-color + dev: true + registry.npmmirror.com/vite@4.3.1(@types/node@20.5.1)(less@4.1.3)(sass@1.69.5): resolution: {integrity: sha512-EPmfPLAI79Z/RofuMvkIS0Yr091T2ReUoXQqc5ppBX/sjFRhHKiPPF/R46cTdoci/XgeQpB23diiJxq5w30vdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-4.3.1.tgz} id: registry.npmmirror.com/vite/4.3.1 @@ -24205,6 +24910,44 @@ packages: optionalDependencies: fsevents: registry.npmmirror.com/fsevents@2.3.3 + registry.npmmirror.com/vite@5.0.11(@types/node@18.19.3): + resolution: {integrity: sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-5.0.11.tgz} + id: registry.npmmirror.com/vite/5.0.11 + name: vite + version: 5.0.11 + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': registry.npmmirror.com/@types/node@18.19.3 + esbuild: registry.npmmirror.com/esbuild@0.19.11 + postcss: registry.npmmirror.com/postcss@8.4.32 + rollup: registry.npmmirror.com/rollup@4.9.0 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + registry.npmmirror.com/vm-browserify@1.1.2: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vm-browserify/-/vm-browserify-1.1.2.tgz} name: vm-browserify From 92e8d834807edadeddef6ef525b1318feaeb62c6 Mon Sep 17 00:00:00 2001 From: niyonggui Date: Mon, 8 Jan 2024 16:26:20 +0800 Subject: [PATCH 14/26] =?UTF-8?q?docs:=20:memo:=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=96=87=E6=A1=A3=EF=BC=8C=E6=96=B0=E5=A2=9Eplop=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Readme.md b/Readme.md index 9cb40147..2f6d1b95 100644 --- a/Readme.md +++ b/Readme.md @@ -66,6 +66,7 @@ antd5已经发布很久了,之前一直在维护的一套基于antd4版本的 - CICD持续集成 - 容器化部署 - 代码规范设计 +- 基础模板库设计 - ... ## 建设目标 @@ -75,6 +76,7 @@ antd5已经发布很久了,之前一直在维护的一套基于antd4版本的 - [x] antd5组件库开发 - [x] 分包设计与应用设计 - [x] 自动化tag版本打包 +- [ ] plop基础项目模板创建 - [ ] 微前端接入 - [ ] 模板编写 @@ -100,6 +102,7 @@ antd5已经发布很久了,之前一直在维护的一套基于antd4版本的 - [x] 路由设计,使用loadable-compoment替代React.lazy - [x] 主题控制面板 - [x] 模块高亮搜索 +- [x] 系统模板创建 ## 使用 From 73c190b7581ec5d7eab63e580d8d8e900a379049 Mon Sep 17 00:00:00 2001 From: G Date: Mon, 8 Jan 2024 23:45:01 +0800 Subject: [PATCH 15/26] =?UTF-8?q?build:=20:package:=20=E6=96=B0=E5=A2=9Ein?= =?UTF-8?q?ternal=E5=8C=85=EF=BC=8C=E7=AE=A1=E7=90=86=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=85=AC=E5=85=B1=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/ts-config/node.json | 12 + internal/ts-config/package.json | 26 + internal/vite-config/.eslintignore | 9 + internal/vite-config/build.config.ts | 10 + internal/vite-config/eslint.cjs | 4 + internal/vite-config/package.json | 43 ++ internal/vite-config/tsconfig.json | 5 + package.json | 4 +- .../modules/GlobalConfig/ConfigProvider.tsx | 4 +- pnpm-lock.yaml | 530 +++++++++++++++++- pnpm-workspace.yaml | 1 + 11 files changed, 617 insertions(+), 31 deletions(-) create mode 100644 internal/ts-config/node.json create mode 100644 internal/ts-config/package.json create mode 100644 internal/vite-config/.eslintignore create mode 100644 internal/vite-config/build.config.ts create mode 100644 internal/vite-config/eslint.cjs create mode 100644 internal/vite-config/package.json create mode 100644 internal/vite-config/tsconfig.json diff --git a/internal/ts-config/node.json b/internal/ts-config/node.json new file mode 100644 index 00000000..cdd365f5 --- /dev/null +++ b/internal/ts-config/node.json @@ -0,0 +1,12 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "Node Config", + "extends": "./base.json", + "compilerOptions": { + "lib": ["ESNext"], + "noImplicitAny": true, + "sourceMap": true, + "noEmit": true, + "baseUrl": "./" + } +} diff --git a/internal/ts-config/package.json b/internal/ts-config/package.json new file mode 100644 index 00000000..d78cb114 --- /dev/null +++ b/internal/ts-config/package.json @@ -0,0 +1,26 @@ +{ + "name": "@gbeata/ts-config", + "version": "1.0.0", + "private": true, + "homepage": "https://github.com/anyone-yuren/react-antd-admin-pnpm", + "bugs": { + "url": "https://github.com/anyone-yuren/react-antd-admin-pnpm/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/anyone-yuren/react-antd-admin-pnpm.git", + "directory": "internal/ts-config" + }, + "license": "MIT", + "type": "module", + "files": [ + "base.json", + "node.json", + "vue-app.json", + "node-server.json" + ], + "dependencies": { + "@types/node": "^20.10.6", + "vite": "^5.0.10" + } +} diff --git a/internal/vite-config/.eslintignore b/internal/vite-config/.eslintignore new file mode 100644 index 00000000..9cc6e40f --- /dev/null +++ b/internal/vite-config/.eslintignore @@ -0,0 +1,9 @@ + +*.sh +node_modules +*.md +*.woff +*.ttf +.turbo +dist +package.json \ No newline at end of file diff --git a/internal/vite-config/build.config.ts b/internal/vite-config/build.config.ts new file mode 100644 index 00000000..e8bf51bb --- /dev/null +++ b/internal/vite-config/build.config.ts @@ -0,0 +1,10 @@ +import { defineBuildConfig } from "unbuild"; + +export default defineBuildConfig({ + clean: true, + entries: ["src/index"], + declaration: true, + rollup: { + emitCJS: true, + }, +}); diff --git a/internal/vite-config/eslint.cjs b/internal/vite-config/eslint.cjs new file mode 100644 index 00000000..17c26632 --- /dev/null +++ b/internal/vite-config/eslint.cjs @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ["@vben/eslint-config/strict"], +}; diff --git a/internal/vite-config/package.json b/internal/vite-config/package.json new file mode 100644 index 00000000..75f9b210 --- /dev/null +++ b/internal/vite-config/package.json @@ -0,0 +1,43 @@ +{ + "name": "@gbeata/vite-config", + "version": "1.0.0", + "description": "", + "private": true, + "homepage": "https://github.com/anyone-yuren/react-antd-admin-pnpm", + "bugs": { + "url": "https://github.com/anyone-yuren/react-antd-admin-pnpm/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/anyone-yuren/react-antd-admin-pnpm.git", + "directory": "internal/vite-config" + }, + "main": "./dist/index.cjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "scripts": { + "clean": "pnpm rimraf .turbo node_modules dist", + "lint": "pnpm eslint .", + "stub": "pnpm unbuild --stub" + }, + "files": [ + "dist" + ], + "keywords": [ + "vite", + "vite-config" + ], + "author": "", + "license": "MIT", + "type": "module", + "exports": { + ".": { + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "types": "./dist/index.d.ts" + } + }, + "dependencies": { + "vite": "4.5.0" + } +} diff --git a/internal/vite-config/tsconfig.json b/internal/vite-config/tsconfig.json new file mode 100644 index 00000000..3efedfee --- /dev/null +++ b/internal/vite-config/tsconfig.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "@gbeata/ts-config/node.json", + "include": ["src"] +} diff --git a/package.json b/package.json index 8a961a38..96c62685 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "@changesets/cli": "^2.27.1", "@commitlint/cli": "^18.4.3", "@commitlint/config-conventional": "^18.4.3", + "@gbeata/ts-config": "workspace:^", "@semantic-release/changelog": "^6.0.3", "@semantic-release/git": "^10.0.1", "@semantic-release/github": "^9.2.5", @@ -47,7 +48,8 @@ "husky": "^8.0.3", "prettier": "^3.1.0", "semantic-release": "^22.0.12", - "turbo": "^1.11.0" + "turbo": "^1.11.0", + "unbuild": "^2.0.0" }, "dependencies": { "@ant-design/icons": "^5.2.6", diff --git a/packages/ui/modules/GlobalConfig/ConfigProvider.tsx b/packages/ui/modules/GlobalConfig/ConfigProvider.tsx index 86a26d98..dec7828b 100644 --- a/packages/ui/modules/GlobalConfig/ConfigProvider.tsx +++ b/packages/ui/modules/GlobalConfig/ConfigProvider.tsx @@ -58,8 +58,8 @@ const showInsetEffect: WaveConfig['showEffect'] = (node, { event, component }) = holder.remove(); }; - dot.style.width = '200px'; - dot.style.height = '200px'; + dot.style.width = '400px'; + dot.style.height = '400px'; dot.style.opacity = '0'; }); }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2d180309..fcf0d599 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,6 +33,9 @@ importers: '@commitlint/config-conventional': specifier: ^18.4.3 version: registry.npmmirror.com/@commitlint/config-conventional@18.4.3 + '@gbeata/ts-config': + specifier: workspace:^ + version: link:internal/ts-config '@semantic-release/changelog': specifier: ^6.0.3 version: registry.npmmirror.com/@semantic-release/changelog@6.0.3(semantic-release@22.0.12) @@ -72,6 +75,9 @@ importers: turbo: specifier: ^1.11.0 version: registry.npmmirror.com/turbo@1.11.2 + unbuild: + specifier: ^2.0.0 + version: registry.npmmirror.com/unbuild@2.0.0(typescript@5.3.3) apps/admin: dependencies: @@ -418,6 +424,21 @@ importers: specifier: ^2.0.1 version: registry.npmmirror.com/vite-plugin-svg-icons@2.0.1(vite@5.0.11) + internal/ts-config: + dependencies: + '@types/node': + specifier: ^20.10.6 + version: registry.npmmirror.com/@types/node@20.10.7 + vite: + specifier: ^5.0.10 + version: registry.npmmirror.com/vite@5.0.11(@types/node@20.10.7) + + internal/vite-config: + dependencies: + vite: + specifier: 4.5.0 + version: registry.npmmirror.com/vite@4.5.0(@types/node@18.19.3) + packages/apis: dependencies: antd: @@ -519,7 +540,7 @@ importers: version: registry.npmmirror.com/classnames@2.3.2 dumi: specifier: ^2.2.13 - version: registry.npmmirror.com/dumi@2.2.16(@babel/core@7.23.6)(@types/node@20.5.1)(@types/react@18.2.45)(eslint@8.56.0)(prettier@2.8.8)(react-dom@18.2.0)(react@18.2.0)(stylelint@14.16.1)(typescript@5.3.3)(webpack@5.89.0) + version: registry.npmmirror.com/dumi@2.2.16(@babel/core@7.23.6)(@types/node@20.5.1)(@types/react@18.2.45)(eslint@8.56.0)(prettier@2.8.8)(react-dom@18.2.0)(react@18.2.0)(rollup@3.29.4)(stylelint@14.16.1)(typescript@5.3.3)(webpack@5.89.0) eslint: specifier: ^8.23.0 version: registry.npmmirror.com/eslint@8.56.0 @@ -2215,6 +2236,13 @@ packages: dependencies: regenerator-runtime: registry.npmmirror.com/regenerator-runtime@0.14.1 + registry.npmmirror.com/@babel/standalone@7.23.7: + resolution: {integrity: sha512-AsO3aIh9I4qIqK61d6nPxPAdrSuWF4FmOLej3xNIkBIZj+8XJGArQQJw6DnuUkkqbsLp1fARkXOdKiuqWgac0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/standalone/-/standalone-7.23.7.tgz} + name: '@babel/standalone' + version: 7.23.7 + engines: {node: '>=6.9.0'} + dev: true + registry.npmmirror.com/@babel/template@7.22.15: resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/template/-/template-7.22.15.tgz} name: '@babel/template' @@ -4304,7 +4332,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': registry.npmmirror.com/@types/istanbul-lib-coverage@2.0.6 '@types/istanbul-reports': registry.npmmirror.com/@types/istanbul-reports@3.0.4 - '@types/node': registry.npmmirror.com/@types/node@20.10.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.7 '@types/yargs': registry.npmmirror.com/@types/yargs@16.0.9 chalk: registry.npmmirror.com/chalk@4.1.2 @@ -4317,7 +4345,7 @@ packages: '@jest/schemas': registry.npmmirror.com/@jest/schemas@29.6.3 '@types/istanbul-lib-coverage': registry.npmmirror.com/@types/istanbul-lib-coverage@2.0.6 '@types/istanbul-reports': registry.npmmirror.com/@types/istanbul-reports@3.0.4 - '@types/node': registry.npmmirror.com/@types/node@20.10.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.7 '@types/yargs': registry.npmmirror.com/@types/yargs@17.0.32 chalk: registry.npmmirror.com/chalk@4.1.2 @@ -4974,6 +5002,59 @@ packages: engines: {node: '>=14.0.0'} dev: false + registry.npmmirror.com/@rollup/plugin-alias@5.1.0(rollup@3.29.4): + resolution: {integrity: sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/plugin-alias/-/plugin-alias-5.1.0.tgz} + id: registry.npmmirror.com/@rollup/plugin-alias/5.1.0 + name: '@rollup/plugin-alias' + version: 5.1.0 + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + rollup: registry.npmmirror.com/rollup@3.29.4 + slash: registry.npmmirror.com/slash@4.0.0 + dev: true + + registry.npmmirror.com/@rollup/plugin-commonjs@25.0.7(rollup@3.29.4): + resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.7.tgz} + id: registry.npmmirror.com/@rollup/plugin-commonjs/25.0.7 + name: '@rollup/plugin-commonjs' + version: 25.0.7 + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils@5.1.0(rollup@3.29.4) + commondir: registry.npmmirror.com/commondir@1.0.1 + estree-walker: registry.npmmirror.com/estree-walker@2.0.2 + glob: registry.npmmirror.com/glob@8.1.0 + is-reference: registry.npmmirror.com/is-reference@1.2.1 + magic-string: registry.npmmirror.com/magic-string@0.30.5 + rollup: registry.npmmirror.com/rollup@3.29.4 + dev: true + + registry.npmmirror.com/@rollup/plugin-json@6.1.0(rollup@3.29.4): + resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/plugin-json/-/plugin-json-6.1.0.tgz} + id: registry.npmmirror.com/@rollup/plugin-json/6.1.0 + name: '@rollup/plugin-json' + version: 6.1.0 + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils@5.1.0(rollup@3.29.4) + rollup: registry.npmmirror.com/rollup@3.29.4 + dev: true + registry.npmmirror.com/@rollup/plugin-node-resolve@13.3.0(rollup@2.79.1): resolution: {integrity: sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz} id: registry.npmmirror.com/@rollup/plugin-node-resolve/13.3.0 @@ -5010,6 +5091,44 @@ packages: rollup: registry.npmmirror.com/rollup@4.9.0 dev: false + registry.npmmirror.com/@rollup/plugin-node-resolve@15.2.3(rollup@3.29.4): + resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz} + id: registry.npmmirror.com/@rollup/plugin-node-resolve/15.2.3 + name: '@rollup/plugin-node-resolve' + version: 15.2.3 + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils@5.1.0(rollup@3.29.4) + '@types/resolve': registry.npmmirror.com/@types/resolve@1.20.2 + deepmerge: registry.npmmirror.com/deepmerge@4.3.1 + is-builtin-module: registry.npmmirror.com/is-builtin-module@3.2.1 + is-module: registry.npmmirror.com/is-module@1.0.0 + resolve: registry.npmmirror.com/resolve@1.22.8 + rollup: registry.npmmirror.com/rollup@3.29.4 + dev: true + + registry.npmmirror.com/@rollup/plugin-replace@5.0.5(rollup@3.29.4): + resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/plugin-replace/-/plugin-replace-5.0.5.tgz} + id: registry.npmmirror.com/@rollup/plugin-replace/5.0.5 + name: '@rollup/plugin-replace' + version: 5.0.5 + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils@5.1.0(rollup@3.29.4) + magic-string: registry.npmmirror.com/magic-string@0.30.5 + rollup: registry.npmmirror.com/rollup@3.29.4 + dev: true + registry.npmmirror.com/@rollup/pluginutils@3.1.0(rollup@2.79.1): resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz} id: registry.npmmirror.com/@rollup/pluginutils/3.1.0 @@ -5050,6 +5169,24 @@ packages: picomatch: registry.npmmirror.com/picomatch@2.3.1 dev: true + registry.npmmirror.com/@rollup/pluginutils@5.1.0(rollup@3.29.4): + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz} + id: registry.npmmirror.com/@rollup/pluginutils/5.1.0 + name: '@rollup/pluginutils' + version: 5.1.0 + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 + estree-walker: registry.npmmirror.com/estree-walker@2.0.2 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + rollup: registry.npmmirror.com/rollup@3.29.4 + dev: true + registry.npmmirror.com/@rollup/rollup-android-arm-eabi@4.9.0: resolution: {integrity: sha512-+1ge/xmaJpm1KVBuIH38Z94zj9fBD+hp+/5WLaHgyY8XLq1ibxk/zj6dTXaqM2cAbYKq8jYlhHd6k05If1W5xA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.0.tgz} name: '@rollup/rollup-android-arm-eabi' @@ -5866,14 +6003,14 @@ packages: version: 11.0.1 dependencies: '@types/jsonfile': registry.npmmirror.com/@types/jsonfile@6.1.4 - '@types/node': registry.npmmirror.com/@types/node@20.10.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.7 registry.npmmirror.com/@types/graceful-fs@4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz} name: '@types/graceful-fs' version: 4.1.9 dependencies: - '@types/node': registry.npmmirror.com/@types/node@20.10.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.7 registry.npmmirror.com/@types/hapi__joi@17.1.9: resolution: {integrity: sha512-oOMFT8vmCTFncsF1engrs04jatz8/Anwx3De9uxnOK4chgSEgWBvFtpSoJo8u3784JNO+ql5tzRR6phHoRnscQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/hapi__joi/-/hapi__joi-17.1.9.tgz} @@ -5956,14 +6093,14 @@ packages: name: '@types/jsonfile' version: 6.1.4 dependencies: - '@types/node': registry.npmmirror.com/@types/node@20.10.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.7 registry.npmmirror.com/@types/keyv@3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/keyv/-/keyv-3.1.4.tgz} name: '@types/keyv' version: 3.1.4 dependencies: - '@types/node': registry.npmmirror.com/@types/node@20.10.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.7 registry.npmmirror.com/@types/liftoff@4.0.3: resolution: {integrity: sha512-UgbL2kR5pLrWICvr8+fuSg0u43LY250q7ZMkC+XKC3E+rs/YBDEnQIzsnhU5dYsLlwMi3R75UvCL87pObP1sxw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/liftoff/-/liftoff-4.0.3.tgz} @@ -5971,7 +6108,7 @@ packages: version: 4.0.3 dependencies: '@types/fined': registry.npmmirror.com/@types/fined@1.1.5 - '@types/node': registry.npmmirror.com/@types/node@20.10.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.7 dev: false registry.npmmirror.com/@types/loadable__component@5.13.8: @@ -6043,6 +6180,13 @@ packages: dependencies: undici-types: registry.npmmirror.com/undici-types@5.26.5 + registry.npmmirror.com/@types/node@20.10.7: + resolution: {integrity: sha512-fRbIKb8C/Y2lXxB5eVMj4IU7xpdox0Lh8bUPEdtLysaylsml1hOOx1+STloRs/B9nf7C6kPRmmg/V7aQW7usNg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/-/node-20.10.7.tgz} + name: '@types/node' + version: 20.10.7 + dependencies: + undici-types: registry.npmmirror.com/undici-types@5.26.5 + registry.npmmirror.com/@types/node@20.5.1: resolution: {integrity: sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/-/node-20.5.1.tgz} name: '@types/node' @@ -6143,21 +6287,27 @@ packages: name: '@types/resolve' version: 1.17.1 dependencies: - '@types/node': registry.npmmirror.com/@types/node@20.10.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.7 + + registry.npmmirror.com/@types/resolve@1.20.2: + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/resolve/-/resolve-1.20.2.tgz} + name: '@types/resolve' + version: 1.20.2 + dev: true registry.npmmirror.com/@types/responselike@1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/responselike/-/responselike-1.0.3.tgz} name: '@types/responselike' version: 1.0.3 dependencies: - '@types/node': registry.npmmirror.com/@types/node@20.10.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.7 registry.npmmirror.com/@types/sax@1.2.7: resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/sax/-/sax-1.2.7.tgz} name: '@types/sax' version: 1.2.7 dependencies: - '@types/node': registry.npmmirror.com/@types/node@20.10.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.7 registry.npmmirror.com/@types/scheduler@0.16.8: resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.8.tgz} @@ -6179,7 +6329,7 @@ packages: name: '@types/svgo' version: 2.6.4 dependencies: - '@types/node': registry.npmmirror.com/@types/node@20.10.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.7 dev: true registry.npmmirror.com/@types/through@0.0.33: @@ -6187,7 +6337,7 @@ packages: name: '@types/through' version: 0.0.33 dependencies: - '@types/node': registry.npmmirror.com/@types/node@20.10.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.7 dev: false registry.npmmirror.com/@types/unist@2.0.10: @@ -6528,7 +6678,7 @@ packages: transitivePeerDependencies: - supports-color - registry.npmmirror.com/@umijs/bundler-vite@4.0.89(@types/node@20.5.1)(postcss@8.4.32)(sass@1.69.5): + registry.npmmirror.com/@umijs/bundler-vite@4.0.89(@types/node@20.5.1)(postcss@8.4.32)(rollup@3.29.4)(sass@1.69.5): resolution: {integrity: sha512-4dfBmVK44AqsJm1+YhFijKXcrHoM26vO9Ju5Us4+J0Ca3rDUtWQZJ9xFEkqsNsf7AMaJ7B8zDd422sThvvSXGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/bundler-vite/-/bundler-vite-4.0.89.tgz} id: registry.npmmirror.com/@umijs/bundler-vite/4.0.89 name: '@umijs/bundler-vite' @@ -6542,7 +6692,7 @@ packages: core-js: registry.npmmirror.com/core-js@3.28.0 less: registry.npmmirror.com/less@4.1.3 postcss-preset-env: registry.npmmirror.com/postcss-preset-env@7.5.0(postcss@8.4.32) - rollup-plugin-visualizer: registry.npmmirror.com/rollup-plugin-visualizer@5.9.0 + rollup-plugin-visualizer: registry.npmmirror.com/rollup-plugin-visualizer@5.9.0(rollup@3.29.4) systemjs: registry.npmmirror.com/systemjs@6.14.2 vite: registry.npmmirror.com/vite@4.3.1(@types/node@20.5.1)(less@4.1.3)(sass@1.69.5) transitivePeerDependencies: @@ -6822,7 +6972,7 @@ packages: dependencies: tsx: registry.npmmirror.com/tsx@3.14.0 - registry.npmmirror.com/@umijs/preset-umi@4.0.89(@types/node@20.5.1)(@types/react@18.2.45)(sass@1.69.5)(typescript@5.3.3)(webpack@5.89.0): + registry.npmmirror.com/@umijs/preset-umi@4.0.89(@types/node@20.5.1)(@types/react@18.2.45)(rollup@3.29.4)(sass@1.69.5)(typescript@5.3.3)(webpack@5.89.0): resolution: {integrity: sha512-S0dn0e9C5eD2IX8bGGrNEDd0EaQVGuAwyJw2ruIU/FCO9B1HwdjCdRMuEADCBOuXMzBRt4+wKToFgId5tz3gAA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/preset-umi/-/preset-umi-4.0.89.tgz} id: registry.npmmirror.com/@umijs/preset-umi/4.0.89 name: '@umijs/preset-umi' @@ -6834,7 +6984,7 @@ packages: '@umijs/babel-preset-umi': registry.npmmirror.com/@umijs/babel-preset-umi@4.0.89 '@umijs/bundler-esbuild': registry.npmmirror.com/@umijs/bundler-esbuild@4.0.89 '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 - '@umijs/bundler-vite': registry.npmmirror.com/@umijs/bundler-vite@4.0.89(@types/node@20.5.1)(postcss@8.4.32)(sass@1.69.5) + '@umijs/bundler-vite': registry.npmmirror.com/@umijs/bundler-vite@4.0.89(@types/node@20.5.1)(postcss@8.4.32)(rollup@3.29.4)(sass@1.69.5) '@umijs/bundler-webpack': registry.npmmirror.com/@umijs/bundler-webpack@4.0.89(typescript@5.3.3)(webpack@5.89.0) '@umijs/core': registry.npmmirror.com/@umijs/core@4.0.89 '@umijs/did-you-know': registry.npmmirror.com/@umijs/did-you-know@1.0.3 @@ -9211,6 +9361,14 @@ packages: inherits: registry.npmmirror.com/inherits@2.0.4 safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + registry.npmmirror.com/citty@0.1.5: + resolution: {integrity: sha512-AS7n5NSc0OQVMV9v6wt3ByujNIrne0/cTjiC2MYqhvao57VNfiuVksTSr2p17nVOhEr2KtqiAkGwHcgMC/qUuQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/citty/-/citty-0.1.5.tgz} + name: citty + version: 0.1.5 + dependencies: + consola: registry.npmmirror.com/consola@3.2.3 + dev: true + registry.npmmirror.com/class-utils@0.3.6: resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/class-utils/-/class-utils-0.3.6.tgz} name: class-utils @@ -9656,6 +9814,12 @@ packages: name: common-path-prefix version: 3.0.0 + registry.npmmirror.com/commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz} + name: commondir + version: 1.0.1 + dev: true + registry.npmmirror.com/compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/compare-func/-/compare-func-2.0.0.tgz} name: compare-func @@ -9740,6 +9904,13 @@ packages: transitivePeerDependencies: - supports-color + registry.npmmirror.com/consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/consola/-/consola-3.2.3.tgz} + name: consola + version: 3.2.3 + engines: {node: ^14.18.0 || >=16.10.0} + dev: true + registry.npmmirror.com/console-browserify@1.2.0: resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/console-browserify/-/console-browserify-1.2.0.tgz} name: console-browserify @@ -10714,6 +10885,12 @@ packages: isobject: registry.npmmirror.com/isobject@3.0.1 dev: true + registry.npmmirror.com/defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/defu/-/defu-6.1.4.tgz} + name: defu + version: 6.1.4 + dev: true + registry.npmmirror.com/del@7.1.0: resolution: {integrity: sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/del/-/del-7.1.0.tgz} name: del @@ -11014,7 +11191,7 @@ packages: chalk: registry.npmmirror.com/chalk@4.1.2 chroma-js: registry.npmmirror.com/chroma-js@2.4.2 copy-to-clipboard: registry.npmmirror.com/copy-to-clipboard@3.3.3 - dumi: registry.npmmirror.com/dumi@2.2.16(@babel/core@7.23.6)(@types/node@20.5.1)(@types/react@18.2.45)(eslint@8.56.0)(prettier@2.8.8)(react-dom@18.2.0)(react@18.2.0)(stylelint@14.16.1)(typescript@5.3.3)(webpack@5.89.0) + dumi: registry.npmmirror.com/dumi@2.2.16(@babel/core@7.23.6)(@types/node@20.5.1)(@types/react@18.2.45)(eslint@8.56.0)(prettier@2.8.8)(react-dom@18.2.0)(react@18.2.0)(rollup@3.29.4)(stylelint@14.16.1)(typescript@5.3.3)(webpack@5.89.0) fast-deep-equal: registry.npmmirror.com/fast-deep-equal@3.1.3 lodash: registry.npmmirror.com/lodash@4.17.21 polished: registry.npmmirror.com/polished@4.2.2 @@ -11035,7 +11212,7 @@ packages: - moment dev: false - registry.npmmirror.com/dumi@2.2.16(@babel/core@7.23.6)(@types/node@20.5.1)(@types/react@18.2.45)(eslint@8.56.0)(prettier@2.8.8)(react-dom@18.2.0)(react@18.2.0)(stylelint@14.16.1)(typescript@5.3.3)(webpack@5.89.0): + registry.npmmirror.com/dumi@2.2.16(@babel/core@7.23.6)(@types/node@20.5.1)(@types/react@18.2.45)(eslint@8.56.0)(prettier@2.8.8)(react-dom@18.2.0)(react@18.2.0)(rollup@3.29.4)(stylelint@14.16.1)(typescript@5.3.3)(webpack@5.89.0): resolution: {integrity: sha512-r2x/CY0fR8/YZOwEnG4JsLEpn8jOg94Qyd1u+7pRD9SCx7dF9It+GwkGbdNEsyenGsO/ZU9wD+Kz7KO+HU7/EA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dumi/-/dumi-2.2.16.tgz} id: registry.npmmirror.com/dumi/2.2.16 name: dumi @@ -11102,7 +11279,7 @@ packages: remark-rehype: registry.npmmirror.com/remark-rehype@10.1.0 sass: registry.npmmirror.com/sass@1.69.5 sitemap: registry.npmmirror.com/sitemap@7.1.1 - umi: registry.npmmirror.com/umi@4.0.89(@babel/core@7.23.6)(@types/node@20.5.1)(@types/react@18.2.45)(eslint@8.56.0)(prettier@2.8.8)(react-dom@18.2.0)(react@18.2.0)(sass@1.69.5)(stylelint@14.16.1)(typescript@5.3.3)(webpack@5.89.0) + umi: registry.npmmirror.com/umi@4.0.89(@babel/core@7.23.6)(@types/node@20.5.1)(@types/react@18.2.45)(eslint@8.56.0)(prettier@2.8.8)(react-dom@18.2.0)(react@18.2.0)(rollup@3.29.4)(sass@1.69.5)(stylelint@14.16.1)(typescript@5.3.3)(webpack@5.89.0) unified: registry.npmmirror.com/unified@10.1.2 unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 unist-util-visit-parents: registry.npmmirror.com/unist-util-visit-parents@5.1.3 @@ -13180,6 +13357,19 @@ packages: once: registry.npmmirror.com/once@1.4.0 path-is-absolute: registry.npmmirror.com/path-is-absolute@1.0.1 + registry.npmmirror.com/glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob/-/glob-8.1.0.tgz} + name: glob + version: 8.1.0 + engines: {node: '>=12'} + dependencies: + fs.realpath: registry.npmmirror.com/fs.realpath@1.0.0 + inflight: registry.npmmirror.com/inflight@1.0.6 + inherits: registry.npmmirror.com/inherits@2.0.4 + minimatch: registry.npmmirror.com/minimatch@5.1.6 + once: registry.npmmirror.com/once@1.4.0 + dev: true + registry.npmmirror.com/global-dirs@0.1.1: resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/global-dirs/-/global-dirs-0.1.1.tgz} name: global-dirs @@ -13784,6 +13974,12 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true + registry.npmmirror.com/hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hookable/-/hookable-5.5.3.tgz} + name: hookable + version: 5.5.3 + dev: true + registry.npmmirror.com/hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz} name: hosted-git-info @@ -14844,6 +15040,14 @@ packages: version: 1.0.0 engines: {node: '>=0.10.0'} + registry.npmmirror.com/is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-reference/-/is-reference-1.2.1.tgz} + name: is-reference + version: 1.2.1 + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 + dev: true + registry.npmmirror.com/is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz} name: is-regex @@ -15178,7 +15382,7 @@ packages: dependencies: '@jest/types': registry.npmmirror.com/@jest/types@29.6.3 '@types/graceful-fs': registry.npmmirror.com/@types/graceful-fs@4.1.9 - '@types/node': registry.npmmirror.com/@types/node@20.10.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.7 anymatch: registry.npmmirror.com/anymatch@3.1.3 fb-watchman: registry.npmmirror.com/fb-watchman@2.0.2 graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 @@ -15203,7 +15407,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': registry.npmmirror.com/@jest/types@29.6.3 - '@types/node': registry.npmmirror.com/@types/node@20.10.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.7 chalk: registry.npmmirror.com/chalk@4.1.2 ci-info: registry.npmmirror.com/ci-info@3.9.0 graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 @@ -15215,7 +15419,7 @@ packages: version: 27.5.1 engines: {node: '>= 10.13.0'} dependencies: - '@types/node': registry.npmmirror.com/@types/node@20.10.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.7 merge-stream: registry.npmmirror.com/merge-stream@2.0.0 supports-color: registry.npmmirror.com/supports-color@8.1.1 @@ -15225,7 +15429,7 @@ packages: version: 29.4.3 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': registry.npmmirror.com/@types/node@20.10.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.7 jest-util: registry.npmmirror.com/jest-util@29.7.0 merge-stream: registry.npmmirror.com/merge-stream@2.0.0 supports-color: registry.npmmirror.com/supports-color@8.1.1 @@ -15236,7 +15440,7 @@ packages: version: 29.7.0 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': registry.npmmirror.com/@types/node@20.10.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.7 jest-util: registry.npmmirror.com/jest-util@29.7.0 merge-stream: registry.npmmirror.com/merge-stream@2.0.0 supports-color: registry.npmmirror.com/supports-color@8.1.1 @@ -15368,6 +15572,12 @@ packages: engines: {node: '>=6'} hasBin: true + registry.npmmirror.com/jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz} + name: jsonc-parser + version: 3.2.0 + dev: true + registry.npmmirror.com/jsonfile@3.0.1: resolution: {integrity: sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsonfile/-/jsonfile-3.0.1.tgz} name: jsonfile @@ -16143,6 +16353,15 @@ packages: version: 1.5.0 hasBin: true + registry.npmmirror.com/magic-string@0.30.5: + resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/magic-string/-/magic-string-0.30.5.tgz} + name: magic-string + version: 0.30.5 + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.15 + dev: true + registry.npmmirror.com/make-dir@1.3.0: resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/make-dir/-/make-dir-1.3.0.tgz} name: make-dir @@ -17015,6 +17234,15 @@ packages: dependencies: brace-expansion: registry.npmmirror.com/brace-expansion@1.1.11 + registry.npmmirror.com/minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz} + name: minimatch + version: 5.1.6 + engines: {node: '>=10'} + dependencies: + brace-expansion: registry.npmmirror.com/brace-expansion@2.0.1 + dev: true + registry.npmmirror.com/minimatch@9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz} name: minimatch @@ -17118,6 +17346,48 @@ packages: hasBin: true dev: false + registry.npmmirror.com/mkdist@1.4.0(typescript@5.3.3): + resolution: {integrity: sha512-LzzdzWDx6cWWPd8saIoO+kT5jnbijfeDaE6jZfmCYEi3YL2aJSyF23/tCFee/mDuh/ek1UQeSYdLeSa6oesdiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mkdist/-/mkdist-1.4.0.tgz} + id: registry.npmmirror.com/mkdist/1.4.0 + name: mkdist + version: 1.4.0 + hasBin: true + peerDependencies: + sass: ^1.69.5 + typescript: '>=5.3.2' + peerDependenciesMeta: + sass: + optional: true + typescript: + optional: true + dependencies: + autoprefixer: registry.npmmirror.com/autoprefixer@10.4.16(postcss@8.4.32) + citty: registry.npmmirror.com/citty@0.1.5 + cssnano: registry.npmmirror.com/cssnano@6.0.2(postcss@8.4.32) + defu: registry.npmmirror.com/defu@6.1.4 + esbuild: registry.npmmirror.com/esbuild@0.19.11 + fs-extra: registry.npmmirror.com/fs-extra@11.2.0 + globby: registry.npmmirror.com/globby@13.2.2 + jiti: registry.npmmirror.com/jiti@1.21.0 + mlly: registry.npmmirror.com/mlly@1.4.2 + mri: registry.npmmirror.com/mri@1.2.0 + pathe: registry.npmmirror.com/pathe@1.1.1 + postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-nested: registry.npmmirror.com/postcss-nested@6.0.1(postcss@8.4.32) + typescript: registry.npmmirror.com/typescript@5.3.3 + dev: true + + registry.npmmirror.com/mlly@1.4.2: + resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mlly/-/mlly-1.4.2.tgz} + name: mlly + version: 1.4.2 + dependencies: + acorn: registry.npmmirror.com/acorn@8.11.2 + pathe: registry.npmmirror.com/pathe@1.1.1 + pkg-types: registry.npmmirror.com/pkg-types@1.0.3 + ufo: registry.npmmirror.com/ufo@1.3.2 + dev: true + registry.npmmirror.com/mockjs@1.1.0: resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mockjs/-/mockjs-1.1.0.tgz} name: mockjs @@ -18401,6 +18671,12 @@ packages: version: 0.2.0 dev: true + registry.npmmirror.com/pathe@1.1.1: + resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pathe/-/pathe-1.1.1.tgz} + name: pathe + version: 1.1.1 + dev: true + registry.npmmirror.com/pbkdf2@3.1.2: resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pbkdf2/-/pbkdf2-3.1.2.tgz} name: pbkdf2 @@ -18505,6 +18781,16 @@ packages: find-up: registry.npmmirror.com/find-up@4.1.0 dev: true + registry.npmmirror.com/pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pkg-types/-/pkg-types-1.0.3.tgz} + name: pkg-types + version: 1.0.3 + dependencies: + jsonc-parser: registry.npmmirror.com/jsonc-parser@3.2.0 + mlly: registry.npmmirror.com/mlly@1.4.2 + pathe: registry.npmmirror.com/pathe@1.1.1 + dev: true + registry.npmmirror.com/pkg-up@3.1.0: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pkg-up/-/pkg-up-3.1.0.tgz} name: pkg-up @@ -19035,6 +19321,19 @@ packages: icss-utils: registry.npmmirror.com/icss-utils@5.1.0(postcss@8.4.32) postcss: registry.npmmirror.com/postcss@8.4.32 + registry.npmmirror.com/postcss-nested@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-nested/-/postcss-nested-6.0.1.tgz} + id: registry.npmmirror.com/postcss-nested/6.0.1 + name: postcss-nested + version: 6.0.1 + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: true + registry.npmmirror.com/postcss-nesting@10.2.0(postcss@8.4.32): resolution: {integrity: sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-nesting/-/postcss-nesting-10.2.0.tgz} id: registry.npmmirror.com/postcss-nesting/10.2.0 @@ -19605,6 +19904,13 @@ packages: engines: {node: '>=14'} hasBin: true + registry.npmmirror.com/pretty-bytes@6.1.1: + resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pretty-bytes/-/pretty-bytes-6.1.1.tgz} + name: pretty-bytes + version: 6.1.1 + engines: {node: ^14.13.1 || >=16.0.0} + dev: true + registry.npmmirror.com/pretty-error@4.0.0: resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pretty-error/-/pretty-error-4.0.0.tgz} name: pretty-error @@ -21850,8 +22156,26 @@ packages: hash-base: registry.npmmirror.com/hash-base@3.1.0 inherits: registry.npmmirror.com/inherits@2.0.4 - registry.npmmirror.com/rollup-plugin-visualizer@5.9.0: + registry.npmmirror.com/rollup-plugin-dts@6.1.0(rollup@3.29.4)(typescript@5.3.3): + resolution: {integrity: sha512-ijSCPICkRMDKDLBK9torss07+8dl9UpY9z1N/zTeA1cIqdzMlpkV3MOOC7zukyvQfDyxa1s3Dl2+DeiP/G6DOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup-plugin-dts/-/rollup-plugin-dts-6.1.0.tgz} + id: registry.npmmirror.com/rollup-plugin-dts/6.1.0 + name: rollup-plugin-dts + version: 6.1.0 + engines: {node: '>=16'} + peerDependencies: + rollup: ^3.29.4 || ^4 + typescript: ^4.5 || ^5.0 + dependencies: + magic-string: registry.npmmirror.com/magic-string@0.30.5 + rollup: registry.npmmirror.com/rollup@3.29.4 + typescript: registry.npmmirror.com/typescript@5.3.3 + optionalDependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.23.5 + dev: true + + registry.npmmirror.com/rollup-plugin-visualizer@5.9.0(rollup@3.29.4): resolution: {integrity: sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.0.tgz} + id: registry.npmmirror.com/rollup-plugin-visualizer/5.9.0 name: rollup-plugin-visualizer version: 5.9.0 engines: {node: '>=14'} @@ -21864,6 +22188,7 @@ packages: dependencies: open: registry.npmmirror.com/open@8.4.2 picomatch: registry.npmmirror.com/picomatch@2.3.1 + rollup: registry.npmmirror.com/rollup@3.29.4 source-map: registry.npmmirror.com/source-map@0.7.4 yargs: registry.npmmirror.com/yargs@17.7.2 @@ -22083,6 +22408,12 @@ packages: compute-scroll-into-view: registry.npmmirror.com/compute-scroll-into-view@3.1.0 dev: false + registry.npmmirror.com/scule@1.1.1: + resolution: {integrity: sha512-sHtm/SsIK9BUBI3EFT/Gnp9VoKfY6QLvlkvAE6YK7454IF8FSgJEAnJpVdSC7K5/pjI5NfxhzBLW2JAfYA/shQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/scule/-/scule-1.1.1.tgz} + name: scule + version: 1.1.1 + dev: true + registry.npmmirror.com/selderee@0.11.0: resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/selderee/-/selderee-0.11.0.tgz} name: selderee @@ -24120,6 +24451,12 @@ packages: engines: {node: '>=14.17'} hasBin: true + registry.npmmirror.com/ufo@1.3.2: + resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ufo/-/ufo-1.3.2.tgz} + name: ufo + version: 1.3.2 + dev: true + registry.npmmirror.com/uglify-js@3.17.4: resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uglify-js/-/uglify-js-3.17.4.tgz} name: uglify-js @@ -24138,7 +24475,7 @@ packages: qs: registry.npmmirror.com/qs@6.11.2 dev: false - registry.npmmirror.com/umi@4.0.89(@babel/core@7.23.6)(@types/node@20.5.1)(@types/react@18.2.45)(eslint@8.56.0)(prettier@2.8.8)(react-dom@18.2.0)(react@18.2.0)(sass@1.69.5)(stylelint@14.16.1)(typescript@5.3.3)(webpack@5.89.0): + registry.npmmirror.com/umi@4.0.89(@babel/core@7.23.6)(@types/node@20.5.1)(@types/react@18.2.45)(eslint@8.56.0)(prettier@2.8.8)(react-dom@18.2.0)(react@18.2.0)(rollup@3.29.4)(sass@1.69.5)(stylelint@14.16.1)(typescript@5.3.3)(webpack@5.89.0): resolution: {integrity: sha512-bC62ctJ3wnymADnhE5nU7IZz4+XQ3MPWwoVW150OJazyAqEioZdjIZEBgB9pVfQEM819xMc6+eslnyuCNOQV+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/umi/-/umi-4.0.89.tgz} id: registry.npmmirror.com/umi/4.0.89 name: umi @@ -24151,7 +24488,7 @@ packages: '@umijs/bundler-webpack': registry.npmmirror.com/@umijs/bundler-webpack@4.0.89(typescript@5.3.3)(webpack@5.89.0) '@umijs/core': registry.npmmirror.com/@umijs/core@4.0.89 '@umijs/lint': registry.npmmirror.com/@umijs/lint@4.0.89(eslint@8.56.0)(stylelint@14.16.1)(typescript@5.3.3) - '@umijs/preset-umi': registry.npmmirror.com/@umijs/preset-umi@4.0.89(@types/node@20.5.1)(@types/react@18.2.45)(sass@1.69.5)(typescript@5.3.3)(webpack@5.89.0) + '@umijs/preset-umi': registry.npmmirror.com/@umijs/preset-umi@4.0.89(@types/node@20.5.1)(@types/react@18.2.45)(rollup@3.29.4)(sass@1.69.5)(typescript@5.3.3)(webpack@5.89.0) '@umijs/renderer-react': registry.npmmirror.com/@umijs/renderer-react@4.0.89(react-dom@18.2.0)(react@18.2.0) '@umijs/server': registry.npmmirror.com/@umijs/server@4.0.89 '@umijs/test': registry.npmmirror.com/@umijs/test@4.0.89(@babel/core@7.23.6) @@ -24200,6 +24537,48 @@ packages: has-symbols: registry.npmmirror.com/has-symbols@1.0.3 which-boxed-primitive: registry.npmmirror.com/which-boxed-primitive@1.0.2 + registry.npmmirror.com/unbuild@2.0.0(typescript@5.3.3): + resolution: {integrity: sha512-JWCUYx3Oxdzvw2J9kTAp+DKE8df/BnH/JTSj6JyA4SH40ECdFu7FoJJcrm8G92B7TjofQ6GZGjJs50TRxoH6Wg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unbuild/-/unbuild-2.0.0.tgz} + id: registry.npmmirror.com/unbuild/2.0.0 + name: unbuild + version: 2.0.0 + hasBin: true + peerDependencies: + typescript: ^5.1.6 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@rollup/plugin-alias': registry.npmmirror.com/@rollup/plugin-alias@5.1.0(rollup@3.29.4) + '@rollup/plugin-commonjs': registry.npmmirror.com/@rollup/plugin-commonjs@25.0.7(rollup@3.29.4) + '@rollup/plugin-json': registry.npmmirror.com/@rollup/plugin-json@6.1.0(rollup@3.29.4) + '@rollup/plugin-node-resolve': registry.npmmirror.com/@rollup/plugin-node-resolve@15.2.3(rollup@3.29.4) + '@rollup/plugin-replace': registry.npmmirror.com/@rollup/plugin-replace@5.0.5(rollup@3.29.4) + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils@5.1.0(rollup@3.29.4) + chalk: registry.npmmirror.com/chalk@5.3.0 + citty: registry.npmmirror.com/citty@0.1.5 + consola: registry.npmmirror.com/consola@3.2.3 + defu: registry.npmmirror.com/defu@6.1.4 + esbuild: registry.npmmirror.com/esbuild@0.19.11 + globby: registry.npmmirror.com/globby@13.2.2 + hookable: registry.npmmirror.com/hookable@5.5.3 + jiti: registry.npmmirror.com/jiti@1.21.0 + magic-string: registry.npmmirror.com/magic-string@0.30.5 + mkdist: registry.npmmirror.com/mkdist@1.4.0(typescript@5.3.3) + mlly: registry.npmmirror.com/mlly@1.4.2 + pathe: registry.npmmirror.com/pathe@1.1.1 + pkg-types: registry.npmmirror.com/pkg-types@1.0.3 + pretty-bytes: registry.npmmirror.com/pretty-bytes@6.1.1 + rollup: registry.npmmirror.com/rollup@3.29.4 + rollup-plugin-dts: registry.npmmirror.com/rollup-plugin-dts@6.1.0(rollup@3.29.4)(typescript@5.3.3) + scule: registry.npmmirror.com/scule@1.1.1 + typescript: registry.npmmirror.com/typescript@5.3.3 + untyped: registry.npmmirror.com/untyped@1.4.0 + transitivePeerDependencies: + - sass + - supports-color + dev: true + registry.npmmirror.com/unc-path-regex@0.1.2: resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz} name: unc-path-regex @@ -24424,6 +24803,23 @@ packages: version: 4.0.0 engines: {node: '>=8'} + registry.npmmirror.com/untyped@1.4.0: + resolution: {integrity: sha512-Egkr/s4zcMTEuulcIb7dgURS6QpN7DyqQYdf+jBtiaJvQ+eRsrtWUoX84SbvQWuLkXsOjM+8sJC9u6KoMK/U7Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/untyped/-/untyped-1.4.0.tgz} + name: untyped + version: 1.4.0 + hasBin: true + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.6 + '@babel/standalone': registry.npmmirror.com/@babel/standalone@7.23.7 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.6 + defu: registry.npmmirror.com/defu@6.1.4 + jiti: registry.npmmirror.com/jiti@1.21.0 + mri: registry.npmmirror.com/mri@1.2.0 + scule: registry.npmmirror.com/scule@1.1.1 + transitivePeerDependencies: + - supports-color + dev: true + registry.npmmirror.com/unzip-response@2.0.1: resolution: {integrity: sha512-N0XH6lqDtFH84JxptQoZYmloF4nzrQqqrAymNj+/gW60AO2AZgOcf4O/nUXJcYfyQkqvMo9lSupBZmmgvuVXlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unzip-response/-/unzip-response-2.0.1.tgz} name: unzip-response @@ -24870,6 +25266,45 @@ packages: optionalDependencies: fsevents: registry.npmmirror.com/fsevents@2.3.3 + registry.npmmirror.com/vite@4.5.0(@types/node@18.19.3): + resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-4.5.0.tgz} + id: registry.npmmirror.com/vite/4.5.0 + name: vite + version: 4.5.0 + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': registry.npmmirror.com/@types/node@18.19.3 + esbuild: registry.npmmirror.com/esbuild@0.18.20 + postcss: registry.npmmirror.com/postcss@8.4.32 + rollup: registry.npmmirror.com/rollup@3.29.4 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: false + registry.npmmirror.com/vite@4.5.0(@types/node@20.10.4)(less@4.2.0)(terser@5.26.0): resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-4.5.0.tgz} id: registry.npmmirror.com/vite/4.5.0 @@ -24948,6 +25383,45 @@ packages: optionalDependencies: fsevents: registry.npmmirror.com/fsevents@2.3.3 + registry.npmmirror.com/vite@5.0.11(@types/node@20.10.7): + resolution: {integrity: sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-5.0.11.tgz} + id: registry.npmmirror.com/vite/5.0.11 + name: vite + version: 5.0.11 + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.10.7 + esbuild: registry.npmmirror.com/esbuild@0.19.11 + postcss: registry.npmmirror.com/postcss@8.4.32 + rollup: registry.npmmirror.com/rollup@4.9.0 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: false + registry.npmmirror.com/vm-browserify@1.1.2: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vm-browserify/-/vm-browserify-1.1.2.tgz} name: vm-browserify diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 3ff5faaa..e820acda 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,4 @@ packages: - "apps/*" - "packages/*" + - "internal/*" From 498eec02ecacaa95816e5fb14ef989114621de44 Mon Sep 17 00:00:00 2001 From: G Date: Tue, 9 Jan 2024 10:43:27 +0800 Subject: [PATCH 16/26] =?UTF-8?q?build:=20:package:=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E9=80=9A=E7=94=A8vite=E3=80=81ts=E9=85=8D=E7=BD=AE=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.zh-CN.md | 217 +++++++++++++++ internal/ts-config/base.json | 27 ++ internal/vite-config/package.json | 7 + .../vite-config/src/config/application.ts | 90 ++++++ internal/vite-config/src/config/common.ts | 19 ++ internal/vite-config/src/config/package.ts | 0 internal/vite-config/src/index.ts | 0 internal/vite-config/src/utils/modifyVars.ts | 50 ++++ package.json | 2 + pnpm-lock.yaml | 260 +++++++++++++----- 10 files changed, 601 insertions(+), 71 deletions(-) create mode 100644 README.zh-CN.md create mode 100644 internal/ts-config/base.json create mode 100644 internal/vite-config/src/config/application.ts create mode 100644 internal/vite-config/src/config/common.ts create mode 100644 internal/vite-config/src/config/package.ts create mode 100644 internal/vite-config/src/index.ts create mode 100644 internal/vite-config/src/utils/modifyVars.ts diff --git a/README.zh-CN.md b/README.zh-CN.md new file mode 100644 index 00000000..520c45e8 --- /dev/null +++ b/README.zh-CN.md @@ -0,0 +1,217 @@ + + +
+ + + +

Gbeata Admin

+ +Gbeata Admin is a set of templates designed for rapidly constructing backend management systems. +[English](./README.md) ・ 简体中文 ・ [Changelog](./CHANGELOG.md) · [Issues][github-issues-link] · [Request Features][github-issues-link] + + + +[![][npm-release-shield]][npm-release-link] +[![][npm-downloads-shield]][npm-downloads-link] +[![][github-releasedate-shield]][github-releasedate-link] +[![][github-action-release-shield]][github-action-release-link]
+[![][github-contributors-shield]][github-contributors-link] +[![][github-forks-shield]][github-forks-link] +[![][github-stars-shield]][github-stars-link] +[![][github-issues-shield]][github-issues-link] +[![][github-license-shield]][github-license-link] + +![][banner] + +
+ +
+Table of Contents + +#### 目录 + +- [简介](#简介) + - [动机 | 为什么想做这个](#动机--为什么想做这个) + - [特性](#特性) +- [建设目标](#建设目标) + - [第一阶段:组件库设计阶段](#第一阶段组件库设计阶段) + - [第二阶段:react-antd-admin模板搭建](#第二阶段react-antd-admin模板搭建) +- [使用](#使用) +- [分支管理](#分支管理) +- [注意点:](#注意点) +- [贡献](#贡献) + +#### + +
+ +## 简介 + +> \[!IMPORTANT]\ +> 方案集成当下最流行的一些前端框架和库做集成,致力于构建一套通用型强的前端后台管理系统解决方案。 + +### 动机 | 为什么想做这个 + +antd5已经发布很久了,之前一直在维护的一套基于antd4版本的方案由于一直在内部项目中迭代,没办法抽出时间升级,随着前端技术的迭代更新和业务需求的不断扩展,趁着内部升级的机会,也把这一年多在项目中沉淀的一些技术方案做一次整理分享。 + +### 特性 + +> 它能做什么 + +本方案中会集成当下主流的前端设计思路,虽然当下关于react的后台模板,市面上可选择性很多,但与其他方案不同的是,关注功能组件与业务组件开发的同时,更多的精力会放在代码本身的原子化设计和解耦上,具备的特性包括(**_持续补充_**) + +- 组件库设计 +- admin设计 +- CICD持续集成 +- 容器化部署 +- 代码规范设计 +- 基础模板库设计 +- ... + +## 建设目标 + +- [x] pnpm turbo vite 集成方案搭建 +- [x] 配置代码提交规范与自动化部署 +- [x] antd5组件库开发 +- [x] 分包设计与应用设计 +- [x] 自动化tag版本打包 +- [ ] plop基础项目模板创建 +- [ ] 微前端接入 +- [ ] 模板编写 + +### 第一阶段:组件库设计阶段 + +- [x] 完成组件库编写和测试 +- [x] 升级antd4 => antd5, 升级react与dumi、umi为最新版; +- [x] 完成组件库自动发布npm +- [ ] 发布组件库文档 + + 5.0组件文档更新会滞后写,也可以参考4.0版本的组件文档使用,只是所有的`multiway` 更名为 `gbeata` [文档地址](http://120.79.85.168:9001/) + +- [ ] 发布gitPage +- [ ] 新增spring/web动画组件 + +### 第二阶段:react-antd-admin模板搭建 + +- [x] 技术选型 +- [x] 框架设计 +- [x] 主题设计 +- [x] 登录页设计 +- [x] 状态管理(zustand) +- [x] 路由设计,使用loadable-compoment替代React.lazy +- [x] 主题控制面板 +- [x] 模块高亮搜索 +- [x] 系统模板创建 + +## 使用 + +> \[!IMPORTANT]\ +> 代码中包含gbeata组件库,如果不想使用到package/gbeata组件库源码,可直接从npm包中安装。 + +```bash +git clone git@github.com:anyone-yuren/react-antd-admin-pnpm.git + +pnpm bootstrap + +pnpm build --filter gbeata + +pnpm dev --filter gbeata-admin +``` + +也可以直接使用pnpm dev,但这样就会启动项目中所有包含dev命令的包项目。 + +
+ +[![][back-to-top]](#readme-top) + +
+ +## 分支管理 + +发布组件库分支: `main` + +后台管理模板分支: `admin` + +
+ +[![][back-to-top]](#readme-top) + +
+ +## 注意点: + +1. 使用semantic-release做自动化发布时,不需要打包的子包,设置`"private": true` + +2. 项目中less改造antd-style写法: + +```bash +npx @chenshuai2144/less2cssinjs less2js -i src +``` + +3. 关于本地运行项目,出现gbeata未定义的问题,起初在设计组件库阶段,并没有打算直接在项目包中直接应用workspace中的源码,所以,你可以在执行 ` pnpm dev --filter gbeata-admin` 之前,请先将gbeata组件包打包生成lib目录, 执行` pnpm build --filter gbeata` +
+ +[![][back-to-top]](#readme-top) + +
+ +## 贡献 + +欢迎各种类型的贡献,如果您有兴趣贡献代码,请随时查看我们的 GitHub [问题][github-issues-link],并展示您的才华。 + +[![][pr-welcome-shield]][pr-welcome-link] + + + + + +欢迎 PR,当然您也可以扫码进群讨论,或者直接联系我,QQ: 1003473088,如果这是一个很大的变化!欢迎您的加入! + + +
+ +[![][back-to-top]](#readme-top) + +
+ + + +[back-to-top]: https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square +[banner]: https://github.com/anyone-yuren/multiway/blob/master/iShot_2024-01-05_17.05.52.gif?raw=true +[bun-link]: https://bun.sh +[bun-shield]: https://img.shields.io/badge/-speedup%20with%20bun-black?logo=bun&style=for-the-badge +[codespaces-link]: https://codespaces.new/anyone-yuren/react-antd-admin-pnpm +[codespaces-shield]: https://github.com/codespaces/badge.svg +[contributors-contrib]: https://contrib.rocks/image?repo=anyone-yuren/react-antd-admin-pnpm +[contributors-link]: https://github.com/anyone-yuren/react-antd-admin-pnpm/graphs/contributors +[discord-link]: https://discord.gg/AYFPHvv2jT +[discord-shield]: https://img.shields.io/discord/1127171173982154893?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=flat-square +[fossa-license-link]: https://app.fossa.com/projects/git%2Bgithub.com%2Fanyone-yuren%2Freact-antd-admin-pnpm +[fossa-license-shield]: https://app.fossa.com/api/projects/git%2Bgithub.com%2Fanyone-yuren%2Freact-antd-admin-pnpm.svg?type=large +[github-action-release-link]: https://github.com/anyone-yuren/react-antd-admin-pnpm/actions/workflows/blank.yml +[github-action-release-shield]: https://img.shields.io/github/actions/workflow/status/anyone-yuren/react-antd-admin-pnpm/release.yml?label=release&labelColor=black&logo=githubactions&logoColor=white&style=flat-square +[github-action-test-link]: https://github.com/actions/workflows/anyone-yuren/react-antd-admin-pnpm/test.yml +[github-action-test-shield]: https://img.shields.io/github/actions/workflow/status/anyone-yuren/react-antd-admin-pnpm/test.yml?label=test&labelColor=black&logo=githubactions&logoColor=white&style=flat-square +[github-contributors-link]: https://github.com/anyone-yuren/react-antd-admin-pnpm/graphs/contributors +[github-contributors-shield]: https://img.shields.io/github/contributors/anyone-yuren/react-antd-admin-pnpm?color=c4f042&labelColor=black&style=flat-square +[github-forks-link]: https://github.com/anyone-yuren/react-antd-admin-pnpm/network/members +[github-forks-shield]: https://img.shields.io/github/forks/anyone-yuren/react-antd-admin-pnpm?color=8ae8ff&labelColor=black&style=flat-square +[github-issues-link]: https://github.com/anyone-yuren/react-antd-admin-pnpm/issues +[github-issues-shield]: https://img.shields.io/github/issues/anyone-yuren/react-antd-admin-pnpm?color=ff80eb&labelColor=black&style=flat-square +[github-license-link]: https://github.com/anyone-yuren/react-antd-admin-pnpm/blob/master/LICENSE +[github-license-shield]: https://img.shields.io/github/license/anyone-yuren/react-antd-admin-pnpm?color=white&labelColor=black&style=flat-square +[github-releasedate-link]: https://github.com/anyone-yuren/react-antd-admin-pnpm/releases +[github-releasedate-shield]: https://img.shields.io/github/release-date/anyone-yuren/react-antd-admin-pnpm?labelColor=black&style=flat-square +[github-stars-link]: https://github.com/anyone-yuren/react-antd-admin-pnpm/network/stargazers +[github-stars-shield]: https://img.shields.io/github/stars/anyone-yuren/react-antd-admin-pnpm?color=ffcb47&labelColor=black&style=flat-square +[react-antd-admin-pnpm]: https://github.com/anyone-yuren/react-antd-admin-pnpm +[lobe-commit]: https://github.com/anyone-yuren/lobe-commit/tree/master/packages/lobe-commit +[lobe-i18n]: https://github.com/anyone-yuren/lobe-commit/tree/master/packages/lobe-i18n +[lobe-theme]: https://github.com/anyone-yuren/sd-webui-lobe-theme +[npm-downloads-link]: https://www.npmjs.com/package/gbeata +[npm-downloads-shield]: https://img.shields.io/npm/dt/@anyone-yuren/ui?labelColor=black&style=flat-square +[npm-release-link]: https://www.npmjs.com/package/gbeata +[npm-release-shield]: https://img.shields.io/npm/v/@anyone-yuren/ui?color=369eff&labelColor=black&logo=npm&logoColor=white&style=flat-square +[pr-welcome-link]: https://github.com/anyone-yuren/react-antd-admin-pnpm/pulls +[pr-welcome-shield]: https://img.shields.io/badge/🤯_pr_welcome-%E2%86%92-ffcb47?labelColor=black&style=for-the-badge +[profile-link]: https://github.com/anyone-yuren diff --git a/internal/ts-config/base.json b/internal/ts-config/base.json new file mode 100644 index 00000000..16f19cc5 --- /dev/null +++ b/internal/ts-config/base.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "Base", + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "Node", + "strict": true, + "declaration": true, + "noImplicitOverride": true, + "noUnusedLocals": true, + "esModuleInterop": true, + "useUnknownInCatchVariables": false, + "composite": false, + "declarationMap": false, + "forceConsistentCasingInFileNames": true, + "inlineSources": false, + "isolatedModules": true, + "skipLibCheck": true, + "noUnusedParameters": false, + "preserveWatchOutput": true, + "experimentalDecorators": true, + "resolveJsonModule": true, + "removeComments": true + }, + "exclude": ["**/node_modules/**", "**/dist/**"] +} diff --git a/internal/vite-config/package.json b/internal/vite-config/package.json index 75f9b210..5e5467a4 100644 --- a/internal/vite-config/package.json +++ b/internal/vite-config/package.json @@ -38,6 +38,13 @@ } }, "dependencies": { + "@ant-design/colors": "^7.0.2", + "@ant-design/compatible": "^5.1.2", + "dayjs": "^1.11.10", + "pkg-types": "^1.0.3", "vite": "4.5.0" + }, + "devDependencies": { + "antd": "^5.12.8" } } diff --git a/internal/vite-config/src/config/application.ts b/internal/vite-config/src/config/application.ts new file mode 100644 index 00000000..be1e3c42 --- /dev/null +++ b/internal/vite-config/src/config/application.ts @@ -0,0 +1,90 @@ +import { resolve } from "path"; + +import dayjs from "dayjs"; +import { readPackageJSON } from "pkg-types"; +import { defineConfig, loadEnv, mergeConfig, type UserConfig } from "vite"; +import { generateModifyVars } from "../utils/modifyVars"; +import { commonConfig } from "./common"; +interface DefineOptions { + overrides?: UserConfig; + options?: {}; +} + +function defineApplicationConfig(options: DefineOptions = {}) { + const { overrides = {}, options: overrideOptions } = options; + + return defineConfig(async ({ command, mode }) => { + const root = process.cwd(); + const isBuild = command === "build"; + const { + VITE_PUBLIC_PATH, + VITE_USE_MOCK, + VITE_BUILD_COMPRESS, + VITE_ENABLE_ANALYZE, + } = loadEnv(mode, root); + const defineData = await createDefineData(root); + + const pathResolve = (path: string) => { + return resolve(root, path); + }; + const timestamp = new Date().getTime(); + const applicationConfig: UserConfig = { + base: VITE_PUBLIC_PATH, + resolve: { + alias: [ + { + find: /@\//, + replacement: pathResolve("src") + "/", + }, + { + find: /#\//, + replacement: pathResolve("types") + "/", + }, + ], + }, + define: defineData, + build: { + target: "es2015", + cssTarget: "chrome80", + rollupOptions: { + output: { + entryFileNames: `assets/entry/[name]-[hash].${timestamp}.js`, + // 配置大包的分块策略 + manualChunks: { + react: ["react", "react-router-dom"], + antd: ["antd", "@ant-design/icons", "antd-style"], + }, + }, + }, + }, + css: { + preprocessorOptions: { + less: { + javascriptEnabled: true, + modifyVars: generateModifyVars(), + }, + }, + }, + }; + + const mergedConfig = mergeConfig(commonConfig(mode), applicationConfig); + return mergeConfig(mergedConfig, overrides); + }); +} + +async function createDefineData(root: string) { + try { + const pkg = await readPackageJSON(resolve(root, "package.json")); + const { version, name, dependencies, devDependencies } = pkg; + const __APP_INFO__ = { + pkg: { dependencies, devDependencies, version, name }, + lastBuildTime: dayjs().format("YYYY-MM-DD HH:mm:ss"), + }; + return { + __APP_INFO__: JSON.stringify(__APP_INFO__), + }; + } catch (error) { + return {}; + } +} +export { defineApplicationConfig }; diff --git a/internal/vite-config/src/config/common.ts b/internal/vite-config/src/config/common.ts new file mode 100644 index 00000000..379f372c --- /dev/null +++ b/internal/vite-config/src/config/common.ts @@ -0,0 +1,19 @@ +import { type UserConfig } from "vite"; +const commonConfig: (mode: string) => UserConfig = (mode) => ({ + server: { + host: true, + }, + esbuild: { + // 构建之前,删除某些代码 + drop: mode === "production" ? ["console", "debugger"] : [], + }, + build: { + reportCompressedSize: false, + chunkSizeWarningLimit: 1500, + rollupOptions: { + maxParallelFileOps: 3, + }, + }, +}); + +export { commonConfig }; diff --git a/internal/vite-config/src/config/package.ts b/internal/vite-config/src/config/package.ts new file mode 100644 index 00000000..e69de29b diff --git a/internal/vite-config/src/index.ts b/internal/vite-config/src/index.ts new file mode 100644 index 00000000..e69de29b diff --git a/internal/vite-config/src/utils/modifyVars.ts b/internal/vite-config/src/utils/modifyVars.ts new file mode 100644 index 00000000..cbe01f22 --- /dev/null +++ b/internal/vite-config/src/utils/modifyVars.ts @@ -0,0 +1,50 @@ +import { resolve } from "node:path"; + +import { generate } from "@ant-design/colors"; +// @ts-ignore: typo +import { theme } from "antd/lib"; +import convertLegacyToken from "@ant-design/compatible/lib/theme/convertLegacyToken"; +require("@ant-design/compatible/lib"); + +const { defaultAlgorithm, defaultSeed } = theme; +const primaryColor = "#0960bd"; + +function generateAntColors( + color: string, + theme: "default" | "dark" = "default" +) { + return generate(color, { + theme, + }); +} + +/** + * less global variable + */ +export function generateModifyVars() { + const palettes = generateAntColors(primaryColor); + const primary = palettes[5]; + const primaryColorObj: Record = {}; + + for (let index = 0; index < 10; index++) { + primaryColorObj[`primary-${index + 1}`] = palettes[index]; + } + // const modifyVars = getThemeVariables(); + const mapToken = defaultAlgorithm(defaultSeed); + const v3Token = convertLegacyToken(mapToken); + return { + ...v3Token, + // reference: Avoid repeated references + hack: `true; @import (reference) "${resolve("src/design/config.less")}";`, + "primary-color": primary, + ...primaryColorObj, + "info-color": primary, + "processing-color": primary, + "success-color": "#55D187", // Success color + "error-color": "#ED6F6F", // False color + "warning-color": "#EFBD47", // Warning color + "font-size-base": "14px", // Main font size + "border-radius-base": "2px", // Component/float fillet + "link-color": primary, // Link color + }; +} diff --git a/package.json b/package.json index 96c62685..2a8c364e 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "@semantic-release/github": "^9.2.5", "@semantic-release/npm": "^11.0.2", "@semantic-release/release-notes-generator": "^12.1.0", + "@types/node": "^20.10.7", "commitizen": "^4.3.0", "cz-conventional-changelog": "^3.3.0", "cz-git": "^1.8.0", @@ -49,6 +50,7 @@ "prettier": "^3.1.0", "semantic-release": "^22.0.12", "turbo": "^1.11.0", + "typescript": "^5.2.2", "unbuild": "^2.0.0" }, "dependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fcf0d599..61461a9a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -51,6 +51,9 @@ importers: '@semantic-release/release-notes-generator': specifier: ^12.1.0 version: registry.npmmirror.com/@semantic-release/release-notes-generator@12.1.0(semantic-release@22.0.12) + '@types/node': + specifier: ^20.10.7 + version: registry.npmmirror.com/@types/node@20.10.7 commitizen: specifier: ^4.3.0 version: registry.npmmirror.com/commitizen@4.3.0(typescript@5.3.3) @@ -75,6 +78,9 @@ importers: turbo: specifier: ^1.11.0 version: registry.npmmirror.com/turbo@1.11.2 + typescript: + specifier: ^5.2.2 + version: registry.npmmirror.com/typescript@5.3.3 unbuild: specifier: ^2.0.0 version: registry.npmmirror.com/unbuild@2.0.0(typescript@5.3.3) @@ -435,9 +441,25 @@ importers: internal/vite-config: dependencies: + '@ant-design/colors': + specifier: ^7.0.2 + version: registry.npmmirror.com/@ant-design/colors@7.0.2 + '@ant-design/compatible': + specifier: ^5.1.2 + version: registry.npmmirror.com/@ant-design/compatible@5.1.2(antd@5.12.8)(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0) + dayjs: + specifier: ^1.11.10 + version: registry.npmmirror.com/dayjs@1.11.10 + pkg-types: + specifier: ^1.0.3 + version: registry.npmmirror.com/pkg-types@1.0.3 vite: specifier: 4.5.0 - version: registry.npmmirror.com/vite@4.5.0(@types/node@18.19.3) + version: registry.npmmirror.com/vite@4.5.0(@types/node@20.10.7) + devDependencies: + antd: + specifier: ^5.12.8 + version: registry.npmmirror.com/antd@5.12.8(react-dom@18.2.0)(react@18.2.0) packages/apis: dependencies: @@ -629,20 +651,41 @@ packages: '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping@0.3.3 '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.20 - registry.npmmirror.com/@ant-design/colors@7.0.0: - resolution: {integrity: sha512-iVm/9PfGCbC0dSMBrz7oiEXZaaGH7ceU40OJEfKmyuzR9R5CRimJYPlRiFtMQGQcbNMea/ePcoIebi4ASGYXtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/colors/-/colors-7.0.0.tgz} - name: '@ant-design/colors' - version: 7.0.0 - dependencies: - '@ctrl/tinycolor': registry.npmmirror.com/@ctrl/tinycolor@3.6.1 - dev: false - registry.npmmirror.com/@ant-design/colors@7.0.2: resolution: {integrity: sha512-7KJkhTiPiLHSu+LmMJnehfJ6242OCxSlR3xHVBecYxnMW8MS/878NXct1GqYARyL59fyeFdKRxXTfvR9SnDgJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/colors/-/colors-7.0.2.tgz} name: '@ant-design/colors' version: 7.0.2 dependencies: '@ctrl/tinycolor': registry.npmmirror.com/@ctrl/tinycolor@3.6.1 + + registry.npmmirror.com/@ant-design/compatible@5.1.2(antd@5.12.8)(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-PcNV6hCrlx1JnKBjC148BjJNM3XLVSEER422SOk/HRVD8rm8ZovItlZrQOoO3WH5L4jqwj5gxQap2cqSnmQaTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/compatible/-/compatible-5.1.2.tgz} + id: registry.npmmirror.com/@ant-design/compatible/5.1.2 + name: '@ant-design/compatible' + version: 5.1.2 + peerDependencies: + antd: ^5.0.1 + react: '>=16.0.0' + react-dom: '>=16.0.0' + dependencies: + antd: registry.npmmirror.com/antd@5.12.8(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.5.1 + dayjs: registry.npmmirror.com/dayjs@1.11.10 + lodash.camelcase: registry.npmmirror.com/lodash.camelcase@4.3.0 + lodash.upperfirst: registry.npmmirror.com/lodash.upperfirst@4.3.1 + rc-animate: registry.npmmirror.com/rc-animate@3.1.1(react-dom@18.2.0)(react@18.2.0) + rc-form: registry.npmmirror.com/rc-form@2.4.12(prop-types@15.8.1) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: registry.npmmirror.com/react@18.2.0 + react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + transitivePeerDependencies: + - prop-types + dev: false + + registry.npmmirror.com/@ant-design/css-animation@1.7.3: + resolution: {integrity: sha512-LrX0OGZtW+W6iLnTAqnTaoIsRelYeuLZWsrmBJFUXDALQphPsN8cE5DCsmoSlL0QYb94BQxINiuS70Ar/8BNgA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/css-animation/-/css-animation-1.7.3.tgz} + name: '@ant-design/css-animation' + version: 1.7.3 dev: false registry.npmmirror.com/@ant-design/cssinjs@1.18.1(react-dom@18.2.0)(react@18.2.0): @@ -683,7 +726,6 @@ packages: react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) stylis: registry.npmmirror.com/stylis@4.3.0 - dev: false registry.npmmirror.com/@ant-design/icons-svg@4.3.1: resolution: {integrity: sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.3.1.tgz} @@ -707,7 +749,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/@ant-design/react-slick@1.0.2(react@18.2.0): resolution: {integrity: sha512-Wj8onxL/T8KQLFFiCA4t8eIRGpRR+UPgOdac2sYzonv+i0n3kXHmvHLLiOYL655DQx2Umii9Y9nNgL7ssu5haQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/react-slick/-/react-slick-1.0.2.tgz} @@ -723,7 +764,6 @@ packages: react: registry.npmmirror.com/react@18.2.0 resize-observer-polyfill: registry.npmmirror.com/resize-observer-polyfill@1.5.1 throttle-debounce: registry.npmmirror.com/throttle-debounce@5.0.0 - dev: false registry.npmmirror.com/@antfu/install-pkg@0.1.1: resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antfu/install-pkg/-/install-pkg-0.1.1.tgz} @@ -3151,7 +3191,6 @@ packages: name: '@ctrl/tinycolor' version: 3.6.1 engines: {node: '>=10'} - dev: false registry.npmmirror.com/@emotion/babel-plugin@11.11.0: resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz} @@ -3199,7 +3238,6 @@ packages: resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/hash/-/hash-0.8.0.tgz} name: '@emotion/hash' version: 0.8.0 - dev: false registry.npmmirror.com/@emotion/hash@0.9.1: resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/hash/-/hash-0.9.1.tgz} @@ -3301,7 +3339,6 @@ packages: resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.7.5.tgz} name: '@emotion/unitless' version: 0.7.5 - dev: false registry.npmmirror.com/@emotion/unitless@0.8.1: resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.8.1.tgz} @@ -4814,7 +4851,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/@rc-component/context@1.4.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/context/-/context-1.4.0.tgz} @@ -4829,7 +4865,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/@rc-component/mini-decimal@1.1.0: resolution: {integrity: sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz} @@ -4838,7 +4873,6 @@ packages: engines: {node: '>=8.x'} dependencies: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 - dev: false registry.npmmirror.com/@rc-component/mutate-observer@1.1.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz} @@ -4855,7 +4889,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/portal/-/portal-1.1.2.tgz} @@ -4890,7 +4923,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-jRLYgFgjLEPq3MvS87fIhcfuywFSRDaDrYw1FLku7Cm4esszvzTbA0JBsyacAyLrK9rF3TiHFcvoEDMzoD3CTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/trigger/-/trigger-1.18.2.tgz} @@ -7648,6 +7680,14 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + registry.npmmirror.com/add-dom-event-listener@1.1.0: + resolution: {integrity: sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz} + name: add-dom-event-listener + version: 1.1.0 + dependencies: + object-assign: registry.npmmirror.com/object-assign@4.1.1 + dev: false + registry.npmmirror.com/adler-32@1.3.1: resolution: {integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz} name: adler-32 @@ -7978,7 +8018,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@ant-design/colors': registry.npmmirror.com/@ant-design/colors@7.0.0 + '@ant-design/colors': registry.npmmirror.com/@ant-design/colors@7.0.2 '@ant-design/cssinjs': registry.npmmirror.com/@ant-design/cssinjs@1.18.1(react-dom@18.2.0)(react@18.2.0) '@ant-design/icons': registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0) '@ant-design/react-slick': registry.npmmirror.com/@ant-design/react-slick@1.0.2(react@18.2.0) @@ -8043,7 +8083,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@ant-design/colors': registry.npmmirror.com/@ant-design/colors@7.0.0 + '@ant-design/colors': registry.npmmirror.com/@ant-design/colors@7.0.2 '@ant-design/cssinjs': registry.npmmirror.com/@ant-design/cssinjs@1.18.1(react-dom@18.2.0)(react@18.2.0) '@ant-design/icons': registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0) '@ant-design/react-slick': registry.npmmirror.com/@ant-design/react-slick@1.0.2(react@18.2.0) @@ -8161,7 +8201,6 @@ packages: - date-fns - luxon - moment - dev: false registry.npmmirror.com/anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz} @@ -8279,7 +8318,6 @@ packages: resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz} name: array-tree-filter version: 2.1.0 - dev: false registry.npmmirror.com/array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz} @@ -8409,11 +8447,16 @@ packages: version: 1.8.6 hasBin: true + registry.npmmirror.com/async-validator@1.11.5: + resolution: {integrity: sha512-XNtCsMAeAH1pdLMEg1z8/Bb3a8cdCbui9QbJATRFHHHW5kT6+NPI3zSVQUXgikTFITzsg+kYY5NTWhM2Orwt9w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/async-validator/-/async-validator-1.11.5.tgz} + name: async-validator + version: 1.11.5 + dev: false + registry.npmmirror.com/async-validator@4.2.5: resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz} name: async-validator version: 4.2.5 - dev: false registry.npmmirror.com/asynciterator.prototype@1.0.0: resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz} @@ -8675,6 +8718,15 @@ packages: babel-plugin-jest-hoist: registry.npmmirror.com/babel-plugin-jest-hoist@29.6.3 babel-preset-current-node-syntax: registry.npmmirror.com/babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.6) + registry.npmmirror.com/babel-runtime@6.26.0: + resolution: {integrity: sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-runtime/-/babel-runtime-6.26.0.tgz} + name: babel-runtime + version: 6.26.0 + dependencies: + core-js: registry.npmmirror.com/core-js@2.6.12 + regenerator-runtime: registry.npmmirror.com/regenerator-runtime@0.11.1 + dev: false + registry.npmmirror.com/bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bail/-/bail-2.0.2.tgz} name: bail @@ -9845,7 +9897,6 @@ packages: resolution: {integrity: sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz} name: compute-scroll-into-view version: 3.1.0 - dev: false registry.npmmirror.com/concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz} @@ -10079,6 +10130,14 @@ packages: version: 3.34.0 requiresBuild: true + registry.npmmirror.com/core-js@2.6.12: + resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz} + name: core-js + version: 2.6.12 + deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. + requiresBuild: true + dev: false + registry.npmmirror.com/core-js@3.28.0: resolution: {integrity: sha512-GiZn9D4Z/rSYvTeg1ljAIsEqFm0LaN9gVtwDCrKL80zHtS31p9BAjmTxVqTQDMpwlMolJZOFntUG2uwyj7DAqw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/core-js/-/core-js-3.28.0.tgz} name: core-js @@ -10218,6 +10277,15 @@ packages: safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 sha.js: registry.npmmirror.com/sha.js@2.4.11 + registry.npmmirror.com/create-react-class@15.7.0: + resolution: {integrity: sha512-QZv4sFWG9S5RUvkTYWbflxeZX+JG7Cz0Tn33rQBJ+WFQTqTfUTjMjiv9tnfXazjsO5r0KhPs+AqCjyrQX6h2ng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/create-react-class/-/create-react-class-15.7.0.tgz} + name: create-react-class + version: 15.7.0 + dependencies: + loose-envify: registry.npmmirror.com/loose-envify@1.4.0 + object-assign: registry.npmmirror.com/object-assign@4.1.1 + dev: false + registry.npmmirror.com/create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/create-require/-/create-require-1.1.1.tgz} name: create-require @@ -10687,7 +10755,6 @@ packages: resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz} name: dayjs version: 1.11.10 - dev: false registry.npmmirror.com/debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz} @@ -11031,6 +11098,12 @@ packages: dependencies: utila: registry.npmmirror.com/utila@0.4.0 + registry.npmmirror.com/dom-scroll-into-view@1.2.1: + resolution: {integrity: sha512-LwNVg3GJOprWDO+QhLL1Z9MMgWe/KAFLxVWKzjRTxNSPn8/LLDIfmuG71YHznXCqaqTjvHJDYO1MEAgX6XCNbQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dom-scroll-into-view/-/dom-scroll-into-view-1.2.1.tgz} + name: dom-scroll-into-view + version: 1.2.1 + dev: false + registry.npmmirror.com/dom-serializer@0.2.2: resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dom-serializer/-/dom-serializer-0.2.2.tgz} name: dom-serializer @@ -15548,7 +15621,6 @@ packages: version: 0.2.0 dependencies: string-convert: registry.npmmirror.com/string-convert@0.2.1 - dev: false registry.npmmirror.com/json5@0.5.1: resolution: {integrity: sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json5/-/json5-0.5.1.tgz} @@ -15576,7 +15648,6 @@ packages: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz} name: jsonc-parser version: 3.2.0 - dev: true registry.npmmirror.com/jsonfile@3.0.1: resolution: {integrity: sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsonfile/-/jsonfile-3.0.1.tgz} @@ -16209,7 +16280,6 @@ packages: resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz} name: lodash.upperfirst version: 4.3.1 - dev: true registry.npmmirror.com/lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz} @@ -17386,7 +17456,6 @@ packages: pathe: registry.npmmirror.com/pathe@1.1.1 pkg-types: registry.npmmirror.com/pkg-types@1.0.3 ufo: registry.npmmirror.com/ufo@1.3.2 - dev: true registry.npmmirror.com/mockjs@1.1.0: resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mockjs/-/mockjs-1.1.0.tgz} @@ -18675,7 +18744,6 @@ packages: resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pathe/-/pathe-1.1.1.tgz} name: pathe version: 1.1.1 - dev: true registry.npmmirror.com/pbkdf2@3.1.2: resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pbkdf2/-/pbkdf2-3.1.2.tgz} @@ -18694,6 +18762,12 @@ packages: name: peberminta version: 0.9.0 + registry.npmmirror.com/performance-now@2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz} + name: performance-now + version: 2.1.0 + dev: false + registry.npmmirror.com/picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz} name: picocolors @@ -18789,7 +18863,6 @@ packages: jsonc-parser: registry.npmmirror.com/jsonc-parser@3.2.0 mlly: registry.npmmirror.com/mlly@1.4.2 pathe: registry.npmmirror.com/pathe@1.1.1 - dev: true registry.npmmirror.com/pkg-up@3.1.0: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pkg-up/-/pkg-up-3.1.0.tgz} @@ -20101,7 +20174,6 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: react: registry.npmmirror.com/react@18.2.0 - dev: false registry.npmmirror.com/qs@6.11.2: resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/qs/-/qs-6.11.2.tgz} @@ -20161,6 +20233,14 @@ packages: version: 4.0.1 engines: {node: '>=8'} + registry.npmmirror.com/raf@3.4.1: + resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/raf/-/raf-3.4.1.tgz} + name: raf + version: 3.4.1 + dependencies: + performance-now: registry.npmmirror.com/performance-now@2.1.0 + dev: false + registry.npmmirror.com/ramda@0.28.0: resolution: {integrity: sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ramda/-/ramda-0.28.0.tgz} name: ramda @@ -20200,6 +20280,23 @@ packages: schema-utils: registry.npmmirror.com/schema-utils@3.3.0 webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.18.20) + registry.npmmirror.com/rc-animate@3.1.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-8wg2Zg3EETy0k/9kYuis30NJNQg1D6/WSQwnCiz6SvyxQXNet/rVraRz3bPngwY6rcU2nlRvoShiYOorXyF7Sg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-animate/-/rc-animate-3.1.1.tgz} + id: registry.npmmirror.com/rc-animate/3.1.1 + name: rc-animate + version: 3.1.1 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@ant-design/css-animation': registry.npmmirror.com/@ant-design/css-animation@1.7.3 + classnames: registry.npmmirror.com/classnames@2.5.1 + raf: registry.npmmirror.com/raf@3.4.1 + rc-util: registry.npmmirror.com/rc-util@4.21.1 + react: registry.npmmirror.com/react@18.2.0 + react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + dev: false + registry.npmmirror.com/rc-cascader@3.20.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-lkT9EEwOcYdjZ/jvhLoXGzprK1sijT3/Tp4BLxQQcHDZkkOzzwYQC9HgmKoJz0K7CukMfgvO9KqHeBdgE+pELw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-cascader/-/rc-cascader-3.20.0.tgz} id: registry.npmmirror.com/rc-cascader/3.20.0 @@ -20217,7 +20314,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-checkbox@3.1.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-PAwpJFnBa3Ei+5pyqMMXdcKYKNBMS+TvSDiLdDnARnMJHC8ESxwPfm4Ao1gJiKtWLdmGfigascnCpwrHFgoOBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-checkbox/-/rc-checkbox-3.1.0.tgz} @@ -20233,7 +20329,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-collapse@3.7.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-ZRw6ipDyOnfLFySxAiCMdbHtb5ePAsB9mT17PA6y1mRD/W6KHRaZeb5qK/X9xDV1CqgyxMpzw0VdS74PCcUk4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-collapse/-/rc-collapse-3.7.2.tgz} @@ -20250,7 +20345,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-dialog@9.3.4(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-975X3018GhR+EjZFbxA2Z57SX5rnu0G0/OxFgMMvZK4/hQWEm3MHaNvP4wXpxYDoJsp+xUvVW+GB9CMMCm81jA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-dialog/-/rc-dialog-9.3.4.tgz} @@ -20268,7 +20362,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-drawer@6.5.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-QckxAnQNdhh4vtmKN0ZwDf3iakO83W9eZcSKWYYTDv4qcD2fHhRAZJJ/OE6v2ZlQ2kSqCJX5gYssF4HJFvsEPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-drawer/-/rc-drawer-6.5.2.tgz} @@ -20286,7 +20379,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-dropdown@4.1.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-VZjMunpBdlVzYpEdJSaV7WM7O0jf8uyDjirxXLZRNZ+tAC+NzD3PXPEtliFwGzVwBBdCmGuSqiS9DWcOLxQ9tw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-dropdown/-/rc-dropdown-4.1.0.tgz} @@ -20319,7 +20411,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-footer@0.6.8(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-JBZ+xcb6kkex8XnBd4VHw1ZxjV6kmcwUumSHaIFdka2qzMCo7Klcy4sI6G0XtUpG/vtpislQCc+S9Bc+NLHYMg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-footer/-/rc-footer-0.6.8.tgz} @@ -20336,6 +20427,26 @@ packages: react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) dev: false + registry.npmmirror.com/rc-form@2.4.12(prop-types@15.8.1): + resolution: {integrity: sha512-sHfyWRrnjCHkeCYfYAGop2GQBUC6CKMPcJF9h/gL/vTmZB/RN6fNOGKjXrXjFbwFwKXUWBoPtIDDDmXQW9xNdw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-form/-/rc-form-2.4.12.tgz} + id: registry.npmmirror.com/rc-form/2.4.12 + name: rc-form + version: 2.4.12 + peerDependencies: + prop-types: ^15.0 + dependencies: + async-validator: registry.npmmirror.com/async-validator@1.11.5 + babel-runtime: registry.npmmirror.com/babel-runtime@6.26.0 + create-react-class: registry.npmmirror.com/create-react-class@15.7.0 + dom-scroll-into-view: registry.npmmirror.com/dom-scroll-into-view@1.2.1 + hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 + lodash: registry.npmmirror.com/lodash@4.17.21 + prop-types: registry.npmmirror.com/prop-types@15.8.1 + rc-util: registry.npmmirror.com/rc-util@4.21.1 + react-is: registry.npmmirror.com/react-is@16.13.1 + warning: registry.npmmirror.com/warning@4.0.3 + dev: false + registry.npmmirror.com/rc-image@7.5.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Z9loECh92SQp0nSipc0MBuf5+yVC05H/pzC+Nf8xw1BKDFUJzUeehYBjaWlxly8VGBZJcTHYri61Fz9ng1G3Ag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-image/-/rc-image-7.5.1.tgz} id: registry.npmmirror.com/rc-image/7.5.1 @@ -20353,7 +20464,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-input-number@8.4.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-B6rziPOLRmeP7kcS5qbdC5hXvvDHYKV4vUxmahevYx2E6crS2bRi0xLDjhJ0E1HtOWo8rTmaE2EBJAkTCZOLdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-input-number/-/rc-input-number-8.4.0.tgz} @@ -20371,7 +20481,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-input@1.3.11(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-jhH7QP5rILanSHCGSUkdoFE5DEtpv8FIseYhuYkOZzUBeiVAiwM3q26YqZ6xBB0QFEZ/yUAgms4xW4iuub3xFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-input/-/rc-input-1.3.11.tgz} @@ -20387,7 +20496,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-mentions@2.9.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-cZuElWr/5Ws0PXx1uxobxfYh4mqUw2FitfabR62YnWgm+WAfDyXZXqZg5DxXW+M1cgVvntrQgDDd9LrihrXzew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-mentions/-/rc-mentions-2.9.1.tgz} @@ -20407,7 +20515,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-menu@9.12.4(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-t2NcvPLV1mFJzw4F21ojOoRVofK2rWhpKPx69q2raUsiHPDP6DDevsBILEYdsIegqBeSXoWs2bf6CueBKg3BFg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-menu/-/rc-menu-9.12.4.tgz} @@ -20458,7 +20565,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-overflow@1.3.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-overflow/-/rc-overflow-1.3.2.tgz} @@ -20506,7 +20612,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-picker@3.14.6(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-AdKKW0AqMwZsKvIpwUWDUnpuGKZVrbxVTZTNjcO+pViGkjC1EBcjMgxVe8tomOEaIHJL5Gd13vS8Rr3zzxWmag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-picker/-/rc-picker-3.14.6.tgz} @@ -20538,7 +20643,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-progress@3.5.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-V6Amx6SbLRwPin/oD+k1vbPrO8+9Qf8zW1T8A7o83HdNafEVvAxPV5YsgtKFP+Ud5HghLj33zKOcEHrcrUGkfw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-progress/-/rc-progress-3.5.1.tgz} @@ -20554,7 +20658,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-rate@2.12.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-rate/-/rc-rate-2.12.0.tgz} @@ -20571,7 +20674,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-resize-observer/-/rc-resize-observer-1.4.0.tgz} @@ -20604,7 +20706,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-select@14.10.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-TsIJTYafTTapCA32LLNpx/AD6ntepR1TG8jEVx35NiAAWCPymhUfuca8kRcUNd3WIGVMDcMKn9kkphoxEz+6Ag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-select/-/rc-select-14.10.0.tgz} @@ -20625,7 +20726,6 @@ packages: rc-virtual-list: registry.npmmirror.com/rc-virtual-list@3.11.3(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-slider@10.5.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-xiYght50cvoODZYI43v3Ylsqiw14+D7ELsgzR40boDZaya1HFa1Etnv9MDkQE8X/UrXAffwv2AcNAhslgYuDTw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-slider/-/rc-slider-10.5.0.tgz} @@ -20642,7 +20742,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-steps@6.0.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-steps/-/rc-steps-6.0.1.tgz} @@ -20659,7 +20758,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-switch@4.1.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-switch/-/rc-switch-4.1.0.tgz} @@ -20675,7 +20773,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-table@7.36.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-3xVcdCC5OLeOOhaCg+5Lps2oPreM/GWXmUXWTSX4p6vF7F76ABM4dfPpMJ9Dnf5yGRyh+8pe7FRyhRVnWw2H/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-table/-/rc-table-7.36.0.tgz} @@ -20715,7 +20812,6 @@ packages: rc-virtual-list: registry.npmmirror.com/rc-virtual-list@3.11.3(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-tabs@12.14.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-1xlE7JQNYxD5RwBsM7jf2xSdUrkmTSDFLFEm2gqAgnsRlOGydEzXXNAVTOT6QcgM1G/gCm+AgG+FYPUGb4Hs4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-tabs/-/rc-tabs-12.14.1.tgz} @@ -20736,7 +20832,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-tabs@12.15.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-aXFLRo7jo531Jed1LgRqrF0VmRnzM/Qki25PknM3S04gqyxpDaHNFpPba05pHhn+d1N+54qIi0IcY1odrCrF2A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-tabs/-/rc-tabs-12.15.0.tgz} @@ -20774,7 +20869,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-tooltip@6.1.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-89zwvybvCxGJu3+gGF8w5AXd4HHk6hIN7K0vZbkzjilVaEAIWPqc1fcyeUeP71n3VCcw7pTL9LyFupFbrx8gHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-tooltip/-/rc-tooltip-6.1.2.tgz} @@ -20806,7 +20900,6 @@ packages: classnames: registry.npmmirror.com/classnames@2.5.1 react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-tree-select@5.15.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-YJHfdO6azFnR0/JuNBZLDptGE4/RGfVeHAafUIYcm2T3RBkL1O8aVqiHvwIyLzdK59ry0NLrByd+3TkfpRM+9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-tree-select/-/rc-tree-select-5.15.0.tgz} @@ -20824,7 +20917,6 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - dev: false registry.npmmirror.com/rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-xH/fcgLHWTLmrSuNphU8XAqV7CdaOQgm4KywlLGNoTMhDAcNR3GVNP6cZzb0GrKmIZ9yae+QLot/cAgUdPRMzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-tree/-/rc-tree-5.8.2.tgz} @@ -20874,6 +20966,17 @@ packages: rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + + registry.npmmirror.com/rc-util@4.21.1: + resolution: {integrity: sha512-Z+vlkSQVc1l8O2UjR3WQ+XdWlhj5q9BMQNLk2iOBch75CqPfrJyGtcWMcnhRlNuDu0Ndtt4kLVO8JI8BrABobg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-util/-/rc-util-4.21.1.tgz} + name: rc-util + version: 4.21.1 + dependencies: + add-dom-event-listener: registry.npmmirror.com/add-dom-event-listener@1.1.0 + prop-types: registry.npmmirror.com/prop-types@15.8.1 + react-is: registry.npmmirror.com/react-is@16.13.1 + react-lifecycles-compat: registry.npmmirror.com/react-lifecycles-compat@3.0.4 + shallowequal: registry.npmmirror.com/shallowequal@1.1.0 dev: false registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0): @@ -21140,6 +21243,12 @@ packages: react: registry.npmmirror.com/react@18.2.0 dev: false + registry.npmmirror.com/react-lifecycles-compat@3.0.4: + resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz} + name: react-lifecycles-compat + version: 3.0.4 + dev: false + registry.npmmirror.com/react-markdown@8.0.7(@types/react@18.2.45)(react@18.2.0): resolution: {integrity: sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-markdown/-/react-markdown-8.0.7.tgz} id: registry.npmmirror.com/react-markdown/8.0.7 @@ -21639,6 +21748,12 @@ packages: name: regenerate version: 1.4.2 + registry.npmmirror.com/regenerator-runtime@0.11.1: + resolution: {integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz} + name: regenerator-runtime + version: 0.11.1 + dev: false + registry.npmmirror.com/regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz} name: regenerator-runtime @@ -22406,7 +22521,6 @@ packages: version: 3.1.0 dependencies: compute-scroll-into-view: registry.npmmirror.com/compute-scroll-into-view@3.1.0 - dev: false registry.npmmirror.com/scule@1.1.1: resolution: {integrity: sha512-sHtm/SsIK9BUBI3EFT/Gnp9VoKfY6QLvlkvAE6YK7454IF8FSgJEAnJpVdSC7K5/pjI5NfxhzBLW2JAfYA/shQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/scule/-/scule-1.1.1.tgz} @@ -23233,7 +23347,6 @@ packages: resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string-convert/-/string-convert-0.2.1.tgz} name: string-convert version: 0.2.1 - dev: false registry.npmmirror.com/string-width@2.1.1: resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string-width/-/string-width-2.1.1.tgz} @@ -23549,7 +23662,6 @@ packages: resolution: {integrity: sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stylis/-/stylis-4.3.0.tgz} name: stylis version: 4.3.0 - dev: false registry.npmmirror.com/supports-color@2.0.0: resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz} @@ -23906,7 +24018,6 @@ packages: name: throttle-debounce version: 5.0.0 engines: {node: '>=12.22'} - dev: false registry.npmmirror.com/through2@0.4.2: resolution: {integrity: sha512-45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/through2/-/through2-0.4.2.tgz} @@ -24455,7 +24566,6 @@ packages: resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ufo/-/ufo-1.3.2.tgz} name: ufo version: 1.3.2 - dev: true registry.npmmirror.com/uglify-js@3.17.4: resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uglify-js/-/uglify-js-3.17.4.tgz} @@ -25266,7 +25376,7 @@ packages: optionalDependencies: fsevents: registry.npmmirror.com/fsevents@2.3.3 - registry.npmmirror.com/vite@4.5.0(@types/node@18.19.3): + registry.npmmirror.com/vite@4.5.0(@types/node@20.10.4)(less@4.2.0)(terser@5.26.0): resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-4.5.0.tgz} id: registry.npmmirror.com/vite/4.5.0 name: vite @@ -25297,15 +25407,16 @@ packages: terser: optional: true dependencies: - '@types/node': registry.npmmirror.com/@types/node@18.19.3 + '@types/node': registry.npmmirror.com/@types/node@20.10.4 esbuild: registry.npmmirror.com/esbuild@0.18.20 + less: registry.npmmirror.com/less@4.2.0 postcss: registry.npmmirror.com/postcss@8.4.32 rollup: registry.npmmirror.com/rollup@3.29.4 + terser: registry.npmmirror.com/terser@5.26.0 optionalDependencies: fsevents: registry.npmmirror.com/fsevents@2.3.3 - dev: false - registry.npmmirror.com/vite@4.5.0(@types/node@20.10.4)(less@4.2.0)(terser@5.26.0): + registry.npmmirror.com/vite@4.5.0(@types/node@20.10.7): resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-4.5.0.tgz} id: registry.npmmirror.com/vite/4.5.0 name: vite @@ -25336,14 +25447,13 @@ packages: terser: optional: true dependencies: - '@types/node': registry.npmmirror.com/@types/node@20.10.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.7 esbuild: registry.npmmirror.com/esbuild@0.18.20 - less: registry.npmmirror.com/less@4.2.0 postcss: registry.npmmirror.com/postcss@8.4.32 rollup: registry.npmmirror.com/rollup@3.29.4 - terser: registry.npmmirror.com/terser@5.26.0 optionalDependencies: fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: false registry.npmmirror.com/vite@5.0.11(@types/node@18.19.3): resolution: {integrity: sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-5.0.11.tgz} @@ -25440,6 +25550,14 @@ packages: dependencies: makeerror: registry.npmmirror.com/makeerror@1.0.12 + registry.npmmirror.com/warning@4.0.3: + resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz} + name: warning + version: 4.0.3 + dependencies: + loose-envify: registry.npmmirror.com/loose-envify@1.4.0 + dev: false + registry.npmmirror.com/watchpack@2.4.0: resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz} name: watchpack From 290f1a7d5e2cd57e9b332bff9ce63755642f872d Mon Sep 17 00:00:00 2001 From: G Date: Tue, 9 Jan 2024 11:14:24 +0800 Subject: [PATCH 17/26] =?UTF-8?q?build:=20:package:=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=BA=93vite=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/vite-config/package.json | 3 +- internal/vite-config/src/config/package.ts | 43 ++++ pnpm-lock.yaml | 231 ++++++++++++++++++++- 3 files changed, 275 insertions(+), 2 deletions(-) diff --git a/internal/vite-config/package.json b/internal/vite-config/package.json index 5e5467a4..7bb52d0d 100644 --- a/internal/vite-config/package.json +++ b/internal/vite-config/package.json @@ -45,6 +45,7 @@ "vite": "4.5.0" }, "devDependencies": { - "antd": "^5.12.8" + "antd": "^5.12.8", + "vite-plugin-dts": "^3.7.0" } } diff --git a/internal/vite-config/src/config/package.ts b/internal/vite-config/src/config/package.ts index e69de29b..bf7402cd 100644 --- a/internal/vite-config/src/config/package.ts +++ b/internal/vite-config/src/config/package.ts @@ -0,0 +1,43 @@ +import { readPackageJSON } from "pkg-types"; +import { defineConfig, mergeConfig, type UserConfig } from "vite"; + +import dts from "vite-plugin-dts"; +import { commonConfig } from "./common"; + +interface DefineOptions { + overrides?: UserConfig; + options?: {}; +} + +function definePackageConfig(options: DefineOptions = {}) { + const { overrides = {} } = options; + const root = process.cwd(); + return defineConfig(async ({ mode }) => { + const { dependencies = {}, peerDependencies = {} } = + await readPackageJSON(root); + const packageConfig: UserConfig = { + build: { + lib: { + entry: "src/index.ts", + fileName: () => "index.mjs", + formats: ["es", "umd"], + }, + rollupOptions: { + external: [ + ...Object.keys(dependencies), + ...Object.keys(peerDependencies), + ], + }, + }, + plugins: [ + dts({ + logLevel: "error", + }), + ], + }; + const mergedConfig = mergeConfig(commonConfig(mode), packageConfig); + return mergeConfig(mergedConfig, overrides); + }); +} + +export { definePackageConfig }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 61461a9a..1691400f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -460,6 +460,9 @@ importers: antd: specifier: ^5.12.8 version: registry.npmmirror.com/antd@5.12.8(react-dom@18.2.0)(react@18.2.0) + vite-plugin-dts: + specifier: ^3.7.0 + version: registry.npmmirror.com/vite-plugin-dts@3.7.0(@types/node@20.10.7)(rollup@3.29.4)(typescript@5.3.3)(vite@4.5.0) packages/apis: dependencies: @@ -4560,6 +4563,19 @@ packages: - '@types/node' dev: true + registry.npmmirror.com/@microsoft/api-extractor-model@7.28.3(@types/node@20.10.7): + resolution: {integrity: sha512-wT/kB2oDbdZXITyDh2SQLzaWwTOFbV326fP0pUwNW00WeliARs0qjmXBWmGWardEzp2U3/axkO3Lboqun6vrig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@microsoft/api-extractor-model/-/api-extractor-model-7.28.3.tgz} + id: registry.npmmirror.com/@microsoft/api-extractor-model/7.28.3 + name: '@microsoft/api-extractor-model' + version: 7.28.3 + dependencies: + '@microsoft/tsdoc': registry.npmmirror.com/@microsoft/tsdoc@0.14.2 + '@microsoft/tsdoc-config': registry.npmmirror.com/@microsoft/tsdoc-config@0.16.2 + '@rushstack/node-core-library': registry.npmmirror.com/@rushstack/node-core-library@3.62.0(@types/node@20.10.7) + transitivePeerDependencies: + - '@types/node' + dev: true + registry.npmmirror.com/@microsoft/api-extractor@7.36.3(@types/node@20.5.1): resolution: {integrity: sha512-u0H6362AQq+r55X8drHx4npgkrCfJnMzRRHfQo8PMNKB8TcBnrTLfXhXWi+xnTM6CzlU/netEN8c4bq581Rnrg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@microsoft/api-extractor/-/api-extractor-7.36.3.tgz} id: registry.npmmirror.com/@microsoft/api-extractor/7.36.3 @@ -4583,6 +4599,29 @@ packages: - '@types/node' dev: true + registry.npmmirror.com/@microsoft/api-extractor@7.39.0(@types/node@20.10.7): + resolution: {integrity: sha512-PuXxzadgnvp+wdeZFPonssRAj/EW4Gm4s75TXzPk09h3wJ8RS3x7typf95B4vwZRrPTQBGopdUl+/vHvlPdAcg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@microsoft/api-extractor/-/api-extractor-7.39.0.tgz} + id: registry.npmmirror.com/@microsoft/api-extractor/7.39.0 + name: '@microsoft/api-extractor' + version: 7.39.0 + hasBin: true + dependencies: + '@microsoft/api-extractor-model': registry.npmmirror.com/@microsoft/api-extractor-model@7.28.3(@types/node@20.10.7) + '@microsoft/tsdoc': registry.npmmirror.com/@microsoft/tsdoc@0.14.2 + '@microsoft/tsdoc-config': registry.npmmirror.com/@microsoft/tsdoc-config@0.16.2 + '@rushstack/node-core-library': registry.npmmirror.com/@rushstack/node-core-library@3.62.0(@types/node@20.10.7) + '@rushstack/rig-package': registry.npmmirror.com/@rushstack/rig-package@0.5.1 + '@rushstack/ts-command-line': registry.npmmirror.com/@rushstack/ts-command-line@4.17.1 + colors: registry.npmmirror.com/colors@1.2.5 + lodash: registry.npmmirror.com/lodash@4.17.21 + resolve: registry.npmmirror.com/resolve@1.22.8 + semver: registry.npmmirror.com/semver@7.5.4 + source-map: registry.npmmirror.com/source-map@0.6.1 + typescript: registry.npmmirror.com/typescript@5.3.3 + transitivePeerDependencies: + - '@types/node' + dev: true + registry.npmmirror.com/@microsoft/tsdoc-config@0.16.2: resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@microsoft/tsdoc-config/-/tsdoc-config-0.16.2.tgz} name: '@microsoft/tsdoc-config' @@ -5362,6 +5401,27 @@ packages: z-schema: registry.npmmirror.com/z-schema@5.0.5 dev: true + registry.npmmirror.com/@rushstack/node-core-library@3.62.0(@types/node@20.10.7): + resolution: {integrity: sha512-88aJn2h8UpSvdwuDXBv1/v1heM6GnBf3RjEy6ZPP7UnzHNCqOHA2Ut+ScYUbXcqIdfew9JlTAe3g+cnX9xQ/Aw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rushstack/node-core-library/-/node-core-library-3.62.0.tgz} + id: registry.npmmirror.com/@rushstack/node-core-library/3.62.0 + name: '@rushstack/node-core-library' + version: 3.62.0 + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.10.7 + colors: registry.npmmirror.com/colors@1.2.5 + fs-extra: registry.npmmirror.com/fs-extra@7.0.1 + import-lazy: registry.npmmirror.com/import-lazy@4.0.0 + jju: registry.npmmirror.com/jju@1.4.0 + resolve: registry.npmmirror.com/resolve@1.22.8 + semver: registry.npmmirror.com/semver@7.5.4 + z-schema: registry.npmmirror.com/z-schema@5.0.5 + dev: true + registry.npmmirror.com/@rushstack/rig-package@0.4.0: resolution: {integrity: sha512-FnM1TQLJYwSiurP6aYSnansprK5l8WUK8VG38CmAaZs29ZeL1msjK0AP1VS4ejD33G0kE/2cpsPsS9jDenBMxw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rushstack/rig-package/-/rig-package-0.4.0.tgz} name: '@rushstack/rig-package' @@ -5371,6 +5431,15 @@ packages: strip-json-comments: registry.npmmirror.com/strip-json-comments@3.1.1 dev: true + registry.npmmirror.com/@rushstack/rig-package@0.5.1: + resolution: {integrity: sha512-pXRYSe29TjRw7rqxD4WS3HN/sRSbfr+tJs4a9uuaSIBAITbUggygdhuG0VrO0EO+QqH91GhYMN4S6KRtOEmGVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rushstack/rig-package/-/rig-package-0.5.1.tgz} + name: '@rushstack/rig-package' + version: 0.5.1 + dependencies: + resolve: registry.npmmirror.com/resolve@1.22.8 + strip-json-comments: registry.npmmirror.com/strip-json-comments@3.1.1 + dev: true + registry.npmmirror.com/@rushstack/ts-command-line@4.15.1: resolution: {integrity: sha512-EL4jxZe5fhb1uVL/P/wQO+Z8Rc8FMiWJ1G7VgnPDvdIt5GVjRfK7vwzder1CZQiX3x0PY6uxENYLNGTFd1InRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rushstack/ts-command-line/-/ts-command-line-4.15.1.tgz} name: '@rushstack/ts-command-line' @@ -5382,6 +5451,17 @@ packages: string-argv: registry.npmmirror.com/string-argv@0.3.2 dev: true + registry.npmmirror.com/@rushstack/ts-command-line@4.17.1: + resolution: {integrity: sha512-2jweO1O57BYP5qdBGl6apJLB+aRIn5ccIRTPDyULh0KMwVzFqWtw6IZWt1qtUoZD/pD2RNkIOosH6Cq45rIYeg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rushstack/ts-command-line/-/ts-command-line-4.17.1.tgz} + name: '@rushstack/ts-command-line' + version: 4.17.1 + dependencies: + '@types/argparse': registry.npmmirror.com/@types/argparse@1.0.38 + argparse: registry.npmmirror.com/argparse@1.0.10 + colors: registry.npmmirror.com/colors@1.2.5 + string-argv: registry.npmmirror.com/string-argv@0.3.2 + dev: true + registry.npmmirror.com/@selderee/plugin-htmlparser2@0.11.0: resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.11.0.tgz} name: '@selderee/plugin-htmlparser2' @@ -7306,6 +7386,81 @@ packages: - supports-color dev: false + registry.npmmirror.com/@volar/language-core@1.11.1: + resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@volar/language-core/-/language-core-1.11.1.tgz} + name: '@volar/language-core' + version: 1.11.1 + dependencies: + '@volar/source-map': registry.npmmirror.com/@volar/source-map@1.11.1 + dev: true + + registry.npmmirror.com/@volar/source-map@1.11.1: + resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@volar/source-map/-/source-map-1.11.1.tgz} + name: '@volar/source-map' + version: 1.11.1 + dependencies: + muggle-string: registry.npmmirror.com/muggle-string@0.3.1 + dev: true + + registry.npmmirror.com/@volar/typescript@1.11.1: + resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@volar/typescript/-/typescript-1.11.1.tgz} + name: '@volar/typescript' + version: 1.11.1 + dependencies: + '@volar/language-core': registry.npmmirror.com/@volar/language-core@1.11.1 + path-browserify: registry.npmmirror.com/path-browserify@1.0.1 + dev: true + + registry.npmmirror.com/@vue/compiler-core@3.4.6: + resolution: {integrity: sha512-9SmkpHsXqhHGMIOp4cawUqp0AxLN2fJJfxh3sR2RaouVx/Y/ww5ts3dfpD9SCvD0n8cdO/Xw+kWEpa6EkH/vTQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.6.tgz} + name: '@vue/compiler-core' + version: 3.4.6 + dependencies: + '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.6 + '@vue/shared': registry.npmmirror.com/@vue/shared@3.4.6 + entities: registry.npmmirror.com/entities@4.5.0 + estree-walker: registry.npmmirror.com/estree-walker@2.0.2 + source-map-js: registry.npmmirror.com/source-map-js@1.0.2 + dev: true + + registry.npmmirror.com/@vue/compiler-dom@3.4.6: + resolution: {integrity: sha512-i39ZuyHPzPb0v5yXZbvODGwLr+T7lS1rYSjMd1oCTa14aDP80kYpWXrWPF1JVD4QJJNyLgFnJ2hxvFLM7dy9NQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.6.tgz} + name: '@vue/compiler-dom' + version: 3.4.6 + dependencies: + '@vue/compiler-core': registry.npmmirror.com/@vue/compiler-core@3.4.6 + '@vue/shared': registry.npmmirror.com/@vue/shared@3.4.6 + dev: true + + registry.npmmirror.com/@vue/language-core@1.8.27(typescript@5.3.3): + resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/language-core/-/language-core-1.8.27.tgz} + id: registry.npmmirror.com/@vue/language-core/1.8.27 + name: '@vue/language-core' + version: 1.8.27 + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@volar/language-core': registry.npmmirror.com/@volar/language-core@1.11.1 + '@volar/source-map': registry.npmmirror.com/@volar/source-map@1.11.1 + '@vue/compiler-dom': registry.npmmirror.com/@vue/compiler-dom@3.4.6 + '@vue/shared': registry.npmmirror.com/@vue/shared@3.4.6 + computeds: registry.npmmirror.com/computeds@0.0.1 + minimatch: registry.npmmirror.com/minimatch@9.0.3 + muggle-string: registry.npmmirror.com/muggle-string@0.3.1 + path-browserify: registry.npmmirror.com/path-browserify@1.0.1 + typescript: registry.npmmirror.com/typescript@5.3.3 + vue-template-compiler: registry.npmmirror.com/vue-template-compiler@2.7.16 + dev: true + + registry.npmmirror.com/@vue/shared@3.4.6: + resolution: {integrity: sha512-O16vewA05D0IwfG2N/OFEuVeb17pieaI32mmYXp36V8lp+/pI1YV04rRL9Eyjndj3xQO5SNjAxTh6ul4IlBa3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/shared/-/shared-3.4.6.tgz} + name: '@vue/shared' + version: 3.4.6 + dev: true + registry.npmmirror.com/@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1): resolution: {integrity: sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz} id: registry.npmmirror.com/@wangeditor/basic-modules/1.1.7 @@ -9898,6 +10053,12 @@ packages: name: compute-scroll-into-view version: 3.1.0 + registry.npmmirror.com/computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz} + name: computeds + version: 0.0.1 + dev: true + registry.npmmirror.com/concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz} name: concat-map @@ -10756,6 +10917,12 @@ packages: name: dayjs version: 1.11.10 + registry.npmmirror.com/de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz} + name: de-indent + version: 1.0.2 + dev: true + registry.npmmirror.com/debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz} name: debug @@ -17498,6 +17665,12 @@ packages: name: ms version: 2.1.3 + registry.npmmirror.com/muggle-string@0.3.1: + resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/muggle-string/-/muggle-string-0.3.1.tgz} + name: muggle-string + version: 0.3.1 + dev: true + registry.npmmirror.com/multipipe@1.0.2: resolution: {integrity: sha512-6uiC9OvY71vzSGX8lZvSqscE7ft9nPupJ8fMjrCNRAUy2LREUW42UL+V/NTrogr6rFgRydUrCX4ZitfpSNkSCQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/multipipe/-/multipipe-1.0.2.tgz} name: multipipe @@ -18627,6 +18800,12 @@ packages: name: path-browserify version: 0.0.1 + registry.npmmirror.com/path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz} + name: path-browserify + version: 1.0.1 + dev: true + registry.npmmirror.com/path-case@3.0.4: resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-case/-/path-case-3.0.4.tgz} name: path-case @@ -25229,6 +25408,33 @@ packages: redux: registry.npmmirror.com/redux@4.2.1 dev: false + registry.npmmirror.com/vite-plugin-dts@3.7.0(@types/node@20.10.7)(rollup@3.29.4)(typescript@5.3.3)(vite@4.5.0): + resolution: {integrity: sha512-np1uPaYzu98AtPReB8zkMnbjwcNHOABsLhqVOf81b3ol9b5M2wPcAVs8oqPnOpr6Us+7yDXVauwkxsk5+ldmRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-plugin-dts/-/vite-plugin-dts-3.7.0.tgz} + id: registry.npmmirror.com/vite-plugin-dts/3.7.0 + name: vite-plugin-dts + version: 3.7.0 + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + typescript: '*' + vite: '*' + peerDependenciesMeta: + vite: + optional: true + dependencies: + '@microsoft/api-extractor': registry.npmmirror.com/@microsoft/api-extractor@7.39.0(@types/node@20.10.7) + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils@5.1.0(rollup@3.29.4) + '@vue/language-core': registry.npmmirror.com/@vue/language-core@1.8.27(typescript@5.3.3) + debug: registry.npmmirror.com/debug@4.3.4 + kolorist: registry.npmmirror.com/kolorist@1.8.0 + typescript: registry.npmmirror.com/typescript@5.3.3 + vite: registry.npmmirror.com/vite@4.5.0(@types/node@20.10.7) + vue-tsc: registry.npmmirror.com/vue-tsc@1.8.27(typescript@5.3.3) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + dev: true + registry.npmmirror.com/vite-plugin-eslint@1.8.1(eslint@8.56.0)(vite@4.5.0): resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-plugin-eslint/-/vite-plugin-eslint-1.8.1.tgz} id: registry.npmmirror.com/vite-plugin-eslint/1.8.1 @@ -25453,7 +25659,6 @@ packages: rollup: registry.npmmirror.com/rollup@3.29.4 optionalDependencies: fsevents: registry.npmmirror.com/fsevents@2.3.3 - dev: false registry.npmmirror.com/vite@5.0.11(@types/node@18.19.3): resolution: {integrity: sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-5.0.11.tgz} @@ -25537,6 +25742,30 @@ packages: name: vm-browserify version: 1.1.2 + registry.npmmirror.com/vue-template-compiler@2.7.16: + resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz} + name: vue-template-compiler + version: 2.7.16 + dependencies: + de-indent: registry.npmmirror.com/de-indent@1.0.2 + he: registry.npmmirror.com/he@1.2.0 + dev: true + + registry.npmmirror.com/vue-tsc@1.8.27(typescript@5.3.3): + resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.8.27.tgz} + id: registry.npmmirror.com/vue-tsc/1.8.27 + name: vue-tsc + version: 1.8.27 + hasBin: true + peerDependencies: + typescript: '*' + dependencies: + '@volar/typescript': registry.npmmirror.com/@volar/typescript@1.11.1 + '@vue/language-core': registry.npmmirror.com/@vue/language-core@1.8.27(typescript@5.3.3) + semver: registry.npmmirror.com/semver@7.5.4 + typescript: registry.npmmirror.com/typescript@5.3.3 + dev: true + registry.npmmirror.com/w3c-keyname@2.2.8: resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz} name: w3c-keyname From 7fb1501973c8fd648ce16b4700264e24efd98cdd Mon Sep 17 00:00:00 2001 From: G Date: Tue, 9 Jan 2024 16:46:50 +0800 Subject: [PATCH 18/26] =?UTF-8?q?build:=20:package:=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E9=85=8D=E7=BD=AE=EF=BC=9Amock?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/vite-config/package.json | 8 +- internal/vite-config/src/plugins/appConfig.ts | 115 ++++++++ internal/vite-config/src/plugins/index.ts | 34 +++ internal/vite-config/src/plugins/mock.ts | 22 ++ internal/vite-config/src/utils/env.ts | 48 ++++ internal/vite-config/src/utils/hash.ts | 16 ++ pnpm-lock.yaml | 251 +++++++++++++++++- 7 files changed, 490 insertions(+), 4 deletions(-) create mode 100644 internal/vite-config/src/plugins/appConfig.ts create mode 100644 internal/vite-config/src/plugins/index.ts create mode 100644 internal/vite-config/src/plugins/mock.ts create mode 100644 internal/vite-config/src/utils/env.ts create mode 100644 internal/vite-config/src/utils/hash.ts diff --git a/internal/vite-config/package.json b/internal/vite-config/package.json index 7bb52d0d..ecc519ca 100644 --- a/internal/vite-config/package.json +++ b/internal/vite-config/package.json @@ -40,12 +40,18 @@ "dependencies": { "@ant-design/colors": "^7.0.2", "@ant-design/compatible": "^5.1.2", + "@vitejs/plugin-react-swc": "^3.5.0", "dayjs": "^1.11.10", "pkg-types": "^1.0.3", "vite": "4.5.0" }, "devDependencies": { + "@types/fs-extra": "^11.0.4", "antd": "^5.12.8", - "vite-plugin-dts": "^3.7.0" + "dotenv": "^16.3.1", + "fs-extra": "^11.2.0", + "picocolors": "^1.0.0", + "vite-plugin-dts": "^3.7.0", + "vite-plugin-mock": "2.9.6" } } diff --git a/internal/vite-config/src/plugins/appConfig.ts b/internal/vite-config/src/plugins/appConfig.ts new file mode 100644 index 00000000..ede7f9d5 --- /dev/null +++ b/internal/vite-config/src/plugins/appConfig.ts @@ -0,0 +1,115 @@ +import { resolve } from "node:path"; +import colors from "picocolors"; + +import { readPackageJSON } from "pkg-types"; +import { type PluginOption } from "vite"; + +import { getEnvConfig } from "../utils/env"; +import { createContentHash } from "../utils/hash"; + +const GLOBAL_CONFIG_FILE_NAME = "_app.config.ts"; +const PLUGIN_NAME = "app-config"; + +async function createAppConfigPlugin({ + root, + isBuild, +}: { + root: string; + isBuild: boolean; +}): Promise { + let publicPath: string; + let source: string; + if (!isBuild) { + return { + name: PLUGIN_NAME, + }; + } + const { version = "" } = await readPackageJSON(resolve(root, "package.json")); + const configEnv = getEnvConfig(); + + return { + name: PLUGIN_NAME, + async configResolved(_config) { + const appTitle = _config?.env?.VITE_GLOB_APP_TITLE ?? ""; + publicPath = _config?.base ?? ""; + source = await getConfigSource(appTitle); + }, + /** + * 对给定的索引 HTML 进行转换。 + * + * @param {string} html - 要转换的 HTML。 + * @return {object} - 转换后的 HTML 及相关标签。 + */ + async transformIndexHtml(html) { + publicPath = publicPath.endsWith("/") ? publicPath : `${publicPath}/`; + + const appConfigSrc = `${ + publicPath || "/" + }${GLOBAL_CONFIG_FILE_NAME}?v=${version}-${createContentHash(source)}`; + + return { + html, + tags: [ + { + tag: "script", + attrs: { + src: appConfigSrc, + }, + }, + ], + }; + }, + async generateBundle() { + try { + this.emitFile({ + type: "asset", + fileName: GLOBAL_CONFIG_FILE_NAME, + source, + }); + + console.log(colors.cyan(`✨configuration file is build successfully!`)); + } catch (error) { + console.log( + colors.red( + "configuration file configuration file failed to package:\n" + error + ) + ); + } + }, + }; +} + +/** + * Get the configuration file variable name + * @param env + */ +const getVariableName = (title: string) => { + function strToHex(str: string) { + const result: string[] = []; + for (let i = 0; i < str.length; ++i) { + const hex = str.charCodeAt(i).toString(16); + result.push(("000" + hex).slice(-4)); + } + return result.join("").toUpperCase(); + } + return `__PRODUCTION__${strToHex(title) || "__APP"}__CONF__` + .toUpperCase() + .replace(/\s/g, ""); +}; +async function getConfigSource(appTitle: string) { + const config = await getEnvConfig(); + const variableName = getVariableName(appTitle); + const windowVariable = `window.${variableName}`; + // Ensure that the variable will not be modified + let source = `${windowVariable}=${JSON.stringify(config)};`; + source += ` + Object.freeze(${windowVariable}); + Object.defineProperty(window, "${variableName}", { + configurable: false, + writable: false, + }); + `.replace(/\s/g, ""); + return source; +} + +export { createAppConfigPlugin }; diff --git a/internal/vite-config/src/plugins/index.ts b/internal/vite-config/src/plugins/index.ts new file mode 100644 index 00000000..c4b82bbd --- /dev/null +++ b/internal/vite-config/src/plugins/index.ts @@ -0,0 +1,34 @@ +import { type PluginOption } from "vite"; +import react from "@vitejs/plugin-react-swc"; +import { createAppConfigPlugin } from "./appConfig"; +import { configMockPlugin } from "./mock"; + +interface Options { + isBuild: boolean; + root: string; + compress: string; + enableAnalyze?: boolean; + enableMock?: boolean; +} + +async function createPlugins({ + isBuild, + root, + compress, + enableAnalyze, + enableMock, +}: Options): Promise { + const vitePlugins: (PluginOption | PluginOption[])[] = [react()]; + + const appConfigPlugin = await createAppConfigPlugin({ + root, + isBuild, + }); + vitePlugins.push(appConfigPlugin); + if (enableMock) { + vitePlugins.push(configMockPlugin({ isBuild })); + } + return vitePlugins; +} + +export { createPlugins }; diff --git a/internal/vite-config/src/plugins/mock.ts b/internal/vite-config/src/plugins/mock.ts new file mode 100644 index 00000000..b349542e --- /dev/null +++ b/internal/vite-config/src/plugins/mock.ts @@ -0,0 +1,22 @@ +/** + * Mock plugin for development and production. + * https://github.com/anncwb/vite-plugin-mock + */ +import path from "node:path"; +import { viteMockServe } from "vite-plugin-mock"; + +export function configMockPlugin({ isBuild }: { isBuild: boolean }) { + return viteMockServe({ + mockPath: "mock", + ignore: /^_/, + localEnabled: !isBuild, + prodEnabled: isBuild, + injectCode: ` + import { setupProdMockServer } from './_createProductionServer'; + console.log(10086); + setupProdMockServer() + `, + // 当前文件夹下的src/main.ts + injectFile: path.join(__dirname, "/src/main.tsx"), + }); +} diff --git a/internal/vite-config/src/utils/env.ts b/internal/vite-config/src/utils/env.ts new file mode 100644 index 00000000..4eb473e3 --- /dev/null +++ b/internal/vite-config/src/utils/env.ts @@ -0,0 +1,48 @@ +import { join } from "node:path"; +import dotenv from "dotenv"; + +import { readFile } from "fs-extra"; +/** + * 获取当前环境下生效的配置文件名 + */ +function getConfigFiles() { + // 前正在运行的 npm 脚本的完整命令 如果运行pnpm dev,值就是vite + const script = process.env.npm_lifecycle_script as string; + const reg = new RegExp("--mode ([a-z_\\d]+)"); + const result = reg.exec(script); + if (result) { + const mode = result[1] as string; + return [".env", `.env.${mode}`]; + } + return [".env", ".env.production"]; +} + +/** + * 根据提供的匹配模式和配置文件获取环境配置。 + * + * @param {string} [match="VITE_GLOB_"] - 用于过滤环境配置键的匹配模式。 + * @param {string[]} [confFiles=getConfigFiles()] - 从中读取环境配置的配置文件。 + * @return {Promise<{ [key: string]: string }>} - 一个解析为包含环境配置的对象的 Promise。 + */ +export async function getEnvConfig( + match = "VITE_GLOB_", + confFiles = getConfigFiles() +): Promise<{ [key: string]: string }> { + let envConfig = {}; + confFiles.forEach(async (item) => { + envConfig = { + ...envConfig, + ...dotenv.parse( + await readFile(join(process.cwd(), item), { encoding: "utf8" }) + ), + }; + }); + + const reg = new RegExp(`^(${match})`); + Object.keys(envConfig).forEach((key) => { + if (!reg.test(key)) { + Reflect.deleteProperty(envConfig, key); + } + }); + return envConfig; +} diff --git a/internal/vite-config/src/utils/hash.ts b/internal/vite-config/src/utils/hash.ts new file mode 100644 index 00000000..b708a93c --- /dev/null +++ b/internal/vite-config/src/utils/hash.ts @@ -0,0 +1,16 @@ +import { createHash } from "node:crypto"; + +function createContentHash(content: string, hashLSize = 12) { + const hash = createHash("sha256").update(content); + return hash.digest("hex").slice(0, hashLSize); +} +function strToHex(str: string) { + const result: string[] = []; + for (let i = 0; i < str.length; ++i) { + const hex = str.charCodeAt(i).toString(16); + result.push(("000" + hex).slice(-4)); + } + return result.join("").toUpperCase(); +} + +export { createContentHash, strToHex }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1691400f..3f81e59c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -447,6 +447,9 @@ importers: '@ant-design/compatible': specifier: ^5.1.2 version: registry.npmmirror.com/@ant-design/compatible@5.1.2(antd@5.12.8)(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0) + '@vitejs/plugin-react-swc': + specifier: ^3.5.0 + version: registry.npmmirror.com/@vitejs/plugin-react-swc@3.5.0(vite@4.5.0) dayjs: specifier: ^1.11.10 version: registry.npmmirror.com/dayjs@1.11.10 @@ -457,12 +460,27 @@ importers: specifier: 4.5.0 version: registry.npmmirror.com/vite@4.5.0(@types/node@20.10.7) devDependencies: + '@types/fs-extra': + specifier: ^11.0.4 + version: registry.npmmirror.com/@types/fs-extra@11.0.4 antd: specifier: ^5.12.8 version: registry.npmmirror.com/antd@5.12.8(react-dom@18.2.0)(react@18.2.0) + dotenv: + specifier: ^16.3.1 + version: registry.npmmirror.com/dotenv@16.3.1 + fs-extra: + specifier: ^11.2.0 + version: registry.npmmirror.com/fs-extra@11.2.0 + picocolors: + specifier: ^1.0.0 + version: registry.npmmirror.com/picocolors@1.0.0 vite-plugin-dts: specifier: ^3.7.0 - version: registry.npmmirror.com/vite-plugin-dts@3.7.0(@types/node@20.10.7)(rollup@3.29.4)(typescript@5.3.3)(vite@4.5.0) + version: registry.npmmirror.com/vite-plugin-dts@3.7.0(@types/node@20.10.7)(rollup@2.79.1)(typescript@5.3.3)(vite@4.5.0) + vite-plugin-mock: + specifier: 2.9.6 + version: registry.npmmirror.com/vite-plugin-mock@2.9.6(mockjs@1.1.0)(rollup@2.79.1)(vite@4.5.0) packages/apis: dependencies: @@ -5240,6 +5258,24 @@ packages: picomatch: registry.npmmirror.com/picomatch@2.3.1 dev: true + registry.npmmirror.com/@rollup/pluginutils@5.1.0(rollup@2.79.1): + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz} + id: registry.npmmirror.com/@rollup/pluginutils/5.1.0 + name: '@rollup/pluginutils' + version: 5.1.0 + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 + estree-walker: registry.npmmirror.com/estree-walker@2.0.2 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + rollup: registry.npmmirror.com/rollup@2.79.1 + dev: true + registry.npmmirror.com/@rollup/pluginutils@5.1.0(rollup@3.29.4): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz} id: registry.npmmirror.com/@rollup/pluginutils/5.1.0 @@ -5828,6 +5864,17 @@ packages: deepmerge: registry.npmmirror.com/deepmerge@4.3.1 svgo: registry.npmmirror.com/svgo@2.8.0 + registry.npmmirror.com/@swc/core-darwin-arm64@1.3.102: + resolution: {integrity: sha512-CJDxA5Wd2cUMULj3bjx4GEoiYyyiyL8oIOu4Nhrs9X+tlg8DnkCm4nI57RJGP8Mf6BaXPIJkHX8yjcefK2RlDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.102.tgz} + name: '@swc/core-darwin-arm64' + version: 1.3.102 + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + registry.npmmirror.com/@swc/core-darwin-arm64@1.3.72: resolution: {integrity: sha512-oNSI5hVfZ+1xpj+dH1g4kQqA0VsGtqd8S9S+cDqkHZiOOVOevw9KN6dzVtmLOcPtlULVypVc0TVvsB55KdVZhQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.72.tgz} name: '@swc/core-darwin-arm64' @@ -5838,6 +5885,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@swc/core-darwin-x64@1.3.102: + resolution: {integrity: sha512-X5akDkHwk6oAer49oER0qZMjNMkLH3IOZaV1m98uXIasAGyjo5WH1MKPeMLY1sY6V6TrufzwiSwD4ds571ytcg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.102.tgz} + name: '@swc/core-darwin-x64' + version: 1.3.102 + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + registry.npmmirror.com/@swc/core-darwin-x64@1.3.72: resolution: {integrity: sha512-y5O/WQ1g0/VfTgeNahWIOutbdD5U2Gi703jaefdcoJo3FUx8WU108QQdbVGwGMgaqapo3iQB6Qs9paixYQAYsA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.72.tgz} name: '@swc/core-darwin-x64' @@ -5848,6 +5906,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@swc/core-linux-arm-gnueabihf@1.3.102: + resolution: {integrity: sha512-kJH3XtZP9YQdjq/wYVBeFuiVQl4HaC4WwRrIxAHwe2OyvrwUI43dpW3LpxSggBnxXcVCXYWf36sTnv8S75o2Gw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.102.tgz} + name: '@swc/core-linux-arm-gnueabihf' + version: 1.3.102 + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + registry.npmmirror.com/@swc/core-linux-arm-gnueabihf@1.3.72: resolution: {integrity: sha512-05JdWcso0OomHF+7bk5MBDgI8MZ9skcQ/4nhSv5gboSgSiuBmKM15Bg3lZ5iAUwGByNj7pGkSmmd3YwTrXEB+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.72.tgz} name: '@swc/core-linux-arm-gnueabihf' @@ -5858,6 +5927,18 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@swc/core-linux-arm64-gnu@1.3.102: + resolution: {integrity: sha512-flQP2WDyCgO24WmKA1wjjTx+xfCmavUete2Kp6yrM+631IHLGnr17eu7rYJ/d4EnDBId/ytMyrnWbTVkaVrpbQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.102.tgz} + name: '@swc/core-linux-arm64-gnu' + version: 1.3.102 + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: false + optional: true + registry.npmmirror.com/@swc/core-linux-arm64-gnu@1.3.72: resolution: {integrity: sha512-8qRELJaeYshhJgqvyOeXCKqBOpai+JYdWuouMbvvDUL85j3OcZhzR+bipexEbbJKcOCdRnoYB7Qg6mjqZ0t7VA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.72.tgz} name: '@swc/core-linux-arm64-gnu' @@ -5869,6 +5950,18 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@swc/core-linux-arm64-musl@1.3.102: + resolution: {integrity: sha512-bQEQSnC44DyoIGLw1+fNXKVGoCHi7eJOHr8BdH0y1ooy9ArskMjwobBFae3GX4T1AfnrTaejyr0FvLYIb0Zkog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.102.tgz} + name: '@swc/core-linux-arm64-musl' + version: 1.3.102 + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: false + optional: true + registry.npmmirror.com/@swc/core-linux-arm64-musl@1.3.72: resolution: {integrity: sha512-tOqAGZw+Pe7YrBHFrwFVyRiKqjgjzwYbJmY+UDxLrzWrZSVtC3eO2TPrp7kWmhirg40Og81BbdfRAl8ds48w0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.72.tgz} name: '@swc/core-linux-arm64-musl' @@ -5880,6 +5973,18 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@swc/core-linux-x64-gnu@1.3.102: + resolution: {integrity: sha512-dFvnhpI478svQSxqISMt00MKTDS0e4YtIr+ioZDG/uJ/q+RpcNy3QI2KMm05Fsc8Y0d4krVtvCKWgfUMsJZXAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.102.tgz} + name: '@swc/core-linux-x64-gnu' + version: 1.3.102 + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: false + optional: true + registry.npmmirror.com/@swc/core-linux-x64-gnu@1.3.72: resolution: {integrity: sha512-U2W2xWR3s9nplGVWz376GiBlcLTgxyYKlpZPBNZk0w3OvTcjKC62gW1Pe7PUkk4NgJUnaQDBa/mb4V4Zl+GZPA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.72.tgz} name: '@swc/core-linux-x64-gnu' @@ -5891,6 +5996,18 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@swc/core-linux-x64-musl@1.3.102: + resolution: {integrity: sha512-+a0M3CvjeIRNA/jTCzWEDh2V+mhKGvLreHOL7J97oULZy5yg4gf7h8lQX9J8t9QLbf6fsk+0F8bVH1Ie/PbXjA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.102.tgz} + name: '@swc/core-linux-x64-musl' + version: 1.3.102 + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: false + optional: true + registry.npmmirror.com/@swc/core-linux-x64-musl@1.3.72: resolution: {integrity: sha512-3+2dUiZBsifKgvnFEHWdysXjInK8K+BfPBw2tTZJmq1+fZLt0rvuErYDVMLfIJnVWLCcJMnDtTXrvkFV1y/6iA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.72.tgz} name: '@swc/core-linux-x64-musl' @@ -5902,6 +6019,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@swc/core-win32-arm64-msvc@1.3.102: + resolution: {integrity: sha512-w76JWLjkZNOfkB25nqdWUNCbt0zJ41CnWrJPZ+LxEai3zAnb2YtgB/cCIrwxDebRuMgE9EJXRj7gDDaTEAMOOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.102.tgz} + name: '@swc/core-win32-arm64-msvc' + version: 1.3.102 + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + registry.npmmirror.com/@swc/core-win32-arm64-msvc@1.3.72: resolution: {integrity: sha512-ndI8xZ2AId806D25xgqw2SFJ9gc/jhg21+5hA8XPq9ZL+oDiaYDztaP3ijVmZ1G5xXKD9DpgB7xmylv/f6o6GA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.72.tgz} name: '@swc/core-win32-arm64-msvc' @@ -5912,6 +6040,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@swc/core-win32-ia32-msvc@1.3.102: + resolution: {integrity: sha512-vlDb09HiGqKwz+2cxDS9T5/461ipUQBplvuhW+cCbzzGuPq8lll2xeyZU0N1E4Sz3MVdSPx1tJREuRvlQjrwNg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.102.tgz} + name: '@swc/core-win32-ia32-msvc' + version: 1.3.102 + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + registry.npmmirror.com/@swc/core-win32-ia32-msvc@1.3.72: resolution: {integrity: sha512-F3TK8JHP3SRFjLRlzcRVZPnvvGm2CQ5/cwbIkaEq0Dla3kyctU8SiRqvtYwWCW4JuY10cUygIg93Ec/C9Lkk4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.72.tgz} name: '@swc/core-win32-ia32-msvc' @@ -5922,6 +6061,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@swc/core-win32-x64-msvc@1.3.102: + resolution: {integrity: sha512-E/jfSD7sShllxBwwgDPeXp1UxvIqehj/ShSUqq1pjR/IDRXngcRSXKJK92mJkNFY7suH6BcCWwzrxZgkO7sWmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.102.tgz} + name: '@swc/core-win32-x64-msvc' + version: 1.3.102 + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + registry.npmmirror.com/@swc/core-win32-x64-msvc@1.3.72: resolution: {integrity: sha512-FXMnIUtLl0yEmGkw+xbUg/uUPExvUxUlLSHbX7CnbSuOIHqMHzvEd9skIueLAst4bvmJ8kT1hDyAIWQcTIAJYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.72.tgz} name: '@swc/core-win32-x64-msvc' @@ -5932,6 +6082,33 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@swc/core@1.3.102: + resolution: {integrity: sha512-OAjNLY/f6QWKSDzaM3bk31A+OYHu6cPa9P/rFIx8X5d24tHXUpRiiq6/PYI6SQRjUPlB72GjsjoEU8F+ALadHg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core/-/core-1.3.102.tgz} + name: '@swc/core' + version: 1.3.102 + engines: {node: '>=10'} + requiresBuild: true + peerDependencies: + '@swc/helpers': ^0.5.0 + peerDependenciesMeta: + '@swc/helpers': + optional: true + dependencies: + '@swc/counter': registry.npmmirror.com/@swc/counter@0.1.2 + '@swc/types': registry.npmmirror.com/@swc/types@0.1.5 + optionalDependencies: + '@swc/core-darwin-arm64': registry.npmmirror.com/@swc/core-darwin-arm64@1.3.102 + '@swc/core-darwin-x64': registry.npmmirror.com/@swc/core-darwin-x64@1.3.102 + '@swc/core-linux-arm-gnueabihf': registry.npmmirror.com/@swc/core-linux-arm-gnueabihf@1.3.102 + '@swc/core-linux-arm64-gnu': registry.npmmirror.com/@swc/core-linux-arm64-gnu@1.3.102 + '@swc/core-linux-arm64-musl': registry.npmmirror.com/@swc/core-linux-arm64-musl@1.3.102 + '@swc/core-linux-x64-gnu': registry.npmmirror.com/@swc/core-linux-x64-gnu@1.3.102 + '@swc/core-linux-x64-musl': registry.npmmirror.com/@swc/core-linux-x64-musl@1.3.102 + '@swc/core-win32-arm64-msvc': registry.npmmirror.com/@swc/core-win32-arm64-msvc@1.3.102 + '@swc/core-win32-ia32-msvc': registry.npmmirror.com/@swc/core-win32-ia32-msvc@1.3.102 + '@swc/core-win32-x64-msvc': registry.npmmirror.com/@swc/core-win32-x64-msvc@1.3.102 + dev: false + registry.npmmirror.com/@swc/core@1.3.72: resolution: {integrity: sha512-+AKjwLH3/STfPrd7CHzB9+NG1FVT0UKJMUChuWq9sQ8b9xlV8vUeRgZXgh/EHYvNQgl/OUTQKtL6xU2yOLuEuA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core/-/core-1.3.72.tgz} name: '@swc/core' @@ -5955,6 +6132,18 @@ packages: '@swc/core-win32-ia32-msvc': registry.npmmirror.com/@swc/core-win32-ia32-msvc@1.3.72 '@swc/core-win32-x64-msvc': registry.npmmirror.com/@swc/core-win32-x64-msvc@1.3.72 + registry.npmmirror.com/@swc/counter@0.1.2: + resolution: {integrity: sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/counter/-/counter-0.1.2.tgz} + name: '@swc/counter' + version: 0.1.2 + dev: false + + registry.npmmirror.com/@swc/types@0.1.5: + resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/types/-/types-0.1.5.tgz} + name: '@swc/types' + version: 0.1.5 + dev: false + registry.npmmirror.com/@transloadit/prettier-bytes@0.0.7: resolution: {integrity: sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz} name: '@transloadit/prettier-bytes' @@ -6117,6 +6306,15 @@ packages: '@types/jsonfile': registry.npmmirror.com/@types/jsonfile@6.1.4 '@types/node': registry.npmmirror.com/@types/node@20.10.7 + registry.npmmirror.com/@types/fs-extra@11.0.4: + resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/fs-extra/-/fs-extra-11.0.4.tgz} + name: '@types/fs-extra' + version: 11.0.4 + dependencies: + '@types/jsonfile': registry.npmmirror.com/@types/jsonfile@6.1.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.7 + dev: true + registry.npmmirror.com/@types/graceful-fs@4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz} name: '@types/graceful-fs' @@ -7331,6 +7529,20 @@ packages: hasBin: true dev: true + registry.npmmirror.com/@vitejs/plugin-react-swc@3.5.0(vite@4.5.0): + resolution: {integrity: sha512-1PrOvAaDpqlCV+Up8RkAh9qaiUjoDUcjtttyhXDKw53XA6Ve16SOp6cCOpRs8Dj8DqUQs6eTW5YkLcLJjrXAig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vitejs/plugin-react-swc/-/plugin-react-swc-3.5.0.tgz} + id: registry.npmmirror.com/@vitejs/plugin-react-swc/3.5.0 + name: '@vitejs/plugin-react-swc' + version: 3.5.0 + peerDependencies: + vite: ^4 || ^5 + dependencies: + '@swc/core': registry.npmmirror.com/@swc/core@1.3.102 + vite: registry.npmmirror.com/vite@4.5.0(@types/node@20.10.7) + transitivePeerDependencies: + - '@swc/helpers' + dev: false + registry.npmmirror.com/@vitejs/plugin-react@4.0.0(vite@4.3.1): resolution: {integrity: sha512-HX0XzMjL3hhOYm+0s95pb0Z7F8O81G7joUHgfDd/9J/ZZf5k4xX6QAMFkKsHFxaHlf6X7GD7+XuaZ66ULiJuhQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vitejs/plugin-react/-/plugin-react-4.0.0.tgz} id: registry.npmmirror.com/@vitejs/plugin-react/4.0.0 @@ -11402,6 +11614,13 @@ packages: is-obj: registry.npmmirror.com/is-obj@2.0.0 dev: true + registry.npmmirror.com/dotenv@16.3.1: + resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dotenv/-/dotenv-16.3.1.tgz} + name: dotenv + version: 16.3.1 + engines: {node: '>=12'} + dev: true + registry.npmmirror.com/dumi-afx-deps@1.0.0-alpha.20: resolution: {integrity: sha512-PRSJlHuJkyHDET7Hukykx/hLULkgUBX5q2CutMG5EDI3eJLzJlX634wNll10m3at1uomcDAVudL7Dgh5UOJ7IQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dumi-afx-deps/-/dumi-afx-deps-1.0.0-alpha.20.tgz} name: dumi-afx-deps @@ -25408,7 +25627,7 @@ packages: redux: registry.npmmirror.com/redux@4.2.1 dev: false - registry.npmmirror.com/vite-plugin-dts@3.7.0(@types/node@20.10.7)(rollup@3.29.4)(typescript@5.3.3)(vite@4.5.0): + registry.npmmirror.com/vite-plugin-dts@3.7.0(@types/node@20.10.7)(rollup@2.79.1)(typescript@5.3.3)(vite@4.5.0): resolution: {integrity: sha512-np1uPaYzu98AtPReB8zkMnbjwcNHOABsLhqVOf81b3ol9b5M2wPcAVs8oqPnOpr6Us+7yDXVauwkxsk5+ldmRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-plugin-dts/-/vite-plugin-dts-3.7.0.tgz} id: registry.npmmirror.com/vite-plugin-dts/3.7.0 name: vite-plugin-dts @@ -25422,7 +25641,7 @@ packages: optional: true dependencies: '@microsoft/api-extractor': registry.npmmirror.com/@microsoft/api-extractor@7.39.0(@types/node@20.10.7) - '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils@5.1.0(rollup@3.29.4) + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils@5.1.0(rollup@2.79.1) '@vue/language-core': registry.npmmirror.com/@vue/language-core@1.8.27(typescript@5.3.3) debug: registry.npmmirror.com/debug@4.3.4 kolorist: registry.npmmirror.com/kolorist@1.8.0 @@ -25451,6 +25670,32 @@ packages: vite: registry.npmmirror.com/vite@4.5.0(@types/node@20.10.4)(less@4.2.0)(terser@5.26.0) dev: true + registry.npmmirror.com/vite-plugin-mock@2.9.6(mockjs@1.1.0)(rollup@2.79.1)(vite@4.5.0): + resolution: {integrity: sha512-/Rm59oPppe/ncbkSrUuAxIQihlI2YcBmnbR4ST1RA2VzM1C0tEQc1KlbQvnUGhXECAGTaQN2JyasiwXP6EtKgg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-plugin-mock/-/vite-plugin-mock-2.9.6.tgz} + id: registry.npmmirror.com/vite-plugin-mock/2.9.6 + name: vite-plugin-mock + version: 2.9.6 + engines: {node: '>=12.0.0'} + peerDependencies: + mockjs: '>=1.1.0' + vite: '>=2.0.0' + dependencies: + '@rollup/plugin-node-resolve': registry.npmmirror.com/@rollup/plugin-node-resolve@13.3.0(rollup@2.79.1) + '@types/mockjs': registry.npmmirror.com/@types/mockjs@1.0.10 + chalk: registry.npmmirror.com/chalk@4.1.2 + chokidar: registry.npmmirror.com/chokidar@3.5.3 + connect: registry.npmmirror.com/connect@3.7.0 + debug: registry.npmmirror.com/debug@4.3.4 + esbuild: registry.npmmirror.com/esbuild@0.11.3 + fast-glob: registry.npmmirror.com/fast-glob@3.3.2 + mockjs: registry.npmmirror.com/mockjs@1.1.0 + path-to-regexp: registry.npmmirror.com/path-to-regexp@6.2.1 + vite: registry.npmmirror.com/vite@4.5.0(@types/node@20.10.7) + transitivePeerDependencies: + - rollup + - supports-color + dev: true + registry.npmmirror.com/vite-plugin-mock@2.9.6(mockjs@1.1.0)(rollup@2.79.1)(vite@5.0.11): resolution: {integrity: sha512-/Rm59oPppe/ncbkSrUuAxIQihlI2YcBmnbR4ST1RA2VzM1C0tEQc1KlbQvnUGhXECAGTaQN2JyasiwXP6EtKgg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-plugin-mock/-/vite-plugin-mock-2.9.6.tgz} id: registry.npmmirror.com/vite-plugin-mock/2.9.6 From 2161c7fa9258aa63c0bd74a66bcb16d737783411 Mon Sep 17 00:00:00 2001 From: G Date: Tue, 9 Jan 2024 16:57:12 +0800 Subject: [PATCH 19/26] =?UTF-8?q?build:=20:package:=20=E6=96=B0=E5=A2=9Esv?= =?UTF-8?q?gSprite=E6=8F=92=E4=BB=B6=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/.env.development | 4 +++- apps/admin/.env.production | 4 +++- internal/vite-config/package.json | 3 ++- internal/vite-config/src/config/application.ts | 12 ++++++++++++ internal/vite-config/src/index.ts | 2 ++ internal/vite-config/src/plugins/index.ts | 5 +++++ internal/vite-config/src/plugins/svgSprite.ts | 18 ++++++++++++++++++ pnpm-lock.yaml | 5 ++++- 8 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 internal/vite-config/src/plugins/svgSprite.ts diff --git a/apps/admin/.env.development b/apps/admin/.env.development index 9452b241..b62c53e7 100644 --- a/apps/admin/.env.development +++ b/apps/admin/.env.development @@ -2,4 +2,6 @@ VITE_APP_BASE_API: VITE_APP_BASE_URL: './' -VITE_PORT: 3100 \ No newline at end of file +VITE_PORT: 3100 + +VITE_USE_MOCK: true \ No newline at end of file diff --git a/apps/admin/.env.production b/apps/admin/.env.production index d4232508..e0953bca 100644 --- a/apps/admin/.env.production +++ b/apps/admin/.env.production @@ -1,3 +1,5 @@ VITE_APP_BASE_API: -VITE_APP_BASE_URL: '/react-antd-admin-pnpm/' \ No newline at end of file +VITE_APP_BASE_URL: '/react-antd-admin-pnpm/' + +VITE_USE_MOCK: true \ No newline at end of file diff --git a/internal/vite-config/package.json b/internal/vite-config/package.json index ecc519ca..72ca2a4a 100644 --- a/internal/vite-config/package.json +++ b/internal/vite-config/package.json @@ -52,6 +52,7 @@ "fs-extra": "^11.2.0", "picocolors": "^1.0.0", "vite-plugin-dts": "^3.7.0", - "vite-plugin-mock": "2.9.6" + "vite-plugin-mock": "2.9.6", + "vite-plugin-svg-icons": "^2.0.1" } } diff --git a/internal/vite-config/src/config/application.ts b/internal/vite-config/src/config/application.ts index be1e3c42..3e82ed5f 100644 --- a/internal/vite-config/src/config/application.ts +++ b/internal/vite-config/src/config/application.ts @@ -5,6 +5,7 @@ import { readPackageJSON } from "pkg-types"; import { defineConfig, loadEnv, mergeConfig, type UserConfig } from "vite"; import { generateModifyVars } from "../utils/modifyVars"; import { commonConfig } from "./common"; +import { createPlugins } from "../plugins"; interface DefineOptions { overrides?: UserConfig; options?: {}; @@ -24,6 +25,14 @@ function defineApplicationConfig(options: DefineOptions = {}) { } = loadEnv(mode, root); const defineData = await createDefineData(root); + const plugins = await createPlugins({ + isBuild, + root, + enableAnalyze: VITE_ENABLE_ANALYZE === "true", + enableMock: VITE_USE_MOCK === "true", + compress: VITE_BUILD_COMPRESS, + }); + const pathResolve = (path: string) => { return resolve(root, path); }; @@ -46,6 +55,7 @@ function defineApplicationConfig(options: DefineOptions = {}) { build: { target: "es2015", cssTarget: "chrome80", + minify: "esbuild", rollupOptions: { output: { entryFileNames: `assets/entry/[name]-[hash].${timestamp}.js`, @@ -57,6 +67,7 @@ function defineApplicationConfig(options: DefineOptions = {}) { }, }, }, + css: { preprocessorOptions: { less: { @@ -65,6 +76,7 @@ function defineApplicationConfig(options: DefineOptions = {}) { }, }, }, + plugins, }; const mergedConfig = mergeConfig(commonConfig(mode), applicationConfig); diff --git a/internal/vite-config/src/index.ts b/internal/vite-config/src/index.ts index e69de29b..2055d1fe 100644 --- a/internal/vite-config/src/index.ts +++ b/internal/vite-config/src/index.ts @@ -0,0 +1,2 @@ +export * from "./config/application"; +export * from "./config/package"; diff --git a/internal/vite-config/src/plugins/index.ts b/internal/vite-config/src/plugins/index.ts index c4b82bbd..3ca4677d 100644 --- a/internal/vite-config/src/plugins/index.ts +++ b/internal/vite-config/src/plugins/index.ts @@ -2,6 +2,7 @@ import { type PluginOption } from "vite"; import react from "@vitejs/plugin-react-swc"; import { createAppConfigPlugin } from "./appConfig"; import { configMockPlugin } from "./mock"; +import { configSvgIconsPlugin } from "./svgSprite"; interface Options { isBuild: boolean; @@ -25,6 +26,10 @@ async function createPlugins({ isBuild, }); vitePlugins.push(appConfigPlugin); + + // vite-plugin-svg-icons + vitePlugins.push(configSvgIconsPlugin({ isBuild })); + if (enableMock) { vitePlugins.push(configMockPlugin({ isBuild })); } diff --git a/internal/vite-config/src/plugins/svgSprite.ts b/internal/vite-config/src/plugins/svgSprite.ts new file mode 100644 index 00000000..2eebb877 --- /dev/null +++ b/internal/vite-config/src/plugins/svgSprite.ts @@ -0,0 +1,18 @@ +/** + * Vite Plugin for fast creating SVG sprites. + * https://github.com/anncwb/vite-plugin-svg-icons + */ + +import { resolve } from "node:path"; + +import type { PluginOption } from "vite"; +import { createSvgIconsPlugin } from "vite-plugin-svg-icons"; + +export function configSvgIconsPlugin({ isBuild }: { isBuild: boolean }) { + const svgIconsPlugin = createSvgIconsPlugin({ + iconDirs: [resolve(process.cwd(), "src/assets/icons")], + symbolId: "icon-[dir]-[name]", + svgoOptions: isBuild, + }); + return svgIconsPlugin as PluginOption; +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3f81e59c..1933e7c7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -481,6 +481,9 @@ importers: vite-plugin-mock: specifier: 2.9.6 version: registry.npmmirror.com/vite-plugin-mock@2.9.6(mockjs@1.1.0)(rollup@2.79.1)(vite@4.5.0) + vite-plugin-svg-icons: + specifier: ^2.0.1 + version: registry.npmmirror.com/vite-plugin-svg-icons@2.0.1(vite@4.5.0) packages/apis: dependencies: @@ -25764,7 +25767,7 @@ packages: pathe: registry.npmmirror.com/pathe@0.2.0 svg-baker: registry.npmmirror.com/svg-baker@1.7.0 svgo: registry.npmmirror.com/svgo@2.8.0 - vite: registry.npmmirror.com/vite@4.5.0(@types/node@20.10.4)(less@4.2.0)(terser@5.26.0) + vite: registry.npmmirror.com/vite@4.5.0(@types/node@20.10.7) transitivePeerDependencies: - supports-color dev: true From c767e64cc3562f6e9a9dee89f540fb08cb1db81f Mon Sep 17 00:00:00 2001 From: G Date: Tue, 9 Jan 2024 18:14:13 +0800 Subject: [PATCH 20/26] =?UTF-8?q?build:=20:package:=20admin=20vite?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=9B=BF=E6=8D=A2=E4=BB=8E@gbeata/vite-confi?= =?UTF-8?q?g=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/old.vite.config.ts | 88 +++++++++++++++++++ apps/admin/package.json | 1 + apps/admin/tsconfig.json | 11 +-- apps/admin/vite.config.ts | 80 ++--------------- internal/vite-config/eslint.cjs | 2 +- .../vite-config/src/config/application.ts | 16 ++-- pnpm-lock.yaml | 5 +- 7 files changed, 109 insertions(+), 94 deletions(-) create mode 100644 apps/admin/old.vite.config.ts diff --git a/apps/admin/old.vite.config.ts b/apps/admin/old.vite.config.ts new file mode 100644 index 00000000..ba2f72f1 --- /dev/null +++ b/apps/admin/old.vite.config.ts @@ -0,0 +1,88 @@ +/* eslint-disable no-useless-escape */ +/* eslint-disable import/no-extraneous-dependencies */ +import react from '@vitejs/plugin-react'; +// 需要安装 @typings/node 插件 +// import { resolve } from 'path'; +import path, { resolve } from 'path'; +import { loadEnv } from 'vite'; +import { viteMockServe } from 'vite-plugin-mock'; +import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'; + +import { wrapperEnv } from './build/utils'; + +import type { ConfigEnv, UserConfig } from 'vite'; + +/** @type {import('vite').UserConfig} */ +export default ({ command, mode }: ConfigEnv): UserConfig => { + const root = process.cwd(); + const isBuild = command === 'build'; + + const env = loadEnv(mode, root); + + // this function can be converted to different typings + const viteEnv: any = wrapperEnv(env); + const { VITE_PORT, VITE_DROP_CONSOLE, VITE_APP_BASE_URL } = viteEnv; + + return { + base: VITE_APP_BASE_URL, + server: { + // Listening on all local ips + host: true, + port: VITE_PORT, + proxy: { + '/repos': { + target: 'https://api.github.com', + changeOrigin: true, + secure: true, + rewrite: (pt) => pt.replace(/^\/repos/, ''), + }, + '/content_api': { + target: 'https://api.juejin.cn', + changeOrigin: true, + secure: true, + }, + }, + }, + plugins: [ + react(), + createSvgIconsPlugin({ + iconDirs: [resolve(process.cwd(), 'src/assets/icons')], + symbolId: 'icon-[dir]-[name]', + }), + viteMockServe({ + mockPath: 'mock', + ignore: /^_/, + localEnabled: !isBuild, + prodEnabled: isBuild, + injectCode: ` + import { setupProdMockServer } from './_createProductionServer'; + console.log(10086); + setupProdMockServer() + `, + // 当前文件夹下的src/main.ts + injectFile: path.join(__dirname, '/src/main.tsx'), + }), + ], + + build: { + target: 'es2015', + cssTarget: 'chrome86', + minify: 'esbuild', + outDir: '../../gbeata-dist', + terserOptions: { + compress: { + keep_infinity: true, + // used to delete console and debugger in production environment + drop_console: VITE_DROP_CONSOLE, + }, + }, + chunkSizeWarningLimit: 2000, + }, + + resolve: { + alias: { + '@': resolve(__dirname, './src'), + }, + }, + }; +}; diff --git a/apps/admin/package.json b/apps/admin/package.json index d23679f8..fd501eca 100644 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -60,6 +60,7 @@ "@babel/core": "^7.23.3", "@commitlint/cli": "^18.4.3", "@commitlint/config-conventional": "^18.4.3", + "@gbeata/vite-config": "workspace:^", "@types/crypto-js": "^4.2.1", "@types/dom-to-image": "^2.6.7", "@types/file-saver": "^2.0.7", diff --git a/apps/admin/tsconfig.json b/apps/admin/tsconfig.json index 4c56e434..60ea3a47 100644 --- a/apps/admin/tsconfig.json +++ b/apps/admin/tsconfig.json @@ -20,10 +20,7 @@ "@/*": ["src/*"], "#/*": ["types/*"] }, - "types": [ - "vite/client", - "vite-plugin-svg-icons/client" - ] + "types": ["vite/client", "vite-plugin-svg-icons/client"] }, "include": [ "src/**/*.ts", @@ -37,9 +34,5 @@ "mock/*.ts", "vite.config.ts" ], - "exclude": [ - "node_modules", - "dist", - "**/*.js" - ] + "exclude": ["node_modules", "dist", "**/*.js"] } diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index ba2f72f1..ebf3ba89 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -1,41 +1,12 @@ -/* eslint-disable no-useless-escape */ /* eslint-disable import/no-extraneous-dependencies */ -import react from '@vitejs/plugin-react'; -// 需要安装 @typings/node 插件 -// import { resolve } from 'path'; -import path, { resolve } from 'path'; -import { loadEnv } from 'vite'; -import { viteMockServe } from 'vite-plugin-mock'; -import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'; +import { defineApplicationConfig } from '@gbeata/vite-config'; -import { wrapperEnv } from './build/utils'; - -import type { ConfigEnv, UserConfig } from 'vite'; - -/** @type {import('vite').UserConfig} */ -export default ({ command, mode }: ConfigEnv): UserConfig => { - const root = process.cwd(); - const isBuild = command === 'build'; - - const env = loadEnv(mode, root); - - // this function can be converted to different typings - const viteEnv: any = wrapperEnv(env); - const { VITE_PORT, VITE_DROP_CONSOLE, VITE_APP_BASE_URL } = viteEnv; - - return { - base: VITE_APP_BASE_URL, +export default defineApplicationConfig({ + overrides: { server: { // Listening on all local ips host: true, - port: VITE_PORT, proxy: { - '/repos': { - target: 'https://api.github.com', - changeOrigin: true, - secure: true, - rewrite: (pt) => pt.replace(/^\/repos/, ''), - }, '/content_api': { target: 'https://api.juejin.cn', changeOrigin: true, @@ -43,46 +14,5 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { }, }, }, - plugins: [ - react(), - createSvgIconsPlugin({ - iconDirs: [resolve(process.cwd(), 'src/assets/icons')], - symbolId: 'icon-[dir]-[name]', - }), - viteMockServe({ - mockPath: 'mock', - ignore: /^_/, - localEnabled: !isBuild, - prodEnabled: isBuild, - injectCode: ` - import { setupProdMockServer } from './_createProductionServer'; - console.log(10086); - setupProdMockServer() - `, - // 当前文件夹下的src/main.ts - injectFile: path.join(__dirname, '/src/main.tsx'), - }), - ], - - build: { - target: 'es2015', - cssTarget: 'chrome86', - minify: 'esbuild', - outDir: '../../gbeata-dist', - terserOptions: { - compress: { - keep_infinity: true, - // used to delete console and debugger in production environment - drop_console: VITE_DROP_CONSOLE, - }, - }, - chunkSizeWarningLimit: 2000, - }, - - resolve: { - alias: { - '@': resolve(__dirname, './src'), - }, - }, - }; -}; + }, +}); diff --git a/internal/vite-config/eslint.cjs b/internal/vite-config/eslint.cjs index 17c26632..2a9c0791 100644 --- a/internal/vite-config/eslint.cjs +++ b/internal/vite-config/eslint.cjs @@ -1,4 +1,4 @@ module.exports = { root: true, - extends: ["@vben/eslint-config/strict"], + extends: ["@gbeata/eslint-config/strict"], }; diff --git a/internal/vite-config/src/config/application.ts b/internal/vite-config/src/config/application.ts index 3e82ed5f..c7247fb0 100644 --- a/internal/vite-config/src/config/application.ts +++ b/internal/vite-config/src/config/application.ts @@ -68,14 +68,14 @@ function defineApplicationConfig(options: DefineOptions = {}) { }, }, - css: { - preprocessorOptions: { - less: { - javascriptEnabled: true, - modifyVars: generateModifyVars(), - }, - }, - }, + // css: { + // preprocessorOptions: { + // less: { + // javascriptEnabled: true, + // modifyVars: generateModifyVars(), + // }, + // }, + // }, plugins, }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1933e7c7..db8cf429 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -232,6 +232,9 @@ importers: '@commitlint/config-conventional': specifier: ^18.4.3 version: registry.npmmirror.com/@commitlint/config-conventional@18.4.3 + '@gbeata/vite-config': + specifier: workspace:^ + version: link:../../internal/vite-config '@types/crypto-js': specifier: ^4.2.1 version: registry.npmmirror.com/@types/crypto-js@4.2.1 @@ -25767,7 +25770,7 @@ packages: pathe: registry.npmmirror.com/pathe@0.2.0 svg-baker: registry.npmmirror.com/svg-baker@1.7.0 svgo: registry.npmmirror.com/svgo@2.8.0 - vite: registry.npmmirror.com/vite@4.5.0(@types/node@20.10.7) + vite: registry.npmmirror.com/vite@4.5.0(@types/node@20.10.4)(less@4.2.0)(terser@5.26.0) transitivePeerDependencies: - supports-color dev: true From 514140f906306864c04dd873d5b5ea837f7e1e02 Mon Sep 17 00:00:00 2001 From: G Date: Tue, 9 Jan 2024 23:34:10 +0800 Subject: [PATCH 21/26] =?UTF-8?q?ci:=20:ferris=5Fwheel:=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9application=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gh-page.yml | 2 +- .gitignore | 3 ++- apps/admin/.env.development | 2 +- apps/admin/.env.production | 2 +- internal/vite-config/package.json | 2 +- .../vite-config/src/config/application.ts | 19 +++++++++++-------- internal/vite-config/src/utils/modifyVars.ts | 2 +- 7 files changed, 18 insertions(+), 14 deletions(-) diff --git a/.github/workflows/gh-page.yml b/.github/workflows/gh-page.yml index bc90c746..5c54b24a 100644 --- a/.github/workflows/gh-page.yml +++ b/.github/workflows/gh-page.yml @@ -42,7 +42,7 @@ jobs: uses: JamesIves/github-pages-deploy-action@v4.2.2 # 使用插件 => https://github.com/JamesIves/github-pages-deploy-action with: BRANCH: gh-pages # 部署分支 - FOLDER: gbeata-dist # 打包, 静态资源输出的目录 + FOLDER: gbeata-admin # 打包, 静态资源输出的目录 - name: Release env: diff --git a/.gitignore b/.gitignore index 43e92717..497d5cb8 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,5 @@ server/dist public/dist es lib -gbeata-dist \ No newline at end of file +gbeata-dist +gbeata-* \ No newline at end of file diff --git a/apps/admin/.env.development b/apps/admin/.env.development index b62c53e7..fed2b164 100644 --- a/apps/admin/.env.development +++ b/apps/admin/.env.development @@ -1,6 +1,6 @@ VITE_APP_BASE_API: -VITE_APP_BASE_URL: './' +VITE_PUBLIC_PATH: './' VITE_PORT: 3100 diff --git a/apps/admin/.env.production b/apps/admin/.env.production index e0953bca..556070c7 100644 --- a/apps/admin/.env.production +++ b/apps/admin/.env.production @@ -1,5 +1,5 @@ VITE_APP_BASE_API: -VITE_APP_BASE_URL: '/react-antd-admin-pnpm/' +VITE_PUBLIC_PATH: '/react-antd-admin-pnpm/' VITE_USE_MOCK: true \ No newline at end of file diff --git a/internal/vite-config/package.json b/internal/vite-config/package.json index 72ca2a4a..83d2c558 100644 --- a/internal/vite-config/package.json +++ b/internal/vite-config/package.json @@ -18,7 +18,7 @@ "scripts": { "clean": "pnpm rimraf .turbo node_modules dist", "lint": "pnpm eslint .", - "stub": "pnpm unbuild --stub" + "build": "pnpm unbuild --stub" }, "files": [ "dist" diff --git a/internal/vite-config/src/config/application.ts b/internal/vite-config/src/config/application.ts index c7247fb0..f9d9a85f 100644 --- a/internal/vite-config/src/config/application.ts +++ b/internal/vite-config/src/config/application.ts @@ -16,6 +16,7 @@ function defineApplicationConfig(options: DefineOptions = {}) { return defineConfig(async ({ command, mode }) => { const root = process.cwd(); + const { TURBO_INVOCATION_DIR } = process.env; const isBuild = command === "build"; const { VITE_PUBLIC_PATH, @@ -56,6 +57,7 @@ function defineApplicationConfig(options: DefineOptions = {}) { target: "es2015", cssTarget: "chrome80", minify: "esbuild", + outDir: TURBO_INVOCATION_DIR + "/" + defineData?.pkg?.name ?? "dist", rollupOptions: { output: { entryFileNames: `assets/entry/[name]-[hash].${timestamp}.js`, @@ -68,14 +70,14 @@ function defineApplicationConfig(options: DefineOptions = {}) { }, }, - // css: { - // preprocessorOptions: { - // less: { - // javascriptEnabled: true, - // modifyVars: generateModifyVars(), - // }, - // }, - // }, + css: { + preprocessorOptions: { + less: { + javascriptEnabled: true, + modifyVars: generateModifyVars(), + }, + }, + }, plugins, }; @@ -94,6 +96,7 @@ async function createDefineData(root: string) { }; return { __APP_INFO__: JSON.stringify(__APP_INFO__), + pkg, }; } catch (error) { return {}; diff --git a/internal/vite-config/src/utils/modifyVars.ts b/internal/vite-config/src/utils/modifyVars.ts index cbe01f22..eeb24f32 100644 --- a/internal/vite-config/src/utils/modifyVars.ts +++ b/internal/vite-config/src/utils/modifyVars.ts @@ -35,7 +35,7 @@ export function generateModifyVars() { return { ...v3Token, // reference: Avoid repeated references - hack: `true; @import (reference) "${resolve("src/design/config.less")}";`, + // hack: `true; @import (reference) "${resolve("src/design/config.less")}";`, "primary-color": primary, ...primaryColorObj, "info-color": primary, From 81c5a02f1385317e4d0b1d9d1e5e2bdceef2754f Mon Sep 17 00:00:00 2001 From: G Date: Tue, 9 Jan 2024 23:43:14 +0800 Subject: [PATCH 22/26] =?UTF-8?q?feat:=20:sparkles:=20=E8=AE=BE=E7=BD=AE.e?= =?UTF-8?q?nv?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 - apps/admin/.env | 9 +++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 apps/admin/.env diff --git a/.gitignore b/.gitignore index 497d5cb8..af22d2ab 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,6 @@ node_modules dist dist-ssr *.local -.env .cache server/dist public/dist diff --git a/apps/admin/.env b/apps/admin/.env new file mode 100644 index 00000000..956b94b0 --- /dev/null +++ b/apps/admin/.env @@ -0,0 +1,9 @@ +VITE_GLOB_APP_TITLE = 'react-antd-admin-pnpm' + +VITE_PORT = 8201 + +VITE_BUILD_GZIP = false + +VITE_DROP_CONSOLE = true + +VITE_GLOB_APP_TITLE = 'Gbeata Admin' \ No newline at end of file From e35bd3833d194572513f4f4b5049af5a97a1fd71 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 10 Jan 2024 10:04:32 +0800 Subject: [PATCH 23/26] =?UTF-8?q?test:=20:white=5Fcheck=5Fmark:=20?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=94=9F=E6=88=90mock=E5=A4=B1=E6=95=88?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/vite-config/src/plugins/mock.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/vite-config/src/plugins/mock.ts b/internal/vite-config/src/plugins/mock.ts index b349542e..5067c2cf 100644 --- a/internal/vite-config/src/plugins/mock.ts +++ b/internal/vite-config/src/plugins/mock.ts @@ -6,6 +6,8 @@ import path from "node:path"; import { viteMockServe } from "vite-plugin-mock"; export function configMockPlugin({ isBuild }: { isBuild: boolean }) { + console.log("目标路径", __dirname, isBuild); + return viteMockServe({ mockPath: "mock", ignore: /^_/, @@ -13,7 +15,6 @@ export function configMockPlugin({ isBuild }: { isBuild: boolean }) { prodEnabled: isBuild, injectCode: ` import { setupProdMockServer } from './_createProductionServer'; - console.log(10086); setupProdMockServer() `, // 当前文件夹下的src/main.ts From bc6b6cf74f0e9fc1a244c06e1c9435e80cb2ea53 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 10 Jan 2024 10:13:45 +0800 Subject: [PATCH 24/26] =?UTF-8?q?test:=20:white=5Fcheck=5Fmark:=20?= =?UTF-8?q?=E6=B5=8B=E8=AF=95mock=E6=8F=92=E5=85=A5=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/vite-config/src/plugins/index.ts | 2 +- internal/vite-config/src/plugins/mock.ts | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/internal/vite-config/src/plugins/index.ts b/internal/vite-config/src/plugins/index.ts index 3ca4677d..24abd13b 100644 --- a/internal/vite-config/src/plugins/index.ts +++ b/internal/vite-config/src/plugins/index.ts @@ -31,7 +31,7 @@ async function createPlugins({ vitePlugins.push(configSvgIconsPlugin({ isBuild })); if (enableMock) { - vitePlugins.push(configMockPlugin({ isBuild })); + vitePlugins.push(configMockPlugin({ isBuild, root })); } return vitePlugins; } diff --git a/internal/vite-config/src/plugins/mock.ts b/internal/vite-config/src/plugins/mock.ts index 5067c2cf..62eb3ecd 100644 --- a/internal/vite-config/src/plugins/mock.ts +++ b/internal/vite-config/src/plugins/mock.ts @@ -5,8 +5,14 @@ import path from "node:path"; import { viteMockServe } from "vite-plugin-mock"; -export function configMockPlugin({ isBuild }: { isBuild: boolean }) { - console.log("目标路径", __dirname, isBuild); +export function configMockPlugin({ + isBuild, + root, +}: { + isBuild: boolean; + root: string; +}) { + console.log("目标路径", __dirname, isBuild, root); return viteMockServe({ mockPath: "mock", @@ -18,6 +24,6 @@ export function configMockPlugin({ isBuild }: { isBuild: boolean }) { setupProdMockServer() `, // 当前文件夹下的src/main.ts - injectFile: path.join(__dirname, "/src/main.tsx"), + injectFile: path.join(root, "/src/main.tsx"), }); } From 9733845a35cbdd89654c647a94512491840023f1 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 10 Jan 2024 14:14:40 +0800 Subject: [PATCH 25/26] =?UTF-8?q?feat:=20:sparkles:=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/views/compo/image-upload.tsx | 34 +++++------ apps/admin/src/views/user/addUser/index.tsx | 64 +++++++++++++++++++-- apps/admin/src/views/user/addUser/style.ts | 3 + apps/admin/src/views/user/list/index.tsx | 9 ++- packages/gbeata/package.json | 2 +- 5 files changed, 87 insertions(+), 25 deletions(-) diff --git a/apps/admin/src/views/compo/image-upload.tsx b/apps/admin/src/views/compo/image-upload.tsx index 86f1b97e..a5302f05 100644 --- a/apps/admin/src/views/compo/image-upload.tsx +++ b/apps/admin/src/views/compo/image-upload.tsx @@ -1,7 +1,5 @@ import { CloudUploadOutlined, PlusOutlined } from '@ant-design/icons'; -import { - Button, Card, Col, Modal, Row, Upload, -} from 'antd'; +import { Button, Card, Col, Modal, Row, Upload } from 'antd'; import React, { useState } from 'react'; import { PageWrapper } from '@/components/Page'; @@ -48,12 +46,13 @@ const ImageUpload: React.FC = () => { setPreviewTitle(file.name || file.url!.substring(file.url!.lastIndexOf('/') + 1)); }; - const getBase64 = (file: RcFile): Promise => new Promise((resolve, reject) => { - const reader = new FileReader(); - reader.readAsDataURL(file); - reader.onload = () => resolve(reader.result as string); - reader.onerror = (error) => reject(error); - }); + const getBase64 = (file: RcFile): Promise => + new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.readAsDataURL(file); + reader.onload = () => resolve(reader.result as string); + reader.onerror = (error) => reject(error); + }); const handleChange: UploadProps['onChange'] = ({ fileList: newFileList }) => setListImgs(newFileList); @@ -73,11 +72,13 @@ const ImageUpload: React.FC = () => { accept='.jpg, .jpeg, .gif, .png, .bmp' multiple > -

+

-

将图片拖到此处, 或点击上传

-

只能上传jpg、jpeg、gif、png、bmp文件, 且不超过500kb

+

+ 将图片拖到此处, 或点击上传 +

+

只能上传jpg、jpeg、gif、png、bmp文件, 且不超过500kb

@@ -94,7 +95,7 @@ const ImageUpload: React.FC = () => { 点击上传 -

只能上传jpg、jpeg、gif、png、bmp文件, 且不超过500kb

+

只能上传jpg、jpeg、gif、png、bmp文件, 且不超过500kb

@@ -115,12 +116,7 @@ const ImageUpload: React.FC = () => {
- + diff --git a/apps/admin/src/views/user/addUser/index.tsx b/apps/admin/src/views/user/addUser/index.tsx index fb5858f0..597ba17a 100644 --- a/apps/admin/src/views/user/addUser/index.tsx +++ b/apps/admin/src/views/user/addUser/index.tsx @@ -1,17 +1,63 @@ -import { Card, Col, Flex, Row, Upload } from 'antd'; +import { Card, Col, Flex, Row, Tag, Upload } from 'antd'; +import { GButton, GForm } from 'gbeata'; +import { useNavigate } from 'react-router-dom'; import { SvgIcon, Translatex } from 'ui'; import useStyles from './style'; +import type { FormValues } from 'gbeata/lib/types/FormValues'; import type { FC } from 'react'; interface PAddUser { onAdd?: (user: any) => void; } -const AddUser: FC = ({ onAdd = () => {} }) => { +const AddUser: FC = () => { + const navigate = useNavigate(); const { Dragger } = Upload; const { styles } = useStyles(); + const fields = [ + { + title: '全名', + key: 'input', + required: true, + defaultValue: 'Gbeata', + }, + { + title: '密码', + type: 'password', + key: 'password', + defaultValue: 'gbeata', + }, + { + title: '城市', + type: 'select', + key: 'select', + defaultValue: 1, + options: [ + { label: 选项A, value: 1 }, + { label: '选项2', value: 2 }, + ], + }, + { + title: '电话号码', + key: 'number', + required: true, + defaultValue: 15305999999, + }, + { + title: '地址', + type: 'textarea', + key: 'textarea', + defaultValue: '广东省深圳市南山区科技园', + span: 24, + }, + ]; + + const onFinish = (form: FormValues) => { + console.log(form); + navigate('/user/user-list'); + }; return ( @@ -31,13 +77,23 @@ const AddUser: FC = ({ onAdd = () => {} }) => {

- 将图片拖到此处, 或点击上传 + 将图片拖到此处, 或点击上传

只能上传jpg、jpeg、gif、png、bmp文件, 且不超过500kb

- 2 + + + + + + 创建用户 + + + + + ); diff --git a/apps/admin/src/views/user/addUser/style.ts b/apps/admin/src/views/user/addUser/style.ts index 6b6f0732..d13af7cd 100644 --- a/apps/admin/src/views/user/addUser/style.ts +++ b/apps/admin/src/views/user/addUser/style.ts @@ -45,6 +45,9 @@ const useStyles = createStyles(({ token }) => ({ borderRadius: token.borderRadiusLG, }, }, + 'btn-submit': { + width: '100%', + }, })); export default useStyles; diff --git a/apps/admin/src/views/user/list/index.tsx b/apps/admin/src/views/user/list/index.tsx index 7d4ca534..956d50e4 100644 --- a/apps/admin/src/views/user/list/index.tsx +++ b/apps/admin/src/views/user/list/index.tsx @@ -2,6 +2,7 @@ import { PlusOutlined } from '@ant-design/icons'; import { useRequest } from 'ahooks'; import { Button, Col, Flex, Row } from 'antd'; import { useEffect, useState } from 'react'; +import { useNavigate } from 'react-router-dom'; import UserCard from '@/components/UserCard'; @@ -23,6 +24,7 @@ interface PUSerList { const UserList: FC = () => { const { styles, theme, cx } = useStyles(); + const navigate = useNavigate(); const [tableTableData, setTableTableData] = useState([]); const { data: user, loading } = useRequest(getUsersList); @@ -33,7 +35,12 @@ const UserList: FC = () => { return ( - diff --git a/packages/gbeata/package.json b/packages/gbeata/package.json index 9948c205..bde3a6b3 100644 --- a/packages/gbeata/package.json +++ b/packages/gbeata/package.json @@ -15,7 +15,7 @@ "license": "MIT", "main": "lib/index.js", "module": "es/index.js", - "types": "dist/index.d.ts", + "types": "dist/esm/index.d.ts", "typings": "lib/index.d.ts", "files": [ "dist", From b261f65f2af6adf5f6a995905e471d87b86f9ca0 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 10 Jan 2024 23:55:03 +0800 Subject: [PATCH 26/26] =?UTF-8?q?build:=20:package:=20=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E5=BA=93=E7=B1=BB=E5=9E=8B=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E7=B4=A2=E5=BC=95=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/vite-config/src/plugins/appConfig.ts | 2 -- packages/gbeata/.fatherrc.ts | 1 + packages/gbeata/package.json | 2 +- packages/gbeata/src/index.ts | 1 - packages/gbeata/tsconfig.json | 1 - 5 files changed, 2 insertions(+), 5 deletions(-) diff --git a/internal/vite-config/src/plugins/appConfig.ts b/internal/vite-config/src/plugins/appConfig.ts index ede7f9d5..458849aa 100644 --- a/internal/vite-config/src/plugins/appConfig.ts +++ b/internal/vite-config/src/plugins/appConfig.ts @@ -25,8 +25,6 @@ async function createAppConfigPlugin({ }; } const { version = "" } = await readPackageJSON(resolve(root, "package.json")); - const configEnv = getEnvConfig(); - return { name: PLUGIN_NAME, async configResolved(_config) { diff --git a/packages/gbeata/.fatherrc.ts b/packages/gbeata/.fatherrc.ts index f5bb90f8..c42632a0 100644 --- a/packages/gbeata/.fatherrc.ts +++ b/packages/gbeata/.fatherrc.ts @@ -12,6 +12,7 @@ export default defineConfig({ ignores: [ 'src/**/*.md', // 避免打包demo文件到npm包里面 ], + sourcemap: true, output: 'lib', }, // 打包的时候自动引入antd的样式链接 diff --git a/packages/gbeata/package.json b/packages/gbeata/package.json index bde3a6b3..9948c205 100644 --- a/packages/gbeata/package.json +++ b/packages/gbeata/package.json @@ -15,7 +15,7 @@ "license": "MIT", "main": "lib/index.js", "module": "es/index.js", - "types": "dist/esm/index.d.ts", + "types": "dist/index.d.ts", "typings": "lib/index.d.ts", "files": [ "dist", diff --git a/packages/gbeata/src/index.ts b/packages/gbeata/src/index.ts index f03c5076..5af35ab5 100644 --- a/packages/gbeata/src/index.ts +++ b/packages/gbeata/src/index.ts @@ -21,7 +21,6 @@ import GTable, { } from './GTable'; import { default as GTagGroup } from './GTagGroup'; -export type * from './index.d'; export { GAction, GButton, diff --git a/packages/gbeata/tsconfig.json b/packages/gbeata/tsconfig.json index 99642645..ab44281f 100644 --- a/packages/gbeata/tsconfig.json +++ b/packages/gbeata/tsconfig.json @@ -3,7 +3,6 @@ "lib": ["ESNext", "DOM"], "rootDirs": ["src", "docs"], "strict": true, - "declaration": true, "skipLibCheck": true, "esModuleInterop": true, "jsx": "react",