feat: adjust
269
index.html
|
|
@ -1,153 +1,158 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en" id="htmlRoot">
|
<html lang="en" id="htmlRoot">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||||
<meta name="renderer" content="webkit" />
|
<meta name="renderer" content="webkit" />
|
||||||
<meta
|
<meta name="viewport"
|
||||||
name="viewport"
|
content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0" />
|
||||||
content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0"
|
<title>
|
||||||
/>
|
<%= VITE_GLOB_APP_TITLE %>
|
||||||
<title><%= VITE_GLOB_APP_TITLE %></title>
|
</title>
|
||||||
<link rel="icon" href="/favicon.ico" />
|
<link rel="icon" href="/favicon.ico" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div id="app">
|
<div id="app">
|
||||||
<style>
|
<style>
|
||||||
html[data-theme='dark'] .app-loading {
|
html[data-theme='dark'] .app-loading {
|
||||||
background-color: #2c344a;
|
background-color: #2c344a;
|
||||||
}
|
|
||||||
|
|
||||||
html[data-theme='dark'] .app-loading .app-loading-title {
|
|
||||||
color: rgb(255 255 255 / 85%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.app-loading {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
background-color: #f4f7f9;
|
|
||||||
}
|
|
||||||
|
|
||||||
.app-loading .app-loading-wrap {
|
|
||||||
display: flex;
|
|
||||||
position: absolute;
|
|
||||||
top: 50%;
|
|
||||||
left: 50%;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
transform: translate3d(-50%, -50%, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.app-loading .dots {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
padding: 98px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.app-loading .app-loading-title {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
margin-top: 30px;
|
|
||||||
color: rgb(0 0 0 / 85%);
|
|
||||||
font-size: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.app-loading .app-loading-logo {
|
|
||||||
display: block;
|
|
||||||
width: 90px;
|
|
||||||
margin: 0 auto;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dot {
|
|
||||||
display: inline-block;
|
|
||||||
position: relative;
|
|
||||||
box-sizing: border-box;
|
|
||||||
width: 48px;
|
|
||||||
height: 48px;
|
|
||||||
margin-top: 30px;
|
|
||||||
transform: rotate(45deg);
|
|
||||||
animation: ant-rotate 1.2s infinite linear;
|
|
||||||
font-size: 32px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dot i {
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
width: 20px;
|
|
||||||
height: 20px;
|
|
||||||
transform: scale(0.75);
|
|
||||||
transform-origin: 50% 50%;
|
|
||||||
animation: ant-spin-move 1s infinite linear alternate;
|
|
||||||
border-radius: 100%;
|
|
||||||
opacity: 0.3;
|
|
||||||
background-color: #0065cc;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dot i:nth-child(1) {
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dot i:nth-child(2) {
|
|
||||||
top: 0;
|
|
||||||
right: 0;
|
|
||||||
animation-delay: 0.4s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dot i:nth-child(3) {
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
animation-delay: 0.8s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dot i:nth-child(4) {
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
animation-delay: 1.2s;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes ant-rotate {
|
|
||||||
to {
|
|
||||||
transform: rotate(405deg);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes ant-rotate {
|
html[data-theme='dark'] .app-loading .app-loading-title {
|
||||||
to {
|
color: rgb(255 255 255 / 85%);
|
||||||
transform: rotate(405deg);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes ant-spin-move {
|
.app-loading {
|
||||||
to {
|
display: flex;
|
||||||
opacity: 1;
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background-color: #f4f7f9;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes ant-spin-move {
|
.app-loading .app-loading-wrap {
|
||||||
to {
|
display: flex;
|
||||||
opacity: 1;
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
transform: translate3d(-50%, -50%, 0);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
</style>
|
.app-loading .dots {
|
||||||
<div class="app-loading">
|
display: flex;
|
||||||
<div class="app-loading-wrap">
|
align-items: center;
|
||||||
<img src="/resource/img/logo.png" class="app-loading-logo" alt="Logo" />
|
justify-content: center;
|
||||||
<div class="app-loading-dots">
|
padding: 98px;
|
||||||
<span class="dot dot-spin"><i></i><i></i><i></i><i></i></span>
|
}
|
||||||
|
|
||||||
|
.app-loading .app-loading-title {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
margin-top: 30px;
|
||||||
|
color: rgb(0 0 0 / 85%);
|
||||||
|
font-size: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-loading .app-loading-logo {
|
||||||
|
display: block;
|
||||||
|
width: 200px;
|
||||||
|
margin: 0 auto;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dot {
|
||||||
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
|
box-sizing: border-box;
|
||||||
|
width: 48px;
|
||||||
|
height: 48px;
|
||||||
|
margin-top: 30px;
|
||||||
|
transform: rotate(45deg);
|
||||||
|
animation: ant-rotate 1.2s infinite linear;
|
||||||
|
font-size: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dot i {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
transform: scale(0.75);
|
||||||
|
transform-origin: 50% 50%;
|
||||||
|
animation: ant-spin-move 1s infinite linear alternate;
|
||||||
|
border-radius: 100%;
|
||||||
|
opacity: 0.3;
|
||||||
|
background-color: #0065cc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dot i:nth-child(1) {
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dot i:nth-child(2) {
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
animation-delay: 0.4s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dot i:nth-child(3) {
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
animation-delay: 0.8s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dot i:nth-child(4) {
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
animation-delay: 1.2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes ant-rotate {
|
||||||
|
to {
|
||||||
|
transform: rotate(405deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes ant-rotate {
|
||||||
|
to {
|
||||||
|
transform: rotate(405deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes ant-spin-move {
|
||||||
|
to {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes ant-spin-move {
|
||||||
|
to {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div class="app-loading">
|
||||||
|
<div class="app-loading-wrap">
|
||||||
|
<img src="/resource/img/logo.png" class="app-loading-logo" alt="Logo" />
|
||||||
|
<div class="app-loading-dots">
|
||||||
|
<span class="dot dot-spin"><i></i><i></i><i></i><i></i></span>
|
||||||
|
</div>
|
||||||
|
<!-- <div class="app-loading-title">
|
||||||
|
<%= VITE_GLOB_APP_TITLE %>
|
||||||
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
<div class="app-loading-title"><%= VITE_GLOB_APP_TITLE %></div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<script type="module" src="/src/main.ts"></script>
|
||||||
<script type="module" src="/src/main.ts"></script>
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -0,0 +1,539 @@
|
||||||
|
{
|
||||||
|
"name": "@vben/stylelint-config",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"lockfileVersion": 3,
|
||||||
|
"requires": true,
|
||||||
|
"packages": {
|
||||||
|
"": {
|
||||||
|
"name": "@vben/stylelint-config",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"license": "MIT",
|
||||||
|
"devDependencies": {
|
||||||
|
"postcss": "^8.4.38",
|
||||||
|
"postcss-html": "^1.6.0",
|
||||||
|
"postcss-less": "^6.0.0",
|
||||||
|
"postcss-scss": "^4.0.9",
|
||||||
|
"prettier": "^3.2.5",
|
||||||
|
"stylelint": "^16.4.0",
|
||||||
|
"stylelint-config-property-sort-order-smacss": "^10.0.0",
|
||||||
|
"stylelint-config-recommended-scss": "^14.0.0",
|
||||||
|
"stylelint-config-recommended-vue": "^1.5.0",
|
||||||
|
"stylelint-config-standard": "^36.0.0",
|
||||||
|
"stylelint-config-standard-scss": "^13.1.0",
|
||||||
|
"stylelint-order": "^6.0.4",
|
||||||
|
"stylelint-prettier": "^5.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"../../node_modules/.pnpm/postcss-html@1.6.0/node_modules/postcss-html": {
|
||||||
|
"version": "1.6.0",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"htmlparser2": "^8.0.0",
|
||||||
|
"js-tokens": "^8.0.0",
|
||||||
|
"postcss": "^8.4.0",
|
||||||
|
"postcss-safe-parser": "^6.0.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@ota-meshi/eslint-plugin": "^0.15.0",
|
||||||
|
"autoprefixer": "^10.3.7",
|
||||||
|
"chai": "~4.3.4",
|
||||||
|
"codecov": "^3.8.3",
|
||||||
|
"eslint": "^8.0.1",
|
||||||
|
"eslint-config-prettier": "^8.3.0",
|
||||||
|
"eslint-plugin-eslint-comments": "^3.2.0",
|
||||||
|
"eslint-plugin-json-schema-validator": "^4.0.0",
|
||||||
|
"eslint-plugin-jsonc": "^2.0.0",
|
||||||
|
"eslint-plugin-n": "^16.6.2",
|
||||||
|
"eslint-plugin-node": "^11.1.0",
|
||||||
|
"eslint-plugin-node-dependencies": "^0.11.0",
|
||||||
|
"eslint-plugin-prettier": "^5.0.0",
|
||||||
|
"eslint-plugin-regexp": "^1.4.1",
|
||||||
|
"eslint-plugin-vue": "^9.0.0",
|
||||||
|
"eslint-plugin-yml": "^1.0.0",
|
||||||
|
"mocha": "^10.0.0",
|
||||||
|
"mocha-chai-jest-snapshot": "^1.1.3",
|
||||||
|
"nyc": "^15.1.0",
|
||||||
|
"postcss-less": "^6.0.0",
|
||||||
|
"postcss-scss": "^4.0.1",
|
||||||
|
"postcss-styl": "^0.12.0",
|
||||||
|
"prettier": "^3.0.0",
|
||||||
|
"stylelint": "^14.4.0",
|
||||||
|
"stylelint-config-standard": "^28.0.0",
|
||||||
|
"sugarss": "^4.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^12 || >=14"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"../../node_modules/.pnpm/postcss-less@6.0.0_postcss@8.4.38/node_modules/postcss-less": {
|
||||||
|
"version": "6.0.0",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"devDependencies": {
|
||||||
|
"@commitlint/cli": "^12.1.4",
|
||||||
|
"@commitlint/config-conventional": "^12.1.4",
|
||||||
|
"ava": "^3.15.0",
|
||||||
|
"cheerio": "^1.0.0-rc.10",
|
||||||
|
"eslint-config-shellscape": "^2.0.2",
|
||||||
|
"eslint-plugin-filenames": "^1.2.0",
|
||||||
|
"is-absolute-url": "^3.0.0",
|
||||||
|
"less": "^4.1.1",
|
||||||
|
"lint-staged": "^11.0.0",
|
||||||
|
"node-fetch": "^2.6.1",
|
||||||
|
"nyc": "^15.1.0",
|
||||||
|
"postcss": "^8.3.5",
|
||||||
|
"postcss-parser-tests": "^8.3.5",
|
||||||
|
"pre-commit": "^1.2.2",
|
||||||
|
"url-join": "^4.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"postcss": "^8.3.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"../../node_modules/.pnpm/postcss-scss@4.0.9_postcss@8.4.38/node_modules/postcss-scss": {
|
||||||
|
"version": "4.0.9",
|
||||||
|
"dev": true,
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/postcss/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "tidelift",
|
||||||
|
"url": "https://tidelift.com/funding/github/npm/postcss-scss"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/ai"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"postcss": "^8.4.29"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss": {
|
||||||
|
"version": "8.4.38",
|
||||||
|
"dev": true,
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/postcss/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "tidelift",
|
||||||
|
"url": "https://tidelift.com/funding/github/npm/postcss"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/ai"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"nanoid": "^3.3.7",
|
||||||
|
"picocolors": "^1.0.0",
|
||||||
|
"source-map-js": "^1.2.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^10 || ^12 || >=14"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"../../node_modules/.pnpm/prettier@3.2.5/node_modules/prettier": {
|
||||||
|
"version": "3.2.5",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"bin": {
|
||||||
|
"prettier": "bin/prettier.cjs"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/prettier/prettier?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"../../node_modules/.pnpm/stylelint-config-property-sort-order-smacss@10.0.0_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-config-property-sort-order-smacss": {
|
||||||
|
"version": "10.0.0",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"css-property-sort-order-smacss": "~2.2.0",
|
||||||
|
"stylelint-order": "^6.0.4"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"coveralls": "^3.1.0",
|
||||||
|
"eslint": "^8.2.0",
|
||||||
|
"eslint-config-airbnb-base": "^15.0.0",
|
||||||
|
"eslint-config-prettier": "^9.0.0",
|
||||||
|
"eslint-plugin-import": "^2.25.2",
|
||||||
|
"jest": "^29.0.1",
|
||||||
|
"jest-light-runner": "^0.6.0",
|
||||||
|
"prettier": "^3.0.0",
|
||||||
|
"proxyquire": "^2.0.0",
|
||||||
|
"stylelint": "^14.0.0 || ^15.0.0 || ^16.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18.12.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"stylelint": "^14.0.0 || ^15.0.0 || ^16.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"../../node_modules/.pnpm/stylelint-config-recommended-scss@14.0.0_postcss@8.4.38_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-config-recommended-scss": {
|
||||||
|
"version": "14.0.0",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"postcss-scss": "^4.0.9",
|
||||||
|
"stylelint-config-recommended": "^14.0.0",
|
||||||
|
"stylelint-scss": "^6.0.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@stylelint/prettier-config": "^3.0.0",
|
||||||
|
"@stylelint/remark-preset": "^5.0.0",
|
||||||
|
"cross-env": "^7.0.3",
|
||||||
|
"eslint": "^8.55.0",
|
||||||
|
"eslint-config-stylelint": "^20.0.0",
|
||||||
|
"eslint-plugin-jest": "^27.6.0",
|
||||||
|
"jest": "^29.7.0",
|
||||||
|
"np": "^9.0.0",
|
||||||
|
"npm-run-all2": "^5.0.2",
|
||||||
|
"prettier": "^3.1.0",
|
||||||
|
"remark-cli": "^12.0.0",
|
||||||
|
"stylelint": "^16.0.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18.12.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"postcss": "^8.3.3",
|
||||||
|
"stylelint": "^16.0.2"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"postcss": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"../../node_modules/.pnpm/stylelint-config-recommended-vue@1.5.0_postcss-html@1.6.0_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-config-recommended-vue": {
|
||||||
|
"version": "1.5.0",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"semver": "^7.3.5",
|
||||||
|
"stylelint-config-html": ">=1.0.0",
|
||||||
|
"stylelint-config-recommended": ">=6.0.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@ota-meshi/eslint-plugin": "^0.13.0",
|
||||||
|
"eslint": "^8.0.0",
|
||||||
|
"eslint-config-prettier": "^8.3.0",
|
||||||
|
"eslint-plugin-eslint-comments": "^3.2.0",
|
||||||
|
"eslint-plugin-json-schema-validator": "^4.0.0",
|
||||||
|
"eslint-plugin-jsonc": "^2.0.0",
|
||||||
|
"eslint-plugin-node": "^11.1.0",
|
||||||
|
"eslint-plugin-prettier": "^4.0.0",
|
||||||
|
"eslint-plugin-regexp": "^1.5.0",
|
||||||
|
"eslint-plugin-vue": "^9.0.0",
|
||||||
|
"eslint-plugin-yml": "^1.0.0",
|
||||||
|
"mocha": "^10.0.0",
|
||||||
|
"prettier": "^2.4.1",
|
||||||
|
"stylelint": "^15.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^12 || >=14"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ota-meshi"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"postcss-html": "^1.0.0",
|
||||||
|
"stylelint": ">=14.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"../../node_modules/.pnpm/stylelint-config-standard-scss@13.1.0_postcss@8.4.38_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-config-standard-scss": {
|
||||||
|
"version": "13.1.0",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"stylelint-config-recommended-scss": "^14.0.0",
|
||||||
|
"stylelint-config-standard": "^36.0.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@stylelint/prettier-config": "^3.0.0",
|
||||||
|
"@stylelint/remark-preset": "^5.0.0",
|
||||||
|
"eslint": "^8.57.0",
|
||||||
|
"eslint-config-stylelint": "^21.0.0",
|
||||||
|
"np": "^10.0.2",
|
||||||
|
"npm-run-all2": "^5.0.2",
|
||||||
|
"prettier": "^3.2.5",
|
||||||
|
"remark-cli": "^12.0.0",
|
||||||
|
"stylelint": "^16.3.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18.12.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"postcss": "^8.3.3",
|
||||||
|
"stylelint": "^16.3.1"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"postcss": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"../../node_modules/.pnpm/stylelint-config-standard@36.0.0_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-config-standard": {
|
||||||
|
"version": "36.0.0",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"stylelint-config-recommended": "^14.0.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@stylelint/prettier-config": "^3.0.0",
|
||||||
|
"@stylelint/remark-preset": "^5.0.0",
|
||||||
|
"eslint": "^8.56.0",
|
||||||
|
"eslint-config-stylelint": "^20.0.0",
|
||||||
|
"husky": "^8.0.3",
|
||||||
|
"lint-staged": "^15.2.0",
|
||||||
|
"np": "^9.2.0",
|
||||||
|
"npm-run-all": "^4.1.5",
|
||||||
|
"prettier": "^3.1.1",
|
||||||
|
"remark-cli": "^12.0.0",
|
||||||
|
"stylelint": "^16.1.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18.12.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"stylelint": "^16.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"../../node_modules/.pnpm/stylelint-order@6.0.4_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-order": {
|
||||||
|
"version": "6.0.4",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"postcss": "^8.4.32",
|
||||||
|
"postcss-sorting": "^8.0.2"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"eslint": "^8.55.0",
|
||||||
|
"eslint-config-hudochenkov": "^9.0.0",
|
||||||
|
"eslint-config-prettier": "^9.1.0",
|
||||||
|
"husky": "^8.0.3",
|
||||||
|
"jest": "^29.7.0",
|
||||||
|
"jest-light-runner": "^0.6.0",
|
||||||
|
"jest-preset-stylelint": "^7.0.0",
|
||||||
|
"jest-watch-typeahead": "^2.2.2",
|
||||||
|
"lint-staged": "^15.2.0",
|
||||||
|
"postcss-html": "^1.5.0",
|
||||||
|
"postcss-less": "^6.0.0",
|
||||||
|
"postcss-styled-syntax": "^0.5.0",
|
||||||
|
"prettier": "~3.1.0",
|
||||||
|
"prettier-config-hudochenkov": "^0.4.0",
|
||||||
|
"stylelint": "^16.0.1"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"stylelint": "^14.0.0 || ^15.0.0 || ^16.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"../../node_modules/.pnpm/stylelint-prettier@5.0.0_prettier@3.2.5_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-prettier": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"prettier-linter-helpers": "^1.0.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"eslint": "^8.44.0",
|
||||||
|
"eslint-config-prettier": "^9.0.0",
|
||||||
|
"eslint-plugin-n": "^16.3.1",
|
||||||
|
"eslint-plugin-prettier": "^5.0.0",
|
||||||
|
"postcss": "^8.4.25",
|
||||||
|
"postcss-html": "^1.5.0",
|
||||||
|
"postcss-markdown": "^1.2.0",
|
||||||
|
"postcss-scss": "^4.0.6",
|
||||||
|
"postcss-styled-syntax": "^0.5.0",
|
||||||
|
"postcss-syntax": "^0.36.2",
|
||||||
|
"prettier": "^3.0.0",
|
||||||
|
"prettier-plugin-astro": "^0.12.1",
|
||||||
|
"prettier-plugin-svelte": "^3.0.0",
|
||||||
|
"strip-ansi": "^7.1.0",
|
||||||
|
"stylelint": "^16.0.1",
|
||||||
|
"stylelint-test-rule-node": "^0.2.0",
|
||||||
|
"svelte": "^4.1.0",
|
||||||
|
"typescript": "5.3.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18.12.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"prettier": ">=3.0.0",
|
||||||
|
"stylelint": ">=16.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"../../node_modules/.pnpm/stylelint@16.4.0_typescript@5.4.5/node_modules/stylelint": {
|
||||||
|
"version": "16.4.0",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@csstools/css-parser-algorithms": "^2.6.1",
|
||||||
|
"@csstools/css-tokenizer": "^2.2.4",
|
||||||
|
"@csstools/media-query-list-parser": "^2.1.9",
|
||||||
|
"@csstools/selector-specificity": "^3.0.3",
|
||||||
|
"@dual-bundle/import-meta-resolve": "^4.0.0",
|
||||||
|
"balanced-match": "^2.0.0",
|
||||||
|
"colord": "^2.9.3",
|
||||||
|
"cosmiconfig": "^9.0.0",
|
||||||
|
"css-functions-list": "^3.2.2",
|
||||||
|
"css-tree": "^2.3.1",
|
||||||
|
"debug": "^4.3.4",
|
||||||
|
"fast-glob": "^3.3.2",
|
||||||
|
"fastest-levenshtein": "^1.0.16",
|
||||||
|
"file-entry-cache": "^8.0.0",
|
||||||
|
"global-modules": "^2.0.0",
|
||||||
|
"globby": "^11.1.0",
|
||||||
|
"globjoin": "^0.1.4",
|
||||||
|
"html-tags": "^3.3.1",
|
||||||
|
"ignore": "^5.3.1",
|
||||||
|
"imurmurhash": "^0.1.4",
|
||||||
|
"is-plain-object": "^5.0.0",
|
||||||
|
"known-css-properties": "^0.30.0",
|
||||||
|
"mathml-tag-names": "^2.1.3",
|
||||||
|
"meow": "^13.2.0",
|
||||||
|
"micromatch": "^4.0.5",
|
||||||
|
"normalize-path": "^3.0.0",
|
||||||
|
"picocolors": "^1.0.0",
|
||||||
|
"postcss": "^8.4.38",
|
||||||
|
"postcss-resolve-nested-selector": "^0.1.1",
|
||||||
|
"postcss-safe-parser": "^7.0.0",
|
||||||
|
"postcss-selector-parser": "^6.0.16",
|
||||||
|
"postcss-value-parser": "^4.2.0",
|
||||||
|
"resolve-from": "^5.0.0",
|
||||||
|
"string-width": "^4.2.3",
|
||||||
|
"strip-ansi": "^7.1.0",
|
||||||
|
"supports-hyperlinks": "^3.0.0",
|
||||||
|
"svg-tags": "^1.0.0",
|
||||||
|
"table": "^6.8.2",
|
||||||
|
"write-file-atomic": "^5.0.1"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"stylelint": "bin/stylelint.mjs"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@changesets/cli": "^2.27.1",
|
||||||
|
"@changesets/get-github-info": "^0.6.0",
|
||||||
|
"@jest/globals": "^29.7.0",
|
||||||
|
"@stylelint/prettier-config": "^3.0.0",
|
||||||
|
"@stylelint/remark-preset": "^5.0.0",
|
||||||
|
"@types/balanced-match": "^1.0.4",
|
||||||
|
"@types/css-tree": "^2.3.7",
|
||||||
|
"@types/debug": "^4.1.12",
|
||||||
|
"@types/file-entry-cache": "^5.0.4",
|
||||||
|
"@types/global-modules": "^2.0.2",
|
||||||
|
"@types/globjoin": "^0.1.2",
|
||||||
|
"@types/imurmurhash": "^0.1.4",
|
||||||
|
"@types/micromatch": "^4.0.7",
|
||||||
|
"@types/normalize-path": "^3.0.2",
|
||||||
|
"@types/postcss-less": "^4.0.6",
|
||||||
|
"@types/postcss-resolve-nested-selector": "^0.1.3",
|
||||||
|
"@types/postcss-safe-parser": "^5.0.4",
|
||||||
|
"@types/svg-tags": "^1.0.2",
|
||||||
|
"@types/write-file-atomic": "^4.0.3",
|
||||||
|
"benchmark": "^2.1.4",
|
||||||
|
"common-tags": "^1.8.2",
|
||||||
|
"deepmerge": "^4.3.1",
|
||||||
|
"eslint": "^8.57.0",
|
||||||
|
"eslint-config-stylelint": "^21.0.0",
|
||||||
|
"eslint-plugin-import": "^2.29.1",
|
||||||
|
"eslint-plugin-jest": "^28.2.0",
|
||||||
|
"husky": "^9.0.11",
|
||||||
|
"jest": "^29.7.0",
|
||||||
|
"jest-preset-stylelint": "^7.0.0",
|
||||||
|
"jest-watch-typeahead": "^2.2.2",
|
||||||
|
"lint-staged": "^15.2.2",
|
||||||
|
"np": "^10.0.5",
|
||||||
|
"npm-run-all": "^4.1.5",
|
||||||
|
"patch-package": "^8.0.0",
|
||||||
|
"postcss-html": "^1.6.0",
|
||||||
|
"postcss-import": "^16.1.0",
|
||||||
|
"postcss-less": "^6.0.0",
|
||||||
|
"postcss-sass": "^0.5.0",
|
||||||
|
"postcss-scss": "^4.0.9",
|
||||||
|
"remark-cli": "^12.0.0",
|
||||||
|
"rollup": "^4.16.3",
|
||||||
|
"sugarss": "^4.0.1",
|
||||||
|
"typescript": "^5.4.5"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18.12.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/stylelint"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/postcss": {
|
||||||
|
"resolved": "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss",
|
||||||
|
"link": true
|
||||||
|
},
|
||||||
|
"node_modules/postcss-html": {
|
||||||
|
"resolved": "../../node_modules/.pnpm/postcss-html@1.6.0/node_modules/postcss-html",
|
||||||
|
"link": true
|
||||||
|
},
|
||||||
|
"node_modules/postcss-less": {
|
||||||
|
"resolved": "../../node_modules/.pnpm/postcss-less@6.0.0_postcss@8.4.38/node_modules/postcss-less",
|
||||||
|
"link": true
|
||||||
|
},
|
||||||
|
"node_modules/postcss-scss": {
|
||||||
|
"resolved": "../../node_modules/.pnpm/postcss-scss@4.0.9_postcss@8.4.38/node_modules/postcss-scss",
|
||||||
|
"link": true
|
||||||
|
},
|
||||||
|
"node_modules/prettier": {
|
||||||
|
"resolved": "../../node_modules/.pnpm/prettier@3.2.5/node_modules/prettier",
|
||||||
|
"link": true
|
||||||
|
},
|
||||||
|
"node_modules/stylelint": {
|
||||||
|
"resolved": "../../node_modules/.pnpm/stylelint@16.4.0_typescript@5.4.5/node_modules/stylelint",
|
||||||
|
"link": true
|
||||||
|
},
|
||||||
|
"node_modules/stylelint-config-property-sort-order-smacss": {
|
||||||
|
"resolved": "../../node_modules/.pnpm/stylelint-config-property-sort-order-smacss@10.0.0_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-config-property-sort-order-smacss",
|
||||||
|
"link": true
|
||||||
|
},
|
||||||
|
"node_modules/stylelint-config-recommended-scss": {
|
||||||
|
"resolved": "../../node_modules/.pnpm/stylelint-config-recommended-scss@14.0.0_postcss@8.4.38_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-config-recommended-scss",
|
||||||
|
"link": true
|
||||||
|
},
|
||||||
|
"node_modules/stylelint-config-recommended-vue": {
|
||||||
|
"resolved": "../../node_modules/.pnpm/stylelint-config-recommended-vue@1.5.0_postcss-html@1.6.0_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-config-recommended-vue",
|
||||||
|
"link": true
|
||||||
|
},
|
||||||
|
"node_modules/stylelint-config-standard": {
|
||||||
|
"resolved": "../../node_modules/.pnpm/stylelint-config-standard@36.0.0_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-config-standard",
|
||||||
|
"link": true
|
||||||
|
},
|
||||||
|
"node_modules/stylelint-config-standard-scss": {
|
||||||
|
"resolved": "../../node_modules/.pnpm/stylelint-config-standard-scss@13.1.0_postcss@8.4.38_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-config-standard-scss",
|
||||||
|
"link": true
|
||||||
|
},
|
||||||
|
"node_modules/stylelint-order": {
|
||||||
|
"resolved": "../../node_modules/.pnpm/stylelint-order@6.0.4_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-order",
|
||||||
|
"link": true
|
||||||
|
},
|
||||||
|
"node_modules/stylelint-prettier": {
|
||||||
|
"resolved": "../../node_modules/.pnpm/stylelint-prettier@5.0.0_prettier@3.2.5_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-prettier",
|
||||||
|
"link": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,148 @@
|
||||||
|
{
|
||||||
|
"name": "@vben/ts-config",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"lockfileVersion": 3,
|
||||||
|
"requires": true,
|
||||||
|
"packages": {
|
||||||
|
"": {
|
||||||
|
"name": "@vben/ts-config",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/node": "^20.12.7",
|
||||||
|
"vite": "^5.2.10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"../../node_modules/.pnpm/@types+node@20.12.7/node_modules/@types/node": {
|
||||||
|
"version": "20.12.7",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"undici-types": "~5.26.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"../../node_modules/.pnpm/vite@5.2.10_@types+node@20.12.7_less@4.2.0_sass@1.75.0_terser@5.19.3/node_modules/vite": {
|
||||||
|
"version": "5.2.10",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"esbuild": "^0.20.1",
|
||||||
|
"postcss": "^8.4.38",
|
||||||
|
"rollup": "^4.13.0"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"vite": "bin/vite.js"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@ampproject/remapping": "^2.3.0",
|
||||||
|
"@babel/parser": "^7.24.4",
|
||||||
|
"@jridgewell/trace-mapping": "^0.3.25",
|
||||||
|
"@polka/compression": "^1.0.0-next.25",
|
||||||
|
"@rollup/plugin-alias": "^5.1.0",
|
||||||
|
"@rollup/plugin-commonjs": "^25.0.7",
|
||||||
|
"@rollup/plugin-dynamic-import-vars": "^2.1.2",
|
||||||
|
"@rollup/plugin-json": "^6.1.0",
|
||||||
|
"@rollup/plugin-node-resolve": "15.2.3",
|
||||||
|
"@rollup/plugin-typescript": "^11.1.6",
|
||||||
|
"@rollup/pluginutils": "^5.1.0",
|
||||||
|
"@types/escape-html": "^1.0.4",
|
||||||
|
"@types/pnpapi": "^0.0.5",
|
||||||
|
"acorn": "^8.11.3",
|
||||||
|
"acorn-walk": "^8.3.2",
|
||||||
|
"artichokie": "^0.2.0",
|
||||||
|
"cac": "^6.7.14",
|
||||||
|
"chokidar": "^3.6.0",
|
||||||
|
"connect": "^3.7.0",
|
||||||
|
"convert-source-map": "^2.0.0",
|
||||||
|
"cors": "^2.8.5",
|
||||||
|
"cross-spawn": "^7.0.3",
|
||||||
|
"debug": "^4.3.4",
|
||||||
|
"dep-types": "link:./src/types",
|
||||||
|
"dotenv": "^16.4.5",
|
||||||
|
"dotenv-expand": "^11.0.6",
|
||||||
|
"es-module-lexer": "^1.5.0",
|
||||||
|
"escape-html": "^1.0.3",
|
||||||
|
"estree-walker": "^3.0.3",
|
||||||
|
"etag": "^1.8.1",
|
||||||
|
"fast-glob": "^3.3.2",
|
||||||
|
"http-proxy": "^1.18.1",
|
||||||
|
"launch-editor-middleware": "^2.6.1",
|
||||||
|
"lightningcss": "^1.24.1",
|
||||||
|
"magic-string": "^0.30.9",
|
||||||
|
"micromatch": "^4.0.5",
|
||||||
|
"mlly": "^1.6.1",
|
||||||
|
"mrmime": "^2.0.0",
|
||||||
|
"open": "^8.4.2",
|
||||||
|
"parse5": "^7.1.2",
|
||||||
|
"pathe": "^1.1.2",
|
||||||
|
"periscopic": "^4.0.2",
|
||||||
|
"picocolors": "^1.0.0",
|
||||||
|
"picomatch": "^2.3.1",
|
||||||
|
"postcss-import": "^16.1.0",
|
||||||
|
"postcss-load-config": "^4.0.2",
|
||||||
|
"postcss-modules": "^6.0.0",
|
||||||
|
"resolve.exports": "^2.0.2",
|
||||||
|
"rollup-plugin-dts": "^6.1.0",
|
||||||
|
"rollup-plugin-esbuild": "^6.1.1",
|
||||||
|
"rollup-plugin-license": "^3.3.1",
|
||||||
|
"sass": "^1.74.1",
|
||||||
|
"sirv": "^2.0.4",
|
||||||
|
"source-map-support": "^0.5.21",
|
||||||
|
"strip-ansi": "^7.1.0",
|
||||||
|
"strip-literal": "^2.1.0",
|
||||||
|
"tsconfck": "^3.0.3",
|
||||||
|
"tslib": "^2.6.2",
|
||||||
|
"types": "link:./types",
|
||||||
|
"ufo": "^1.5.3",
|
||||||
|
"ws": "^8.16.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^18.0.0 || >=20.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/vitejs/vite?sponsor=1"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"fsevents": "~2.3.3"
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@types/node": {
|
||||||
|
"resolved": "../../node_modules/.pnpm/@types+node@20.12.7/node_modules/@types/node",
|
||||||
|
"link": true
|
||||||
|
},
|
||||||
|
"node_modules/vite": {
|
||||||
|
"resolved": "../../node_modules/.pnpm/vite@5.2.10_@types+node@20.12.7_less@4.2.0_sass@1.75.0_terser@5.19.3/node_modules/vite",
|
||||||
|
"link": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,223 @@
|
||||||
|
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.modifierNames = exports.foregroundColorNames = exports.default = exports.colorNames = exports.backgroundColorNames = void 0;const ANSI_BACKGROUND_OFFSET = 10;
|
||||||
|
|
||||||
|
const wrapAnsi16 = (offset = 0) => (code) => `\u001B[${code + offset}m`;
|
||||||
|
|
||||||
|
const wrapAnsi256 = (offset = 0) => (code) => `\u001B[${38 + offset};5;${code}m`;
|
||||||
|
|
||||||
|
const wrapAnsi16m = (offset = 0) => (red, green, blue) => `\u001B[${38 + offset};2;${red};${green};${blue}m`;
|
||||||
|
|
||||||
|
const styles = {
|
||||||
|
modifier: {
|
||||||
|
reset: [0, 0],
|
||||||
|
// 21 isn't widely supported and 22 does the same thing
|
||||||
|
bold: [1, 22],
|
||||||
|
dim: [2, 22],
|
||||||
|
italic: [3, 23],
|
||||||
|
underline: [4, 24],
|
||||||
|
overline: [53, 55],
|
||||||
|
inverse: [7, 27],
|
||||||
|
hidden: [8, 28],
|
||||||
|
strikethrough: [9, 29]
|
||||||
|
},
|
||||||
|
color: {
|
||||||
|
black: [30, 39],
|
||||||
|
red: [31, 39],
|
||||||
|
green: [32, 39],
|
||||||
|
yellow: [33, 39],
|
||||||
|
blue: [34, 39],
|
||||||
|
magenta: [35, 39],
|
||||||
|
cyan: [36, 39],
|
||||||
|
white: [37, 39],
|
||||||
|
|
||||||
|
// Bright color
|
||||||
|
blackBright: [90, 39],
|
||||||
|
gray: [90, 39], // Alias of `blackBright`
|
||||||
|
grey: [90, 39], // Alias of `blackBright`
|
||||||
|
redBright: [91, 39],
|
||||||
|
greenBright: [92, 39],
|
||||||
|
yellowBright: [93, 39],
|
||||||
|
blueBright: [94, 39],
|
||||||
|
magentaBright: [95, 39],
|
||||||
|
cyanBright: [96, 39],
|
||||||
|
whiteBright: [97, 39]
|
||||||
|
},
|
||||||
|
bgColor: {
|
||||||
|
bgBlack: [40, 49],
|
||||||
|
bgRed: [41, 49],
|
||||||
|
bgGreen: [42, 49],
|
||||||
|
bgYellow: [43, 49],
|
||||||
|
bgBlue: [44, 49],
|
||||||
|
bgMagenta: [45, 49],
|
||||||
|
bgCyan: [46, 49],
|
||||||
|
bgWhite: [47, 49],
|
||||||
|
|
||||||
|
// Bright color
|
||||||
|
bgBlackBright: [100, 49],
|
||||||
|
bgGray: [100, 49], // Alias of `bgBlackBright`
|
||||||
|
bgGrey: [100, 49], // Alias of `bgBlackBright`
|
||||||
|
bgRedBright: [101, 49],
|
||||||
|
bgGreenBright: [102, 49],
|
||||||
|
bgYellowBright: [103, 49],
|
||||||
|
bgBlueBright: [104, 49],
|
||||||
|
bgMagentaBright: [105, 49],
|
||||||
|
bgCyanBright: [106, 49],
|
||||||
|
bgWhiteBright: [107, 49]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const modifierNames = Object.keys(styles.modifier);exports.modifierNames = modifierNames;
|
||||||
|
const foregroundColorNames = Object.keys(styles.color);exports.foregroundColorNames = foregroundColorNames;
|
||||||
|
const backgroundColorNames = Object.keys(styles.bgColor);exports.backgroundColorNames = backgroundColorNames;
|
||||||
|
const colorNames = [...foregroundColorNames, ...backgroundColorNames];exports.colorNames = colorNames;
|
||||||
|
|
||||||
|
function assembleStyles() {
|
||||||
|
const codes = new Map();
|
||||||
|
|
||||||
|
for (const [groupName, group] of Object.entries(styles)) {
|
||||||
|
for (const [styleName, style] of Object.entries(group)) {
|
||||||
|
styles[styleName] = {
|
||||||
|
open: `\u001B[${style[0]}m`,
|
||||||
|
close: `\u001B[${style[1]}m`
|
||||||
|
};
|
||||||
|
|
||||||
|
group[styleName] = styles[styleName];
|
||||||
|
|
||||||
|
codes.set(style[0], style[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
Object.defineProperty(styles, groupName, {
|
||||||
|
value: group,
|
||||||
|
enumerable: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
Object.defineProperty(styles, 'codes', {
|
||||||
|
value: codes,
|
||||||
|
enumerable: false
|
||||||
|
});
|
||||||
|
|
||||||
|
styles.color.close = '\u001B[39m';
|
||||||
|
styles.bgColor.close = '\u001B[49m';
|
||||||
|
|
||||||
|
styles.color.ansi = wrapAnsi16();
|
||||||
|
styles.color.ansi256 = wrapAnsi256();
|
||||||
|
styles.color.ansi16m = wrapAnsi16m();
|
||||||
|
styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
|
||||||
|
styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
|
||||||
|
styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
|
||||||
|
|
||||||
|
// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js
|
||||||
|
Object.defineProperties(styles, {
|
||||||
|
rgbToAnsi256: {
|
||||||
|
value(red, green, blue) {
|
||||||
|
// We use the extended greyscale palette here, with the exception of
|
||||||
|
// black and white. normal palette only has 4 greyscale shades.
|
||||||
|
if (red === green && green === blue) {
|
||||||
|
if (red < 8) {
|
||||||
|
return 16;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (red > 248) {
|
||||||
|
return 231;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Math.round((red - 8) / 247 * 24) + 232;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 16 +
|
||||||
|
36 * Math.round(red / 255 * 5) +
|
||||||
|
6 * Math.round(green / 255 * 5) +
|
||||||
|
Math.round(blue / 255 * 5);
|
||||||
|
},
|
||||||
|
enumerable: false
|
||||||
|
},
|
||||||
|
hexToRgb: {
|
||||||
|
value(hex) {
|
||||||
|
const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
|
||||||
|
if (!matches) {
|
||||||
|
return [0, 0, 0];
|
||||||
|
}
|
||||||
|
|
||||||
|
let [colorString] = matches;
|
||||||
|
|
||||||
|
if (colorString.length === 3) {
|
||||||
|
colorString = [...colorString].map((character) => character + character).join('');
|
||||||
|
}
|
||||||
|
|
||||||
|
const integer = Number.parseInt(colorString, 16);
|
||||||
|
|
||||||
|
return [
|
||||||
|
/* eslint-disable no-bitwise */
|
||||||
|
integer >> 16 & 0xFF,
|
||||||
|
integer >> 8 & 0xFF,
|
||||||
|
integer & 0xFF
|
||||||
|
/* eslint-enable no-bitwise */];
|
||||||
|
|
||||||
|
},
|
||||||
|
enumerable: false
|
||||||
|
},
|
||||||
|
hexToAnsi256: {
|
||||||
|
value: (hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)),
|
||||||
|
enumerable: false
|
||||||
|
},
|
||||||
|
ansi256ToAnsi: {
|
||||||
|
value(code) {
|
||||||
|
if (code < 8) {
|
||||||
|
return 30 + code;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (code < 16) {
|
||||||
|
return 90 + (code - 8);
|
||||||
|
}
|
||||||
|
|
||||||
|
let red;
|
||||||
|
let green;
|
||||||
|
let blue;
|
||||||
|
|
||||||
|
if (code >= 232) {
|
||||||
|
red = ((code - 232) * 10 + 8) / 255;
|
||||||
|
green = red;
|
||||||
|
blue = red;
|
||||||
|
} else {
|
||||||
|
code -= 16;
|
||||||
|
|
||||||
|
const remainder = code % 36;
|
||||||
|
|
||||||
|
red = Math.floor(code / 36) / 5;
|
||||||
|
green = Math.floor(remainder / 6) / 5;
|
||||||
|
blue = remainder % 6 / 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
const value = Math.max(red, green, blue) * 2;
|
||||||
|
|
||||||
|
if (value === 0) {
|
||||||
|
return 30;
|
||||||
|
}
|
||||||
|
|
||||||
|
// eslint-disable-next-line no-bitwise
|
||||||
|
let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red));
|
||||||
|
|
||||||
|
if (value === 2) {
|
||||||
|
result += 60;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
},
|
||||||
|
enumerable: false
|
||||||
|
},
|
||||||
|
rgbToAnsi: {
|
||||||
|
value: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),
|
||||||
|
enumerable: false
|
||||||
|
},
|
||||||
|
hexToAnsi: {
|
||||||
|
value: (hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),
|
||||||
|
enumerable: false
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return styles;
|
||||||
|
}
|
||||||
|
|
||||||
|
const ansiStyles = assembleStyles();var _default =
|
||||||
|
|
||||||
|
ansiStyles;exports.default = _default; /* v7-28b0a5febe3644a0 */
|
||||||
|
|
@ -0,0 +1,94 @@
|
||||||
|
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.isIgnoredByIgnoreFilesSync = exports.isIgnoredByIgnoreFiles = exports.isGitIgnoredSync = exports.isGitIgnored = exports.GITIGNORE_FILES_PATTERN = void 0;var _nodeProcess = _interopRequireDefault(require("node:process"));
|
||||||
|
var _nodeFs = _interopRequireDefault(require("node:fs"));
|
||||||
|
var _nodePath = _interopRequireDefault(require("node:path"));
|
||||||
|
var _fastGlob = _interopRequireDefault(require("fast-glob"));
|
||||||
|
var _ignore = _interopRequireDefault(require("ignore"));
|
||||||
|
var _slash = _interopRequireDefault(require("slash"));
|
||||||
|
var _utilities = require("./utilities.js");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
|
||||||
|
|
||||||
|
const ignoreFilesGlobOptions = {
|
||||||
|
ignore: [
|
||||||
|
'**/node_modules',
|
||||||
|
'**/flow-typed',
|
||||||
|
'**/coverage',
|
||||||
|
'**/.git'],
|
||||||
|
|
||||||
|
absolute: true,
|
||||||
|
dot: true
|
||||||
|
};
|
||||||
|
|
||||||
|
const GITIGNORE_FILES_PATTERN = '**/.gitignore';exports.GITIGNORE_FILES_PATTERN = GITIGNORE_FILES_PATTERN;
|
||||||
|
|
||||||
|
const applyBaseToPattern = (pattern, base) => (0, _utilities.isNegativePattern)(pattern) ?
|
||||||
|
'!' + _nodePath.default.posix.join(base, pattern.slice(1)) :
|
||||||
|
_nodePath.default.posix.join(base, pattern);
|
||||||
|
|
||||||
|
const parseIgnoreFile = (file, cwd) => {
|
||||||
|
const base = (0, _slash.default)(_nodePath.default.relative(cwd, _nodePath.default.dirname(file.filePath)));
|
||||||
|
|
||||||
|
return file.content.
|
||||||
|
split(/\r?\n/).
|
||||||
|
filter((line) => line && !line.startsWith('#')).
|
||||||
|
map((pattern) => applyBaseToPattern(pattern, base));
|
||||||
|
};
|
||||||
|
|
||||||
|
const toRelativePath = (fileOrDirectory, cwd) => {
|
||||||
|
cwd = (0, _slash.default)(cwd);
|
||||||
|
if (_nodePath.default.isAbsolute(fileOrDirectory)) {
|
||||||
|
if ((0, _slash.default)(fileOrDirectory).startsWith(cwd)) {
|
||||||
|
return _nodePath.default.relative(cwd, fileOrDirectory);
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new Error(`Path ${fileOrDirectory} is not in cwd ${cwd}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return fileOrDirectory;
|
||||||
|
};
|
||||||
|
|
||||||
|
const getIsIgnoredPredicate = (files, cwd) => {
|
||||||
|
const patterns = files.flatMap((file) => parseIgnoreFile(file, cwd));
|
||||||
|
const ignores = (0, _ignore.default)().add(patterns);
|
||||||
|
|
||||||
|
return (fileOrDirectory) => {
|
||||||
|
fileOrDirectory = (0, _utilities.toPath)(fileOrDirectory);
|
||||||
|
fileOrDirectory = toRelativePath(fileOrDirectory, cwd);
|
||||||
|
return fileOrDirectory ? ignores.ignores((0, _slash.default)(fileOrDirectory)) : false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
const normalizeOptions = (options = {}) => ({
|
||||||
|
cwd: (0, _utilities.toPath)(options.cwd) || _nodeProcess.default.cwd(),
|
||||||
|
suppressErrors: Boolean(options.suppressErrors),
|
||||||
|
deep: typeof options.deep === 'number' ? options.deep : Number.POSITIVE_INFINITY
|
||||||
|
});
|
||||||
|
|
||||||
|
const isIgnoredByIgnoreFiles = async (patterns, options) => {
|
||||||
|
const { cwd, suppressErrors, deep } = normalizeOptions(options);
|
||||||
|
|
||||||
|
const paths = await (0, _fastGlob.default)(patterns, { cwd, suppressErrors, deep, ...ignoreFilesGlobOptions });
|
||||||
|
|
||||||
|
const files = await Promise.all(
|
||||||
|
paths.map(async (filePath) => ({
|
||||||
|
filePath,
|
||||||
|
content: await _nodeFs.default.promises.readFile(filePath, 'utf8')
|
||||||
|
}))
|
||||||
|
);
|
||||||
|
|
||||||
|
return getIsIgnoredPredicate(files, cwd);
|
||||||
|
};exports.isIgnoredByIgnoreFiles = isIgnoredByIgnoreFiles;
|
||||||
|
|
||||||
|
const isIgnoredByIgnoreFilesSync = (patterns, options) => {
|
||||||
|
const { cwd, suppressErrors, deep } = normalizeOptions(options);
|
||||||
|
|
||||||
|
const paths = _fastGlob.default.sync(patterns, { cwd, suppressErrors, deep, ...ignoreFilesGlobOptions });
|
||||||
|
|
||||||
|
const files = paths.map((filePath) => ({
|
||||||
|
filePath,
|
||||||
|
content: _nodeFs.default.readFileSync(filePath, 'utf8')
|
||||||
|
}));
|
||||||
|
|
||||||
|
return getIsIgnoredPredicate(files, cwd);
|
||||||
|
};exports.isIgnoredByIgnoreFilesSync = isIgnoredByIgnoreFilesSync;
|
||||||
|
|
||||||
|
const isGitIgnored = (options) => isIgnoredByIgnoreFiles(GITIGNORE_FILES_PATTERN, options);exports.isGitIgnored = isGitIgnored;
|
||||||
|
const isGitIgnoredSync = (options) => isIgnoredByIgnoreFilesSync(GITIGNORE_FILES_PATTERN, options);exports.isGitIgnoredSync = isGitIgnoredSync; /* v7-0eff28242bf3ace2 */
|
||||||
|
|
@ -0,0 +1,224 @@
|
||||||
|
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.isDynamicPattern = exports.globbySync = exports.globbyStream = exports.globby = exports.generateGlobTasksSync = exports.generateGlobTasks = void 0;Object.defineProperty(exports, "isGitIgnored", { enumerable: true, get: function () {return _ignore.isGitIgnored;} });Object.defineProperty(exports, "isGitIgnoredSync", { enumerable: true, get: function () {return _ignore.isGitIgnoredSync;} });var _nodeFs = _interopRequireDefault(require("node:fs"));
|
||||||
|
var _nodePath = _interopRequireDefault(require("node:path"));
|
||||||
|
var _merge = _interopRequireDefault(require("merge2"));
|
||||||
|
var _fastGlob = _interopRequireDefault(require("fast-glob"));
|
||||||
|
var _dirGlob = _interopRequireDefault(require("dir-glob"));
|
||||||
|
var _ignore = require("./ignore.js");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var _utilities = require("./utilities.js");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
|
||||||
|
|
||||||
|
const assertPatternsInput = (patterns) => {
|
||||||
|
if (patterns.some((pattern) => typeof pattern !== 'string')) {
|
||||||
|
throw new TypeError('Patterns must be a string or an array of strings');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const toPatternsArray = (patterns) => {
|
||||||
|
patterns = [...new Set([patterns].flat())];
|
||||||
|
assertPatternsInput(patterns);
|
||||||
|
return patterns;
|
||||||
|
};
|
||||||
|
|
||||||
|
const checkCwdOption = (options) => {
|
||||||
|
if (!options.cwd) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let stat;
|
||||||
|
try {
|
||||||
|
stat = _nodeFs.default.statSync(options.cwd);
|
||||||
|
} catch {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!stat.isDirectory()) {
|
||||||
|
throw new Error('The `cwd` option must be a path to a directory');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const normalizeOptions = (options = {}) => {
|
||||||
|
options = {
|
||||||
|
...options,
|
||||||
|
ignore: options.ignore || [],
|
||||||
|
expandDirectories: options.expandDirectories === undefined ?
|
||||||
|
true :
|
||||||
|
options.expandDirectories,
|
||||||
|
cwd: (0, _utilities.toPath)(options.cwd)
|
||||||
|
};
|
||||||
|
|
||||||
|
checkCwdOption(options);
|
||||||
|
|
||||||
|
return options;
|
||||||
|
};
|
||||||
|
|
||||||
|
const normalizeArguments = (fn) => async (patterns, options) => fn(toPatternsArray(patterns), normalizeOptions(options));
|
||||||
|
const normalizeArgumentsSync = (fn) => (patterns, options) => fn(toPatternsArray(patterns), normalizeOptions(options));
|
||||||
|
|
||||||
|
const getIgnoreFilesPatterns = (options) => {
|
||||||
|
const { ignoreFiles, gitignore } = options;
|
||||||
|
|
||||||
|
const patterns = ignoreFiles ? toPatternsArray(ignoreFiles) : [];
|
||||||
|
if (gitignore) {
|
||||||
|
patterns.push(_ignore.GITIGNORE_FILES_PATTERN);
|
||||||
|
}
|
||||||
|
|
||||||
|
return patterns;
|
||||||
|
};
|
||||||
|
|
||||||
|
const getFilter = async (options) => {
|
||||||
|
const ignoreFilesPatterns = getIgnoreFilesPatterns(options);
|
||||||
|
return createFilterFunction(
|
||||||
|
ignoreFilesPatterns.length > 0 && (await (0, _ignore.isIgnoredByIgnoreFiles)(ignoreFilesPatterns, options))
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
const getFilterSync = (options) => {
|
||||||
|
const ignoreFilesPatterns = getIgnoreFilesPatterns(options);
|
||||||
|
return createFilterFunction(
|
||||||
|
ignoreFilesPatterns.length > 0 && (0, _ignore.isIgnoredByIgnoreFilesSync)(ignoreFilesPatterns, options)
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
const createFilterFunction = (isIgnored) => {
|
||||||
|
const seen = new Set();
|
||||||
|
|
||||||
|
return (fastGlobResult) => {
|
||||||
|
const path = fastGlobResult.path || fastGlobResult;
|
||||||
|
const pathKey = _nodePath.default.normalize(path);
|
||||||
|
const seenOrIgnored = seen.has(pathKey) || isIgnored && isIgnored(path);
|
||||||
|
seen.add(pathKey);
|
||||||
|
return !seenOrIgnored;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
const unionFastGlobResults = (results, filter) => results.flat().filter((fastGlobResult) => filter(fastGlobResult));
|
||||||
|
const unionFastGlobStreams = (streams, filter) => (0, _merge.default)(streams).pipe(new _utilities.FilterStream((fastGlobResult) => filter(fastGlobResult)));
|
||||||
|
|
||||||
|
const convertNegativePatterns = (patterns, options) => {
|
||||||
|
const tasks = [];
|
||||||
|
|
||||||
|
while (patterns.length > 0) {
|
||||||
|
const index = patterns.findIndex((pattern) => (0, _utilities.isNegativePattern)(pattern));
|
||||||
|
|
||||||
|
if (index === -1) {
|
||||||
|
tasks.push({ patterns, options });
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
const ignorePattern = patterns[index].slice(1);
|
||||||
|
|
||||||
|
for (const task of tasks) {
|
||||||
|
task.options.ignore.push(ignorePattern);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (index !== 0) {
|
||||||
|
tasks.push({
|
||||||
|
patterns: patterns.slice(0, index),
|
||||||
|
options: {
|
||||||
|
...options,
|
||||||
|
ignore: [
|
||||||
|
...options.ignore,
|
||||||
|
ignorePattern]
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
patterns = patterns.slice(index + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return tasks;
|
||||||
|
};
|
||||||
|
|
||||||
|
const getDirGlobOptions = (options, cwd) => ({
|
||||||
|
...(cwd ? { cwd } : {}),
|
||||||
|
...(Array.isArray(options) ? { files: options } : options)
|
||||||
|
});
|
||||||
|
|
||||||
|
const generateTasks = async (patterns, options) => {
|
||||||
|
const globTasks = convertNegativePatterns(patterns, options);
|
||||||
|
|
||||||
|
const { cwd, expandDirectories } = options;
|
||||||
|
|
||||||
|
if (!expandDirectories) {
|
||||||
|
return globTasks;
|
||||||
|
}
|
||||||
|
|
||||||
|
const patternExpandOptions = getDirGlobOptions(expandDirectories, cwd);
|
||||||
|
const ignoreExpandOptions = cwd ? { cwd } : undefined;
|
||||||
|
|
||||||
|
return Promise.all(
|
||||||
|
globTasks.map(async (task) => {
|
||||||
|
let { patterns, options } = task;
|
||||||
|
|
||||||
|
[
|
||||||
|
patterns,
|
||||||
|
options.ignore] =
|
||||||
|
await Promise.all([
|
||||||
|
(0, _dirGlob.default)(patterns, patternExpandOptions),
|
||||||
|
(0, _dirGlob.default)(options.ignore, ignoreExpandOptions)]
|
||||||
|
);
|
||||||
|
|
||||||
|
return { patterns, options };
|
||||||
|
})
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
const generateTasksSync = (patterns, options) => {
|
||||||
|
const globTasks = convertNegativePatterns(patterns, options);
|
||||||
|
|
||||||
|
const { cwd, expandDirectories } = options;
|
||||||
|
|
||||||
|
if (!expandDirectories) {
|
||||||
|
return globTasks;
|
||||||
|
}
|
||||||
|
|
||||||
|
const patternExpandOptions = getDirGlobOptions(expandDirectories, cwd);
|
||||||
|
const ignoreExpandOptions = cwd ? { cwd } : undefined;
|
||||||
|
|
||||||
|
return globTasks.map((task) => {
|
||||||
|
let { patterns, options } = task;
|
||||||
|
patterns = _dirGlob.default.sync(patterns, patternExpandOptions);
|
||||||
|
options.ignore = _dirGlob.default.sync(options.ignore, ignoreExpandOptions);
|
||||||
|
return { patterns, options };
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const globby = normalizeArguments(async (patterns, options) => {
|
||||||
|
const [
|
||||||
|
tasks,
|
||||||
|
filter] =
|
||||||
|
await Promise.all([
|
||||||
|
generateTasks(patterns, options),
|
||||||
|
getFilter(options)]
|
||||||
|
);
|
||||||
|
const results = await Promise.all(tasks.map((task) => (0, _fastGlob.default)(task.patterns, task.options)));
|
||||||
|
|
||||||
|
return unionFastGlobResults(results, filter);
|
||||||
|
});exports.globby = globby;
|
||||||
|
|
||||||
|
const globbySync = normalizeArgumentsSync((patterns, options) => {
|
||||||
|
const tasks = generateTasksSync(patterns, options);
|
||||||
|
const filter = getFilterSync(options);
|
||||||
|
const results = tasks.map((task) => _fastGlob.default.sync(task.patterns, task.options));
|
||||||
|
|
||||||
|
return unionFastGlobResults(results, filter);
|
||||||
|
});exports.globbySync = globbySync;
|
||||||
|
|
||||||
|
const globbyStream = normalizeArgumentsSync((patterns, options) => {
|
||||||
|
const tasks = generateTasksSync(patterns, options);
|
||||||
|
const filter = getFilterSync(options);
|
||||||
|
const streams = tasks.map((task) => _fastGlob.default.stream(task.patterns, task.options));
|
||||||
|
|
||||||
|
return unionFastGlobStreams(streams, filter);
|
||||||
|
});exports.globbyStream = globbyStream;
|
||||||
|
|
||||||
|
const isDynamicPattern = normalizeArgumentsSync(
|
||||||
|
(patterns, options) => patterns.some((pattern) => _fastGlob.default.isDynamicPattern(pattern, options))
|
||||||
|
);exports.isDynamicPattern = isDynamicPattern;
|
||||||
|
|
||||||
|
const generateGlobTasks = normalizeArguments(generateTasks);exports.generateGlobTasks = generateGlobTasks;
|
||||||
|
const generateGlobTasksSync = normalizeArgumentsSync(generateTasksSync);exports.generateGlobTasksSync = generateGlobTasksSync; /* v7-5fbae7b710226867 */
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.toPath = exports.isNegativePattern = exports.FilterStream = void 0;var _nodeUrl = require("node:url");
|
||||||
|
var _nodeStream = require("node:stream");
|
||||||
|
|
||||||
|
const toPath = (urlOrPath) => urlOrPath instanceof URL ? (0, _nodeUrl.fileURLToPath)(urlOrPath) : urlOrPath;exports.toPath = toPath;
|
||||||
|
|
||||||
|
class FilterStream extends _nodeStream.Transform {
|
||||||
|
constructor(filter) {
|
||||||
|
super({
|
||||||
|
objectMode: true,
|
||||||
|
transform(data, encoding, callback) {
|
||||||
|
callback(undefined, filter(data) ? data : undefined);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}exports.FilterStream = FilterStream;
|
||||||
|
|
||||||
|
const isNegativePattern = (pattern) => pattern[0] === '!';exports.isNegativePattern = isNegativePattern; /* v7-259a918aa3543465 */
|
||||||
|
|
@ -0,0 +1,122 @@
|
||||||
|
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = prettyBytes;const BYTE_UNITS = [
|
||||||
|
'B',
|
||||||
|
'kB',
|
||||||
|
'MB',
|
||||||
|
'GB',
|
||||||
|
'TB',
|
||||||
|
'PB',
|
||||||
|
'EB',
|
||||||
|
'ZB',
|
||||||
|
'YB'];
|
||||||
|
|
||||||
|
|
||||||
|
const BIBYTE_UNITS = [
|
||||||
|
'B',
|
||||||
|
'KiB',
|
||||||
|
'MiB',
|
||||||
|
'GiB',
|
||||||
|
'TiB',
|
||||||
|
'PiB',
|
||||||
|
'EiB',
|
||||||
|
'ZiB',
|
||||||
|
'YiB'];
|
||||||
|
|
||||||
|
|
||||||
|
const BIT_UNITS = [
|
||||||
|
'b',
|
||||||
|
'kbit',
|
||||||
|
'Mbit',
|
||||||
|
'Gbit',
|
||||||
|
'Tbit',
|
||||||
|
'Pbit',
|
||||||
|
'Ebit',
|
||||||
|
'Zbit',
|
||||||
|
'Ybit'];
|
||||||
|
|
||||||
|
|
||||||
|
const BIBIT_UNITS = [
|
||||||
|
'b',
|
||||||
|
'kibit',
|
||||||
|
'Mibit',
|
||||||
|
'Gibit',
|
||||||
|
'Tibit',
|
||||||
|
'Pibit',
|
||||||
|
'Eibit',
|
||||||
|
'Zibit',
|
||||||
|
'Yibit'];
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
Formats the given number using `Number#toLocaleString`.
|
||||||
|
- If locale is a string, the value is expected to be a locale-key (for example: `de`).
|
||||||
|
- If locale is true, the system default locale is used for translation.
|
||||||
|
- If no value for locale is specified, the number is returned unmodified.
|
||||||
|
*/
|
||||||
|
const toLocaleString = (number, locale, options) => {
|
||||||
|
let result = number;
|
||||||
|
if (typeof locale === 'string' || Array.isArray(locale)) {
|
||||||
|
result = number.toLocaleString(locale, options);
|
||||||
|
} else if (locale === true || options !== undefined) {
|
||||||
|
result = number.toLocaleString(undefined, options);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
|
||||||
|
function prettyBytes(number, options) {
|
||||||
|
if (!Number.isFinite(number)) {
|
||||||
|
throw new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
options = {
|
||||||
|
bits: false,
|
||||||
|
binary: false,
|
||||||
|
space: true,
|
||||||
|
...options
|
||||||
|
};
|
||||||
|
|
||||||
|
const UNITS = options.bits ?
|
||||||
|
options.binary ? BIBIT_UNITS : BIT_UNITS :
|
||||||
|
options.binary ? BIBYTE_UNITS : BYTE_UNITS;
|
||||||
|
|
||||||
|
const separator = options.space ? ' ' : '';
|
||||||
|
|
||||||
|
if (options.signed && number === 0) {
|
||||||
|
return ` 0${separator}${UNITS[0]}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
const isNegative = number < 0;
|
||||||
|
const prefix = isNegative ? '-' : options.signed ? '+' : '';
|
||||||
|
|
||||||
|
if (isNegative) {
|
||||||
|
number = -number;
|
||||||
|
}
|
||||||
|
|
||||||
|
let localeOptions;
|
||||||
|
|
||||||
|
if (options.minimumFractionDigits !== undefined) {
|
||||||
|
localeOptions = { minimumFractionDigits: options.minimumFractionDigits };
|
||||||
|
}
|
||||||
|
|
||||||
|
if (options.maximumFractionDigits !== undefined) {
|
||||||
|
localeOptions = { maximumFractionDigits: options.maximumFractionDigits, ...localeOptions };
|
||||||
|
}
|
||||||
|
|
||||||
|
if (number < 1) {
|
||||||
|
const numberString = toLocaleString(number, options.locale, localeOptions);
|
||||||
|
return prefix + numberString + separator + UNITS[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
const exponent = Math.min(Math.floor(options.binary ? Math.log(number) / Math.log(1024) : Math.log10(number) / 3), UNITS.length - 1);
|
||||||
|
number /= (options.binary ? 1024 : 1000) ** exponent;
|
||||||
|
|
||||||
|
if (!localeOptions) {
|
||||||
|
number = number.toPrecision(3);
|
||||||
|
}
|
||||||
|
|
||||||
|
const numberString = toLocaleString(Number(number), options.locale, localeOptions);
|
||||||
|
|
||||||
|
const unit = UNITS[exponent];
|
||||||
|
|
||||||
|
return prefix + numberString + separator + unit;
|
||||||
|
} /* v7-a4da9a491bb897bd */
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = slash;function slash(path) {
|
||||||
|
const isExtendedLengthPath = /^\\\\\?\\/.test(path);
|
||||||
|
const hasNonAscii = /[^\u0000-\u0080]+/.test(path); // eslint-disable-line no-control-regex
|
||||||
|
|
||||||
|
if (isExtendedLengthPath || hasNonAscii) {
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
|
return path.replace(/\\/g, '/');
|
||||||
|
} /* v7-56da1c6249207534 */
|
||||||
|
|
@ -0,0 +1,225 @@
|
||||||
|
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.Chalk = void 0;Object.defineProperty(exports, "backgroundColorNames", { enumerable: true, get: function () {return _index.backgroundColorNames;} });Object.defineProperty(exports, "backgroundColors", { enumerable: true, get: function () {return _index.backgroundColorNames;} });exports.chalkStderr = void 0;Object.defineProperty(exports, "colorNames", { enumerable: true, get: function () {return _index.colorNames;} });Object.defineProperty(exports, "colors", { enumerable: true, get: function () {return _index.colorNames;} });exports.default = void 0;Object.defineProperty(exports, "foregroundColorNames", { enumerable: true, get: function () {return _index.foregroundColorNames;} });Object.defineProperty(exports, "foregroundColors", { enumerable: true, get: function () {return _index.foregroundColorNames;} });Object.defineProperty(exports, "modifierNames", { enumerable: true, get: function () {return _index.modifierNames;} });Object.defineProperty(exports, "modifiers", { enumerable: true, get: function () {return _index.modifierNames;} });exports.supportsColorStderr = exports.supportsColor = void 0;var _ansiStyles = _interopRequireDefault(require("#ansi-styles"));
|
||||||
|
var _supportsColor = _interopRequireDefault(require("#supports-color"));
|
||||||
|
var _utilities = require("./utilities.js");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var _index = require("./vendor/ansi-styles/index.js");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}const { stdout: stdoutColor, stderr: stderrColor } = _supportsColor.default;exports.supportsColorStderr = stderrColor;exports.supportsColor = stdoutColor;const GENERATOR = Symbol('GENERATOR');const STYLER = Symbol('STYLER');const IS_EMPTY = Symbol('IS_EMPTY'); // `supportsColor.level` → `ansiStyles.color[name]` mapping
|
||||||
|
const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m'];const styles = Object.create(null);const applyOptions = (object, options = {}) => {if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {throw new Error('The `level` option should be an integer from 0 to 3');} // Detect level if not set manually
|
||||||
|
const colorLevel = stdoutColor ? stdoutColor.level : 0;object.level = options.level === undefined ? colorLevel : options.level;};class Chalk {constructor(options) {// eslint-disable-next-line no-constructor-return
|
||||||
|
return chalkFactory(options);}}exports.Chalk = Chalk;const chalkFactory = (options) => {const chalk = (...strings) => strings.join(' ');applyOptions(chalk, options);Object.setPrototypeOf(chalk, createChalk.prototype);return chalk;};function createChalk(options) {return chalkFactory(options);}Object.setPrototypeOf(createChalk.prototype, Function.prototype);for (const [styleName, style] of Object.entries(_ansiStyles.default)) {styles[styleName] = { get() {const builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);Object.defineProperty(this, styleName, { value: builder });return builder;} };}styles.visible = { get() {const builder = createBuilder(this, this[STYLER], true);Object.defineProperty(this, 'visible', { value: builder });return builder;} };const getModelAnsi = (model, level, type, ...arguments_) => {if (model === 'rgb') {if (level === 'ansi16m') {return _ansiStyles.default[type].ansi16m(...arguments_);}if (level === 'ansi256') {return _ansiStyles.default[type].ansi256(_ansiStyles.default.rgbToAnsi256(...arguments_));}return _ansiStyles.default[type].ansi(_ansiStyles.default.rgbToAnsi(...arguments_));}if (model === 'hex') {return getModelAnsi('rgb', level, type, ..._ansiStyles.default.hexToRgb(...arguments_));}return _ansiStyles.default[type][model](...arguments_);};const usedModels = ['rgb', 'hex', 'ansi256'];for (const model of usedModels) {styles[model] = { get() {const { level } = this;return function (...arguments_) {const styler = createStyler(getModelAnsi(model, levelMapping[level], 'color', ...arguments_), _ansiStyles.default.color.close, this[STYLER]);return createBuilder(this, styler, this[IS_EMPTY]);};} };const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);styles[bgModel] = { get() {const { level } = this;return function (...arguments_) {const styler = createStyler(getModelAnsi(model, levelMapping[level], 'bgColor', ...arguments_), _ansiStyles.default.bgColor.close, this[STYLER]);return createBuilder(this, styler, this[IS_EMPTY]);};} };}const proto = Object.defineProperties(() => {}, { ...styles, level: { enumerable: true, get() {return this[GENERATOR].level;}, set(level) {this[GENERATOR].level = level;} } });const createStyler = (open, close, parent) => {let openAll;let closeAll;if (parent === undefined) {openAll = open;closeAll = close;} else {openAll = parent.openAll + open;closeAll = close + parent.closeAll;}return { open, close, openAll, closeAll, parent };};const createBuilder = (self, _styler, _isEmpty) => {// Single argument is hot path, implicit coercion is faster than anything
|
||||||
|
// eslint-disable-next-line no-implicit-coercion
|
||||||
|
const builder = (...arguments_) => applyStyle(builder, arguments_.length === 1 ? '' + arguments_[0] : arguments_.join(' ')); // We alter the prototype because we must return a function, but there is
|
||||||
|
// no way to create a function with a different prototype
|
||||||
|
Object.setPrototypeOf(builder, proto);builder[GENERATOR] = self;builder[STYLER] = _styler;builder[IS_EMPTY] = _isEmpty;return builder;};const applyStyle = (self, string) => {if (self.level <= 0 || !string) {return self[IS_EMPTY] ? '' : string;}let styler = self[STYLER];if (styler === undefined) {return string;}const { openAll, closeAll } = styler;if (string.includes('\u001B')) {while (styler !== undefined) {// Replace any instances already present with a re-opening code
|
||||||
|
// otherwise only the part of the string until said closing code
|
||||||
|
// will be colored, and the rest will simply be 'plain'.
|
||||||
|
string = (0, _utilities.stringReplaceAll)(string, styler.close, styler.open);styler = styler.parent;}} // We can move both next actions out of loop, because remaining actions in loop won't have
|
||||||
|
// any/visible effect on parts we add here. Close the styling before a linebreak and reopen
|
||||||
|
// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92
|
||||||
|
const lfIndex = string.indexOf('\n');if (lfIndex !== -1) {string = (0, _utilities.stringEncaseCRLFWithFirstIndex)(string, closeAll, openAll, lfIndex);}return openAll + string + closeAll;};Object.defineProperties(createChalk.prototype, styles);const chalk = createChalk();const chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 });exports.chalkStderr = chalkStderr;var _default =
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
chalk;exports.default = _default; /* v7-ee09f19624a0936b */
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.stringEncaseCRLFWithFirstIndex = stringEncaseCRLFWithFirstIndex;exports.stringReplaceAll = stringReplaceAll; // TODO: When targeting Node.js 16, use `String.prototype.replaceAll`.
|
||||||
|
function stringReplaceAll(string, substring, replacer) {
|
||||||
|
let index = string.indexOf(substring);
|
||||||
|
if (index === -1) {
|
||||||
|
return string;
|
||||||
|
}
|
||||||
|
|
||||||
|
const substringLength = substring.length;
|
||||||
|
let endIndex = 0;
|
||||||
|
let returnValue = '';
|
||||||
|
do {
|
||||||
|
returnValue += string.slice(endIndex, index) + substring + replacer;
|
||||||
|
endIndex = index + substringLength;
|
||||||
|
index = string.indexOf(substring, endIndex);
|
||||||
|
} while (index !== -1);
|
||||||
|
|
||||||
|
returnValue += string.slice(endIndex);
|
||||||
|
return returnValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {
|
||||||
|
let endIndex = 0;
|
||||||
|
let returnValue = '';
|
||||||
|
do {
|
||||||
|
const gotCR = string[index - 1] === '\r';
|
||||||
|
returnValue += string.slice(endIndex, gotCR ? index - 1 : index) + prefix + (gotCR ? '\r\n' : '\n') + postfix;
|
||||||
|
endIndex = index + 1;
|
||||||
|
index = string.indexOf('\n', endIndex);
|
||||||
|
} while (index !== -1);
|
||||||
|
|
||||||
|
returnValue += string.slice(endIndex);
|
||||||
|
return returnValue;
|
||||||
|
} /* v7-255e1aba69efb0ea */
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _unbuild = require("unbuild");var _default =
|
||||||
|
|
||||||
|
(0, _unbuild.defineBuildConfig)({
|
||||||
|
clean: true,
|
||||||
|
entries: ['src/index'],
|
||||||
|
declaration: true,
|
||||||
|
rollup: {
|
||||||
|
emitCJS: true
|
||||||
|
}
|
||||||
|
});exports.default = _default; /* v7-e617738d05bbbbdb */
|
||||||
|
|
@ -0,0 +1,182 @@
|
||||||
|
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.createSupportsColor = createSupportsColor;exports.default = void 0;var _nodeProcess = _interopRequireDefault(require("node:process"));
|
||||||
|
var _nodeOs = _interopRequireDefault(require("node:os"));
|
||||||
|
var _nodeTty = _interopRequireDefault(require("node:tty"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
|
||||||
|
|
||||||
|
// From: https://github.com/sindresorhus/has-flag/blob/main/index.js
|
||||||
|
/// function hasFlag(flag, argv = globalThis.Deno?.args ?? process.argv) {
|
||||||
|
function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : _nodeProcess.default.argv) {
|
||||||
|
const prefix = flag.startsWith('-') ? '' : flag.length === 1 ? '-' : '--';
|
||||||
|
const position = argv.indexOf(prefix + flag);
|
||||||
|
const terminatorPosition = argv.indexOf('--');
|
||||||
|
return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
|
||||||
|
}
|
||||||
|
|
||||||
|
const { env } = _nodeProcess.default;
|
||||||
|
|
||||||
|
let flagForceColor;
|
||||||
|
if (
|
||||||
|
hasFlag('no-color') ||
|
||||||
|
hasFlag('no-colors') ||
|
||||||
|
hasFlag('color=false') ||
|
||||||
|
hasFlag('color=never'))
|
||||||
|
{
|
||||||
|
flagForceColor = 0;
|
||||||
|
} else if (
|
||||||
|
hasFlag('color') ||
|
||||||
|
hasFlag('colors') ||
|
||||||
|
hasFlag('color=true') ||
|
||||||
|
hasFlag('color=always'))
|
||||||
|
{
|
||||||
|
flagForceColor = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
function envForceColor() {
|
||||||
|
if ('FORCE_COLOR' in env) {
|
||||||
|
if (env.FORCE_COLOR === 'true') {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (env.FORCE_COLOR === 'false') {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function translateLevel(level) {
|
||||||
|
if (level === 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
level,
|
||||||
|
hasBasic: true,
|
||||||
|
has256: level >= 2,
|
||||||
|
has16m: level >= 3
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
|
||||||
|
const noFlagForceColor = envForceColor();
|
||||||
|
if (noFlagForceColor !== undefined) {
|
||||||
|
flagForceColor = noFlagForceColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
|
||||||
|
|
||||||
|
if (forceColor === 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sniffFlags) {
|
||||||
|
if (hasFlag('color=16m') ||
|
||||||
|
hasFlag('color=full') ||
|
||||||
|
hasFlag('color=truecolor')) {
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hasFlag('color=256')) {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check for Azure DevOps pipelines.
|
||||||
|
// Has to be above the `!streamIsTTY` check.
|
||||||
|
if ('TF_BUILD' in env && 'AGENT_NAME' in env) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (haveStream && !streamIsTTY && forceColor === undefined) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
const min = forceColor || 0;
|
||||||
|
|
||||||
|
if (env.TERM === 'dumb') {
|
||||||
|
return min;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_nodeProcess.default.platform === 'win32') {
|
||||||
|
// Windows 10 build 10586 is the first Windows release that supports 256 colors.
|
||||||
|
// Windows 10 build 14931 is the first release that supports 16m/TrueColor.
|
||||||
|
const osRelease = _nodeOs.default.release().split('.');
|
||||||
|
if (
|
||||||
|
Number(osRelease[0]) >= 10 &&
|
||||||
|
Number(osRelease[2]) >= 10_586)
|
||||||
|
{
|
||||||
|
return Number(osRelease[2]) >= 14_931 ? 3 : 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ('CI' in env) {
|
||||||
|
if ('GITHUB_ACTIONS' in env || 'GITEA_ACTIONS' in env) {
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'BUILDKITE', 'DRONE'].some((sign) => sign in env) || env.CI_NAME === 'codeship') {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return min;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ('TEAMCITY_VERSION' in env) {
|
||||||
|
return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (env.COLORTERM === 'truecolor') {
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (env.TERM === 'xterm-kitty') {
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ('TERM_PROGRAM' in env) {
|
||||||
|
const version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);
|
||||||
|
|
||||||
|
switch (env.TERM_PROGRAM) {
|
||||||
|
case 'iTerm.app':{
|
||||||
|
return version >= 3 ? 3 : 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'Apple_Terminal':{
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
// No default
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (/-256(color)?$/i.test(env.TERM)) {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ('COLORTERM' in env) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return min;
|
||||||
|
}
|
||||||
|
|
||||||
|
function createSupportsColor(stream, options = {}) {
|
||||||
|
const level = _supportsColor(stream, {
|
||||||
|
streamIsTTY: stream && stream.isTTY,
|
||||||
|
...options
|
||||||
|
});
|
||||||
|
|
||||||
|
return translateLevel(level);
|
||||||
|
}
|
||||||
|
|
||||||
|
const supportsColor = {
|
||||||
|
stdout: createSupportsColor({ isTTY: _nodeTty.default.isatty(1) }),
|
||||||
|
stderr: createSupportsColor({ isTTY: _nodeTty.default.isatty(2) })
|
||||||
|
};var _default =
|
||||||
|
|
||||||
|
supportsColor;exports.default = _default; /* v7-75cc7f0b87ad9e85 */
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _unbuild = require("unbuild");var _default =
|
||||||
|
|
||||||
|
(0, _unbuild.defineBuildConfig)({
|
||||||
|
clean: true,
|
||||||
|
entries: ['src/index'],
|
||||||
|
declaration: true,
|
||||||
|
rollup: {
|
||||||
|
emitCJS: true
|
||||||
|
}
|
||||||
|
});exports.default = _default; /* v7-e617738d05bbbbdb */
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"name": "@vben/types",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"lockfileVersion": 3,
|
||||||
|
"requires": true,
|
||||||
|
"packages": {
|
||||||
|
"": {
|
||||||
|
"name": "@vben/types",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"license": "MIT"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
|
@ -53,7 +53,7 @@
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
|
|
||||||
img {
|
img {
|
||||||
width: @logo-width;
|
// width: @logo-width;
|
||||||
height: @logo-width;
|
height: @logo-width;
|
||||||
margin-right: 2px;
|
margin-right: 2px;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -179,9 +179,11 @@
|
||||||
&-logo {
|
&-logo {
|
||||||
height: @header-height;
|
height: @header-height;
|
||||||
padding: 10px 4px 10px 10px;
|
padding: 10px 4px 10px 10px;
|
||||||
|
// add
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
img {
|
img {
|
||||||
width: @logo-width;
|
// width: @logo-width;
|
||||||
height: @logo-width;
|
height: @logo-width;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@
|
||||||
},
|
},
|
||||||
]"
|
]"
|
||||||
>
|
>
|
||||||
<span class="text"> {{ title }}</span>
|
<span class="text">{{ title }}</span>
|
||||||
<Icon
|
<Icon
|
||||||
:size="16"
|
:size="16"
|
||||||
:icon="getMixSideFixed ? 'ri:pushpin-2-fill' : 'ri:pushpin-2-line'"
|
:icon="getMixSideFixed ? 'ri:pushpin-2-fill' : 'ri:pushpin-2-line'"
|
||||||
|
|
@ -368,7 +368,7 @@
|
||||||
padding-left: 0 !important;
|
padding-left: 0 !important;
|
||||||
|
|
||||||
img {
|
img {
|
||||||
width: @logo-width;
|
// width: @logo-width;
|
||||||
height: @logo-width;
|
height: @logo-width;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,181 +1,181 @@
|
||||||
export default {
|
export default {
|
||||||
api: {
|
api: {
|
||||||
operationSuccess: 'Operation Success',
|
operationSuccess: 'Operation Success',
|
||||||
operationFailed: 'Operation failed',
|
operationFailed: 'Operation failed',
|
||||||
errorTip: 'Error Tip',
|
errorTip: 'Error Tip',
|
||||||
successTip: 'Success Tip',
|
successTip: 'Success Tip',
|
||||||
errorMessage: 'The operation failed, the system is abnormal!',
|
errorMessage: 'The operation failed, the system is abnormal!',
|
||||||
timeoutMessage: 'Login timed out, please log in again!',
|
timeoutMessage: 'Login timed out, please log in again!',
|
||||||
apiTimeoutMessage: 'The interface request timed out, please refresh the page and try again!',
|
apiTimeoutMessage: 'The interface request timed out, please refresh the page and try again!',
|
||||||
apiRequestFailed: 'The interface request failed, please try again later!',
|
apiRequestFailed: 'The interface request failed, please try again later!',
|
||||||
networkException: 'network anomaly',
|
networkException: 'network anomaly',
|
||||||
networkExceptionMsg:
|
networkExceptionMsg:
|
||||||
'Please check if your network connection is normal! The network is abnormal',
|
'Please check if your network connection is normal! The network is abnormal',
|
||||||
refreshBrowser: 'The network is busy now, please press F5 to refresh your browser',
|
refreshBrowser: 'The network is busy now, please press F5 to refresh your browser',
|
||||||
|
|
||||||
errMsg401: 'The user does not have permission (token, user name, password error)!',
|
errMsg401: 'The user does not have permission (token, user name, password error)!',
|
||||||
errMsg403: 'The user is authorized, but access is forbidden!',
|
errMsg403: 'The user is authorized, but access is forbidden!',
|
||||||
errMsg404: 'Network request error, the resource was not found!',
|
errMsg404: 'Network request error, the resource was not found!',
|
||||||
errMsg405: 'Network request error, request method not allowed!',
|
errMsg405: 'Network request error, request method not allowed!',
|
||||||
errMsg408: 'Network request timed out!',
|
errMsg408: 'Network request timed out!',
|
||||||
errMsg500: 'Server error, please contact the administrator!',
|
errMsg500: 'Server error, please contact the administrator!',
|
||||||
errMsg501: 'The network is not implemented!',
|
errMsg501: 'The network is not implemented!',
|
||||||
errMsg502: 'Network Error!',
|
errMsg502: 'Network Error!',
|
||||||
errMsg503: 'The service is unavailable, the server is temporarily overloaded or maintained!',
|
errMsg503: 'The service is unavailable, the server is temporarily overloaded or maintained!',
|
||||||
errMsg504: 'Network timeout!',
|
errMsg504: 'Network timeout!',
|
||||||
errMsg505: 'The http version does not support the request!',
|
errMsg505: 'The http version does not support the request!',
|
||||||
},
|
},
|
||||||
app: {
|
app: {
|
||||||
logoutTip: 'Reminder',
|
logoutTip: 'Reminder',
|
||||||
logoutMessage: 'Confirm to exit the system?',
|
logoutMessage: 'Confirm to exit the system?',
|
||||||
menuLoading: 'Menu loading...',
|
menuLoading: 'Menu loading...',
|
||||||
},
|
},
|
||||||
errorLog: {
|
errorLog: {
|
||||||
tableTitle: 'Error log list',
|
tableTitle: 'Error log list',
|
||||||
tableColumnType: 'Type',
|
tableColumnType: 'Type',
|
||||||
tableColumnDate: 'Time',
|
tableColumnDate: 'Time',
|
||||||
tableColumnFile: 'File',
|
tableColumnFile: 'File',
|
||||||
tableColumnMsg: 'Error message',
|
tableColumnMsg: 'Error message',
|
||||||
tableColumnStackMsg: 'Stack info',
|
tableColumnStackMsg: 'Stack info',
|
||||||
|
|
||||||
tableActionDesc: 'Details',
|
tableActionDesc: 'Details',
|
||||||
|
|
||||||
modalTitle: 'Error details',
|
modalTitle: 'Error details',
|
||||||
|
|
||||||
fireVueError: 'Fire vue error',
|
fireVueError: 'Fire vue error',
|
||||||
fireResourceError: 'Fire resource error',
|
fireResourceError: 'Fire resource error',
|
||||||
fireAjaxError: 'Fire ajax error',
|
fireAjaxError: 'Fire ajax error',
|
||||||
|
|
||||||
enableMessage: 'Only effective when useErrorHandle=true in `/src/settings/projectSetting.ts`.',
|
enableMessage: 'Only effective when useErrorHandle=true in `/src/settings/projectSetting.ts`.',
|
||||||
},
|
},
|
||||||
exception: {
|
exception: {
|
||||||
backLogin: 'Back Login',
|
backLogin: 'Back Login',
|
||||||
backHome: 'Back Home',
|
backHome: 'Back Home',
|
||||||
subTitle403: "Sorry, you don't have access to this page.",
|
subTitle403: "Sorry, you don't have access to this page.",
|
||||||
subTitle404: 'Sorry, the page you visited does not exist.',
|
subTitle404: 'Sorry, the page you visited does not exist.',
|
||||||
subTitle500: 'Sorry, the server is reporting an error.',
|
subTitle500: 'Sorry, the server is reporting an error.',
|
||||||
noDataTitle: 'No data on the current page.',
|
noDataTitle: 'No data on the current page.',
|
||||||
networkErrorTitle: 'Network Error',
|
networkErrorTitle: 'Network Error',
|
||||||
networkErrorSubTitle:
|
networkErrorSubTitle:
|
||||||
'Sorry,Your network connection has been disconnected, please check your network!',
|
'Sorry,Your network connection has been disconnected, please check your network!',
|
||||||
},
|
},
|
||||||
lock: {
|
lock: {
|
||||||
unlock: 'Click to unlock',
|
unlock: 'Click to unlock',
|
||||||
alert: 'Lock screen password error',
|
alert: 'Lock screen password error',
|
||||||
backToLogin: 'Back to login',
|
backToLogin: 'Back to login',
|
||||||
entry: 'Enter the system',
|
entry: 'Enter the system',
|
||||||
placeholder: 'Please enter the lock screen password or user password',
|
placeholder: 'Please enter the lock screen password or user password',
|
||||||
},
|
},
|
||||||
login: {
|
login: {
|
||||||
captcha: 'Verification code',
|
captcha: 'Verification code',
|
||||||
backSignIn: 'Back sign in',
|
backSignIn: 'Back sign in',
|
||||||
mobileSignInFormTitle: 'Mobile sign in',
|
mobileSignInFormTitle: 'Mobile sign in',
|
||||||
qrSignInFormTitle: 'Qr sign in',
|
qrSignInFormTitle: 'Qr sign in',
|
||||||
emailFormTitle: 'Email sign in',
|
emailFormTitle: 'Email sign in',
|
||||||
signInFormTitle: 'Sign in',
|
signInFormTitle: 'Sign in',
|
||||||
signUpFormTitle: 'Sign up',
|
signUpFormTitle: 'Sign up',
|
||||||
forgetFormTitle: 'Reset password',
|
forgetFormTitle: 'Reset password',
|
||||||
|
|
||||||
signInTitle: 'Provide next-generation intelligent ERP system software for enterprises',
|
signInTitle: 'Provide next-generation intelligent ERP system software for enterprises',
|
||||||
signInDesc: '© 2023-2033 Wan Sen ERP - All Right Reserved',
|
signInDesc: '© 2023-2033 曲和科技 - All Right Reserved',
|
||||||
policy: 'I agree, to the WanSer ERP System Privacy Policy',
|
policy: 'I agree, to the WanSer ERP System Privacy Policy',
|
||||||
scanSign: `scanning the code to complete the login`,
|
scanSign: `scanning the code to complete the login`,
|
||||||
|
|
||||||
loginButton: 'Sign in',
|
loginButton: 'Sign in',
|
||||||
registerButton: 'Sign up',
|
registerButton: 'Sign up',
|
||||||
rememberMe: 'Remember me',
|
rememberMe: 'Remember me',
|
||||||
forgetPassword: 'Forget Password?',
|
forgetPassword: 'Forget Password?',
|
||||||
otherSignIn: 'Sign in with',
|
otherSignIn: 'Sign in with',
|
||||||
|
|
||||||
// notify
|
// notify
|
||||||
loginSuccessTitle: 'Login successful',
|
loginSuccessTitle: 'Login successful',
|
||||||
loginSuccessDesc: 'Welcome back',
|
loginSuccessDesc: 'Welcome back',
|
||||||
|
|
||||||
// placeholder
|
// placeholder
|
||||||
accountPlaceholder: 'Please input username',
|
accountPlaceholder: 'Please input username',
|
||||||
passwordPlaceholder: 'Please input password',
|
passwordPlaceholder: 'Please input password',
|
||||||
captchaPlaceholder: 'Please input verification code',
|
captchaPlaceholder: 'Please input verification code',
|
||||||
correctMobilePlaceholder: 'Please enter the correct phone number',
|
correctMobilePlaceholder: 'Please enter the correct phone number',
|
||||||
correctEmailPlaceholder: 'Please enter the correct email address',
|
correctEmailPlaceholder: 'Please enter the correct email address',
|
||||||
smsPlaceholder: 'Please input sms code',
|
smsPlaceholder: 'Please input sms code',
|
||||||
mobilePlaceholder: 'Please input mobile',
|
mobilePlaceholder: 'Please input mobile',
|
||||||
emailPlaceholder: 'Please input email',
|
emailPlaceholder: 'Please input email',
|
||||||
policyPlaceholder: 'Register after checking',
|
policyPlaceholder: 'Register after checking',
|
||||||
diffPwd: 'The two passwords are inconsistent',
|
diffPwd: 'The two passwords are inconsistent',
|
||||||
|
|
||||||
userName: 'Username',
|
userName: 'Username',
|
||||||
password: 'Password',
|
password: 'Password',
|
||||||
confirmPassword: 'Confirm Password',
|
confirmPassword: 'Confirm Password',
|
||||||
newPassword: 'New Password',
|
newPassword: 'New Password',
|
||||||
updatePassword: 'Change Password',
|
updatePassword: 'Change Password',
|
||||||
email: 'Email',
|
email: 'Email',
|
||||||
emailCode: 'Email code',
|
emailCode: 'Email code',
|
||||||
smsCode: 'SMS code',
|
smsCode: 'SMS code',
|
||||||
mobile: 'Mobile',
|
mobile: 'Mobile',
|
||||||
},
|
},
|
||||||
user: {
|
user: {
|
||||||
userList: 'User Table',
|
userList: 'User Table',
|
||||||
name: 'Nick Name',
|
name: 'Nick Name',
|
||||||
status: 'Status',
|
status: 'Status',
|
||||||
roleName: 'Role Name',
|
roleName: 'Role Name',
|
||||||
department: 'Department',
|
department: 'Department',
|
||||||
remake: 'Remark',
|
remake: 'Remark',
|
||||||
addAccount: 'Add Account',
|
addAccount: 'Add Account',
|
||||||
editAccount: 'Edit Account',
|
editAccount: 'Edit Account',
|
||||||
notAllowAddUser: 'The current tenant has reached the maximum number of users that can be added',
|
notAllowAddUser: 'The current tenant has reached the maximum number of users that can be added',
|
||||||
// user table list action
|
// user table list action
|
||||||
viewUserDetails: 'View User Details',
|
viewUserDetails: 'View User Details',
|
||||||
editUserProfile: 'Edit User Profile',
|
editUserProfile: 'Edit User Profile',
|
||||||
resetUserPassword: 'Reset User Password',
|
resetUserPassword: 'Reset User Password',
|
||||||
confirmPasswordReset: 'Are you sure to reset the password to 123456',
|
confirmPasswordReset: 'Are you sure to reset the password to 123456',
|
||||||
deleteUserAccount: 'Delete User Account'
|
deleteUserAccount: 'Delete User Account'
|
||||||
},
|
},
|
||||||
tenant: {
|
tenant: {
|
||||||
tenantList: 'Tenant List',
|
tenantList: 'Tenant List',
|
||||||
addTenant: 'Add Tenant',
|
addTenant: 'Add Tenant',
|
||||||
editTenant: 'Edit Tenant',
|
editTenant: 'Edit Tenant',
|
||||||
deleteTenant: 'Delete Tenant',
|
deleteTenant: 'Delete Tenant',
|
||||||
form: {
|
form: {
|
||||||
name: 'Tenant Name',
|
name: 'Tenant Name',
|
||||||
status: 'Status',
|
status: 'Status',
|
||||||
free: 'Free Tenant',
|
free: 'Free Tenant',
|
||||||
pay: 'Pay Tenant',
|
pay: 'Pay Tenant',
|
||||||
type: 'Type',
|
type: 'Type',
|
||||||
remark: 'Remark',
|
remark: 'Remark',
|
||||||
userNumLimit: 'User Number Limit',
|
userNumLimit: 'User Number Limit',
|
||||||
expireTime: 'Expire Time',
|
expireTime: 'Expire Time',
|
||||||
noticeOne: 'Please default to select the tenant administrator role',
|
noticeOne: 'Please default to select the tenant administrator role',
|
||||||
noticeTwo: 'If not filled in, the default password is 123456',
|
noticeTwo: 'If not filled in, the default password is 123456',
|
||||||
noticeThree: 'Cannot enter a username with admin',
|
noticeThree: 'Cannot enter a username with admin',
|
||||||
noticeFour: 'After expiration, all users under the tenant are unable to login and use the system',
|
noticeFour: 'After expiration, all users under the tenant are unable to login and use the system',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
table: {
|
||||||
|
add: 'Add Data',
|
||||||
|
edit: 'Edit Data',
|
||||||
|
delete: 'Delete Data',
|
||||||
|
batchDelete: 'Batch Delete Data',
|
||||||
|
exportData: 'Export Data',
|
||||||
|
approve: 'Receipt Approval',
|
||||||
|
reject: 'Receipt Rejection',
|
||||||
|
audited: 'Audited',
|
||||||
|
unaudited: 'Unaudited',
|
||||||
|
viewReceiptDetails: 'View Receipt Detail',
|
||||||
|
confirmDelete: 'Are you sure to delete this data?',
|
||||||
|
confirmExport: 'Confirm Export',
|
||||||
|
confirmExportTextOne: 'Export',
|
||||||
|
confirmExportTextTwo: 'Data loading, please be patient',
|
||||||
|
confirmExportTextThree: 'If you need to export detailed data (which may take a long time), please check the box below.',
|
||||||
|
confirmExportTextFour: 'Need to export detailed data',
|
||||||
|
type: 'Type',
|
||||||
|
subType: 'Sub Type',
|
||||||
|
},
|
||||||
|
modal: {
|
||||||
|
cover: 'Yes',
|
||||||
|
cancel: 'No',
|
||||||
|
},
|
||||||
|
language: {
|
||||||
|
enUS: 'English',
|
||||||
|
zhCN: '简体中文',
|
||||||
}
|
}
|
||||||
},
|
|
||||||
table: {
|
|
||||||
add: 'Add Data',
|
|
||||||
edit: 'Edit Data',
|
|
||||||
delete: 'Delete Data',
|
|
||||||
batchDelete: 'Batch Delete Data',
|
|
||||||
exportData: 'Export Data',
|
|
||||||
approve: 'Receipt Approval',
|
|
||||||
reject: 'Receipt Rejection',
|
|
||||||
audited: 'Audited',
|
|
||||||
unaudited: 'Unaudited',
|
|
||||||
viewReceiptDetails: 'View Receipt Detail',
|
|
||||||
confirmDelete: 'Are you sure to delete this data?',
|
|
||||||
confirmExport: 'Confirm Export',
|
|
||||||
confirmExportTextOne: 'Export',
|
|
||||||
confirmExportTextTwo: 'Data loading, please be patient',
|
|
||||||
confirmExportTextThree: 'If you need to export detailed data (which may take a long time), please check the box below.',
|
|
||||||
confirmExportTextFour: 'Need to export detailed data',
|
|
||||||
type: 'Type',
|
|
||||||
subType: 'Sub Type',
|
|
||||||
},
|
|
||||||
modal: {
|
|
||||||
cover: 'Yes',
|
|
||||||
cancel: 'No',
|
|
||||||
},
|
|
||||||
language: {
|
|
||||||
enUS: 'English',
|
|
||||||
zhCN: '简体中文',
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,174 +1,174 @@
|
||||||
export default {
|
export default {
|
||||||
api: {
|
api: {
|
||||||
operationSuccess: '操作成功',
|
operationSuccess: '操作成功',
|
||||||
operationFailed: '操作失败',
|
operationFailed: '操作失败',
|
||||||
errorTip: '错误提示',
|
errorTip: '错误提示',
|
||||||
successTip: '成功提示',
|
successTip: '成功提示',
|
||||||
errorMessage: '操作失败,系统异常!',
|
errorMessage: '操作失败,系统异常!',
|
||||||
timeoutMessage: '登录超时,请重新登录!',
|
timeoutMessage: '登录超时,请重新登录!',
|
||||||
apiTimeoutMessage: '接口请求超时,请刷新页面重试!',
|
apiTimeoutMessage: '接口请求超时,请刷新页面重试!',
|
||||||
apiRequestFailed: '请求出错,请稍候重试',
|
apiRequestFailed: '请求出错,请稍候重试',
|
||||||
networkException: '网络异常',
|
networkException: '网络异常',
|
||||||
networkExceptionMsg: '网络异常,请检查您的网络连接是否正常!',
|
networkExceptionMsg: '网络异常,请检查您的网络连接是否正常!',
|
||||||
refreshBrowser: '网络当前繁忙,请按F5刷新浏览器',
|
refreshBrowser: '网络当前繁忙,请按F5刷新浏览器',
|
||||||
|
|
||||||
errMsg401: '用户没有权限(令牌、用户名、密码错误)!',
|
errMsg401: '用户没有权限(令牌、用户名、密码错误)!',
|
||||||
errMsg403: '用户得到授权,但是访问是被禁止的。!',
|
errMsg403: '用户得到授权,但是访问是被禁止的。!',
|
||||||
errMsg404: '网络请求错误,未找到该资源!',
|
errMsg404: '网络请求错误,未找到该资源!',
|
||||||
errMsg405: '网络请求错误,请求方法未允许!',
|
errMsg405: '网络请求错误,请求方法未允许!',
|
||||||
errMsg408: '网络请求超时!',
|
errMsg408: '网络请求超时!',
|
||||||
errMsg500: '服务器错误,请联系管理员!',
|
errMsg500: '服务器错误,请联系管理员!',
|
||||||
errMsg501: '网络未实现!',
|
errMsg501: '网络未实现!',
|
||||||
errMsg502: '网络错误!',
|
errMsg502: '网络错误!',
|
||||||
errMsg503: '服务不可用,服务器暂时过载或维护!',
|
errMsg503: '服务不可用,服务器暂时过载或维护!',
|
||||||
errMsg504: '网络超时!',
|
errMsg504: '网络超时!',
|
||||||
errMsg505: 'http版本不支持该请求!',
|
errMsg505: 'http版本不支持该请求!',
|
||||||
},
|
},
|
||||||
app: { logoutTip: '温馨提醒', logoutMessage: '是否确认退出系统?', menuLoading: '菜单加载中...' },
|
app: { logoutTip: '温馨提醒', logoutMessage: '是否确认退出系统?', menuLoading: '菜单加载中...' },
|
||||||
errorLog: {
|
errorLog: {
|
||||||
tableTitle: '错误日志列表',
|
tableTitle: '错误日志列表',
|
||||||
tableColumnType: '类型',
|
tableColumnType: '类型',
|
||||||
tableColumnDate: '时间',
|
tableColumnDate: '时间',
|
||||||
tableColumnFile: '文件',
|
tableColumnFile: '文件',
|
||||||
tableColumnMsg: '错误信息',
|
tableColumnMsg: '错误信息',
|
||||||
tableColumnStackMsg: 'stack信息',
|
tableColumnStackMsg: 'stack信息',
|
||||||
|
|
||||||
tableActionDesc: '详情',
|
tableActionDesc: '详情',
|
||||||
|
|
||||||
modalTitle: '错误详情',
|
modalTitle: '错误详情',
|
||||||
|
|
||||||
fireVueError: '点击触发vue错误',
|
fireVueError: '点击触发vue错误',
|
||||||
fireResourceError: '点击触发资源加载错误',
|
fireResourceError: '点击触发资源加载错误',
|
||||||
fireAjaxError: '点击触发ajax错误',
|
fireAjaxError: '点击触发ajax错误',
|
||||||
|
|
||||||
enableMessage: '只在`/src/settings/projectSetting.ts` 内的useErrorHandle=true时生效.',
|
enableMessage: '只在`/src/settings/projectSetting.ts` 内的useErrorHandle=true时生效.',
|
||||||
},
|
},
|
||||||
exception: {
|
exception: {
|
||||||
backLogin: '返回登录',
|
backLogin: '返回登录',
|
||||||
backHome: '返回首页',
|
backHome: '返回首页',
|
||||||
subTitle403: '抱歉,您无权访问此页面。',
|
subTitle403: '抱歉,您无权访问此页面。',
|
||||||
subTitle404: '抱歉,您访问的页面不存在。',
|
subTitle404: '抱歉,您访问的页面不存在。',
|
||||||
subTitle500: '抱歉,服务器报告错误。',
|
subTitle500: '抱歉,服务器报告错误。',
|
||||||
noDataTitle: '当前页无数据',
|
noDataTitle: '当前页无数据',
|
||||||
networkErrorTitle: '网络错误',
|
networkErrorTitle: '网络错误',
|
||||||
networkErrorSubTitle: '抱歉,您的网络连接已断开,请检查您的网络!',
|
networkErrorSubTitle: '抱歉,您的网络连接已断开,请检查您的网络!',
|
||||||
},
|
},
|
||||||
lock: {
|
lock: {
|
||||||
unlock: '点击解锁',
|
unlock: '点击解锁',
|
||||||
alert: '锁屏密码错误',
|
alert: '锁屏密码错误',
|
||||||
backToLogin: '返回登录',
|
backToLogin: '返回登录',
|
||||||
entry: '进入系统',
|
entry: '进入系统',
|
||||||
placeholder: '请输入锁屏密码或者用户密码',
|
placeholder: '请输入锁屏密码或者用户密码',
|
||||||
},
|
},
|
||||||
login: {
|
login: {
|
||||||
captcha: '验证码',
|
captcha: '验证码',
|
||||||
backSignIn: '返回',
|
backSignIn: '返回',
|
||||||
signInFormTitle: '登录',
|
signInFormTitle: '登录',
|
||||||
mobileSignInFormTitle: '手机登录',
|
mobileSignInFormTitle: '手机登录',
|
||||||
qrSignInFormTitle: '扫码登录',
|
qrSignInFormTitle: '扫码登录',
|
||||||
emailFormTitle: '邮箱登录',
|
emailFormTitle: '邮箱登录',
|
||||||
signUpFormTitle: '注册租户',
|
signUpFormTitle: '注册租户',
|
||||||
forgetFormTitle: '重置密码',
|
forgetFormTitle: '重置密码',
|
||||||
|
|
||||||
signInTitle: '为企业提供下一代智能ERP系统软件',
|
signInTitle: '为企业提供下一代智能ERP系统软件',
|
||||||
signInDesc: '© 2023-2033 Wan Sen ERP - All Right Reserved 版权所有',
|
signInDesc: '© 2023-2033 曲和科技 - All Right Reserved 版权所有',
|
||||||
policy: '我同意,《万森ERP系统》隐私政策',
|
policy: '我同意,《万森ERP系统》隐私政策',
|
||||||
scanSign: `扫码后点击"确认",即可完成登录`,
|
scanSign: `扫码后点击"确认",即可完成登录`,
|
||||||
|
|
||||||
loginButton: '登录',
|
loginButton: '登录',
|
||||||
registerButton: '注册租户',
|
registerButton: '注册租户',
|
||||||
rememberMe: '记住我',
|
rememberMe: '记住我',
|
||||||
forgetPassword: '忘记密码?',
|
forgetPassword: '忘记密码?',
|
||||||
otherSignIn: '其他登录方式',
|
otherSignIn: '其他登录方式',
|
||||||
|
|
||||||
// notify
|
// notify
|
||||||
loginSuccessTitle: '登录成功',
|
loginSuccessTitle: '登录成功',
|
||||||
loginSuccessDesc: '欢迎回来',
|
loginSuccessDesc: '欢迎回来',
|
||||||
|
|
||||||
// placeholder
|
// placeholder
|
||||||
accountPlaceholder: '请输入账号',
|
accountPlaceholder: '请输入账号',
|
||||||
passwordPlaceholder: '请输入密码',
|
passwordPlaceholder: '请输入密码',
|
||||||
captchaPlaceholder: '请输入验证码',
|
captchaPlaceholder: '请输入验证码',
|
||||||
smsPlaceholder: '请输入验证码',
|
smsPlaceholder: '请输入验证码',
|
||||||
mobilePlaceholder: '请输入手机号码',
|
mobilePlaceholder: '请输入手机号码',
|
||||||
emailPlaceholder: '请输入邮箱地址',
|
emailPlaceholder: '请输入邮箱地址',
|
||||||
policyPlaceholder: '勾选后才能注册',
|
policyPlaceholder: '勾选后才能注册',
|
||||||
diffPwd: '两次输入密码不一致',
|
diffPwd: '两次输入密码不一致',
|
||||||
correctMobilePlaceholder: '请输入正确的手机号码',
|
correctMobilePlaceholder: '请输入正确的手机号码',
|
||||||
correctEmailPlaceholder: '请输入正确的邮箱地址',
|
correctEmailPlaceholder: '请输入正确的邮箱地址',
|
||||||
userName: '账号',
|
userName: '账号',
|
||||||
password: '密码',
|
password: '密码',
|
||||||
confirmPassword: '确认密码',
|
confirmPassword: '确认密码',
|
||||||
newPassword: '新密码',
|
newPassword: '新密码',
|
||||||
updatePassword: '修改密码',
|
updatePassword: '修改密码',
|
||||||
email: '邮箱',
|
email: '邮箱',
|
||||||
emailCode: '邮箱验证码',
|
emailCode: '邮箱验证码',
|
||||||
smsCode: '短信验证码',
|
smsCode: '短信验证码',
|
||||||
mobile: '手机号码',
|
mobile: '手机号码',
|
||||||
},
|
},
|
||||||
user: {
|
user: {
|
||||||
userList: '用户列表',
|
userList: '用户列表',
|
||||||
name: '昵称',
|
name: '昵称',
|
||||||
status: '用户状态',
|
status: '用户状态',
|
||||||
roleName: '角色',
|
roleName: '角色',
|
||||||
department: '所属部门',
|
department: '所属部门',
|
||||||
remake: '备注',
|
remake: '备注',
|
||||||
addAccount: '新增账户',
|
addAccount: '新增账户',
|
||||||
editAccount: '编辑账户',
|
editAccount: '编辑账户',
|
||||||
notAllowAddUser: '当前租户可添加的用户数量已达上限',
|
notAllowAddUser: '当前租户可添加的用户数量已达上限',
|
||||||
// 用户数据表格操作
|
// 用户数据表格操作
|
||||||
viewUserDetails: '查看用户详情',
|
viewUserDetails: '查看用户详情',
|
||||||
editUserProfile: '编辑用户资料',
|
editUserProfile: '编辑用户资料',
|
||||||
resetUserPassword: '重置密码',
|
resetUserPassword: '重置密码',
|
||||||
confirmPasswordReset: '确定重置密码为123456吗',
|
confirmPasswordReset: '确定重置密码为123456吗',
|
||||||
deleteUserAccount: '删除账号'
|
deleteUserAccount: '删除账号'
|
||||||
},
|
},
|
||||||
tenant: {
|
tenant: {
|
||||||
tenantList: '租户列表',
|
tenantList: '租户列表',
|
||||||
addTenant: '新增租户',
|
addTenant: '新增租户',
|
||||||
editTenant: '编辑租户',
|
editTenant: '编辑租户',
|
||||||
deleteTenant: '删除租户',
|
deleteTenant: '删除租户',
|
||||||
form: {
|
form: {
|
||||||
name: '租户名称',
|
name: '租户名称',
|
||||||
status: '租户状态',
|
status: '租户状态',
|
||||||
free: '免费租户',
|
free: '免费租户',
|
||||||
pay: '付费租户',
|
pay: '付费租户',
|
||||||
type: '租户类型',
|
type: '租户类型',
|
||||||
remark: '备注',
|
remark: '备注',
|
||||||
userNumLimit: '用户数量限制',
|
userNumLimit: '用户数量限制',
|
||||||
expireTime: '到期时间',
|
expireTime: '到期时间',
|
||||||
noticeOne: '请默认选择租户管理员角色',
|
noticeOne: '请默认选择租户管理员角色',
|
||||||
noticeTwo: '如果不填写,则默认密码为123456',
|
noticeTwo: '如果不填写,则默认密码为123456',
|
||||||
noticeThree: '不能输入带有admin的用户名',
|
noticeThree: '不能输入带有admin的用户名',
|
||||||
noticeFour: '到期后租户下的所有用户无法登录使用系统',
|
noticeFour: '到期后租户下的所有用户无法登录使用系统',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
table: {
|
||||||
|
add: '新增',
|
||||||
|
edit: '编辑',
|
||||||
|
delete: '删除',
|
||||||
|
batchDelete: '批量删除',
|
||||||
|
exportData: '导出数据',
|
||||||
|
approve: '审核',
|
||||||
|
reject: '驳回',
|
||||||
|
audited: '已审核',
|
||||||
|
unaudited: '未审核',
|
||||||
|
viewReceiptDetails: '查看单据详情',
|
||||||
|
confirmDelete: '是否确认删除数据?',
|
||||||
|
confirmExport: '确认导出',
|
||||||
|
confirmExportTextOne: '导出',
|
||||||
|
confirmExportTextTwo: '数据加载中,请耐心等待。',
|
||||||
|
confirmExportTextThree: '如果您需要导出详细数据(可能需要很长时间),请勾选下面的框。',
|
||||||
|
confirmExportTextFour: '需要导出详细数据',
|
||||||
|
type: '类型',
|
||||||
|
subType: '子类型',
|
||||||
|
},
|
||||||
|
modal: {
|
||||||
|
cover: '确认',
|
||||||
|
cancel: '取消',
|
||||||
|
},
|
||||||
|
language: {
|
||||||
|
enUS: 'English',
|
||||||
|
zhCN: '简体中文',
|
||||||
}
|
}
|
||||||
},
|
|
||||||
table: {
|
|
||||||
add: '新增',
|
|
||||||
edit: '编辑',
|
|
||||||
delete: '删除',
|
|
||||||
batchDelete: '批量删除',
|
|
||||||
exportData: '导出数据',
|
|
||||||
approve: '审核',
|
|
||||||
reject: '驳回',
|
|
||||||
audited: '已审核',
|
|
||||||
unaudited: '未审核',
|
|
||||||
viewReceiptDetails: '查看单据详情',
|
|
||||||
confirmDelete: '是否确认删除数据?',
|
|
||||||
confirmExport: '确认导出',
|
|
||||||
confirmExportTextOne: '导出',
|
|
||||||
confirmExportTextTwo: '数据加载中,请耐心等待。',
|
|
||||||
confirmExportTextThree: '如果您需要导出详细数据(可能需要很长时间),请勾选下面的框。',
|
|
||||||
confirmExportTextFour: '需要导出详细数据',
|
|
||||||
type: '类型',
|
|
||||||
subType: '子类型',
|
|
||||||
},
|
|
||||||
modal: {
|
|
||||||
cover: '确认',
|
|
||||||
cancel: '取消',
|
|
||||||
},
|
|
||||||
language: {
|
|
||||||
enUS: 'English',
|
|
||||||
zhCN: '简体中文',
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,144 +1,144 @@
|
||||||
interface GroupItem {
|
interface GroupItem {
|
||||||
title: string;
|
title: string;
|
||||||
icon: string;
|
icon: string;
|
||||||
color: string;
|
color: string;
|
||||||
desc: string;
|
desc: string;
|
||||||
date: string;
|
date: string;
|
||||||
group: string;
|
group: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface NavItem {
|
interface NavItem {
|
||||||
title: string;
|
title: string;
|
||||||
icon: string;
|
icon: string;
|
||||||
color: string;
|
color: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface DynamicInfoItem {
|
interface DynamicInfoItem {
|
||||||
avatar: string;
|
avatar: string;
|
||||||
name: string;
|
name: string;
|
||||||
date: string;
|
date: string;
|
||||||
desc: string;
|
desc: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const navItems: NavItem[] = [
|
export const navItems: NavItem[] = [
|
||||||
{
|
{
|
||||||
title: '首页',
|
title: '首页',
|
||||||
icon: 'ion:home-outline',
|
icon: 'ion:home-outline',
|
||||||
color: '#1fdaca',
|
color: '#1fdaca',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '仪表盘',
|
title: '仪表盘',
|
||||||
icon: 'ion:grid-outline',
|
icon: 'ion:grid-outline',
|
||||||
color: '#bf0c2c',
|
color: '#bf0c2c',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'OA内部办公系统',
|
title: 'OA办公系统',
|
||||||
icon: 'ion:layers-outline',
|
icon: 'ion:layers-outline',
|
||||||
color: '#e18525',
|
color: '#e18525',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '系统管理',
|
title: '系统管理',
|
||||||
icon: 'ion:settings-outline',
|
icon: 'ion:settings-outline',
|
||||||
color: '#3fb27f',
|
color: '#3fb27f',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '权限管理',
|
title: '权限管理',
|
||||||
icon: 'ion:key-outline',
|
icon: 'ion:key-outline',
|
||||||
color: '#4daf1bc9',
|
color: '#4daf1bc9',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '报表查询',
|
title: '报表查询',
|
||||||
icon: 'ion:bar-chart-outline',
|
icon: 'ion:bar-chart-outline',
|
||||||
color: '#00d8ff',
|
color: '#00d8ff',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
export const dynamicInfoItems: DynamicInfoItem[] = [
|
export const dynamicInfoItems: DynamicInfoItem[] = [
|
||||||
{
|
{
|
||||||
avatar: 'dynamic-avatar-1|svg',
|
avatar: 'dynamic-avatar-1|svg',
|
||||||
name: '小李',
|
name: '小李',
|
||||||
date: '刚刚',
|
date: '刚刚',
|
||||||
desc: `在 <a>A仓库</a> 采购了100个零件 <a>H3C</a>`,
|
desc: `在 <a>A仓库</a> 采购了100个零件 <a>H3C</a>`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
avatar: 'dynamic-avatar-2|svg',
|
avatar: 'dynamic-avatar-2|svg',
|
||||||
name: '艾文',
|
name: '艾文',
|
||||||
date: '1个小时前',
|
date: '1个小时前',
|
||||||
desc: `关注了 <a>小李</a> `,
|
desc: `关注了 <a>小李</a> `,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
avatar: 'dynamic-avatar-3|svg',
|
avatar: 'dynamic-avatar-3|svg',
|
||||||
name: '克里斯',
|
name: '克里斯',
|
||||||
date: '1天前',
|
date: '1天前',
|
||||||
desc: `发布了 <a>本月采购物料表</a> `,
|
desc: `发布了 <a>本月采购物料表</a> `,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
avatar: 'dynamic-avatar-4|svg',
|
avatar: 'dynamic-avatar-4|svg',
|
||||||
name: '赵伟',
|
name: '赵伟',
|
||||||
date: '2天前',
|
date: '2天前',
|
||||||
desc: `发表文章 <a>企业如何集成GPT微调模型配合ERP使用</a> `,
|
desc: `发表文章 <a>企业如何集成GPT微调模型配合ERP使用</a> `,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
avatar: 'dynamic-avatar-5|svg',
|
avatar: 'dynamic-avatar-5|svg',
|
||||||
name: '皮特',
|
name: '皮特',
|
||||||
date: '3天前',
|
date: '3天前',
|
||||||
desc: `回复了 <a>赵伟</a> 的问题 <a>如何让用户能直接微调模型?</a>`,
|
desc: `回复了 <a>赵伟</a> 的问题 <a>如何让用户能直接微调模型?</a>`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
avatar: 'dynamic-avatar-6|svg',
|
avatar: 'dynamic-avatar-6|svg',
|
||||||
name: '杰克',
|
name: '杰克',
|
||||||
date: '1周前',
|
date: '1周前',
|
||||||
desc: `添加了会员 <a>检测公司的会员</a> `,
|
desc: `添加了会员 <a>检测公司的会员</a> `,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
export const groupItems: GroupItem[] = [
|
export const groupItems: GroupItem[] = [
|
||||||
{
|
{
|
||||||
title: 'WanSen ERP Core',
|
title: 'WanSen ERP Core',
|
||||||
icon: 'carbon:logo-github',
|
icon: 'carbon:logo-github',
|
||||||
color: '',
|
color: '',
|
||||||
desc: 'ERP系统的API',
|
desc: 'ERP系统的API',
|
||||||
group: '万森智能开源组',
|
group: '万森智能开源组',
|
||||||
date: '2023-09-28',
|
date: '2023-09-28',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'WanSen ERP',
|
title: 'WanSen ERP',
|
||||||
icon: 'ion:logo-vue',
|
icon: 'ion:logo-vue',
|
||||||
color: '#3fb27f',
|
color: '#3fb27f',
|
||||||
desc: '该项目使用了Vue3+Vite+Ant-Design',
|
desc: '该项目使用了Vue3+Vite+Ant-Design',
|
||||||
group: '前端开发小组',
|
group: '前端开发小组',
|
||||||
date: '2023-09-28',
|
date: '2023-09-28',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Html 5',
|
title: 'Html 5',
|
||||||
icon: 'ion:logo-html5',
|
icon: 'ion:logo-html5',
|
||||||
color: '#e18525',
|
color: '#e18525',
|
||||||
desc: '该项目也使用了HTML5',
|
desc: '该项目也使用了HTML5',
|
||||||
group: '前端开发小组',
|
group: '前端开发小组',
|
||||||
date: '2023-10-01',
|
date: '2023-10-01',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Angular',
|
title: 'Angular',
|
||||||
icon: 'ion:logo-angular',
|
icon: 'ion:logo-angular',
|
||||||
color: '#bf0c2c',
|
color: '#bf0c2c',
|
||||||
desc: '设计新的页面交互',
|
desc: '设计新的页面交互',
|
||||||
group: 'UI组',
|
group: 'UI组',
|
||||||
date: '2023-10-01',
|
date: '2023-10-01',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'React',
|
title: 'React',
|
||||||
icon: 'bx:bxl-react',
|
icon: 'bx:bxl-react',
|
||||||
color: '#00d8ff',
|
color: '#00d8ff',
|
||||||
desc: '下一步计划支持React重构',
|
desc: '下一步计划支持React重构',
|
||||||
group: '前端开发小组',
|
group: '前端开发小组',
|
||||||
date: '2023-10-02',
|
date: '2023-10-02',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'JavaScript',
|
title: 'JavaScript',
|
||||||
icon: 'ion:logo-javascript',
|
icon: 'ion:logo-javascript',
|
||||||
color: '#EBD94E',
|
color: '#EBD94E',
|
||||||
desc: '我们也可使用javascript进行重写',
|
desc: '我们也可使用javascript进行重写',
|
||||||
group: '前端开发小组',
|
group: '前端开发小组',
|
||||||
date: '2023-10-03',
|
date: '2023-10-03',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
<template>
|
<template>
|
||||||
<PageWrapper>
|
<PageWrapper>
|
||||||
<template #headerContent> <WorkbenchHeader /> </template>
|
<template #headerContent><WorkbenchHeader /></template>
|
||||||
<div class="lg:flex">
|
<div class="lg:flex">
|
||||||
<div class="lg:w-7/10 w-full !mr-4 enter-y">
|
<div class="lg:w-7/10 w-full !mr-4 enter-y">
|
||||||
<ProjectCard :loading="loading" class="enter-y" />
|
<!-- <ProjectCard :loading="loading" class="enter-y" /> -->
|
||||||
<DynamicInfo :loading="loading" class="!my-4 enter-y" />
|
<DynamicInfo :loading="loading" class="!my-4 enter-y" />
|
||||||
</div>
|
</div>
|
||||||
<div class="lg:w-3/10 w-full enter-y">
|
<div class="lg:w-3/10 w-full enter-y">
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,9 @@
|
||||||
<div class="flex items-center absolute right-4 top-4">
|
<div class="flex items-center absolute right-4 top-4">
|
||||||
<AppDarkModeToggle class="enter-x mr-2" v-if="!sessionTimeout" />
|
<AppDarkModeToggle class="enter-x mr-2" v-if="!sessionTimeout" />
|
||||||
<AppLocalePicker
|
<AppLocalePicker
|
||||||
class="text-white enter-x xl:text-gray-600"
|
class="text-white enter-x xl:text-gray-600"
|
||||||
:show-text="false"
|
:show-text="false"
|
||||||
v-if="!sessionTimeout && showLocale"
|
v-if="!sessionTimeout && showLocale"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -19,12 +19,12 @@
|
||||||
<AppLogo class="-enter-x" />
|
<AppLogo class="-enter-x" />
|
||||||
<div class="my-auto">
|
<div class="my-auto">
|
||||||
<img
|
<img
|
||||||
:alt="title"
|
:alt="title"
|
||||||
src="../../../assets/svg/login-box-bg.svg"
|
src="../../../assets/svg/login-box-bg.svg"
|
||||||
class="w-1/2 -mt-16 -enter-x"
|
class="w-1/2 -mt-16 -enter-x"
|
||||||
/>
|
/>
|
||||||
<div class="mt-10 font-medium text-white -enter-x">
|
<div class="mt-10 font-medium text-white -enter-x">
|
||||||
<span class="inline-block mt-4 text-3xl"> {{ t('sys.login.signInTitle') }}</span>
|
<span class="inline-block mt-4 text-3xl">{{ t('sys.login.signInTitle') }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="mt-5 font-normal text-white dark:text-gray-500 -enter-x">
|
<div class="mt-5 font-normal text-white dark:text-gray-500 -enter-x">
|
||||||
{{ t('sys.login.signInDesc') }}
|
{{ t('sys.login.signInDesc') }}
|
||||||
|
|
@ -33,8 +33,8 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="flex w-full h-full py-5 xl:h-auto xl:py-0 xl:my-0 xl:w-6/12">
|
<div class="flex w-full h-full py-5 xl:h-auto xl:py-0 xl:my-0 xl:w-6/12">
|
||||||
<div
|
<div
|
||||||
:class="`${prefixCls}-form`"
|
:class="`${prefixCls}-form`"
|
||||||
class="relative w-full px-5 py-8 mx-auto my-auto rounded-md shadow-md xl:ml-16 xl:bg-transparent sm:px-8 xl:p-4 xl:shadow-none sm:w-3/4 lg:w-2/4 xl:w-auto enter-x"
|
class="relative w-full px-5 py-8 mx-auto my-auto rounded-md shadow-md xl:ml-16 xl:bg-transparent sm:px-8 xl:p-4 xl:shadow-none sm:w-3/4 lg:w-2/4 xl:w-auto enter-x"
|
||||||
>
|
>
|
||||||
<LoginForm />
|
<LoginForm />
|
||||||
<ForgetPasswordForm />
|
<ForgetPasswordForm />
|
||||||
|
|
@ -49,175 +49,175 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { computed } from 'vue';
|
import { computed } from 'vue';
|
||||||
import { AppLogo, AppLocalePicker, AppDarkModeToggle } from '/@/components/Application';
|
import { AppLogo, AppLocalePicker, AppDarkModeToggle } from '/@/components/Application';
|
||||||
import LoginForm from './LoginForm.vue';
|
import LoginForm from './LoginForm.vue';
|
||||||
import ForgetPasswordForm from './ForgetPasswordForm.vue';
|
import ForgetPasswordForm from './ForgetPasswordForm.vue';
|
||||||
import RegisterForm from './RegisterForm.vue';
|
import RegisterForm from './RegisterForm.vue';
|
||||||
import MobileForm from './MobileForm.vue';
|
import MobileForm from './MobileForm.vue';
|
||||||
import QrCodeForm from './QrCodeForm.vue';
|
import QrCodeForm from './QrCodeForm.vue';
|
||||||
import { useGlobSetting } from '/@/hooks/setting';
|
import { useGlobSetting } from '/@/hooks/setting';
|
||||||
import { useI18n } from '/@/hooks/web/useI18n';
|
import { useI18n } from '/@/hooks/web/useI18n';
|
||||||
import { useDesign } from '/@/hooks/web/useDesign';
|
import { useDesign } from '/@/hooks/web/useDesign';
|
||||||
import { useLocaleStore } from '/@/store/modules/locale';
|
import { useLocaleStore } from '/@/store/modules/locale';
|
||||||
import EmailForm from "@/views/sys/login/EmailForm.vue";
|
import EmailForm from '@/views/sys/login/EmailForm.vue';
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
sessionTimeout: {
|
sessionTimeout: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const globSetting = useGlobSetting();
|
const globSetting = useGlobSetting();
|
||||||
const { prefixCls } = useDesign('login');
|
const { prefixCls } = useDesign('login');
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const localeStore = useLocaleStore();
|
const localeStore = useLocaleStore();
|
||||||
const showLocale = localeStore.getShowPicker;
|
const showLocale = localeStore.getShowPicker;
|
||||||
const title = computed(() => globSetting?.title ?? '');
|
const title = computed(() => globSetting?.title ?? '');
|
||||||
</script>
|
</script>
|
||||||
<style lang="less">
|
<style lang="less">
|
||||||
@prefix-cls: ~'@{namespace}-login';
|
@prefix-cls: ~'@{namespace}-login';
|
||||||
@logo-prefix-cls: ~'@{namespace}-app-logo';
|
@logo-prefix-cls: ~'@{namespace}-app-logo';
|
||||||
@countdown-prefix-cls: ~'@{namespace}-countdown-input';
|
@countdown-prefix-cls: ~'@{namespace}-countdown-input';
|
||||||
@dark-bg: #293146;
|
@dark-bg: #293146;
|
||||||
|
|
||||||
|
html[data-theme='dark'] {
|
||||||
|
.@{prefix-cls} {
|
||||||
|
background-color: @dark-bg;
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
background-image: url('/@/assets/svg/login-bg-dark.svg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-input,
|
||||||
|
.ant-input-password {
|
||||||
|
background-color: #232a3b;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-btn:not(.ant-btn-link):not(.ant-btn-primary) {
|
||||||
|
border: 1px solid #4a5569;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-form {
|
||||||
|
background: transparent !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-iconify {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
input.fix-auto-fill,
|
||||||
|
.fix-auto-fill input {
|
||||||
|
-webkit-text-fill-color: #c9d1d9 !important;
|
||||||
|
box-shadow: inherit !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
html[data-theme='dark'] {
|
|
||||||
.@{prefix-cls} {
|
.@{prefix-cls} {
|
||||||
background-color: @dark-bg;
|
min-height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
&::before {
|
background-color: #fff;
|
||||||
background-image: url('/@/assets/svg/login-bg-dark.svg');
|
color: @text-color;
|
||||||
}
|
|
||||||
|
|
||||||
.ant-input,
|
|
||||||
.ant-input-password {
|
|
||||||
background-color: #232a3b;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ant-btn:not(.ant-btn-link):not(.ant-btn-primary) {
|
|
||||||
border: 1px solid #4a5569;
|
|
||||||
}
|
|
||||||
|
|
||||||
&-form {
|
|
||||||
background: transparent !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.app-iconify {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
input.fix-auto-fill,
|
|
||||||
.fix-auto-fill input {
|
|
||||||
-webkit-text-fill-color: #c9d1d9 !important;
|
|
||||||
box-shadow: inherit !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.@{prefix-cls} {
|
|
||||||
min-height: 100%;
|
|
||||||
overflow: hidden;
|
|
||||||
background-color: #fff;
|
|
||||||
color: @text-color;
|
|
||||||
|
|
||||||
@media (max-width: @screen-xl) {
|
|
||||||
background-color: #293146;
|
|
||||||
|
|
||||||
.@{prefix-cls}-form {
|
|
||||||
background-color: #fff;
|
|
||||||
color: @text-color;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&::before {
|
|
||||||
content: '';
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
margin-left: -48%;
|
|
||||||
background-image: url('/@/assets/svg/login-bg.svg');
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: 100%;
|
|
||||||
background-size: auto 100%;
|
|
||||||
|
|
||||||
@media (max-width: @screen-xl) {
|
@media (max-width: @screen-xl) {
|
||||||
display: none;
|
background-color: #293146;
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.@{logo-prefix-cls} {
|
.@{prefix-cls}-form {
|
||||||
position: absolute;
|
background-color: #fff;
|
||||||
top: 12px;
|
color: @text-color;
|
||||||
height: 30px;
|
}
|
||||||
|
|
||||||
&__title {
|
|
||||||
color: #fff;
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
img {
|
&::before {
|
||||||
width: 32px;
|
content: '';
|
||||||
}
|
position: absolute;
|
||||||
}
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
margin-left: -48%;
|
||||||
|
background-image: url('/@/assets/svg/login-bg.svg');
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: 100%;
|
||||||
|
background-size: auto 100%;
|
||||||
|
|
||||||
|
@media (max-width: @screen-xl) {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.container {
|
|
||||||
.@{logo-prefix-cls} {
|
.@{logo-prefix-cls} {
|
||||||
display: flex;
|
position: absolute;
|
||||||
width: 60%;
|
top: 25px;
|
||||||
height: 80px;
|
height: 30px;
|
||||||
|
|
||||||
&__title {
|
&__title {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
font-size: 24px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
img {
|
img {
|
||||||
width: 48px;
|
width: 65px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
&-sign-in-way {
|
.container {
|
||||||
.anticon {
|
.@{logo-prefix-cls} {
|
||||||
color: #888;
|
display: flex;
|
||||||
font-size: 22px;
|
width: 60%;
|
||||||
cursor: pointer;
|
height: 80px;
|
||||||
|
|
||||||
&:hover {
|
&__title {
|
||||||
color: @primary-color;
|
color: #fff;
|
||||||
|
font-size: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 65px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
input:not([type='checkbox']) {
|
&-sign-in-way {
|
||||||
min-width: 360px;
|
.anticon {
|
||||||
|
color: #888;
|
||||||
|
font-size: 22px;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
@media (max-width: @screen-xl) {
|
&:hover {
|
||||||
min-width: 320px;
|
color: @primary-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: @screen-lg) {
|
input:not([type='checkbox']) {
|
||||||
min-width: 260px;
|
min-width: 360px;
|
||||||
|
|
||||||
|
@media (max-width: @screen-xl) {
|
||||||
|
min-width: 320px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: @screen-lg) {
|
||||||
|
min-width: 260px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: @screen-md) {
|
||||||
|
min-width: 240px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: @screen-sm) {
|
||||||
|
min-width: 160px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: @screen-md) {
|
.@{countdown-prefix-cls} input {
|
||||||
min-width: 240px;
|
min-width: unset;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: @screen-sm) {
|
.ant-divider-inner-text {
|
||||||
min-width: 160px;
|
color: @text-color-secondary;
|
||||||
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
</style>
|
||||||
.@{countdown-prefix-cls} input {
|
|
||||||
min-width: unset;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ant-divider-inner-text {
|
|
||||||
color: @text-color-secondary;
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
|
||||||
|
|
@ -1,31 +1,33 @@
|
||||||
import { defineApplicationConfig } from '@vben/vite-config';
|
import { defineApplicationConfig } from '@vben/vite-config';
|
||||||
|
|
||||||
export default defineApplicationConfig({
|
export default defineApplicationConfig({
|
||||||
overrides: {
|
overrides: {
|
||||||
optimizeDeps: {
|
optimizeDeps: {
|
||||||
include: [
|
include: [
|
||||||
'echarts/core',
|
'echarts/core',
|
||||||
'echarts/charts',
|
'echarts/charts',
|
||||||
'echarts/components',
|
'echarts/components',
|
||||||
'echarts/renderers',
|
'echarts/renderers',
|
||||||
'qrcode',
|
'qrcode',
|
||||||
'@iconify/iconify',
|
'@iconify/iconify',
|
||||||
'ant-design-vue/es/locale/zh_CN',
|
'ant-design-vue/es/locale/zh_CN',
|
||||||
'ant-design-vue/es/locale/en_US',
|
'ant-design-vue/es/locale/en_US',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
server: {
|
server: {
|
||||||
port: 3000,
|
port: 3000,
|
||||||
proxy: {
|
proxy: {
|
||||||
'/erp-api': {
|
'/erp-api': {
|
||||||
target: 'http://localhost:8088',
|
target: 'http://58.49.150.163:8088',
|
||||||
changeOrigin: true,
|
// target: 'https://eairp.cn',
|
||||||
ws: true,
|
|
||||||
// rewrite: (path) => path.replace(/^\/api/, ''),
|
|
||||||
// only https
|
|
||||||
|
|
||||||
}
|
changeOrigin: true,
|
||||||
},
|
ws: true,
|
||||||
|
// rewrite: (path) => path.replace(/^\/api/, ''),
|
||||||
|
// only https
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
|
||||||
});
|
});
|
||||||
|
|
|
||||||