This commit is contained in:
Louis Lam 2023-11-07 20:47:16 +08:00
parent 7a63d59ef8
commit 015e4c21f9
12 changed files with 374 additions and 246 deletions

View file

@ -10,19 +10,19 @@ A fancy, easy-to-use and reactive docker `compose.yaml` stack manager.
## ⭐ Features ## ⭐ Features
- Focus on `compose.yaml` stack management - Manage `compose.yaml`
- Interactive editor for `compose.yaml` - Interactive Editor for `compose.yaml`
- Interactive web terminal for containers and docker commands - Interactive Web Terminal
- Reactive - Reactive
- Everything is just responsive. Progress and terminal output are in real-time - Everything is just responsive. Progress (Pull/Up/Down) and terminal output are in real-time
- Easy-to-use & fancy UI - Easy-to-use & fancy UI
- If you love Uptime Kuma's UI/UX, you will love this too - If you love Uptime Kuma's UI/UX, you will love this too
- Convert `docker run ...` command into `compose.yaml` file - Convert `docker run ...` commands into `compose.yaml`
## 🔧 How to Install ## 🔧 How to Install
1. Create a directory `./dockge/` 1. Create a directory `dockge`
1. Create a `compose.yaml` file inside `./dockge` with the following content: 1. Create a `compose.yaml` file inside `dockge` with the following content:
```yaml ```yaml
version: "3.8" version: "3.8"

View file

@ -27,7 +27,7 @@ import path from "path";
import { TerminalSocketHandler } from "./socket-handlers/terminal-socket-handler"; import { TerminalSocketHandler } from "./socket-handlers/terminal-socket-handler";
import { Stack } from "./stack"; import { Stack } from "./stack";
import { Cron } from "croner"; import { Cron } from "croner";
import childProcess from "child_process"; import gracefulShutdown from "http-graceful-shutdown";
export class DockgeServer { export class DockgeServer {
app : Express; app : Express;
@ -260,6 +260,16 @@ export class DockgeServer {
}); });
}); });
gracefulShutdown(this.httpServer, {
signals: "SIGINT SIGTERM",
timeout: 30000, // timeout: 30 secs
development: false, // not in dev mode
forceExit: true, // triggers process.exit() at the end of shutdown process
onShutdown: this.shutdownFunction, // shutdown function (async) - e.g. for cleanup DB, ...
finally: this.finalFunction, // finally function (sync) - e.g. for logging
});
} }
/** /**
@ -280,12 +290,12 @@ export class DockgeServer {
} }
socket.emit("info", { socket.emit("info", {
versionProperty, version: versionProperty,
latestVersionProperty, latestVersion: latestVersionProperty,
isContainer, isContainer,
primaryBaseURL: await Settings.get("primaryBaseURL"), //primaryBaseURL: await Settings.get("primaryBaseURL"),
serverTimezone: await this.getTimezone(), //serverTimezone: await this.getTimezone(),
serverTimezoneOffset: this.getTimezoneOffset(), //serverTimezoneOffset: this.getTimezoneOffset(),
}); });
} }
@ -472,4 +482,26 @@ export class DockgeServer {
get stackDirFullPath() { get stackDirFullPath() {
return path.resolve(this.stacksDir); return path.resolve(this.stacksDir);
} }
/**
* Shutdown the application
* Stops all monitors and closes the database connection.
* @param signal The signal that triggered this function to be called.
*/
async shutdownFunction(signal : string | undefined) {
log.info("server", "Shutdown requested");
log.info("server", "Called signal: " + signal);
// TODO: Close all terminals?
await Database.close();
Settings.stopCacheCleaner();
}
/**
* Final function called before application exits
*/
finalFunction() {
log.info("server", "Graceful shutdown successful!");
}
} }

View file

@ -6,9 +6,10 @@ import { R } from "redbean-node";
import { loginRateLimiter, twoFaRateLimiter } from "../rate-limiter"; import { loginRateLimiter, twoFaRateLimiter } from "../rate-limiter";
import { generatePasswordHash, needRehashPassword, shake256, SHAKE256_LENGTH, verifyPassword } from "../password-hash"; import { generatePasswordHash, needRehashPassword, shake256, SHAKE256_LENGTH, verifyPassword } from "../password-hash";
import { User } from "../models/user"; import { User } from "../models/user";
import { DockgeSocket } from "../util-server"; import { checkLogin, DockgeSocket, doubleCheckPassword } from "../util-server";
import { passwordStrength } from "check-password-strength"; import { passwordStrength } from "check-password-strength";
import jwt from "jsonwebtoken"; import jwt from "jsonwebtoken";
import { Settings } from "../settings";
export class MainSocketHandler extends SocketHandler { export class MainSocketHandler extends SocketHandler {
create(socket : DockgeSocket, server : DockgeServer) { create(socket : DockgeSocket, server : DockgeServer) {
@ -187,12 +188,63 @@ export class MainSocketHandler extends SocketHandler {
} }
}); });
socket.on("getSettings", async (callback) => {
try {
checkLogin(socket);
const data = await Settings.getSettings("general");
callback({
ok: true,
data: data,
});
} catch (e) {
callback({
ok: false,
msg: e.message,
});
}
});
socket.on("setSettings", async (data, currentPassword, callback) => {
try {
checkLogin(socket);
// If currently is disabled auth, don't need to check
// Disabled Auth + Want to Disable Auth => No Check
// Disabled Auth + Want to Enable Auth => No Check
// Enabled Auth + Want to Disable Auth => Check!!
// Enabled Auth + Want to Enable Auth => No Check
const currentDisabledAuth = await Settings.get("disableAuth");
if (!currentDisabledAuth && data.disableAuth) {
await doubleCheckPassword(socket, currentPassword);
}
await Settings.setSettings("general", data);
callback({
ok: true,
msg: "Saved"
});
server.sendInfo(socket);
} catch (e) {
callback({
ok: false,
msg: e.message,
});
}
});
} }
async afterLogin(server: DockgeServer, socket : DockgeSocket, user : User) { async afterLogin(server: DockgeServer, socket : DockgeSocket, user : User) {
socket.userID = user.id; socket.userID = user.id;
socket.join(user.id.toString()); socket.join(user.id.toString());
server.sendInfo(socket);
try { try {
server.sendStackList(socket); server.sendStackList(socket);
} catch (e) { } catch (e) {

View file

@ -198,6 +198,13 @@ export class Stack {
let composeList = JSON.parse(res.toString()); let composeList = JSON.parse(res.toString());
for (let composeStack of composeList) { for (let composeStack of composeList) {
// Skip the dockge stack
// TODO: Could be self managed?
if (composeStack.Name === "dockge") {
continue;
}
let stack = stackList.get(composeStack.Name); let stack = stackList.get(composeStack.Name);
// This stack probably is not managed by Dockge, but we still want to show it // This stack probably is not managed by Dockge, but we still want to show it

View file

@ -3,6 +3,8 @@ import { Terminal } from "./terminal";
import { randomBytes } from "crypto"; import { randomBytes } from "crypto";
import { log } from "./log"; import { log } from "./log";
import { ERROR_TYPE_VALIDATION } from "./util-common"; import { ERROR_TYPE_VALIDATION } from "./util-common";
import { R } from "redbean-node";
import { verifyPassword } from "./password-hash";
export interface DockgeSocket extends Socket { export interface DockgeSocket extends Socket {
userID: number; userID: number;
@ -57,3 +59,19 @@ export function callbackError(error : unknown, callback : unknown) {
log.debug("console", "Unknown error: " + error); log.debug("console", "Unknown error: " + error);
} }
} }
export async function doubleCheckPassword(socket : DockgeSocket, currentPassword : unknown) {
if (typeof currentPassword !== "string") {
throw new Error("Wrong data type?");
}
let user = await R.findOne("user", " id = ? AND active = 1 ", [
socket.userID,
]);
if (!user || !verifyPassword(currentPassword, user.password)) {
throw new Error("Incorrect current password");
}
return user;
}

View file

@ -12,7 +12,7 @@
</div> </div>
<div class="col-5"> <div class="col-5">
<div class="function"> <div class="function">
<router-link v-if="!isEditMode" class="btn btn-normal" :to="terminalRouteLink"> <router-link v-if="!isEditMode" class="btn btn-normal" :to="terminalRouteLink" disabled="">
<font-awesome-icon icon="terminal" /> <font-awesome-icon icon="terminal" />
Bash Bash
</router-link> </router-link>

View file

@ -41,5 +41,7 @@
"addListItem": "Add {0}", "addListItem": "Add {0}",
"deleteContainer": "Delete", "deleteContainer": "Delete",
"addContainer": "Add Container", "addContainer": "Add Container",
"addNetwork": "Add Network" "addNetwork": "Add Network",
"disableauth.message1": "Are you sure want to <strong>disable authentication</strong>?",
"disableauth.message2": "It is designed for scenarios <strong>where you intend to implement third-party authentication</strong> in front of Uptime Kuma such as Cloudflare Access, Authelia or other authentication mechanisms."
} }

View file

@ -39,11 +39,41 @@ export default defineComponent({
return "🐻"; return "🐻";
} }
}, },
/**
* Frontend Version
* It should be compiled to a static value while building the frontend.
* Please see ./frontend/vite.config.ts, it is defined via vite.js
* @returns {string}
*/
frontendVersion() {
// eslint-disable-next-line no-undef
return FRONTEND_VERSION;
},
/**
* Are both frontend and backend in the same version?
* @returns {boolean}
*/
isFrontendBackendVersionMatched() {
if (!this.info.version) {
return true;
}
return this.info.version === this.frontendVersion;
},
}, },
watch: { watch: {
remember() { remember() {
localStorage.remember = (this.remember) ? "1" : "0"; localStorage.remember = (this.remember) ? "1" : "0";
}, },
// Reload the SPA if the server version is changed.
"info.version"(to, from) {
if (from && from !== to) {
window.location.reload();
}
},
}, },
created() { created() {
this.initSocketIO(); this.initSocketIO();
@ -247,6 +277,7 @@ export default defineComponent({
unbindTerminal(terminalName : string) { unbindTerminal(terminalName : string) {
terminalMap.delete(terminalName); terminalMap.delete(terminalName);
} },
} }
}); });

View file

@ -117,39 +117,9 @@ export default {
loadSettings() { loadSettings() {
this.$root.getSocket().emit("getSettings", (res) => { this.$root.getSocket().emit("getSettings", (res) => {
this.settings = res.data; this.settings = res.data;
if (this.settings.checkUpdate === undefined) { if (this.settings.checkUpdate === undefined) {
this.settings.checkUpdate = true; this.settings.checkUpdate = true;
} }
if (this.settings.searchEngineIndex === undefined) {
this.settings.searchEngineIndex = false;
}
if (this.settings.entryPage === undefined) {
this.settings.entryPage = "dashboard";
}
if (this.settings.nscd === undefined) {
this.settings.nscd = true;
}
if (this.settings.dnsCache === undefined) {
this.settings.dnsCache = false;
}
if (this.settings.keepDataPeriodDays === undefined) {
this.settings.keepDataPeriodDays = 180;
}
if (this.settings.tlsExpiryNotifyDays === undefined) {
this.settings.tlsExpiryNotifyDays = [ 7, 14, 21 ];
}
if (this.settings.trustProxy === undefined) {
this.settings.trustProxy = false;
}
this.settingsLoaded = true; this.settingsLoaded = true;
}); });
}, },

View file

@ -12,6 +12,9 @@ export default defineConfig({
server: { server: {
port: 5000, port: 5000,
}, },
define: {
"FRONTEND_VERSION": JSON.stringify(process.env.npm_package_version),
},
root: "./frontend", root: "./frontend",
build: { build: {
outDir: "../frontend-dist", outDir: "../frontend-dist",

View file

@ -16,22 +16,23 @@
"mark-as-nightly": "tsx ./extra/mark-as-nightly.ts" "mark-as-nightly": "tsx ./extra/mark-as-nightly.ts"
}, },
"dependencies": { "dependencies": {
"@homebridge/node-pty-prebuilt-multiarch": "~0.11.7", "@homebridge/node-pty-prebuilt-multiarch": "~0.11.10",
"@louislam/sqlite3": "~15.1.6", "@louislam/sqlite3": "~15.1.6",
"bcryptjs": "~2.4.3", "bcryptjs": "~2.4.3",
"check-password-strength": "~2.0.7", "check-password-strength": "~2.0.7",
"command-exists": "^1.2.9", "command-exists": "~1.2.9",
"compare-versions": "~6.1.0", "compare-versions": "~6.1.0",
"composerize": "^1.4.1", "composerize": "~1.4.1",
"croner": "^7.0.4", "croner": "~7.0.4",
"dayjs": "^1.11.10", "dayjs": "~1.11.10",
"express": "~4.18.2", "express": "~4.18.2",
"express-static-gzip": "~2.1.7", "express-static-gzip": "~2.1.7",
"http-graceful-shutdown": "~3.1.13",
"jsonwebtoken": "~9.0.2", "jsonwebtoken": "~9.0.2",
"jwt-decode": "~3.1.2", "jwt-decode": "~3.1.2",
"knex": "~2.5.1", "knex": "~2.5.1",
"limiter-es6-compat": "~2.1.2", "limiter-es6-compat": "~2.1.2",
"mysql2": "^3.6.2", "mysql2": "^3.6.3",
"redbean-node": "0.3.1", "redbean-node": "0.3.1",
"socket.io": "~4.7.2", "socket.io": "~4.7.2",
"socket.io-client": "~4.7.2", "socket.io-client": "~4.7.2",
@ -39,7 +40,7 @@
"ts-command-line-args": "~2.5.1", "ts-command-line-args": "~2.5.1",
"tsx": "~3.14.0", "tsx": "~3.14.0",
"type-fest": "~4.3.3", "type-fest": "~4.3.3",
"yaml": "~2.3.3" "yaml": "~2.3.4"
}, },
"optionalDependencies": { "optionalDependencies": {
"pm2": "~5.3.0" "pm2": "~5.3.0"
@ -50,8 +51,8 @@
"@fortawesome/free-solid-svg-icons": "6.4.2", "@fortawesome/free-solid-svg-icons": "6.4.2",
"@fortawesome/vue-fontawesome": "3.0.3", "@fortawesome/vue-fontawesome": "3.0.3",
"@types/bootstrap": "^5.2.8", "@types/bootstrap": "^5.2.8",
"@types/command-exists": "~1.2.2", "@types/command-exists": "~1.2.3",
"@types/express": "~4.17.20", "@types/express": "~4.17.21",
"@types/jsonwebtoken": "~9.0.4", "@types/jsonwebtoken": "~9.0.4",
"@typescript-eslint/eslint-plugin": "~6.8.0", "@typescript-eslint/eslint-plugin": "~6.8.0",
"@typescript-eslint/parser": "~6.8.0", "@typescript-eslint/parser": "~6.8.0",
@ -70,13 +71,13 @@
"unplugin-vue-components": "^0.25.2", "unplugin-vue-components": "^0.25.2",
"vite": "~4.5.0", "vite": "~4.5.0",
"vite-plugin-compression": "^0.5.1", "vite-plugin-compression": "^0.5.1",
"vue": "~3.3.6", "vue": "~3.3.8",
"vue-eslint-parser": "^9.3.2", "vue-eslint-parser": "^9.3.2",
"vue-i18n": "~9.5.0", "vue-i18n": "~9.5.0",
"vue-prism-editor": "~2.0.0-alpha.2", "vue-prism-editor": "2.0.0-alpha.2",
"vue-qrcode": "^2.2.0", "vue-qrcode": "^2.2.0",
"vue-router": "~4.2.5", "vue-router": "~4.2.5",
"vue-toastification": "~2.0.0-rc.5", "vue-toastification": "2.0.0-rc.5",
"xterm": "~5.3.0", "xterm": "~5.3.0",
"xterm-addon-web-links": "~0.9.0" "xterm-addon-web-links": "~0.9.0"
} }

View file

@ -6,8 +6,8 @@ settings:
dependencies: dependencies:
'@homebridge/node-pty-prebuilt-multiarch': '@homebridge/node-pty-prebuilt-multiarch':
specifier: ~0.11.7 specifier: ~0.11.10
version: 0.11.7 version: 0.11.10
'@louislam/sqlite3': '@louislam/sqlite3':
specifier: ~15.1.6 specifier: ~15.1.6
version: 15.1.6 version: 15.1.6
@ -18,19 +18,19 @@ dependencies:
specifier: ~2.0.7 specifier: ~2.0.7
version: 2.0.7 version: 2.0.7
command-exists: command-exists:
specifier: ^1.2.9 specifier: ~1.2.9
version: 1.2.9 version: 1.2.9
compare-versions: compare-versions:
specifier: ~6.1.0 specifier: ~6.1.0
version: 6.1.0 version: 6.1.0
composerize: composerize:
specifier: ^1.4.1 specifier: ~1.4.1
version: 1.4.1 version: 1.4.1
croner: croner:
specifier: ^7.0.4 specifier: ~7.0.4
version: 7.0.4 version: 7.0.4
dayjs: dayjs:
specifier: ^1.11.10 specifier: ~1.11.10
version: 1.11.10 version: 1.11.10
express: express:
specifier: ~4.18.2 specifier: ~4.18.2
@ -38,6 +38,9 @@ dependencies:
express-static-gzip: express-static-gzip:
specifier: ~2.1.7 specifier: ~2.1.7
version: 2.1.7 version: 2.1.7
http-graceful-shutdown:
specifier: ~3.1.13
version: 3.1.13
jsonwebtoken: jsonwebtoken:
specifier: ~9.0.2 specifier: ~9.0.2
version: 9.0.2 version: 9.0.2
@ -46,16 +49,16 @@ dependencies:
version: 3.1.2 version: 3.1.2
knex: knex:
specifier: ~2.5.1 specifier: ~2.5.1
version: 2.5.1(mysql2@3.6.2) version: 2.5.1(mysql2@3.6.3)
limiter-es6-compat: limiter-es6-compat:
specifier: ~2.1.2 specifier: ~2.1.2
version: 2.1.2 version: 2.1.2
mysql2: mysql2:
specifier: ^3.6.2 specifier: ^3.6.3
version: 3.6.2 version: 3.6.3
redbean-node: redbean-node:
specifier: 0.3.1 specifier: 0.3.1
version: 0.3.1(mysql2@3.6.2) version: 0.3.1(mysql2@3.6.3)
socket.io: socket.io:
specifier: ~4.7.2 specifier: ~4.7.2
version: 4.7.2 version: 4.7.2
@ -75,8 +78,8 @@ dependencies:
specifier: ~4.3.3 specifier: ~4.3.3
version: 4.3.3 version: 4.3.3
yaml: yaml:
specifier: ~2.3.3 specifier: ~2.3.4
version: 2.3.3 version: 2.3.4
optionalDependencies: optionalDependencies:
pm2: pm2:
@ -95,16 +98,16 @@ devDependencies:
version: 6.4.2 version: 6.4.2
'@fortawesome/vue-fontawesome': '@fortawesome/vue-fontawesome':
specifier: 3.0.3 specifier: 3.0.3
version: 3.0.3(@fortawesome/fontawesome-svg-core@6.4.2)(vue@3.3.6) version: 3.0.3(@fortawesome/fontawesome-svg-core@6.4.2)(vue@3.3.8)
'@types/bootstrap': '@types/bootstrap':
specifier: ^5.2.8 specifier: ^5.2.8
version: 5.2.8 version: 5.2.8
'@types/command-exists': '@types/command-exists':
specifier: ~1.2.2 specifier: ~1.2.3
version: 1.2.2 version: 1.2.3
'@types/express': '@types/express':
specifier: ~4.17.20 specifier: ~4.17.21
version: 4.17.20 version: 4.17.21
'@types/jsonwebtoken': '@types/jsonwebtoken':
specifier: ~9.0.4 specifier: ~9.0.4
version: 9.0.4 version: 9.0.4
@ -116,13 +119,13 @@ devDependencies:
version: 6.8.0(eslint@8.50.0)(typescript@5.2.2) version: 6.8.0(eslint@8.50.0)(typescript@5.2.2)
'@vitejs/plugin-vue': '@vitejs/plugin-vue':
specifier: ~4.3.4 specifier: ~4.3.4
version: 4.3.4(vite@4.5.0)(vue@3.3.6) version: 4.3.4(vite@4.5.0)(vue@3.3.8)
bootstrap: bootstrap:
specifier: 5.3.2 specifier: 5.3.2
version: 5.3.2(@popperjs/core@2.11.8) version: 5.3.2(@popperjs/core@2.11.8)
bootstrap-vue-next: bootstrap-vue-next:
specifier: ~0.14.10 specifier: ~0.14.10
version: 0.14.10(vue@3.3.6) version: 0.14.10(vue@3.3.8)
cross-env: cross-env:
specifier: ~7.0.3 specifier: ~7.0.3
version: 7.0.3 version: 7.0.3
@ -152,7 +155,7 @@ devDependencies:
version: 5.2.2 version: 5.2.2
unplugin-vue-components: unplugin-vue-components:
specifier: ^0.25.2 specifier: ^0.25.2
version: 0.25.2(vue@3.3.6) version: 0.25.2(vue@3.3.8)
vite: vite:
specifier: ~4.5.0 specifier: ~4.5.0
version: 4.5.0(sass@1.68.0) version: 4.5.0(sass@1.68.0)
@ -160,26 +163,26 @@ devDependencies:
specifier: ^0.5.1 specifier: ^0.5.1
version: 0.5.1(vite@4.5.0) version: 0.5.1(vite@4.5.0)
vue: vue:
specifier: ~3.3.6 specifier: ~3.3.8
version: 3.3.6(typescript@5.2.2) version: 3.3.8(typescript@5.2.2)
vue-eslint-parser: vue-eslint-parser:
specifier: ^9.3.2 specifier: ^9.3.2
version: 9.3.2(eslint@8.50.0) version: 9.3.2(eslint@8.50.0)
vue-i18n: vue-i18n:
specifier: ~9.5.0 specifier: ~9.5.0
version: 9.5.0(vue@3.3.6) version: 9.5.0(vue@3.3.8)
vue-prism-editor: vue-prism-editor:
specifier: ~2.0.0-alpha.2 specifier: 2.0.0-alpha.2
version: 2.0.0-alpha.2(vue@3.3.6) version: 2.0.0-alpha.2(vue@3.3.8)
vue-qrcode: vue-qrcode:
specifier: ^2.2.0 specifier: ^2.2.0
version: 2.2.0(qrcode@1.5.3)(vue@3.3.6) version: 2.2.0(qrcode@1.5.3)(vue@3.3.8)
vue-router: vue-router:
specifier: ~4.2.5 specifier: ~4.2.5
version: 4.2.5(vue@3.3.6) version: 4.2.5(vue@3.3.8)
vue-toastification: vue-toastification:
specifier: ~2.0.0-rc.5 specifier: 2.0.0-rc.5
version: 2.0.0-rc.5(vue@3.3.6) version: 2.0.0-rc.5(vue@3.3.8)
xterm: xterm:
specifier: ~5.3.0 specifier: ~5.3.0
version: 5.3.0 version: 5.3.0
@ -420,13 +423,13 @@ packages:
eslint-visitor-keys: 3.4.3 eslint-visitor-keys: 3.4.3
dev: true dev: true
/@eslint-community/regexpp@4.9.1: /@eslint-community/regexpp@4.10.0:
resolution: {integrity: sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==} resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
dev: true dev: true
/@eslint/eslintrc@2.1.2: /@eslint/eslintrc@2.1.3:
resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies: dependencies:
ajv: 6.12.6 ajv: 6.12.6
@ -464,11 +467,11 @@ packages:
resolution: {integrity: sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==} resolution: {integrity: sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==}
dev: true dev: true
/@floating-ui/vue@1.0.2(vue@3.3.6): /@floating-ui/vue@1.0.2(vue@3.3.8):
resolution: {integrity: sha512-sImlAl9mAoCKZLNlwWz2P2ZMJIDlOEDXrRD6aD2sIHAka1LPC+nWtB+D3lPe7IE7FGWSbwBPTnlSdlABa3Fr0A==} resolution: {integrity: sha512-sImlAl9mAoCKZLNlwWz2P2ZMJIDlOEDXrRD6aD2sIHAka1LPC+nWtB+D3lPe7IE7FGWSbwBPTnlSdlABa3Fr0A==}
dependencies: dependencies:
'@floating-ui/dom': 1.5.3 '@floating-ui/dom': 1.5.3
vue-demi: 0.14.6(vue@3.3.6) vue-demi: 0.14.6(vue@3.3.8)
transitivePeerDependencies: transitivePeerDependencies:
- '@vue/composition-api' - '@vue/composition-api'
- vue - vue
@ -504,14 +507,14 @@ packages:
'@fortawesome/fontawesome-common-types': 6.4.2 '@fortawesome/fontawesome-common-types': 6.4.2
dev: true dev: true
/@fortawesome/vue-fontawesome@3.0.3(@fortawesome/fontawesome-svg-core@6.4.2)(vue@3.3.6): /@fortawesome/vue-fontawesome@3.0.3(@fortawesome/fontawesome-svg-core@6.4.2)(vue@3.3.8):
resolution: {integrity: sha512-KCPHi9QemVXGMrfuwf3nNnNo129resAIQWut9QTAMXmXqL2ErABC6ohd2yY5Ipq0CLWNbKHk8TMdTXL/Zf3ZhA==} resolution: {integrity: sha512-KCPHi9QemVXGMrfuwf3nNnNo129resAIQWut9QTAMXmXqL2ErABC6ohd2yY5Ipq0CLWNbKHk8TMdTXL/Zf3ZhA==}
peerDependencies: peerDependencies:
'@fortawesome/fontawesome-svg-core': ~1 || ~6 '@fortawesome/fontawesome-svg-core': ~1 || ~6
vue: '>= 3.0.0 < 4' vue: '>= 3.0.0 < 4'
dependencies: dependencies:
'@fortawesome/fontawesome-svg-core': 6.4.2 '@fortawesome/fontawesome-svg-core': 6.4.2
vue: 3.3.6(typescript@5.2.2) vue: 3.3.8(typescript@5.2.2)
dev: true dev: true
/@gar/promisify@1.1.3: /@gar/promisify@1.1.3:
@ -520,8 +523,8 @@ packages:
dev: false dev: false
optional: true optional: true
/@homebridge/node-pty-prebuilt-multiarch@0.11.7: /@homebridge/node-pty-prebuilt-multiarch@0.11.10:
resolution: {integrity: sha512-aaw66RDwHZ2Xs821U6hwEl2wPDyv9PAWEzNxS32YSRaoYmbie1AREehAfjbASGgpub+7d+3l98xft3oCCUKhSw==} resolution: {integrity: sha512-ttOE8QQRq/aRXDoKD2rfYEF50AiDLM9LPTohqCog1Z78g8k3Zqk15R/EHfTl/8cfw4l0fxt3y0dWL56wq79p2A==}
requiresBuild: true requiresBuild: true
dependencies: dependencies:
nan: 2.18.0 nan: 2.18.0
@ -709,7 +712,7 @@ packages:
resolution: {integrity: sha512-xkqqCoTf5VsciMqN0vb9jthW7olVAi4KRFNddCc7ZkeJZ3i8QwZANr4NSH2H5DvseRFHq7MiPspRY/EWAFWWTg==} resolution: {integrity: sha512-xkqqCoTf5VsciMqN0vb9jthW7olVAi4KRFNddCc7ZkeJZ3i8QwZANr4NSH2H5DvseRFHq7MiPspRY/EWAFWWTg==}
requiresBuild: true requiresBuild: true
dependencies: dependencies:
async: 3.2.4 async: 3.2.5
chalk: 3.0.0 chalk: 3.0.0
dayjs: 1.8.36 dayjs: 1.8.36
debug: 4.3.4 debug: 4.3.4
@ -789,7 +792,7 @@ packages:
rollup: rollup:
optional: true optional: true
dependencies: dependencies:
'@types/estree': 1.0.3 '@types/estree': 1.0.5
estree-walker: 2.0.2 estree-walker: 2.0.2
picomatch: 2.3.1 picomatch: 2.3.1
dev: true dev: true
@ -811,11 +814,11 @@ packages:
dev: false dev: false
optional: true optional: true
/@types/body-parser@1.19.4: /@types/body-parser@1.19.5:
resolution: {integrity: sha512-N7UDG0/xiPQa2D/XrVJXjkWbpqHCd2sBaB32ggRF2l83RhPfamgKGF8gwwqyksS95qUS5ZYF9aF+lLPRlwI2UA==} resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
dependencies: dependencies:
'@types/connect': 3.4.37 '@types/connect': 3.4.38
'@types/node': 20.8.7 '@types/node': 20.8.10
dev: true dev: true
/@types/bootstrap@5.2.8: /@types/bootstrap@5.2.8:
@ -824,44 +827,44 @@ packages:
'@popperjs/core': 2.11.8 '@popperjs/core': 2.11.8
dev: true dev: true
/@types/command-exists@1.2.2: /@types/command-exists@1.2.3:
resolution: {integrity: sha512-1qKPTkjLmghE5C7UUHXGcLaG8MNftchOcLAIryUXNKahRO5beS+iJ9rIL8XD4+B8K2phjYUsPQDox1FRX4KMTQ==} resolution: {integrity: sha512-PpbaE2XWLaWYboXD6k70TcXO/OdOyyRFq5TVpmlUELNxdkkmXU9fkImNosmXU1DtsNrqdUgWd/nJQYXgwmtdXQ==}
dev: true dev: true
/@types/connect@3.4.37: /@types/connect@3.4.38:
resolution: {integrity: sha512-zBUSRqkfZ59OcwXon4HVxhx5oWCJmc0OtBTK05M+p0dYjgN6iTwIL2T/WbsQZrEsdnwaF9cWQ+azOnpPvIqY3Q==} resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
dependencies: dependencies:
'@types/node': 20.8.7 '@types/node': 20.8.10
dev: true dev: true
/@types/cookie@0.4.1: /@types/cookie@0.4.1:
resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==}
dev: false dev: false
/@types/cors@2.8.15: /@types/cors@2.8.16:
resolution: {integrity: sha512-n91JxbNLD8eQIuXDIChAN1tCKNWCEgpceU9b7ZMbFA+P+Q4yIeh80jizFLEvolRPc1ES0VdwFlGv+kJTSirogw==} resolution: {integrity: sha512-Trx5or1Nyg1Fq138PCuWqoApzvoSLWzZ25ORBiHMbbUT42g578lH1GT4TwYDbiUOLFuDsCkfLneT2105fsFWGg==}
dependencies: dependencies:
'@types/node': 20.8.7 '@types/node': 20.8.10
dev: false dev: false
/@types/estree@1.0.3: /@types/estree@1.0.5:
resolution: {integrity: sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==} resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
dev: true dev: true
/@types/express-serve-static-core@4.17.39: /@types/express-serve-static-core@4.17.41:
resolution: {integrity: sha512-BiEUfAiGCOllomsRAZOiMFP7LAnrifHpt56pc4Z7l9K6ACyN06Ns1JLMBxwkfLOjJRlSf06NwWsT7yzfpaVpyQ==} resolution: {integrity: sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==}
dependencies: dependencies:
'@types/node': 20.8.7 '@types/node': 20.8.10
'@types/qs': 6.9.9 '@types/qs': 6.9.9
'@types/range-parser': 1.2.6 '@types/range-parser': 1.2.6
'@types/send': 0.17.3 '@types/send': 0.17.3
dev: true dev: true
/@types/express@4.17.20: /@types/express@4.17.21:
resolution: {integrity: sha512-rOaqlkgEvOW495xErXMsmyX3WKBInbhG5eqojXYi3cGUaLoRDlXa5d52fkfWZT963AZ3v2eZ4MbKE6WpDAGVsw==} resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==}
dependencies: dependencies:
'@types/body-parser': 1.19.4 '@types/body-parser': 1.19.5
'@types/express-serve-static-core': 4.17.39 '@types/express-serve-static-core': 4.17.41
'@types/qs': 6.9.9 '@types/qs': 6.9.9
'@types/serve-static': 1.15.4 '@types/serve-static': 1.15.4
dev: true dev: true
@ -877,7 +880,7 @@ packages:
/@types/jsonwebtoken@9.0.4: /@types/jsonwebtoken@9.0.4:
resolution: {integrity: sha512-8UYapdmR0QlxgvJmyE8lP7guxD0UGVMfknsdtCFZh4ovShdBl3iOI4zdvqBHrB/IS+xUj3PSx73Qkey1fhWz+g==} resolution: {integrity: sha512-8UYapdmR0QlxgvJmyE8lP7guxD0UGVMfknsdtCFZh4ovShdBl3iOI4zdvqBHrB/IS+xUj3PSx73Qkey1fhWz+g==}
dependencies: dependencies:
'@types/node': 20.8.7 '@types/node': 20.8.10
dev: true dev: true
/@types/mime@1.3.4: /@types/mime@1.3.4:
@ -892,10 +895,10 @@ packages:
resolution: {integrity: sha512-wheIYdr4NYML61AjC8MKj/2jrR/kDQri/CIpVoZwldwhnIrD/j9jIU5bJ8yBKuB2VhpFV7Ab6G2XkBjv9r9Zzw==} resolution: {integrity: sha512-wheIYdr4NYML61AjC8MKj/2jrR/kDQri/CIpVoZwldwhnIrD/j9jIU5bJ8yBKuB2VhpFV7Ab6G2XkBjv9r9Zzw==}
dev: false dev: false
/@types/node@20.8.7: /@types/node@20.8.10:
resolution: {integrity: sha512-21TKHHh3eUHIi2MloeptJWALuCu5H7HQTdTrWIFReA8ad+aggoX+lRes3ex7/FtpC+sVUpFMQ+QTfYr74mruiQ==} resolution: {integrity: sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==}
dependencies: dependencies:
undici-types: 5.25.3 undici-types: 5.26.5
/@types/qs@6.9.9: /@types/qs@6.9.9:
resolution: {integrity: sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg==} resolution: {integrity: sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg==}
@ -913,7 +916,7 @@ packages:
resolution: {integrity: sha512-/7fKxvKUoETxjFUsuFlPB9YndePpxxRAOfGC/yJdc9kTjTeP5kRCTzfnE8kPUKCeyiyIZu0YQ76s50hCedI1ug==} resolution: {integrity: sha512-/7fKxvKUoETxjFUsuFlPB9YndePpxxRAOfGC/yJdc9kTjTeP5kRCTzfnE8kPUKCeyiyIZu0YQ76s50hCedI1ug==}
dependencies: dependencies:
'@types/mime': 1.3.4 '@types/mime': 1.3.4
'@types/node': 20.8.7 '@types/node': 20.8.10
dev: true dev: true
/@types/serve-static@1.15.4: /@types/serve-static@1.15.4:
@ -921,7 +924,7 @@ packages:
dependencies: dependencies:
'@types/http-errors': 2.0.3 '@types/http-errors': 2.0.3
'@types/mime': 3.0.3 '@types/mime': 3.0.3
'@types/node': 20.8.7 '@types/node': 20.8.10
dev: true dev: true
/@types/web-bluetooth@0.0.18: /@types/web-bluetooth@0.0.18:
@ -939,7 +942,7 @@ packages:
typescript: typescript:
optional: true optional: true
dependencies: dependencies:
'@eslint-community/regexpp': 4.9.1 '@eslint-community/regexpp': 4.10.0
'@typescript-eslint/parser': 6.8.0(eslint@8.50.0)(typescript@5.2.2) '@typescript-eslint/parser': 6.8.0(eslint@8.50.0)(typescript@5.2.2)
'@typescript-eslint/scope-manager': 6.8.0 '@typescript-eslint/scope-manager': 6.8.0
'@typescript-eslint/type-utils': 6.8.0(eslint@8.50.0)(typescript@5.2.2) '@typescript-eslint/type-utils': 6.8.0(eslint@8.50.0)(typescript@5.2.2)
@ -1059,7 +1062,7 @@ packages:
eslint-visitor-keys: 3.4.3 eslint-visitor-keys: 3.4.3
dev: true dev: true
/@vitejs/plugin-vue@4.3.4(vite@4.5.0)(vue@3.3.6): /@vitejs/plugin-vue@4.3.4(vite@4.5.0)(vue@3.3.8):
resolution: {integrity: sha512-ciXNIHKPriERBisHFBvnTbfKa6r9SAesOYXeGDzgegcvy9Q4xdScSHAmKbNT0M3O0S9LKhIf5/G+UYG4NnnzYw==} resolution: {integrity: sha512-ciXNIHKPriERBisHFBvnTbfKa6r9SAesOYXeGDzgegcvy9Q4xdScSHAmKbNT0M3O0S9LKhIf5/G+UYG4NnnzYw==}
engines: {node: ^14.18.0 || >=16.0.0} engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies: peerDependencies:
@ -1067,103 +1070,103 @@ packages:
vue: ^3.2.25 vue: ^3.2.25
dependencies: dependencies:
vite: 4.5.0(sass@1.68.0) vite: 4.5.0(sass@1.68.0)
vue: 3.3.6(typescript@5.2.2) vue: 3.3.8(typescript@5.2.2)
dev: true dev: true
/@vue/compiler-core@3.3.6: /@vue/compiler-core@3.3.8:
resolution: {integrity: sha512-2JNjemwaNwf+MkkatATVZi7oAH1Hx0B04DdPH3ZoZ8vKC1xZVP7nl4HIsk8XYd3r+/52sqqoz9TWzYc3yE9dqA==} resolution: {integrity: sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g==}
dependencies: dependencies:
'@babel/parser': 7.23.0 '@babel/parser': 7.23.0
'@vue/shared': 3.3.6 '@vue/shared': 3.3.8
estree-walker: 2.0.2 estree-walker: 2.0.2
source-map-js: 1.0.2 source-map-js: 1.0.2
dev: true dev: true
/@vue/compiler-dom@3.3.6: /@vue/compiler-dom@3.3.8:
resolution: {integrity: sha512-1MxXcJYMHiTPexjLAJUkNs/Tw2eDf2tY3a0rL+LfuWyiKN2s6jvSwywH3PWD8bKICjfebX3GWx2Os8jkRDq3Ng==} resolution: {integrity: sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ==}
dependencies: dependencies:
'@vue/compiler-core': 3.3.6 '@vue/compiler-core': 3.3.8
'@vue/shared': 3.3.6 '@vue/shared': 3.3.8
dev: true dev: true
/@vue/compiler-sfc@3.3.6: /@vue/compiler-sfc@3.3.8:
resolution: {integrity: sha512-/Kms6du2h1VrXFreuZmlvQej8B1zenBqIohP0690IUBkJjsFvJxY0crcvVRJ0UhMgSR9dewB+khdR1DfbpArJA==} resolution: {integrity: sha512-WMzbUrlTjfYF8joyT84HfwwXo+8WPALuPxhy+BZ6R4Aafls+jDBnSz8PDz60uFhuqFbl3HxRfxvDzrUf3THwpA==}
dependencies: dependencies:
'@babel/parser': 7.23.0 '@babel/parser': 7.23.0
'@vue/compiler-core': 3.3.6 '@vue/compiler-core': 3.3.8
'@vue/compiler-dom': 3.3.6 '@vue/compiler-dom': 3.3.8
'@vue/compiler-ssr': 3.3.6 '@vue/compiler-ssr': 3.3.8
'@vue/reactivity-transform': 3.3.6 '@vue/reactivity-transform': 3.3.8
'@vue/shared': 3.3.6 '@vue/shared': 3.3.8
estree-walker: 2.0.2 estree-walker: 2.0.2
magic-string: 0.30.5 magic-string: 0.30.5
postcss: 8.4.31 postcss: 8.4.31
source-map-js: 1.0.2 source-map-js: 1.0.2
dev: true dev: true
/@vue/compiler-ssr@3.3.6: /@vue/compiler-ssr@3.3.8:
resolution: {integrity: sha512-QTIHAfDCHhjXlYGkUg5KH7YwYtdUM1vcFl/FxFDlD6d0nXAmnjizka3HITp8DGudzHndv2PjKVS44vqqy0vP4w==} resolution: {integrity: sha512-hXCqQL/15kMVDBuoBYpUnSYT8doDNwsjvm3jTefnXr+ytn294ySnT8NlsFHmTgKNjwpuFy7XVV8yTeLtNl/P6w==}
dependencies: dependencies:
'@vue/compiler-dom': 3.3.6 '@vue/compiler-dom': 3.3.8
'@vue/shared': 3.3.6 '@vue/shared': 3.3.8
dev: true dev: true
/@vue/devtools-api@6.5.1: /@vue/devtools-api@6.5.1:
resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==} resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==}
dev: true dev: true
/@vue/reactivity-transform@3.3.6: /@vue/reactivity-transform@3.3.8:
resolution: {integrity: sha512-RlJl4dHfeO7EuzU1iJOsrlqWyJfHTkJbvYz/IOJWqu8dlCNWtxWX377WI0VsbAgBizjwD+3ZjdnvSyyFW1YVng==} resolution: {integrity: sha512-49CvBzmZNtcHua0XJ7GdGifM8GOXoUMOX4dD40Y5DxI3R8OUhMlvf2nvgUAcPxaXiV5MQQ1Nwy09ADpnLQUqRw==}
dependencies: dependencies:
'@babel/parser': 7.23.0 '@babel/parser': 7.23.0
'@vue/compiler-core': 3.3.6 '@vue/compiler-core': 3.3.8
'@vue/shared': 3.3.6 '@vue/shared': 3.3.8
estree-walker: 2.0.2 estree-walker: 2.0.2
magic-string: 0.30.5 magic-string: 0.30.5
dev: true dev: true
/@vue/reactivity@3.3.6: /@vue/reactivity@3.3.8:
resolution: {integrity: sha512-gtChAumfQz5lSy5jZXfyXbKrIYPf9XEOrIr6rxwVyeWVjFhJwmwPLtV6Yis+M9onzX++I5AVE9j+iPH60U+B8Q==} resolution: {integrity: sha512-ctLWitmFBu6mtddPyOKpHg8+5ahouoTCRtmAHZAXmolDtuZXfjL2T3OJ6DL6ezBPQB1SmMnpzjiWjCiMYmpIuw==}
dependencies: dependencies:
'@vue/shared': 3.3.6 '@vue/shared': 3.3.8
dev: true dev: true
/@vue/runtime-core@3.3.6: /@vue/runtime-core@3.3.8:
resolution: {integrity: sha512-qp7HTP1iw1UW2ZGJ8L3zpqlngrBKvLsDAcq5lA6JvEXHmpoEmjKju7ahM9W2p/h51h0OT5F2fGlP/gMhHOmbUA==} resolution: {integrity: sha512-qurzOlb6q26KWQ/8IShHkMDOuJkQnQcTIp1sdP4I9MbCf9FJeGVRXJFr2mF+6bXh/3Zjr9TDgURXrsCr9bfjUw==}
dependencies: dependencies:
'@vue/reactivity': 3.3.6 '@vue/reactivity': 3.3.8
'@vue/shared': 3.3.6 '@vue/shared': 3.3.8
dev: true dev: true
/@vue/runtime-dom@3.3.6: /@vue/runtime-dom@3.3.8:
resolution: {integrity: sha512-AoX3Cp8NqMXjLbIG9YR6n/pPLWE9TiDdk6wTJHFnl2GpHzDFH1HLBC9wlqqQ7RlnvN3bVLpzPGAAH00SAtOxHg==} resolution: {integrity: sha512-Noy5yM5UIf9UeFoowBVgghyGGPIDPy1Qlqt0yVsUdAVbqI8eeMSsTqBtauaEoT2UFXUk5S64aWVNJN4MJ2vRdA==}
dependencies: dependencies:
'@vue/runtime-core': 3.3.6 '@vue/runtime-core': 3.3.8
'@vue/shared': 3.3.6 '@vue/shared': 3.3.8
csstype: 3.1.2 csstype: 3.1.2
dev: true dev: true
/@vue/server-renderer@3.3.6(vue@3.3.6): /@vue/server-renderer@3.3.8(vue@3.3.8):
resolution: {integrity: sha512-kgLoN43W4ERdZ6dpyy+gnk2ZHtcOaIr5Uc/WUP5DRwutgvluzu2pudsZGoD2b7AEJHByUVMa9k6Sho5lLRCykw==} resolution: {integrity: sha512-zVCUw7RFskvPuNlPn/8xISbrf0zTWsTSdYTsUTN1ERGGZGVnRxM2QZ3x1OR32+vwkkCm0IW6HmJ49IsPm7ilLg==}
peerDependencies: peerDependencies:
vue: 3.3.6 vue: 3.3.8
dependencies: dependencies:
'@vue/compiler-ssr': 3.3.6 '@vue/compiler-ssr': 3.3.8
'@vue/shared': 3.3.6 '@vue/shared': 3.3.8
vue: 3.3.6(typescript@5.2.2) vue: 3.3.8(typescript@5.2.2)
dev: true dev: true
/@vue/shared@3.3.6: /@vue/shared@3.3.8:
resolution: {integrity: sha512-Xno5pEqg8SVhomD0kTSmfh30ZEmV/+jZtyh39q6QflrjdJCXah5lrnOLi9KB6a5k5aAHXMXjoMnxlzUkCNfWLQ==} resolution: {integrity: sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw==}
dev: true dev: true
/@vueuse/core@10.5.0(vue@3.3.6): /@vueuse/core@10.5.0(vue@3.3.8):
resolution: {integrity: sha512-z/tI2eSvxwLRjOhDm0h/SXAjNm8N5ld6/SC/JQs6o6kpJ6Ya50LnEL8g5hoYu005i28L0zqB5L5yAl8Jl26K3A==} resolution: {integrity: sha512-z/tI2eSvxwLRjOhDm0h/SXAjNm8N5ld6/SC/JQs6o6kpJ6Ya50LnEL8g5hoYu005i28L0zqB5L5yAl8Jl26K3A==}
dependencies: dependencies:
'@types/web-bluetooth': 0.0.18 '@types/web-bluetooth': 0.0.18
'@vueuse/metadata': 10.5.0 '@vueuse/metadata': 10.5.0
'@vueuse/shared': 10.5.0(vue@3.3.6) '@vueuse/shared': 10.5.0(vue@3.3.8)
vue-demi: 0.14.6(vue@3.3.6) vue-demi: 0.14.6(vue@3.3.8)
transitivePeerDependencies: transitivePeerDependencies:
- '@vue/composition-api' - '@vue/composition-api'
- vue - vue
@ -1173,10 +1176,10 @@ packages:
resolution: {integrity: sha512-fEbElR+MaIYyCkeM0SzWkdoMtOpIwO72x8WsZHRE7IggiOlILttqttM69AS13nrDxosnDBYdyy3C5mR1LCxHsw==} resolution: {integrity: sha512-fEbElR+MaIYyCkeM0SzWkdoMtOpIwO72x8WsZHRE7IggiOlILttqttM69AS13nrDxosnDBYdyy3C5mR1LCxHsw==}
dev: true dev: true
/@vueuse/shared@10.5.0(vue@3.3.6): /@vueuse/shared@10.5.0(vue@3.3.8):
resolution: {integrity: sha512-18iyxbbHYLst9MqU1X1QNdMHIjks6wC7XTVf0KNOv5es/Ms6gjVFCAAWTVP2JStuGqydg3DT+ExpFORUEi9yhg==} resolution: {integrity: sha512-18iyxbbHYLst9MqU1X1QNdMHIjks6wC7XTVf0KNOv5es/Ms6gjVFCAAWTVP2JStuGqydg3DT+ExpFORUEi9yhg==}
dependencies: dependencies:
vue-demi: 0.14.6(vue@3.3.6) vue-demi: 0.14.6(vue@3.3.8)
transitivePeerDependencies: transitivePeerDependencies:
- '@vue/composition-api' - '@vue/composition-api'
- vue - vue
@ -1195,16 +1198,16 @@ packages:
negotiator: 0.6.3 negotiator: 0.6.3
dev: false dev: false
/acorn-jsx@5.3.2(acorn@8.10.0): /acorn-jsx@5.3.2(acorn@8.11.2):
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies: peerDependencies:
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies: dependencies:
acorn: 8.10.0 acorn: 8.11.2
dev: true dev: true
/acorn@8.10.0: /acorn@8.11.2:
resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
engines: {node: '>=0.4.0'} engines: {node: '>=0.4.0'}
hasBin: true hasBin: true
dev: true dev: true
@ -1396,8 +1399,8 @@ packages:
dev: false dev: false
optional: true optional: true
/async@3.2.4: /async@3.2.5:
resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==}
requiresBuild: true requiresBuild: true
dev: false dev: false
optional: true optional: true
@ -1489,14 +1492,14 @@ packages:
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
dev: true dev: true
/bootstrap-vue-next@0.14.10(vue@3.3.6): /bootstrap-vue-next@0.14.10(vue@3.3.8):
resolution: {integrity: sha512-0czOUVVi8nSA3M9dm48jJnMUB6vP7sYrMxfbFjINE/MEwVbsi4b1Gq41k6gFJcwE54fj7pYQW9q8LP5fqcq0Lw==} resolution: {integrity: sha512-0czOUVVi8nSA3M9dm48jJnMUB6vP7sYrMxfbFjINE/MEwVbsi4b1Gq41k6gFJcwE54fj7pYQW9q8LP5fqcq0Lw==}
peerDependencies: peerDependencies:
vue: ^3.3.4 vue: ^3.3.4
dependencies: dependencies:
'@floating-ui/vue': 1.0.2(vue@3.3.6) '@floating-ui/vue': 1.0.2(vue@3.3.8)
'@vueuse/core': 10.5.0(vue@3.3.6) '@vueuse/core': 10.5.0(vue@3.3.8)
vue: 3.3.6(typescript@5.2.2) vue: 3.3.8(typescript@5.2.2)
transitivePeerDependencies: transitivePeerDependencies:
- '@vue/composition-api' - '@vue/composition-api'
dev: true dev: true
@ -2082,8 +2085,8 @@ packages:
engines: {node: '>=10.2.0'} engines: {node: '>=10.2.0'}
dependencies: dependencies:
'@types/cookie': 0.4.1 '@types/cookie': 0.4.1
'@types/cors': 2.8.15 '@types/cors': 2.8.16
'@types/node': 20.8.7 '@types/node': 20.8.10
accepts: 1.3.8 accepts: 1.3.8
base64id: 2.0.0 base64id: 2.0.0
cookie: 0.4.2 cookie: 0.4.2
@ -2237,8 +2240,8 @@ packages:
hasBin: true hasBin: true
dependencies: dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0) '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0)
'@eslint-community/regexpp': 4.9.1 '@eslint-community/regexpp': 4.10.0
'@eslint/eslintrc': 2.1.2 '@eslint/eslintrc': 2.1.3
'@eslint/js': 8.50.0 '@eslint/js': 8.50.0
'@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/config-array': 0.11.13
'@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/module-importer': 1.0.1
@ -2286,8 +2289,8 @@ packages:
resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies: dependencies:
acorn: 8.10.0 acorn: 8.11.2
acorn-jsx: 5.3.2(acorn@8.10.0) acorn-jsx: 5.3.2(acorn@8.11.2)
eslint-visitor-keys: 3.4.3 eslint-visitor-keys: 3.4.3
dev: true dev: true
@ -2404,8 +2407,8 @@ packages:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
dev: true dev: true
/fast-glob@3.3.1: /fast-glob@3.3.2:
resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
engines: {node: '>=8.6.0'} engines: {node: '>=8.6.0'}
dependencies: dependencies:
'@nodelib/fs.stat': 2.0.5 '@nodelib/fs.stat': 2.0.5
@ -2547,7 +2550,7 @@ packages:
dependencies: dependencies:
graceful-fs: 4.2.11 graceful-fs: 4.2.11
jsonfile: 6.1.0 jsonfile: 6.1.0
universalify: 2.0.0 universalify: 2.0.1
dev: true dev: true
/fs-extra@8.1.0: /fs-extra@8.1.0:
@ -2734,7 +2737,7 @@ packages:
dependencies: dependencies:
array-union: 2.1.0 array-union: 2.1.0
dir-glob: 3.0.1 dir-glob: 3.0.1
fast-glob: 3.3.1 fast-glob: 3.3.2
ignore: 5.2.4 ignore: 5.2.4
merge2: 1.4.1 merge2: 1.4.1
slash: 3.0.0 slash: 3.0.0
@ -2805,6 +2808,15 @@ packages:
toidentifier: 1.0.1 toidentifier: 1.0.1
dev: false dev: false
/http-graceful-shutdown@3.1.13:
resolution: {integrity: sha512-Ci5LRufQ8AtrQ1U26AevS8QoMXDOhnAHCJI3eZu1com7mZGHxREmw3dNj85ftpQokQCvak8nI2pnFS8zyM1M+Q==}
engines: {node: '>=4.0.0'}
dependencies:
debug: 4.3.4
transitivePeerDependencies:
- supports-color
dev: false
/http-proxy-agent@4.0.1: /http-proxy-agent@4.0.1:
resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==}
engines: {node: '>= 6'} engines: {node: '>= 6'}
@ -3081,7 +3093,7 @@ packages:
/jsonfile@6.1.0: /jsonfile@6.1.0:
resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
dependencies: dependencies:
universalify: 2.0.0 universalify: 2.0.1
optionalDependencies: optionalDependencies:
graceful-fs: 4.2.11 graceful-fs: 4.2.11
dev: true dev: true
@ -3131,7 +3143,7 @@ packages:
json-buffer: 3.0.1 json-buffer: 3.0.1
dev: true dev: true
/knex@2.4.2(mysql2@3.6.2): /knex@2.4.2(mysql2@3.6.3):
resolution: {integrity: sha512-tMI1M7a+xwHhPxjbl/H9K1kHX+VncEYcvCx5K00M16bWvpYPKAZd6QrCu68PtHAdIZNQPWZn0GVhqVBEthGWCg==} resolution: {integrity: sha512-tMI1M7a+xwHhPxjbl/H9K1kHX+VncEYcvCx5K00M16bWvpYPKAZd6QrCu68PtHAdIZNQPWZn0GVhqVBEthGWCg==}
engines: {node: '>=12'} engines: {node: '>=12'}
hasBin: true hasBin: true
@ -3168,7 +3180,7 @@ packages:
getopts: 2.3.0 getopts: 2.3.0
interpret: 2.2.0 interpret: 2.2.0
lodash: 4.17.21 lodash: 4.17.21
mysql2: 3.6.2 mysql2: 3.6.3
pg-connection-string: 2.5.0 pg-connection-string: 2.5.0
rechoir: 0.8.0 rechoir: 0.8.0
resolve-from: 5.0.0 resolve-from: 5.0.0
@ -3178,7 +3190,7 @@ packages:
- supports-color - supports-color
dev: false dev: false
/knex@2.5.1(mysql2@3.6.2): /knex@2.5.1(mysql2@3.6.3):
resolution: {integrity: sha512-z78DgGKUr4SE/6cm7ku+jHvFT0X97aERh/f0MUKAKgFnwCYBEW4TFBqtHWFYiJFid7fMrtpZ/gxJthvz5mEByA==} resolution: {integrity: sha512-z78DgGKUr4SE/6cm7ku+jHvFT0X97aERh/f0MUKAKgFnwCYBEW4TFBqtHWFYiJFid7fMrtpZ/gxJthvz5mEByA==}
engines: {node: '>=12'} engines: {node: '>=12'}
hasBin: true hasBin: true
@ -3215,7 +3227,7 @@ packages:
getopts: 2.3.0 getopts: 2.3.0
interpret: 2.2.0 interpret: 2.2.0
lodash: 4.17.21 lodash: 4.17.21
mysql2: 3.6.2 mysql2: 3.6.3
pg-connection-string: 2.6.1 pg-connection-string: 2.6.1
rechoir: 0.8.0 rechoir: 0.8.0
resolve-from: 5.0.0 resolve-from: 5.0.0
@ -3587,7 +3599,7 @@ packages:
vscode-languageserver-textdocument: 1.0.11 vscode-languageserver-textdocument: 1.0.11
vscode-languageserver-types: 3.17.5 vscode-languageserver-types: 3.17.5
vscode-uri: 3.0.8 vscode-uri: 3.0.8
yaml: 2.3.3 yaml: 2.3.4
dev: true dev: true
/ms@2.0.0: /ms@2.0.0:
@ -3607,8 +3619,8 @@ packages:
dev: false dev: false
optional: true optional: true
/mysql2@3.6.2: /mysql2@3.6.3:
resolution: {integrity: sha512-m5erE6bMoWfPXW1D5UrVwlT8PowAoSX69KcZzPuARQ3wY1RJ52NW9PdvdPo076XiSIkQ5IBTis7hxdlrQTlyug==} resolution: {integrity: sha512-qYd/1CDuW1KYZjD4tzg2O8YS3X/UWuGH8ZMHyMeggMTXL3yOdMisbwZ5SNkHzDGlZXKYLAvV8tMrEH+NUMz3fw==}
engines: {node: '>= 8.0'} engines: {node: '>= 8.0'}
dependencies: dependencies:
denque: 2.1.0 denque: 2.1.0
@ -3632,8 +3644,8 @@ packages:
resolution: {integrity: sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==} resolution: {integrity: sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==}
dev: false dev: false
/nanoid@3.3.6: /nanoid@3.3.7:
resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true hasBin: true
dev: true dev: true
@ -4009,10 +4021,10 @@ packages:
resolution: {integrity: sha512-ACOhlONEXdCTVwKieBIQLSi2tQZ8eKinhcr9JpZSUAL8Qy0ajIgRtsLxG/lwPOW3JEKqPyw/UaHmTWhUzpP4kA==} resolution: {integrity: sha512-ACOhlONEXdCTVwKieBIQLSi2tQZ8eKinhcr9JpZSUAL8Qy0ajIgRtsLxG/lwPOW3JEKqPyw/UaHmTWhUzpP4kA==}
requiresBuild: true requiresBuild: true
dependencies: dependencies:
async: 3.2.4 async: 3.2.5
debug: 4.3.4 debug: 4.3.4
pidusage: 2.0.21 pidusage: 2.0.21
systeminformation: 5.21.13 systeminformation: 5.21.15
tx2: 1.0.5 tx2: 1.0.5
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -4029,7 +4041,7 @@ packages:
'@pm2/io': 5.0.2 '@pm2/io': 5.0.2
'@pm2/js-api': 0.6.7 '@pm2/js-api': 0.6.7
'@pm2/pm2-version-check': 1.0.4 '@pm2/pm2-version-check': 1.0.4
async: 3.2.4 async: 3.2.5
blessed: 0.1.81 blessed: 0.1.81
chalk: 3.0.0 chalk: 3.0.0
chokidar: 3.5.3 chokidar: 3.5.3
@ -4080,7 +4092,7 @@ packages:
resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
engines: {node: ^10 || ^12 || >=14} engines: {node: ^10 || ^12 || >=14}
dependencies: dependencies:
nanoid: 3.3.6 nanoid: 3.3.7
picocolors: 1.0.0 picocolors: 1.0.0
source-map-js: 1.0.2 source-map-js: 1.0.2
dev: true dev: true
@ -4188,8 +4200,8 @@ packages:
once: 1.4.0 once: 1.4.0
dev: false dev: false
/punycode@2.3.0: /punycode@2.3.1:
resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'} engines: {node: '>=6'}
dev: true dev: true
@ -4271,14 +4283,14 @@ packages:
resolve: 1.22.8 resolve: 1.22.8
dev: false dev: false
/redbean-node@0.3.1(mysql2@3.6.2): /redbean-node@0.3.1(mysql2@3.6.3):
resolution: {integrity: sha512-rz71vF7UtJQ14ttZ9I0QuaJ9TOwBCnZb+qHUBiU05f2fLaiQC79liisL3xgkHI8uE9et6HAkG8Z8VPkZbhgxKw==} resolution: {integrity: sha512-rz71vF7UtJQ14ttZ9I0QuaJ9TOwBCnZb+qHUBiU05f2fLaiQC79liisL3xgkHI8uE9et6HAkG8Z8VPkZbhgxKw==}
dependencies: dependencies:
'@types/node': 20.3.3 '@types/node': 20.3.3
await-lock: 2.2.2 await-lock: 2.2.2
dayjs: 1.11.10 dayjs: 1.11.10
glob: 10.3.10 glob: 10.3.10
knex: 2.4.2(mysql2@3.6.2) knex: 2.4.2(mysql2@3.6.3)
lodash: 4.17.21 lodash: 4.17.21
transitivePeerDependencies: transitivePeerDependencies:
- better-sqlite3 - better-sqlite3
@ -4748,8 +4760,8 @@ packages:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
/systeminformation@5.21.13: /systeminformation@5.21.15:
resolution: {integrity: sha512-sGgMhQxxjKHSIJtv7g5s19IRpfCgLG3tZqGbFcfGFyMm1hJ3BmzTfaq0yyOO2oLHlbkM49mgMjnPPB8g573LMA==} resolution: {integrity: sha512-vMLwsGgJZW6GvoBXVWNZuRQG0MPxlfQnIIIY9ZxoogWftUpJ9C33qD+32e1meFlXuWpN0moNApPFLpbsSi4OaQ==}
engines: {node: '>=8.0.0'} engines: {node: '>=8.0.0'}
os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android] os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android]
hasBin: true hasBin: true
@ -4939,8 +4951,8 @@ packages:
engines: {node: '>=8'} engines: {node: '>=8'}
dev: false dev: false
/undici-types@5.25.3: /undici-types@5.26.5:
resolution: {integrity: sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==} resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
/unique-filename@1.1.1: /unique-filename@1.1.1:
resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==}
@ -4965,8 +4977,8 @@ packages:
dev: false dev: false
optional: true optional: true
/universalify@2.0.0: /universalify@2.0.1:
resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
engines: {node: '>= 10.0.0'} engines: {node: '>= 10.0.0'}
dev: true dev: true
@ -4975,7 +4987,7 @@ packages:
engines: {node: '>= 0.8'} engines: {node: '>= 0.8'}
dev: false dev: false
/unplugin-vue-components@0.25.2(vue@3.3.6): /unplugin-vue-components@0.25.2(vue@3.3.8):
resolution: {integrity: sha512-OVmLFqILH6w+eM8fyt/d/eoJT9A6WO51NZLf1vC5c1FZ4rmq2bbGxTy8WP2Jm7xwFdukaIdv819+UI7RClPyCA==} resolution: {integrity: sha512-OVmLFqILH6w+eM8fyt/d/eoJT9A6WO51NZLf1vC5c1FZ4rmq2bbGxTy8WP2Jm7xwFdukaIdv819+UI7RClPyCA==}
engines: {node: '>=14'} engines: {node: '>=14'}
peerDependencies: peerDependencies:
@ -4992,13 +5004,13 @@ packages:
'@rollup/pluginutils': 5.0.5 '@rollup/pluginutils': 5.0.5
chokidar: 3.5.3 chokidar: 3.5.3
debug: 4.3.4 debug: 4.3.4
fast-glob: 3.3.1 fast-glob: 3.3.2
local-pkg: 0.4.3 local-pkg: 0.4.3
magic-string: 0.30.5 magic-string: 0.30.5
minimatch: 9.0.3 minimatch: 9.0.3
resolve: 1.22.8 resolve: 1.22.8
unplugin: 1.5.0 unplugin: 1.5.0
vue: 3.3.6(typescript@5.2.2) vue: 3.3.8(typescript@5.2.2)
transitivePeerDependencies: transitivePeerDependencies:
- rollup - rollup
- supports-color - supports-color
@ -5007,7 +5019,7 @@ packages:
/unplugin@1.5.0: /unplugin@1.5.0:
resolution: {integrity: sha512-9ZdRwbh/4gcm1JTOkp9lAkIDrtOyOxgHmY7cjuwI8L/2RTikMcVG25GsZwNAgRuap3iDw2jeq7eoqtAsz5rW3A==} resolution: {integrity: sha512-9ZdRwbh/4gcm1JTOkp9lAkIDrtOyOxgHmY7cjuwI8L/2RTikMcVG25GsZwNAgRuap3iDw2jeq7eoqtAsz5rW3A==}
dependencies: dependencies:
acorn: 8.10.0 acorn: 8.11.2
chokidar: 3.5.3 chokidar: 3.5.3
webpack-sources: 3.2.3 webpack-sources: 3.2.3
webpack-virtual-modules: 0.5.0 webpack-virtual-modules: 0.5.0
@ -5016,7 +5028,7 @@ packages:
/uri-js@4.4.1: /uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies: dependencies:
punycode: 2.3.0 punycode: 2.3.1
dev: true dev: true
/util-deprecate@1.0.2: /util-deprecate@1.0.2:
@ -5125,7 +5137,7 @@ packages:
resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
dev: true dev: true
/vue-demi@0.14.6(vue@3.3.6): /vue-demi@0.14.6(vue@3.3.8):
resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==} resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==}
engines: {node: '>=12'} engines: {node: '>=12'}
hasBin: true hasBin: true
@ -5137,7 +5149,7 @@ packages:
'@vue/composition-api': '@vue/composition-api':
optional: true optional: true
dependencies: dependencies:
vue: 3.3.6(typescript@5.2.2) vue: 3.3.8(typescript@5.2.2)
dev: true dev: true
/vue-eslint-parser@9.3.2(eslint@8.50.0): /vue-eslint-parser@9.3.2(eslint@8.50.0):
@ -5158,7 +5170,7 @@ packages:
- supports-color - supports-color
dev: true dev: true
/vue-i18n@9.5.0(vue@3.3.6): /vue-i18n@9.5.0(vue@3.3.8):
resolution: {integrity: sha512-NiI3Ph1qMstNf7uhYh8trQBOBFLxeJgcOxBq51pCcZ28Vs18Y7BDS58r8HGDKCYgXdLUYqPDXdKatIF4bvBVZg==} resolution: {integrity: sha512-NiI3Ph1qMstNf7uhYh8trQBOBFLxeJgcOxBq51pCcZ28Vs18Y7BDS58r8HGDKCYgXdLUYqPDXdKatIF4bvBVZg==}
engines: {node: '>= 16'} engines: {node: '>= 16'}
peerDependencies: peerDependencies:
@ -5167,19 +5179,19 @@ packages:
'@intlify/core-base': 9.5.0 '@intlify/core-base': 9.5.0
'@intlify/shared': 9.5.0 '@intlify/shared': 9.5.0
'@vue/devtools-api': 6.5.1 '@vue/devtools-api': 6.5.1
vue: 3.3.6(typescript@5.2.2) vue: 3.3.8(typescript@5.2.2)
dev: true dev: true
/vue-prism-editor@2.0.0-alpha.2(vue@3.3.6): /vue-prism-editor@2.0.0-alpha.2(vue@3.3.8):
resolution: {integrity: sha512-Gu42ba9nosrE+gJpnAEuEkDMqG9zSUysIR8SdXUw8MQKDjBnnNR9lHC18uOr/ICz7yrA/5c7jHJr9lpElODC7w==} resolution: {integrity: sha512-Gu42ba9nosrE+gJpnAEuEkDMqG9zSUysIR8SdXUw8MQKDjBnnNR9lHC18uOr/ICz7yrA/5c7jHJr9lpElODC7w==}
engines: {node: '>=10'} engines: {node: '>=10'}
peerDependencies: peerDependencies:
vue: ^3.0.0 vue: ^3.0.0
dependencies: dependencies:
vue: 3.3.6(typescript@5.2.2) vue: 3.3.8(typescript@5.2.2)
dev: true dev: true
/vue-qrcode@2.2.0(qrcode@1.5.3)(vue@3.3.6): /vue-qrcode@2.2.0(qrcode@1.5.3)(vue@3.3.8):
resolution: {integrity: sha512-pEwy/IznxEY5MXptFLaxbGdeDWIJRgU5VhBcFmg1avDjD2z2jjWAGE5dlDwqagXtUjcgkvFSSQ40boog1maLuw==} resolution: {integrity: sha512-pEwy/IznxEY5MXptFLaxbGdeDWIJRgU5VhBcFmg1avDjD2z2jjWAGE5dlDwqagXtUjcgkvFSSQ40boog1maLuw==}
peerDependencies: peerDependencies:
qrcode: ^1.5.0 qrcode: ^1.5.0
@ -5187,39 +5199,39 @@ packages:
dependencies: dependencies:
qrcode: 1.5.3 qrcode: 1.5.3
tslib: 2.6.2 tslib: 2.6.2
vue: 3.3.6(typescript@5.2.2) vue: 3.3.8(typescript@5.2.2)
dev: true dev: true
/vue-router@4.2.5(vue@3.3.6): /vue-router@4.2.5(vue@3.3.8):
resolution: {integrity: sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==} resolution: {integrity: sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==}
peerDependencies: peerDependencies:
vue: ^3.2.0 vue: ^3.2.0
dependencies: dependencies:
'@vue/devtools-api': 6.5.1 '@vue/devtools-api': 6.5.1
vue: 3.3.6(typescript@5.2.2) vue: 3.3.8(typescript@5.2.2)
dev: true dev: true
/vue-toastification@2.0.0-rc.5(vue@3.3.6): /vue-toastification@2.0.0-rc.5(vue@3.3.8):
resolution: {integrity: sha512-q73e5jy6gucEO/U+P48hqX+/qyXDozAGmaGgLFm5tXX4wJBcVsnGp4e/iJqlm9xzHETYOilUuwOUje2Qg1JdwA==} resolution: {integrity: sha512-q73e5jy6gucEO/U+P48hqX+/qyXDozAGmaGgLFm5tXX4wJBcVsnGp4e/iJqlm9xzHETYOilUuwOUje2Qg1JdwA==}
peerDependencies: peerDependencies:
vue: ^3.0.2 vue: ^3.0.2
dependencies: dependencies:
vue: 3.3.6(typescript@5.2.2) vue: 3.3.8(typescript@5.2.2)
dev: true dev: true
/vue@3.3.6(typescript@5.2.2): /vue@3.3.8(typescript@5.2.2):
resolution: {integrity: sha512-jJIDETeWJnoY+gfn4ZtMPMS5KtbP4ax+CT4dcQFhTnWEk8xMupFyQ0JxL28nvT/M4+p4a0ptxaV2WY0LiIxvRg==} resolution: {integrity: sha512-5VSX/3DabBikOXMsxzlW8JyfeLKlG9mzqnWgLQLty88vdZL7ZJgrdgBOmrArwxiLtmS+lNNpPcBYqrhE6TQW5w==}
peerDependencies: peerDependencies:
typescript: '*' typescript: '*'
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
dependencies: dependencies:
'@vue/compiler-dom': 3.3.6 '@vue/compiler-dom': 3.3.8
'@vue/compiler-sfc': 3.3.6 '@vue/compiler-sfc': 3.3.8
'@vue/runtime-dom': 3.3.6 '@vue/runtime-dom': 3.3.8
'@vue/server-renderer': 3.3.6(vue@3.3.6) '@vue/server-renderer': 3.3.8(vue@3.3.8)
'@vue/shared': 3.3.6 '@vue/shared': 3.3.8
typescript: 5.2.2 typescript: 5.2.2
dev: true dev: true
@ -5371,8 +5383,8 @@ packages:
/yallist@4.0.0: /yallist@4.0.0:
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
/yaml@2.3.3: /yaml@2.3.4:
resolution: {integrity: sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==} resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==}
engines: {node: '>= 14'} engines: {node: '>= 14'}
/yamljs@0.3.0: /yamljs@0.3.0: