diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml
new file mode 100644
index 0000000..54aea51
--- /dev/null
+++ b/.github/workflows/auto-merge.yml
@@ -0,0 +1,41 @@
+name: Auto Merge Base to Other Branches
+
+on:
+ push:
+ branches:
+ - base
+ workflow_dispatch: # 手动触发
+
+jobs:
+ auto-merge:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+ token: ${{ secrets.GH_TOKEN_AUTO_MERGE }}
+
+ - name: Merge base into main
+ run: |
+ git config user.name "GitHub Actions"
+ git config user.email "actions@github.com"
+ git checkout main
+ git merge base --no-ff -m "Auto merge base into main"
+ git push origin main
+
+ - name: Merge base into i18n
+ run: |
+ git config user.name "GitHub Actions"
+ git config user.email "actions@github.com"
+ git checkout i18n
+ git merge base --no-ff -m "Auto merge base into i18n"
+ git push origin i18n
+
+ - name: Merge base into tabbar
+ run: |
+ git config user.name "GitHub Actions"
+ git config user.email "actions@github.com"
+ git checkout tabbar
+ git merge base --no-ff -m "Auto merge base into tabbar"
+ git push origin tabbar
diff --git a/.prettierignore b/.prettierignore
index 301d974..6b66b07 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -7,3 +7,6 @@ uni-pages.d.ts
# 插件生成的文件
src/pages.json
src/manifest.json
+
+# 忽略自动生成文件
+src/service/app/**
diff --git a/.vscode/settings.json b/.vscode/settings.json
index fec1619..8b5873b 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -36,6 +36,7 @@
"manifest.json": "jsonc" // manifest.json 可以写注释
},
"cSpell.words": [
+ "Aplipay",
"climblee",
"commitlint",
"dcloudio",
@@ -44,19 +45,17 @@
"refresherrefresh",
"scrolltolower",
"tabbar",
+ "Toutiao",
"unibest",
"uvui",
- "WechatMiniprogram"
+ "Wechat",
+ "WechatMiniprogram",
+ "Weixin"
],
"typescript.tsdk": "node_modules\\typescript\\lib",
- // 控制相关文件嵌套展示
"explorer.fileNesting.enabled": true,
"explorer.fileNesting.expand": false,
"explorer.fileNesting.patterns": {
- "*.ts": "$(capture).test.ts, $(capture).test.tsx",
- "*.tsx": "$(capture).test.ts, $(capture).test.tsx",
- // "*.env": "$(capture).env.*",
- "CHANGELOG.md": "CHANGELOG*",
"package.json": "pnpm-lock.yaml,pnpm-workspace.yaml,LICENSE,.gitattributes,.gitignore,.gitpod.yml,CNAME,.npmrc,.browserslistrc",
".eslintrc.cjs": ".eslintignore,.prettierignore,.stylelintignore,.commitlintrc.*,.prettierrc.*,.stylelintrc.*,.eslintrc-auto-import.json,.editorconfig,.commitlint.cjs"
}
diff --git a/README.md b/README.md
index 85160ac..69d6de8 100644
--- a/README.md
+++ b/README.md
@@ -45,6 +45,14 @@
注意旧的地址 [codercup](https://github.com/codercup/unibest) 我进不去了,使用新的 [feige996](https://github.com/feige996/unibest)。PR和 issue 也请使用新地址,否则无法合并。
+## 平台兼容性
+
+| H5 | IOS | 安卓 | 微信小程序 | 字节小程序 | 快手小程序 | 支付宝小程序 | 钉钉小程序 | 百度小程序 |
+| --- | --- | ---- | ---------- | ---------- | ---------- | ------------ | ---------- | ---------- |
+| √ | √ | √ | √ | √ | √ | √ | √ | √ |
+
+注意每种 `UI框架` 支持的平台有所不同,详情请看各 `UI框架` 的官网,也可以看 `unibest` 文档。
+
## ⚙️ 环境
- node>=18
@@ -76,7 +84,7 @@
[MIT](https://opensource.org/license/mit/)
-Copyright (c) 2024 菲鸽
+Copyright (c) 2025 菲鸽
## 捐赠
diff --git a/env/.env b/env/.env
index 03c7ecf..2ef4cdf 100644
--- a/env/.env
+++ b/env/.env
@@ -5,11 +5,21 @@ VITE_UNI_APPID = 'H57F2ACE4'
VITE_WX_APPID = 'wxa2abb91f64032a2b'
# h5部署网站的base,配置到 manifest.config.ts 里的 h5.router.base
-VITE_APP_PUBLIC_BASE=/unibest/
+VITE_APP_PUBLIC_BASE=/
VITE_SERVER_BASEURL = 'https://ukw0y1.laf.run'
VITE_UPLOAD_BASEURL = 'https://ukw0y1.laf.run/upload'
+# 有些同学可能需要在微信小程序里面根据 develop、trial、release 分别设置上传地址,参考代码如下。
+# 下面的变量如果没有设置,会默认使用 VITE_SERVER_BASEURL or VITE_UPLOAD_BASEURL
+VITE_SERVER_BASEURL__WEIXIN_DEVELOP = 'https://ukw0y1.laf.run'
+VITE_SERVER_BASEURL__WEIXIN_TRIAL = 'https://ukw0y1.laf.run'
+VITE_SERVER_BASEURL__WEIXIN_RELEASE = 'https://ukw0y1.laf.run'
+
+VITE_UPLOAD_BASEURL__WEIXIN_DEVELOP = 'https://ukw0y1.laf.run/upload'
+VITE_UPLOAD_BASEURL__WEIXIN_TRIAL = 'https://ukw0y1.laf.run/upload'
+VITE_UPLOAD_BASEURL__WEIXIN_RELEASE = 'https://ukw0y1.laf.run/upload'
+
# h5是否需要配置代理
VITE_APP_PROXY=false
VITE_APP_PROXY_PREFIX = '/api'
diff --git a/openapi-ts-request.config.ts b/openapi-ts-request.config.ts
new file mode 100644
index 0000000..b9924e4
--- /dev/null
+++ b/openapi-ts-request.config.ts
@@ -0,0 +1,13 @@
+import type { GenerateServiceProps } from 'openapi-ts-request'
+
+export default [
+ {
+ schemaPath: 'http://petstore.swagger.io/v2/swagger.json',
+ serversPath: './src/service/app',
+ requestLibPath: `import request from '@/utils/request';\n import { CustomRequestOptions } from '@/interceptors/request';`,
+ requestOptionsType: 'CustomRequestOptions',
+ isGenReactQuery: true,
+ reactQueryMode: 'vue',
+ isGenJavaScript: false,
+ },
+] as GenerateServiceProps[]
diff --git a/package.json b/package.json
index 99d4c06..556098d 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "unibest",
"type": "commonjs",
- "version": "2.5.4",
+ "version": "2.6.3",
"description": "unibest - 最好的 uniapp 开发模板",
"author": {
"name": "feige996",
@@ -67,9 +67,10 @@
"build:quickapp-webview": "uni build -p quickapp-webview",
"build:quickapp-webview-huawei": "uni build -p quickapp-webview-huawei",
"build:quickapp-webview-union": "uni build -p quickapp-webview-union",
- "prepare": "git init && husky install ",
+ "prepare": "git init && husky install",
"type-check": "vue-tsc --noEmit",
- "cz": "czg"
+ "cz": "czg",
+ "openapi-ts-request": "openapi-ts"
},
"lint-staged": {
"**/*.{html,vue,ts,cjs,json,md}": [
@@ -101,6 +102,8 @@
"@dcloudio/uni-mp-weixin": "3.0.0-4020920240930001",
"@dcloudio/uni-mp-xhs": "3.0.0-4020920240930001",
"@dcloudio/uni-quickapp-webview": "3.0.0-4020920240930001",
+ "@tanstack/vue-query": "^5.62.16",
+ "abortcontroller-polyfill": "^1.7.8",
"dayjs": "1.11.10",
"pinia": "2.0.36",
"pinia-plugin-persistedstate": "3.2.1",
@@ -145,11 +148,12 @@
"eslint-plugin-vue": "^9.32.0",
"husky": "^8.0.3",
"lint-staged": "^15.2.10",
+ "openapi-ts-request": "^1.1.2",
"postcss": "^8.4.49",
"postcss-html": "^1.7.0",
"postcss-scss": "^4.0.9",
"rollup-plugin-visualizer": "^5.12.0",
- "sass": "^1.77.8",
+ "sass": "1.77.8",
"stylelint": "^16.11.0",
"stylelint-config-html": "^1.1.0",
"stylelint-config-recess-order": "^4.6.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 9699bff..e17d277 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -56,6 +56,12 @@ importers:
'@dcloudio/uni-quickapp-webview':
specifier: 3.0.0-4020920240930001
version: 3.0.0-4020920240930001(postcss@8.4.49)(rollup@4.28.0)(vue@3.4.21(typescript@5.7.2))
+ '@tanstack/vue-query':
+ specifier: ^5.62.16
+ version: 5.62.16(vue@3.4.21(typescript@5.7.2))
+ abortcontroller-polyfill:
+ specifier: ^1.7.8
+ version: 1.7.8
dayjs:
specifier: 1.11.10
version: 1.11.10
@@ -183,6 +189,9 @@ importers:
lint-staged:
specifier: ^15.2.10
version: 15.2.10
+ openapi-ts-request:
+ specifier: ^1.1.2
+ version: 1.1.2(@types/node@20.17.9)(@vue/compiler-sfc@3.5.13)(chokidar@3.6.0)(typescript@5.7.2)
postcss:
specifier: ^8.4.49
version: 8.4.49
@@ -196,7 +205,7 @@ importers:
specifier: ^5.12.0
version: 5.12.0(rollup@4.28.0)
sass:
- specifier: ^1.77.8
+ specifier: 1.77.8
version: 1.77.8
stylelint:
specifier: ^16.11.0
@@ -1210,6 +1219,9 @@ packages:
resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ '@exodus/schemasafe@1.3.0':
+ resolution: {integrity: sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==}
+
'@humanwhocodes/config-array@0.13.0':
resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==}
engines: {node: '>=10.10.0'}
@@ -1260,6 +1272,10 @@ packages:
resolution: {integrity: sha512-YPehH9uL4vZcGXky4Ev5qQIITnHKIvsD2GKGXgqf+05osMUI6WSEQHaN9USRa318Rs8RyyPCiDfmA0hRu3k7og==}
engines: {node: '>= 10'}
+ '@isaacs/cliui@8.0.2':
+ resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
+ engines: {node: '>=12'}
+
'@istanbuljs/load-nyc-config@1.1.0':
resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
engines: {node: '>=8'}
@@ -1531,6 +1547,11 @@ packages:
'@polka/url@1.0.0-next.28':
resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==}
+ '@prettier/sync@0.5.2':
+ resolution: {integrity: sha512-Yb569su456XNx5BsH/Vyem7xD6g/y9iLmLUzRKM1a/dhU/D7HqqvkAG72znulXlMXztbV0iiu9O5AL8K98TzZQ==}
+ peerDependencies:
+ prettier: '*'
+
'@rollup/pluginutils@5.1.3':
resolution: {integrity: sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==}
engines: {node: '>=14.0.0'}
@@ -1641,16 +1662,56 @@ packages:
'@rtsao/scc@1.1.0':
resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==}
+ '@sindresorhus/is@4.6.0':
+ resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
+ engines: {node: '>=10'}
+
'@sinonjs/commons@1.8.6':
resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==}
'@sinonjs/fake-timers@8.1.0':
resolution: {integrity: sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==}
+ '@szmarczak/http-timer@4.0.6':
+ resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==}
+ engines: {node: '>=10'}
+
+ '@tanstack/match-sorter-utils@8.19.4':
+ resolution: {integrity: sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==}
+ engines: {node: '>=12'}
+
+ '@tanstack/query-core@5.62.16':
+ resolution: {integrity: sha512-9Sgft7Qavcd+sN0V25xVyo0nfmcZXBuODy3FVG7BMWTg1HMLm8wwG5tNlLlmSic1u7l1v786oavn+STiFaPH2g==}
+
+ '@tanstack/vue-query@5.62.16':
+ resolution: {integrity: sha512-QVx/tAexhAN+q0IbwyhVXu3f3hujfvhqLlZMNAWKTrDSUcp2BxJNjPyiti5gcaDhQwBUK9BdSXIFFYLcjYWvvA==}
+ peerDependencies:
+ '@vue/composition-api': ^1.1.2
+ vue: ^2.6.0 || ^3.3.0
+ peerDependenciesMeta:
+ '@vue/composition-api':
+ optional: true
+
'@tootallnate/once@1.1.2':
resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==}
engines: {node: '>= 6'}
+ '@trivago/prettier-plugin-sort-imports@5.2.1':
+ resolution: {integrity: sha512-NDZndt0fmVThIx/8cExuJHLZagUVzfGCoVrwH9x6aZvwfBdkrDFTYujecek6X2WpG4uUFsVaPg5+aNQPSyjcmw==}
+ engines: {node: '>18.12'}
+ peerDependencies:
+ '@vue/compiler-sfc': 3.x
+ prettier: 2.x - 3.x
+ prettier-plugin-svelte: 3.x
+ svelte: 4.x || 5.x
+ peerDependenciesMeta:
+ '@vue/compiler-sfc':
+ optional: true
+ prettier-plugin-svelte:
+ optional: true
+ svelte:
+ optional: true
+
'@types/babel__core@7.20.5':
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
@@ -1663,12 +1724,18 @@ packages:
'@types/babel__traverse@7.20.6':
resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==}
+ '@types/cacheable-request@6.0.3':
+ resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==}
+
'@types/estree@1.0.6':
resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
'@types/graceful-fs@4.1.9':
resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
+ '@types/http-cache-semantics@4.0.4':
+ resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==}
+
'@types/istanbul-lib-coverage@2.0.6':
resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
@@ -1684,6 +1751,9 @@ packages:
'@types/json5@0.0.29':
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
+ '@types/keyv@3.1.4':
+ resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
+
'@types/lodash-es@4.17.12':
resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==}
@@ -1702,6 +1772,9 @@ packages:
'@types/prettier@2.7.3':
resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==}
+ '@types/responselike@1.0.3':
+ resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==}
+
'@types/semver@7.5.8':
resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
@@ -2076,10 +2149,16 @@ packages:
resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
hasBin: true
+ a-sync-waterfall@1.0.1:
+ resolution: {integrity: sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==}
+
abab@2.0.6:
resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
deprecated: Use your platform's native atob() and btoa() methods instead
+ abortcontroller-polyfill@1.7.8:
+ resolution: {integrity: sha512-9f1iZ2uWh92VcrU9Y8x+LdM4DLj75VE0MJB8zuF1iUnroEptStw+DQ8EQPMUdfe5k+PkB1uUfDQfWbhstH8LrQ==}
+
accepts@1.3.8:
resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
engines: {node: '>= 0.6'}
@@ -2203,6 +2282,9 @@ packages:
resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
engines: {node: '>=0.10.0'}
+ asap@2.0.6:
+ resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
+
ast-kit@0.11.3:
resolution: {integrity: sha512-qdwwKEhckRk0XE22/xDdmU3v/60E8Edu4qFhgTLIhGGDs/PAJwLw9pQn8Rj99PitlbBZbYpx0k/lbir4kg0SuA==}
engines: {node: '>=16.14.0'}
@@ -2225,6 +2307,9 @@ packages:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines: {node: '>= 0.4'}
+ axios@1.7.9:
+ resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==}
+
babel-jest@27.5.1:
resolution: {integrity: sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==}
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
@@ -2282,6 +2367,9 @@ packages:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
+ bing-translate-api@4.0.2:
+ resolution: {integrity: sha512-JJ8XUehnxzOhHU91oy86xEtp8OOMjVEjCZJX042fKxoO19NNvxJ5omeCcxQNFoPbDqVpBJwqiGVquL0oPdQm1Q==}
+
bmp-js@0.1.0:
resolution: {integrity: sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==}
@@ -2357,10 +2445,21 @@ packages:
resolution: {integrity: sha512-XN5qEpfNQCJ8jRaZgitSkkukjMRCGio+X3Ks5KUbGGlPbV+pSem1l9VuzooCBXOiMFshUZgyYqg6rgN8rjkb/w==}
engines: {node: '>=8'}
+ cacheable-lookup@5.0.4:
+ resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==}
+ engines: {node: '>=10.6.0'}
+
+ cacheable-request@7.0.4:
+ resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==}
+ engines: {node: '>=8'}
+
call-bind@1.0.7:
resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
engines: {node: '>= 0.4'}
+ call-me-maybe@1.0.2:
+ resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==}
+
callsites@3.1.0:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
@@ -2428,6 +2527,9 @@ packages:
resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
engines: {node: '>=12'}
+ clone-response@1.0.3:
+ resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==}
+
co@4.6.0:
resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
@@ -2459,6 +2561,10 @@ packages:
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+ commander@5.1.0:
+ resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==}
+ engines: {node: '>= 6'}
+
commitlint@18.6.1:
resolution: {integrity: sha512-I10mj1OmBCrPUHItRqeCEj0uxCdWxL15sCfS1Poq8av2FcX/KvRoiH8jTNG0cVDA2ns7IftugTAM+nLvOavLsw==}
engines: {node: '>=v18'}
@@ -2531,6 +2637,14 @@ packages:
cosmiconfig: '>=8.2'
typescript: '>=4'
+ cosmiconfig-typescript-loader@6.1.0:
+ resolution: {integrity: sha512-tJ1w35ZRUiM5FeTzT7DtYWAFFv37ZLqSRkGi2oeCK1gPhvaWjkAtfXvLmvE1pRfxxp9aQo6ba/Pvg1dKj05D4g==}
+ engines: {node: '>=v18'}
+ peerDependencies:
+ '@types/node': '*'
+ cosmiconfig: '>=9'
+ typescript: '>=5'
+
cosmiconfig@8.3.6:
resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
engines: {node: '>=14'}
@@ -2611,6 +2725,10 @@ packages:
engines: {node: '>=v12.20.0'}
hasBin: true
+ d@1.0.2:
+ resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==}
+ engines: {node: '>=0.12'}
+
dargs@7.0.0:
resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}
engines: {node: '>=8'}
@@ -2673,6 +2791,10 @@ packages:
decimal.js@10.4.3:
resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
+ decompress-response@6.0.0:
+ resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
+ engines: {node: '>=10'}
+
dedent@0.7.0:
resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==}
@@ -2687,6 +2809,10 @@ packages:
resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==}
engines: {node: '>= 10'}
+ defer-to-connect@2.0.1:
+ resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
+ engines: {node: '>=10'}
+
define-data-property@1.1.4:
resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
engines: {node: '>= 0.4'}
@@ -2769,6 +2895,9 @@ packages:
duplexer@0.1.2:
resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
+ eastasianwidth@0.2.0:
+ resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
@@ -2785,6 +2914,9 @@ packages:
emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+ emoji-regex@9.2.2:
+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+
encodeurl@1.0.2:
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
engines: {node: '>= 0.8'}
@@ -2793,6 +2925,9 @@ packages:
resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
engines: {node: '>= 0.8'}
+ end-of-stream@1.4.4:
+ resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
+
enhanced-resolve@5.17.1:
resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==}
engines: {node: '>=10.13.0'}
@@ -2842,6 +2977,23 @@ packages:
resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
engines: {node: '>= 0.4'}
+ es5-ext@0.10.64:
+ resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==}
+ engines: {node: '>=0.10'}
+
+ es6-iterator@2.0.3:
+ resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==}
+
+ es6-promise@3.3.1:
+ resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==}
+
+ es6-symbol@3.1.4:
+ resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==}
+ engines: {node: '>=0.12'}
+
+ es6-weak-map@2.0.3:
+ resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==}
+
esbuild@0.20.2:
resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==}
engines: {node: '>=12'}
@@ -2991,6 +3143,10 @@ packages:
deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
hasBin: true
+ esniff@2.0.1:
+ resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==}
+ engines: {node: '>=0.10'}
+
espree@9.6.1:
resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -3026,6 +3182,9 @@ packages:
resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
engines: {node: '>= 0.6'}
+ event-emitter@0.3.5:
+ resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==}
+
eventemitter3@5.0.1:
resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
@@ -3052,6 +3211,9 @@ packages:
resolution: {integrity: sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==}
engines: {node: '>= 0.10.0'}
+ ext@1.7.0:
+ resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==}
+
fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
@@ -3068,6 +3230,9 @@ packages:
fast-levenshtein@2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+ fast-safe-stringify@2.1.1:
+ resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==}
+
fast-uri@3.0.3:
resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==}
@@ -3140,10 +3305,18 @@ packages:
for-each@0.3.3:
resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
+ foreground-child@3.3.0:
+ resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
+ engines: {node: '>=14'}
+
form-data@3.0.2:
resolution: {integrity: sha512-sJe+TQb2vIaIyO783qN6BlMYWMw3WBOHA1Ay2qxsnjuafEOQFJ2JakedOQirT6D5XPRxDvS7AHYyem9fTpb4LQ==}
engines: {node: '>= 6'}
+ form-data@4.0.1:
+ resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==}
+ engines: {node: '>= 6'}
+
forwarded@0.2.0:
resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
engines: {node: '>= 0.6'}
@@ -3204,6 +3377,10 @@ packages:
resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
engines: {node: '>=8.0.0'}
+ get-stream@5.2.0:
+ resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
+ engines: {node: '>=8'}
+
get-stream@6.0.1:
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
engines: {node: '>=10'}
@@ -3236,6 +3413,11 @@ packages:
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
engines: {node: '>=10.13.0'}
+ glob@11.0.0:
+ resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==}
+ engines: {node: 20 || >=22}
+ hasBin: true
+
glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
deprecated: Glob versions prior to v9 are no longer supported
@@ -3278,6 +3460,10 @@ packages:
resolution: {integrity: sha512-FQoVQnqcdk4hVM4JN1eromaun4iuS34oStkdlLENLdpULsuQcTyXj8w7ayhuUfPwEYZ1ZOooOTT6fdA9Vmx/RA==}
engines: {node: '>= 0.4'}
+ got@11.8.6:
+ resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==}
+ engines: {node: '>=10.19.0'}
+
graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
@@ -3346,6 +3532,9 @@ packages:
htmlparser2@8.0.2:
resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
+ http-cache-semantics@4.1.1:
+ resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
+
http-errors@2.0.0:
resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
engines: {node: '>= 0.8'}
@@ -3354,6 +3543,13 @@ packages:
resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==}
engines: {node: '>= 6'}
+ http2-client@1.3.5:
+ resolution: {integrity: sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==}
+
+ http2-wrapper@1.0.3:
+ resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==}
+ engines: {node: '>=10.19.0'}
+
https-proxy-agent@5.0.1:
resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
engines: {node: '>= 6'}
@@ -3558,6 +3754,9 @@ packages:
is-potential-custom-element-name@1.0.1:
resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
+ is-promise@2.2.2:
+ resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==}
+
is-regex@1.2.0:
resolution: {integrity: sha512-B6ohK4ZmoftlUe+uvenXSbPJFo6U37BH7oO1B3nQH8f/7h27N56s85MhUtbFJAziz5dcmuR3i8ovUl35zp8pFA==}
engines: {node: '>= 0.4'}
@@ -3642,6 +3841,13 @@ packages:
resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
engines: {node: '>=8'}
+ jackspeak@4.0.2:
+ resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==}
+ engines: {node: 20 || >=22}
+
+ javascript-natural-sort@0.7.1:
+ resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==}
+
jest-changed-files@27.5.1:
resolution: {integrity: sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==}
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
@@ -3787,6 +3993,10 @@ packages:
resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==}
hasBin: true
+ jiti@2.4.2:
+ resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==}
+ hasBin: true
+
jpeg-js@0.3.7:
resolution: {integrity: sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==}
@@ -3984,6 +4194,14 @@ packages:
resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==}
engines: {node: '>=18'}
+ lowercase-keys@2.0.0:
+ resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==}
+ engines: {node: '>=8'}
+
+ lru-cache@11.0.2:
+ resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==}
+ engines: {node: 20 || >=22}
+
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
@@ -3991,6 +4209,9 @@ packages:
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
engines: {node: '>=10'}
+ lru-queue@0.1.0:
+ resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==}
+
magic-string@0.30.14:
resolution: {integrity: sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==}
@@ -3998,6 +4219,9 @@ packages:
resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
engines: {node: '>=10'}
+ make-synchronized@0.2.9:
+ resolution: {integrity: sha512-4wczOs8SLuEdpEvp3vGo83wh8rjJ78UsIk7DIX5fxdfmfMJGog4bQzxfvOwq7Q3yCHLC4jp1urPHIxRS/A93gA==}
+
makeerror@1.0.12:
resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
@@ -4025,6 +4249,10 @@ packages:
resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
engines: {node: '>= 0.6'}
+ memoizee@0.4.17:
+ resolution: {integrity: sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==}
+ engines: {node: '>=0.12'}
+
meow@12.1.1:
resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==}
engines: {node: '>=16.10'}
@@ -4088,6 +4316,14 @@ packages:
resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==}
engines: {node: '>=18'}
+ mimic-response@1.0.1:
+ resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==}
+ engines: {node: '>=4'}
+
+ mimic-response@3.1.0:
+ resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
+ engines: {node: '>=10'}
+
min-document@2.19.0:
resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==}
@@ -4095,6 +4331,10 @@ packages:
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
engines: {node: '>=4'}
+ minimatch@10.0.1:
+ resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==}
+ engines: {node: 20 || >=22}
+
minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
@@ -4121,6 +4361,10 @@ packages:
resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
engines: {node: '>=8'}
+ minipass@7.1.2:
+ resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
minizlib@2.1.2:
resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
engines: {node: '>= 8'}
@@ -4137,6 +4381,10 @@ packages:
mlly@1.7.3:
resolution: {integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==}
+ mockjs@1.1.0:
+ resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==}
+ hasBin: true
+
module-alias@2.2.3:
resolution: {integrity: sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==}
@@ -4165,12 +4413,31 @@ packages:
resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
engines: {node: '>= 0.6'}
+ next-tick@1.1.0:
+ resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==}
+
+ node-fetch-h2@2.3.0:
+ resolution: {integrity: sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==}
+ engines: {node: 4.x || >=6.0.0}
+
node-fetch-native@1.6.4:
resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==}
+ node-fetch@2.7.0:
+ resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+
node-int64@0.4.0:
resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
+ node-readfiles@0.2.0:
+ resolution: {integrity: sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==}
+
node-releases@2.0.18:
resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==}
@@ -4189,6 +4456,10 @@ packages:
resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
engines: {node: '>=0.10.0'}
+ normalize-url@6.1.0:
+ resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
+ engines: {node: '>=10'}
+
npm-run-path@4.0.1:
resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
engines: {node: '>=8'}
@@ -4200,6 +4471,16 @@ packages:
nth-check@2.1.1:
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
+ nunjucks@3.2.4:
+ resolution: {integrity: sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==}
+ engines: {node: '>= 6.9.0'}
+ hasBin: true
+ peerDependencies:
+ chokidar: ^3.3.0
+ peerDependenciesMeta:
+ chokidar:
+ optional: true
+
nwsapi@2.2.16:
resolution: {integrity: sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==}
@@ -4208,6 +4489,22 @@ packages:
engines: {node: ^14.16.0 || >=16.10.0}
hasBin: true
+ oas-kit-common@1.0.8:
+ resolution: {integrity: sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==}
+
+ oas-linter@3.2.2:
+ resolution: {integrity: sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==}
+
+ oas-resolver@2.5.6:
+ resolution: {integrity: sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==}
+ hasBin: true
+
+ oas-schema-walker@1.1.5:
+ resolution: {integrity: sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==}
+
+ oas-validator@5.0.8:
+ resolution: {integrity: sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw==}
+
object-inspect@1.13.3:
resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==}
engines: {node: '>= 0.4'}
@@ -4264,6 +4561,11 @@ packages:
resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
engines: {node: '>=12'}
+ openapi-ts-request@1.1.2:
+ resolution: {integrity: sha512-Hzqm3JzxgzyGGrTv1THo21HqDea215IQq4I3Ic/WMh/Y+SbmeLb7VQmdeIORPP3Wx836qlTm3X0H10ignkPqfQ==}
+ engines: {node: '>=18.0.0', pnpm: '>=9'}
+ hasBin: true
+
optionator@0.9.4:
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
engines: {node: '>= 0.8.0'}
@@ -4272,6 +4574,10 @@ packages:
resolution: {integrity: sha512-Sv0OvhPiMutICiwORAUefv02DCPb62IelBmo8ZsSrRHyI3FStqIWZvjqDkvtjU+lcujo7UNir+dCwKSqlEQ/5w==}
engines: {node: '>=10', yarn: ^1.22.4}
+ p-cancelable@2.1.1:
+ resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==}
+ engines: {node: '>=8'}
+
p-limit@2.3.0:
resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
engines: {node: '>=6'}
@@ -4292,6 +4598,9 @@ packages:
resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
engines: {node: '>=6'}
+ package-json-from-dist@1.0.1:
+ resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
+
package-manager-detector@0.2.6:
resolution: {integrity: sha512-9vPH3qooBlYRJdmdYP00nvjZOulm40r5dhtal8st18ctf+6S1k7pi5yIHLvI4w5D70x0Y+xdVD9qITH0QO/A8A==}
@@ -4350,6 +4659,10 @@ packages:
path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+ path-scurry@2.0.0:
+ resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==}
+ engines: {node: 20 || >=22}
+
path-to-regexp@0.1.10:
resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==}
@@ -4555,9 +4868,15 @@ packages:
resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
engines: {node: '>= 0.10'}
+ proxy-from-env@1.1.0:
+ resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
+
psl@1.15.0:
resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==}
+ pump@3.0.2:
+ resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==}
+
punycode@2.3.1:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
@@ -4587,6 +4906,10 @@ packages:
resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
engines: {node: '>=8'}
+ quick-lru@5.1.1:
+ resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
+ engines: {node: '>=10'}
+
range-parser@1.2.1:
resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
engines: {node: '>= 0.6'}
@@ -4628,6 +4951,9 @@ packages:
resolution: {integrity: sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==}
engines: {node: '>= 0.4'}
+ reftools@1.1.9:
+ resolution: {integrity: sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==}
+
regenerate-unicode-properties@10.2.0:
resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==}
engines: {node: '>=4'}
@@ -4659,6 +4985,9 @@ packages:
resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==}
hasBin: true
+ remove-accents@0.5.0:
+ resolution: {integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==}
+
require-directory@2.1.1:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
@@ -4670,6 +4999,12 @@ packages:
requires-port@1.0.0:
resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
+ reserved-words@0.1.2:
+ resolution: {integrity: sha512-0S5SrIUJ9LfpbVl4Yzij6VipUdafHrOTzvmfazSw/jeZrZtQK303OPZW+obtkaw7jQlTQppy0UvZWm9872PbRw==}
+
+ resolve-alpn@1.2.1:
+ resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
+
resolve-cwd@3.0.0:
resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
engines: {node: '>=8'}
@@ -4697,6 +5032,9 @@ packages:
resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
hasBin: true
+ responselike@2.0.1:
+ resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==}
+
restore-cursor@5.1.0:
resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==}
engines: {node: '>=18'}
@@ -4713,6 +5051,11 @@ packages:
deprecated: Rimraf versions prior to v4 are no longer supported
hasBin: true
+ rimraf@6.0.1:
+ resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==}
+ engines: {node: 20 || >=22}
+ hasBin: true
+
rollup-plugin-visualizer@5.12.0:
resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==}
engines: {node: '>=14'}
@@ -4808,6 +5151,24 @@ packages:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'}
+ should-equal@2.0.0:
+ resolution: {integrity: sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==}
+
+ should-format@3.0.3:
+ resolution: {integrity: sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==}
+
+ should-type-adaptors@1.1.0:
+ resolution: {integrity: sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==}
+
+ should-type@1.4.0:
+ resolution: {integrity: sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==}
+
+ should-util@1.0.1:
+ resolution: {integrity: sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==}
+
+ should@13.2.3:
+ resolution: {integrity: sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==}
+
side-channel@1.0.6:
resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
engines: {node: '>= 0.4'}
@@ -4908,6 +5269,10 @@ packages:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
+ string-width@5.1.2:
+ resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
+ engines: {node: '>=12'}
+
string-width@7.2.0:
resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==}
engines: {node: '>=18'}
@@ -5042,6 +5407,10 @@ packages:
svg-tags@1.0.0:
resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==}
+ swagger2openapi@7.0.8:
+ resolution: {integrity: sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==}
+ hasBin: true
+
symbol-tree@3.2.4:
resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
@@ -5093,9 +5462,16 @@ packages:
through@2.3.8:
resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
+ timers-ext@0.1.8:
+ resolution: {integrity: sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==}
+ engines: {node: '>=0.12'}
+
timm@1.7.1:
resolution: {integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==}
+ tiny-pinyin@1.3.2:
+ resolution: {integrity: sha512-uHNGu4evFt/8eNLldazeAM1M8JrMc1jshhJJfVRARTN3yT8HEEibofeQ7QETWQ5ISBjd6fKtTVBCC/+mGS6FpA==}
+
tinycolor2@1.6.0:
resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
@@ -5125,6 +5501,9 @@ packages:
resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==}
engines: {node: '>=6'}
+ tr46@0.0.3:
+ resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+
tr46@2.1.0:
resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==}
engines: {node: '>=8'}
@@ -5177,6 +5556,9 @@ packages:
resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
engines: {node: '>= 0.6'}
+ type@2.7.3:
+ resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==}
+
typed-array-buffer@1.0.2:
resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
engines: {node: '>= 0.4'}
@@ -5406,6 +5788,9 @@ packages:
walker@1.0.8:
resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
+ webidl-conversions@3.0.1:
+ resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+
webidl-conversions@5.0.0:
resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==}
engines: {node: '>=8'}
@@ -5423,6 +5808,9 @@ packages:
whatwg-mimetype@2.3.0:
resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==}
+ whatwg-url@5.0.0:
+ resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
+
whatwg-url@8.7.0:
resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==}
engines: {node: '>=10'}
@@ -5466,6 +5854,10 @@ packages:
resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
engines: {node: '>=10'}
+ wrap-ansi@8.1.0:
+ resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
+ engines: {node: '>=12'}
+
wrap-ansi@9.0.0:
resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==}
engines: {node: '>=18'}
@@ -7178,6 +7570,8 @@ snapshots:
'@eslint/js@8.57.1': {}
+ '@exodus/schemasafe@1.3.0': {}
+
'@humanwhocodes/config-array@0.13.0':
dependencies:
'@humanwhocodes/object-schema': 2.0.3
@@ -7243,6 +7637,15 @@ snapshots:
'@intlify/runtime': 9.1.9
'@intlify/shared': 9.1.9
+ '@isaacs/cliui@8.0.2':
+ dependencies:
+ string-width: 5.1.2
+ string-width-cjs: string-width@4.2.3
+ strip-ansi: 7.1.0
+ strip-ansi-cjs: strip-ansi@6.0.1
+ wrap-ansi: 8.1.0
+ wrap-ansi-cjs: wrap-ansi@7.0.0
+
'@istanbuljs/load-nyc-config@1.1.0':
dependencies:
camelcase: 5.3.1
@@ -7720,6 +8123,11 @@ snapshots:
'@polka/url@1.0.0-next.28': {}
+ '@prettier/sync@0.5.2(prettier@3.3.2)':
+ dependencies:
+ make-synchronized: 0.2.9
+ prettier: 3.3.2
+
'@rollup/pluginutils@5.1.3(rollup@4.28.0)':
dependencies:
'@types/estree': 1.0.6
@@ -7783,6 +8191,8 @@ snapshots:
'@rtsao/scc@1.1.0': {}
+ '@sindresorhus/is@4.6.0': {}
+
'@sinonjs/commons@1.8.6':
dependencies:
type-detect: 4.0.8
@@ -7791,8 +8201,40 @@ snapshots:
dependencies:
'@sinonjs/commons': 1.8.6
+ '@szmarczak/http-timer@4.0.6':
+ dependencies:
+ defer-to-connect: 2.0.1
+
+ '@tanstack/match-sorter-utils@8.19.4':
+ dependencies:
+ remove-accents: 0.5.0
+
+ '@tanstack/query-core@5.62.16': {}
+
+ '@tanstack/vue-query@5.62.16(vue@3.4.21(typescript@5.7.2))':
+ dependencies:
+ '@tanstack/match-sorter-utils': 8.19.4
+ '@tanstack/query-core': 5.62.16
+ '@vue/devtools-api': 6.6.4
+ vue: 3.4.21(typescript@5.7.2)
+ vue-demi: 0.14.10(vue@3.4.21(typescript@5.7.2))
+
'@tootallnate/once@1.1.2': {}
+ '@trivago/prettier-plugin-sort-imports@5.2.1(@vue/compiler-sfc@3.5.13)(prettier@3.3.2)':
+ dependencies:
+ '@babel/generator': 7.26.2
+ '@babel/parser': 7.26.2
+ '@babel/traverse': 7.25.9
+ '@babel/types': 7.26.0
+ javascript-natural-sort: 0.7.1
+ lodash: 4.17.21
+ prettier: 3.3.2
+ optionalDependencies:
+ '@vue/compiler-sfc': 3.5.13
+ transitivePeerDependencies:
+ - supports-color
+
'@types/babel__core@7.20.5':
dependencies:
'@babel/parser': 7.26.2
@@ -7814,12 +8256,21 @@ snapshots:
dependencies:
'@babel/types': 7.26.0
+ '@types/cacheable-request@6.0.3':
+ dependencies:
+ '@types/http-cache-semantics': 4.0.4
+ '@types/keyv': 3.1.4
+ '@types/node': 20.17.9
+ '@types/responselike': 1.0.3
+
'@types/estree@1.0.6': {}
'@types/graceful-fs@4.1.9':
dependencies:
'@types/node': 20.17.9
+ '@types/http-cache-semantics@4.0.4': {}
+
'@types/istanbul-lib-coverage@2.0.6': {}
'@types/istanbul-lib-report@3.0.3':
@@ -7834,6 +8285,10 @@ snapshots:
'@types/json5@0.0.29': {}
+ '@types/keyv@3.1.4':
+ dependencies:
+ '@types/node': 20.17.9
+
'@types/lodash-es@4.17.12':
dependencies:
'@types/lodash': 4.17.13
@@ -7850,6 +8305,10 @@ snapshots:
'@types/prettier@2.7.3': {}
+ '@types/responselike@1.0.3':
+ dependencies:
+ '@types/node': 20.17.9
+
'@types/semver@7.5.8': {}
'@types/stack-utils@2.0.3': {}
@@ -8420,8 +8879,12 @@ snapshots:
jsonparse: 1.3.1
through: 2.3.8
+ a-sync-waterfall@1.0.1: {}
+
abab@2.0.6: {}
+ abortcontroller-polyfill@1.7.8: {}
+
accepts@1.3.8:
dependencies:
mime-types: 2.1.35
@@ -8555,6 +9018,8 @@ snapshots:
arrify@1.0.1: {}
+ asap@2.0.6: {}
+
ast-kit@0.11.3(rollup@4.28.0):
dependencies:
'@babel/parser': 7.26.2
@@ -8581,6 +9046,14 @@ snapshots:
dependencies:
possible-typed-array-names: 1.0.0
+ axios@1.7.9:
+ dependencies:
+ follow-redirects: 1.15.9
+ form-data: 4.0.1
+ proxy-from-env: 1.1.0
+ transitivePeerDependencies:
+ - debug
+
babel-jest@27.5.1(@babel/core@7.26.0):
dependencies:
'@babel/core': 7.26.0
@@ -8671,6 +9144,10 @@ snapshots:
binary-extensions@2.3.0: {}
+ bing-translate-api@4.0.2:
+ dependencies:
+ got: 11.8.6
+
bmp-js@0.1.0: {}
body-parser@1.20.3:
@@ -8759,6 +9236,18 @@ snapshots:
cac@6.7.9: {}
+ cacheable-lookup@5.0.4: {}
+
+ cacheable-request@7.0.4:
+ dependencies:
+ clone-response: 1.0.3
+ get-stream: 5.2.0
+ http-cache-semantics: 4.1.1
+ keyv: 4.5.4
+ lowercase-keys: 2.0.0
+ normalize-url: 6.1.0
+ responselike: 2.0.1
+
call-bind@1.0.7:
dependencies:
es-define-property: 1.0.0
@@ -8767,6 +9256,8 @@ snapshots:
get-intrinsic: 1.2.4
set-function-length: 1.2.2
+ call-me-maybe@1.0.2: {}
+
callsites@3.1.0: {}
camelcase-keys@6.2.2:
@@ -8839,6 +9330,10 @@ snapshots:
strip-ansi: 6.0.1
wrap-ansi: 7.0.0
+ clone-response@1.0.3:
+ dependencies:
+ mimic-response: 1.0.1
+
co@4.6.0: {}
collect-v8-coverage@1.0.2: {}
@@ -8861,6 +9356,8 @@ snapshots:
commander@2.20.3: {}
+ commander@5.1.0: {}
+
commitlint@18.6.1(@types/node@20.17.9)(typescript@5.7.2):
dependencies:
'@commitlint/cli': 18.6.1(@types/node@20.17.9)(typescript@5.7.2)
@@ -8926,6 +9423,13 @@ snapshots:
jiti: 1.21.6
typescript: 5.7.2
+ cosmiconfig-typescript-loader@6.1.0(@types/node@20.17.9)(cosmiconfig@9.0.0(typescript@5.7.2))(typescript@5.7.2):
+ dependencies:
+ '@types/node': 20.17.9
+ cosmiconfig: 9.0.0(typescript@5.7.2)
+ jiti: 2.4.2
+ typescript: 5.7.2
+
cosmiconfig@8.3.6(typescript@5.7.2):
dependencies:
import-fresh: 3.3.0
@@ -8992,6 +9496,11 @@ snapshots:
czg@1.9.4: {}
+ d@1.0.2:
+ dependencies:
+ es5-ext: 0.10.64
+ type: 2.7.3
+
dargs@7.0.0: {}
data-urls@2.0.0:
@@ -9043,6 +9552,10 @@ snapshots:
decimal.js@10.4.3: {}
+ decompress-response@6.0.0:
+ dependencies:
+ mimic-response: 3.1.0
+
dedent@0.7.0: {}
deep-is@0.1.4: {}
@@ -9053,6 +9566,8 @@ snapshots:
dependencies:
execa: 5.1.1
+ defer-to-connect@2.0.1: {}
+
define-data-property@1.1.4:
dependencies:
es-define-property: 1.0.0
@@ -9125,6 +9640,8 @@ snapshots:
duplexer@0.1.2: {}
+ eastasianwidth@0.2.0: {}
+
ee-first@1.1.1: {}
electron-to-chromium@1.5.68: {}
@@ -9135,10 +9652,16 @@ snapshots:
emoji-regex@8.0.0: {}
+ emoji-regex@9.2.2: {}
+
encodeurl@1.0.2: {}
encodeurl@2.0.0: {}
+ end-of-stream@1.4.4:
+ dependencies:
+ once: 1.4.0
+
enhanced-resolve@5.17.1:
dependencies:
graceful-fs: 4.2.11
@@ -9231,6 +9754,33 @@ snapshots:
is-date-object: 1.0.5
is-symbol: 1.1.0
+ es5-ext@0.10.64:
+ dependencies:
+ es6-iterator: 2.0.3
+ es6-symbol: 3.1.4
+ esniff: 2.0.1
+ next-tick: 1.1.0
+
+ es6-iterator@2.0.3:
+ dependencies:
+ d: 1.0.2
+ es5-ext: 0.10.64
+ es6-symbol: 3.1.4
+
+ es6-promise@3.3.1: {}
+
+ es6-symbol@3.1.4:
+ dependencies:
+ d: 1.0.2
+ ext: 1.7.0
+
+ es6-weak-map@2.0.3:
+ dependencies:
+ d: 1.0.2
+ es5-ext: 0.10.64
+ es6-iterator: 2.0.3
+ es6-symbol: 3.1.4
+
esbuild@0.20.2:
optionalDependencies:
'@esbuild/aix-ppc64': 0.20.2
@@ -9454,6 +10004,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ esniff@2.0.1:
+ dependencies:
+ d: 1.0.2
+ es5-ext: 0.10.64
+ event-emitter: 0.3.5
+ type: 2.7.3
+
espree@9.6.1:
dependencies:
acorn: 8.14.0
@@ -9482,6 +10039,11 @@ snapshots:
etag@1.8.1: {}
+ event-emitter@0.3.5:
+ dependencies:
+ d: 1.0.2
+ es5-ext: 0.10.64
+
eventemitter3@5.0.1: {}
execa@5.1.1:
@@ -9555,6 +10117,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ ext@1.7.0:
+ dependencies:
+ type: 2.7.3
+
fast-deep-equal@3.1.3: {}
fast-diff@1.3.0: {}
@@ -9571,6 +10137,8 @@ snapshots:
fast-levenshtein@2.0.6: {}
+ fast-safe-stringify@2.1.1: {}
+
fast-uri@3.0.3: {}
fastest-levenshtein@1.0.16: {}
@@ -9642,12 +10210,23 @@ snapshots:
dependencies:
is-callable: 1.2.7
+ foreground-child@3.3.0:
+ dependencies:
+ cross-spawn: 7.0.6
+ signal-exit: 4.1.0
+
form-data@3.0.2:
dependencies:
asynckit: 0.4.0
combined-stream: 1.0.8
mime-types: 2.1.35
+ form-data@4.0.1:
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ mime-types: 2.1.35
+
forwarded@0.2.0: {}
fraction.js@4.3.7: {}
@@ -9700,6 +10279,10 @@ snapshots:
get-package-type@0.1.0: {}
+ get-stream@5.2.0:
+ dependencies:
+ pump: 3.0.2
+
get-stream@6.0.1: {}
get-stream@8.0.1: {}
@@ -9741,6 +10324,15 @@ snapshots:
dependencies:
is-glob: 4.0.3
+ glob@11.0.0:
+ dependencies:
+ foreground-child: 3.3.0
+ jackspeak: 4.0.2
+ minimatch: 10.0.1
+ minipass: 7.1.2
+ package-json-from-dist: 1.0.1
+ path-scurry: 2.0.0
+
glob@7.2.3:
dependencies:
fs.realpath: 1.0.0
@@ -9795,6 +10387,20 @@ snapshots:
dependencies:
get-intrinsic: 1.2.4
+ got@11.8.6:
+ dependencies:
+ '@sindresorhus/is': 4.6.0
+ '@szmarczak/http-timer': 4.0.6
+ '@types/cacheable-request': 6.0.3
+ '@types/responselike': 1.0.3
+ cacheable-lookup: 5.0.4
+ cacheable-request: 7.0.4
+ decompress-response: 6.0.0
+ http2-wrapper: 1.0.3
+ lowercase-keys: 2.0.0
+ p-cancelable: 2.1.1
+ responselike: 2.0.1
+
graceful-fs@4.2.11: {}
graphemer@1.4.0: {}
@@ -9852,6 +10458,8 @@ snapshots:
domutils: 3.1.0
entities: 4.5.0
+ http-cache-semantics@4.1.1: {}
+
http-errors@2.0.0:
dependencies:
depd: 2.0.0
@@ -9868,6 +10476,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ http2-client@1.3.5: {}
+
+ http2-wrapper@1.0.3:
+ dependencies:
+ quick-lru: 5.1.1
+ resolve-alpn: 1.2.1
+
https-proxy-agent@5.0.1:
dependencies:
agent-base: 6.0.2
@@ -10027,6 +10642,8 @@ snapshots:
is-potential-custom-element-name@1.0.1: {}
+ is-promise@2.2.2: {}
+
is-regex@1.2.0:
dependencies:
call-bind: 1.0.7
@@ -10117,6 +10734,12 @@ snapshots:
html-escaper: 2.0.2
istanbul-lib-report: 3.0.1
+ jackspeak@4.0.2:
+ dependencies:
+ '@isaacs/cliui': 8.0.2
+
+ javascript-natural-sort@0.7.1: {}
+
jest-changed-files@27.5.1:
dependencies:
'@jest/types': 27.5.1
@@ -10487,6 +11110,8 @@ snapshots:
jiti@1.21.6: {}
+ jiti@2.4.2: {}
+
jpeg-js@0.3.7: {}
js-tokens@4.0.0: {}
@@ -10693,6 +11318,10 @@ snapshots:
strip-ansi: 7.1.0
wrap-ansi: 9.0.0
+ lowercase-keys@2.0.0: {}
+
+ lru-cache@11.0.2: {}
+
lru-cache@5.1.1:
dependencies:
yallist: 3.1.1
@@ -10701,6 +11330,10 @@ snapshots:
dependencies:
yallist: 4.0.0
+ lru-queue@0.1.0:
+ dependencies:
+ es5-ext: 0.10.64
+
magic-string@0.30.14:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.0
@@ -10709,6 +11342,8 @@ snapshots:
dependencies:
semver: 7.6.3
+ make-synchronized@0.2.9: {}
+
makeerror@1.0.12:
dependencies:
tmpl: 1.0.5
@@ -10727,6 +11362,17 @@ snapshots:
media-typer@0.3.0: {}
+ memoizee@0.4.17:
+ dependencies:
+ d: 1.0.2
+ es5-ext: 0.10.64
+ es6-weak-map: 2.0.3
+ event-emitter: 0.3.5
+ is-promise: 2.2.2
+ lru-queue: 0.1.0
+ next-tick: 1.1.0
+ timers-ext: 0.1.8
+
meow@12.1.1: {}
meow@13.2.0: {}
@@ -10776,12 +11422,20 @@ snapshots:
mimic-function@5.0.1: {}
+ mimic-response@1.0.1: {}
+
+ mimic-response@3.1.0: {}
+
min-document@2.19.0:
dependencies:
dom-walk: 0.1.2
min-indent@1.0.1: {}
+ minimatch@10.0.1:
+ dependencies:
+ brace-expansion: 2.0.1
+
minimatch@3.1.2:
dependencies:
brace-expansion: 1.1.11
@@ -10808,6 +11462,8 @@ snapshots:
minipass@5.0.0: {}
+ minipass@7.1.2: {}
+
minizlib@2.1.2:
dependencies:
minipass: 3.3.6
@@ -10826,6 +11482,10 @@ snapshots:
pkg-types: 1.2.1
ufo: 1.5.4
+ mockjs@1.1.0:
+ dependencies:
+ commander: 12.1.0
+
module-alias@2.2.3: {}
mrmime@2.0.0: {}
@@ -10842,10 +11502,24 @@ snapshots:
negotiator@0.6.3: {}
+ next-tick@1.1.0: {}
+
+ node-fetch-h2@2.3.0:
+ dependencies:
+ http2-client: 1.3.5
+
node-fetch-native@1.6.4: {}
+ node-fetch@2.7.0:
+ dependencies:
+ whatwg-url: 5.0.0
+
node-int64@0.4.0: {}
+ node-readfiles@0.2.0:
+ dependencies:
+ es6-promise: 3.3.1
+
node-releases@2.0.18: {}
normalize-package-data@2.5.0:
@@ -10866,6 +11540,8 @@ snapshots:
normalize-range@0.1.2: {}
+ normalize-url@6.1.0: {}
+
npm-run-path@4.0.1:
dependencies:
path-key: 3.1.1
@@ -10878,6 +11554,14 @@ snapshots:
dependencies:
boolbase: 1.0.0
+ nunjucks@3.2.4(chokidar@3.6.0):
+ dependencies:
+ a-sync-waterfall: 1.0.1
+ asap: 2.0.6
+ commander: 5.1.0
+ optionalDependencies:
+ chokidar: 3.6.0
+
nwsapi@2.2.16: {}
nypm@0.3.12:
@@ -10889,6 +11573,37 @@ snapshots:
pkg-types: 1.2.1
ufo: 1.5.4
+ oas-kit-common@1.0.8:
+ dependencies:
+ fast-safe-stringify: 2.1.1
+
+ oas-linter@3.2.2:
+ dependencies:
+ '@exodus/schemasafe': 1.3.0
+ should: 13.2.3
+ yaml: 1.10.2
+
+ oas-resolver@2.5.6:
+ dependencies:
+ node-fetch-h2: 2.3.0
+ oas-kit-common: 1.0.8
+ reftools: 1.1.9
+ yaml: 1.10.2
+ yargs: 17.7.2
+
+ oas-schema-walker@1.1.5: {}
+
+ oas-validator@5.0.8:
+ dependencies:
+ call-me-maybe: 1.0.2
+ 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.3
+ yaml: 1.10.2
+
object-inspect@1.13.3: {}
object-keys@1.1.1: {}
@@ -10955,6 +11670,40 @@ snapshots:
is-docker: 2.2.1
is-wsl: 2.2.0
+ openapi-ts-request@1.1.2(@types/node@20.17.9)(@vue/compiler-sfc@3.5.13)(chokidar@3.6.0)(typescript@5.7.2):
+ dependencies:
+ '@prettier/sync': 0.5.2(prettier@3.3.2)
+ '@trivago/prettier-plugin-sort-imports': 5.2.1(@vue/compiler-sfc@3.5.13)(prettier@3.3.2)
+ axios: 1.7.9
+ bing-translate-api: 4.0.2
+ chalk: 4.1.2
+ commander: 12.1.0
+ cosmiconfig: 9.0.0(typescript@5.7.2)
+ cosmiconfig-typescript-loader: 6.1.0(@types/node@20.17.9)(cosmiconfig@9.0.0(typescript@5.7.2))(typescript@5.7.2)
+ glob: 11.0.0
+ js-yaml: 4.1.0
+ lodash: 4.17.21
+ memoizee: 0.4.17
+ minimatch: 10.0.1
+ mockjs: 1.1.0
+ nunjucks: 3.2.4(chokidar@3.6.0)
+ prettier: 3.3.2
+ reserved-words: 0.1.2
+ rimraf: 6.0.1
+ swagger2openapi: 7.0.8
+ tiny-pinyin: 1.3.2
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - '@types/node'
+ - '@vue/compiler-sfc'
+ - chokidar
+ - debug
+ - encoding
+ - prettier-plugin-svelte
+ - supports-color
+ - svelte
+ - typescript
+
optionator@0.9.4:
dependencies:
deep-is: 0.1.4
@@ -10968,6 +11717,8 @@ snapshots:
dependencies:
lcid: 3.1.1
+ p-cancelable@2.1.1: {}
+
p-limit@2.3.0:
dependencies:
p-try: 2.2.0
@@ -10986,6 +11737,8 @@ snapshots:
p-try@2.2.0: {}
+ package-json-from-dist@1.0.1: {}
+
package-manager-detector@0.2.6: {}
pako@1.0.11: {}
@@ -11038,6 +11791,11 @@ snapshots:
path-parse@1.0.7: {}
+ path-scurry@2.0.0:
+ dependencies:
+ lru-cache: 11.0.2
+ minipass: 7.1.2
+
path-to-regexp@0.1.10: {}
path-type@4.0.0: {}
@@ -11214,10 +11972,17 @@ snapshots:
forwarded: 0.2.0
ipaddr.js: 1.9.1
+ proxy-from-env@1.1.0: {}
+
psl@1.15.0:
dependencies:
punycode: 2.3.1
+ pump@3.0.2:
+ dependencies:
+ end-of-stream: 1.4.4
+ once: 1.4.0
+
punycode@2.3.1: {}
qrcode-reader@1.0.4: {}
@@ -11236,6 +12001,8 @@ snapshots:
quick-lru@4.0.1: {}
+ quick-lru@5.1.1: {}
+
range-parser@1.2.1: {}
raw-body@2.5.2:
@@ -11294,6 +12061,8 @@ snapshots:
gopd: 1.1.0
which-builtin-type: 1.2.0
+ reftools@1.1.9: {}
+
regenerate-unicode-properties@10.2.0:
dependencies:
regenerate: 1.4.2
@@ -11330,12 +12099,18 @@ snapshots:
dependencies:
jsesc: 3.0.2
+ remove-accents@0.5.0: {}
+
require-directory@2.1.1: {}
require-from-string@2.0.2: {}
requires-port@1.0.0: {}
+ reserved-words@0.1.2: {}
+
+ resolve-alpn@1.2.1: {}
+
resolve-cwd@3.0.0:
dependencies:
resolve-from: 5.0.0
@@ -11358,6 +12133,10 @@ snapshots:
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
+ responselike@2.0.1:
+ dependencies:
+ lowercase-keys: 2.0.0
+
restore-cursor@5.1.0:
dependencies:
onetime: 7.0.0
@@ -11371,6 +12150,11 @@ snapshots:
dependencies:
glob: 7.2.3
+ rimraf@6.0.1:
+ dependencies:
+ glob: 11.0.0
+ package-json-from-dist: 1.0.1
+
rollup-plugin-visualizer@5.12.0(rollup@4.28.0):
dependencies:
open: 8.4.2
@@ -11502,6 +12286,32 @@ snapshots:
shebang-regex@3.0.0: {}
+ should-equal@2.0.0:
+ dependencies:
+ should-type: 1.4.0
+
+ should-format@3.0.3:
+ dependencies:
+ should-type: 1.4.0
+ should-type-adaptors: 1.1.0
+
+ should-type-adaptors@1.1.0:
+ dependencies:
+ should-type: 1.4.0
+ should-util: 1.0.1
+
+ should-type@1.4.0: {}
+
+ should-util@1.0.1: {}
+
+ should@13.2.3:
+ dependencies:
+ should-equal: 2.0.0
+ should-format: 3.0.3
+ should-type: 1.4.0
+ should-type-adaptors: 1.1.0
+ should-util: 1.0.1
+
side-channel@1.0.6:
dependencies:
call-bind: 1.0.7
@@ -11597,6 +12407,12 @@ snapshots:
is-fullwidth-code-point: 3.0.0
strip-ansi: 6.0.1
+ string-width@5.1.2:
+ dependencies:
+ eastasianwidth: 0.2.0
+ emoji-regex: 9.2.2
+ strip-ansi: 7.1.0
+
string-width@7.2.0:
dependencies:
emoji-regex: 10.4.0
@@ -11773,6 +12589,22 @@ snapshots:
svg-tags@1.0.0: {}
+ swagger2openapi@7.0.8:
+ dependencies:
+ call-me-maybe: 1.0.2
+ node-fetch: 2.7.0
+ 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.2
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - encoding
+
symbol-tree@3.2.4: {}
synckit@0.9.2:
@@ -11831,8 +12663,15 @@ snapshots:
through@2.3.8: {}
+ timers-ext@0.1.8:
+ dependencies:
+ es5-ext: 0.10.64
+ next-tick: 1.1.0
+
timm@1.7.1: {}
+ tiny-pinyin@1.3.2: {}
+
tinycolor2@1.6.0: {}
tinyexec@0.3.1: {}
@@ -11859,6 +12698,8 @@ snapshots:
universalify: 0.2.0
url-parse: 1.5.10
+ tr46@0.0.3: {}
+
tr46@2.1.0:
dependencies:
punycode: 2.3.1
@@ -11899,6 +12740,8 @@ snapshots:
media-typer: 0.3.0
mime-types: 2.1.35
+ type@2.7.3: {}
+
typed-array-buffer@1.0.2:
dependencies:
call-bind: 1.0.7
@@ -12169,6 +13012,8 @@ snapshots:
dependencies:
makeerror: 1.0.12
+ webidl-conversions@3.0.1: {}
+
webidl-conversions@5.0.0: {}
webidl-conversions@6.1.0: {}
@@ -12181,6 +13026,11 @@ snapshots:
whatwg-mimetype@2.3.0: {}
+ whatwg-url@5.0.0:
+ dependencies:
+ tr46: 0.0.3
+ webidl-conversions: 3.0.1
+
whatwg-url@8.7.0:
dependencies:
lodash: 4.17.21
@@ -12246,6 +13096,12 @@ snapshots:
string-width: 4.2.3
strip-ansi: 6.0.1
+ wrap-ansi@8.1.0:
+ dependencies:
+ ansi-styles: 6.2.1
+ string-width: 5.1.2
+ strip-ansi: 7.1.0
+
wrap-ansi@9.0.0:
dependencies:
ansi-styles: 6.2.1
diff --git a/src/App.vue b/src/App.vue
index d0dface..d32c900 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,5 +1,6 @@
diff --git a/src/service/app/displayEnumLabel.ts b/src/service/app/displayEnumLabel.ts
new file mode 100644
index 0000000..4974815
--- /dev/null
+++ b/src/service/app/displayEnumLabel.ts
@@ -0,0 +1,13 @@
+/* eslint-disable */
+// @ts-ignore
+import * as API from './types';
+
+export function displayStatusEnum(field: API.IStatusEnum) {
+ return { available: 'available', pending: 'pending', sold: 'sold' }[field];
+}
+
+export function displayStatusEnum2(field: API.IStatusEnum2) {
+ return { placed: 'placed', approved: 'approved', delivered: 'delivered' }[
+ field
+ ];
+}
diff --git a/src/service/app/index.ts b/src/service/app/index.ts
new file mode 100644
index 0000000..45b6e53
--- /dev/null
+++ b/src/service/app/index.ts
@@ -0,0 +1,11 @@
+/* eslint-disable */
+// @ts-ignore
+export * from './types';
+export * from './displayEnumLabel';
+
+export * from './pet';
+export * from './pet.vuequery';
+export * from './store';
+export * from './store.vuequery';
+export * from './user';
+export * from './user.vuequery';
diff --git a/src/service/app/pet.ts b/src/service/app/pet.ts
new file mode 100644
index 0000000..70b95ef
--- /dev/null
+++ b/src/service/app/pet.ts
@@ -0,0 +1,193 @@
+/* eslint-disable */
+// @ts-ignore
+import request from '@/utils/request';
+import { CustomRequestOptions } from '@/interceptors/request';
+
+import * as API from './types';
+
+/** Update an existing pet PUT /pet */
+export async function updatePet({
+ body,
+ options,
+}: {
+ body: API.Pet;
+ options?: CustomRequestOptions;
+}) {
+ return request('/pet', {
+ method: 'PUT',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
+/** Add a new pet to the store POST /pet */
+export async function addPet({
+ body,
+ options,
+}: {
+ body: API.Pet;
+ options?: CustomRequestOptions;
+}) {
+ return request('/pet', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
+/** Find pet by ID Returns a single pet GET /pet/${param0} */
+export async function getPetById({
+ params,
+ options,
+}: {
+ // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
+ params: API.getPetByIdParams;
+ options?: CustomRequestOptions;
+}) {
+ const { petId: param0, ...queryParams } = params;
+
+ return request(`/pet/${param0}`, {
+ method: 'GET',
+ params: { ...queryParams },
+ ...(options || {}),
+ });
+}
+
+/** Updates a pet in the store with form data POST /pet/${param0} */
+export async function updatePetWithForm({
+ params,
+ body,
+ options,
+}: {
+ // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
+ params: API.updatePetWithFormParams;
+ body: {
+ /** Updated name of the pet */
+ name?: string;
+ /** Updated status of the pet */
+ status?: string;
+ };
+ options?: CustomRequestOptions;
+}) {
+ const { petId: param0, ...queryParams } = params;
+
+ return request(`/pet/${param0}`, {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/x-www-form-urlencoded',
+ },
+ params: { ...queryParams },
+ data: body,
+ ...(options || {}),
+ });
+}
+
+/** Deletes a pet DELETE /pet/${param0} */
+export async function deletePet({
+ params,
+ options,
+}: {
+ // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
+ params: API.deletePetParams;
+ options?: CustomRequestOptions;
+}) {
+ const { petId: param0, ...queryParams } = params;
+
+ return request(`/pet/${param0}`, {
+ method: 'DELETE',
+ params: { ...queryParams },
+ ...(options || {}),
+ });
+}
+
+/** uploads an image POST /pet/${param0}/uploadImage */
+export async function uploadFile({
+ params,
+ body,
+ file,
+ options,
+}: {
+ // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
+ params: API.uploadFileParams;
+ body: {
+ /** Additional data to pass to server */
+ additionalMetadata?: string;
+ };
+ file?: File;
+ options?: CustomRequestOptions;
+}) {
+ const { petId: param0, ...queryParams } = params;
+ const formData = new FormData();
+
+ if (file) {
+ formData.append('file', file);
+ }
+
+ Object.keys(body).forEach((ele) => {
+ const item = (body as { [key: string]: any })[ele];
+
+ if (item !== undefined && item !== null) {
+ if (typeof item === 'object' && !(item instanceof File)) {
+ if (item instanceof Array) {
+ item.forEach((f) => formData.append(ele, f || ''));
+ } else {
+ formData.append(ele, JSON.stringify(item));
+ }
+ } else {
+ formData.append(ele, item);
+ }
+ }
+ });
+
+ return request(`/pet/${param0}/uploadImage`, {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'multipart/form-data',
+ },
+ params: { ...queryParams },
+ data: formData,
+ ...(options || {}),
+ });
+}
+
+/** Finds Pets by status Multiple status values can be provided with comma separated strings GET /pet/findByStatus */
+export async function findPetsByStatus({
+ params,
+ options,
+}: {
+ // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
+ params: API.findPetsByStatusParams;
+ options?: CustomRequestOptions;
+}) {
+ return request('/pet/findByStatus', {
+ method: 'GET',
+ params: {
+ ...params,
+ },
+ ...(options || {}),
+ });
+}
+
+/** Finds Pets by tags Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. GET /pet/findByTags */
+export async function findPetsByTags({
+ params,
+ options,
+}: {
+ // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
+ params: API.findPetsByTagsParams;
+ options?: CustomRequestOptions;
+}) {
+ return request('/pet/findByTags', {
+ method: 'GET',
+ params: {
+ ...params,
+ },
+ ...(options || {}),
+ });
+}
diff --git a/src/service/app/pet.vuequery.ts b/src/service/app/pet.vuequery.ts
new file mode 100644
index 0000000..c6c0b7d
--- /dev/null
+++ b/src/service/app/pet.vuequery.ts
@@ -0,0 +1,151 @@
+/* eslint-disable */
+// @ts-ignore
+import { queryOptions, useMutation } from '@tanstack/vue-query';
+import type { DefaultError } from '@tanstack/vue-query';
+import request from '@/utils/request';
+import { CustomRequestOptions } from '@/interceptors/request';
+
+import * as apis from './pet';
+import * as API from './types';
+
+/** Update an existing pet PUT /pet */
+export function useUpdatePetMutation(options?: {
+ onSuccess?: (value?: unknown) => void;
+ onError?: (error?: DefaultError) => void;
+}) {
+ const { onSuccess, onError } = options || {};
+
+ const response = useMutation({
+ mutationFn: apis.updatePet,
+ onSuccess(data: unknown) {
+ onSuccess?.(data);
+ },
+ onError(error) {
+ onError?.(error);
+ },
+ });
+
+ return response;
+}
+
+/** Add a new pet to the store POST /pet */
+export function useAddPetMutation(options?: {
+ onSuccess?: (value?: unknown) => void;
+ onError?: (error?: DefaultError) => void;
+}) {
+ const { onSuccess, onError } = options || {};
+
+ const response = useMutation({
+ mutationFn: apis.addPet,
+ onSuccess(data: unknown) {
+ onSuccess?.(data);
+ },
+ onError(error) {
+ onError?.(error);
+ },
+ });
+
+ return response;
+}
+
+/** Find pet by ID Returns a single pet GET /pet/${param0} */
+export function getPetByIdQueryOptions(options: {
+ // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
+ params: API.getPetByIdParams;
+ options?: CustomRequestOptions;
+}) {
+ return queryOptions({
+ queryFn: async ({ queryKey }) => {
+ return apis.getPetById(queryKey[1] as typeof options);
+ },
+ queryKey: ['getPetById', options],
+ });
+}
+
+/** Updates a pet in the store with form data POST /pet/${param0} */
+export function useUpdatePetWithFormMutation(options?: {
+ onSuccess?: (value?: unknown) => void;
+ onError?: (error?: DefaultError) => void;
+}) {
+ const { onSuccess, onError } = options || {};
+
+ const response = useMutation({
+ mutationFn: apis.updatePetWithForm,
+ onSuccess(data: unknown) {
+ onSuccess?.(data);
+ },
+ onError(error) {
+ onError?.(error);
+ },
+ });
+
+ return response;
+}
+
+/** Deletes a pet DELETE /pet/${param0} */
+export function useDeletePetMutation(options?: {
+ onSuccess?: (value?: unknown) => void;
+ onError?: (error?: DefaultError) => void;
+}) {
+ const { onSuccess, onError } = options || {};
+
+ const response = useMutation({
+ mutationFn: apis.deletePet,
+ onSuccess(data: unknown) {
+ onSuccess?.(data);
+ },
+ onError(error) {
+ onError?.(error);
+ },
+ });
+
+ return response;
+}
+
+/** uploads an image POST /pet/${param0}/uploadImage */
+export function useUploadFileMutation(options?: {
+ onSuccess?: (value?: API.ApiResponse) => void;
+ onError?: (error?: DefaultError) => void;
+}) {
+ const { onSuccess, onError } = options || {};
+
+ const response = useMutation({
+ mutationFn: apis.uploadFile,
+ onSuccess(data: API.ApiResponse) {
+ onSuccess?.(data);
+ },
+ onError(error) {
+ onError?.(error);
+ },
+ });
+
+ return response;
+}
+
+/** Finds Pets by status Multiple status values can be provided with comma separated strings GET /pet/findByStatus */
+export function findPetsByStatusQueryOptions(options: {
+ // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
+ params: API.findPetsByStatusParams;
+ options?: CustomRequestOptions;
+}) {
+ return queryOptions({
+ queryFn: async ({ queryKey }) => {
+ return apis.findPetsByStatus(queryKey[1] as typeof options);
+ },
+ queryKey: ['findPetsByStatus', options],
+ });
+}
+
+/** Finds Pets by tags Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. GET /pet/findByTags */
+export function findPetsByTagsQueryOptions(options: {
+ // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
+ params: API.findPetsByTagsParams;
+ options?: CustomRequestOptions;
+}) {
+ return queryOptions({
+ queryFn: async ({ queryKey }) => {
+ return apis.findPetsByTags(queryKey[1] as typeof options);
+ },
+ queryKey: ['findPetsByTags', options],
+ });
+}
diff --git a/src/service/app/store.ts b/src/service/app/store.ts
new file mode 100644
index 0000000..0d87f52
--- /dev/null
+++ b/src/service/app/store.ts
@@ -0,0 +1,72 @@
+/* eslint-disable */
+// @ts-ignore
+import request from '@/utils/request';
+import { CustomRequestOptions } from '@/interceptors/request';
+
+import * as API from './types';
+
+/** Returns pet inventories by status Returns a map of status codes to quantities GET /store/inventory */
+export async function getInventory({
+ options,
+}: {
+ options?: CustomRequestOptions;
+}) {
+ return request>('/store/inventory', {
+ method: 'GET',
+ ...(options || {}),
+ });
+}
+
+/** Place an order for a pet POST /store/order */
+export async function placeOrder({
+ body,
+ options,
+}: {
+ body: API.Order;
+ options?: CustomRequestOptions;
+}) {
+ return request('/store/order', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
+/** Find purchase order by ID For valid response try integer IDs with value >= 1 and <= 10. Other values will generated exceptions GET /store/order/${param0} */
+export async function getOrderById({
+ params,
+ options,
+}: {
+ // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
+ params: API.getOrderByIdParams;
+ options?: CustomRequestOptions;
+}) {
+ const { orderId: param0, ...queryParams } = params;
+
+ return request(`/store/order/${param0}`, {
+ method: 'GET',
+ params: { ...queryParams },
+ ...(options || {}),
+ });
+}
+
+/** Delete purchase order by ID For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors DELETE /store/order/${param0} */
+export async function deleteOrder({
+ params,
+ options,
+}: {
+ // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
+ params: API.deleteOrderParams;
+ options?: CustomRequestOptions;
+}) {
+ const { orderId: param0, ...queryParams } = params;
+
+ return request(`/store/order/${param0}`, {
+ method: 'DELETE',
+ params: { ...queryParams },
+ ...(options || {}),
+ });
+}
diff --git a/src/service/app/store.vuequery.ts b/src/service/app/store.vuequery.ts
new file mode 100644
index 0000000..dd6d660
--- /dev/null
+++ b/src/service/app/store.vuequery.ts
@@ -0,0 +1,75 @@
+/* eslint-disable */
+// @ts-ignore
+import { queryOptions, useMutation } from '@tanstack/vue-query';
+import type { DefaultError } from '@tanstack/vue-query';
+import request from '@/utils/request';
+import { CustomRequestOptions } from '@/interceptors/request';
+
+import * as apis from './store';
+import * as API from './types';
+
+/** Returns pet inventories by status Returns a map of status codes to quantities GET /store/inventory */
+export function getInventoryQueryOptions(options: {
+ options?: CustomRequestOptions;
+}) {
+ return queryOptions({
+ queryFn: async ({ queryKey }) => {
+ return apis.getInventory(queryKey[1] as typeof options);
+ },
+ queryKey: ['getInventory', options],
+ });
+}
+
+/** Place an order for a pet POST /store/order */
+export function usePlaceOrderMutation(options?: {
+ onSuccess?: (value?: API.Order) => void;
+ onError?: (error?: DefaultError) => void;
+}) {
+ const { onSuccess, onError } = options || {};
+
+ const response = useMutation({
+ mutationFn: apis.placeOrder,
+ onSuccess(data: API.Order) {
+ onSuccess?.(data);
+ },
+ onError(error) {
+ onError?.(error);
+ },
+ });
+
+ return response;
+}
+
+/** Find purchase order by ID For valid response try integer IDs with value >= 1 and <= 10. Other values will generated exceptions GET /store/order/${param0} */
+export function getOrderByIdQueryOptions(options: {
+ // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
+ params: API.getOrderByIdParams;
+ options?: CustomRequestOptions;
+}) {
+ return queryOptions({
+ queryFn: async ({ queryKey }) => {
+ return apis.getOrderById(queryKey[1] as typeof options);
+ },
+ queryKey: ['getOrderById', options],
+ });
+}
+
+/** Delete purchase order by ID For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors DELETE /store/order/${param0} */
+export function useDeleteOrderMutation(options?: {
+ onSuccess?: (value?: unknown) => void;
+ onError?: (error?: DefaultError) => void;
+}) {
+ const { onSuccess, onError } = options || {};
+
+ const response = useMutation({
+ mutationFn: apis.deleteOrder,
+ onSuccess(data: unknown) {
+ onSuccess?.(data);
+ },
+ onError(error) {
+ onError?.(error);
+ },
+ });
+
+ return response;
+}
diff --git a/src/service/app/types.ts b/src/service/app/types.ts
new file mode 100644
index 0000000..4691b64
--- /dev/null
+++ b/src/service/app/types.ts
@@ -0,0 +1,128 @@
+/* eslint-disable */
+// @ts-ignore
+
+export type ApiResponse = {
+ code?: number;
+ type?: string;
+ message?: string;
+};
+
+export type Category = {
+ id?: number;
+ name?: string;
+};
+
+export type deleteOrderParams = {
+ /** ID of the order that needs to be deleted */
+ orderId: number;
+};
+
+export type deletePetParams = {
+ /** Pet id to delete */
+ petId: number;
+};
+
+export type deleteUserParams = {
+ /** The name that needs to be deleted */
+ username: string;
+};
+
+export type findPetsByStatusParams = {
+ /** Status values that need to be considered for filter */
+ status: ('available' | 'pending' | 'sold')[];
+};
+
+export type findPetsByTagsParams = {
+ /** Tags to filter by */
+ tags: string[];
+};
+
+export type getOrderByIdParams = {
+ /** ID of pet that needs to be fetched */
+ orderId: number;
+};
+
+export type getPetByIdParams = {
+ /** ID of pet to return */
+ petId: number;
+};
+
+export type getUserByNameParams = {
+ /** The name that needs to be fetched. Use user1 for testing. */
+ username: string;
+};
+
+export type loginUserParams = {
+ /** The user name for login */
+ username: string;
+ /** The password for login in clear text */
+ password: string;
+};
+
+export type Order = {
+ id?: number;
+ petId?: number;
+ quantity?: number;
+ shipDate?: string;
+ /** Order Status */
+ status?: 'placed' | 'approved' | 'delivered';
+ complete?: boolean;
+};
+
+export type Pet = {
+ id?: number;
+ category?: Category;
+ name: string;
+ photoUrls: string[];
+ tags?: Tag[];
+ /** pet status in the store */
+ status?: 'available' | 'pending' | 'sold';
+};
+
+export enum StatusEnum {
+ available = 'available',
+ pending = 'pending',
+ sold = 'sold',
+}
+
+export type IStatusEnum = keyof typeof StatusEnum;
+
+export enum StatusEnum2 {
+ placed = 'placed',
+ approved = 'approved',
+ delivered = 'delivered',
+}
+
+export type IStatusEnum2 = keyof typeof StatusEnum2;
+
+export type Tag = {
+ id?: number;
+ name?: string;
+};
+
+export type updatePetWithFormParams = {
+ /** ID of pet that needs to be updated */
+ petId: number;
+};
+
+export type updateUserParams = {
+ /** name that need to be updated */
+ username: string;
+};
+
+export type uploadFileParams = {
+ /** ID of pet to update */
+ petId: number;
+};
+
+export type User = {
+ id?: number;
+ username?: string;
+ firstName?: string;
+ lastName?: string;
+ email?: string;
+ password?: string;
+ phone?: string;
+ /** User Status */
+ userStatus?: number;
+};
diff --git a/src/service/app/user.ts b/src/service/app/user.ts
new file mode 100644
index 0000000..2474272
--- /dev/null
+++ b/src/service/app/user.ts
@@ -0,0 +1,150 @@
+/* eslint-disable */
+// @ts-ignore
+import request from '@/utils/request';
+import { CustomRequestOptions } from '@/interceptors/request';
+
+import * as API from './types';
+
+/** Create user This can only be done by the logged in user. 返回值: successful operation POST /user */
+export async function createUser({
+ body,
+ options,
+}: {
+ body: API.User;
+ options?: CustomRequestOptions;
+}) {
+ return request('/user', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
+/** Get user by user name GET /user/${param0} */
+export async function getUserByName({
+ params,
+ options,
+}: {
+ // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
+ params: API.getUserByNameParams;
+ options?: CustomRequestOptions;
+}) {
+ const { username: param0, ...queryParams } = params;
+
+ return request(`/user/${param0}`, {
+ method: 'GET',
+ params: { ...queryParams },
+ ...(options || {}),
+ });
+}
+
+/** Updated user This can only be done by the logged in user. PUT /user/${param0} */
+export async function updateUser({
+ params,
+ body,
+ options,
+}: {
+ // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
+ params: API.updateUserParams;
+ body: API.User;
+ options?: CustomRequestOptions;
+}) {
+ const { username: param0, ...queryParams } = params;
+
+ return request(`/user/${param0}`, {
+ method: 'PUT',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ params: { ...queryParams },
+ data: body,
+ ...(options || {}),
+ });
+}
+
+/** Delete user This can only be done by the logged in user. DELETE /user/${param0} */
+export async function deleteUser({
+ params,
+ options,
+}: {
+ // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
+ params: API.deleteUserParams;
+ options?: CustomRequestOptions;
+}) {
+ const { username: param0, ...queryParams } = params;
+
+ return request(`/user/${param0}`, {
+ method: 'DELETE',
+ params: { ...queryParams },
+ ...(options || {}),
+ });
+}
+
+/** Creates list of users with given input array 返回值: successful operation POST /user/createWithArray */
+export async function createUsersWithArrayInput({
+ body,
+ options,
+}: {
+ body: API.User[];
+ options?: CustomRequestOptions;
+}) {
+ return request('/user/createWithArray', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
+/** Creates list of users with given input array 返回值: successful operation POST /user/createWithList */
+export async function createUsersWithListInput({
+ body,
+ options,
+}: {
+ body: API.User[];
+ options?: CustomRequestOptions;
+}) {
+ return request('/user/createWithList', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
+/** Logs user into the system GET /user/login */
+export async function loginUser({
+ params,
+ options,
+}: {
+ // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
+ params: API.loginUserParams;
+ options?: CustomRequestOptions;
+}) {
+ return request('/user/login', {
+ method: 'GET',
+ params: {
+ ...params,
+ },
+ ...(options || {}),
+ });
+}
+
+/** Logs out current logged in user session 返回值: successful operation GET /user/logout */
+export async function logoutUser({
+ options,
+}: {
+ options?: CustomRequestOptions;
+}) {
+ return request('/user/logout', {
+ method: 'GET',
+ ...(options || {}),
+ });
+}
diff --git a/src/service/app/user.vuequery.ts b/src/service/app/user.vuequery.ts
new file mode 100644
index 0000000..0e13636
--- /dev/null
+++ b/src/service/app/user.vuequery.ts
@@ -0,0 +1,149 @@
+/* eslint-disable */
+// @ts-ignore
+import { queryOptions, useMutation } from '@tanstack/vue-query';
+import type { DefaultError } from '@tanstack/vue-query';
+import request from '@/utils/request';
+import { CustomRequestOptions } from '@/interceptors/request';
+
+import * as apis from './user';
+import * as API from './types';
+
+/** Create user This can only be done by the logged in user. 返回值: successful operation POST /user */
+export function useCreateUserMutation(options?: {
+ onSuccess?: (value?: unknown) => void;
+ onError?: (error?: DefaultError) => void;
+}) {
+ const { onSuccess, onError } = options || {};
+
+ const response = useMutation({
+ mutationFn: apis.createUser,
+ onSuccess(data: unknown) {
+ onSuccess?.(data);
+ },
+ onError(error) {
+ onError?.(error);
+ },
+ });
+
+ return response;
+}
+
+/** Get user by user name GET /user/${param0} */
+export function getUserByNameQueryOptions(options: {
+ // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
+ params: API.getUserByNameParams;
+ options?: CustomRequestOptions;
+}) {
+ return queryOptions({
+ queryFn: async ({ queryKey }) => {
+ return apis.getUserByName(queryKey[1] as typeof options);
+ },
+ queryKey: ['getUserByName', options],
+ });
+}
+
+/** Updated user This can only be done by the logged in user. PUT /user/${param0} */
+export function useUpdateUserMutation(options?: {
+ onSuccess?: (value?: unknown) => void;
+ onError?: (error?: DefaultError) => void;
+}) {
+ const { onSuccess, onError } = options || {};
+
+ const response = useMutation({
+ mutationFn: apis.updateUser,
+ onSuccess(data: unknown) {
+ onSuccess?.(data);
+ },
+ onError(error) {
+ onError?.(error);
+ },
+ });
+
+ return response;
+}
+
+/** Delete user This can only be done by the logged in user. DELETE /user/${param0} */
+export function useDeleteUserMutation(options?: {
+ onSuccess?: (value?: unknown) => void;
+ onError?: (error?: DefaultError) => void;
+}) {
+ const { onSuccess, onError } = options || {};
+
+ const response = useMutation({
+ mutationFn: apis.deleteUser,
+ onSuccess(data: unknown) {
+ onSuccess?.(data);
+ },
+ onError(error) {
+ onError?.(error);
+ },
+ });
+
+ return response;
+}
+
+/** Creates list of users with given input array 返回值: successful operation POST /user/createWithArray */
+export function useCreateUsersWithArrayInputMutation(options?: {
+ onSuccess?: (value?: unknown) => void;
+ onError?: (error?: DefaultError) => void;
+}) {
+ const { onSuccess, onError } = options || {};
+
+ const response = useMutation({
+ mutationFn: apis.createUsersWithArrayInput,
+ onSuccess(data: unknown) {
+ onSuccess?.(data);
+ },
+ onError(error) {
+ onError?.(error);
+ },
+ });
+
+ return response;
+}
+
+/** Creates list of users with given input array 返回值: successful operation POST /user/createWithList */
+export function useCreateUsersWithListInputMutation(options?: {
+ onSuccess?: (value?: unknown) => void;
+ onError?: (error?: DefaultError) => void;
+}) {
+ const { onSuccess, onError } = options || {};
+
+ const response = useMutation({
+ mutationFn: apis.createUsersWithListInput,
+ onSuccess(data: unknown) {
+ onSuccess?.(data);
+ },
+ onError(error) {
+ onError?.(error);
+ },
+ });
+
+ return response;
+}
+
+/** Logs user into the system GET /user/login */
+export function loginUserQueryOptions(options: {
+ // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
+ params: API.loginUserParams;
+ options?: CustomRequestOptions;
+}) {
+ return queryOptions({
+ queryFn: async ({ queryKey }) => {
+ return apis.loginUser(queryKey[1] as typeof options);
+ },
+ queryKey: ['loginUser', options],
+ });
+}
+
+/** Logs out current logged in user session 返回值: successful operation GET /user/logout */
+export function logoutUserQueryOptions(options: {
+ options?: CustomRequestOptions;
+}) {
+ return queryOptions({
+ queryFn: async ({ queryKey }) => {
+ return apis.logoutUser(queryKey[1] as typeof options);
+ },
+ queryKey: ['logoutUser', options],
+ });
+}
diff --git a/src/service/index/foo.ts b/src/service/index/foo.ts
index acf5aa8..34d523e 100644
--- a/src/service/index/foo.ts
+++ b/src/service/index/foo.ts
@@ -8,8 +8,20 @@ export interface IFooItem {
export const getFooAPI = (name: string) => {
return http.get('/foo', { name })
}
+/** GET 请求;支持 传递 header 的范例 */
+export const getFooAPI2 = (name: string) => {
+ return http.get('/foo', { name }, { 'Content-Type-100': '100' })
+}
/** POST 请求 */
export const postFooAPI = (name: string) => {
- return http.post('/foo', { name }, { name })
+ return http.post('/foo', { name })
+}
+/** POST 请求;需要传递 query 参数的范例;微信小程序经常有同时需要query参数和body参数的场景 */
+export const postFooAPI2 = (name: string) => {
+ return http.post('/foo', { name })
+}
+/** POST 请求;支持 传递 header 的范例 */
+export const postFooAPI3 = (name: string) => {
+ return http.post('/foo', { name }, { name }, { 'Content-Type-100': '100' })
}
diff --git a/src/typings.d.ts b/src/typings.d.ts
new file mode 100644
index 0000000..0ab0858
--- /dev/null
+++ b/src/typings.d.ts
@@ -0,0 +1,28 @@
+// 全局要用的类型放到这里
+
+declare global {
+ type IResData = {
+ code: number
+ msg: string
+ data: T
+ }
+
+ // uni.uploadFile文件上传参数
+ type IUniUploadFileOptions = {
+ file?: File
+ files?: UniApp.UploadFileOptionFiles[]
+ filePath?: string
+ name?: string
+ formData?: any
+ }
+
+ type IUserInfo = {
+ nickname?: string
+ avatar?: string
+ /** 微信的 openid,非微信没有这个字段 */
+ openid?: string
+ token?: string
+ }
+}
+
+export {} // 防止模块污染
diff --git a/src/typings.ts b/src/typings.ts
index 06354be..016e462 100644
--- a/src/typings.ts
+++ b/src/typings.ts
@@ -1,29 +1,6 @@
-// 全局要用的类型放到这里
+// 枚举定义
-type IResData = {
- code: number
- msg: string
- data: T
-}
-
-// uni.uploadFile文件上传参数
-type IUniUploadFileOptions = {
- file?: File
- files?: UniApp.UploadFileOptionFiles[]
- filePath?: string
- name?: string
- formData?: any
-}
-
-type IUserInfo = {
- nickname?: string
- avatar?: string
- /** 微信的 openid,非微信没有这个字段 */
- openid?: string
- token?: string
-}
-
-enum TestEnum {
- A = 'a',
- B = 'b',
+export enum TestEnum {
+ A = '1',
+ B = '2',
}
diff --git a/src/utils/http.ts b/src/utils/http.ts
index 4e3f38c..d46535a 100644
--- a/src/utils/http.ts
+++ b/src/utils/http.ts
@@ -46,13 +46,19 @@ export const http = (options: CustomRequestOptions) => {
* GET 请求
* @param url 后台地址
* @param query 请求query参数
+ * @param header 请求头,默认为json格式
* @returns
*/
-export const httpGet = (url: string, query?: Record) => {
+export const httpGet = (
+ url: string,
+ query?: Record,
+ header?: Record,
+) => {
return http({
url,
query,
method: 'GET',
+ header,
})
}
@@ -61,18 +67,21 @@ export const httpGet = (url: string, query?: Record) => {
* @param url 后台地址
* @param data 请求body参数
* @param query 请求query参数,post请求也支持query,很多微信接口都需要
+ * @param header 请求头,默认为json格式
* @returns
*/
export const httpPost = (
url: string,
data?: Record,
query?: Record,
+ header?: Record,
) => {
return http({
url,
query,
data,
method: 'POST',
+ header,
})
}
diff --git a/src/utils/index.ts b/src/utils/index.ts
index be21dd6..a60e713 100644
--- a/src/utils/index.ts
+++ b/src/utils/index.ts
@@ -1,21 +1,21 @@
import { pages, subPackages, tabBar } from '@/pages.json'
-import { isMp } from './platform'
+import { isMpWeixin } from './platform'
const getLastPage = () => {
// getCurrentPages() 至少有1个元素,所以不再额外判断
// const lastPage = getCurrentPages().at(-1)
- // 上面那个在低版本安卓中打包回报错,所以改用下面这个【虽然我加了src/interceptions/prototype.ts,但依然报错】
+ // 上面那个在低版本安卓中打包会报错,所以改用下面这个【虽然我加了 src/interceptions/prototype.ts,但依然报错】
const pages = getCurrentPages()
return pages[pages.length - 1]
}
-/** 判断当前页面是否是tabbar页 */
+/** 判断当前页面是否是 tabbar 页 */
export const getIsTabbar = () => {
if (!tabBar) {
return false
}
if (!tabBar.list.length) {
- // 通常有tabBar的话,list不能有空,且至少有2个元素,这里其实不用处理
+ // 通常有 tabBar 的话,list 不能有空,且至少有2个元素,这里其实不用处理
return false
}
const lastPage = getLastPage()
@@ -25,8 +25,8 @@ export const getIsTabbar = () => {
/**
* 获取当前页面路由的 path 路径和 redirectPath 路径
- * path 如 ‘/pages/login/index’
- * redirectPath 如 ‘/pages/demo/base/route-interceptor’
+ * path 如 '/pages/login/index'
+ * redirectPath 如 '/pages/demo/base/route-interceptor'
*/
export const currRoute = () => {
const lastPage = getLastPage()
@@ -73,9 +73,9 @@ export const getUrlObj = (url: string) => {
return { path, query }
}
/**
- * 得到所有的需要登录的pages,包括主包和分包的
- * 这里设计得通用一点,可以传递key作为判断依据,默认是 needLogin, 与 route-block 配对使用
- * 如果没有传 key,则表示所有的pages,如果传递了 key, 则表示通过 key 过滤
+ * 得到所有的需要登录的 pages,包括主包和分包的
+ * 这里设计得通用一点,可以传递 key 作为判断依据,默认是 needLogin, 与 route-block 配对使用
+ * 如果没有传 key,则表示所有的 pages,如果传递了 key, 则表示通过 key 过滤
*/
export const getAllPages = (key = 'needLogin') => {
// 这里处理主包
@@ -108,39 +108,39 @@ export const getAllPages = (key = 'needLogin') => {
}
/**
- * 得到所有的需要登录的pages,包括主包和分包的
+ * 得到所有的需要登录的 pages,包括主包和分包的
* 只得到 path 数组
*/
export const getNeedLoginPages = (): string[] => getAllPages('needLogin').map((page) => page.path)
/**
- * 得到所有的需要登录的pages,包括主包和分包的
+ * 得到所有的需要登录的 pages,包括主包和分包的
* 只得到 path 数组
*/
export const needLoginPages: string[] = getAllPages('needLogin').map((page) => page.path)
/**
- * 根据微信小程序当前环境,判断应该获取的BaseUrl
+ * 根据微信小程序当前环境,判断应该获取的 baseUrl
*/
export const getEnvBaseUrl = () => {
// 请求基准地址
let baseUrl = import.meta.env.VITE_SERVER_BASEURL
- // 小程序端环境区分
- if (isMp) {
+ // 微信小程序端环境区分
+ if (isMpWeixin) {
const {
miniProgram: { envVersion },
} = uni.getAccountInfoSync()
switch (envVersion) {
case 'develop':
- baseUrl = 'https://ukw0y1.laf.run'
+ baseUrl = import.meta.env.VITE_SERVER_BASEURL__WEIXIN_DEVELOP || baseUrl
break
case 'trial':
- baseUrl = 'https://ukw0y1.laf.run'
+ baseUrl = import.meta.env.VITE_SERVER_BASEURL__WEIXIN_TRIAL || baseUrl
break
case 'release':
- baseUrl = 'https://ukw0y1.laf.run'
+ baseUrl = import.meta.env.VITE_SERVER_BASEURL__WEIXIN_RELEASE || baseUrl
break
}
}
@@ -149,27 +149,27 @@ export const getEnvBaseUrl = () => {
}
/**
- * 根据微信小程序当前环境,判断应该获取的UPLOAD_BASEURL
+ * 根据微信小程序当前环境,判断应该获取的 UPLOAD_BASEURL
*/
export const getEnvBaseUploadUrl = () => {
// 请求基准地址
let baseUploadUrl = import.meta.env.VITE_UPLOAD_BASEURL
- // 小程序端环境区分
- if (isMp) {
+ // 微信小程序端环境区分
+ if (isMpWeixin) {
const {
miniProgram: { envVersion },
} = uni.getAccountInfoSync()
switch (envVersion) {
case 'develop':
- baseUploadUrl = 'https://ukw0y1.laf.run/upload'
+ baseUploadUrl = import.meta.env.VITE_UPLOAD_BASEURL__WEIXIN_DEVELOP || baseUploadUrl
break
case 'trial':
- baseUploadUrl = 'https://ukw0y1.laf.run/upload'
+ baseUploadUrl = import.meta.env.VITE_UPLOAD_BASEURL__WEIXIN_TRIAL || baseUploadUrl
break
case 'release':
- baseUploadUrl = 'https://ukw0y1.laf.run/upload'
+ baseUploadUrl = import.meta.env.VITE_UPLOAD_BASEURL__WEIXIN_RELEASE || baseUploadUrl
break
}
}
diff --git a/src/utils/platform.ts b/src/utils/platform.ts
index a42200c..c714199 100644
--- a/src/utils/platform.ts
+++ b/src/utils/platform.ts
@@ -8,10 +8,17 @@ export const platform = __UNI_PLATFORM__
export const isH5 = __UNI_PLATFORM__ === 'h5'
export const isApp = __UNI_PLATFORM__ === 'app'
export const isMp = __UNI_PLATFORM__.startsWith('mp-')
+export const isMpWeixin = __UNI_PLATFORM__.startsWith('mp-weixin')
+export const isMpAplipay = __UNI_PLATFORM__.startsWith('mp-alipay')
+export const isMpToutiao = __UNI_PLATFORM__.startsWith('mp-toutiao')
+
const PLATFORM = {
platform,
isH5,
isApp,
isMp,
+ isMpWeixin,
+ isMpAplipay,
+ isMpToutiao,
}
export default PLATFORM
diff --git a/src/utils/request.ts b/src/utils/request.ts
new file mode 100644
index 0000000..79f05ab
--- /dev/null
+++ b/src/utils/request.ts
@@ -0,0 +1,76 @@
+import { CustomRequestOptions } from '@/interceptors/request'
+
+/**
+ * 请求方法: 主要是对 uni.request 的封装,去适配 openapi-ts-request 的 request 方法
+ * @param options 请求参数
+ * @returns 返回 Promise 对象
+ */
+const http = (options: CustomRequestOptions) => {
+ // 1. 返回 Promise 对象
+ return new Promise((resolve, reject) => {
+ uni.request({
+ ...options,
+ dataType: 'json',
+ // #ifndef MP-WEIXIN
+ responseType: 'json',
+ // #endif
+ // 响应成功
+ success(res) {
+ // 状态码 2xx,参考 axios 的设计
+ if (res.statusCode >= 200 && res.statusCode < 300) {
+ // 2.1 提取核心数据 res.data
+ resolve(res.data as T)
+ } else if (res.statusCode === 401) {
+ // 401错误 -> 清理用户信息,跳转到登录页
+ // userStore.clearUserInfo()
+ // uni.navigateTo({ url: '/pages/login/login' })
+ reject(res)
+ } else {
+ // 其他错误 -> 根据后端错误信息轻提示
+ !options.hideErrorToast &&
+ uni.showToast({
+ icon: 'none',
+ title: (res.data as T & { msg?: string })?.msg || '请求错误',
+ })
+ reject(res)
+ }
+ },
+ // 响应失败
+ fail(err) {
+ uni.showToast({
+ icon: 'none',
+ title: '网络错误,换个网络试试',
+ })
+ reject(err)
+ },
+ })
+ })
+}
+
+/*
+ * openapi-ts-request 工具的 request 跨客户端适配方法
+ */
+export default function request(
+ url: string,
+ options: Omit & {
+ params?: Record
+ headers?: Record
+ },
+) {
+ const requestOptions = {
+ url,
+ ...options,
+ }
+
+ if (options.params) {
+ requestOptions.query = requestOptions.params
+ delete requestOptions.params
+ }
+
+ if (options.headers) {
+ requestOptions.header = options.headers
+ delete requestOptions.headers
+ }
+
+ return http(requestOptions)
+}
diff --git a/tsconfig.json b/tsconfig.json
index 8390fbe..495932e 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -20,7 +20,8 @@
"@uni-helper/uni-types",
"@types/wechat-miniprogram",
"wot-design-uni/global.d.ts",
- "z-paging/types"
+ "z-paging/types",
+ "./src/typings.d.ts"
]
},
"vueCompilerOptions": {
diff --git a/vite.config.ts b/vite.config.ts
index 0c45d56..f0fec23 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -1,8 +1,7 @@
-import path from 'node:path'
-import { execSync } from 'node:child_process'
-import dayjs from 'dayjs'
-import { defineConfig, loadEnv } from 'vite'
import Uni from '@dcloudio/vite-plugin-uni'
+import dayjs from 'dayjs'
+import path from 'node:path'
+import { defineConfig, loadEnv } from 'vite'
// @see https://uni-helper.js.org/vite-plugin-uni-pages
import UniPages from '@uni-helper/vite-plugin-uni-pages'
// @see https://uni-helper.js.org/vite-plugin-uni-layouts
@@ -13,9 +12,9 @@ import UniPlatform from '@uni-helper/vite-plugin-uni-platform'
// @see https://github.com/uni-helper/vite-plugin-uni-manifest
import UniManifest from '@uni-helper/vite-plugin-uni-manifest'
// @see https://unocss.dev/
+import { visualizer } from 'rollup-plugin-visualizer'
import UnoCSS from 'unocss/vite'
import AutoImport from 'unplugin-auto-import/vite'
-import { visualizer } from 'rollup-plugin-visualizer'
import ViteRestart from 'vite-plugin-restart'
import { copyNativeRes } from './vite-plugins/copyNativeRes'
@@ -98,13 +97,13 @@ export default ({ command, mode }) => {
},
// 打包分析插件,h5 + 生产环境才弹出
UNI_PLATFORM === 'h5' &&
- mode === 'production' &&
- visualizer({
- filename: './node_modules/.cache/visualizer/stats.html',
- open: true,
- gzipSize: true,
- brotliSize: true,
- }),
+ mode === 'production' &&
+ visualizer({
+ filename: './node_modules/.cache/visualizer/stats.html',
+ open: true,
+ gzipSize: true,
+ brotliSize: true,
+ }),
// 只有在 app 平台时才启用 copyNativeRes 插件
UNI_PLATFORM === 'app' && copyNativeRes(),
],
@@ -136,12 +135,12 @@ export default ({ command, mode }) => {
// 仅 H5 端生效,其他端不生效(其他端走build,不走devServer)
proxy: JSON.parse(VITE_APP_PROXY)
? {
- [VITE_APP_PROXY_PREFIX]: {
- target: VITE_SERVER_BASEURL,
- changeOrigin: true,
- rewrite: (path) => path.replace(new RegExp(`^${VITE_APP_PROXY_PREFIX}`), ''),
- },
- }
+ [VITE_APP_PROXY_PREFIX]: {
+ target: VITE_SERVER_BASEURL,
+ changeOrigin: true,
+ rewrite: (path) => path.replace(new RegExp(`^${VITE_APP_PROXY_PREFIX}`), ''),
+ },
+ }
: undefined,
},
build: {