diff --git a/index.js b/index.js index dce3fd9..16a9e6f 100644 --- a/index.js +++ b/index.js @@ -1,25 +1,24 @@ -const { app, BrowserWindow } = require('electron') -let path = require('path'); +const Koa = require('koa'); +const app = new Koa(); +const static = require('koa-static') +app.use(static("./view/dist")) +const { koaBody } = require('koa-body'); +const KoaSSEStream = require('koa-sse-stream'); +app.use(koaBody()); +app.use(async (ctx, next) => { + ctx.set('Access-Control-Allow-Origin', '*'); + ctx.set('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With'); + ctx.set('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS'); + if (ctx.method == 'OPTIONS') { + ctx.body = 200; + } else { + await next(); + } +}); -const createWindow = () => { - const win = new BrowserWindow({ - width: 1000, - height: 800, - webPreferences: { - preload: path.join(__dirname, '/util/preload.js'), - sandbox: false, - allowRunningInsecureContent: true, - webSecurity: false, - contextIsolation: false - } - }) - win.loadFile('./view/dist/index.html') - // win.loadURL("http://localhost:5173/") -} -// app.whenReady().then(() => { -// createWindow() -// }) -app.on('ready', function () { - createWindow() -}); \ No newline at end of file +const index = require("./router/index.js") +app.use(index.routes()).use(index.allowedMethods()) + + +app.listen(3050, "0.0.0.0"); \ No newline at end of file diff --git a/package.json b/package.json index aca98dd..e71f92f 100644 --- a/package.json +++ b/package.json @@ -4,17 +4,20 @@ "description": "", "main": "index.js", "scripts": { - "start": "electron ." + "start": "node index.js" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "axios": "^1.4.0", - "puppeteer": "^20.4.0" - }, - "devDependencies": { - "electron": "^25.1.0" + "koa": "^2.14.2", + "koa-body": "^6.0.1", + "koa-router": "^12.0.0", + "koa-sse-stream": "^0.2.0", + "koa-static": "^5.0.0", + "koa-websocket": "^7.0.0", + "puppeteer": "^20.7.1" }, "bin": "./index.js", "pkg": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9767450..67f3308 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,61 +4,54 @@ dependencies: axios: specifier: ^1.4.0 version: 1.4.0 - esm: - specifier: ^3.2.25 - version: 3.2.25 + koa: + specifier: ^2.14.2 + version: 2.14.2 + koa-body: + specifier: ^6.0.1 + version: 6.0.1 + koa-router: + specifier: ^12.0.0 + version: 12.0.0 + koa-sse-stream: + specifier: ^0.2.0 + version: 0.2.0 + koa-static: + specifier: ^5.0.0 + version: 5.0.0 + koa-websocket: + specifier: ^7.0.0 + version: 7.0.0 puppeteer: - specifier: ^20.4.0 - version: 20.4.0 - -devDependencies: - electron: - specifier: ^25.1.0 - version: 25.1.0 + specifier: ^20.7.1 + version: 20.7.1 packages: - /@babel/code-frame@7.21.4: - resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} + /@babel/code-frame@7.22.5: + resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.18.6 + '@babel/highlight': 7.22.5 dev: false - /@babel/helper-validator-identifier@7.19.1: - resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + /@babel/helper-validator-identifier@7.22.5: + resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} engines: {node: '>=6.9.0'} dev: false - /@babel/highlight@7.18.6: - resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + /@babel/highlight@7.22.5: + resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.19.1 + '@babel/helper-validator-identifier': 7.22.5 chalk: 2.4.2 js-tokens: 4.0.0 dev: false - /@electron/get@2.0.2: - resolution: {integrity: sha512-eFZVFoRXb3GFGd7Ak7W4+6jBl9wBtiZ4AaYOse97ej6mKj5tkyO0dUnUChs1IhJZtx1BENo4/p4WUTXpi6vT+g==} - engines: {node: '>=12'} - dependencies: - debug: 4.3.4 - env-paths: 2.2.1 - fs-extra: 8.1.0 - got: 11.8.6 - progress: 2.0.3 - semver: 6.3.0 - sumchecker: 3.0.1 - optionalDependencies: - global-agent: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@puppeteer/browsers@1.4.0: - resolution: {integrity: sha512-HiRpoc15NhFwoR1IjN3MkMsqeAfRQKNzbhWVV+0BfvybEhjWSyRNQMC0ohMhkFhzoGnFoS59WlrJCGLPky/89g==} - engines: {node: '>=16.0.0'} + /@puppeteer/browsers@1.4.1: + resolution: {integrity: sha512-H43VosMzywHCcYcgv0GXXopvwnV21Ud9g2aXbPlQUJj1Xcz9V0wBwHeFz6saFhx/3VKisZfI1GEKEOhQCau7Vw==} + engines: {node: '>=16.3.0'} hasBin: true peerDependencies: typescript: '>= 4.7.4' @@ -69,7 +62,7 @@ packages: debug: 4.3.4 extract-zip: 2.0.1 progress: 2.0.3 - proxy-agent: 6.2.0 + proxy-agent: 6.2.1 tar-fs: 2.1.1 unbzip2-stream: 1.4.3 yargs: 17.7.1 @@ -77,57 +70,150 @@ packages: - supports-color dev: false - /@sindresorhus/is@4.6.0: - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} - engines: {node: '>=10'} - dev: true - - /@szmarczak/http-timer@4.0.6: - resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} - engines: {node: '>=10'} + /@types/accepts@1.3.5: + resolution: {integrity: sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==} dependencies: - defer-to-connect: 2.0.1 - dev: true + '@types/node': 20.3.1 + dev: false - /@types/cacheable-request@6.0.3: - resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + /@types/body-parser@1.19.2: + resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: - '@types/http-cache-semantics': 4.0.1 - '@types/keyv': 3.1.4 - '@types/node': 20.2.5 - '@types/responselike': 1.0.0 - dev: true + '@types/connect': 3.4.35 + '@types/node': 20.3.1 + dev: false - /@types/http-cache-semantics@4.0.1: - resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} - dev: true - - /@types/keyv@3.1.4: - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + /@types/co-body@6.1.0: + resolution: {integrity: sha512-3e0q2jyDAnx/DSZi0z2H0yoZ2wt5yRDZ+P7ymcMObvq0ufWRT4tsajyO+Q1VwVWiv9PRR4W3YEjEzBjeZlhF+w==} dependencies: - '@types/node': 20.2.5 - dev: true + '@types/node': 20.3.1 + '@types/qs': 6.9.7 + dev: false - /@types/node@18.16.17: - resolution: {integrity: sha512-QAkjjRA1N7gPJeAP4WLXZtYv6+eMXFNviqktCDt4GLcmCugMr5BcRHfkOjCQzvCsnMp+L79a54zBkbw356xv9Q==} - dev: true - - /@types/node@20.2.5: - resolution: {integrity: sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==} - - /@types/responselike@1.0.0: - resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} + /@types/connect@3.4.35: + resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 20.2.5 - dev: true + '@types/node': 20.3.1 + dev: false + + /@types/content-disposition@0.5.5: + resolution: {integrity: sha512-v6LCdKfK6BwcqMo+wYW05rLS12S0ZO0Fl4w1h4aaZMD7bqT3gVUns6FvLJKGZHQmYn3SX55JWGpziwJRwVgutA==} + dev: false + + /@types/cookies@0.7.7: + resolution: {integrity: sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==} + dependencies: + '@types/connect': 3.4.35 + '@types/express': 4.17.17 + '@types/keygrip': 1.0.2 + '@types/node': 20.3.1 + dev: false + + /@types/express-serve-static-core@4.17.35: + resolution: {integrity: sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==} + dependencies: + '@types/node': 20.3.1 + '@types/qs': 6.9.7 + '@types/range-parser': 1.2.4 + '@types/send': 0.17.1 + dev: false + + /@types/express@4.17.17: + resolution: {integrity: sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==} + dependencies: + '@types/body-parser': 1.19.2 + '@types/express-serve-static-core': 4.17.35 + '@types/qs': 6.9.7 + '@types/serve-static': 1.15.1 + dev: false + + /@types/formidable@2.0.6: + resolution: {integrity: sha512-L4HcrA05IgQyNYJj6kItuIkXrInJvsXTPC5B1i64FggWKKqSL+4hgt7asiSNva75AoLQjq29oPxFfU4GAQ6Z2w==} + dependencies: + '@types/node': 20.3.1 + dev: false + + /@types/http-assert@1.5.3: + resolution: {integrity: sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==} + dev: false + + /@types/http-errors@2.0.1: + resolution: {integrity: sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==} + dev: false + + /@types/keygrip@1.0.2: + resolution: {integrity: sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==} + dev: false + + /@types/koa-compose@3.2.5: + resolution: {integrity: sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==} + dependencies: + '@types/koa': 2.13.6 + dev: false + + /@types/koa@2.13.6: + resolution: {integrity: sha512-diYUfp/GqfWBAiwxHtYJ/FQYIXhlEhlyaU7lB/bWQrx4Il9lCET5UwpFy3StOAohfsxxvEQ11qIJgT1j2tfBvw==} + dependencies: + '@types/accepts': 1.3.5 + '@types/content-disposition': 0.5.5 + '@types/cookies': 0.7.7 + '@types/http-assert': 1.5.3 + '@types/http-errors': 2.0.1 + '@types/keygrip': 1.0.2 + '@types/koa-compose': 3.2.5 + '@types/node': 20.3.1 + dev: false + + /@types/mime@1.3.2: + resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==} + dev: false + + /@types/mime@3.0.1: + resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} + dev: false + + /@types/node@20.3.1: + resolution: {integrity: sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==} + dev: false + + /@types/qs@6.9.7: + resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} + dev: false + + /@types/range-parser@1.2.4: + resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} + dev: false + + /@types/send@0.17.1: + resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==} + dependencies: + '@types/mime': 1.3.2 + '@types/node': 20.3.1 + dev: false + + /@types/serve-static@1.15.1: + resolution: {integrity: sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==} + dependencies: + '@types/mime': 3.0.1 + '@types/node': 20.3.1 + dev: false /@types/yauzl@2.10.0: resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} requiresBuild: true dependencies: - '@types/node': 20.2.5 + '@types/node': 20.3.1 + dev: false optional: true + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + dev: false + /acorn-walk@8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} @@ -171,11 +257,15 @@ packages: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: false + /asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + dev: false + /ast-types@0.13.4: resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} engines: {node: '>=4'} dependencies: - tslib: 2.5.2 + tslib: 2.5.3 dev: false /asynckit@0.4.0: @@ -209,13 +299,9 @@ packages: readable-stream: 3.6.2 dev: false - /boolean@3.2.0: - resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} - dev: true - optional: true - /buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + dev: false /buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} @@ -224,23 +310,25 @@ packages: ieee754: 1.2.1 dev: false - /cacheable-lookup@5.0.4: - resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} - engines: {node: '>=10.6.0'} - dev: true + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + dev: false - /cacheable-request@7.0.4: - resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} - engines: {node: '>=8'} + /cache-content-type@1.0.1: + resolution: {integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==} + engines: {node: '>= 6.0.0'} dependencies: - clone-response: 1.0.3 - get-stream: 5.2.0 - http-cache-semantics: 4.1.1 - keyv: 4.5.2 - lowercase-keys: 2.0.0 - normalize-url: 6.1.0 - responselike: 2.0.1 - dev: true + mime-types: 2.1.35 + ylru: 1.3.2 + dev: false + + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + dev: false /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -260,12 +348,12 @@ packages: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} dev: false - /chromium-bidi@0.4.10(devtools-protocol@0.0.1120988): - resolution: {integrity: sha512-ngdRIq/f5G3nIOz1M0MtCABCTezr79MBCrJ09K2xRk+hTZQGTH8JIeFbgQmVvNPBMQblh7ROfJnSzsE07YpFfg==} + /chromium-bidi@0.4.11(devtools-protocol@0.0.1135028): + resolution: {integrity: sha512-p03ajLhlQ5gebw3cmbDBFmBc2wnJM5dnXS8Phu6mblGn/KQd76yOVL5VwE0VAisa7oazNfKGTaXlIZ8Q5Bb9OA==} peerDependencies: devtools-protocol: '*' dependencies: - devtools-protocol: 0.0.1120988 + devtools-protocol: 0.0.1135028 mitt: 3.0.0 dev: false @@ -278,11 +366,19 @@ packages: wrap-ansi: 7.0.0 dev: false - /clone-response@1.0.3: - resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + /co-body@6.1.0: + resolution: {integrity: sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==} dependencies: - mimic-response: 1.0.1 - dev: true + inflation: 2.0.0 + qs: 6.11.2 + raw-body: 2.5.2 + type-is: 1.6.18 + dev: false + + /co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + dev: false /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -312,8 +408,28 @@ packages: delayed-stream: 1.0.0 dev: false - /cosmiconfig@8.1.3: - resolution: {integrity: sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==} + /content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + dependencies: + safe-buffer: 5.2.1 + dev: false + + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + dev: false + + /cookies@0.8.0: + resolution: {integrity: sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==} + engines: {node: '>= 0.8'} + dependencies: + depd: 2.0.0 + keygrip: 1.1.0 + dev: false + + /cosmiconfig@8.2.0: + resolution: {integrity: sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==} engines: {node: '>=14'} dependencies: import-fresh: 3.3.0 @@ -335,6 +451,17 @@ packages: engines: {node: '>= 14'} dev: false + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: false + /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -345,32 +472,16 @@ packages: optional: true dependencies: ms: 2.1.2 + dev: false - /decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - dependencies: - mimic-response: 3.1.0 - dev: true + /deep-equal@1.0.1: + resolution: {integrity: sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==} + dev: false /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: false - /defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - dev: true - - /define-properties@1.2.0: - resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} - engines: {node: '>= 0.4'} - dependencies: - has-property-descriptors: 1.0.0 - object-keys: 1.1.1 - dev: true - optional: true - /degenerator@4.0.2: resolution: {integrity: sha512-HKwIFvZROUMfH3qI3gBpD61BYh7q3c3GXD5UGZzoVNJwVSYgZKvYl1fRMXc9ozoTxl/VZxKJ5v/bA+19tywFiw==} engines: {node: '>= 14'} @@ -386,41 +497,58 @@ packages: engines: {node: '>=0.4.0'} dev: false - /detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - dev: true - optional: true - - /devtools-protocol@0.0.1120988: - resolution: {integrity: sha512-39fCpE3Z78IaIPChJsP6Lhmkbf4dWXOmzLk/KFTdRkNk/0JymRIfUynDVRndV9HoDz8PyalK1UH21ST/ivwW5Q==} + /delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} dev: false - /electron@25.1.0: - resolution: {integrity: sha512-VKk4G/0euO7ysMKQKHXmI4d3/qR4uHsAtVFXK2WfQUVxBmc160OAm2R6PN9/EXmgXEioKQBtbc2/lvWyYpDbuA==} - engines: {node: '>= 12.20.55'} - hasBin: true - requiresBuild: true + /depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + dev: false + + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dev: false + + /destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dev: false + + /devtools-protocol@0.0.1135028: + resolution: {integrity: sha512-jEcNGrh6lOXNRJvZb9RjeevtZGrgugPKSMJZxfyxWQnhlKawMPhMtk/dfC+Z/6xNXExlzTKlY5LzIAK/fRpQIw==} + dev: false + + /dezalgo@1.0.4: + resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} dependencies: - '@electron/get': 2.0.2 - '@types/node': 18.16.17 - extract-zip: 2.0.1 - transitivePeerDependencies: - - supports-color - dev: true + asap: 2.0.6 + wrappy: 1.0.2 + dev: false + + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + dev: false + + /emitter-component@1.1.1: + resolution: {integrity: sha512-G+mpdiAySMuB7kesVRLuyvYRqDmshB7ReKEVuyBPkzQlmiDiLrt7hHHIy4Aff552bgknVN7B2/d3lzhGO5dvpQ==} + dev: false /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: false + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + dev: false + /end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: once: 1.4.0 - - /env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} - dev: true + dev: false /error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -428,27 +556,20 @@ packages: is-arrayish: 0.2.1 dev: false - /es6-error@4.1.1: - resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} - dev: true - optional: true - /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} dev: false + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + dev: false + /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} dev: false - /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - dev: true - optional: true - /escodegen@1.14.3: resolution: {integrity: sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==} engines: {node: '>=4.0'} @@ -462,11 +583,6 @@ packages: source-map: 0.6.1 dev: false - /esm@3.2.25: - resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} - engines: {node: '>=6'} - dev: false - /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} @@ -495,6 +611,7 @@ packages: '@types/yauzl': 2.10.0 transitivePeerDependencies: - supports-color + dev: false /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} @@ -504,6 +621,7 @@ packages: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} dependencies: pend: 1.2.0 + dev: false /follow-redirects@1.15.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} @@ -524,6 +642,20 @@ packages: mime-types: 2.1.35 dev: false + /formidable@2.1.1: + resolution: {integrity: sha512-0EcS9wCFEzLvfiks7omJ+SiYJAiD+TzK4Pcw1UlUoGnhUxDcMKjt0P7x8wEb0u6OHu8Nb98WG3nxtlF5C7bvUQ==} + dependencies: + dezalgo: 1.0.4 + hexoid: 1.0.0 + once: 1.4.0 + qs: 6.11.2 + dev: false + + /fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + dev: false + /fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} dev: false @@ -535,11 +667,11 @@ packages: graceful-fs: 4.2.11 jsonfile: 4.0.0 universalify: 0.1.2 + dev: false /function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - dev: true - optional: true + dev: false /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} @@ -553,14 +685,14 @@ packages: has: 1.0.3 has-proto: 1.0.1 has-symbols: 1.0.3 - dev: true - optional: true + dev: false /get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} dependencies: pump: 3.0.0 + dev: false /get-uri@6.0.1: resolution: {integrity: sha512-7ZqONUVqaabogsYNWlYj0t3YZaL6dhuEueZXGF+/YVmf6dHmaFg8/6psJKqhx9QykIDKzpGcy2cn4oV4YC7V/Q==} @@ -574,92 +706,82 @@ packages: - supports-color dev: false - /global-agent@3.0.0: - resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} - engines: {node: '>=10.0'} - requiresBuild: true - dependencies: - boolean: 3.2.0 - es6-error: 4.1.1 - matcher: 3.0.0 - roarr: 2.15.4 - semver: 7.5.1 - serialize-error: 7.0.1 - dev: true - optional: true - - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} - dependencies: - define-properties: 1.2.0 - dev: true - optional: true - - /got@11.8.6: - resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} - engines: {node: '>=10.19.0'} - dependencies: - '@sindresorhus/is': 4.6.0 - '@szmarczak/http-timer': 4.0.6 - '@types/cacheable-request': 6.0.3 - '@types/responselike': 1.0.0 - 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 - dev: true - /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: false /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} dev: false - /has-property-descriptors@1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} - dependencies: - get-intrinsic: 1.2.1 - dev: true - optional: true - /has-proto@1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} engines: {node: '>= 0.4'} - dev: true - optional: true + dev: false /has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} - dev: true - optional: true + dev: false + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: false /has@1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 - dev: true - optional: true + dev: false - /http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - dev: true + /hexoid@1.0.0: + resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==} + engines: {node: '>=8'} + dev: false - /http-proxy-agent@6.1.1: - resolution: {integrity: sha512-JRCz+4Whs6yrrIoIlrH+ZTmhrRwtMnmOHsHn8GFEn9O2sVfSE+DAZ3oyyGIKF8tjJEeSJmP89j7aTjVsSqsU0g==} - engines: {node: '>= 14'} + /http-assert@1.5.0: + resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==} + engines: {node: '>= 0.8'} dependencies: - agent-base: 7.1.0 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color + deep-equal: 1.0.1 + http-errors: 1.8.1 + dev: false + + /http-errors@1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: 1.5.0 + dev: false + + /http-errors@1.8.1: + resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} + engines: {node: '>= 0.6'} + dependencies: + depd: 1.1.2 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 1.5.0 + toidentifier: 1.0.1 + dev: false + + /http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 dev: false /http-proxy-agent@7.0.0: @@ -672,24 +794,6 @@ packages: - supports-color dev: false - /http2-wrapper@1.0.3: - resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} - engines: {node: '>=10.19.0'} - dependencies: - quick-lru: 5.1.1 - resolve-alpn: 1.2.1 - dev: true - - /https-proxy-agent@6.2.1: - resolution: {integrity: sha512-ONsE3+yfZF2caH5+bJlcddtWqNI3Gvs5A38+ngvljxaBiRXRswym2c7yf8UAeFpRFKjFNHIFEHqR/OLAWJzyiA==} - engines: {node: '>= 14'} - dependencies: - agent-base: 7.1.0 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: false - /https-proxy-agent@7.0.0: resolution: {integrity: sha512-0euwPCRyAPSgGdzD1IVN9nJYHtBhJwb6XPfbpQcYbPCwrBidX6GzxmchnaF4sfF/jPb74Ojx5g4yTg3sixlyPw==} engines: {node: '>= 14'} @@ -700,6 +804,13 @@ packages: - supports-color dev: false + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: false + /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: false @@ -712,6 +823,15 @@ packages: resolve-from: 4.0.0 dev: false + /inflation@2.0.0: + resolution: {integrity: sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw==} + engines: {node: '>= 0.8.0'} + dev: false + + /inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + dev: false + /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: false @@ -733,6 +853,13 @@ packages: engines: {node: '>=8'} dev: false + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: false @@ -744,29 +871,126 @@ packages: argparse: 2.0.1 dev: false - /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - dev: true - /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: false - /json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - dev: true - optional: true - /jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} optionalDependencies: graceful-fs: 4.2.11 + dev: false - /keyv@4.5.2: - resolution: {integrity: sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==} + /keygrip@1.1.0: + resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} + engines: {node: '>= 0.6'} dependencies: - json-buffer: 3.0.1 - dev: true + tsscmp: 1.0.6 + dev: false + + /koa-body@6.0.1: + resolution: {integrity: sha512-M8ZvMD8r+kPHy28aWP9VxL7kY8oPWA+C7ZgCljrCMeaU7uX6wsIQgDHskyrAr9sw+jqnIXyv4Mlxri5R4InIJg==} + dependencies: + '@types/co-body': 6.1.0 + '@types/formidable': 2.0.6 + '@types/koa': 2.13.6 + co-body: 6.1.0 + formidable: 2.1.1 + zod: 3.21.4 + dev: false + + /koa-compose@4.1.0: + resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==} + dev: false + + /koa-convert@2.0.0: + resolution: {integrity: sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==} + engines: {node: '>= 10'} + dependencies: + co: 4.6.0 + koa-compose: 4.1.0 + dev: false + + /koa-router@12.0.0: + resolution: {integrity: sha512-zGrdiXygGYW8WvrzeGsHZvKnHs4DzyGoqJ9a8iHlRkiwuEAOAPyI27//OlhoWdgFAEIM3qbUgr0KCuRaP/TCag==} + engines: {node: '>= 12'} + dependencies: + http-errors: 2.0.0 + koa-compose: 4.1.0 + methods: 1.1.2 + path-to-regexp: 6.2.1 + dev: false + + /koa-send@5.0.1: + resolution: {integrity: sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==} + engines: {node: '>= 8'} + dependencies: + debug: 4.3.4 + http-errors: 1.8.1 + resolve-path: 1.4.0 + transitivePeerDependencies: + - supports-color + dev: false + + /koa-sse-stream@0.2.0: + resolution: {integrity: sha512-Dyp3YS5HfnpE17Mk8HWl+6IMVgO/VU5rGXPKjgej+BrfdZZfRv2AXAm6osd380xcjhcXJgaHg23ntdLbpjCIDQ==} + dependencies: + stream: 0.0.2 + dev: false + + /koa-static@5.0.0: + resolution: {integrity: sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==} + engines: {node: '>= 7.6.0'} + dependencies: + debug: 3.2.7 + koa-send: 5.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + /koa-websocket@7.0.0: + resolution: {integrity: sha512-MsHUFKqA4+j+0dpPKWtsvZfnpQ1NcgF+AaTZQZ4B3Xj/cWK31qqmKx9HnA5Gw1LV2aIDzqwy0IDBsZYRurTUAg==} + dependencies: + co: 4.6.0 + debug: 4.3.4 + koa-compose: 4.1.0 + ws: 8.13.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + + /koa@2.14.2: + resolution: {integrity: sha512-VFI2bpJaodz6P7x2uyLiX6RLYpZmOJqNmoCst/Yyd7hQlszyPwG/I9CQJ63nOtKSxpt5M7NH67V6nJL2BwCl7g==} + engines: {node: ^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4} + dependencies: + accepts: 1.3.8 + cache-content-type: 1.0.1 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookies: 0.8.0 + debug: 4.3.4 + delegates: 1.0.0 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + fresh: 0.5.2 + http-assert: 1.5.0 + http-errors: 1.8.1 + is-generator-function: 1.0.10 + koa-compose: 4.1.0 + koa-convert: 2.0.0 + on-finished: 2.4.1 + only: 0.0.2 + parseurl: 1.3.3 + statuses: 1.5.0 + type-is: 1.6.18 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: false /levn@0.3.0: resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} @@ -780,31 +1004,20 @@ packages: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: false - /lowercase-keys@2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} - dev: true - - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - dev: true - optional: true - /lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} dev: false - /matcher@3.0.0: - resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} - engines: {node: '>=10'} - dependencies: - escape-string-regexp: 4.0.0 - dev: true - optional: true + /media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + dev: false + + /methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + dev: false /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} @@ -818,16 +1031,6 @@ packages: mime-db: 1.52.0 dev: false - /mimic-response@1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} - dev: true - - /mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - dev: true - /mitt@3.0.0: resolution: {integrity: sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==} dev: false @@ -838,6 +1041,12 @@ packages: /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: false + + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + dev: false /netmask@2.0.2: resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} @@ -856,21 +1065,26 @@ packages: whatwg-url: 5.0.0 dev: false - /normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} - dev: true + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + dev: false - /object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - dev: true - optional: true + /on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: false /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 + dev: false + + /only@0.0.2: + resolution: {integrity: sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==} + dev: false /optionator@0.8.3: resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} @@ -884,11 +1098,6 @@ packages: word-wrap: 1.2.3 dev: false - /p-cancelable@2.1.1: - resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} - engines: {node: '>=8'} - dev: true - /pac-proxy-agent@6.0.3: resolution: {integrity: sha512-5Hr1KgPDoc21Vn3rsXBirwwDnF/iac1jN/zkpsOYruyT+ZgsUhUOgVwq3v9+ukjZd/yGm/0nzO1fDfl7rkGoHQ==} engines: {node: '>= 14'} @@ -924,12 +1133,26 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.21.4 + '@babel/code-frame': 7.22.5 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 dev: false + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + dev: false + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: false + + /path-to-regexp@6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + dev: false + /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -937,6 +1160,7 @@ packages: /pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + dev: false /prelude-ls@1.1.2: resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} @@ -946,15 +1170,16 @@ packages: /progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} + dev: false - /proxy-agent@6.2.0: - resolution: {integrity: sha512-g3rBHXPhEa0Z1nxZkirj0+US1SCcA67SnjpxbdZf7BloLdULEUCzbQozsq+wFwhmMeZegeZISDZjPFN/Ct9DaQ==} + /proxy-agent@6.2.1: + resolution: {integrity: sha512-OIbBKlRAT+ycCm6wAYIzMwPejzRtjy8F3QiDX0eKOA3e4pe3U9F/IvzcHP42bmgQxVv97juG+J8/gx+JIeCX/Q==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 debug: 4.3.4 - http-proxy-agent: 6.1.1 - https-proxy-agent: 6.2.1 + http-proxy-agent: 7.0.0 + https-proxy-agent: 7.0.0 lru-cache: 7.18.3 pac-proxy-agent: 6.0.3 proxy-from-env: 1.1.0 @@ -972,21 +1197,22 @@ packages: dependencies: end-of-stream: 1.4.4 once: 1.4.0 + dev: false - /puppeteer-core@20.4.0: - resolution: {integrity: sha512-fcL2fYQLFZEuIIDbMhvf6WF5rAcKXetsrjOxu6Br6FEAet7kEtJlCcrKmnz3pfqkwAIlihjuzwT5ys7jMWEx8A==} - engines: {node: '>=16.0.0'} + /puppeteer-core@20.7.1: + resolution: {integrity: sha512-f45j9JxImFaYndQYsFA39CEDKwpn1nAF/Iw7urznatjhaslSB/RfHG7sC7iPpDbmP+CLpPEkHhqNxqpaUDdTLw==} + engines: {node: '>=16.3.0'} peerDependencies: typescript: '>= 4.7.4' peerDependenciesMeta: typescript: optional: true dependencies: - '@puppeteer/browsers': 1.4.0 - chromium-bidi: 0.4.10(devtools-protocol@0.0.1120988) + '@puppeteer/browsers': 1.4.1 + chromium-bidi: 0.4.11(devtools-protocol@0.0.1135028) cross-fetch: 3.1.6 debug: 4.3.4 - devtools-protocol: 0.0.1120988 + devtools-protocol: 0.0.1135028 ws: 8.13.0 transitivePeerDependencies: - bufferutil @@ -995,13 +1221,14 @@ packages: - utf-8-validate dev: false - /puppeteer@20.4.0: - resolution: {integrity: sha512-0/lgDbbC2LX/vMQ6+cv/doQuguFAf4Ra52fyW5oBOpQd85SzPBtXg4yPk+VhUpgr+oaOVAIUkgvBs98E+8xhCw==} + /puppeteer@20.7.1: + resolution: {integrity: sha512-yIkba2PT6rkPw85gCAmbW6KO6VVFTdONnvQp8taeMZaOTUJ193nVajykD1jT3vFbjvwKz8te9nbBVb9ITQqbPA==} + engines: {node: '>=16.3.0'} requiresBuild: true dependencies: - '@puppeteer/browsers': 1.4.0 - cosmiconfig: 8.1.3 - puppeteer-core: 20.4.0 + '@puppeteer/browsers': 1.4.1 + cosmiconfig: 8.2.0 + puppeteer-core: 20.7.1 transitivePeerDependencies: - bufferutil - encoding @@ -1010,10 +1237,22 @@ packages: - utf-8-validate dev: false - /quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - dev: true + /qs@6.11.2: + resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.4 + dev: false + + /raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: false /readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} @@ -1029,64 +1268,42 @@ packages: engines: {node: '>=0.10.0'} dev: false - /resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - dev: true - /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} dev: false - /responselike@2.0.1: - resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + /resolve-path@1.4.0: + resolution: {integrity: sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==} + engines: {node: '>= 0.8'} dependencies: - lowercase-keys: 2.0.0 - dev: true - - /roarr@2.15.4: - resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} - engines: {node: '>=8.0'} - dependencies: - boolean: 3.2.0 - detect-node: 2.1.0 - globalthis: 1.0.3 - json-stringify-safe: 5.0.1 - semver-compare: 1.0.0 - sprintf-js: 1.1.2 - dev: true - optional: true + http-errors: 1.6.3 + path-is-absolute: 1.0.1 + dev: false /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: false - /semver-compare@1.0.0: - resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} - dev: true - optional: true + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: false - /semver@6.3.0: - resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} - hasBin: true - dev: true + /setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + dev: false - /semver@7.5.1: - resolution: {integrity: sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==} - engines: {node: '>=10'} - hasBin: true + /setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + dev: false + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: - lru-cache: 6.0.0 - dev: true - optional: true - - /serialize-error@7.0.1: - resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} - engines: {node: '>=10'} - dependencies: - type-fest: 0.13.1 - dev: true - optional: true + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + object-inspect: 1.12.3 + dev: false /smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} @@ -1119,10 +1336,21 @@ packages: dev: false optional: true - /sprintf-js@1.1.2: - resolution: {integrity: sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==} - dev: true - optional: true + /statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + dev: false + + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + dev: false + + /stream@0.0.2: + resolution: {integrity: sha512-gCq3NDI2P35B2n6t76YJuOp7d6cN/C7Rt0577l91wllh0sY9ZBuw9KaSGqH/b0hzn3CWWJbpbW0W0WvQ1H/Q7g==} + dependencies: + emitter-component: 1.1.1 + dev: false /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} @@ -1146,15 +1374,6 @@ packages: ansi-regex: 5.0.1 dev: false - /sumchecker@3.0.1: - resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} - engines: {node: '>= 8.0'} - dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -1186,12 +1405,22 @@ packages: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: false + /toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + dev: false + /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: false - /tslib@2.5.2: - resolution: {integrity: sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==} + /tslib@2.5.3: + resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==} + dev: false + + /tsscmp@1.0.6: + resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} + engines: {node: '>=0.6.x'} dev: false /type-check@0.3.2: @@ -1201,11 +1430,13 @@ packages: prelude-ls: 1.1.2 dev: false - /type-fest@0.13.1: - resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} - engines: {node: '>=10'} - dev: true - optional: true + /type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + dev: false /unbzip2-stream@1.4.3: resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} @@ -1217,11 +1448,22 @@ packages: /universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} + dev: false + + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + dev: false /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: false + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: false + /vm2@3.9.19: resolution: {integrity: sha512-J637XF0DHDMV57R6JyVsTak7nIL8gy5KH4r1HiwWLf/4GBbb5MKL5y7LpmF4A8E2nR6XmzpmMFQ7V7ppPTmUQg==} engines: {node: '>=6.0'} @@ -1258,6 +1500,7 @@ packages: /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: false /ws@8.13.0: resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} @@ -1277,11 +1520,6 @@ packages: engines: {node: '>=10'} dev: false - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: true - optional: true - /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -1305,3 +1543,13 @@ packages: dependencies: buffer-crc32: 0.2.13 fd-slicer: 1.1.0 + dev: false + + /ylru@1.3.2: + resolution: {integrity: sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==} + engines: {node: '>= 4.0.0'} + dev: false + + /zod@3.21.4: + resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} + dev: false diff --git a/router/index.js b/router/index.js new file mode 100644 index 0000000..45398c3 --- /dev/null +++ b/router/index.js @@ -0,0 +1,58 @@ +const Router = require("koa-router") +const { getQqListData } = require("../util/getList/qq") +const KoaSSEStream = require('koa-sse-stream'); +const { dowload } = require("../util/download"); + +const router = new Router() +const dowloadlist = [] + +router.get("/getQqList",async (ctx)=>{ + let url = ctx.query.url + let list = await getQqListData(url) + ctx.body = list +}) + +router.get("/startDown",async (ctx)=>{ + let title = ctx.query.title + let url = ctx.query.url + dowloadlist.push({ + title,url + }) + // startDown() + ctx.body={ + code:0, + msg:"添加成功" + } +}) +// 连接池 +const clientList = []; +// koa-sse-stream 配置 +const SSE_CONF = { + maxClients: 5, // 最大连接数 + pingInterval: 40000 // 重连时间 +} +router.get('/msg', KoaSSEStream(SSE_CONF), ctx => { + // 每次连接会进行一个 push + clientList.push(ctx.sse); +}) +let start = false +function startDown(){ + + dowload(dowloadlist[0],(data,isok)=>{ + clientList.forEach((i)=>{ + i.send(isok ? `${dowloadlist[0]}下载完成` : data ) + if(isok){ + dowloadlist.shift() + } + }) + }) +} +setInterval(()=>{ + if(dowloadlist.length != 0 && !start){ + start = true + startDown() + }else if(dowloadlist.length == 0){ + start = false + } +},1000) +module.exports = router \ No newline at end of file diff --git a/util/download.js b/util/download.js new file mode 100644 index 0000000..a1687bd --- /dev/null +++ b/util/download.js @@ -0,0 +1,23 @@ +const path = require('path') +const { getListData } = require(path.join(__dirname,'/getList/qq.js')); +const {dow} = require("./utils.js") + +// async function getlist (url) { +// let list = await getListData(url) +// return list +// // console.log('electron收到远端的传参', a); +// // callback('config result'); // 回调给远端的请求数据,如 config +// // ipcRenderer.send('close', 'args bbb'); // 比如收到请求关闭窗口 +// }; + + + + +function dowload(info,callback){ + console.log("开始") + dow(info,callback) +} + +module.exports = { + dowload +} \ No newline at end of file diff --git a/util/getList/qq.js b/util/getList/qq.js index a0254cc..cbd79b5 100644 --- a/util/getList/qq.js +++ b/util/getList/qq.js @@ -1,7 +1,7 @@ const puppeteer = require("puppeteer") const { seep } = require("../utils.js"); -async function getListData(url) { +async function getQqListData(url) { const browser = await puppeteer.launch({ // 关闭无头模式,方便我们看到这个无头浏览器执行的过程 headless: false, @@ -16,6 +16,17 @@ async function getListData(url) { let list = await page.evaluate(() => { return window.__PINIA__.episodeMain }) + // let qb = await page.$$(".b-btn--round") + await page.$$eval(".b-btn--round", (list) => { + console.log(list) + for (let i of list) { + if (i && i.innerText) { + if ("全部" == i.innerText.trim()) { + i.click() + } + } + } + }) for (let i of list.listData[0].tabs) { let text = i.text let more = await page.$(".b-tab__more") @@ -30,6 +41,16 @@ async function getListData(url) { } } }, text) + await page.$$eval(".b-tag-list__tag", (list, text) => { + console.log(list) + for (let i of list) { + if (i && i.innerText) { + if (text == i.innerText.trim()) { + i.click() + } + } + } + }, text) await seep(1000); } @@ -59,5 +80,5 @@ async function getListData(url) { } module.exports = { - getListData + getQqListData } \ No newline at end of file diff --git a/util/preload.js b/util/preload.js deleted file mode 100644 index 6c9a90c..0000000 --- a/util/preload.js +++ /dev/null @@ -1,20 +0,0 @@ -const path = require('path') -const { getListData } = require(path.join(__dirname,'/getList/qq.js')); -const {dow} = require("./utils.js") - -async function getlist (url) { - let list = await getListData(url) - return list - // console.log('electron收到远端的传参', a); - // callback('config result'); // 回调给远端的请求数据,如 config - // ipcRenderer.send('close', 'args bbb'); // 比如收到请求关闭窗口 -}; - -window.getlist = getlist - - - -window.dowload = function (info,callback){ - console.log("开始") - dow(info,callback) -} \ No newline at end of file diff --git a/util/utils.js b/util/utils.js index 0ef9e75..1884b58 100644 --- a/util/utils.js +++ b/util/utils.js @@ -12,7 +12,8 @@ function seep(time){ function dow(info,callback){ const lux = spawn("./bin/yt-dlp.exe", ['--cookies-from-browser', 'edge', '-P', 'D:/dl', '-o', info.title + '.mp4', info.url]) lux.stdout.on('data', (data) => { - callback(data,false) + console.log(String(data)) + callback(String(data),false) }); lux.on('close', (code) => { console.log("结束") diff --git a/view/dist/assets/index-54b3342f.js b/view/dist/assets/index-54b3342f.js new file mode 100644 index 0000000..3d621ea --- /dev/null +++ b/view/dist/assets/index-54b3342f.js @@ -0,0 +1,107 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))o(l);new MutationObserver(l=>{for(const r of l)if(r.type==="childList")for(const s of r.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&o(s)}).observe(document,{childList:!0,subtree:!0});function n(l){const r={};return l.integrity&&(r.integrity=l.integrity),l.referrerPolicy&&(r.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?r.credentials="include":l.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function o(l){if(l.ep)return;l.ep=!0;const r=n(l);fetch(l.href,r)}})();function Rl(e,t){const n=Object.create(null),o=e.split(",");for(let l=0;l!!n[l.toLowerCase()]:l=>!!n[l]}function Ke(e){if(Le(e)){const t={};for(let n=0;n{if(n){const o=n.split(OS);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function E(e){let t="";if(Ze(e))t=e;else if(Le(e))for(let n=0;nls(n,t))}const Oe=e=>Ze(e)?e:e==null?"":Le(e)||lt(e)&&(e.toString===By||!Ye(e.toString))?JSON.stringify(e,Ly,2):String(e),Ly=(e,t)=>t&&t.__v_isRef?Ly(e,t.value):ar(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,l])=>(n[`${o} =>`]=l,n),{})}:ju(t)?{[`Set(${t.size})`]:[...t.values()]}:lt(t)&&!Le(t)&&!Fy(t)?String(t):t,Vt=Object.freeze({}),Yr=Object.freeze([]),Tt=()=>{},Dy=()=>!1,BS=/^on[^a-z]/,ja=e=>BS.test(e),fu=e=>e.startsWith("onUpdate:"),Xt=Object.assign,Gf=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},FS=Object.prototype.hasOwnProperty,ht=(e,t)=>FS.call(e,t),Le=Array.isArray,ar=e=>Wa(e)==="[object Map]",ju=e=>Wa(e)==="[object Set]",yr=e=>Wa(e)==="[object Date]",Ye=e=>typeof e=="function",Ze=e=>typeof e=="string",ua=e=>typeof e=="symbol",lt=e=>e!==null&&typeof e=="object",rs=e=>lt(e)&&Ye(e.then)&&Ye(e.catch),By=Object.prototype.toString,Wa=e=>By.call(e),Gr=e=>Wa(e).slice(8,-1),Fy=e=>Wa(e)==="[object Object]",Xf=e=>Ze(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Ri=Rl(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),VS=Rl("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),Wu=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},zS=/-(\w)/g,Xn=Wu(e=>e.replace(zS,(t,n)=>n?n.toUpperCase():"")),HS=/\B([A-Z])/g,Io=Wu(e=>e.replace(HS,"-$1").toLowerCase()),El=Wu(e=>e.charAt(0).toUpperCase()+e.slice(1)),vl=Wu(e=>e?`on${El(e)}`:""),ca=(e,t)=>!Object.is(e,t),Dr=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},bd=e=>{const t=parseFloat(e);return isNaN(t)?e:t},KS=e=>{const t=Ze(e)?Number(e):NaN;return isNaN(t)?e:t};let Kh;const Vy=()=>Kh||(Kh=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function hu(e,...t){console.warn(`[Vue warn] ${e}`,...t)}let Fn;class zy{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Fn,!t&&Fn&&(this.index=(Fn.scopes||(Fn.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=Fn;try{return Fn=this,t()}finally{Fn=n}}else hu("cannot run an inactive effect scope.")}on(){Fn=this}off(){Fn=this.parent}stop(t){if(this._active){let n,o;for(n=0,o=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},jy=e=>(e.w&Tl)>0,Wy=e=>(e.n&Tl)>0,US=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let o=0;o{(d==="length"||d>=c)&&a.push(f)})}else switch(n!==void 0&&a.push(s.get(n)),t){case"add":Le(e)?Xf(n)&&a.push(s.get("length")):(a.push(s.get(ir)),ar(e)&&a.push(s.get(Cd)));break;case"delete":Le(e)||(a.push(s.get(ir)),ar(e)&&a.push(s.get(Cd)));break;case"set":ar(e)&&a.push(s.get(ir));break}const u={target:e,type:t,key:n,newValue:o,oldValue:l,oldTarget:r};if(a.length===1)a[0]&&Sd(a[0],u);else{const c=[];for(const f of a)f&&c.push(...f);Sd(Zf(c),u)}}function Sd(e,t){const n=Le(e)?e:[...e];for(const o of n)o.computed&&Wh(o,t);for(const o of n)o.computed||Wh(o,t)}function Wh(e,t){(e!==wn||e.allowRecurse)&&(e.onTrigger&&e.onTrigger(Xt({effect:e},t)),e.scheduler?e.scheduler():e.run())}function YS(e,t){var n;return(n=vu.get(e))===null||n===void 0?void 0:n.get(t)}const GS=Rl("__proto__,__v_isRef,__isVue"),Yy=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(ua)),XS=Uu(),ZS=Uu(!1,!0),JS=Uu(!0),QS=Uu(!0,!0),Uh=ek();function ek(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const o=bt(this);for(let r=0,s=this.length;r{e[t]=function(...n){_r();const o=bt(this)[t].apply(this,n);return $r(),o}}),e}function tk(e){const t=bt(this);return Ln(t,"has",e),t.hasOwnProperty(e)}function Uu(e=!1,t=!1){return function(o,l,r){if(l==="__v_isReactive")return!e;if(l==="__v_isReadonly")return e;if(l==="__v_isShallow")return t;if(l==="__v_raw"&&r===(e?t?nb:tb:t?eb:Qy).get(o))return o;const s=Le(o);if(!e){if(s&&ht(Uh,l))return Reflect.get(Uh,l,r);if(l==="hasOwnProperty")return tk}const a=Reflect.get(o,l,r);return(ua(l)?Yy.has(l):GS(l))||(e||Ln(o,"get",l),t)?a:Nt(a)?s&&Xf(l)?a:a.value:lt(a)?e?$s(a):$t(a):a}}const nk=Gy(),ok=Gy(!0);function Gy(e=!1){return function(n,o,l,r){let s=n[o];if(Ol(s)&&Nt(s)&&!Nt(l))return!1;if(!e&&(!mu(l)&&!Ol(l)&&(s=bt(s),l=bt(l)),!Le(n)&&Nt(s)&&!Nt(l)))return s.value=l,!0;const a=Le(n)&&Xf(o)?Number(o)e,qu=e=>Reflect.getPrototypeOf(e);function ci(e,t,n=!1,o=!1){e=e.__v_raw;const l=bt(e),r=bt(t);n||(t!==r&&Ln(l,"get",t),Ln(l,"get",r));const{has:s}=qu(l),a=o?Qf:n?ep:da;if(s.call(l,t))return a(e.get(t));if(s.call(l,r))return a(e.get(r));e!==l&&e.get(t)}function di(e,t=!1){const n=this.__v_raw,o=bt(n),l=bt(e);return t||(e!==l&&Ln(o,"has",e),Ln(o,"has",l)),e===l?n.has(e):n.has(e)||n.has(l)}function fi(e,t=!1){return e=e.__v_raw,!t&&Ln(bt(e),"iterate",ir),Reflect.get(e,"size",e)}function qh(e){e=bt(e);const t=bt(this);return qu(t).has.call(t,e)||(t.add(e),Zo(t,"add",e,e)),this}function Yh(e,t){t=bt(t);const n=bt(this),{has:o,get:l}=qu(n);let r=o.call(n,e);r?Jy(n,o,e):(e=bt(e),r=o.call(n,e));const s=l.call(n,e);return n.set(e,t),r?ca(t,s)&&Zo(n,"set",e,t,s):Zo(n,"add",e,t),this}function Gh(e){const t=bt(this),{has:n,get:o}=qu(t);let l=n.call(t,e);l?Jy(t,n,e):(e=bt(e),l=n.call(t,e));const r=o?o.call(t,e):void 0,s=t.delete(e);return l&&Zo(t,"delete",e,void 0,r),s}function Xh(){const e=bt(this),t=e.size!==0,n=ar(e)?new Map(e):new Set(e),o=e.clear();return t&&Zo(e,"clear",void 0,void 0,n),o}function pi(e,t){return function(o,l){const r=this,s=r.__v_raw,a=bt(s),u=t?Qf:e?ep:da;return!e&&Ln(a,"iterate",ir),s.forEach((c,f)=>o.call(l,u(c),u(f),r))}}function hi(e,t,n){return function(...o){const l=this.__v_raw,r=bt(l),s=ar(r),a=e==="entries"||e===Symbol.iterator&&s,u=e==="keys"&&s,c=l[e](...o),f=n?Qf:t?ep:da;return!t&&Ln(r,"iterate",u?Cd:ir),{next(){const{value:d,done:p}=c.next();return p?{value:d,done:p}:{value:a?[f(d[0]),f(d[1])]:f(d),done:p}},[Symbol.iterator](){return this}}}}function al(e){return function(...t){{const n=t[0]?`on key "${t[0]}" `:"";console.warn(`${El(e)} operation ${n}failed: target is readonly.`,bt(this))}return e==="delete"?!1:this}}function uk(){const e={get(r){return ci(this,r)},get size(){return fi(this)},has:di,add:qh,set:Yh,delete:Gh,clear:Xh,forEach:pi(!1,!1)},t={get(r){return ci(this,r,!1,!0)},get size(){return fi(this)},has:di,add:qh,set:Yh,delete:Gh,clear:Xh,forEach:pi(!1,!0)},n={get(r){return ci(this,r,!0)},get size(){return fi(this,!0)},has(r){return di.call(this,r,!0)},add:al("add"),set:al("set"),delete:al("delete"),clear:al("clear"),forEach:pi(!0,!1)},o={get(r){return ci(this,r,!0,!0)},get size(){return fi(this,!0)},has(r){return di.call(this,r,!0)},add:al("add"),set:al("set"),delete:al("delete"),clear:al("clear"),forEach:pi(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(r=>{e[r]=hi(r,!1,!1),n[r]=hi(r,!0,!1),t[r]=hi(r,!1,!0),o[r]=hi(r,!0,!0)}),[e,n,t,o]}const[ck,dk,fk,pk]=uk();function Yu(e,t){const n=t?e?pk:fk:e?dk:ck;return(o,l,r)=>l==="__v_isReactive"?!e:l==="__v_isReadonly"?e:l==="__v_raw"?o:Reflect.get(ht(n,l)&&l in o?n:o,l,r)}const hk={get:Yu(!1,!1)},vk={get:Yu(!1,!0)},mk={get:Yu(!0,!1)},gk={get:Yu(!0,!0)};function Jy(e,t,n){const o=bt(n);if(o!==n&&t.call(e,o)){const l=Gr(e);console.warn(`Reactive ${l} contains both the raw and reactive versions of the same object${l==="Map"?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}const Qy=new WeakMap,eb=new WeakMap,tb=new WeakMap,nb=new WeakMap;function yk(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function bk(e){return e.__v_skip||!Object.isExtensible(e)?0:yk(Gr(e))}function $t(e){return Ol(e)?e:Gu(e,!1,Xy,hk,Qy)}function ob(e){return Gu(e,!1,ak,vk,eb)}function $s(e){return Gu(e,!0,Zy,mk,tb)}function Kr(e){return Gu(e,!0,ik,gk,nb)}function Gu(e,t,n,o,l){if(!lt(e))return console.warn(`value cannot be made reactive: ${String(e)}`),e;if(e.__v_raw&&!(t&&e.__v_isReactive))return e;const r=l.get(e);if(r)return r;const s=bk(e);if(s===0)return e;const a=new Proxy(e,s===2?o:n);return l.set(e,a),a}function ur(e){return Ol(e)?ur(e.__v_raw):!!(e&&e.__v_isReactive)}function Ol(e){return!!(e&&e.__v_isReadonly)}function mu(e){return!!(e&&e.__v_isShallow)}function gu(e){return ur(e)||Ol(e)}function bt(e){const t=e&&e.__v_raw;return t?bt(t):e}function cr(e){return pu(e,"__v_skip",!0),e}const da=e=>lt(e)?$t(e):e,ep=e=>lt(e)?$s(e):e;function lb(e){kl&&wn&&(e=bt(e),qy(e.dep||(e.dep=Zf()),{target:e,type:"get",key:"value"}))}function tp(e,t){e=bt(e);const n=e.dep;n&&Sd(n,{target:e,type:"set",key:"value",newValue:t})}function Nt(e){return!!(e&&e.__v_isRef===!0)}function N(e){return rb(e,!1)}function Pt(e){return rb(e,!0)}function rb(e,t){return Nt(e)?e:new wk(e,t)}class wk{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:bt(t),this._value=n?t:da(t)}get value(){return lb(this),this._value}set value(t){const n=this.__v_isShallow||mu(t)||Ol(t);t=n?t:bt(t),ca(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:da(t),tp(this,t))}}function Ps(e){tp(e,e.value)}function i(e){return Nt(e)?e.value:e}const Ck={get:(e,t,n)=>i(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const l=e[t];return Nt(l)&&!Nt(n)?(l.value=n,!0):Reflect.set(e,t,n,o)}};function sb(e){return ur(e)?e:new Proxy(e,Ck)}function on(e){gu(e)||console.warn("toRefs() expects a reactive object but received a plain one.");const t=Le(e)?new Array(e.length):{};for(const n in e)t[n]=Bt(e,n);return t}class Sk{constructor(t,n,o){this._object=t,this._key=n,this._defaultValue=o,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return YS(bt(this._object),this._key)}}function Bt(e,t,n){const o=e[t];return Nt(o)?o:new Sk(e,t,n)}var ab;class kk{constructor(t,n,o,l){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this[ab]=!1,this._dirty=!0,this.effect=new Jf(t,()=>{this._dirty||(this._dirty=!0,tp(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!l,this.__v_isReadonly=o}get value(){const t=bt(this);return lb(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}ab="__v_isReadonly";function ib(e,t,n=!1){let o,l;const r=Ye(e);r?(o=e,l=()=>{console.warn("Write operation failed: computed value is readonly")}):(o=e.get,l=e.set);const s=new kk(o,l,r||!l,n);return t&&!n&&(s.effect.onTrack=t.onTrack,s.effect.onTrigger=t.onTrigger),s}const dr=[];function Li(e){dr.push(e)}function Di(){dr.pop()}function je(e,...t){_r();const n=dr.length?dr[dr.length-1].component:null,o=n&&n.appContext.config.warnHandler,l=_k();if(o)Go(o,n,11,[e+t.join(""),n&&n.proxy,l.map(({vnode:r})=>`at <${lc(n,r.type)}>`).join(` +`),l]);else{const r=[`[Vue warn]: ${e}`,...t];l.length&&r.push(` +`,...$k(l)),console.warn(...r)}$r()}function _k(){let e=dr[dr.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const o=e.component&&e.component.parent;e=o&&o.vnode}return t}function $k(e){const t=[];return e.forEach((n,o)=>{t.push(...o===0?[]:[` +`],...Ek(n))}),t}function Ek({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,l=` at <${lc(e.component,e.type,o)}`,r=">"+n;return e.props?[l,...Tk(e.props),r]:[l+r]}function Tk(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(...ub(o,e[o]))}),n.length>3&&t.push(" ..."),t}function ub(e,t,n){return Ze(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:Nt(t)?(t=ub(e,bt(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):Ye(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=bt(t),n?t:[`${e}=`,t])}function Ok(e,t){e!==void 0&&(typeof e!="number"?je(`${t} is not a valid number - got ${JSON.stringify(e)}.`):isNaN(e)&&je(`${t} is NaN - the duration expression might be incorrect.`))}const np={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",[0]:"setup function",[1]:"render function",[2]:"watcher getter",[3]:"watcher callback",[4]:"watcher cleanup function",[5]:"native event handler",[6]:"component event handler",[7]:"vnode hook",[8]:"directive hook",[9]:"transition hook",[10]:"app errorHandler",[11]:"app warnHandler",[12]:"ref function",[13]:"async component loader",[14]:"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core"};function Go(e,t,n,o){let l;try{l=o?e(...o):e()}catch(r){Xu(r,t,n)}return l}function qn(e,t,n,o){if(Ye(e)){const r=Go(e,t,n,o);return r&&rs(r)&&r.catch(s=>{Xu(s,t,n)}),r}const l=[];for(let r=0;r>>1;pa(vn[o])_o&&vn.splice(t,1)}function fb(e){Le(e)?Xr.push(...e):(!ko||!ko.includes(e,e.allowRecurse?ml+1:ml))&&Xr.push(e),db()}function Zh(e,t=fa?_o+1:0){for(e=e||new Map;tpa(n)-pa(o)),ml=0;mle.id==null?1/0:e.id,xk=(e,t)=>{const n=pa(e)-pa(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function hb(e){kd=!1,fa=!0,e=e||new Map,vn.sort(xk);const t=n=>lp(e,n);try{for(_o=0;_oIk){const o=t.ownerInstance,l=o&&pp(o.type);return je(`Maximum recursive updates exceeded${l?` in component <${l}>`:""}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`),!0}else e.set(t,n+1)}}let _l=!1;const Br=new Set;Vy().__VUE_HMR_RUNTIME__={createRecord:Ac(vb),rerender:Ac(Lk),reload:Ac(Dk)};const br=new Map;function Ak(e){const t=e.type.__hmrId;let n=br.get(t);n||(vb(t,e.type),n=br.get(t)),n.instances.add(e)}function Rk(e){br.get(e.type.__hmrId).instances.delete(e)}function vb(e,t){return br.has(e)?!1:(br.set(e,{initialDef:Ys(t),instances:new Set}),!0)}function Ys(e){return Gb(e)?e.__vccOpts:e}function Lk(e,t){const n=br.get(e);n&&(n.initialDef.render=t,[...n.instances].forEach(o=>{t&&(o.render=t,Ys(o.type).render=t),o.renderCache=[],_l=!0,o.update(),_l=!1}))}function Dk(e,t){const n=br.get(e);if(!n)return;t=Ys(t),Jh(n.initialDef,t);const o=[...n.instances];for(const l of o){const r=Ys(l.type);Br.has(r)||(r!==n.initialDef&&Jh(r,t),Br.add(r)),l.appContext.optionsCache.delete(l.type),l.ceReload?(Br.add(r),l.ceReload(t.styles),Br.delete(r)):l.parent?Zu(l.parent.update):l.appContext.reload?l.appContext.reload():typeof window<"u"?window.location.reload():console.warn("[HMR] Root or manually mounted instance modified. Full reload required.")}fb(()=>{for(const l of o)Br.delete(Ys(l.type))})}function Jh(e,t){Xt(e,t);for(const n in e)n!=="__file"&&!(n in t)&&delete e[n]}function Ac(e){return(t,n)=>{try{return e(t,n)}catch(o){console.error(o),console.warn("[HMR] Something went wrong during Vue component hot-reload. Full reload required.")}}}let $o,Ws=[],_d=!1;function Ua(e,...t){$o?$o.emit(e,...t):_d||Ws.push({event:e,args:t})}function mb(e,t){var n,o;$o=e,$o?($o.enabled=!0,Ws.forEach(({event:l,args:r})=>$o.emit(l,...r)),Ws=[]):typeof window<"u"&&window.HTMLElement&&!(!((o=(n=window.navigator)===null||n===void 0?void 0:n.userAgent)===null||o===void 0)&&o.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(r=>{mb(r,t)}),setTimeout(()=>{$o||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,_d=!0,Ws=[])},3e3)):(_d=!0,Ws=[])}function Bk(e,t){Ua("app:init",e,t,{Fragment:He,Text:Er,Comment:Qt,Static:Bi})}function Fk(e){Ua("app:unmount",e)}const Vk=rp("component:added"),gb=rp("component:updated"),zk=rp("component:removed"),Hk=e=>{$o&&typeof $o.cleanupBuffer=="function"&&!$o.cleanupBuffer(e)&&zk(e)};function rp(e){return t=>{Ua(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}const Kk=yb("perf:start"),jk=yb("perf:end");function yb(e){return(t,n,o)=>{Ua(e,t.appContext.app,t.uid,t,n,o)}}function Wk(e,t,n){Ua("component:emit",e.appContext.app,e,t,n)}function Uk(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||Vt;{const{emitsOptions:f,propsOptions:[d]}=e;if(f)if(!(t in f))(!d||!(vl(t)in d))&&je(`Component emitted event "${t}" but it is neither declared in the emits option nor as an "${vl(t)}" prop.`);else{const p=f[t];Ye(p)&&(p(...n)||je(`Invalid event arguments: event validation failed for event "${t}".`))}}let l=n;const r=t.startsWith("update:"),s=r&&t.slice(7);if(s&&s in o){const f=`${s==="modelValue"?"model":s}Modifiers`,{number:d,trim:p}=o[f]||Vt;p&&(l=n.map(h=>Ze(h)?h.trim():h)),d&&(l=n.map(bd))}Wk(e,t,l);{const f=t.toLowerCase();f!==t&&o[vl(f)]&&je(`Event "${f}" is emitted in component ${lc(e,e.type)} but the handler is registered for "${t}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${Io(t)}" instead of "${t}".`)}let a,u=o[a=vl(t)]||o[a=vl(Xn(t))];!u&&r&&(u=o[a=vl(Io(t))]),u&&qn(u,e,6,l);const c=o[a+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,qn(c,e,6,l)}}function bb(e,t,n=!1){const o=t.emitsCache,l=o.get(e);if(l!==void 0)return l;const r=e.emits;let s={},a=!1;if(!Ye(e)){const u=c=>{const f=bb(c,t,!0);f&&(a=!0,Xt(s,f))};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}return!r&&!a?(lt(e)&&o.set(e,null),null):(Le(r)?r.forEach(u=>s[u]=null):Xt(s,r),lt(e)&&o.set(e,s),s)}function Ju(e,t){return!e||!ja(t)?!1:(t=t.slice(2).replace(/Once$/,""),ht(e,t[0].toLowerCase()+t.slice(1))||ht(e,Io(t))||ht(e,t))}let rn=null,wb=null;function yu(e){const t=rn;return rn=e,wb=e&&e.type.__scopeId||null,t}function Q(e,t=rn,n){if(!t||e._n)return e;const o=(...l)=>{o._d&&dv(-1);const r=yu(t);let s;try{s=e(...l)}finally{yu(r),o._d&&dv(1)}return gb(t),s};return o._n=!0,o._c=!0,o._d=!0,o}let $d=!1;function bu(){$d=!0}function Rc(e){const{type:t,vnode:n,proxy:o,withProxy:l,props:r,propsOptions:[s],slots:a,attrs:u,emit:c,render:f,renderCache:d,data:p,setupState:h,ctx:m,inheritAttrs:v}=e;let g,y;const C=yu(e);$d=!1;try{if(n.shapeFlag&4){const $=l||o;g=ro(f.call($,$,d,r,h,p,m)),y=u}else{const $=t;u===r&&bu(),g=ro($.length>1?$(r,{get attrs(){return bu(),u},slots:a,emit:c}):$(r,null)),y=t.props?u:Yk(u)}}catch($){Zs.length=0,Xu($,e,1),g=U(Qt)}let b=g,w;if(g.patchFlag>0&&g.patchFlag&2048&&([b,w]=qk(g)),y&&v!==!1){const $=Object.keys(y),{shapeFlag:k}=b;if($.length){if(k&7)s&&$.some(fu)&&(y=Gk(y,s)),b=po(b,y);else if(!$d&&b.type!==Qt){const O=Object.keys(u),M=[],A=[];for(let x=0,L=O.length;x renders non-element root node that cannot be animated."),b.transition=n.transition),w?w(b):g=b,yu(C),g}const qk=e=>{const t=e.children,n=e.dynamicChildren,o=Cb(t);if(!o)return[e,void 0];const l=t.indexOf(o),r=n?n.indexOf(o):-1,s=a=>{t[l]=a,n&&(r>-1?n[r]=a:a.patchFlag>0&&(e.dynamicChildren=[...n,a]))};return[ro(o),s]};function Cb(e){let t;for(let n=0;n{let t;for(const n in e)(n==="class"||n==="style"||ja(n))&&((t||(t={}))[n]=e[n]);return t},Gk=(e,t)=>{const n={};for(const o in e)(!fu(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n},Qh=e=>e.shapeFlag&7||e.type===Qt;function Xk(e,t,n){const{props:o,children:l,component:r}=e,{props:s,children:a,patchFlag:u}=t,c=r.emitsOptions;if((l||a)&&_l||t.dirs||t.transition)return!0;if(n&&u>=0){if(u&1024)return!0;if(u&16)return o?ev(o,s,c):!!s;if(u&8){const f=t.dynamicProps;for(let d=0;de.__isSuspense;function Qk(e,t){t&&t.pendingBranch?Le(e)?t.effects.push(...e):t.effects.push(e):fb(e)}function dt(e,t){if(!Jt)je("provide() can only be used inside setup().");else{let n=Jt.provides;const o=Jt.parent&&Jt.parent.provides;o===n&&(n=Jt.provides=Object.create(o)),n[e]=t}}function Be(e,t,n=!1){const o=Jt||rn;if(o){const l=o.parent==null?o.vnode.appContext&&o.vnode.appContext.provides:o.parent.provides;if(l&&e in l)return l[e];if(arguments.length>1)return n&&Ye(t)?t.call(o.proxy):t;je(`injection "${String(e)}" not found.`)}else je("inject() can only be used inside setup() or functional components.")}function Nn(e,t){return sp(e,null,t)}const vi={};function ve(e,t,n){return Ye(t)||je("`watch(fn, options?)` signature has been moved to a separate API. Use `watchEffect(fn, options?)` instead. `watch` now only supports `watch(source, cb, options?) signature."),sp(e,t,n)}function sp(e,t,{immediate:n,deep:o,flush:l,onTrack:r,onTrigger:s}=Vt){t||(n!==void 0&&je('watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.'),o!==void 0&&je('watch() "deep" option is only respected when using the watch(source, callback, options?) signature.'));const a=w=>{je("Invalid watch source: ",w,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},u=Hy()===(Jt==null?void 0:Jt.scope)?Jt:null;let c,f=!1,d=!1;if(Nt(e)?(c=()=>e.value,f=mu(e)):ur(e)?(c=()=>e,o=!0):Le(e)?(d=!0,f=e.some(w=>ur(w)||mu(w)),c=()=>e.map(w=>{if(Nt(w))return w.value;if(ur(w))return er(w);if(Ye(w))return Go(w,u,2);a(w)})):Ye(e)?t?c=()=>Go(e,u,2):c=()=>{if(!(u&&u.isUnmounted))return p&&p(),qn(e,u,3,[h])}:(c=Tt,a(e)),t&&o){const w=c;c=()=>er(w())}let p,h=w=>{p=C.onStop=()=>{Go(w,u,4)}},m;if(ya)if(h=Tt,t?n&&qn(t,u,3,[c(),d?[]:void 0,h]):c(),l==="sync"){const w=J_();m=w.__watcherHandles||(w.__watcherHandles=[])}else return Tt;let v=d?new Array(e.length).fill(vi):vi;const g=()=>{if(C.active)if(t){const w=C.run();(o||f||(d?w.some(($,k)=>ca($,v[k])):ca(w,v)))&&(p&&p(),qn(t,u,3,[w,v===vi?void 0:d&&v[0]===vi?[]:v,h]),v=w)}else C.run()};g.allowRecurse=!!t;let y;l==="sync"?y=g:l==="post"?y=()=>In(g,u&&u.suspense):(g.pre=!0,u&&(g.id=u.uid),y=()=>Zu(g));const C=new Jf(c,y);C.onTrack=r,C.onTrigger=s,t?n?g():v=C.run():l==="post"?In(C.run.bind(C),u&&u.suspense):C.run();const b=()=>{C.stop(),u&&u.scope&&Gf(u.scope.effects,C)};return m&&m.push(b),b}function e_(e,t,n){const o=this.proxy,l=Ze(e)?e.includes(".")?Sb(o,e):()=>o[e]:e.bind(o,o);let r;Ye(t)?r=t:(r=t.handler,n=t);const s=Jt;ss(this);const a=sp(l,r.bind(o),n);return s?ss(s):pr(),a}function Sb(e,t){const n=t.split(".");return()=>{let o=e;for(let l=0;l{er(n,t)});else if(Fy(e))for(const n in e)er(e[n],t);return e}function kb(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return rt(()=>{e.isMounted=!0}),Ft(()=>{e.isUnmounting=!0}),e}const Kn=[Function,Array],t_={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Kn,onEnter:Kn,onAfterEnter:Kn,onEnterCancelled:Kn,onBeforeLeave:Kn,onLeave:Kn,onAfterLeave:Kn,onLeaveCancelled:Kn,onBeforeAppear:Kn,onAppear:Kn,onAfterAppear:Kn,onAppearCancelled:Kn},setup(e,{slots:t}){const n=st(),o=kb();let l;return()=>{const r=t.default&&ap(t.default(),!0);if(!r||!r.length)return;let s=r[0];if(r.length>1){let v=!1;for(const g of r)if(g.type!==Qt){if(v){je(" can only be used on a single element or component. Use for lists.");break}s=g,v=!0}}const a=bt(e),{mode:u}=a;if(u&&u!=="in-out"&&u!=="out-in"&&u!=="default"&&je(`invalid mode: ${u}`),o.isLeaving)return Lc(s);const c=tv(s);if(!c)return Lc(s);const f=ha(c,a,o,n);va(c,f);const d=n.subTree,p=d&&tv(d);let h=!1;const{getTransitionKey:m}=c.type;if(m){const v=m();l===void 0?l=v:v!==l&&(l=v,h=!0)}if(p&&p.type!==Qt&&(!Xl(c,p)||h)){const v=ha(p,a,o,n);if(va(p,v),u==="out-in")return o.isLeaving=!0,v.afterLeave=()=>{o.isLeaving=!1,n.update.active!==!1&&n.update()},Lc(s);u==="in-out"&&c.type!==Qt&&(v.delayLeave=(g,y,C)=>{const b=$b(o,p);b[String(p.key)]=p,g._leaveCb=()=>{y(),g._leaveCb=void 0,delete f.delayedLeave},f.delayedLeave=C})}return s}}},_b=t_;function $b(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function ha(e,t,n,o){const{appear:l,mode:r,persisted:s=!1,onBeforeEnter:a,onEnter:u,onAfterEnter:c,onEnterCancelled:f,onBeforeLeave:d,onLeave:p,onAfterLeave:h,onLeaveCancelled:m,onBeforeAppear:v,onAppear:g,onAfterAppear:y,onAppearCancelled:C}=t,b=String(e.key),w=$b(n,e),$=(M,A)=>{M&&qn(M,o,9,A)},k=(M,A)=>{const x=A[1];$(M,A),Le(M)?M.every(L=>L.length<=1)&&x():M.length<=1&&x()},O={mode:r,persisted:s,beforeEnter(M){let A=a;if(!n.isMounted)if(l)A=v||a;else return;M._leaveCb&&M._leaveCb(!0);const x=w[b];x&&Xl(e,x)&&x.el._leaveCb&&x.el._leaveCb(),$(A,[M])},enter(M){let A=u,x=c,L=f;if(!n.isMounted)if(l)A=g||u,x=y||c,L=C||f;else return;let R=!1;const P=M._enterCb=V=>{R||(R=!0,V?$(L,[M]):$(x,[M]),O.delayedLeave&&O.delayedLeave(),M._enterCb=void 0)};A?k(A,[M,P]):P()},leave(M,A){const x=String(e.key);if(M._enterCb&&M._enterCb(!0),n.isUnmounting)return A();$(d,[M]);let L=!1;const R=M._leaveCb=P=>{L||(L=!0,A(),P?$(m,[M]):$(h,[M]),M._leaveCb=void 0,w[x]===e&&delete w[x])};w[x]=e,p?k(p,[M,R]):R()},clone(M){return ha(M,t,n,o)}};return O}function Lc(e){if(qa(e))return e=po(e),e.children=null,e}function tv(e){return qa(e)?e.children?e.children[0]:void 0:e}function va(e,t){e.shapeFlag&6&&e.component?va(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function ap(e,t=!1,n){let o=[],l=0;for(let r=0;r1)for(let r=0;r!!e.type.__asyncLoader,qa=e=>e.type.__isKeepAlive;function n_(e,t){Tb(e,"a",t)}function Eb(e,t){Tb(e,"da",t)}function Tb(e,t,n=Jt){const o=e.__wdc||(e.__wdc=()=>{let l=n;for(;l;){if(l.isDeactivated)return;l=l.parent}return e()});if(Qu(t,o,n),n){let l=n.parent;for(;l&&l.parent;)qa(l.parent.vnode)&&o_(o,t,n,l),l=l.parent}}function o_(e,t,n,o){const l=Qu(t,e,o,!0);Ll(()=>{Gf(o[t],l)},n)}function Qu(e,t,n=Jt,o=!1){if(n){const l=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...s)=>{if(n.isUnmounted)return;_r(),ss(n);const a=qn(t,n,e,s);return pr(),$r(),a});return o?l.unshift(r):l.push(r),r}else{const l=vl(np[e].replace(/ hook$/,""));je(`${l} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.`)}}const tl=e=>(t,n=Jt)=>(!ya||e==="sp")&&Qu(e,(...o)=>t(...o),n),ec=tl("bm"),rt=tl("m"),Ob=tl("bu"),nl=tl("u"),Ft=tl("bum"),Ll=tl("um"),l_=tl("sp"),r_=tl("rtg"),s_=tl("rtc");function a_(e,t=Jt){Qu("ec",e,t)}function Mb(e){VS(e)&&je("Do not use built-in directive ids as custom directive id: "+e)}function ot(e,t){const n=rn;if(n===null)return je("withDirectives can only be used inside render functions."),e;const o=oc(n)||n.proxy,l=e.dirs||(e.dirs=[]);for(let r=0;rt(s,a,void 0,r&&r[a]));else{const s=Object.keys(e);l=new Array(s.length);for(let a=0,u=s.length;a{const r=o.fn(...l);return r&&(r.key=o.key),r}:o.fn)}return e}function pe(e,t,n={},o,l){if(rn.isCE||rn.parent&&Gs(rn.parent)&&rn.parent.isCE)return t!=="default"&&(n.name=t),U("slot",n,o&&o());let r=e[t];r&&r.length>1&&(je("SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template."),r=()=>[]),r&&r._c&&(r._d=!1),_();const s=r&&Nb(r(n)),a=ae(He,{key:n.key||s&&s.key||`_${t}`},s||(o?o():[]),s&&e._===1?64:-2);return!l&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),r&&r._c&&(r._d=!0),a}function Nb(e){return e.some(t=>Lt(t)?!(t.type===Qt||t.type===He&&!Nb(t.children)):!0)?e:null}function u_(e,t){const n={};if(!lt(e))return je("v-on with no argument expects an object value."),n;for(const o in e)n[t&&/[A-Z]/.test(o)?`on:${o}`:vl(o)]=e[o];return n}const Ed=e=>e?Wb(e)?oc(e)||e.proxy:Ed(e.parent):null,fr=Xt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>Kr(e.props),$attrs:e=>Kr(e.attrs),$slots:e=>Kr(e.slots),$refs:e=>Kr(e.refs),$parent:e=>Ed(e.parent),$root:e=>Ed(e.root),$emit:e=>e.emit,$options:e=>cp(e),$forceUpdate:e=>e.f||(e.f=()=>Zu(e.update)),$nextTick:e=>e.n||(e.n=Fe.bind(e.proxy)),$watch:e=>e_.bind(e)}),up=e=>e==="_"||e==="$",Dc=(e,t)=>e!==Vt&&!e.__isScriptSetup&&ht(e,t),Pb={get({_:e},t){const{ctx:n,setupState:o,data:l,props:r,accessCache:s,type:a,appContext:u}=e;if(t==="__isVue")return!0;let c;if(t[0]!=="$"){const h=s[t];if(h!==void 0)switch(h){case 1:return o[t];case 2:return l[t];case 4:return n[t];case 3:return r[t]}else{if(Dc(o,t))return s[t]=1,o[t];if(l!==Vt&&ht(l,t))return s[t]=2,l[t];if((c=e.propsOptions[0])&&ht(c,t))return s[t]=3,r[t];if(n!==Vt&&ht(n,t))return s[t]=4,n[t];Td&&(s[t]=0)}}const f=fr[t];let d,p;if(f)return t==="$attrs"&&(Ln(e,"get",t),bu()),f(e);if((d=a.__cssModules)&&(d=d[t]))return d;if(n!==Vt&&ht(n,t))return s[t]=4,n[t];if(p=u.config.globalProperties,ht(p,t))return p[t];rn&&(!Ze(t)||t.indexOf("__v")!==0)&&(l!==Vt&&up(t[0])&&ht(l,t)?je(`Property ${JSON.stringify(t)} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`):e===rn&&je(`Property ${JSON.stringify(t)} was accessed during render but is not defined on instance.`))},set({_:e},t,n){const{data:o,setupState:l,ctx:r}=e;return Dc(l,t)?(l[t]=n,!0):l.__isScriptSetup&&ht(l,t)?(je(`Cannot mutate - + +
diff --git a/view/package.json b/view/package.json index ab91737..676edd1 100644 --- a/view/package.json +++ b/view/package.json @@ -9,6 +9,7 @@ "preview": "vite preview" }, "dependencies": { + "axios": "^1.4.0", "element-plus": "^2.3.6", "sass": "^1.63.3", "vue": "^3.2.47", diff --git a/view/pnpm-lock.yaml b/view/pnpm-lock.yaml index 98ca100..638f58b 100644 --- a/view/pnpm-lock.yaml +++ b/view/pnpm-lock.yaml @@ -1,6 +1,9 @@ lockfileVersion: '6.0' dependencies: + axios: + specifier: ^1.4.0 + version: 1.4.0 element-plus: specifier: ^2.3.6 version: 2.3.6(vue@3.2.47) @@ -410,6 +413,20 @@ packages: resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} dev: false + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: false + + /axios@1.4.0: + resolution: {integrity: sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==} + dependencies: + follow-redirects: 1.15.2 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: false + /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} @@ -434,6 +451,13 @@ packages: optionalDependencies: fsevents: 2.3.2 + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: false + /csstype@2.6.21: resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} @@ -441,6 +465,11 @@ packages: resolution: {integrity: sha512-LcgxzFoWMEPO7ggRv1Y2N31hUf2R0Vj7fuy/m+Bg1K8rr+KAs1AEy4y9jd5DXe8pbHgX+srkHNS7TH6Q6ZhYeQ==} dev: false + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: false + /element-plus@2.3.6(vue@3.2.47): resolution: {integrity: sha512-GLz0pXUYI2zRfIgyI6W7SWmHk6dSEikP9yR++hsQUyy63+WjutoiGpA3SZD4cGPSXUzRFeKfVr8CnYhK5LqXZw==} peerDependencies: @@ -509,6 +538,25 @@ packages: dependencies: to-regex-range: 5.0.1 + /follow-redirects@1.15.2: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + /fsevents@2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -574,6 +622,18 @@ packages: resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} dev: false + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: false + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: false + /nanoid@3.3.6: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -602,6 +662,10 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 + /proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: false + /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} diff --git a/view/src/page/index.vue b/view/src/page/index.vue index d8d015d..b95dd88 100644 --- a/view/src/page/index.vue +++ b/view/src/page/index.vue @@ -11,7 +11,14 @@
设置 +
+ + + +
+ 下载 + 查看进度
@@ -21,7 +28,7 @@ - +
{{ i }}
@@ -33,19 +40,26 @@