mirror of
https://github.com/Buriburizaem0n/admin-frontend-domain.git
synced 2026-02-04 04:30:06 +00:00
feat: auto generate api types
This commit is contained in:
51
README.md
51
README.md
@@ -1,50 +1,7 @@
|
|||||||
# React + TypeScript + Vite
|
# Nezha Admin Frontend
|
||||||
|
|
||||||
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
|
## Bootstrap
|
||||||
|
|
||||||
Currently, two official plugins are available:
|
```bash
|
||||||
|
npx swagger-typescript-api -p http://localhost:8008/swagger/doc.json -o ./src/types -n api.ts --no-client --union-enums
|
||||||
- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh
|
|
||||||
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
|
|
||||||
|
|
||||||
## Expanding the ESLint configuration
|
|
||||||
|
|
||||||
If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:
|
|
||||||
|
|
||||||
- Configure the top-level `parserOptions` property like this:
|
|
||||||
|
|
||||||
```js
|
|
||||||
export default tseslint.config({
|
|
||||||
languageOptions: {
|
|
||||||
// other options...
|
|
||||||
parserOptions: {
|
|
||||||
project: ['./tsconfig.node.json', './tsconfig.app.json'],
|
|
||||||
tsconfigRootDir: import.meta.dirname,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
```
|
|
||||||
|
|
||||||
- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked`
|
|
||||||
- Optionally add `...tseslint.configs.stylisticTypeChecked`
|
|
||||||
- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config:
|
|
||||||
|
|
||||||
```js
|
|
||||||
// eslint.config.js
|
|
||||||
import react from 'eslint-plugin-react'
|
|
||||||
|
|
||||||
export default tseslint.config({
|
|
||||||
// Set the react version
|
|
||||||
settings: { react: { version: '18.3' } },
|
|
||||||
plugins: {
|
|
||||||
// Add the react plugin
|
|
||||||
react,
|
|
||||||
},
|
|
||||||
rules: {
|
|
||||||
// other rules...
|
|
||||||
// Enable its recommended rules
|
|
||||||
...react.configs.recommended.rules,
|
|
||||||
...react.configs['jsx-runtime'].rules,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
```
|
```
|
||||||
|
|||||||
682
package-lock.json
generated
682
package-lock.json
generated
@@ -44,6 +44,7 @@
|
|||||||
"eslint-plugin-react-refresh": "^0.4.14",
|
"eslint-plugin-react-refresh": "^0.4.14",
|
||||||
"globals": "^15.11.0",
|
"globals": "^15.11.0",
|
||||||
"postcss": "^8.4.47",
|
"postcss": "^8.4.47",
|
||||||
|
"swagger-typescript-api": "^13.0.22",
|
||||||
"tailwindcss": "^3.4.14",
|
"tailwindcss": "^3.4.14",
|
||||||
"typescript": "~5.6.2",
|
"typescript": "~5.6.2",
|
||||||
"typescript-eslint": "^8.11.0",
|
"typescript-eslint": "^8.11.0",
|
||||||
@@ -886,6 +887,13 @@
|
|||||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@exodus/schemasafe": {
|
||||||
|
"version": "1.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.3.0.tgz",
|
||||||
|
"integrity": "sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/@floating-ui/core": {
|
"node_modules/@floating-ui/core": {
|
||||||
"version": "1.6.8",
|
"version": "1.6.8",
|
||||||
"resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz",
|
"resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz",
|
||||||
@@ -2198,6 +2206,13 @@
|
|||||||
"@types/react": "*"
|
"@types/react": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@types/swagger-schema-official": {
|
||||||
|
"version": "2.0.25",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/swagger-schema-official/-/swagger-schema-official-2.0.25.tgz",
|
||||||
|
"integrity": "sha512-T92Xav+Gf/Ik1uPW581nA+JftmjWPgskw/WBf4TJzxRG/SJ+DfNnNE+WuZ4mrXuzflQMqMkm1LSYjzYW7MB1Cg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/@typescript-eslint/eslint-plugin": {
|
"node_modules/@typescript-eslint/eslint-plugin": {
|
||||||
"version": "8.12.2",
|
"version": "8.12.2",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.12.2.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.12.2.tgz",
|
||||||
@@ -2683,6 +2698,13 @@
|
|||||||
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
|
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/call-me-maybe": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/callsites": {
|
"node_modules/callsites": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
|
||||||
@@ -2803,6 +2825,84 @@
|
|||||||
"integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==",
|
"integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/cliui": {
|
||||||
|
"version": "8.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
|
||||||
|
"integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"string-width": "^4.2.0",
|
||||||
|
"strip-ansi": "^6.0.1",
|
||||||
|
"wrap-ansi": "^7.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/cliui/node_modules/ansi-regex": {
|
||||||
|
"version": "5.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||||
|
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/cliui/node_modules/emoji-regex": {
|
||||||
|
"version": "8.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
||||||
|
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/cliui/node_modules/string-width": {
|
||||||
|
"version": "4.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
||||||
|
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"emoji-regex": "^8.0.0",
|
||||||
|
"is-fullwidth-code-point": "^3.0.0",
|
||||||
|
"strip-ansi": "^6.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/cliui/node_modules/strip-ansi": {
|
||||||
|
"version": "6.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
||||||
|
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"ansi-regex": "^5.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/cliui/node_modules/wrap-ansi": {
|
||||||
|
"version": "7.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
|
||||||
|
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"ansi-styles": "^4.0.0",
|
||||||
|
"string-width": "^4.1.0",
|
||||||
|
"strip-ansi": "^6.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/clsx": {
|
"node_modules/clsx": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
|
||||||
@@ -2846,6 +2946,16 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/consola": {
|
||||||
|
"version": "3.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz",
|
||||||
|
"integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": "^14.18.0 || >=16.10.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/convert-source-map": {
|
"node_modules/convert-source-map": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
|
||||||
@@ -2853,6 +2963,33 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/cosmiconfig": {
|
||||||
|
"version": "9.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz",
|
||||||
|
"integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"env-paths": "^2.2.1",
|
||||||
|
"import-fresh": "^3.3.0",
|
||||||
|
"js-yaml": "^4.1.0",
|
||||||
|
"parse-json": "^5.2.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/d-fischer"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"typescript": ">=4.9.5"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"typescript": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/cross-spawn": {
|
"node_modules/cross-spawn": {
|
||||||
"version": "7.0.3",
|
"version": "7.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
||||||
@@ -2948,6 +3085,33 @@
|
|||||||
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
|
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/env-paths": {
|
||||||
|
"version": "2.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
|
||||||
|
"integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/error-ex": {
|
||||||
|
"version": "1.3.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
|
||||||
|
"integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"is-arrayish": "^0.2.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/es6-promise": {
|
||||||
|
"version": "3.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz",
|
||||||
|
"integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/esbuild": {
|
"node_modules/esbuild": {
|
||||||
"version": "0.21.5",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
|
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
|
||||||
@@ -3188,6 +3352,19 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/eta": {
|
||||||
|
"version": "2.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/eta/-/eta-2.2.0.tgz",
|
||||||
|
"integrity": "sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/eta-dev/eta?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/fast-deep-equal": {
|
"node_modules/fast-deep-equal": {
|
||||||
"version": "3.1.3",
|
"version": "3.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
||||||
@@ -3237,6 +3414,13 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/fast-safe-stringify": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
|
||||||
|
"integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/fastq": {
|
"node_modules/fastq": {
|
||||||
"version": "1.17.1",
|
"version": "1.17.1",
|
||||||
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
|
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
|
||||||
@@ -3372,6 +3556,16 @@
|
|||||||
"node": ">=6.9.0"
|
"node": ">=6.9.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/get-caller-file": {
|
||||||
|
"version": "2.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
|
||||||
|
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"engines": {
|
||||||
|
"node": "6.* || 8.* || >= 10.*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/get-nonce": {
|
"node_modules/get-nonce": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz",
|
||||||
@@ -3479,6 +3673,13 @@
|
|||||||
"node": ">= 0.4"
|
"node": ">= 0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/http2-client": {
|
||||||
|
"version": "1.3.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.5.tgz",
|
||||||
|
"integrity": "sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/ignore": {
|
"node_modules/ignore": {
|
||||||
"version": "5.3.2",
|
"version": "5.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
|
||||||
@@ -3525,6 +3726,13 @@
|
|||||||
"loose-envify": "^1.0.0"
|
"loose-envify": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/is-arrayish": {
|
||||||
|
"version": "0.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
|
||||||
|
"integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/is-binary-path": {
|
"node_modules/is-binary-path": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
|
||||||
@@ -3691,6 +3899,13 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/json-parse-even-better-errors": {
|
||||||
|
"version": "2.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
|
||||||
|
"integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/json-schema-traverse": {
|
"node_modules/json-schema-traverse": {
|
||||||
"version": "0.4.1",
|
"version": "0.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
||||||
@@ -3773,6 +3988,13 @@
|
|||||||
"url": "https://github.com/sponsors/sindresorhus"
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/lodash": {
|
||||||
|
"version": "4.17.21",
|
||||||
|
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||||
|
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/lodash.merge": {
|
"node_modules/lodash.merge": {
|
||||||
"version": "4.6.2",
|
"version": "4.6.2",
|
||||||
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
|
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
|
||||||
@@ -3908,6 +4130,50 @@
|
|||||||
"react-dom": "^16.8 || ^17 || ^18"
|
"react-dom": "^16.8 || ^17 || ^18"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/node-fetch": {
|
||||||
|
"version": "2.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
|
||||||
|
"integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"whatwg-url": "^5.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "4.x || >=6.0.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"encoding": "^0.1.0"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"encoding": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/node-fetch-h2": {
|
||||||
|
"version": "2.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz",
|
||||||
|
"integrity": "sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"http2-client": "^1.2.5"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "4.x || >=6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/node-readfiles": {
|
||||||
|
"version": "0.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz",
|
||||||
|
"integrity": "sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"es6-promise": "^3.2.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/node-releases": {
|
"node_modules/node-releases": {
|
||||||
"version": "2.0.18",
|
"version": "2.0.18",
|
||||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
|
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
|
||||||
@@ -3934,6 +4200,111 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/oas-kit-common": {
|
||||||
|
"version": "1.0.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz",
|
||||||
|
"integrity": "sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "BSD-3-Clause",
|
||||||
|
"dependencies": {
|
||||||
|
"fast-safe-stringify": "^2.0.7"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/oas-linter": {
|
||||||
|
"version": "3.2.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.2.tgz",
|
||||||
|
"integrity": "sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "BSD-3-Clause",
|
||||||
|
"dependencies": {
|
||||||
|
"@exodus/schemasafe": "^1.0.0-rc.2",
|
||||||
|
"should": "^13.2.1",
|
||||||
|
"yaml": "^1.10.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/Mermade/oas-kit?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/oas-linter/node_modules/yaml": {
|
||||||
|
"version": "1.10.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
|
||||||
|
"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/oas-resolver": {
|
||||||
|
"version": "2.5.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.6.tgz",
|
||||||
|
"integrity": "sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "BSD-3-Clause",
|
||||||
|
"dependencies": {
|
||||||
|
"node-fetch-h2": "^2.3.0",
|
||||||
|
"oas-kit-common": "^1.0.8",
|
||||||
|
"reftools": "^1.1.9",
|
||||||
|
"yaml": "^1.10.0",
|
||||||
|
"yargs": "^17.0.1"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"resolve": "resolve.js"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/Mermade/oas-kit?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/oas-resolver/node_modules/yaml": {
|
||||||
|
"version": "1.10.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
|
||||||
|
"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/oas-schema-walker": {
|
||||||
|
"version": "1.1.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz",
|
||||||
|
"integrity": "sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "BSD-3-Clause",
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/Mermade/oas-kit?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/oas-validator": {
|
||||||
|
"version": "5.0.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/oas-validator/-/oas-validator-5.0.8.tgz",
|
||||||
|
"integrity": "sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "BSD-3-Clause",
|
||||||
|
"dependencies": {
|
||||||
|
"call-me-maybe": "^1.0.1",
|
||||||
|
"oas-kit-common": "^1.0.8",
|
||||||
|
"oas-linter": "^3.2.2",
|
||||||
|
"oas-resolver": "^2.5.6",
|
||||||
|
"oas-schema-walker": "^1.1.5",
|
||||||
|
"reftools": "^1.1.9",
|
||||||
|
"should": "^13.2.1",
|
||||||
|
"yaml": "^1.10.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/Mermade/oas-kit?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/oas-validator/node_modules/yaml": {
|
||||||
|
"version": "1.10.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
|
||||||
|
"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/object-assign": {
|
"node_modules/object-assign": {
|
||||||
"version": "4.1.1",
|
"version": "4.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
||||||
@@ -4021,6 +4392,25 @@
|
|||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/parse-json": {
|
||||||
|
"version": "5.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
|
||||||
|
"integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/code-frame": "^7.0.0",
|
||||||
|
"error-ex": "^1.3.1",
|
||||||
|
"json-parse-even-better-errors": "^2.3.0",
|
||||||
|
"lines-and-columns": "^1.1.6"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/path-exists": {
|
"node_modules/path-exists": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
|
||||||
@@ -4269,6 +4659,22 @@
|
|||||||
"node": ">= 0.8.0"
|
"node": ">= 0.8.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/prettier": {
|
||||||
|
"version": "3.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz",
|
||||||
|
"integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"bin": {
|
||||||
|
"prettier": "bin/prettier.cjs"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/prettier/prettier?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/punycode": {
|
"node_modules/punycode": {
|
||||||
"version": "2.3.1",
|
"version": "2.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
|
||||||
@@ -4473,6 +4879,26 @@
|
|||||||
"node": ">=8.10.0"
|
"node": ">=8.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/reftools": {
|
||||||
|
"version": "1.1.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/reftools/-/reftools-1.1.9.tgz",
|
||||||
|
"integrity": "sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "BSD-3-Clause",
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/Mermade/oas-kit?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/require-directory": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
|
||||||
|
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.10.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/resolve": {
|
"node_modules/resolve": {
|
||||||
"version": "1.22.8",
|
"version": "1.22.8",
|
||||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
|
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
|
||||||
@@ -4611,6 +5037,66 @@
|
|||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/should": {
|
||||||
|
"version": "13.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz",
|
||||||
|
"integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"should-equal": "^2.0.0",
|
||||||
|
"should-format": "^3.0.3",
|
||||||
|
"should-type": "^1.4.0",
|
||||||
|
"should-type-adaptors": "^1.0.1",
|
||||||
|
"should-util": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/should-equal": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"should-type": "^1.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/should-format": {
|
||||||
|
"version": "3.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz",
|
||||||
|
"integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"should-type": "^1.3.0",
|
||||||
|
"should-type-adaptors": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/should-type": {
|
||||||
|
"version": "1.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz",
|
||||||
|
"integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/should-type-adaptors": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"should-type": "^1.3.0",
|
||||||
|
"should-util": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/should-util": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/signal-exit": {
|
"node_modules/signal-exit": {
|
||||||
"version": "4.1.0",
|
"version": "4.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
|
||||||
@@ -4798,6 +5284,93 @@
|
|||||||
"url": "https://github.com/sponsors/ljharb"
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/swagger-schema-official": {
|
||||||
|
"version": "2.0.0-bab6bed",
|
||||||
|
"resolved": "https://registry.npmjs.org/swagger-schema-official/-/swagger-schema-official-2.0.0-bab6bed.tgz",
|
||||||
|
"integrity": "sha512-rCC0NWGKr/IJhtRuPq/t37qvZHI/mH4I4sxflVM+qgVe5Z2uOCivzWaVbuioJaB61kvm5UvB7b49E+oBY0M8jA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC"
|
||||||
|
},
|
||||||
|
"node_modules/swagger-typescript-api": {
|
||||||
|
"version": "13.0.22",
|
||||||
|
"resolved": "https://registry.npmjs.org/swagger-typescript-api/-/swagger-typescript-api-13.0.22.tgz",
|
||||||
|
"integrity": "sha512-LVLOWvozOE3izesDrfmhOpwr6XsCRGsrfJuAXsaHkzQxYPAcpSRIAzodmz1hcGJ8BOPiBCKocH1LQ96F0lmmAw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/swagger-schema-official": "^2.0.25",
|
||||||
|
"consola": "^3.2.3",
|
||||||
|
"cosmiconfig": "^9.0.0",
|
||||||
|
"didyoumean": "^1.2.2",
|
||||||
|
"eta": "^2.2.0",
|
||||||
|
"js-yaml": "^4.1.0",
|
||||||
|
"lodash": "^4.17.21",
|
||||||
|
"nanoid": "^3.3.7",
|
||||||
|
"prettier": "~3.3.3",
|
||||||
|
"swagger-schema-official": "2.0.0-bab6bed",
|
||||||
|
"swagger2openapi": "^7.0.8",
|
||||||
|
"typescript": "~5.5.4"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"sta": "dist/cli.js",
|
||||||
|
"swagger-typescript-api": "dist/cli.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/swagger-typescript-api/node_modules/typescript": {
|
||||||
|
"version": "5.5.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz",
|
||||||
|
"integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"bin": {
|
||||||
|
"tsc": "bin/tsc",
|
||||||
|
"tsserver": "bin/tsserver"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.17"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/swagger2openapi": {
|
||||||
|
"version": "7.0.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-7.0.8.tgz",
|
||||||
|
"integrity": "sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "BSD-3-Clause",
|
||||||
|
"dependencies": {
|
||||||
|
"call-me-maybe": "^1.0.1",
|
||||||
|
"node-fetch": "^2.6.1",
|
||||||
|
"node-fetch-h2": "^2.3.0",
|
||||||
|
"node-readfiles": "^0.2.0",
|
||||||
|
"oas-kit-common": "^1.0.8",
|
||||||
|
"oas-resolver": "^2.5.6",
|
||||||
|
"oas-schema-walker": "^1.1.5",
|
||||||
|
"oas-validator": "^5.0.8",
|
||||||
|
"reftools": "^1.1.9",
|
||||||
|
"yaml": "^1.10.0",
|
||||||
|
"yargs": "^17.0.1"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"boast": "boast.js",
|
||||||
|
"oas-validate": "oas-validate.js",
|
||||||
|
"swagger2openapi": "swagger2openapi.js"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/Mermade/oas-kit?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/swagger2openapi/node_modules/yaml": {
|
||||||
|
"version": "1.10.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
|
||||||
|
"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/swr": {
|
"node_modules/swr": {
|
||||||
"version": "2.2.5",
|
"version": "2.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/swr/-/swr-2.2.5.tgz",
|
"resolved": "https://registry.npmjs.org/swr/-/swr-2.2.5.tgz",
|
||||||
@@ -4907,6 +5480,13 @@
|
|||||||
"node": ">=8.0"
|
"node": ">=8.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/tr46": {
|
||||||
|
"version": "0.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
|
||||||
|
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/ts-api-utils": {
|
"node_modules/ts-api-utils": {
|
||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz",
|
||||||
@@ -5149,6 +5729,24 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/webidl-conversions": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
|
||||||
|
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "BSD-2-Clause"
|
||||||
|
},
|
||||||
|
"node_modules/whatwg-url": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"tr46": "~0.0.3",
|
||||||
|
"webidl-conversions": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/which": {
|
"node_modules/which": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
||||||
@@ -5262,6 +5860,16 @@
|
|||||||
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/y18n": {
|
||||||
|
"version": "5.0.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
|
||||||
|
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/yallist": {
|
"node_modules/yallist": {
|
||||||
"version": "3.1.1",
|
"version": "3.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
|
||||||
@@ -5281,6 +5889,80 @@
|
|||||||
"node": ">= 14"
|
"node": ">= 14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/yargs": {
|
||||||
|
"version": "17.7.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
|
||||||
|
"integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"cliui": "^8.0.1",
|
||||||
|
"escalade": "^3.1.1",
|
||||||
|
"get-caller-file": "^2.0.5",
|
||||||
|
"require-directory": "^2.1.1",
|
||||||
|
"string-width": "^4.2.3",
|
||||||
|
"y18n": "^5.0.5",
|
||||||
|
"yargs-parser": "^21.1.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/yargs-parser": {
|
||||||
|
"version": "21.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
|
||||||
|
"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/yargs/node_modules/ansi-regex": {
|
||||||
|
"version": "5.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||||
|
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/yargs/node_modules/emoji-regex": {
|
||||||
|
"version": "8.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
||||||
|
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/yargs/node_modules/string-width": {
|
||||||
|
"version": "4.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
||||||
|
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"emoji-regex": "^8.0.0",
|
||||||
|
"is-fullwidth-code-point": "^3.0.0",
|
||||||
|
"strip-ansi": "^6.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/yargs/node_modules/strip-ansi": {
|
||||||
|
"version": "6.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
||||||
|
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"ansi-regex": "^5.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/yocto-queue": {
|
"node_modules/yocto-queue": {
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
|
||||||
|
|||||||
@@ -46,6 +46,7 @@
|
|||||||
"eslint-plugin-react-refresh": "^0.4.14",
|
"eslint-plugin-react-refresh": "^0.4.14",
|
||||||
"globals": "^15.11.0",
|
"globals": "^15.11.0",
|
||||||
"postcss": "^8.4.47",
|
"postcss": "^8.4.47",
|
||||||
|
"swagger-typescript-api": "^13.0.22",
|
||||||
"tailwindcss": "^3.4.14",
|
"tailwindcss": "^3.4.14",
|
||||||
"typescript": "~5.6.2",
|
"typescript": "~5.6.2",
|
||||||
"typescript-eslint": "^8.11.0",
|
"typescript-eslint": "^8.11.0",
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ export enum FetcherMethod {
|
|||||||
DELETE = "DELETE",
|
DELETE = "DELETE",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let lastestRefreshTokenAt = 0;
|
||||||
|
|
||||||
export async function fetcher<T>(method: FetcherMethod, path: string, data?: any): Promise<T> {
|
export async function fetcher<T>(method: FetcherMethod, path: string, data?: any): Promise<T> {
|
||||||
let response;
|
let response;
|
||||||
if (method === FetcherMethod.GET || method === FetcherMethod.DELETE) {
|
if (method === FetcherMethod.GET || method === FetcherMethod.DELETE) {
|
||||||
@@ -44,6 +46,13 @@ export async function fetcher<T>(method: FetcherMethod, path: string, data?: any
|
|||||||
if (!responseData.success) {
|
if (!responseData.success) {
|
||||||
throw new Error(responseData.error);
|
throw new Error(responseData.error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// auto refresh token
|
||||||
|
if (!lastestRefreshTokenAt || Date.now() - lastestRefreshTokenAt > 1000 * 60 * 60) {
|
||||||
|
lastestRefreshTokenAt = Date.now();
|
||||||
|
fetch("/api/v1/refresh-token")
|
||||||
|
}
|
||||||
|
|
||||||
return responseData.data;
|
return responseData.data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,8 @@
|
|||||||
import { User } from "@/types"
|
import { ModelUser } from "@/types"
|
||||||
import { fetcher, FetcherMethod } from "./api"
|
import { fetcher, FetcherMethod } from "./api"
|
||||||
|
|
||||||
export const getProfile = async (): Promise<User> => {
|
export const getProfile = async (): Promise<ModelUser> => {
|
||||||
return fetcher<User>(FetcherMethod.GET, '/api/v1/profile', null)
|
return fetcher<ModelUser>(FetcherMethod.GET, '/api/v1/profile', null)
|
||||||
}
|
|
||||||
|
|
||||||
export const refreshToken = async (): Promise<any> => {
|
|
||||||
return fetcher<any>(FetcherMethod.GET, '/api/v1/refresh_token', null)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export const login = async (username: string, password: string): Promise<any> => {
|
export const login = async (username: string, password: string): Promise<any> => {
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import { NzNavigationMenuLink } from "./xui/navigation-menu";
|
|||||||
import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from "./ui/dropdown-menu";
|
import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from "./ui/dropdown-menu";
|
||||||
import { User, LogOut } from "lucide-react";
|
import { User, LogOut } from "lucide-react";
|
||||||
import { useAuth } from "@/hooks/useAuth";
|
import { useAuth } from "@/hooks/useAuth";
|
||||||
|
import { Link } from "react-router-dom";
|
||||||
|
|
||||||
|
|
||||||
export default function Header() {
|
export default function Header() {
|
||||||
@@ -22,21 +23,21 @@ export default function Header() {
|
|||||||
<NavigationMenu className="max-w-full">
|
<NavigationMenu className="max-w-full">
|
||||||
<NavigationMenuList>
|
<NavigationMenuList>
|
||||||
<Card>
|
<Card>
|
||||||
<NavigationMenuLink href="/dashboard" className={navigationMenuTriggerStyle() + ' !text-foreground'}>
|
<NavigationMenuLink asChild className={navigationMenuTriggerStyle() + ' !text-foreground'}>
|
||||||
<img className="h-7 mr-1" src='/dashboard/logo.svg' /> 哪吒监控
|
<Link to="/dashboard"><img className="h-7 mr-1" src='/dashboard/logo.svg' /> 哪吒监控</Link>
|
||||||
</NavigationMenuLink>
|
</NavigationMenuLink>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
{
|
{
|
||||||
profile && <>
|
profile && <>
|
||||||
<NavigationMenuItem>
|
<NavigationMenuItem>
|
||||||
<NzNavigationMenuLink href="/dashboard" active className={navigationMenuTriggerStyle()}>
|
<NzNavigationMenuLink asChild active className={navigationMenuTriggerStyle()}>
|
||||||
Server
|
<Link to="/dashboard">Server</Link>
|
||||||
</NzNavigationMenuLink>
|
</NzNavigationMenuLink>
|
||||||
</NavigationMenuItem>
|
</NavigationMenuItem>
|
||||||
<NavigationMenuItem>
|
<NavigationMenuItem>
|
||||||
<NzNavigationMenuLink href="/dashboard/service" className={navigationMenuTriggerStyle()}>
|
<NzNavigationMenuLink asChild className={navigationMenuTriggerStyle()}>
|
||||||
Service
|
<Link to="/dashboard/service">Service</Link>
|
||||||
</NzNavigationMenuLink>
|
</NzNavigationMenuLink>
|
||||||
</NavigationMenuItem>
|
</NavigationMenuItem>
|
||||||
</>
|
</>
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import { createContext, useContext, useEffect, useMemo, useRef } from "react";
|
import { createContext, useContext, useEffect, useMemo } from "react";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { useMainStore } from "./useMainStore";
|
import { useMainStore } from "./useMainStore";
|
||||||
import { AuthContextProps } from "@/types";
|
import { AuthContextProps } from "@/types";
|
||||||
import { getProfile, login as loginRequest, refreshToken } from "@/api/user";
|
import { getProfile, login as loginRequest } from "@/api/user";
|
||||||
import { toast } from "sonner";
|
import { toast } from "sonner";
|
||||||
|
|
||||||
const AuthContext = createContext<AuthContextProps>({
|
const AuthContext = createContext<AuthContextProps>({
|
||||||
@@ -16,35 +16,17 @@ export const AuthProvider = ({ children }: {
|
|||||||
}) => {
|
}) => {
|
||||||
const profile = useMainStore(store => store.profile)
|
const profile = useMainStore(store => store.profile)
|
||||||
const setProfile = useMainStore(store => store.setProfile)
|
const setProfile = useMainStore(store => store.setProfile)
|
||||||
const initialized = useRef(false)
|
|
||||||
const lastRefreshedAt = useRef(0)
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (initialized.current) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
initialized.current = true;
|
|
||||||
(async () => {
|
(async () => {
|
||||||
while (true) {
|
try {
|
||||||
if (!profile) {
|
const user = await getProfile();
|
||||||
await new Promise((resolve) => setTimeout(resolve, 1000))
|
setProfile(user);
|
||||||
continue
|
} catch (error) {
|
||||||
}
|
setProfile(undefined);
|
||||||
if (lastRefreshedAt.current + 1000 * 60 * 10 > Date.now()) {
|
|
||||||
await new Promise((resolve) => setTimeout(resolve, 1000))
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
await refreshToken();
|
|
||||||
const user = await getProfile();
|
|
||||||
setProfile(user);
|
|
||||||
lastRefreshedAt.current = Date.now();
|
|
||||||
} catch (error) {
|
|
||||||
setProfile(undefined);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
}, [profile])
|
}, [])
|
||||||
|
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|
||||||
|
|||||||
593
src/types/api.ts
Normal file
593
src/types/api.ts
Normal file
@@ -0,0 +1,593 @@
|
|||||||
|
/* eslint-disable */
|
||||||
|
/* tslint:disable */
|
||||||
|
/*
|
||||||
|
* ---------------------------------------------------------------
|
||||||
|
* ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ##
|
||||||
|
* ## ##
|
||||||
|
* ## AUTHOR: acacode ##
|
||||||
|
* ## SOURCE: https://github.com/acacode/swagger-typescript-api ##
|
||||||
|
* ---------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
export interface GithubComNaibaNezhaModelCommonResponseAny {
|
||||||
|
data?: any;
|
||||||
|
error?: string;
|
||||||
|
success?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GithubComNaibaNezhaModelCommonResponseArrayModelAlertRule {
|
||||||
|
data?: ModelAlertRule[];
|
||||||
|
error?: string;
|
||||||
|
success?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GithubComNaibaNezhaModelCommonResponseArrayModelCron {
|
||||||
|
data?: ModelCron[];
|
||||||
|
error?: string;
|
||||||
|
success?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GithubComNaibaNezhaModelCommonResponseArrayModelDDNSProfile {
|
||||||
|
data?: ModelDDNSProfile[];
|
||||||
|
error?: string;
|
||||||
|
success?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GithubComNaibaNezhaModelCommonResponseArrayModelNAT {
|
||||||
|
data?: ModelNAT[];
|
||||||
|
error?: string;
|
||||||
|
success?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GithubComNaibaNezhaModelCommonResponseArrayModelNotification {
|
||||||
|
data?: ModelNotification[];
|
||||||
|
error?: string;
|
||||||
|
success?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GithubComNaibaNezhaModelCommonResponseArrayModelNotificationGroupResponseItem {
|
||||||
|
data?: ModelNotificationGroupResponseItem[];
|
||||||
|
error?: string;
|
||||||
|
success?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GithubComNaibaNezhaModelCommonResponseArrayModelServer {
|
||||||
|
data?: ModelServer[];
|
||||||
|
error?: string;
|
||||||
|
success?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GithubComNaibaNezhaModelCommonResponseArrayModelServerGroupResponseItem {
|
||||||
|
data?: ModelServerGroupResponseItem[];
|
||||||
|
error?: string;
|
||||||
|
success?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GithubComNaibaNezhaModelCommonResponseArrayModelServiceInfos {
|
||||||
|
data?: ModelServiceInfos[];
|
||||||
|
error?: string;
|
||||||
|
success?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GithubComNaibaNezhaModelCommonResponseArrayModelUser {
|
||||||
|
data?: ModelUser[];
|
||||||
|
error?: string;
|
||||||
|
success?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GithubComNaibaNezhaModelCommonResponseArrayString {
|
||||||
|
data?: string[];
|
||||||
|
error?: string;
|
||||||
|
success?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GithubComNaibaNezhaModelCommonResponseArrayUint64 {
|
||||||
|
data?: number[];
|
||||||
|
error?: string;
|
||||||
|
success?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GithubComNaibaNezhaModelCommonResponseModelConfig {
|
||||||
|
data?: ModelConfig;
|
||||||
|
error?: string;
|
||||||
|
success?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GithubComNaibaNezhaModelCommonResponseModelLoginResponse {
|
||||||
|
data?: ModelLoginResponse;
|
||||||
|
error?: string;
|
||||||
|
success?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GithubComNaibaNezhaModelCommonResponseModelServiceResponse {
|
||||||
|
data?: ModelServiceResponse;
|
||||||
|
error?: string;
|
||||||
|
success?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GithubComNaibaNezhaModelCommonResponseModelUser {
|
||||||
|
data?: ModelUser;
|
||||||
|
error?: string;
|
||||||
|
success?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GithubComNaibaNezhaModelCommonResponseUint64 {
|
||||||
|
data?: number;
|
||||||
|
error?: string;
|
||||||
|
success?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GormDeletedAt {
|
||||||
|
time?: string;
|
||||||
|
/** Valid is true if Time is not NULL */
|
||||||
|
valid?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelAlertRule {
|
||||||
|
created_at?: string;
|
||||||
|
deleted_at?: GormDeletedAt;
|
||||||
|
enable?: boolean;
|
||||||
|
/** 失败时执行的触发任务id */
|
||||||
|
fail_trigger_tasks?: number[];
|
||||||
|
id?: number;
|
||||||
|
name?: string;
|
||||||
|
/** 该报警规则所在的通知组 */
|
||||||
|
notification_group_id?: number;
|
||||||
|
/** 恢复时执行的触发任务id */
|
||||||
|
recover_trigger_tasks?: number[];
|
||||||
|
rules?: ModelRule[];
|
||||||
|
/** 触发模式: 0-始终触发(默认) 1-单次触发 */
|
||||||
|
trigger_mode?: number;
|
||||||
|
updated_at?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelAlertRuleForm {
|
||||||
|
enable?: boolean;
|
||||||
|
/** 失败时触发的任务id */
|
||||||
|
fail_trigger_tasks?: number[];
|
||||||
|
name?: string;
|
||||||
|
notification_group_id?: number;
|
||||||
|
/** 恢复时触发的任务id */
|
||||||
|
recover_trigger_tasks?: number[];
|
||||||
|
rules?: ModelRule[];
|
||||||
|
trigger_mode?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelConfig {
|
||||||
|
agent_secret_key?: string;
|
||||||
|
avg_ping_count?: number;
|
||||||
|
/** 覆盖范围(0:提醒未被 IgnoredIPNotification 包含的所有服务器; 1:仅提醒被 IgnoredIPNotification 包含的服务器;) */
|
||||||
|
cover?: number;
|
||||||
|
custom_code?: string;
|
||||||
|
custom_code_dashboard?: string;
|
||||||
|
/** debug模式开关 */
|
||||||
|
debug?: boolean;
|
||||||
|
dns_servers?: string;
|
||||||
|
/** IP变更提醒 */
|
||||||
|
enable_ip_change_notification?: boolean;
|
||||||
|
/** 通知信息IP不打码 */
|
||||||
|
enable_plain_ip_in_notification?: boolean;
|
||||||
|
/** 特定服务器IP(多个服务器用逗号分隔) */
|
||||||
|
ignored_ip_notification?: string;
|
||||||
|
/** [ServerID] -> bool(值为true代表当前ServerID在特定服务器列表内) */
|
||||||
|
ignored_ip_notification_server_ids?: Record<string, boolean>;
|
||||||
|
install_host?: string;
|
||||||
|
ip_change_notification_group_id?: number;
|
||||||
|
jwt_secret_key?: string;
|
||||||
|
/** 系统语言,默认 zh_CN */
|
||||||
|
language?: string;
|
||||||
|
listen_port?: number;
|
||||||
|
/** 时区,默认为 Asia/Shanghai */
|
||||||
|
location?: string;
|
||||||
|
site_name?: string;
|
||||||
|
tls?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelCreateFMResponse {
|
||||||
|
session_id?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelCreateTerminalResponse {
|
||||||
|
server_id?: number;
|
||||||
|
server_name?: string;
|
||||||
|
session_id?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelCron {
|
||||||
|
command?: string;
|
||||||
|
/** 计划任务覆盖范围 (0:仅覆盖特定服务器 1:仅忽略特定服务器 2:由触发该计划任务的服务器执行) */
|
||||||
|
cover?: number;
|
||||||
|
created_at?: string;
|
||||||
|
cron_job_id?: number;
|
||||||
|
deleted_at?: GormDeletedAt;
|
||||||
|
id?: number;
|
||||||
|
/** 最后一次执行时间 */
|
||||||
|
last_executed_at?: string;
|
||||||
|
/** 最后一次执行结果 */
|
||||||
|
last_result?: boolean;
|
||||||
|
name?: string;
|
||||||
|
/** 指定通知方式的分组 */
|
||||||
|
notification_group_id?: number;
|
||||||
|
/** 推送成功的通知 */
|
||||||
|
push_successful?: boolean;
|
||||||
|
/** 分钟 小时 天 月 星期 */
|
||||||
|
scheduler?: string;
|
||||||
|
servers?: number[];
|
||||||
|
/** 0:计划任务 1:触发任务 */
|
||||||
|
task_type?: number;
|
||||||
|
updated_at?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelCronForm {
|
||||||
|
command?: string;
|
||||||
|
cover?: number;
|
||||||
|
id?: number;
|
||||||
|
name?: string;
|
||||||
|
notification_group_id?: number;
|
||||||
|
push_successful?: boolean;
|
||||||
|
scheduler?: string;
|
||||||
|
servers?: number[];
|
||||||
|
/** 0:计划任务 1:触发任务 */
|
||||||
|
task_type?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelCycleTransferStats {
|
||||||
|
from?: string;
|
||||||
|
max?: number;
|
||||||
|
min?: number;
|
||||||
|
name?: string;
|
||||||
|
nextUpdate?: Record<string, string>;
|
||||||
|
serverName?: Record<string, string>;
|
||||||
|
to?: string;
|
||||||
|
transfer?: Record<string, number>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelDDNSForm {
|
||||||
|
access_id?: string;
|
||||||
|
access_secret?: string;
|
||||||
|
domains?: string[];
|
||||||
|
enable_ipv4?: boolean;
|
||||||
|
enable_ipv6?: boolean;
|
||||||
|
max_retries?: number;
|
||||||
|
name?: string;
|
||||||
|
provider?: string;
|
||||||
|
webhook_headers?: string;
|
||||||
|
webhook_method?: number;
|
||||||
|
webhook_request_body?: string;
|
||||||
|
webhook_request_type?: number;
|
||||||
|
webhook_url?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelDDNSProfile {
|
||||||
|
access_id?: string;
|
||||||
|
access_secret?: string;
|
||||||
|
created_at?: string;
|
||||||
|
deleted_at?: GormDeletedAt;
|
||||||
|
domains?: string[];
|
||||||
|
enable_ipv4?: boolean;
|
||||||
|
enable_ipv6?: boolean;
|
||||||
|
id?: number;
|
||||||
|
max_retries?: number;
|
||||||
|
name?: string;
|
||||||
|
provider?: string;
|
||||||
|
updated_at?: string;
|
||||||
|
webhook_headers?: string;
|
||||||
|
webhook_method?: number;
|
||||||
|
webhook_request_body?: string;
|
||||||
|
webhook_request_type?: number;
|
||||||
|
webhook_url?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelHost {
|
||||||
|
arch?: string;
|
||||||
|
boot_time?: number;
|
||||||
|
country_code?: string;
|
||||||
|
cpu?: string[];
|
||||||
|
disk_total?: number;
|
||||||
|
gpu?: string[];
|
||||||
|
ip?: string;
|
||||||
|
mem_total?: number;
|
||||||
|
platform?: string;
|
||||||
|
platform_version?: string;
|
||||||
|
swap_total?: number;
|
||||||
|
version?: string;
|
||||||
|
virtualization?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelHostState {
|
||||||
|
cpu?: number;
|
||||||
|
disk_used?: number;
|
||||||
|
gpu?: number[];
|
||||||
|
load_1?: number;
|
||||||
|
load_15?: number;
|
||||||
|
load_5?: number;
|
||||||
|
mem_used?: number;
|
||||||
|
net_in_speed?: number;
|
||||||
|
net_in_transfer?: number;
|
||||||
|
net_out_speed?: number;
|
||||||
|
net_out_transfer?: number;
|
||||||
|
process_count?: number;
|
||||||
|
swap_used?: number;
|
||||||
|
tcp_conn_count?: number;
|
||||||
|
temperatures?: ModelSensorTemperature[];
|
||||||
|
udp_conn_count?: number;
|
||||||
|
uptime?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelLoginRequest {
|
||||||
|
password?: string;
|
||||||
|
username?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelLoginResponse {
|
||||||
|
expire?: string;
|
||||||
|
token?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelNAT {
|
||||||
|
created_at?: string;
|
||||||
|
deleted_at?: GormDeletedAt;
|
||||||
|
domain?: string;
|
||||||
|
host?: string;
|
||||||
|
id?: number;
|
||||||
|
name?: string;
|
||||||
|
serverID?: number;
|
||||||
|
updated_at?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelNATForm {
|
||||||
|
domain?: string;
|
||||||
|
host?: string;
|
||||||
|
name?: string;
|
||||||
|
server_id?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelNotification {
|
||||||
|
created_at?: string;
|
||||||
|
deleted_at?: GormDeletedAt;
|
||||||
|
id?: number;
|
||||||
|
name?: string;
|
||||||
|
request_body?: string;
|
||||||
|
request_header?: string;
|
||||||
|
request_method?: number;
|
||||||
|
request_type?: number;
|
||||||
|
updated_at?: string;
|
||||||
|
url?: string;
|
||||||
|
verify_tls?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelNotificationForm {
|
||||||
|
name?: string;
|
||||||
|
request_body?: string;
|
||||||
|
request_header?: string;
|
||||||
|
request_method?: number;
|
||||||
|
request_type?: number;
|
||||||
|
skip_check?: boolean;
|
||||||
|
url?: string;
|
||||||
|
verify_tls?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelNotificationGroup {
|
||||||
|
created_at?: string;
|
||||||
|
deleted_at?: GormDeletedAt;
|
||||||
|
id?: number;
|
||||||
|
name?: string;
|
||||||
|
updated_at?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelNotificationGroupForm {
|
||||||
|
name?: string;
|
||||||
|
notifications?: number[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelNotificationGroupResponseItem {
|
||||||
|
group?: ModelNotificationGroup;
|
||||||
|
notifications?: number[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelRule {
|
||||||
|
/** 覆盖范围 RuleCoverAll/IgnoreAll */
|
||||||
|
cover?: number;
|
||||||
|
/** 流量统计周期 */
|
||||||
|
cycle_interval?: number;
|
||||||
|
/** 流量统计的开始时间 */
|
||||||
|
cycle_start?: string;
|
||||||
|
/** 流量统计周期单位,默认hour,可选(hour, day, week, month, year) */
|
||||||
|
cycle_unit?: string;
|
||||||
|
/** 持续时间 (秒) */
|
||||||
|
duration?: number;
|
||||||
|
/** 覆盖范围的排除 */
|
||||||
|
ignore?: Record<string, boolean>;
|
||||||
|
/** 最大阈值 (百分比、字节 kb ÷ 1024) */
|
||||||
|
max?: number;
|
||||||
|
/** 最小阈值 (百分比、字节 kb ÷ 1024) */
|
||||||
|
min?: number;
|
||||||
|
/**
|
||||||
|
* 指标类型,cpu、memory、swap、disk、net_in_speed、net_out_speed
|
||||||
|
* net_all_speed、transfer_in、transfer_out、transfer_all、offline
|
||||||
|
* transfer_in_cycle、transfer_out_cycle、transfer_all_cycle
|
||||||
|
*/
|
||||||
|
type?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelSensorTemperature {
|
||||||
|
name?: string;
|
||||||
|
temperature?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelServer {
|
||||||
|
created_at?: string;
|
||||||
|
/** DDNS配置 */
|
||||||
|
ddns_profiles?: number[];
|
||||||
|
deleted_at?: GormDeletedAt;
|
||||||
|
/** 展示排序,越大越靠前 */
|
||||||
|
display_index?: number;
|
||||||
|
/** 启用DDNS */
|
||||||
|
enable_ddns?: boolean;
|
||||||
|
/** 对游客隐藏 */
|
||||||
|
hide_for_guest?: boolean;
|
||||||
|
host?: ModelHost;
|
||||||
|
id?: number;
|
||||||
|
last_active?: string;
|
||||||
|
name?: string;
|
||||||
|
/** 管理员可见备注 */
|
||||||
|
note?: string;
|
||||||
|
/** 公开备注 */
|
||||||
|
public_note?: string;
|
||||||
|
state?: ModelHostState;
|
||||||
|
updated_at?: string;
|
||||||
|
uuid?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelServerForm {
|
||||||
|
/** DDNS配置 */
|
||||||
|
ddns_profiles?: number[];
|
||||||
|
/** 展示排序,越大越靠前 */
|
||||||
|
display_index?: number;
|
||||||
|
/** 启用DDNS */
|
||||||
|
enable_ddns?: boolean;
|
||||||
|
/** 对游客隐藏 */
|
||||||
|
hide_for_guest?: boolean;
|
||||||
|
name?: string;
|
||||||
|
/** 管理员可见备注 */
|
||||||
|
note?: string;
|
||||||
|
/** 公开备注 */
|
||||||
|
public_note?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelServerGroup {
|
||||||
|
created_at?: string;
|
||||||
|
deleted_at?: GormDeletedAt;
|
||||||
|
id?: number;
|
||||||
|
name?: string;
|
||||||
|
updated_at?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelServerGroupForm {
|
||||||
|
name?: string;
|
||||||
|
servers?: number[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelServerGroupResponseItem {
|
||||||
|
group?: ModelServerGroup;
|
||||||
|
servers?: number[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelService {
|
||||||
|
cover?: number;
|
||||||
|
created_at?: string;
|
||||||
|
deleted_at?: GormDeletedAt;
|
||||||
|
duration?: number;
|
||||||
|
enable_show_in_service?: boolean;
|
||||||
|
enable_trigger_task?: boolean;
|
||||||
|
/** 失败时执行的触发任务id */
|
||||||
|
fail_trigger_tasks?: number[];
|
||||||
|
id?: number;
|
||||||
|
latency_notify?: boolean;
|
||||||
|
max_latency?: number;
|
||||||
|
min_latency?: number;
|
||||||
|
name?: string;
|
||||||
|
/** 当前服务监控所属的通知组 ID */
|
||||||
|
notification_group_id?: number;
|
||||||
|
notify?: boolean;
|
||||||
|
/** 恢复时执行的触发任务id */
|
||||||
|
recover_trigger_tasks?: number[];
|
||||||
|
skip_servers?: Record<string, boolean>;
|
||||||
|
target?: string;
|
||||||
|
type?: number;
|
||||||
|
updated_at?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelServiceForm {
|
||||||
|
cover?: number;
|
||||||
|
duration?: number;
|
||||||
|
enable_show_in_service?: boolean;
|
||||||
|
enable_trigger_task?: boolean;
|
||||||
|
fail_trigger_tasks?: number[];
|
||||||
|
latency_notify?: boolean;
|
||||||
|
max_latency?: number;
|
||||||
|
min_latency?: number;
|
||||||
|
name?: string;
|
||||||
|
notification_group_id?: number;
|
||||||
|
notify?: boolean;
|
||||||
|
recover_trigger_tasks?: number[];
|
||||||
|
skip_servers?: Record<string, boolean>;
|
||||||
|
target?: string;
|
||||||
|
type?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelServiceInfos {
|
||||||
|
avg_delay?: number[];
|
||||||
|
created_at?: number[];
|
||||||
|
monitor_id?: number;
|
||||||
|
monitor_name?: string;
|
||||||
|
server_id?: number;
|
||||||
|
server_name?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelServiceResponse {
|
||||||
|
cycleTransferStats?: Record<string, ModelCycleTransferStats>;
|
||||||
|
services?: Record<string, ModelServiceResponseItem>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelServiceResponseItem {
|
||||||
|
currentDown?: number;
|
||||||
|
currentUp?: number;
|
||||||
|
delay?: number[];
|
||||||
|
down?: number[];
|
||||||
|
service?: ModelService;
|
||||||
|
totalDown?: number;
|
||||||
|
totalUp?: number;
|
||||||
|
up?: number[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelSettingForm {
|
||||||
|
cover?: number;
|
||||||
|
custom_code?: string;
|
||||||
|
custom_code_dashboard?: string;
|
||||||
|
custom_nameservers?: string;
|
||||||
|
enable_ip_change_notification?: boolean;
|
||||||
|
enable_plain_ip_in_notification?: boolean;
|
||||||
|
ignored_ip_notification?: string;
|
||||||
|
install_host?: string;
|
||||||
|
/** IP变更提醒的通知组 */
|
||||||
|
ip_change_notification_group_id?: number;
|
||||||
|
language?: string;
|
||||||
|
site_name?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelStreamServer {
|
||||||
|
/** 展示排序,越大越靠前 */
|
||||||
|
display_index?: number;
|
||||||
|
host?: ModelHost;
|
||||||
|
id?: number;
|
||||||
|
last_active?: string;
|
||||||
|
name?: string;
|
||||||
|
/** 公开备注,只第一个数据包有值 */
|
||||||
|
public_note?: string;
|
||||||
|
state?: ModelHostState;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelStreamServerData {
|
||||||
|
now?: number;
|
||||||
|
servers?: ModelStreamServer[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelTerminalForm {
|
||||||
|
protocol?: string;
|
||||||
|
server_id?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelUser {
|
||||||
|
created_at?: string;
|
||||||
|
deleted_at?: GormDeletedAt;
|
||||||
|
id?: number;
|
||||||
|
password?: string;
|
||||||
|
updated_at?: string;
|
||||||
|
username?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelUserForm {
|
||||||
|
password?: string;
|
||||||
|
username?: string;
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import { User } from "./user";
|
import { ModelUser } from "@/types";
|
||||||
|
|
||||||
export interface AuthContextProps {
|
export interface AuthContextProps {
|
||||||
profile: User | undefined;
|
profile: ModelUser | undefined;
|
||||||
login: (username: string, password: string) => void;
|
login: (username: string, password: string) => void;
|
||||||
logout: () => void;
|
logout: () => void;
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
export * from './server';
|
|
||||||
export * from './user';
|
|
||||||
export * from './mainStore';
|
export * from './mainStore';
|
||||||
export * from './authContext';
|
export * from './authContext';
|
||||||
|
export * from './api';
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
import { User } from "./user";
|
import { ModelUser } from "@/types";
|
||||||
|
|
||||||
export interface MainStore {
|
export interface MainStore {
|
||||||
profile: User | undefined;
|
profile: ModelUser | undefined;
|
||||||
setProfile: (profile: User | undefined) => void;
|
setProfile: (profile: ModelUser | undefined) => void;
|
||||||
}
|
}
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
export interface ServerHost {
|
|
||||||
arch: string;
|
|
||||||
bootTime: number;
|
|
||||||
countryCode: string;
|
|
||||||
cpu: string[];
|
|
||||||
diskTotal: number;
|
|
||||||
gpu: string[];
|
|
||||||
memTotal: number;
|
|
||||||
platform: string;
|
|
||||||
platformVersion: string;
|
|
||||||
swapTotal: number;
|
|
||||||
version: string;
|
|
||||||
virtualization: string;
|
|
||||||
ip: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface ServerTemperature {
|
|
||||||
name: string;
|
|
||||||
temperature: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface ServerState {
|
|
||||||
cpu: number;
|
|
||||||
diskUsed: number;
|
|
||||||
gpu: number[];
|
|
||||||
load1: number;
|
|
||||||
load15: number;
|
|
||||||
load5: number;
|
|
||||||
memUsed: number;
|
|
||||||
netInSpeed: number;
|
|
||||||
netInTransfer: number;
|
|
||||||
netOutSpeed: number;
|
|
||||||
netOutTransfer: number;
|
|
||||||
processCount: number;
|
|
||||||
swapUsed: number;
|
|
||||||
tcpConnCount: number;
|
|
||||||
temperatures: ServerTemperature[];
|
|
||||||
udpConnCount: number;
|
|
||||||
uptime: number;
|
|
||||||
updated_at: string;
|
|
||||||
uuid: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface Server {
|
|
||||||
id: number;
|
|
||||||
name: string;
|
|
||||||
ddns_profiles: number[];
|
|
||||||
created_at: string;
|
|
||||||
display_index: number;
|
|
||||||
enable_ddns: boolean;
|
|
||||||
hide_for_guest: boolean;
|
|
||||||
host: ServerHost;
|
|
||||||
last_active: string;
|
|
||||||
note: string;
|
|
||||||
public_note: string;
|
|
||||||
state: ServerState;
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
export interface User {
|
|
||||||
username: string;
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user