From 2fd507fc49898971c66508b90bb2caf5d5135c1a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=8D=A2=E4=BA=A8=E8=80=80?= <2640788668@qq.com>
Date: Sat, 8 Jun 2024 17:09:05 +0800
Subject: [PATCH] =?UTF-8?q?=E5=8D=A2=E4=BA=A8=E8=80=80=E7=9A=84remake?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../remake_NodeJs+Vue/111/.idea/.gitignore" | 8 +
.../remake_NodeJs+Vue/111/.idea/111.iml" | 9 +
.../111/.idea/dataSources.xml" | 17 +
.../inspectionProfiles/Project_Default.xml" | 5 +
.../remake_NodeJs+Vue/111/.idea/misc.xml" | 6 +
.../remake_NodeJs+Vue/111/.idea/modules.xml" | 8 +
.../111/back/package-lock.json" | 1288 +++++++++++++++++
.../remake_NodeJs+Vue/111/back/package.json" | 22 +
.../111/back/src/app/app.js" | 7 +
.../remake_NodeJs+Vue/111/back/src/db/db.js" | 8 +
.../remake_NodeJs+Vue/111/back/src/main.js" | 12 +
.../111/back/src/model/model.js" | 25 +
.../111/back/src/router/router.js" | 76 +
.../111/front/exra/.gitignore" | 30 +
.../111/front/exra/.vscode/extensions.json" | 3 +
.../111/front/exra/README.md" | 29 +
.../111/front/exra/index.html" | 13 +
.../111/front/exra/jsconfig.json" | 8 +
.../111/front/exra/package-lock.json" | 1059 ++++++++++++++
.../111/front/exra/package.json" | 19 +
.../111/front/exra/public/favicon.ico" | Bin 0 -> 4286 bytes
.../111/front/exra/src/App.vue" | 134 ++
.../111/front/exra/src/assets/base.css" | 86 ++
.../111/front/exra/src/assets/logo.svg" | 1 +
.../111/front/exra/src/assets/main.css" | 35 +
.../111/front/exra/src/main.js" | 5 +
.../111/front/exra/vite.config.js" | 16 +
.../Video_2024-06-08_170134.wmv" | Bin 0 -> 3146262 bytes
28 files changed, 2929 insertions(+)
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/.gitignore"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/111.iml"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/dataSources.xml"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/inspectionProfiles/Project_Default.xml"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/misc.xml"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/modules.xml"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/package-lock.json"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/package.json"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/src/app/app.js"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/src/db/db.js"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/src/main.js"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/src/model/model.js"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/src/router/router.js"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/.gitignore"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/.vscode/extensions.json"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/README.md"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/index.html"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/jsconfig.json"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/package-lock.json"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/package.json"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/public/favicon.ico"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/src/App.vue"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/src/assets/base.css"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/src/assets/logo.svg"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/src/assets/main.css"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/src/main.js"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/vite.config.js"
create mode 100644 "21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/Video_2024-06-08_170134.wmv"
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/.gitignore" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/.gitignore"
new file mode 100644
index 0000000..35410ca
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/.gitignore"
@@ -0,0 +1,8 @@
+# 默认忽略的文件
+/shelf/
+/workspace.xml
+# 基于编辑器的 HTTP 客户端请求
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/111.iml" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/111.iml"
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/111.iml"
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/dataSources.xml" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/dataSources.xml"
new file mode 100644
index 0000000..1e1ff6a
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/dataSources.xml"
@@ -0,0 +1,17 @@
+
+
+
+
+ mysql.8
+ true
+ com.mysql.cj.jdbc.Driver
+ jdbc:mysql://localhost:3306
+
+
+
+
+
+ $ProjectFileDir$
+
+
+
\ No newline at end of file
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/inspectionProfiles/Project_Default.xml" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/inspectionProfiles/Project_Default.xml"
new file mode 100644
index 0000000..8d66637
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/inspectionProfiles/Project_Default.xml"
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/misc.xml" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/misc.xml"
new file mode 100644
index 0000000..aad31e3
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/misc.xml"
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/modules.xml" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/modules.xml"
new file mode 100644
index 0000000..bfd6513
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/.idea/modules.xml"
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/package-lock.json" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/package-lock.json"
new file mode 100644
index 0000000..819a946
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/package-lock.json"
@@ -0,0 +1,1288 @@
+{
+ "name": "back",
+ "version": "1.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "back",
+ "version": "1.0.0",
+ "license": "ISC",
+ "dependencies": {
+ "koa": "^2.15.3",
+ "koa-body": "^6.0.1",
+ "koa-bodyparser": "^4.4.1",
+ "koa-cors": "^0.0.16",
+ "koa-router": "^12.0.1",
+ "mysql2": "^3.10.0",
+ "sequelize": "^6.37.3"
+ }
+ },
+ "node_modules/@hapi/bourne": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/@hapi/bourne/-/bourne-3.0.0.tgz",
+ "integrity": "sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w=="
+ },
+ "node_modules/@types/accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmmirror.com/@types/accepts/-/accepts-1.3.7.tgz",
+ "integrity": "sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/body-parser": {
+ "version": "1.19.5",
+ "resolved": "https://registry.npmmirror.com/@types/body-parser/-/body-parser-1.19.5.tgz",
+ "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
+ "dependencies": {
+ "@types/connect": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/co-body": {
+ "version": "6.1.3",
+ "resolved": "https://registry.npmmirror.com/@types/co-body/-/co-body-6.1.3.tgz",
+ "integrity": "sha512-UhuhrQ5hclX6UJctv5m4Rfp52AfG9o9+d9/HwjxhVB5NjXxr5t9oKgJxN8xRHgr35oo8meUEHUPFWiKg6y71aA==",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/qs": "*"
+ }
+ },
+ "node_modules/@types/connect": {
+ "version": "3.4.38",
+ "resolved": "https://registry.npmmirror.com/@types/connect/-/connect-3.4.38.tgz",
+ "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/content-disposition": {
+ "version": "0.5.8",
+ "resolved": "https://registry.npmmirror.com/@types/content-disposition/-/content-disposition-0.5.8.tgz",
+ "integrity": "sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg=="
+ },
+ "node_modules/@types/cookies": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmmirror.com/@types/cookies/-/cookies-0.9.0.tgz",
+ "integrity": "sha512-40Zk8qR147RABiQ7NQnBzWzDcjKzNrntB5BAmeGCb2p/MIyOE+4BVvc17wumsUqUw00bJYqoXFHYygQnEFh4/Q==",
+ "dependencies": {
+ "@types/connect": "*",
+ "@types/express": "*",
+ "@types/keygrip": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/debug": {
+ "version": "4.1.12",
+ "resolved": "https://registry.npmmirror.com/@types/debug/-/debug-4.1.12.tgz",
+ "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
+ "dependencies": {
+ "@types/ms": "*"
+ }
+ },
+ "node_modules/@types/express": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmmirror.com/@types/express/-/express-4.17.21.tgz",
+ "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==",
+ "dependencies": {
+ "@types/body-parser": "*",
+ "@types/express-serve-static-core": "^4.17.33",
+ "@types/qs": "*",
+ "@types/serve-static": "*"
+ }
+ },
+ "node_modules/@types/express-serve-static-core": {
+ "version": "4.19.3",
+ "resolved": "https://registry.npmmirror.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.3.tgz",
+ "integrity": "sha512-KOzM7MhcBFlmnlr/fzISFF5vGWVSvN6fTd4T+ExOt08bA/dA5kpSzY52nMsI1KDFmUREpJelPYyuslLRSjjgCg==",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/qs": "*",
+ "@types/range-parser": "*",
+ "@types/send": "*"
+ }
+ },
+ "node_modules/@types/formidable": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmmirror.com/@types/formidable/-/formidable-2.0.6.tgz",
+ "integrity": "sha512-L4HcrA05IgQyNYJj6kItuIkXrInJvsXTPC5B1i64FggWKKqSL+4hgt7asiSNva75AoLQjq29oPxFfU4GAQ6Z2w==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/http-assert": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmmirror.com/@types/http-assert/-/http-assert-1.5.5.tgz",
+ "integrity": "sha512-4+tE/lwdAahgZT1g30Jkdm9PzFRde0xwxBNUyRsCitRvCQB90iuA2uJYdUnhnANRcqGXaWOGY4FEoxeElNAK2g=="
+ },
+ "node_modules/@types/http-errors": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/@types/http-errors/-/http-errors-2.0.4.tgz",
+ "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA=="
+ },
+ "node_modules/@types/keygrip": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmmirror.com/@types/keygrip/-/keygrip-1.0.6.tgz",
+ "integrity": "sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ=="
+ },
+ "node_modules/@types/koa": {
+ "version": "2.15.0",
+ "resolved": "https://registry.npmmirror.com/@types/koa/-/koa-2.15.0.tgz",
+ "integrity": "sha512-7QFsywoE5URbuVnG3loe03QXuGajrnotr3gQkXcEBShORai23MePfFYdhz90FEtBBpkyIYQbVD+evKtloCgX3g==",
+ "dependencies": {
+ "@types/accepts": "*",
+ "@types/content-disposition": "*",
+ "@types/cookies": "*",
+ "@types/http-assert": "*",
+ "@types/http-errors": "*",
+ "@types/keygrip": "*",
+ "@types/koa-compose": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/koa-compose": {
+ "version": "3.2.8",
+ "resolved": "https://registry.npmmirror.com/@types/koa-compose/-/koa-compose-3.2.8.tgz",
+ "integrity": "sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA==",
+ "dependencies": {
+ "@types/koa": "*"
+ }
+ },
+ "node_modules/@types/mime": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmmirror.com/@types/mime/-/mime-1.3.5.tgz",
+ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="
+ },
+ "node_modules/@types/ms": {
+ "version": "0.7.34",
+ "resolved": "https://registry.npmmirror.com/@types/ms/-/ms-0.7.34.tgz",
+ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g=="
+ },
+ "node_modules/@types/node": {
+ "version": "20.14.2",
+ "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.14.2.tgz",
+ "integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==",
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/@types/qs": {
+ "version": "6.9.15",
+ "resolved": "https://registry.npmmirror.com/@types/qs/-/qs-6.9.15.tgz",
+ "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg=="
+ },
+ "node_modules/@types/range-parser": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmmirror.com/@types/range-parser/-/range-parser-1.2.7.tgz",
+ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ=="
+ },
+ "node_modules/@types/send": {
+ "version": "0.17.4",
+ "resolved": "https://registry.npmmirror.com/@types/send/-/send-0.17.4.tgz",
+ "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
+ "dependencies": {
+ "@types/mime": "^1",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/serve-static": {
+ "version": "1.15.7",
+ "resolved": "https://registry.npmmirror.com/@types/serve-static/-/serve-static-1.15.7.tgz",
+ "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
+ "dependencies": {
+ "@types/http-errors": "*",
+ "@types/node": "*",
+ "@types/send": "*"
+ }
+ },
+ "node_modules/@types/validator": {
+ "version": "13.11.10",
+ "resolved": "https://registry.npmmirror.com/@types/validator/-/validator-13.11.10.tgz",
+ "integrity": "sha512-e2PNXoXLr6Z+dbfx5zSh9TRlXJrELycxiaXznp4S5+D2M3b9bqJEitNHA5923jhnB2zzFiZHa2f0SI1HoIahpg=="
+ },
+ "node_modules/accepts": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "dependencies": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmmirror.com/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
+ },
+ "node_modules/bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/cache-content-type": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/cache-content-type/-/cache-content-type-1.0.1.tgz",
+ "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==",
+ "dependencies": {
+ "mime-types": "^2.1.18",
+ "ylru": "^1.2.0"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.7.tgz",
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmmirror.com/co/-/co-4.6.0.tgz",
+ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
+ "engines": {
+ "iojs": ">= 1.0.0",
+ "node": ">= 0.12.0"
+ }
+ },
+ "node_modules/co-body": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmmirror.com/co-body/-/co-body-6.2.0.tgz",
+ "integrity": "sha512-Kbpv2Yd1NdL1V/V4cwLVxraHDV6K8ayohr2rmH0J87Er8+zJjcTa6dAn9QMPC9CRgU8+aNajKbSf1TzDB1yKPA==",
+ "dependencies": {
+ "@hapi/bourne": "^3.0.0",
+ "inflation": "^2.0.0",
+ "qs": "^6.5.2",
+ "raw-body": "^2.3.3",
+ "type-is": "^1.6.16"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/content-disposition": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+ "dependencies": {
+ "safe-buffer": "5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/content-type": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/cookies": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmmirror.com/cookies/-/cookies-0.9.1.tgz",
+ "integrity": "sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==",
+ "dependencies": {
+ "depd": "~2.0.0",
+ "keygrip": "~1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/copy-to": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/copy-to/-/copy-to-2.0.1.tgz",
+ "integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w=="
+ },
+ "node_modules/debug": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.5.tgz",
+ "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/deep-equal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/deep-equal/-/deep-equal-1.0.1.tgz",
+ "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw=="
+ },
+ "node_modules/define-data-property": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
+ },
+ "node_modules/denque": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/denque/-/denque-2.1.0.tgz",
+ "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/destroy": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/dezalgo": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/dezalgo/-/dezalgo-1.0.4.tgz",
+ "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
+ "dependencies": {
+ "asap": "^2.0.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/dottie": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmmirror.com/dottie/-/dottie-2.0.6.tgz",
+ "integrity": "sha512-iGCHkfUc5kFekGiqhe8B/mdaurD+lakO9txNnTvKtA6PISrw86LgqHvRzWYPyoE2Ph5aMIrCw9/uko6XHTKCwA=="
+ },
+ "node_modules/ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
+ },
+ "node_modules/encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/es-define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.0.tgz",
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "dependencies": {
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ },
+ "node_modules/formidable": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmmirror.com/formidable/-/formidable-2.1.2.tgz",
+ "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==",
+ "dependencies": {
+ "dezalgo": "^1.0.4",
+ "hexoid": "^1.0.0",
+ "once": "^1.4.0",
+ "qs": "^6.11.0"
+ },
+ "funding": {
+ "url": "https://ko-fi.com/tunnckoCore/commissions"
+ }
+ },
+ "node_modules/fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/generate-function": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/generate-function/-/generate-function-2.3.1.tgz",
+ "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==",
+ "dependencies": {
+ "is-property": "^1.0.2"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ "dependencies": {
+ "es-define-property": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.3.tgz",
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-tostringtag": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+ "dependencies": {
+ "has-symbols": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/hexoid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/hexoid/-/hexoid-1.0.0.tgz",
+ "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/http-assert": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmmirror.com/http-assert/-/http-assert-1.5.0.tgz",
+ "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==",
+ "dependencies": {
+ "deep-equal": "~1.0.1",
+ "http-errors": "~1.8.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/http-errors": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-1.8.1.tgz",
+ "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
+ "dependencies": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/http-errors/node_modules/depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/inflation": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/inflation/-/inflation-2.1.0.tgz",
+ "integrity": "sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/inflection": {
+ "version": "1.13.4",
+ "resolved": "https://registry.npmmirror.com/inflection/-/inflection-1.13.4.tgz",
+ "integrity": "sha512-6I/HUDeYFfuNCVS3td055BaXBwKYuzw7K3ExVMStBowKo9oOAMJIXIHvdyR3iboTCp1b+1i5DSkIZTcwIktuDw==",
+ "engines": [
+ "node >= 0.4.0"
+ ]
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "node_modules/is-generator-function": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmmirror.com/is-generator-function/-/is-generator-function-1.0.10.tgz",
+ "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-property": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/is-property/-/is-property-1.0.2.tgz",
+ "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g=="
+ },
+ "node_modules/keygrip": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/keygrip/-/keygrip-1.1.0.tgz",
+ "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==",
+ "dependencies": {
+ "tsscmp": "1.0.6"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/koa": {
+ "version": "2.15.3",
+ "resolved": "https://registry.npmmirror.com/koa/-/koa-2.15.3.tgz",
+ "integrity": "sha512-j/8tY9j5t+GVMLeioLaxweJiKUayFhlGqNTzf2ZGwL0ZCQijd2RLHK0SLW5Tsko8YyyqCZC2cojIb0/s62qTAg==",
+ "dependencies": {
+ "accepts": "^1.3.5",
+ "cache-content-type": "^1.0.0",
+ "content-disposition": "~0.5.2",
+ "content-type": "^1.0.4",
+ "cookies": "~0.9.0",
+ "debug": "^4.3.2",
+ "delegates": "^1.0.0",
+ "depd": "^2.0.0",
+ "destroy": "^1.0.4",
+ "encodeurl": "^1.0.2",
+ "escape-html": "^1.0.3",
+ "fresh": "~0.5.2",
+ "http-assert": "^1.3.0",
+ "http-errors": "^1.6.3",
+ "is-generator-function": "^1.0.7",
+ "koa-compose": "^4.1.0",
+ "koa-convert": "^2.0.0",
+ "on-finished": "^2.3.0",
+ "only": "~0.0.2",
+ "parseurl": "^1.3.2",
+ "statuses": "^1.5.0",
+ "type-is": "^1.6.16",
+ "vary": "^1.1.2"
+ },
+ "engines": {
+ "node": "^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4"
+ }
+ },
+ "node_modules/koa-body": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/koa-body/-/koa-body-6.0.1.tgz",
+ "integrity": "sha512-M8ZvMD8r+kPHy28aWP9VxL7kY8oPWA+C7ZgCljrCMeaU7uX6wsIQgDHskyrAr9sw+jqnIXyv4Mlxri5R4InIJg==",
+ "dependencies": {
+ "@types/co-body": "^6.1.0",
+ "@types/formidable": "^2.0.5",
+ "@types/koa": "^2.13.5",
+ "co-body": "^6.1.0",
+ "formidable": "^2.0.1",
+ "zod": "^3.19.1"
+ }
+ },
+ "node_modules/koa-bodyparser": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmmirror.com/koa-bodyparser/-/koa-bodyparser-4.4.1.tgz",
+ "integrity": "sha512-kBH3IYPMb+iAXnrxIhXnW+gXV8OTzCu8VPDqvcDHW9SQrbkHmqPQtiZwrltNmSq6/lpipHnT7k7PsjlVD7kK0w==",
+ "dependencies": {
+ "co-body": "^6.0.0",
+ "copy-to": "^2.0.1",
+ "type-is": "^1.6.18"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/koa-compose": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/koa-compose/-/koa-compose-4.1.0.tgz",
+ "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw=="
+ },
+ "node_modules/koa-convert": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/koa-convert/-/koa-convert-2.0.0.tgz",
+ "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==",
+ "dependencies": {
+ "co": "^4.6.0",
+ "koa-compose": "^4.1.0"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/koa-cors": {
+ "version": "0.0.16",
+ "resolved": "https://registry.npmmirror.com/koa-cors/-/koa-cors-0.0.16.tgz",
+ "integrity": "sha512-s15knPxe3AJBi2I/ZMPL0pSqU+PLYLO6k5tI0AqClkzavowvocPlSdFUwaHNqtjHMhsGmiq2tiX/25iILJx9YA=="
+ },
+ "node_modules/koa-router": {
+ "version": "12.0.1",
+ "resolved": "https://registry.npmmirror.com/koa-router/-/koa-router-12.0.1.tgz",
+ "integrity": "sha512-gaDdj3GtzoLoeosacd50kBBTnnh3B9AYxDThQUo4sfUyXdOhY6ku1qyZKW88tQCRgc3Sw6ChXYXWZwwgjOxE0w==",
+ "dependencies": {
+ "debug": "^4.3.4",
+ "http-errors": "^2.0.0",
+ "koa-compose": "^4.1.0",
+ "methods": "^1.1.2",
+ "path-to-regexp": "^6.2.1"
+ },
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/koa-router/node_modules/http-errors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "dependencies": {
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/koa-router/node_modules/statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ },
+ "node_modules/long": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npmmirror.com/long/-/long-5.2.3.tgz",
+ "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q=="
+ },
+ "node_modules/lru-cache": {
+ "version": "8.0.5",
+ "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-8.0.5.tgz",
+ "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==",
+ "engines": {
+ "node": ">=16.14"
+ }
+ },
+ "node_modules/media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/moment": {
+ "version": "2.30.1",
+ "resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz",
+ "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/moment-timezone": {
+ "version": "0.5.45",
+ "resolved": "https://registry.npmmirror.com/moment-timezone/-/moment-timezone-0.5.45.tgz",
+ "integrity": "sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ==",
+ "dependencies": {
+ "moment": "^2.29.4"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "node_modules/mysql2": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmmirror.com/mysql2/-/mysql2-3.10.0.tgz",
+ "integrity": "sha512-qx0mfWYt1DpTPkw8mAcHW/OwqqyNqBLBHvY5IjN8+icIYTjt6znrgYJ+gxqNNRpVknb5Wc/gcCM4XjbCR0j5tw==",
+ "dependencies": {
+ "denque": "^2.1.0",
+ "generate-function": "^2.3.1",
+ "iconv-lite": "^0.6.3",
+ "long": "^5.2.1",
+ "lru-cache": "^8.0.0",
+ "named-placeholders": "^1.1.3",
+ "seq-queue": "^0.0.5",
+ "sqlstring": "^2.3.2"
+ },
+ "engines": {
+ "node": ">= 8.0"
+ }
+ },
+ "node_modules/named-placeholders": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmmirror.com/named-placeholders/-/named-placeholders-1.1.3.tgz",
+ "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==",
+ "dependencies": {
+ "lru-cache": "^7.14.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/named-placeholders/node_modules/lru-cache": {
+ "version": "7.18.3",
+ "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-7.18.3.tgz",
+ "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.1.tgz",
+ "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/only": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmmirror.com/only/-/only-0.0.2.tgz",
+ "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ=="
+ },
+ "node_modules/parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/path-to-regexp": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-6.2.2.tgz",
+ "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw=="
+ },
+ "node_modules/pg-connection-string": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmmirror.com/pg-connection-string/-/pg-connection-string-2.6.4.tgz",
+ "integrity": "sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA=="
+ },
+ "node_modules/qs": {
+ "version": "6.12.1",
+ "resolved": "https://registry.npmmirror.com/qs/-/qs-6.12.1.tgz",
+ "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==",
+ "dependencies": {
+ "side-channel": "^1.0.6"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/raw-body": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.2.tgz",
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/raw-body/node_modules/http-errors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "dependencies": {
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/raw-body/node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/raw-body/node_modules/statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/retry-as-promised": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmmirror.com/retry-as-promised/-/retry-as-promised-7.0.4.tgz",
+ "integrity": "sha512-XgmCoxKWkDofwH8WddD0w85ZfqYz+ZHlr5yo+3YUCfycWawU56T5ckWXsScsj5B8tqUcIG67DxXByo3VUgiAdA=="
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "node_modules/semver": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.2.tgz",
+ "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/seq-queue": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmmirror.com/seq-queue/-/seq-queue-0.0.5.tgz",
+ "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q=="
+ },
+ "node_modules/sequelize": {
+ "version": "6.37.3",
+ "resolved": "https://registry.npmmirror.com/sequelize/-/sequelize-6.37.3.tgz",
+ "integrity": "sha512-V2FTqYpdZjPy3VQrZvjTPnOoLm0KudCRXfGWp48QwhyPPp2yW8z0p0sCYZd/em847Tl2dVxJJ1DR+hF+O77T7A==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/sequelize"
+ }
+ ],
+ "dependencies": {
+ "@types/debug": "^4.1.8",
+ "@types/validator": "^13.7.17",
+ "debug": "^4.3.4",
+ "dottie": "^2.0.6",
+ "inflection": "^1.13.4",
+ "lodash": "^4.17.21",
+ "moment": "^2.29.4",
+ "moment-timezone": "^0.5.43",
+ "pg-connection-string": "^2.6.1",
+ "retry-as-promised": "^7.0.4",
+ "semver": "^7.5.4",
+ "sequelize-pool": "^7.1.0",
+ "toposort-class": "^1.0.1",
+ "uuid": "^8.3.2",
+ "validator": "^13.9.0",
+ "wkx": "^0.5.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "ibm_db": {
+ "optional": true
+ },
+ "mariadb": {
+ "optional": true
+ },
+ "mysql2": {
+ "optional": true
+ },
+ "oracledb": {
+ "optional": true
+ },
+ "pg": {
+ "optional": true
+ },
+ "pg-hstore": {
+ "optional": true
+ },
+ "snowflake-sdk": {
+ "optional": true
+ },
+ "sqlite3": {
+ "optional": true
+ },
+ "tedious": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/sequelize-pool": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmmirror.com/sequelize-pool/-/sequelize-pool-7.1.0.tgz",
+ "integrity": "sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg==",
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/set-function-length": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.6.tgz",
+ "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "object-inspect": "^1.13.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/sqlstring": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmmirror.com/sqlstring/-/sqlstring-2.3.3.tgz",
+ "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/toposort-class": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/toposort-class/-/toposort-class-1.0.1.tgz",
+ "integrity": "sha512-OsLcGGbYF3rMjPUf8oKktyvCiUxSbqMMS39m33MAjLTC1DVIH6x3WSt63/M77ihI09+Sdfk1AXvfhCEeUmC7mg=="
+ },
+ "node_modules/tsscmp": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmmirror.com/tsscmp/-/tsscmp-1.0.6.tgz",
+ "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==",
+ "engines": {
+ "node": ">=0.6.x"
+ }
+ },
+ "node_modules/type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "dependencies": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
+ },
+ "node_modules/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/validator": {
+ "version": "13.12.0",
+ "resolved": "https://registry.npmmirror.com/validator/-/validator-13.12.0.tgz",
+ "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/wkx": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmmirror.com/wkx/-/wkx-0.5.0.tgz",
+ "integrity": "sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ },
+ "node_modules/ylru": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/ylru/-/ylru-1.4.0.tgz",
+ "integrity": "sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==",
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/zod": {
+ "version": "3.23.8",
+ "resolved": "https://registry.npmmirror.com/zod/-/zod-3.23.8.tgz",
+ "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==",
+ "funding": {
+ "url": "https://github.com/sponsors/colinhacks"
+ }
+ }
+ }
+}
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/package.json" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/package.json"
new file mode 100644
index 0000000..830c2d8
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/package.json"
@@ -0,0 +1,22 @@
+{
+ "name": "back",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "koa": "^2.15.3",
+ "koa-body": "^6.0.1",
+ "koa-bodyparser": "^4.4.1",
+ "koa-cors": "^0.0.16",
+ "koa-router": "^12.0.1",
+ "mysql2": "^3.10.0",
+ "sequelize": "^6.37.3"
+ },
+ "type": "module"
+}
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/src/app/app.js" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/src/app/app.js"
new file mode 100644
index 0000000..5c5e071
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/src/app/app.js"
@@ -0,0 +1,7 @@
+import Koa from 'koa'
+import {koaBody} from 'koa-body'
+
+const koa = new Koa()
+koa.use(koaBody())
+
+export default koa
\ No newline at end of file
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/src/db/db.js" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/src/db/db.js"
new file mode 100644
index 0000000..5c73943
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/src/db/db.js"
@@ -0,0 +1,8 @@
+import {Sequelize} from 'sequelize'
+
+const seq = new Sequelize('db','root','root',{
+ dialect:"mysql",
+ host:"127.0.0.1"
+})
+
+export default seq
\ No newline at end of file
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/src/main.js" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/src/main.js"
new file mode 100644
index 0000000..79f5aea
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/src/main.js"
@@ -0,0 +1,12 @@
+import Koa from "koa";
+import Cors from 'koa-cors'
+import {koaBody} from "koa-body";
+import router from "./router/router.js";
+
+const app = new Koa()
+app.use(Cors())
+app.use(koaBody())
+app.use(router.routes())
+app.listen(8080,()=>{
+ console.log("http://127.0.0.1:8080")
+})
\ No newline at end of file
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/src/model/model.js" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/src/model/model.js"
new file mode 100644
index 0000000..11362bc
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/src/model/model.js"
@@ -0,0 +1,25 @@
+import seq from '../db/db.js'
+import {DataTypes} from "sequelize";
+
+const model = seq.define('tb',{
+ name:{
+ type: DataTypes.STRING,
+ allowNull: false
+ },
+ tel:{
+ type:DataTypes.STRING,
+ allowNull: false
+ },
+ dept:{
+ type:DataTypes.STRING,
+ allowNull:false
+ }
+},{
+ tableName:"tbs",
+ timestamps:true,
+ paranoid:true
+})
+
+// model.sync()
+
+export default model
\ No newline at end of file
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/src/router/router.js" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/src/router/router.js"
new file mode 100644
index 0000000..e108ca2
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/back/src/router/router.js"
@@ -0,0 +1,76 @@
+import model from "../model/model.js";
+import KoaRouter from 'koa-router'
+import {Op} from "sequelize";
+
+const router = new KoaRouter()
+
+//查询列表
+router.get('/', async (ctx) => {
+ const info = await model.findAll();
+ ctx.body = {
+ code: 200,
+ msg: 'pass',
+ data: info
+ }
+})
+
+//添加列表
+router.post('/addEntry', async (ctx) => {
+ const values = ctx.request.body
+ console.log(values)
+ const info = await model.create(values);
+ ctx.body = {
+ code: 200,
+ msg: 'pass',
+ data: info
+ }
+})
+
+//查询列表
+router.get('/getPatch', async (ctx) => {
+ const {name} = ctx.query
+ const patch = await model.findAll({
+ where: {
+ 'name':{
+ [Op.like]: '%' + name + '%'
+ }
+ }
+ })
+
+ ctx.body = {
+ code: 200,
+ msg: 'pass',
+ data: patch
+ }
+})
+
+router.delete('/delEntry', async (ctx) => {
+ const query = ctx.query
+ const delInfo = await model.destroy({
+ where: {
+ id: query.id
+ }
+ })
+ ctx.body = {
+ code: 200,
+ msg: 'pass',
+ data: delInfo
+ }
+})
+
+router.put('/updateEntry', async (ctx) => {
+ const query = ctx.query
+ const values = ctx.request.body
+ const info = await model.update(values, {
+ where: {
+ id: query.id
+ }
+ })
+ ctx.body = {
+ code: 200,
+ msg: 'pass',
+ data: info
+ }
+})
+
+export default router
\ No newline at end of file
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/.gitignore" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/.gitignore"
new file mode 100644
index 0000000..8ee54e8
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/.gitignore"
@@ -0,0 +1,30 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+.DS_Store
+dist
+dist-ssr
+coverage
+*.local
+
+/cypress/videos/
+/cypress/screenshots/
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+
+*.tsbuildinfo
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/.vscode/extensions.json" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/.vscode/extensions.json"
new file mode 100644
index 0000000..a7cea0b
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/.vscode/extensions.json"
@@ -0,0 +1,3 @@
+{
+ "recommendations": ["Vue.volar"]
+}
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/README.md" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/README.md"
new file mode 100644
index 0000000..a74e180
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/README.md"
@@ -0,0 +1,29 @@
+# exra
+
+This template should help get you started developing with Vue 3 in Vite.
+
+## Recommended IDE Setup
+
+[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur).
+
+## Customize configuration
+
+See [Vite Configuration Reference](https://vitejs.dev/config/).
+
+## Project Setup
+
+```sh
+npm install
+```
+
+### Compile and Hot-Reload for Development
+
+```sh
+npm run dev
+```
+
+### Compile and Minify for Production
+
+```sh
+npm run build
+```
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/index.html" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/index.html"
new file mode 100644
index 0000000..99f583a
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/index.html"
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite App
+
+
+
+
+
+
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/jsconfig.json" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/jsconfig.json"
new file mode 100644
index 0000000..5a1f2d2
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/jsconfig.json"
@@ -0,0 +1,8 @@
+{
+ "compilerOptions": {
+ "paths": {
+ "@/*": ["./src/*"]
+ }
+ },
+ "exclude": ["node_modules", "dist"]
+}
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/package-lock.json" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/package-lock.json"
new file mode 100644
index 0000000..325bb0a
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/package-lock.json"
@@ -0,0 +1,1059 @@
+{
+ "name": "exra",
+ "version": "0.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "exra",
+ "version": "0.0.0",
+ "dependencies": {
+ "axios": "^1.7.2",
+ "vue": "^3.4.21"
+ },
+ "devDependencies": {
+ "@vitejs/plugin-vue": "^5.0.4",
+ "vite": "^5.2.8"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.7.tgz",
+ "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==",
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz",
+ "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz",
+ "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz",
+ "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz",
+ "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz",
+ "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz",
+ "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz",
+ "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz",
+ "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz",
+ "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz",
+ "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz",
+ "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz",
+ "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz",
+ "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz",
+ "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz",
+ "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz",
+ "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz",
+ "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz",
+ "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz",
+ "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz",
+ "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz",
+ "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz",
+ "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz",
+ "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.15",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz",
+ "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz",
+ "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz",
+ "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz",
+ "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz",
+ "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz",
+ "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz",
+ "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz",
+ "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz",
+ "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz",
+ "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz",
+ "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz",
+ "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz",
+ "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz",
+ "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz",
+ "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz",
+ "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz",
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
+ "dev": true
+ },
+ "node_modules/@vitejs/plugin-vue": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.0.5.tgz",
+ "integrity": "sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==",
+ "dev": true,
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^5.0.0",
+ "vue": "^3.2.25"
+ }
+ },
+ "node_modules/@vue/compiler-core": {
+ "version": "3.4.27",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz",
+ "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==",
+ "dependencies": {
+ "@babel/parser": "^7.24.4",
+ "@vue/shared": "3.4.27",
+ "entities": "^4.5.0",
+ "estree-walker": "^2.0.2",
+ "source-map-js": "^1.2.0"
+ }
+ },
+ "node_modules/@vue/compiler-dom": {
+ "version": "3.4.27",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz",
+ "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==",
+ "dependencies": {
+ "@vue/compiler-core": "3.4.27",
+ "@vue/shared": "3.4.27"
+ }
+ },
+ "node_modules/@vue/compiler-sfc": {
+ "version": "3.4.27",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz",
+ "integrity": "sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==",
+ "dependencies": {
+ "@babel/parser": "^7.24.4",
+ "@vue/compiler-core": "3.4.27",
+ "@vue/compiler-dom": "3.4.27",
+ "@vue/compiler-ssr": "3.4.27",
+ "@vue/shared": "3.4.27",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.30.10",
+ "postcss": "^8.4.38",
+ "source-map-js": "^1.2.0"
+ }
+ },
+ "node_modules/@vue/compiler-ssr": {
+ "version": "3.4.27",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz",
+ "integrity": "sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==",
+ "dependencies": {
+ "@vue/compiler-dom": "3.4.27",
+ "@vue/shared": "3.4.27"
+ }
+ },
+ "node_modules/@vue/reactivity": {
+ "version": "3.4.27",
+ "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.4.27.tgz",
+ "integrity": "sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA==",
+ "dependencies": {
+ "@vue/shared": "3.4.27"
+ }
+ },
+ "node_modules/@vue/runtime-core": {
+ "version": "3.4.27",
+ "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.4.27.tgz",
+ "integrity": "sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA==",
+ "dependencies": {
+ "@vue/reactivity": "3.4.27",
+ "@vue/shared": "3.4.27"
+ }
+ },
+ "node_modules/@vue/runtime-dom": {
+ "version": "3.4.27",
+ "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.4.27.tgz",
+ "integrity": "sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q==",
+ "dependencies": {
+ "@vue/runtime-core": "3.4.27",
+ "@vue/shared": "3.4.27",
+ "csstype": "^3.1.3"
+ }
+ },
+ "node_modules/@vue/server-renderer": {
+ "version": "3.4.27",
+ "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.4.27.tgz",
+ "integrity": "sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA==",
+ "dependencies": {
+ "@vue/compiler-ssr": "3.4.27",
+ "@vue/shared": "3.4.27"
+ },
+ "peerDependencies": {
+ "vue": "3.4.27"
+ }
+ },
+ "node_modules/@vue/shared": {
+ "version": "3.4.27",
+ "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz",
+ "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA=="
+ },
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+ },
+ "node_modules/axios": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.2.tgz",
+ "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==",
+ "dependencies": {
+ "follow-redirects": "^1.15.6",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/csstype": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/esbuild": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.20.2.tgz",
+ "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==",
+ "dev": true,
+ "hasInstallScript": true,
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.20.2",
+ "@esbuild/android-arm": "0.20.2",
+ "@esbuild/android-arm64": "0.20.2",
+ "@esbuild/android-x64": "0.20.2",
+ "@esbuild/darwin-arm64": "0.20.2",
+ "@esbuild/darwin-x64": "0.20.2",
+ "@esbuild/freebsd-arm64": "0.20.2",
+ "@esbuild/freebsd-x64": "0.20.2",
+ "@esbuild/linux-arm": "0.20.2",
+ "@esbuild/linux-arm64": "0.20.2",
+ "@esbuild/linux-ia32": "0.20.2",
+ "@esbuild/linux-loong64": "0.20.2",
+ "@esbuild/linux-mips64el": "0.20.2",
+ "@esbuild/linux-ppc64": "0.20.2",
+ "@esbuild/linux-riscv64": "0.20.2",
+ "@esbuild/linux-s390x": "0.20.2",
+ "@esbuild/linux-x64": "0.20.2",
+ "@esbuild/netbsd-x64": "0.20.2",
+ "@esbuild/openbsd-x64": "0.20.2",
+ "@esbuild/sunos-x64": "0.20.2",
+ "@esbuild/win32-arm64": "0.20.2",
+ "@esbuild/win32-ia32": "0.20.2",
+ "@esbuild/win32-x64": "0.20.2"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.6",
+ "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz",
+ "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/magic-string": {
+ "version": "0.30.10",
+ "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz",
+ "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.4.15"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz",
+ "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew=="
+ },
+ "node_modules/postcss": {
+ "version": "8.4.38",
+ "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.38.tgz",
+ "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "nanoid": "^3.3.7",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+ },
+ "node_modules/rollup": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.18.0.tgz",
+ "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==",
+ "dev": true,
+ "dependencies": {
+ "@types/estree": "1.0.5"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.18.0",
+ "@rollup/rollup-android-arm64": "4.18.0",
+ "@rollup/rollup-darwin-arm64": "4.18.0",
+ "@rollup/rollup-darwin-x64": "4.18.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.18.0",
+ "@rollup/rollup-linux-arm-musleabihf": "4.18.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.18.0",
+ "@rollup/rollup-linux-arm64-musl": "4.18.0",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0",
+ "@rollup/rollup-linux-riscv64-gnu": "4.18.0",
+ "@rollup/rollup-linux-s390x-gnu": "4.18.0",
+ "@rollup/rollup-linux-x64-gnu": "4.18.0",
+ "@rollup/rollup-linux-x64-musl": "4.18.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.18.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.18.0",
+ "@rollup/rollup-win32-x64-msvc": "4.18.0",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz",
+ "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/vite": {
+ "version": "5.2.13",
+ "resolved": "https://registry.npmmirror.com/vite/-/vite-5.2.13.tgz",
+ "integrity": "sha512-SSq1noJfY9pR3I1TUENL3rQYDQCFqgD+lM6fTRAM8Nv6Lsg5hDLaXkjETVeBt+7vZBCMoibD+6IWnT2mJ+Zb/A==",
+ "dev": true,
+ "dependencies": {
+ "esbuild": "^0.20.1",
+ "postcss": "^8.4.38",
+ "rollup": "^4.13.0"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^18.0.0 || >=20.0.0",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.4.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vue": {
+ "version": "3.4.27",
+ "resolved": "https://registry.npmmirror.com/vue/-/vue-3.4.27.tgz",
+ "integrity": "sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA==",
+ "dependencies": {
+ "@vue/compiler-dom": "3.4.27",
+ "@vue/compiler-sfc": "3.4.27",
+ "@vue/runtime-dom": "3.4.27",
+ "@vue/server-renderer": "3.4.27",
+ "@vue/shared": "3.4.27"
+ },
+ "peerDependencies": {
+ "typescript": "*"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ }
+ }
+}
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/package.json" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/package.json"
new file mode 100644
index 0000000..1ab0c49
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/package.json"
@@ -0,0 +1,19 @@
+{
+ "name": "exra",
+ "version": "0.0.0",
+ "private": true,
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "axios": "^1.7.2",
+ "vue": "^3.4.21"
+ },
+ "devDependencies": {
+ "@vitejs/plugin-vue": "^5.0.4",
+ "vite": "^5.2.8"
+ }
+}
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/public/favicon.ico" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/public/favicon.ico"
new file mode 100644
index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2
GIT binary patch
literal 4286
zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj
zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56
zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy
zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei
z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX
zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm
zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp=
zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8
zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO
z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3
z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD
zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6
z={Xwx{T%b6i9IjI)Ls)S{-*mq<@~R{?$}ZKjf;^k75i_}(2MXt}^SEBVg7AI@28
zo_uPg2V)_e-`2Ois=PYoe%9u*n9({PFR)OnHJPi{dNx>KxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S
literal 0
HcmV?d00001
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/src/App.vue" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/src/App.vue"
new file mode 100644
index 0000000..bb3b55a
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/src/App.vue"
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ | 序号 |
+ 名字 |
+ 电话 |
+ 部门 |
+ 编辑 |
+
+
+
+ | {{ item.id }} |
+ {{ item.name }} |
+ {{ item.tel }} |
+ {{ item.dept }} |
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/src/assets/base.css" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/src/assets/base.css"
new file mode 100644
index 0000000..8816868
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/src/assets/base.css"
@@ -0,0 +1,86 @@
+/* color palette from */
+:root {
+ --vt-c-white: #ffffff;
+ --vt-c-white-soft: #f8f8f8;
+ --vt-c-white-mute: #f2f2f2;
+
+ --vt-c-black: #181818;
+ --vt-c-black-soft: #222222;
+ --vt-c-black-mute: #282828;
+
+ --vt-c-indigo: #2c3e50;
+
+ --vt-c-divider-light-1: rgba(60, 60, 60, 0.29);
+ --vt-c-divider-light-2: rgba(60, 60, 60, 0.12);
+ --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65);
+ --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48);
+
+ --vt-c-text-light-1: var(--vt-c-indigo);
+ --vt-c-text-light-2: rgba(60, 60, 60, 0.66);
+ --vt-c-text-dark-1: var(--vt-c-white);
+ --vt-c-text-dark-2: rgba(235, 235, 235, 0.64);
+}
+
+/* semantic color variables for this project */
+:root {
+ --color-background: var(--vt-c-white);
+ --color-background-soft: var(--vt-c-white-soft);
+ --color-background-mute: var(--vt-c-white-mute);
+
+ --color-border: var(--vt-c-divider-light-2);
+ --color-border-hover: var(--vt-c-divider-light-1);
+
+ --color-heading: var(--vt-c-text-light-1);
+ --color-text: var(--vt-c-text-light-1);
+
+ --section-gap: 160px;
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --color-background: var(--vt-c-black);
+ --color-background-soft: var(--vt-c-black-soft);
+ --color-background-mute: var(--vt-c-black-mute);
+
+ --color-border: var(--vt-c-divider-dark-2);
+ --color-border-hover: var(--vt-c-divider-dark-1);
+
+ --color-heading: var(--vt-c-text-dark-1);
+ --color-text: var(--vt-c-text-dark-2);
+ }
+}
+
+*,
+*::before,
+*::after {
+ box-sizing: border-box;
+ margin: 0;
+ font-weight: normal;
+}
+
+body {
+ min-height: 100vh;
+ color: var(--color-text);
+ background: var(--color-background);
+ transition:
+ color 0.5s,
+ background-color 0.5s;
+ line-height: 1.6;
+ font-family:
+ Inter,
+ -apple-system,
+ BlinkMacSystemFont,
+ 'Segoe UI',
+ Roboto,
+ Oxygen,
+ Ubuntu,
+ Cantarell,
+ 'Fira Sans',
+ 'Droid Sans',
+ 'Helvetica Neue',
+ sans-serif;
+ font-size: 15px;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/src/assets/logo.svg" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/src/assets/logo.svg"
new file mode 100644
index 0000000..7565660
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/src/assets/logo.svg"
@@ -0,0 +1 @@
+
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/src/assets/main.css" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/src/assets/main.css"
new file mode 100644
index 0000000..36fb845
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/src/assets/main.css"
@@ -0,0 +1,35 @@
+@import './base.css';
+
+#app {
+ max-width: 1280px;
+ margin: 0 auto;
+ padding: 2rem;
+ font-weight: normal;
+}
+
+a,
+.green {
+ text-decoration: none;
+ color: hsla(160, 100%, 37%, 1);
+ transition: 0.4s;
+ padding: 3px;
+}
+
+@media (hover: hover) {
+ a:hover {
+ background-color: hsla(160, 100%, 37%, 0.2);
+ }
+}
+
+@media (min-width: 1024px) {
+ body {
+ display: flex;
+ place-items: center;
+ }
+
+ #app {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ padding: 0 2rem;
+ }
+}
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/src/main.js" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/src/main.js"
new file mode 100644
index 0000000..ebc637f
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/src/main.js"
@@ -0,0 +1,5 @@
+
+import { createApp } from 'vue'
+import App from './App.vue'
+
+createApp(App).mount('#app')
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/vite.config.js" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/vite.config.js"
new file mode 100644
index 0000000..5c45e1d
--- /dev/null
+++ "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/111/front/exra/vite.config.js"
@@ -0,0 +1,16 @@
+import { fileURLToPath, URL } from 'node:url'
+
+import { defineConfig } from 'vite'
+import vue from '@vitejs/plugin-vue'
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ plugins: [
+ vue(),
+ ],
+ resolve: {
+ alias: {
+ '@': fileURLToPath(new URL('./src', import.meta.url))
+ }
+ }
+})
diff --git "a/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/Video_2024-06-08_170134.wmv" "b/21_\345\215\242\344\272\250\350\200\200/remake_NodeJs+Vue/Video_2024-06-08_170134.wmv"
new file mode 100644
index 0000000000000000000000000000000000000000..bc88e26f5ae3864d86270002ce04c68f1c55fbb3
GIT binary patch
literal 3146262
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