diff --git a/packages/scaffold/package.json b/packages/scaffold/package.json index ff7dfc0..e08a4c7 100644 --- a/packages/scaffold/package.json +++ b/packages/scaffold/package.json @@ -87,6 +87,7 @@ "xvfb-ts": "^1.1.0" }, "devDependencies": { + "@gitee/typescript-sdk-v5": "^5.4.86", "@types/adm-zip": "^0.5.7", "@types/fs-extra": "^11.0.4" } diff --git a/packages/scaffold/src/core/releaser/gitee.ts b/packages/scaffold/src/core/releaser/gitee.ts index 3c983eb..8590e68 100644 --- a/packages/scaffold/src/core/releaser/gitee.ts +++ b/packages/scaffold/src/core/releaser/gitee.ts @@ -1,8 +1,114 @@ +import fs from "node:fs"; +import { basename, join } from "node:path"; +import { env } from "node:process"; +import { OpenAPI, RepositoriesService } from "@gitee/typescript-sdk-v5"; +// import { ofetch } from "ofetch"; +import { globSync } from "tinyglobby"; import { ReleaseBase } from "./base.js"; export default class Gitee extends ReleaseBase { + readonly client = RepositoriesService; + async run() { - // + OpenAPI.TOKEN = env.GITEE_TOKEN; + if (!OpenAPI.TOKEN) + throw new Error("No GITEE_TOKEN provided!"); + + this.checkFiles(); + + this.logger.info("Uploading XPI to Gitee..."); + await this.uploadXPI(); + + this.logger.info("Refreshing update manifest..."); + await this.refreshUpdateManifest(); + } + + async uploadXPI() { + const { version, dist, xpiName } = this.ctx; + const release = await this.refreshRelease( + this.ctx.release.bumpp.tag!.toString().replaceAll("%s", version), + `Release v${version}`, + this.ctx.release.gitee.releaseNote(this.ctx), + ); + await this.refreshAttach(release.id!, join(dist, `${xpiName}.xpi`)); + } + + async refreshUpdateManifest() { + const updater = this.ctx.release.gitee.updater; + if (!updater) { + this.logger.debug( + `Skip refresh update.json because release.gitee.updater = false`, + ); + return; + } + + const { dist, version } = this.ctx; + const assets = globSync(`${dist}/update*.json`).map(p => basename(p)); + const release = await this.refreshRelease( + updater, + "Zotero Auto Update Manifest", + `This release is used to host \`update.json\`, Updated in UTC ${new Date().toISOString()} for v${version}.`, + true, + ); + for (const asset of assets) + await this.refreshAttach(release.id!, join(dist, asset)); + } + + async refreshRelease( + tag: string, + name: string, + body: string, + prerelease = false, + ) { + const old = await this.client.getV5ReposOwnerRepoReleasesTagsTag({ + ...this.remote, + tag, + }); + if (old?.id) { + return this.client.patchV5ReposOwnerRepoReleasesId({ + ...this.remote, + name, + body, + prerelease, + id: old.id, + tagName: tag, + }); + } + return this.client.postV5ReposOwnerRepoReleases({ + ...this.remote, + name, + body, + prerelease, + tagName: tag, + targetCommitish: "main", + }); + } + + async refreshAttach(releaseId: number, file: string) { + const assets + = await this.client.getV5ReposOwnerRepoReleasesReleaseIdAttachFiles({ + ...this.remote, + releaseId, + }); + const fileBuffer = fs.readFileSync(file); + // delete old assets, by file name + for (const asset of assets) { + if (asset.name === basename(file)) { + await this.client + .deleteV5ReposOwnerRepoReleasesReleaseIdAttachFilesAttachFileId({ + ...this.remote, + releaseId, + attachFileId: asset.id!, + }) + // "eat" all exceptions + .catch(e => this.logger.error(e)); + } + } + this.client.postV5ReposOwnerRepoReleasesReleaseIdAttachFiles({ + ...this.remote, + releaseId, + file: new File([fileBuffer], basename(file), { type: "application/octet-stream" }), + }); } get remote() { @@ -12,4 +118,43 @@ export default class Gitee extends ReleaseBase { repo, }; } + + private get token() { + if (!env.GITEE_TOKEN) + throw new Error("No GITEE_TOKEN provided!"); + return env.GITEE_TOKEN; + } + + // private getParams(params: object) { + // return { + // access_token: this.token, + // ...this.remote, + // ...params, + // }; + // } + + // _fetch = ofetch.create({ baseURL: "https://gitee.com/api/v5", params: { + // access_token: this.token, + // ...this.remote, + // } }); + + // /** + // * @see https://gitee.com/api/v5/swagger#/getV5ReposOwnerRepoReleasesTagsTag + // */ + // private async getReleaseByTag(tag: string): Promise<{ + // body: string; + // created_at: string; + // id: number; + // name: string; + // prerelease: boolean; + // tag_name: string; + // target_commitish: string; + // }> { + // // return (await _fetch(`/repos/{owner}/{repo}/releases/tags/{tag}`, { params: this.getParams({ tag }) })); + // return (await this._fetch(`/repos/{owner}/{repo}/releases/tags/{tag}`, { params: { tag } })); + // } + + // private async createRelease(tag_name: string, name: string, body: string, prerelease: boolean = false) { + // // + // } } diff --git a/packages/scaffold/src/core/releaser/index.ts b/packages/scaffold/src/core/releaser/index.ts index 8562137..428071d 100644 --- a/packages/scaffold/src/core/releaser/index.ts +++ b/packages/scaffold/src/core/releaser/index.ts @@ -62,8 +62,8 @@ export default class Release extends Base { } if (isGiteeEnabled) { - // const { default: Gitee } = await import("./gitee.js"); - // await new Gitee(this.ctx).run(); + const { default: Gitee } = await import("./gitee.js"); + await new Gitee(this.ctx).run(); } // TODO: Publish to Zotero's official market diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9385266..46e8619 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -46,7 +46,7 @@ importers: version: 2.2.0(typescript@5.7.3) vitepress: specifier: ^1.6.3 - version: 1.6.3(@algolia/client-search@5.17.1)(@types/node@22.13.0)(postcss@8.4.49)(search-insights@2.17.3)(typescript@5.7.3) + version: 1.6.3(@algolia/client-search@5.17.1)(@types/node@22.13.0)(axios@1.7.7)(postcss@8.4.49)(search-insights@2.17.3)(typescript@5.7.3) zotero-plugin-scaffold: specifier: workspace:^ version: link:../packages/scaffold @@ -107,6 +107,9 @@ importers: specifier: ^1.1.0 version: 1.1.0 devDependencies: + '@gitee/typescript-sdk-v5': + specifier: ^5.4.86 + version: 5.4.86 '@types/adm-zip': specifier: ^0.5.7 version: 0.5.7 @@ -241,6 +244,10 @@ packages: '@antfu/install-pkg@1.0.0': resolution: {integrity: sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw==} + '@apidevtools/json-schema-ref-parser@11.6.1': + resolution: {integrity: sha512-DxjgKBCoyReu4p5HMvpmgSOfRhhBcuf5V5soDDRgOTZMwsA4KSFzol1abFZgiCTE11L2kKGca5Md9GwDdXVBwQ==} + engines: {node: '>= 16'} + '@babel/code-frame@7.26.2': resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} @@ -721,6 +728,21 @@ packages: '@floating-ui/utils@0.2.8': resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} + '@gitee/typescript-sdk-v5@5.4.86': + resolution: {integrity: sha512-Y+SFMcGUJUcYSiBwVtivp6BWpmoukuiDZKzrZUWMcjVdNyPUBMSZIUC66XmhQ/ZWfqGb9tVmA8H9L5u2PfxLGw==} + + '@hey-api/client-axios@0.3.4': + resolution: {integrity: sha512-9jyZb1kicWZoZwlu/2XnwRDQJsrGi+ExBuSn3liT5slQ6uRSbN5HYqZr1YzRy4fbAkxY9S2vFbqfdHniqWgGGg==} + peerDependencies: + axios: '>= 1.0.0 < 2' + + '@hey-api/openapi-ts@0.43.2': + resolution: {integrity: sha512-o1/w+9tk1Ty/LJBy/VrHvDzA8YkCSRi1rr567aABlLwa9pbl2WP5fsUQbXGOgZ1HsLieVXo6qwcNMNqC6v2oxw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + typescript: ^5.x + '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -769,6 +791,9 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jsdevtools/ono@7.1.3': + resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1536,6 +1561,10 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + are-docs-informative@0.0.2: resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} engines: {node: '>=14'} @@ -1550,6 +1579,9 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + autoprefixer@10.4.20: resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} engines: {node: ^10 || ^12 || >=14} @@ -1557,12 +1589,19 @@ packages: peerDependencies: postcss: ^8.1.0 + axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} before-after-hook@3.0.2: resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==} + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + birpc@0.2.19: resolution: {integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==} @@ -1596,6 +1635,9 @@ packages: engines: {node: '>=18'} hasBin: true + c12@1.10.0: + resolution: {integrity: sha512-0SsG7UDhoRWcuSvKWHaXmu5uNjDCDN3nkQLRL4Q42IlFy+ze58FcCoI3uPwINXinkz7ZinbhEgyzYFw9u9ZV8g==} + c12@2.0.1: resolution: {integrity: sha512-Z4JgsKXHG37C6PYUtIxCfLJZvo6FyhHJoClwwb9ftUkLpPSkuYqn6Tr+vnaN8hymm0kIbcg6Ey3kv/Q71k5w/A==} peerDependencies: @@ -1612,6 +1654,10 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} + camelcase@8.0.0: + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} + engines: {node: '>=16'} + caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} @@ -1646,6 +1692,10 @@ packages: resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} engines: {node: '>= 16'} + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + chokidar@4.0.3: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} @@ -1690,9 +1740,17 @@ packages: colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + commander@12.0.0: + resolution: {integrity: sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==} + engines: {node: '>=18'} + commander@13.1.0: resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} engines: {node: '>=18'} @@ -1889,6 +1947,10 @@ packages: defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -2266,6 +2328,19 @@ packages: focus-trap@7.6.4: resolution: {integrity: sha512-xx560wGBk7seZ6y933idtjJQc1l+ck+pI3sKvhKozdBV1dRZoKhkW5xoCaFv9tQiX5RH1xfSxjuNu6g+lmN/gw==} + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} + engines: {node: '>= 6'} + fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} @@ -2416,6 +2491,10 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + is-builtin-module@3.2.1: resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} engines: {node: '>=6'} @@ -2751,6 +2830,14 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} @@ -2854,6 +2941,10 @@ packages: resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} engines: {node: ^16.14.0 || >=18.0.0} + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + normalize-range@0.1.2: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} @@ -3202,6 +3293,9 @@ packages: property-information@6.5.0: resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -3228,6 +3322,10 @@ packages: resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} engines: {node: '>=18'} + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + readdirp@4.0.1: resolution: {integrity: sha512-GkMg9uOTpIWWKbSsgwb5fA4EavTR+SG/PMPoAY8hkhHfEEY0/vqljY+XHqtDf2cr2IJtoNRDbrrEpZUiZCkYRw==} engines: {node: '>= 14.16.0'} @@ -3969,6 +4067,12 @@ snapshots: package-manager-detector: 0.2.8 tinyexec: 0.3.2 + '@apidevtools/json-schema-ref-parser@11.6.1': + dependencies: + '@jsdevtools/ono': 7.1.3 + '@types/json-schema': 7.0.15 + js-yaml: 4.1.0 + '@babel/code-frame@7.26.2': dependencies: '@babel/helper-validator-identifier': 7.25.9 @@ -4353,6 +4457,28 @@ snapshots: '@floating-ui/utils@0.2.8': {} + '@gitee/typescript-sdk-v5@5.4.86': + dependencies: + '@hey-api/client-axios': 0.3.4(axios@1.7.7) + '@hey-api/openapi-ts': 0.43.2(typescript@5.7.3) + axios: 1.7.7 + typescript: 5.7.3 + transitivePeerDependencies: + - debug + + '@hey-api/client-axios@0.3.4(axios@1.7.7)': + dependencies: + axios: 1.7.7 + + '@hey-api/openapi-ts@0.43.2(typescript@5.7.3)': + dependencies: + '@apidevtools/json-schema-ref-parser': 11.6.1 + c12: 1.10.0 + camelcase: 8.0.0 + commander: 12.0.0 + handlebars: 4.7.8 + typescript: 5.7.3 + '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.6': @@ -4391,6 +4517,8 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@jsdevtools/ono@7.1.3': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -5175,12 +5303,13 @@ snapshots: transitivePeerDependencies: - typescript - '@vueuse/integrations@12.5.0(focus-trap@7.6.4)(typescript@5.7.3)': + '@vueuse/integrations@12.5.0(axios@1.7.7)(focus-trap@7.6.4)(typescript@5.7.3)': dependencies: '@vueuse/core': 12.5.0(typescript@5.7.3) '@vueuse/shared': 12.5.0(typescript@5.7.3) vue: 3.5.13(typescript@5.7.3) optionalDependencies: + axios: 1.7.7 focus-trap: 7.6.4 transitivePeerDependencies: - typescript @@ -5242,6 +5371,11 @@ snapshots: ansi-styles@6.2.1: {} + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + are-docs-informative@0.0.2: {} argparse@2.0.1: {} @@ -5250,6 +5384,8 @@ snapshots: assertion-error@2.0.1: {} + asynckit@0.4.0: {} + autoprefixer@10.4.20(postcss@8.4.49): dependencies: browserslist: 4.24.3 @@ -5260,10 +5396,20 @@ snapshots: postcss: 8.4.49 postcss-value-parser: 4.2.0 + axios@1.7.7: + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.1 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + balanced-match@1.0.2: {} before-after-hook@3.0.2: {} + binary-extensions@2.3.0: {} + birpc@0.2.19: {} boolbase@1.0.0: {} @@ -5307,6 +5453,21 @@ snapshots: transitivePeerDependencies: - magicast + c12@1.10.0: + dependencies: + chokidar: 3.6.0 + confbox: 0.1.8 + defu: 6.1.4 + dotenv: 16.4.5 + giget: 1.2.3 + jiti: 1.21.7 + mlly: 1.7.4 + ohash: 1.1.4 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.3.0 + rc9: 2.1.2 + c12@2.0.1(magicast@0.3.5): dependencies: chokidar: 4.0.3 @@ -5328,6 +5489,8 @@ snapshots: callsites@3.1.0: {} + camelcase@8.0.0: {} + caniuse-api@3.0.0: dependencies: browserslist: 4.24.3 @@ -5362,6 +5525,18 @@ snapshots: check-error@2.1.1: {} + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + chokidar@4.0.3: dependencies: readdirp: 4.0.1 @@ -5403,8 +5578,14 @@ snapshots: colorette@2.0.20: {} + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + comma-separated-tokens@2.0.3: {} + commander@12.0.0: {} + commander@13.1.0: {} commander@7.2.0: {} @@ -5611,6 +5792,8 @@ snapshots: defu@6.1.4: {} + delayed-stream@1.0.0: {} + dequal@2.0.3: {} destr@2.0.3: {} @@ -6122,6 +6305,14 @@ snapshots: dependencies: tabbable: 6.2.0 + follow-redirects@1.15.9: {} + + form-data@4.0.1: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + fraction.js@4.3.7: {} fs-extra@11.3.0: @@ -6264,6 +6455,10 @@ snapshots: is-arrayish@0.2.1: {} + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + is-builtin-module@3.2.1: dependencies: builtin-modules: 3.3.0 @@ -6760,6 +6955,12 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + mimic-fn@4.0.0: {} mimic-function@5.0.1: {} @@ -6855,6 +7056,8 @@ snapshots: semver: 7.6.3 validate-npm-package-license: 3.0.4 + normalize-path@3.0.0: {} + normalize-range@0.1.2: {} npm-run-path@5.3.0: @@ -7187,6 +7390,8 @@ snapshots: property-information@6.5.0: {} + proxy-from-env@1.1.0: {} + punycode@2.3.1: {} queue-microtask@1.2.3: {} @@ -7223,6 +7428,10 @@ snapshots: type-fest: 4.26.1 unicorn-magic: 0.1.0 + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + readdirp@4.0.1: {} refa@0.12.1: @@ -7722,7 +7931,7 @@ snapshots: '@types/node': 22.13.0 fsevents: 2.3.3 - vitepress@1.6.3(@algolia/client-search@5.17.1)(@types/node@22.13.0)(postcss@8.4.49)(search-insights@2.17.3)(typescript@5.7.3): + vitepress@1.6.3(@algolia/client-search@5.17.1)(@types/node@22.13.0)(axios@1.7.7)(postcss@8.4.49)(search-insights@2.17.3)(typescript@5.7.3): dependencies: '@docsearch/css': 3.8.2 '@docsearch/js': 3.8.2(@algolia/client-search@5.17.1)(search-insights@2.17.3) @@ -7735,7 +7944,7 @@ snapshots: '@vue/devtools-api': 7.7.0 '@vue/shared': 3.5.13 '@vueuse/core': 12.5.0(typescript@5.7.3) - '@vueuse/integrations': 12.5.0(focus-trap@7.6.4)(typescript@5.7.3) + '@vueuse/integrations': 12.5.0(axios@1.7.7)(focus-trap@7.6.4)(typescript@5.7.3) focus-trap: 7.6.4 mark.js: 8.11.1 minisearch: 7.1.1