Spaces:
Running
Running
神代綺凛
commited on
Commit
•
b272e20
1
Parent(s):
dbbebc7
feat: huggingface
Browse files- .eslintignore +1 -0
- .github/workflows/huggingface.yml +28 -0
- .gitignore +0 -2
- Dockerfile +19 -0
- README.HF.md +9 -0
- README.md +0 -2
- package.json +4 -3
- _api/qr.ts → server/app.ts +6 -11
- server/dev.ts +6 -0
- server/index.ts +4 -5
- server/tsconfig.json +16 -0
- server/utils.ts +4 -3
- tsconfig.node.json +1 -2
- vercel.json +0 -5
- vite.config.ts +4 -10
- yarn.lock +11 -95
.eslintignore
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
dist
|
.github/workflows/huggingface.yml
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
name: Sync to Hugging Face hub
|
2 |
+
on:
|
3 |
+
push:
|
4 |
+
branches: [master]
|
5 |
+
workflow_dispatch:
|
6 |
+
|
7 |
+
jobs:
|
8 |
+
sync-to-hub:
|
9 |
+
runs-on: ubuntu-latest
|
10 |
+
steps:
|
11 |
+
- name: Checkout
|
12 |
+
uses: actions/checkout@v4
|
13 |
+
with:
|
14 |
+
fetch-depth: 0
|
15 |
+
- name: Config readme
|
16 |
+
run: |
|
17 |
+
rm README.md
|
18 |
+
mv README.HF.md README.md
|
19 |
+
- name: Commit
|
20 |
+
uses: zwaldowski/git-commit-action@v1
|
21 |
+
with:
|
22 |
+
commit_message: "chore: config"
|
23 |
+
- name: Push to hub
|
24 |
+
env:
|
25 |
+
HF_TOKEN: ${{ secrets.HF_TOKEN }}
|
26 |
+
HF_USERNAME: ${{ secrets.HF_USERNAME }}
|
27 |
+
HF_SPACE_NAME: ${{ secrets.HF_SPACE_NAME }}
|
28 |
+
run: git push -f https://${HF_USERNAME}:${HF_TOKEN}@huggingface.co/spaces/${HF_USERNAME}/${HF_SPACE_NAME} master:main
|
.gitignore
CHANGED
@@ -1,5 +1,3 @@
|
|
1 |
-
.vercel/output
|
2 |
-
|
3 |
# Logs
|
4 |
logs
|
5 |
*.log
|
|
|
|
|
|
|
1 |
# Logs
|
2 |
logs
|
3 |
*.log
|
Dockerfile
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
FROM node:20-alpine as build
|
2 |
+
|
3 |
+
WORKDIR /app
|
4 |
+
|
5 |
+
COPY . .
|
6 |
+
|
7 |
+
RUN yarn --frozen-lockfile \
|
8 |
+
&& yarn build
|
9 |
+
|
10 |
+
|
11 |
+
FROM node:20-alpine
|
12 |
+
|
13 |
+
WORKDIR /app
|
14 |
+
|
15 |
+
COPY --from=build /app/dist .
|
16 |
+
|
17 |
+
RUN chmod -R 777 /app
|
18 |
+
|
19 |
+
CMD ["node", "index.js"]
|
README.HF.md
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
title: Bilibili QR Login
|
3 |
+
emoji: 🌐
|
4 |
+
colorFrom: blue
|
5 |
+
colorTo: pink
|
6 |
+
sdk: docker
|
7 |
+
app_port: 3000
|
8 |
+
pinned: false
|
9 |
+
---
|
README.md
CHANGED
@@ -2,8 +2,6 @@
|
|
2 |
|
3 |
扫码登录获取B站 cookie,用于各种开发场景
|
4 |
|
5 |
-
Vercel 部署:[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FTsuk1ko%2Fbilibili-qr-login)
|
6 |
-
|
7 |
### TODO
|
8 |
|
9 |
- [ ] iframe / 窗口 模式
|
|
|
2 |
|
3 |
扫码登录获取B站 cookie,用于各种开发场景
|
4 |
|
|
|
|
|
5 |
### TODO
|
6 |
|
7 |
- [ ] iframe / 窗口 模式
|
package.json
CHANGED
@@ -5,7 +5,8 @@
|
|
5 |
"license": "MIT",
|
6 |
"scripts": {
|
7 |
"dev": "vite",
|
8 |
-
"build": "vue-tsc && vite build",
|
|
|
9 |
"lint": "eslint .",
|
10 |
"lint:fix": "eslint . --fix"
|
11 |
},
|
@@ -17,6 +18,7 @@
|
|
17 |
"@types/qrcode": "^1.5.5",
|
18 |
"@typescript-eslint/eslint-plugin": "^6.17.0",
|
19 |
"@typescript-eslint/parser": "^6.17.0",
|
|
|
20 |
"@vitejs/plugin-vue": "^5.0.2",
|
21 |
"@vue/eslint-config-prettier": "^9.0.0",
|
22 |
"@vue/eslint-config-typescript": "^12.0.0",
|
@@ -33,8 +35,7 @@
|
|
33 |
"qrcode": "^1.5.3",
|
34 |
"tsx": "^4.7.0",
|
35 |
"typescript": "^5.3.3",
|
36 |
-
"vite": "^5.0.
|
37 |
-
"vite-plugin-vercel": "^2.0.0",
|
38 |
"vite-svg-loader": "^5.1.0",
|
39 |
"vue": "^3.4.5",
|
40 |
"vue-tsc": "^1.8.27",
|
|
|
5 |
"license": "MIT",
|
6 |
"scripts": {
|
7 |
"dev": "vite",
|
8 |
+
"build": "vue-tsc && vite build && ncc build ./server/index.ts -m -o dist",
|
9 |
+
"preview": "cd dist && node index.js",
|
10 |
"lint": "eslint .",
|
11 |
"lint:fix": "eslint . --fix"
|
12 |
},
|
|
|
18 |
"@types/qrcode": "^1.5.5",
|
19 |
"@typescript-eslint/eslint-plugin": "^6.17.0",
|
20 |
"@typescript-eslint/parser": "^6.17.0",
|
21 |
+
"@vercel/ncc": "^0.38.1",
|
22 |
"@vitejs/plugin-vue": "^5.0.2",
|
23 |
"@vue/eslint-config-prettier": "^9.0.0",
|
24 |
"@vue/eslint-config-typescript": "^12.0.0",
|
|
|
35 |
"qrcode": "^1.5.3",
|
36 |
"tsx": "^4.7.0",
|
37 |
"typescript": "^5.3.3",
|
38 |
+
"vite": "^5.0.11",
|
|
|
39 |
"vite-svg-loader": "^5.1.0",
|
40 |
"vue": "^3.4.5",
|
41 |
"vue-tsc": "^1.8.27",
|
_api/qr.ts → server/app.ts
RENAMED
@@ -1,5 +1,4 @@
|
|
1 |
import { Hono } from 'hono';
|
2 |
-
import { handle } from 'hono/vercel';
|
3 |
import { streamSSE } from 'hono/streaming';
|
4 |
import type { StreamingApi } from 'hono/utils/stream';
|
5 |
|
@@ -18,11 +17,9 @@ enum PollQrResultCode {
|
|
18 |
|
19 |
const keepPollQrResultCode = new Set([PollQrResultCode.NOT_CONFIRMED, PollQrResultCode.NOT_SCANNED]);
|
20 |
|
21 |
-
export const
|
22 |
|
23 |
-
|
24 |
-
|
25 |
-
app.get('/qr', c => {
|
26 |
if (process.env.NODE_ENV !== 'development') {
|
27 |
try {
|
28 |
const referer = c.req.header('Referer');
|
@@ -49,7 +46,7 @@ app.get('/qr', c => {
|
|
49 |
const qr = new LoginQr(c.req.header('User-Agent'), lastEventID);
|
50 |
if (!lastEventID) {
|
51 |
const genRes = await qr.generate();
|
52 |
-
console.log(
|
53 |
await stream.writeSSE({ data: JSON.stringify(genRes), event: SSEEvent.GENERATE, id: genRes.key });
|
54 |
if (genRes.code !== 0) {
|
55 |
await stream.writeSSE({ data: '', event: SSEEvent.END });
|
@@ -61,7 +58,7 @@ app.get('/qr', c => {
|
|
61 |
|
62 |
// 轮询
|
63 |
for (let i = 0; i < 100 && !streamClosed; i++) {
|
64 |
-
console.log('poll', i
|
65 |
const result = await qr.poll();
|
66 |
await stream.writeSSE({ data: JSON.stringify(result), event: SSEEvent.POLL });
|
67 |
if (!keepPollQrResultCode.has(result.code)) {
|
@@ -77,8 +74,6 @@ app.get('/qr', c => {
|
|
77 |
});
|
78 |
});
|
79 |
|
80 |
-
export const GET = handle(app);
|
81 |
-
|
82 |
interface GenerateQrResp {
|
83 |
code: number;
|
84 |
message: string;
|
@@ -109,10 +104,10 @@ interface PollQrResult {
|
|
109 |
}
|
110 |
|
111 |
class LoginQr {
|
112 |
-
private readonly header: Record<string, string
|
113 |
|
114 |
public constructor(
|
115 |
-
userAgent
|
116 |
private key = '',
|
117 |
) {
|
118 |
this.header = {
|
|
|
1 |
import { Hono } from 'hono';
|
|
|
2 |
import { streamSSE } from 'hono/streaming';
|
3 |
import type { StreamingApi } from 'hono/utils/stream';
|
4 |
|
|
|
17 |
|
18 |
const keepPollQrResultCode = new Set([PollQrResultCode.NOT_CONFIRMED, PollQrResultCode.NOT_SCANNED]);
|
19 |
|
20 |
+
export const app = new Hono();
|
21 |
|
22 |
+
app.get('/api/qr', c => {
|
|
|
|
|
23 |
if (process.env.NODE_ENV !== 'development') {
|
24 |
try {
|
25 |
const referer = c.req.header('Referer');
|
|
|
46 |
const qr = new LoginQr(c.req.header('User-Agent'), lastEventID);
|
47 |
if (!lastEventID) {
|
48 |
const genRes = await qr.generate();
|
49 |
+
console.log(Date.now(), 'generate');
|
50 |
await stream.writeSSE({ data: JSON.stringify(genRes), event: SSEEvent.GENERATE, id: genRes.key });
|
51 |
if (genRes.code !== 0) {
|
52 |
await stream.writeSSE({ data: '', event: SSEEvent.END });
|
|
|
58 |
|
59 |
// 轮询
|
60 |
for (let i = 0; i < 100 && !streamClosed; i++) {
|
61 |
+
console.log(Date.now(), 'poll', i);
|
62 |
const result = await qr.poll();
|
63 |
await stream.writeSSE({ data: JSON.stringify(result), event: SSEEvent.POLL });
|
64 |
if (!keepPollQrResultCode.has(result.code)) {
|
|
|
74 |
});
|
75 |
});
|
76 |
|
|
|
|
|
77 |
interface GenerateQrResp {
|
78 |
code: number;
|
79 |
message: string;
|
|
|
104 |
}
|
105 |
|
106 |
class LoginQr {
|
107 |
+
private readonly header: Record<string, string> = {};
|
108 |
|
109 |
public constructor(
|
110 |
+
userAgent = '',
|
111 |
private key = '',
|
112 |
) {
|
113 |
this.header = {
|
server/dev.ts
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { serve } from '@hono/node-server';
|
2 |
+
import { app } from './app';
|
3 |
+
|
4 |
+
serve(app, () => {
|
5 |
+
console.log('API server start running.');
|
6 |
+
});
|
server/index.ts
CHANGED
@@ -1,10 +1,9 @@
|
|
1 |
import { serve } from '@hono/node-server';
|
2 |
-
import {
|
3 |
-
import { app
|
4 |
|
5 |
-
|
6 |
-
app.route('/', qr);
|
7 |
|
8 |
serve(app, () => {
|
9 |
-
console.log('
|
10 |
});
|
|
|
1 |
import { serve } from '@hono/node-server';
|
2 |
+
import { serveStatic } from '@hono/node-server/serve-static';
|
3 |
+
import { app } from './app';
|
4 |
|
5 |
+
app.get('*', serveStatic({ root: './static' }));
|
|
|
6 |
|
7 |
serve(app, () => {
|
8 |
+
console.log('Server start.');
|
9 |
});
|
server/tsconfig.json
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"compilerOptions": {
|
3 |
+
"skipLibCheck": true,
|
4 |
+
"target": "ESNext",
|
5 |
+
"module": "ESNext",
|
6 |
+
"moduleResolution": "bundler",
|
7 |
+
"allowSyntheticDefaultImports": true,
|
8 |
+
"isolatedModules": true,
|
9 |
+
|
10 |
+
/* Linting */
|
11 |
+
"strict": true,
|
12 |
+
"noUnusedParameters": true,
|
13 |
+
"noFallthroughCasesInSwitch": true
|
14 |
+
},
|
15 |
+
"include": ["**/*.ts"]
|
16 |
+
}
|
server/utils.ts
CHANGED
@@ -1,9 +1,10 @@
|
|
1 |
import { createServer } from 'net';
|
2 |
import nodemon from 'nodemon';
|
|
|
3 |
|
4 |
const checkPortInUse = (port = 3000) =>
|
5 |
new Promise<boolean>(resolve => {
|
6 |
-
const tester = createServer()
|
7 |
.once('error', (err: any) => {
|
8 |
resolve(err.code === 'EADDRINUSE');
|
9 |
})
|
@@ -14,9 +15,9 @@ const checkPortInUse = (port = 3000) =>
|
|
14 |
export const startApiServer = async () => {
|
15 |
if (await checkPortInUse()) return;
|
16 |
nodemon({
|
17 |
-
script: 'server/
|
18 |
ext: 'ts',
|
19 |
-
watch: ['
|
20 |
execMap: {
|
21 |
ts: 'tsx',
|
22 |
},
|
|
|
1 |
import { createServer } from 'net';
|
2 |
import nodemon from 'nodemon';
|
3 |
+
import type { Server } from 'net';
|
4 |
|
5 |
const checkPortInUse = (port = 3000) =>
|
6 |
new Promise<boolean>(resolve => {
|
7 |
+
const tester: Server = createServer()
|
8 |
.once('error', (err: any) => {
|
9 |
resolve(err.code === 'EADDRINUSE');
|
10 |
})
|
|
|
15 |
export const startApiServer = async () => {
|
16 |
if (await checkPortInUse()) return;
|
17 |
nodemon({
|
18 |
+
script: 'server/dev.ts',
|
19 |
ext: 'ts',
|
20 |
+
watch: ['server'],
|
21 |
execMap: {
|
22 |
ts: 'tsx',
|
23 |
},
|
tsconfig.node.json
CHANGED
@@ -2,10 +2,9 @@
|
|
2 |
"compilerOptions": {
|
3 |
"composite": true,
|
4 |
"skipLibCheck": true,
|
5 |
-
"target": "ES2022",
|
6 |
"module": "ESNext",
|
7 |
"moduleResolution": "bundler",
|
8 |
"allowSyntheticDefaultImports": true
|
9 |
},
|
10 |
-
"include": ["vite.config.ts", "
|
11 |
}
|
|
|
2 |
"compilerOptions": {
|
3 |
"composite": true,
|
4 |
"skipLibCheck": true,
|
|
|
5 |
"module": "ESNext",
|
6 |
"moduleResolution": "bundler",
|
7 |
"allowSyntheticDefaultImports": true
|
8 |
},
|
9 |
+
"include": ["vite.config.ts", "server/**/*.ts"]
|
10 |
}
|
vercel.json
DELETED
@@ -1,5 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"github": {
|
3 |
-
"silent": true
|
4 |
-
}
|
5 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
vite.config.ts
CHANGED
@@ -1,26 +1,20 @@
|
|
1 |
-
import { rename } from 'fs/promises';
|
2 |
import { defineConfig } from 'vite';
|
3 |
import vue from '@vitejs/plugin-vue';
|
4 |
-
import vercel from 'vite-plugin-vercel';
|
5 |
import svgLoader from 'vite-svg-loader';
|
6 |
import { startApiServer } from './server/utils';
|
7 |
-
import type { ViteVercelConfig } from 'vite-plugin-vercel';
|
8 |
|
9 |
// https://vitejs.dev/config/
|
10 |
export default defineConfig(({ command }) => {
|
11 |
if (command === 'serve') startApiServer();
|
12 |
return {
|
13 |
-
plugins: [vue(), svgLoader()
|
14 |
server: {
|
15 |
proxy: {
|
16 |
'/api': 'http://127.0.0.1:3000',
|
17 |
},
|
18 |
},
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
return {};
|
23 |
-
},
|
24 |
-
} as ViteVercelConfig,
|
25 |
};
|
26 |
});
|
|
|
|
|
1 |
import { defineConfig } from 'vite';
|
2 |
import vue from '@vitejs/plugin-vue';
|
|
|
3 |
import svgLoader from 'vite-svg-loader';
|
4 |
import { startApiServer } from './server/utils';
|
|
|
5 |
|
6 |
// https://vitejs.dev/config/
|
7 |
export default defineConfig(({ command }) => {
|
8 |
if (command === 'serve') startApiServer();
|
9 |
return {
|
10 |
+
plugins: [vue(), svgLoader()],
|
11 |
server: {
|
12 |
proxy: {
|
13 |
'/api': 'http://127.0.0.1:3000',
|
14 |
},
|
15 |
},
|
16 |
+
build: {
|
17 |
+
outDir: 'dist/static',
|
18 |
+
},
|
|
|
|
|
|
|
19 |
};
|
20 |
});
|
yarn.lock
CHANGED
@@ -7,35 +7,11 @@
|
|
7 |
resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf"
|
8 |
integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
|
9 |
|
10 |
-
"@babel/
|
11 |
-
version "7.23.4"
|
12 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83"
|
13 |
-
integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==
|
14 |
-
|
15 |
-
"@babel/helper-validator-identifier@^7.22.20":
|
16 |
-
version "7.22.20"
|
17 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
|
18 |
-
integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
|
19 |
-
|
20 |
-
"@babel/parser@^7.23.3", "@babel/parser@^7.23.6":
|
21 |
version "7.23.6"
|
22 |
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b"
|
23 |
integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==
|
24 |
|
25 |
-
"@babel/types@^7.23.3":
|
26 |
-
version "7.23.6"
|
27 |
-
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd"
|
28 |
-
integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==
|
29 |
-
dependencies:
|
30 |
-
"@babel/helper-string-parser" "^7.23.4"
|
31 |
-
"@babel/helper-validator-identifier" "^7.22.20"
|
32 |
-
to-fast-properties "^2.0.0"
|
33 |
-
|
34 |
-
"@brillout/libassert@^0.5.8":
|
35 |
-
version "0.5.8"
|
36 |
-
resolved "https://registry.yarnpkg.com/@brillout/libassert/-/libassert-0.5.8.tgz#d0f78e5c0ee53aaae8c2aa675f0b0dfb544e32b0"
|
37 |
-
integrity sha512-u/fu+jTRUdNdbLONGq1plCfh+k2/XjSbGVTfnF3rHnSPZd+ABWp0XinR5ifrFkyGOzMbzv8IiQ44lZ4U6ZGrGA==
|
38 |
-
|
39 |
"@chenfengyuan/vue-qrcode@^2.0.0":
|
40 |
version "2.0.0"
|
41 |
resolved "https://registry.yarnpkg.com/@chenfengyuan/vue-qrcode/-/vue-qrcode-2.0.0.tgz#8cd01f6fc528d471680ebe812ec47c830aea7e63"
|
@@ -440,19 +416,10 @@
|
|
440 |
resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406"
|
441 |
integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
|
442 |
|
443 |
-
"@vercel/
|
444 |
-
version "
|
445 |
-
resolved "https://registry.yarnpkg.com/@vercel/
|
446 |
-
integrity sha512-
|
447 |
-
|
448 |
-
"@vercel/routing-utils@^3.0.0":
|
449 |
-
version "3.1.0"
|
450 |
-
resolved "https://registry.yarnpkg.com/@vercel/routing-utils/-/routing-utils-3.1.0.tgz#6a71903f4106006b2cb52add9d3b708b59acaaaf"
|
451 |
-
integrity sha512-Ci5xTjVTJY/JLZXpCXpLehMft97i9fH34nu9PGav6DtwkVUF6TOPX86U0W0niQjMZ5n6/ZP0BwcJK2LOozKaGw==
|
452 |
-
dependencies:
|
453 |
-
path-to-regexp "6.1.0"
|
454 |
-
optionalDependencies:
|
455 |
-
ajv "^6.0.0"
|
456 |
|
457 |
"@vitejs/plugin-vue@^5.0.2":
|
458 |
version "5.0.2"
|
@@ -631,7 +598,7 @@ acorn@^8.9.0:
|
|
631 |
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a"
|
632 |
integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==
|
633 |
|
634 |
-
ajv@^6.
|
635 |
version "6.12.6"
|
636 |
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
|
637 |
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
|
@@ -1188,7 +1155,7 @@ es-to-primitive@^1.2.1:
|
|
1188 |
is-date-object "^1.0.1"
|
1189 |
is-symbol "^1.0.2"
|
1190 |
|
1191 |
-
esbuild@^0.19.3, esbuild
|
1192 |
version "0.19.11"
|
1193 |
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.11.tgz#4a02dca031e768b5556606e1b468fe72e3325d96"
|
1194 |
integrity sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==
|
@@ -1395,14 +1362,6 @@ esutils@^2.0.2:
|
|
1395 |
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
|
1396 |
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
|
1397 |
|
1398 |
-
eval@^0.1.8:
|
1399 |
-
version "0.1.8"
|
1400 |
-
resolved "https://registry.yarnpkg.com/eval/-/eval-0.1.8.tgz#2b903473b8cc1d1989b83a1e7923f883eb357f85"
|
1401 |
-
integrity sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==
|
1402 |
-
dependencies:
|
1403 |
-
"@types/node" "*"
|
1404 |
-
require-like ">= 0.1.1"
|
1405 |
-
|
1406 |
eventemitter3@^5.0.1:
|
1407 |
version "5.0.1"
|
1408 |
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4"
|
@@ -2114,15 +2073,6 @@ magic-string@^0.30.5:
|
|
2114 |
dependencies:
|
2115 |
"@jridgewell/sourcemap-codec" "^1.4.15"
|
2116 |
|
2117 |
-
magicast@^0.3.0:
|
2118 |
-
version "0.3.2"
|
2119 |
-
resolved "https://registry.yarnpkg.com/magicast/-/magicast-0.3.2.tgz#42dcade5573ed8f10f5540f9d04964e21dba9130"
|
2120 |
-
integrity sha512-Fjwkl6a0syt9TFN0JSYpOybxiMCkYNEeOTnOTNRbjphirLakznZXAqrXgj/7GG3D1dvETONNwrBfinvAbpunDg==
|
2121 |
-
dependencies:
|
2122 |
-
"@babel/parser" "^7.23.3"
|
2123 |
-
"@babel/types" "^7.23.3"
|
2124 |
-
source-map-js "^1.0.2"
|
2125 |
-
|
2126 |
make-dir@^2.1.0:
|
2127 |
version "2.1.0"
|
2128 |
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
|
@@ -2446,11 +2396,6 @@ path-parse@^1.0.7:
|
|
2446 |
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
2447 |
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
|
2448 |
|
2449 |
-
path-to-regexp@6.1.0:
|
2450 |
-
version "6.1.0"
|
2451 |
-
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.1.0.tgz#0b18f88b7a0ce0bfae6a25990c909ab86f512427"
|
2452 |
-
integrity sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw==
|
2453 |
-
|
2454 |
path-type@^4.0.0:
|
2455 |
version "4.0.0"
|
2456 |
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
|
@@ -2571,11 +2516,6 @@ require-directory@^2.1.1:
|
|
2571 |
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
|
2572 |
integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
|
2573 |
|
2574 |
-
"require-like@>= 0.1.1":
|
2575 |
-
version "0.1.2"
|
2576 |
-
resolved "https://registry.yarnpkg.com/require-like/-/require-like-0.1.2.tgz#ad6f30c13becd797010c468afa775c0c0a6b47fa"
|
2577 |
-
integrity sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==
|
2578 |
-
|
2579 |
require-main-filename@^2.0.0:
|
2580 |
version "2.0.0"
|
2581 |
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
|
@@ -2942,11 +2882,6 @@ text-table@^0.2.0:
|
|
2942 |
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
|
2943 |
integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
|
2944 |
|
2945 |
-
to-fast-properties@^2.0.0:
|
2946 |
-
version "2.0.0"
|
2947 |
-
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
|
2948 |
-
integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
|
2949 |
-
|
2950 |
to-regex-range@^5.0.1:
|
2951 |
version "5.0.1"
|
2952 |
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
|
@@ -3084,20 +3019,6 @@ util-deprecate@^1.0.2:
|
|
3084 |
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
3085 |
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
|
3086 |
|
3087 |
-
vite-plugin-vercel@^2.0.0:
|
3088 |
-
version "2.0.0"
|
3089 |
-
resolved "https://registry.yarnpkg.com/vite-plugin-vercel/-/vite-plugin-vercel-2.0.0.tgz#8b463eec1302f087438aebd0b1663829aa235562"
|
3090 |
-
integrity sha512-Zyyz+RnZpfM6RZUlHXrf3/sGWUSPAWmME87tIONZ5Lezt4LgmYrX3l/9gYxWE7yFMqMIR5VCSGX0fy7ITPWD0Q==
|
3091 |
-
dependencies:
|
3092 |
-
"@brillout/libassert" "^0.5.8"
|
3093 |
-
"@vercel/build-utils" "^7.2.2"
|
3094 |
-
"@vercel/routing-utils" "^3.0.0"
|
3095 |
-
esbuild "^0.19.4"
|
3096 |
-
eval "^0.1.8"
|
3097 |
-
fast-glob "^3.3.1"
|
3098 |
-
magicast "^0.3.0"
|
3099 |
-
zod "^3.22.4"
|
3100 |
-
|
3101 |
vite-svg-loader@^5.1.0:
|
3102 |
version "5.1.0"
|
3103 |
resolved "https://registry.yarnpkg.com/vite-svg-loader/-/vite-svg-loader-5.1.0.tgz#b0b89bd8024bc0f707d0e8d7422446ac01576d94"
|
@@ -3105,10 +3026,10 @@ vite-svg-loader@^5.1.0:
|
|
3105 |
dependencies:
|
3106 |
svgo "^3.0.2"
|
3107 |
|
3108 |
-
vite@^5.0.
|
3109 |
-
version "5.0.
|
3110 |
-
resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.
|
3111 |
-
integrity sha512-
|
3112 |
dependencies:
|
3113 |
esbuild "^0.19.3"
|
3114 |
postcss "^8.4.32"
|
@@ -3285,8 +3206,3 @@ yorkie@^2.0.0:
|
|
3285 |
is-ci "^1.0.10"
|
3286 |
normalize-path "^1.0.0"
|
3287 |
strip-indent "^2.0.0"
|
3288 |
-
|
3289 |
-
zod@^3.22.4:
|
3290 |
-
version "3.22.4"
|
3291 |
-
resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff"
|
3292 |
-
integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==
|
|
|
7 |
resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf"
|
8 |
integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
|
9 |
|
10 |
+
"@babel/parser@^7.23.6":
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
version "7.23.6"
|
12 |
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b"
|
13 |
integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==
|
14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
"@chenfengyuan/vue-qrcode@^2.0.0":
|
16 |
version "2.0.0"
|
17 |
resolved "https://registry.yarnpkg.com/@chenfengyuan/vue-qrcode/-/vue-qrcode-2.0.0.tgz#8cd01f6fc528d471680ebe812ec47c830aea7e63"
|
|
|
416 |
resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406"
|
417 |
integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
|
418 |
|
419 |
+
"@vercel/ncc@^0.38.1":
|
420 |
+
version "0.38.1"
|
421 |
+
resolved "https://registry.yarnpkg.com/@vercel/ncc/-/ncc-0.38.1.tgz#13f08738111e1d9e8a22fd6141f3590e54d9a60e"
|
422 |
+
integrity sha512-IBBb+iI2NLu4VQn3Vwldyi2QwaXt5+hTyh58ggAMoCGE6DJmPvwL3KPBWcJl1m9LYPChBLE980Jw+CS4Wokqxw==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
423 |
|
424 |
"@vitejs/plugin-vue@^5.0.2":
|
425 |
version "5.0.2"
|
|
|
598 |
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a"
|
599 |
integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==
|
600 |
|
601 |
+
ajv@^6.12.4:
|
602 |
version "6.12.6"
|
603 |
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
|
604 |
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
|
|
|
1155 |
is-date-object "^1.0.1"
|
1156 |
is-symbol "^1.0.2"
|
1157 |
|
1158 |
+
esbuild@^0.19.3, esbuild@~0.19.10:
|
1159 |
version "0.19.11"
|
1160 |
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.11.tgz#4a02dca031e768b5556606e1b468fe72e3325d96"
|
1161 |
integrity sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==
|
|
|
1362 |
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
|
1363 |
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
|
1364 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1365 |
eventemitter3@^5.0.1:
|
1366 |
version "5.0.1"
|
1367 |
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4"
|
|
|
2073 |
dependencies:
|
2074 |
"@jridgewell/sourcemap-codec" "^1.4.15"
|
2075 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2076 |
make-dir@^2.1.0:
|
2077 |
version "2.1.0"
|
2078 |
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
|
|
|
2396 |
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
2397 |
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
|
2398 |
|
|
|
|
|
|
|
|
|
|
|
2399 |
path-type@^4.0.0:
|
2400 |
version "4.0.0"
|
2401 |
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
|
|
|
2516 |
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
|
2517 |
integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
|
2518 |
|
|
|
|
|
|
|
|
|
|
|
2519 |
require-main-filename@^2.0.0:
|
2520 |
version "2.0.0"
|
2521 |
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
|
|
|
2882 |
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
|
2883 |
integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
|
2884 |
|
|
|
|
|
|
|
|
|
|
|
2885 |
to-regex-range@^5.0.1:
|
2886 |
version "5.0.1"
|
2887 |
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
|
|
|
3019 |
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
3020 |
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
|
3021 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3022 |
vite-svg-loader@^5.1.0:
|
3023 |
version "5.1.0"
|
3024 |
resolved "https://registry.yarnpkg.com/vite-svg-loader/-/vite-svg-loader-5.1.0.tgz#b0b89bd8024bc0f707d0e8d7422446ac01576d94"
|
|
|
3026 |
dependencies:
|
3027 |
svgo "^3.0.2"
|
3028 |
|
3029 |
+
vite@^5.0.11:
|
3030 |
+
version "5.0.11"
|
3031 |
+
resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.11.tgz#31562e41e004cb68e1d51f5d2c641ab313b289e4"
|
3032 |
+
integrity sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==
|
3033 |
dependencies:
|
3034 |
esbuild "^0.19.3"
|
3035 |
postcss "^8.4.32"
|
|
|
3206 |
is-ci "^1.0.10"
|
3207 |
normalize-path "^1.0.0"
|
3208 |
strip-indent "^2.0.0"
|
|
|
|
|
|
|
|
|
|