add simple

This commit is contained in:
seaheart
2023-05-13 19:09:06 +08:00
parent 90b96456c1
commit 4f25004331
13 changed files with 1067 additions and 637 deletions
+16 -1
View File
@@ -19,7 +19,6 @@
"echarts": "4.8.0", "echarts": "4.8.0",
"echarts-for-react": "2.0.16", "echarts-for-react": "2.0.16",
"photoswipe": "^4.1.3", "photoswipe": "^4.1.3",
"prettier": "^2.6.2",
"qs": "^6.10.3", "qs": "^6.10.3",
"react": "17.0.2", "react": "17.0.2",
"react-dom": "17.0.2", "react-dom": "17.0.2",
@@ -44,5 +43,21 @@
"last 1 firefox version", "last 1 firefox version",
"last 1 safari version" "last 1 safari version"
] ]
},
"devDependencies": {
"prettier": "^2.8.8",
"husky": "^8.0.3",
"lint-staged": "^13.2.2"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.{js,jsx,ts,tsx}": [
"prettier --write",
"git add"
]
} }
} }
+4
View File
@@ -0,0 +1,4 @@
module.exports = {
tabWidth: 2,
singleQuote: true,
}
+118 -84
View File
@@ -1,102 +1,136 @@
/** /**
* 管理当前所有的菜单 * 管理当前所有的菜单
*/ */
import React from "react"; import React from 'react';
import MenuItem from './MenuItem'; import MenuItem from './MenuItem';
import Moon from '../model/global/Moon'; import Moon from '../model/global/Moon';
import User from '../model/user/User'; import User from '../model/user/User';
import {UserRole} from '../model/user/UserRole'; import { UserRole } from '../model/user/UserRole';
import Sun from '../../common/model/global/Sun'; import Sun from '../../common/model/global/Sun';
import { import {
AppstoreOutlined, AppstoreOutlined,
DashboardOutlined, CloudSyncOutlined,
DeleteOutlined, DashboardOutlined,
PoweroffOutlined, DeleteOutlined,
SettingOutlined, PoweroffOutlined,
ShareAltOutlined, SettingOutlined,
TeamOutlined ShareAltOutlined,
TeamOutlined,
} from '@ant-design/icons'; } from '@ant-design/icons';
import {LoginOutlined} from "@ant-design/icons/lib"; import { LoginOutlined } from '@ant-design/icons/lib';
import Preference from "../model/preference/Preference"; import Preference from '../model/preference/Preference';
import Lang from "../model/global/Lang"; import Lang from '../model/global/Lang';
export default class MenuManager { export default class MenuManager {
//单例模式
private static singleton: MenuManager;
//单例模式 constructor() {}
private static singleton: MenuManager;
constructor() { static getSingleton(): MenuManager {
if (!MenuManager.singleton) {
//初始化一个mainLand.
MenuManager.singleton = new MenuManager();
} }
return MenuManager.singleton;
static getSingleton(): MenuManager { }
if (!MenuManager.singleton) {
//初始化一个mainLand.
MenuManager.singleton = new MenuManager();
}
return MenuManager.singleton;
}
/**
* 获取到当前高亮的菜单
*/
getSelectedKeys(): string[] {
let keys: string[] = this.getMenuItems()
.filter((menuItem: MenuItem, index: number) => {
return menuItem.active;
}).map((menuItem: MenuItem, index: number) => {
return menuItem.url;
});
return keys;
}
/**
* 高亮某个菜单
*/
selectMenu(url: string) {
this.getMenuItems().forEach((menuItem: MenuItem, index: number) => {
menuItem.active = menuItem.url === url;
});
}
getMenuItems(): MenuItem[] {
let user: User = Moon.getSingleton().user;
let preference: Preference = Moon.getSingleton().preference;
let menuItems: MenuItem[] = [];
if (!preference.installed) {
menuItems = [
new MenuItem(Lang.t("layout.install"), '/install/index', <SettingOutlined/>),
];
} else if (user.role === UserRole.GUEST) {
menuItems = [
new MenuItem(Lang.t("user.login"), '/user/login', <LoginOutlined/>),
];
} else {
menuItems.push(new MenuItem(Lang.t("layout.allFiles"), '/matter/list', <AppstoreOutlined/>))
menuItems.push(new MenuItem(Lang.t("layout.myShare"), '/share/list', <ShareAltOutlined/>))
menuItems.push(new MenuItem(Lang.t("layout.bin"), '/bin/list', <DeleteOutlined/>))
if (user.role === UserRole.ADMINISTRATOR) {
menuItems.push(new MenuItem(Lang.t("layout.setting"), '/preference/index', <SettingOutlined/>))
menuItems.push(new MenuItem(Lang.t("layout.dashboard"), '/dashboard/index', <DashboardOutlined/>))
menuItems.push(new MenuItem(Lang.t("layout.users"), `${Sun.getSingleton().isMobile ? '/mobile' : ''}/user/list`,
<TeamOutlined/>))
}
menuItems.push(new MenuItem(Lang.t("layout.logout"), '/user/logout', <PoweroffOutlined/>))
}
return menuItems;
/**
* 获取到当前高亮的菜单
*/
getSelectedKeys(): string[] {
let keys: string[] = this.getMenuItems()
.filter((menuItem: MenuItem, index: number) => {
return menuItem.active;
})
.map((menuItem: MenuItem, index: number) => {
return menuItem.url;
});
return keys;
}
/**
* 高亮某个菜单
*/
selectMenu(url: string) {
this.getMenuItems().forEach((menuItem: MenuItem, index: number) => {
menuItem.active = menuItem.url === url;
});
}
getMenuItems(): MenuItem[] {
let user: User = Moon.getSingleton().user;
let preference: Preference = Moon.getSingleton().preference;
let menuItems: MenuItem[] = [];
if (!preference.installed) {
menuItems = [
new MenuItem(
Lang.t('layout.install'),
'/install/index',
<SettingOutlined />
),
];
} else if (user.role === UserRole.GUEST) {
menuItems = [
new MenuItem(Lang.t('user.login'), '/user/login', <LoginOutlined />),
];
} else {
menuItems.push(
new MenuItem(
Lang.t('layout.allFiles'),
'/matter/list',
<AppstoreOutlined />
)
);
menuItems.push(
new MenuItem(Lang.t('layout.space'), '/space', <CloudSyncOutlined />)
);
menuItems.push(
new MenuItem(
Lang.t('layout.myShare'),
'/share/list',
<ShareAltOutlined />
)
);
menuItems.push(
new MenuItem(Lang.t('layout.bin'), '/bin/list', <DeleteOutlined />)
);
if (user.role === UserRole.ADMINISTRATOR) {
menuItems.push(
new MenuItem(
Lang.t('layout.setting'),
'/preference/index',
<SettingOutlined />
)
);
menuItems.push(
new MenuItem(
Lang.t('layout.dashboard'),
'/dashboard/index',
<DashboardOutlined />
)
);
menuItems.push(
new MenuItem(
Lang.t('layout.users'),
`${Sun.getSingleton().isMobile ? '/mobile' : ''}/user/list`,
<TeamOutlined />
)
);
}
menuItems.push(
new MenuItem(
Lang.t('layout.logout'),
'/user/logout',
<PoweroffOutlined />
)
);
} }
return menuItems;
}
} }
+1
View File
@@ -307,6 +307,7 @@ let LangEn = {
goToLogin: "Go To Login", goToLogin: "Go To Login",
roleGuest: "Guest", roleGuest: "Guest",
roleUser: "User", roleUser: "User",
roleUserRoleSpace: "User Space Role",
roleAdministrator: "Administrator", roleAdministrator: "Administrator",
statusActive: "Ok", statusActive: "Ok",
statusDisabled: "Disabled", statusDisabled: "Disabled",
+385 -375
View File
@@ -1,377 +1,387 @@
let LangZh = { let LangZh = {
eyeblueTank: "蓝眼云盘", eyeblueTank: '蓝眼云盘',
dashboard: { dashboard: {
totalInvokeNum: '总PV', totalInvokeNum: '总PV',
weekRate: '周环比', weekRate: '周环比',
dayRate: '日环比', dayRate: '日环比',
yesterdayInvoke: '昨日PV', yesterdayInvoke: '昨日PV',
totalUV: '总UV', totalUV: '总UV',
yesterdayUV: '昨日UV', yesterdayUV: '昨日UV',
totalMatterNum: '总文件数', totalMatterNum: '总文件数',
yesterdayMatterNum: '昨日文件数', yesterdayMatterNum: '昨日文件数',
totalFileSize: '文件总大小', totalFileSize: '文件总大小',
yesterdayMatterSize: '昨日文件大小', yesterdayMatterSize: '昨日文件大小',
recentDayInvokeUV: '最近{}日PV/UV', recentDayInvokeUV: '最近{}日PV/UV',
downloadMatterTop10: '文件下载量TOP10', downloadMatterTop10: '文件下载量TOP10',
activeIpTop10: '活跃IP TOP10', activeIpTop10: '活跃IP TOP10',
loading: '加载中…', loading: '加载中…',
date: '日期', date: '日期',
num: '数量', num: '数量',
warnHint: '温馨提示:本页面数据每日凌晨0点清洗一次。', warnHint: '温馨提示:本页面数据每日凌晨0点清洗一次。',
reRun: '立即重跑', reRun: '立即重跑',
}, },
install: { install: {
configMysql: "配置数据库", configMysql: '配置数据库',
dbType: "数据库类型", dbType: '数据库类型',
port: "端口", port: '端口',
schema: "库名", schema: '库名',
username: "用户名", username: '用户名',
password: "密码", password: '密码',
charset: "编码", charset: '编码',
mysqlConnectionPass: "MySQL连接测试通过", mysqlConnectionPass: 'MySQL连接测试通过',
testMysqlConnection: "测试MySQL连接", testMysqlConnection: '测试MySQL连接',
notice: "注意", notice: '注意',
sqliteNotice1: "sqlite是一个轻量的文件数据库,无需安装即可使用", sqliteNotice1: 'sqlite是一个轻量的文件数据库,无需安装即可使用',
mysqlNotice1: "如果数据库和蓝眼云盘安装在同一台服务器,Host可以直接填写 127.0.0.1。", mysqlNotice1:
mysqlNotice2: "数据库账户的权限要求要能够创建表,否则第二步\"创建表\"操作会出错", '如果数据库和蓝眼云盘安装在同一台服务器,Host可以直接填写 127.0.0.1。',
validateMysqlFirst: "请首先验证数据库连接", mysqlNotice2:
preStep: "上一步", '数据库账户的权限要求要能够创建表,否则第二步"创建表"操作会出错',
nextStep: "下一步", validateMysqlFirst: '请首先验证数据库连接',
createTable: "创建表", preStep: '上一步',
installed: "已安装", nextStep: '下一步',
installedButMissing: "已安装,字段缺失", createTable: '创建表',
toBeInstalled: "待安装", installed: '已安装',
allFields: "所有字段", installedButMissing: '已安装,字段缺失',
missingFields: "缺失字段", toBeInstalled: '待安装',
tableNotice: "点击\"一键建表\"后会按照以下逻辑执行操作:", allFields: '所有字段',
tableNotice1: "如果某表不存在,则直接创建表。", missingFields: '缺失字段',
tableNotice2: "如果某表存在并且字段齐全,那么不会对该表做任何操作。", tableNotice: '点击"一键建表"后会按照以下逻辑执行操作:',
tableNotice3: "如果某表存在但是部分字段缺失,那么会在该表中增加缺失字段。", tableNotice1: '如果某表存在,则直接创建表。',
tableNotice4: "如果表中有多余的字段(多余字段即不是蓝眼云盘需要的字段),不会做删除处理,而会维持原样。", tableNotice2: '如果某表存在并且字段齐全,那么不会对该表做任何操作。',
oneKeyCreate: "一键建表", tableNotice3: '如果某表存在但是部分字段缺失,那么会在该表中增加缺失字段。',
createFinish: "建表完成", tableNotice4:
createTableSuccess: "建表成功", '如果表中有多余的字段(多余字段即不是蓝眼云盘需要的字段),不会做删除处理,而会维持原样。',
crateTableFirst: "请首先点击'一键建表'", oneKeyCreate: '一键建表',
setAdministrator: "设置管理员", createFinish: '建表完成',
detectAdministrator: "检测到系统中已经存在有以下管理员:", createTableSuccess: '建表成功',
useOrCreateAdministrator: "你可以使用其中一位管理员的用户名和密码进行验证,或者创建一位新的管理员账户", crateTableFirst: "请首先点击'一键建表'",
validateAdministrator: "验证管理员账户", setAdministrator: '设置管理员',
createAdministrator: "创建管理员账户", detectAdministrator: '检测到系统中已经存在有以下管理员:',
administratorUsername: "管理员用户名", useOrCreateAdministrator:
administratorPassword: "管理员密码", '你可以使用其中一位管理员的用户名和密码进行验证,或者创建一位新的管理员账户',
administratorRePassword: "再次输入密码", validateAdministrator: '验证管理员账户',
usernameRule: "由于用户名将作为文件上传的目录,因此只允许字母数字以及\"_\"。", createAdministrator: '创建管理员账户',
congratulationInstall: "恭喜,安装成功!", administratorUsername: '管理员用户名',
configAdminFirst: "请首先配置管理员信息!", administratorPassword: '管理员密码',
createAdminSuccess: "创建管理员成功!", administratorRePassword: '再次输入密码',
validateAdminSuccess: "验证管理员成功!", usernameRule: '由于用户名将作为文件上传的目录,因此只允许字母数字以及"_"。',
pressToHome: "点击下方按钮来完成安装过程并进入首页。", congratulationInstall: '恭喜,安装成功!',
enterHome: "完成,并进入首页", configAdminFirst: '请首先配置管理员信息!',
finish: "完成", createAdminSuccess: '创建管理员成功!',
}, validateAdminSuccess: '验证管理员成功!',
layout: { pressToHome: '点击下方按钮来完成安装过程并进入首页。',
allFiles: "全部文件", enterHome: '完成,并进入首页',
myShare: "我的分享", finish: '完成',
bin: "回收站", },
setting: "网站设置", layout: {
dashboard: "监控统计", allFiles: '个人文件',
users: "用户管理", myShare: '我的分享',
logout: "退出登录", bin: '回收站',
about: "关于", setting: '网站设置',
install: "安装网站", dashboard: '监控统计',
dragMouseUp: "可以松手啦~" users: '用户管理',
}, logout: '退出登录',
matter: { about: '关于',
file: "文件", install: '安装网站',
directory: "文件夹", dragMouseUp: '可以松手啦~',
rename: "重命名", },
download: "下载", matter: {
delete: "删除", file: '文件',
hardDelete: "彻底删除", directory: '文件夹',
recovery: "恢复", rename: '重命名',
more: "更多", download: '下载',
share: "分享", delete: '删除',
close: "关闭", hardDelete: '彻底删除',
size: "大小", recovery: '恢复',
preview: "预览", more: '更多',
move: "移动", share: '分享',
moveTo: "移动到", close: '关闭',
upload: "上传", size: '大小',
create: "新建", preview: '预览',
createTime: "创建时间", move: '移动',
updateTime: "修改时间", moveTo: '移动到',
deleteTime: "删除时间", upload: '上传',
root: "根目录", create: '新建',
fillInPicLink: "请填写图片链接", createTime: '创建时间',
rePick: "重新选择", updateTime: '修改时间',
chooseImage: "选择图片", deleteTime: '删除时间',
uploadMode: "上传模式", root: '根目录',
fillMode: "填写模式", fillInPicLink: '请填写图片链接',
sizeExceedLimit: "文件大小超过了限制{}>{}", rePick: '重新选择',
dropNotDirectory: "不可拖拽文件夹进行上传", chooseImage: '选择图片',
setPublic: "设置为公有文件", uploadMode: '上传模式',
setPrivate: "设置为私有文件", fillMode: '填写模式',
copyLink: "复制下载链接", sizeExceedLimit: '文件大小超过了限制{}>{}',
enterName: "请输入名称", dropNotDirectory: '不可拖拽文件夹进行上传',
publicFileEveryoneCanVisit: "公有文件,任何人可以访问", setPublic: '设置为公有文件',
fileDetail: "文件详情", setPrivate: '设置为私有文件',
expire: "有效期", copyLink: '复制下载链接',
copyLinkAndCode: "复制链接+提取码", enterName: '请输入名称',
uploaded: "已上传", publicFileEveryoneCanVisit: '公有文件,任何人可以访问',
uploadDir: '上传文件夹', fileDetail: '文件详情',
uploadInfo: '上传信息', expire: '有效期',
uploadErrorInfo: '部分文件上传失败,可导出csv文件查看', copyLinkAndCode: '复制链接+提取码',
exportCSV: '导出上传错误详情', uploaded: '已上传',
speed: "速度", uploadDir: '上传文件夹',
fileInfo: "文件基本信息", uploadInfo: '上传信息',
fileName: "文件名", uploadErrorInfo: '部分文件上传失败,可导出csv文件查看',
path: "路径", exportCSV: '导出上传错误详情',
copyPath: "复制路径", speed: '速度',
publicOrPrivate: "文件公开性", fileInfo: '文件基本信息',
privateInfo: "私有文件,只有自己或者授权的用户可以下载", fileName: '文件名',
publicInfo: "公有文件,任何人可以通过链接下载", path: '路径',
downloadTimes: "下载次数", copyPath: '复制路径',
operations: "操作", publicOrPrivate: '文件公开性',
oneTimeLink: "一次性链接", privateInfo: '私有文件,只有自己或者授权的用户可以下载',
oneTimeLinkInfo: "使用一次性链接下载后链接立即失效,可以分享这个链接给朋友,点击复制", publicInfo: '公有文件,任何人可以通过链接下载',
imageCache: "图片缓存", downloadTimes: '下载次数',
searchFile: "搜索文件", operations: '操作',
noContentYet: "该目录下暂无任何内容", oneTimeLink: '一次性链接',
allFiles: "全部文件", oneTimeLinkInfo:
newDirectory: "新建文件夹", '使用一次性链接下载后链接立即失效,可以分享这个链接给朋友,点击复制',
notChoose: "没有选择文件", imageCache: '图片缓存',
exceed1000: "最多只能同时选取1000个文件", searchFile: '搜索文件',
noImageCache: "暂无图片缓存数据", noContentYet: '该目录下暂无任何内容',
recycleBin: "回收站", allFiles: '全部文件',
deleted: "已删除", newDirectory: '新建文件夹',
unCompatibleBrowser: "当前浏览器不支持,请切换浏览器尝试", notChoose: '没有选择文件',
canIUse: "查看当前浏览器是否支持,点击跳转", exceed1000: '最多只能同时选取1000个文件',
intoRecycleBin: "放入回收站", noImageCache: '暂无图片缓存数据',
finishingTip: "后台文件整理中,请稍候..." recycleBin: '回收站',
}, deleted: '已删除',
router: { unCompatibleBrowser: '当前浏览器不支持,请切换浏览器尝试',
allFiles: "全部文件", canIUse: '查看当前浏览器是否支持,点击跳转',
fileDetail: "文件详情", intoRecycleBin: '放入回收站',
login: "登录", finishingTip: '后台文件整理中,请稍候...',
autoLogin: "自动登录", },
register: "注册", router: {
users: "用户列表", allFiles: '全部文件',
userDetail: "用户详情", fileDetail: '文件详情',
changePassword: "修改密码", login: '登录',
editUser: "编辑用户", autoLogin: '自动登录',
createUser: "创建用户", register: '注册',
shareDetail: "分享详情", users: '用户列表',
myShare: "我的分享", userDetail: '用户详情',
dashboard: "监控统计", changePassword: '修改密码',
install: "安装网站", editUser: '编辑用户',
setting: "网站设置" createUser: '创建用户',
}, shareDetail: '分享详情',
preference: { myShare: '我的分享',
basic: "基本信息", dashboard: '监控统计',
preview: "预览引擎", install: '安装网站',
scan: "扫描磁盘", setting: '网站设置',
websiteName: "网站名称", },
logo: "Logo", preference: {
logoSquare: "logo请使用正方形图片,否则在显示时会裁剪成正方形", basic: '基本信息',
onlyAllowIco: "只允许上传.ico图标", preview: '预览引擎',
copyright: "版权信息(支持html)", scan: '扫描磁盘',
extraInfo: "备案信息(支持html)", websiteName: '网站名称',
zipMaxNumLimit: "zip下载数量限制", logo: 'Logo',
zipMaxSizeLimit: "zip下载大小限制(B)", logoSquare: 'logo请使用正方形图片,否则在显示时会裁剪成正方形',
current: "当前值", onlyAllowIco: '只允许上传.ico图标',
noLimit: "无限制", copyright: '版权信息(支持html)',
userDefaultSizeLimit: "用户默认总大小限制(B) ", extraInfo: '备案信息(支持html)',
matterBinDefaultSaveDay: "回收站默认保留天数", zipMaxNumLimit: 'zip下载数量限制',
enterMatterBinDefaultSaveDay: "默认回收站默认保留天数必填!", zipMaxSizeLimit: 'zip下载大小限制(B)',
docLink: "文档链接", current: '当前值',
tankDocLink: "https://tank-doc.eyeblue.cn/zh", noLimit: '无限制',
allowRegister: "允许自主注册", userDefaultSizeLimit: '用户默认总大小限制(B) ',
systemCleanup: "重置系统", matterBinDefaultSaveDay: '回收站默认保留天数',
systemCleanupDescription: "重置系统将清空除管理员账号外所有数据", enterMatterBinDefaultSaveDay: '默认回收站默认保留天数必填!',
systemCleanupPrompt: "重置系统将清空除管理员账号外所有数据,事关重大,请输入登录密码", docLink: '文档链接',
previewConfig: "文件预览配置", tankDocLink: 'https://tank-doc.eyeblue.cn/zh',
editPreference: "设置网站偏好", allowRegister: '允许自主注册',
editPreviewEngine: "设置预览引擎", systemCleanup: '重置系统',
enterWebsiteName: "请输入网站名称!", systemCleanupDescription: '重置系统将清空除管理员账号外所有数据',
enterZipMaxNumLimit: "zip最大数量限制必填!", systemCleanupPrompt:
enterZipMaxSizeLimit: "zip大小限制必填!", '重置系统将清空除管理员账号外所有数据,事关重大,请输入登录密码',
enterUserDefaultSizeLimit: "默认用户空间大小必填!", previewConfig: '文件预览配置',
engine: "{}号预览引擎", editPreference: '设置网站偏好',
noEngine: "暂无在线预览引擎配置", editPreviewEngine: '设置预览引擎',
newEngine: "添加一个预览引擎", enterWebsiteName: '请输入网站名称!',
engineReg: "引擎格式", enterZipMaxNumLimit: 'zip最大数量限制必填!',
engineSuffix: "匹配后缀", enterZipMaxSizeLimit: 'zip大小限制必填!',
enginePreview: "预览方式", enterUserDefaultSizeLimit: '默认用户空间大小必填!',
defaultPreview: "默认引擎", engine: '{}号预览引擎',
previewEngine: "{}号引擎", noEngine: '暂无在线预览引擎配置',
defaultPreviewDesc: "默认预览引擎,不可移除", newEngine: '添加一个预览引擎',
engineRegHelper: "此处填写模板语法:{url}表示文件路径,预览时会自动替换成对应的文件url;{b64url}表示base64机密后的路径,适用于kkfileview", engineReg: '引擎格式',
engineUsageHint: "对于一个文件的预览,使用第一个匹配后缀名的引擎,没有配匹到则使用系统默认预览引擎", engineSuffix: '匹配后缀',
engineRegPlaceHolder: "例如:https://xxx.xxx.xxx?url={url}", enginePreview: '预览方式',
engineSuffixPlaceHolder: '输入后缀,使用逗号分隔,不用带. 例如:doc,ppt,xls', defaultPreview: '默认引擎',
previewCurrent: "本站预览", previewEngine: '{}号引擎',
previewOpen: "新标签打开", defaultPreviewDesc: '默认预览引擎,不可移除',
editScan: "设置磁盘扫描", engineRegHelper:
enableScan: "开启磁盘扫描", '此处填写模板语法:{url}表示文件路径,预览时会自动替换成对应的文件url;{b64url}表示base64机密后的路径,适用于kkfileview',
disabledScan: "暂未开启磁盘扫描", engineUsageHint:
scanCron: "定时扫描", '对于一个文件的预览,使用第一个匹配到后缀名的引擎,没有配匹到则使用系统默认预览引擎',
cron: "cron表达式", engineRegPlaceHolder: '例如:https://xxx.xxx.xxx?url={url}',
cronValidate: "cron表达式不能为空", engineSuffixPlaceHolder:
scanScope: "扫描范围", '输入后缀,使用逗号分隔,不用带. 例如:doc,ppt,xls',
scanUsers: "扫描用户", previewCurrent: '本站预览',
scanPerTenSeconds: "每十秒", previewOpen: '新标签打开',
scanPerThirtySeconds: "每三十秒", editScan: '设置磁盘扫描',
scanPerMinute: "每分钟", enableScan: '开启磁盘扫描',
scanPerHour: "每小时", disabledScan: '暂未开启磁盘扫描',
scanCustom: "自定义", scanCron: '定时扫描',
chooseUsers: "模糊搜索用户", cron: 'cron表达式',
chooseUsersValidate: "请选择至少一个用户", cronValidate: 'cron表达式不能为空',
scanLoading: "扫描中,请稍后...", scanScope: '扫描范围',
matterBinDefaultTip: "设置0表示关闭回收站功能" scanUsers: '扫描用户',
}, scanPerTenSeconds: '每十秒',
share: { scanPerThirtySeconds: '每三十秒',
shareDetail: "分享详情", scanPerMinute: '每分钟',
shareTime: "分享时间", scanPerHour: '每小时',
expireTime: "失效时间", scanCustom: '自定义',
noExpire: "永久有效", chooseUsers: '模糊搜索用户',
expired: "已过期", chooseUsersValidate: '请选择至少一个用户',
copyLinkAndCode: "复制链接+提取码", scanLoading: '扫描中,请稍后...',
shareSuccess: "分享成功", matterBinDefaultTip: '设置0表示关闭回收站功能',
sharer: "分享者", },
link: "链接", share: {
copyLink: "复制链接", shareDetail: '分享详情',
code: "提取码", shareTime: '分享时间',
copyCode: "复制提取码", expireTime: '失效时间',
copySuccess: "复制成功", noExpire: '永久有效',
more: "更多", expired: '已过期',
cancelShare: "取消分享", copyLinkAndCode: '复制链接+提取码',
getLink: "获取链接", shareSuccess: '分享成功',
allFiles: "全部文件", sharer: '分享者',
noContent: "该目录下暂无任何内容", link: '链接',
enterCode: "请输入提取码", copyLink: '复制链接',
getFiles: "提取文件", code: '提取码',
codeError: "提取码错误", copyCode: '复制提取码',
cancelPrompt: "此操作将永久取消该分享, 是否继续?", copySuccess: '复制成功',
hour: "1小时", more: '更多',
day: "1天", cancelShare: '取消分享',
week: "1周", getLink: '获取链接',
month: "1个月", allFiles: '全部文件',
year: "1年", noContent: '该目录下暂无任何内容',
infinity: "永远有效", enterCode: '请输入提取码',
emptyHint: "暂无任何分享", getFiles: '提取文件',
}, codeError: '提取码错误',
user: { cancelPrompt: '此操作将永久取消该分享, 是否继续?',
redirecting: "正在转跳...", hour: '1小时',
oldPassword: "旧密码", day: '1天',
newPassword: "新密码", week: '1周',
confirmNewPassword: "确认新密码", month: '1个月',
cannotBeNull: "不能为空!", year: '1年',
passwordNotSame: "两次输入不一致!", infinity: '永远有效',
role: "角色", emptyHint: '暂无任何分享',
singleFileSizeLimit: "单文件限制", },
totalFileSizeLimit: "空间限制", user: {
current: "当前值", redirecting: '正在转跳...',
noLimit: "无限制", oldPassword: '旧密码',
totalFileSize: "已使用空间", newPassword: '新密码',
status: "状态", confirmNewPassword: '确认新密码',
lastLogin: "上次登录", cannotBeNull: '不能为空!',
lastLoginIp: "上次登录IP", passwordNotSame: '两次输入不一致!',
lastLoginTime: "上次登录时间", role: '角色',
resetPassword: "重置密码", singleFileSizeLimit: '单文件限制',
transfiguration: "变身", totalFileSizeLimit: '空间限制',
changePassword: "修改密码", current: '当前值',
enterPassword: "输入密码", noLimit: '无限制',
enterUsername: "请输入用户名", totalFileSize: '已使用空间',
enterNewPassword: "请输入新密码", status: '状态',
profile: "个人详情", lastLogin: '上次登录',
avatar: "头像", lastLoginIp: '上次登录IP',
username: "用户名", lastLoginTime: '上次登录时间',
password: "密码", resetPassword: '重置密码',
confirmPassword: "确认密码", transfiguration: '变身',
disabled: "已禁用", changePassword: '修改密码',
disableUser: "禁用该用户", enterPassword: '输入密码',
activeUser: "激活该用户", enterUsername: '请输入用户名',
deleteUser: "删除该用户", enterNewPassword: '请输入新密码',
deleteHint: "此操作将删除用户【{}】的所有记录,包括文件,分享,用户信息等内容,确定继续?", profile: '个人详情',
disable: "禁用", avatar: '头像',
sync: "同步", username: '用户名',
active: "激活", password: '密码',
welcomeLogin: "欢迎登录", confirmPassword: '确认密码',
logining: "正在登录...", disabled: '已禁用',
login: "登录", disableUser: '禁用该用户',
loginSuccess: "登录成功", activeUser: '激活该用户',
toToRegister: "立即注册", deleteUser: '删除该用户',
welcomeRegister: "欢迎注册", deleteHint:
registering: "正在登录...", '此操作将删除用户【{}】的所有记录,包括文件,分享,用户信息等内容,确定继续?',
register: "注册", disable: '禁用',
goToLogin: "前往登录", sync: '同步',
roleGuest: "游客", active: '激活',
roleUser: "注册用户", welcomeLogin: '欢迎登录',
roleAdministrator: "管理员", logining: '正在登录...',
statusActive: "正常", login: '登录',
statusDisabled: "禁用", loginSuccess: '登录成功',
webdavLink: "WebDAV 地址", toToRegister: '立即注册',
docLink: "文档链接", welcomeRegister: '欢迎注册',
createUser: "创建用户", registering: '正在登录...',
editUser: "编辑用户", register: '注册',
editSomebodyPassword: "修改{}的密码", goToLogin: '前往登录',
transfigurationPromptText: "变身提示", roleGuest: '游客',
transfigurationPrompt: "您将使用该用户的身份登录。请复制以下链接到其他浏览器访问,在当前浏览器访问会导致当前用户登录信息失效。", roleUser: '注册用户',
allUsers: "全部用户", roleUserRoleSpace: '用户空间角色',
partialUsers: "局部用户", roleAdministrator: '管理员',
searchUser: "搜索用户" statusActive: '正常',
}, statusDisabled: '禁用',
model: { webdavLink: 'WebDAV 地址',
usernameRule: "用户名只能包含字母,数字和\"_\"", docLink: '文档链接',
passwordRule: "密码长度至少为6位", createUser: '创建用户',
linkCodeText: "链接:{} 提取码:{}", editUser: '编辑用户',
copyLinkCodeSuccess: "复制链接提取码成功", editSomebodyPassword: '修改{}的密码',
transfigurationPromptText: '变身提示',
transfigurationPrompt:
'您将使用该用户的身份登录。请复制以下链接到其他浏览器访问,在当前浏览器访问会导致当前用户登录信息失效。',
allUsers: '全部用户',
partialUsers: '局部用户',
searchUser: '搜索用户',
},
model: {
usernameRule: '用户名只能包含字母,数字和"_"',
passwordRule: '密码长度至少为6位',
linkCodeText: '链接:{} 提取码:{}',
copyLinkCodeSuccess: '复制链接提取码成功',
},
plugin: {
cannotPreview: '无法预览',
emptyHintDefault: '没有符合条件的项目',
everyPage: '每页',
items: '条',
total: '共',
clickRefresh: '点击刷新',
},
loading: '加载中',
selectAll: '全选',
edit: '修改',
createTime: '创建时间',
download: '下载',
close: '关闭',
required: '必填',
cancel: '取消',
delete: '删除',
deleteDirectly: '直接删除',
actionCanNotRevertConfirm: '此操作不可撤回, 是否继续?',
actionDeleteConfirm: '确定删除吗?',
actionRecoveryConfirm: '确定恢复吗?',
prompt: '提示',
confirm: '确定',
copy: '复制',
copySuccess: '复制成功!',
copyError: '复制失败!',
showMore: '显示更多',
username: '用户名',
password: '密码',
submit: '提交',
save: '保存',
create: '创建',
finish: '完成',
operationSuccess: '操作成功',
operation: '操作',
notFound: '404 页面找不到',
login: '登录',
logout: '退出',
yes: '是',
no: '否',
all: '所有',
refresh: '刷新',
inputRequired: '该项必填',
};
}, export default LangZh;
plugin: {
cannotPreview: "无法预览",
emptyHintDefault: "没有符合条件的项目",
everyPage: "每页",
items: "条",
total: "共",
clickRefresh: "点击刷新",
},
loading: "加载中",
selectAll: "全选",
edit: "修改",
createTime: "创建时间",
download: "下载",
close: "关闭",
required: "必填",
cancel: "取消",
delete: "删除",
deleteDirectly: "直接删除",
actionCanNotRevertConfirm: "此操作不可撤回, 是否继续?",
actionDeleteConfirm: "确定删除吗?",
actionRecoveryConfirm: "确定恢复吗?",
prompt: "提示",
confirm: "确定",
copy: "复制",
copySuccess: "复制成功!",
copyError: "复制失败!",
showMore: "显示更多",
username: "用户名",
password: "密码",
submit: "提交",
save: "保存",
create: "创建",
finish: "完成",
operationSuccess: "操作成功",
operation: "操作",
notFound: "404 页面找不到",
login: "登录",
logout: "退出",
yes: "是",
no: "否",
all: "所有",
refresh: "刷新",
inputRequired: "该项必填",
}
export default LangZh
+21
View File
@@ -0,0 +1,21 @@
import BaseEntity from "../base/BaseEntity";
import User from "../user/User";
export default class Space extends BaseEntity {
userUuid: string | null = null
user: User | null = null
constructor(reactComponent?: React.Component) {
super(reactComponent);
}
assign(obj: any) {
super.assign(obj);
this.assignEntity("user", User)
}
}
@@ -0,0 +1,23 @@
import BaseEntity from "../../base/BaseEntity";
import User from "../../user/User";
import {SpaceMemberRole} from "./SpaceMemberRole";
export default class Space extends BaseEntity {
spaceUuid: string | null = null
userUuid: string | null = null
role: SpaceMemberRole | null = null
user: User | null = null
constructor(reactComponent?: React.Component) {
super(reactComponent);
}
assign(obj: any) {
super.assign(obj);
this.assignEntity("user", User)
}
}
@@ -0,0 +1,32 @@
import SelectionOption from "../../base/option/SelectionOption";
import Lang from "../../global/Lang";
enum SpaceMemberRole {
READ_ONLY = 'READ_ONLY',
READ_WRITE = 'READ_WRITE',
ADMIN='ADMIN'
}
const SpaceMemberRoles:SpaceMemberRole[] = Object.keys(SpaceMemberRole).map(k => k as SpaceMemberRole);
const SpaceMemberRoleMap: Record<SpaceMemberRole, SelectionOption> = {
[SpaceMemberRole.READ_ONLY]: {
name: Lang.t("spaceMember.readOnly"),
value: SpaceMemberRole.READ_ONLY
},
[SpaceMemberRole.READ_WRITE]: {
name: Lang.t("spaceMember.readWrite"),
value: SpaceMemberRole.READ_WRITE
},
[SpaceMemberRole.ADMIN]: {
name: Lang.t("spaceMember.admin"),
value: SpaceMemberRole.ADMIN
}
}
const SpaceMemberRoleList: SelectionOption[] = [];
SpaceMemberRoles.forEach((type: SpaceMemberRole, index: number) => {
SpaceMemberRoleList.push(SpaceMemberRoleMap[type]);
})
export {SpaceMemberRole, SpaceMemberRoles, SpaceMemberRoleMap, SpaceMemberRoleList};
+6
View File
@@ -6,6 +6,7 @@ import Lang from "../global/Lang";
enum UserRole { enum UserRole {
GUEST = 'GUEST', GUEST = 'GUEST',
USER = 'USER', USER = 'USER',
SPACE = "SPACE",
ADMINISTRATOR = 'ADMINISTRATOR', ADMINISTRATOR = 'ADMINISTRATOR',
} }
@@ -22,6 +23,11 @@ let UserRoleMap: { [key in keyof typeof UserRole]: ColorSelectionOption } = {
'value': 'USER', 'value': 'USER',
'color': Color.PRIMARY, 'color': Color.PRIMARY,
}, },
SPACE: {
'name': Lang.t("user.roleUserRoleSpace"),
'value': UserRole.SPACE,
'color': Color.SUCCESS,
},
ADMINISTRATOR: { ADMINISTRATOR: {
'name': Lang.t("user.roleAdministrator"), 'name': Lang.t("user.roleAdministrator"),
'value': 'ADMINISTRATOR', 'value': 'ADMINISTRATOR',
+172 -166
View File
@@ -1,192 +1,198 @@
import React from "react"; import React from 'react';
import {Redirect, Route, RouteComponentProps, withRouter,} from "react-router-dom"; import {
Redirect,
Route,
RouteComponentProps,
withRouter,
} from 'react-router-dom';
import "./Frame.less"; import './Frame.less';
import TankComponent from "../common/component/TankComponent"; import TankComponent from '../common/component/TankComponent';
import UserLogin from "./user/Login"; import UserLogin from './user/Login';
import UserRegister from "./user/Register"; import UserRegister from './user/Register';
import UserList from "./user/List"; import UserList from './user/List';
import MobileUserList from "./user/MobileList"; import MobileUserList from './user/MobileList';
import UserDetail from "./user/Detail"; import UserDetail from './user/Detail';
import UserEdit from "./user/Edit"; import UserEdit from './user/Edit';
import UserAuthentication from "./user/Authentication"; import UserAuthentication from './user/Authentication';
import PreferenceIndex from "./preference/Index"; import PreferenceIndex from './preference/Index';
import PreferenceEdit from "./preference/Edit"; import PreferenceEdit from './preference/Edit';
import PreferenceEngineEdit from "./preference/PreviewEngineEdit"; import PreferenceEngineEdit from './preference/PreviewEngineEdit';
import PreferenceScanEdit from "./preference/ScanEdit"; import PreferenceScanEdit from './preference/ScanEdit';
import DashboardIndex from "./dashboard/Index"; import DashboardIndex from './dashboard/Index';
import InstallIndex from "./install/Index"; import InstallIndex from './install/Index';
import MatterList from "./matter/List"; import MatterList from './matter/List';
import MatterDetail from "./matter/Detail"; import MatterDetail from './matter/Detail';
import BinList from "./bin/List"; import BinList from './bin/List';
import ShareList from "./share/List"; import ShareList from './share/List';
import ShareDetail from "./share/Detail"; import ShareDetail from './share/Detail';
import User from "../common/model/user/User"; import User from '../common/model/user/User';
import Moon from "../common/model/global/Moon"; import Moon from '../common/model/global/Moon';
import Sun from "../common/model/global/Sun"; import Sun from '../common/model/global/Sun';
import FrameLoading from "./widget/FrameLoading"; import FrameLoading from './widget/FrameLoading';
import Preference from "../common/model/preference/Preference"; import Preference from '../common/model/preference/Preference';
import {WebResultCode} from "../common/model/base/WebResultCode"; import { WebResultCode } from '../common/model/base/WebResultCode';
import MessageBoxUtil from "../common/util/MessageBoxUtil"; import MessageBoxUtil from '../common/util/MessageBoxUtil';
import BottomLayout from "./layout/BottomLayout"; import BottomLayout from './layout/BottomLayout';
import SideLayout from "./layout/SideLayout"; import SideLayout from './layout/SideLayout';
import TopLayout from "./layout/TopLayout"; import TopLayout from './layout/TopLayout';
import ContentLayout from "./layout/ContentLayout"; import ContentLayout from './layout/ContentLayout';
interface IProps extends RouteComponentProps<{}> { import SpaceList from './space/List';
}
interface IState { interface IProps extends RouteComponentProps<{}> {}
}
interface IState {}
class RawFrame extends TankComponent<IProps, IState> { class RawFrame extends TankComponent<IProps, IState> {
user: User = Moon.getSingleton().user; user: User = Moon.getSingleton().user;
preference: Preference = Moon.getSingleton().preference; preference: Preference = Moon.getSingleton().preference;
//是否已经完成初始化 //是否已经完成初始化
initialized: boolean = false; initialized: boolean = false;
constructor(props: IProps) { constructor(props: IProps) {
super(props); super(props);
} }
componentDidMount() { componentDidMount() {
//装载全局的路由 //装载全局的路由
Sun.getSingleton().reactRouter = this.props.history; Sun.getSingleton().reactRouter = this.props.history;
//装在全局Frame //装在全局Frame
Sun.getSingleton().frameComponent = this; Sun.getSingleton().frameComponent = this;
this.initialize(); this.initialize();
} }
//获取当前登录者的信息 //获取当前登录者的信息
initialize() { initialize() {
let that = this; let that = this;
let pathname: string = that.props.location.pathname; let pathname: string = that.props.location.pathname;
this.preference.httpFetch( this.preference.httpFetch(
function () { function () {
// 白名单,不要求登录 // 白名单,不要求登录
let whitePaths = [ let whitePaths = [
"/user/login", '/user/login',
"/user/register", '/user/register',
"/user/authentication", '/user/authentication',
]; ];
// 尝试登录名单,登录失败不做处理 // 尝试登录名单,登录失败不做处理
let tryLoginPaths = [ let tryLoginPaths = ['/share/detail'];
"/share/detail",
];
if (whitePaths.findIndex((path) => pathname.startsWith(path)) >= 0) { if (whitePaths.findIndex((path) => pathname.startsWith(path)) >= 0) {
that.initialized = true; that.initialized = true;
that.updateUI(); that.updateUI();
} else if (tryLoginPaths.findIndex((path) => pathname.startsWith(path)) >= 0) { } else if (
that.user.httpInfo(false, function () { tryLoginPaths.findIndex((path) => pathname.startsWith(path)) >= 0
that.initialized = true; ) {
that.updateUI(); that.user.httpInfo(false, function () {
}); that.initialized = true;
} else { that.updateUI();
that.user.httpInfo(true, function () { });
that.initialized = true;
that.updateUI();
});
}
},
function (errMessage: string, response: any) {
that.initialized = true;
that.updateUI();
if (
response &&
response.data &&
response.data["code"] === WebResultCode.NOT_INSTALLED
) {
MessageBoxUtil.warning("网站尚未安装,即将引导进入安装页面!");
that.preference.installed = false;
Sun.navigateTo("/install/index");
}
}
);
}
render() {
let content: React.ReactNode;
if (this.initialized) {
content = (
<div className="pages-frame-inner">
<SideLayout/>
<TopLayout/>
<ContentLayout>
{this.preference.installed ? (
<div className="pages-content">
<Route
exact
path="/"
render={() => <Redirect to="/matter/list"/>}
/>
<Route path="/user/login" component={UserLogin}/>
<Route path="/user/register" component={UserRegister}/>
<Route path="/user/detail/:uuid" component={UserDetail}/>
<Route path="/user/list" component={UserList}/>
<Route path="/mobile/user/list" component={MobileUserList}/>
<Route path="/user/create" component={UserEdit}/>
<Route path="/user/edit/:uuid" component={UserEdit}/>
<Route
path="/user/authentication/:authentication"
component={UserAuthentication}
/>
<Route path="/dashboard/index" component={DashboardIndex}/>
<Route path="/preference/index" component={PreferenceIndex}/>
<Route path="/preference/edit" component={PreferenceEdit}/>
<Route
path="/preference/engine/edit"
component={PreferenceEngineEdit}
/>
<Route
path="/preference/scan/edit"
component={PreferenceScanEdit}
/>
<Route path="/matter/detail/:uuid" component={MatterDetail}/>
<Route
exact
path="/matter"
render={() => <Redirect to="/matter/list"/>}
/>
<Route path="/matter/list" component={MatterList}/>
<Route path="/share/list" component={ShareList}/>
<Route path="/share/detail/:uuid" component={ShareDetail}/>
<Route path="/bin/list" component={BinList}/>
</div>
) : (
<div className="pages-content">
<Route path="/install/index" component={InstallIndex}/>
</div>
)}
</ContentLayout>
<BottomLayout/>
</div>
);
} else { } else {
content = <FrameLoading/>; that.user.httpInfo(true, function () {
that.initialized = true;
that.updateUI();
});
} }
},
function (errMessage: string, response: any) {
that.initialized = true;
that.updateUI();
if (
response &&
response.data &&
response.data['code'] === WebResultCode.NOT_INSTALLED
) {
MessageBoxUtil.warning('网站尚未安装,即将引导进入安装页面!');
that.preference.installed = false;
Sun.navigateTo('/install/index');
}
}
);
}
return <div className="pages-frame">{content}</div>; render() {
let content: React.ReactNode;
if (this.initialized) {
content = (
<div className="pages-frame-inner">
<SideLayout />
<TopLayout />
<ContentLayout>
{this.preference.installed ? (
<div className="pages-content">
<Route
exact
path="/"
render={() => <Redirect to="/matter/list" />}
/>
<Route path="/user/login" component={UserLogin} />
<Route path="/user/register" component={UserRegister} />
<Route path="/user/detail/:uuid" component={UserDetail} />
<Route path="/user/list" component={UserList} />
<Route path="/mobile/user/list" component={MobileUserList} />
<Route path="/user/create" component={UserEdit} />
<Route path="/user/edit/:uuid" component={UserEdit} />
<Route
path="/user/authentication/:authentication"
component={UserAuthentication}
/>
<Route path="/dashboard/index" component={DashboardIndex} />
<Route path="/preference/index" component={PreferenceIndex} />
<Route path="/preference/edit" component={PreferenceEdit} />
<Route
path="/preference/engine/edit"
component={PreferenceEngineEdit}
/>
<Route
path="/preference/scan/edit"
component={PreferenceScanEdit}
/>
<Route path="/matter/detail/:uuid" component={MatterDetail} />
<Route
exact
path="/matter"
render={() => <Redirect to="/matter/list" />}
/>
<Route path="/matter/list" component={MatterList} />
<Route path="/share/list" component={ShareList} />
<Route path="/share/detail/:uuid" component={ShareDetail} />
<Route path="/bin/list" component={BinList} />
<Route path="/space" component={SpaceList} />
</div>
) : (
<div className="pages-content">
<Route path="/install/index" component={InstallIndex} />
</div>
)}
</ContentLayout>
<BottomLayout />
</div>
);
} else {
content = <FrameLoading />;
} }
return <div className="pages-frame">{content}</div>;
}
} }
const Frame = withRouter<IProps, React.ComponentType<IProps>>(RawFrame); const Frame = withRouter<IProps, React.ComponentType<IProps>>(RawFrame);
View File
+11
View File
@@ -0,0 +1,11 @@
import React from 'react';
const List = () => {
return (
<div>
<h1>Space List</h1>
</div>
);
};
export default List;
+278 -11
View File
@@ -2348,7 +2348,7 @@ ajv@^8.0.0, ajv@^8.6.0, ajv@^8.8.0:
require-from-string "^2.0.2" require-from-string "^2.0.2"
uri-js "^4.2.2" uri-js "^4.2.2"
ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: ansi-escapes@^4.2.1, ansi-escapes@^4.3.0, ansi-escapes@^4.3.1:
version "4.3.2" version "4.3.2"
resolved "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" resolved "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
@@ -2389,6 +2389,11 @@ ansi-styles@^5.0.0:
resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
ansi-styles@^6.0.0:
version "6.2.1"
resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
antd@4.19.2: antd@4.19.2:
version "4.19.2" version "4.19.2"
resolved "https://registry.npmmirror.com/antd/-/antd-4.19.2.tgz#5438478aedf61bf670784611cba077387ff0f1b3" resolved "https://registry.npmmirror.com/antd/-/antd-4.19.2.tgz#5438478aedf61bf670784611cba077387ff0f1b3"
@@ -2535,6 +2540,11 @@ ast-types-flow@^0.0.7:
resolved "https://registry.npmmirror.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" resolved "https://registry.npmmirror.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==
astral-regex@^2.0.0:
version "2.0.0"
resolved "https://registry.npmmirror.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
async-validator@^4.0.2: async-validator@^4.0.2:
version "4.0.7" version "4.0.7"
resolved "https://registry.npmmirror.com/async-validator/-/async-validator-4.0.7.tgz#034a0fd2103a6b2ebf010da75183bec299247afe" resolved "https://registry.npmmirror.com/async-validator/-/async-validator-4.0.7.tgz#034a0fd2103a6b2ebf010da75183bec299247afe"
@@ -2810,7 +2820,7 @@ brace-expansion@^1.1.7:
balanced-match "^1.0.0" balanced-match "^1.0.0"
concat-map "0.0.1" concat-map "0.0.1"
braces@^3.0.1, braces@~3.0.2: braces@^3.0.1, braces@^3.0.2, braces@~3.0.2:
version "3.0.2" version "3.0.2"
resolved "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" resolved "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
@@ -2921,6 +2931,11 @@ case-sensitive-paths-webpack-plugin@^2.4.0:
resolved "https://registry.npmmirror.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" resolved "https://registry.npmmirror.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4"
integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw== integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==
chalk@5.2.0:
version "5.2.0"
resolved "https://registry.npmmirror.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3"
integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==
chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2:
version "2.4.2" version "2.4.2"
resolved "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" resolved "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
@@ -3005,6 +3020,29 @@ clean-stack@^2.0.0:
resolved "https://registry.npmmirror.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" resolved "https://registry.npmmirror.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
cli-cursor@^3.1.0:
version "3.1.0"
resolved "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
dependencies:
restore-cursor "^3.1.0"
cli-truncate@^2.1.0:
version "2.1.0"
resolved "https://registry.npmmirror.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7"
integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==
dependencies:
slice-ansi "^3.0.0"
string-width "^4.2.0"
cli-truncate@^3.1.0:
version "3.1.0"
resolved "https://registry.npmmirror.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389"
integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==
dependencies:
slice-ansi "^5.0.0"
string-width "^5.0.0"
cliui@^7.0.2: cliui@^7.0.2:
version "7.0.4" version "7.0.4"
resolved "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" resolved "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
@@ -3067,6 +3105,11 @@ colorette@^2.0.10:
resolved "https://registry.npmmirror.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" resolved "https://registry.npmmirror.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da"
integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==
colorette@^2.0.19:
version "2.0.20"
resolved "https://registry.npmmirror.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a"
integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==
combined-stream@^1.0.8: combined-stream@^1.0.8:
version "1.0.8" version "1.0.8"
resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
@@ -3079,6 +3122,11 @@ comma-separated-values@^3.6.4:
resolved "https://registry.npmmirror.com/comma-separated-values/-/comma-separated-values-3.6.4.tgz#c309ec7024f74b7ae19223372054242617e35bd2" resolved "https://registry.npmmirror.com/comma-separated-values/-/comma-separated-values-3.6.4.tgz#c309ec7024f74b7ae19223372054242617e35bd2"
integrity sha512-B0mjBHUfu4JqzYM5NurRTBl2QuNqQ9/O62EUfL4+bo2KN81fGsFOFOHbHn5SP65n3lmFPzGLkdg8wfuLKk9HOQ== integrity sha512-B0mjBHUfu4JqzYM5NurRTBl2QuNqQ9/O62EUfL4+bo2KN81fGsFOFOHbHn5SP65n3lmFPzGLkdg8wfuLKk9HOQ==
commander@^10.0.0:
version "10.0.1"
resolved "https://registry.npmmirror.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06"
integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==
commander@^2.20.0: commander@^2.20.0:
version "2.20.3" version "2.20.3"
resolved "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" resolved "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
@@ -3495,7 +3543,7 @@ debug@2.6.9, debug@^2.6.0, debug@^2.6.9:
dependencies: dependencies:
ms "2.0.0" ms "2.0.0"
debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2: debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
version "4.3.4" version "4.3.4"
resolved "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" resolved "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
@@ -3782,6 +3830,11 @@ duplexer@^0.1.2:
resolved "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" resolved "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
eastasianwidth@^0.2.0:
version "0.2.0"
resolved "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
echarts-for-react@2.0.16: echarts-for-react@2.0.16:
version "2.0.16" version "2.0.16"
resolved "https://registry.npmmirror.com/echarts-for-react/-/echarts-for-react-2.0.16.tgz#8134a53dff90882c1e6a95c45ceab21e00f6c9f5" resolved "https://registry.npmmirror.com/echarts-for-react/-/echarts-for-react-2.0.16.tgz#8134a53dff90882c1e6a95c45ceab21e00f6c9f5"
@@ -4233,6 +4286,21 @@ execa@^5.0.0:
signal-exit "^3.0.3" signal-exit "^3.0.3"
strip-final-newline "^2.0.0" strip-final-newline "^2.0.0"
execa@^7.0.0:
version "7.1.1"
resolved "https://registry.npmmirror.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43"
integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==
dependencies:
cross-spawn "^7.0.3"
get-stream "^6.0.1"
human-signals "^4.3.0"
is-stream "^3.0.0"
merge-stream "^2.0.0"
npm-run-path "^5.1.0"
onetime "^6.0.0"
signal-exit "^3.0.7"
strip-final-newline "^3.0.0"
exit@^0.1.2: exit@^0.1.2:
version "0.1.2" version "0.1.2"
resolved "https://registry.npmmirror.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" resolved "https://registry.npmmirror.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
@@ -4556,7 +4624,7 @@ get-package-type@^0.1.0:
resolved "https://registry.npmmirror.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" resolved "https://registry.npmmirror.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
get-stream@^6.0.0: get-stream@^6.0.0, get-stream@^6.0.1:
version "6.0.1" version "6.0.1"
resolved "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" resolved "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
@@ -4859,6 +4927,16 @@ human-signals@^2.1.0:
resolved "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" resolved "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
human-signals@^4.3.0:
version "4.3.1"
resolved "https://registry.npmmirror.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2"
integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==
husky@^8.0.3:
version "8.0.3"
resolved "https://registry.npmmirror.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184"
integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==
iconv-lite@0.4.24, iconv-lite@^0.4.4: iconv-lite@0.4.24, iconv-lite@^0.4.4:
version "0.4.24" version "0.4.24"
resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
@@ -5047,6 +5125,11 @@ is-fullwidth-code-point@^3.0.0:
resolved "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" resolved "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
is-fullwidth-code-point@^4.0.0:
version "4.0.0"
resolved "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88"
integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==
is-generator-fn@^2.0.0: is-generator-fn@^2.0.0:
version "2.1.0" version "2.1.0"
resolved "https://registry.npmmirror.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" resolved "https://registry.npmmirror.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
@@ -5134,6 +5217,11 @@ is-stream@^2.0.0:
resolved "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" resolved "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
is-stream@^3.0.0:
version "3.0.0"
resolved "https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac"
integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==
is-string@^1.0.5, is-string@^1.0.7: is-string@^1.0.5, is-string@^1.0.7:
version "1.0.7" version "1.0.7"
resolved "https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" resolved "https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"
@@ -5876,6 +5964,11 @@ levn@~0.3.0:
prelude-ls "~1.1.2" prelude-ls "~1.1.2"
type-check "~0.3.2" type-check "~0.3.2"
lilconfig@2.1.0:
version "2.1.0"
resolved "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52"
integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==
lilconfig@^2.0.3, lilconfig@^2.0.4: lilconfig@^2.0.3, lilconfig@^2.0.4:
version "2.0.4" version "2.0.4"
resolved "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082" resolved "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082"
@@ -5886,6 +5979,39 @@ lines-and-columns@^1.1.6:
resolved "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" resolved "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
lint-staged@^13.2.2:
version "13.2.2"
resolved "https://registry.npmmirror.com/lint-staged/-/lint-staged-13.2.2.tgz#5e711d3139c234f73402177be2f8dd312e6508ca"
integrity sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA==
dependencies:
chalk "5.2.0"
cli-truncate "^3.1.0"
commander "^10.0.0"
debug "^4.3.4"
execa "^7.0.0"
lilconfig "2.1.0"
listr2 "^5.0.7"
micromatch "^4.0.5"
normalize-path "^3.0.0"
object-inspect "^1.12.3"
pidtree "^0.6.0"
string-argv "^0.3.1"
yaml "^2.2.2"
listr2@^5.0.7:
version "5.0.8"
resolved "https://registry.npmmirror.com/listr2/-/listr2-5.0.8.tgz#a9379ffeb4bd83a68931a65fb223a11510d6ba23"
integrity sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==
dependencies:
cli-truncate "^2.1.0"
colorette "^2.0.19"
log-update "^4.0.0"
p-map "^4.0.0"
rfdc "^1.3.0"
rxjs "^7.8.0"
through "^2.3.8"
wrap-ansi "^7.0.0"
loader-runner@^4.2.0: loader-runner@^4.2.0:
version "4.2.0" version "4.2.0"
resolved "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" resolved "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384"
@@ -5974,6 +6100,16 @@ lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17
resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
log-update@^4.0.0:
version "4.0.0"
resolved "https://registry.npmmirror.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1"
integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==
dependencies:
ansi-escapes "^4.3.0"
cli-cursor "^3.1.0"
slice-ansi "^4.0.0"
wrap-ansi "^6.2.0"
loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0:
version "1.4.0" version "1.4.0"
resolved "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" resolved "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
@@ -6084,6 +6220,14 @@ micromatch@^4.0.2, micromatch@^4.0.4:
braces "^3.0.1" braces "^3.0.1"
picomatch "^2.2.3" picomatch "^2.2.3"
micromatch@^4.0.5:
version "4.0.5"
resolved "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
dependencies:
braces "^3.0.2"
picomatch "^2.3.1"
mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": mime-db@1.52.0, "mime-db@>= 1.43.0 < 2":
version "1.52.0" version "1.52.0"
resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
@@ -6106,6 +6250,11 @@ mimic-fn@^2.1.0:
resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
mimic-fn@^4.0.0:
version "4.0.0"
resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc"
integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==
mini-create-react-context@^0.4.0: mini-create-react-context@^0.4.0:
version "0.4.1" version "0.4.1"
resolved "https://registry.npmmirror.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" resolved "https://registry.npmmirror.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e"
@@ -6259,6 +6408,13 @@ npm-run-path@^4.0.1:
dependencies: dependencies:
path-key "^3.0.0" path-key "^3.0.0"
npm-run-path@^5.1.0:
version "5.1.0"
resolved "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00"
integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==
dependencies:
path-key "^4.0.0"
nth-check@^1.0.2: nth-check@^1.0.2:
version "1.0.2" version "1.0.2"
resolved "https://registry.npmmirror.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" resolved "https://registry.npmmirror.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
@@ -6293,6 +6449,11 @@ object-inspect@^1.11.0, object-inspect@^1.9.0:
resolved "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" resolved "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0"
integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==
object-inspect@^1.12.3:
version "1.12.3"
resolved "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9"
integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==
object-is@^1.0.1: object-is@^1.0.1:
version "1.1.5" version "1.1.5"
resolved "https://registry.npmmirror.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" resolved "https://registry.npmmirror.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac"
@@ -6384,13 +6545,20 @@ once@^1.3.0:
dependencies: dependencies:
wrappy "1" wrappy "1"
onetime@^5.1.2: onetime@^5.1.0, onetime@^5.1.2:
version "5.1.2" version "5.1.2"
resolved "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" resolved "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
dependencies: dependencies:
mimic-fn "^2.1.0" mimic-fn "^2.1.0"
onetime@^6.0.0:
version "6.0.0"
resolved "https://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4"
integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==
dependencies:
mimic-fn "^4.0.0"
open@^8.0.9, open@^8.4.0: open@^8.0.9, open@^8.4.0:
version "8.4.0" version "8.4.0"
resolved "https://registry.npmmirror.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" resolved "https://registry.npmmirror.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8"
@@ -6566,6 +6734,11 @@ path-key@^3.0.0, path-key@^3.1.0:
resolved "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" resolved "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
path-key@^4.0.0:
version "4.0.0"
resolved "https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18"
integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==
path-parse@^1.0.6, path-parse@^1.0.7: path-parse@^1.0.6, path-parse@^1.0.7:
version "1.0.7" version "1.0.7"
resolved "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" resolved "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
@@ -6608,11 +6781,16 @@ picocolors@^1.0.0:
resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1:
version "2.3.1" version "2.3.1"
resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
pidtree@^0.6.0:
version "0.6.0"
resolved "https://registry.npmmirror.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c"
integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==
pify@^4.0.1: pify@^4.0.1:
version "4.0.1" version "4.0.1"
resolved "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" resolved "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
@@ -7179,10 +7357,10 @@ prelude-ls@~1.1.2:
resolved "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" resolved "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==
prettier@^2.6.2: prettier@^2.8.8:
version "2.6.2" version "2.8.8"
resolved "https://registry.npmmirror.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" resolved "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da"
integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: pretty-bytes@^5.3.0, pretty-bytes@^5.4.1:
version "5.6.0" version "5.6.0"
@@ -8055,6 +8233,14 @@ resolve@^2.0.0-next.3:
is-core-module "^2.2.0" is-core-module "^2.2.0"
path-parse "^1.0.6" path-parse "^1.0.6"
restore-cursor@^3.1.0:
version "3.1.0"
resolved "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
dependencies:
onetime "^5.1.0"
signal-exit "^3.0.2"
retry@^0.13.1: retry@^0.13.1:
version "0.13.1" version "0.13.1"
resolved "https://registry.npmmirror.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" resolved "https://registry.npmmirror.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658"
@@ -8065,6 +8251,11 @@ reusify@^1.0.4:
resolved "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" resolved "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
rfdc@^1.3.0:
version "1.3.0"
resolved "https://registry.npmmirror.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b"
integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==
rimraf@^3.0.0, rimraf@^3.0.2: rimraf@^3.0.0, rimraf@^3.0.2:
version "3.0.2" version "3.0.2"
resolved "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" resolved "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
@@ -8096,6 +8287,13 @@ run-parallel@^1.1.9:
dependencies: dependencies:
queue-microtask "^1.2.2" queue-microtask "^1.2.2"
rxjs@^7.8.0:
version "7.8.1"
resolved "https://registry.npmmirror.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543"
integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==
dependencies:
tslib "^2.1.0"
safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2" version "5.1.2"
resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
@@ -8319,7 +8517,7 @@ side-channel@^1.0.4:
get-intrinsic "^1.0.2" get-intrinsic "^1.0.2"
object-inspect "^1.9.0" object-inspect "^1.9.0"
signal-exit@^3.0.2, signal-exit@^3.0.3: signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
version "3.0.7" version "3.0.7"
resolved "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" resolved "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
@@ -8344,6 +8542,32 @@ slash@^4.0.0:
resolved "https://registry.npmmirror.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" resolved "https://registry.npmmirror.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7"
integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==
slice-ansi@^3.0.0:
version "3.0.0"
resolved "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787"
integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==
dependencies:
ansi-styles "^4.0.0"
astral-regex "^2.0.0"
is-fullwidth-code-point "^3.0.0"
slice-ansi@^4.0.0:
version "4.0.0"
resolved "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
dependencies:
ansi-styles "^4.0.0"
astral-regex "^2.0.0"
is-fullwidth-code-point "^3.0.0"
slice-ansi@^5.0.0:
version "5.0.0"
resolved "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a"
integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==
dependencies:
ansi-styles "^6.0.0"
is-fullwidth-code-point "^4.0.0"
sockjs@^0.3.21: sockjs@^0.3.21:
version "0.3.24" version "0.3.24"
resolved "https://registry.npmmirror.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" resolved "https://registry.npmmirror.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce"
@@ -8457,6 +8681,11 @@ stackframe@^1.1.1:
resolved "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" resolved "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
string-argv@^0.3.1:
version "0.3.2"
resolved "https://registry.npmmirror.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6"
integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==
string-convert@^0.2.0: string-convert@^0.2.0:
version "0.2.1" version "0.2.1"
resolved "https://registry.npmmirror.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97" resolved "https://registry.npmmirror.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97"
@@ -8492,6 +8721,15 @@ string-width@^4.1.0, string-width@^4.2.0:
is-fullwidth-code-point "^3.0.0" is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.1" strip-ansi "^6.0.1"
string-width@^5.0.0:
version "5.1.2"
resolved "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
dependencies:
eastasianwidth "^0.2.0"
emoji-regex "^9.2.2"
strip-ansi "^7.0.1"
string.prototype.matchall@^4.0.6: string.prototype.matchall@^4.0.6:
version "4.0.6" version "4.0.6"
resolved "https://registry.npmmirror.com/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz#5abb5dabc94c7b0ea2380f65ba610b3a544b15fa" resolved "https://registry.npmmirror.com/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz#5abb5dabc94c7b0ea2380f65ba610b3a544b15fa"
@@ -8579,6 +8817,11 @@ strip-final-newline@^2.0.0:
resolved "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" resolved "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
strip-final-newline@^3.0.0:
version "3.0.0"
resolved "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd"
integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==
strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
version "3.1.1" version "3.1.1"
resolved "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" resolved "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
@@ -8773,6 +9016,11 @@ throat@^6.0.1:
resolved "https://registry.npmmirror.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" resolved "https://registry.npmmirror.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375"
integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==
through@^2.3.8:
version "2.3.8"
resolved "https://registry.npmmirror.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
thunky@^1.0.2: thunky@^1.0.2:
version "1.1.0" version "1.1.0"
resolved "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" resolved "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d"
@@ -8887,6 +9135,11 @@ tslib@^2.0.3, tslib@^2.3.0:
resolved "https://registry.npmmirror.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" resolved "https://registry.npmmirror.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
tslib@^2.1.0:
version "2.5.0"
resolved "https://registry.npmmirror.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf"
integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==
tsutils@^3.21.0: tsutils@^3.21.0:
version "3.21.0" version "3.21.0"
resolved "https://registry.npmmirror.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" resolved "https://registry.npmmirror.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
@@ -9506,6 +9759,15 @@ workbox-window@6.5.1:
"@types/trusted-types" "^2.0.2" "@types/trusted-types" "^2.0.2"
workbox-core "6.5.1" workbox-core "6.5.1"
wrap-ansi@^6.2.0:
version "6.2.0"
resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
dependencies:
ansi-styles "^4.0.0"
string-width "^4.1.0"
strip-ansi "^6.0.0"
wrap-ansi@^7.0.0: wrap-ansi@^7.0.0:
version "7.0.0" version "7.0.0"
resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
@@ -9570,6 +9832,11 @@ yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2:
resolved "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" resolved "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
yaml@^2.2.2:
version "2.2.2"
resolved "https://registry.npmmirror.com/yaml/-/yaml-2.2.2.tgz#ec551ef37326e6d42872dad1970300f8eb83a073"
integrity sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==
yargs-parser@^20.2.2: yargs-parser@^20.2.2:
version "20.2.9" version "20.2.9"
resolved "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" resolved "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"