chore: upgrade biome + lint & format

This commit is contained in:
ThatOneCalculator 2023-10-19 17:10:30 -07:00
parent aa7f58d5a1
commit a1cd9f73a1
No known key found for this signature in database
GPG key ID: 8703CACD01000000
46 changed files with 364 additions and 449 deletions

View file

@ -46,14 +46,14 @@
"seedrandom": "^3.0.5"
},
"devDependencies": {
"@biomejs/biome": "1.0.0",
"@biomejs/cli-darwin-arm64": "^1.0.0",
"@biomejs/cli-darwin-x64": "^1.0.0",
"@biomejs/cli-linux-arm64": "^1.0.0",
"@biomejs/cli-linux-x64": "^1.0.0",
"@types/gulp": "4.0.13",
"@types/gulp-rename": "2.0.2",
"@types/node": "20.5.8",
"@biomejs/biome": "1.3.0",
"@biomejs/cli-darwin-arm64": "^1.3.0",
"@biomejs/cli-darwin-x64": "^1.3.0",
"@biomejs/cli-linux-arm64": "^1.3.0",
"@biomejs/cli-linux-x64": "^1.3.0",
"@types/gulp": "4.0.16",
"@types/gulp-rename": "2.0.4",
"@types/node": "20.8.7",
"add": "2.0.6",
"cross-env": "7.0.3",
"cypress": "10.11.0",

View file

@ -162,7 +162,7 @@
"@types/koa__multer": "2.0.4",
"@types/koa__router": "8.0.11",
"@types/mocha": "9.1.1",
"@types/node": "18.11.18",
"@types/node": "20.8.7",
"@types/node-fetch": "3.0.3",
"@types/nodemailer": "6.4.9",
"@types/oauth": "0.9.1",

View file

@ -1,7 +1,7 @@
import config from "@/config/index.js";
import {
DB_MAX_NOTE_TEXT_LENGTH,
DB_MAX_IMAGE_COMMENT_LENGTH,
DB_MAX_NOTE_TEXT_LENGTH,
} from "@/misc/hard-limits.js";
export const MAX_NOTE_TEXT_LENGTH = Math.min(

View file

@ -1,2 +1,2 @@
// rome-ignore lint/suspicious/noExplicitAny: i have no idea
// biome-ignore lint/suspicious/noExplicitAny: i have no idea
type FIXME = any;

View file

@ -2,8 +2,8 @@ import * as assert from "assert";
import httpSignature from "@peertube/http-signature";
import { genRsaKeyPair } from "../src/misc/gen-key-pair.js";
import {
createSignedPost,
createSignedGet,
createSignedPost,
} from "../src/remote/activitypub/ap-request.js";
export const buildParsedSignature = (

View file

@ -4,11 +4,11 @@ import * as assert from "assert";
import * as childProcess from "child_process";
import {
async,
signup,
request,
post,
startServer,
request,
shutdownServer,
signup,
startServer,
} from "./utils.js";
describe("API visibility", () => {

View file

@ -4,13 +4,13 @@ import * as assert from "assert";
import * as childProcess from "child_process";
import {
async,
signup,
request,
post,
react,
uploadFile,
startServer,
request,
shutdownServer,
signup,
startServer,
uploadFile,
} from "./utils.js";
describe("API", () => {

View file

@ -4,11 +4,11 @@ import * as assert from "assert";
import * as childProcess from "child_process";
import {
async,
signup,
request,
post,
startServer,
request,
shutdownServer,
signup,
startServer,
} from "./utils.js";
describe("Block", () => {

View file

@ -2,11 +2,11 @@ process.env.NODE_ENV = "test";
import * as assert from "assert";
import * as lolex from "@sinonjs/fake-timers";
import TestChart from "../src/services/chart/charts/test.js";
import TestGroupedChart from "../src/services/chart/charts/test-grouped.js";
import TestUniqueChart from "../src/services/chart/charts/test-unique.js";
import TestIntersectionChart from "../src/services/chart/charts/test-intersection.js";
import { initDb } from "../src/db/postgre.js";
import TestGroupedChart from "../src/services/chart/charts/test-grouped.js";
import TestIntersectionChart from "../src/services/chart/charts/test-intersection.js";
import TestUniqueChart from "../src/services/chart/charts/test-unique.js";
import TestChart from "../src/services/chart/charts/test.js";
describe("Chart", () => {
let testChart: TestChart;

View file

@ -5,13 +5,13 @@ import * as childProcess from "child_process";
import * as openapi from "@redocly/openapi-core";
import {
async,
startServer,
signup,
port,
post,
request,
simpleGet,
port,
shutdownServer,
signup,
simpleGet,
startServer,
} from "./utils.js";
// Request Accept

View file

@ -4,14 +4,14 @@ import * as assert from "assert";
import * as childProcess from "child_process";
import {
async,
signup,
request,
connectStream,
post,
react,
connectStream,
startServer,
request,
shutdownServer,
signup,
simpleGet,
startServer,
} from "./utils.js";
describe("FF visibility", () => {

View file

@ -1,6 +1,6 @@
import * as assert from "assert";
import { fileURLToPath } from "node:url";
import { dirname } from "node:path";
import { fileURLToPath } from "node:url";
import { getFileInfo } from "../src/misc/get-file-info.js";
import { async } from "./utils.js";

View file

@ -1,8 +1,8 @@
import * as assert from "assert";
import * as mfm from "mfm-js";
import { toHtml } from "../src/mfm/to-html.js";
import { fromHtml } from "../src/mfm/from-html.js";
import { toHtml } from "../src/mfm/to-html.js";
describe("toHtml", () => {
it("br", () => {

View file

@ -4,12 +4,12 @@ import * as assert from "assert";
import * as childProcess from "child_process";
import {
async,
signup,
request,
post,
react,
startServer,
request,
shutdownServer,
signup,
startServer,
waitFire,
} from "./utils.js";

View file

@ -4,15 +4,15 @@ import * as assert from "assert";
import * as childProcess from "child_process";
import { Note } from "../src/models/entities/note.js";
import {
async,
signup,
request,
post,
uploadUrl,
startServer,
shutdownServer,
initTestDb,
api,
async,
initTestDb,
post,
request,
shutdownServer,
signup,
startServer,
uploadUrl,
} from "./utils.js";
describe("Note", () => {

View file

@ -4,13 +4,13 @@ import * as assert from "assert";
import * as childProcess from "child_process";
import { Following } from "../src/models/entities/following.js";
import {
connectStream,
signup,
api,
post,
startServer,
shutdownServer,
connectStream,
initTestDb,
post,
shutdownServer,
signup,
startServer,
waitFire,
} from "./utils.js";

View file

@ -4,13 +4,13 @@ import * as assert from "assert";
import * as childProcess from "child_process";
import {
async,
signup,
request,
connectStream,
post,
react,
connectStream,
startServer,
request,
shutdownServer,
signup,
startServer,
} from "./utils.js";
describe("Note thread mute", () => {

View file

@ -4,12 +4,12 @@ import * as assert from "assert";
import * as childProcess from "child_process";
import {
async,
signup,
request,
post,
uploadUrl,
startServer,
request,
shutdownServer,
signup,
startServer,
uploadUrl,
} from "./utils.js";
describe("users/notes", () => {

View file

@ -1,18 +1,18 @@
import * as fs from "node:fs";
import * as path from "node:path";
import { fileURLToPath } from "node:url";
import { dirname } from "node:path";
import * as childProcess from "child_process";
import * as http from "node:http";
import { SIGKILL } from "constants";
import WebSocket from "ws";
import * as fs from "node:fs";
import * as http from "node:http";
import * as path from "node:path";
import { dirname } from "node:path";
import { fileURLToPath } from "node:url";
import * as firefish from "firefish-js";
import fetch from "node-fetch";
import FormData from "form-data";
import got from "got";
import fetch from "node-fetch";
import { DataSource } from "typeorm";
import WebSocket from "ws";
import loadConfig from "../src/config/load.js";
import { entities } from "../src/db/postgre.js";
import got from "got";
const _filename = fileURLToPath(import.meta.url);
const _dirname = dirname(_filename);

View file

@ -20,8 +20,8 @@
"@syuilo/aiscript": "0.11.1",
"@types/escape-regexp": "0.0.1",
"@types/glob": "8.1.0",
"@types/gulp": "4.0.13",
"@types/gulp-rename": "2.0.2",
"@types/gulp": "4.0.16",
"@types/gulp-rename": "2.0.4",
"@types/katex": "0.16.2",
"@types/matter-js": "0.19.0",
"@types/punycode": "2.1.0",

View file

@ -1,11 +1,11 @@
import { defineAsyncComponent, reactive } from "vue";
import type * as firefish from "firefish-js";
import { i18n } from "./i18n";
import { del, get, set } from "@/scripts/idb-proxy";
import { apiUrl } from "@/config";
import { alert, api, popup, popupMenu, waiting } from "@/os";
import { reloadChannel, unisonReload } from "@/scripts/unison-reload";
import icon from "@/scripts/icon";
import { del, get, set } from "@/scripts/idb-proxy";
import { reloadChannel, unisonReload } from "@/scripts/unison-reload";
import type * as firefish from "firefish-js";
import { defineAsyncComponent, reactive } from "vue";
import { i18n } from "./i18n";
// TODO: 他のタブと永続化されたstateを同期

View file

@ -19,7 +19,10 @@
></i>
<i
v-else-if="type === 'error'"
:class="[$style.iconInner, iconClass('ph-circle-wavy-warning')]"
:class="[
$style.iconInner,
iconClass('ph-circle-wavy-warning'),
]"
></i>
<i
v-else-if="type === 'warning'"

View file

@ -31,7 +31,7 @@
<script lang="ts" setup>
import { shallowRef, watch } from "vue";
import MkModal from "@/components/MkModal.vue";
import iconClass from "@/scripts/icon"
import iconClass from "@/scripts/icon";
const modal = shallowRef<InstanceType<typeof MkModal>>();

View file

@ -1,6 +1,6 @@
import { markRaw } from "vue";
import { locale } from "@/config";
import { I18n } from "@/scripts/i18n";
import { markRaw } from "vue";
export const i18n = markRaw(new I18n(locale));

View file

@ -7,11 +7,11 @@ import "vite/modulepreload-polyfill";
import "@/style.scss";
import "@phosphor-icons/web/fill";
import "@phosphor-icons/web/bold";
import "@phosphor-icons/web/regular";
import "@phosphor-icons/web/light";
import "@phosphor-icons/web/duotone";
import "@phosphor-icons/web/fill";
import "@phosphor-icons/web/light";
import "@phosphor-icons/web/regular";
// #region account indexedDB migration
import { set } from "@/scripts/idb-proxy";
@ -23,6 +23,7 @@ if (accounts) {
}
// #endregion
import { compareVersions } from "compare-versions";
import {
computed,
createApp,
@ -31,29 +32,28 @@ import {
version as vueVersion,
watch,
} from "vue";
import { compareVersions } from "compare-versions";
import widgets from "@/widgets";
import directives from "@/directives";
import { $i, login, refreshAccount, signout, updateAccount } from "@/account";
import components from "@/components";
import { host, lang, ui, version } from "@/config";
import { applyTheme } from "@/scripts/theme";
import { isDeviceDarkmode } from "@/scripts/is-device-darkmode";
import directives from "@/directives";
import { i18n } from "@/i18n";
import { alert, api, confirm, popup, post, toast } from "@/os";
import { stream } from "@/stream";
import * as sound from "@/scripts/sound";
import { $i, login, refreshAccount, signout, updateAccount } from "@/account";
import { ColdDeviceStorage, defaultStore } from "@/store";
import { fetchInstance, instance } from "@/instance";
import { makeHotkey } from "@/scripts/hotkey";
import { search } from "@/scripts/search";
import { alert, api, confirm, popup, post, toast } from "@/os";
import { deviceKind } from "@/scripts/device-kind";
import { initializeSw } from "@/scripts/initialize-sw";
import { reloadChannel } from "@/scripts/unison-reload";
import { reactionPicker } from "@/scripts/reaction-picker";
import { getUrlWithoutLoginId } from "@/scripts/login-id";
import { getAccountFromId } from "@/scripts/get-account-from-id";
import { makeHotkey } from "@/scripts/hotkey";
import { initializeSw } from "@/scripts/initialize-sw";
import { isDeviceDarkmode } from "@/scripts/is-device-darkmode";
import { getUrlWithoutLoginId } from "@/scripts/login-id";
import { reactionPicker } from "@/scripts/reaction-picker";
import { search } from "@/scripts/search";
import * as sound from "@/scripts/sound";
import { applyTheme } from "@/scripts/theme";
import { reloadChannel } from "@/scripts/unison-reload";
import { ColdDeviceStorage, defaultStore } from "@/store";
import { stream } from "@/stream";
import widgets from "@/widgets";
function checkForSplash() {
const splash = document.getElementById("splash");

View file

@ -1,5 +1,5 @@
import { computed, reactive } from "vue";
import type * as firefish from "firefish-js";
import { computed, reactive } from "vue";
import { api } from "./os";
// TODO: 他のタブと永続化されたstateを同期

View file

@ -1,11 +1,11 @@
import { ui } from "@/config";
import { i18n } from "@/i18n";
import * as os from "@/os";
import icon from "@/scripts/icon";
import { search } from "@/scripts/search";
import { unisonReload } from "@/scripts/unison-reload";
import { computed, reactive } from "vue";
import { $i } from "./account";
import { search } from "@/scripts/search";
import * as os from "@/os";
import { i18n } from "@/i18n";
import { ui } from "@/config";
import { unisonReload } from "@/scripts/unison-reload";
import icon from "@/scripts/icon";
export const navbarItemDef = reactive({
notifications: {

View file

@ -1,10 +1,10 @@
// NIRAX --- A lightweight router
import { pleaseLogin } from "@/scripts/please-login";
import { safeURIDecode } from "@/scripts/safe-uri-decode";
import { EventEmitter } from "eventemitter3";
import type { Component, ShallowRef } from "vue";
import { Ref, ref, shallowRef } from "vue";
import { pleaseLogin } from "@/scripts/please-login";
import { safeURIDecode } from "@/scripts/safe-uri-decode";
interface RouteDef {
path: string;
@ -112,7 +112,7 @@ export class Router extends EventEmitter<{
let parts = [..._parts];
const props = new Map<string, string>();
pathMatchLoop: for (const p of parsePath(route.path)) {
for (const p of parsePath(route.path)) {
if (typeof p === "string") {
if (p === parts[0]) {
parts.shift();
@ -128,7 +128,7 @@ export class Router extends EventEmitter<{
props.set(p.name, safeURIDecode(parts.join("/")));
parts = [];
}
break pathMatchLoop;
break;
} else {
if (p.startsWith) {
if (parts[0] == null || !parts[0].startsWith(p.startsWith))
@ -159,7 +159,7 @@ export class Router extends EventEmitter<{
child,
};
} else {
continue forEachRouteLoop;
continue;
}
}

View file

@ -1,18 +1,18 @@
// TODO: なんでもかんでもos.tsに突っ込むのやめたいのでよしなに分割する
import { $i } from "@/account";
import MkDialog from "@/components/MkDialog.vue";
import MkPostFormDialog from "@/components/MkPostFormDialog.vue";
import MkToast from "@/components/MkToast.vue";
import MkWaitingDialog from "@/components/MkWaitingDialog.vue";
import { url, apiUrl } from "@/config";
import type { MenuItem } from "@/types/menu";
import { EventEmitter } from "eventemitter3";
import * as firefish from "firefish-js";
import insertTextAtCursor from "insert-text-at-cursor";
import type { Component, Ref } from "vue";
import { defineAsyncComponent, markRaw, ref } from "vue";
import { EventEmitter } from "eventemitter3";
import insertTextAtCursor from "insert-text-at-cursor";
import * as firefish from "firefish-js";
import { i18n } from "./i18n";
import { apiUrl, url } from "@/config";
import MkPostFormDialog from "@/components/MkPostFormDialog.vue";
import MkWaitingDialog from "@/components/MkWaitingDialog.vue";
import MkToast from "@/components/MkToast.vue";
import MkDialog from "@/components/MkDialog.vue";
import type { MenuItem } from "@/types/menu";
import { $i } from "@/account";
export const pendingApiRequestsCount = ref(0);

View file

@ -2,7 +2,11 @@
<div ref="el" class="fdidabkc" :style="{ background: bg }" @click="onClick">
<template v-if="metadata">
<div class="titleContainer" @click="showTabsPopup">
<i v-if="metadata.icon" class="icon" :class="icon(metadata.icon)"></i>
<i
v-if="metadata.icon"
class="icon"
:class="icon(metadata.icon)"
></i>
<div class="title">
<div class="title">{{ metadata.title }}</div>
@ -63,7 +67,7 @@ import { scrollToTop } from "@/scripts/scroll";
import MkButton from "@/components/MkButton.vue";
import { globalEvents } from "@/events";
import { injectPageMetadata } from "@/scripts/page-metadata";
import icon from "@/scripts/icon"
import icon from "@/scripts/icon";
interface Tab {
key?: string | null;

View file

@ -1,8 +1,5 @@
import { AiScript, utils, values } from "@syuilo/aiscript";
import { deserialize } from "@syuilo/aiscript/built/serializer";
import { jsToVal } from "@syuilo/aiscript/built/interpreter/util";
import { createAiScriptEnv } from "@/scripts/aiscript/api";
import { inputText } from "@/os";
import { createAiScriptEnv } from "@/scripts/aiscript/api";
import {
noteActions,
notePostInterruptors,
@ -10,6 +7,9 @@ import {
postFormActions,
userActions,
} from "@/store";
import { AiScript, utils, values } from "@syuilo/aiscript";
import { jsToVal } from "@syuilo/aiscript/built/interpreter/util";
import { deserialize } from "@syuilo/aiscript/built/serializer";
const pluginContexts = new Map<string, AiScript>();

View file

@ -1,11 +1,11 @@
import { $i, iAmModerator } from "@/account";
import { ui } from "@/config";
import { Router } from "@/nirax";
import { api } from "@/os";
import MkError from "@/pages/_error_.vue";
import MkLoading from "@/pages/_loading_.vue";
import type { AsyncComponentLoader } from "vue";
import { defineAsyncComponent, inject } from "vue";
import { Router } from "@/nirax";
import { $i, iAmModerator } from "@/account";
import MkLoading from "@/pages/_loading_.vue";
import MkError from "@/pages/_error_.vue";
import { api } from "@/os";
import { ui } from "@/config";
function getGuestTimelineStatus() {
api("meta", {

View file

@ -88,7 +88,11 @@ export class Autocomplete {
const isHashtag = hashtagIndex !== -1;
const isMfmTag = mfmTagIndex !== -1;
const isEmoji =
emojiIndex !== -1 && text.split(/:[a-z0-9_+\-]+:/).pop()!.includes(":");
emojiIndex !== -1 &&
text
.split(/:[a-z0-9_+\-]+:/)
.pop()!
.includes(":");
let opened = false;

View file

@ -385,11 +385,11 @@ interface Plugin {
ast: any[];
}
import darkTheme from "@/themes/d-rosepine.json5";
/**
* Storage for configuration information that does not need to be constantly loaded into memory (non-reactive)
*/
import lightTheme from "@/themes/l-rosepinedawn.json5";
import darkTheme from "@/themes/d-rosepine.json5";
export class ColdDeviceStorage {
public static default = {

View file

@ -1,7 +1,7 @@
import * as firefish from "firefish-js";
import { markRaw } from "vue";
import { $i } from "@/account";
import { url } from "@/config";
import * as firefish from "firefish-js";
import { markRaw } from "vue";
export const stream = markRaw(
new firefish.Stream(

View file

@ -1,6 +1,6 @@
import type { Theme } from "./scripts/theme";
import { api } from "@/os";
import { $i } from "@/account";
import { api } from "@/os";
import type { Theme } from "./scripts/theme";
const lsCacheKey = $i ? `themes:${$i.id}` : "";

View file

@ -32,15 +32,9 @@
"types": [
"vite/client",
],
"lib": [
"esnext",
"dom"
],
"lib": ["esnext", "dom"],
"jsx": "preserve"
},
"compileOnSave": false,
"include": [
"./**/*.ts",
"./**/*.vue"
]
"include": ["./**/*.ts", "./**/*.vue"]
}

View file

@ -11,30 +11,30 @@ import {
DetailedInstanceMetadata,
DriveFile,
DriveFolder,
FollowRequest,
Following,
FollowingFolloweePopulated,
FollowingFollowerPopulated,
FollowRequest,
GalleryPost,
Instance,
InstanceMetadata,
LiteInstanceMetadata,
MeDetailed,
MessagingMessage,
Note,
NoteFavorite,
NoteReaction,
Notification,
OriginType,
Page,
ServerInfo,
Signin,
Stats,
User,
UserDetailed,
UserGroup,
UserList,
UserSorting,
Notification,
NoteReaction,
Signin,
MessagingMessage,
} from "./entities";
type TODO = Record<string, any> | null;

View file

@ -1,8 +1,8 @@
import { Acct } from "./acct";
import { Endpoints } from "./api.types";
import * as consts from "./consts";
import Stream, { Connection } from "./streaming";
import { Channels } from "./streaming.types";
import { Acct } from "./acct";
import * as consts from "./consts";
export { Endpoints, Stream, Connection as ChannelConnection, Channels, Acct };

View file

@ -27,9 +27,9 @@ export function urlQuery(
const params = Object.entries(obj)
.filter(([, v]) => (Array.isArray(v) ? v.length : v !== undefined))
.reduce(
// rome-ignore lint/suspicious/noAssignInExpressions: <Used for key assigning>
// rome-ignore lint/style/noNonNullAssertion: <>
// rome-ignore lint/style/noCommaOperator: <>
// biome-ignore lint/suspicious/noAssignInExpressions: <Used for key assigning>
// biome-ignore lint/style/noNonNullAssertion: <>
// biome-ignore lint/style/noCommaOperator: <>
(a, [k, v]) => ((a[k] = v!), a),
{} as Record<string, string | number | boolean>,
);

View file

@ -37,6 +37,7 @@
"dependencies": {
"@types/oauth": "^0.9.0",
"@types/ws": "^8.5.4",
"async-lock": "1.4.0",
"axios": "1.2.2",
"dayjs": "^1.11.7",
"form-data": "^4.0.0",
@ -47,20 +48,19 @@
"socks-proxy-agent": "^7.0.0",
"typescript": "4.9.4",
"uuid": "^9.0.0",
"ws": "8.12.0",
"async-lock": "1.4.0"
"ws": "8.12.0"
},
"devDependencies": {
"@types/async-lock": "1.4.0",
"@types/core-js": "^2.5.0",
"@types/form-data": "^2.5.0",
"@types/jest": "^29.4.0",
"@types/node": "20.8.7",
"@types/object-assign-deep": "^0.4.0",
"@types/parse-link-header": "^2.0.0",
"@types/uuid": "^9.0.0",
"@types/node": "18.11.18",
"@typescript-eslint/eslint-plugin": "^5.49.0",
"@typescript-eslint/parser": "^5.49.0",
"@types/async-lock": "1.4.0",
"eslint": "^8.32.0",
"eslint-config-prettier": "^8.6.0",
"eslint-config-standard": "^16.0.3",

View file

@ -1,17 +1,17 @@
import Response from "./response";
import OAuth from "./oauth";
import { isCancel, RequestCanceledError } from "./cancel";
import { ProxyConfig } from "./proxy_config";
import { RequestCanceledError, isCancel } from "./cancel";
import Converter from "./converter";
import Entity from "./entity";
import FilterContext from "./filter_context";
import generator, {
detector,
MegalodonInterface,
WebSocketInterface,
detector,
} from "./megalodon";
import Misskey from "./misskey";
import Entity from "./entity";
import NotificationType from "./notification";
import FilterContext from "./filter_context";
import Converter from "./converter";
import OAuth from "./oauth";
import { ProxyConfig } from "./proxy_config";
import Response from "./response";
export {
Response,

View file

@ -1,10 +1,10 @@
import Response from "./response";
import axios, { AxiosRequestConfig } from "axios";
import { DEFAULT_UA } from "./default";
import Entity from "./entity";
import Misskey from "./misskey";
import OAuth from "./oauth";
import proxyAgent, { ProxyConfig } from "./proxy_config";
import Entity from "./entity";
import axios, { AxiosRequestConfig } from "axios";
import Misskey from "./misskey";
import { DEFAULT_UA } from "./default";
import Response from "./response";
export interface WebSocketInterface {
start(): void;

View file

@ -1,22 +1,22 @@
import FormData from "form-data";
import AsyncLock from "async-lock";
import FormData from "form-data";
import MisskeyAPI from "./misskey/api_client";
import fs from "node:fs";
import MegalodonEntity from "@/entity";
import { DEFAULT_UA } from "./default";
import { ProxyConfig } from "./proxy_config";
import OAuth from "./oauth";
import Response from "./response";
import Entity from "./entity";
import {
MegalodonInterface,
WebSocketInterface,
NoImplementedError,
ArgumentError,
MegalodonInterface,
NoImplementedError,
UnexpectedError,
WebSocketInterface,
} from "./megalodon";
import MegalodonEntity from "@/entity";
import fs from "node:fs";
import MisskeyAPI from "./misskey/api_client";
import MisskeyNotificationType from "./misskey/notification";
import OAuth from "./oauth";
import { ProxyConfig } from "./proxy_config";
import Response from "./response";
type AccountCache = {
locks: AsyncLock;

View file

@ -27,13 +27,8 @@
"node_modules/@types",
"@types",
],
"lib": [
"esnext",
"webworker"
]
"lib": ["esnext", "webworker"]
},
"compileOnSave": false,
"include": [
"./**/*.ts", "./**/*.d.ts", "./**/*.tsx", "./**/*.vue"
]
"include": ["./**/*.ts", "./**/*.d.ts", "./**/*.tsx", "./**/*.vue"]
}

View file

@ -31,29 +31,29 @@ importers:
version: 3.0.5
devDependencies:
'@biomejs/biome':
specifier: 1.0.0
version: 1.0.0
specifier: 1.3.0
version: 1.3.0
'@biomejs/cli-darwin-arm64':
specifier: ^1.0.0
version: 1.2.2
specifier: ^1.3.0
version: 1.3.0
'@biomejs/cli-darwin-x64':
specifier: ^1.0.0
version: 1.2.2
specifier: ^1.3.0
version: 1.3.0
'@biomejs/cli-linux-arm64':
specifier: ^1.0.0
version: 1.2.2
specifier: ^1.3.0
version: 1.3.0
'@biomejs/cli-linux-x64':
specifier: ^1.0.0
version: 1.2.2
specifier: ^1.3.0
version: 1.3.0
'@types/gulp':
specifier: 4.0.13
version: 4.0.13
specifier: 4.0.16
version: 4.0.16
'@types/gulp-rename':
specifier: 2.0.2
version: 2.0.2
specifier: 2.0.4
version: 2.0.4
'@types/node':
specifier: 20.5.8
version: 20.5.8
specifier: 20.8.7
version: 20.8.7
add:
specifier: 2.0.6
version: 2.0.6
@ -507,8 +507,8 @@ importers:
specifier: 9.1.1
version: 9.1.1
'@types/node':
specifier: 18.11.18
version: 18.11.18
specifier: 20.8.7
version: 20.8.7
'@types/node-fetch':
specifier: 3.0.3
version: 3.0.3
@ -601,7 +601,7 @@ importers:
version: 9.4.4(typescript@5.1.6)(webpack@5.88.2)
ts-node:
specifier: 10.9.1
version: 10.9.1(@swc/core@1.3.78)(@types/node@18.11.18)(typescript@5.1.6)
version: 10.9.1(@swc/core@1.3.78)(@types/node@20.8.7)(typescript@5.1.6)
tsconfig-paths:
specifier: 4.2.0
version: 4.2.0
@ -657,11 +657,11 @@ importers:
specifier: 8.1.0
version: 8.1.0
'@types/gulp':
specifier: 4.0.13
version: 4.0.13
specifier: 4.0.16
version: 4.0.16
'@types/gulp-rename':
specifier: 2.0.2
version: 2.0.2
specifier: 2.0.4
version: 2.0.4
'@types/katex':
specifier: 0.16.2
version: 0.16.2
@ -871,7 +871,7 @@ importers:
version: 1.8.1
vite:
specifier: 4.4.9
version: 4.4.9(@types/node@20.5.8)(sass@1.66.1)
version: 4.4.9(@types/node@20.8.7)(sass@1.66.1)
vite-plugin-compression:
specifier: ^0.5.1
version: 0.5.1(vite@4.4.9)
@ -906,7 +906,7 @@ importers:
devDependencies:
'@swc/cli':
specifier: ^0.1.62
version: 0.1.62(@swc/core@1.3.78)
version: 0.1.62(@swc/core@1.3.78)(chokidar@3.3.1)
'@swc/core':
specifier: 1.3.78
version: 1.3.78
@ -1002,8 +1002,8 @@ importers:
specifier: ^29.4.0
version: 29.5.6
'@types/node':
specifier: 18.11.18
version: 18.11.18
specifier: 20.8.7
version: 20.8.7
'@types/object-assign-deep':
specifier: ^0.4.0
version: 0.4.2
@ -1045,7 +1045,7 @@ importers:
version: 5.0.0(eslint@8.46.0)
jest:
specifier: ^29.4.0
version: 29.7.0(@types/node@18.11.18)
version: 29.7.0(@types/node@20.8.7)
jest-worker:
specifier: ^29.4.0
version: 29.7.0
@ -1140,7 +1140,7 @@ packages:
'@babel/traverse': 7.22.10
'@babel/types': 7.22.10
convert-source-map: 1.9.0
debug: 4.3.4
debug: 4.3.4(supports-color@8.1.1)
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
@ -1162,7 +1162,7 @@ packages:
'@babel/traverse': 7.23.2
'@babel/types': 7.23.0
convert-source-map: 2.0.0
debug: 4.3.4
debug: 4.3.4(supports-color@8.1.1)
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
@ -1581,7 +1581,7 @@ packages:
'@babel/helper-split-export-declaration': 7.22.6
'@babel/parser': 7.22.10
'@babel/types': 7.22.10
debug: 4.3.4
debug: 4.3.4(supports-color@8.1.1)
globals: 11.12.0
transitivePeerDependencies:
- supports-color
@ -1598,7 +1598,7 @@ packages:
'@babel/helper-split-export-declaration': 7.22.6
'@babel/parser': 7.23.0
'@babel/types': 7.23.0
debug: 4.3.4
debug: 4.3.4(supports-color@8.1.1)
globals: 11.12.0
transitivePeerDependencies:
- supports-color
@ -1625,86 +1625,50 @@ packages:
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
dev: true
/@biomejs/biome@1.0.0:
resolution: {integrity: sha512-Y5CND1QZ5pF6hc4dFw5ItDutv9KJO91ksLdBIFyvHL7LmXN0UomqyyRWryvrqq+YlA8Q58cR6sqjjQuMp9E2Ig==}
/@biomejs/biome@1.3.0:
resolution: {integrity: sha512-IKe8eGhiW5PfD4B3GMerS9YucvL1cqEqocVdeBi/Q8o63znqy7aLU2Xc4DAw1qg9OurWxemAp2RQorSqYHwMow==}
engines: {node: '>=14.*'}
hasBin: true
requiresBuild: true
optionalDependencies:
'@biomejs/cli-darwin-arm64': 1.0.0
'@biomejs/cli-darwin-x64': 1.0.0
'@biomejs/cli-linux-arm64': 1.0.0
'@biomejs/cli-linux-x64': 1.0.0
'@biomejs/cli-win32-arm64': 1.0.0
'@biomejs/cli-win32-x64': 1.0.0
'@biomejs/cli-darwin-arm64': 1.3.0
'@biomejs/cli-darwin-x64': 1.3.0
'@biomejs/cli-linux-arm64': 1.3.0
'@biomejs/cli-linux-x64': 1.3.0
'@biomejs/cli-win32-arm64': 1.3.0
'@biomejs/cli-win32-x64': 1.3.0
dev: true
/@biomejs/cli-darwin-arm64@1.0.0:
resolution: {integrity: sha512-3v7kEyxkf3D246esH+q/lDK5wWn+xLCXZpHCuc1itAmC35GkEc6S7um6C1VD3XKXLx6N0sJR/rTmjKiRGV32Ig==}
engines: {node: '>=14.*'}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@biomejs/cli-darwin-arm64@1.2.2:
resolution: {integrity: sha512-Fx1IURKhoqH6wPawtKLT6wcfMSjRRcNK8+VWau0iDOjXvNtjJpSmICbU89B7Vt/gZRwPqkfDMBkFwm6V5vFTSQ==}
/@biomejs/cli-darwin-arm64@1.3.0:
resolution: {integrity: sha512-O2NhR3ZXw1QknvoKAxwn76U9q/RYvLsZwbYl6+iY79gnL2SL1bljuFMUzRS5R1nNs3H/LOrHUq/JpleKjOwGUw==}
engines: {node: '>=14.*'}
cpu: [arm64]
os: [darwin]
dev: true
/@biomejs/cli-darwin-x64@1.0.0:
resolution: {integrity: sha512-uxIMt/X7TQWicjsImkqMvUUEqaFZTOJJrtEhlHl/eIaETWJmK3uAR7ihIWctpGJnN16sUgpLgwczc7FETqu/PQ==}
engines: {node: '>=14.*'}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@biomejs/cli-darwin-x64@1.2.2:
resolution: {integrity: sha512-JNaAFOI/ZisnmzvcFNd73geJxaFaN2L4YsWM6cgBeKyLY/ycl9C/PBTFfEmeB1c7f5XIIal8P2cj47kLJpN5Ig==}
/@biomejs/cli-darwin-x64@1.3.0:
resolution: {integrity: sha512-8rljS+4nLVuSPuPmuFp64bMZqwmGv9O/6wKoVk0kzeaVD1elSzMz+ZoTrRodbI1Hl8kItDdGf431L7S1EqRokQ==}
engines: {node: '>=14.*'}
cpu: [x64]
os: [darwin]
dev: true
/@biomejs/cli-linux-arm64@1.0.0:
resolution: {integrity: sha512-kJWtu3Xr4MdHV2Yn4U+eZudAGPgv0kRCjWAyzLRewJiqE5TLPrX08imB9SU1n3+VxNO8e2JJ0tWWBHo4J+aSEg==}
engines: {node: '>=14.*'}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@biomejs/cli-linux-arm64@1.2.2:
resolution: {integrity: sha512-JHXRnfhOLx8UO/Fcyn2c5pFRri0XKqRZm2wf5oH5GSfLVpckDw2X15dYGbu3nmfM/3pcAaTV46pUpjrCnaAieg==}
/@biomejs/cli-linux-arm64@1.3.0:
resolution: {integrity: sha512-vQIEaXQf1pPJPetcd4jfM3118sG4AfZvbDuLnU/4lCUIs0XuwPYMcx2KzwXu2m0tn6J4xQsZHvNQyHpiBbp9vA==}
engines: {node: '>=14.*'}
cpu: [arm64]
os: [linux]
dev: true
/@biomejs/cli-linux-x64@1.0.0:
resolution: {integrity: sha512-FK6hYZ0Lkk39eXYx1+2ZWtLkApc0RdOpcjDVM96JbvI0bxqvNnm193BPXuxh5A/fCl6N28RNUvcKnZ5LbgZ0Yw==}
engines: {node: '>=14.*'}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@biomejs/cli-linux-x64@1.2.2:
resolution: {integrity: sha512-5Zr+iM7lUKsw81p9PkXRESuH2/AhRZ6RCWkgE+FSLcxMhXy/4RDR+o2YQDsJM6cWKIzOJM05vDHTGrDq7vXE4A==}
/@biomejs/cli-linux-x64@1.3.0:
resolution: {integrity: sha512-ZH+PvgAZ3nr69O8Tb+MO+08k+0PhG0paWhkIaUW1AUlD7ruIpk+dlHp3DjHauSPFDZkNIxj6utwI1c5lP8hF9w==}
engines: {node: '>=14.*'}
cpu: [x64]
os: [linux]
dev: true
/@biomejs/cli-win32-arm64@1.0.0:
resolution: {integrity: sha512-kE+OY2isEJHBodiLPMlybZckHkl3CQWsvXuJEvSxkoMhLbGDPEV3yZ/0lEph3BlxP3KP5vUO3hOFGaTvHFOuqQ==}
/@biomejs/cli-win32-arm64@1.3.0:
resolution: {integrity: sha512-Mfo1oWXnuOL4zWidx0A7jQSs6+uZZYZB4wuD9lBCbuoQoRNFobGEs11z/iy8XW5mucx+MW4ylTAcDAS+5/2kEw==}
engines: {node: '>=14.*'}
cpu: [arm64]
os: [win32]
@ -1712,8 +1676,8 @@ packages:
dev: true
optional: true
/@biomejs/cli-win32-x64@1.0.0:
resolution: {integrity: sha512-Ko6ZsbmbScPMEnh/xz4mwDSCZIUCAEjbbbnUVApgAAL2+1Hoe7Vnhh2RiwYRqy3tHrBIMDwXkSxj0vlf1G3EHg==}
/@biomejs/cli-win32-x64@1.3.0:
resolution: {integrity: sha512-t2EPg+zeMzimBoURfj9CKeNObCZ/MbFxdQj0+K5Q+LR41fUaevG/wOrM+Swh5emRXdSBUm0qsTq3xiyv77C3Ww==}
engines: {node: '>=14.*'}
cpu: [x64]
os: [win32]
@ -2538,14 +2502,14 @@ packages:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
'@types/node': 18.11.18
'@types/node': 20.8.7
ansi-escapes: 4.3.2
chalk: 4.1.2
ci-info: 3.8.0
exit: 0.1.2
graceful-fs: 4.2.11
jest-changed-files: 29.7.0
jest-config: 29.7.0(@types/node@18.11.18)
jest-config: 29.7.0(@types/node@20.8.7)(ts-node@10.9.1)
jest-haste-map: 29.7.0
jest-message-util: 29.7.0
jest-regex-util: 29.6.3
@ -2616,7 +2580,7 @@ packages:
dependencies:
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
'@types/node': 18.11.18
'@types/node': 20.8.7
jest-mock: 29.7.0
dev: true
@ -3239,26 +3203,6 @@ packages:
resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==}
dev: false
/@swc/cli@0.1.62(@swc/core@1.3.78):
resolution: {integrity: sha512-kOFLjKY3XH1DWLfXL1/B5MizeNorHR8wHKEi92S/Zi9Md/AK17KSqR8MgyRJ6C1fhKHvbBCl8wboyKAFXStkYw==}
engines: {node: '>= 12.13'}
hasBin: true
peerDependencies:
'@swc/core': ^1.2.66
chokidar: ^3.3.1
peerDependenciesMeta:
chokidar:
optional: true
dependencies:
'@mole-inc/bin-wrapper': 8.0.1
'@swc/core': 1.3.78
commander: 7.2.0
fast-glob: 3.3.1
semver: 7.5.4
slash: 3.0.0
source-map: 0.7.4
dev: true
/@swc/cli@0.1.62(@swc/core@1.3.78)(chokidar@3.3.1):
resolution: {integrity: sha512-kOFLjKY3XH1DWLfXL1/B5MizeNorHR8wHKEi92S/Zi9Md/AK17KSqR8MgyRJ6C1fhKHvbBCl8wboyKAFXStkYw==}
engines: {node: '>= 12.13'}
@ -3761,12 +3705,12 @@ packages:
/@types/accepts@1.3.5:
resolution: {integrity: sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==}
dependencies:
'@types/node': 18.11.18
'@types/node': 20.8.7
/@types/adm-zip@0.5.0:
resolution: {integrity: sha512-FCJBJq9ODsQZUNURo5ILAQueuA8WJhRvuihS3ke2iI25mJlfV2LK8jG2Qj2z2AWg8U0FtWWqBHVRetceLskSaw==}
dependencies:
'@types/node': 18.11.18
'@types/node': 20.8.7
dev: true
/@types/async-lock@1.4.0:
@ -3839,27 +3783,27 @@ packages:
resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==}
dependencies:
'@types/connect': 3.4.35
'@types/node': 18.11.18
'@types/node': 20.8.7
/@types/cacheable-request@6.0.3:
resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==}
dependencies:
'@types/http-cache-semantics': 4.0.1
'@types/keyv': 3.1.4
'@types/node': 18.11.18
'@types/node': 20.8.7
'@types/responselike': 1.0.0
/@types/co-body@6.1.0:
resolution: {integrity: sha512-3e0q2jyDAnx/DSZi0z2H0yoZ2wt5yRDZ+P7ymcMObvq0ufWRT4tsajyO+Q1VwVWiv9PRR4W3YEjEzBjeZlhF+w==}
dependencies:
'@types/node': 18.11.18
'@types/node': 20.8.7
'@types/qs': 6.9.7
dev: false
/@types/connect@3.4.35:
resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==}
dependencies:
'@types/node': 18.11.18
'@types/node': 20.8.7
/@types/content-disposition@0.5.5:
resolution: {integrity: sha512-v6LCdKfK6BwcqMo+wYW05rLS12S0ZO0Fl4w1h4aaZMD7bqT3gVUns6FvLJKGZHQmYn3SX55JWGpziwJRwVgutA==}
@ -3870,7 +3814,7 @@ packages:
'@types/connect': 3.4.35
'@types/express': 4.17.17
'@types/keygrip': 1.0.2
'@types/node': 18.11.18
'@types/node': 20.8.7
/@types/core-js@2.5.7:
resolution: {integrity: sha512-EhO4Lcd2Rs2bZvQwIDMZ1qsaZk8DpdOkQCbKpK0vt7fSjJGXrCA7EPauR/BZ7eJXks1een4FX7JtlhS136fklA==}
@ -3920,7 +3864,7 @@ packages:
/@types/express-serve-static-core@4.17.35:
resolution: {integrity: sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==}
dependencies:
'@types/node': 18.11.18
'@types/node': 20.8.7
'@types/qs': 6.9.7
'@types/range-parser': 1.2.4
'@types/send': 0.17.1
@ -3936,7 +3880,7 @@ packages:
/@types/fluent-ffmpeg@2.1.21:
resolution: {integrity: sha512-+n3dy/Tegt6n+YwGZUiGq6i8Jrnt8+MoyPiW1L6J5EWUl7GSt18a/VyReecfCsvTTNBXNMIKOMHDstiQM8nJLA==}
dependencies:
'@types/node': 18.11.18
'@types/node': 20.8.7
dev: true
/@types/form-data@2.5.0:
@ -3949,15 +3893,15 @@ packages:
/@types/formidable@2.0.6:
resolution: {integrity: sha512-L4HcrA05IgQyNYJj6kItuIkXrInJvsXTPC5B1i64FggWKKqSL+4hgt7asiSNva75AoLQjq29oPxFfU4GAQ6Z2w==}
dependencies:
'@types/node': 18.11.18
'@types/node': 20.8.7
dev: false
/@types/glob-stream@8.0.0:
resolution: {integrity: sha512-fxTWwdQmX9LWSHD7ZLlv3BHR992mKcVcDnT/2v+l/QZZo7TfDdyasqlSYVzOnMGWhRbrWeWkbj/mgezFjKynhw==}
/@types/glob-stream@8.0.1:
resolution: {integrity: sha512-sR8FnsG9sEkjKasMSYbRmzaSVYmY76ui0t+T+9BE2Wr/ansAKfNsu+xT0JvZL+7DDQDO/MPTg6g8hfNdhYWT2g==}
dependencies:
'@types/node': 20.5.8
'@types/picomatch': 2.3.0
'@types/streamx': 2.9.1
'@types/node': 20.8.7
'@types/picomatch': 2.3.2
'@types/streamx': 2.9.3
dev: true
/@types/glob@8.1.0:
@ -3973,18 +3917,19 @@ packages:
'@types/node': 20.8.7
dev: true
/@types/gulp-rename@2.0.2:
resolution: {integrity: sha512-CQsXqTVtAXqrPd4IbrrlJEEzRkUR3RXsyZbrVoOVqjlchDDmnyRDatAUisjpQjjCg/wjJrSiNg8T1uAbJ/7Qqg==}
/@types/gulp-rename@2.0.4:
resolution: {integrity: sha512-dhhbD+PlIGmxpYiSsLsTgMsyfqmwemlM6gnM2hXzDh68knKocRDBq/CNRhbGlAZkUH/7zCbEvadxQXQJtanMPw==}
dependencies:
'@types/node': 20.5.8
'@types/vinyl': 2.0.7
'@types/node': 20.8.7
'@types/vinyl': 2.0.9
dev: true
/@types/gulp@4.0.13:
resolution: {integrity: sha512-Ms20Q2tZ3MpThZGn4Ag6e7ifz/oQJFxsuiopqz5oHmhE6q2ohnELgafi5K/pKX/4ntlpidS61v/TXAguYsVcaA==}
/@types/gulp@4.0.16:
resolution: {integrity: sha512-yY3XJjYejEzIQqLt6ZXaOZ/jynVxUe7Km33XA1/sU2zfZ2AeFDragIcT+i53a+j7eoWPgVeikhFvtC0gCteBdA==}
dependencies:
'@types/undertaker': 1.2.8
'@types/vinyl-fs': 3.0.2
'@types/node': 20.8.7
'@types/undertaker': 1.2.10
'@types/vinyl-fs': 3.0.4
chokidar: 3.5.3
dev: true
@ -4054,7 +3999,7 @@ packages:
/@types/keyv@3.1.4:
resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
dependencies:
'@types/node': 18.11.18
'@types/node': 20.8.7
/@types/koa-bodyparser@4.3.10:
resolution: {integrity: sha512-6ae05pjhmrmGhUR8GYD5qr5p9LTEMEGfGXCsK8VaSL+totwigm8+H/7MHW7K4854CMeuwRAubT8qcc/EagaeIA==}
@ -4170,7 +4115,7 @@ packages:
'@types/http-errors': 2.0.1
'@types/keygrip': 1.0.2
'@types/koa-compose': 3.2.5
'@types/node': 18.11.18
'@types/node': 20.8.7
/@types/koa__cors@3.3.0:
resolution: {integrity: sha512-FUN8YxcBakIs+walVe3+HcNP+Bxd0SB8BJHBWkglZ5C1XQWljlKcEFDG/dPiCIqwVCUbc5X0nYDlH62uEhdHMA==}
@ -4225,13 +4170,13 @@ packages:
/@types/needle@3.2.0:
resolution: {integrity: sha512-6XzvzEyJ2ozFNfPajFmqH9JOt0Hp+9TawaYpJT59iIP/zR0U37cfWCRwosyIeEBBZBi021Osq4jGAD3AOju5fg==}
dependencies:
'@types/node': 18.11.18
'@types/node': 20.8.7
dev: true
/@types/node-fetch@2.6.4:
resolution: {integrity: sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==}
dependencies:
'@types/node': 20.5.8
'@types/node': 20.8.7
form-data: 3.0.1
dev: false
@ -4245,22 +4190,19 @@ packages:
/@types/node@14.18.63:
resolution: {integrity: sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==}
/@types/node@18.11.18:
resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==}
/@types/node@20.5.8:
resolution: {integrity: sha512-eajsR9aeljqNhK028VG0Wuw+OaY5LLxYmxeoXynIoE6jannr9/Ucd1LL0hSSoafk5LTYG+FfqsyGt81Q6Zkybw==}
dev: true
/@types/node@20.8.7:
resolution: {integrity: sha512-21TKHHh3eUHIi2MloeptJWALuCu5H7HQTdTrWIFReA8ad+aggoX+lRes3ex7/FtpC+sVUpFMQ+QTfYr74mruiQ==}
dependencies:
undici-types: 5.25.3
dev: true
/@types/nodemailer@6.4.9:
resolution: {integrity: sha512-XYG8Gv+sHjaOtUpiuytahMy2mM3rectgroNbs6R3djZEKmPNiIJwe9KqOJBGzKKnNZNKvnuvmugBgpq3w/S0ig==}
dependencies:
'@types/node': 18.11.18
'@types/node': 20.8.7
dev: true
/@types/normalize-package-data@2.4.3:
@ -4270,7 +4212,7 @@ packages:
/@types/oauth@0.9.1:
resolution: {integrity: sha512-a1iY62/a3yhZ7qH7cNUsxoI3U/0Fe9+RnuFrpTKr+0WVOzbKlSLojShCKe20aOD1Sppv+i8Zlq0pLDuTJnwS4A==}
dependencies:
'@types/node': 18.11.18
'@types/node': 20.8.7
/@types/object-assign-deep@0.4.2:
resolution: {integrity: sha512-iF6qYKjYdg/kFg3AEM/msyh1+U4zZW043d2TnCS9fwib00nc8Asj+38LgIpkO/UpfUMRgJ0m/tHATwU2F8Bfow==}
@ -4288,15 +4230,15 @@ packages:
resolution: {integrity: sha512-RKU5SIF0oyM2ZI0ubw66FkM/0RJUv/r84I7vJcXkcICcfeOpd1WXfpcqkFJPaWli5z3YdxMsfWojyU5uofT6sA==}
dev: true
/@types/picomatch@2.3.0:
resolution: {integrity: sha512-O397rnSS9iQI4OirieAtsDqvCj4+3eY1J+EPdNTKuHuRWIfUoGyzX294o8C4KJYaLqgSrd2o60c5EqCU8Zv02g==}
/@types/picomatch@2.3.2:
resolution: {integrity: sha512-I+BytjxOlNYA285zP/3dVCRcE+OAvgHQZQt26MP7T7JbZ9DM/3W2WfViU1XuLypCzAx8PTC+MlYO3WLqjTyZ3g==}
dev: true
/@types/probe-image-size@7.2.0:
resolution: {integrity: sha512-R5H3vw62gHNHrn+JGZbKejb+Z2D/6E5UNVlhCzIaBBLroMQMOFqy5Pap2gM+ZZHdqBtVU0/cx/M6to+mOJcoew==}
dependencies:
'@types/needle': 3.2.0
'@types/node': 18.11.18
'@types/node': 20.8.7
dev: true
/@types/pug@2.0.6:
@ -4310,7 +4252,7 @@ packages:
/@types/qrcode@1.5.1:
resolution: {integrity: sha512-HpSN675K0PmxIDRpjMI3Mc2GiKo3dNu+X/F5SoItiaDS1lVfgC6Wac1c5lQDfKWbTJUSHWiHKzpJpBZG7k9gaA==}
dependencies:
'@types/node': 18.11.18
'@types/node': 20.8.7
dev: true
/@types/qs@6.9.7:
@ -4341,7 +4283,7 @@ packages:
/@types/responselike@1.0.0:
resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==}
dependencies:
'@types/node': 18.11.18
'@types/node': 20.8.7
/@types/sanitize-html@2.9.0:
resolution: {integrity: sha512-4fP/kEcKNj2u39IzrxWYuf/FnCCwwQCpif6wwY6ROUS1EPRIfWJjGkY3HIowY1EX/VbX5e86yq8AAE7UPMgATg==}
@ -4365,14 +4307,14 @@ packages:
resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==}
dependencies:
'@types/mime': 1.3.2
'@types/node': 18.11.18
'@types/node': 20.8.7
/@types/serve-static@1.15.2:
resolution: {integrity: sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==}
dependencies:
'@types/http-errors': 2.0.1
'@types/mime': 3.0.1
'@types/node': 18.11.18
'@types/node': 20.8.7
/@types/sinonjs__fake-timers@8.1.1:
resolution: {integrity: sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==}
@ -4394,10 +4336,10 @@ packages:
resolution: {integrity: sha512-g7CK9nHdwjK2n0ymT2CW698FuWJRIx+RP6embAzZ2Qi8/ilIrA1Imt2LVSeHUzKvpoi7BhmmQcXz95eS0f2JXw==}
dev: true
/@types/streamx@2.9.1:
resolution: {integrity: sha512-9bywzhouyedmci7WCIPFwJ8zASDnxt2gaVUy52X0p0Tt085IJSAEP0L6j4SSNeDMSLzpYu6cPz0GrJZ7kPJ6Bg==}
/@types/streamx@2.9.3:
resolution: {integrity: sha512-D2eONMpz0JX15eA4pxylNVzq4kyqRRGqsMIxIjbfjDGaHMaoCvgFWn2+EkrL8/gODCvbNcPIVp7Eecr/+PX61g==}
dependencies:
'@types/node': 20.5.8
'@types/node': 20.8.7
dev: true
/@types/throttle-debounce@5.0.0:
@ -4412,15 +4354,15 @@ packages:
resolution: {integrity: sha512-dDZH/tXzwjutnuk4UacGgFRwV+JSLaXL1ikvidfJprkb7L9Nx1njcRHHmi3Dsvt7pgqqTEeucQuOrWHPFgzVHA==}
dev: true
/@types/undertaker-registry@1.0.1:
resolution: {integrity: sha512-Z4TYuEKn9+RbNVk1Ll2SS4x1JeLHecolIbM/a8gveaHsW0Hr+RQMraZACwTO2VD7JvepgA6UO1A1VrbktQrIbQ==}
/@types/undertaker-registry@1.0.3:
resolution: {integrity: sha512-9wabQxkMB6Nb6FuPxvLQiMLBT2KkJXxgC9RoehnSSCvVzrag5GKxI5pekcgnMcZaGupuJOd0CLT+8ZwHHlG5vQ==}
dev: true
/@types/undertaker@1.2.8:
resolution: {integrity: sha512-gW3PRqCHYpo45XFQHJBhch7L6hytPsIe0QeLujlnFsjHPnXLhJcPdN6a9368d7aIQgH2I/dUTPFBlGeSNA3qOg==}
/@types/undertaker@1.2.10:
resolution: {integrity: sha512-UzbgxdP5Zn0UlaLGF8CxXGpP7MCu/Y/b/24Kj3dK0J3+xOSmAGJw4JJKi21avFNuUviG59BMBUdrcL+KX+z7BA==}
dependencies:
'@types/node': 20.5.8
'@types/undertaker-registry': 1.0.1
'@types/node': 20.8.7
'@types/undertaker-registry': 1.0.3
async-done: 1.3.2
dev: true
@ -4436,25 +4378,32 @@ packages:
resolution: {integrity: sha512-taHQQH/3ZyI3zP8M/puluDEIEvtQHVYcC6y3N8ijFtAd28+Ey/G4sg1u2gB01S8MwybLOKAp9/yCMu/uR5l3Ug==}
dev: true
/@types/vinyl-fs@3.0.2:
resolution: {integrity: sha512-ctNcmmzbMIKooXjRkyyUCOu2Z4AyqibL+RhXoF3pb7K7j+ezItnakmpm31LymkYHSIM5ey0tjIFzTvFOTSBCGw==}
/@types/vinyl-fs@3.0.4:
resolution: {integrity: sha512-UIdM4bMUcWky41J0glmBx4WnCiF48J7Q2S0LJ8heFmZiB7vHeLOHoLx1ABxu4lY6eD2FswVp47cSIc1GFFJkbw==}
dependencies:
'@types/glob-stream': 8.0.0
'@types/node': 20.5.8
'@types/vinyl': 2.0.7
'@types/glob-stream': 8.0.1
'@types/node': 20.8.7
'@types/vinyl': 2.0.9
dev: true
/@types/vinyl@2.0.7:
resolution: {integrity: sha512-4UqPv+2567NhMQuMLdKAyK4yzrfCqwaTt6bLhHEs8PFcxbHILsrxaY63n4wgE/BRLDWDQeI+WcTmkXKExh9hQg==}
dependencies:
'@types/expect': 1.20.4
'@types/node': 20.5.8
'@types/node': 20.8.7
dev: true
/@types/vinyl@2.0.9:
resolution: {integrity: sha512-KCr4aTEUkzSF89qw09e2oxsC/RXXT3K5ZPv4gvj3XTiWVrxNoi7WrqNTahNE/Hul5C9z3B8w+yWNTQgua12oag==}
dependencies:
'@types/expect': 1.20.4
'@types/node': 20.8.7
dev: true
/@types/web-push@3.3.2:
resolution: {integrity: sha512-JxWGVL/m7mWTIg4mRYO+A6s0jPmBkr4iJr39DqJpRJAc+jrPiEe1/asmkwerzRon8ZZDxaZJpsxpv0Z18Wo9gw==}
dependencies:
'@types/node': 18.11.18
'@types/node': 20.8.7
dev: true
/@types/webgl-ext@0.0.30:
@ -4470,13 +4419,13 @@ packages:
/@types/websocket@1.0.5:
resolution: {integrity: sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ==}
dependencies:
'@types/node': 18.11.18
'@types/node': 20.8.7
dev: true
/@types/ws@8.5.5:
resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==}
dependencies:
'@types/node': 18.11.18
'@types/node': 20.8.7
/@types/yargs-parser@21.0.2:
resolution: {integrity: sha512-5qcvofLPbfjmBfKaLfj/+f+Sbd6pN4zl7w7VSVI5uz7m9QZTuB2aZAa2uo1wHFBNN2x6g/SoTkXmd8mQnQF2Cw==}
@ -4492,7 +4441,7 @@ packages:
resolution: {integrity: sha512-Km7XAtUIduROw7QPgvcft0lIupeG8a8rdKL8RiSyKvlE7dYY31fEn41HVuQsRFDuROA8tA4K2UVL+WdfFmErBA==}
requiresBuild: true
dependencies:
'@types/node': 20.5.8
'@types/node': 14.18.63
dev: true
optional: true
@ -4874,7 +4823,7 @@ packages:
vite: ^4.0.0
vue: ^3.2.25
dependencies:
vite: 4.4.9(@types/node@20.5.8)(sass@1.66.1)
vite: 4.4.9(@types/node@20.8.7)(sass@1.66.1)
vue: 3.3.4
dev: true
@ -7276,25 +7225,6 @@ packages:
readable-stream: 3.6.2
dev: false
/create-jest@29.7.0(@types/node@18.11.18):
resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
dependencies:
'@jest/types': 29.6.3
chalk: 4.1.2
exit: 0.1.2
graceful-fs: 4.2.11
jest-config: 29.7.0(@types/node@18.11.18)
jest-util: 29.7.0
prompts: 2.4.2
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
- supports-color
- ts-node
dev: true
/create-jest@29.7.0(@types/node@20.8.7)(ts-node@10.9.1):
resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@ -7592,17 +7522,6 @@ packages:
ms: 2.1.2
dev: false
/debug@4.3.4:
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
engines: {node: '>=6.0'}
peerDependencies:
supports-color: '*'
peerDependenciesMeta:
supports-color:
optional: true
dependencies:
ms: 2.1.2
/debug@4.3.4(supports-color@8.1.1):
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
engines: {node: '>=6.0'}
@ -10333,7 +10252,7 @@ packages:
resolution: {integrity: sha512-SVSF7ikuWKhpAW4l4wapAqPPSToJoiNKsbDoUnRrSgwZHH7lH8pbPeQj1aOVYQrbZKhfSVBxVW+Py7vtulRktw==}
engines: {node: '>=10'}
dependencies:
'@types/node': 20.5.8
'@types/node': 20.8.7
'@types/vinyl': 2.0.7
istextorbinary: 3.3.0
replacestream: 4.0.3
@ -11475,7 +11394,7 @@ packages:
resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
engines: {node: '>=10'}
dependencies:
debug: 4.3.4
debug: 4.3.4(supports-color@8.1.1)
istanbul-lib-coverage: 3.2.0
source-map: 0.6.1
transitivePeerDependencies:
@ -11555,7 +11474,7 @@ packages:
- supports-color
dev: true
/jest-cli@29.7.0(@types/node@18.11.18):
/jest-cli@29.7.0(@types/node@20.8.7):
resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
@ -11569,10 +11488,10 @@ packages:
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
chalk: 4.1.2
create-jest: 29.7.0(@types/node@18.11.18)
create-jest: 29.7.0(@types/node@20.8.7)(ts-node@10.9.1)
exit: 0.1.2
import-local: 3.1.0
jest-config: 29.7.0(@types/node@18.11.18)
jest-config: 29.7.0(@types/node@20.8.7)(ts-node@10.9.1)
jest-util: 29.7.0
jest-validate: 29.7.0
yargs: 17.7.2
@ -11611,46 +11530,6 @@ packages:
- ts-node
dev: true
/jest-config@29.7.0(@types/node@18.11.18):
resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
'@types/node': '*'
ts-node: '>=9.0.0'
peerDependenciesMeta:
'@types/node':
optional: true
ts-node:
optional: true
dependencies:
'@babel/core': 7.23.2
'@jest/test-sequencer': 29.7.0
'@jest/types': 29.6.3
'@types/node': 18.11.18
babel-jest: 29.7.0(@babel/core@7.23.2)
chalk: 4.1.2
ci-info: 3.9.0
deepmerge: 4.3.1
glob: 7.2.3
graceful-fs: 4.2.11
jest-circus: 29.7.0
jest-environment-node: 29.7.0
jest-get-type: 29.6.3
jest-regex-util: 29.6.3
jest-resolve: 29.7.0
jest-runner: 29.7.0
jest-util: 29.7.0
jest-validate: 29.7.0
micromatch: 4.0.5
parse-json: 5.2.0
pretty-format: 29.7.0
slash: 3.0.0
strip-json-comments: 3.1.1
transitivePeerDependencies:
- babel-plugin-macros
- supports-color
dev: true
/jest-config@29.7.0(@types/node@20.8.7)(ts-node@10.9.1):
resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@ -11727,7 +11606,7 @@ packages:
'@jest/environment': 29.7.0
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
'@types/node': 18.11.18
'@types/node': 20.8.7
jest-mock: 29.7.0
jest-util: 29.7.0
dev: true
@ -11803,7 +11682,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.6.3
'@types/node': 18.11.18
'@types/node': 20.8.7
jest-util: 29.7.0
dev: true
@ -11985,7 +11864,7 @@ packages:
resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
engines: {node: '>= 10.13.0'}
dependencies:
'@types/node': 18.11.18
'@types/node': 20.8.7
merge-stream: 2.0.0
supports-color: 8.1.1
dev: true
@ -11994,13 +11873,13 @@ packages:
resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@types/node': 18.11.18
'@types/node': 20.8.7
jest-util: 29.7.0
merge-stream: 2.0.0
supports-color: 8.1.1
dev: true
/jest@29.7.0(@types/node@18.11.18):
/jest@29.7.0(@types/node@20.8.7):
resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
@ -12013,7 +11892,7 @@ packages:
'@jest/core': 29.7.0
'@jest/types': 29.6.3
import-local: 3.1.0
jest-cli: 29.7.0(@types/node@18.11.18)
jest-cli: 29.7.0(@types/node@20.8.7)
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@ -17111,7 +16990,7 @@ packages:
'@babel/core': 7.23.2
bs-logger: 0.2.6
fast-json-stable-stringify: 2.1.0
jest: 29.7.0(@types/node@18.11.18)
jest: 29.7.0(@types/node@20.8.7)
jest-util: 29.7.0
json5: 2.2.3
lodash.memoize: 4.1.2
@ -17170,7 +17049,7 @@ packages:
webpack: 5.88.2(@swc/core@1.3.78)
dev: true
/ts-node@10.9.1(@swc/core@1.3.78)(@types/node@18.11.18)(typescript@5.1.6):
/ts-node@10.9.1(@swc/core@1.3.78)(@types/node@20.8.7)(typescript@5.1.6):
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
hasBin: true
peerDependencies:
@ -17190,7 +17069,7 @@ packages:
'@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.4
'@types/node': 18.11.18
'@types/node': 20.8.7
acorn: 8.10.0
acorn-walk: 8.2.0
arg: 4.1.3
@ -17508,7 +17387,7 @@ packages:
pg: 8.11.3
reflect-metadata: 0.1.13
sha.js: 2.4.11
ts-node: 10.9.1(@swc/core@1.3.78)(@types/node@18.11.18)(typescript@5.1.6)
ts-node: 10.9.1(@swc/core@1.3.78)(@types/node@20.8.7)(typescript@5.1.6)
tslib: 2.6.1
uuid: 9.0.0
yargs: 17.7.2
@ -17581,7 +17460,6 @@ packages:
/undici-types@5.25.3:
resolution: {integrity: sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==}
dev: true
/undici@5.23.0:
resolution: {integrity: sha512-1D7w+fvRsqlQ9GscLBwcAJinqcZGHUKjbOmXdlE/v8BvEGXjeWAax+341q44EuTcHXXnfyKNbKRq4Lg7OzhMmg==}
@ -17890,7 +17768,7 @@ packages:
chalk: 4.1.2
debug: 4.3.4(supports-color@8.1.1)
fs-extra: 10.1.0
vite: 4.4.9(@types/node@20.5.8)(sass@1.66.1)
vite: 4.4.9(@types/node@20.8.7)(sass@1.66.1)
transitivePeerDependencies:
- supports-color
dev: true
@ -17932,6 +17810,43 @@ packages:
fsevents: 2.3.3
dev: true
/vite@4.4.9(@types/node@20.8.7)(sass@1.66.1):
resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
peerDependencies:
'@types/node': '>= 14'
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
dependencies:
'@types/node': 20.8.7
esbuild: 0.18.20
postcss: 8.4.27
rollup: 3.28.1
sass: 1.66.1
optionalDependencies:
fsevents: 2.3.3
dev: true
/void-elements@3.1.0:
resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==}
engines: {node: '>=0.10.0'}