From 203e8c258cc02bdc59da247b1a351155e99b42f4 Mon Sep 17 00:00:00 2001 From: modeco80 Date: Wed, 24 Jul 2024 04:22:31 -0400 Subject: [PATCH] backend: Port to superqemu --- .yarn/install-state.gz | Bin 0 -> 368405 bytes .yarnrc.yml | 1 + README.md | 3 - backend/package.json | 24 +- backend/src/SlotQemuDefs.ts | 5 +- backend/src/SocketComputerServer.ts | 12 +- backend/src/SocketVM.ts | 20 +- package.json | 16 +- qemu/package.json | 32 - qemu/src/QemuDisplay.ts | 148 - qemu/src/QemuUtil.ts | 73 - qemu/src/QemuVM.ts | 287 -- qemu/src/QmpClient.ts | 135 - qemu/src/index.ts | 3 - qemu/src/rfb/LICENSE | 21 - qemu/src/rfb/README.md | 11 - qemu/src/rfb/client.ts | 919 ---- qemu/src/rfb/constants.ts | 46 - qemu/src/rfb/decoders/copyrect.ts | 31 - qemu/src/rfb/decoders/decoder.ts | 7 - qemu/src/rfb/decoders/hextile.ts | 228 - qemu/src/rfb/decoders/raw.ts | 57 - qemu/src/rfb/decoders/util.ts | 19 - qemu/src/rfb/decoders/zrle.ts | 340 -- qemu/src/rfb/socketbuffer.ts | 134 - qemu/src/rfb/types.ts | 44 - qemu/tsconfig.json | 1 - shared/package.json | 20 +- webapp/package.json | 3 - yarn.lock | 7122 +++++++++++++++++---------- 30 files changed, 4465 insertions(+), 5297 deletions(-) create mode 100644 .yarn/install-state.gz create mode 100644 .yarnrc.yml delete mode 100644 qemu/package.json delete mode 100644 qemu/src/QemuDisplay.ts delete mode 100644 qemu/src/QemuUtil.ts delete mode 100644 qemu/src/QemuVM.ts delete mode 100644 qemu/src/QmpClient.ts delete mode 100644 qemu/src/index.ts delete mode 100644 qemu/src/rfb/LICENSE delete mode 100644 qemu/src/rfb/README.md delete mode 100644 qemu/src/rfb/client.ts delete mode 100644 qemu/src/rfb/constants.ts delete mode 100644 qemu/src/rfb/decoders/copyrect.ts delete mode 100644 qemu/src/rfb/decoders/decoder.ts delete mode 100644 qemu/src/rfb/decoders/hextile.ts delete mode 100644 qemu/src/rfb/decoders/raw.ts delete mode 100644 qemu/src/rfb/decoders/util.ts delete mode 100644 qemu/src/rfb/decoders/zrle.ts delete mode 100644 qemu/src/rfb/socketbuffer.ts delete mode 100644 qemu/src/rfb/types.ts delete mode 120000 qemu/tsconfig.json diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz new file mode 100644 index 0000000000000000000000000000000000000000..eaa46f031f99633c2f4f02ea7d1619f29964ebad GIT binary patch literal 368405 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�Bym_bgR$j|!mGxTAZDu@Y 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

6i>Qay-Ng1jg}gLtRr3I~ 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 BzC{24 literal 0 HcmV?d00001 diff --git a/.yarnrc.yml b/.yarnrc.yml new file mode 100644 index 0000000..3186f3f --- /dev/null +++ b/.yarnrc.yml @@ -0,0 +1 @@ +nodeLinker: node-modules diff --git a/README.md b/README.md index 4f56499..22fcdec 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,9 @@ socket.computer, except not powered by socket.io anymore, and with many less bugs. This monorepo builds - The backend -- A QEMU VM runner package (feel free to steal it) - Shared components - The webapp (TODO) - - ## Building ```bash diff --git a/backend/package.json b/backend/package.json index 2f9029c..4d5b861 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,35 +1,29 @@ { "name": "@socketcomputer/backend", "version": "1.0.0", - "private": "true", "description": "socket 2.0 backend", - "type": "module", - "scripts": { "build": "parcel build src/index.ts --target node" }, - "author": "modeco80", "license": "MIT", - "targets": { - "node":{ - "context": "node", - "outputFormat": "esmodule" - } + "node": { + "context": "node", + "outputFormat": "esmodule" + } }, - "dependencies": { + "@computernewb/superqemu": "^0.1.0", "@fastify/websocket": "^10.0.1", - "@socketcomputer/qemu": "*", "@socketcomputer/shared": "*", + "canvas": "^2.11.2", "fastify": "^4.26.2", - "mnemonist": "^0.39.8", - "canvas": "^2.11.2" + "mnemonist": "^0.39.8" }, "devDependencies": { - "parcel": "^2.12.0", - "@types/ws": "^8.5.10" + "@types/ws": "^8.5.10", + "parcel": "^2.12.0" } } diff --git a/backend/src/SlotQemuDefs.ts b/backend/src/SlotQemuDefs.ts index b791efb..8de0896 100644 --- a/backend/src/SlotQemuDefs.ts +++ b/backend/src/SlotQemuDefs.ts @@ -2,7 +2,7 @@ // which are standardized across all crusttest slots. // (This file has been bastardized for socket2) -import { QemuVmDefinition } from '@socketcomputer/qemu'; +import { QemuVmDefinition } from '@computernewb/superqemu'; const kQemuPath = '/srv/collabvm/qemu/bin/qemu-system-x86_64'; @@ -63,6 +63,7 @@ export function Slot_PCDef( return { id: 'socketvm1', - command: qCommand + command: qCommand.join(' '), + snapshot: true }; } diff --git a/backend/src/SocketComputerServer.ts b/backend/src/SocketComputerServer.ts index e5473ac..410f347 100644 --- a/backend/src/SocketComputerServer.ts +++ b/backend/src/SocketComputerServer.ts @@ -1,4 +1,4 @@ -import { QemuVmDefinition, QemuVM, setSnapshot } from '@socketcomputer/qemu'; +import { QemuVmDefinition, QemuVM } from '@computernewb/superqemu'; import { Slot_PCDef } from './SlotQemuDefs.js'; import { FastifyInstance, fastify, FastifyRequest } from 'fastify'; @@ -6,6 +6,7 @@ import * as fastifyWebsocket from '@fastify/websocket'; import { SocketVM } from './SocketVM.js'; import { VMUser } from './VMUser.js'; +import pino from 'pino'; // CONFIG types (not used yet) export type SocketComputerConfig_VM = { @@ -26,6 +27,10 @@ export class SocketComputerServer { exposeHeadRoutes: false }); + private logger = pino({ + name: "Sc2Server" + }); + Init() { this.fastify.register(fastifyWebsocket.default); this.fastify.register(async (app, _) => this.Routes(app), {}); @@ -33,7 +38,7 @@ export class SocketComputerServer { async Listen() { try { - console.log('Backend starting...'); + this.logger.info('Backend starting...'); // create and start teh VMxorz!!!! await this.InitVM(); @@ -43,6 +48,7 @@ export class SocketComputerServer { port: 4050 }); } catch (err) { + this.logger.error(err, 'Error listening'); return; } } @@ -56,7 +62,6 @@ export class SocketComputerServer { this.vm = new SocketVM(new QemuVM(slotDef)); // Boot it up - setSnapshot(true); await this.vm.Start(); } @@ -75,6 +80,7 @@ export class SocketComputerServer { return; } + self.vm?.AddUser(new VMUser(connection, address)); }); } diff --git a/backend/src/SocketVM.ts b/backend/src/SocketVM.ts index 212a0ac..dbd304b 100644 --- a/backend/src/SocketVM.ts +++ b/backend/src/SocketVM.ts @@ -1,13 +1,14 @@ import { EventEmitter } from 'node:events'; import { TurnQueue, UserTimeTuple, kTurnTimeSeconds } from './TurnQueue.js'; import { VMUser } from './VMUser.js'; -import { QemuDisplay, QemuVM, VMState } from '@socketcomputer/qemu'; +import { QemuDisplay, QemuVM, VMState } from '@computernewb/superqemu'; import { ExtendableTimer } from './ExtendableTimer.js'; import { kMaxUserNameLength } from '@socketcomputer/shared'; import * as Shared from '@socketcomputer/shared'; import { Canvas } from 'canvas'; +import pino from 'pino'; // for the maximum socket.io experience const kCanvasJpegQuality = 0.25; @@ -24,18 +25,22 @@ export class SocketVM extends EventEmitter { private users: Array = []; private queue: TurnQueue = new TurnQueue(); + private logger = pino({ + name: 'Sc2VM' + }); + constructor(vm: QemuVM) { super(); this.vm = vm; this.timer.on('expired', async () => { // bye bye! - console.log(`[SocketVM] VM timer expired, resetting..`); + this.logger.info(`[SocketVM] VM timer expired, resetting..`); await this.vm.Stop(); }); this.timer.on('expiry-near', async () => { - console.log(`[SocketVM] VM timer expires in 1 minute.`); + this.logger.info(`[SocketVM] VM timer expires in 1 minute.`); }); this.queue.on('turnQueue', (arr: Array) => { @@ -97,7 +102,7 @@ export class SocketVM extends EventEmitter { user.username = VMUser.GenerateName(); user.vm = this; - console.log(`[SocketVM] ${user.username} (IP ${user.address}) joined`); + this.logger.info({user: user.username, ip: user.address}, 'User joined'); await this.SendInitialScreen(user); @@ -129,7 +134,7 @@ export class SocketVM extends EventEmitter { } async RemUser(user: VMUser) { - console.log(`[SocketVM] ${user.username} (IP ${user.address}) left`); + this.logger.info({user: user.username, ip: user.address}, 'User left'); this.users.splice(this.users.indexOf(user), 1); this.queue.TryRemove(user); @@ -148,7 +153,7 @@ export class SocketVM extends EventEmitter { this.OnMessage(user, await Shared.MessageDecoder.ReadMessage(messageBuffer, false)); } catch (err) { // Log the error and close the connection - console.log(`Error decoding message, closing connection: (user ${user.username}, ip ${user.address})`, err); + this.logger.error({ err: err, user: user.username, ip: user.address }, `Error decoding message, closing connection`); user.connection.close(); return; } @@ -203,8 +208,7 @@ export class SocketVM extends EventEmitter { let buffers = this.MakeFullScreenData(); - for (let buffer of buffers) - await self.BroadcastBuffer(buffer); + for (let buffer of buffers) await self.BroadcastBuffer(buffer); }); this.display?.on('rect', async (x: number, y: number, rect: ImageData) => { diff --git a/package.json b/package.json index 212e6ea..2871a23 100644 --- a/package.json +++ b/package.json @@ -1,28 +1,28 @@ { "name": "socketcomputer-repo", - "private": "true", "workspaces": [ "shared", "backend", - "qemu", "webapp" ], "scripts": { - "build": "yarn build:service && yarn build:frontend", - "build:service": "npm -w shared run build && npm -w qemu run build && npm -w backend run build", + "build": "yarn build:service && yarn build:frontend", + "build:service": "npm -w shared run build && npm -w backend run build", "build:frontend": "npm -w shared run build && npm -w webapp run build" }, "dependencies": { - "canvas": "^2.11.2" + "canvas": "^2.11.2", + "pino": "^9.3.1" }, "devDependencies": { - "parcel": "^2.12.0", "@parcel/packager-ts": "2.12.0", - "@parcel/transformer-sass": "^2.12.0", + "@parcel/transformer-sass": "^2.12.0", "@parcel/transformer-typescript-types": "2.12.0", "@types/node": "^20.12.2", + "parcel": "^2.12.0", "prettier": "^3.2.5", "stream-http": "^3.1.0", "typescript": "^5.4.3" - } + }, + "packageManager": "yarn@4.3.1" } diff --git a/qemu/package.json b/qemu/package.json deleted file mode 100644 index 12deea8..0000000 --- a/qemu/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "@socketcomputer/qemu", - "version": "1.0.0", - "private": "true", - "description": "QEMU runtime for socketcomputer backend", - "exports": "./dist/index.js", - "types": "./dist/index.d.ts", - "type": "module", - "scripts": { - "build": "parcel build src/index.ts --target node --target types" - }, - "author": "", - "license": "MIT", - "targets": { - "types": {}, - "node": { - "context": "node", - "isLibrary": true, - "outputFormat": "esmodule" - } - }, - "dependencies": { - "canvas": "^2.11.2", - "execa": "^8.0.1", - "split": "^1.0.1" - }, - "devDependencies": { - "parcel": "^2.12.0", - "@types/node": "^20.12.2", - "@types/split": "^1.0.5" - } -} diff --git a/qemu/src/QemuDisplay.ts b/qemu/src/QemuDisplay.ts deleted file mode 100644 index e6ce31a..0000000 --- a/qemu/src/QemuDisplay.ts +++ /dev/null @@ -1,148 +0,0 @@ -import { VncClient } from './rfb/client.js'; -import { EventEmitter } from 'node:events'; -import { Canvas, CanvasRenderingContext2D, createImageData } from 'canvas'; -import { BatchRects, Size, Rect } from './QemuUtil.js'; - -const kQemuFps = 30; - -export type VncRect = { - x: number; - y: number; - width: number; - height: number; -}; - -// events: -// -// 'resize' -> (w, h) -> done when resize occurs -// 'rect' -> (x, y, ImageData) -> framebuffer -// 'frame' -> () -> done at end of frame - -export class QemuDisplay extends EventEmitter { - private displayVnc = new VncClient({ - debug: false, - fps: kQemuFps, - - encodings: [ - VncClient.consts.encodings.raw, - - //VncClient.consts.encodings.pseudoQemuAudio, - VncClient.consts.encodings.pseudoDesktopSize - // For now? - //VncClient.consts.encodings.pseudoCursor - ] - }); - - private displayCanvas: Canvas = new Canvas(640, 480); - private displayCtx: CanvasRenderingContext2D = this.displayCanvas.getContext('2d'); - - private vncShouldReconnect: boolean = false; - private vncSocketPath: string; - - constructor(socketPath: string) { - super(); - - this.vncSocketPath = socketPath; - - this.displayVnc.on('connectTimeout', () => { - this.Reconnect(); - }); - - this.displayVnc.on('authError', () => { - this.Reconnect(); - }); - - this.displayVnc.on('disconnect', () => { - this.Reconnect(); - }); - - this.displayVnc.on('closed', () => { - this.Reconnect(); - }); - - this.displayVnc.on('firstFrameUpdate', () => { - // apparently this library is this good. - // at least it's better than the two others which exist. - this.displayVnc.changeFps(kQemuFps); - this.emit('connected'); - this.displayCanvas.width = this.displayVnc.clientWidth; - this.displayCanvas.height = this.displayVnc.clientHeight; - this.emit('resize', this.displayVnc.clientWidth, this.displayVnc.clientHeight); - this.emit('rect', 0, 0, this.displayCtx.getImageData(0, 0, this.displayVnc.clientWidth, this.displayVnc.clientHeight)); - this.emit('frame'); - }); - - this.displayVnc.on('desktopSizeChanged', ({ width, height }) => { - this.emit('resize', width, height); - this.displayCanvas.width = width; - this.displayCanvas.height = height; - }); - - let rects: Rect[] = []; - - this.displayVnc.on('rectUpdateProcessed', (rect) => { - rects.push(rect); - }); - - this.displayVnc.on('frameUpdated', (fb) => { - this.displayCtx.putImageData(createImageData(new Uint8ClampedArray(fb.buffer), this.displayVnc.clientWidth, this.displayVnc.clientHeight), 0, 0); - - // TODO: optimize the rects a bit. using guacamole's cheap method - // of just flushing the whole screen if the area of all the updated rects gets too big - // might just work. - //for (const rect of rects) { - // this.emit('rect', rect.x, rect.y, this.displayCtx.getImageData(rect.x, rect.y, rect.width, rect.height)); - //} - - // cvmts batcher - let batched = BatchRects(this.Size(), rects); - this.emit('rect', batched.x, batched.y, this.displayCtx.getImageData(batched.x, batched.y, batched.width, batched.height)); - - rects = []; - - this.emit('frame'); - }); - } - - private Reconnect() { - if (this.displayVnc.connected) return; - - if (!this.vncShouldReconnect) return; - - // TODO: this should also give up after a max tries count - // if we fail after max tries, emit a event - - this.displayVnc.connect({ - path: this.vncSocketPath - }); - } - - Connect() { - this.vncShouldReconnect = true; - this.Reconnect(); - } - - Disconnect() { - this.vncShouldReconnect = false; - this.displayVnc.disconnect(); - } - - GetCanvas() { - return this.displayCanvas; - } - - Size(): Size { - return { - width: this.displayVnc.clientWidth, - height: this.displayVnc.clientHeight - }; - } - - MouseEvent(x: number, y: number, buttons: number) { - this.displayVnc.sendPointerEvent(x, y, buttons); - } - - KeyboardEvent(keysym: number, pressed: boolean) { - this.displayVnc.sendKeyEvent(keysym, pressed); - } -} diff --git a/qemu/src/QemuUtil.ts b/qemu/src/QemuUtil.ts deleted file mode 100644 index 4754b88..0000000 --- a/qemu/src/QemuUtil.ts +++ /dev/null @@ -1,73 +0,0 @@ -// QEMU utility functions -// most of these are just for randomly generated/temporary files - -import { execa } from 'execa'; -import * as crypto from 'node:crypto'; - -export type Size = { width: number, height: number }; -export type Rect = {height:number,width:number,x:number,y:number}; - -export function BatchRects(size: Size, rects: Array): Rect { - var mergedX = size.width; - var mergedY = size.height; - var mergedHeight = 0; - var mergedWidth = 0; - - // can't batch these - if(rects.length == 0) { - return { - x: 0, - y: 0, - width: size.width, - height: size.height - }; - } - - if(rects.length == 1) { - if(rects[0].width == size.width && rects[0].height == size.height) { - return rects[0]; - } - } - - rects.forEach((r) => { - if (r.x < mergedX) mergedX = r.x; - if (r.y < mergedY) mergedY = r.y; - }); - - rects.forEach(r => { - if (((r.height + r.y) - mergedY) > mergedHeight) mergedHeight = (r.height + r.y) - mergedY; - if (((r.width + r.x) - mergedX) > mergedWidth) mergedWidth = (r.width + r.x) - mergedX; - }); - - return { - x: mergedX, - y: mergedY, - width: mergedWidth, - height: mergedHeight - }; -} - -// Generates a random unicast/local MAC address. -export async function GenMacAddress(): Promise { - return new Promise((res, rej) => { - crypto.randomBytes(6, (err, buf) => { - if (err) rej(err); - - // Modify byte 0 to make this MAC address proper - let rawByte0 = buf.readUInt8(0); - rawByte0 &= ~0b00000011; // keep most of the bits set from what we got, except for the Unicast and Local bits - rawByte0 |= 1 << 1; // Always set the Local bit. Leave the Unicast bit unset. - buf.writeUInt8(rawByte0); - - // this makes me wanna cry but it seems to working - res( - buf - .toString('hex') - .split(/(.{2})/) - .filter((o) => o) - .join(':') - ); - }); - }); -} - diff --git a/qemu/src/QemuVM.ts b/qemu/src/QemuVM.ts deleted file mode 100644 index 16459e6..0000000 --- a/qemu/src/QemuVM.ts +++ /dev/null @@ -1,287 +0,0 @@ -import { execa, ExecaChildProcess } from 'execa'; -import { EventEmitter } from 'events'; -import QmpClient from './QmpClient.js'; -import { QemuDisplay } from './QemuDisplay.js'; -import { unlink } from 'node:fs/promises'; - -export enum VMState { - Stopped, - Starting, - Started, - Stopping -} - -export type QemuVmDefinition = { - id: string; - command: string[]; -}; - -/// Temporary path base (for UNIX sockets/etc.) -const kVmTmpPathBase = `/tmp`; - -/// The max amount of times QMP connection is allowed to fail before -/// the VM is forcefully stopped. -const kMaxFailCount = 5; - -let gVMShouldSnapshot = false; - -async function Sleep(ms: number) { - return new Promise((resolve) => setTimeout(resolve, ms)); -} - -export function setSnapshot(val: boolean) { - gVMShouldSnapshot = val; -} - -export class QemuVM extends EventEmitter { - private state = VMState.Stopped; - - private qmpInstance: QmpClient | null = null; - private qmpConnected = false; - private qmpFailCount = 0; - - private qemuProcess: ExecaChildProcess | null = null; - private qemuRunning = false; - - private display: QemuDisplay | null = null; - - private definition: QemuVmDefinition; - private addedCommandShit = false; - - constructor(def: QemuVmDefinition) { - super(); - this.definition = def; - } - - async Start() { - // Don't start while either trying to start or starting. - if (this.state == VMState.Started || this.state == VMState.Starting) return; - - - var cmd = this.definition.command; - - // build additional command line statements to enable qmp/vnc over unix sockets - if(!this.addedCommandShit) { - cmd.push('-no-shutdown'); - if(gVMShouldSnapshot) - cmd.push('-snapshot'); - cmd.push(`-qmp`); - cmd.push(`unix:${this.GetQmpPath()},server,nowait`); - cmd.push(`-vnc`); - cmd.push(`unix:${this.GetVncPath()}`); - this.addedCommandShit = true; - } - - this.VMLog(`Starting QEMU with command \"${cmd.join(' ')}\"`); - await this.StartQemu(cmd); - } - - async Stop() { - // This is called in certain lifecycle places where we can't safely assert state yet - //this.AssertState(VMState.Started, 'cannot use QemuVM#Stop on a non-started VM'); - - // Start indicating we're stopping, so we don't - // erroneously start trying to restart everything - // we're going to tear down in this function call. - this.SetState(VMState.Stopping); - - // Kill the QEMU process and QMP/display connections if they are running. - await this.DisconnectQmp(); - this.DisconnectDisplay(); - await this.StopQemu(); - } - - async Reset() { - this.AssertState(VMState.Started, 'cannot use QemuVM#Reset on a non-started VM'); - - // let code know the VM is going to reset - // N.B: In the crusttest world, a reset simply amounts to a - // mean cold reboot of the qemu process basically - this.emit('reset'); - await this.Stop(); - await Sleep(500); - await this.Start(); - } - - async QmpCommand(command: string, args: any | null): Promise { - return await this.qmpInstance?.Execute(command, args); - } - - async MonitorCommand(command: string) { - this.AssertState(VMState.Started, 'cannot use QemuVM#MonitorCommand on a non-started VM'); - return await this.QmpCommand('human-monitor-command', { - 'command-line': command - }); - } - - async ChangeRemovableMedia(deviceName: string, imagePath: string): Promise { - this.AssertState(VMState.Started, 'cannot use QemuVM#ChangeRemovableMedia on a non-started VM'); - // N.B: if this throws, the code which called this should handle the error accordingly - await this.QmpCommand('blockdev-change-medium', { - device: deviceName, // techinically deprecated, but I don't feel like figuring out QOM path just for a simple function - filename: imagePath - }); - } - - async EjectRemovableMedia(deviceName: string) { - this.AssertState(VMState.Started, 'cannot use QemuVM#EjectRemovableMedia on a non-started VM'); - await this.QmpCommand('eject', { - device: deviceName - }); - } - - GetDisplay() { - return this.display; - } - - /// Private fun bits :) - - private VMLog(...args: any[]) { - // TODO: hook this into a logger of some sort - console.log(`[QemuVM] [${this.definition.id}] ${args.join('')}`); - } - - private AssertState(stateShouldBe: VMState, message: string) { - if (this.state !== stateShouldBe) throw new Error(message); - } - - private SetState(state: VMState) { - this.state = state; - this.emit('statechange', this.state); - } - - private GetQmpPath() { - return `${kVmTmpPathBase}/socket2-${this.definition.id}-ctrl`; - } - - private GetVncPath() { - return `${kVmTmpPathBase}/socket2-${this.definition.id}-vnc`; - } - - private async StartQemu(split: Array) { - let self = this; - - this.SetState(VMState.Starting); - - // Start QEMU - this.qemuProcess = execa(split[0], split.slice(1)); - - this.qemuProcess.on('spawn', async () => { - self.qemuRunning = true; - await Sleep(500); - await self.ConnectQmp(); - }); - - this.qemuProcess.on('exit', async (code) => { - self.qemuRunning = false; - console.log("qemu process go boom") - - // ? - if (self.qmpConnected) { - await self.DisconnectQmp(); - } - - self.DisconnectDisplay(); - - if (self.state != VMState.Stopping) { - if (code == 0) { - await Sleep(500); - await self.StartQemu(split); - } else { - self.VMLog('QEMU exited with a non-zero exit code. This usually means an error in the command line. Stopping VM.'); - await self.Stop(); - } - } else { - this.SetState(VMState.Stopped); - } - }); - } - - private async StopQemu() { - if (this.qemuRunning == true) this.qemuProcess?.kill('SIGKILL'); - } - - private async ConnectQmp() { - let self = this; - - if (!this.qmpConnected) { - self.qmpInstance = new QmpClient(); - - self.qmpInstance.on('close', async () => { - self.qmpConnected = false; - - // If we aren't stopping, then we do actually need to care QMP disconnected - if (self.state != VMState.Stopping) { - if (self.qmpFailCount++ < kMaxFailCount) { - this.VMLog(`Failed to connect to QMP ${self.qmpFailCount} times`); - await Sleep(500); - await self.ConnectQmp(); - } else { - this.VMLog(`Failed to connect to QMP ${self.qmpFailCount} times, giving up`); - await self.Stop(); - } - } - }); - - self.qmpInstance.on('event', async (ev) => { - switch (ev.event) { - // Handle the STOP event sent when using -no-shutdown - case 'STOP': - await self.qmpInstance?.Execute('system_reset'); - break; - case 'RESET': - self.VMLog('got a reset event!'); - await self.qmpInstance?.Execute('cont'); - break; - } - }); - - self.qmpInstance.on('qmp-ready', async (hadError) => { - self.VMLog('QMP ready'); - - self.display = new QemuDisplay(self.GetVncPath()); - self.display.Connect(); - - // QMP has been connected so the VM is ready to be considered started - self.qmpFailCount = 0; - self.qmpConnected = true; - self.SetState(VMState.Started); - }); - - try { - await Sleep(500); - this.qmpInstance?.ConnectUNIX(this.GetQmpPath()); - } catch (err) { - // just try again - await Sleep(500); - await this.ConnectQmp(); - } - } - } - - private async DisconnectDisplay() { - try { - this.display?.Disconnect(); - this.display = null; // disassociate with that display object. - - await unlink(this.GetVncPath()); - } catch (err) { - // oh well lol - } - } - - private async DisconnectQmp() { - if (this.qmpConnected) return; - if(this.qmpInstance == null) - return; - - this.qmpConnected = false; - this.qmpInstance.end(); - this.qmpInstance = null; - try { - await unlink(this.GetQmpPath()); - } catch(err) { - - } - } -} diff --git a/qemu/src/QmpClient.ts b/qemu/src/QmpClient.ts deleted file mode 100644 index df20613..0000000 --- a/qemu/src/QmpClient.ts +++ /dev/null @@ -1,135 +0,0 @@ -// This was originally based off the contents of the node-qemu-qmp package, -// but I've modified it possibly to the point where it could be treated as my own creation. - -import split from 'split'; - -import { Socket } from 'net'; - -export type QmpCallback = (err: Error | null, res: any | null) => void; - -type QmpCommandEntry = { - callback: QmpCallback | null; - id: number; -}; - -// TODO: Instead of the client "Is-A"ing a Socket, this should instead contain/store a Socket, -// (preferrably) passed by the user, to use for QMP communications. -// The client shouldn't have to know or care about the protocol, and it effectively hackily uses the fact -// Socket extends EventEmitter. - -export default class QmpClient extends Socket { - public qmpHandshakeData: any; - private commandEntries: QmpCommandEntry[] = []; - private lastID = 0; - - private ExecuteSync(command: string, args: any | null, callback: QmpCallback | null) { - let cmd: QmpCommandEntry = { - callback: callback, - id: ++this.lastID - }; - - let qmpOut: any = { - execute: command, - id: cmd.id - }; - - if (args) qmpOut['arguments'] = args; - - // Add stuff - this.commandEntries.push(cmd); - this.write(JSON.stringify(qmpOut)); - } - - // TODO: Make this function a bit more ergonomic? - async Execute(command: string, args: any | null = null): Promise { - return new Promise((res, rej) => { - this.ExecuteSync(command, args, (err, result) => { - if (err) rej(err); - res(result); - }); - }); - } - - private Handshake(callback: () => void) { - this.write( - JSON.stringify({ - execute: 'qmp_capabilities' - }) - ); - - this.once('data', (data) => { - // Once QEMU replies to us, the handshake is done. - // We do not negotiate anything special. - callback(); - }); - } - - // this can probably be made async - private ConnectImpl() { - let self = this; - - this.once('connect', () => { - this.removeAllListeners('error'); - }); - - this.once('error', (err) => { - // just rethrow lol - //throw err; - - console.log("you have pants: rules,", err); - }); - - this.once('data', (data) => { - // Handshake QMP with the server. - self.qmpHandshakeData = JSON.parse(data.toString('utf8')).QMP; - self.Handshake(() => { - // Now ready to parse QMP responses/events. - self.pipe(split(JSON.parse)) - .on('data', (json: any) => { - if (json == null) return self.end(); - - if (json.return || json.error) { - // Our handshake has a spurious return because we never assign it an ID, - // and it is gathered by this pipe for some reason I'm not quite sure about. - // So, just for safety's sake, don't process any return objects which don't have an ID attached to them. - if (json.id == null) return; - - let callbackEntry = this.commandEntries.find((entry) => entry.id === json.id); - let error: Error | null = json.error ? new Error(json.error.desc) : null; - - // we somehow didn't find a callback entry for this response. - // I don't know how. Techinically not an error..., but I guess you're not getting a reponse to whatever causes this to happen - if (callbackEntry == null) return; - - if (callbackEntry?.callback) callbackEntry.callback(error, json.return); - - // Remove the completed callback entry. - this.commandEntries.slice(this.commandEntries.indexOf(callbackEntry)); - } else if (json.event) { - this.emit('event', json); - } - }) - .on('error', () => { - // Give up. - return self.end(); - }); - this.emit('qmp-ready'); - }); - }); - - this.once('close', () => { - this.end(); - this.removeAllListeners('data'); // wow. good job bud. cool memory leak - }); - } - - Connect(host: string, port: number) { - super.connect(port, host); - this.ConnectImpl(); - } - - ConnectUNIX(path: string) { - super.connect(path); - this.ConnectImpl(); - } -} diff --git a/qemu/src/index.ts b/qemu/src/index.ts deleted file mode 100644 index 274f400..0000000 --- a/qemu/src/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './QemuDisplay.js'; -export * from './QemuUtil.js'; -export * from './QemuVM.js'; diff --git a/qemu/src/rfb/LICENSE b/qemu/src/rfb/LICENSE deleted file mode 100644 index 429bb0a..0000000 --- a/qemu/src/rfb/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -Copyright 2021 Filipe Calaça Barbosa -Copyright 2022 dither -Copyright 2023-2024 Lily Tsuru/modeco80 - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/qemu/src/rfb/README.md b/qemu/src/rfb/README.md deleted file mode 100644 index 63d7ad8..0000000 --- a/qemu/src/rfb/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Notice - -The source here was originally taken from a fork of [vnc-rfb-client](https://github.com/ayunami2000/vnc-rfb-client) made for the LucidVM project, available [here](https://github.com/lucidvm/rfb). - -It has been grossly modified for the usecases for the socket2 backend, but is more than likely usable to other clients. - -- converted to (strict) TypeScript; my initial port beforehand was not strict and it Sucked - - Also, actually use interfaces, and reduce the amount of code duplicated significantly in the rect decoders. -- all modules rewritten to use ESM -- some noisy debug prints removed -- (some, very tiny) code cleanup diff --git a/qemu/src/rfb/client.ts b/qemu/src/rfb/client.ts deleted file mode 100644 index 74c24b7..0000000 --- a/qemu/src/rfb/client.ts +++ /dev/null @@ -1,919 +0,0 @@ - -import { IRectDecoder } from './decoders/decoder.js'; -import { HextileDecoder } from './decoders/hextile.js'; -import { RawDecoder } from './decoders/raw.js'; -import { ZrleDecoder } from './decoders/zrle.js'; -// import { TightDecoder } from "./decoders/tight.js"; -import { CopyRectDecoder } from './decoders/copyrect.js'; - -import { EventEmitter } from 'node:events'; - -import { consts } from './constants.js'; - -import * as net from 'node:net'; -import * as crypto from 'node:crypto'; - -import { SocketBuffer } from './socketbuffer.js'; - -import { VncRectangle, Color3, PixelFormat, Cursor } from './types.js'; - -export class VncClient extends EventEmitter { - // These are in no particular order. - - public debug: boolean = false; - - private _connected: boolean = false; - private _authenticated: boolean = false; - private _version: string = ""; - private _password: string = ""; - - private _audioChannels: number = 2; - private _audioFrequency: number = 22050; - - private _rects: number = 0; - - private _decoders: Array = []; - - private _fps: number; - private _timerInterval: number; - private _timerPointer : NodeJS.Timeout|null = null; - - public fb: Buffer = Buffer.from([]); - - private _handshaked: boolean = false; - private _waitingServerInit: boolean = false; - private _expectingChallenge: boolean = false; - private _challengeResponseSent: boolean = false; - - private _set8BitColor: boolean = false; - private _frameBufferReady = false; - private _firstFrameReceived = false; - private _processingFrame = false; - - private _relativePointer: boolean = false; - - public bigEndianFlag: boolean = false; - - public clientWidth: number = 0; - public clientHeight: number = 0; - public clientName: string = ""; - - public pixelFormat: PixelFormat = { - bitsPerPixel: 0, - depth: 0, - bigEndianFlag: 0, - trueColorFlag: 0, - redMax: 0, - greenMax: 0, - blueMax: 0, - redShift: 0, - greenShift: 0, - blueShift: 0 - }; - - private _colorMap: Color3[] = []; - private _audioData: Buffer = Buffer.from([]); - - private _cursor: Cursor = { - width: 0, - height: 0, - x: 0, - y: 0, - cursorPixels: null, - bitmask: null, - posX: 0, - posY: 0 - }; - - public encodings: number[]; - - private _connection: net.Socket|null = null; - private _socketBuffer: SocketBuffer; - - static get consts() { - return { - encodings: consts.encodings - }; - } - - /** - * Return if client is connected - * @returns {boolean} - */ - get connected() { - return this._connected; - } - - /** - * Return if client is authenticated - * @returns {boolean} - */ - get authenticated() { - return this._authenticated; - } - - /** - * Return negotiated protocol version - * @returns {string} - */ - get protocolVersion() { - return this._version; - } - - /** - * Return the local port used by the client - * @returns {number} - */ - get localPort() { - return this._connection ? this._connection?.localPort : 0; - } - - constructor(options: any = { debug: false, fps: 0, encodings: [] }) { - super(); - - this._socketBuffer = new SocketBuffer(); - - this.resetState(); - this.debug = options.debug || false; - this._fps = Number(options.fps) || 0; - // Calculate interval to meet configured FPS - this._timerInterval = this._fps > 0 ? 1000 / this._fps : 0; - - // Default encodings - this.encodings = - options.encodings && options.encodings.length - ? options.encodings - : [consts.encodings.copyRect, consts.encodings.zrle, consts.encodings.hextile, consts.encodings.raw, consts.encodings.pseudoDesktopSize]; - - this._audioChannels = options.audioChannels || 2; - this._audioFrequency = options.audioFrequency || 22050; - - this._rects = 0; - - this._decoders[consts.encodings.raw] = new RawDecoder(); - // TODO: Implement tight encoding - // this._decoders[encodings.tight] = new tightDecoder(); - this._decoders[consts.encodings.zrle] = new ZrleDecoder(); - this._decoders[consts.encodings.copyRect] = new CopyRectDecoder(); - this._decoders[consts.encodings.hextile] = new HextileDecoder(); - - if (this._timerInterval) { - this._fbTimer(); - } - } - - /** - * Timer used to limit the rate of frame update requests according to configured FPS - * @private - */ - _fbTimer() { - this._timerPointer = setTimeout(() => { - this._fbTimer(); - if (this._firstFrameReceived && !this._processingFrame && this._fps > 0) { - this.requestFrameUpdate(); - } - }, this._timerInterval); - } - - /** - * Adjuste the configured FPS - * @param fps {number} - Number of update requests send by second - */ - changeFps(fps: number) { - if (!Number.isNaN(fps)) { - this._fps = Number(fps); - this._timerInterval = this._fps > 0 ? 1000 / this._fps : 0; - - if (this._timerPointer && !this._fps) { - // If FPS was zeroed stop the timer - clearTimeout(this._timerPointer); - this._timerPointer = null; - } else if (this._fps && !this._timerPointer) { - // If FPS was zero and is now set, start the timer - this._fbTimer(); - } - } else { - throw new Error('Invalid FPS. Must be a number.'); - } - } - - /** - * Starts the connection with the VNC server - * @param options - */ - connect( - options: any /* = { - host: '', - password: '', - path: '', - set8BitColor: false, - port: 5900 - } */ - ) { - if (options.password) { - this._password = options.password; - } - - this._set8BitColor = options.set8BitColor || false; - - if (options.path === null) { - if (!options.host) { - throw new Error('Host missing.'); - } - this._connection = net.connect(options.port || 5900, options.host); - - // disable nagle's algorithm for TCP - this._connection?.setNoDelay(); - } else { - // unix socket. bodged in but oh well - this._connection = net.connect(options.path); - } - - this._connection?.on('connect', () => { - this._connected = true; - this.emit('connected'); - }); - - this._connection?.on('close', () => { - this.resetState(); - this.emit('closed'); - }); - - this._connection?.on('timeout', () => { - this.emit('connectTimeout'); - }); - - this._connection?.on('error', (err) => { - this.emit('connectError', err); - }); - - this._connection?.on('data', async (data) => { - this._socketBuffer.pushData(data); - - if (!this._handshaked) { - this._handleHandshake(); - } else if (this._expectingChallenge) { - this._handleAuthChallenge(); - } else if (this._waitingServerInit) { - await this._handleServerInit(); - } else { - await this._handleData(); - } - }); - } - - /** - * Disconnect the client - */ - disconnect() { - if (this._connection) { - this._connection?.end(); - this.resetState(); - this.emit('disconnected'); - } - } - - /** - * Request the server a frame update - * @param full - If the server should send all the frame buffer or just the last changes - * @param incremental - Incremental number for not full requests - * @param x - X position of the update area desired, usually 0 - * @param y - Y position of the update area desired, usually 0 - * @param width - Width of the update area desired, usually client width - * @param height - Height of the update area desired, usually client height - */ - requestFrameUpdate(full = false, incremental = 1, x = 0, y = 0, width = this.clientWidth, height = this.clientHeight) { - if ((this._frameBufferReady || full) && this._connection && !this._rects) { - // Request data - const message = Buffer.alloc(10); - message.writeUInt8(3); // Message type - message.writeUInt8(full ? 0 : incremental, 1); // Incremental - message.writeUInt16BE(x, 2); // X-Position - message.writeUInt16BE(y, 4); // Y-Position - message.writeUInt16BE(width, 6); // Width - message.writeUInt16BE(height, 8); // Height - - this._connection?.write(message); - - this._frameBufferReady = true; - } - } - - /** - * Handle handshake msg - * @private - */ - _handleHandshake() { - // Handshake, negotiating protocol version - if (this._socketBuffer.toString() === consts.versionString.V3_003) { - this._log('Sending 3.3', true); - this._connection?.write(consts.versionString.V3_003); - this._version = '3.3'; - } else if (this._socketBuffer.toString() === consts.versionString.V3_007) { - this._log('Sending 3.7', true); - this._connection?.write(consts.versionString.V3_007); - this._version = '3.7'; - } else if (this._socketBuffer.toString() === consts.versionString.V3_008) { - this._log('Sending 3.8', true); - this._connection?.write(consts.versionString.V3_008); - this._version = '3.8'; - } else { - // Negotiating auth mechanism - this._handshaked = true; - if (this._socketBuffer.includes(0x02) && this._password) { - this._log('Password provided and server support VNC auth. Choosing VNC auth.', true); - this._expectingChallenge = true; - this._connection?.write(Buffer.from([0x02])); - } else if (this._socketBuffer.includes(1)) { - this._log('Password not provided or server does not support VNC auth. Trying none.', true); - this._connection?.write(Buffer.from([0x01])); - if (this._version === '3.7') { - this._waitingServerInit = true; - } else { - this._expectingChallenge = true; - this._challengeResponseSent = true; - } - } else { - this._log('Connection error. Msg: ' + this._socketBuffer.toString()); - this.disconnect(); - } - } - - this._socketBuffer?.flush(false); - } - - /** - * Handle VNC auth challenge - * @private - */ - _handleAuthChallenge() { - if (this._challengeResponseSent) { - // Challenge response already sent. Checking result. - - if (this._socketBuffer.buffer[3] === 0) { - // Auth success - this._authenticated = true; - this.emit('authenticated'); - this._expectingChallenge = false; - this._sendClientInit(); - } else { - // Auth fail - this.emit('authError'); - this.resetState(); - } - } else { - const key = Buffer.alloc(8); - key.fill(0); - key.write(this._password.slice(0, 8)); - - this.reverseBits(key); - - const des1 = crypto.createCipheriv('des', key, Buffer.alloc(8)); - const des2 = crypto.createCipheriv('des', key, Buffer.alloc(8)); - - const response = Buffer.alloc(16); - - response.fill(des1.update(this._socketBuffer.buffer.slice(0, 8)), 0, 8); - response.fill(des2.update(this._socketBuffer.buffer.slice(8, 16)), 8, 16); - - this._connection?.write(response); - this._challengeResponseSent = true; - } - - this._socketBuffer.flush(false); - } - - /** - * Reverse bits order of a byte - * @param buf - Buffer to be flipped - */ - reverseBits(buf: Buffer) { - for (let x = 0; x < buf.length; x++) { - let newByte = 0; - newByte += buf[x] & 128 ? 1 : 0; - newByte += buf[x] & 64 ? 2 : 0; - newByte += buf[x] & 32 ? 4 : 0; - newByte += buf[x] & 16 ? 8 : 0; - newByte += buf[x] & 8 ? 16 : 0; - newByte += buf[x] & 4 ? 32 : 0; - newByte += buf[x] & 2 ? 64 : 0; - newByte += buf[x] & 1 ? 128 : 0; - buf[x] = newByte; - } - } - - /** - * Handle server init msg - * @returns {Promise} - * @private - */ - async _handleServerInit() { - this._waitingServerInit = false; - - await this._socketBuffer.waitBytes(18); - - this.clientWidth = this._socketBuffer.readUInt16BE(); - this.clientHeight = this._socketBuffer.readUInt16BE(); - - this.pixelFormat.bitsPerPixel = this._socketBuffer.readUInt8(); - this.pixelFormat.depth = this._socketBuffer.readUInt8(); - this.pixelFormat.bigEndianFlag = this._socketBuffer.readUInt8(); - this.pixelFormat.trueColorFlag = this._socketBuffer.readUInt8(); - this.pixelFormat.redMax = this.bigEndianFlag ? this._socketBuffer.readUInt16BE() : this._socketBuffer.readUInt16LE(); - this.pixelFormat.greenMax = this.bigEndianFlag ? this._socketBuffer.readUInt16BE() : this._socketBuffer.readUInt16LE(); - this.pixelFormat.blueMax = this.bigEndianFlag ? this._socketBuffer.readUInt16BE() : this._socketBuffer.readUInt16LE(); - this.pixelFormat.redShift = this._socketBuffer.readInt8(); - this.pixelFormat.greenShift = this._socketBuffer.readInt8(); - this.pixelFormat.blueShift = this._socketBuffer.readInt8(); - this.updateFbSize(); - this.clientName = this._socketBuffer.buffer.slice(24).toString(); - - this._socketBuffer.flush(false); - - // FIXME: Removed because these are noise - //this._log(`Screen size: ${this.clientWidth}x${this.clientHeight}`); - //this._log(`Client name: ${this.clientName}`); - //this._log(`pixelFormat: ${JSON.stringify(this.pixelFormat)}`); - - if (this._set8BitColor) { - //this._log(`8 bit color format requested, only raw encoding is supported.`); - this._setPixelFormatToColorMap(); - } - - this._sendEncodings(); - - setTimeout(() => { - this.requestFrameUpdate(true); - }, 1000); - } - - /** - * Update the frame buffer size according to client width and height (RGBA) - */ - updateFbSize() { - this.fb = Buffer.alloc(this.clientWidth * this.clientHeight * 4); - } - - /** - * Request the server to change to 8bit color format (Color palette). Only works with Raw encoding. - * @private - */ - _setPixelFormatToColorMap() { - this._log(`Requesting PixelFormat change to ColorMap (8 bits).`); - - const message = Buffer.alloc(20); - message.writeUInt8(0); // Tipo da mensagem - message.writeUInt8(0, 1); // Padding - message.writeUInt8(0, 2); // Padding - message.writeUInt8(0, 3); // Padding - - message.writeUInt8(8, 4); // PixelFormat - BitsPerPixel - message.writeUInt8(8, 5); // PixelFormat - Depth - message.writeUInt8(0, 6); // PixelFormat - BigEndianFlag - message.writeUInt8(0, 7); // PixelFormat - TrueColorFlag - message.writeUInt16BE(255, 8); // PixelFormat - RedMax - message.writeUInt16BE(255, 10); // PixelFormat - GreenMax - message.writeUInt16BE(255, 12); // PixelFormat - BlueMax - message.writeUInt8(0, 14); // PixelFormat - RedShift - message.writeUInt8(8, 15); // PixelFormat - GreenShift - message.writeUInt8(16, 16); // PixelFormat - BlueShift - message.writeUInt8(0, 17); // PixelFormat - Padding - message.writeUInt8(0, 18); // PixelFormat - Padding - message.writeUInt8(0, 19); // PixelFormat - Padding - - // Envia um setPixelFormat trocando para mapa de cores - this._connection?.write(message); - - this.pixelFormat.bitsPerPixel = 8; - this.pixelFormat.depth = 8; - } - - /** - * Send supported encodings - * @private - */ - _sendEncodings() { - //this._log('Sending encodings.'); - // If this._set8BitColor is set, only copyrect and raw encodings are supported - const message = Buffer.alloc(4 + (!this._set8BitColor ? this.encodings.length : 2) * 4); - message.writeUInt8(2); // Message type - message.writeUInt8(0, 1); // Padding - message.writeUInt16BE(!this._set8BitColor ? this.encodings.length : 2, 2); // Padding - - let offset = 4; - // If 8bits is not set, send all encodings configured - if (!this._set8BitColor) { - for (const e of this.encodings) { - message.writeInt32BE(e, offset); - offset += 4; - } - } else { - message.writeInt32BE(consts.encodings.copyRect, offset); - message.writeInt32BE(consts.encodings.raw, offset + 4); - } - - this._connection?.write(message); - } - - /** - * Send client init msg - * @private - */ - _sendClientInit() { - //this._log(`Sending clientInit`); - this._waitingServerInit = true; - // Shared bit set - this._connection?.write('1'); - } - - /** - * Handle data msg - * @returns {Promise} - * @private - */ - async _handleData() { - if (!this._rects) { - switch (this._socketBuffer.buffer[0]) { - case consts.serverMsgTypes.fbUpdate: - await this._handleFbUpdate(); - break; - - case consts.serverMsgTypes.setColorMap: - await this._handleSetColorMap(); - break; - - case consts.serverMsgTypes.bell: - this.emit('bell'); - this._socketBuffer.flush(); - break; - - case consts.serverMsgTypes.cutText: - await this._handleCutText(); - break; - - case consts.serverMsgTypes.qemuAudio: - await this._handleQemuAudio(); - break; - } - } - } - - /** - * Cut message (text was copied to clipboard on server) - * @returns {Promise} - * @private - */ - async _handleCutText() { - this._socketBuffer.setOffset(4); - await this._socketBuffer.waitBytes(1); - const length = this._socketBuffer.readUInt32BE(); - await this._socketBuffer.waitBytes(length); - this.emit('cutText', this._socketBuffer.readNBytesOffset(length).toString()); - this._socketBuffer.flush(); - } - - /** - * Gets the pseudocursor framebuffer - */ - _getPseudoCursor() { - if (!this._cursor.width) - return { - width: 1, - height: 1, - data: Buffer.alloc(4) - }; - const { width, height, bitmask, cursorPixels } = this._cursor; - - if(bitmask == null || cursorPixels == null) - throw new Error('No cursor data to get!'); - - const data = Buffer.alloc(height * width * 4); - for (var y = 0; y < height; y++) { - for (var x = 0; x < width; x++) { - const offset = (y * width + x) * 4; - const active = (bitmask[Math.floor((width + 7) / 8) * y + Math.floor(x / 8)] >> (7 - (x % 8))) & 1; - if (active) { - switch (this.pixelFormat.bitsPerPixel) { - case 8: - console.log(8); - const index = cursorPixels.readUInt8(offset); - // @ts-ignore (This line is extremely suspect anyways. I bet this is horribly broken!!) - const color = this._colorMap[index] | 0xff; - data.writeIntBE(color, offset, 4); - break; - case 32: - // TODO: compatibility with VMware actually using the alpha channel - const b = cursorPixels.readUInt8(offset); - const g = cursorPixels.readUInt8(offset + 1); - const r = cursorPixels.readUInt8(offset + 2); - data.writeUInt8(r, offset); - data.writeUInt8(g, offset + 1); - data.writeUInt8(b, offset + 2); - data.writeUInt8(0xff, offset + 3); - break; - default: - data.writeIntBE(cursorPixels.readIntBE(offset, this.pixelFormat.bitsPerPixel / 8), offset, this.pixelFormat.bitsPerPixel / 8); - break; - } - } - } - } - return { - x: this._cursor.x, - y: this._cursor.y, - width, - height, - data - }; - } - - /** - * Handle a rects of update message - */ - async _handleRect() { - this._processingFrame = true; - const sendFbUpdate = this._rects; - - while (this._rects) { - await this._socketBuffer.waitBytes(12); - const rect: VncRectangle = { - x: this._socketBuffer.readUInt16BE(), - y: this._socketBuffer.readUInt16BE(), - width: this._socketBuffer.readUInt16BE(), - height: this._socketBuffer.readUInt16BE(), - encoding: this._socketBuffer.readInt32BE(), - data: null // for now - }; - - if (rect.encoding === consts.encodings.pseudoQemuAudio) { - this.sendAudio(true); - this.sendAudioConfig(this._audioChannels, this._audioFrequency); //todo: future: setFrequency(...) to update mid thing - } else if (rect.encoding === consts.encodings.pseudoQemuPointerMotionChange) { - this._relativePointer = rect.x == 0; - } else if (rect.encoding === consts.encodings.pseudoCursor) { - const dataSize = rect.width * rect.height * (this.pixelFormat.bitsPerPixel / 8); - const bitmaskSize = Math.floor((rect.width + 7) / 8) * rect.height; - this._cursor.width = rect.width; - this._cursor.height = rect.height; - this._cursor.x = rect.x; - this._cursor.y = rect.y; - this._cursor.cursorPixels = this._socketBuffer.readNBytesOffset(dataSize); - this._cursor.bitmask = this._socketBuffer.readNBytesOffset(bitmaskSize); - rect.data = Buffer.concat([this._cursor.cursorPixels, this._cursor.bitmask]); - this.emit('cursorChanged', this._getPseudoCursor()); - } else if (rect.encoding === consts.encodings.pseudoDesktopSize) { - this._log('Frame Buffer size change requested by the server', true); - this.clientHeight = rect.height; - this.clientWidth = rect.width; - this.updateFbSize(); - this.emit('desktopSizeChanged', { width: this.clientWidth, height: this.clientHeight }); - } else if (this._decoders[rect.encoding]) { - await this._decoders[rect.encoding].decode( - rect, - this.fb, - this.pixelFormat.bitsPerPixel, - this._colorMap, - this.clientWidth, - this.clientHeight, - this._socketBuffer, - this.pixelFormat.depth - ); - this.emit('rectUpdateProcessed', rect); - } else { - this._log('Non supported update received. Encoding: ' + rect.encoding); - } - this._rects--; - this.emit('rectProcessed', rect); - - if (!this._rects) { - this._socketBuffer.flush(true); - } - } - - if (sendFbUpdate) { - if (!this._firstFrameReceived) { - this._firstFrameReceived = true; - this.emit('firstFrameUpdate', this.fb); - } - this._log('Frame buffer updated.', true); - this.emit('frameUpdated', this.fb); - } - - this._processingFrame = false; - - if (this._fps === 0) { - // If FPS is not set, request a new update as soon as the last received has been processed - this.requestFrameUpdate(); - } - } - - async _handleFbUpdate() { - this._socketBuffer.setOffset(2); - this._rects = this._socketBuffer.readUInt16BE(); - this._log('Frame update received. Rects: ' + this._rects, true); - await this._handleRect(); - } - - /** - * Handle setColorMap msg - * @returns {Promise} - * @private - */ - async _handleSetColorMap() { - this._socketBuffer.setOffset(2); - let firstColor = this._socketBuffer.readUInt16BE(); - const numColors = this._socketBuffer.readUInt16BE(); - - this._log(`ColorMap received. Colors: ${numColors}.`); - - await this._socketBuffer.waitBytes(numColors * 6); - - for (let x = 0; x < numColors; x++) { - this._colorMap[firstColor] = { - r: Math.floor((this._socketBuffer.readUInt16BE() / 65535) * 255), - g: Math.floor((this._socketBuffer.readUInt16BE() / 65535) * 255), - b: Math.floor((this._socketBuffer.readUInt16BE() / 65535) * 255), - }; - firstColor++; - } - - this.emit('colorMapUpdated', this._colorMap); - this._socketBuffer.flush(); - } - - async _handleQemuAudio() { - this._socketBuffer.setOffset(2); - let operation = this._socketBuffer.readUInt16BE(); - if (operation == 2) { - const length = this._socketBuffer.readUInt32BE(); - - //this._log(`Audio received. Length: ${length}.`); - - await this._socketBuffer.waitBytes(length); - - let audioBuffer = this._socketBuffer.readNBytes(length); - - this._audioData = audioBuffer; - } - - this.emit('audioStream', this._audioData); - this._socketBuffer.flush(); - } - - /** - * Reset the class state - */ - resetState() { - if (this._connection) { - this._connection?.end(); - } - - if (this._timerPointer) { - clearInterval(this._timerPointer); - } - - this._timerPointer = null; - - //this._connection = null; - - this._connected = false; - this._authenticated = false; - this._version = ''; - - this._password = ''; - - this._audioChannels = 2; - this._audioFrequency = 22050; - - this._handshaked = false; - - this._expectingChallenge = false; - this._challengeResponseSent = false; - - this._frameBufferReady = false; - this._firstFrameReceived = false; - this._processingFrame = false; - - this.clientWidth = 0; - this.clientHeight = 0; - this.clientName = ''; - - this.pixelFormat = { - bitsPerPixel: 0, - depth: 0, - bigEndianFlag: 0, - trueColorFlag: 0, - redMax: 0, - greenMax: 0, - blueMax: 0, - redShift: 0, - blueShift: 0, - greenShift: 0 - }; - - this._rects = 0; - - this._colorMap = []; - this.fb = Buffer.from([]); - - this._socketBuffer?.flush(false); - - this._cursor = { - width: 0, - height: 0, - x: 0, - y: 0, - cursorPixels: null, - bitmask: null, - posX: 0, - posY: 0 - }; - } - - // NIT(lily) instead of allocating it'd be way better if these just re-used a 16/32 byte buffer used just for these. - - /** - * Send a key event - * @param key - Key code (keysym) defined by X Window System, check https://wiki.linuxquestions.org/wiki/List_of_keysyms - * @param down - True if the key is pressed, false if it is not - */ - sendKeyEvent(key: number, down: boolean = false) { - const message = Buffer.alloc(8); - message.writeUInt8(4); // Message type - message.writeUInt8(down ? 1 : 0, 1); // Down flag - message.writeUInt8(0, 2); // Padding - message.writeUInt8(0, 3); // Padding - - message.writeUInt32BE(key, 4); // Key code - - this._connection?.write(message); - } - - /** - * Send a raw pointer event - * @param xPosition - X Position - * @param yPosition - Y Position - * @param mask - Raw RFB button mask - */ - sendPointerEvent(xPosition: number, yPosition: number, buttonMask: number) { - const message = Buffer.alloc(6); - message.writeUInt8(consts.clientMsgTypes.pointerEvent); // Message type - message.writeUInt8(buttonMask, 1); // Button Mask - const reladd = this._relativePointer ? 0x7fff : 0; - message.writeUInt16BE(xPosition + reladd, 2); // X Position - message.writeUInt16BE(yPosition + reladd, 4); // Y Position - - this._cursor.posX = xPosition; - this._cursor.posY = yPosition; - - this._connection?.write(message); - } - - /** - * Send client cut message to server - * @param text - latin1 encoded - */ - clientCutText(text: string) { - const textBuffer = Buffer.from(text, 'latin1'); - const message = Buffer.alloc(8 + textBuffer.length); - message.writeUInt8(6); // Message type - message.writeUInt8(0, 1); // Padding - message.writeUInt8(0, 2); // Padding - message.writeUInt8(0, 3); // Padding - message.writeUInt32BE(textBuffer.length, 4); // Padding - textBuffer.copy(message, 8); - - this._connection?.write(message); - } - - sendAudio(enable: boolean) { - const message = Buffer.alloc(4); - message.writeUInt8(consts.clientMsgTypes.qemuAudio); // Message type - message.writeUInt8(1, 1); // Submessage Type - message.writeUInt16BE(enable ? 0 : 1, 2); // Operation - this._connection?.write(message); - } - - sendAudioConfig(channels: number, frequency: number) { - const message = Buffer.alloc(10); - message.writeUInt8(consts.clientMsgTypes.qemuAudio); // Message type - message.writeUInt8(1, 1); // Submessage Type - message.writeUInt16BE(2, 2); // Operation - message.writeUInt8(0 /*U8*/, 4); // Sample Format - message.writeUInt8(channels, 5); // Number of Channels - message.writeUInt32BE(frequency, 6); // Frequency - this._connection?.write(message); - } - - /** - * Print log info - * @param text - * @param debug - * @private - */ - _log(text: string, debug = false) { - if (!debug || (debug && this.debug)) { - console.log(text); - } - } -} diff --git a/qemu/src/rfb/constants.ts b/qemu/src/rfb/constants.ts deleted file mode 100644 index bd8c46a..0000000 --- a/qemu/src/rfb/constants.ts +++ /dev/null @@ -1,46 +0,0 @@ -// based on https://github.com/sidorares/node-rfb2 - -export const consts = { - clientMsgTypes: { - setPixelFormat: 0, - setEncodings: 2, - fbUpdate: 3, - keyEvent: 4, - pointerEvent: 5, - cutText: 6, - qemuAudio: 255 - }, - serverMsgTypes: { - fbUpdate: 0, - setColorMap: 1, - bell: 2, - cutText: 3, - qemuAudio: 255 - }, - versionString: { - V3_003: 'RFB 003.003\n', - V3_007: 'RFB 003.007\n', - V3_008: 'RFB 003.008\n' - }, - encodings: { - raw: 0, - copyRect: 1, - rre: 2, - corre: 4, - hextile: 5, - zlib: 6, - tight: 7, - zlibhex: 8, - trle: 15, - zrle: 16, - h264: 50, - pseudoCursor: -239, - pseudoDesktopSize: -223, - pseudoQemuPointerMotionChange: -257, - pseudoQemuAudio: -259 - }, - security: { - None: 1, - VNC: 2 - } -}; diff --git a/qemu/src/rfb/decoders/copyrect.ts b/qemu/src/rfb/decoders/copyrect.ts deleted file mode 100644 index bb7a146..0000000 --- a/qemu/src/rfb/decoders/copyrect.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { SocketBuffer } from "../socketbuffer"; -import { IRectDecoder } from "./decoder"; -import { getPixelBytePos } from "./util"; - -import { VncRectangle, Color3 } from "../types"; - -export class CopyRectDecoder implements IRectDecoder { - async decode(rect: VncRectangle, fb: Buffer, bitsPerPixel: number, colorMap: Array, screenW: number, screenH: number, socket: SocketBuffer, depth: number): Promise { - return new Promise(async (resolve, reject) => { - await socket.waitBytes(4); - rect.data = socket.readNBytesOffset(4); - - const x = rect.data.readUInt16BE(); - const y = rect.data.readUInt16BE(2); - - for (let h = 0; h < rect.height; h++) { - for (let w = 0; w < rect.width; w++) { - const fbOrigBytePosOffset = getPixelBytePos(x + w, y + h, screenW, screenH); - const fbBytePosOffset = getPixelBytePos(rect.x + w, rect.y + h, screenW, screenH); - - fb.writeUInt8(fb.readUInt8(fbOrigBytePosOffset), fbBytePosOffset); - fb.writeUInt8(fb.readUInt8(fbOrigBytePosOffset + 1), fbBytePosOffset + 1); - fb.writeUInt8(fb.readUInt8(fbOrigBytePosOffset + 2), fbBytePosOffset + 2); - fb.writeUInt8(fb.readUInt8(fbOrigBytePosOffset + 3), fbBytePosOffset + 3); - } - } - - resolve(); - }); - } -} diff --git a/qemu/src/rfb/decoders/decoder.ts b/qemu/src/rfb/decoders/decoder.ts deleted file mode 100644 index 82fe637..0000000 --- a/qemu/src/rfb/decoders/decoder.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { SocketBuffer } from "../socketbuffer"; -import { Color3, VncRectangle } from "../types"; - - -export interface IRectDecoder { - decode(rect: VncRectangle, fb: Buffer, bitsPerPixel: number, colorMap: Array, screenW: number, screenH: number, socket: SocketBuffer, depth: number): Promise; -} diff --git a/qemu/src/rfb/decoders/hextile.ts b/qemu/src/rfb/decoders/hextile.ts deleted file mode 100644 index 3a59d67..0000000 --- a/qemu/src/rfb/decoders/hextile.ts +++ /dev/null @@ -1,228 +0,0 @@ -import { SocketBuffer } from "../socketbuffer"; -import { IRectDecoder } from "./decoder"; -import { applyColor, getPixelBytePos } from "./util"; - -import { VncRectangle, Color3 } from "../types"; - -export class HextileDecoder implements IRectDecoder { - - async decode(rect: VncRectangle, fb: Buffer, bitsPerPixel: number, colorMap: Array, screenW: number, screenH: number, socket: SocketBuffer, depth: number): Promise { - return new Promise(async (resolve, reject) => { - const initialOffset = socket.offset; - let dataSize = 0; - - let lastSubEncoding = 0; - - const backgroundColor = { r: 0, g: 0, b: 0, a: 255 }; - const foregroundColor = { r: 0, g: 0, b: 0, a: 255 }; - - let tilesX = Math.ceil(rect.width / 16); - let tilesY = Math.ceil(rect.height / 16); - let tiles = tilesX * tilesY; - let totalTiles = tiles; - - while (tiles) { - await socket.waitBytes(1); - const subEncoding = socket.readUInt8(); - dataSize++; - const currTile = totalTiles - tiles; - - // Calculate tile position and size - const tileX = currTile % tilesX; - const tileY = Math.floor(currTile / tilesX); - const tx = rect.x + tileX * 16; - const ty = rect.y + tileY * 16; - const tw = Math.min(16, rect.x + rect.width - tx); - const th = Math.min(16, rect.y + rect.height - ty); - - if (subEncoding === 0) { - if (lastSubEncoding & 0x01) { - // We need to ignore zeroed tile after a raw tile - } else { - // If zeroed tile and last tile was not raw, use the last backgroundColor - applyColor(tw, th, tx, ty, screenW, screenH, backgroundColor, fb); - } - } else if (subEncoding & 0x01) { - // If Raw, ignore all other bits - await socket.waitBytes(th * tw * (bitsPerPixel / 8)); - dataSize += th * tw * (bitsPerPixel / 8); - for (let h = 0; h < th; h++) { - for (let w = 0; w < tw; w++) { - const fbBytePosOffset = getPixelBytePos(tx + w, ty + h, screenW, screenH); - if (bitsPerPixel === 8) { - const index = socket.readUInt8(); - const color = colorMap[index]; - // RGB - // fb.writeUInt8(color?.r || 255, fbBytePosOffset); - // fb.writeUInt8(color?.g || 255, fbBytePosOffset + 1); - // fb.writeUInt8(color?.b || 255, fbBytePosOffset + 2); - - // BGR - fb.writeUInt8(color?.r || 255, fbBytePosOffset + 2); - fb.writeUInt8(color?.g || 255, fbBytePosOffset + 1); - fb.writeUInt8(color?.b || 255, fbBytePosOffset); - } else if (bitsPerPixel === 24) { - fb.writeUInt8(socket.readUInt8(), fbBytePosOffset); - fb.writeUInt8(socket.readUInt8(), fbBytePosOffset + 1); - fb.writeUInt8(socket.readUInt8(), fbBytePosOffset + 2); - } else if (bitsPerPixel === 32) { - // RGB - // fb.writeUInt8(rect.data.readUInt8(bytePosOffset), fbBytePosOffset); - // fb.writeUInt8(rect.data.readUInt8(bytePosOffset + 1), fbBytePosOffset + 1); - // fb.writeUInt8(rect.data.readUInt8(bytePosOffset + 2), fbBytePosOffset + 2); - - // BGR - fb.writeUInt8(socket.readUInt8(), fbBytePosOffset + 2); - fb.writeUInt8(socket.readUInt8(), fbBytePosOffset + 1); - fb.writeUInt8(socket.readUInt8(), fbBytePosOffset); - socket.readUInt8(); - } - // Alpha, always 255 - fb.writeUInt8(255, fbBytePosOffset + 3); - } - } - lastSubEncoding = subEncoding; - } else { - // Background bit - if (subEncoding & 0x02) { - switch (bitsPerPixel) { - case 8: - await socket.waitBytes(1); - const index = socket.readUInt8(); - dataSize++; - backgroundColor.r = colorMap[index].r || 255; - backgroundColor.g = colorMap[index].g || 255; - backgroundColor.b = colorMap[index].b || 255; - break; - - case 24: - await socket.waitBytes(3); - dataSize += 3; - backgroundColor.r = socket.readUInt8(); - backgroundColor.g = socket.readUInt8(); - backgroundColor.b = socket.readUInt8(); - break; - - case 32: - await socket.waitBytes(4); - dataSize += 4; - backgroundColor.r = socket.readUInt8(); - backgroundColor.g = socket.readUInt8(); - backgroundColor.b = socket.readUInt8(); - backgroundColor.a = socket.readUInt8(); - break; - } - } - - // Foreground bit - if (subEncoding & 0x04) { - switch (bitsPerPixel) { - case 8: - await socket.waitBytes(1); - const index = socket.readUInt8(); - dataSize++; - foregroundColor.r = colorMap[index].r || 255; - foregroundColor.g = colorMap[index].g || 255; - foregroundColor.b = colorMap[index].b || 255; - break; - - case 24: - await socket.waitBytes(3); - dataSize += 3; - foregroundColor.r = socket.readUInt8(); - foregroundColor.g = socket.readUInt8(); - foregroundColor.b = socket.readUInt8(); - break; - - case 32: - await socket.waitBytes(4); - dataSize += 4; - foregroundColor.r = socket.readUInt8(); - foregroundColor.g = socket.readUInt8(); - foregroundColor.b = socket.readUInt8(); - foregroundColor.a = socket.readUInt8(); - break; - } - } - - // Initialize tile with the background color - applyColor(tw, th, tx, ty, screenW, screenH, backgroundColor, fb); - - // AnySubrects bit - if (subEncoding & 0x08) { - await socket.waitBytes(1); - let subRects = socket.readUInt8(); - - if (subRects) { - while (subRects) { - subRects--; - const color = { r: 0, g: 0, b: 0, a: 255 }; - - // SubrectsColoured - if (subEncoding & 0x10) { - switch (bitsPerPixel) { - case 8: - await socket.waitBytes(1); - const index = socket.readUInt8(); - dataSize++; - color.r = colorMap[index].r || 255; - color.g = colorMap[index].g || 255; - color.b = colorMap[index].b || 255; - break; - - case 24: - await socket.waitBytes(3); - dataSize += 3; - color.r = socket.readUInt8(); - color.g = socket.readUInt8(); - color.b = socket.readUInt8(); - break; - - case 32: - await socket.waitBytes(4); - dataSize += 4; - color.r = socket.readUInt8(); - color.g = socket.readUInt8(); - color.b = socket.readUInt8(); - color.a = socket.readUInt8(); - break; - } - } else { - color.r = foregroundColor.r; - color.g = foregroundColor.g; - color.b = foregroundColor.b; - color.a = foregroundColor.a; - } - - await socket.waitBytes(2); - const xy = socket.readUInt8(); - const wh = socket.readUInt8(); - dataSize += 2; - - const sx = xy >> 4; - const sy = xy & 0x0f; - const sw = (wh >> 4) + 1; - const sh = (wh & 0x0f) + 1; - - applyColor(sw, sh, tx + sx, ty + sy, screenW, screenH, color, fb); - } - } else { - applyColor(tw, th, tx, ty, screenW, screenH, backgroundColor, fb); - } - } else { - applyColor(tw, th, tx, ty, screenW, screenH, backgroundColor, fb); - } - - lastSubEncoding = subEncoding; - } - - tiles--; - } - - rect.data = socket.readNBytes(dataSize, initialOffset); - resolve(); - }); - } - - -} diff --git a/qemu/src/rfb/decoders/raw.ts b/qemu/src/rfb/decoders/raw.ts deleted file mode 100644 index f3545d6..0000000 --- a/qemu/src/rfb/decoders/raw.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { SocketBuffer } from "../socketbuffer"; -import { IRectDecoder } from "./decoder"; -import { getPixelBytePos } from "./util"; - -import { VncRectangle, Color3 } from "../types"; - -export class RawDecoder implements IRectDecoder { - - async decode(rect: VncRectangle, fb: Buffer, bitsPerPixel: number, colorMap: Array, screenW: number, screenH: number, socket: SocketBuffer, depth: number): Promise { - return new Promise(async (resolve, reject) => { - await socket.waitBytes(rect.width * rect.height * (bitsPerPixel / 8)); - rect.data = socket.readNBytesOffset(rect.width * rect.height * (bitsPerPixel / 8)); - - for (let h = 0; h < rect.height; h++) { - for (let w = 0; w < rect.width; w++) { - const fbBytePosOffset = getPixelBytePos(rect.x + w, rect.y + h, screenW, screenH); - if (bitsPerPixel === 8) { - const bytePosOffset = h * rect.width + w; - const index = rect.data.readUInt8(bytePosOffset); - const color = colorMap[index]; - // RGB - // fb.writeUInt8(color?.r || 255, fbBytePosOffset); - // fb.writeUInt8(color?.g || 255, fbBytePosOffset + 1); - // fb.writeUInt8(color?.b || 255, fbBytePosOffset + 2); - - // BGR - fb.writeUInt8(color?.r || 255, fbBytePosOffset + 2); - fb.writeUInt8(color?.g || 255, fbBytePosOffset + 1); - fb.writeUInt8(color?.b || 255, fbBytePosOffset); - - fb.writeUInt8(255, fbBytePosOffset + 3); - } else if (bitsPerPixel === 24) { - const bytePosOffset = (h * rect.width + w) * 3; - fb.writeUInt8(rect.data.readUInt8(bytePosOffset), fbBytePosOffset); - fb.writeUInt8(rect.data.readUInt8(bytePosOffset + 1), fbBytePosOffset + 1); - fb.writeUInt8(rect.data.readUInt8(bytePosOffset + 2), fbBytePosOffset + 2); - fb.writeUInt8(255, fbBytePosOffset + 3); - } else if (bitsPerPixel === 32) { - const bytePosOffset = (h * rect.width + w) * 4; - // RGB - // fb.writeUInt8(rect.data.readUInt8(bytePosOffset), fbBytePosOffset); - // fb.writeUInt8(rect.data.readUInt8(bytePosOffset + 1), fbBytePosOffset + 1); - // fb.writeUInt8(rect.data.readUInt8(bytePosOffset + 2), fbBytePosOffset + 2); - - // BGR - fb.writeUInt8(rect.data.readUInt8(bytePosOffset), fbBytePosOffset + 2); - fb.writeUInt8(rect.data.readUInt8(bytePosOffset + 1), fbBytePosOffset + 1); - fb.writeUInt8(rect.data.readUInt8(bytePosOffset + 2), fbBytePosOffset); - // fb.writeUInt8(rect.data.readUInt8(bytePosOffset + 3), fbBytePosOffset + 3); - fb.writeUInt8(255, fbBytePosOffset + 3); - } - } - } - resolve(); - }); - } -} diff --git a/qemu/src/rfb/decoders/util.ts b/qemu/src/rfb/decoders/util.ts deleted file mode 100644 index 2b02751..0000000 --- a/qemu/src/rfb/decoders/util.ts +++ /dev/null @@ -1,19 +0,0 @@ - -import { Color3 } from "../types"; - -export function getPixelBytePos(x: number, y: number, width: number, height: number, stride: number = 4): number { - return (y * width + x) * stride; -} - -// Apply color to a rect on buffer -export function applyColor(tw: number, th: number, tx: number, ty: number, screenW: number, screenH: number, color: Color3, fb: Buffer) { - for (let h = 0; h < th; h++) { - for (let w = 0; w < tw; w++) { - const fbBytePosOffset = getPixelBytePos(tx + w, ty + h, screenW, screenH); - fb.writeUInt8(color.r || 255, fbBytePosOffset + 2); - fb.writeUInt8(color.g || 255, fbBytePosOffset + 1); - fb.writeUInt8(color.b || 255, fbBytePosOffset); - fb.writeUInt8(255, fbBytePosOffset + 3); - } - } -} diff --git a/qemu/src/rfb/decoders/zrle.ts b/qemu/src/rfb/decoders/zrle.ts deleted file mode 100644 index cf5e0f6..0000000 --- a/qemu/src/rfb/decoders/zrle.ts +++ /dev/null @@ -1,340 +0,0 @@ -import * as zlib from 'node:zlib'; -import { SocketBuffer } from "../socketbuffer"; -import { IRectDecoder } from "./decoder"; -import { applyColor, getPixelBytePos } from "./util"; - -import { VncRectangle, Color3, Color4 } from "../types"; - -export class ZrleDecoder implements IRectDecoder { - private zlib: zlib.Inflate; - private unBuffer: SocketBuffer; - - constructor() { - this.zlib = zlib.createInflate({ chunkSize: 16 * 1024 * 1024, flush: zlib.constants.Z_FULL_FLUSH }); - this.unBuffer = new SocketBuffer(); - - this.zlib.on('data', async (chunk) => { - this.unBuffer.pushData(chunk); - }); - } - - async decode(rect: VncRectangle, fb: Buffer, bitsPerPixel: number, colorMap: Array, screenW: number, screenH: number, socket: SocketBuffer, depth: number): Promise { - return new Promise(async (resolve, reject) => { - await socket.waitBytes(4); - - const initialOffset = socket.offset; - const dataSize = socket.readUInt32BE(); - - await socket.waitBytes(dataSize); - - const compressedData = socket.readNBytesOffset(dataSize); - - rect.data = socket.readNBytes(dataSize + 4, initialOffset); - - this.unBuffer.flush(); - this.zlib.write(compressedData, async () => { - this.zlib.flush(); - - let tilesX = Math.ceil(rect.width / 64); - let tilesY = Math.ceil(rect.height / 64); - let tiles = tilesX * tilesY; - let totalTiles = tiles; - - while (tiles) { - await this.unBuffer.waitBytes(1, 'tile begin.'); - const subEncoding = this.unBuffer.readUInt8(); - const currTile = totalTiles - tiles; - - const tileX = currTile % tilesX; - const tileY = Math.floor(currTile / tilesX); - const tx = rect.x + tileX * 64; - const ty = rect.y + tileY * 64; - const tw = Math.min(64, rect.x + rect.width - tx); - const th = Math.min(64, rect.y + rect.height - ty); - - const now = process.hrtime.bigint(); - let totalRun = 0; - let runs = 0; - - if (subEncoding === 127 || subEncoding === 129) { - console.log('Invalid subencoding. ' + subEncoding); - } else if (subEncoding === 0) { - // Raw - for (let h = 0; h < th; h++) { - for (let w = 0; w < tw; w++) { - const fbBytePosOffset = getPixelBytePos(tx + w, ty + h, screenW, screenH); - if (bitsPerPixel === 8) { - await this.unBuffer.waitBytes(1, 'raw 8bits'); - const index = this.unBuffer.readUInt8(); - const color = colorMap[index]; - // RGB - // fb.writeUInt8(color?.r || 255, fbBytePosOffset); - // fb.writeUInt8(color?.g || 255, fbBytePosOffset + 1); - // fb.writeUInt8(color?.b || 255, fbBytePosOffset + 2); - - // BGR - fb.writeUInt8(color?.r || 255, fbBytePosOffset + 2); - fb.writeUInt8(color?.g || 255, fbBytePosOffset + 1); - fb.writeUInt8(color?.b || 255, fbBytePosOffset); - } else if (bitsPerPixel === 24 || (bitsPerPixel === 32 && depth === 24)) { - await this.unBuffer.waitBytes(3, 'raw 24bits'); - fb.writeUInt8(this.unBuffer.readUInt8(), fbBytePosOffset + 2); - fb.writeUInt8(this.unBuffer.readUInt8(), fbBytePosOffset + 1); - fb.writeUInt8(this.unBuffer.readUInt8(), fbBytePosOffset); - } else if (bitsPerPixel === 32) { - // RGB - // fb.writeUInt8(rect.data.readUInt8(bytePosOffset), fbBytePosOffset); - // fb.writeUInt8(rect.data.readUInt8(bytePosOffset + 1), fbBytePosOffset + 1); - // fb.writeUInt8(rect.data.readUInt8(bytePosOffset + 2), fbBytePosOffset + 2); - - // BGR - await this.unBuffer.waitBytes(4, 'raw 32bits'); - fb.writeUInt8(this.unBuffer.readUInt8(), fbBytePosOffset + 2); - fb.writeUInt8(this.unBuffer.readUInt8(), fbBytePosOffset + 1); - fb.writeUInt8(this.unBuffer.readUInt8(), fbBytePosOffset); - this.unBuffer.readUInt8(); - } - // Alpha - fb.writeUInt8(255, fbBytePosOffset + 3); - } - } - } else if (subEncoding === 1) { - // Single Color - let color: Color4 = { r: 0, g: 0, b: 0, a: 255 }; - if (bitsPerPixel === 8) { - await this.unBuffer.waitBytes(1, 'single color 8bits'); - const index = this.unBuffer.readUInt8(); - color = (colorMap[index] as Color4); - } else if (bitsPerPixel === 24 || (bitsPerPixel === 32 && depth === 24)) { - await this.unBuffer.waitBytes(3, 'single color 24bits'); - color.r = this.unBuffer.readUInt8(); - color.g = this.unBuffer.readUInt8(); - color.b = this.unBuffer.readUInt8(); - } else if (bitsPerPixel === 32) { - await this.unBuffer.waitBytes(4, 'single color 32bits'); - color.r = this.unBuffer.readUInt8(); - color.g = this.unBuffer.readUInt8(); - color.b = this.unBuffer.readUInt8(); - color.a = this.unBuffer.readUInt8(); - } - applyColor(tw, th, tx, ty, screenW, screenH, color, fb); - } else if (subEncoding >= 2 && subEncoding <= 16) { - // Palette - const palette = []; - for (let x = 0; x < subEncoding; x++) { - let color; - if (bitsPerPixel === 24 || (bitsPerPixel === 32 && depth === 24)) { - await this.unBuffer.waitBytes(3, 'palette 24 bits'); - color = { - r: this.unBuffer.readUInt8(), - g: this.unBuffer.readUInt8(), - b: this.unBuffer.readUInt8(), - a: 255 - }; - } else if (bitsPerPixel === 32) { - await this.unBuffer.waitBytes(3, 'palette 32 bits'); - color = { - r: this.unBuffer.readUInt8(), - g: this.unBuffer.readUInt8(), - b: this.unBuffer.readUInt8(), - a: this.unBuffer.readUInt8() - }; - } - palette.push(color); - } - - const bitsPerIndex = subEncoding === 2 ? 1 : subEncoding < 5 ? 2 : 4; - // const i = (tw * th) / (8 / bitsPerIndex); - // const pixels = []; - - let byte = 0; - let bitPos = 0; - - for (let h = 0; h < th; h++) { - for (let w = 0; w < tw; w++) { - if (bitPos === 0 || w === 0) { - await this.unBuffer.waitBytes(1, 'palette index data'); - byte = this.unBuffer.readUInt8(); - bitPos = 0; - } - let color : Color4 = { r: 0, g: 0, b: 0, a: 255 }; - switch (bitsPerIndex) { - case 1: - if (bitPos === 0) { - color = palette[(byte & 128) >> 7] || { r: 255, g: 255, b: 255, a: 255 }; - } else if (bitPos === 1) { - color = palette[(byte & 64) >> 6] || { r: 255, g: 255, b: 255, a: 255 }; - } else if (bitPos === 2) { - color = palette[(byte & 32) >> 5] || { r: 255, g: 255, b: 255, a: 255 }; - } else if (bitPos === 3) { - color = palette[(byte & 16) >> 4] || { r: 255, g: 255, b: 255, a: 255 }; - } else if (bitPos === 4) { - color = palette[(byte & 8) >> 3] || { r: 255, g: 255, b: 255, a: 255 }; - } else if (bitPos === 5) { - color = palette[(byte & 4) >> 2] || { r: 255, g: 255, b: 255, a: 255 }; - } else if (bitPos === 6) { - color = palette[(byte & 2) >> 1] || { r: 255, g: 255, b: 255, a: 255 }; - } else if (bitPos === 7) { - color = palette[byte & 1] || { r: 255, g: 255, b: 255, a: 255 }; - } - bitPos++; - if (bitPos === 8) { - bitPos = 0; - } - break; - - case 2: - if (bitPos === 0) { - color = palette[(byte & 196) >> 6] || { r: 255, g: 255, b: 255, a: 255 }; - } else if (bitPos === 1) { - color = palette[(byte & 48) >> 4] || { r: 255, g: 255, b: 255, a: 255 }; - } else if (bitPos === 2) { - color = palette[(byte & 12) >> 2] || { r: 255, g: 255, b: 255, a: 255 }; - } else if (bitPos === 3) { - color = palette[byte & 3] || { r: 255, g: 255, b: 255, a: 255 }; - } - bitPos++; - if (bitPos === 4) { - bitPos = 0; - } - break; - - case 4: - if (bitPos === 0) { - color = palette[(byte & 240) >> 4] || { r: 255, g: 255, b: 255, a: 255 }; - } else if (bitPos === 1) { - color = palette[byte & 15] || { r: 255, g: 255, b: 255, a: 255 }; - } - bitPos++; - if (bitPos === 2) { - bitPos = 0; - } - break; - } - const fbBytePosOffset = getPixelBytePos(tx + w, ty + h, screenW, screenH); - fb.writeUInt8(color.b ?? 0, fbBytePosOffset); - fb.writeUInt8(color.g ?? 0, fbBytePosOffset + 1); - fb.writeUInt8(color.r ?? 0, fbBytePosOffset + 2); - fb.writeUInt8(color.a ?? 255, fbBytePosOffset + 3); - } - } - } else if (subEncoding === 128) { - // Plain RLE - let runLength = 0; - let color = { r: 0, g: 0, b: 0, a: 0 }; - - for (let h = 0; h < th; h++) { - for (let w = 0; w < tw; w++) { - if (!runLength) { - if (bitsPerPixel === 24 || (bitsPerPixel === 32 && depth === 24)) { - await this.unBuffer.waitBytes(3, 'rle 24bits'); - color = { - r: this.unBuffer.readUInt8(), - g: this.unBuffer.readUInt8(), - b: this.unBuffer.readUInt8(), - a: 255 - }; - } else if (bitsPerPixel === 32) { - await this.unBuffer.waitBytes(4, 'rle 32bits'); - color = { - r: this.unBuffer.readUInt8(), - g: this.unBuffer.readUInt8(), - b: this.unBuffer.readUInt8(), - a: this.unBuffer.readUInt8() - }; - } - await this.unBuffer.waitBytes(1, 'rle runsize'); - let runSize = this.unBuffer.readUInt8(); - while (runSize === 255) { - runLength += runSize; - await this.unBuffer.waitBytes(1, 'rle runsize'); - runSize = this.unBuffer.readUInt8(); - } - runLength += runSize + 1; - totalRun += runLength; - runs++; - } - const fbBytePosOffset = getPixelBytePos(tx + w, ty + h, screenW, screenH); - fb.writeUInt8(color.b ?? 0, fbBytePosOffset); - fb.writeUInt8(color.g ?? 0, fbBytePosOffset + 1); - fb.writeUInt8(color.r ?? 0, fbBytePosOffset + 2); - fb.writeUInt8(color.a ?? 255, fbBytePosOffset + 3); - runLength--; - } - } - } else if (subEncoding >= 130) { - // Palette RLE - const paletteSize = subEncoding - 128; - const palette = []; - - for (let x = 0; x < paletteSize; x++) { - let color; - if (bitsPerPixel === 24 || (bitsPerPixel === 32 && depth === 24)) { - await this.unBuffer.waitBytes(3, 'paletterle 24bits'); - color = { - r: this.unBuffer.readUInt8(), - g: this.unBuffer.readUInt8(), - b: this.unBuffer.readUInt8(), - a: 255 - }; - } else if (bitsPerPixel === 32) { - await this.unBuffer.waitBytes(4, 'paletterle 32bits'); - color = { - r: this.unBuffer.readUInt8(), - g: this.unBuffer.readUInt8(), - b: this.unBuffer.readUInt8(), - a: this.unBuffer.readUInt8() - }; - } - palette.push(color); - } - - let runLength = 0; - let color = { r: 0, g: 0, b: 0, a: 255 }; - - for (let h = 0; h < th; h++) { - for (let w = 0; w < tw; w++) { - if (!runLength) { - await this.unBuffer.waitBytes(1, 'paletterle indexdata'); - const colorIndex = this.unBuffer.readUInt8(); - - if (!(colorIndex & 128)) { - // Run de tamanho 1 - color = palette[colorIndex] ?? { r: 0, g: 0, b: 0, a: 255 }; - runLength = 1; - } else { - color = palette[colorIndex - 128] ?? { r: 0, g: 0, b: 0, a: 255 }; - await this.unBuffer.waitBytes(1, 'paletterle runlength'); - let runSize = this.unBuffer.readUInt8(); - while (runSize === 255) { - runLength += runSize; - await this.unBuffer.waitBytes(1, 'paletterle runlength'); - runSize = this.unBuffer.readUInt8(); - } - runLength += runSize + 1; - } - totalRun += runLength; - runs++; - } - const fbBytePosOffset = getPixelBytePos(tx + w, ty + h, screenW, screenH); - fb.writeUInt8(color.b ?? 0, fbBytePosOffset); - fb.writeUInt8(color.g ?? 0, fbBytePosOffset + 1); - fb.writeUInt8(color.r ?? 0, fbBytePosOffset + 2); - fb.writeUInt8(color.a ?? 255, fbBytePosOffset + 3); - runLength--; - } - } - } - // 127 and 129 are not valid - // 17 to 126 are not used - - tiles--; - } - - this.unBuffer.flush(); - resolve(); - }); - }); - } - -} diff --git a/qemu/src/rfb/socketbuffer.ts b/qemu/src/rfb/socketbuffer.ts deleted file mode 100644 index 18dcbcf..0000000 --- a/qemu/src/rfb/socketbuffer.ts +++ /dev/null @@ -1,134 +0,0 @@ -/// this is a pretty poor name. -export class SocketBuffer { - public buffer: Buffer; - public offset: number; // :( - - constructor() { - this.buffer = Buffer.from([]); - this.offset = 0; - this.flush(); - } - - flush(keep = true) { - if (keep && this.buffer?.length) { - this.buffer = this.buffer.subarray(this.offset); - this.offset = 0; - } else { - this.buffer = Buffer.from([]); - this.offset = 0; - } - } - - toString() { - return this.buffer.toString(); - } - - includes(check: Buffer|number|string) { - return this.buffer.includes(check); - } - - pushData(data: Buffer) { - this.buffer = Buffer.concat([this.buffer, data]); - } - - readInt32BE() { - const data = this.buffer.readInt32BE(this.offset); - this.offset += 4; - return data; - } - - readInt32LE() { - const data = this.buffer.readInt32LE(this.offset); - this.offset += 4; - return data; - } - - readUInt32BE() { - const data = this.buffer.readUInt32BE(this.offset); - this.offset += 4; - return data; - } - - readUInt32LE() { - const data = this.buffer.readUInt32LE(this.offset); - this.offset += 4; - return data; - } - - readUInt16BE() { - const data = this.buffer.readUInt16BE(this.offset); - this.offset += 2; - return data; - } - - readUInt16LE() { - const data = this.buffer.readUInt16LE(this.offset); - this.offset += 2; - return data; - } - - readUInt8() { - const data = this.buffer.readUInt8(this.offset); - this.offset += 1; - return data; - } - - readInt8() { - const data = this.buffer.readInt8(this.offset); - this.offset += 1; - return data; - } - - readNBytes(bytes: number, offset = this.offset) { - return this.buffer.slice(offset, offset + bytes); - } - - readNBytesOffset(bytes: number) { - const data = this.buffer.slice(this.offset, this.offset + bytes); - this.offset += bytes; - return data; - } - - setOffset(n: number) { - this.offset = n; - } - - bytesLeft() { - return this.buffer.length - this.offset; - } - - // name is nullable because there are Many(yay....) times it just isn't passed - async waitBytes(bytes: number, name: any | null = null): Promise { - if (this.bytesLeft() >= bytes) { - return; - } - let counter = 0; - return new Promise(async (resolve, reject) => { - while (this.bytesLeft() < bytes) { - counter++; - // console.log('Esperando. BytesLeft: ' + this.bytesLeft() + ' Desejados: ' + bytes); - await this.sleep(4); - if (counter === 50) { - console.log('Stucked on ' + name + ' - Buffer Size: ' + this.buffer.length + ' BytesLeft: ' + this.bytesLeft() + ' BytesNeeded: ' + bytes); - } - } - resolve(); - }); - } - - fill(data: Buffer) { - this.buffer.fill(data, this.offset, this.offset + data.length); - this.offset += data.length; - } - - fillMultiple(data: Buffer, repeats: number) { - this.buffer.fill(data, this.offset, this.offset + data.length * repeats); - this.offset += data.length * repeats; - } - - sleep(n: number): Promise { - return new Promise((resolve, reject) => { - setTimeout(resolve, n); - }); - } -} diff --git a/qemu/src/rfb/types.ts b/qemu/src/rfb/types.ts deleted file mode 100644 index 6274b22..0000000 --- a/qemu/src/rfb/types.ts +++ /dev/null @@ -1,44 +0,0 @@ -export type Rect = { - x: number, - y: number, - width: number, - height: number, -} - -export type VncRectangle = Rect & { - encoding: number, - data: Buffer | null // ? -}; - - -export type PixelFormat = { - bitsPerPixel: number, - depth: number, - bigEndianFlag: number, - trueColorFlag: number, - redMax: number, - greenMax: number, - blueMax: number, - redShift: number, - blueShift: number, - greenShift: number -} - -export type Cursor = Rect & { - cursorPixels: Buffer|null, - bitmask: Buffer|null, - - posX: number, - posY: number -} - -export type Color3 = { - r: number, - g: number, - b: number -} - -export type Color4 = Color3 & { - a: number, -}; - diff --git a/qemu/tsconfig.json b/qemu/tsconfig.json deleted file mode 120000 index 4ec6ff6..0000000 --- a/qemu/tsconfig.json +++ /dev/null @@ -1 +0,0 @@ -../tsconfig.json \ No newline at end of file diff --git a/shared/package.json b/shared/package.json index 05ba112..1eaf7e4 100644 --- a/shared/package.json +++ b/shared/package.json @@ -1,7 +1,6 @@ { "name": "@socketcomputer/shared", "version": "1.0.0", - "private": "true", "description": "crusttest shared bits", "type": "module", "main": "dist/index.js", @@ -9,21 +8,16 @@ "files": [ "dist" ], - "targets": { - "types": {}, - "shared":{ - "context": "browser", - "isLibrary": true, - "outputFormat": "esmodule" - } + "types": {}, + "shared": { + "context": "browser", + "isLibrary": true, + "outputFormat": "esmodule" + } }, - - "dependencies": { - }, - "devDependencies": { - "parcel": "^2.12.0" + "parcel": "^2.12.0" }, "scripts": { "build": "parcel build src/index.ts --target shared --target types" diff --git a/webapp/package.json b/webapp/package.json index 7d9704c..04bd65a 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -1,7 +1,6 @@ { "name": "@socketcomputer/webapp", "version": "1.0.0", - "private": "true", "description": "", "scripts": { "serve": "parcel src/index.html", @@ -11,7 +10,5 @@ "license": "ISC", "devDependencies": { "parcel": "^2.12.0" - }, - "dependencies": { } } diff --git a/yarn.lock b/yarn.lock index 293218d..7454d24 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,2706 +1,4416 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@^7.0.0": - version "7.24.2" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz" - integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ== - dependencies: - "@babel/highlight" "^7.24.2" - picocolors "^1.0.0" - -"@babel/helper-validator-identifier@^7.22.20": - version "7.22.20" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz" - integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== - -"@babel/highlight@^7.24.2": - version "7.24.2" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz" - integrity sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA== - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" - js-tokens "^4.0.0" - picocolors "^1.0.0" - -"@fastify/ajv-compiler@^3.5.0": - version "3.5.0" - resolved "https://registry.npmjs.org/@fastify/ajv-compiler/-/ajv-compiler-3.5.0.tgz" - integrity sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA== - dependencies: - ajv "^8.11.0" - ajv-formats "^2.1.1" - fast-uri "^2.0.0" - -"@fastify/error@^3.3.0", "@fastify/error@^3.4.0": - version "3.4.1" - resolved "https://registry.npmjs.org/@fastify/error/-/error-3.4.1.tgz" - integrity sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ== - -"@fastify/fast-json-stringify-compiler@^4.3.0": - version "4.3.0" - resolved "https://registry.npmjs.org/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.3.0.tgz" - integrity sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA== - dependencies: - fast-json-stringify "^5.7.0" - -"@fastify/merge-json-schemas@^0.1.0": - version "0.1.1" - resolved "https://registry.npmjs.org/@fastify/merge-json-schemas/-/merge-json-schemas-0.1.1.tgz" - integrity sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA== - dependencies: - fast-deep-equal "^3.1.3" - -"@fastify/websocket@^10.0.1": - version "10.0.1" - resolved "https://registry.npmjs.org/@fastify/websocket/-/websocket-10.0.1.tgz" - integrity sha512-8/pQIxTPRD8U94aILTeJ+2O3el/r19+Ej5z1O1mXlqplsUH7KzCjAI0sgd5DM/NoPjAi5qLFNIjgM5+9/rGSNw== - dependencies: - duplexify "^4.1.2" - fastify-plugin "^4.0.0" - ws "^8.0.0" - -"@lezer/common@^1.0.0": - version "1.2.1" - resolved "https://registry.npmjs.org/@lezer/common/-/common-1.2.1.tgz" - integrity sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ== - -"@lezer/lr@^1.0.0": - version "1.4.0" - resolved "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.0.tgz" - integrity sha512-Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg== - dependencies: - "@lezer/common" "^1.0.0" - -"@lmdb/lmdb-darwin-arm64@2.8.5": - version "2.8.5" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.8.5.tgz#895d8cb16a9d709ce5fedd8b60022903b875e08e" - integrity sha512-KPDeVScZgA1oq0CiPBcOa3kHIqU+pTOwRFDIhxvmf8CTNvqdZQYp5cCKW0bUk69VygB2PuTiINFWbY78aR2pQw== - -"@lmdb/lmdb-darwin-x64@2.8.5": - version "2.8.5" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.8.5.tgz#ca243534c8b37d5516c557e4624256d18dd63184" - integrity sha512-w/sLhN4T7MW1nB3R/U8WK5BgQLz904wh+/SmA2jD8NnF7BLLoUgflCNxOeSPOWp8geP6nP/+VjWzZVip7rZ1ug== - -"@lmdb/lmdb-linux-arm64@2.8.5": - version "2.8.5" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.8.5.tgz#b44a8023057e21512eefb9f6120096843b531c1e" - integrity sha512-vtbZRHH5UDlL01TT5jB576Zox3+hdyogvpcbvVJlmU5PdL3c5V7cj1EODdh1CHPksRl+cws/58ugEHi8bcj4Ww== - -"@lmdb/lmdb-linux-arm@2.8.5": - version "2.8.5" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.8.5.tgz#17bd54740779c3e4324e78e8f747c21416a84b3d" - integrity sha512-c0TGMbm2M55pwTDIfkDLB6BpIsgxV4PjYck2HiOX+cy/JWiBXz32lYbarPqejKs9Flm7YVAKSILUducU9g2RVg== - -"@lmdb/lmdb-linux-x64@2.8.5": - version "2.8.5" - resolved "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.8.5.tgz" - integrity sha512-Xkc8IUx9aEhP0zvgeKy7IQ3ReX2N8N1L0WPcQwnZweWmOuKfwpS3GRIYqLtK5za/w3E60zhFfNdS+3pBZPytqQ== - -"@lmdb/lmdb-win32-x64@2.8.5": - version "2.8.5" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.8.5.tgz#8233e8762440b0f4632c47a09b1b6f23de8b934c" - integrity sha512-4wvrf5BgnR8RpogHhtpCPJMKBmvyZPhhUtEwMJbXh0ni2BucpfF07jlmyM11zRqQ2XIq6PbC2j7W7UCCcm1rRQ== - -"@mapbox/node-pre-gyp@^1.0.0": - version "1.0.11" - resolved "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz" - integrity sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ== - dependencies: - detect-libc "^2.0.0" - https-proxy-agent "^5.0.0" - make-dir "^3.1.0" - node-fetch "^2.6.7" - nopt "^5.0.0" - npmlog "^5.0.1" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.11" - -"@mischnic/json-sourcemap@^0.1.0": - version "0.1.1" - resolved "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.1.tgz" - integrity sha512-iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w== - dependencies: - "@lezer/common" "^1.0.0" - "@lezer/lr" "^1.0.0" - json5 "^2.2.1" - -"@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.2.tgz#44d752c1a2dc113f15f781b7cc4f53a307e3fa38" - integrity sha512-9bfjwDxIDWmmOKusUcqdS4Rw+SETlp9Dy39Xui9BEGEk19dDwH0jhipwFzEff/pFg95NKymc6TOTbRKcWeRqyQ== - -"@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.2.tgz#f954f34355712212a8e06c465bc06c40852c6bb3" - integrity sha512-lwriRAHm1Yg4iDf23Oxm9n/t5Zpw1lVnxYU3HnJPTi2lJRkKTrps1KVgvL6m7WvmhYVt/FIsssWay+k45QHeuw== - -"@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.2.tgz#45c63037f045c2b15c44f80f0393fa24f9655367" - integrity sha512-FU20Bo66/f7He9Fp9sP2zaJ1Q8L9uLPZQDub/WlUip78JlPeMbVL8546HbZfcW9LNciEXc8d+tThSJjSC+tmsg== - -"@msgpackr-extract/msgpackr-extract-linux-arm@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.2.tgz#35707efeafe6d22b3f373caf9e8775e8920d1399" - integrity sha512-MOI9Dlfrpi2Cuc7i5dXdxPbFIgbDBGgKR5F2yWEa6FVEtSWncfVNKW5AKjImAQ6CZlBK9tympdsZJ2xThBiWWA== - -"@msgpackr-extract/msgpackr-extract-linux-x64@3.0.2": - version "3.0.2" - resolved "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.2.tgz" - integrity sha512-gsWNDCklNy7Ajk0vBBf9jEx04RUxuDQfBse918Ww+Qb9HCPoGzS+XJTLe96iN3BVK7grnLiYghP/M4L8VsaHeA== - -"@msgpackr-extract/msgpackr-extract-win32-x64@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.2.tgz#0f164b726869f71da3c594171df5ebc1c4b0a407" - integrity sha512-O+6Gs8UeDbyFpbSh2CPEz/UOrrdWPTBYNblZK5CxxLisYt4kGX3Sc+czffFonyjiGSq3jWLwJS/CCJc7tBr4sQ== - -"@parcel/bundler-default@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.12.0.tgz" - integrity sha512-3ybN74oYNMKyjD6V20c9Gerdbh7teeNvVMwIoHIQMzuIFT6IGX53PyOLlOKRLbjxMc0TMimQQxIt2eQqxR5LsA== - dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/graph" "3.2.0" - "@parcel/plugin" "2.12.0" - "@parcel/rust" "2.12.0" - "@parcel/utils" "2.12.0" - nullthrows "^1.1.1" - -"@parcel/cache@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/cache/-/cache-2.12.0.tgz" - integrity sha512-FX5ZpTEkxvq/yvWklRHDESVRz+c7sLTXgFuzz6uEnBcXV38j6dMSikflNpHA6q/L4GKkCqRywm9R6XQwhwIMyw== - dependencies: - "@parcel/fs" "2.12.0" - "@parcel/logger" "2.12.0" - "@parcel/utils" "2.12.0" - lmdb "2.8.5" - -"@parcel/codeframe@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.12.0.tgz" - integrity sha512-v2VmneILFiHZJTxPiR7GEF1wey1/IXPdZMcUlNXBiPZyWDfcuNgGGVQkx/xW561rULLIvDPharOMdxz5oHOKQg== - dependencies: - chalk "^4.1.0" - -"@parcel/compressor-raw@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.12.0.tgz" - integrity sha512-h41Q3X7ZAQ9wbQ2csP8QGrwepasLZdXiuEdpUryDce6rF9ZiHoJ97MRpdLxOhOPyASTw/xDgE1xyaPQr0Q3f5A== - dependencies: - "@parcel/plugin" "2.12.0" - -"@parcel/config-default@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.12.0.tgz" - integrity sha512-dPNe2n9eEsKRc1soWIY0yToMUPirPIa2QhxcCB3Z5RjpDGIXm0pds+BaiqY6uGLEEzsjhRO0ujd4v2Rmm0vuFg== - dependencies: - "@parcel/bundler-default" "2.12.0" - "@parcel/compressor-raw" "2.12.0" - "@parcel/namer-default" "2.12.0" - "@parcel/optimizer-css" "2.12.0" - "@parcel/optimizer-htmlnano" "2.12.0" - "@parcel/optimizer-image" "2.12.0" - "@parcel/optimizer-svgo" "2.12.0" - "@parcel/optimizer-swc" "2.12.0" - "@parcel/packager-css" "2.12.0" - "@parcel/packager-html" "2.12.0" - "@parcel/packager-js" "2.12.0" - "@parcel/packager-raw" "2.12.0" - "@parcel/packager-svg" "2.12.0" - "@parcel/packager-wasm" "2.12.0" - "@parcel/reporter-dev-server" "2.12.0" - "@parcel/resolver-default" "2.12.0" - "@parcel/runtime-browser-hmr" "2.12.0" - "@parcel/runtime-js" "2.12.0" - "@parcel/runtime-react-refresh" "2.12.0" - "@parcel/runtime-service-worker" "2.12.0" - "@parcel/transformer-babel" "2.12.0" - "@parcel/transformer-css" "2.12.0" - "@parcel/transformer-html" "2.12.0" - "@parcel/transformer-image" "2.12.0" - "@parcel/transformer-js" "2.12.0" - "@parcel/transformer-json" "2.12.0" - "@parcel/transformer-postcss" "2.12.0" - "@parcel/transformer-posthtml" "2.12.0" - "@parcel/transformer-raw" "2.12.0" - "@parcel/transformer-react-refresh-wrap" "2.12.0" - "@parcel/transformer-svg" "2.12.0" - -"@parcel/core@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/core/-/core-2.12.0.tgz" - integrity sha512-s+6pwEj+GfKf7vqGUzN9iSEPueUssCCQrCBUlcAfKrJe0a22hTUCjewpB0I7lNrCIULt8dkndD+sMdOrXsRl6Q== - dependencies: - "@mischnic/json-sourcemap" "^0.1.0" - "@parcel/cache" "2.12.0" - "@parcel/diagnostic" "2.12.0" - "@parcel/events" "2.12.0" - "@parcel/fs" "2.12.0" - "@parcel/graph" "3.2.0" - "@parcel/logger" "2.12.0" - "@parcel/package-manager" "2.12.0" - "@parcel/plugin" "2.12.0" - "@parcel/profiler" "2.12.0" - "@parcel/rust" "2.12.0" - "@parcel/source-map" "^2.1.1" - "@parcel/types" "2.12.0" - "@parcel/utils" "2.12.0" - "@parcel/workers" "2.12.0" - abortcontroller-polyfill "^1.1.9" - base-x "^3.0.8" - browserslist "^4.6.6" - clone "^2.1.1" - dotenv "^7.0.0" - dotenv-expand "^5.1.0" - json5 "^2.2.0" - msgpackr "^1.9.9" - nullthrows "^1.1.1" - semver "^7.5.2" - -"@parcel/diagnostic@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.12.0.tgz" - integrity sha512-8f1NOsSFK+F4AwFCKynyIu9Kr/uWHC+SywAv4oS6Bv3Acig0gtwUjugk0C9UaB8ztBZiW5TQZhw+uPZn9T/lJA== - dependencies: - "@mischnic/json-sourcemap" "^0.1.0" - nullthrows "^1.1.1" - -"@parcel/events@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/events/-/events-2.12.0.tgz" - integrity sha512-nmAAEIKLjW1kB2cUbCYSmZOGbnGj8wCzhqnK727zCCWaA25ogzAtt657GPOeFyqW77KyosU728Tl63Fc8hphIA== - -"@parcel/fs@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/fs/-/fs-2.12.0.tgz" - integrity sha512-NnFkuvou1YBtPOhTdZr44WN7I60cGyly2wpHzqRl62yhObyi1KvW0SjwOMa0QGNcBOIzp4G0CapoZ93hD0RG5Q== - dependencies: - "@parcel/rust" "2.12.0" - "@parcel/types" "2.12.0" - "@parcel/utils" "2.12.0" - "@parcel/watcher" "^2.0.7" - "@parcel/workers" "2.12.0" - -"@parcel/graph@3.2.0": - version "3.2.0" - resolved "https://registry.npmjs.org/@parcel/graph/-/graph-3.2.0.tgz" - integrity sha512-xlrmCPqy58D4Fg5umV7bpwDx5Vyt7MlnQPxW68vae5+BA4GSWetfZt+Cs5dtotMG2oCHzZxhIPt7YZ7NRyQzLA== - dependencies: - nullthrows "^1.1.1" - -"@parcel/logger@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/logger/-/logger-2.12.0.tgz" - integrity sha512-cJ7Paqa7/9VJ7C+KwgJlwMqTQBOjjn71FbKk0G07hydUEBISU2aDfmc/52o60ErL9l+vXB26zTrIBanbxS8rVg== - dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/events" "2.12.0" - -"@parcel/markdown-ansi@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.12.0.tgz" - integrity sha512-WZz3rzL8k0H3WR4qTHX6Ic8DlEs17keO9gtD4MNGyMNQbqQEvQ61lWJaIH0nAtgEetu0SOITiVqdZrb8zx/M7w== - dependencies: - chalk "^4.1.0" - -"@parcel/namer-default@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.12.0.tgz" - integrity sha512-9DNKPDHWgMnMtqqZIMiEj/R9PNWW16lpnlHjwK3ciRlMPgjPJ8+UNc255teZODhX0T17GOzPdGbU/O/xbxVPzA== - dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/plugin" "2.12.0" - nullthrows "^1.1.1" - -"@parcel/node-resolver-core@3.3.0": - version "3.3.0" - resolved "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.3.0.tgz" - integrity sha512-rhPW9DYPEIqQBSlYzz3S0AjXxjN6Ub2yS6tzzsW/4S3Gpsgk/uEq4ZfxPvoPf/6TgZndVxmKwpmxaKtGMmf3cA== - dependencies: - "@mischnic/json-sourcemap" "^0.1.0" - "@parcel/diagnostic" "2.12.0" - "@parcel/fs" "2.12.0" - "@parcel/rust" "2.12.0" - "@parcel/utils" "2.12.0" - nullthrows "^1.1.1" - semver "^7.5.2" - -"@parcel/optimizer-css@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.12.0.tgz" - integrity sha512-ifbcC97fRzpruTjaa8axIFeX4MjjSIlQfem3EJug3L2AVqQUXnM1XO8L0NaXGNLTW2qnh1ZjIJ7vXT/QhsphsA== - dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/plugin" "2.12.0" - "@parcel/source-map" "^2.1.1" - "@parcel/utils" "2.12.0" - browserslist "^4.6.6" - lightningcss "^1.22.1" - nullthrows "^1.1.1" - -"@parcel/optimizer-htmlnano@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.12.0.tgz" - integrity sha512-MfPMeCrT8FYiOrpFHVR+NcZQlXAptK2r4nGJjfT+ndPBhEEZp4yyL7n1y7HfX9geg5altc4WTb4Gug7rCoW8VQ== - dependencies: - "@parcel/plugin" "2.12.0" - htmlnano "^2.0.0" - nullthrows "^1.1.1" - posthtml "^0.16.5" - svgo "^2.4.0" - -"@parcel/optimizer-image@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.12.0.tgz" - integrity sha512-bo1O7raeAIbRU5nmNVtx8divLW9Xqn0c57GVNGeAK4mygnQoqHqRZ0mR9uboh64pxv6ijXZHPhKvU9HEpjPjBQ== - dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/plugin" "2.12.0" - "@parcel/rust" "2.12.0" - "@parcel/utils" "2.12.0" - "@parcel/workers" "2.12.0" - -"@parcel/optimizer-svgo@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.12.0.tgz" - integrity sha512-Kyli+ZZXnoonnbeRQdoWwee9Bk2jm/49xvnfb+2OO8NN0d41lblBoRhOyFiScRnJrw7eVl1Xrz7NTkXCIO7XFQ== - dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/plugin" "2.12.0" - "@parcel/utils" "2.12.0" - svgo "^2.4.0" - -"@parcel/optimizer-swc@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.12.0.tgz" - integrity sha512-iBi6LZB3lm6WmbXfzi8J3DCVPmn4FN2lw7DGXxUXu7MouDPVWfTsM6U/5TkSHJRNRogZ2gqy5q9g34NPxHbJcw== - dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/plugin" "2.12.0" - "@parcel/source-map" "^2.1.1" - "@parcel/utils" "2.12.0" - "@swc/core" "^1.3.36" - nullthrows "^1.1.1" - -"@parcel/package-manager@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.12.0.tgz" - integrity sha512-0nvAezcjPx9FT+hIL+LS1jb0aohwLZXct7jAh7i0MLMtehOi0z1Sau+QpgMlA9rfEZZ1LIeFdnZZwqSy7Ccspw== - dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/fs" "2.12.0" - "@parcel/logger" "2.12.0" - "@parcel/node-resolver-core" "3.3.0" - "@parcel/types" "2.12.0" - "@parcel/utils" "2.12.0" - "@parcel/workers" "2.12.0" - "@swc/core" "^1.3.36" - semver "^7.5.2" - -"@parcel/packager-css@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.12.0.tgz" - integrity sha512-j3a/ODciaNKD19IYdWJT+TP+tnhhn5koBGBWWtrKSu0UxWpnezIGZetit3eE+Y9+NTePalMkvpIlit2eDhvfJA== - dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/plugin" "2.12.0" - "@parcel/source-map" "^2.1.1" - "@parcel/utils" "2.12.0" - lightningcss "^1.22.1" - nullthrows "^1.1.1" - -"@parcel/packager-html@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.12.0.tgz" - integrity sha512-PpvGB9hFFe+19NXGz2ApvPrkA9GwEqaDAninT+3pJD57OVBaxB8U+HN4a5LICKxjUppPPqmrLb6YPbD65IX4RA== - dependencies: - "@parcel/plugin" "2.12.0" - "@parcel/types" "2.12.0" - "@parcel/utils" "2.12.0" - nullthrows "^1.1.1" - posthtml "^0.16.5" - -"@parcel/packager-js@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.12.0.tgz" - integrity sha512-viMF+FszITRRr8+2iJyk+4ruGiL27Y6AF7hQ3xbJfzqnmbOhGFtLTQwuwhOLqN/mWR2VKdgbLpZSarWaO3yAMg== - dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/plugin" "2.12.0" - "@parcel/rust" "2.12.0" - "@parcel/source-map" "^2.1.1" - "@parcel/types" "2.12.0" - "@parcel/utils" "2.12.0" - globals "^13.2.0" - nullthrows "^1.1.1" - -"@parcel/packager-raw@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.12.0.tgz" - integrity sha512-tJZqFbHqP24aq1F+OojFbQIc09P/u8HAW5xfndCrFnXpW4wTgM3p03P0xfw3gnNq+TtxHJ8c3UFE5LnXNNKhYA== - dependencies: - "@parcel/plugin" "2.12.0" - -"@parcel/packager-svg@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.12.0.tgz" - integrity sha512-ldaGiacGb2lLqcXas97k8JiZRbAnNREmcvoY2W2dvW4loVuDT9B9fU777mbV6zODpcgcHWsLL3lYbJ5Lt3y9cg== - dependencies: - "@parcel/plugin" "2.12.0" - "@parcel/types" "2.12.0" - "@parcel/utils" "2.12.0" - posthtml "^0.16.4" - -"@parcel/packager-ts@2.12.0": - version "2.12.0" - resolved "https://registry.yarnpkg.com/@parcel/packager-ts/-/packager-ts-2.12.0.tgz#7422c07ff3a327fdb592f6d707d31bc146590a17" - integrity sha512-8wR0BNN2NBD+IIU0tjioK+lRD4p2Qi/fKxDH5ixEW912tRV+Vd4kE8k++U6YQIpSlK4FRnjFod5zYYhNSLuiXg== - dependencies: - "@parcel/plugin" "2.12.0" - -"@parcel/packager-wasm@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.12.0.tgz" - integrity sha512-fYqZzIqO9fGYveeImzF8ll6KRo2LrOXfD+2Y5U3BiX/wp9wv17dz50QLDQm9hmTcKGWxK4yWqKQh+Evp/fae7A== - dependencies: - "@parcel/plugin" "2.12.0" - -"@parcel/plugin@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.12.0.tgz" - integrity sha512-nc/uRA8DiMoe4neBbzV6kDndh/58a4wQuGKw5oEoIwBCHUvE2W8ZFSu7ollSXUGRzfacTt4NdY8TwS73ScWZ+g== - dependencies: - "@parcel/types" "2.12.0" - -"@parcel/profiler@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.12.0.tgz" - integrity sha512-q53fvl5LDcFYzMUtSusUBZSjQrKjMlLEBgKeQHFwkimwR1mgoseaDBDuNz0XvmzDzF1UelJ02TUKCGacU8W2qA== - dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/events" "2.12.0" - chrome-trace-event "^1.0.2" - -"@parcel/reporter-cli@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.12.0.tgz" - integrity sha512-TqKsH4GVOLPSCanZ6tcTPj+rdVHERnt5y4bwTM82cajM21bCX1Ruwp8xOKU+03091oV2pv5ieB18pJyRF7IpIw== - dependencies: - "@parcel/plugin" "2.12.0" - "@parcel/types" "2.12.0" - "@parcel/utils" "2.12.0" - chalk "^4.1.0" - term-size "^2.2.1" - -"@parcel/reporter-dev-server@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.12.0.tgz" - integrity sha512-tIcDqRvAPAttRlTV28dHcbWT5K2r/MBFks7nM4nrEDHWtnrCwimkDmZTc1kD8QOCCjGVwRHcQybpHvxfwol6GA== - dependencies: - "@parcel/plugin" "2.12.0" - "@parcel/utils" "2.12.0" - -"@parcel/reporter-tracer@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/reporter-tracer/-/reporter-tracer-2.12.0.tgz" - integrity sha512-g8rlu9GxB8Ut/F8WGx4zidIPQ4pcYFjU9bZO+fyRIPrSUFH2bKijCnbZcr4ntqzDGx74hwD6cCG4DBoleq2UlQ== - dependencies: - "@parcel/plugin" "2.12.0" - "@parcel/utils" "2.12.0" - chrome-trace-event "^1.0.3" - nullthrows "^1.1.1" - -"@parcel/resolver-default@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.12.0.tgz" - integrity sha512-uuhbajTax37TwCxu7V98JtRLiT6hzE4VYSu5B7Qkauy14/WFt2dz6GOUXPgVsED569/hkxebPx3KCMtZW6cHHA== - dependencies: - "@parcel/node-resolver-core" "3.3.0" - "@parcel/plugin" "2.12.0" - -"@parcel/runtime-browser-hmr@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.12.0.tgz" - integrity sha512-4ZLp2FWyD32r0GlTulO3+jxgsA3oO1P1b5oO2IWuWilfhcJH5LTiazpL5YdusUjtNn9PGN6QLAWfxmzRIfM+Ow== - dependencies: - "@parcel/plugin" "2.12.0" - "@parcel/utils" "2.12.0" - -"@parcel/runtime-js@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.12.0.tgz" - integrity sha512-sBerP32Z1crX5PfLNGDSXSdqzlllM++GVnVQVeM7DgMKS8JIFG3VLi28YkX+dYYGtPypm01JoIHCkvwiZEcQJg== - dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/plugin" "2.12.0" - "@parcel/utils" "2.12.0" - nullthrows "^1.1.1" - -"@parcel/runtime-react-refresh@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.12.0.tgz" - integrity sha512-SCHkcczJIDFTFdLTzrHTkQ0aTrX3xH6jrA4UsCBL6ji61+w+ohy4jEEe9qCgJVXhnJfGLE43HNXek+0MStX+Mw== - dependencies: - "@parcel/plugin" "2.12.0" - "@parcel/utils" "2.12.0" - react-error-overlay "6.0.9" - react-refresh "^0.9.0" - -"@parcel/runtime-service-worker@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.12.0.tgz" - integrity sha512-BXuMBsfiwpIEnssn+jqfC3jkgbS8oxeo3C7xhSQsuSv+AF2FwY3O3AO1c1RBskEW3XrBLNINOJujroNw80VTKA== - dependencies: - "@parcel/plugin" "2.12.0" - "@parcel/utils" "2.12.0" - nullthrows "^1.1.1" - -"@parcel/rust@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/rust/-/rust-2.12.0.tgz" - integrity sha512-005cldMdFZFDPOjbDVEXcINQ3wT4vrxvSavRWI3Az0e3E18exO/x/mW9f648KtXugOXMAqCEqhFHcXECL9nmMw== - -"@parcel/source-map@^2.1.1": - version "2.1.1" - resolved "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.1.1.tgz" - integrity sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew== - dependencies: - detect-libc "^1.0.3" - -"@parcel/transformer-babel@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.12.0.tgz" - integrity sha512-zQaBfOnf/l8rPxYGnsk/ufh/0EuqvmnxafjBIpKZ//j6rGylw5JCqXSb1QvvAqRYruKeccxGv7+HrxpqKU6V4A== - dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/plugin" "2.12.0" - "@parcel/source-map" "^2.1.1" - "@parcel/utils" "2.12.0" - browserslist "^4.6.6" - json5 "^2.2.0" - nullthrows "^1.1.1" - semver "^7.5.2" - -"@parcel/transformer-css@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.12.0.tgz" - integrity sha512-vXhOqoAlQGATYyQ433Z1DXKmiKmzOAUmKysbYH3FD+LKEKLMEl/pA14goqp00TW+A/EjtSKKyeMyHlMIIUqj4Q== - dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/plugin" "2.12.0" - "@parcel/source-map" "^2.1.1" - "@parcel/utils" "2.12.0" - browserslist "^4.6.6" - lightningcss "^1.22.1" - nullthrows "^1.1.1" - -"@parcel/transformer-html@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.12.0.tgz" - integrity sha512-5jW4dFFBlYBvIQk4nrH62rfA/G/KzVzEDa6S+Nne0xXhglLjkm64Ci9b/d4tKZfuGWUbpm2ASAq8skti/nfpXw== - dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/plugin" "2.12.0" - "@parcel/rust" "2.12.0" - nullthrows "^1.1.1" - posthtml "^0.16.5" - posthtml-parser "^0.10.1" - posthtml-render "^3.0.0" - semver "^7.5.2" - srcset "4" - -"@parcel/transformer-image@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.12.0.tgz" - integrity sha512-8hXrGm2IRII49R7lZ0RpmNk27EhcsH+uNKsvxuMpXPuEnWgC/ha/IrjaI29xCng1uGur74bJF43NUSQhR4aTdw== - dependencies: - "@parcel/plugin" "2.12.0" - "@parcel/utils" "2.12.0" - "@parcel/workers" "2.12.0" - nullthrows "^1.1.1" - -"@parcel/transformer-js@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.12.0.tgz" - integrity sha512-OSZpOu+FGDbC/xivu24v092D9w6EGytB3vidwbdiJ2FaPgfV7rxS0WIUjH4I0OcvHAcitArRXL0a3+HrNTdQQw== - dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/plugin" "2.12.0" - "@parcel/rust" "2.12.0" - "@parcel/source-map" "^2.1.1" - "@parcel/utils" "2.12.0" - "@parcel/workers" "2.12.0" - "@swc/helpers" "^0.5.0" - browserslist "^4.6.6" - nullthrows "^1.1.1" - regenerator-runtime "^0.13.7" - semver "^7.5.2" - -"@parcel/transformer-json@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.12.0.tgz" - integrity sha512-Utv64GLRCQILK5r0KFs4o7I41ixMPllwOLOhkdjJKvf1hZmN6WqfOmB1YLbWS/y5Zb/iB52DU2pWZm96vLFQZQ== - dependencies: - "@parcel/plugin" "2.12.0" - json5 "^2.2.0" - -"@parcel/transformer-postcss@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.12.0.tgz" - integrity sha512-FZqn+oUtiLfPOn67EZxPpBkfdFiTnF4iwiXPqvst3XI8H+iC+yNgzmtJkunOOuylpYY6NOU5jT8d7saqWSDv2Q== - dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/plugin" "2.12.0" - "@parcel/rust" "2.12.0" - "@parcel/utils" "2.12.0" - clone "^2.1.1" - nullthrows "^1.1.1" - postcss-value-parser "^4.2.0" - semver "^7.5.2" - -"@parcel/transformer-posthtml@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.12.0.tgz" - integrity sha512-z6Z7rav/pcaWdeD+2sDUcd0mmNZRUvtHaUGa50Y2mr+poxrKilpsnFMSiWBT+oOqPt7j71jzDvrdnAF4XkCljg== - dependencies: - "@parcel/plugin" "2.12.0" - "@parcel/utils" "2.12.0" - nullthrows "^1.1.1" - posthtml "^0.16.5" - posthtml-parser "^0.10.1" - posthtml-render "^3.0.0" - semver "^7.5.2" - -"@parcel/transformer-raw@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.12.0.tgz" - integrity sha512-Ht1fQvXxix0NncdnmnXZsa6hra20RXYh1VqhBYZLsDfkvGGFnXIgO03Jqn4Z8MkKoa0tiNbDhpKIeTjyclbBxQ== - dependencies: - "@parcel/plugin" "2.12.0" - -"@parcel/transformer-react-refresh-wrap@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.12.0.tgz" - integrity sha512-GE8gmP2AZtkpBIV5vSCVhewgOFRhqwdM5Q9jNPOY5PKcM3/Ff0qCqDiTzzGLhk0/VMBrdjssrfZkVx6S/lHdJw== - dependencies: - "@parcel/plugin" "2.12.0" - "@parcel/utils" "2.12.0" - react-refresh "^0.9.0" - -"@parcel/transformer-sass@^2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/transformer-sass/-/transformer-sass-2.12.0.tgz" - integrity sha512-xLLoSLPST+2AHJwFRLl4foArDjjy6P1RChP3TxMU2MVS1sbKGJnfFhFpHAacH8ASjuGtu5rbpfpHRZePlvoZxw== - dependencies: - "@parcel/plugin" "2.12.0" - "@parcel/source-map" "^2.1.1" - sass "^1.38.0" - -"@parcel/transformer-svg@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.12.0.tgz" - integrity sha512-cZJqGRJ4JNdYcb+vj94J7PdOuTnwyy45dM9xqbIMH+HSiiIkfrMsdEwYft0GTyFTdsnf+hdHn3tau7Qa5hhX+A== - dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/plugin" "2.12.0" - "@parcel/rust" "2.12.0" - nullthrows "^1.1.1" - posthtml "^0.16.5" - posthtml-parser "^0.10.1" - posthtml-render "^3.0.0" - semver "^7.5.2" - -"@parcel/transformer-typescript-types@2.12.0": - version "2.12.0" - resolved "https://registry.yarnpkg.com/@parcel/transformer-typescript-types/-/transformer-typescript-types-2.12.0.tgz#63e3fc4d1c5d61e1d3a2d56ff58454cf58b514ca" - integrity sha512-uxF4UBMYvbjiV3zHTWMrZX8cFD92VUvD3ArcGi5WEtuVROUm9Sc47o0mOzxKfMFlJu2KOfZVHYlzK9f/UKA2kQ== - dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/plugin" "2.12.0" - "@parcel/source-map" "^2.1.1" - "@parcel/ts-utils" "2.12.0" - "@parcel/utils" "2.12.0" - nullthrows "^1.1.1" - -"@parcel/ts-utils@2.12.0": - version "2.12.0" - resolved "https://registry.yarnpkg.com/@parcel/ts-utils/-/ts-utils-2.12.0.tgz#47878a6f3baff77d2fa6f9878fe235c9c5d75da8" - integrity sha512-zou+W6dcqnXXUOfN5zGM+ePIWbYOhGp8bVB2jICoNkoKmNAHd4l4zeHl5yQXnbZfynVw88cZVqxtXS8tYebelg== - dependencies: - nullthrows "^1.1.1" - -"@parcel/types@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/types/-/types-2.12.0.tgz" - integrity sha512-8zAFiYNCwNTQcglIObyNwKfRYQK5ELlL13GuBOrSMxueUiI5ylgsGbTS1N7J3dAGZixHO8KhHGv5a71FILn9rQ== - dependencies: - "@parcel/cache" "2.12.0" - "@parcel/diagnostic" "2.12.0" - "@parcel/fs" "2.12.0" - "@parcel/package-manager" "2.12.0" - "@parcel/source-map" "^2.1.1" - "@parcel/workers" "2.12.0" - utility-types "^3.10.0" - -"@parcel/utils@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/utils/-/utils-2.12.0.tgz" - integrity sha512-z1JhLuZ8QmDaYoEIuUCVZlhcFrS7LMfHrb2OCRui5SQFntRWBH2fNM6H/fXXUkT9SkxcuFP2DUA6/m4+Gkz72g== - dependencies: - "@parcel/codeframe" "2.12.0" - "@parcel/diagnostic" "2.12.0" - "@parcel/logger" "2.12.0" - "@parcel/markdown-ansi" "2.12.0" - "@parcel/rust" "2.12.0" - "@parcel/source-map" "^2.1.1" - chalk "^4.1.0" - nullthrows "^1.1.1" - -"@parcel/watcher-android-arm64@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz#c2c19a3c442313ff007d2d7a9c2c1dd3e1c9ca84" - integrity sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg== - -"@parcel/watcher-darwin-arm64@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz#c817c7a3b4f3a79c1535bfe54a1c2818d9ffdc34" - integrity sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA== - -"@parcel/watcher-darwin-x64@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz#1a3f69d9323eae4f1c61a5f480a59c478d2cb020" - integrity sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg== - -"@parcel/watcher-freebsd-x64@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz#0d67fef1609f90ba6a8a662bc76a55fc93706fc8" - integrity sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w== - -"@parcel/watcher-linux-arm-glibc@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz#ce5b340da5829b8e546bd00f752ae5292e1c702d" - integrity sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA== - -"@parcel/watcher-linux-arm64-glibc@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz#6d7c00dde6d40608f9554e73998db11b2b1ff7c7" - integrity sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA== - -"@parcel/watcher-linux-arm64-musl@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz#bd39bc71015f08a4a31a47cd89c236b9d6a7f635" - integrity sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA== - -"@parcel/watcher-linux-x64-glibc@2.4.1": - version "2.4.1" - resolved "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz" - integrity sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg== - -"@parcel/watcher-linux-x64-musl@2.4.1": - version "2.4.1" - resolved "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz" - integrity sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ== - -"@parcel/watcher-win32-arm64@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz#eb4deef37e80f0b5e2f215dd6d7a6d40a85f8adc" - integrity sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg== - -"@parcel/watcher-win32-ia32@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz#94fbd4b497be39fd5c8c71ba05436927842c9df7" - integrity sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw== - -"@parcel/watcher-win32-x64@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz#4bf920912f67cae5f2d264f58df81abfea68dadf" - integrity sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A== - -"@parcel/watcher@^2.0.7": - version "2.4.1" - resolved "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz" - integrity sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA== - dependencies: - detect-libc "^1.0.3" - is-glob "^4.0.3" - micromatch "^4.0.5" - node-addon-api "^7.0.0" - optionalDependencies: - "@parcel/watcher-android-arm64" "2.4.1" - "@parcel/watcher-darwin-arm64" "2.4.1" - "@parcel/watcher-darwin-x64" "2.4.1" - "@parcel/watcher-freebsd-x64" "2.4.1" - "@parcel/watcher-linux-arm-glibc" "2.4.1" - "@parcel/watcher-linux-arm64-glibc" "2.4.1" - "@parcel/watcher-linux-arm64-musl" "2.4.1" - "@parcel/watcher-linux-x64-glibc" "2.4.1" - "@parcel/watcher-linux-x64-musl" "2.4.1" - "@parcel/watcher-win32-arm64" "2.4.1" - "@parcel/watcher-win32-ia32" "2.4.1" - "@parcel/watcher-win32-x64" "2.4.1" - -"@parcel/workers@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@parcel/workers/-/workers-2.12.0.tgz" - integrity sha512-zv5We5Jmb+ZWXlU6A+AufyjY4oZckkxsZ8J4dvyWL0W8IQvGO1JB4FGeryyttzQv3RM3OxcN/BpTGPiDG6keBw== - dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/logger" "2.12.0" - "@parcel/profiler" "2.12.0" - "@parcel/types" "2.12.0" - "@parcel/utils" "2.12.0" - nullthrows "^1.1.1" - -"@swc/core-darwin-arm64@1.4.11": - version "1.4.11" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.4.11.tgz#91ef40816e10495a4038a98dc6c8dfcc85d9c59b" - integrity sha512-C1j1Qp/IHSelVWdEnT7f0iONWxQz6FAqzjCF2iaL+0vFg4V5f2nlgrueY8vj5pNNzSGhrAlxsMxEIp4dj1MXkg== - -"@swc/core-darwin-x64@1.4.11": - version "1.4.11" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.4.11.tgz#6f71e3cd4687ef5df226ba0b8a20adc52fa7dc9e" - integrity sha512-0TTy3Ni8ncgaMCchSQ7FK8ZXQLlamy0FXmGWbR58c+pVZWYZltYPTmheJUvVcR0H2+gPAymRKyfC0iLszDALjg== - -"@swc/core-linux-arm-gnueabihf@1.4.11": - version "1.4.11" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.4.11.tgz#08521822b5510cb506bc49e728f416636ff0306f" - integrity sha512-XJLB71uw0rog4DjYAPxFGAuGCBQpgJDlPZZK6MTmZOvI/1t0+DelJ24IjHIxk500YYM26Yv47xPabqFPD7I2zQ== - -"@swc/core-linux-arm64-gnu@1.4.11": - version "1.4.11" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.4.11.tgz#9485bc591aa573b282d08b168b80a60badb8df9b" - integrity sha512-vYQwzJvm/iu052d5Iw27UFALIN5xSrGkPZXxLNMHPySVko2QMNNBv35HLatkEQHbQ3X+VKSW9J9SkdtAvAVRAQ== - -"@swc/core-linux-arm64-musl@1.4.11": - version "1.4.11" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.4.11.tgz#85eecad7aaab7e94b1ff15ab9d95e80a1e95f356" - integrity sha512-eV+KduiRYUFjPsvbZuJ9aknQH9Tj0U2/G9oIZSzLx/18WsYi+upzHbgxmIIHJ2VJgfd7nN40RI/hMtxNsUzR/g== - -"@swc/core-linux-x64-gnu@1.4.11": - version "1.4.11" - resolved "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.4.11.tgz" - integrity sha512-WA1iGXZ2HpqM1OR9VCQZJ8sQ1KP2or9O4bO8vWZo6HZJIeoQSo7aa9waaCLRpkZvkng1ct/TF/l6ymqSNFXIzQ== - -"@swc/core-linux-x64-musl@1.4.11": - version "1.4.11" - resolved "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.4.11.tgz" - integrity sha512-UkVJToKf0owwQYRnGvjHAeYVDfeimCEcx0VQSbJoN7Iy0ckRZi7YPlmWJU31xtKvikE2bQWCOVe0qbSDqqcWXA== - -"@swc/core-win32-arm64-msvc@1.4.11": - version "1.4.11" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.4.11.tgz#d836b79d8730bf83e6b38a5b888e83944d6fb233" - integrity sha512-35khwkyly7lF5NDSyvIrukBMzxPorgc5iTSDfVO/LvnmN5+fm4lTlrDr4tUfTdOhv3Emy7CsKlsNAeFRJ+Pm+w== - -"@swc/core-win32-ia32-msvc@1.4.11": - version "1.4.11" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.4.11.tgz#bc60bbdc65134aaa5b214e2aaf209acfce401d17" - integrity sha512-Wx8/6f0ufgQF2pbVPsJ2dAmFLwIOW+xBE5fxnb7VnEbGkTgP1qMDWiiAtD9rtvDSuODG3i1AEmAak/2HAc6i6A== - -"@swc/core-win32-x64-msvc@1.4.11": - version "1.4.11" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.4.11.tgz#92fd6d4e2d70bbd4fda438f02310d998db8c7b7c" - integrity sha512-0xRFW6K9UZQH2NVC/0pVB0GJXS45lY24f+6XaPBF1YnMHd8A8GoHl7ugyM5yNUTe2AKhSgk5fJV00EJt/XBtdQ== - -"@swc/core@^1.3.36": - version "1.4.11" - resolved "https://registry.npmjs.org/@swc/core/-/core-1.4.11.tgz" - integrity sha512-WKEakMZxkVwRdgMN4AMJ9K5nysY8g8npgQPczmjBeNK5In7QEAZAJwnyccrWwJZU0XjVeHn2uj+XbOKdDW17rg== - dependencies: - "@swc/counter" "^0.1.2" - "@swc/types" "^0.1.5" - optionalDependencies: - "@swc/core-darwin-arm64" "1.4.11" - "@swc/core-darwin-x64" "1.4.11" - "@swc/core-linux-arm-gnueabihf" "1.4.11" - "@swc/core-linux-arm64-gnu" "1.4.11" - "@swc/core-linux-arm64-musl" "1.4.11" - "@swc/core-linux-x64-gnu" "1.4.11" - "@swc/core-linux-x64-musl" "1.4.11" - "@swc/core-win32-arm64-msvc" "1.4.11" - "@swc/core-win32-ia32-msvc" "1.4.11" - "@swc/core-win32-x64-msvc" "1.4.11" - -"@swc/counter@^0.1.2", "@swc/counter@^0.1.3": - version "0.1.3" - resolved "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz" - integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== - -"@swc/helpers@^0.5.0": - version "0.5.8" - resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.8.tgz" - integrity sha512-lruDGw3pnfM3wmZHeW7JuhkGQaJjPyiKjxeGhdmfoOT53Ic9qb5JLDNaK2HUdl1zLDeX28H221UvKjfdvSLVMg== - dependencies: - tslib "^2.4.0" - -"@swc/types@^0.1.5": - version "0.1.6" - resolved "https://registry.npmjs.org/@swc/types/-/types-0.1.6.tgz" - integrity sha512-/JLo/l2JsT/LRd80C3HfbmVpxOAJ11FO2RCEslFrgzLltoP9j8XIbsyDcfCt2WWyX+CM96rBoNM+IToAkFOugg== - dependencies: - "@swc/counter" "^0.1.3" - -"@trysound/sax@0.2.0": - version "0.2.0" - resolved "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz" - integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== - -"@types/node@*", "@types/node@^20.12.2": - version "20.12.2" - resolved "https://registry.npmjs.org/@types/node/-/node-20.12.2.tgz" - integrity sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ== - dependencies: - undici-types "~5.26.4" - -"@types/split@^1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/split/-/split-1.0.5.tgz#4bd47164b81d6381db37978d5344b374b6825f6c" - integrity sha512-gMiDr4vA6YofTpAkPQtP+5pvStIf3CMYphf32YAG/3RwogNL8ii1CQKDc+sxN62KuxPoRaJXcf2zDCDkEBH4FA== - dependencies: - "@types/node" "*" - "@types/through" "*" - -"@types/through@*": - version "0.0.33" - resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.33.tgz#14ebf599320e1c7851e7d598149af183c6b9ea56" - integrity sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ== - dependencies: - "@types/node" "*" - -"@types/ws@^8.5.10": - version "8.5.10" - resolved "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz" - integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== - dependencies: - "@types/node" "*" - -abbrev@1: - version "1.1.1" - resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - -abortcontroller-polyfill@^1.1.9: - version "1.7.5" - resolved "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz" - integrity sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ== - -abstract-logging@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz" - integrity sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA== - -agent-base@6: - version "6.0.2" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -ajv-formats@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" - integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== - dependencies: - ajv "^8.0.0" - -ajv@^8.0.0, ajv@^8.10.0, ajv@^8.11.0: - version "8.12.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" - integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -"aproba@^1.0.3 || ^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz" - integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== - -archy@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz" - integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== - -are-we-there-yet@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz" - integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== - dependencies: - delegates "^1.0.0" - readable-stream "^3.6.0" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -atomic-sleep@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz" - integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== - -avvio@^8.3.0: - version "8.3.0" - resolved "https://registry.npmjs.org/avvio/-/avvio-8.3.0.tgz" - integrity sha512-VBVH0jubFr9LdFASy/vNtm5giTrnbVquWBhT0fyizuNK2rQ7e7ONU2plZQWUNqtE1EmxFEb+kbSkFRkstiaS9Q== - dependencies: - "@fastify/error" "^3.3.0" - archy "^1.0.0" - debug "^4.0.0" - fastq "^1.17.1" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base-x@^3.0.8: - version "3.0.9" - resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz" - integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== - dependencies: - safe-buffer "^5.0.1" - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -binary-extensions@^2.0.0: - version "2.3.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" - integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== - -boolbase@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" - integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browserslist@^4.6.6: - version "4.23.0" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz" - integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== - dependencies: - caniuse-lite "^1.0.30001587" - electron-to-chromium "^1.4.668" - node-releases "^2.0.14" - update-browserslist-db "^1.0.13" - -buffer@^6.0.3: - version "6.0.3" - resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -caniuse-lite@^1.0.30001587: - version "1.0.30001603" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001603.tgz" - integrity sha512-iL2iSS0eDILMb9n5yKQoTBim9jMZ0Yrk8g0N9K7UzYyWnfIKzXBZD5ngpM37ZcL/cv0Mli8XtVMRYMQAfFpi5Q== - -canvas@^2.11.2: - version "2.11.2" - resolved "https://registry.npmjs.org/canvas/-/canvas-2.11.2.tgz" - integrity sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw== - dependencies: - "@mapbox/node-pre-gyp" "^1.0.0" - nan "^2.17.0" - simple-get "^3.0.3" - -chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -"chokidar@>=3.0.0 <4.0.0": - version "3.6.0" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" - integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -chrome-trace-event@^1.0.2, chrome-trace-event@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== - -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" - integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-support@^1.1.2: - version "1.1.3" - resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - -commander@^7.0.0, commander@^7.2.0: - version "7.2.0" - resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -console-control-strings@^1.0.0, console-control-strings@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" - integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== - -cookie@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz" - integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== - -cosmiconfig@^8.0.0: - version "8.3.6" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz" - integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== - dependencies: - import-fresh "^3.3.0" - js-yaml "^4.1.0" - parse-json "^5.2.0" - path-type "^4.0.0" - -cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -css-select@^4.1.3: - version "4.3.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz" - integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== - dependencies: - boolbase "^1.0.0" - css-what "^6.0.1" - domhandler "^4.3.1" - domutils "^2.8.0" - nth-check "^2.0.1" - -css-tree@^1.1.2, css-tree@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz" - integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-what@^6.0.1: - version "6.1.0" - resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz" - integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== - -csso@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" - -debug@4, debug@^4.0.0: - version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -decompress-response@^4.2.0: - version "4.2.1" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz" - integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== - dependencies: - mimic-response "^2.0.0" - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" - integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== - -detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" - integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== - -detect-libc@^2.0.0, detect-libc@^2.0.1: - version "2.0.3" - resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz" - integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== - -dom-serializer@^1.0.1: - version "1.4.1" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz" - integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.0" - entities "^2.0.0" - -domelementtype@^2.0.1, domelementtype@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domhandler@^4.2.0, domhandler@^4.2.2, domhandler@^4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz" - integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== - dependencies: - domelementtype "^2.2.0" - -domutils@^2.8.0: - version "2.8.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz" - integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== - dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - -dotenv-expand@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz" - integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== - -dotenv@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz" - integrity sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g== - -duplexify@^4.1.2: - version "4.1.3" - resolved "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz" - integrity sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA== - dependencies: - end-of-stream "^1.4.1" - inherits "^2.0.3" - readable-stream "^3.1.1" - stream-shift "^1.0.2" - -electron-to-chromium@^1.4.668: - version "1.4.723" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.723.tgz" - integrity sha512-rxFVtrMGMFROr4qqU6n95rUi9IlfIm+lIAt+hOToy/9r6CDv0XiEcQdC3VP71y1pE5CFTzKV0RvxOGYCPWWHPw== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -end-of-stream@^1.4.1: - version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -entities@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz" - integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -escalade@^3.1.1: - version "3.1.2" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz" - integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - -events@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -execa@^8.0.1: - version "8.0.1" - resolved "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz" - integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^8.0.1" - human-signals "^5.0.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^4.1.0" - strip-final-newline "^3.0.0" - -fast-content-type-parse@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-1.1.0.tgz" - integrity sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ== - -fast-decode-uri-component@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz" - integrity sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg== - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-json-stringify@^5.7.0, fast-json-stringify@^5.8.0: - version "5.13.0" - resolved "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-5.13.0.tgz" - integrity sha512-XjTDWKHP3GoMQUOfnjYUbqeHeEt+PvYgvBdG2fRSmYaORILbSr8xTJvZX+w1YSAP5pw2NwKrGRmQleYueZEoxw== - dependencies: - "@fastify/merge-json-schemas" "^0.1.0" - ajv "^8.10.0" - ajv-formats "^2.1.1" - fast-deep-equal "^3.1.3" - fast-uri "^2.1.0" - json-schema-ref-resolver "^1.0.1" - rfdc "^1.2.0" - -fast-querystring@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.2.tgz" - integrity sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg== - dependencies: - fast-decode-uri-component "^1.0.1" - -fast-redact@^3.1.1: - version "3.5.0" - resolved "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz" - integrity sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A== - -fast-uri@^2.0.0, fast-uri@^2.1.0: - version "2.3.0" - resolved "https://registry.npmjs.org/fast-uri/-/fast-uri-2.3.0.tgz" - integrity sha512-eel5UKGn369gGEWOqBShmFJWfq/xSJvsgDzgLYC845GneayWvXBf0lJCBn5qTABfewy1ZDPoaR5OZCP+kssfuw== - -fastify-plugin@^4.0.0: - version "4.5.1" - resolved "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-4.5.1.tgz" - integrity sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ== - -fastify@^4.26.2: - version "4.26.2" - resolved "https://registry.npmjs.org/fastify/-/fastify-4.26.2.tgz" - integrity sha512-90pjTuPGrfVKtdpLeLzND5nyC4woXZN5VadiNQCicj/iJU4viNHKhsAnb7jmv1vu2IzkLXyBiCzdWuzeXgQ5Ug== - dependencies: - "@fastify/ajv-compiler" "^3.5.0" - "@fastify/error" "^3.4.0" - "@fastify/fast-json-stringify-compiler" "^4.3.0" - abstract-logging "^2.0.1" - avvio "^8.3.0" - fast-content-type-parse "^1.1.0" - fast-json-stringify "^5.8.0" - find-my-way "^8.0.0" - light-my-request "^5.11.0" - pino "^8.17.0" - process-warning "^3.0.0" - proxy-addr "^2.0.7" - rfdc "^1.3.0" - secure-json-parse "^2.7.0" - semver "^7.5.4" - toad-cache "^3.3.0" - -fastq@^1.17.1: - version "1.17.1" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz" - integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== - dependencies: - reusify "^1.0.4" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-my-way@^8.0.0: - version "8.1.0" - resolved "https://registry.npmjs.org/find-my-way/-/find-my-way-8.1.0.tgz" - integrity sha512-41QwjCGcVTODUmLLqTMeoHeiozbMXYMAE1CKFiDyi9zVZ2Vjh0yz3MF0WQZoIb+cmzP/XlbFjlF2NtJmvZHznA== - dependencies: - fast-deep-equal "^3.1.3" - fast-querystring "^1.0.0" - safe-regex2 "^2.0.0" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -gauge@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz" - integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.2" - console-control-strings "^1.0.0" - has-unicode "^2.0.1" - object-assign "^4.1.1" - signal-exit "^3.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.2" - -get-port@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz" - integrity sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw== - -get-stream@^8.0.1: - version "8.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz" - integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== - -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@^7.1.3: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^13.2.0: - version "13.24.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== - dependencies: - type-fest "^0.20.2" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-unicode@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" - integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== - -htmlnano@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/htmlnano/-/htmlnano-2.1.0.tgz" - integrity sha512-jVGRE0Ep9byMBKEu0Vxgl8dhXYOUk0iNQ2pjsG+BcRB0u0oDF5A9p/iBGMg/PGKYUyMD0OAGu8dVT5Lzj8S58g== - dependencies: - cosmiconfig "^8.0.0" - posthtml "^0.16.5" - timsort "^0.3.0" - -htmlparser2@^7.1.1: - version "7.2.0" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz" - integrity sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.2" - domutils "^2.8.0" - entities "^3.0.1" - -https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -human-signals@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz" - integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== - -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -immutable@^4.0.0: - version "4.3.5" - resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz" - integrity sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw== - -import-fresh@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-json@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz" - integrity sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA== - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-ref-resolver@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json-schema-ref-resolver/-/json-schema-ref-resolver-1.0.1.tgz" - integrity sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw== - dependencies: - fast-deep-equal "^3.1.3" - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json5@^2.2.0, json5@^2.2.1: - version "2.2.3" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - -light-my-request@^5.11.0: - version "5.12.0" - resolved "https://registry.npmjs.org/light-my-request/-/light-my-request-5.12.0.tgz" - integrity sha512-P526OX6E7aeCIfw/9UyJNsAISfcFETghysaWHQAlQYayynShT08MOj4c6fBCvTWBrHXSvqBAKDp3amUPSCQI4w== - dependencies: - cookie "^0.6.0" - process-warning "^3.0.0" - set-cookie-parser "^2.4.1" - -lightningcss-darwin-arm64@1.24.1: - version "1.24.1" - resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.24.1.tgz#551735defa1e092ecf91244ca081f65f10ebd5f0" - integrity sha512-1jQ12jBy+AE/73uGQWGSafK5GoWgmSiIQOGhSEXiFJSZxzV+OXIx+a9h2EYHxdJfX864M+2TAxWPWb0Vv+8y4w== - -lightningcss-darwin-x64@1.24.1: - version "1.24.1" - resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.24.1.tgz#5acb1338ac0aae38e405efd854ed97ba11509eea" - integrity sha512-R4R1d7VVdq2mG4igMU+Di8GPf0b64ZLnYVkubYnGG0Qxq1KaXQtAzcLI43EkpnoWvB/kUg8JKCWH4S13NfiLcQ== - -lightningcss-freebsd-x64@1.24.1: - version "1.24.1" - resolved "https://registry.yarnpkg.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.24.1.tgz#ff692c41ed0bbf37ab5a239db4c2fc04c11195e6" - integrity sha512-z6NberUUw5ALES6Ixn2shmjRRrM1cmEn1ZQPiM5IrZ6xHHL5a1lPin9pRv+w6eWfcrEo+qGG6R9XfJrpuY3e4g== - -lightningcss-linux-arm-gnueabihf@1.24.1: - version "1.24.1" - resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.24.1.tgz#ba41556f4422a6a889553ad897898a314386153e" - integrity sha512-NLQLnBQW/0sSg74qLNI8F8QKQXkNg4/ukSTa+XhtkO7v3BnK19TS1MfCbDHt+TTdSgNEBv0tubRuapcKho2EWw== - -lightningcss-linux-arm64-gnu@1.24.1: - version "1.24.1" - resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.24.1.tgz#6b569b6078634233bc470c4179dd67e535f22d73" - integrity sha512-AQxWU8c9E9JAjAi4Qw9CvX2tDIPjgzCTrZCSXKELfs4mCwzxRkHh2RCxX8sFK19RyJoJAjA/Kw8+LMNRHS5qEg== - -lightningcss-linux-arm64-musl@1.24.1: - version "1.24.1" - resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.24.1.tgz#644abd32c09c87228bfb5dda21e8d3f75da6f731" - integrity sha512-JCgH/SrNrhqsguUA0uJUM1PvN5+dVuzPIlXcoWDHSv2OU/BWlj2dUYr3XNzEw748SmNZPfl2NjQrAdzaPOn1lA== - -lightningcss-linux-x64-gnu@1.24.1: - version "1.24.1" - resolved "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.24.1.tgz" - integrity sha512-TYdEsC63bHV0h47aNRGN3RiK7aIeco3/keN4NkoSQ5T8xk09KHuBdySltWAvKLgT8JvR+ayzq8ZHnL1wKWY0rw== - -lightningcss-linux-x64-musl@1.24.1: - version "1.24.1" - resolved "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.24.1.tgz" - integrity sha512-HLfzVik3RToot6pQ2Rgc3JhfZkGi01hFetHt40HrUMoeKitLoqUUT5owM6yTZPTytTUW9ukLBJ1pc3XNMSvlLw== - -lightningcss-win32-x64-msvc@1.24.1: - version "1.24.1" - resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.24.1.tgz#bd6b562d902e0f92904ac3754c722d9e63e00480" - integrity sha512-joEupPjYJ7PjZtDsS5lzALtlAudAbgIBMGJPNeFe5HfdmJXFd13ECmEM+5rXNxYVMRHua2w8132R6ab5Z6K9Ow== - -lightningcss@^1.22.1: - version "1.24.1" - resolved "https://registry.npmjs.org/lightningcss/-/lightningcss-1.24.1.tgz" - integrity sha512-kUpHOLiH5GB0ERSv4pxqlL0RYKnOXtgGtVe7shDGfhS0AZ4D1ouKFYAcLcZhql8aMspDNzaUCumGHZ78tb2fTg== - dependencies: - detect-libc "^1.0.3" - optionalDependencies: - lightningcss-darwin-arm64 "1.24.1" - lightningcss-darwin-x64 "1.24.1" - lightningcss-freebsd-x64 "1.24.1" - lightningcss-linux-arm-gnueabihf "1.24.1" - lightningcss-linux-arm64-gnu "1.24.1" - lightningcss-linux-arm64-musl "1.24.1" - lightningcss-linux-x64-gnu "1.24.1" - lightningcss-linux-x64-musl "1.24.1" - lightningcss-win32-x64-msvc "1.24.1" - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -lmdb@2.8.5: - version "2.8.5" - resolved "https://registry.npmjs.org/lmdb/-/lmdb-2.8.5.tgz" - integrity sha512-9bMdFfc80S+vSldBmG3HOuLVHnxRdNTlpzR6QDnzqCQtCzGUEAGTzBKYMeIM+I/sU4oZfgbcbS7X7F65/z/oxQ== - dependencies: - msgpackr "^1.9.5" - node-addon-api "^6.1.0" - node-gyp-build-optional-packages "5.1.1" - ordered-binary "^1.4.1" - weak-lru-cache "^1.2.2" - optionalDependencies: - "@lmdb/lmdb-darwin-arm64" "2.8.5" - "@lmdb/lmdb-darwin-x64" "2.8.5" - "@lmdb/lmdb-linux-arm" "2.8.5" - "@lmdb/lmdb-linux-arm64" "2.8.5" - "@lmdb/lmdb-linux-x64" "2.8.5" - "@lmdb/lmdb-win32-x64" "2.8.5" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -micromatch@^4.0.5: - version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - -mimic-response@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz" - integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== - -minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minipass@^3.0.0: - version "3.3.6" - resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz" - integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== - dependencies: - yallist "^4.0.0" - -minipass@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz" - integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== - -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -mkdirp@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mnemonist@^0.39.8: - version "0.39.8" - resolved "https://registry.npmjs.org/mnemonist/-/mnemonist-0.39.8.tgz" - integrity sha512-vyWo2K3fjrUw8YeeZ1zF0fy6Mu59RHokURlld8ymdUPjMlD9EC9ov1/YPqTgqRvUN9nTr3Gqfz29LYAmu0PHPQ== - dependencies: - obliterator "^2.0.1" - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -msgpackr-extract@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.2.tgz" - integrity sha512-SdzXp4kD/Qf8agZ9+iTu6eql0m3kWm1A2y1hkpTeVNENutaB0BwHlSvAIaMxwntmRUAUjon2V4L8Z/njd0Ct8A== - dependencies: - node-gyp-build-optional-packages "5.0.7" - optionalDependencies: - "@msgpackr-extract/msgpackr-extract-darwin-arm64" "3.0.2" - "@msgpackr-extract/msgpackr-extract-darwin-x64" "3.0.2" - "@msgpackr-extract/msgpackr-extract-linux-arm" "3.0.2" - "@msgpackr-extract/msgpackr-extract-linux-arm64" "3.0.2" - "@msgpackr-extract/msgpackr-extract-linux-x64" "3.0.2" - "@msgpackr-extract/msgpackr-extract-win32-x64" "3.0.2" - -msgpackr@^1.9.5, msgpackr@^1.9.9: - version "1.10.1" - resolved "https://registry.npmjs.org/msgpackr/-/msgpackr-1.10.1.tgz" - integrity sha512-r5VRLv9qouXuLiIBrLpl2d5ZvPt8svdQTl5/vMvE4nzDMyEX4sgW5yWhuBBj5UmgwOTWj8CIdSXn5sAfsHAWIQ== - optionalDependencies: - msgpackr-extract "^3.0.2" - -nan@^2.17.0: - version "2.19.0" - resolved "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz" - integrity sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw== - -node-addon-api@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz" - integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== - -node-addon-api@^7.0.0: - version "7.1.0" - resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz" - integrity sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g== - -node-fetch@^2.6.7: - version "2.7.0" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - -node-gyp-build-optional-packages@5.0.7: - version "5.0.7" - resolved "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.7.tgz" - integrity sha512-YlCCc6Wffkx0kHkmam79GKvDQ6x+QZkMjFGrIMxgFNILFvGSbCp2fCBC55pGTT9gVaz8Na5CLmxt/urtzRv36w== - -node-gyp-build-optional-packages@5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz" - integrity sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw== - dependencies: - detect-libc "^2.0.1" - -node-releases@^2.0.14: - version "2.0.14" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz" - integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== - -nopt@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" - integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== - dependencies: - abbrev "1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -npm-run-path@^5.1.0: - version "5.3.0" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz" - integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== - dependencies: - path-key "^4.0.0" - -npmlog@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz" - integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== - dependencies: - are-we-there-yet "^2.0.0" - console-control-strings "^1.1.0" - gauge "^3.0.0" - set-blocking "^2.0.0" - -nth-check@^2.0.1: - version "2.1.1" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" - integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== - dependencies: - boolbase "^1.0.0" - -nullthrows@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz" - integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== - -object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -obliterator@^2.0.1: - version "2.0.4" - resolved "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz" - integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== - -on-exit-leak-free@^2.1.0: - version "2.1.2" - resolved "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz" - integrity sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -ordered-binary@^1.4.1: - version "1.5.1" - resolved "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.1.tgz" - integrity sha512-5VyHfHY3cd0iza71JepYG50My+YUbrFtGoUz2ooEydPyPM7Aai/JW098juLr+RG6+rDJuzNNTsEQu2DZa1A41A== - -parcel@^2.12.0: - version "2.12.0" - resolved "https://registry.npmjs.org/parcel/-/parcel-2.12.0.tgz" - integrity sha512-W+gxAq7aQ9dJIg/XLKGcRT0cvnStFAQHPaI0pvD0U2l6IVLueUAm3nwN7lkY62zZNmlvNx6jNtE4wlbS+CyqSg== - dependencies: - "@parcel/config-default" "2.12.0" - "@parcel/core" "2.12.0" - "@parcel/diagnostic" "2.12.0" - "@parcel/events" "2.12.0" - "@parcel/fs" "2.12.0" - "@parcel/logger" "2.12.0" - "@parcel/package-manager" "2.12.0" - "@parcel/reporter-cli" "2.12.0" - "@parcel/reporter-dev-server" "2.12.0" - "@parcel/reporter-tracer" "2.12.0" - "@parcel/utils" "2.12.0" - chalk "^4.1.0" - commander "^7.0.0" - get-port "^4.2.0" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pino-abstract-transport@v1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.1.0.tgz" - integrity sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA== - dependencies: - readable-stream "^4.0.0" - split2 "^4.0.0" - -pino-std-serializers@^6.0.0: - version "6.2.2" - resolved "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz" - integrity sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA== - -pino@^8.17.0: - version "8.19.0" - resolved "https://registry.npmjs.org/pino/-/pino-8.19.0.tgz" - integrity sha512-oswmokxkav9bADfJ2ifrvfHUwad6MLp73Uat0IkQWY3iAw5xTRoznXbXksZs8oaOUMpmhVWD+PZogNzllWpJaA== - dependencies: - atomic-sleep "^1.0.0" - fast-redact "^3.1.1" - on-exit-leak-free "^2.1.0" - pino-abstract-transport v1.1.0 - pino-std-serializers "^6.0.0" - process-warning "^3.0.0" - quick-format-unescaped "^4.0.3" - real-require "^0.2.0" - safe-stable-stringify "^2.3.1" - sonic-boom "^3.7.0" - thread-stream "^2.0.0" - -postcss-value-parser@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -posthtml-parser@^0.10.1: - version "0.10.2" - resolved "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.10.2.tgz" - integrity sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg== - dependencies: - htmlparser2 "^7.1.1" - -posthtml-parser@^0.11.0: - version "0.11.0" - resolved "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz" - integrity sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw== - dependencies: - htmlparser2 "^7.1.1" - -posthtml-render@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz" - integrity sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA== - dependencies: - is-json "^2.0.1" - -posthtml@^0.16.4, posthtml@^0.16.5: - version "0.16.6" - resolved "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz" - integrity sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ== - dependencies: - posthtml-parser "^0.11.0" - posthtml-render "^3.0.0" - -prettier@^3.2.5: - version "3.2.5" - resolved "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz" - integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== - -process-warning@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz" - integrity sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" - integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== - -proxy-addr@^2.0.7: - version "2.0.7" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -punycode@^2.1.0: - version "2.3.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" - integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== - -quick-format-unescaped@^4.0.3: - version "4.0.4" - resolved "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz" - integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== - -react-error-overlay@6.0.9: - version "6.0.9" - resolved "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz" - integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== - -react-refresh@^0.9.0: - version "0.9.0" - resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.9.0.tgz" - integrity sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ== - -readable-stream@^3.1.1, readable-stream@^3.6.0: - version "3.6.2" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-stream@^4.0.0: - version "4.5.2" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz" - integrity sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g== - dependencies: - abort-controller "^3.0.0" - buffer "^6.0.3" - events "^3.3.0" - process "^0.11.10" - string_decoder "^1.3.0" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -real-require@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz" - integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg== - -regenerator-runtime@^0.13.7: - version "0.13.11" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz" - integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -ret@~0.2.0: - version "0.2.2" - resolved "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz" - integrity sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ== - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rfdc@^1.2.0, rfdc@^1.3.0: - version "1.3.1" - resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz" - integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -safe-buffer@^5.0.1, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-regex2@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/safe-regex2/-/safe-regex2-2.0.0.tgz" - integrity sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ== - dependencies: - ret "~0.2.0" - -safe-stable-stringify@^2.3.1: - version "2.4.3" - resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz" - integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== - -sass@^1.38.0: - version "1.72.0" - resolved "https://registry.npmjs.org/sass/-/sass-1.72.0.tgz" - integrity sha512-Gpczt3WA56Ly0Mn8Sl21Vj94s1axi9hDIzDFn9Ph9x3C3p4nNyvsqJoQyVXKou6cBlfFWEgRW4rT8Tb4i3XnVA== - dependencies: - chokidar ">=3.0.0 <4.0.0" - immutable "^4.0.0" - source-map-js ">=0.6.2 <2.0.0" - -secure-json-parse@^2.7.0: - version "2.7.0" - resolved "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz" - integrity sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw== - -semver@^6.0.0: - version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^7.3.5, semver@^7.5.2, semver@^7.5.4: - version "7.6.0" - resolved "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz" - integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== - dependencies: - lru-cache "^6.0.0" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - -set-cookie-parser@^2.4.1: - version "2.6.0" - resolved "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz" - integrity sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ== - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^3.0.0: - version "3.0.7" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -signal-exit@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== - -simple-get@^3.0.3: - version "3.1.1" - resolved "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz" - integrity sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA== - dependencies: - decompress-response "^4.2.0" - once "^1.3.1" - simple-concat "^1.0.0" - -sonic-boom@^3.7.0: - version "3.8.0" - resolved "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.0.tgz" - integrity sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA== - dependencies: - atomic-sleep "^1.0.0" - -"source-map-js@>=0.6.2 <2.0.0": - version "1.2.0" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz" - integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== - -source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -split2@^4.0.0: - version "4.2.0" - resolved "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz" - integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== - -split@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/split/-/split-1.0.1.tgz" - integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== - dependencies: - through "2" - -srcset@4: - version "4.0.0" - resolved "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz" - integrity sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw== - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -stream-http@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.2.0.tgz#1872dfcf24cb15752677e40e5c3f9cc1926028b5" - integrity sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.4" - readable-stream "^3.6.0" - xtend "^4.0.2" - -stream-shift@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz" - integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string_decoder@^1.1.1, string_decoder@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -svgo@^2.4.0: - version "2.8.0" - resolved "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz" - integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== - dependencies: - "@trysound/sax" "0.2.0" - commander "^7.2.0" - css-select "^4.1.3" - css-tree "^1.1.3" - csso "^4.2.0" - picocolors "^1.0.0" - stable "^0.1.8" - -tar@^6.1.11: - version "6.2.1" - resolved "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz" - integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^5.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -term-size@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz" - integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== - -thread-stream@^2.0.0: - version "2.4.1" - resolved "https://registry.npmjs.org/thread-stream/-/thread-stream-2.4.1.tgz" - integrity sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg== - dependencies: - real-require "^0.2.0" - -through@2: - version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz" - integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -toad-cache@^3.3.0: - version "3.7.0" - resolved "https://registry.npmjs.org/toad-cache/-/toad-cache-3.7.0.tgz" - integrity sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -tslib@^2.4.0: - version "2.6.2" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -typescript@^5.4.3: - version "5.4.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz" - integrity sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg== - -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - -update-browserslist-db@^1.0.13: - version "1.0.13" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz" - integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -utility-types@^3.10.0: - version "3.11.0" - resolved "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz" - integrity sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw== - -weak-lru-cache@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz" - integrity sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw== - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.2: - version "1.1.5" - resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" - integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== - dependencies: - string-width "^1.0.2 || 2 || 3 || 4" - -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -ws@^8.0.0: - version "8.16.0" - resolved "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz" - integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== - -xtend@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 8 + cacheKey: 10c0 + +"@babel/code-frame@npm:^7.0.0": + version: 7.24.2 + resolution: "@babel/code-frame@npm:7.24.2" + dependencies: + "@babel/highlight": "npm:^7.24.2" + picocolors: "npm:^1.0.0" + checksum: 10c0/d1d4cba89475ab6aab7a88242e1fd73b15ecb9f30c109b69752956434d10a26a52cbd37727c4eca104b6d45227bd1dfce39a6a6f4a14c9b2f07f871e968cf406 + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-validator-identifier@npm:7.22.20" + checksum: 10c0/dcad63db345fb110e032de46c3688384b0008a42a4845180ce7cd62b1a9c0507a1bed727c4d1060ed1a03ae57b4d918570259f81724aaac1a5b776056f37504e + languageName: node + linkType: hard + +"@babel/highlight@npm:^7.24.2": + version: 7.24.2 + resolution: "@babel/highlight@npm:7.24.2" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.22.20" + chalk: "npm:^2.4.2" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.0.0" + checksum: 10c0/98ce00321daedeed33a4ed9362dc089a70375ff1b3b91228b9f05e6591d387a81a8cba68886e207861b8871efa0bc997ceabdd9c90f6cce3ee1b2f7f941b42db + languageName: node + linkType: hard + +"@computernewb/nodejs-rfb@npm:^0.3.0": + version: 0.3.0 + resolution: "@computernewb/nodejs-rfb@npm:0.3.0" + checksum: 10c0/915a76118011a4a64e28fcc91fafcffe659e5e86db2505554578f1e5dff4883dbaf5fcc013ac377719fe9c798e730b178aa5030027da0f5a9583355ec2ac8af2 + languageName: node + linkType: hard + +"@computernewb/superqemu@npm:^0.1.0": + version: 0.1.0 + resolution: "@computernewb/superqemu@npm:0.1.0" + dependencies: + "@computernewb/nodejs-rfb": "npm:^0.3.0" + execa: "npm:^8.0.1" + pino: "npm:^9.3.1" + checksum: 10c0/7177b46c1093345cc3cbcc09450b8b8b09f09eb74ba5abd283aae39e9d1dbc0780f54187da075e44c78a7b683d47367010a473406c2817c36352edd0ddad2c1a + languageName: node + linkType: hard + +"@fastify/ajv-compiler@npm:^3.5.0": + version: 3.5.0 + resolution: "@fastify/ajv-compiler@npm:3.5.0" + dependencies: + ajv: "npm:^8.11.0" + ajv-formats: "npm:^2.1.1" + fast-uri: "npm:^2.0.0" + checksum: 10c0/d10df76b7016984bf70bc6aca99962468ec43e0be5772d4aa3a7735ae78be44fdbcb2c078fe0cfdffec076080dfb7cbdbf4b729e52b168039477126f9d023af0 + languageName: node + linkType: hard + +"@fastify/error@npm:^3.3.0, @fastify/error@npm:^3.4.0": + version: 3.4.1 + resolution: "@fastify/error@npm:3.4.1" + checksum: 10c0/1f1a0faa8c86639afb6f4bd47a9cdc1f0f20ce0d6944340fbdec8218aaba91dc9cae9ed78e24e61bceb782a867efda2b9a6320091f00dcbb896d9c8a9bdf5f96 + languageName: node + linkType: hard + +"@fastify/fast-json-stringify-compiler@npm:^4.3.0": + version: 4.3.0 + resolution: "@fastify/fast-json-stringify-compiler@npm:4.3.0" + dependencies: + fast-json-stringify: "npm:^5.7.0" + checksum: 10c0/513ef296f5ed682f7a460cfa6c5fb917a32fc540111b873c9937f944558e021492b18f30f9fd8dd20db252381a4428adbcc9f03a077f16c86d02f081eb490c7b + languageName: node + linkType: hard + +"@fastify/merge-json-schemas@npm:^0.1.0": + version: 0.1.1 + resolution: "@fastify/merge-json-schemas@npm:0.1.1" + dependencies: + fast-deep-equal: "npm:^3.1.3" + checksum: 10c0/7979ce12724f7b98aea06f0bb9afb20dd869f0ff6fc697517135cbb54e0a36b062cbb38ec176fe43d1fc455576839240df8f33533939ace2d64a6218a6e6b9c1 + languageName: node + linkType: hard + +"@fastify/websocket@npm:^10.0.1": + version: 10.0.1 + resolution: "@fastify/websocket@npm:10.0.1" + dependencies: + duplexify: "npm:^4.1.2" + fastify-plugin: "npm:^4.0.0" + ws: "npm:^8.0.0" + checksum: 10c0/afe34540c5a65e09894e8108bf8bae77873e0e912c7dfea05b2a005a69b0529e90205068e36a15b957d58b4c758ea804f25d3d5af9ecea72645358ed14efe0d1 + languageName: node + linkType: hard + +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: "npm:^5.1.2" + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: "npm:^7.0.1" + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: "npm:^8.1.0" + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: 10c0/b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e + languageName: node + linkType: hard + +"@lezer/common@npm:^1.0.0": + version: 1.2.1 + resolution: "@lezer/common@npm:1.2.1" + checksum: 10c0/af61436dc026f8deebaded13d8e1beea2ae307cbbfb270116cdedadb8208f0674da9c3b5963128a2b1cd4072b4e90bc8128133f4feaf31b6e801e4568f1a15a6 + languageName: node + linkType: hard + +"@lezer/lr@npm:^1.0.0": + version: 1.4.0 + resolution: "@lezer/lr@npm:1.4.0" + dependencies: + "@lezer/common": "npm:^1.0.0" + checksum: 10c0/1e3af297cc142bb6676cb3c4e1bd310da2e93b53273cf745dc85d839a08e1d3cbbd67e0fc0322a480cf25ee215fefe967c53bc2af3ddf5d9b1bf267081dfa164 + languageName: node + linkType: hard + +"@lmdb/lmdb-darwin-arm64@npm:2.8.5": + version: 2.8.5 + resolution: "@lmdb/lmdb-darwin-arm64@npm:2.8.5" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@lmdb/lmdb-darwin-x64@npm:2.8.5": + version: 2.8.5 + resolution: "@lmdb/lmdb-darwin-x64@npm:2.8.5" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@lmdb/lmdb-linux-arm64@npm:2.8.5": + version: 2.8.5 + resolution: "@lmdb/lmdb-linux-arm64@npm:2.8.5" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@lmdb/lmdb-linux-arm@npm:2.8.5": + version: 2.8.5 + resolution: "@lmdb/lmdb-linux-arm@npm:2.8.5" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@lmdb/lmdb-linux-x64@npm:2.8.5": + version: 2.8.5 + resolution: "@lmdb/lmdb-linux-x64@npm:2.8.5" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@lmdb/lmdb-win32-x64@npm:2.8.5": + version: 2.8.5 + resolution: "@lmdb/lmdb-win32-x64@npm:2.8.5" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@mapbox/node-pre-gyp@npm:^1.0.0": + version: 1.0.11 + resolution: "@mapbox/node-pre-gyp@npm:1.0.11" + dependencies: + detect-libc: "npm:^2.0.0" + https-proxy-agent: "npm:^5.0.0" + make-dir: "npm:^3.1.0" + node-fetch: "npm:^2.6.7" + nopt: "npm:^5.0.0" + npmlog: "npm:^5.0.1" + rimraf: "npm:^3.0.2" + semver: "npm:^7.3.5" + tar: "npm:^6.1.11" + bin: + node-pre-gyp: bin/node-pre-gyp + checksum: 10c0/2b24b93c31beca1c91336fa3b3769fda98e202fb7f9771f0f4062588d36dcc30fcf8118c36aa747fa7f7610d8cf601872bdaaf62ce7822bb08b545d1bbe086cc + languageName: node + linkType: hard + +"@mischnic/json-sourcemap@npm:^0.1.0": + version: 0.1.1 + resolution: "@mischnic/json-sourcemap@npm:0.1.1" + dependencies: + "@lezer/common": "npm:^1.0.0" + "@lezer/lr": "npm:^1.0.0" + json5: "npm:^2.2.1" + checksum: 10c0/e2e314fc048a16baedb10ec4d517c2622e464b8a9f8481cd4c008ebdabed1e5167a8f1407e06a14bb89f035addbb13851c1c5b6672ef8e089205f7f6d300cdd8 + languageName: node + linkType: hard + +"@msgpackr-extract/msgpackr-extract-darwin-arm64@npm:3.0.2": + version: 3.0.2 + resolution: "@msgpackr-extract/msgpackr-extract-darwin-arm64@npm:3.0.2" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@msgpackr-extract/msgpackr-extract-darwin-x64@npm:3.0.2": + version: 3.0.2 + resolution: "@msgpackr-extract/msgpackr-extract-darwin-x64@npm:3.0.2" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@msgpackr-extract/msgpackr-extract-linux-arm64@npm:3.0.2": + version: 3.0.2 + resolution: "@msgpackr-extract/msgpackr-extract-linux-arm64@npm:3.0.2" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@msgpackr-extract/msgpackr-extract-linux-arm@npm:3.0.2": + version: 3.0.2 + resolution: "@msgpackr-extract/msgpackr-extract-linux-arm@npm:3.0.2" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@msgpackr-extract/msgpackr-extract-linux-x64@npm:3.0.2": + version: 3.0.2 + resolution: "@msgpackr-extract/msgpackr-extract-linux-x64@npm:3.0.2" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@msgpackr-extract/msgpackr-extract-win32-x64@npm:3.0.2": + version: 3.0.2 + resolution: "@msgpackr-extract/msgpackr-extract-win32-x64@npm:3.0.2" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@npmcli/agent@npm:^2.0.0": + version: 2.2.2 + resolution: "@npmcli/agent@npm:2.2.2" + dependencies: + agent-base: "npm:^7.1.0" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.1" + lru-cache: "npm:^10.0.1" + socks-proxy-agent: "npm:^8.0.3" + checksum: 10c0/325e0db7b287d4154ecd164c0815c08007abfb07653cc57bceded17bb7fd240998a3cbdbe87d700e30bef494885eccc725ab73b668020811d56623d145b524ae + languageName: node + linkType: hard + +"@npmcli/fs@npm:^3.1.0": + version: 3.1.1 + resolution: "@npmcli/fs@npm:3.1.1" + dependencies: + semver: "npm:^7.3.5" + checksum: 10c0/c37a5b4842bfdece3d14dfdb054f73fe15ed2d3da61b34ff76629fb5b1731647c49166fd2a8bf8b56fcfa51200382385ea8909a3cbecdad612310c114d3f6c99 + languageName: node + linkType: hard + +"@parcel/bundler-default@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/bundler-default@npm:2.12.0" + dependencies: + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/graph": "npm:3.2.0" + "@parcel/plugin": "npm:2.12.0" + "@parcel/rust": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + nullthrows: "npm:^1.1.1" + checksum: 10c0/797e7494c82f2669a8d8d409b2efa2c956d2ac4edd5cd1b85560bbd7696483edb8ec220f66cdd88f7a3e47cfb346f33b21818c96f5a2bac098d5eef5085475d8 + languageName: node + linkType: hard + +"@parcel/cache@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/cache@npm:2.12.0" + dependencies: + "@parcel/fs": "npm:2.12.0" + "@parcel/logger": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + lmdb: "npm:2.8.5" + peerDependencies: + "@parcel/core": ^2.12.0 + checksum: 10c0/ef80c88a754d2e1c9161eb8e518f4a4b03c186001384100d037e333a1c00b4a701b0f6c1743a1663c6bb7e20d09c8582584f44ebea0fc6d81c81b4a81a1d0b6b + languageName: node + linkType: hard + +"@parcel/codeframe@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/codeframe@npm:2.12.0" + dependencies: + chalk: "npm:^4.1.0" + checksum: 10c0/23a73d8a5b6a7612ab6a5918ad52631f58d3529758730517a0ce151f0c533e5b4b1788278dd521d4863dd0e0b972afb590af69cb8523b14e809279825da549a1 + languageName: node + linkType: hard + +"@parcel/compressor-raw@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/compressor-raw@npm:2.12.0" + dependencies: + "@parcel/plugin": "npm:2.12.0" + checksum: 10c0/e057b38d3cae862048f3777ea97544e60465e8efc16ecab0b8602d9c2787c80a09ac3bb338f773af5c17a6b4356caf103986951b47022fdf02b21c5e0b600033 + languageName: node + linkType: hard + +"@parcel/config-default@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/config-default@npm:2.12.0" + dependencies: + "@parcel/bundler-default": "npm:2.12.0" + "@parcel/compressor-raw": "npm:2.12.0" + "@parcel/namer-default": "npm:2.12.0" + "@parcel/optimizer-css": "npm:2.12.0" + "@parcel/optimizer-htmlnano": "npm:2.12.0" + "@parcel/optimizer-image": "npm:2.12.0" + "@parcel/optimizer-svgo": "npm:2.12.0" + "@parcel/optimizer-swc": "npm:2.12.0" + "@parcel/packager-css": "npm:2.12.0" + "@parcel/packager-html": "npm:2.12.0" + "@parcel/packager-js": "npm:2.12.0" + "@parcel/packager-raw": "npm:2.12.0" + "@parcel/packager-svg": "npm:2.12.0" + "@parcel/packager-wasm": "npm:2.12.0" + "@parcel/reporter-dev-server": "npm:2.12.0" + "@parcel/resolver-default": "npm:2.12.0" + "@parcel/runtime-browser-hmr": "npm:2.12.0" + "@parcel/runtime-js": "npm:2.12.0" + "@parcel/runtime-react-refresh": "npm:2.12.0" + "@parcel/runtime-service-worker": "npm:2.12.0" + "@parcel/transformer-babel": "npm:2.12.0" + "@parcel/transformer-css": "npm:2.12.0" + "@parcel/transformer-html": "npm:2.12.0" + "@parcel/transformer-image": "npm:2.12.0" + "@parcel/transformer-js": "npm:2.12.0" + "@parcel/transformer-json": "npm:2.12.0" + "@parcel/transformer-postcss": "npm:2.12.0" + "@parcel/transformer-posthtml": "npm:2.12.0" + "@parcel/transformer-raw": "npm:2.12.0" + "@parcel/transformer-react-refresh-wrap": "npm:2.12.0" + "@parcel/transformer-svg": "npm:2.12.0" + peerDependencies: + "@parcel/core": ^2.12.0 + checksum: 10c0/c3fec515c14479f1a0041db79a70198f04bea94a03a7f331257f057de178d4e0061b68853c2e83d45f891d09fadb8b4361f38421832b6e116edd46f8e0ee51a9 + languageName: node + linkType: hard + +"@parcel/core@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/core@npm:2.12.0" + dependencies: + "@mischnic/json-sourcemap": "npm:^0.1.0" + "@parcel/cache": "npm:2.12.0" + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/events": "npm:2.12.0" + "@parcel/fs": "npm:2.12.0" + "@parcel/graph": "npm:3.2.0" + "@parcel/logger": "npm:2.12.0" + "@parcel/package-manager": "npm:2.12.0" + "@parcel/plugin": "npm:2.12.0" + "@parcel/profiler": "npm:2.12.0" + "@parcel/rust": "npm:2.12.0" + "@parcel/source-map": "npm:^2.1.1" + "@parcel/types": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + "@parcel/workers": "npm:2.12.0" + abortcontroller-polyfill: "npm:^1.1.9" + base-x: "npm:^3.0.8" + browserslist: "npm:^4.6.6" + clone: "npm:^2.1.1" + dotenv: "npm:^7.0.0" + dotenv-expand: "npm:^5.1.0" + json5: "npm:^2.2.0" + msgpackr: "npm:^1.9.9" + nullthrows: "npm:^1.1.1" + semver: "npm:^7.5.2" + checksum: 10c0/ab6b4bc1e95b0aaee23c5aec8479cf6681cf84a0c422e1001a3a0f3957aa28756851eb201a89d8b55ce84912c8987a76597f77193ade771f034c1c33a07ece44 + languageName: node + linkType: hard + +"@parcel/diagnostic@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/diagnostic@npm:2.12.0" + dependencies: + "@mischnic/json-sourcemap": "npm:^0.1.0" + nullthrows: "npm:^1.1.1" + checksum: 10c0/61c2fce32a1abdf343a4d2e3a109779dc2a9c255059e4dd70ad9b4b3bd5b11b676d0c42bc77e4b32e886ef471be018b25b952baa9da137c066410642d2d0507f + languageName: node + linkType: hard + +"@parcel/events@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/events@npm:2.12.0" + checksum: 10c0/0f0a0b02086b81d68cf8f239414e9e09b5a6eca6dddfd22d2e922979b2d85b03e6f68bcafa2c6434c46867c908e25f2002f47f0ed5551f2674a75f4d6c5731ff + languageName: node + linkType: hard + +"@parcel/fs@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/fs@npm:2.12.0" + dependencies: + "@parcel/rust": "npm:2.12.0" + "@parcel/types": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + "@parcel/watcher": "npm:^2.0.7" + "@parcel/workers": "npm:2.12.0" + peerDependencies: + "@parcel/core": ^2.12.0 + checksum: 10c0/5d9ebf62e80dc3781fcd1eb763da46188115e254d285690383539a085aeaf9d864a54655046223ea42815b9b308ecba80d9af53cff6390c6bbb37d2b29df8e35 + languageName: node + linkType: hard + +"@parcel/graph@npm:3.2.0": + version: 3.2.0 + resolution: "@parcel/graph@npm:3.2.0" + dependencies: + nullthrows: "npm:^1.1.1" + checksum: 10c0/acb98a9c44dbabaa38e2a7b6b07aa489d75dc207ed6107ea43575d3c68ebf388a65a982d85677c7d00cd2d7bb6f8a6f75df9618a53389e9f640aa9346fb75c3b + languageName: node + linkType: hard + +"@parcel/logger@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/logger@npm:2.12.0" + dependencies: + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/events": "npm:2.12.0" + checksum: 10c0/b33782bbf0cfff30169a4ee8dd3a1d14c9b2c0d4781715e26b5dc6f2321ddff8ca84eca8de40bccb1a8c5d3ce847494408f5db63bbeddcdaaf9b82b1cc376a17 + languageName: node + linkType: hard + +"@parcel/markdown-ansi@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/markdown-ansi@npm:2.12.0" + dependencies: + chalk: "npm:^4.1.0" + checksum: 10c0/0c203c70ab1eb12f4976c32b086b2abf5dc841b42310610e70e1e713fe915acfd0942b56a78456811a9ee150226bb44052910a3f98ea56289aafa36b6ce89e27 + languageName: node + linkType: hard + +"@parcel/namer-default@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/namer-default@npm:2.12.0" + dependencies: + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/plugin": "npm:2.12.0" + nullthrows: "npm:^1.1.1" + checksum: 10c0/5baffe07af2329315b9d2b897565b915038246afaa3269d81bcd5eb4bcc7a21771bf1171918d68a67c099584b006167beeefa4716fb4557aae4bc112ebaf4159 + languageName: node + linkType: hard + +"@parcel/node-resolver-core@npm:3.3.0": + version: 3.3.0 + resolution: "@parcel/node-resolver-core@npm:3.3.0" + dependencies: + "@mischnic/json-sourcemap": "npm:^0.1.0" + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/fs": "npm:2.12.0" + "@parcel/rust": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + nullthrows: "npm:^1.1.1" + semver: "npm:^7.5.2" + checksum: 10c0/9a2731763514c0a54da9710e1131b5960b928900cbc33faf67d07a892cf9ed9f1b11ed2653e574e8363c4527d16e008365917b7b09eb3b9ee727fd244a5f51ee + languageName: node + linkType: hard + +"@parcel/optimizer-css@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/optimizer-css@npm:2.12.0" + dependencies: + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/plugin": "npm:2.12.0" + "@parcel/source-map": "npm:^2.1.1" + "@parcel/utils": "npm:2.12.0" + browserslist: "npm:^4.6.6" + lightningcss: "npm:^1.22.1" + nullthrows: "npm:^1.1.1" + checksum: 10c0/537e84a85fda7a2f73acd2a55842ffe9846abb02d18a7518baf8ae140fc6140a26bb1988285dbccb49a883fdc8597eabbb6d4882500bf160b97d6d93e3664677 + languageName: node + linkType: hard + +"@parcel/optimizer-htmlnano@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/optimizer-htmlnano@npm:2.12.0" + dependencies: + "@parcel/plugin": "npm:2.12.0" + htmlnano: "npm:^2.0.0" + nullthrows: "npm:^1.1.1" + posthtml: "npm:^0.16.5" + svgo: "npm:^2.4.0" + checksum: 10c0/487e0fa99e975e6f9add2759e4ad412c0595d7b80d5dde9e186700fa54a9ecb9d1cb611fbd5a0d3392fda3a01050d95e3ded53ca8b50ede3203fe77af489cd0b + languageName: node + linkType: hard + +"@parcel/optimizer-image@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/optimizer-image@npm:2.12.0" + dependencies: + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/plugin": "npm:2.12.0" + "@parcel/rust": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + "@parcel/workers": "npm:2.12.0" + peerDependencies: + "@parcel/core": ^2.12.0 + checksum: 10c0/f050c569548ec8330c65d0e9b6f6b15d5761e14e704ef16b950db19ae0d6b5a30fd42a38bb04841561244e8ab8f7fb781d9e9f1418ae84858fe7ad325a4be494 + languageName: node + linkType: hard + +"@parcel/optimizer-svgo@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/optimizer-svgo@npm:2.12.0" + dependencies: + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/plugin": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + svgo: "npm:^2.4.0" + checksum: 10c0/dc49c565d8f15b4f78ee70910a9c527f25316f0440e9cba6c5b8af1562d34708e5276b35f1e1ea26e7911d6d5c60fa82be6627517fe818df6f69eba5f0f6813f + languageName: node + linkType: hard + +"@parcel/optimizer-swc@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/optimizer-swc@npm:2.12.0" + dependencies: + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/plugin": "npm:2.12.0" + "@parcel/source-map": "npm:^2.1.1" + "@parcel/utils": "npm:2.12.0" + "@swc/core": "npm:^1.3.36" + nullthrows: "npm:^1.1.1" + checksum: 10c0/52f52182769ebb76248deab85893dacf183e6ff9a87a56c3589331cb0e37debb7ae8fa819386fe23f69b15e6b39823879e20816b10fbab3d316018a94b0c653c + languageName: node + linkType: hard + +"@parcel/package-manager@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/package-manager@npm:2.12.0" + dependencies: + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/fs": "npm:2.12.0" + "@parcel/logger": "npm:2.12.0" + "@parcel/node-resolver-core": "npm:3.3.0" + "@parcel/types": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + "@parcel/workers": "npm:2.12.0" + "@swc/core": "npm:^1.3.36" + semver: "npm:^7.5.2" + peerDependencies: + "@parcel/core": ^2.12.0 + checksum: 10c0/3ebffe05b293332f69c34479ea0b51a9fa3449ab56eef1b0ec9487c4feacf45df6dec9d8dcb67203398249093370f7d884dc0cb6b6ee15ee8c5db9768579060c + languageName: node + linkType: hard + +"@parcel/packager-css@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/packager-css@npm:2.12.0" + dependencies: + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/plugin": "npm:2.12.0" + "@parcel/source-map": "npm:^2.1.1" + "@parcel/utils": "npm:2.12.0" + lightningcss: "npm:^1.22.1" + nullthrows: "npm:^1.1.1" + checksum: 10c0/a7293c84c67b9e07b8b8cdc48d96037e05bc50daa8a2aba64b23797fea87e259bf7046a5b969917531db33b8f2387463c817e569a34f42d791bbfacb074268ea + languageName: node + linkType: hard + +"@parcel/packager-html@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/packager-html@npm:2.12.0" + dependencies: + "@parcel/plugin": "npm:2.12.0" + "@parcel/types": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + nullthrows: "npm:^1.1.1" + posthtml: "npm:^0.16.5" + checksum: 10c0/099eccde796af61cb6f153fcd69c49d22b4acc430d3652a4f2e5d4124c1cf2d6782213048436fd8e9e5521a52b1219e7bc02d38be89ce97e6f70899d3be31d7f + languageName: node + linkType: hard + +"@parcel/packager-js@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/packager-js@npm:2.12.0" + dependencies: + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/plugin": "npm:2.12.0" + "@parcel/rust": "npm:2.12.0" + "@parcel/source-map": "npm:^2.1.1" + "@parcel/types": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + globals: "npm:^13.2.0" + nullthrows: "npm:^1.1.1" + checksum: 10c0/89214e8d35f6dc35c2fd0c2b11ec608703dbc52435a7a6141e0b8fc676610fa09c2210cc93490ea4b3581ae0bc13f307dd5515402c939980e1c6bf90148d34e2 + languageName: node + linkType: hard + +"@parcel/packager-raw@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/packager-raw@npm:2.12.0" + dependencies: + "@parcel/plugin": "npm:2.12.0" + checksum: 10c0/c1539179a62674460fea65c9fd1b150aedd596723e79d4e949bf5bd667defd6a72ed73552033e4cdd2b854aa6d5022201797b746e5deb633b41f1de716716af9 + languageName: node + linkType: hard + +"@parcel/packager-svg@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/packager-svg@npm:2.12.0" + dependencies: + "@parcel/plugin": "npm:2.12.0" + "@parcel/types": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + posthtml: "npm:^0.16.4" + checksum: 10c0/58f877d470e5b50adb7eca837f571cbd221cf6681bc83d08146e4aeae4e1430a2e3363beb4a62cfc6952f4f8ded1746889545b4c946300258268a11b298047fd + languageName: node + linkType: hard + +"@parcel/packager-ts@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/packager-ts@npm:2.12.0" + dependencies: + "@parcel/plugin": "npm:2.12.0" + checksum: 10c0/244f94c0d33cfb76e429196bf826e73f508ee4e4af7aa736b02ff3de65ace8ea12a0d7bf8d7d1e6c2ee4d0d5f1db8564db01d58379b08cf8bd4c90d0476f053b + languageName: node + linkType: hard + +"@parcel/packager-wasm@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/packager-wasm@npm:2.12.0" + dependencies: + "@parcel/plugin": "npm:2.12.0" + checksum: 10c0/bd3ccd6f9a0506b26b0d708ded6cea3ac53df5c49426086b556ba7f9f1351aba010da3e0795a1f6944cdc306cffc08eed249bb8444aa4f44d9de0e3d1592810d + languageName: node + linkType: hard + +"@parcel/plugin@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/plugin@npm:2.12.0" + dependencies: + "@parcel/types": "npm:2.12.0" + checksum: 10c0/2030a3e1ee6b8cdfdf07935b085f7731e286651d7455b84a7f635016c580af715deffb893c5bc9fb3e0126db4511d3f2b592ee17b61108d001339d51ef56f9bf + languageName: node + linkType: hard + +"@parcel/profiler@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/profiler@npm:2.12.0" + dependencies: + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/events": "npm:2.12.0" + chrome-trace-event: "npm:^1.0.2" + checksum: 10c0/3caa9014da88f7435c43396fd1bb413c35134801699943717079a92fcd3ab0a0974c98b98473c5bc1ef434ce8203483fb96af642c1d64e20266625499ca4b4fe + languageName: node + linkType: hard + +"@parcel/reporter-cli@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/reporter-cli@npm:2.12.0" + dependencies: + "@parcel/plugin": "npm:2.12.0" + "@parcel/types": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + chalk: "npm:^4.1.0" + term-size: "npm:^2.2.1" + checksum: 10c0/0fee616377d540e11e61fd827a8886d8b8fc4985f87da694945b5a7f3da821bcbb0c5d7a31d72cdf12546c7bf555f7ef5c15d75b71ab157d93cacf0972b29006 + languageName: node + linkType: hard + +"@parcel/reporter-dev-server@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/reporter-dev-server@npm:2.12.0" + dependencies: + "@parcel/plugin": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + checksum: 10c0/bd875c937214aa877805413dbfce89d95dc2578098693991cce26624366cc19807a678c2779edbc620f9618db244807a2271027fb5e328318618a4666b33e512 + languageName: node + linkType: hard + +"@parcel/reporter-tracer@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/reporter-tracer@npm:2.12.0" + dependencies: + "@parcel/plugin": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + chrome-trace-event: "npm:^1.0.3" + nullthrows: "npm:^1.1.1" + checksum: 10c0/5ab33196ce4a62681d5017d908da354e25a6d367cdf0a849cd408c673bac61d3674316438a4c4c7eebb26f865e5ee3c1b8cda897c92dfa7211c0107c48d04388 + languageName: node + linkType: hard + +"@parcel/resolver-default@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/resolver-default@npm:2.12.0" + dependencies: + "@parcel/node-resolver-core": "npm:3.3.0" + "@parcel/plugin": "npm:2.12.0" + checksum: 10c0/22b1e4223070c962570928390c6cb77e866d4a3ede1a7019ad3ed2fed75604a2d78c335d65aa646dd753f05916397b56416aef52009cace9b56fd39bf6362457 + languageName: node + linkType: hard + +"@parcel/runtime-browser-hmr@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/runtime-browser-hmr@npm:2.12.0" + dependencies: + "@parcel/plugin": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + checksum: 10c0/126babc8dbd7937e94a38bed1527190a203c20bcba7b66f85b1ddbce81ec54b3fb0579f371284cb7290b70fc46b88eaaa1ee6c9d9e3b739b6267d6902dc82f93 + languageName: node + linkType: hard + +"@parcel/runtime-js@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/runtime-js@npm:2.12.0" + dependencies: + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/plugin": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + nullthrows: "npm:^1.1.1" + checksum: 10c0/01cb236c0ab6f6a170ead43d519ba02092d9b1805f2b8e8cce6f0fec4cb2c37e885c8ce0ff8ae4c7025499d1e36d1ff755f5e8018172c4245c01e97c7a3e9a21 + languageName: node + linkType: hard + +"@parcel/runtime-react-refresh@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/runtime-react-refresh@npm:2.12.0" + dependencies: + "@parcel/plugin": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + react-error-overlay: "npm:6.0.9" + react-refresh: "npm:^0.9.0" + checksum: 10c0/9efd3903118169f1eb4c176afbc4b8ee38d8b516a72dd189fec4d05c5b216e105aa6a77dd87aa5966923a648ed2c227e83feaed6c706a6fd5ebe0cdf255d5d46 + languageName: node + linkType: hard + +"@parcel/runtime-service-worker@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/runtime-service-worker@npm:2.12.0" + dependencies: + "@parcel/plugin": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + nullthrows: "npm:^1.1.1" + checksum: 10c0/014e44aa15bcc81002713af1cfc88a1d010f3ba6565ec5ea560231540a79cb76fecb11336ac019fb4c9c21a59477a1ce2d9f1a67f85e07be6b7da4498cfa17b3 + languageName: node + linkType: hard + +"@parcel/rust@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/rust@npm:2.12.0" + checksum: 10c0/38d8e5c69b31b3f7eb431f479c250f7a4e37f7814ce0aa16d42c300fffa25659da0ea8ca8e22534fa2b935dc8559507829d0cdebb588756aa4c3619565dcd3e3 + languageName: node + linkType: hard + +"@parcel/source-map@npm:^2.1.1": + version: 2.1.1 + resolution: "@parcel/source-map@npm:2.1.1" + dependencies: + detect-libc: "npm:^1.0.3" + checksum: 10c0/cea8450e152666be413556f0d100f125e81646bffc497e7c792bd9fc5067d052f1a008c8404ce1cd3a587d58b9ef57207ada89149cf2c705e71b1978308045f6 + languageName: node + linkType: hard + +"@parcel/transformer-babel@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/transformer-babel@npm:2.12.0" + dependencies: + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/plugin": "npm:2.12.0" + "@parcel/source-map": "npm:^2.1.1" + "@parcel/utils": "npm:2.12.0" + browserslist: "npm:^4.6.6" + json5: "npm:^2.2.0" + nullthrows: "npm:^1.1.1" + semver: "npm:^7.5.2" + checksum: 10c0/b7398cc2ef02fd76010bb522fc72e562ce835643365a37ccfc56368121e5c9d890bef14fffa40a8c69e4a26f13ee7d6da8d8e8590957bd4f363b5aa1c4f7d43d + languageName: node + linkType: hard + +"@parcel/transformer-css@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/transformer-css@npm:2.12.0" + dependencies: + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/plugin": "npm:2.12.0" + "@parcel/source-map": "npm:^2.1.1" + "@parcel/utils": "npm:2.12.0" + browserslist: "npm:^4.6.6" + lightningcss: "npm:^1.22.1" + nullthrows: "npm:^1.1.1" + checksum: 10c0/b3ad2591bca09a5696791b9a50bfb8efb825e92313740d6e3988ae1345d70965e92f9d42d58ae5571749e422d9018681aa49bddeafa939f3948a6993cc1cb4c8 + languageName: node + linkType: hard + +"@parcel/transformer-html@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/transformer-html@npm:2.12.0" + dependencies: + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/plugin": "npm:2.12.0" + "@parcel/rust": "npm:2.12.0" + nullthrows: "npm:^1.1.1" + posthtml: "npm:^0.16.5" + posthtml-parser: "npm:^0.10.1" + posthtml-render: "npm:^3.0.0" + semver: "npm:^7.5.2" + srcset: "npm:4" + checksum: 10c0/1e73c1afe87b8db36e358752fe1b89d466cd9bfe66dda34fca58ad28ab10931553b16ba82096eeb266a0d90e62d6c9e455e3b32dbdf550f4212193898d4c45fd + languageName: node + linkType: hard + +"@parcel/transformer-image@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/transformer-image@npm:2.12.0" + dependencies: + "@parcel/plugin": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + "@parcel/workers": "npm:2.12.0" + nullthrows: "npm:^1.1.1" + peerDependencies: + "@parcel/core": ^2.12.0 + checksum: 10c0/e361fa97d81b3dc2dfe011342321f1d2afd4fd41a9c2791522d8f39e2dc94714a2a0b9d291eb73437b2023fd1493ad37046d6b1ee925ec80daa18261cd5767a4 + languageName: node + linkType: hard + +"@parcel/transformer-js@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/transformer-js@npm:2.12.0" + dependencies: + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/plugin": "npm:2.12.0" + "@parcel/rust": "npm:2.12.0" + "@parcel/source-map": "npm:^2.1.1" + "@parcel/utils": "npm:2.12.0" + "@parcel/workers": "npm:2.12.0" + "@swc/helpers": "npm:^0.5.0" + browserslist: "npm:^4.6.6" + nullthrows: "npm:^1.1.1" + regenerator-runtime: "npm:^0.13.7" + semver: "npm:^7.5.2" + peerDependencies: + "@parcel/core": ^2.12.0 + checksum: 10c0/8a438f0ae93539338ac3f2e2666377e75fb8a5a5386c84485d6cf5f0ad5e52862a80da89c35ca01fae10184ccc7567f1347679fd3b514f7b86643dc83dbce6a6 + languageName: node + linkType: hard + +"@parcel/transformer-json@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/transformer-json@npm:2.12.0" + dependencies: + "@parcel/plugin": "npm:2.12.0" + json5: "npm:^2.2.0" + checksum: 10c0/41f931eacf89b5a792ca906594eeafa75d9fe5d0af85af7cf42e77f04e1d31de5bd64d3da9fcf0bdf745f3af252dd727ac318b12cc1c3a1345d19c5096ad98d8 + languageName: node + linkType: hard + +"@parcel/transformer-postcss@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/transformer-postcss@npm:2.12.0" + dependencies: + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/plugin": "npm:2.12.0" + "@parcel/rust": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + clone: "npm:^2.1.1" + nullthrows: "npm:^1.1.1" + postcss-value-parser: "npm:^4.2.0" + semver: "npm:^7.5.2" + checksum: 10c0/24c3a7eedd741ec1df43bed64b7e02e0132e1c85b9a93322fc994fd2a7f457c4a45f624edf3c064630f947749eb1eb89cb5a502db3f6a39286880afe09020e5a + languageName: node + linkType: hard + +"@parcel/transformer-posthtml@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/transformer-posthtml@npm:2.12.0" + dependencies: + "@parcel/plugin": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + nullthrows: "npm:^1.1.1" + posthtml: "npm:^0.16.5" + posthtml-parser: "npm:^0.10.1" + posthtml-render: "npm:^3.0.0" + semver: "npm:^7.5.2" + checksum: 10c0/ae626c15d5dda547850511a8aed41ba35e9496861dbba24efcb904693ced003a74f25c454b0f4bb96500725dd7e09ed4d09becccc48c0c8cdf8fde3ba02aa3f0 + languageName: node + linkType: hard + +"@parcel/transformer-raw@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/transformer-raw@npm:2.12.0" + dependencies: + "@parcel/plugin": "npm:2.12.0" + checksum: 10c0/3a23729c6f91ef22c106995f730483dd375f81c11f8bb37ff485d6f3c111f64445d437796d470b42bdd2ee75cc3c4a142911fbcddd1676c8659dfc5e886917d2 + languageName: node + linkType: hard + +"@parcel/transformer-react-refresh-wrap@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/transformer-react-refresh-wrap@npm:2.12.0" + dependencies: + "@parcel/plugin": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + react-refresh: "npm:^0.9.0" + checksum: 10c0/37dd835182bf71fcee5858f0ab16d5683d2827b4930095ed9fffbd496e431a7f1c53de598f294220b7ff27cd5264d5f1fa750d974a1ee02fb39342fd867b6f9c + languageName: node + linkType: hard + +"@parcel/transformer-sass@npm:^2.12.0": + version: 2.12.0 + resolution: "@parcel/transformer-sass@npm:2.12.0" + dependencies: + "@parcel/plugin": "npm:2.12.0" + "@parcel/source-map": "npm:^2.1.1" + sass: "npm:^1.38.0" + checksum: 10c0/d82ee90605f9a8f04a978e2d72faf9693a843a0875961b6e7aa40659197356f1be45d738840c52863607c7823f70630f819aebd843606af8ea00772b75ba7574 + languageName: node + linkType: hard + +"@parcel/transformer-svg@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/transformer-svg@npm:2.12.0" + dependencies: + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/plugin": "npm:2.12.0" + "@parcel/rust": "npm:2.12.0" + nullthrows: "npm:^1.1.1" + posthtml: "npm:^0.16.5" + posthtml-parser: "npm:^0.10.1" + posthtml-render: "npm:^3.0.0" + semver: "npm:^7.5.2" + checksum: 10c0/8916bdc0b36c60b32963e015c43a8bcd8cc2b15cc11b7611c49af6a4e4d63c2aabea0aa0fde31a78278eec25f88b52b3e56d8382dc2db5f3a401e63312115f3a + languageName: node + linkType: hard + +"@parcel/transformer-typescript-types@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/transformer-typescript-types@npm:2.12.0" + dependencies: + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/plugin": "npm:2.12.0" + "@parcel/source-map": "npm:^2.1.1" + "@parcel/ts-utils": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + nullthrows: "npm:^1.1.1" + peerDependencies: + typescript: ">=3.0.0" + checksum: 10c0/6b0e89b64f2cfc5e56b972b02a6a1b97c50e60b6ab935389ebf9479d05d164fe4ff9dc297b0d78ed3d3578f80049425b056512546d45877f549a6713d54efd03 + languageName: node + linkType: hard + +"@parcel/ts-utils@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/ts-utils@npm:2.12.0" + dependencies: + nullthrows: "npm:^1.1.1" + peerDependencies: + typescript: ">=3.0.0" + checksum: 10c0/be53613cb3d950f5a6f0690af4bdda1ec9aaf0e97a035c66271230bd322ae29568d10831e61ded899188ca36d80add8ccbfcb494ebd4b0d9795cb51ccb7425cc + languageName: node + linkType: hard + +"@parcel/types@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/types@npm:2.12.0" + dependencies: + "@parcel/cache": "npm:2.12.0" + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/fs": "npm:2.12.0" + "@parcel/package-manager": "npm:2.12.0" + "@parcel/source-map": "npm:^2.1.1" + "@parcel/workers": "npm:2.12.0" + utility-types: "npm:^3.10.0" + checksum: 10c0/a8aa61ad7cc8218a41fe27c206031b30c55eab59cd4affdfac7d15ddcfb80a1969c22086760b7d4fbdd63016dbfe3278d462e04b9c12e474780fe154caf08150 + languageName: node + linkType: hard + +"@parcel/utils@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/utils@npm:2.12.0" + dependencies: + "@parcel/codeframe": "npm:2.12.0" + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/logger": "npm:2.12.0" + "@parcel/markdown-ansi": "npm:2.12.0" + "@parcel/rust": "npm:2.12.0" + "@parcel/source-map": "npm:^2.1.1" + chalk: "npm:^4.1.0" + nullthrows: "npm:^1.1.1" + checksum: 10c0/888e2352d056ceff4e81d0cf4ae4eb8f322b0a8c4eb9e6f6aa5f916adc3f27c90369d5580b4f316029bf5160294a607795181a6bb368741524c177a14b2aa7c7 + languageName: node + linkType: hard + +"@parcel/watcher-android-arm64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-android-arm64@npm:2.4.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@parcel/watcher-darwin-arm64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-darwin-arm64@npm:2.4.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@parcel/watcher-darwin-x64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-darwin-x64@npm:2.4.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@parcel/watcher-freebsd-x64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-freebsd-x64@npm:2.4.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@parcel/watcher-linux-arm-glibc@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-arm-glibc@npm:2.4.1" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@parcel/watcher-linux-arm64-glibc@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-arm64-glibc@npm:2.4.1" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@parcel/watcher-linux-arm64-musl@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-arm64-musl@npm:2.4.1" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@parcel/watcher-linux-x64-glibc@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-x64-glibc@npm:2.4.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@parcel/watcher-linux-x64-musl@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-x64-musl@npm:2.4.1" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@parcel/watcher-win32-arm64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-win32-arm64@npm:2.4.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@parcel/watcher-win32-ia32@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-win32-ia32@npm:2.4.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@parcel/watcher-win32-x64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-win32-x64@npm:2.4.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@parcel/watcher@npm:^2.0.7": + version: 2.4.1 + resolution: "@parcel/watcher@npm:2.4.1" + dependencies: + "@parcel/watcher-android-arm64": "npm:2.4.1" + "@parcel/watcher-darwin-arm64": "npm:2.4.1" + "@parcel/watcher-darwin-x64": "npm:2.4.1" + "@parcel/watcher-freebsd-x64": "npm:2.4.1" + "@parcel/watcher-linux-arm-glibc": "npm:2.4.1" + "@parcel/watcher-linux-arm64-glibc": "npm:2.4.1" + "@parcel/watcher-linux-arm64-musl": "npm:2.4.1" + "@parcel/watcher-linux-x64-glibc": "npm:2.4.1" + "@parcel/watcher-linux-x64-musl": "npm:2.4.1" + "@parcel/watcher-win32-arm64": "npm:2.4.1" + "@parcel/watcher-win32-ia32": "npm:2.4.1" + "@parcel/watcher-win32-x64": "npm:2.4.1" + detect-libc: "npm:^1.0.3" + is-glob: "npm:^4.0.3" + micromatch: "npm:^4.0.5" + node-addon-api: "npm:^7.0.0" + node-gyp: "npm:latest" + dependenciesMeta: + "@parcel/watcher-android-arm64": + optional: true + "@parcel/watcher-darwin-arm64": + optional: true + "@parcel/watcher-darwin-x64": + optional: true + "@parcel/watcher-freebsd-x64": + optional: true + "@parcel/watcher-linux-arm-glibc": + optional: true + "@parcel/watcher-linux-arm64-glibc": + optional: true + "@parcel/watcher-linux-arm64-musl": + optional: true + "@parcel/watcher-linux-x64-glibc": + optional: true + "@parcel/watcher-linux-x64-musl": + optional: true + "@parcel/watcher-win32-arm64": + optional: true + "@parcel/watcher-win32-ia32": + optional: true + "@parcel/watcher-win32-x64": + optional: true + checksum: 10c0/33b7112094b9eb46c234d824953967435b628d3d93a0553255e9910829b84cab3da870153c3a870c31db186dc58f3b2db81382fcaee3451438aeec4d786a6211 + languageName: node + linkType: hard + +"@parcel/workers@npm:2.12.0": + version: 2.12.0 + resolution: "@parcel/workers@npm:2.12.0" + dependencies: + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/logger": "npm:2.12.0" + "@parcel/profiler": "npm:2.12.0" + "@parcel/types": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + nullthrows: "npm:^1.1.1" + peerDependencies: + "@parcel/core": ^2.12.0 + checksum: 10c0/0f5e12e7997d806d6694e91a6c5968c34e1967f50bab3c09296589b2b279ffcd1c8de735845448de350e510a5657ba0aeb4b2c5c04cab81c4c7a57f70d567f5e + languageName: node + linkType: hard + +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd + languageName: node + linkType: hard + +"@socketcomputer/backend@workspace:backend": + version: 0.0.0-use.local + resolution: "@socketcomputer/backend@workspace:backend" + dependencies: + "@computernewb/superqemu": "npm:^0.1.0" + "@fastify/websocket": "npm:^10.0.1" + "@socketcomputer/shared": "npm:*" + "@types/ws": "npm:^8.5.10" + canvas: "npm:^2.11.2" + fastify: "npm:^4.26.2" + mnemonist: "npm:^0.39.8" + parcel: "npm:^2.12.0" + languageName: unknown + linkType: soft + +"@socketcomputer/shared@npm:*, @socketcomputer/shared@workspace:shared": + version: 0.0.0-use.local + resolution: "@socketcomputer/shared@workspace:shared" + dependencies: + parcel: "npm:^2.12.0" + languageName: unknown + linkType: soft + +"@socketcomputer/webapp@workspace:webapp": + version: 0.0.0-use.local + resolution: "@socketcomputer/webapp@workspace:webapp" + dependencies: + parcel: "npm:^2.12.0" + languageName: unknown + linkType: soft + +"@swc/core-darwin-arm64@npm:1.4.11": + version: 1.4.11 + resolution: "@swc/core-darwin-arm64@npm:1.4.11" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@swc/core-darwin-x64@npm:1.4.11": + version: 1.4.11 + resolution: "@swc/core-darwin-x64@npm:1.4.11" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@swc/core-linux-arm-gnueabihf@npm:1.4.11": + version: 1.4.11 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.4.11" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@swc/core-linux-arm64-gnu@npm:1.4.11": + version: 1.4.11 + resolution: "@swc/core-linux-arm64-gnu@npm:1.4.11" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@swc/core-linux-arm64-musl@npm:1.4.11": + version: 1.4.11 + resolution: "@swc/core-linux-arm64-musl@npm:1.4.11" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@swc/core-linux-x64-gnu@npm:1.4.11": + version: 1.4.11 + resolution: "@swc/core-linux-x64-gnu@npm:1.4.11" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@swc/core-linux-x64-musl@npm:1.4.11": + version: 1.4.11 + resolution: "@swc/core-linux-x64-musl@npm:1.4.11" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@swc/core-win32-arm64-msvc@npm:1.4.11": + version: 1.4.11 + resolution: "@swc/core-win32-arm64-msvc@npm:1.4.11" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@swc/core-win32-ia32-msvc@npm:1.4.11": + version: 1.4.11 + resolution: "@swc/core-win32-ia32-msvc@npm:1.4.11" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@swc/core-win32-x64-msvc@npm:1.4.11": + version: 1.4.11 + resolution: "@swc/core-win32-x64-msvc@npm:1.4.11" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@swc/core@npm:^1.3.36": + version: 1.4.11 + resolution: "@swc/core@npm:1.4.11" + dependencies: + "@swc/core-darwin-arm64": "npm:1.4.11" + "@swc/core-darwin-x64": "npm:1.4.11" + "@swc/core-linux-arm-gnueabihf": "npm:1.4.11" + "@swc/core-linux-arm64-gnu": "npm:1.4.11" + "@swc/core-linux-arm64-musl": "npm:1.4.11" + "@swc/core-linux-x64-gnu": "npm:1.4.11" + "@swc/core-linux-x64-musl": "npm:1.4.11" + "@swc/core-win32-arm64-msvc": "npm:1.4.11" + "@swc/core-win32-ia32-msvc": "npm:1.4.11" + "@swc/core-win32-x64-msvc": "npm:1.4.11" + "@swc/counter": "npm:^0.1.2" + "@swc/types": "npm:^0.1.5" + peerDependencies: + "@swc/helpers": ^0.5.0 + dependenciesMeta: + "@swc/core-darwin-arm64": + optional: true + "@swc/core-darwin-x64": + optional: true + "@swc/core-linux-arm-gnueabihf": + optional: true + "@swc/core-linux-arm64-gnu": + optional: true + "@swc/core-linux-arm64-musl": + optional: true + "@swc/core-linux-x64-gnu": + optional: true + "@swc/core-linux-x64-musl": + optional: true + "@swc/core-win32-arm64-msvc": + optional: true + "@swc/core-win32-ia32-msvc": + optional: true + "@swc/core-win32-x64-msvc": + optional: true + peerDependenciesMeta: + "@swc/helpers": + optional: true + checksum: 10c0/7860541ba95fc15e6abe1993eb87fdfe05aad3418862b3f790f26cf1de1284e387300020ac60a8487404fd4364af2cc7f9e8a3c4dba49a8683c5d08cd4cb95c4 + languageName: node + linkType: hard + +"@swc/counter@npm:^0.1.2, @swc/counter@npm:^0.1.3": + version: 0.1.3 + resolution: "@swc/counter@npm:0.1.3" + checksum: 10c0/8424f60f6bf8694cfd2a9bca45845bce29f26105cda8cf19cdb9fd3e78dc6338699e4db77a89ae449260bafa1cc6bec307e81e7fb96dbf7dcfce0eea55151356 + languageName: node + linkType: hard + +"@swc/helpers@npm:^0.5.0": + version: 0.5.8 + resolution: "@swc/helpers@npm:0.5.8" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10c0/53a52b3654edb1b22ab317feb4ab7fa805eb368082530d2835647e5d0cc497f5c3aa8e16d568df6eee301982aac532674345acbaaa45354ffb58043768d4db36 + languageName: node + linkType: hard + +"@swc/types@npm:^0.1.5": + version: 0.1.6 + resolution: "@swc/types@npm:0.1.6" + dependencies: + "@swc/counter": "npm:^0.1.3" + checksum: 10c0/043a0e56d69db8733827ad69db55d0ffbd6976fd24ef629a488e57040067ac84d057a57e08bc5a3db545d44b01d6aa43c22df1152c637af450d366e57cde6e22 + languageName: node + linkType: hard + +"@trysound/sax@npm:0.2.0": + version: 0.2.0 + resolution: "@trysound/sax@npm:0.2.0" + checksum: 10c0/44907308549ce775a41c38a815f747009ac45929a45d642b836aa6b0a536e4978d30b8d7d680bbd116e9dd73b7dbe2ef0d1369dcfc2d09e83ba381e485ecbe12 + languageName: node + linkType: hard + +"@types/node@npm:*, @types/node@npm:^20.12.2": + version: 20.12.2 + resolution: "@types/node@npm:20.12.2" + dependencies: + undici-types: "npm:~5.26.4" + checksum: 10c0/bb47d115a8f95aadebdd6403fee16d149d6b5568ad53bacc42df34c2d572561e36ba47b05f7f68bada43752d7369b470a90df65b646af7502dfb799a21b4fca7 + languageName: node + linkType: hard + +"@types/ws@npm:^8.5.10": + version: 8.5.10 + resolution: "@types/ws@npm:8.5.10" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/e9af279b984c4a04ab53295a40aa95c3e9685f04888df5c6920860d1dd073fcc57c7bd33578a04b285b2c655a0b52258d34bee0a20569dca8defb8393e1e5d29 + languageName: node + linkType: hard + +"abbrev@npm:1": + version: 1.1.1 + resolution: "abbrev@npm:1.1.1" + checksum: 10c0/3f762677702acb24f65e813070e306c61fafe25d4b2583f9dfc935131f774863f3addd5741572ed576bd69cabe473c5af18e1e108b829cb7b6b4747884f726e6 + languageName: node + linkType: hard + +"abbrev@npm:^2.0.0": + version: 2.0.0 + resolution: "abbrev@npm:2.0.0" + checksum: 10c0/f742a5a107473946f426c691c08daba61a1d15942616f300b5d32fd735be88fef5cba24201757b6c407fd564555fb48c751cfa33519b2605c8a7aadd22baf372 + languageName: node + linkType: hard + +"abort-controller@npm:^3.0.0": + version: 3.0.0 + resolution: "abort-controller@npm:3.0.0" + dependencies: + event-target-shim: "npm:^5.0.0" + checksum: 10c0/90ccc50f010250152509a344eb2e71977fbf8db0ab8f1061197e3275ddf6c61a41a6edfd7b9409c664513131dd96e962065415325ef23efa5db931b382d24ca5 + languageName: node + linkType: hard + +"abortcontroller-polyfill@npm:^1.1.9": + version: 1.7.5 + resolution: "abortcontroller-polyfill@npm:1.7.5" + checksum: 10c0/d7a5ab6fda4f9a54f22ddeb233a2564d2f4f857ec17be25fee21a91bb5090bee57c630c454634b5c4b93fc06bd90d592d1f2fc69f77cd28791ac0fe361feb7d2 + languageName: node + linkType: hard + +"abstract-logging@npm:^2.0.1": + version: 2.0.1 + resolution: "abstract-logging@npm:2.0.1" + checksum: 10c0/304879d9babcf6772260e5ddde632e6428e1f42f7a7a116d4689e97ad813a20e0ec2dd1e0a122f3617557f40091b9ca85735de4b48c17a2041268cb47b3f8ef1 + languageName: node + linkType: hard + +"agent-base@npm:6": + version: 6.0.2 + resolution: "agent-base@npm:6.0.2" + dependencies: + debug: "npm:4" + checksum: 10c0/dc4f757e40b5f3e3d674bc9beb4f1048f4ee83af189bae39be99f57bf1f48dde166a8b0a5342a84b5944ee8e6ed1e5a9d801858f4ad44764e84957122fe46261 + languageName: node + linkType: hard + +"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": + version: 7.1.1 + resolution: "agent-base@npm:7.1.1" + dependencies: + debug: "npm:^4.3.4" + checksum: 10c0/e59ce7bed9c63bf071a30cc471f2933862044c97fd9958967bfe22521d7a0f601ce4ed5a8c011799d0c726ca70312142ae193bbebb60f576b52be19d4a363b50 + languageName: node + linkType: hard + +"aggregate-error@npm:^3.0.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" + dependencies: + clean-stack: "npm:^2.0.0" + indent-string: "npm:^4.0.0" + checksum: 10c0/a42f67faa79e3e6687a4923050e7c9807db3848a037076f791d10e092677d65c1d2d863b7848560699f40fc0502c19f40963fb1cd1fb3d338a7423df8e45e039 + languageName: node + linkType: hard + +"ajv-formats@npm:^2.1.1": + version: 2.1.1 + resolution: "ajv-formats@npm:2.1.1" + dependencies: + ajv: "npm:^8.0.0" + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + checksum: 10c0/e43ba22e91b6a48d96224b83d260d3a3a561b42d391f8d3c6d2c1559f9aa5b253bfb306bc94bbeca1d967c014e15a6efe9a207309e95b3eaae07fcbcdc2af662 + languageName: node + linkType: hard + +"ajv@npm:^8.0.0, ajv@npm:^8.10.0, ajv@npm:^8.11.0": + version: 8.12.0 + resolution: "ajv@npm:8.12.0" + dependencies: + fast-deep-equal: "npm:^3.1.1" + json-schema-traverse: "npm:^1.0.0" + require-from-string: "npm:^2.0.2" + uri-js: "npm:^4.2.2" + checksum: 10c0/ac4f72adf727ee425e049bc9d8b31d4a57e1c90da8d28bcd23d60781b12fcd6fc3d68db5df16994c57b78b94eed7988f5a6b482fd376dc5b084125e20a0a622e + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 + languageName: node + linkType: hard + +"ansi-regex@npm:^6.0.1": + version: 6.0.1 + resolution: "ansi-regex@npm:6.0.1" + checksum: 10c0/cbe16dbd2c6b2735d1df7976a7070dd277326434f0212f43abf6d87674095d247968209babdaad31bb00882fa68807256ba9be340eec2f1004de14ca75f52a08 + languageName: node + linkType: hard + +"ansi-styles@npm:^3.2.1": + version: 3.2.1 + resolution: "ansi-styles@npm:3.2.1" + dependencies: + color-convert: "npm:^1.9.0" + checksum: 10c0/ece5a8ef069fcc5298f67e3f4771a663129abd174ea2dfa87923a2be2abf6cd367ef72ac87942da00ce85bd1d651d4cd8595aebdb1b385889b89b205860e977b + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: "npm:^2.0.1" + checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041 + languageName: node + linkType: hard + +"ansi-styles@npm:^6.1.0": + version: 6.2.1 + resolution: "ansi-styles@npm:6.2.1" + checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c + languageName: node + linkType: hard + +"anymatch@npm:~3.1.2": + version: 3.1.3 + resolution: "anymatch@npm:3.1.3" + dependencies: + normalize-path: "npm:^3.0.0" + picomatch: "npm:^2.0.4" + checksum: 10c0/57b06ae984bc32a0d22592c87384cd88fe4511b1dd7581497831c56d41939c8a001b28e7b853e1450f2bf61992dfcaa8ae2d0d161a0a90c4fb631ef07098fbac + languageName: node + linkType: hard + +"aproba@npm:^1.0.3 || ^2.0.0": + version: 2.0.0 + resolution: "aproba@npm:2.0.0" + checksum: 10c0/d06e26384a8f6245d8c8896e138c0388824e259a329e0c9f196b4fa533c82502a6fd449586e3604950a0c42921832a458bb3aa0aa9f0ba449cfd4f50fd0d09b5 + languageName: node + linkType: hard + +"archy@npm:^1.0.0": + version: 1.0.0 + resolution: "archy@npm:1.0.0" + checksum: 10c0/200c849dd1c304ea9914827b0555e7e1e90982302d574153e28637db1a663c53de62bad96df42d50e8ce7fc18d05e3437d9aa8c4b383803763755f0956c7d308 + languageName: node + linkType: hard + +"are-we-there-yet@npm:^2.0.0": + version: 2.0.0 + resolution: "are-we-there-yet@npm:2.0.0" + dependencies: + delegates: "npm:^1.0.0" + readable-stream: "npm:^3.6.0" + checksum: 10c0/375f753c10329153c8d66dc95e8f8b6c7cc2aa66e05cb0960bd69092b10dae22900cacc7d653ad11d26b3ecbdbfe1e8bfb6ccf0265ba8077a7d979970f16b99c + languageName: node + linkType: hard + +"argparse@npm:^2.0.1": + version: 2.0.1 + resolution: "argparse@npm:2.0.1" + checksum: 10c0/c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e + languageName: node + linkType: hard + +"atomic-sleep@npm:^1.0.0": + version: 1.0.0 + resolution: "atomic-sleep@npm:1.0.0" + checksum: 10c0/e329a6665512736a9bbb073e1761b4ec102f7926cce35037753146a9db9c8104f5044c1662e4a863576ce544fb8be27cd2be6bc8c1a40147d03f31eb1cfb6e8a + languageName: node + linkType: hard + +"avvio@npm:^8.3.0": + version: 8.3.0 + resolution: "avvio@npm:8.3.0" + dependencies: + "@fastify/error": "npm:^3.3.0" + archy: "npm:^1.0.0" + debug: "npm:^4.0.0" + fastq: "npm:^1.17.1" + checksum: 10c0/ae171bd977302c3720c9cab8a8e1acedba34d23d44fa4f2914953b02c34c81bd332b4f5713912ce9405c4eb5317fdc6e794b0134d3f680f28858d7a0efadfbc6 + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee + languageName: node + linkType: hard + +"base-x@npm:^3.0.8": + version: 3.0.9 + resolution: "base-x@npm:3.0.9" + dependencies: + safe-buffer: "npm:^5.0.1" + checksum: 10c0/e6bbeae30b24f748b546005affb710c5fbc8b11a83f6cd0ca999bd1ab7ad3a22e42888addc40cd145adc4edfe62fcfab4ebc91da22e4259aae441f95a77aee1a + languageName: node + linkType: hard + +"base64-js@npm:^1.3.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf + languageName: node + linkType: hard + +"binary-extensions@npm:^2.0.0": + version: 2.3.0 + resolution: "binary-extensions@npm:2.3.0" + checksum: 10c0/75a59cafc10fb12a11d510e77110c6c7ae3f4ca22463d52487709ca7f18f69d886aa387557cc9864fbdb10153d0bdb4caacabf11541f55e89ed6e18d12ece2b5 + languageName: node + linkType: hard + +"boolbase@npm:^1.0.0": + version: 1.0.0 + resolution: "boolbase@npm:1.0.0" + checksum: 10c0/e4b53deb4f2b85c52be0e21a273f2045c7b6a6ea002b0e139c744cb6f95e9ec044439a52883b0d74dedd1ff3da55ed140cfdddfed7fb0cccbed373de5dce1bcf + languageName: node + linkType: hard + +"brace-expansion@npm:^1.1.7": + version: 1.1.11 + resolution: "brace-expansion@npm:1.1.11" + dependencies: + balanced-match: "npm:^1.0.0" + concat-map: "npm:0.0.1" + checksum: 10c0/695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668 + languageName: node + linkType: hard + +"brace-expansion@npm:^2.0.1": + version: 2.0.1 + resolution: "brace-expansion@npm:2.0.1" + dependencies: + balanced-match: "npm:^1.0.0" + checksum: 10c0/b358f2fe060e2d7a87aa015979ecea07f3c37d4018f8d6deb5bd4c229ad3a0384fe6029bb76cd8be63c81e516ee52d1a0673edbe2023d53a5191732ae3c3e49f + languageName: node + linkType: hard + +"braces@npm:^3.0.2, braces@npm:~3.0.2": + version: 3.0.2 + resolution: "braces@npm:3.0.2" + dependencies: + fill-range: "npm:^7.0.1" + checksum: 10c0/321b4d675791479293264019156ca322163f02dc06e3c4cab33bb15cd43d80b51efef69b0930cfde3acd63d126ebca24cd0544fa6f261e093a0fb41ab9dda381 + languageName: node + linkType: hard + +"browserslist@npm:^4.6.6": + version: 4.23.0 + resolution: "browserslist@npm:4.23.0" + dependencies: + caniuse-lite: "npm:^1.0.30001587" + electron-to-chromium: "npm:^1.4.668" + node-releases: "npm:^2.0.14" + update-browserslist-db: "npm:^1.0.13" + bin: + browserslist: cli.js + checksum: 10c0/8e9cc154529062128d02a7af4d8adeead83ca1df8cd9ee65a88e2161039f3d68a4d40fea7353cab6bae4c16182dec2fdd9a1cf7dc2a2935498cee1af0e998943 + languageName: node + linkType: hard + +"buffer@npm:^6.0.3": + version: 6.0.3 + resolution: "buffer@npm:6.0.3" + dependencies: + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.2.1" + checksum: 10c0/2a905fbbcde73cc5d8bd18d1caa23715d5f83a5935867c2329f0ac06104204ba7947be098fe1317fbd8830e26090ff8e764f08cd14fefc977bb248c3487bcbd0 + languageName: node + linkType: hard + +"builtin-status-codes@npm:^3.0.0": + version: 3.0.0 + resolution: "builtin-status-codes@npm:3.0.0" + checksum: 10c0/c37bbba11a34c4431e56bd681b175512e99147defbe2358318d8152b3a01df7bf25e0305873947e5b350073d5ef41a364a22b37e48f1fb6d2fe6d5286a0f348c + languageName: node + linkType: hard + +"cacache@npm:^18.0.0": + version: 18.0.4 + resolution: "cacache@npm:18.0.4" + dependencies: + "@npmcli/fs": "npm:^3.1.0" + fs-minipass: "npm:^3.0.0" + glob: "npm:^10.2.2" + lru-cache: "npm:^10.0.1" + minipass: "npm:^7.0.3" + minipass-collect: "npm:^2.0.1" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + p-map: "npm:^4.0.0" + ssri: "npm:^10.0.0" + tar: "npm:^6.1.11" + unique-filename: "npm:^3.0.0" + checksum: 10c0/6c055bafed9de4f3dcc64ac3dc7dd24e863210902b7c470eb9ce55a806309b3efff78033e3d8b4f7dcc5d467f2db43c6a2857aaaf26f0094b8a351d44c42179f + languageName: node + linkType: hard + +"callsites@npm:^3.0.0": + version: 3.1.0 + resolution: "callsites@npm:3.1.0" + checksum: 10c0/fff92277400eb06c3079f9e74f3af120db9f8ea03bad0e84d9aede54bbe2d44a56cccb5f6cf12211f93f52306df87077ecec5b712794c5a9b5dac6d615a3f301 + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.30001587": + version: 1.0.30001603 + resolution: "caniuse-lite@npm:1.0.30001603" + checksum: 10c0/6564da28297a64e88302ddab0768fa72ff383213dd9c02bd113d14eeb22ba30fd00bc171bdbf4f6ff1159c138ed3b37ecc952f172d5153d6ab6118c572992374 + languageName: node + linkType: hard + +"canvas@npm:^2.11.2": + version: 2.11.2 + resolution: "canvas@npm:2.11.2" + dependencies: + "@mapbox/node-pre-gyp": "npm:^1.0.0" + nan: "npm:^2.17.0" + node-gyp: "npm:latest" + simple-get: "npm:^3.0.3" + checksum: 10c0/943368798ad1b66b18633aa34b6181e1038dac5433fc9727cd07be35f0a633f572b60d9edb95f5ff90b6a9128e86d5312035f91a2934101c73185b15d906230a + languageName: node + linkType: hard + +"chalk@npm:^2.4.2": + version: 2.4.2 + resolution: "chalk@npm:2.4.2" + dependencies: + ansi-styles: "npm:^3.2.1" + escape-string-regexp: "npm:^1.0.5" + supports-color: "npm:^5.3.0" + checksum: 10c0/e6543f02ec877732e3a2d1c3c3323ddb4d39fbab687c23f526e25bd4c6a9bf3b83a696e8c769d078e04e5754921648f7821b2a2acfd16c550435fd630026e073 + languageName: node + linkType: hard + +"chalk@npm:^4.1.0": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 + languageName: node + linkType: hard + +"chokidar@npm:>=3.0.0 <4.0.0": + version: 3.6.0 + resolution: "chokidar@npm:3.6.0" + dependencies: + anymatch: "npm:~3.1.2" + braces: "npm:~3.0.2" + fsevents: "npm:~2.3.2" + glob-parent: "npm:~5.1.2" + is-binary-path: "npm:~2.1.0" + is-glob: "npm:~4.0.1" + normalize-path: "npm:~3.0.0" + readdirp: "npm:~3.6.0" + dependenciesMeta: + fsevents: + optional: true + checksum: 10c0/8361dcd013f2ddbe260eacb1f3cb2f2c6f2b0ad118708a343a5ed8158941a39cb8fb1d272e0f389712e74ee90ce8ba864eece9e0e62b9705cb468a2f6d917462 + languageName: node + linkType: hard + +"chownr@npm:^2.0.0": + version: 2.0.0 + resolution: "chownr@npm:2.0.0" + checksum: 10c0/594754e1303672171cc04e50f6c398ae16128eb134a88f801bf5354fd96f205320f23536a045d9abd8b51024a149696e51231565891d4efdab8846021ecf88e6 + languageName: node + linkType: hard + +"chrome-trace-event@npm:^1.0.2, chrome-trace-event@npm:^1.0.3": + version: 1.0.3 + resolution: "chrome-trace-event@npm:1.0.3" + checksum: 10c0/080ce2d20c2b9e0f8461a380e9585686caa768b1c834a464470c9dc74cda07f27611c7b727a2cd768a9cecd033297fdec4ce01f1e58b62227882c1059dec321c + languageName: node + linkType: hard + +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 10c0/1f90262d5f6230a17e27d0c190b09d47ebe7efdd76a03b5a1127863f7b3c9aec4c3e6c8bb3a7bbf81d553d56a1fd35728f5a8ef4c63f867ac8d690109742a8c1 + languageName: node + linkType: hard + +"clone@npm:^2.1.1": + version: 2.1.2 + resolution: "clone@npm:2.1.2" + checksum: 10c0/ed0601cd0b1606bc7d82ee7175b97e68d1dd9b91fd1250a3617b38d34a095f8ee0431d40a1a611122dcccb4f93295b4fdb94942aa763392b5fe44effa50c2d5e + languageName: node + linkType: hard + +"color-convert@npm:^1.9.0": + version: 1.9.3 + resolution: "color-convert@npm:1.9.3" + dependencies: + color-name: "npm:1.1.3" + checksum: 10c0/5ad3c534949a8c68fca8fbc6f09068f435f0ad290ab8b2f76841b9e6af7e0bb57b98cb05b0e19fe33f5d91e5a8611ad457e5f69e0a484caad1f7487fd0e8253c + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: "npm:~1.1.4" + checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7 + languageName: node + linkType: hard + +"color-name@npm:1.1.3": + version: 1.1.3 + resolution: "color-name@npm:1.1.3" + checksum: 10c0/566a3d42cca25b9b3cd5528cd7754b8e89c0eb646b7f214e8e2eaddb69994ac5f0557d9c175eb5d8f0ad73531140d9c47525085ee752a91a2ab15ab459caf6d6 + languageName: node + linkType: hard + +"color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 + languageName: node + linkType: hard + +"color-support@npm:^1.1.2": + version: 1.1.3 + resolution: "color-support@npm:1.1.3" + bin: + color-support: bin.js + checksum: 10c0/8ffeaa270a784dc382f62d9be0a98581db43e11eee301af14734a6d089bd456478b1a8b3e7db7ca7dc5b18a75f828f775c44074020b51c05fc00e6d0992b1cc6 + languageName: node + linkType: hard + +"commander@npm:^7.0.0, commander@npm:^7.2.0": + version: 7.2.0 + resolution: "commander@npm:7.2.0" + checksum: 10c0/8d690ff13b0356df7e0ebbe6c59b4712f754f4b724d4f473d3cc5b3fdcf978e3a5dc3078717858a2ceb50b0f84d0660a7f22a96cdc50fb877d0c9bb31593d23a + languageName: node + linkType: hard + +"concat-map@npm:0.0.1": + version: 0.0.1 + resolution: "concat-map@npm:0.0.1" + checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f + languageName: node + linkType: hard + +"console-control-strings@npm:^1.0.0, console-control-strings@npm:^1.1.0": + version: 1.1.0 + resolution: "console-control-strings@npm:1.1.0" + checksum: 10c0/7ab51d30b52d461412cd467721bb82afe695da78fff8f29fe6f6b9cbaac9a2328e27a22a966014df9532100f6dd85370460be8130b9c677891ba36d96a343f50 + languageName: node + linkType: hard + +"cookie@npm:^0.6.0": + version: 0.6.0 + resolution: "cookie@npm:0.6.0" + checksum: 10c0/f2318b31af7a31b4ddb4a678d024514df5e705f9be5909a192d7f116cfb6d45cbacf96a473fa733faa95050e7cff26e7832bb3ef94751592f1387b71c8956686 + languageName: node + linkType: hard + +"cosmiconfig@npm:^8.0.0": + version: 8.3.6 + resolution: "cosmiconfig@npm:8.3.6" + dependencies: + import-fresh: "npm:^3.3.0" + js-yaml: "npm:^4.1.0" + parse-json: "npm:^5.2.0" + path-type: "npm:^4.0.0" + peerDependencies: + typescript: ">=4.9.5" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/0382a9ed13208f8bfc22ca2f62b364855207dffdb73dc26e150ade78c3093f1cf56172df2dd460c8caf2afa91c0ed4ec8a88c62f8f9cd1cf423d26506aa8797a + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.3": + version: 7.0.3 + resolution: "cross-spawn@npm:7.0.3" + dependencies: + path-key: "npm:^3.1.0" + shebang-command: "npm:^2.0.0" + which: "npm:^2.0.1" + checksum: 10c0/5738c312387081c98d69c98e105b6327b069197f864a60593245d64c8089c8a0a744e16349281210d56835bb9274130d825a78b2ad6853ca13cfbeffc0c31750 + languageName: node + linkType: hard + +"css-select@npm:^4.1.3": + version: 4.3.0 + resolution: "css-select@npm:4.3.0" + dependencies: + boolbase: "npm:^1.0.0" + css-what: "npm:^6.0.1" + domhandler: "npm:^4.3.1" + domutils: "npm:^2.8.0" + nth-check: "npm:^2.0.1" + checksum: 10c0/a489d8e5628e61063d5a8fe0fa1cc7ae2478cb334a388a354e91cf2908154be97eac9fa7ed4dffe87a3e06cf6fcaa6016553115335c4fd3377e13dac7bd5a8e1 + languageName: node + linkType: hard + +"css-tree@npm:^1.1.2, css-tree@npm:^1.1.3": + version: 1.1.3 + resolution: "css-tree@npm:1.1.3" + dependencies: + mdn-data: "npm:2.0.14" + source-map: "npm:^0.6.1" + checksum: 10c0/499a507bfa39b8b2128f49736882c0dd636b0cd3370f2c69f4558ec86d269113286b7df469afc955de6a68b0dba00bc533e40022a73698081d600072d5d83c1c + languageName: node + linkType: hard + +"css-what@npm:^6.0.1": + version: 6.1.0 + resolution: "css-what@npm:6.1.0" + checksum: 10c0/a09f5a6b14ba8dcf57ae9a59474722e80f20406c53a61e9aedb0eedc693b135113ffe2983f4efc4b5065ae639442e9ae88df24941ef159c218b231011d733746 + languageName: node + linkType: hard + +"csso@npm:^4.2.0": + version: 4.2.0 + resolution: "csso@npm:4.2.0" + dependencies: + css-tree: "npm:^1.1.2" + checksum: 10c0/f8c6b1300efaa0f8855a7905ae3794a29c6496e7f16a71dec31eb6ca7cfb1f058a4b03fd39b66c4deac6cb06bf6b4ba86da7b67d7320389cb9994d52b924b903 + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.0.0": + version: 4.3.4 + resolution: "debug@npm:4.3.4" + dependencies: + ms: "npm:2.1.2" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10c0/cedbec45298dd5c501d01b92b119cd3faebe5438c3917ff11ae1bff86a6c722930ac9c8659792824013168ba6db7c4668225d845c633fbdafbbf902a6389f736 + languageName: node + linkType: hard + +"debug@npm:^4.3.4": + version: 4.3.5 + resolution: "debug@npm:4.3.5" + dependencies: + ms: "npm:2.1.2" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10c0/082c375a2bdc4f4469c99f325ff458adad62a3fc2c482d59923c260cb08152f34e2659f72b3767db8bb2f21ca81a60a42d1019605a412132d7b9f59363a005cc + languageName: node + linkType: hard + +"decompress-response@npm:^4.2.0": + version: 4.2.1 + resolution: "decompress-response@npm:4.2.1" + dependencies: + mimic-response: "npm:^2.0.0" + checksum: 10c0/5e4821be332e80e3639acee2441c41d245fc07ac3ee85a6f28893c10c079d66d9bf09e8d84bffeae5656a4625e09e9b93fb4a5705adbe6b07202eea64fae1c8d + languageName: node + linkType: hard + +"delegates@npm:^1.0.0": + version: 1.0.0 + resolution: "delegates@npm:1.0.0" + checksum: 10c0/ba05874b91148e1db4bf254750c042bf2215febd23a6d3cda2e64896aef79745fbd4b9996488bd3cafb39ce19dbce0fd6e3b6665275638befffe1c9b312b91b5 + languageName: node + linkType: hard + +"detect-libc@npm:^1.0.3": + version: 1.0.3 + resolution: "detect-libc@npm:1.0.3" + bin: + detect-libc: ./bin/detect-libc.js + checksum: 10c0/4da0deae9f69e13bc37a0902d78bf7169480004b1fed3c19722d56cff578d16f0e11633b7fbf5fb6249181236c72e90024cbd68f0b9558ae06e281f47326d50d + languageName: node + linkType: hard + +"detect-libc@npm:^2.0.0, detect-libc@npm:^2.0.1": + version: 2.0.3 + resolution: "detect-libc@npm:2.0.3" + checksum: 10c0/88095bda8f90220c95f162bf92cad70bd0e424913e655c20578600e35b91edc261af27531cf160a331e185c0ced93944bc7e09939143225f56312d7fd800fdb7 + languageName: node + linkType: hard + +"dom-serializer@npm:^1.0.1": + version: 1.4.1 + resolution: "dom-serializer@npm:1.4.1" + dependencies: + domelementtype: "npm:^2.0.1" + domhandler: "npm:^4.2.0" + entities: "npm:^2.0.0" + checksum: 10c0/67d775fa1ea3de52035c98168ddcd59418356943b5eccb80e3c8b3da53adb8e37edb2cc2f885802b7b1765bf5022aec21dfc32910d7f9e6de4c3148f095ab5e0 + languageName: node + linkType: hard + +"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0": + version: 2.3.0 + resolution: "domelementtype@npm:2.3.0" + checksum: 10c0/686f5a9ef0fff078c1412c05db73a0dce096190036f33e400a07e2a4518e9f56b1e324f5c576a0a747ef0e75b5d985c040b0d51945ce780c0dd3c625a18cd8c9 + languageName: node + linkType: hard + +"domhandler@npm:^4.2.0, domhandler@npm:^4.2.2, domhandler@npm:^4.3.1": + version: 4.3.1 + resolution: "domhandler@npm:4.3.1" + dependencies: + domelementtype: "npm:^2.2.0" + checksum: 10c0/5c199c7468cb052a8b5ab80b13528f0db3d794c64fc050ba793b574e158e67c93f8336e87fd81e9d5ee43b0e04aea4d8b93ed7be4899cb726a1601b3ba18538b + languageName: node + linkType: hard + +"domutils@npm:^2.8.0": + version: 2.8.0 + resolution: "domutils@npm:2.8.0" + dependencies: + dom-serializer: "npm:^1.0.1" + domelementtype: "npm:^2.2.0" + domhandler: "npm:^4.2.0" + checksum: 10c0/d58e2ae01922f0dd55894e61d18119924d88091837887bf1438f2327f32c65eb76426bd9384f81e7d6dcfb048e0f83c19b222ad7101176ad68cdc9c695b563db + languageName: node + linkType: hard + +"dotenv-expand@npm:^5.1.0": + version: 5.1.0 + resolution: "dotenv-expand@npm:5.1.0" + checksum: 10c0/24ac633de853ef474d0421cc639328b7134109c8dc2baaa5e3afb7495af5e9237136d7e6971e55668e4dce915487eb140967cdd2b3e99aa439e0f6bf8b56faeb + languageName: node + linkType: hard + +"dotenv@npm:^7.0.0": + version: 7.0.0 + resolution: "dotenv@npm:7.0.0" + checksum: 10c0/4d834d09d23ebd284e701c4204172659a7dcd51116f11c29c575ae6d918ccd4760a3383bdfd83cfbed42f061266b787f8e56452b952638867ea5476be875eb27 + languageName: node + linkType: hard + +"duplexify@npm:^4.1.2": + version: 4.1.3 + resolution: "duplexify@npm:4.1.3" + dependencies: + end-of-stream: "npm:^1.4.1" + inherits: "npm:^2.0.3" + readable-stream: "npm:^3.1.1" + stream-shift: "npm:^1.0.2" + checksum: 10c0/8a7621ae95c89f3937f982fe36d72ea997836a708471a75bb2a0eecde3330311b1e128a6dad510e0fd64ace0c56bff3484ed2e82af0e465600c82117eadfbda5 + languageName: node + linkType: hard + +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 10c0/26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39 + languageName: node + linkType: hard + +"electron-to-chromium@npm:^1.4.668": + version: 1.4.723 + resolution: "electron-to-chromium@npm:1.4.723" + checksum: 10c0/336131ee6433df3f7f453aca872ef218ac8aed3bd1a4e3426ba940683157ece6ab5bf059c92d42d223f9a46b5137904167aa1c4525511fcfdb3b3df24b80575a + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010 + languageName: node + linkType: hard + +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: 10c0/af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 + languageName: node + linkType: hard + +"encoding@npm:^0.1.13": + version: 0.1.13 + resolution: "encoding@npm:0.1.13" + dependencies: + iconv-lite: "npm:^0.6.2" + checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039 + languageName: node + linkType: hard + +"end-of-stream@npm:^1.4.1": + version: 1.4.4 + resolution: "end-of-stream@npm:1.4.4" + dependencies: + once: "npm:^1.4.0" + checksum: 10c0/870b423afb2d54bb8d243c63e07c170409d41e20b47eeef0727547aea5740bd6717aca45597a9f2745525667a6b804c1e7bede41f856818faee5806dd9ff3975 + languageName: node + linkType: hard + +"entities@npm:^2.0.0": + version: 2.2.0 + resolution: "entities@npm:2.2.0" + checksum: 10c0/7fba6af1f116300d2ba1c5673fc218af1961b20908638391b4e1e6d5850314ee2ac3ec22d741b3a8060479911c99305164aed19b6254bde75e7e6b1b2c3f3aa3 + languageName: node + linkType: hard + +"entities@npm:^3.0.1": + version: 3.0.1 + resolution: "entities@npm:3.0.1" + checksum: 10c0/2d93f48fd86de0b0ed8ee34456aa47b4e74a916a5e663cfcc7048302e2c7e932002926daf5a00ad6d5691e3c90673a15d413704d86d7e1b9532f9bc00d975590 + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 + languageName: node + linkType: hard + +"err-code@npm:^2.0.2": + version: 2.0.3 + resolution: "err-code@npm:2.0.3" + checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66 + languageName: node + linkType: hard + +"error-ex@npm:^1.3.1": + version: 1.3.2 + resolution: "error-ex@npm:1.3.2" + dependencies: + is-arrayish: "npm:^0.2.1" + checksum: 10c0/ba827f89369b4c93382cfca5a264d059dfefdaa56ecc5e338ffa58a6471f5ed93b71a20add1d52290a4873d92381174382658c885ac1a2305f7baca363ce9cce + languageName: node + linkType: hard + +"escalade@npm:^3.1.1": + version: 3.1.2 + resolution: "escalade@npm:3.1.2" + checksum: 10c0/6b4adafecd0682f3aa1cd1106b8fff30e492c7015b178bc81b2d2f75106dabea6c6d6e8508fc491bd58e597c74abb0e8e2368f943ecb9393d4162e3c2f3cf287 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 10c0/a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371 + languageName: node + linkType: hard + +"event-target-shim@npm:^5.0.0": + version: 5.0.1 + resolution: "event-target-shim@npm:5.0.1" + checksum: 10c0/0255d9f936215fd206156fd4caa9e8d35e62075d720dc7d847e89b417e5e62cf1ce6c9b4e0a1633a9256de0efefaf9f8d26924b1f3c8620cffb9db78e7d3076b + languageName: node + linkType: hard + +"events@npm:^3.3.0": + version: 3.3.0 + resolution: "events@npm:3.3.0" + checksum: 10c0/d6b6f2adbccbcda74ddbab52ed07db727ef52e31a61ed26db9feb7dc62af7fc8e060defa65e5f8af9449b86b52cc1a1f6a79f2eafcf4e62add2b7a1fa4a432f6 + languageName: node + linkType: hard + +"execa@npm:^8.0.1": + version: 8.0.1 + resolution: "execa@npm:8.0.1" + dependencies: + cross-spawn: "npm:^7.0.3" + get-stream: "npm:^8.0.1" + human-signals: "npm:^5.0.0" + is-stream: "npm:^3.0.0" + merge-stream: "npm:^2.0.0" + npm-run-path: "npm:^5.1.0" + onetime: "npm:^6.0.0" + signal-exit: "npm:^4.1.0" + strip-final-newline: "npm:^3.0.0" + checksum: 10c0/2c52d8775f5bf103ce8eec9c7ab3059909ba350a5164744e9947ed14a53f51687c040a250bda833f906d1283aa8803975b84e6c8f7a7c42f99dc8ef80250d1af + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.1 + resolution: "exponential-backoff@npm:3.1.1" + checksum: 10c0/160456d2d647e6019640bd07111634d8c353038d9fa40176afb7cd49b0548bdae83b56d05e907c2cce2300b81cae35d800ef92fefb9d0208e190fa3b7d6bb579 + languageName: node + linkType: hard + +"fast-content-type-parse@npm:^1.1.0": + version: 1.1.0 + resolution: "fast-content-type-parse@npm:1.1.0" + checksum: 10c0/882bf990fa5d64be1825ce183818db43900ece0d7ef184cb9409bae8ed1001acbe536a657b1496382cb3e308e71ab39cc399bbdae70cba1745eecaeca4e55384 + languageName: node + linkType: hard + +"fast-decode-uri-component@npm:^1.0.1": + version: 1.0.1 + resolution: "fast-decode-uri-component@npm:1.0.1" + checksum: 10c0/039d50c2e99d64f999c3f2126c23fbf75a04a4117e218a149ca0b1d2aeb8c834b7b19d643b9d35d4eabce357189a6a94085f78cf48869e6e26cc59b036284bc3 + languageName: node + linkType: hard + +"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": + version: 3.1.3 + resolution: "fast-deep-equal@npm:3.1.3" + checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0 + languageName: node + linkType: hard + +"fast-json-stringify@npm:^5.7.0, fast-json-stringify@npm:^5.8.0": + version: 5.13.0 + resolution: "fast-json-stringify@npm:5.13.0" + dependencies: + "@fastify/merge-json-schemas": "npm:^0.1.0" + ajv: "npm:^8.10.0" + ajv-formats: "npm:^2.1.1" + fast-deep-equal: "npm:^3.1.3" + fast-uri: "npm:^2.1.0" + json-schema-ref-resolver: "npm:^1.0.1" + rfdc: "npm:^1.2.0" + checksum: 10c0/9a37c1bb78f4d9406061606125124df60530a306780cd2cc4cdf821972f907725770d4344a9cb416011b4bece12f0989a61a42c0128a28675506c6fac30e84f3 + languageName: node + linkType: hard + +"fast-querystring@npm:^1.0.0": + version: 1.1.2 + resolution: "fast-querystring@npm:1.1.2" + dependencies: + fast-decode-uri-component: "npm:^1.0.1" + checksum: 10c0/e8223273a9b199722f760f5a047a77ad049a14bd444b821502cb8218f5925e3a5fffb56b64389bca73ab2ac6f1aa7aebbe4e203e5f6e53ff5978de97c0fde4e3 + languageName: node + linkType: hard + +"fast-redact@npm:^3.1.1": + version: 3.5.0 + resolution: "fast-redact@npm:3.5.0" + checksum: 10c0/7e2ce4aad6e7535e0775bf12bd3e4f2e53d8051d8b630e0fa9e67f68cb0b0e6070d2f7a94b1d0522ef07e32f7c7cda5755e2b677a6538f1e9070ca053c42343a + languageName: node + linkType: hard + +"fast-uri@npm:^2.0.0, fast-uri@npm:^2.1.0": + version: 2.3.0 + resolution: "fast-uri@npm:2.3.0" + checksum: 10c0/72844622c8b9d92dbb783723628d1069c999b31bfaa74af9e9afae0e0c22faf18c988a0ce55e775dce4c404f4cca75fa43e1f0ab07075342cff99796f4920945 + languageName: node + linkType: hard + +"fastify-plugin@npm:^4.0.0": + version: 4.5.1 + resolution: "fastify-plugin@npm:4.5.1" + checksum: 10c0/f58f79cd9d3c88fd7f79a3270276c6339fc57bbe72ef14d20b73779193c404e317ac18e8eae2c5071b3909ebee45d7eb6871da4e65464ac64ed0d9746b4e9b9f + languageName: node + linkType: hard + +"fastify@npm:^4.26.2": + version: 4.26.2 + resolution: "fastify@npm:4.26.2" + dependencies: + "@fastify/ajv-compiler": "npm:^3.5.0" + "@fastify/error": "npm:^3.4.0" + "@fastify/fast-json-stringify-compiler": "npm:^4.3.0" + abstract-logging: "npm:^2.0.1" + avvio: "npm:^8.3.0" + fast-content-type-parse: "npm:^1.1.0" + fast-json-stringify: "npm:^5.8.0" + find-my-way: "npm:^8.0.0" + light-my-request: "npm:^5.11.0" + pino: "npm:^8.17.0" + process-warning: "npm:^3.0.0" + proxy-addr: "npm:^2.0.7" + rfdc: "npm:^1.3.0" + secure-json-parse: "npm:^2.7.0" + semver: "npm:^7.5.4" + toad-cache: "npm:^3.3.0" + checksum: 10c0/6b05f2dbe7032909f5916e481645af9ab534e6cbd8d97ba4dfbc383c0bca565f90fccc528c5b6b61f225044c39ea79255fc824f0bb4702354e0991bbdbc57894 + languageName: node + linkType: hard + +"fastq@npm:^1.17.1": + version: 1.17.1 + resolution: "fastq@npm:1.17.1" + dependencies: + reusify: "npm:^1.0.4" + checksum: 10c0/1095f16cea45fb3beff558bb3afa74ca7a9250f5a670b65db7ed585f92b4b48381445cd328b3d87323da81e43232b5d5978a8201bde84e0cd514310f1ea6da34 + languageName: node + linkType: hard + +"fill-range@npm:^7.0.1": + version: 7.0.1 + resolution: "fill-range@npm:7.0.1" + dependencies: + to-regex-range: "npm:^5.0.1" + checksum: 10c0/7cdad7d426ffbaadf45aeb5d15ec675bbd77f7597ad5399e3d2766987ed20bda24d5fac64b3ee79d93276f5865608bb22344a26b9b1ae6c4d00bd94bf611623f + languageName: node + linkType: hard + +"find-my-way@npm:^8.0.0": + version: 8.1.0 + resolution: "find-my-way@npm:8.1.0" + dependencies: + fast-deep-equal: "npm:^3.1.3" + fast-querystring: "npm:^1.0.0" + safe-regex2: "npm:^2.0.0" + checksum: 10c0/f0f6a01953e4bc1789fdae1e861b0a0b1cb930f0c9c8c03e21fc27664a0cb50c22a56218e7b3738791aa6a01a452f73ee5a02063837fcab96988c3c63dcb8e43 + languageName: node + linkType: hard + +"foreground-child@npm:^3.1.0": + version: 3.2.1 + resolution: "foreground-child@npm:3.2.1" + dependencies: + cross-spawn: "npm:^7.0.0" + signal-exit: "npm:^4.0.1" + checksum: 10c0/9a53a33dbd87090e9576bef65fb4a71de60f6863a8062a7b11bc1cbe3cc86d428677d7c0b9ef61cdac11007ac580006f78bd5638618d564cfd5e6fd713d6878f + languageName: node + linkType: hard + +"forwarded@npm:0.2.0": + version: 0.2.0 + resolution: "forwarded@npm:0.2.0" + checksum: 10c0/9b67c3fac86acdbc9ae47ba1ddd5f2f81526fa4c8226863ede5600a3f7c7416ef451f6f1e240a3cc32d0fd79fcfe6beb08fd0da454f360032bde70bf80afbb33 + languageName: node + linkType: hard + +"fs-minipass@npm:^2.0.0": + version: 2.1.0 + resolution: "fs-minipass@npm:2.1.0" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/703d16522b8282d7299337539c3ed6edddd1afe82435e4f5b76e34a79cd74e488a8a0e26a636afc2440e1a23b03878e2122e3a2cfe375a5cf63c37d92b86a004 + languageName: node + linkType: hard + +"fs-minipass@npm:^3.0.0": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 + languageName: node + linkType: hard + +"fs.realpath@npm:^1.0.0": + version: 1.0.0 + resolution: "fs.realpath@npm:1.0.0" + checksum: 10c0/444cf1291d997165dfd4c0d58b69f0e4782bfd9149fd72faa4fe299e68e0e93d6db941660b37dd29153bf7186672ececa3b50b7e7249477b03fdf850f287c948 + languageName: node + linkType: hard + +"fsevents@npm:~2.3.2": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" + dependencies: + node-gyp: "npm:latest" + checksum: 10c0/a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" + dependencies: + node-gyp: "npm:latest" + conditions: os=darwin + languageName: node + linkType: hard + +"gauge@npm:^3.0.0": + version: 3.0.2 + resolution: "gauge@npm:3.0.2" + dependencies: + aproba: "npm:^1.0.3 || ^2.0.0" + color-support: "npm:^1.1.2" + console-control-strings: "npm:^1.0.0" + has-unicode: "npm:^2.0.1" + object-assign: "npm:^4.1.1" + signal-exit: "npm:^3.0.0" + string-width: "npm:^4.2.3" + strip-ansi: "npm:^6.0.1" + wide-align: "npm:^1.1.2" + checksum: 10c0/75230ccaf216471e31025c7d5fcea1629596ca20792de50c596eb18ffb14d8404f927cd55535aab2eeecd18d1e11bd6f23ec3c2e9878d2dda1dc74bccc34b913 + languageName: node + linkType: hard + +"get-port@npm:^4.2.0": + version: 4.2.0 + resolution: "get-port@npm:4.2.0" + checksum: 10c0/ecce4233b720e7c6612aedc334ee8bb62b7d44db7ad6a55e58f7b3a17993ecfcb1bb218b8bb1ee197d0971c12e420aad2b3f95a93e4a117f2186f926ebcd2d42 + languageName: node + linkType: hard + +"get-stream@npm:^8.0.1": + version: 8.0.1 + resolution: "get-stream@npm:8.0.1" + checksum: 10c0/5c2181e98202b9dae0bb4a849979291043e5892eb40312b47f0c22b9414fc9b28a3b6063d2375705eb24abc41ecf97894d9a51f64ff021511b504477b27b4290 + languageName: node + linkType: hard + +"glob-parent@npm:~5.1.2": + version: 5.1.2 + resolution: "glob-parent@npm:5.1.2" + dependencies: + is-glob: "npm:^4.0.1" + checksum: 10c0/cab87638e2112bee3f839ef5f6e0765057163d39c66be8ec1602f3823da4692297ad4e972de876ea17c44d652978638d2fd583c6713d0eb6591706825020c9ee + languageName: node + linkType: hard + +"glob@npm:^10.2.2, glob@npm:^10.3.10": + version: 10.4.5 + resolution: "glob@npm:10.4.5" + dependencies: + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^3.1.2" + minimatch: "npm:^9.0.4" + minipass: "npm:^7.1.2" + package-json-from-dist: "npm:^1.0.0" + path-scurry: "npm:^1.11.1" + bin: + glob: dist/esm/bin.mjs + checksum: 10c0/19a9759ea77b8e3ca0a43c2f07ecddc2ad46216b786bb8f993c445aee80d345925a21e5280c7b7c6c59e860a0154b84e4b2b60321fea92cd3c56b4a7489f160e + languageName: node + linkType: hard + +"glob@npm:^7.1.3": + version: 7.2.3 + resolution: "glob@npm:7.2.3" + dependencies: + fs.realpath: "npm:^1.0.0" + inflight: "npm:^1.0.4" + inherits: "npm:2" + minimatch: "npm:^3.1.1" + once: "npm:^1.3.0" + path-is-absolute: "npm:^1.0.0" + checksum: 10c0/65676153e2b0c9095100fe7f25a778bf45608eeb32c6048cf307f579649bcc30353277b3b898a3792602c65764e5baa4f643714dfbdfd64ea271d210c7a425fe + languageName: node + linkType: hard + +"globals@npm:^13.2.0": + version: 13.24.0 + resolution: "globals@npm:13.24.0" + dependencies: + type-fest: "npm:^0.20.2" + checksum: 10c0/d3c11aeea898eb83d5ec7a99508600fbe8f83d2cf00cbb77f873dbf2bcb39428eff1b538e4915c993d8a3b3473fa71eeebfe22c9bb3a3003d1e26b1f2c8a42cd + languageName: node + linkType: hard + +"graceful-fs@npm:^4.2.6": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 + languageName: node + linkType: hard + +"has-flag@npm:^3.0.0": + version: 3.0.0 + resolution: "has-flag@npm:3.0.0" + checksum: 10c0/1c6c83b14b8b1b3c25b0727b8ba3e3b647f99e9e6e13eb7322107261de07a4c1be56fc0d45678fc376e09772a3a1642ccdaf8fc69bdf123b6c086598397ce473 + languageName: node + linkType: hard + +"has-flag@npm:^4.0.0": + version: 4.0.0 + resolution: "has-flag@npm:4.0.0" + checksum: 10c0/2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1 + languageName: node + linkType: hard + +"has-unicode@npm:^2.0.1": + version: 2.0.1 + resolution: "has-unicode@npm:2.0.1" + checksum: 10c0/ebdb2f4895c26bb08a8a100b62d362e49b2190bcfd84b76bc4be1a3bd4d254ec52d0dd9f2fbcc093fc5eb878b20c52146f9dfd33e2686ed28982187be593b47c + languageName: node + linkType: hard + +"htmlnano@npm:^2.0.0": + version: 2.1.0 + resolution: "htmlnano@npm:2.1.0" + dependencies: + cosmiconfig: "npm:^8.0.0" + posthtml: "npm:^0.16.5" + timsort: "npm:^0.3.0" + peerDependencies: + cssnano: ^6.0.0 + postcss: ^8.3.11 + purgecss: ^5.0.0 + relateurl: ^0.2.7 + srcset: 4.0.0 + svgo: ^3.0.2 + terser: ^5.10.0 + uncss: ^0.17.3 + peerDependenciesMeta: + cssnano: + optional: true + postcss: + optional: true + purgecss: + optional: true + relateurl: + optional: true + srcset: + optional: true + svgo: + optional: true + terser: + optional: true + uncss: + optional: true + checksum: 10c0/33e78a18e044c6db671626babfdab60bd483c432164e6e38ef70c895a5698a91215972ebf2dbd7f7f8c05fbac80fa169ee1dde4bc0f1427d7dc3c162e0300610 + languageName: node + linkType: hard + +"htmlparser2@npm:^7.1.1": + version: 7.2.0 + resolution: "htmlparser2@npm:7.2.0" + dependencies: + domelementtype: "npm:^2.0.1" + domhandler: "npm:^4.2.2" + domutils: "npm:^2.8.0" + entities: "npm:^3.0.1" + checksum: 10c0/7e1fa7f3b2635f2a1c5272765e25aab33b241d84a43e9d27f28a0b7166b51a8025dec40a6a29af38d6a698a2f1d2983cb43e5c61d4e07ec5aa9df672a7460e16 + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.1.1": + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 10c0/ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc + languageName: node + linkType: hard + +"http-proxy-agent@npm:^7.0.0": + version: 7.0.2 + resolution: "http-proxy-agent@npm:7.0.2" + dependencies: + agent-base: "npm:^7.1.0" + debug: "npm:^4.3.4" + checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^5.0.0": + version: 5.0.1 + resolution: "https-proxy-agent@npm:5.0.1" + dependencies: + agent-base: "npm:6" + debug: "npm:4" + checksum: 10c0/6dd639f03434003577c62b27cafdb864784ef19b2de430d8ae2a1d45e31c4fd60719e5637b44db1a88a046934307da7089e03d6089ec3ddacc1189d8de8897d1 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^7.0.1": + version: 7.0.5 + resolution: "https-proxy-agent@npm:7.0.5" + dependencies: + agent-base: "npm:^7.0.2" + debug: "npm:4" + checksum: 10c0/2490e3acec397abeb88807db52cac59102d5ed758feee6df6112ab3ccd8325e8a1ce8bce6f4b66e5470eca102d31e425ace904242e4fa28dbe0c59c4bafa7b2c + languageName: node + linkType: hard + +"human-signals@npm:^5.0.0": + version: 5.0.0 + resolution: "human-signals@npm:5.0.0" + checksum: 10c0/5a9359073fe17a8b58e5a085e9a39a950366d9f00217c4ff5878bd312e09d80f460536ea6a3f260b5943a01fe55c158d1cea3fc7bee3d0520aeef04f6d915c82 + languageName: node + linkType: hard + +"iconv-lite@npm:^0.6.2": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: "npm:>= 2.1.2 < 3.0.0" + checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 + languageName: node + linkType: hard + +"ieee754@npm:^1.2.1": + version: 1.2.1 + resolution: "ieee754@npm:1.2.1" + checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb + languageName: node + linkType: hard + +"immutable@npm:^4.0.0": + version: 4.3.5 + resolution: "immutable@npm:4.3.5" + checksum: 10c0/63d2d7908241a955d18c7822fd2215b6e89ff5a1a33cc72cd475b013cbbdef7a705aa5170a51ce9f84a57f62fdddfaa34e7b5a14b33d8a43c65cc6a881d6e894 + languageName: node + linkType: hard + +"import-fresh@npm:^3.3.0": + version: 3.3.0 + resolution: "import-fresh@npm:3.3.0" + dependencies: + parent-module: "npm:^1.0.0" + resolve-from: "npm:^4.0.0" + checksum: 10c0/7f882953aa6b740d1f0e384d0547158bc86efbf2eea0f1483b8900a6f65c5a5123c2cf09b0d542cc419d0b98a759ecaeb394237e97ea427f2da221dc3cd80cc3 + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6 + languageName: node + linkType: hard + +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 10c0/1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f + languageName: node + linkType: hard + +"inflight@npm:^1.0.4": + version: 1.0.6 + resolution: "inflight@npm:1.0.6" + dependencies: + once: "npm:^1.3.0" + wrappy: "npm:1" + checksum: 10c0/7faca22584600a9dc5b9fca2cd5feb7135ac8c935449837b315676b4c90aa4f391ec4f42240178244b5a34e8bede1948627fda392ca3191522fc46b34e985ab2 + languageName: node + linkType: hard + +"inherits@npm:2, inherits@npm:^2.0.3, inherits@npm:^2.0.4": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 + languageName: node + linkType: hard + +"ip-address@npm:^9.0.5": + version: 9.0.5 + resolution: "ip-address@npm:9.0.5" + dependencies: + jsbn: "npm:1.1.0" + sprintf-js: "npm:^1.1.3" + checksum: 10c0/331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc + languageName: node + linkType: hard + +"ipaddr.js@npm:1.9.1": + version: 1.9.1 + resolution: "ipaddr.js@npm:1.9.1" + checksum: 10c0/0486e775047971d3fdb5fb4f063829bac45af299ae0b82dcf3afa2145338e08290563a2a70f34b732d795ecc8311902e541a8530eeb30d75860a78ff4e94ce2a + languageName: node + linkType: hard + +"is-arrayish@npm:^0.2.1": + version: 0.2.1 + resolution: "is-arrayish@npm:0.2.1" + checksum: 10c0/e7fb686a739068bb70f860b39b67afc62acc62e36bb61c5f965768abce1873b379c563e61dd2adad96ebb7edf6651111b385e490cf508378959b0ed4cac4e729 + languageName: node + linkType: hard + +"is-binary-path@npm:~2.1.0": + version: 2.1.0 + resolution: "is-binary-path@npm:2.1.0" + dependencies: + binary-extensions: "npm:^2.0.0" + checksum: 10c0/a16eaee59ae2b315ba36fad5c5dcaf8e49c3e27318f8ab8fa3cdb8772bf559c8d1ba750a589c2ccb096113bb64497084361a25960899cb6172a6925ab6123d38 + languageName: node + linkType: hard + +"is-extglob@npm:^2.1.1": + version: 2.1.1 + resolution: "is-extglob@npm:2.1.1" + checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc + languageName: node + linkType: hard + +"is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": + version: 4.0.3 + resolution: "is-glob@npm:4.0.3" + dependencies: + is-extglob: "npm:^2.1.1" + checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a + languageName: node + linkType: hard + +"is-json@npm:^2.0.1": + version: 2.0.1 + resolution: "is-json@npm:2.0.1" + checksum: 10c0/49233aa560396e6365186be2f3a4618bf8b8067c1a97f2a25b8de09a9d7f326985f0163508067abeae5a21c69594a2a537f0147a5c4050ef097c15964e994cb4 + languageName: node + linkType: hard + +"is-lambda@npm:^1.0.1": + version: 1.0.1 + resolution: "is-lambda@npm:1.0.1" + checksum: 10c0/85fee098ae62ba6f1e24cf22678805473c7afd0fb3978a3aa260e354cb7bcb3a5806cf0a98403188465efedec41ab4348e8e4e79305d409601323855b3839d4d + languageName: node + linkType: hard + +"is-number@npm:^7.0.0": + version: 7.0.0 + resolution: "is-number@npm:7.0.0" + checksum: 10c0/b4686d0d3053146095ccd45346461bc8e53b80aeb7671cc52a4de02dbbf7dc0d1d2a986e2fe4ae206984b4d34ef37e8b795ebc4f4295c978373e6575e295d811 + languageName: node + linkType: hard + +"is-stream@npm:^3.0.0": + version: 3.0.0 + resolution: "is-stream@npm:3.0.0" + checksum: 10c0/eb2f7127af02ee9aa2a0237b730e47ac2de0d4e76a4a905a50a11557f2339df5765eaea4ceb8029f1efa978586abe776908720bfcb1900c20c6ec5145f6f29d8 + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d + languageName: node + linkType: hard + +"isexe@npm:^3.1.1": + version: 3.1.1 + resolution: "isexe@npm:3.1.1" + checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 + languageName: node + linkType: hard + +"jackspeak@npm:^3.1.2": + version: 3.4.3 + resolution: "jackspeak@npm:3.4.3" + dependencies: + "@isaacs/cliui": "npm:^8.0.2" + "@pkgjs/parseargs": "npm:^0.11.0" + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 10c0/6acc10d139eaefdbe04d2f679e6191b3abf073f111edf10b1de5302c97ec93fffeb2fdd8681ed17f16268aa9dd4f8c588ed9d1d3bffbbfa6e8bf897cbb3149b9 + languageName: node + linkType: hard + +"js-tokens@npm:^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed + languageName: node + linkType: hard + +"js-yaml@npm:^4.1.0": + version: 4.1.0 + resolution: "js-yaml@npm:4.1.0" + dependencies: + argparse: "npm:^2.0.1" + bin: + js-yaml: bin/js-yaml.js + checksum: 10c0/184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f + languageName: node + linkType: hard + +"jsbn@npm:1.1.0": + version: 1.1.0 + resolution: "jsbn@npm:1.1.0" + checksum: 10c0/4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96 + languageName: node + linkType: hard + +"json-parse-even-better-errors@npm:^2.3.0": + version: 2.3.1 + resolution: "json-parse-even-better-errors@npm:2.3.1" + checksum: 10c0/140932564c8f0b88455432e0f33c4cb4086b8868e37524e07e723f4eaedb9425bdc2bafd71bd1d9765bd15fd1e2d126972bc83990f55c467168c228c24d665f3 + languageName: node + linkType: hard + +"json-schema-ref-resolver@npm:^1.0.1": + version: 1.0.1 + resolution: "json-schema-ref-resolver@npm:1.0.1" + dependencies: + fast-deep-equal: "npm:^3.1.3" + checksum: 10c0/aa89d88108c0109ae35b913c89c132fb50c00f3b99fc8a8309b524b9e3a6a77414f19a6a35a1253871462984cbabc74279ebbd9bf103c6629fb7b37c9fb59bcf + languageName: node + linkType: hard + +"json-schema-traverse@npm:^1.0.0": + version: 1.0.0 + resolution: "json-schema-traverse@npm:1.0.0" + checksum: 10c0/71e30015d7f3d6dc1c316d6298047c8ef98a06d31ad064919976583eb61e1018a60a0067338f0f79cabc00d84af3fcc489bd48ce8a46ea165d9541ba17fb30c6 + languageName: node + linkType: hard + +"json5@npm:^2.2.0, json5@npm:^2.2.1": + version: 2.2.3 + resolution: "json5@npm:2.2.3" + bin: + json5: lib/cli.js + checksum: 10c0/5a04eed94810fa55c5ea138b2f7a5c12b97c3750bc63d11e511dcecbfef758003861522a070c2272764ee0f4e3e323862f386945aeb5b85b87ee43f084ba586c + languageName: node + linkType: hard + +"light-my-request@npm:^5.11.0": + version: 5.12.0 + resolution: "light-my-request@npm:5.12.0" + dependencies: + cookie: "npm:^0.6.0" + process-warning: "npm:^3.0.0" + set-cookie-parser: "npm:^2.4.1" + checksum: 10c0/2ec09501bad340c20e949b05923e21e8bcddc066b1f422d94e3bc9d26eed0ed1f201d599fb23704f32d1720f39f6861bc4cd1be278323c53ba4018f7557fe1a6 + languageName: node + linkType: hard + +"lightningcss-darwin-arm64@npm:1.24.1": + version: 1.24.1 + resolution: "lightningcss-darwin-arm64@npm:1.24.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"lightningcss-darwin-x64@npm:1.24.1": + version: 1.24.1 + resolution: "lightningcss-darwin-x64@npm:1.24.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"lightningcss-freebsd-x64@npm:1.24.1": + version: 1.24.1 + resolution: "lightningcss-freebsd-x64@npm:1.24.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"lightningcss-linux-arm-gnueabihf@npm:1.24.1": + version: 1.24.1 + resolution: "lightningcss-linux-arm-gnueabihf@npm:1.24.1" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"lightningcss-linux-arm64-gnu@npm:1.24.1": + version: 1.24.1 + resolution: "lightningcss-linux-arm64-gnu@npm:1.24.1" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"lightningcss-linux-arm64-musl@npm:1.24.1": + version: 1.24.1 + resolution: "lightningcss-linux-arm64-musl@npm:1.24.1" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"lightningcss-linux-x64-gnu@npm:1.24.1": + version: 1.24.1 + resolution: "lightningcss-linux-x64-gnu@npm:1.24.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"lightningcss-linux-x64-musl@npm:1.24.1": + version: 1.24.1 + resolution: "lightningcss-linux-x64-musl@npm:1.24.1" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"lightningcss-win32-x64-msvc@npm:1.24.1": + version: 1.24.1 + resolution: "lightningcss-win32-x64-msvc@npm:1.24.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"lightningcss@npm:^1.22.1": + version: 1.24.1 + resolution: "lightningcss@npm:1.24.1" + dependencies: + detect-libc: "npm:^1.0.3" + lightningcss-darwin-arm64: "npm:1.24.1" + lightningcss-darwin-x64: "npm:1.24.1" + lightningcss-freebsd-x64: "npm:1.24.1" + lightningcss-linux-arm-gnueabihf: "npm:1.24.1" + lightningcss-linux-arm64-gnu: "npm:1.24.1" + lightningcss-linux-arm64-musl: "npm:1.24.1" + lightningcss-linux-x64-gnu: "npm:1.24.1" + lightningcss-linux-x64-musl: "npm:1.24.1" + lightningcss-win32-x64-msvc: "npm:1.24.1" + dependenciesMeta: + lightningcss-darwin-arm64: + optional: true + lightningcss-darwin-x64: + optional: true + lightningcss-freebsd-x64: + optional: true + lightningcss-linux-arm-gnueabihf: + optional: true + lightningcss-linux-arm64-gnu: + optional: true + lightningcss-linux-arm64-musl: + optional: true + lightningcss-linux-x64-gnu: + optional: true + lightningcss-linux-x64-musl: + optional: true + lightningcss-win32-x64-msvc: + optional: true + checksum: 10c0/6fe2cd1bc92d431195ecb8bb9ebb98fc69010c04436354e0493b0a955d81823e6a2b114a4518ab46ad4eefc10606b51ca157adce2909e09e63b21002ccca93d3 + languageName: node + linkType: hard + +"lines-and-columns@npm:^1.1.6": + version: 1.2.4 + resolution: "lines-and-columns@npm:1.2.4" + checksum: 10c0/3da6ee62d4cd9f03f5dc90b4df2540fb85b352081bee77fe4bbcd12c9000ead7f35e0a38b8d09a9bb99b13223446dd8689ff3c4959807620726d788701a83d2d + languageName: node + linkType: hard + +"lmdb@npm:2.8.5": + version: 2.8.5 + resolution: "lmdb@npm:2.8.5" + dependencies: + "@lmdb/lmdb-darwin-arm64": "npm:2.8.5" + "@lmdb/lmdb-darwin-x64": "npm:2.8.5" + "@lmdb/lmdb-linux-arm": "npm:2.8.5" + "@lmdb/lmdb-linux-arm64": "npm:2.8.5" + "@lmdb/lmdb-linux-x64": "npm:2.8.5" + "@lmdb/lmdb-win32-x64": "npm:2.8.5" + msgpackr: "npm:^1.9.5" + node-addon-api: "npm:^6.1.0" + node-gyp: "npm:latest" + node-gyp-build-optional-packages: "npm:5.1.1" + ordered-binary: "npm:^1.4.1" + weak-lru-cache: "npm:^1.2.2" + dependenciesMeta: + "@lmdb/lmdb-darwin-arm64": + optional: true + "@lmdb/lmdb-darwin-x64": + optional: true + "@lmdb/lmdb-linux-arm": + optional: true + "@lmdb/lmdb-linux-arm64": + optional: true + "@lmdb/lmdb-linux-x64": + optional: true + "@lmdb/lmdb-win32-x64": + optional: true + bin: + download-lmdb-prebuilds: bin/download-prebuilds.js + checksum: 10c0/5c95ae636611f32d3583b26bca0d4b0dc236378f785b5735420edda62f88ddacc17c7586d586779a49f3377422c85c3e0b416c4a47f1c21945f76f001551afc9 + languageName: node + linkType: hard + +"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 10c0/ebd04fbca961e6c1d6c0af3799adcc966a1babe798f685bb84e6599266599cd95d94630b10262f5424539bc4640107e8a33aa28585374abf561d30d16f4b39fb + languageName: node + linkType: hard + +"lru-cache@npm:^6.0.0": + version: 6.0.0 + resolution: "lru-cache@npm:6.0.0" + dependencies: + yallist: "npm:^4.0.0" + checksum: 10c0/cb53e582785c48187d7a188d3379c181b5ca2a9c78d2bce3e7dee36f32761d1c42983da3fe12b55cb74e1779fa94cdc2e5367c028a9b35317184ede0c07a30a9 + languageName: node + linkType: hard + +"make-dir@npm:^3.1.0": + version: 3.1.0 + resolution: "make-dir@npm:3.1.0" + dependencies: + semver: "npm:^6.0.0" + checksum: 10c0/56aaafefc49c2dfef02c5c95f9b196c4eb6988040cf2c712185c7fe5c99b4091591a7fc4d4eafaaefa70ff763a26f6ab8c3ff60b9e75ea19876f49b18667ecaa + languageName: node + linkType: hard + +"make-fetch-happen@npm:^13.0.0": + version: 13.0.1 + resolution: "make-fetch-happen@npm:13.0.1" + dependencies: + "@npmcli/agent": "npm:^2.0.0" + cacache: "npm:^18.0.0" + http-cache-semantics: "npm:^4.1.1" + is-lambda: "npm:^1.0.1" + minipass: "npm:^7.0.2" + minipass-fetch: "npm:^3.0.0" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + negotiator: "npm:^0.6.3" + proc-log: "npm:^4.2.0" + promise-retry: "npm:^2.0.1" + ssri: "npm:^10.0.0" + checksum: 10c0/df5f4dbb6d98153b751bccf4dc4cc500de85a96a9331db9805596c46aa9f99d9555983954e6c1266d9f981ae37a9e4647f42b9a4bb5466f867f4012e582c9e7e + languageName: node + linkType: hard + +"mdn-data@npm:2.0.14": + version: 2.0.14 + resolution: "mdn-data@npm:2.0.14" + checksum: 10c0/67241f8708c1e665a061d2b042d2d243366e93e5bf1f917693007f6d55111588b952dcbfd3ea9c2d0969fb754aad81b30fdcfdcc24546495fc3b24336b28d4bd + languageName: node + linkType: hard + +"merge-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "merge-stream@npm:2.0.0" + checksum: 10c0/867fdbb30a6d58b011449b8885601ec1690c3e41c759ecd5a9d609094f7aed0096c37823ff4a7190ef0b8f22cc86beb7049196ff68c016e3b3c671d0dac91ce5 + languageName: node + linkType: hard + +"micromatch@npm:^4.0.5": + version: 4.0.5 + resolution: "micromatch@npm:4.0.5" + dependencies: + braces: "npm:^3.0.2" + picomatch: "npm:^2.3.1" + checksum: 10c0/3d6505b20f9fa804af5d8c596cb1c5e475b9b0cd05f652c5b56141cf941bd72adaeb7a436fda344235cef93a7f29b7472efc779fcdb83b478eab0867b95cdeff + languageName: node + linkType: hard + +"mimic-fn@npm:^4.0.0": + version: 4.0.0 + resolution: "mimic-fn@npm:4.0.0" + checksum: 10c0/de9cc32be9996fd941e512248338e43407f63f6d497abe8441fa33447d922e927de54d4cc3c1a3c6d652857acd770389d5a3823f311a744132760ce2be15ccbf + languageName: node + linkType: hard + +"mimic-response@npm:^2.0.0": + version: 2.1.0 + resolution: "mimic-response@npm:2.1.0" + checksum: 10c0/717475c840f20deca87a16cb2f7561f9115f5de225ea2377739e09890c81aec72f43c81fd4984650c4044e66be5a846fa7a517ac7908f01009e1e624e19864d5 + languageName: node + linkType: hard + +"minimatch@npm:^3.1.1": + version: 3.1.2 + resolution: "minimatch@npm:3.1.2" + dependencies: + brace-expansion: "npm:^1.1.7" + checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311 + languageName: node + linkType: hard + +"minimatch@npm:^9.0.4": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10c0/de96cf5e35bdf0eab3e2c853522f98ffbe9a36c37797778d2665231ec1f20a9447a7e567cb640901f89e4daaa95ae5d70c65a9e8aa2bb0019b6facbc3c0575ed + languageName: node + linkType: hard + +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e + languageName: node + linkType: hard + +"minipass-fetch@npm:^3.0.0": + version: 3.0.5 + resolution: "minipass-fetch@npm:3.0.5" + dependencies: + encoding: "npm:^0.1.13" + minipass: "npm:^7.0.3" + minipass-sized: "npm:^1.0.3" + minizlib: "npm:^2.1.2" + dependenciesMeta: + encoding: + optional: true + checksum: 10c0/9d702d57f556274286fdd97e406fc38a2f5c8d15e158b498d7393b1105974b21249289ec571fa2b51e038a4872bfc82710111cf75fae98c662f3d6f95e72152b + languageName: node + linkType: hard + +"minipass-flush@npm:^1.0.5": + version: 1.0.5 + resolution: "minipass-flush@npm:1.0.5" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd + languageName: node + linkType: hard + +"minipass-pipeline@npm:^1.2.4": + version: 1.2.4 + resolution: "minipass-pipeline@npm:1.2.4" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2 + languageName: node + linkType: hard + +"minipass-sized@npm:^1.0.3": + version: 1.0.3 + resolution: "minipass-sized@npm:1.0.3" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb + languageName: node + linkType: hard + +"minipass@npm:^3.0.0": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: "npm:^4.0.0" + checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c + languageName: node + linkType: hard + +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: 10c0/a91d8043f691796a8ac88df039da19933ef0f633e3d7f0d35dcd5373af49131cf2399bfc355f41515dc495e3990369c3858cd319e5c2722b4753c90bf3152462 + languageName: node + linkType: hard + +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2": + version: 7.1.2 + resolution: "minipass@npm:7.1.2" + checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557 + languageName: node + linkType: hard + +"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": + version: 2.1.2 + resolution: "minizlib@npm:2.1.2" + dependencies: + minipass: "npm:^3.0.0" + yallist: "npm:^4.0.0" + checksum: 10c0/64fae024e1a7d0346a1102bb670085b17b7f95bf6cfdf5b128772ec8faf9ea211464ea4add406a3a6384a7d87a0cd1a96263692134323477b4fb43659a6cab78 + languageName: node + linkType: hard + +"mkdirp@npm:^1.0.3": + version: 1.0.4 + resolution: "mkdirp@npm:1.0.4" + bin: + mkdirp: bin/cmd.js + checksum: 10c0/46ea0f3ffa8bc6a5bc0c7081ffc3907777f0ed6516888d40a518c5111f8366d97d2678911ad1a6882bf592fa9de6c784fea32e1687bb94e1f4944170af48a5cf + languageName: node + linkType: hard + +"mnemonist@npm:^0.39.8": + version: 0.39.8 + resolution: "mnemonist@npm:0.39.8" + dependencies: + obliterator: "npm:^2.0.1" + checksum: 10c0/fa810768d290919c4ecd3f8ba5c8458bc45df08d1c72fac8f3897721cd90ab42ee1c642cc5208cfd649d40222998dc011127702117c0ca676f243cc80f42cc11 + languageName: node + linkType: hard + +"ms@npm:2.1.2": + version: 2.1.2 + resolution: "ms@npm:2.1.2" + checksum: 10c0/a437714e2f90dbf881b5191d35a6db792efbca5badf112f87b9e1c712aace4b4b9b742dd6537f3edf90fd6f684de897cec230abde57e87883766712ddda297cc + languageName: node + linkType: hard + +"msgpackr-extract@npm:^3.0.2": + version: 3.0.2 + resolution: "msgpackr-extract@npm:3.0.2" + dependencies: + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "npm:3.0.2" + "@msgpackr-extract/msgpackr-extract-darwin-x64": "npm:3.0.2" + "@msgpackr-extract/msgpackr-extract-linux-arm": "npm:3.0.2" + "@msgpackr-extract/msgpackr-extract-linux-arm64": "npm:3.0.2" + "@msgpackr-extract/msgpackr-extract-linux-x64": "npm:3.0.2" + "@msgpackr-extract/msgpackr-extract-win32-x64": "npm:3.0.2" + node-gyp: "npm:latest" + node-gyp-build-optional-packages: "npm:5.0.7" + dependenciesMeta: + "@msgpackr-extract/msgpackr-extract-darwin-arm64": + optional: true + "@msgpackr-extract/msgpackr-extract-darwin-x64": + optional: true + "@msgpackr-extract/msgpackr-extract-linux-arm": + optional: true + "@msgpackr-extract/msgpackr-extract-linux-arm64": + optional: true + "@msgpackr-extract/msgpackr-extract-linux-x64": + optional: true + "@msgpackr-extract/msgpackr-extract-win32-x64": + optional: true + bin: + download-msgpackr-prebuilds: bin/download-prebuilds.js + checksum: 10c0/f14727e0121c241a11cf75824f87822c0a08d65e6b8eba8a3fbf26c7d7287ea3f8ca3ab76887fda781a203bd16e51705207d82593ba6f06abca3181c743a352d + languageName: node + linkType: hard + +"msgpackr@npm:^1.9.5, msgpackr@npm:^1.9.9": + version: 1.10.1 + resolution: "msgpackr@npm:1.10.1" + dependencies: + msgpackr-extract: "npm:^3.0.2" + dependenciesMeta: + msgpackr-extract: + optional: true + checksum: 10c0/2e6ed91af89ec15d1e5595c5b837a4adcbb185b0fbd4773d728ced89ab4abbdd3401f6777b193d487d9807e1cb0cf3da1ba9a0bd2d5a553e22355cea84a36bab + languageName: node + linkType: hard + +"nan@npm:^2.17.0": + version: 2.19.0 + resolution: "nan@npm:2.19.0" + dependencies: + node-gyp: "npm:latest" + checksum: 10c0/b8d05d75f92ee9d94affa50d0aa41b6c698254c848529452d7ab67c2e0d160a83f563bfe2cbd53e077944eceb48c757f83c93634c7c9ff404c9ec1ed4e5ced1a + languageName: node + linkType: hard + +"negotiator@npm:^0.6.3": + version: 0.6.3 + resolution: "negotiator@npm:0.6.3" + checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2 + languageName: node + linkType: hard + +"node-addon-api@npm:^6.1.0": + version: 6.1.0 + resolution: "node-addon-api@npm:6.1.0" + dependencies: + node-gyp: "npm:latest" + checksum: 10c0/d2699c4ad15740fd31482a3b6fca789af7723ab9d393adc6ac45250faaee72edad8f0b10b2b9d087df0de93f1bdc16d97afdd179b26b9ebc9ed68b569faa4bac + languageName: node + linkType: hard + +"node-addon-api@npm:^7.0.0": + version: 7.1.0 + resolution: "node-addon-api@npm:7.1.0" + dependencies: + node-gyp: "npm:latest" + checksum: 10c0/2e096ab079e3c46d33b0e252386e9c239c352f7cc6d75363d9a3c00bdff34c1a5da170da861917512843f213c32d024ced9dc9552b968029786480d18727ec66 + languageName: node + linkType: hard + +"node-fetch@npm:^2.6.7": + version: 2.7.0 + resolution: "node-fetch@npm:2.7.0" + dependencies: + whatwg-url: "npm:^5.0.0" + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: 10c0/b55786b6028208e6fbe594ccccc213cab67a72899c9234eb59dba51062a299ea853210fcf526998eaa2867b0963ad72338824450905679ff0fa304b8c5093ae8 + languageName: node + linkType: hard + +"node-gyp-build-optional-packages@npm:5.0.7": + version: 5.0.7 + resolution: "node-gyp-build-optional-packages@npm:5.0.7" + bin: + node-gyp-build-optional-packages: bin.js + node-gyp-build-optional-packages-optional: optional.js + node-gyp-build-optional-packages-test: build-test.js + checksum: 10c0/e0edb57358dfa8e31c26b38310ddc5ae81d19fd13b3bf095c41215dfd6a033b1269b510c3ce5e73f7a4ed3d36f101ea47716ec75be38f5e31916d185e7f18905 + languageName: node + linkType: hard + +"node-gyp-build-optional-packages@npm:5.1.1": + version: 5.1.1 + resolution: "node-gyp-build-optional-packages@npm:5.1.1" + dependencies: + detect-libc: "npm:^2.0.1" + bin: + node-gyp-build-optional-packages: bin.js + node-gyp-build-optional-packages-optional: optional.js + node-gyp-build-optional-packages-test: build-test.js + checksum: 10c0/f9fad2061c48fb0fc90831cd11d6a7670d731d22a5b00c7d3441b43b4003543299ff64ff2729afe2cefd7d14928e560d469336e5bb00f613932ec2cd56b3665b + languageName: node + linkType: hard + +"node-gyp@npm:latest": + version: 10.2.0 + resolution: "node-gyp@npm:10.2.0" + dependencies: + env-paths: "npm:^2.2.0" + exponential-backoff: "npm:^3.1.1" + glob: "npm:^10.3.10" + graceful-fs: "npm:^4.2.6" + make-fetch-happen: "npm:^13.0.0" + nopt: "npm:^7.0.0" + proc-log: "npm:^4.1.0" + semver: "npm:^7.3.5" + tar: "npm:^6.2.1" + which: "npm:^4.0.0" + bin: + node-gyp: bin/node-gyp.js + checksum: 10c0/00630d67dbd09a45aee0a5d55c05e3916ca9e6d427ee4f7bc392d2d3dc5fad7449b21fc098dd38260a53d9dcc9c879b36704a1994235d4707e7271af7e9a835b + languageName: node + linkType: hard + +"node-releases@npm:^2.0.14": + version: 2.0.14 + resolution: "node-releases@npm:2.0.14" + checksum: 10c0/199fc93773ae70ec9969bc6d5ac5b2bbd6eb986ed1907d751f411fef3ede0e4bfdb45ceb43711f8078bea237b6036db8b1bf208f6ff2b70c7d615afd157f3ab9 + languageName: node + linkType: hard + +"nopt@npm:^5.0.0": + version: 5.0.0 + resolution: "nopt@npm:5.0.0" + dependencies: + abbrev: "npm:1" + bin: + nopt: bin/nopt.js + checksum: 10c0/fc5c4f07155cb455bf5fc3dd149fac421c1a40fd83c6bfe83aa82b52f02c17c5e88301321318adaa27611c8a6811423d51d29deaceab5fa158b585a61a551061 + languageName: node + linkType: hard + +"nopt@npm:^7.0.0": + version: 7.2.1 + resolution: "nopt@npm:7.2.1" + dependencies: + abbrev: "npm:^2.0.0" + bin: + nopt: bin/nopt.js + checksum: 10c0/a069c7c736767121242037a22a788863accfa932ab285a1eb569eb8cd534b09d17206f68c37f096ae785647435e0c5a5a0a67b42ec743e481a455e5ae6a6df81 + languageName: node + linkType: hard + +"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": + version: 3.0.0 + resolution: "normalize-path@npm:3.0.0" + checksum: 10c0/e008c8142bcc335b5e38cf0d63cfd39d6cf2d97480af9abdbe9a439221fd4d749763bab492a8ee708ce7a194bb00c9da6d0a115018672310850489137b3da046 + languageName: node + linkType: hard + +"npm-run-path@npm:^5.1.0": + version: 5.3.0 + resolution: "npm-run-path@npm:5.3.0" + dependencies: + path-key: "npm:^4.0.0" + checksum: 10c0/124df74820c40c2eb9a8612a254ea1d557ddfab1581c3e751f825e3e366d9f00b0d76a3c94ecd8398e7f3eee193018622677e95816e8491f0797b21e30b2deba + languageName: node + linkType: hard + +"npmlog@npm:^5.0.1": + version: 5.0.1 + resolution: "npmlog@npm:5.0.1" + dependencies: + are-we-there-yet: "npm:^2.0.0" + console-control-strings: "npm:^1.1.0" + gauge: "npm:^3.0.0" + set-blocking: "npm:^2.0.0" + checksum: 10c0/489ba519031013001135c463406f55491a17fc7da295c18a04937fe3a4d523fd65e88dd418a28b967ab743d913fdeba1e29838ce0ad8c75557057c481f7d49fa + languageName: node + linkType: hard + +"nth-check@npm:^2.0.1": + version: 2.1.1 + resolution: "nth-check@npm:2.1.1" + dependencies: + boolbase: "npm:^1.0.0" + checksum: 10c0/5fee7ff309727763689cfad844d979aedd2204a817fbaaf0e1603794a7c20db28548d7b024692f953557df6ce4a0ee4ae46cd8ebd9b36cfb300b9226b567c479 + languageName: node + linkType: hard + +"nullthrows@npm:^1.1.1": + version: 1.1.1 + resolution: "nullthrows@npm:1.1.1" + checksum: 10c0/56f34bd7c3dcb3bd23481a277fa22918120459d3e9d95ca72976c72e9cac33a97483f0b95fc420e2eb546b9fe6db398273aba9a938650cdb8c98ee8f159dcb30 + languageName: node + linkType: hard + +"object-assign@npm:^4.1.1": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 + languageName: node + linkType: hard + +"obliterator@npm:^2.0.1": + version: 2.0.4 + resolution: "obliterator@npm:2.0.4" + checksum: 10c0/ff2c10d4de7d62cd1d588b4d18dfc42f246c9e3a259f60d5716f7f88e5b3a3f79856b3207db96ec9a836a01d0958a21c15afa62a3f4e73a1e0b75f2c2f6bab40 + languageName: node + linkType: hard + +"on-exit-leak-free@npm:^2.1.0": + version: 2.1.2 + resolution: "on-exit-leak-free@npm:2.1.2" + checksum: 10c0/faea2e1c9d696ecee919026c32be8d6a633a7ac1240b3b87e944a380e8a11dc9c95c4a1f8fb0568de7ab8db3823e790f12bda45296b1d111e341aad3922a0570 + languageName: node + linkType: hard + +"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: "npm:1" + checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0 + languageName: node + linkType: hard + +"onetime@npm:^6.0.0": + version: 6.0.0 + resolution: "onetime@npm:6.0.0" + dependencies: + mimic-fn: "npm:^4.0.0" + checksum: 10c0/4eef7c6abfef697dd4479345a4100c382d73c149d2d56170a54a07418c50816937ad09500e1ed1e79d235989d073a9bade8557122aee24f0576ecde0f392bb6c + languageName: node + linkType: hard + +"ordered-binary@npm:^1.4.1": + version: 1.5.1 + resolution: "ordered-binary@npm:1.5.1" + checksum: 10c0/fb4c74e07436d0bf33d3b537c18dccafb39a60750a64d8b8fbd55f0b0f8eb7dad710f663b9c2edd1d59e9a27e13b638099da901ecf1cc95cd40173f42cf70f9e + languageName: node + linkType: hard + +"p-map@npm:^4.0.0": + version: 4.0.0 + resolution: "p-map@npm:4.0.0" + dependencies: + aggregate-error: "npm:^3.0.0" + checksum: 10c0/592c05bd6262c466ce269ff172bb8de7c6975afca9b50c975135b974e9bdaafbfe80e61aaaf5be6d1200ba08b30ead04b88cfa7e25ff1e3b93ab28c9f62a2c75 + languageName: node + linkType: hard + +"package-json-from-dist@npm:^1.0.0": + version: 1.0.0 + resolution: "package-json-from-dist@npm:1.0.0" + checksum: 10c0/e3ffaf6ac1040ab6082a658230c041ad14e72fabe99076a2081bb1d5d41210f11872403fc09082daf4387fc0baa6577f96c9c0e94c90c394fd57794b66aa4033 + languageName: node + linkType: hard + +"parcel@npm:^2.12.0": + version: 2.12.0 + resolution: "parcel@npm:2.12.0" + dependencies: + "@parcel/config-default": "npm:2.12.0" + "@parcel/core": "npm:2.12.0" + "@parcel/diagnostic": "npm:2.12.0" + "@parcel/events": "npm:2.12.0" + "@parcel/fs": "npm:2.12.0" + "@parcel/logger": "npm:2.12.0" + "@parcel/package-manager": "npm:2.12.0" + "@parcel/reporter-cli": "npm:2.12.0" + "@parcel/reporter-dev-server": "npm:2.12.0" + "@parcel/reporter-tracer": "npm:2.12.0" + "@parcel/utils": "npm:2.12.0" + chalk: "npm:^4.1.0" + commander: "npm:^7.0.0" + get-port: "npm:^4.2.0" + bin: + parcel: lib/bin.js + checksum: 10c0/1853858c22cb728d3e3f524df04fbdc42aa27a0c8a3a0dbe2314d618ac13a3fe81836ce1560cdfce17338f61ec238d9b616073c181ab77af56664a0221af1b2a + languageName: node + linkType: hard + +"parent-module@npm:^1.0.0": + version: 1.0.1 + resolution: "parent-module@npm:1.0.1" + dependencies: + callsites: "npm:^3.0.0" + checksum: 10c0/c63d6e80000d4babd11978e0d3fee386ca7752a02b035fd2435960ffaa7219dc42146f07069fb65e6e8bf1caef89daf9af7535a39bddf354d78bf50d8294f556 + languageName: node + linkType: hard + +"parse-json@npm:^5.2.0": + version: 5.2.0 + resolution: "parse-json@npm:5.2.0" + dependencies: + "@babel/code-frame": "npm:^7.0.0" + error-ex: "npm:^1.3.1" + json-parse-even-better-errors: "npm:^2.3.0" + lines-and-columns: "npm:^1.1.6" + checksum: 10c0/77947f2253005be7a12d858aedbafa09c9ae39eb4863adf330f7b416ca4f4a08132e453e08de2db46459256fb66afaac5ee758b44fe6541b7cdaf9d252e59585 + languageName: node + linkType: hard + +"path-is-absolute@npm:^1.0.0": + version: 1.0.1 + resolution: "path-is-absolute@npm:1.0.1" + checksum: 10c0/127da03c82172a2a50099cddbf02510c1791fc2cc5f7713ddb613a56838db1e8168b121a920079d052e0936c23005562059756d653b7c544c53185efe53be078 + languageName: node + linkType: hard + +"path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c + languageName: node + linkType: hard + +"path-key@npm:^4.0.0": + version: 4.0.0 + resolution: "path-key@npm:4.0.0" + checksum: 10c0/794efeef32863a65ac312f3c0b0a99f921f3e827ff63afa5cb09a377e202c262b671f7b3832a4e64731003fa94af0263713962d317b9887bd1e0c48a342efba3 + languageName: node + linkType: hard + +"path-scurry@npm:^1.11.1": + version: 1.11.1 + resolution: "path-scurry@npm:1.11.1" + dependencies: + lru-cache: "npm:^10.2.0" + minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" + checksum: 10c0/32a13711a2a505616ae1cc1b5076801e453e7aae6ac40ab55b388bb91b9d0547a52f5aaceff710ea400205f18691120d4431e520afbe4266b836fadede15872d + languageName: node + linkType: hard + +"path-type@npm:^4.0.0": + version: 4.0.0 + resolution: "path-type@npm:4.0.0" + checksum: 10c0/666f6973f332f27581371efaf303fd6c272cc43c2057b37aa99e3643158c7e4b2626549555d88626e99ea9e046f82f32e41bbde5f1508547e9a11b149b52387c + languageName: node + linkType: hard + +"picocolors@npm:^1.0.0": + version: 1.0.0 + resolution: "picocolors@npm:1.0.0" + checksum: 10c0/20a5b249e331c14479d94ec6817a182fd7a5680debae82705747b2db7ec50009a5f6648d0621c561b0572703f84dbef0858abcbd5856d3c5511426afcb1961f7 + languageName: node + linkType: hard + +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1": + version: 2.3.1 + resolution: "picomatch@npm:2.3.1" + checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be + languageName: node + linkType: hard + +"pino-abstract-transport@npm:^1.2.0": + version: 1.2.0 + resolution: "pino-abstract-transport@npm:1.2.0" + dependencies: + readable-stream: "npm:^4.0.0" + split2: "npm:^4.0.0" + checksum: 10c0/b4ab59529b7a91f488440147fc58ee0827a6c1c5ca3627292339354b1381072c1a6bfa9b46d03ad27872589e8477ecf74da12cf286e1e6b665ac64a3b806bf07 + languageName: node + linkType: hard + +"pino-abstract-transport@npm:v1.1.0": + version: 1.1.0 + resolution: "pino-abstract-transport@npm:1.1.0" + dependencies: + readable-stream: "npm:^4.0.0" + split2: "npm:^4.0.0" + checksum: 10c0/6e9b9d5a2c0a37f91ecaf224d335daae1ae682b1c79a05b06ef9e0f0a5d289f8e597992217efc857796dae6f1067e9b4882f95c6228ff433ddc153532cae8aca + languageName: node + linkType: hard + +"pino-std-serializers@npm:^6.0.0": + version: 6.2.2 + resolution: "pino-std-serializers@npm:6.2.2" + checksum: 10c0/8f1c7f0f0d8f91e6c6b5b2a6bfb48f06441abeb85f1c2288319f736f9c6d814fbeebe928d2314efc2ba6018fa7db9357a105eca9fc99fc1f28945a8a8b28d3d5 + languageName: node + linkType: hard + +"pino-std-serializers@npm:^7.0.0": + version: 7.0.0 + resolution: "pino-std-serializers@npm:7.0.0" + checksum: 10c0/73e694d542e8de94445a03a98396cf383306de41fd75ecc07085d57ed7a57896198508a0dec6eefad8d701044af21eb27253ccc352586a03cf0d4a0bd25b4133 + languageName: node + linkType: hard + +"pino@npm:^8.17.0": + version: 8.19.0 + resolution: "pino@npm:8.19.0" + dependencies: + atomic-sleep: "npm:^1.0.0" + fast-redact: "npm:^3.1.1" + on-exit-leak-free: "npm:^2.1.0" + pino-abstract-transport: "npm:v1.1.0" + pino-std-serializers: "npm:^6.0.0" + process-warning: "npm:^3.0.0" + quick-format-unescaped: "npm:^4.0.3" + real-require: "npm:^0.2.0" + safe-stable-stringify: "npm:^2.3.1" + sonic-boom: "npm:^3.7.0" + thread-stream: "npm:^2.0.0" + bin: + pino: bin.js + checksum: 10c0/53e6e9db91e451163e93294b0a7c5c8135742d58909dfc4a6fa1afc155b2b0dc44448ec3d057e08351951f9a3ea67e6ea8e72e952b64a1d889f4d5376cbd1a5d + languageName: node + linkType: hard + +"pino@npm:^9.3.1": + version: 9.3.1 + resolution: "pino@npm:9.3.1" + dependencies: + atomic-sleep: "npm:^1.0.0" + fast-redact: "npm:^3.1.1" + on-exit-leak-free: "npm:^2.1.0" + pino-abstract-transport: "npm:^1.2.0" + pino-std-serializers: "npm:^7.0.0" + process-warning: "npm:^3.0.0" + quick-format-unescaped: "npm:^4.0.3" + real-require: "npm:^0.2.0" + safe-stable-stringify: "npm:^2.3.1" + sonic-boom: "npm:^4.0.1" + thread-stream: "npm:^3.0.0" + bin: + pino: bin.js + checksum: 10c0/ab1e81b3e5a91852136d80a592939883eeb81442e5d3a2c070bdbdeb47c5aaa297ead246530b10eb6d5ff59445f4645d1333d342f255d9f002f73aea843e74ee + languageName: node + linkType: hard + +"postcss-value-parser@npm:^4.2.0": + version: 4.2.0 + resolution: "postcss-value-parser@npm:4.2.0" + checksum: 10c0/f4142a4f56565f77c1831168e04e3effd9ffcc5aebaf0f538eee4b2d465adfd4b85a44257bb48418202a63806a7da7fe9f56c330aebb3cac898e46b4cbf49161 + languageName: node + linkType: hard + +"posthtml-parser@npm:^0.10.1": + version: 0.10.2 + resolution: "posthtml-parser@npm:0.10.2" + dependencies: + htmlparser2: "npm:^7.1.1" + checksum: 10c0/90c7c2e0892c18577a56a5dd60a54c40feb0be7c712a79f711e1730b5eea468f8d521d387af9f08d78e6bca9df613286c3ff8a95ac9426671cbe9021d7ec2ae5 + languageName: node + linkType: hard + +"posthtml-parser@npm:^0.11.0": + version: 0.11.0 + resolution: "posthtml-parser@npm:0.11.0" + dependencies: + htmlparser2: "npm:^7.1.1" + checksum: 10c0/89bf980a60124790f776a9f21aec0f154eba5412d16f0f3a95de7a53d31b9acb9264bf317ab40c080413e3018a8e65c86278e6e8c0731c8e0363418982ed4296 + languageName: node + linkType: hard + +"posthtml-render@npm:^3.0.0": + version: 3.0.0 + resolution: "posthtml-render@npm:3.0.0" + dependencies: + is-json: "npm:^2.0.1" + checksum: 10c0/7adb9c20d0908663019c3c2dede3f6cc8bd19c17c81a1f42a1d8772195be4e5252aeb72a764e92d3424aebfa8c5d35c7ef1ec25243a802d35897aa928858505b + languageName: node + linkType: hard + +"posthtml@npm:^0.16.4, posthtml@npm:^0.16.5": + version: 0.16.6 + resolution: "posthtml@npm:0.16.6" + dependencies: + posthtml-parser: "npm:^0.11.0" + posthtml-render: "npm:^3.0.0" + checksum: 10c0/0505cb70ece051206ffa932394181372be6390a974fd2f50e4e6fdd5d11e41feffba9a5f5e22809ca42899f79bd489d53ceac1d7ad0d782db9521b578e5b7f5a + languageName: node + linkType: hard + +"prettier@npm:^3.2.5": + version: 3.2.5 + resolution: "prettier@npm:3.2.5" + bin: + prettier: bin/prettier.cjs + checksum: 10c0/ea327f37a7d46f2324a34ad35292af2ad4c4c3c3355da07313339d7e554320f66f65f91e856add8530157a733c6c4a897dc41b577056be5c24c40f739f5ee8c6 + languageName: node + linkType: hard + +"proc-log@npm:^4.1.0, proc-log@npm:^4.2.0": + version: 4.2.0 + resolution: "proc-log@npm:4.2.0" + checksum: 10c0/17db4757c2a5c44c1e545170e6c70a26f7de58feb985091fb1763f5081cab3d01b181fb2dd240c9f4a4255a1d9227d163d5771b7e69c9e49a561692db865efb9 + languageName: node + linkType: hard + +"process-warning@npm:^3.0.0": + version: 3.0.0 + resolution: "process-warning@npm:3.0.0" + checksum: 10c0/60f3c8ddee586f0706c1e6cb5aa9c86df05774b9330d792d7c8851cf0031afd759d665404d07037e0b4901b55c44a423f07bdc465c63de07d8d23196bb403622 + languageName: node + linkType: hard + +"process@npm:^0.11.10": + version: 0.11.10 + resolution: "process@npm:0.11.10" + checksum: 10c0/40c3ce4b7e6d4b8c3355479df77aeed46f81b279818ccdc500124e6a5ab882c0cc81ff7ea16384873a95a74c4570b01b120f287abbdd4c877931460eca6084b3 + languageName: node + linkType: hard + +"promise-retry@npm:^2.0.1": + version: 2.0.1 + resolution: "promise-retry@npm:2.0.1" + dependencies: + err-code: "npm:^2.0.2" + retry: "npm:^0.12.0" + checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96 + languageName: node + linkType: hard + +"proxy-addr@npm:^2.0.7": + version: 2.0.7 + resolution: "proxy-addr@npm:2.0.7" + dependencies: + forwarded: "npm:0.2.0" + ipaddr.js: "npm:1.9.1" + checksum: 10c0/c3eed999781a35f7fd935f398b6d8920b6fb00bbc14287bc6de78128ccc1a02c89b95b56742bf7cf0362cc333c61d138532049c7dedc7a328ef13343eff81210 + languageName: node + linkType: hard + +"punycode@npm:^2.1.0": + version: 2.3.1 + resolution: "punycode@npm:2.3.1" + checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9 + languageName: node + linkType: hard + +"quick-format-unescaped@npm:^4.0.3": + version: 4.0.4 + resolution: "quick-format-unescaped@npm:4.0.4" + checksum: 10c0/fe5acc6f775b172ca5b4373df26f7e4fd347975578199e7d74b2ae4077f0af05baa27d231de1e80e8f72d88275ccc6028568a7a8c9ee5e7368ace0e18eff93a4 + languageName: node + linkType: hard + +"react-error-overlay@npm:6.0.9": + version: 6.0.9 + resolution: "react-error-overlay@npm:6.0.9" + checksum: 10c0/02f51337f34589305f827249acb597446489794cc5b5e721a6260111325b56942a7471b76967cba304e797d7e4ef16dd0bd989c112dd0bb9586270df0d75a4a9 + languageName: node + linkType: hard + +"react-refresh@npm:^0.9.0": + version: 0.9.0 + resolution: "react-refresh@npm:0.9.0" + checksum: 10c0/fa20f605e19dc10342e5cec8dcbb88cd4a473d26a7ff0acf1f0402e78f94ec309837be07a3cc3646f88d19f9ed07fa13a275f4656b5e3ced8fa23ce488984609 + languageName: node + linkType: hard + +"readable-stream@npm:^3.1.1, readable-stream@npm:^3.6.0": + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" + dependencies: + inherits: "npm:^2.0.3" + string_decoder: "npm:^1.1.1" + util-deprecate: "npm:^1.0.1" + checksum: 10c0/e37be5c79c376fdd088a45fa31ea2e423e5d48854be7a22a58869b4e84d25047b193f6acb54f1012331e1bcd667ffb569c01b99d36b0bd59658fb33f513511b7 + languageName: node + linkType: hard + +"readable-stream@npm:^4.0.0": + version: 4.5.2 + resolution: "readable-stream@npm:4.5.2" + dependencies: + abort-controller: "npm:^3.0.0" + buffer: "npm:^6.0.3" + events: "npm:^3.3.0" + process: "npm:^0.11.10" + string_decoder: "npm:^1.3.0" + checksum: 10c0/a2c80e0e53aabd91d7df0330929e32d0a73219f9477dbbb18472f6fdd6a11a699fc5d172a1beff98d50eae4f1496c950ffa85b7cc2c4c196963f289a5f39275d + languageName: node + linkType: hard + +"readdirp@npm:~3.6.0": + version: 3.6.0 + resolution: "readdirp@npm:3.6.0" + dependencies: + picomatch: "npm:^2.2.1" + checksum: 10c0/6fa848cf63d1b82ab4e985f4cf72bd55b7dcfd8e0a376905804e48c3634b7e749170940ba77b32804d5fe93b3cc521aa95a8d7e7d725f830da6d93f3669ce66b + languageName: node + linkType: hard + +"real-require@npm:^0.2.0": + version: 0.2.0 + resolution: "real-require@npm:0.2.0" + checksum: 10c0/23eea5623642f0477412ef8b91acd3969015a1501ed34992ada0e3af521d3c865bb2fe4cdbfec5fe4b505f6d1ef6a03e5c3652520837a8c3b53decff7e74b6a0 + languageName: node + linkType: hard + +"regenerator-runtime@npm:^0.13.7": + version: 0.13.11 + resolution: "regenerator-runtime@npm:0.13.11" + checksum: 10c0/12b069dc774001fbb0014f6a28f11c09ebfe3c0d984d88c9bced77fdb6fedbacbca434d24da9ae9371bfbf23f754869307fb51a4c98a8b8b18e5ef748677ca24 + languageName: node + linkType: hard + +"require-from-string@npm:^2.0.2": + version: 2.0.2 + resolution: "require-from-string@npm:2.0.2" + checksum: 10c0/aaa267e0c5b022fc5fd4eef49d8285086b15f2a1c54b28240fdf03599cbd9c26049fee3eab894f2e1f6ca65e513b030a7c264201e3f005601e80c49fb2937ce2 + languageName: node + linkType: hard + +"resolve-from@npm:^4.0.0": + version: 4.0.0 + resolution: "resolve-from@npm:4.0.0" + checksum: 10c0/8408eec31a3112ef96e3746c37be7d64020cda07c03a920f5024e77290a218ea758b26ca9529fd7b1ad283947f34b2291c1c0f6aa0ed34acfdda9c6014c8d190 + languageName: node + linkType: hard + +"ret@npm:~0.2.0": + version: 0.2.2 + resolution: "ret@npm:0.2.2" + checksum: 10c0/1a41e543913cda851abb1dae4852efa97bb693ce58fde3b51cc1cae94e2599dd70b91ad6268a4a07fc238305be06fed91723ef6d08863c48a0d02e0a74b943cd + languageName: node + linkType: hard + +"retry@npm:^0.12.0": + version: 0.12.0 + resolution: "retry@npm:0.12.0" + checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe + languageName: node + linkType: hard + +"reusify@npm:^1.0.4": + version: 1.0.4 + resolution: "reusify@npm:1.0.4" + checksum: 10c0/c19ef26e4e188f408922c46f7ff480d38e8dfc55d448310dfb518736b23ed2c4f547fb64a6ed5bdba92cd7e7ddc889d36ff78f794816d5e71498d645ef476107 + languageName: node + linkType: hard + +"rfdc@npm:^1.2.0, rfdc@npm:^1.3.0": + version: 1.3.1 + resolution: "rfdc@npm:1.3.1" + checksum: 10c0/69f65e3ed30970f8055fac9fbbef9ce578800ca19554eab1dcbffe73a4b8aef536bc4248313889cf25e3b4e38b212c721eabe30856575bf2b2bc3d90f8ba93ef + languageName: node + linkType: hard + +"rimraf@npm:^3.0.2": + version: 3.0.2 + resolution: "rimraf@npm:3.0.2" + dependencies: + glob: "npm:^7.1.3" + bin: + rimraf: bin.js + checksum: 10c0/9cb7757acb489bd83757ba1a274ab545eafd75598a9d817e0c3f8b164238dd90eba50d6b848bd4dcc5f3040912e882dc7ba71653e35af660d77b25c381d402e8 + languageName: node + linkType: hard + +"safe-buffer@npm:^5.0.1, safe-buffer@npm:~5.2.0": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 + languageName: node + linkType: hard + +"safe-regex2@npm:^2.0.0": + version: 2.0.0 + resolution: "safe-regex2@npm:2.0.0" + dependencies: + ret: "npm:~0.2.0" + checksum: 10c0/f499e4fc69caafd7dd8023759e69a32991baa66e90bec5e2a7777b907943b27068dbff4e7a32cc8231f1354fcb779142f419e85498ae1e37384dc60619509c27 + languageName: node + linkType: hard + +"safe-stable-stringify@npm:^2.3.1": + version: 2.4.3 + resolution: "safe-stable-stringify@npm:2.4.3" + checksum: 10c0/81dede06b8f2ae794efd868b1e281e3c9000e57b39801c6c162267eb9efda17bd7a9eafa7379e1f1cacd528d4ced7c80d7460ad26f62ada7c9e01dec61b2e768 + languageName: node + linkType: hard + +"safer-buffer@npm:>= 2.1.2 < 3.0.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 + languageName: node + linkType: hard + +"sass@npm:^1.38.0": + version: 1.72.0 + resolution: "sass@npm:1.72.0" + dependencies: + chokidar: "npm:>=3.0.0 <4.0.0" + immutable: "npm:^4.0.0" + source-map-js: "npm:>=0.6.2 <2.0.0" + bin: + sass: sass.js + checksum: 10c0/7df1bb470648edc4b528976b1b165c78d4c6731f680afac7cdc8324142f1ef4304598d317d98dac747a2ae8eee17271d760def90bba072021a8b19b459336ccd + languageName: node + linkType: hard + +"secure-json-parse@npm:^2.7.0": + version: 2.7.0 + resolution: "secure-json-parse@npm:2.7.0" + checksum: 10c0/f57eb6a44a38a3eeaf3548228585d769d788f59007454214fab9ed7f01fbf2e0f1929111da6db28cf0bcc1a2e89db5219a59e83eeaec3a54e413a0197ce879e4 + languageName: node + linkType: hard + +"semver@npm:^6.0.0": + version: 6.3.1 + resolution: "semver@npm:6.3.1" + bin: + semver: bin/semver.js + checksum: 10c0/e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d + languageName: node + linkType: hard + +"semver@npm:^7.3.5, semver@npm:^7.5.2, semver@npm:^7.5.4": + version: 7.6.0 + resolution: "semver@npm:7.6.0" + dependencies: + lru-cache: "npm:^6.0.0" + bin: + semver: bin/semver.js + checksum: 10c0/fbfe717094ace0aa8d6332d7ef5ce727259815bd8d8815700853f4faf23aacbd7192522f0dc5af6df52ef4fa85a355ebd2f5d39f554bd028200d6cf481ab9b53 + languageName: node + linkType: hard + +"set-blocking@npm:^2.0.0": + version: 2.0.0 + resolution: "set-blocking@npm:2.0.0" + checksum: 10c0/9f8c1b2d800800d0b589de1477c753492de5c1548d4ade52f57f1d1f5e04af5481554d75ce5e5c43d4004b80a3eb714398d6907027dc0534177b7539119f4454 + languageName: node + linkType: hard + +"set-cookie-parser@npm:^2.4.1": + version: 2.6.0 + resolution: "set-cookie-parser@npm:2.6.0" + checksum: 10c0/739da029f0e56806a103fcd5501d9c475e19e77bd8274192d7ae5c374ae714a82bba9a7ac00b0330a18227c5644b08df9e442240527be578f5a6030f9bb2bb80 + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: "npm:^3.0.0" + checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690 + languageName: node + linkType: hard + +"signal-exit@npm:^3.0.0": + version: 3.0.7 + resolution: "signal-exit@npm:3.0.7" + checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912 + languageName: node + linkType: hard + +"signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 + languageName: node + linkType: hard + +"simple-concat@npm:^1.0.0": + version: 1.0.1 + resolution: "simple-concat@npm:1.0.1" + checksum: 10c0/62f7508e674414008910b5397c1811941d457dfa0db4fd5aa7fa0409eb02c3609608dfcd7508cace75b3a0bf67a2a77990711e32cd213d2c76f4fd12ee86d776 + languageName: node + linkType: hard + +"simple-get@npm:^3.0.3": + version: 3.1.1 + resolution: "simple-get@npm:3.1.1" + dependencies: + decompress-response: "npm:^4.2.0" + once: "npm:^1.3.1" + simple-concat: "npm:^1.0.0" + checksum: 10c0/438c78844ea1b1e7268d13ee0b3a39c7d644183367aec916aed3b676b45d3037a61d9f975c200a49b42eb851f29f03745118af1e13c01e60a7b4044f2fd60be7 + languageName: node + linkType: hard + +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539 + languageName: node + linkType: hard + +"socketcomputer-repo@workspace:.": + version: 0.0.0-use.local + resolution: "socketcomputer-repo@workspace:." + dependencies: + "@parcel/packager-ts": "npm:2.12.0" + "@parcel/transformer-sass": "npm:^2.12.0" + "@parcel/transformer-typescript-types": "npm:2.12.0" + "@types/node": "npm:^20.12.2" + canvas: "npm:^2.11.2" + parcel: "npm:^2.12.0" + pino: "npm:^9.3.1" + prettier: "npm:^3.2.5" + stream-http: "npm:^3.1.0" + typescript: "npm:^5.4.3" + languageName: unknown + linkType: soft + +"socks-proxy-agent@npm:^8.0.3": + version: 8.0.4 + resolution: "socks-proxy-agent@npm:8.0.4" + dependencies: + agent-base: "npm:^7.1.1" + debug: "npm:^4.3.4" + socks: "npm:^2.8.3" + checksum: 10c0/345593bb21b95b0508e63e703c84da11549f0a2657d6b4e3ee3612c312cb3a907eac10e53b23ede3557c6601d63252103494caa306b66560f43af7b98f53957a + languageName: node + linkType: hard + +"socks@npm:^2.8.3": + version: 2.8.3 + resolution: "socks@npm:2.8.3" + dependencies: + ip-address: "npm:^9.0.5" + smart-buffer: "npm:^4.2.0" + checksum: 10c0/d54a52bf9325165770b674a67241143a3d8b4e4c8884560c4e0e078aace2a728dffc7f70150660f51b85797c4e1a3b82f9b7aa25e0a0ceae1a243365da5c51a7 + languageName: node + linkType: hard + +"sonic-boom@npm:^3.7.0": + version: 3.8.0 + resolution: "sonic-boom@npm:3.8.0" + dependencies: + atomic-sleep: "npm:^1.0.0" + checksum: 10c0/f3f61cb3fd5d4aad862dd957f22318ef85bf47d4f12ba27b915112908449f752dbdfc95a4739d2b4a9b2770e1e08d349adae9d1030fdab2a3d86128c6773a7f4 + languageName: node + linkType: hard + +"sonic-boom@npm:^4.0.1": + version: 4.0.1 + resolution: "sonic-boom@npm:4.0.1" + dependencies: + atomic-sleep: "npm:^1.0.0" + checksum: 10c0/7b467f2bc8af7ff60bf210382f21c59728cc4b769af9b62c31dd88723f5cc472752d2320736cc366acc7c765ddd5bec3072c033b0faf249923f576a7453ba9d3 + languageName: node + linkType: hard + +"source-map-js@npm:>=0.6.2 <2.0.0": + version: 1.2.0 + resolution: "source-map-js@npm:1.2.0" + checksum: 10c0/7e5f896ac10a3a50fe2898e5009c58ff0dc102dcb056ed27a354623a0ece8954d4b2649e1a1b2b52ef2e161d26f8859c7710350930751640e71e374fe2d321a4 + languageName: node + linkType: hard + +"source-map@npm:^0.6.1": + version: 0.6.1 + resolution: "source-map@npm:0.6.1" + checksum: 10c0/ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011 + languageName: node + linkType: hard + +"split2@npm:^4.0.0": + version: 4.2.0 + resolution: "split2@npm:4.2.0" + checksum: 10c0/b292beb8ce9215f8c642bb68be6249c5a4c7f332fc8ecadae7be5cbdf1ea95addc95f0459ef2e7ad9d45fd1064698a097e4eb211c83e772b49bc0ee423e91534 + languageName: node + linkType: hard + +"sprintf-js@npm:^1.1.3": + version: 1.1.3 + resolution: "sprintf-js@npm:1.1.3" + checksum: 10c0/09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec + languageName: node + linkType: hard + +"srcset@npm:4": + version: 4.0.0 + resolution: "srcset@npm:4.0.0" + checksum: 10c0/0685c3bd2423b33831734fb71560cd8784f024895e70ee2ac2c392e30047c27ffd9481e001950fb0503f4906bc3fe963145935604edad77944d09c9800990660 + languageName: node + linkType: hard + +"ssri@npm:^10.0.0": + version: 10.0.6 + resolution: "ssri@npm:10.0.6" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/e5a1e23a4057a86a97971465418f22ea89bd439ac36ade88812dd920e4e61873e8abd6a9b72a03a67ef50faa00a2daf1ab745c5a15b46d03e0544a0296354227 + languageName: node + linkType: hard + +"stable@npm:^0.1.8": + version: 0.1.8 + resolution: "stable@npm:0.1.8" + checksum: 10c0/df74b5883075076e78f8e365e4068ecd977af6c09da510cfc3148a303d4b87bc9aa8f7c48feb67ed4ef970b6140bd9eabba2129e28024aa88df5ea0114cba39d + languageName: node + linkType: hard + +"stream-http@npm:^3.1.0": + version: 3.2.0 + resolution: "stream-http@npm:3.2.0" + dependencies: + builtin-status-codes: "npm:^3.0.0" + inherits: "npm:^2.0.4" + readable-stream: "npm:^3.6.0" + xtend: "npm:^4.0.2" + checksum: 10c0/f128fb8076d60cd548f229554b6a1a70c08a04b7b2afd4dbe7811d20f27f7d4112562eb8bce86d72a8691df3b50573228afcf1271e55e81f981536c67498bc41 + languageName: node + linkType: hard + +"stream-shift@npm:^1.0.2": + version: 1.0.3 + resolution: "stream-shift@npm:1.0.3" + checksum: 10c0/939cd1051ca750d240a0625b106a2b988c45fb5a3be0cebe9a9858cb01bc1955e8c7b9fac17a9462976bea4a7b704e317c5c2200c70f0ca715a3363b9aa4fd3b + languageName: node + linkType: hard + +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.3": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: "npm:^8.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + strip-ansi: "npm:^6.0.1" + checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b + languageName: node + linkType: hard + +"string-width@npm:^5.0.1, string-width@npm:^5.1.2": + version: 5.1.2 + resolution: "string-width@npm:5.1.2" + dependencies: + eastasianwidth: "npm:^0.2.0" + emoji-regex: "npm:^9.2.2" + strip-ansi: "npm:^7.0.1" + checksum: 10c0/ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca + languageName: node + linkType: hard + +"string_decoder@npm:^1.1.1, string_decoder@npm:^1.3.0": + version: 1.3.0 + resolution: "string_decoder@npm:1.3.0" + dependencies: + safe-buffer: "npm:~5.2.0" + checksum: 10c0/810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d + languageName: node + linkType: hard + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: "npm:^5.0.1" + checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 + languageName: node + linkType: hard + +"strip-ansi@npm:^7.0.1": + version: 7.1.0 + resolution: "strip-ansi@npm:7.1.0" + dependencies: + ansi-regex: "npm:^6.0.1" + checksum: 10c0/a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4 + languageName: node + linkType: hard + +"strip-final-newline@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-final-newline@npm:3.0.0" + checksum: 10c0/a771a17901427bac6293fd416db7577e2bc1c34a19d38351e9d5478c3c415f523f391003b42ed475f27e33a78233035df183525395f731d3bfb8cdcbd4da08ce + languageName: node + linkType: hard + +"supports-color@npm:^5.3.0": + version: 5.5.0 + resolution: "supports-color@npm:5.5.0" + dependencies: + has-flag: "npm:^3.0.0" + checksum: 10c0/6ae5ff319bfbb021f8a86da8ea1f8db52fac8bd4d499492e30ec17095b58af11f0c55f8577390a749b1c4dde691b6a0315dab78f5f54c9b3d83f8fb5905c1c05 + languageName: node + linkType: hard + +"supports-color@npm:^7.1.0": + version: 7.2.0 + resolution: "supports-color@npm:7.2.0" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10c0/afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124 + languageName: node + linkType: hard + +"svgo@npm:^2.4.0": + version: 2.8.0 + resolution: "svgo@npm:2.8.0" + dependencies: + "@trysound/sax": "npm:0.2.0" + commander: "npm:^7.2.0" + css-select: "npm:^4.1.3" + css-tree: "npm:^1.1.3" + csso: "npm:^4.2.0" + picocolors: "npm:^1.0.0" + stable: "npm:^0.1.8" + bin: + svgo: bin/svgo + checksum: 10c0/0741f5d5cad63111a90a0ce7a1a5a9013f6d293e871b75efe39addb57f29a263e45294e485a4d2ff9cc260a5d142c8b5937b2234b4ef05efdd2706fb2d360ecc + languageName: node + linkType: hard + +"tar@npm:^6.1.11, tar@npm:^6.2.1": + version: 6.2.1 + resolution: "tar@npm:6.2.1" + dependencies: + chownr: "npm:^2.0.0" + fs-minipass: "npm:^2.0.0" + minipass: "npm:^5.0.0" + minizlib: "npm:^2.1.1" + mkdirp: "npm:^1.0.3" + yallist: "npm:^4.0.0" + checksum: 10c0/a5eca3eb50bc11552d453488344e6507156b9193efd7635e98e867fab275d527af53d8866e2370cd09dfe74378a18111622ace35af6a608e5223a7d27fe99537 + languageName: node + linkType: hard + +"term-size@npm:^2.2.1": + version: 2.2.1 + resolution: "term-size@npm:2.2.1" + checksum: 10c0/89f6bba1d05d425156c0910982f9344d9e4aebf12d64bfa1f460d93c24baa7bc4c4a21d355fbd7153c316433df0538f64d0ae6e336cc4a69fdda4f85d62bc79d + languageName: node + linkType: hard + +"thread-stream@npm:^2.0.0": + version: 2.4.1 + resolution: "thread-stream@npm:2.4.1" + dependencies: + real-require: "npm:^0.2.0" + checksum: 10c0/ce29265810b9550ce896726301ff006ebfe96b90292728f07cfa4c379740585583046e2a8018afc53aca66b18fed12b33a84f3883e7ebc317185f6682898b8f8 + languageName: node + linkType: hard + +"thread-stream@npm:^3.0.0": + version: 3.1.0 + resolution: "thread-stream@npm:3.1.0" + dependencies: + real-require: "npm:^0.2.0" + checksum: 10c0/c36118379940b77a6ef3e6f4d5dd31e97b8210c3f7b9a54eb8fe6358ab173f6d0acfaf69b9c3db024b948c0c5fd2a7df93e2e49151af02076b35ada3205ec9a6 + languageName: node + linkType: hard + +"timsort@npm:^0.3.0": + version: 0.3.0 + resolution: "timsort@npm:0.3.0" + checksum: 10c0/571b2054a0db3cf80eb255f8609a1f798cae9176f9ec6e3fbd03d64186c015cc9e1e75b88ba38e1d71aebcc03a931352522c7387dcb90caeb148375c7bc106f4 + languageName: node + linkType: hard + +"to-regex-range@npm:^5.0.1": + version: 5.0.1 + resolution: "to-regex-range@npm:5.0.1" + dependencies: + is-number: "npm:^7.0.0" + checksum: 10c0/487988b0a19c654ff3e1961b87f471702e708fa8a8dd02a298ef16da7206692e8552a0250e8b3e8759270f62e9d8314616f6da274734d3b558b1fc7b7724e892 + languageName: node + linkType: hard + +"toad-cache@npm:^3.3.0": + version: 3.7.0 + resolution: "toad-cache@npm:3.7.0" + checksum: 10c0/7dae2782ee20b22c9798bb8b71dec7ec6a0091021d2ea9dd6e8afccab6b65b358fdba49a02209fac574499702e2c000660721516c87c2538d1b2c0ba03e8c0c3 + languageName: node + linkType: hard + +"tr46@npm:~0.0.3": + version: 0.0.3 + resolution: "tr46@npm:0.0.3" + checksum: 10c0/047cb209a6b60c742f05c9d3ace8fa510bff609995c129a37ace03476a9b12db4dbf975e74600830ef0796e18882b2381fb5fb1f6b4f96b832c374de3ab91a11 + languageName: node + linkType: hard + +"tslib@npm:^2.4.0": + version: 2.6.2 + resolution: "tslib@npm:2.6.2" + checksum: 10c0/e03a8a4271152c8b26604ed45535954c0a45296e32445b4b87f8a5abdb2421f40b59b4ca437c4346af0f28179780d604094eb64546bee2019d903d01c6c19bdb + languageName: node + linkType: hard + +"type-fest@npm:^0.20.2": + version: 0.20.2 + resolution: "type-fest@npm:0.20.2" + checksum: 10c0/dea9df45ea1f0aaa4e2d3bed3f9a0bfe9e5b2592bddb92eb1bf06e50bcf98dbb78189668cd8bc31a0511d3fc25539b4cd5c704497e53e93e2d40ca764b10bfc3 + languageName: node + linkType: hard + +"typescript@npm:^5.4.3": + version: 5.4.3 + resolution: "typescript@npm:5.4.3" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/22443a8760c3668e256c0b34b6b45c359ef6cecc10c42558806177a7d500ab1a7d7aac1f976d712e26989ddf6731d2fbdd3212b7c73290a45127c1c43ba2005a + languageName: node + linkType: hard + +"typescript@patch:typescript@npm%3A^5.4.3#optional!builtin": + version: 5.4.3 + resolution: "typescript@patch:typescript@npm%3A5.4.3#optional!builtin::version=5.4.3&hash=5adc0c" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/6e51f8b7e6ec55b897b9e56b67e864fe8f44e30f4a14357aad5dc0f7432db2f01efc0522df0b6c36d361c51f2dc3dcac5c832efd96a404cfabf884e915d38828 + languageName: node + linkType: hard + +"undici-types@npm:~5.26.4": + version: 5.26.5 + resolution: "undici-types@npm:5.26.5" + checksum: 10c0/bb673d7876c2d411b6eb6c560e0c571eef4a01c1c19925175d16e3a30c4c428181fb8d7ae802a261f283e4166a0ac435e2f505743aa9e45d893f9a3df017b501 + languageName: node + linkType: hard + +"unique-filename@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-filename@npm:3.0.0" + dependencies: + unique-slug: "npm:^4.0.0" + checksum: 10c0/6363e40b2fa758eb5ec5e21b3c7fb83e5da8dcfbd866cc0c199d5534c42f03b9ea9ab069769cc388e1d7ab93b4eeef28ef506ab5f18d910ef29617715101884f + languageName: node + linkType: hard + +"unique-slug@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-slug@npm:4.0.0" + dependencies: + imurmurhash: "npm:^0.1.4" + checksum: 10c0/cb811d9d54eb5821b81b18205750be84cb015c20a4a44280794e915f5a0a70223ce39066781a354e872df3572e8155c228f43ff0cce94c7cbf4da2cc7cbdd635 + languageName: node + linkType: hard + +"update-browserslist-db@npm:^1.0.13": + version: 1.0.13 + resolution: "update-browserslist-db@npm:1.0.13" + dependencies: + escalade: "npm:^3.1.1" + picocolors: "npm:^1.0.0" + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 10c0/e52b8b521c78ce1e0c775f356cd16a9c22c70d25f3e01180839c407a5dc787fb05a13f67560cbaf316770d26fa99f78f1acd711b1b54a4f35d4820d4ea7136e6 + languageName: node + linkType: hard + +"uri-js@npm:^4.2.2": + version: 4.4.1 + resolution: "uri-js@npm:4.4.1" + dependencies: + punycode: "npm:^2.1.0" + checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c + languageName: node + linkType: hard + +"util-deprecate@npm:^1.0.1": + version: 1.0.2 + resolution: "util-deprecate@npm:1.0.2" + checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 + languageName: node + linkType: hard + +"utility-types@npm:^3.10.0": + version: 3.11.0 + resolution: "utility-types@npm:3.11.0" + checksum: 10c0/2f1580137b0c3e6cf5405f37aaa8f5249961a76d26f1ca8efc0ff49a2fc0e0b2db56de8e521a174d075758e0c7eb3e590edec0832eb44478b958f09914920f19 + languageName: node + linkType: hard + +"weak-lru-cache@npm:^1.2.2": + version: 1.2.2 + resolution: "weak-lru-cache@npm:1.2.2" + checksum: 10c0/744847bd5b96ca86db1cb40d0aea7e92c02bbdb05f501181bf9c581e82fa2afbda32a327ffbe75749302b8492ab449f1c657ca02410d725f5d412d1e6c607d72 + languageName: node + linkType: hard + +"webidl-conversions@npm:^3.0.0": + version: 3.0.1 + resolution: "webidl-conversions@npm:3.0.1" + checksum: 10c0/5612d5f3e54760a797052eb4927f0ddc01383550f542ccd33d5238cfd65aeed392a45ad38364970d0a0f4fea32e1f4d231b3d8dac4a3bdd385e5cf802ae097db + languageName: node + linkType: hard + +"whatwg-url@npm:^5.0.0": + version: 5.0.0 + resolution: "whatwg-url@npm:5.0.0" + dependencies: + tr46: "npm:~0.0.3" + webidl-conversions: "npm:^3.0.0" + checksum: 10c0/1588bed84d10b72d5eec1d0faa0722ba1962f1821e7539c535558fb5398d223b0c50d8acab950b8c488b4ba69043fd833cc2697056b167d8ad46fac3995a55d5 + languageName: node + linkType: hard + +"which@npm:^2.0.1": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: "npm:^2.0.0" + bin: + node-which: ./bin/node-which + checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f + languageName: node + linkType: hard + +"which@npm:^4.0.0": + version: 4.0.0 + resolution: "which@npm:4.0.0" + dependencies: + isexe: "npm:^3.1.1" + bin: + node-which: bin/which.js + checksum: 10c0/449fa5c44ed120ccecfe18c433296a4978a7583bf2391c50abce13f76878d2476defde04d0f79db8165bdf432853c1f8389d0485ca6e8ebce3bbcded513d5e6a + languageName: node + linkType: hard + +"wide-align@npm:^1.1.2": + version: 1.1.5 + resolution: "wide-align@npm:1.1.5" + dependencies: + string-width: "npm:^1.0.2 || 2 || 3 || 4" + checksum: 10c0/1d9c2a3e36dfb09832f38e2e699c367ef190f96b82c71f809bc0822c306f5379df87bab47bed27ea99106d86447e50eb972d3c516c2f95782807a9d082fbea95 + languageName: node + linkType: hard + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da + languageName: node + linkType: hard + +"wrap-ansi@npm:^8.1.0": + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" + dependencies: + ansi-styles: "npm:^6.1.0" + string-width: "npm:^5.0.1" + strip-ansi: "npm:^7.0.1" + checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60 + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0 + languageName: node + linkType: hard + +"ws@npm:^8.0.0": + version: 8.16.0 + resolution: "ws@npm:8.16.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/a7783bb421c648b1e622b423409cb2a58ac5839521d2f689e84bc9dc41d59379c692dd405b15a997ea1d4c0c2e5314ad707332d0c558f15232d2bc07c0b4618a + languageName: node + linkType: hard + +"xtend@npm:^4.0.2": + version: 4.0.2 + resolution: "xtend@npm:4.0.2" + checksum: 10c0/366ae4783eec6100f8a02dff02ac907bf29f9a00b82ac0264b4d8b832ead18306797e283cf19de776538babfdcb2101375ec5646b59f08c52128ac4ab812ed0e + languageName: node + linkType: hard + +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a + languageName: node + linkType: hard