From f0ace830efd15b18736c0306046c1b80a8d39082 Mon Sep 17 00:00:00 2001 From: chenweiyi <737649321@qq.com> Date: Tue, 30 Apr 2024 19:37:32 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E4=BB=85=E4=BB=85=E5=9C=A8?= =?UTF-8?q?=E5=BF=85=E8=A6=81=E6=97=B6=E6=89=8D=E7=94=B3=E8=AF=B7=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=E6=9D=83=E9=99=90=EF=BC=8C=E5=85=81=E8=AE=B8?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BD=BF=E7=94=A8=E4=B8=8D=E5=B8=A6sudo?= =?UTF-8?q?=E7=9A=84=E6=AD=A3=E5=B8=B8=E5=91=BD=E4=BB=A4=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/vite/vite.config.ts | 4 +- package.json | 2 + pnpm-lock.yaml | 63 +++++++++++++++++++-------- src/caddy/index.ts | 83 +++++++++++++++++------------------- src/host/cli.ts | 9 ++++ src/index.ts | 4 -- src/utils.ts | 28 ++++++++++++ 7 files changed, 127 insertions(+), 66 deletions(-) create mode 100644 src/host/cli.ts diff --git a/examples/vite/vite.config.ts b/examples/vite/vite.config.ts index f2a0cc3..0ec4b64 100644 --- a/examples/vite/vite.config.ts +++ b/examples/vite/vite.config.ts @@ -6,8 +6,10 @@ export default defineConfig({ plugins: [ Inspect(), Unplugin({ - target: 'test.abc.com', + target: 'test23.abc.com', showCaddyLog: true, + enable: true, + https: false, }), ], }) diff --git a/package.json b/package.json index 4f2da79..f5103ff 100644 --- a/package.json +++ b/package.json @@ -134,6 +134,7 @@ "dependencies": { "consola": "^3.2.3", "dotenv-flow": "^4.1.0", + "easy-host-cli": "^1.0.10", "got-cjs": "^12.5.4", "hosts-so-easy": "^1.2.9", "http-proxy-agent": "^7.0.2", @@ -141,6 +142,7 @@ "kill-port": "^2.0.1", "ora": "5", "picocolors": "^1.0.0", + "sudo-prompt": "^9.2.1", "tsx": "^4.7.1", "unplugin": "^1.7.1" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fdd53a4..82e1123 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: dotenv-flow: specifier: ^4.1.0 version: 4.1.0 + easy-host-cli: + specifier: ^1.0.10 + version: 1.0.10 esbuild: specifier: '*' version: 0.19.11 @@ -38,6 +41,9 @@ importers: picocolors: specifier: ^1.0.0 version: 1.0.0 + sudo-prompt: + specifier: ^9.2.1 + version: 9.2.1 tsx: specifier: ^4.7.1 version: 4.7.1 @@ -2842,7 +2848,7 @@ packages: nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 - semver: 7.5.4 + semver: 7.6.0 tar: 6.2.0 transitivePeerDependencies: - encoding @@ -2965,7 +2971,7 @@ packages: proc-log: 3.0.0 promise-inflight: 1.0.1(bluebird@3.7.2) promise-retry: 2.0.1 - semver: 7.5.4 + semver: 7.6.0 which: 4.0.0 transitivePeerDependencies: - bluebird @@ -3038,7 +3044,7 @@ packages: pkg-types: 1.0.3 prompts: 2.4.2 rc9: 2.1.1 - semver: 7.5.4 + semver: 7.6.0 dev: true /@nuxt/devtools@1.0.8(nuxt@3.10.2)(rollup@3.29.4)(vite@4.5.2): @@ -3271,6 +3277,7 @@ packages: engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + libc: [glibc] requiresBuild: true dev: true optional: true @@ -3280,6 +3287,7 @@ packages: engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] requiresBuild: true dev: true optional: true @@ -3289,6 +3297,7 @@ packages: engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + libc: [musl] requiresBuild: true dev: true optional: true @@ -3298,6 +3307,7 @@ packages: engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + libc: [glibc] requiresBuild: true dev: true optional: true @@ -3307,6 +3317,7 @@ packages: engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + libc: [musl] requiresBuild: true dev: true optional: true @@ -3645,6 +3656,7 @@ packages: resolution: {integrity: sha512-TVYVWD/SYwWzGGnbfTkrNpdE4HON46orgMNHCivlXmlsSGQOx/OHHYiQcMIOx38/GWgwr/po2LBn7wypkWw/Mg==} cpu: [arm64] os: [linux] + libc: [glibc] requiresBuild: true dev: true optional: true @@ -3653,6 +3665,7 @@ packages: resolution: {integrity: sha512-XcKvuendwizYYhFxpvQ3xVpzje2HHImzg33wL9zvxtj77HvPStbSGI9czrdbfrf8DGMcNNReH9pVZv8qejAQ5A==} cpu: [arm64] os: [linux] + libc: [musl] requiresBuild: true dev: true optional: true @@ -3661,6 +3674,7 @@ packages: resolution: {integrity: sha512-LFHS/8Q+I9YA0yVETyjonMJ3UA+DczeBd/MqNEzsGSTdNvSJa1OJZcSH8GiXLvcizgp9AlHs2walqRcqzjOi3A==} cpu: [riscv64] os: [linux] + libc: [glibc] requiresBuild: true dev: true optional: true @@ -3669,6 +3683,7 @@ packages: resolution: {integrity: sha512-dIYgo+j1+yfy81i0YVU5KnQrIJZE8ERomx17ReU4GREjGtDW4X+nvkBak2xAUpyqLs4eleDSj3RrV72fQos7zw==} cpu: [x64] os: [linux] + libc: [glibc] requiresBuild: true dev: true optional: true @@ -3677,6 +3692,7 @@ packages: resolution: {integrity: sha512-RoaYxjdHQ5TPjaPrLsfKqR3pakMr3JGqZ+jZM0zP2IkDtsGa4CqYaWSfQmZVgFUCgLrTnzX+cnHS3nfl+kB6ZQ==} cpu: [x64] os: [linux] + libc: [musl] requiresBuild: true dev: true optional: true @@ -3767,6 +3783,7 @@ packages: resolution: {integrity: sha512-mXtRKCblBT+H1KPWUfeJt6gQFGoMt+lnhk2POcoCeS1AxnxcTFpnci4BC4Ro5zKS2QWSdGdUMtc5GKlBmgwxvg==} cpu: [arm64] os: [linux] + libc: [glibc] requiresBuild: true dev: true optional: true @@ -3775,6 +3792,7 @@ packages: resolution: {integrity: sha512-P96R8yLT4BKtwYCtomIJE4uIGAh+5I8qLbrTrGamj/6N1D79GgwORW6CllCEnVU9l/Tjkdd+yMJkT9zoACa9gQ==} cpu: [arm64] os: [linux] + libc: [musl] requiresBuild: true dev: true optional: true @@ -3783,6 +3801,7 @@ packages: resolution: {integrity: sha512-/EjM7CkALS7uUF0laVp+wtOICrX2sR5gy4liIYVHKDLu+b4PGRtEQvubrDxikkzPpOYRvF38R7OBMUOJBuBW7A==} cpu: [x64] os: [linux] + libc: [glibc] requiresBuild: true dev: true optional: true @@ -3791,6 +3810,7 @@ packages: resolution: {integrity: sha512-dMT9QW4IZ7IGzczsOmzdpGf84IzIecvitSwj7DnulRkxj3++IWLAo80+HDtgn+nPm+1gNVFb11wg5L9x+VjFXw==} cpu: [x64] os: [linux] + libc: [musl] requiresBuild: true dev: true optional: true @@ -4420,7 +4440,7 @@ packages: debug: 4.3.4(supports-color@6.1.0) globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.4 + semver: 7.6.0 ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: @@ -4460,7 +4480,7 @@ packages: '@typescript-eslint/types': 6.11.0 '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.3.3) eslint: 8.56.0 - semver: 7.5.4 + semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript @@ -6728,7 +6748,7 @@ packages: /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: - semver: 7.5.4 + semver: 7.6.0 dev: true /bumpp@9.3.0: @@ -7973,7 +7993,7 @@ packages: postcss-modules-scope: 3.0.0(postcss@8.4.35) postcss-modules-values: 4.0.0(postcss@8.4.35) postcss-value-parser: 4.2.0 - semver: 7.5.4 + semver: 7.6.0 webpack: 5.90.3(esbuild@0.19.11) dev: true @@ -8949,6 +8969,11 @@ packages: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true + /easy-host-cli@1.0.10: + resolution: {integrity: sha512-wxTpsC1P+KN83A/33GvZSgzxXdjHu02HGzspE8o5qizBUulFaIQfRTXGo01cAemgpKHMihpeABPhzLGakmZQvg==} + hasBin: true + dev: false + /easy-stack@1.0.1: resolution: {integrity: sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w==} engines: {node: '>=6.0.0'} @@ -12685,7 +12710,7 @@ packages: resolution: {integrity: sha512-Yj9mA8fPiVgOUpByoTZO5pNrcl5Yk37FcSHsUINpAsaBIEZIuqcCclDZJCVxqQShDsmYX8QG63svJiTbOATZwg==} engines: {node: 14 || >=16.14} dependencies: - semver: 7.5.4 + semver: 7.6.0 dev: true /lru-cache@4.1.5: @@ -13506,7 +13531,7 @@ packages: dependencies: growly: 1.3.0 is-wsl: 2.2.0 - semver: 7.5.4 + semver: 7.6.0 shellwords: 0.1.1 uuid: 8.3.2 which: 2.0.2 @@ -13657,7 +13682,7 @@ packages: dependencies: hosted-git-info: 7.0.1 proc-log: 3.0.0 - semver: 7.5.4 + semver: 7.6.0 validate-npm-package-name: 5.0.0 dev: true @@ -13675,7 +13700,7 @@ packages: npm-install-checks: 6.3.0 npm-normalize-package-bin: 3.0.1 npm-package-arg: 11.0.1 - semver: 7.5.4 + semver: 7.6.0 dev: true /npm-registry-fetch@16.1.0: @@ -14896,7 +14921,7 @@ packages: cosmiconfig: 7.1.0 klona: 2.0.6 postcss: 8.4.33 - semver: 7.5.4 + semver: 7.6.0 webpack: 5.90.3(esbuild@0.19.11) dev: true @@ -17667,6 +17692,10 @@ packages: ts-interface-checker: 0.1.13 dev: true + /sudo-prompt@9.2.1: + resolution: {integrity: sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==, tarball: http://ued.zuoyebang.cc/sudo-prompt/-/sudo-prompt-9.2.1.tgz} + dev: false + /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -19007,7 +19036,7 @@ packages: fast-glob: 3.3.2 fs-extra: 11.2.0 npm-run-path: 4.0.1 - semver: 7.5.4 + semver: 7.6.0 strip-ansi: 6.0.1 tiny-invariant: 1.3.1 typescript: 5.3.3 @@ -19238,7 +19267,7 @@ packages: engines: {vscode: ^1.52.0} dependencies: minimatch: 3.1.2 - semver: 7.5.4 + semver: 7.6.0 vscode-languageserver-protocol: 3.16.0 dev: true @@ -19313,7 +19342,7 @@ packages: espree: 9.6.1 esquery: 1.5.0 lodash: 4.17.21 - semver: 7.5.4 + semver: 7.6.0 transitivePeerDependencies: - supports-color dev: true @@ -19323,7 +19352,7 @@ packages: dev: true /vue-loader@15.11.1(cache-loader@4.1.0)(css-loader@3.6.0)(webpack@4.47.0): - resolution: {integrity: sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==} + resolution: {integrity: sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==, tarball: http://ued.zuoyebang.cc/vue-loader/-/vue-loader-15.11.1.tgz} peerDependencies: '@vue/compiler-sfc': ^3.0.8 cache-loader: '*' @@ -19406,7 +19435,7 @@ packages: dev: true /vue-loader@15.11.1(css-loader@6.8.1)(webpack@5.90.3): - resolution: {integrity: sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==} + resolution: {integrity: sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==, tarball: http://ued.zuoyebang.cc/vue-loader/-/vue-loader-15.11.1.tgz} peerDependencies: '@vue/compiler-sfc': ^3.0.8 cache-loader: '*' diff --git a/src/caddy/index.ts b/src/caddy/index.ts index 8008dc3..34a4c28 100644 --- a/src/caddy/index.ts +++ b/src/caddy/index.ts @@ -6,8 +6,8 @@ import { got } from 'got-cjs' import { HttpProxyAgent } from 'http-proxy-agent' import { HttpsProxyAgent } from 'https-proxy-agent' import kill from 'kill-port' -import { chmodRecursive, consola, once } from '../utils' -import { addHost, removeHost } from '../host' +import { consola, once, runAsAdmin } from '../utils' +import { addHost, removeHost } from '../host/cli' import { TEMP_DIR, caddyPath, supportList } from './constants' import { logProgress, logProgressOver, tryPort } from './utils' @@ -20,7 +20,7 @@ export async function download() { if (!existsSync(TEMP_DIR)) { mkdirSync(TEMP_DIR, { recursive: true }) - chmodSync(TEMP_DIR, 0o777) + chmodSync(TEMP_DIR, 0o744) } const file = createWriteStream(caddyPath) @@ -46,10 +46,9 @@ export async function download() { const httpAgent = httpProxy ? new HttpProxyAgent(httpProxy) : undefined const httpsAgent = httpsProxy ? new HttpsProxyAgent(httpsProxy) : undefined - const chmodCaddyOnce = once(() => { // chmod +x - chmodSync(caddyPath, 0o777) + chmodSync(caddyPath, 0o744) }) got.stream(dowmloadLink, { @@ -65,7 +64,7 @@ export async function download() { if (process.platform === 'win32') return resolve(caddyPath) // chmod +x - chmodSync(caddyPath, 0o777) + chmodSync(caddyPath, 0o744) resolve(caddyPath) }).on('error', (err) => { // consola.error(err) @@ -78,8 +77,8 @@ function testCaddy() { return new Promise((resolve, reject) => { if (!existsSync(caddyPath)) return resolve(false) - chmodSync(caddyPath, 0o777) - const child = process.platform === 'win32' ? spawn(caddyPath, []) : spawn('sudo', ['-E', caddyPath]) + chmodSync(caddyPath, 0o744) + const child = spawn(caddyPath, []) child.on('close', () => { return resolve(false) }) @@ -142,12 +141,37 @@ export class CaddyInstant { return new Promise((resolve, reject) => { // caddy reverse-proxy --from target --to source --internal-certs - const child = process.platform !== 'win32' - ? spawn('sudo', ['-E', caddyPath, 'reverse-proxy', '--from', `${target.split(':')[0]}${https ? '' : ':80'}`, '--to', `${source}`, '--internal-certs', '--insecure', '--disable-redirects']) - : spawn(caddyPath, ['reverse-proxy', '--from', `${target.split(':')[0]}`, '--to', `${source}`, '--internal-certs']) - - child.on('error', (err) => { - return reject(err) + runAsAdmin([caddyPath, + 'reverse-proxy', + '--from', + `${target.split(':')[0]}${https ? '' : ':80'}`, + '--to', + `${source}`, + '--internal-certs', + '--insecure', + '--disable-redirects', + ].join(' '), 'caddy', (error, stdout, stderr) => { + if (error) + return reject(error) + + // stderr.on('data', (data: any) => { + // const lines = (data.toString() as string).split('\n').map(line => line.trim()) + // for (const line of lines) { + // // caddy log + // // eslint-disable-next-line no-console + // showCaddyLog && line && console.info(line) + // if (line.includes('Error:') || (line && JSON.parse(line).level === 'error')) { + // consola.error(line) + // // child.kill() + // return reject(line) + // } + // } + // }) + + // stdout.on('data', (_data: any) => { + // consola.info(_data.toString()) + // resolve() + // }) }) process.on('SIGINT', async () => { @@ -181,18 +205,6 @@ export class CaddyInstant { if (!Number.isNaN(port) && await tryPort(port)) await kill(port, 'tcp') - // fix `Error: EPERM: operation not permitted` - const pwd = process.cwd() - const viteCacheDir = `${pwd}/node_modules/.vite` - if (existsSync(viteCacheDir)) - chmodRecursive(viteCacheDir, 0o777) - const nuxtCacheDir = `${pwd}/.nuxt` - if (existsSync(nuxtCacheDir)) - await chmodRecursive(nuxtCacheDir, 0o777) - const webpackCacheDir = `${pwd}/node_modules/.cache` - if (existsSync(webpackCacheDir)) - chmodRecursive(webpackCacheDir, 0o777) - if (!restore || this.stoped) return originalExit(code) @@ -215,24 +227,7 @@ export class CaddyInstant { } } - child.stderr.on('data', (data) => { - const lines = (data.toString() as string).split('\n').map(line => line.trim()) - for (const line of lines) { - // caddy log - // eslint-disable-next-line no-console - showCaddyLog && line && console.info(line) - if (line.includes('Error:') || (line && JSON.parse(line).level === 'error')) { - consola.error(line) - // child.kill() - return reject(line) - } - } - }) - - child.stdout.on('data', (_data) => { - consola.info(_data.toString()) - resolve() - }) + resolve() }) } } diff --git a/src/host/cli.ts b/src/host/cli.ts new file mode 100644 index 0000000..b3a8f10 --- /dev/null +++ b/src/host/cli.ts @@ -0,0 +1,9 @@ +import { runAsAdmin } from '../utils' + +export async function addHost(ip: string, host: string) { + return runAsAdmin(`npx easy-host-cli add --ip ${ip} --host ${host}`, 'addHost') +} + +export async function removeHost(ip: string, host: string) { + return runAsAdmin(`npx easy-host-cli rm --ip ${ip} --host ${host}`, 'removeHost') +} diff --git a/src/index.ts b/src/index.ts index 1ff57ff..7dfc3ce 100644 --- a/src/index.ts +++ b/src/index.ts @@ -55,10 +55,6 @@ export const unpluginFactory: UnpluginFactory = options => ({ if (!enable) return - if (!isAdmin()) { - consola.warn('please run as administrator') - return - } if (!target) { consola.fail('please provide target') return diff --git a/src/utils.ts b/src/utils.ts index 757eb2e..3b48c01 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,9 +1,13 @@ +/* eslint-disable @typescript-eslint/ban-ts-comment */ import process from 'node:process' import path from 'node:path' import { chmod, readdir, stat } from 'node:fs/promises' import { execSync } from 'node:child_process' import { createConsola } from 'consola' +// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires +const sudo = require('sudo-prompt') + export const consola = createConsola({ level: 3, }).withTag('reverse-proxy') @@ -41,3 +45,27 @@ export function isAdmin() { return process.getuid && process.getuid() === 0 } } + +export function runAsAdmin(command: string, name?: string, fn?: (error: any, stdout: any, stderr: any) => void) { + return new Promise((resolve, reject) => { + consola.log('exec command: ', command) + sudo.exec(command, { + name: `unpluginHttpsReverseProxy ${name}`, + }, (error: any, stdout: any, stderr: any) => { + try { + fn?.(error, stdout, stderr) + } + finally { + if (error) { + consola.error(error) + // eslint-disable-next-line prefer-promise-reject-errors + reject(false) + // eslint-disable-next-line no-unsafe-finally + return + } + consola.success(stdout) + resolve(true) + } + }) + }) +} From b9a9272f6749f161688858c6f7b32940ef4aa8aa Mon Sep 17 00:00:00 2001 From: chenweiyi <737649321@qq.com> Date: Tue, 30 Apr 2024 19:47:19 +0800 Subject: [PATCH 2/2] feat: update pnpm-lock.yaml --- pnpm-lock.yaml | 34 ++++++++++------------------------ 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 82e1123..59d2720 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3277,7 +3277,6 @@ packages: engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] - libc: [glibc] requiresBuild: true dev: true optional: true @@ -3287,7 +3286,6 @@ packages: engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] - libc: [glibc] requiresBuild: true dev: true optional: true @@ -3297,7 +3295,6 @@ packages: engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] - libc: [musl] requiresBuild: true dev: true optional: true @@ -3307,7 +3304,6 @@ packages: engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] - libc: [glibc] requiresBuild: true dev: true optional: true @@ -3317,7 +3313,6 @@ packages: engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] - libc: [musl] requiresBuild: true dev: true optional: true @@ -3656,7 +3651,6 @@ packages: resolution: {integrity: sha512-TVYVWD/SYwWzGGnbfTkrNpdE4HON46orgMNHCivlXmlsSGQOx/OHHYiQcMIOx38/GWgwr/po2LBn7wypkWw/Mg==} cpu: [arm64] os: [linux] - libc: [glibc] requiresBuild: true dev: true optional: true @@ -3665,7 +3659,6 @@ packages: resolution: {integrity: sha512-XcKvuendwizYYhFxpvQ3xVpzje2HHImzg33wL9zvxtj77HvPStbSGI9czrdbfrf8DGMcNNReH9pVZv8qejAQ5A==} cpu: [arm64] os: [linux] - libc: [musl] requiresBuild: true dev: true optional: true @@ -3674,7 +3667,6 @@ packages: resolution: {integrity: sha512-LFHS/8Q+I9YA0yVETyjonMJ3UA+DczeBd/MqNEzsGSTdNvSJa1OJZcSH8GiXLvcizgp9AlHs2walqRcqzjOi3A==} cpu: [riscv64] os: [linux] - libc: [glibc] requiresBuild: true dev: true optional: true @@ -3683,7 +3675,6 @@ packages: resolution: {integrity: sha512-dIYgo+j1+yfy81i0YVU5KnQrIJZE8ERomx17ReU4GREjGtDW4X+nvkBak2xAUpyqLs4eleDSj3RrV72fQos7zw==} cpu: [x64] os: [linux] - libc: [glibc] requiresBuild: true dev: true optional: true @@ -3692,7 +3683,6 @@ packages: resolution: {integrity: sha512-RoaYxjdHQ5TPjaPrLsfKqR3pakMr3JGqZ+jZM0zP2IkDtsGa4CqYaWSfQmZVgFUCgLrTnzX+cnHS3nfl+kB6ZQ==} cpu: [x64] os: [linux] - libc: [musl] requiresBuild: true dev: true optional: true @@ -3783,7 +3773,6 @@ packages: resolution: {integrity: sha512-mXtRKCblBT+H1KPWUfeJt6gQFGoMt+lnhk2POcoCeS1AxnxcTFpnci4BC4Ro5zKS2QWSdGdUMtc5GKlBmgwxvg==} cpu: [arm64] os: [linux] - libc: [glibc] requiresBuild: true dev: true optional: true @@ -3792,7 +3781,6 @@ packages: resolution: {integrity: sha512-P96R8yLT4BKtwYCtomIJE4uIGAh+5I8qLbrTrGamj/6N1D79GgwORW6CllCEnVU9l/Tjkdd+yMJkT9zoACa9gQ==} cpu: [arm64] os: [linux] - libc: [musl] requiresBuild: true dev: true optional: true @@ -3801,7 +3789,6 @@ packages: resolution: {integrity: sha512-/EjM7CkALS7uUF0laVp+wtOICrX2sR5gy4liIYVHKDLu+b4PGRtEQvubrDxikkzPpOYRvF38R7OBMUOJBuBW7A==} cpu: [x64] os: [linux] - libc: [glibc] requiresBuild: true dev: true optional: true @@ -3810,7 +3797,6 @@ packages: resolution: {integrity: sha512-dMT9QW4IZ7IGzczsOmzdpGf84IzIecvitSwj7DnulRkxj3++IWLAo80+HDtgn+nPm+1gNVFb11wg5L9x+VjFXw==} cpu: [x64] os: [linux] - libc: [musl] requiresBuild: true dev: true optional: true @@ -4440,7 +4426,7 @@ packages: debug: 4.3.4(supports-color@6.1.0) globby: 11.1.0 is-glob: 4.0.3 - semver: 7.6.0 + semver: 7.5.4 ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: @@ -4480,7 +4466,7 @@ packages: '@typescript-eslint/types': 6.11.0 '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.3.3) eslint: 8.56.0 - semver: 7.6.0 + semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript @@ -6748,7 +6734,7 @@ packages: /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: - semver: 7.6.0 + semver: 7.5.4 dev: true /bumpp@9.3.0: @@ -7993,7 +7979,7 @@ packages: postcss-modules-scope: 3.0.0(postcss@8.4.35) postcss-modules-values: 4.0.0(postcss@8.4.35) postcss-value-parser: 4.2.0 - semver: 7.6.0 + semver: 7.5.4 webpack: 5.90.3(esbuild@0.19.11) dev: true @@ -13531,7 +13517,7 @@ packages: dependencies: growly: 1.3.0 is-wsl: 2.2.0 - semver: 7.6.0 + semver: 7.5.4 shellwords: 0.1.1 uuid: 8.3.2 which: 2.0.2 @@ -14921,7 +14907,7 @@ packages: cosmiconfig: 7.1.0 klona: 2.0.6 postcss: 8.4.33 - semver: 7.6.0 + semver: 7.5.4 webpack: 5.90.3(esbuild@0.19.11) dev: true @@ -17693,7 +17679,7 @@ packages: dev: true /sudo-prompt@9.2.1: - resolution: {integrity: sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==, tarball: http://ued.zuoyebang.cc/sudo-prompt/-/sudo-prompt-9.2.1.tgz} + resolution: {integrity: sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==} dev: false /supports-color@5.5.0: @@ -19342,7 +19328,7 @@ packages: espree: 9.6.1 esquery: 1.5.0 lodash: 4.17.21 - semver: 7.6.0 + semver: 7.5.4 transitivePeerDependencies: - supports-color dev: true @@ -19352,7 +19338,7 @@ packages: dev: true /vue-loader@15.11.1(cache-loader@4.1.0)(css-loader@3.6.0)(webpack@4.47.0): - resolution: {integrity: sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==, tarball: http://ued.zuoyebang.cc/vue-loader/-/vue-loader-15.11.1.tgz} + resolution: {integrity: sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==} peerDependencies: '@vue/compiler-sfc': ^3.0.8 cache-loader: '*' @@ -19435,7 +19421,7 @@ packages: dev: true /vue-loader@15.11.1(css-loader@6.8.1)(webpack@5.90.3): - resolution: {integrity: sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==, tarball: http://ued.zuoyebang.cc/vue-loader/-/vue-loader-15.11.1.tgz} + resolution: {integrity: sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==} peerDependencies: '@vue/compiler-sfc': ^3.0.8 cache-loader: '*'