├── client
├── .npmrc
├── static
│ └── favicon.png
├── vite.config.ts
├── .gitignore
├── .prettierignore
├── .prettierrc
├── src
│ ├── app.d.ts
│ ├── app.html
│ ├── lib
│ │ └── Socket
│ │ │ ├── urlProvider.ts
│ │ │ ├── protocol
│ │ │ ├── decoder.ts
│ │ │ └── encoder.ts
│ │ │ └── index.ts
│ └── routes
│ │ └── +page.svelte
├── tsconfig.json
├── svelte.config.js
├── package.json
├── README.md
└── package-lock.json
└── server
├── .gitignore
├── .prettierrc
├── .prettierignore
├── routes
├── auth
│ └── index.ts
├── router.ts
└── public
│ └── index.ts
├── sockets
├── utils
│ └── queryParamsParser.ts
├── types
│ └── SocketServer.d.ts
├── index.d.ts
├── Protocol
│ ├── decode.ts
│ └── encode.ts
├── Server
│ ├── Connection.ts
│ └── index.ts
└── Router
│ └── index.ts
├── index.ts
├── package.json
├── tsconfig.json
└── package-lock.json
/client/.npmrc:
--------------------------------------------------------------------------------
1 | engine-strict=true
2 |
--------------------------------------------------------------------------------
/server/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 |
--------------------------------------------------------------------------------
/client/static/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mostafa-kheibary/SocketNode/main/client/static/favicon.png
--------------------------------------------------------------------------------
/server/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 120,
3 | "useTabs": false,
4 | "tabWidth": 2,
5 | "pluginSearchDirs": ["."]
6 | }
7 |
--------------------------------------------------------------------------------
/client/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { sveltekit } from '@sveltejs/kit/vite';
2 | import { defineConfig } from 'vite';
3 |
4 | export default defineConfig({
5 | plugins: [sveltekit()]
6 | });
7 |
--------------------------------------------------------------------------------
/client/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /build
4 | /.svelte-kit
5 | /package
6 | .env
7 | .env.*
8 | !.env.example
9 | vite.config.js.timestamp-*
10 | vite.config.ts.timestamp-*
11 |
--------------------------------------------------------------------------------
/server/.prettierignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | dist
4 | /build
5 | /package
6 | .env
7 | .env.*
8 | !.env.example
9 |
10 | # Ignore files for PNPM, NPM and YARN
11 | pnpm-lock.yaml
12 | package-lock.json
13 | yarn.lock
14 |
--------------------------------------------------------------------------------
/server/routes/auth/index.ts:
--------------------------------------------------------------------------------
1 | import { Router } from "../../sockets/Router";
2 |
3 | const auth = new Router("auth");
4 |
5 | auth.on("admin", () => {
6 | console.log("admin auth route");
7 | });
8 |
9 | export default auth;
10 |
--------------------------------------------------------------------------------
/client/.prettierignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /build
4 | /.svelte-kit
5 | /package
6 | .env
7 | .env.*
8 | !.env.example
9 |
10 | # Ignore files for PNPM, NPM and YARN
11 | pnpm-lock.yaml
12 | package-lock.json
13 | yarn.lock
14 |
--------------------------------------------------------------------------------
/server/routes/router.ts:
--------------------------------------------------------------------------------
1 | import { Router } from "../sockets/Router";
2 | import auth from "./auth";
3 | import publicRouter from "./public";
4 |
5 | const router = new Router();
6 |
7 | router.add(publicRouter);
8 | router.add(auth);
9 |
10 | export default router;
11 |
--------------------------------------------------------------------------------
/client/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "useTabs": true,
3 | "singleQuote": true,
4 | "trailingComma": "none",
5 | "printWidth": 100,
6 | "plugins": ["prettier-plugin-svelte"],
7 | "pluginSearchDirs": ["."],
8 | "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }]
9 | }
10 |
--------------------------------------------------------------------------------
/client/src/app.d.ts:
--------------------------------------------------------------------------------
1 | // See https://kit.svelte.dev/docs/types#app
2 | // for information about these interfaces
3 | declare global {
4 | namespace App {
5 | // interface Error {}
6 | // interface Locals {}
7 | // interface PageData {}
8 | // interface Platform {}
9 | }
10 | }
11 |
12 | export {};
13 |
--------------------------------------------------------------------------------
/server/routes/public/index.ts:
--------------------------------------------------------------------------------
1 | import { Router } from "../../sockets/Router";
2 | import { MiddleWare } from "../../sockets/index.d";
3 |
4 | const publicRouter = new Router("public");
5 |
6 | publicRouter.on("test", (client, data) => {
7 | client.ws.sendAction("hi", client.req.user);
8 | });
9 |
10 | export default publicRouter;
11 |
--------------------------------------------------------------------------------
/client/src/app.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | %sveltekit.head%
8 |
9 |
10 | %sveltekit.body%
11 |
12 |
13 |
--------------------------------------------------------------------------------
/server/sockets/utils/queryParamsParser.ts:
--------------------------------------------------------------------------------
1 | export const queryParamsParser = (url: string): Record => {
2 | url = url.substring(2);
3 | const params: Record = {};
4 | for (const param of url.split("&")) {
5 | const paramArray = param.split("=");
6 | if (paramArray.length == 2) {
7 | params[paramArray[0]] = paramArray[1];
8 | }
9 | }
10 | return params;
11 | };
12 |
--------------------------------------------------------------------------------
/server/index.ts:
--------------------------------------------------------------------------------
1 | import router from "./routes/router";
2 | import { WebSocketServer } from "./sockets/Server";
3 | import http from "http";
4 |
5 | const server = http.createServer();
6 |
7 | export const app = new WebSocketServer({
8 | server,
9 | handleUpgrade: (socket, req, next) => {
10 | req.user = "lol";
11 | next();
12 | },
13 | });
14 |
15 | app.add(router);
16 |
17 | server.listen(3200);
18 | console.log("3200");
19 |
--------------------------------------------------------------------------------
/server/sockets/types/SocketServer.d.ts:
--------------------------------------------------------------------------------
1 | import { WebSocket } from "ws";
2 | import { Server } from "http";
3 | import internal from "stream";
4 |
5 | export interface WebSocketProperties {
6 | type?: "json" | "text" | "binary";
7 | options?: T;
8 | }
9 | export type WebsocketResponse = Buffer[] | Record | string | null;
10 |
11 | export interface WebsocketOptions {
12 | path?: string;
13 | server: Server;
14 | handleUpgrade?: (socket: internal.Duplex, req: Req, next: () => void) => void;
15 | }
16 |
--------------------------------------------------------------------------------
/client/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./.svelte-kit/tsconfig.json",
3 | "compilerOptions": {
4 | "allowJs": true,
5 | "checkJs": true,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "resolveJsonModule": true,
9 | "skipLibCheck": true,
10 | "sourceMap": true,
11 | "strict": true
12 | }
13 | // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias
14 | //
15 | // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
16 | // from the referenced tsconfig.json - TypeScript does not merge them in
17 | }
18 |
--------------------------------------------------------------------------------
/client/src/lib/Socket/urlProvider.ts:
--------------------------------------------------------------------------------
1 | export type Params = Record;
2 |
3 | export const urlProvider = (url: string, params: Params) => {
4 | return async () => {
5 | let baseParamsString = '';
6 |
7 | if (Object.entries(params).length) {
8 | baseParamsString += '?';
9 | }
10 | for (const param in params) {
11 | if (typeof params[param] === 'function') {
12 | const result = await (params[param] as Function)();
13 | baseParamsString += `${param}=${result}&`;
14 | } else {
15 | baseParamsString += `${param}=${params[param]}&`;
16 | }
17 | }
18 | return url.concat(baseParamsString);
19 | };
20 | };
21 |
--------------------------------------------------------------------------------
/client/svelte.config.js:
--------------------------------------------------------------------------------
1 | import adapter from '@sveltejs/adapter-auto';
2 | import { vitePreprocess } from '@sveltejs/kit/vite';
3 |
4 | /** @type {import('@sveltejs/kit').Config} */
5 | const config = {
6 | // Consult https://kit.svelte.dev/docs/integrations#preprocessors
7 | // for more information about preprocessors
8 | preprocess: vitePreprocess(),
9 |
10 | kit: {
11 | // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
12 | // If your environment is not supported or you settled on a specific environment, switch out the adapter.
13 | // See https://kit.svelte.dev/docs/adapters for more information about adapters.
14 | adapter: adapter()
15 | }
16 | };
17 |
18 | export default config;
19 |
--------------------------------------------------------------------------------
/server/sockets/index.d.ts:
--------------------------------------------------------------------------------
1 | import { WebSocketConnection } from "./Server/Connection";
2 | import type { WebsocketResponse, WebSocketProperties } from "./types/SocketServer";
3 |
4 | export interface Req {
5 | clientId: string;
6 | parameters: Record;
7 | user?: any;
8 | // ...
9 | }
10 | export interface Payload {
11 | data: T;
12 | properties: WebSocketProperties;
13 | }
14 | export interface Client {
15 | ws: WebSocketConnection;
16 | req: Req;
17 | }
18 |
19 | export type MiddleWare = (
20 | client: Client,
21 | payload: Payload,
22 | next: () => void
23 | ) => void;
24 |
25 | export type Route = (client: Client, payload: Payload) => void;
26 |
--------------------------------------------------------------------------------
/server/sockets/Protocol/decode.ts:
--------------------------------------------------------------------------------
1 | import * as cbor from "cbor";
2 |
3 | export const decodeSocketProtocol = (arrayBuffer: ArrayBuffer) => {
4 | const buffer = new Uint8Array(arrayBuffer);
5 | const PROPERTIES_OFFSET = 2;
6 |
7 | const length = (buffer[0] << 8) | buffer[1];
8 | const propertiesBuffer = buffer.slice(PROPERTIES_OFFSET, length + PROPERTIES_OFFSET);
9 | const properties = cbor.decode(propertiesBuffer, { encoding: "utf-8" });
10 | const dataBuffer = buffer.slice(PROPERTIES_OFFSET + length);
11 |
12 | let resultData: Uint8Array | Record | string | null = dataBuffer.length ? dataBuffer : null;
13 |
14 | if (!resultData) return { data: null, properties };
15 |
16 | if (properties.type && ["text", "json"].includes(properties.type)) {
17 | resultData = cbor.decode(dataBuffer, { encoding: "utf-8" });
18 | }
19 |
20 | return { data: resultData, properties };
21 | };
22 |
--------------------------------------------------------------------------------
/client/src/routes/+page.svelte:
--------------------------------------------------------------------------------
1 |
28 |
29 |
30 | Welcome to SvelteKit
31 | Visit kit.svelte.dev to read the documentation
32 |
--------------------------------------------------------------------------------
/client/src/lib/Socket/protocol/decoder.ts:
--------------------------------------------------------------------------------
1 | import * as cbor from 'cbor-web';
2 |
3 | export const decodeSocketProtocol = (arrayBuffer: ArrayBuffer) => {
4 | const buffer = new Uint8Array(arrayBuffer);
5 | const PROPERTIES_OFFSET = 2;
6 |
7 | const length = (buffer[0] << 8) | buffer[1];
8 | const propertiesBuffer = buffer.slice(PROPERTIES_OFFSET, length + PROPERTIES_OFFSET);
9 | const properties = cbor.decode(propertiesBuffer, { encoding: 'utf-8' });
10 | const dataBuffer = buffer.slice(PROPERTIES_OFFSET + length);
11 |
12 | let resultData: Uint8Array | Record | string | null = dataBuffer.length
13 | ? dataBuffer
14 | : null;
15 |
16 | if (!resultData) return { data: null, properties };
17 |
18 | if (properties.type && ['text', 'json'].includes(properties.type)) {
19 | resultData = cbor.decode(dataBuffer, { encoding: 'utf-8' });
20 | }
21 |
22 | return { data: resultData, properties };
23 | };
24 |
--------------------------------------------------------------------------------
/client/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "client",
3 | "version": "0.0.1",
4 | "private": true,
5 | "scripts": {
6 | "dev": "vite dev",
7 | "build": "vite build",
8 | "preview": "vite preview",
9 | "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
10 | "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
11 | "lint": "prettier --plugin-search-dir . --check .",
12 | "format": "prettier --plugin-search-dir . --write ."
13 | },
14 | "devDependencies": {
15 | "@sveltejs/adapter-auto": "^2.0.0",
16 | "@sveltejs/kit": "^1.20.4",
17 | "prettier": "^2.8.0",
18 | "prettier-plugin-svelte": "^2.10.1",
19 | "reconnecting-websocket": "^4.4.0",
20 | "svelte": "^4.0.5",
21 | "svelte-check": "^3.4.3",
22 | "tslib": "^2.4.1",
23 | "typescript": "^5.0.0",
24 | "vite": "^4.4.2"
25 | },
26 | "type": "module",
27 | "dependencies": {
28 | "cbor-web": "^9.0.1"
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/server/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "socketNode",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "dist/index.js",
6 | "scripts": {
7 | "dev": "nodemon index.ts"
8 | },
9 | "keywords": [],
10 | "author": "",
11 | "license": "ISC",
12 | "devDependencies": {
13 | "@types/bcryptjs": "^2.4.2",
14 | "@types/cors": "^2.8.13",
15 | "@types/ip": "^1.1.0",
16 | "@types/jsonwebtoken": "^9.0.2",
17 | "@types/node": "^20.4.3",
18 | "@types/ws": "^8.5.5",
19 | "nodemon": "^3.0.1",
20 | "rimraf": "^5.0.1",
21 | "ts-node": "^10.9.1",
22 | "tsc-alias": "^1.8.7",
23 | "tsconfig-paths": "^4.2.0",
24 | "typescript": "^5.1.6"
25 | },
26 | "dependencies": {
27 | "bcryptjs": "^2.4.3",
28 | "cbor": "^9.0.1",
29 | "compress-json": "^2.1.2",
30 | "cors": "^2.8.5",
31 | "dotenv": "^16.3.1",
32 | "ip": "^1.1.8",
33 | "jsonwebtoken": "^9.0.1",
34 | "pino": "^8.15.1",
35 | "pino-pretty": "^10.2.0",
36 | "pulsar-client": "^1.9.0",
37 | "ws": "^8.13.0",
38 | "yup": "^1.2.0"
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/client/README.md:
--------------------------------------------------------------------------------
1 | # create-svelte
2 |
3 | Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).
4 |
5 | ## Creating a project
6 |
7 | If you're seeing this, you've probably already done this step. Congrats!
8 |
9 | ```bash
10 | # create a new project in the current directory
11 | npm create svelte@latest
12 |
13 | # create a new project in my-app
14 | npm create svelte@latest my-app
15 | ```
16 |
17 | ## Developing
18 |
19 | Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
20 |
21 | ```bash
22 | npm run dev
23 |
24 | # or start the server and open the app in a new browser tab
25 | npm run dev -- --open
26 | ```
27 |
28 | ## Building
29 |
30 | To create a production version of your app:
31 |
32 | ```bash
33 | npm run build
34 | ```
35 |
36 | You can preview the production build with `npm run preview`.
37 |
38 | > To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment.
39 |
--------------------------------------------------------------------------------
/server/sockets/Protocol/encode.ts:
--------------------------------------------------------------------------------
1 | import * as cbor from "cbor";
2 |
3 | export const isJsonObject = (string: Record) => {
4 | try {
5 | JSON.stringify(string);
6 | } catch (e) {
7 | return false;
8 | }
9 | return true;
10 | };
11 |
12 | export const encodeSocketProtocol = (
13 | actionName: string,
14 | data?: string | Record | ArrayBuffer,
15 | options?: Record
16 | ) => {
17 | const metaData: { route: string; type?: "json" | "text" | "binary"; options?: Record } = {
18 | route: actionName,
19 | type: "json",
20 | options,
21 | };
22 |
23 | if (!Object.keys(metaData.options || {}).length) delete metaData.options;
24 |
25 | if (!data) delete metaData.type;
26 | else if (typeof data === "string") metaData.type = "text";
27 | else if (data instanceof ArrayBuffer || data!.byteLength !== undefined) metaData.type = "binary";
28 | else if (typeof data === "object" && isJsonObject(data)) metaData.type = "json";
29 | else throw new Error("Provider data is not supported by getway.");
30 |
31 | const metaDataCbor = cbor.encode(metaData);
32 | const encodeCborData = !data || metaData.type === "binary" ? null : cbor.encode(data);
33 | const META_DATA_LENGTH_LENGTH = 2;
34 |
35 | const totalLength =
36 | META_DATA_LENGTH_LENGTH +
37 | metaDataCbor.byteLength +
38 | (data ? (metaData.type === "binary" ? (data as ArrayBuffer).byteLength : encodeCborData!.byteLength) : 0);
39 |
40 | const bufferArray = new ArrayBuffer(totalLength);
41 | const view = new DataView(bufferArray);
42 |
43 | let offset = 0;
44 |
45 | view.setUint16(offset, metaDataCbor.byteLength);
46 | offset = META_DATA_LENGTH_LENGTH;
47 |
48 | const combinedView = new Int8Array(bufferArray);
49 |
50 | const metaDataInt8Array = new Int8Array(metaDataCbor);
51 | combinedView.set(metaDataInt8Array, offset);
52 |
53 | offset += metaDataCbor.byteLength;
54 |
55 | if (encodeCborData && metaData.type && ["text", "json"].includes(metaData.type)) {
56 | const int8Data = new Int8Array(encodeCborData);
57 | combinedView.set(int8Data, offset);
58 | } else if (metaData.type === "binary") {
59 | const int8Data = new Int8Array(data as Buffer);
60 | combinedView.set(int8Data, offset);
61 | }
62 |
63 | return combinedView;
64 | };
65 |
--------------------------------------------------------------------------------
/client/src/lib/Socket/protocol/encoder.ts:
--------------------------------------------------------------------------------
1 | import * as cbor from 'cbor-web';
2 |
3 | const isJsonObject = (string: Record) => {
4 | try {
5 | JSON.stringify(string);
6 | } catch (e) {
7 | return false;
8 | }
9 | return true;
10 | };
11 |
12 | export const encodeSocketProtocol = (
13 | actionName: string,
14 | data?: string | Record | ArrayBuffer,
15 | options?: Record
16 | ) => {
17 | const metaData: {
18 | route: string;
19 | type?: 'json' | 'text' | 'binary';
20 | options?: Record;
21 | } = {
22 | route: actionName,
23 | type: 'json',
24 | options
25 | };
26 |
27 | if (!Object.keys(metaData.options || {}).length) delete metaData.options;
28 |
29 | if (!data) delete metaData.type;
30 | else if (typeof data === 'string') metaData.type = 'text';
31 | else if (data instanceof ArrayBuffer || data!.byteLength !== undefined) metaData.type = 'binary';
32 | else if (typeof data === 'object' && isJsonObject(data)) metaData.type = 'json';
33 | else throw new Error('Provider data is not supported by getway.');
34 |
35 | const metaDataCbor = cbor.encode(metaData);
36 | const encodeCborData = !data || metaData.type === 'binary' ? null : cbor.encode(data);
37 | const META_DATA_LENGTH_LENGTH = 2;
38 |
39 | const totalLength =
40 | META_DATA_LENGTH_LENGTH +
41 | metaDataCbor.byteLength +
42 | (data
43 | ? metaData.type === 'binary'
44 | ? (data as ArrayBuffer).byteLength
45 | : encodeCborData!.byteLength
46 | : 0);
47 |
48 | const bufferArray = new ArrayBuffer(totalLength);
49 | const view = new DataView(bufferArray);
50 |
51 | let offset = 0;
52 |
53 | view.setUint16(offset, metaDataCbor.byteLength);
54 | offset = META_DATA_LENGTH_LENGTH;
55 |
56 | const combinedView = new Int8Array(bufferArray);
57 |
58 | const metaDataInt8Array = new Int8Array(metaDataCbor);
59 | combinedView.set(metaDataInt8Array, offset);
60 |
61 | offset += metaDataCbor.byteLength;
62 |
63 | if (encodeCborData && metaData.type && ['text', 'json'].includes(metaData.type)) {
64 | const int8Data = new Int8Array(encodeCborData);
65 | combinedView.set(int8Data, offset);
66 | } else if (metaData.type === 'binary') {
67 | const int8Data = new Int8Array(data as ArrayBuffer);
68 | combinedView.set(int8Data, offset);
69 | }
70 |
71 | return combinedView;
72 | };
73 |
--------------------------------------------------------------------------------
/server/sockets/Server/Connection.ts:
--------------------------------------------------------------------------------
1 | import { WebSocket } from "ws";
2 | import { Req } from "..";
3 | import { encodeSocketProtocol } from "../Protocol/encode";
4 |
5 | export class WebSocketConnection {
6 | private _rooms: Map = new Map();
7 | private _usersRoomMap: Map = new Map();
8 |
9 | constructor(public ws: WebSocket, public connections: any, public req: Req) {
10 | this.ws.binaryType = "arraybuffer";
11 | }
12 | public close(code?: number) {
13 | this.ws.close(code);
14 | }
15 | public send(action: string, data: any) {
16 | return new Promise((res) => {
17 | const client = this.connections.get(this.req.clientId);
18 | if (!client || client.ws.readyState !== WebSocket.OPEN) return;
19 |
20 | const binary = encodeSocketProtocol(action, data);
21 | client.ws.send(binary, () => res());
22 | });
23 | }
24 | public join(room: string, req: Req) {
25 | const rooms = this._rooms.get(room) || [];
26 | const userMapRoom = this._usersRoomMap.get(req.clientId) || [];
27 |
28 | if (!rooms.find((clientId) => clientId === req.clientId)) {
29 | this._rooms.set(room, [...rooms, req.clientId]);
30 | }
31 | if (!userMapRoom.find((cRoom) => cRoom === room)) {
32 | this._usersRoomMap.set(req.clientId, [...userMapRoom, room]);
33 | }
34 | }
35 | public left(room: string, req: Req) {
36 | const prevUsers = this._rooms.get(room) || [];
37 | const prevRooms = this._usersRoomMap.get(req.clientId) || [];
38 |
39 | const restPrevRooms = prevRooms.filter((cRoom) => cRoom !== room);
40 | const restUsersRoom = prevUsers.filter((clientId) => clientId !== req.clientId);
41 |
42 | this._rooms.set(room, restUsersRoom);
43 | this._usersRoomMap.set(req.clientId, restPrevRooms);
44 |
45 | if (!restPrevRooms.length) {
46 | this._usersRoomMap.delete(req.clientId);
47 | }
48 | if (!restUsersRoom.length) {
49 | this._rooms.delete(room);
50 | }
51 | }
52 | public roomBroadcast(route: string, data: any, req: Req) {
53 | const rooms = this._usersRoomMap.get(req.clientId) || [];
54 | rooms.forEach((room) => {
55 | const clients = this._rooms.get(room) || [];
56 | clients.forEach((clientId) => {
57 | const client = this.connections.get(clientId);
58 | if (!client) return;
59 | client.send(route, data);
60 | });
61 | });
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/client/src/lib/Socket/index.ts:
--------------------------------------------------------------------------------
1 | import { decodeSocketProtocol } from './protocol/decoder';
2 | import { encodeSocketProtocol } from './protocol/encoder';
3 | import ReconnectingWebSocket from 'reconnecting-websocket';
4 | import { urlProvider, type Params } from './urlProvider';
5 |
6 | export interface QueueItem {
7 | actionName: string;
8 | data: any;
9 | options: any;
10 | }
11 |
12 | export class SocketConnection {
13 | private _connection: ReconnectingWebSocket;
14 | private _queue: QueueItem[] = [];
15 | private _listeners: { [key: string]: Function[] } = {};
16 |
17 | constructor(url: string, params: Params = {}) {
18 | this._connection = new ReconnectingWebSocket(urlProvider(url, params), ['binary']);
19 | this._initListener();
20 | }
21 |
22 | private async _initListener() {
23 | this._connection.addEventListener('open', (event) => {
24 | console.log('connection open');
25 | this._queue.forEach(({ actionName, data, options }) => {
26 | this.send(actionName, data, options);
27 | });
28 | });
29 | this._connection.addEventListener('close', (e) => {
30 | console.log('connection closed: ', e);
31 | });
32 | this._connection.addEventListener('error', (e) => {
33 | console.log('connection error: ', e);
34 | });
35 |
36 | this._connection.addEventListener('message', ({ data }) => {
37 | (data as Blob).arrayBuffer().then((buf) => {
38 | const { data, properties } = decodeSocketProtocol(buf);
39 | this._listeners[properties.route]?.forEach((callbackFn) => callbackFn(data));
40 | });
41 | });
42 | }
43 | on(actionName: string, callBack: (data: T) => void) {
44 | if (!this._listeners[actionName]) this._listeners[actionName] = [];
45 | this._listeners[actionName].push(callBack);
46 | }
47 | off(actionName: string, callBack: (event: MessageEvent) => void) {
48 | if (!this._listeners[actionName]) return;
49 | this._listeners[actionName] = this._listeners[actionName].filter(
50 | (callBackFn) => callBackFn !== callBack
51 | );
52 | }
53 | send(
54 | actionName: string,
55 | data?: string | Record | ArrayBuffer,
56 | options?: Record
57 | ) {
58 | if (this._connection.readyState !== 1) {
59 | this._queue.push({ actionName, data, options });
60 | return;
61 | }
62 | const binary = encodeSocketProtocol(actionName, data, options);
63 | try {
64 | this._connection.send(binary);
65 | } catch (error) {
66 | console.log(error);
67 | }
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/server/sockets/Router/index.ts:
--------------------------------------------------------------------------------
1 | import { EventEmitter } from "events";
2 | import { Client, MiddleWare, Payload, Route } from "../index.d";
3 | import { WebsocketResponse } from "../types/SocketServer";
4 |
5 | export class Router extends EventEmitter {
6 | routes: Map = new Map();
7 |
8 | constructor(private prefix: string = "") {
9 | super();
10 | }
11 |
12 | public add(child: Router): void {
13 | const key = child.prefix !== undefined ? child.prefix : "";
14 | if (this.routes.has(key)) {
15 | throw new Error(`A child router with prefix '${key}' has already been added.`);
16 | }
17 | this.routes.set(key, child);
18 | }
19 |
20 | public emit(eventName: string, client: Client, payload: Payload): boolean {
21 | eventName = eventName.startsWith("/") ? eventName.replace("/", "") : eventName;
22 |
23 | const indexOfSlash = eventName.indexOf("/");
24 | if (indexOfSlash !== -1) {
25 | const nextPrefix = eventName.substring(0, indexOfSlash);
26 | const childEventName = eventName.substring(indexOfSlash + 1);
27 |
28 | if (this.routes.has("")) {
29 | return this.routes.get("")!.emit(eventName, client, payload);
30 | }
31 | if (this.routes.has(nextPrefix)) {
32 | return this.routes.get(nextPrefix)!.emit(childEventName, client, payload);
33 | }
34 | }
35 | return super.emit(eventName, client, payload);
36 | }
37 | on | undefined = Record | undefined>(
38 | event: string,
39 | ...middleWare: MiddleWare[]
40 | ): this {
41 | const innerListener: Route = (client, payload) => {
42 | let index = 0;
43 | const next = () => {
44 | index++;
45 | middleWare[index](client, payload, next);
46 | };
47 | middleWare[index](client, payload, next);
48 | };
49 | if (middleWare.length === 1) {
50 | return super.on(event, middleWare[0]);
51 | }
52 | return super.on(event, innerListener);
53 | }
54 | once | undefined = Record | undefined>(
55 | event: string,
56 | listener: Route
57 | ): this {
58 | return super.once(event, listener);
59 | }
60 | prependListener<
61 | T = WebsocketResponse,
62 | F extends Record | undefined = Record | undefined
63 | >(event: string, listener: Route): this {
64 | return super.prependListener(event, listener);
65 | }
66 | prependOnceListener<
67 | T = WebsocketResponse,
68 | F extends Record | undefined = Record | undefined
69 | >(event: string, listener: Route): this {
70 | return super.prependOnceListener(event, listener);
71 | }
72 | off(event: string, listener: (...args: any[]) => void): this {
73 | return super.off(event, listener);
74 | }
75 | removeListener(event: string, listener: (...args: any[]) => void): this {
76 | return super.removeListener(event, listener);
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/server/sockets/Server/index.ts:
--------------------------------------------------------------------------------
1 | import { IncomingMessage } from "http";
2 | import { WebSocketServer as WsServer, Server, RawData } from "ws";
3 | import { WebsocketOptions } from "../types/SocketServer";
4 | import { Req } from "..";
5 | import { Router } from "../Router";
6 | import internal from "stream";
7 | import { decodeSocketProtocol } from "../Protocol/decode";
8 | import { queryParamsParser } from "../utils/queryParamsParser";
9 | import { WebSocketConnection } from "./Connection";
10 |
11 | export class WebSocketServer extends Router {
12 | ws: Server;
13 | connections: Map = new Map();
14 |
15 | constructor(private options: WebsocketOptions) {
16 | super();
17 | this.ws = new WsServer({
18 | noServer: true,
19 | path: this.options.path,
20 | perMessageDeflate: false,
21 | handleProtocols: (protocols) => {
22 | if (protocols.has("binary")) {
23 | return "binary";
24 | }
25 | return false;
26 | },
27 | });
28 | this.options.server.on("upgrade", (r, s, h) => this.onUpgrade(r, s, h));
29 | this.ws.on("connection", (connection: any, req: any) => this.onConnection(connection, req));
30 | }
31 |
32 | private async onUpgrade(request: IncomingMessage, socket: internal.Duplex, head: Buffer) {
33 | if (request.headers["sec-websocket-protocol"] !== "binary") {
34 | socket.write("HTTP/1.1 400 Bad Request\r\n\r\nUnsupported WebSocket subprotocol. Expected 'binary'.", () => {
35 | socket.destroy();
36 | });
37 | }
38 | const parameters = queryParamsParser(request.url as any);
39 | const clientId = crypto.randomUUID();
40 | const req: Req = { clientId, parameters };
41 | if (!this.options.handleUpgrade) {
42 | this.ws.handleUpgrade(request, socket, head, (ws) => {
43 | const connection = new WebSocketConnection(ws, this.connections, req);
44 | this.ws.emit("connection", connection, req);
45 | });
46 | return;
47 | }
48 | this.options.handleUpgrade(socket, req, () => {
49 | this.ws.handleUpgrade(request, socket, head, (ws) => {
50 | const connection = new WebSocketConnection(ws, this.connections, req);
51 | this.ws.emit("connection", connection, req);
52 | });
53 | });
54 | }
55 |
56 | private onConnection(connection: WebSocketConnection, req: Req) {
57 | const sameConnection = this.connections.has(req.clientId);
58 | if (sameConnection) {
59 | return connection.close();
60 | }
61 | this.connections.set(req.clientId, connection);
62 |
63 | this.emit("connection", { ws: connection, req }, { data: null, properties: {} });
64 | connection.ws.prependListener("close", () => {
65 | this.emit("close", { ws: connection, req }, { data: null, properties: {} });
66 | connection.ws.removeAllListeners();
67 | });
68 | connection.ws.on("close", () => this.connections.delete(req.clientId));
69 | connection.ws.on("message", (rawData) => this.onMessage(rawData, req));
70 | }
71 | onMessage(rawData: RawData, req: Req) {
72 | const client = this.connections.get(req.clientId);
73 | if (!client) return;
74 |
75 | const { data, properties } = decodeSocketProtocol(rawData as ArrayBuffer);
76 | this.emit(properties.route, { ws: client, req }, { data, properties });
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/server/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | /* Visit https://aka.ms/tsconfig to read more about this file */
4 |
5 | /* Projects */
6 | // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */
7 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
8 | // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */
9 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */
10 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
11 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
12 |
13 | /* Language and Environment */
14 | "target": "ES2021" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */,
15 | // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
16 | // "jsx": "preserve", /* Specify what JSX code is generated. */
17 | // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */
18 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
19 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */
20 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
21 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */
22 | // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */
23 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
24 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
25 | // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
26 |
27 | /* Modules */
28 | "module": "commonjs" /* Specify what module code is generated. */,
29 | // "rootDir": "./" /* Specify the root folder within your source files. */,
30 | // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */
31 | "baseUrl": "./src" /* Specify the base directory to resolve non-relative module names. */,
32 | // "paths": {} /* Specify a set of entries that re-map imports to additional lookup locations. */,
33 | // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
34 | // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */
35 | // "types": [], /* Specify type package names to be included without being referenced in a source file. */
36 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
37 | // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */
38 | // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */
39 | // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */
40 | // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */
41 | // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */
42 | // "resolveJsonModule": true, /* Enable importing .json files. */
43 | // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
44 | // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */
45 |
46 | /* JavaScript Support */
47 | // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
48 | // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
49 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
50 |
51 | /* Emit */
52 | // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
53 | // "declarationMap": true, /* Create sourcemaps for d.ts files. */
54 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
55 | // "sourceMap": true, /* Create source map files for emitted JavaScript files. */
56 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
57 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */
58 | "outDir": "./dist" /* Specify an output folder for all emitted files. */,
59 | // "removeComments": true, /* Disable emitting comments. */
60 | // "noEmit": true, /* Disable emitting files from a compilation. */
61 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
62 | // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */
63 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
64 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
65 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
66 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */
67 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
68 | // "newLine": "crlf", /* Set the newline character for emitting files. */
69 | // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */
70 | // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */
71 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
72 | // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */
73 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */
74 | // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */
75 |
76 | /* Interop Constraints */
77 | // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
78 | // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */
79 | // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
80 | "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */,
81 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
82 | "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */,
83 |
84 | /* Type Checking */
85 | "strict": true /* Enable all strict type-checking options. */,
86 | // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
87 | // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */
88 | // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
89 | // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */
90 | // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
91 | // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */
92 | // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */
93 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
94 | // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */
95 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */
96 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
97 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
98 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
99 | // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */
100 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
101 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */
102 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
103 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */
104 |
105 | /* Completeness */
106 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
107 | "skipLibCheck": true /* Skip type checking all .d.ts files. */
108 | },
109 | "ts-node": {
110 | "require": ["tsconfig-paths/register"]
111 | }
112 | }
113 |
--------------------------------------------------------------------------------
/client/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "client",
3 | "version": "0.0.1",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "client",
9 | "version": "0.0.1",
10 | "dependencies": {
11 | "cbor-web": "^9.0.1"
12 | },
13 | "devDependencies": {
14 | "@sveltejs/adapter-auto": "^2.0.0",
15 | "@sveltejs/kit": "^1.20.4",
16 | "prettier": "^2.8.0",
17 | "prettier-plugin-svelte": "^2.10.1",
18 | "reconnecting-websocket": "^4.4.0",
19 | "svelte": "^4.0.5",
20 | "svelte-check": "^3.4.3",
21 | "tslib": "^2.4.1",
22 | "typescript": "^5.0.0",
23 | "vite": "^4.4.2"
24 | }
25 | },
26 | "node_modules/@ampproject/remapping": {
27 | "version": "2.2.1",
28 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
29 | "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
30 | "dev": true,
31 | "dependencies": {
32 | "@jridgewell/gen-mapping": "^0.3.0",
33 | "@jridgewell/trace-mapping": "^0.3.9"
34 | },
35 | "engines": {
36 | "node": ">=6.0.0"
37 | }
38 | },
39 | "node_modules/@esbuild/android-arm": {
40 | "version": "0.18.20",
41 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
42 | "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
43 | "cpu": [
44 | "arm"
45 | ],
46 | "dev": true,
47 | "optional": true,
48 | "os": [
49 | "android"
50 | ],
51 | "engines": {
52 | "node": ">=12"
53 | }
54 | },
55 | "node_modules/@esbuild/android-arm64": {
56 | "version": "0.18.20",
57 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz",
58 | "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==",
59 | "cpu": [
60 | "arm64"
61 | ],
62 | "dev": true,
63 | "optional": true,
64 | "os": [
65 | "android"
66 | ],
67 | "engines": {
68 | "node": ">=12"
69 | }
70 | },
71 | "node_modules/@esbuild/android-x64": {
72 | "version": "0.18.20",
73 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz",
74 | "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==",
75 | "cpu": [
76 | "x64"
77 | ],
78 | "dev": true,
79 | "optional": true,
80 | "os": [
81 | "android"
82 | ],
83 | "engines": {
84 | "node": ">=12"
85 | }
86 | },
87 | "node_modules/@esbuild/darwin-arm64": {
88 | "version": "0.18.20",
89 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz",
90 | "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==",
91 | "cpu": [
92 | "arm64"
93 | ],
94 | "dev": true,
95 | "optional": true,
96 | "os": [
97 | "darwin"
98 | ],
99 | "engines": {
100 | "node": ">=12"
101 | }
102 | },
103 | "node_modules/@esbuild/darwin-x64": {
104 | "version": "0.18.20",
105 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz",
106 | "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==",
107 | "cpu": [
108 | "x64"
109 | ],
110 | "dev": true,
111 | "optional": true,
112 | "os": [
113 | "darwin"
114 | ],
115 | "engines": {
116 | "node": ">=12"
117 | }
118 | },
119 | "node_modules/@esbuild/freebsd-arm64": {
120 | "version": "0.18.20",
121 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz",
122 | "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==",
123 | "cpu": [
124 | "arm64"
125 | ],
126 | "dev": true,
127 | "optional": true,
128 | "os": [
129 | "freebsd"
130 | ],
131 | "engines": {
132 | "node": ">=12"
133 | }
134 | },
135 | "node_modules/@esbuild/freebsd-x64": {
136 | "version": "0.18.20",
137 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz",
138 | "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==",
139 | "cpu": [
140 | "x64"
141 | ],
142 | "dev": true,
143 | "optional": true,
144 | "os": [
145 | "freebsd"
146 | ],
147 | "engines": {
148 | "node": ">=12"
149 | }
150 | },
151 | "node_modules/@esbuild/linux-arm": {
152 | "version": "0.18.20",
153 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz",
154 | "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==",
155 | "cpu": [
156 | "arm"
157 | ],
158 | "dev": true,
159 | "optional": true,
160 | "os": [
161 | "linux"
162 | ],
163 | "engines": {
164 | "node": ">=12"
165 | }
166 | },
167 | "node_modules/@esbuild/linux-arm64": {
168 | "version": "0.18.20",
169 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz",
170 | "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==",
171 | "cpu": [
172 | "arm64"
173 | ],
174 | "dev": true,
175 | "optional": true,
176 | "os": [
177 | "linux"
178 | ],
179 | "engines": {
180 | "node": ">=12"
181 | }
182 | },
183 | "node_modules/@esbuild/linux-ia32": {
184 | "version": "0.18.20",
185 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz",
186 | "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==",
187 | "cpu": [
188 | "ia32"
189 | ],
190 | "dev": true,
191 | "optional": true,
192 | "os": [
193 | "linux"
194 | ],
195 | "engines": {
196 | "node": ">=12"
197 | }
198 | },
199 | "node_modules/@esbuild/linux-loong64": {
200 | "version": "0.18.20",
201 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
202 | "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
203 | "cpu": [
204 | "loong64"
205 | ],
206 | "dev": true,
207 | "optional": true,
208 | "os": [
209 | "linux"
210 | ],
211 | "engines": {
212 | "node": ">=12"
213 | }
214 | },
215 | "node_modules/@esbuild/linux-mips64el": {
216 | "version": "0.18.20",
217 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz",
218 | "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==",
219 | "cpu": [
220 | "mips64el"
221 | ],
222 | "dev": true,
223 | "optional": true,
224 | "os": [
225 | "linux"
226 | ],
227 | "engines": {
228 | "node": ">=12"
229 | }
230 | },
231 | "node_modules/@esbuild/linux-ppc64": {
232 | "version": "0.18.20",
233 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz",
234 | "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==",
235 | "cpu": [
236 | "ppc64"
237 | ],
238 | "dev": true,
239 | "optional": true,
240 | "os": [
241 | "linux"
242 | ],
243 | "engines": {
244 | "node": ">=12"
245 | }
246 | },
247 | "node_modules/@esbuild/linux-riscv64": {
248 | "version": "0.18.20",
249 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz",
250 | "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==",
251 | "cpu": [
252 | "riscv64"
253 | ],
254 | "dev": true,
255 | "optional": true,
256 | "os": [
257 | "linux"
258 | ],
259 | "engines": {
260 | "node": ">=12"
261 | }
262 | },
263 | "node_modules/@esbuild/linux-s390x": {
264 | "version": "0.18.20",
265 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz",
266 | "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==",
267 | "cpu": [
268 | "s390x"
269 | ],
270 | "dev": true,
271 | "optional": true,
272 | "os": [
273 | "linux"
274 | ],
275 | "engines": {
276 | "node": ">=12"
277 | }
278 | },
279 | "node_modules/@esbuild/linux-x64": {
280 | "version": "0.18.20",
281 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz",
282 | "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==",
283 | "cpu": [
284 | "x64"
285 | ],
286 | "dev": true,
287 | "optional": true,
288 | "os": [
289 | "linux"
290 | ],
291 | "engines": {
292 | "node": ">=12"
293 | }
294 | },
295 | "node_modules/@esbuild/netbsd-x64": {
296 | "version": "0.18.20",
297 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz",
298 | "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==",
299 | "cpu": [
300 | "x64"
301 | ],
302 | "dev": true,
303 | "optional": true,
304 | "os": [
305 | "netbsd"
306 | ],
307 | "engines": {
308 | "node": ">=12"
309 | }
310 | },
311 | "node_modules/@esbuild/openbsd-x64": {
312 | "version": "0.18.20",
313 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz",
314 | "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==",
315 | "cpu": [
316 | "x64"
317 | ],
318 | "dev": true,
319 | "optional": true,
320 | "os": [
321 | "openbsd"
322 | ],
323 | "engines": {
324 | "node": ">=12"
325 | }
326 | },
327 | "node_modules/@esbuild/sunos-x64": {
328 | "version": "0.18.20",
329 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz",
330 | "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==",
331 | "cpu": [
332 | "x64"
333 | ],
334 | "dev": true,
335 | "optional": true,
336 | "os": [
337 | "sunos"
338 | ],
339 | "engines": {
340 | "node": ">=12"
341 | }
342 | },
343 | "node_modules/@esbuild/win32-arm64": {
344 | "version": "0.18.20",
345 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz",
346 | "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==",
347 | "cpu": [
348 | "arm64"
349 | ],
350 | "dev": true,
351 | "optional": true,
352 | "os": [
353 | "win32"
354 | ],
355 | "engines": {
356 | "node": ">=12"
357 | }
358 | },
359 | "node_modules/@esbuild/win32-ia32": {
360 | "version": "0.18.20",
361 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
362 | "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
363 | "cpu": [
364 | "ia32"
365 | ],
366 | "dev": true,
367 | "optional": true,
368 | "os": [
369 | "win32"
370 | ],
371 | "engines": {
372 | "node": ">=12"
373 | }
374 | },
375 | "node_modules/@esbuild/win32-x64": {
376 | "version": "0.18.20",
377 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
378 | "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
379 | "cpu": [
380 | "x64"
381 | ],
382 | "dev": true,
383 | "optional": true,
384 | "os": [
385 | "win32"
386 | ],
387 | "engines": {
388 | "node": ">=12"
389 | }
390 | },
391 | "node_modules/@fastify/busboy": {
392 | "version": "2.0.0",
393 | "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.0.0.tgz",
394 | "integrity": "sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==",
395 | "dev": true,
396 | "engines": {
397 | "node": ">=14"
398 | }
399 | },
400 | "node_modules/@jridgewell/gen-mapping": {
401 | "version": "0.3.3",
402 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
403 | "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
404 | "dev": true,
405 | "dependencies": {
406 | "@jridgewell/set-array": "^1.0.1",
407 | "@jridgewell/sourcemap-codec": "^1.4.10",
408 | "@jridgewell/trace-mapping": "^0.3.9"
409 | },
410 | "engines": {
411 | "node": ">=6.0.0"
412 | }
413 | },
414 | "node_modules/@jridgewell/resolve-uri": {
415 | "version": "3.1.1",
416 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
417 | "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
418 | "dev": true,
419 | "engines": {
420 | "node": ">=6.0.0"
421 | }
422 | },
423 | "node_modules/@jridgewell/set-array": {
424 | "version": "1.1.2",
425 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
426 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
427 | "dev": true,
428 | "engines": {
429 | "node": ">=6.0.0"
430 | }
431 | },
432 | "node_modules/@jridgewell/sourcemap-codec": {
433 | "version": "1.4.15",
434 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
435 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
436 | "dev": true
437 | },
438 | "node_modules/@jridgewell/trace-mapping": {
439 | "version": "0.3.20",
440 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz",
441 | "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==",
442 | "dev": true,
443 | "dependencies": {
444 | "@jridgewell/resolve-uri": "^3.1.0",
445 | "@jridgewell/sourcemap-codec": "^1.4.14"
446 | }
447 | },
448 | "node_modules/@nodelib/fs.scandir": {
449 | "version": "2.1.5",
450 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
451 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
452 | "dev": true,
453 | "dependencies": {
454 | "@nodelib/fs.stat": "2.0.5",
455 | "run-parallel": "^1.1.9"
456 | },
457 | "engines": {
458 | "node": ">= 8"
459 | }
460 | },
461 | "node_modules/@nodelib/fs.stat": {
462 | "version": "2.0.5",
463 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
464 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
465 | "dev": true,
466 | "engines": {
467 | "node": ">= 8"
468 | }
469 | },
470 | "node_modules/@nodelib/fs.walk": {
471 | "version": "1.2.8",
472 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
473 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
474 | "dev": true,
475 | "dependencies": {
476 | "@nodelib/fs.scandir": "2.1.5",
477 | "fastq": "^1.6.0"
478 | },
479 | "engines": {
480 | "node": ">= 8"
481 | }
482 | },
483 | "node_modules/@polka/url": {
484 | "version": "1.0.0-next.23",
485 | "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.23.tgz",
486 | "integrity": "sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==",
487 | "dev": true
488 | },
489 | "node_modules/@sveltejs/adapter-auto": {
490 | "version": "2.1.0",
491 | "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-2.1.0.tgz",
492 | "integrity": "sha512-o2pZCfATFtA/Gw/BB0Xm7k4EYaekXxaPGER3xGSY3FvzFJGTlJlZjBseaXwYSM94lZ0HniOjTokN3cWaLX6fow==",
493 | "dev": true,
494 | "dependencies": {
495 | "import-meta-resolve": "^3.0.0"
496 | },
497 | "peerDependencies": {
498 | "@sveltejs/kit": "^1.0.0"
499 | }
500 | },
501 | "node_modules/@sveltejs/kit": {
502 | "version": "1.27.2",
503 | "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.27.2.tgz",
504 | "integrity": "sha512-2w2VbPpK8DI3QCSVa2UNAv5sKNks1LT8GsEdpk41ffOyO2znGx2ZwcRWacsqlvh3d9lncZuDdANvCbTbuKvy3Q==",
505 | "dev": true,
506 | "hasInstallScript": true,
507 | "dependencies": {
508 | "@sveltejs/vite-plugin-svelte": "^2.4.1",
509 | "@types/cookie": "^0.5.1",
510 | "cookie": "^0.5.0",
511 | "devalue": "^4.3.1",
512 | "esm-env": "^1.0.0",
513 | "kleur": "^4.1.5",
514 | "magic-string": "^0.30.0",
515 | "mrmime": "^1.0.1",
516 | "sade": "^1.8.1",
517 | "set-cookie-parser": "^2.6.0",
518 | "sirv": "^2.0.2",
519 | "tiny-glob": "^0.2.9",
520 | "undici": "~5.26.2"
521 | },
522 | "bin": {
523 | "svelte-kit": "svelte-kit.js"
524 | },
525 | "engines": {
526 | "node": "^16.14 || >=18"
527 | },
528 | "peerDependencies": {
529 | "svelte": "^3.54.0 || ^4.0.0-next.0",
530 | "vite": "^4.0.0"
531 | }
532 | },
533 | "node_modules/@sveltejs/vite-plugin-svelte": {
534 | "version": "2.4.6",
535 | "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.4.6.tgz",
536 | "integrity": "sha512-zO79p0+DZnXPnF0ltIigWDx/ux7Ni+HRaFOw720Qeivc1azFUrJxTl0OryXVibYNx1hCboGia1NRV3x8RNv4cA==",
537 | "dev": true,
538 | "dependencies": {
539 | "@sveltejs/vite-plugin-svelte-inspector": "^1.0.4",
540 | "debug": "^4.3.4",
541 | "deepmerge": "^4.3.1",
542 | "kleur": "^4.1.5",
543 | "magic-string": "^0.30.3",
544 | "svelte-hmr": "^0.15.3",
545 | "vitefu": "^0.2.4"
546 | },
547 | "engines": {
548 | "node": "^14.18.0 || >= 16"
549 | },
550 | "peerDependencies": {
551 | "svelte": "^3.54.0 || ^4.0.0",
552 | "vite": "^4.0.0"
553 | }
554 | },
555 | "node_modules/@sveltejs/vite-plugin-svelte-inspector": {
556 | "version": "1.0.4",
557 | "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-1.0.4.tgz",
558 | "integrity": "sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==",
559 | "dev": true,
560 | "dependencies": {
561 | "debug": "^4.3.4"
562 | },
563 | "engines": {
564 | "node": "^14.18.0 || >= 16"
565 | },
566 | "peerDependencies": {
567 | "@sveltejs/vite-plugin-svelte": "^2.2.0",
568 | "svelte": "^3.54.0 || ^4.0.0",
569 | "vite": "^4.0.0"
570 | }
571 | },
572 | "node_modules/@types/cookie": {
573 | "version": "0.5.3",
574 | "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.3.tgz",
575 | "integrity": "sha512-SLg07AS9z1Ab2LU+QxzU8RCmzsja80ywjf/t5oqw+4NSH20gIGlhLOrBDm1L3PBWzPa4+wkgFQVZAjE6Ioj2ug==",
576 | "dev": true
577 | },
578 | "node_modules/@types/estree": {
579 | "version": "1.0.4",
580 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.4.tgz",
581 | "integrity": "sha512-2JwWnHK9H+wUZNorf2Zr6ves96WHoWDJIftkcxPKsS7Djta6Zu519LarhRNljPXkpsZR2ZMwNCPeW7omW07BJw==",
582 | "dev": true
583 | },
584 | "node_modules/@types/pug": {
585 | "version": "2.0.8",
586 | "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.8.tgz",
587 | "integrity": "sha512-QzhsZ1dMGyJbn/D9V80zp4GIA4J4rfAjCCxc3MP+new0E8dyVdSkR735Lx+n3LIaHNFcjHL5+TbziccuT+fdoQ==",
588 | "dev": true
589 | },
590 | "node_modules/acorn": {
591 | "version": "8.11.2",
592 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz",
593 | "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==",
594 | "dev": true,
595 | "bin": {
596 | "acorn": "bin/acorn"
597 | },
598 | "engines": {
599 | "node": ">=0.4.0"
600 | }
601 | },
602 | "node_modules/anymatch": {
603 | "version": "3.1.3",
604 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
605 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
606 | "dev": true,
607 | "dependencies": {
608 | "normalize-path": "^3.0.0",
609 | "picomatch": "^2.0.4"
610 | },
611 | "engines": {
612 | "node": ">= 8"
613 | }
614 | },
615 | "node_modules/aria-query": {
616 | "version": "5.3.0",
617 | "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
618 | "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
619 | "dev": true,
620 | "dependencies": {
621 | "dequal": "^2.0.3"
622 | }
623 | },
624 | "node_modules/axobject-query": {
625 | "version": "3.2.1",
626 | "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz",
627 | "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==",
628 | "dev": true,
629 | "dependencies": {
630 | "dequal": "^2.0.3"
631 | }
632 | },
633 | "node_modules/balanced-match": {
634 | "version": "1.0.2",
635 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
636 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
637 | "dev": true
638 | },
639 | "node_modules/binary-extensions": {
640 | "version": "2.2.0",
641 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
642 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
643 | "dev": true,
644 | "engines": {
645 | "node": ">=8"
646 | }
647 | },
648 | "node_modules/brace-expansion": {
649 | "version": "1.1.11",
650 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
651 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
652 | "dev": true,
653 | "dependencies": {
654 | "balanced-match": "^1.0.0",
655 | "concat-map": "0.0.1"
656 | }
657 | },
658 | "node_modules/braces": {
659 | "version": "3.0.2",
660 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
661 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
662 | "dev": true,
663 | "dependencies": {
664 | "fill-range": "^7.0.1"
665 | },
666 | "engines": {
667 | "node": ">=8"
668 | }
669 | },
670 | "node_modules/buffer-crc32": {
671 | "version": "0.2.13",
672 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
673 | "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
674 | "dev": true,
675 | "engines": {
676 | "node": "*"
677 | }
678 | },
679 | "node_modules/callsites": {
680 | "version": "3.1.0",
681 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
682 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
683 | "dev": true,
684 | "engines": {
685 | "node": ">=6"
686 | }
687 | },
688 | "node_modules/cbor-web": {
689 | "version": "9.0.1",
690 | "resolved": "https://registry.npmjs.org/cbor-web/-/cbor-web-9.0.1.tgz",
691 | "integrity": "sha512-9lW24Q2fOvCei/qMSeH48VWOcndR6u/gsi1zqXzXqeTj67XVGR253S+rOaJY+zE9TDahorcpXKeIBFRv4U2MYA==",
692 | "engines": {
693 | "node": ">=16"
694 | }
695 | },
696 | "node_modules/chokidar": {
697 | "version": "3.5.3",
698 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
699 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
700 | "dev": true,
701 | "funding": [
702 | {
703 | "type": "individual",
704 | "url": "https://paulmillr.com/funding/"
705 | }
706 | ],
707 | "dependencies": {
708 | "anymatch": "~3.1.2",
709 | "braces": "~3.0.2",
710 | "glob-parent": "~5.1.2",
711 | "is-binary-path": "~2.1.0",
712 | "is-glob": "~4.0.1",
713 | "normalize-path": "~3.0.0",
714 | "readdirp": "~3.6.0"
715 | },
716 | "engines": {
717 | "node": ">= 8.10.0"
718 | },
719 | "optionalDependencies": {
720 | "fsevents": "~2.3.2"
721 | }
722 | },
723 | "node_modules/code-red": {
724 | "version": "1.0.4",
725 | "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz",
726 | "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==",
727 | "dev": true,
728 | "dependencies": {
729 | "@jridgewell/sourcemap-codec": "^1.4.15",
730 | "@types/estree": "^1.0.1",
731 | "acorn": "^8.10.0",
732 | "estree-walker": "^3.0.3",
733 | "periscopic": "^3.1.0"
734 | }
735 | },
736 | "node_modules/concat-map": {
737 | "version": "0.0.1",
738 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
739 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
740 | "dev": true
741 | },
742 | "node_modules/cookie": {
743 | "version": "0.5.0",
744 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
745 | "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
746 | "dev": true,
747 | "engines": {
748 | "node": ">= 0.6"
749 | }
750 | },
751 | "node_modules/css-tree": {
752 | "version": "2.3.1",
753 | "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
754 | "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
755 | "dev": true,
756 | "dependencies": {
757 | "mdn-data": "2.0.30",
758 | "source-map-js": "^1.0.1"
759 | },
760 | "engines": {
761 | "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
762 | }
763 | },
764 | "node_modules/debug": {
765 | "version": "4.3.4",
766 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
767 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
768 | "dev": true,
769 | "dependencies": {
770 | "ms": "2.1.2"
771 | },
772 | "engines": {
773 | "node": ">=6.0"
774 | },
775 | "peerDependenciesMeta": {
776 | "supports-color": {
777 | "optional": true
778 | }
779 | }
780 | },
781 | "node_modules/deepmerge": {
782 | "version": "4.3.1",
783 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
784 | "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
785 | "dev": true,
786 | "engines": {
787 | "node": ">=0.10.0"
788 | }
789 | },
790 | "node_modules/dequal": {
791 | "version": "2.0.3",
792 | "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
793 | "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
794 | "dev": true,
795 | "engines": {
796 | "node": ">=6"
797 | }
798 | },
799 | "node_modules/detect-indent": {
800 | "version": "6.1.0",
801 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz",
802 | "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==",
803 | "dev": true,
804 | "engines": {
805 | "node": ">=8"
806 | }
807 | },
808 | "node_modules/devalue": {
809 | "version": "4.3.2",
810 | "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.2.tgz",
811 | "integrity": "sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==",
812 | "dev": true
813 | },
814 | "node_modules/es6-promise": {
815 | "version": "3.3.1",
816 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz",
817 | "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==",
818 | "dev": true
819 | },
820 | "node_modules/esbuild": {
821 | "version": "0.18.20",
822 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
823 | "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
824 | "dev": true,
825 | "hasInstallScript": true,
826 | "bin": {
827 | "esbuild": "bin/esbuild"
828 | },
829 | "engines": {
830 | "node": ">=12"
831 | },
832 | "optionalDependencies": {
833 | "@esbuild/android-arm": "0.18.20",
834 | "@esbuild/android-arm64": "0.18.20",
835 | "@esbuild/android-x64": "0.18.20",
836 | "@esbuild/darwin-arm64": "0.18.20",
837 | "@esbuild/darwin-x64": "0.18.20",
838 | "@esbuild/freebsd-arm64": "0.18.20",
839 | "@esbuild/freebsd-x64": "0.18.20",
840 | "@esbuild/linux-arm": "0.18.20",
841 | "@esbuild/linux-arm64": "0.18.20",
842 | "@esbuild/linux-ia32": "0.18.20",
843 | "@esbuild/linux-loong64": "0.18.20",
844 | "@esbuild/linux-mips64el": "0.18.20",
845 | "@esbuild/linux-ppc64": "0.18.20",
846 | "@esbuild/linux-riscv64": "0.18.20",
847 | "@esbuild/linux-s390x": "0.18.20",
848 | "@esbuild/linux-x64": "0.18.20",
849 | "@esbuild/netbsd-x64": "0.18.20",
850 | "@esbuild/openbsd-x64": "0.18.20",
851 | "@esbuild/sunos-x64": "0.18.20",
852 | "@esbuild/win32-arm64": "0.18.20",
853 | "@esbuild/win32-ia32": "0.18.20",
854 | "@esbuild/win32-x64": "0.18.20"
855 | }
856 | },
857 | "node_modules/esm-env": {
858 | "version": "1.0.0",
859 | "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz",
860 | "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==",
861 | "dev": true
862 | },
863 | "node_modules/estree-walker": {
864 | "version": "3.0.3",
865 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
866 | "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
867 | "dev": true,
868 | "dependencies": {
869 | "@types/estree": "^1.0.0"
870 | }
871 | },
872 | "node_modules/fast-glob": {
873 | "version": "3.3.1",
874 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
875 | "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
876 | "dev": true,
877 | "dependencies": {
878 | "@nodelib/fs.stat": "^2.0.2",
879 | "@nodelib/fs.walk": "^1.2.3",
880 | "glob-parent": "^5.1.2",
881 | "merge2": "^1.3.0",
882 | "micromatch": "^4.0.4"
883 | },
884 | "engines": {
885 | "node": ">=8.6.0"
886 | }
887 | },
888 | "node_modules/fastq": {
889 | "version": "1.15.0",
890 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
891 | "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
892 | "dev": true,
893 | "dependencies": {
894 | "reusify": "^1.0.4"
895 | }
896 | },
897 | "node_modules/fill-range": {
898 | "version": "7.0.1",
899 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
900 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
901 | "dev": true,
902 | "dependencies": {
903 | "to-regex-range": "^5.0.1"
904 | },
905 | "engines": {
906 | "node": ">=8"
907 | }
908 | },
909 | "node_modules/fs.realpath": {
910 | "version": "1.0.0",
911 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
912 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
913 | "dev": true
914 | },
915 | "node_modules/fsevents": {
916 | "version": "2.3.3",
917 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
918 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
919 | "dev": true,
920 | "hasInstallScript": true,
921 | "optional": true,
922 | "os": [
923 | "darwin"
924 | ],
925 | "engines": {
926 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
927 | }
928 | },
929 | "node_modules/glob": {
930 | "version": "7.2.3",
931 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
932 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
933 | "dev": true,
934 | "dependencies": {
935 | "fs.realpath": "^1.0.0",
936 | "inflight": "^1.0.4",
937 | "inherits": "2",
938 | "minimatch": "^3.1.1",
939 | "once": "^1.3.0",
940 | "path-is-absolute": "^1.0.0"
941 | },
942 | "engines": {
943 | "node": "*"
944 | },
945 | "funding": {
946 | "url": "https://github.com/sponsors/isaacs"
947 | }
948 | },
949 | "node_modules/glob-parent": {
950 | "version": "5.1.2",
951 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
952 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
953 | "dev": true,
954 | "dependencies": {
955 | "is-glob": "^4.0.1"
956 | },
957 | "engines": {
958 | "node": ">= 6"
959 | }
960 | },
961 | "node_modules/globalyzer": {
962 | "version": "0.1.0",
963 | "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
964 | "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==",
965 | "dev": true
966 | },
967 | "node_modules/globrex": {
968 | "version": "0.1.2",
969 | "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
970 | "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==",
971 | "dev": true
972 | },
973 | "node_modules/graceful-fs": {
974 | "version": "4.2.11",
975 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
976 | "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
977 | "dev": true
978 | },
979 | "node_modules/import-fresh": {
980 | "version": "3.3.0",
981 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
982 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
983 | "dev": true,
984 | "dependencies": {
985 | "parent-module": "^1.0.0",
986 | "resolve-from": "^4.0.0"
987 | },
988 | "engines": {
989 | "node": ">=6"
990 | },
991 | "funding": {
992 | "url": "https://github.com/sponsors/sindresorhus"
993 | }
994 | },
995 | "node_modules/import-meta-resolve": {
996 | "version": "3.0.0",
997 | "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-3.0.0.tgz",
998 | "integrity": "sha512-4IwhLhNNA8yy445rPjD/lWh++7hMDOml2eHtd58eG7h+qK3EryMuuRbsHGPikCoAgIkkDnckKfWSk2iDla/ejg==",
999 | "dev": true,
1000 | "funding": {
1001 | "type": "github",
1002 | "url": "https://github.com/sponsors/wooorm"
1003 | }
1004 | },
1005 | "node_modules/inflight": {
1006 | "version": "1.0.6",
1007 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1008 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
1009 | "dev": true,
1010 | "dependencies": {
1011 | "once": "^1.3.0",
1012 | "wrappy": "1"
1013 | }
1014 | },
1015 | "node_modules/inherits": {
1016 | "version": "2.0.4",
1017 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1018 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1019 | "dev": true
1020 | },
1021 | "node_modules/is-binary-path": {
1022 | "version": "2.1.0",
1023 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
1024 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
1025 | "dev": true,
1026 | "dependencies": {
1027 | "binary-extensions": "^2.0.0"
1028 | },
1029 | "engines": {
1030 | "node": ">=8"
1031 | }
1032 | },
1033 | "node_modules/is-extglob": {
1034 | "version": "2.1.1",
1035 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1036 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
1037 | "dev": true,
1038 | "engines": {
1039 | "node": ">=0.10.0"
1040 | }
1041 | },
1042 | "node_modules/is-glob": {
1043 | "version": "4.0.3",
1044 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
1045 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
1046 | "dev": true,
1047 | "dependencies": {
1048 | "is-extglob": "^2.1.1"
1049 | },
1050 | "engines": {
1051 | "node": ">=0.10.0"
1052 | }
1053 | },
1054 | "node_modules/is-number": {
1055 | "version": "7.0.0",
1056 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1057 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
1058 | "dev": true,
1059 | "engines": {
1060 | "node": ">=0.12.0"
1061 | }
1062 | },
1063 | "node_modules/is-reference": {
1064 | "version": "3.0.2",
1065 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz",
1066 | "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==",
1067 | "dev": true,
1068 | "dependencies": {
1069 | "@types/estree": "*"
1070 | }
1071 | },
1072 | "node_modules/kleur": {
1073 | "version": "4.1.5",
1074 | "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
1075 | "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
1076 | "dev": true,
1077 | "engines": {
1078 | "node": ">=6"
1079 | }
1080 | },
1081 | "node_modules/locate-character": {
1082 | "version": "3.0.0",
1083 | "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz",
1084 | "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==",
1085 | "dev": true
1086 | },
1087 | "node_modules/magic-string": {
1088 | "version": "0.30.5",
1089 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
1090 | "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
1091 | "dev": true,
1092 | "dependencies": {
1093 | "@jridgewell/sourcemap-codec": "^1.4.15"
1094 | },
1095 | "engines": {
1096 | "node": ">=12"
1097 | }
1098 | },
1099 | "node_modules/mdn-data": {
1100 | "version": "2.0.30",
1101 | "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
1102 | "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
1103 | "dev": true
1104 | },
1105 | "node_modules/merge2": {
1106 | "version": "1.4.1",
1107 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
1108 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
1109 | "dev": true,
1110 | "engines": {
1111 | "node": ">= 8"
1112 | }
1113 | },
1114 | "node_modules/micromatch": {
1115 | "version": "4.0.5",
1116 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
1117 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
1118 | "dev": true,
1119 | "dependencies": {
1120 | "braces": "^3.0.2",
1121 | "picomatch": "^2.3.1"
1122 | },
1123 | "engines": {
1124 | "node": ">=8.6"
1125 | }
1126 | },
1127 | "node_modules/min-indent": {
1128 | "version": "1.0.1",
1129 | "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
1130 | "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
1131 | "dev": true,
1132 | "engines": {
1133 | "node": ">=4"
1134 | }
1135 | },
1136 | "node_modules/minimatch": {
1137 | "version": "3.1.2",
1138 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1139 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1140 | "dev": true,
1141 | "dependencies": {
1142 | "brace-expansion": "^1.1.7"
1143 | },
1144 | "engines": {
1145 | "node": "*"
1146 | }
1147 | },
1148 | "node_modules/minimist": {
1149 | "version": "1.2.8",
1150 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
1151 | "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
1152 | "dev": true,
1153 | "funding": {
1154 | "url": "https://github.com/sponsors/ljharb"
1155 | }
1156 | },
1157 | "node_modules/mkdirp": {
1158 | "version": "0.5.6",
1159 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
1160 | "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
1161 | "dev": true,
1162 | "dependencies": {
1163 | "minimist": "^1.2.6"
1164 | },
1165 | "bin": {
1166 | "mkdirp": "bin/cmd.js"
1167 | }
1168 | },
1169 | "node_modules/mri": {
1170 | "version": "1.2.0",
1171 | "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
1172 | "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
1173 | "dev": true,
1174 | "engines": {
1175 | "node": ">=4"
1176 | }
1177 | },
1178 | "node_modules/mrmime": {
1179 | "version": "1.0.1",
1180 | "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz",
1181 | "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==",
1182 | "dev": true,
1183 | "engines": {
1184 | "node": ">=10"
1185 | }
1186 | },
1187 | "node_modules/ms": {
1188 | "version": "2.1.2",
1189 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1190 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1191 | "dev": true
1192 | },
1193 | "node_modules/nanoid": {
1194 | "version": "3.3.6",
1195 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
1196 | "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
1197 | "dev": true,
1198 | "funding": [
1199 | {
1200 | "type": "github",
1201 | "url": "https://github.com/sponsors/ai"
1202 | }
1203 | ],
1204 | "bin": {
1205 | "nanoid": "bin/nanoid.cjs"
1206 | },
1207 | "engines": {
1208 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1209 | }
1210 | },
1211 | "node_modules/normalize-path": {
1212 | "version": "3.0.0",
1213 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1214 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
1215 | "dev": true,
1216 | "engines": {
1217 | "node": ">=0.10.0"
1218 | }
1219 | },
1220 | "node_modules/once": {
1221 | "version": "1.4.0",
1222 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1223 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
1224 | "dev": true,
1225 | "dependencies": {
1226 | "wrappy": "1"
1227 | }
1228 | },
1229 | "node_modules/parent-module": {
1230 | "version": "1.0.1",
1231 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
1232 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
1233 | "dev": true,
1234 | "dependencies": {
1235 | "callsites": "^3.0.0"
1236 | },
1237 | "engines": {
1238 | "node": ">=6"
1239 | }
1240 | },
1241 | "node_modules/path-is-absolute": {
1242 | "version": "1.0.1",
1243 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1244 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
1245 | "dev": true,
1246 | "engines": {
1247 | "node": ">=0.10.0"
1248 | }
1249 | },
1250 | "node_modules/periscopic": {
1251 | "version": "3.1.0",
1252 | "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz",
1253 | "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==",
1254 | "dev": true,
1255 | "dependencies": {
1256 | "@types/estree": "^1.0.0",
1257 | "estree-walker": "^3.0.0",
1258 | "is-reference": "^3.0.0"
1259 | }
1260 | },
1261 | "node_modules/picocolors": {
1262 | "version": "1.0.0",
1263 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
1264 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
1265 | "dev": true
1266 | },
1267 | "node_modules/picomatch": {
1268 | "version": "2.3.1",
1269 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
1270 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
1271 | "dev": true,
1272 | "engines": {
1273 | "node": ">=8.6"
1274 | },
1275 | "funding": {
1276 | "url": "https://github.com/sponsors/jonschlinkert"
1277 | }
1278 | },
1279 | "node_modules/postcss": {
1280 | "version": "8.4.31",
1281 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
1282 | "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
1283 | "dev": true,
1284 | "funding": [
1285 | {
1286 | "type": "opencollective",
1287 | "url": "https://opencollective.com/postcss/"
1288 | },
1289 | {
1290 | "type": "tidelift",
1291 | "url": "https://tidelift.com/funding/github/npm/postcss"
1292 | },
1293 | {
1294 | "type": "github",
1295 | "url": "https://github.com/sponsors/ai"
1296 | }
1297 | ],
1298 | "dependencies": {
1299 | "nanoid": "^3.3.6",
1300 | "picocolors": "^1.0.0",
1301 | "source-map-js": "^1.0.2"
1302 | },
1303 | "engines": {
1304 | "node": "^10 || ^12 || >=14"
1305 | }
1306 | },
1307 | "node_modules/prettier": {
1308 | "version": "2.8.8",
1309 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
1310 | "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
1311 | "dev": true,
1312 | "bin": {
1313 | "prettier": "bin-prettier.js"
1314 | },
1315 | "engines": {
1316 | "node": ">=10.13.0"
1317 | },
1318 | "funding": {
1319 | "url": "https://github.com/prettier/prettier?sponsor=1"
1320 | }
1321 | },
1322 | "node_modules/prettier-plugin-svelte": {
1323 | "version": "2.10.1",
1324 | "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.10.1.tgz",
1325 | "integrity": "sha512-Wlq7Z5v2ueCubWo0TZzKc9XHcm7TDxqcuzRuGd0gcENfzfT4JZ9yDlCbEgxWgiPmLHkBjfOtpAWkcT28MCDpUQ==",
1326 | "dev": true,
1327 | "peerDependencies": {
1328 | "prettier": "^1.16.4 || ^2.0.0",
1329 | "svelte": "^3.2.0 || ^4.0.0-next.0"
1330 | }
1331 | },
1332 | "node_modules/queue-microtask": {
1333 | "version": "1.2.3",
1334 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
1335 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
1336 | "dev": true,
1337 | "funding": [
1338 | {
1339 | "type": "github",
1340 | "url": "https://github.com/sponsors/feross"
1341 | },
1342 | {
1343 | "type": "patreon",
1344 | "url": "https://www.patreon.com/feross"
1345 | },
1346 | {
1347 | "type": "consulting",
1348 | "url": "https://feross.org/support"
1349 | }
1350 | ]
1351 | },
1352 | "node_modules/readdirp": {
1353 | "version": "3.6.0",
1354 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
1355 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
1356 | "dev": true,
1357 | "dependencies": {
1358 | "picomatch": "^2.2.1"
1359 | },
1360 | "engines": {
1361 | "node": ">=8.10.0"
1362 | }
1363 | },
1364 | "node_modules/reconnecting-websocket": {
1365 | "version": "4.4.0",
1366 | "resolved": "https://registry.npmjs.org/reconnecting-websocket/-/reconnecting-websocket-4.4.0.tgz",
1367 | "integrity": "sha512-D2E33ceRPga0NvTDhJmphEgJ7FUYF0v4lr1ki0csq06OdlxKfugGzN0dSkxM/NfqCxYELK4KcaTOUOjTV6Dcng==",
1368 | "dev": true
1369 | },
1370 | "node_modules/resolve-from": {
1371 | "version": "4.0.0",
1372 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
1373 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
1374 | "dev": true,
1375 | "engines": {
1376 | "node": ">=4"
1377 | }
1378 | },
1379 | "node_modules/reusify": {
1380 | "version": "1.0.4",
1381 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
1382 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
1383 | "dev": true,
1384 | "engines": {
1385 | "iojs": ">=1.0.0",
1386 | "node": ">=0.10.0"
1387 | }
1388 | },
1389 | "node_modules/rimraf": {
1390 | "version": "2.7.1",
1391 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
1392 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
1393 | "dev": true,
1394 | "dependencies": {
1395 | "glob": "^7.1.3"
1396 | },
1397 | "bin": {
1398 | "rimraf": "bin.js"
1399 | }
1400 | },
1401 | "node_modules/rollup": {
1402 | "version": "3.29.4",
1403 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
1404 | "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
1405 | "dev": true,
1406 | "bin": {
1407 | "rollup": "dist/bin/rollup"
1408 | },
1409 | "engines": {
1410 | "node": ">=14.18.0",
1411 | "npm": ">=8.0.0"
1412 | },
1413 | "optionalDependencies": {
1414 | "fsevents": "~2.3.2"
1415 | }
1416 | },
1417 | "node_modules/run-parallel": {
1418 | "version": "1.2.0",
1419 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
1420 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
1421 | "dev": true,
1422 | "funding": [
1423 | {
1424 | "type": "github",
1425 | "url": "https://github.com/sponsors/feross"
1426 | },
1427 | {
1428 | "type": "patreon",
1429 | "url": "https://www.patreon.com/feross"
1430 | },
1431 | {
1432 | "type": "consulting",
1433 | "url": "https://feross.org/support"
1434 | }
1435 | ],
1436 | "dependencies": {
1437 | "queue-microtask": "^1.2.2"
1438 | }
1439 | },
1440 | "node_modules/sade": {
1441 | "version": "1.8.1",
1442 | "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
1443 | "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
1444 | "dev": true,
1445 | "dependencies": {
1446 | "mri": "^1.1.0"
1447 | },
1448 | "engines": {
1449 | "node": ">=6"
1450 | }
1451 | },
1452 | "node_modules/sander": {
1453 | "version": "0.5.1",
1454 | "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz",
1455 | "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==",
1456 | "dev": true,
1457 | "dependencies": {
1458 | "es6-promise": "^3.1.2",
1459 | "graceful-fs": "^4.1.3",
1460 | "mkdirp": "^0.5.1",
1461 | "rimraf": "^2.5.2"
1462 | }
1463 | },
1464 | "node_modules/set-cookie-parser": {
1465 | "version": "2.6.0",
1466 | "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz",
1467 | "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==",
1468 | "dev": true
1469 | },
1470 | "node_modules/sirv": {
1471 | "version": "2.0.3",
1472 | "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.3.tgz",
1473 | "integrity": "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==",
1474 | "dev": true,
1475 | "dependencies": {
1476 | "@polka/url": "^1.0.0-next.20",
1477 | "mrmime": "^1.0.0",
1478 | "totalist": "^3.0.0"
1479 | },
1480 | "engines": {
1481 | "node": ">= 10"
1482 | }
1483 | },
1484 | "node_modules/sorcery": {
1485 | "version": "0.11.0",
1486 | "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz",
1487 | "integrity": "sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==",
1488 | "dev": true,
1489 | "dependencies": {
1490 | "@jridgewell/sourcemap-codec": "^1.4.14",
1491 | "buffer-crc32": "^0.2.5",
1492 | "minimist": "^1.2.0",
1493 | "sander": "^0.5.0"
1494 | },
1495 | "bin": {
1496 | "sorcery": "bin/sorcery"
1497 | }
1498 | },
1499 | "node_modules/source-map-js": {
1500 | "version": "1.0.2",
1501 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
1502 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
1503 | "dev": true,
1504 | "engines": {
1505 | "node": ">=0.10.0"
1506 | }
1507 | },
1508 | "node_modules/strip-indent": {
1509 | "version": "3.0.0",
1510 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
1511 | "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
1512 | "dev": true,
1513 | "dependencies": {
1514 | "min-indent": "^1.0.0"
1515 | },
1516 | "engines": {
1517 | "node": ">=8"
1518 | }
1519 | },
1520 | "node_modules/svelte": {
1521 | "version": "4.2.2",
1522 | "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.2.tgz",
1523 | "integrity": "sha512-My2tytF2e2NnHSpn2M7/3VdXT4JdTglYVUuSuK/mXL2XtulPYbeBfl8Dm1QiaKRn0zoULRnL+EtfZHHP0k4H3A==",
1524 | "dev": true,
1525 | "dependencies": {
1526 | "@ampproject/remapping": "^2.2.1",
1527 | "@jridgewell/sourcemap-codec": "^1.4.15",
1528 | "@jridgewell/trace-mapping": "^0.3.18",
1529 | "acorn": "^8.9.0",
1530 | "aria-query": "^5.3.0",
1531 | "axobject-query": "^3.2.1",
1532 | "code-red": "^1.0.3",
1533 | "css-tree": "^2.3.1",
1534 | "estree-walker": "^3.0.3",
1535 | "is-reference": "^3.0.1",
1536 | "locate-character": "^3.0.0",
1537 | "magic-string": "^0.30.4",
1538 | "periscopic": "^3.1.0"
1539 | },
1540 | "engines": {
1541 | "node": ">=16"
1542 | }
1543 | },
1544 | "node_modules/svelte-check": {
1545 | "version": "3.5.2",
1546 | "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.5.2.tgz",
1547 | "integrity": "sha512-5a/YWbiH4c+AqAUP+0VneiV5bP8YOk9JL3jwvN+k2PEPLgpu85bjQc5eE67+eIZBBwUEJzmO3I92OqKcqbp3fw==",
1548 | "dev": true,
1549 | "dependencies": {
1550 | "@jridgewell/trace-mapping": "^0.3.17",
1551 | "chokidar": "^3.4.1",
1552 | "fast-glob": "^3.2.7",
1553 | "import-fresh": "^3.2.1",
1554 | "picocolors": "^1.0.0",
1555 | "sade": "^1.7.4",
1556 | "svelte-preprocess": "^5.0.4",
1557 | "typescript": "^5.0.3"
1558 | },
1559 | "bin": {
1560 | "svelte-check": "bin/svelte-check"
1561 | },
1562 | "peerDependencies": {
1563 | "svelte": "^3.55.0 || ^4.0.0-next.0 || ^4.0.0"
1564 | }
1565 | },
1566 | "node_modules/svelte-hmr": {
1567 | "version": "0.15.3",
1568 | "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.3.tgz",
1569 | "integrity": "sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==",
1570 | "dev": true,
1571 | "engines": {
1572 | "node": "^12.20 || ^14.13.1 || >= 16"
1573 | },
1574 | "peerDependencies": {
1575 | "svelte": "^3.19.0 || ^4.0.0"
1576 | }
1577 | },
1578 | "node_modules/svelte-preprocess": {
1579 | "version": "5.0.4",
1580 | "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.0.4.tgz",
1581 | "integrity": "sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw==",
1582 | "dev": true,
1583 | "hasInstallScript": true,
1584 | "dependencies": {
1585 | "@types/pug": "^2.0.6",
1586 | "detect-indent": "^6.1.0",
1587 | "magic-string": "^0.27.0",
1588 | "sorcery": "^0.11.0",
1589 | "strip-indent": "^3.0.0"
1590 | },
1591 | "engines": {
1592 | "node": ">= 14.10.0"
1593 | },
1594 | "peerDependencies": {
1595 | "@babel/core": "^7.10.2",
1596 | "coffeescript": "^2.5.1",
1597 | "less": "^3.11.3 || ^4.0.0",
1598 | "postcss": "^7 || ^8",
1599 | "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0",
1600 | "pug": "^3.0.0",
1601 | "sass": "^1.26.8",
1602 | "stylus": "^0.55.0",
1603 | "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0",
1604 | "svelte": "^3.23.0 || ^4.0.0-next.0 || ^4.0.0",
1605 | "typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0"
1606 | },
1607 | "peerDependenciesMeta": {
1608 | "@babel/core": {
1609 | "optional": true
1610 | },
1611 | "coffeescript": {
1612 | "optional": true
1613 | },
1614 | "less": {
1615 | "optional": true
1616 | },
1617 | "postcss": {
1618 | "optional": true
1619 | },
1620 | "postcss-load-config": {
1621 | "optional": true
1622 | },
1623 | "pug": {
1624 | "optional": true
1625 | },
1626 | "sass": {
1627 | "optional": true
1628 | },
1629 | "stylus": {
1630 | "optional": true
1631 | },
1632 | "sugarss": {
1633 | "optional": true
1634 | },
1635 | "typescript": {
1636 | "optional": true
1637 | }
1638 | }
1639 | },
1640 | "node_modules/svelte-preprocess/node_modules/magic-string": {
1641 | "version": "0.27.0",
1642 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz",
1643 | "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==",
1644 | "dev": true,
1645 | "dependencies": {
1646 | "@jridgewell/sourcemap-codec": "^1.4.13"
1647 | },
1648 | "engines": {
1649 | "node": ">=12"
1650 | }
1651 | },
1652 | "node_modules/tiny-glob": {
1653 | "version": "0.2.9",
1654 | "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz",
1655 | "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==",
1656 | "dev": true,
1657 | "dependencies": {
1658 | "globalyzer": "0.1.0",
1659 | "globrex": "^0.1.2"
1660 | }
1661 | },
1662 | "node_modules/to-regex-range": {
1663 | "version": "5.0.1",
1664 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1665 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1666 | "dev": true,
1667 | "dependencies": {
1668 | "is-number": "^7.0.0"
1669 | },
1670 | "engines": {
1671 | "node": ">=8.0"
1672 | }
1673 | },
1674 | "node_modules/totalist": {
1675 | "version": "3.0.1",
1676 | "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
1677 | "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
1678 | "dev": true,
1679 | "engines": {
1680 | "node": ">=6"
1681 | }
1682 | },
1683 | "node_modules/tslib": {
1684 | "version": "2.6.2",
1685 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
1686 | "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
1687 | "dev": true
1688 | },
1689 | "node_modules/typescript": {
1690 | "version": "5.2.2",
1691 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
1692 | "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
1693 | "dev": true,
1694 | "bin": {
1695 | "tsc": "bin/tsc",
1696 | "tsserver": "bin/tsserver"
1697 | },
1698 | "engines": {
1699 | "node": ">=14.17"
1700 | }
1701 | },
1702 | "node_modules/undici": {
1703 | "version": "5.26.5",
1704 | "resolved": "https://registry.npmjs.org/undici/-/undici-5.26.5.tgz",
1705 | "integrity": "sha512-cSb4bPFd5qgR7qr2jYAi0hlX9n5YKK2ONKkLFkxl+v/9BvC0sOpZjBHDBSXc5lWAf5ty9oZdRXytBIHzgUcerw==",
1706 | "dev": true,
1707 | "dependencies": {
1708 | "@fastify/busboy": "^2.0.0"
1709 | },
1710 | "engines": {
1711 | "node": ">=14.0"
1712 | }
1713 | },
1714 | "node_modules/vite": {
1715 | "version": "4.5.0",
1716 | "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz",
1717 | "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==",
1718 | "dev": true,
1719 | "dependencies": {
1720 | "esbuild": "^0.18.10",
1721 | "postcss": "^8.4.27",
1722 | "rollup": "^3.27.1"
1723 | },
1724 | "bin": {
1725 | "vite": "bin/vite.js"
1726 | },
1727 | "engines": {
1728 | "node": "^14.18.0 || >=16.0.0"
1729 | },
1730 | "funding": {
1731 | "url": "https://github.com/vitejs/vite?sponsor=1"
1732 | },
1733 | "optionalDependencies": {
1734 | "fsevents": "~2.3.2"
1735 | },
1736 | "peerDependencies": {
1737 | "@types/node": ">= 14",
1738 | "less": "*",
1739 | "lightningcss": "^1.21.0",
1740 | "sass": "*",
1741 | "stylus": "*",
1742 | "sugarss": "*",
1743 | "terser": "^5.4.0"
1744 | },
1745 | "peerDependenciesMeta": {
1746 | "@types/node": {
1747 | "optional": true
1748 | },
1749 | "less": {
1750 | "optional": true
1751 | },
1752 | "lightningcss": {
1753 | "optional": true
1754 | },
1755 | "sass": {
1756 | "optional": true
1757 | },
1758 | "stylus": {
1759 | "optional": true
1760 | },
1761 | "sugarss": {
1762 | "optional": true
1763 | },
1764 | "terser": {
1765 | "optional": true
1766 | }
1767 | }
1768 | },
1769 | "node_modules/vitefu": {
1770 | "version": "0.2.5",
1771 | "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.5.tgz",
1772 | "integrity": "sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==",
1773 | "dev": true,
1774 | "peerDependencies": {
1775 | "vite": "^3.0.0 || ^4.0.0 || ^5.0.0"
1776 | },
1777 | "peerDependenciesMeta": {
1778 | "vite": {
1779 | "optional": true
1780 | }
1781 | }
1782 | },
1783 | "node_modules/wrappy": {
1784 | "version": "1.0.2",
1785 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1786 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
1787 | "dev": true
1788 | }
1789 | }
1790 | }
1791 |
--------------------------------------------------------------------------------
/server/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "socketNode",
3 | "version": "1.0.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "socketNode",
9 | "version": "1.0.0",
10 | "license": "ISC",
11 | "dependencies": {
12 | "bcryptjs": "^2.4.3",
13 | "cbor": "^9.0.1",
14 | "compress-json": "^2.1.2",
15 | "cors": "^2.8.5",
16 | "dotenv": "^16.3.1",
17 | "ip": "^1.1.8",
18 | "jsonwebtoken": "^9.0.1",
19 | "pino": "^8.15.1",
20 | "pino-pretty": "^10.2.0",
21 | "pulsar-client": "^1.9.0",
22 | "ws": "^8.13.0",
23 | "yup": "^1.2.0"
24 | },
25 | "devDependencies": {
26 | "@types/bcryptjs": "^2.4.2",
27 | "@types/cors": "^2.8.13",
28 | "@types/ip": "^1.1.0",
29 | "@types/jsonwebtoken": "^9.0.2",
30 | "@types/node": "^20.4.3",
31 | "@types/ws": "^8.5.5",
32 | "nodemon": "^3.0.1",
33 | "rimraf": "^5.0.1",
34 | "ts-node": "^10.9.1",
35 | "tsc-alias": "^1.8.7",
36 | "tsconfig-paths": "^4.2.0",
37 | "typescript": "^5.1.6"
38 | }
39 | },
40 | "node_modules/@cspotcode/source-map-support": {
41 | "version": "0.8.1",
42 | "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
43 | "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
44 | "dev": true,
45 | "dependencies": {
46 | "@jridgewell/trace-mapping": "0.3.9"
47 | },
48 | "engines": {
49 | "node": ">=12"
50 | }
51 | },
52 | "node_modules/@isaacs/cliui": {
53 | "version": "8.0.2",
54 | "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
55 | "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
56 | "dev": true,
57 | "dependencies": {
58 | "string-width": "^5.1.2",
59 | "string-width-cjs": "npm:string-width@^4.2.0",
60 | "strip-ansi": "^7.0.1",
61 | "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
62 | "wrap-ansi": "^8.1.0",
63 | "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
64 | },
65 | "engines": {
66 | "node": ">=12"
67 | }
68 | },
69 | "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
70 | "version": "6.0.1",
71 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
72 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
73 | "dev": true,
74 | "engines": {
75 | "node": ">=12"
76 | },
77 | "funding": {
78 | "url": "https://github.com/chalk/ansi-regex?sponsor=1"
79 | }
80 | },
81 | "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
82 | "version": "9.2.2",
83 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
84 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
85 | "dev": true
86 | },
87 | "node_modules/@isaacs/cliui/node_modules/string-width": {
88 | "version": "5.1.2",
89 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
90 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
91 | "dev": true,
92 | "dependencies": {
93 | "eastasianwidth": "^0.2.0",
94 | "emoji-regex": "^9.2.2",
95 | "strip-ansi": "^7.0.1"
96 | },
97 | "engines": {
98 | "node": ">=12"
99 | },
100 | "funding": {
101 | "url": "https://github.com/sponsors/sindresorhus"
102 | }
103 | },
104 | "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
105 | "version": "7.1.0",
106 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
107 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
108 | "dev": true,
109 | "dependencies": {
110 | "ansi-regex": "^6.0.1"
111 | },
112 | "engines": {
113 | "node": ">=12"
114 | },
115 | "funding": {
116 | "url": "https://github.com/chalk/strip-ansi?sponsor=1"
117 | }
118 | },
119 | "node_modules/@jridgewell/resolve-uri": {
120 | "version": "3.1.1",
121 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
122 | "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
123 | "dev": true,
124 | "engines": {
125 | "node": ">=6.0.0"
126 | }
127 | },
128 | "node_modules/@jridgewell/sourcemap-codec": {
129 | "version": "1.4.15",
130 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
131 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
132 | "dev": true
133 | },
134 | "node_modules/@jridgewell/trace-mapping": {
135 | "version": "0.3.9",
136 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
137 | "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
138 | "dev": true,
139 | "dependencies": {
140 | "@jridgewell/resolve-uri": "^3.0.3",
141 | "@jridgewell/sourcemap-codec": "^1.4.10"
142 | }
143 | },
144 | "node_modules/@mapbox/node-pre-gyp": {
145 | "version": "1.0.11",
146 | "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz",
147 | "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==",
148 | "dependencies": {
149 | "detect-libc": "^2.0.0",
150 | "https-proxy-agent": "^5.0.0",
151 | "make-dir": "^3.1.0",
152 | "node-fetch": "^2.6.7",
153 | "nopt": "^5.0.0",
154 | "npmlog": "^5.0.1",
155 | "rimraf": "^3.0.2",
156 | "semver": "^7.3.5",
157 | "tar": "^6.1.11"
158 | },
159 | "bin": {
160 | "node-pre-gyp": "bin/node-pre-gyp"
161 | }
162 | },
163 | "node_modules/@mapbox/node-pre-gyp/node_modules/glob": {
164 | "version": "7.2.3",
165 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
166 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
167 | "dependencies": {
168 | "fs.realpath": "^1.0.0",
169 | "inflight": "^1.0.4",
170 | "inherits": "2",
171 | "minimatch": "^3.1.1",
172 | "once": "^1.3.0",
173 | "path-is-absolute": "^1.0.0"
174 | },
175 | "engines": {
176 | "node": "*"
177 | },
178 | "funding": {
179 | "url": "https://github.com/sponsors/isaacs"
180 | }
181 | },
182 | "node_modules/@mapbox/node-pre-gyp/node_modules/rimraf": {
183 | "version": "3.0.2",
184 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
185 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
186 | "dependencies": {
187 | "glob": "^7.1.3"
188 | },
189 | "bin": {
190 | "rimraf": "bin.js"
191 | },
192 | "funding": {
193 | "url": "https://github.com/sponsors/isaacs"
194 | }
195 | },
196 | "node_modules/@nodelib/fs.scandir": {
197 | "version": "2.1.5",
198 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
199 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
200 | "dev": true,
201 | "dependencies": {
202 | "@nodelib/fs.stat": "2.0.5",
203 | "run-parallel": "^1.1.9"
204 | },
205 | "engines": {
206 | "node": ">= 8"
207 | }
208 | },
209 | "node_modules/@nodelib/fs.stat": {
210 | "version": "2.0.5",
211 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
212 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
213 | "dev": true,
214 | "engines": {
215 | "node": ">= 8"
216 | }
217 | },
218 | "node_modules/@nodelib/fs.walk": {
219 | "version": "1.2.8",
220 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
221 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
222 | "dev": true,
223 | "dependencies": {
224 | "@nodelib/fs.scandir": "2.1.5",
225 | "fastq": "^1.6.0"
226 | },
227 | "engines": {
228 | "node": ">= 8"
229 | }
230 | },
231 | "node_modules/@pkgjs/parseargs": {
232 | "version": "0.11.0",
233 | "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
234 | "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
235 | "dev": true,
236 | "optional": true,
237 | "engines": {
238 | "node": ">=14"
239 | }
240 | },
241 | "node_modules/@tsconfig/node10": {
242 | "version": "1.0.9",
243 | "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
244 | "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
245 | "dev": true
246 | },
247 | "node_modules/@tsconfig/node12": {
248 | "version": "1.0.11",
249 | "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
250 | "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
251 | "dev": true
252 | },
253 | "node_modules/@tsconfig/node14": {
254 | "version": "1.0.3",
255 | "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
256 | "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
257 | "dev": true
258 | },
259 | "node_modules/@tsconfig/node16": {
260 | "version": "1.0.4",
261 | "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
262 | "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
263 | "dev": true
264 | },
265 | "node_modules/@types/bcryptjs": {
266 | "version": "2.4.5",
267 | "resolved": "https://registry.npmjs.org/@types/bcryptjs/-/bcryptjs-2.4.5.tgz",
268 | "integrity": "sha512-tOF6TivOIvq+TWQm78335CMdyVJhpBG3NUdWQDAp95ax4E2rSKbws/ELHLk5EBoucwx/tHt3/hhLOHwWJgVrSw==",
269 | "dev": true
270 | },
271 | "node_modules/@types/cors": {
272 | "version": "2.8.15",
273 | "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.15.tgz",
274 | "integrity": "sha512-n91JxbNLD8eQIuXDIChAN1tCKNWCEgpceU9b7ZMbFA+P+Q4yIeh80jizFLEvolRPc1ES0VdwFlGv+kJTSirogw==",
275 | "dev": true,
276 | "dependencies": {
277 | "@types/node": "*"
278 | }
279 | },
280 | "node_modules/@types/ip": {
281 | "version": "1.1.2",
282 | "resolved": "https://registry.npmjs.org/@types/ip/-/ip-1.1.2.tgz",
283 | "integrity": "sha512-WjV3/mz9YSlfU8E88m4ZwvRQmpTjWy4vH8K+cggBUAjmp91wvT1he132Ql8V3CsZz3SYkze3CC3AxhjaD4ZYug==",
284 | "dev": true,
285 | "dependencies": {
286 | "@types/node": "*"
287 | }
288 | },
289 | "node_modules/@types/jsonwebtoken": {
290 | "version": "9.0.4",
291 | "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.4.tgz",
292 | "integrity": "sha512-8UYapdmR0QlxgvJmyE8lP7guxD0UGVMfknsdtCFZh4ovShdBl3iOI4zdvqBHrB/IS+xUj3PSx73Qkey1fhWz+g==",
293 | "dev": true,
294 | "dependencies": {
295 | "@types/node": "*"
296 | }
297 | },
298 | "node_modules/@types/node": {
299 | "version": "20.8.10",
300 | "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.10.tgz",
301 | "integrity": "sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==",
302 | "dev": true,
303 | "dependencies": {
304 | "undici-types": "~5.26.4"
305 | }
306 | },
307 | "node_modules/@types/ws": {
308 | "version": "8.5.8",
309 | "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.8.tgz",
310 | "integrity": "sha512-flUksGIQCnJd6sZ1l5dqCEG/ksaoAg/eUwiLAGTJQcfgvZJKF++Ta4bJA6A5aPSJmsr+xlseHn4KLgVlNnvPTg==",
311 | "dev": true,
312 | "dependencies": {
313 | "@types/node": "*"
314 | }
315 | },
316 | "node_modules/abbrev": {
317 | "version": "1.1.1",
318 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
319 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
320 | },
321 | "node_modules/abort-controller": {
322 | "version": "3.0.0",
323 | "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
324 | "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
325 | "dependencies": {
326 | "event-target-shim": "^5.0.0"
327 | },
328 | "engines": {
329 | "node": ">=6.5"
330 | }
331 | },
332 | "node_modules/acorn": {
333 | "version": "8.11.2",
334 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz",
335 | "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==",
336 | "dev": true,
337 | "bin": {
338 | "acorn": "bin/acorn"
339 | },
340 | "engines": {
341 | "node": ">=0.4.0"
342 | }
343 | },
344 | "node_modules/acorn-walk": {
345 | "version": "8.3.0",
346 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz",
347 | "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==",
348 | "dev": true,
349 | "engines": {
350 | "node": ">=0.4.0"
351 | }
352 | },
353 | "node_modules/agent-base": {
354 | "version": "6.0.2",
355 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
356 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
357 | "dependencies": {
358 | "debug": "4"
359 | },
360 | "engines": {
361 | "node": ">= 6.0.0"
362 | }
363 | },
364 | "node_modules/agent-base/node_modules/debug": {
365 | "version": "4.3.4",
366 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
367 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
368 | "dependencies": {
369 | "ms": "2.1.2"
370 | },
371 | "engines": {
372 | "node": ">=6.0"
373 | },
374 | "peerDependenciesMeta": {
375 | "supports-color": {
376 | "optional": true
377 | }
378 | }
379 | },
380 | "node_modules/agent-base/node_modules/ms": {
381 | "version": "2.1.2",
382 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
383 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
384 | },
385 | "node_modules/ansi-regex": {
386 | "version": "5.0.1",
387 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
388 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
389 | "engines": {
390 | "node": ">=8"
391 | }
392 | },
393 | "node_modules/ansi-styles": {
394 | "version": "6.2.1",
395 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
396 | "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
397 | "dev": true,
398 | "engines": {
399 | "node": ">=12"
400 | },
401 | "funding": {
402 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
403 | }
404 | },
405 | "node_modules/anymatch": {
406 | "version": "3.1.3",
407 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
408 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
409 | "dev": true,
410 | "dependencies": {
411 | "normalize-path": "^3.0.0",
412 | "picomatch": "^2.0.4"
413 | },
414 | "engines": {
415 | "node": ">= 8"
416 | }
417 | },
418 | "node_modules/aproba": {
419 | "version": "2.0.0",
420 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
421 | "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ=="
422 | },
423 | "node_modules/are-we-there-yet": {
424 | "version": "2.0.0",
425 | "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
426 | "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
427 | "dependencies": {
428 | "delegates": "^1.0.0",
429 | "readable-stream": "^3.6.0"
430 | },
431 | "engines": {
432 | "node": ">=10"
433 | }
434 | },
435 | "node_modules/are-we-there-yet/node_modules/readable-stream": {
436 | "version": "3.6.2",
437 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
438 | "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
439 | "dependencies": {
440 | "inherits": "^2.0.3",
441 | "string_decoder": "^1.1.1",
442 | "util-deprecate": "^1.0.1"
443 | },
444 | "engines": {
445 | "node": ">= 6"
446 | }
447 | },
448 | "node_modules/arg": {
449 | "version": "4.1.3",
450 | "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
451 | "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
452 | "dev": true
453 | },
454 | "node_modules/array-union": {
455 | "version": "2.1.0",
456 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
457 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
458 | "dev": true,
459 | "engines": {
460 | "node": ">=8"
461 | }
462 | },
463 | "node_modules/atomic-sleep": {
464 | "version": "1.0.0",
465 | "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz",
466 | "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==",
467 | "engines": {
468 | "node": ">=8.0.0"
469 | }
470 | },
471 | "node_modules/balanced-match": {
472 | "version": "1.0.2",
473 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
474 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
475 | },
476 | "node_modules/base64-js": {
477 | "version": "1.5.1",
478 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
479 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
480 | "funding": [
481 | {
482 | "type": "github",
483 | "url": "https://github.com/sponsors/feross"
484 | },
485 | {
486 | "type": "patreon",
487 | "url": "https://www.patreon.com/feross"
488 | },
489 | {
490 | "type": "consulting",
491 | "url": "https://feross.org/support"
492 | }
493 | ]
494 | },
495 | "node_modules/bcryptjs": {
496 | "version": "2.4.3",
497 | "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz",
498 | "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ=="
499 | },
500 | "node_modules/binary-extensions": {
501 | "version": "2.2.0",
502 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
503 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
504 | "dev": true,
505 | "engines": {
506 | "node": ">=8"
507 | }
508 | },
509 | "node_modules/bindings": {
510 | "version": "1.5.0",
511 | "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
512 | "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
513 | "dependencies": {
514 | "file-uri-to-path": "1.0.0"
515 | }
516 | },
517 | "node_modules/brace-expansion": {
518 | "version": "1.1.11",
519 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
520 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
521 | "dependencies": {
522 | "balanced-match": "^1.0.0",
523 | "concat-map": "0.0.1"
524 | }
525 | },
526 | "node_modules/braces": {
527 | "version": "3.0.2",
528 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
529 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
530 | "dev": true,
531 | "dependencies": {
532 | "fill-range": "^7.0.1"
533 | },
534 | "engines": {
535 | "node": ">=8"
536 | }
537 | },
538 | "node_modules/buffer": {
539 | "version": "6.0.3",
540 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
541 | "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
542 | "funding": [
543 | {
544 | "type": "github",
545 | "url": "https://github.com/sponsors/feross"
546 | },
547 | {
548 | "type": "patreon",
549 | "url": "https://www.patreon.com/feross"
550 | },
551 | {
552 | "type": "consulting",
553 | "url": "https://feross.org/support"
554 | }
555 | ],
556 | "dependencies": {
557 | "base64-js": "^1.3.1",
558 | "ieee754": "^1.2.1"
559 | }
560 | },
561 | "node_modules/buffer-equal-constant-time": {
562 | "version": "1.0.1",
563 | "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
564 | "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA=="
565 | },
566 | "node_modules/cbor": {
567 | "version": "9.0.1",
568 | "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.1.tgz",
569 | "integrity": "sha512-/TQOWyamDxvVIv+DY9cOLNuABkoyz8K/F3QE56539pGVYohx0+MEA1f4lChFTX79dBTBS7R1PF6ovH7G+VtBfQ==",
570 | "dependencies": {
571 | "nofilter": "^3.1.0"
572 | },
573 | "engines": {
574 | "node": ">=16"
575 | }
576 | },
577 | "node_modules/chokidar": {
578 | "version": "3.5.3",
579 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
580 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
581 | "dev": true,
582 | "funding": [
583 | {
584 | "type": "individual",
585 | "url": "https://paulmillr.com/funding/"
586 | }
587 | ],
588 | "dependencies": {
589 | "anymatch": "~3.1.2",
590 | "braces": "~3.0.2",
591 | "glob-parent": "~5.1.2",
592 | "is-binary-path": "~2.1.0",
593 | "is-glob": "~4.0.1",
594 | "normalize-path": "~3.0.0",
595 | "readdirp": "~3.6.0"
596 | },
597 | "engines": {
598 | "node": ">= 8.10.0"
599 | },
600 | "optionalDependencies": {
601 | "fsevents": "~2.3.2"
602 | }
603 | },
604 | "node_modules/chownr": {
605 | "version": "2.0.0",
606 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
607 | "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
608 | "engines": {
609 | "node": ">=10"
610 | }
611 | },
612 | "node_modules/color-convert": {
613 | "version": "2.0.1",
614 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
615 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
616 | "dev": true,
617 | "dependencies": {
618 | "color-name": "~1.1.4"
619 | },
620 | "engines": {
621 | "node": ">=7.0.0"
622 | }
623 | },
624 | "node_modules/color-name": {
625 | "version": "1.1.4",
626 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
627 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
628 | "dev": true
629 | },
630 | "node_modules/color-support": {
631 | "version": "1.1.3",
632 | "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
633 | "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
634 | "bin": {
635 | "color-support": "bin.js"
636 | }
637 | },
638 | "node_modules/colorette": {
639 | "version": "2.0.20",
640 | "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
641 | "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w=="
642 | },
643 | "node_modules/commander": {
644 | "version": "9.5.0",
645 | "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
646 | "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
647 | "dev": true,
648 | "engines": {
649 | "node": "^12.20.0 || >=14"
650 | }
651 | },
652 | "node_modules/compress-json": {
653 | "version": "2.1.2",
654 | "resolved": "https://registry.npmjs.org/compress-json/-/compress-json-2.1.2.tgz",
655 | "integrity": "sha512-91247RD8bKQXzRmXUS4zGT250mhw86+J9X8w2L2SGtRE7g0CvzjOETFaFmsDdaXPWv8T7L9iiM7kdcnnH3BH7w=="
656 | },
657 | "node_modules/concat-map": {
658 | "version": "0.0.1",
659 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
660 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
661 | },
662 | "node_modules/console-control-strings": {
663 | "version": "1.1.0",
664 | "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
665 | "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
666 | },
667 | "node_modules/cors": {
668 | "version": "2.8.5",
669 | "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
670 | "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
671 | "dependencies": {
672 | "object-assign": "^4",
673 | "vary": "^1"
674 | },
675 | "engines": {
676 | "node": ">= 0.10"
677 | }
678 | },
679 | "node_modules/create-require": {
680 | "version": "1.1.1",
681 | "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
682 | "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
683 | "dev": true
684 | },
685 | "node_modules/cross-spawn": {
686 | "version": "7.0.3",
687 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
688 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
689 | "dev": true,
690 | "dependencies": {
691 | "path-key": "^3.1.0",
692 | "shebang-command": "^2.0.0",
693 | "which": "^2.0.1"
694 | },
695 | "engines": {
696 | "node": ">= 8"
697 | }
698 | },
699 | "node_modules/dateformat": {
700 | "version": "4.6.3",
701 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz",
702 | "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==",
703 | "engines": {
704 | "node": "*"
705 | }
706 | },
707 | "node_modules/delegates": {
708 | "version": "1.0.0",
709 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
710 | "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
711 | },
712 | "node_modules/detect-libc": {
713 | "version": "2.0.2",
714 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
715 | "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==",
716 | "engines": {
717 | "node": ">=8"
718 | }
719 | },
720 | "node_modules/diff": {
721 | "version": "4.0.2",
722 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
723 | "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
724 | "dev": true,
725 | "engines": {
726 | "node": ">=0.3.1"
727 | }
728 | },
729 | "node_modules/dir-glob": {
730 | "version": "3.0.1",
731 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
732 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
733 | "dev": true,
734 | "dependencies": {
735 | "path-type": "^4.0.0"
736 | },
737 | "engines": {
738 | "node": ">=8"
739 | }
740 | },
741 | "node_modules/dotenv": {
742 | "version": "16.3.1",
743 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz",
744 | "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==",
745 | "engines": {
746 | "node": ">=12"
747 | },
748 | "funding": {
749 | "url": "https://github.com/motdotla/dotenv?sponsor=1"
750 | }
751 | },
752 | "node_modules/eastasianwidth": {
753 | "version": "0.2.0",
754 | "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
755 | "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
756 | "dev": true
757 | },
758 | "node_modules/ecdsa-sig-formatter": {
759 | "version": "1.0.11",
760 | "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
761 | "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
762 | "dependencies": {
763 | "safe-buffer": "^5.0.1"
764 | }
765 | },
766 | "node_modules/emoji-regex": {
767 | "version": "8.0.0",
768 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
769 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
770 | },
771 | "node_modules/end-of-stream": {
772 | "version": "1.4.4",
773 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
774 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
775 | "dependencies": {
776 | "once": "^1.4.0"
777 | }
778 | },
779 | "node_modules/event-target-shim": {
780 | "version": "5.0.1",
781 | "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
782 | "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
783 | "engines": {
784 | "node": ">=6"
785 | }
786 | },
787 | "node_modules/events": {
788 | "version": "3.3.0",
789 | "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
790 | "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
791 | "engines": {
792 | "node": ">=0.8.x"
793 | }
794 | },
795 | "node_modules/fast-copy": {
796 | "version": "3.0.1",
797 | "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.1.tgz",
798 | "integrity": "sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA=="
799 | },
800 | "node_modules/fast-glob": {
801 | "version": "3.3.1",
802 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
803 | "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
804 | "dev": true,
805 | "dependencies": {
806 | "@nodelib/fs.stat": "^2.0.2",
807 | "@nodelib/fs.walk": "^1.2.3",
808 | "glob-parent": "^5.1.2",
809 | "merge2": "^1.3.0",
810 | "micromatch": "^4.0.4"
811 | },
812 | "engines": {
813 | "node": ">=8.6.0"
814 | }
815 | },
816 | "node_modules/fast-redact": {
817 | "version": "3.3.0",
818 | "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.3.0.tgz",
819 | "integrity": "sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==",
820 | "engines": {
821 | "node": ">=6"
822 | }
823 | },
824 | "node_modules/fast-safe-stringify": {
825 | "version": "2.1.1",
826 | "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
827 | "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="
828 | },
829 | "node_modules/fastq": {
830 | "version": "1.15.0",
831 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
832 | "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
833 | "dev": true,
834 | "dependencies": {
835 | "reusify": "^1.0.4"
836 | }
837 | },
838 | "node_modules/file-uri-to-path": {
839 | "version": "1.0.0",
840 | "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
841 | "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
842 | },
843 | "node_modules/fill-range": {
844 | "version": "7.0.1",
845 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
846 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
847 | "dev": true,
848 | "dependencies": {
849 | "to-regex-range": "^5.0.1"
850 | },
851 | "engines": {
852 | "node": ">=8"
853 | }
854 | },
855 | "node_modules/foreground-child": {
856 | "version": "3.1.1",
857 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
858 | "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
859 | "dev": true,
860 | "dependencies": {
861 | "cross-spawn": "^7.0.0",
862 | "signal-exit": "^4.0.1"
863 | },
864 | "engines": {
865 | "node": ">=14"
866 | },
867 | "funding": {
868 | "url": "https://github.com/sponsors/isaacs"
869 | }
870 | },
871 | "node_modules/foreground-child/node_modules/signal-exit": {
872 | "version": "4.1.0",
873 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
874 | "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
875 | "dev": true,
876 | "engines": {
877 | "node": ">=14"
878 | },
879 | "funding": {
880 | "url": "https://github.com/sponsors/isaacs"
881 | }
882 | },
883 | "node_modules/fs-minipass": {
884 | "version": "2.1.0",
885 | "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
886 | "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
887 | "dependencies": {
888 | "minipass": "^3.0.0"
889 | },
890 | "engines": {
891 | "node": ">= 8"
892 | }
893 | },
894 | "node_modules/fs-minipass/node_modules/minipass": {
895 | "version": "3.3.6",
896 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
897 | "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
898 | "dependencies": {
899 | "yallist": "^4.0.0"
900 | },
901 | "engines": {
902 | "node": ">=8"
903 | }
904 | },
905 | "node_modules/fs.realpath": {
906 | "version": "1.0.0",
907 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
908 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
909 | },
910 | "node_modules/fsevents": {
911 | "version": "2.3.3",
912 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
913 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
914 | "dev": true,
915 | "hasInstallScript": true,
916 | "optional": true,
917 | "os": [
918 | "darwin"
919 | ],
920 | "engines": {
921 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
922 | }
923 | },
924 | "node_modules/gauge": {
925 | "version": "3.0.2",
926 | "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
927 | "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
928 | "dependencies": {
929 | "aproba": "^1.0.3 || ^2.0.0",
930 | "color-support": "^1.1.2",
931 | "console-control-strings": "^1.0.0",
932 | "has-unicode": "^2.0.1",
933 | "object-assign": "^4.1.1",
934 | "signal-exit": "^3.0.0",
935 | "string-width": "^4.2.3",
936 | "strip-ansi": "^6.0.1",
937 | "wide-align": "^1.1.2"
938 | },
939 | "engines": {
940 | "node": ">=10"
941 | }
942 | },
943 | "node_modules/glob": {
944 | "version": "8.1.0",
945 | "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
946 | "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
947 | "dependencies": {
948 | "fs.realpath": "^1.0.0",
949 | "inflight": "^1.0.4",
950 | "inherits": "2",
951 | "minimatch": "^5.0.1",
952 | "once": "^1.3.0"
953 | },
954 | "engines": {
955 | "node": ">=12"
956 | },
957 | "funding": {
958 | "url": "https://github.com/sponsors/isaacs"
959 | }
960 | },
961 | "node_modules/glob-parent": {
962 | "version": "5.1.2",
963 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
964 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
965 | "dev": true,
966 | "dependencies": {
967 | "is-glob": "^4.0.1"
968 | },
969 | "engines": {
970 | "node": ">= 6"
971 | }
972 | },
973 | "node_modules/glob/node_modules/brace-expansion": {
974 | "version": "2.0.1",
975 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
976 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
977 | "dependencies": {
978 | "balanced-match": "^1.0.0"
979 | }
980 | },
981 | "node_modules/glob/node_modules/minimatch": {
982 | "version": "5.1.6",
983 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
984 | "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
985 | "dependencies": {
986 | "brace-expansion": "^2.0.1"
987 | },
988 | "engines": {
989 | "node": ">=10"
990 | }
991 | },
992 | "node_modules/globby": {
993 | "version": "11.1.0",
994 | "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
995 | "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
996 | "dev": true,
997 | "dependencies": {
998 | "array-union": "^2.1.0",
999 | "dir-glob": "^3.0.1",
1000 | "fast-glob": "^3.2.9",
1001 | "ignore": "^5.2.0",
1002 | "merge2": "^1.4.1",
1003 | "slash": "^3.0.0"
1004 | },
1005 | "engines": {
1006 | "node": ">=10"
1007 | },
1008 | "funding": {
1009 | "url": "https://github.com/sponsors/sindresorhus"
1010 | }
1011 | },
1012 | "node_modules/has-flag": {
1013 | "version": "3.0.0",
1014 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1015 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
1016 | "dev": true,
1017 | "engines": {
1018 | "node": ">=4"
1019 | }
1020 | },
1021 | "node_modules/has-unicode": {
1022 | "version": "2.0.1",
1023 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
1024 | "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
1025 | },
1026 | "node_modules/help-me": {
1027 | "version": "4.2.0",
1028 | "resolved": "https://registry.npmjs.org/help-me/-/help-me-4.2.0.tgz",
1029 | "integrity": "sha512-TAOnTB8Tz5Dw8penUuzHVrKNKlCIbwwbHnXraNJxPwf8LRtE2HlM84RYuezMFcwOJmoYOCWVDyJ8TQGxn9PgxA==",
1030 | "dependencies": {
1031 | "glob": "^8.0.0",
1032 | "readable-stream": "^3.6.0"
1033 | }
1034 | },
1035 | "node_modules/help-me/node_modules/readable-stream": {
1036 | "version": "3.6.2",
1037 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
1038 | "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
1039 | "dependencies": {
1040 | "inherits": "^2.0.3",
1041 | "string_decoder": "^1.1.1",
1042 | "util-deprecate": "^1.0.1"
1043 | },
1044 | "engines": {
1045 | "node": ">= 6"
1046 | }
1047 | },
1048 | "node_modules/https-proxy-agent": {
1049 | "version": "5.0.1",
1050 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
1051 | "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
1052 | "dependencies": {
1053 | "agent-base": "6",
1054 | "debug": "4"
1055 | },
1056 | "engines": {
1057 | "node": ">= 6"
1058 | }
1059 | },
1060 | "node_modules/https-proxy-agent/node_modules/debug": {
1061 | "version": "4.3.4",
1062 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1063 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1064 | "dependencies": {
1065 | "ms": "2.1.2"
1066 | },
1067 | "engines": {
1068 | "node": ">=6.0"
1069 | },
1070 | "peerDependenciesMeta": {
1071 | "supports-color": {
1072 | "optional": true
1073 | }
1074 | }
1075 | },
1076 | "node_modules/https-proxy-agent/node_modules/ms": {
1077 | "version": "2.1.2",
1078 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1079 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1080 | },
1081 | "node_modules/ieee754": {
1082 | "version": "1.2.1",
1083 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
1084 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
1085 | "funding": [
1086 | {
1087 | "type": "github",
1088 | "url": "https://github.com/sponsors/feross"
1089 | },
1090 | {
1091 | "type": "patreon",
1092 | "url": "https://www.patreon.com/feross"
1093 | },
1094 | {
1095 | "type": "consulting",
1096 | "url": "https://feross.org/support"
1097 | }
1098 | ]
1099 | },
1100 | "node_modules/ignore": {
1101 | "version": "5.2.4",
1102 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
1103 | "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
1104 | "dev": true,
1105 | "engines": {
1106 | "node": ">= 4"
1107 | }
1108 | },
1109 | "node_modules/ignore-by-default": {
1110 | "version": "1.0.1",
1111 | "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
1112 | "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==",
1113 | "dev": true
1114 | },
1115 | "node_modules/inflight": {
1116 | "version": "1.0.6",
1117 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1118 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
1119 | "dependencies": {
1120 | "once": "^1.3.0",
1121 | "wrappy": "1"
1122 | }
1123 | },
1124 | "node_modules/inherits": {
1125 | "version": "2.0.4",
1126 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1127 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
1128 | },
1129 | "node_modules/ip": {
1130 | "version": "1.1.8",
1131 | "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz",
1132 | "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg=="
1133 | },
1134 | "node_modules/is-binary-path": {
1135 | "version": "2.1.0",
1136 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
1137 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
1138 | "dev": true,
1139 | "dependencies": {
1140 | "binary-extensions": "^2.0.0"
1141 | },
1142 | "engines": {
1143 | "node": ">=8"
1144 | }
1145 | },
1146 | "node_modules/is-extglob": {
1147 | "version": "2.1.1",
1148 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1149 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
1150 | "dev": true,
1151 | "engines": {
1152 | "node": ">=0.10.0"
1153 | }
1154 | },
1155 | "node_modules/is-fullwidth-code-point": {
1156 | "version": "3.0.0",
1157 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
1158 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
1159 | "engines": {
1160 | "node": ">=8"
1161 | }
1162 | },
1163 | "node_modules/is-glob": {
1164 | "version": "4.0.3",
1165 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
1166 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
1167 | "dev": true,
1168 | "dependencies": {
1169 | "is-extglob": "^2.1.1"
1170 | },
1171 | "engines": {
1172 | "node": ">=0.10.0"
1173 | }
1174 | },
1175 | "node_modules/is-number": {
1176 | "version": "7.0.0",
1177 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1178 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
1179 | "dev": true,
1180 | "engines": {
1181 | "node": ">=0.12.0"
1182 | }
1183 | },
1184 | "node_modules/isexe": {
1185 | "version": "2.0.0",
1186 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1187 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
1188 | "dev": true
1189 | },
1190 | "node_modules/jackspeak": {
1191 | "version": "2.3.6",
1192 | "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
1193 | "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
1194 | "dev": true,
1195 | "dependencies": {
1196 | "@isaacs/cliui": "^8.0.2"
1197 | },
1198 | "engines": {
1199 | "node": ">=14"
1200 | },
1201 | "funding": {
1202 | "url": "https://github.com/sponsors/isaacs"
1203 | },
1204 | "optionalDependencies": {
1205 | "@pkgjs/parseargs": "^0.11.0"
1206 | }
1207 | },
1208 | "node_modules/joycon": {
1209 | "version": "3.1.1",
1210 | "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz",
1211 | "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==",
1212 | "engines": {
1213 | "node": ">=10"
1214 | }
1215 | },
1216 | "node_modules/json5": {
1217 | "version": "2.2.3",
1218 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
1219 | "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
1220 | "dev": true,
1221 | "bin": {
1222 | "json5": "lib/cli.js"
1223 | },
1224 | "engines": {
1225 | "node": ">=6"
1226 | }
1227 | },
1228 | "node_modules/jsonwebtoken": {
1229 | "version": "9.0.2",
1230 | "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz",
1231 | "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==",
1232 | "dependencies": {
1233 | "jws": "^3.2.2",
1234 | "lodash.includes": "^4.3.0",
1235 | "lodash.isboolean": "^3.0.3",
1236 | "lodash.isinteger": "^4.0.4",
1237 | "lodash.isnumber": "^3.0.3",
1238 | "lodash.isplainobject": "^4.0.6",
1239 | "lodash.isstring": "^4.0.1",
1240 | "lodash.once": "^4.0.0",
1241 | "ms": "^2.1.1",
1242 | "semver": "^7.5.4"
1243 | },
1244 | "engines": {
1245 | "node": ">=12",
1246 | "npm": ">=6"
1247 | }
1248 | },
1249 | "node_modules/jsonwebtoken/node_modules/ms": {
1250 | "version": "2.1.3",
1251 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1252 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
1253 | },
1254 | "node_modules/jwa": {
1255 | "version": "1.4.1",
1256 | "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
1257 | "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
1258 | "dependencies": {
1259 | "buffer-equal-constant-time": "1.0.1",
1260 | "ecdsa-sig-formatter": "1.0.11",
1261 | "safe-buffer": "^5.0.1"
1262 | }
1263 | },
1264 | "node_modules/jws": {
1265 | "version": "3.2.2",
1266 | "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
1267 | "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
1268 | "dependencies": {
1269 | "jwa": "^1.4.1",
1270 | "safe-buffer": "^5.0.1"
1271 | }
1272 | },
1273 | "node_modules/lodash.includes": {
1274 | "version": "4.3.0",
1275 | "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
1276 | "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w=="
1277 | },
1278 | "node_modules/lodash.isboolean": {
1279 | "version": "3.0.3",
1280 | "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
1281 | "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg=="
1282 | },
1283 | "node_modules/lodash.isinteger": {
1284 | "version": "4.0.4",
1285 | "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
1286 | "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA=="
1287 | },
1288 | "node_modules/lodash.isnumber": {
1289 | "version": "3.0.3",
1290 | "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
1291 | "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw=="
1292 | },
1293 | "node_modules/lodash.isplainobject": {
1294 | "version": "4.0.6",
1295 | "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
1296 | "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA=="
1297 | },
1298 | "node_modules/lodash.isstring": {
1299 | "version": "4.0.1",
1300 | "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
1301 | "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw=="
1302 | },
1303 | "node_modules/lodash.once": {
1304 | "version": "4.1.1",
1305 | "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
1306 | "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg=="
1307 | },
1308 | "node_modules/lru-cache": {
1309 | "version": "6.0.0",
1310 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
1311 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
1312 | "dependencies": {
1313 | "yallist": "^4.0.0"
1314 | },
1315 | "engines": {
1316 | "node": ">=10"
1317 | }
1318 | },
1319 | "node_modules/make-dir": {
1320 | "version": "3.1.0",
1321 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
1322 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
1323 | "dependencies": {
1324 | "semver": "^6.0.0"
1325 | },
1326 | "engines": {
1327 | "node": ">=8"
1328 | },
1329 | "funding": {
1330 | "url": "https://github.com/sponsors/sindresorhus"
1331 | }
1332 | },
1333 | "node_modules/make-dir/node_modules/semver": {
1334 | "version": "6.3.1",
1335 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
1336 | "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
1337 | "bin": {
1338 | "semver": "bin/semver.js"
1339 | }
1340 | },
1341 | "node_modules/make-error": {
1342 | "version": "1.3.6",
1343 | "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
1344 | "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
1345 | "dev": true
1346 | },
1347 | "node_modules/merge2": {
1348 | "version": "1.4.1",
1349 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
1350 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
1351 | "dev": true,
1352 | "engines": {
1353 | "node": ">= 8"
1354 | }
1355 | },
1356 | "node_modules/micromatch": {
1357 | "version": "4.0.5",
1358 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
1359 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
1360 | "dev": true,
1361 | "dependencies": {
1362 | "braces": "^3.0.2",
1363 | "picomatch": "^2.3.1"
1364 | },
1365 | "engines": {
1366 | "node": ">=8.6"
1367 | }
1368 | },
1369 | "node_modules/minimatch": {
1370 | "version": "3.1.2",
1371 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1372 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1373 | "dependencies": {
1374 | "brace-expansion": "^1.1.7"
1375 | },
1376 | "engines": {
1377 | "node": "*"
1378 | }
1379 | },
1380 | "node_modules/minimist": {
1381 | "version": "1.2.8",
1382 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
1383 | "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
1384 | "funding": {
1385 | "url": "https://github.com/sponsors/ljharb"
1386 | }
1387 | },
1388 | "node_modules/minipass": {
1389 | "version": "5.0.0",
1390 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
1391 | "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
1392 | "engines": {
1393 | "node": ">=8"
1394 | }
1395 | },
1396 | "node_modules/minizlib": {
1397 | "version": "2.1.2",
1398 | "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
1399 | "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
1400 | "dependencies": {
1401 | "minipass": "^3.0.0",
1402 | "yallist": "^4.0.0"
1403 | },
1404 | "engines": {
1405 | "node": ">= 8"
1406 | }
1407 | },
1408 | "node_modules/minizlib/node_modules/minipass": {
1409 | "version": "3.3.6",
1410 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
1411 | "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
1412 | "dependencies": {
1413 | "yallist": "^4.0.0"
1414 | },
1415 | "engines": {
1416 | "node": ">=8"
1417 | }
1418 | },
1419 | "node_modules/mkdirp": {
1420 | "version": "1.0.4",
1421 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
1422 | "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
1423 | "bin": {
1424 | "mkdirp": "bin/cmd.js"
1425 | },
1426 | "engines": {
1427 | "node": ">=10"
1428 | }
1429 | },
1430 | "node_modules/mylas": {
1431 | "version": "2.1.13",
1432 | "resolved": "https://registry.npmjs.org/mylas/-/mylas-2.1.13.tgz",
1433 | "integrity": "sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg==",
1434 | "dev": true,
1435 | "engines": {
1436 | "node": ">=12.0.0"
1437 | },
1438 | "funding": {
1439 | "type": "github",
1440 | "url": "https://github.com/sponsors/raouldeheer"
1441 | }
1442 | },
1443 | "node_modules/node-addon-api": {
1444 | "version": "4.3.0",
1445 | "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz",
1446 | "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ=="
1447 | },
1448 | "node_modules/node-fetch": {
1449 | "version": "2.7.0",
1450 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
1451 | "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
1452 | "dependencies": {
1453 | "whatwg-url": "^5.0.0"
1454 | },
1455 | "engines": {
1456 | "node": "4.x || >=6.0.0"
1457 | },
1458 | "peerDependencies": {
1459 | "encoding": "^0.1.0"
1460 | },
1461 | "peerDependenciesMeta": {
1462 | "encoding": {
1463 | "optional": true
1464 | }
1465 | }
1466 | },
1467 | "node_modules/nodemon": {
1468 | "version": "3.0.1",
1469 | "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.0.1.tgz",
1470 | "integrity": "sha512-g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw==",
1471 | "dev": true,
1472 | "dependencies": {
1473 | "chokidar": "^3.5.2",
1474 | "debug": "^3.2.7",
1475 | "ignore-by-default": "^1.0.1",
1476 | "minimatch": "^3.1.2",
1477 | "pstree.remy": "^1.1.8",
1478 | "semver": "^7.5.3",
1479 | "simple-update-notifier": "^2.0.0",
1480 | "supports-color": "^5.5.0",
1481 | "touch": "^3.1.0",
1482 | "undefsafe": "^2.0.5"
1483 | },
1484 | "bin": {
1485 | "nodemon": "bin/nodemon.js"
1486 | },
1487 | "engines": {
1488 | "node": ">=10"
1489 | },
1490 | "funding": {
1491 | "type": "opencollective",
1492 | "url": "https://opencollective.com/nodemon"
1493 | }
1494 | },
1495 | "node_modules/nodemon/node_modules/debug": {
1496 | "version": "3.2.7",
1497 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
1498 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
1499 | "dev": true,
1500 | "dependencies": {
1501 | "ms": "^2.1.1"
1502 | }
1503 | },
1504 | "node_modules/nodemon/node_modules/ms": {
1505 | "version": "2.1.3",
1506 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1507 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
1508 | "dev": true
1509 | },
1510 | "node_modules/nofilter": {
1511 | "version": "3.1.0",
1512 | "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz",
1513 | "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==",
1514 | "engines": {
1515 | "node": ">=12.19"
1516 | }
1517 | },
1518 | "node_modules/nopt": {
1519 | "version": "5.0.0",
1520 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
1521 | "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
1522 | "dependencies": {
1523 | "abbrev": "1"
1524 | },
1525 | "bin": {
1526 | "nopt": "bin/nopt.js"
1527 | },
1528 | "engines": {
1529 | "node": ">=6"
1530 | }
1531 | },
1532 | "node_modules/normalize-path": {
1533 | "version": "3.0.0",
1534 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1535 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
1536 | "dev": true,
1537 | "engines": {
1538 | "node": ">=0.10.0"
1539 | }
1540 | },
1541 | "node_modules/npmlog": {
1542 | "version": "5.0.1",
1543 | "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz",
1544 | "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
1545 | "dependencies": {
1546 | "are-we-there-yet": "^2.0.0",
1547 | "console-control-strings": "^1.1.0",
1548 | "gauge": "^3.0.0",
1549 | "set-blocking": "^2.0.0"
1550 | }
1551 | },
1552 | "node_modules/object-assign": {
1553 | "version": "4.1.1",
1554 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1555 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
1556 | "engines": {
1557 | "node": ">=0.10.0"
1558 | }
1559 | },
1560 | "node_modules/on-exit-leak-free": {
1561 | "version": "2.1.2",
1562 | "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz",
1563 | "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==",
1564 | "engines": {
1565 | "node": ">=14.0.0"
1566 | }
1567 | },
1568 | "node_modules/once": {
1569 | "version": "1.4.0",
1570 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1571 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
1572 | "dependencies": {
1573 | "wrappy": "1"
1574 | }
1575 | },
1576 | "node_modules/path-is-absolute": {
1577 | "version": "1.0.1",
1578 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1579 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
1580 | "engines": {
1581 | "node": ">=0.10.0"
1582 | }
1583 | },
1584 | "node_modules/path-key": {
1585 | "version": "3.1.1",
1586 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
1587 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
1588 | "dev": true,
1589 | "engines": {
1590 | "node": ">=8"
1591 | }
1592 | },
1593 | "node_modules/path-scurry": {
1594 | "version": "1.10.1",
1595 | "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
1596 | "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
1597 | "dev": true,
1598 | "dependencies": {
1599 | "lru-cache": "^9.1.1 || ^10.0.0",
1600 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
1601 | },
1602 | "engines": {
1603 | "node": ">=16 || 14 >=14.17"
1604 | },
1605 | "funding": {
1606 | "url": "https://github.com/sponsors/isaacs"
1607 | }
1608 | },
1609 | "node_modules/path-scurry/node_modules/lru-cache": {
1610 | "version": "10.0.1",
1611 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz",
1612 | "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==",
1613 | "dev": true,
1614 | "engines": {
1615 | "node": "14 || >=16.14"
1616 | }
1617 | },
1618 | "node_modules/path-type": {
1619 | "version": "4.0.0",
1620 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
1621 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
1622 | "dev": true,
1623 | "engines": {
1624 | "node": ">=8"
1625 | }
1626 | },
1627 | "node_modules/picomatch": {
1628 | "version": "2.3.1",
1629 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
1630 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
1631 | "dev": true,
1632 | "engines": {
1633 | "node": ">=8.6"
1634 | },
1635 | "funding": {
1636 | "url": "https://github.com/sponsors/jonschlinkert"
1637 | }
1638 | },
1639 | "node_modules/pino": {
1640 | "version": "8.16.1",
1641 | "resolved": "https://registry.npmjs.org/pino/-/pino-8.16.1.tgz",
1642 | "integrity": "sha512-3bKsVhBmgPjGV9pyn4fO/8RtoVDR8ssW1ev819FsRXlRNgW8gR/9Kx+gCK4UPWd4JjrRDLWpzd/pb1AyWm3MGA==",
1643 | "dependencies": {
1644 | "atomic-sleep": "^1.0.0",
1645 | "fast-redact": "^3.1.1",
1646 | "on-exit-leak-free": "^2.1.0",
1647 | "pino-abstract-transport": "v1.1.0",
1648 | "pino-std-serializers": "^6.0.0",
1649 | "process-warning": "^2.0.0",
1650 | "quick-format-unescaped": "^4.0.3",
1651 | "real-require": "^0.2.0",
1652 | "safe-stable-stringify": "^2.3.1",
1653 | "sonic-boom": "^3.7.0",
1654 | "thread-stream": "^2.0.0"
1655 | },
1656 | "bin": {
1657 | "pino": "bin.js"
1658 | }
1659 | },
1660 | "node_modules/pino-abstract-transport": {
1661 | "version": "1.1.0",
1662 | "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.1.0.tgz",
1663 | "integrity": "sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==",
1664 | "dependencies": {
1665 | "readable-stream": "^4.0.0",
1666 | "split2": "^4.0.0"
1667 | }
1668 | },
1669 | "node_modules/pino-pretty": {
1670 | "version": "10.2.3",
1671 | "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-10.2.3.tgz",
1672 | "integrity": "sha512-4jfIUc8TC1GPUfDyMSlW1STeORqkoxec71yhxIpLDQapUu8WOuoz2TTCoidrIssyz78LZC69whBMPIKCMbi3cw==",
1673 | "dependencies": {
1674 | "colorette": "^2.0.7",
1675 | "dateformat": "^4.6.3",
1676 | "fast-copy": "^3.0.0",
1677 | "fast-safe-stringify": "^2.1.1",
1678 | "help-me": "^4.0.1",
1679 | "joycon": "^3.1.1",
1680 | "minimist": "^1.2.6",
1681 | "on-exit-leak-free": "^2.1.0",
1682 | "pino-abstract-transport": "^1.0.0",
1683 | "pump": "^3.0.0",
1684 | "readable-stream": "^4.0.0",
1685 | "secure-json-parse": "^2.4.0",
1686 | "sonic-boom": "^3.0.0",
1687 | "strip-json-comments": "^3.1.1"
1688 | },
1689 | "bin": {
1690 | "pino-pretty": "bin.js"
1691 | }
1692 | },
1693 | "node_modules/pino-std-serializers": {
1694 | "version": "6.2.2",
1695 | "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz",
1696 | "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA=="
1697 | },
1698 | "node_modules/plimit-lit": {
1699 | "version": "1.6.1",
1700 | "resolved": "https://registry.npmjs.org/plimit-lit/-/plimit-lit-1.6.1.tgz",
1701 | "integrity": "sha512-B7+VDyb8Tl6oMJT9oSO2CW8XC/T4UcJGrwOVoNGwOQsQYhlpfajmrMj5xeejqaASq3V/EqThyOeATEOMuSEXiA==",
1702 | "dev": true,
1703 | "dependencies": {
1704 | "queue-lit": "^1.5.1"
1705 | },
1706 | "engines": {
1707 | "node": ">=12"
1708 | }
1709 | },
1710 | "node_modules/process": {
1711 | "version": "0.11.10",
1712 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
1713 | "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
1714 | "engines": {
1715 | "node": ">= 0.6.0"
1716 | }
1717 | },
1718 | "node_modules/process-warning": {
1719 | "version": "2.3.0",
1720 | "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.3.0.tgz",
1721 | "integrity": "sha512-N6mp1+2jpQr3oCFMz6SeHRGbv6Slb20bRhj4v3xR99HqNToAcOe1MFOp4tytyzOfJn+QtN8Rf7U/h2KAn4kC6g=="
1722 | },
1723 | "node_modules/property-expr": {
1724 | "version": "2.0.6",
1725 | "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz",
1726 | "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA=="
1727 | },
1728 | "node_modules/pstree.remy": {
1729 | "version": "1.1.8",
1730 | "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
1731 | "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==",
1732 | "dev": true
1733 | },
1734 | "node_modules/pulsar-client": {
1735 | "version": "1.9.0",
1736 | "resolved": "https://registry.npmjs.org/pulsar-client/-/pulsar-client-1.9.0.tgz",
1737 | "integrity": "sha512-Xnrl0y2O+yhWs8Vuln/R1TfLL8YVh61+WC3Sk2jghzVex3ZQZyjqUx2hn2G6N76WXHXIsguNF/h2N3ok7Yo+CA==",
1738 | "hasInstallScript": true,
1739 | "dependencies": {
1740 | "@mapbox/node-pre-gyp": "^1.0.9",
1741 | "bindings": "^1.5.0",
1742 | "node-addon-api": "^4.3.0"
1743 | },
1744 | "engines": {
1745 | "node": ">=10.16.0"
1746 | }
1747 | },
1748 | "node_modules/pump": {
1749 | "version": "3.0.0",
1750 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
1751 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
1752 | "dependencies": {
1753 | "end-of-stream": "^1.1.0",
1754 | "once": "^1.3.1"
1755 | }
1756 | },
1757 | "node_modules/queue-lit": {
1758 | "version": "1.5.2",
1759 | "resolved": "https://registry.npmjs.org/queue-lit/-/queue-lit-1.5.2.tgz",
1760 | "integrity": "sha512-tLc36IOPeMAubu8BkW8YDBV+WyIgKlYU7zUNs0J5Vk9skSZ4JfGlPOqplP0aHdfv7HL0B2Pg6nwiq60Qc6M2Hw==",
1761 | "dev": true,
1762 | "engines": {
1763 | "node": ">=12"
1764 | }
1765 | },
1766 | "node_modules/queue-microtask": {
1767 | "version": "1.2.3",
1768 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
1769 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
1770 | "dev": true,
1771 | "funding": [
1772 | {
1773 | "type": "github",
1774 | "url": "https://github.com/sponsors/feross"
1775 | },
1776 | {
1777 | "type": "patreon",
1778 | "url": "https://www.patreon.com/feross"
1779 | },
1780 | {
1781 | "type": "consulting",
1782 | "url": "https://feross.org/support"
1783 | }
1784 | ]
1785 | },
1786 | "node_modules/quick-format-unescaped": {
1787 | "version": "4.0.4",
1788 | "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz",
1789 | "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg=="
1790 | },
1791 | "node_modules/readable-stream": {
1792 | "version": "4.4.2",
1793 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz",
1794 | "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==",
1795 | "dependencies": {
1796 | "abort-controller": "^3.0.0",
1797 | "buffer": "^6.0.3",
1798 | "events": "^3.3.0",
1799 | "process": "^0.11.10",
1800 | "string_decoder": "^1.3.0"
1801 | },
1802 | "engines": {
1803 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1804 | }
1805 | },
1806 | "node_modules/readdirp": {
1807 | "version": "3.6.0",
1808 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
1809 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
1810 | "dev": true,
1811 | "dependencies": {
1812 | "picomatch": "^2.2.1"
1813 | },
1814 | "engines": {
1815 | "node": ">=8.10.0"
1816 | }
1817 | },
1818 | "node_modules/real-require": {
1819 | "version": "0.2.0",
1820 | "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz",
1821 | "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==",
1822 | "engines": {
1823 | "node": ">= 12.13.0"
1824 | }
1825 | },
1826 | "node_modules/reusify": {
1827 | "version": "1.0.4",
1828 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
1829 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
1830 | "dev": true,
1831 | "engines": {
1832 | "iojs": ">=1.0.0",
1833 | "node": ">=0.10.0"
1834 | }
1835 | },
1836 | "node_modules/rimraf": {
1837 | "version": "5.0.5",
1838 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz",
1839 | "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==",
1840 | "dev": true,
1841 | "dependencies": {
1842 | "glob": "^10.3.7"
1843 | },
1844 | "bin": {
1845 | "rimraf": "dist/esm/bin.mjs"
1846 | },
1847 | "engines": {
1848 | "node": ">=14"
1849 | },
1850 | "funding": {
1851 | "url": "https://github.com/sponsors/isaacs"
1852 | }
1853 | },
1854 | "node_modules/rimraf/node_modules/brace-expansion": {
1855 | "version": "2.0.1",
1856 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
1857 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
1858 | "dev": true,
1859 | "dependencies": {
1860 | "balanced-match": "^1.0.0"
1861 | }
1862 | },
1863 | "node_modules/rimraf/node_modules/glob": {
1864 | "version": "10.3.10",
1865 | "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
1866 | "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
1867 | "dev": true,
1868 | "dependencies": {
1869 | "foreground-child": "^3.1.0",
1870 | "jackspeak": "^2.3.5",
1871 | "minimatch": "^9.0.1",
1872 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
1873 | "path-scurry": "^1.10.1"
1874 | },
1875 | "bin": {
1876 | "glob": "dist/esm/bin.mjs"
1877 | },
1878 | "engines": {
1879 | "node": ">=16 || 14 >=14.17"
1880 | },
1881 | "funding": {
1882 | "url": "https://github.com/sponsors/isaacs"
1883 | }
1884 | },
1885 | "node_modules/rimraf/node_modules/minimatch": {
1886 | "version": "9.0.3",
1887 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
1888 | "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
1889 | "dev": true,
1890 | "dependencies": {
1891 | "brace-expansion": "^2.0.1"
1892 | },
1893 | "engines": {
1894 | "node": ">=16 || 14 >=14.17"
1895 | },
1896 | "funding": {
1897 | "url": "https://github.com/sponsors/isaacs"
1898 | }
1899 | },
1900 | "node_modules/run-parallel": {
1901 | "version": "1.2.0",
1902 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
1903 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
1904 | "dev": true,
1905 | "funding": [
1906 | {
1907 | "type": "github",
1908 | "url": "https://github.com/sponsors/feross"
1909 | },
1910 | {
1911 | "type": "patreon",
1912 | "url": "https://www.patreon.com/feross"
1913 | },
1914 | {
1915 | "type": "consulting",
1916 | "url": "https://feross.org/support"
1917 | }
1918 | ],
1919 | "dependencies": {
1920 | "queue-microtask": "^1.2.2"
1921 | }
1922 | },
1923 | "node_modules/safe-buffer": {
1924 | "version": "5.2.1",
1925 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1926 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
1927 | "funding": [
1928 | {
1929 | "type": "github",
1930 | "url": "https://github.com/sponsors/feross"
1931 | },
1932 | {
1933 | "type": "patreon",
1934 | "url": "https://www.patreon.com/feross"
1935 | },
1936 | {
1937 | "type": "consulting",
1938 | "url": "https://feross.org/support"
1939 | }
1940 | ]
1941 | },
1942 | "node_modules/safe-stable-stringify": {
1943 | "version": "2.4.3",
1944 | "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz",
1945 | "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==",
1946 | "engines": {
1947 | "node": ">=10"
1948 | }
1949 | },
1950 | "node_modules/secure-json-parse": {
1951 | "version": "2.7.0",
1952 | "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz",
1953 | "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw=="
1954 | },
1955 | "node_modules/semver": {
1956 | "version": "7.5.4",
1957 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
1958 | "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
1959 | "dependencies": {
1960 | "lru-cache": "^6.0.0"
1961 | },
1962 | "bin": {
1963 | "semver": "bin/semver.js"
1964 | },
1965 | "engines": {
1966 | "node": ">=10"
1967 | }
1968 | },
1969 | "node_modules/set-blocking": {
1970 | "version": "2.0.0",
1971 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
1972 | "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
1973 | },
1974 | "node_modules/shebang-command": {
1975 | "version": "2.0.0",
1976 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
1977 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
1978 | "dev": true,
1979 | "dependencies": {
1980 | "shebang-regex": "^3.0.0"
1981 | },
1982 | "engines": {
1983 | "node": ">=8"
1984 | }
1985 | },
1986 | "node_modules/shebang-regex": {
1987 | "version": "3.0.0",
1988 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
1989 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
1990 | "dev": true,
1991 | "engines": {
1992 | "node": ">=8"
1993 | }
1994 | },
1995 | "node_modules/signal-exit": {
1996 | "version": "3.0.7",
1997 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
1998 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
1999 | },
2000 | "node_modules/simple-update-notifier": {
2001 | "version": "2.0.0",
2002 | "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz",
2003 | "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==",
2004 | "dev": true,
2005 | "dependencies": {
2006 | "semver": "^7.5.3"
2007 | },
2008 | "engines": {
2009 | "node": ">=10"
2010 | }
2011 | },
2012 | "node_modules/slash": {
2013 | "version": "3.0.0",
2014 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
2015 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
2016 | "dev": true,
2017 | "engines": {
2018 | "node": ">=8"
2019 | }
2020 | },
2021 | "node_modules/sonic-boom": {
2022 | "version": "3.7.0",
2023 | "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.7.0.tgz",
2024 | "integrity": "sha512-IudtNvSqA/ObjN97tfgNmOKyDOs4dNcg4cUUsHDebqsgb8wGBBwb31LIgShNO8fye0dFI52X1+tFoKKI6Rq1Gg==",
2025 | "dependencies": {
2026 | "atomic-sleep": "^1.0.0"
2027 | }
2028 | },
2029 | "node_modules/split2": {
2030 | "version": "4.2.0",
2031 | "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
2032 | "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
2033 | "engines": {
2034 | "node": ">= 10.x"
2035 | }
2036 | },
2037 | "node_modules/string_decoder": {
2038 | "version": "1.3.0",
2039 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
2040 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
2041 | "dependencies": {
2042 | "safe-buffer": "~5.2.0"
2043 | }
2044 | },
2045 | "node_modules/string-width": {
2046 | "version": "4.2.3",
2047 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
2048 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
2049 | "dependencies": {
2050 | "emoji-regex": "^8.0.0",
2051 | "is-fullwidth-code-point": "^3.0.0",
2052 | "strip-ansi": "^6.0.1"
2053 | },
2054 | "engines": {
2055 | "node": ">=8"
2056 | }
2057 | },
2058 | "node_modules/string-width-cjs": {
2059 | "name": "string-width",
2060 | "version": "4.2.3",
2061 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
2062 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
2063 | "dev": true,
2064 | "dependencies": {
2065 | "emoji-regex": "^8.0.0",
2066 | "is-fullwidth-code-point": "^3.0.0",
2067 | "strip-ansi": "^6.0.1"
2068 | },
2069 | "engines": {
2070 | "node": ">=8"
2071 | }
2072 | },
2073 | "node_modules/strip-ansi": {
2074 | "version": "6.0.1",
2075 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2076 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2077 | "dependencies": {
2078 | "ansi-regex": "^5.0.1"
2079 | },
2080 | "engines": {
2081 | "node": ">=8"
2082 | }
2083 | },
2084 | "node_modules/strip-ansi-cjs": {
2085 | "name": "strip-ansi",
2086 | "version": "6.0.1",
2087 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2088 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2089 | "dev": true,
2090 | "dependencies": {
2091 | "ansi-regex": "^5.0.1"
2092 | },
2093 | "engines": {
2094 | "node": ">=8"
2095 | }
2096 | },
2097 | "node_modules/strip-bom": {
2098 | "version": "3.0.0",
2099 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
2100 | "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
2101 | "dev": true,
2102 | "engines": {
2103 | "node": ">=4"
2104 | }
2105 | },
2106 | "node_modules/strip-json-comments": {
2107 | "version": "3.1.1",
2108 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
2109 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
2110 | "engines": {
2111 | "node": ">=8"
2112 | },
2113 | "funding": {
2114 | "url": "https://github.com/sponsors/sindresorhus"
2115 | }
2116 | },
2117 | "node_modules/supports-color": {
2118 | "version": "5.5.0",
2119 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
2120 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
2121 | "dev": true,
2122 | "dependencies": {
2123 | "has-flag": "^3.0.0"
2124 | },
2125 | "engines": {
2126 | "node": ">=4"
2127 | }
2128 | },
2129 | "node_modules/tar": {
2130 | "version": "6.2.0",
2131 | "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
2132 | "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
2133 | "dependencies": {
2134 | "chownr": "^2.0.0",
2135 | "fs-minipass": "^2.0.0",
2136 | "minipass": "^5.0.0",
2137 | "minizlib": "^2.1.1",
2138 | "mkdirp": "^1.0.3",
2139 | "yallist": "^4.0.0"
2140 | },
2141 | "engines": {
2142 | "node": ">=10"
2143 | }
2144 | },
2145 | "node_modules/thread-stream": {
2146 | "version": "2.4.1",
2147 | "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.4.1.tgz",
2148 | "integrity": "sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg==",
2149 | "dependencies": {
2150 | "real-require": "^0.2.0"
2151 | }
2152 | },
2153 | "node_modules/tiny-case": {
2154 | "version": "1.0.3",
2155 | "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz",
2156 | "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q=="
2157 | },
2158 | "node_modules/to-regex-range": {
2159 | "version": "5.0.1",
2160 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
2161 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
2162 | "dev": true,
2163 | "dependencies": {
2164 | "is-number": "^7.0.0"
2165 | },
2166 | "engines": {
2167 | "node": ">=8.0"
2168 | }
2169 | },
2170 | "node_modules/toposort": {
2171 | "version": "2.0.2",
2172 | "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz",
2173 | "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg=="
2174 | },
2175 | "node_modules/touch": {
2176 | "version": "3.1.0",
2177 | "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
2178 | "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
2179 | "dev": true,
2180 | "dependencies": {
2181 | "nopt": "~1.0.10"
2182 | },
2183 | "bin": {
2184 | "nodetouch": "bin/nodetouch.js"
2185 | }
2186 | },
2187 | "node_modules/touch/node_modules/nopt": {
2188 | "version": "1.0.10",
2189 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
2190 | "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==",
2191 | "dev": true,
2192 | "dependencies": {
2193 | "abbrev": "1"
2194 | },
2195 | "bin": {
2196 | "nopt": "bin/nopt.js"
2197 | },
2198 | "engines": {
2199 | "node": "*"
2200 | }
2201 | },
2202 | "node_modules/tr46": {
2203 | "version": "0.0.3",
2204 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
2205 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
2206 | },
2207 | "node_modules/ts-node": {
2208 | "version": "10.9.1",
2209 | "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
2210 | "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
2211 | "dev": true,
2212 | "dependencies": {
2213 | "@cspotcode/source-map-support": "^0.8.0",
2214 | "@tsconfig/node10": "^1.0.7",
2215 | "@tsconfig/node12": "^1.0.7",
2216 | "@tsconfig/node14": "^1.0.0",
2217 | "@tsconfig/node16": "^1.0.2",
2218 | "acorn": "^8.4.1",
2219 | "acorn-walk": "^8.1.1",
2220 | "arg": "^4.1.0",
2221 | "create-require": "^1.1.0",
2222 | "diff": "^4.0.1",
2223 | "make-error": "^1.1.1",
2224 | "v8-compile-cache-lib": "^3.0.1",
2225 | "yn": "3.1.1"
2226 | },
2227 | "bin": {
2228 | "ts-node": "dist/bin.js",
2229 | "ts-node-cwd": "dist/bin-cwd.js",
2230 | "ts-node-esm": "dist/bin-esm.js",
2231 | "ts-node-script": "dist/bin-script.js",
2232 | "ts-node-transpile-only": "dist/bin-transpile.js",
2233 | "ts-script": "dist/bin-script-deprecated.js"
2234 | },
2235 | "peerDependencies": {
2236 | "@swc/core": ">=1.2.50",
2237 | "@swc/wasm": ">=1.2.50",
2238 | "@types/node": "*",
2239 | "typescript": ">=2.7"
2240 | },
2241 | "peerDependenciesMeta": {
2242 | "@swc/core": {
2243 | "optional": true
2244 | },
2245 | "@swc/wasm": {
2246 | "optional": true
2247 | }
2248 | }
2249 | },
2250 | "node_modules/tsc-alias": {
2251 | "version": "1.8.8",
2252 | "resolved": "https://registry.npmjs.org/tsc-alias/-/tsc-alias-1.8.8.tgz",
2253 | "integrity": "sha512-OYUOd2wl0H858NvABWr/BoSKNERw3N9GTi3rHPK8Iv4O1UyUXIrTTOAZNHsjlVpXFOhpJBVARI1s+rzwLivN3Q==",
2254 | "dev": true,
2255 | "dependencies": {
2256 | "chokidar": "^3.5.3",
2257 | "commander": "^9.0.0",
2258 | "globby": "^11.0.4",
2259 | "mylas": "^2.1.9",
2260 | "normalize-path": "^3.0.0",
2261 | "plimit-lit": "^1.2.6"
2262 | },
2263 | "bin": {
2264 | "tsc-alias": "dist/bin/index.js"
2265 | }
2266 | },
2267 | "node_modules/tsconfig-paths": {
2268 | "version": "4.2.0",
2269 | "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz",
2270 | "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==",
2271 | "dev": true,
2272 | "dependencies": {
2273 | "json5": "^2.2.2",
2274 | "minimist": "^1.2.6",
2275 | "strip-bom": "^3.0.0"
2276 | },
2277 | "engines": {
2278 | "node": ">=6"
2279 | }
2280 | },
2281 | "node_modules/type-fest": {
2282 | "version": "2.19.0",
2283 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
2284 | "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
2285 | "engines": {
2286 | "node": ">=12.20"
2287 | },
2288 | "funding": {
2289 | "url": "https://github.com/sponsors/sindresorhus"
2290 | }
2291 | },
2292 | "node_modules/typescript": {
2293 | "version": "5.2.2",
2294 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
2295 | "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
2296 | "dev": true,
2297 | "bin": {
2298 | "tsc": "bin/tsc",
2299 | "tsserver": "bin/tsserver"
2300 | },
2301 | "engines": {
2302 | "node": ">=14.17"
2303 | }
2304 | },
2305 | "node_modules/undefsafe": {
2306 | "version": "2.0.5",
2307 | "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
2308 | "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==",
2309 | "dev": true
2310 | },
2311 | "node_modules/undici-types": {
2312 | "version": "5.26.5",
2313 | "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
2314 | "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
2315 | "dev": true
2316 | },
2317 | "node_modules/util-deprecate": {
2318 | "version": "1.0.2",
2319 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2320 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
2321 | },
2322 | "node_modules/v8-compile-cache-lib": {
2323 | "version": "3.0.1",
2324 | "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
2325 | "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
2326 | "dev": true
2327 | },
2328 | "node_modules/vary": {
2329 | "version": "1.1.2",
2330 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
2331 | "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
2332 | "engines": {
2333 | "node": ">= 0.8"
2334 | }
2335 | },
2336 | "node_modules/webidl-conversions": {
2337 | "version": "3.0.1",
2338 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
2339 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
2340 | },
2341 | "node_modules/whatwg-url": {
2342 | "version": "5.0.0",
2343 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
2344 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
2345 | "dependencies": {
2346 | "tr46": "~0.0.3",
2347 | "webidl-conversions": "^3.0.0"
2348 | }
2349 | },
2350 | "node_modules/which": {
2351 | "version": "2.0.2",
2352 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
2353 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
2354 | "dev": true,
2355 | "dependencies": {
2356 | "isexe": "^2.0.0"
2357 | },
2358 | "bin": {
2359 | "node-which": "bin/node-which"
2360 | },
2361 | "engines": {
2362 | "node": ">= 8"
2363 | }
2364 | },
2365 | "node_modules/wide-align": {
2366 | "version": "1.1.5",
2367 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
2368 | "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
2369 | "dependencies": {
2370 | "string-width": "^1.0.2 || 2 || 3 || 4"
2371 | }
2372 | },
2373 | "node_modules/wrap-ansi": {
2374 | "version": "8.1.0",
2375 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
2376 | "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
2377 | "dev": true,
2378 | "dependencies": {
2379 | "ansi-styles": "^6.1.0",
2380 | "string-width": "^5.0.1",
2381 | "strip-ansi": "^7.0.1"
2382 | },
2383 | "engines": {
2384 | "node": ">=12"
2385 | },
2386 | "funding": {
2387 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
2388 | }
2389 | },
2390 | "node_modules/wrap-ansi-cjs": {
2391 | "name": "wrap-ansi",
2392 | "version": "7.0.0",
2393 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
2394 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
2395 | "dev": true,
2396 | "dependencies": {
2397 | "ansi-styles": "^4.0.0",
2398 | "string-width": "^4.1.0",
2399 | "strip-ansi": "^6.0.0"
2400 | },
2401 | "engines": {
2402 | "node": ">=10"
2403 | },
2404 | "funding": {
2405 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
2406 | }
2407 | },
2408 | "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
2409 | "version": "4.3.0",
2410 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
2411 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
2412 | "dev": true,
2413 | "dependencies": {
2414 | "color-convert": "^2.0.1"
2415 | },
2416 | "engines": {
2417 | "node": ">=8"
2418 | },
2419 | "funding": {
2420 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
2421 | }
2422 | },
2423 | "node_modules/wrap-ansi/node_modules/ansi-regex": {
2424 | "version": "6.0.1",
2425 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
2426 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
2427 | "dev": true,
2428 | "engines": {
2429 | "node": ">=12"
2430 | },
2431 | "funding": {
2432 | "url": "https://github.com/chalk/ansi-regex?sponsor=1"
2433 | }
2434 | },
2435 | "node_modules/wrap-ansi/node_modules/emoji-regex": {
2436 | "version": "9.2.2",
2437 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
2438 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
2439 | "dev": true
2440 | },
2441 | "node_modules/wrap-ansi/node_modules/string-width": {
2442 | "version": "5.1.2",
2443 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
2444 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
2445 | "dev": true,
2446 | "dependencies": {
2447 | "eastasianwidth": "^0.2.0",
2448 | "emoji-regex": "^9.2.2",
2449 | "strip-ansi": "^7.0.1"
2450 | },
2451 | "engines": {
2452 | "node": ">=12"
2453 | },
2454 | "funding": {
2455 | "url": "https://github.com/sponsors/sindresorhus"
2456 | }
2457 | },
2458 | "node_modules/wrap-ansi/node_modules/strip-ansi": {
2459 | "version": "7.1.0",
2460 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
2461 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
2462 | "dev": true,
2463 | "dependencies": {
2464 | "ansi-regex": "^6.0.1"
2465 | },
2466 | "engines": {
2467 | "node": ">=12"
2468 | },
2469 | "funding": {
2470 | "url": "https://github.com/chalk/strip-ansi?sponsor=1"
2471 | }
2472 | },
2473 | "node_modules/wrappy": {
2474 | "version": "1.0.2",
2475 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2476 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
2477 | },
2478 | "node_modules/ws": {
2479 | "version": "8.14.2",
2480 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz",
2481 | "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==",
2482 | "engines": {
2483 | "node": ">=10.0.0"
2484 | },
2485 | "peerDependencies": {
2486 | "bufferutil": "^4.0.1",
2487 | "utf-8-validate": ">=5.0.2"
2488 | },
2489 | "peerDependenciesMeta": {
2490 | "bufferutil": {
2491 | "optional": true
2492 | },
2493 | "utf-8-validate": {
2494 | "optional": true
2495 | }
2496 | }
2497 | },
2498 | "node_modules/yallist": {
2499 | "version": "4.0.0",
2500 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
2501 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
2502 | },
2503 | "node_modules/yn": {
2504 | "version": "3.1.1",
2505 | "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
2506 | "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
2507 | "dev": true,
2508 | "engines": {
2509 | "node": ">=6"
2510 | }
2511 | },
2512 | "node_modules/yup": {
2513 | "version": "1.3.2",
2514 | "resolved": "https://registry.npmjs.org/yup/-/yup-1.3.2.tgz",
2515 | "integrity": "sha512-6KCM971iQtJ+/KUaHdrhVr2LDkfhBtFPRnsG1P8F4q3uUVQ2RfEM9xekpha9aA4GXWJevjM10eDcPQ1FfWlmaQ==",
2516 | "dependencies": {
2517 | "property-expr": "^2.0.5",
2518 | "tiny-case": "^1.0.3",
2519 | "toposort": "^2.0.2",
2520 | "type-fest": "^2.19.0"
2521 | }
2522 | }
2523 | }
2524 | }
2525 |
--------------------------------------------------------------------------------