diff --git a/ts/@live-compositor/core/src/api/input.ts b/ts/@live-compositor/core/src/api/input.ts index d8d05d882..13c1df70c 100644 --- a/ts/@live-compositor/core/src/api/input.ts +++ b/ts/@live-compositor/core/src/api/input.ts @@ -30,6 +30,7 @@ function intoMp4RegisterInput(input: Inputs.RegisterMp4Input): RegisterInputRequ loop: input.loop, required: input.required, offset_ms: input.offsetMs, + video_decoder: input.videoDecoder, }; } diff --git a/ts/@live-compositor/core/src/api/output.ts b/ts/@live-compositor/core/src/api/output.ts index ff7ddf9fc..615ba50bb 100644 --- a/ts/@live-compositor/core/src/api/output.ts +++ b/ts/@live-compositor/core/src/api/output.ts @@ -4,6 +4,7 @@ import type { RegisterRtpOutput, RegisterMp4Output, RegisterCanvasOutput, + RegisterWhipOutput, _liveCompositorInternals, } from 'live-compositor'; import { inputRefIntoRawId } from './input.js'; @@ -27,7 +28,8 @@ export type OutputCanvasVideoOptions = { export type RegisterOutput = | ({ type: 'rtp_stream' } & RegisterRtpOutput) | ({ type: 'mp4' } & RegisterMp4Output) - | ({ type: 'canvas' } & RegisterCanvasOutput); + | ({ type: 'canvas' } & RegisterCanvasOutput) + | ({ type: 'whip' } & RegisterWhipOutput); export function intoRegisterOutput( output: RegisterOutput, @@ -39,6 +41,8 @@ export function intoRegisterOutput( return intoRegisterMp4Output(output, initial); } else if (output.type === 'canvas') { return intoRegisterCanvasOutput(output, initial); + } else if (output.type === 'whip') { + return intoRegisterWhipOutput(output, initial); } else { throw new Error(`Unknown output type ${(output as any).type}`); } @@ -84,8 +88,22 @@ function intoRegisterCanvasOutput( }; } +function intoRegisterWhipOutput( + output: Outputs.RegisterWhipOutput, + initial: { video?: Api.Video; audio?: Api.Audio } +): RegisterOutputRequest { + return { + type: 'whip', + endpoint_url: output.endpointUrl, + bearer_token: output.bearerToken, + + video: output.video && initial.video && intoOutputVideoOptions(output.video, initial.video), + audio: output.audio && initial.audio && intoOutputWhipAudioOptions(output.audio, initial.audio), + }; +} + function intoOutputVideoOptions( - video: Outputs.RtpVideoOptions | Outputs.Mp4VideoOptions, + video: Outputs.RtpVideoOptions | Outputs.Mp4VideoOptions | Outputs.WhipVideoOptions, initial: Api.Video ): Api.OutputVideoOptions { return { @@ -97,7 +115,10 @@ function intoOutputVideoOptions( } function intoVideoEncoderOptions( - encoder: Outputs.RtpVideoEncoderOptions | Outputs.Mp4VideoEncoderOptions + encoder: + | Outputs.RtpVideoEncoderOptions + | Outputs.Mp4VideoEncoderOptions + | Outputs.WhipVideoEncoderOptions ): Api.VideoEncoderOptions { return { type: 'ffmpeg_h264', @@ -128,6 +149,17 @@ function intoOutputMp4AudioOptions( }; } +function intoOutputWhipAudioOptions( + audio: Outputs.WhipAudioOptions, + initial: Api.Audio +): Api.OutputWhipAudioOptions { + return { + send_eos_when: audio.sendEosWhen && intoOutputEosCondition(audio.sendEosWhen), + encoder: intoWhipAudioEncoderOptions(audio.encoder), + initial, + }; +} + function intoRtpAudioEncoderOptions( encoder: Outputs.RtpAudioEncoderOptions ): Api.RtpAudioEncoderOptions { @@ -147,6 +179,15 @@ function intoMp4AudioEncoderOptions( }; } +function intoWhipAudioEncoderOptions( + encoder: Outputs.WhipAudioEncoderOptions +): Api.WhipAudioEncoderOptions { + return { + type: 'opus', + channels: encoder.channels, + }; +} + export function intoAudioInputsConfiguration( inputs: _liveCompositorInternals.AudioConfig ): Api.Audio { diff --git a/ts/live-compositor/src/api.generated.ts b/ts/live-compositor/src/api.generated.ts index 2d72bef77..c2dfaa05f 100644 --- a/ts/live-compositor/src/api.generated.ts +++ b/ts/live-compositor/src/api.generated.ts @@ -65,6 +65,10 @@ export type RegisterInput = * not defined then stream is synchronized based on the first frames delivery time. */ offset_ms?: number | null; + /** + * (**default=`ffmpeg_h264`**) The decoder to use for decoding video. + */ + video_decoder?: VideoDecoder | null; } | { type: "decklink"; @@ -106,9 +110,7 @@ export type RegisterInput = }; export type PortOrPortRange = string | number; export type TransportProtocol = "udp" | "tcp_server"; -export type InputRtpVideoOptions = { - decoder: "ffmpeg_h264"; -}; +export type VideoDecoder = "ffmpeg_h264" | "vulkan_video"; export type InputRtpAudioOptions = | { decoder: "opus"; @@ -185,6 +187,22 @@ export type RegisterOutput = * Audio track configuration. */ audio?: OutputMp4AudioOptions | null; + } + | { + type: "whip"; + /** + * WHIP server endpoint + */ + endpoint_url: string; + bearer_token?: string | null; + /** + * Video track configuration. + */ + video?: OutputVideoOptions | null; + /** + * Audio track configuration. + */ + audio?: OutputWhipAudioOptions | null; }; export type InputId = string; export type VideoEncoderOptions = { @@ -234,16 +252,16 @@ export type Component = */ children?: Component[] | null; /** - * Width of a component in pixels. Exact behavior might be different based on the parent - * component: + * Width of a component in pixels (without a border). Exact behavior might be different + * based on the parent component: * - If the parent component is a layout, check sections "Absolute positioning" and "Static * positioning" of that component. * - If the parent component is not a layout, then this field is required. */ width?: number | null; /** - * Height of a component in pixels. Exact behavior might be different based on the parent - * component: + * Height of a component in pixels (without a border). Exact behavior might be different + * based on the parent component: * - If the parent component is a layout, check sections "Absolute positioning" and "Static * positioning" of that component. * - If the parent component is not a layout, then this field is required. @@ -254,20 +272,20 @@ export type Component = */ direction?: ViewDirection | null; /** - * Distance in pixels between this component's top edge and its parent's top edge. + * Distance in pixels between this component's top edge and its parent's top edge (including a border). * If this field is defined, then the component will ignore a layout defined by its parent. */ top?: number | null; /** - * Distance in pixels between this component's left edge and its parent's left edge. + * Distance in pixels between this component's left edge and its parent's left edge (including a border). * If this field is defined, this element will be absolutely positioned, instead of being * laid out by its parent. */ left?: number | null; /** - * Distance in pixels between the bottom edge of this component and the bottom edge of its parent. - * If this field is defined, this element will be absolutely positioned, instead of being - * laid out by its parent. + * Distance in pixels between the bottom edge of this component and the bottom edge of its + * parent (including a border). If this field is defined, this element will be absolutely + * positioned, instead of being laid out by its parent. */ bottom?: number | null; /** @@ -293,7 +311,23 @@ export type Component = /** * (**default=`"#00000000"`**) Background color in a `"#RRGGBBAA"` format. */ - background_color_rgba?: RGBAColor | null; + background_color?: RGBAColor | null; + /** + * (**default=`0.0`**) Radius of a rounded corner. + */ + border_radius?: number | null; + /** + * (**default=`0.0`**) Border width. + */ + border_width?: number | null; + /** + * (**default=`"#00000000"`**) Border color in a `"#RRGGBBAA"` format. + */ + border_color?: RGBAColor | null; + /** + * List of box shadows. + */ + box_shadow?: BoxShadow[] | null; } | { type: "web_view"; @@ -306,7 +340,8 @@ export type Component = */ children?: Component[] | null; /** - * Id of a web renderer instance. It identifies an instance registered using a [`register web renderer`](../routes.md#register-web-renderer-instance) request. + * Id of a web renderer instance. It identifies an instance registered using a + * [`register web renderer`](../routes.md#register-web-renderer-instance) request. * * :::warning * You can only refer to specific instances in one Component at a time. @@ -335,8 +370,10 @@ export type Component = * @group(1) @binding(0) var * ``` * :::note - * This object's structure must match the structure defined in a shader source code. Currently, we do not handle memory layout automatically. - * To achieve the correct memory alignment, you might need to pad your data with additional fields. See [WGSL documentation](https://www.w3.org/TR/WGSL/#alignment-and-size) for more details. + * This object's structure must match the structure defined in a shader source code. + * Currently, we do not handle memory layout automatically. To achieve the correct memory + * alignment, you might need to pad your data with additional fields. See + * [WGSL documentation](https://www.w3.org/TR/WGSL/#alignment-and-size) for more details. * ::: */ shader_param?: ShaderParam | null; @@ -398,11 +435,11 @@ export type Component = /** * (**default=`"#FFFFFFFF"`**) Font color in `#RRGGBBAA` format. */ - color_rgba?: RGBAColor | null; + color?: RGBAColor | null; /** * (**default=`"#00000000"`**) Background color in `#RRGGBBAA` format. */ - background_color_rgba?: RGBAColor | null; + background_color?: RGBAColor | null; /** * (**default=`"Verdana"`**) Font family. Provide [family-name](https://www.w3.org/TR/2018/REC-css-fonts-3-20180920/#family-name-value) * for a specific font. "generic-family" values like e.g. "sans-serif" will not work. @@ -454,7 +491,7 @@ export type Component = /** * (**default=`"#00000000"`**) Background color in a `"#RRGGBBAA"` format. */ - background_color_rgba?: RGBAColor | null; + background_color?: RGBAColor | null; /** * (**default=`"16:9"`**) Aspect ratio of a tile in `"W:H"` format, where W and H are integers. */ @@ -480,6 +517,7 @@ export type Component = * effect if the previous scene already contained a `Tiles` component with the same id. */ transition?: Transition | null; + border_radius?: number | null; } | { type: "rescaler"; @@ -504,36 +542,36 @@ export type Component = */ vertical_align?: VerticalAlign | null; /** - * Width of a component in pixels. Exact behavior might be different based on the parent - * component: + * Width of a component in pixels (without a border). Exact behavior might be different + * based on the parent component: * - If the parent component is a layout, check sections "Absolute positioning" and "Static * positioning" of that component. * - If the parent component is not a layout, then this field is required. */ width?: number | null; /** - * Height of a component in pixels. Exact behavior might be different based on the parent - * component: + * Height of a component in pixels (without a border). Exact behavior might be different + * based on the parent component: * - If the parent component is a layout, check sections "Absolute positioning" and "Static * positioning" of that component. * - If the parent component is not a layout, then this field is required. */ height?: number | null; /** - * Distance in pixels between this component's top edge and its parent's top edge. + * Distance in pixels between this component's top edge and its parent's top edge (including a border). * If this field is defined, then the component will ignore a layout defined by its parent. */ top?: number | null; /** - * Distance in pixels between this component's left edge and its parent's left edge. + * Distance in pixels between this component's left edge and its parent's left edge (including a border). * If this field is defined, this element will be absolutely positioned, instead of being * laid out by its parent. */ left?: number | null; /** - * Distance in pixels between this component's bottom edge and its parent's bottom edge. - * If this field is defined, this element will be absolutely positioned, instead of being - * laid out by its parent. + * Distance in pixels between the bottom edge of this component and the bottom edge of its + * parent (including a border). If this field is defined, this element will be absolutely + * positioned, instead of being laid out by its parent. */ bottom?: number | null; /** @@ -552,6 +590,22 @@ export type Component = * effect if the previous scene already contained a `Rescaler` component with the same id. */ transition?: Transition | null; + /** + * (**default=`0.0`**) Radius of a rounded corner. + */ + border_radius?: number | null; + /** + * (**default=`0.0`**) Border width. + */ + border_width?: number | null; + /** + * (**default=`"#00000000"`**) Border color in a `"#RRGGBBAA"` format. + */ + border_color?: RGBAColor | null; + /** + * List of box shadows. + */ + box_shadow?: BoxShadow[] | null; }; export type ComponentId = string; export type ViewDirection = "row" | "column"; @@ -667,6 +721,17 @@ export type Mp4AudioEncoderOptions = { type: "aac"; channels: AudioChannels; }; +export type WhipAudioEncoderOptions = { + type: "opus"; + /** + * Specifies channels configuration. + */ + channels: AudioChannels; + /** + * (**default="voip"**) Specifies preset for audio output encoder. + */ + preset?: OpusEncoderPreset | null; +}; export type ImageSpec = | { asset_type: "png"; @@ -694,6 +759,9 @@ export type WebEmbeddingMethod = | "native_embedding_over_content" | "native_embedding_under_content"; +export interface InputRtpVideoOptions { + decoder: VideoDecoder; +} export interface OutputVideoOptions { /** * Output resolution in pixels. @@ -761,6 +829,12 @@ export interface Transition { */ easing_function?: EasingFunction | null; } +export interface BoxShadow { + offset_x?: number | null; + offset_y?: number | null; + color?: RGBAColor | null; + blur_radius?: number | null; +} export interface OutputRtpAudioOptions { /** * (**default="sum_clip"**) Specifies how audio should be mixed. @@ -807,6 +881,24 @@ export interface OutputMp4AudioOptions { */ initial: Audio; } +export interface OutputWhipAudioOptions { + /** + * (**default="sum_clip"**) Specifies how audio should be mixed. + */ + mixing_strategy?: MixingStrategy | null; + /** + * Condition for termination of output stream based on the input streams states. + */ + send_eos_when?: OutputEndCondition | null; + /** + * Audio encoder options. + */ + encoder: WhipAudioEncoderOptions; + /** + * Initial audio mixer configuration for output. + */ + initial: Audio; +} export interface WebRendererSpec { /** * Url of a website that you want to render. diff --git a/ts/live-compositor/src/components/Rescaler.ts b/ts/live-compositor/src/components/Rescaler.ts index f36f680b5..3c68935ea 100644 --- a/ts/live-compositor/src/components/Rescaler.ts +++ b/ts/live-compositor/src/components/Rescaler.ts @@ -62,6 +62,22 @@ export type RescalerStyleProps = { * absolutely positioned, instead of being laid out by its parent. */ rotation?: number; + /** + * (**default=`0.0`**) Radius of a rounded corner. + */ + borderRadius?: number; + /** + * (**default=`0.0`**) Border width. + */ + borderWidth?: number; + /** + * (**default=`"#00000000"`**) Border color in `RGB` or `RGBA` format. + */ + borderColor?: string; + /** + * Properties of the BoxShadow applied to the container. + */ + boxShadow?: Api.BoxShadow[]; }; export type RescalerProps = ComponentBaseProps & { @@ -105,6 +121,10 @@ function sceneBuilder( right: style?.right, rotation: style?.rotation, transition: transition && intoApiTransition(transition), + border_radius: style?.borderRadius, + border_width: style?.borderWidth, + border_color: style?.borderColor, + box_shadow: style?.boxShadow, }; } diff --git a/ts/live-compositor/src/components/Text.ts b/ts/live-compositor/src/components/Text.ts index c2f3e0f18..945b9ddfa 100644 --- a/ts/live-compositor/src/components/Text.ts +++ b/ts/live-compositor/src/components/Text.ts @@ -1,7 +1,6 @@ import type * as Api from '../api.js'; import type { ComponentBaseProps, SceneComponent } from '../component.js'; import { createCompositorComponent, DEFAULT_FONT_SIZE } from '../component.js'; -import { intoApiRgbaColor } from './common.js'; export type TextStyleProps = { /** @@ -34,11 +33,11 @@ export type TextStyleProps = { */ lineHeight?: number; /** - * (**default=`"#FFFFFFFF"`**) Font color in `#RRGGBBAA` or `#RRGGBB` format. + * (**default=`"#FFFFFFFF"`**) Font color in `RGB` or `RGBA` format. */ color?: string; /** - * (**default=`"#00000000"`**) Background color in `#RRGGBBAA` or `#RRGGBB` format. + * (**default=`"#00000000"`**) Background color in `RGB` or `RGBA` format. */ backgroundColor?: string; /** @@ -90,8 +89,8 @@ function sceneBuilder(props: TextProps, children: SceneComponent[]): Api.Compone max_height: style?.maxHeight, font_size: style?.fontSize ?? DEFAULT_FONT_SIZE, line_height: style?.lineHeight, - color_rgba: style?.color && intoApiRgbaColor(style?.color), - background_color_rgba: style?.backgroundColor && intoApiRgbaColor(style?.backgroundColor), + color: style?.color, + background_color: style?.backgroundColor, font_family: style?.fontFamily, style: style?.fontStyle, align: style?.align, diff --git a/ts/live-compositor/src/components/Tiles.ts b/ts/live-compositor/src/components/Tiles.ts index 985f6ec9b..f096dd889 100644 --- a/ts/live-compositor/src/components/Tiles.ts +++ b/ts/live-compositor/src/components/Tiles.ts @@ -1,6 +1,6 @@ import type * as Api from '../api.js'; import type { Transition } from './common.js'; -import { intoApiRgbaColor, intoApiTransition } from './common.js'; +import { intoApiTransition } from './common.js'; import type { ComponentBaseProps, SceneComponent } from '../component.js'; import { createCompositorComponent, sceneComponentIntoApi } from '../component.js'; @@ -22,7 +22,7 @@ export type TilesStyleProps = { */ height?: number; /** - * (**default=`"#00000000"`**) Background color in a `"#RRGGBBAA"` or `"#RRGGBB"` format. + * (**default=`"#00000000"`**) Background color in `RGB` or `RGBA` format. */ backgroundColor?: string; /** @@ -71,7 +71,7 @@ function sceneBuilder( children: children.map(sceneComponentIntoApi), width: style?.width, height: style?.height, - background_color_rgba: style?.backgroundColor && intoApiRgbaColor(style?.backgroundColor), + background_color: style?.backgroundColor, tile_aspect_ratio: style?.tileAspectRatio, margin: style?.margin, padding: style?.padding, diff --git a/ts/live-compositor/src/components/View.ts b/ts/live-compositor/src/components/View.ts index c972e9549..c779c363c 100644 --- a/ts/live-compositor/src/components/View.ts +++ b/ts/live-compositor/src/components/View.ts @@ -2,7 +2,7 @@ import type * as Api from '../api.js'; import type { ComponentBaseProps, SceneComponent } from '../component.js'; import { createCompositorComponent, sceneComponentIntoApi } from '../component.js'; import type { Transition } from './common.js'; -import { intoApiRgbaColor, intoApiTransition } from './common.js'; +import { intoApiTransition } from './common.js'; export type ViewStyleProps = { /** @@ -58,9 +58,25 @@ export type ViewStyleProps = { */ overflow?: Api.Overflow; /** - * (**default=`"#00000000"`**) Background color in a `"#RRGGBBAA"` or `"#RRGGBB"`format. + * (**default=`"#00000000"`**) Background color in `RGB` or `RGBA` format. */ backgroundColor?: string; + /** + * (**default=`0.0`**) Radius of a rounded corner. + */ + borderRadius?: number; + /** + * (**default=`0.0`**) Border width. + */ + borderWidth?: number; + /** + * (**default=`"#00000000"`**) Border color in `RGB` or `RGBA` format. + */ + borderColor?: string; + /** + * Properties of the BoxShadow applied to the container. + */ + boxShadow?: Api.BoxShadow[]; }; export type ViewProps = ComponentBaseProps & { @@ -96,8 +112,14 @@ function sceneBuilder( rotation: style.rotation, overflow: style.overflow, - background_color_rgba: style?.backgroundColor && intoApiRgbaColor(style.backgroundColor), + background_color: style.backgroundColor, transition: transition && intoApiTransition(transition), + + border_radius: style.borderRadius, + border_width: style.borderWidth, + border_color: style.borderColor, + + box_shadow: style.boxShadow, }; } diff --git a/ts/live-compositor/src/components/common.ts b/ts/live-compositor/src/components/common.ts index 0df3635ac..3d067d333 100644 --- a/ts/live-compositor/src/components/common.ts +++ b/ts/live-compositor/src/components/common.ts @@ -47,13 +47,3 @@ export function intoApiEasingFunction(easing: EasingFunction): Api.EasingFunctio throw new Error(`Invalid LiveCompositor.EasingFunction ${easing}`); } } - -const rgbRegExp = /^#[0-9a-fA-F]{6}$/; - -export function intoApiRgbaColor(color: string): Api.RGBAColor { - if (rgbRegExp.test(color)) { - return `${color}FF`; - } else { - return color; - } -} diff --git a/ts/live-compositor/src/index.ts b/ts/live-compositor/src/index.ts index 4b7cf1d6e..1f9247401 100644 --- a/ts/live-compositor/src/index.ts +++ b/ts/live-compositor/src/index.ts @@ -23,6 +23,7 @@ export { RegisterRtpOutput, RegisterMp4Output, RegisterCanvasOutput, + RegisterWhipOutput, } from './types/registerOutput.js'; export * as Inputs from './types/registerInput.js'; diff --git a/ts/live-compositor/src/types/registerInput.ts b/ts/live-compositor/src/types/registerInput.ts index 77f049ac9..334be56aa 100644 --- a/ts/live-compositor/src/types/registerInput.ts +++ b/ts/live-compositor/src/types/registerInput.ts @@ -53,6 +53,10 @@ export type RegisterMp4Input = { * not defined then stream is synchronized based on the first frames delivery time. */ offsetMs?: number | null; + /** + * (**default=`ffmpeg_h264`**) The decoder to use for decoding video. + */ + videoDecoder?: Api.VideoDecoder | null; }; export type InputRtpAudioOptions = diff --git a/ts/live-compositor/src/types/registerOutput.ts b/ts/live-compositor/src/types/registerOutput.ts index 4859cdcd7..0f12d14cc 100644 --- a/ts/live-compositor/src/types/registerOutput.ts +++ b/ts/live-compositor/src/types/registerOutput.ts @@ -38,6 +38,25 @@ export type RegisterCanvasOutput = { video: OutputCanvasVideoOptions; }; +export type RegisterWhipOutput = { + /** + * WHIP server endpoint. + */ + endpointUrl: string; + /** + * Token for authenticating comunication with the WHIP server. + */ + bearerToken?: string | null; + /** + * Video track configuration. + */ + video?: WhipVideoOptions | null; + /** + * Audio track configuration. + */ + audio?: WhipAudioOptions | null; +}; + export type RtpVideoOptions = { /** * Output resolution in pixels. @@ -68,6 +87,21 @@ export type Mp4VideoOptions = { encoder: Mp4VideoEncoderOptions; }; +export type WhipVideoOptions = { + /** + * Output resolution in pixels. + */ + resolution: Api.Resolution; + /** + * Defines when output stream should end if some of the input streams are finished. If output includes both audio and video streams, then EOS needs to be sent on both. + */ + sendEosWhen?: OutputEndCondition | null; + /** + * Video encoder options. + */ + encoder: WhipVideoEncoderOptions; +}; + export type OutputCanvasVideoOptions = { /** * Output resolution in pixels. @@ -103,6 +137,18 @@ export type Mp4VideoEncoderOptions = { ffmpegOptions?: Api.VideoEncoderOptions['ffmpeg_options']; }; +export type WhipVideoEncoderOptions = { + type: 'ffmpeg_h264'; + /** + * (**default=`"fast"`**) Preset for an encoder. See `FFmpeg` [docs](https://trac.ffmpeg.org/wiki/Encode/H.264#Preset) to learn more. + */ + preset: Api.H264EncoderPreset; + /** + * Raw FFmpeg encoder options. See [docs](https://ffmpeg.org/ffmpeg-codecs.html) for more. + */ + ffmpegOptions?: Api.VideoEncoderOptions['ffmpeg_options']; +}; + export type RtpAudioOptions = { /** * (**default="sum_clip"**) Specifies how audio should be mixed. @@ -118,7 +164,7 @@ export type RtpAudioOptions = { encoder: RtpAudioEncoderOptions; }; -export interface Mp4AudioOptions { +export type Mp4AudioOptions = { /** * (**default="sum_clip"**) Specifies how audio should be mixed. */ @@ -131,7 +177,22 @@ export interface Mp4AudioOptions { * Audio encoder options. */ encoder: Mp4AudioEncoderOptions; -} +}; + +export type WhipAudioOptions = { + /** + * (**default="sum_clip"**) Specifies how audio should be mixed. + */ + mixingStrategy?: Api.MixingStrategy | null; + /** + * Condition for termination of output stream based on the input streams states. + */ + sendEosWhen?: OutputEndCondition | null; + /** + * Audio encoder options. + */ + encoder: WhipAudioEncoderOptions; +}; export type RtpAudioEncoderOptions = { type: 'opus'; @@ -147,6 +208,15 @@ export type Mp4AudioEncoderOptions = { channels: Api.AudioChannels; }; +export type WhipAudioEncoderOptions = { + type: 'opus'; + channels: Api.AudioChannels; + /** + * (**default="voip"**) Specifies preset for audio output encoder. + */ + preset?: Api.OpusEncoderPreset; +}; + export type OutputEndCondition = | { /** diff --git a/ts/pnpm-lock.yaml b/ts/pnpm-lock.yaml index 93a213083..df33926f8 100644 --- a/ts/pnpm-lock.yaml +++ b/ts/pnpm-lock.yaml @@ -13,13 +13,13 @@ importers: version: 0.2.4 '@typescript-eslint/eslint-plugin': specifier: ^8.8.1 - version: 8.18.1(@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.5.3))(eslint@9.17.0)(typescript@5.5.3) + version: 8.19.1(@typescript-eslint/parser@8.19.1(eslint@9.17.0)(typescript@5.5.3))(eslint@9.17.0)(typescript@5.5.3) '@typescript-eslint/parser': specifier: ^8.8.1 - version: 8.18.1(eslint@9.17.0)(typescript@5.5.3) + version: 8.19.1(eslint@9.17.0)(typescript@5.5.3) concurrently: specifier: ^9.0.1 - version: 9.1.0 + version: 9.1.2 eslint: specifier: ^9.12.0 version: 9.17.0 @@ -31,7 +31,7 @@ importers: version: 3.7.0(eslint-plugin-import@2.31.0)(eslint@9.17.0) eslint-plugin-import: specifier: ^2.31.0 - version: 2.31.0(@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.7.0)(eslint@9.17.0) + version: 2.31.0(@typescript-eslint/parser@8.19.1(eslint@9.17.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.7.0)(eslint@9.17.0) eslint-plugin-prettier: specifier: ^5.2.1 version: 5.2.1(eslint-config-prettier@9.1.0(eslint@9.17.0))(eslint@9.17.0)(prettier@3.4.2) @@ -65,16 +65,16 @@ importers: devDependencies: '@rollup/plugin-typescript': specifier: ^11.1.6 - version: 11.1.6(rollup@4.28.1)(tslib@2.8.1)(typescript@5.7.2) + version: 11.1.6(rollup@4.30.1)(tslib@2.8.1)(typescript@5.5.3) rollup: specifier: ^4.21.2 - version: 4.28.1 + version: 4.30.1 rollup-plugin-copy: specifier: ^3.5.0 version: 3.5.0 rollup-plugin-dts: specifier: ^6.1.1 - version: 6.1.1(rollup@4.28.1)(typescript@5.7.2) + version: 6.1.1(rollup@4.30.1)(typescript@5.5.3) wasm-pack: specifier: ^0.13.0 version: 0.13.1 @@ -86,7 +86,7 @@ importers: version: link:../../live-compositor pino: specifier: ^9.5.0 - version: 9.5.0 + version: 9.6.0 react: specifier: '*' version: 18.3.1 @@ -96,7 +96,7 @@ importers: devDependencies: '@types/react': specifier: ^18.3.3 - version: 18.3.17 + version: 18.3.18 '@types/react-reconciler': specifier: 0.28.8 version: 0.28.8 @@ -114,7 +114,7 @@ importers: version: 2.7.0 pino: specifier: ^9.5.0 - version: 9.5.0 + version: 9.6.0 pino-pretty: specifier: ^13.0.0 version: 13.0.0 @@ -133,7 +133,7 @@ importers: version: 11.0.4 '@types/node': specifier: ^20.14.10 - version: 20.17.10 + version: 20.17.12 '@types/node-fetch': specifier: ^2.6.11 version: 2.6.12 @@ -166,11 +166,11 @@ importers: version: 6.1.0 pino: specifier: ^9.5.0 - version: 9.5.0 + version: 9.6.0 devDependencies: '@types/react': specifier: ^18.3.3 - version: 18.3.17 + version: 18.3.18 create-live-compositor: dependencies: @@ -207,17 +207,17 @@ importers: version: 18.3.1 zustand: specifier: 4.5.5 - version: 4.5.5(@types/react@18.3.17)(react@18.3.1) + version: 4.5.5(@types/react@18.3.18)(react@18.3.1) devDependencies: '@types/express': specifier: ^4.17.21 version: 4.17.21 '@types/node': specifier: ^20.14.10 - version: 20.17.10 + version: 20.17.12 '@types/react': specifier: ^18.3.3 - version: 18.3.17 + version: 18.3.18 create-live-compositor/templates/node-minimal: dependencies: @@ -233,13 +233,13 @@ importers: devDependencies: '@types/node': specifier: ^20.14.10 - version: 20.17.10 + version: 20.17.12 '@types/react': specifier: ^18.3.3 - version: 18.3.17 + version: 18.3.18 typescript: specifier: ^5.5.3 - version: 5.7.2 + version: 5.5.3 examples/node-examples: dependencies: @@ -260,20 +260,20 @@ importers: version: 18.3.1 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@20.17.10)(typescript@5.7.2) + version: 10.9.2(@types/node@20.17.12)(typescript@5.5.3) devDependencies: '@types/fs-extra': specifier: ^11.0.4 version: 11.0.4 '@types/node': specifier: ^20.14.10 - version: 20.17.10 + version: 20.17.12 '@types/node-fetch': specifier: ^2.6.11 version: 2.6.12 '@types/react': specifier: ^18.3.3 - version: 18.3.17 + version: 18.3.18 examples/vite-browser-render: dependencies: @@ -298,25 +298,25 @@ importers: devDependencies: '@types/react': specifier: ^18.3.3 - version: 18.3.17 + version: 18.3.18 '@types/react-dom': specifier: ^18.3.0 - version: 18.3.5(@types/react@18.3.17) + version: 18.3.5(@types/react@18.3.18) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.11(@types/node@20.17.10)) + version: 4.3.4(vite@5.4.11(@types/node@20.17.12)) typescript: specifier: ^5.5.3 - version: 5.7.2 + version: 5.5.3 typescript-eslint: specifier: ^8.0.1 - version: 8.18.1(eslint@9.17.0)(typescript@5.7.2) + version: 8.19.1(eslint@9.17.0)(typescript@5.5.3) vite: specifier: ^5.4.1 - version: 5.4.11(@types/node@20.17.10) + version: 5.4.11(@types/node@20.17.12) vite-plugin-static-copy: specifier: ^1.0.6 - version: 1.0.6(vite@5.4.11(@types/node@20.17.10)) + version: 1.0.6(vite@5.4.11(@types/node@20.17.12)) live-compositor: dependencies: @@ -326,7 +326,7 @@ importers: devDependencies: '@types/react': specifier: ^18.3.3 - version: 18.3.17 + version: 18.3.18 packages: @@ -694,98 +694,98 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.28.1': - resolution: {integrity: sha512-2aZp8AES04KI2dy3Ss6/MDjXbwBzj+i0GqKtWXgw2/Ma6E4jJvujryO6gJAghIRVz7Vwr9Gtl/8na3nDUKpraQ==} + '@rollup/rollup-android-arm-eabi@4.30.1': + resolution: {integrity: sha512-pSWY+EVt3rJ9fQ3IqlrEUtXh3cGqGtPDH1FQlNZehO2yYxCHEX1SPsz1M//NXwYfbTlcKr9WObLnJX9FsS9K1Q==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.28.1': - resolution: {integrity: sha512-EbkK285O+1YMrg57xVA+Dp0tDBRB93/BZKph9XhMjezf6F4TpYjaUSuPt5J0fZXlSag0LmZAsTmdGGqPp4pQFA==} + '@rollup/rollup-android-arm64@4.30.1': + resolution: {integrity: sha512-/NA2qXxE3D/BRjOJM8wQblmArQq1YoBVJjrjoTSBS09jgUisq7bqxNHJ8kjCHeV21W/9WDGwJEWSN0KQ2mtD/w==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.28.1': - resolution: {integrity: sha512-prduvrMKU6NzMq6nxzQw445zXgaDBbMQvmKSJaxpaZ5R1QDM8w+eGxo6Y/jhT/cLoCvnZI42oEqf9KQNYz1fqQ==} + '@rollup/rollup-darwin-arm64@4.30.1': + resolution: {integrity: sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.28.1': - resolution: {integrity: sha512-WsvbOunsUk0wccO/TV4o7IKgloJ942hVFK1CLatwv6TJspcCZb9umQkPdvB7FihmdxgaKR5JyxDjWpCOp4uZlQ==} + '@rollup/rollup-darwin-x64@4.30.1': + resolution: {integrity: sha512-x78BavIwSH6sqfP2xeI1hd1GpHL8J4W2BXcVM/5KYKoAD3nNsfitQhvWSw+TFtQTLZ9OmlF+FEInEHyubut2OA==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.28.1': - resolution: {integrity: sha512-HTDPdY1caUcU4qK23FeeGxCdJF64cKkqajU0iBnTVxS8F7H/7BewvYoG+va1KPSL63kQ1PGNyiwKOfReavzvNA==} + '@rollup/rollup-freebsd-arm64@4.30.1': + resolution: {integrity: sha512-HYTlUAjbO1z8ywxsDFWADfTRfTIIy/oUlfIDmlHYmjUP2QRDTzBuWXc9O4CXM+bo9qfiCclmHk1x4ogBjOUpUQ==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.28.1': - resolution: {integrity: sha512-m/uYasxkUevcFTeRSM9TeLyPe2QDuqtjkeoTpP9SW0XxUWfcYrGDMkO/m2tTw+4NMAF9P2fU3Mw4ahNvo7QmsQ==} + '@rollup/rollup-freebsd-x64@4.30.1': + resolution: {integrity: sha512-1MEdGqogQLccphhX5myCJqeGNYTNcmTyaic9S7CG3JhwuIByJ7J05vGbZxsizQthP1xpVx7kd3o31eOogfEirw==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.28.1': - resolution: {integrity: sha512-QAg11ZIt6mcmzpNE6JZBpKfJaKkqTm1A9+y9O+frdZJEuhQxiugM05gnCWiANHj4RmbgeVJpTdmKRmH/a+0QbA==} + '@rollup/rollup-linux-arm-gnueabihf@4.30.1': + resolution: {integrity: sha512-PaMRNBSqCx7K3Wc9QZkFx5+CX27WFpAMxJNiYGAXfmMIKC7jstlr32UhTgK6T07OtqR+wYlWm9IxzennjnvdJg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.28.1': - resolution: {integrity: sha512-dRP9PEBfolq1dmMcFqbEPSd9VlRuVWEGSmbxVEfiq2cs2jlZAl0YNxFzAQS2OrQmsLBLAATDMb3Z6MFv5vOcXg==} + '@rollup/rollup-linux-arm-musleabihf@4.30.1': + resolution: {integrity: sha512-B8Rcyj9AV7ZlEFqvB5BubG5iO6ANDsRKlhIxySXcF1axXYUyqwBok+XZPgIYGBgs7LDXfWfifxhw0Ik57T0Yug==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.28.1': - resolution: {integrity: sha512-uGr8khxO+CKT4XU8ZUH1TTEUtlktK6Kgtv0+6bIFSeiSlnGJHG1tSFSjm41uQ9sAO/5ULx9mWOz70jYLyv1QkA==} + '@rollup/rollup-linux-arm64-gnu@4.30.1': + resolution: {integrity: sha512-hqVyueGxAj3cBKrAI4aFHLV+h0Lv5VgWZs9CUGqr1z0fZtlADVV1YPOij6AhcK5An33EXaxnDLmJdQikcn5NEw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.28.1': - resolution: {integrity: sha512-QF54q8MYGAqMLrX2t7tNpi01nvq5RI59UBNx+3+37zoKX5KViPo/gk2QLhsuqok05sSCRluj0D00LzCwBikb0A==} + '@rollup/rollup-linux-arm64-musl@4.30.1': + resolution: {integrity: sha512-i4Ab2vnvS1AE1PyOIGp2kXni69gU2DAUVt6FSXeIqUCPIR3ZlheMW3oP2JkukDfu3PsexYRbOiJrY+yVNSk9oA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.28.1': - resolution: {integrity: sha512-vPul4uodvWvLhRco2w0GcyZcdyBfpfDRgNKU+p35AWEbJ/HPs1tOUrkSueVbBS0RQHAf/A+nNtDpvw95PeVKOA==} + '@rollup/rollup-linux-loongarch64-gnu@4.30.1': + resolution: {integrity: sha512-fARcF5g296snX0oLGkVxPmysetwUk2zmHcca+e9ObOovBR++9ZPOhqFUM61UUZ2EYpXVPN1redgqVoBB34nTpQ==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.28.1': - resolution: {integrity: sha512-pTnTdBuC2+pt1Rmm2SV7JWRqzhYpEILML4PKODqLz+C7Ou2apEV52h19CR7es+u04KlqplggmN9sqZlekg3R1A==} + '@rollup/rollup-linux-powerpc64le-gnu@4.30.1': + resolution: {integrity: sha512-GLrZraoO3wVT4uFXh67ElpwQY0DIygxdv0BNW9Hkm3X34wu+BkqrDrkcsIapAY+N2ATEbvak0XQ9gxZtCIA5Rw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.28.1': - resolution: {integrity: sha512-vWXy1Nfg7TPBSuAncfInmAI/WZDd5vOklyLJDdIRKABcZWojNDY0NJwruY2AcnCLnRJKSaBgf/GiJfauu8cQZA==} + '@rollup/rollup-linux-riscv64-gnu@4.30.1': + resolution: {integrity: sha512-0WKLaAUUHKBtll0wvOmh6yh3S0wSU9+yas923JIChfxOaaBarmb/lBKPF0w/+jTVozFnOXJeRGZ8NvOxvk/jcw==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.28.1': - resolution: {integrity: sha512-/yqC2Y53oZjb0yz8PVuGOQQNOTwxcizudunl/tFs1aLvObTclTwZ0JhXF2XcPT/zuaymemCDSuuUPXJJyqeDOg==} + '@rollup/rollup-linux-s390x-gnu@4.30.1': + resolution: {integrity: sha512-GWFs97Ruxo5Bt+cvVTQkOJ6TIx0xJDD/bMAOXWJg8TCSTEK8RnFeOeiFTxKniTc4vMIaWvCplMAFBt9miGxgkA==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.28.1': - resolution: {integrity: sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw==} + '@rollup/rollup-linux-x64-gnu@4.30.1': + resolution: {integrity: sha512-UtgGb7QGgXDIO+tqqJ5oZRGHsDLO8SlpE4MhqpY9Llpzi5rJMvrK6ZGhsRCST2abZdBqIBeXW6WPD5fGK5SDwg==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.28.1': - resolution: {integrity: sha512-xQTDVzSGiMlSshpJCtudbWyRfLaNiVPXt1WgdWTwWz9n0U12cI2ZVtWe/Jgwyv/6wjL7b66uu61Vg0POWVfz4g==} + '@rollup/rollup-linux-x64-musl@4.30.1': + resolution: {integrity: sha512-V9U8Ey2UqmQsBT+xTOeMzPzwDzyXmnAoO4edZhL7INkwQcaW1Ckv3WJX3qrrp/VHaDkEWIBWhRwP47r8cdrOow==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.28.1': - resolution: {integrity: sha512-wSXmDRVupJstFP7elGMgv+2HqXelQhuNf+IS4V+nUpNVi/GUiBgDmfwD0UGN3pcAnWsgKG3I52wMOBnk1VHr/A==} + '@rollup/rollup-win32-arm64-msvc@4.30.1': + resolution: {integrity: sha512-WabtHWiPaFF47W3PkHnjbmWawnX/aE57K47ZDT1BXTS5GgrBUEpvOzq0FI0V/UYzQJgdb8XlhVNH8/fwV8xDjw==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.28.1': - resolution: {integrity: sha512-ZkyTJ/9vkgrE/Rk9vhMXhf8l9D+eAhbAVbsGsXKy2ohmJaWg0LPQLnIxRdRp/bKyr8tXuPlXhIoGlEB5XpJnGA==} + '@rollup/rollup-win32-ia32-msvc@4.30.1': + resolution: {integrity: sha512-pxHAU+Zv39hLUTdQQHUVHf4P+0C47y/ZloorHpzs2SXMRqeAWmGghzAhfOlzFHHwjvgokdFAhC4V+6kC1lRRfw==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.28.1': - resolution: {integrity: sha512-ZvK2jBafvttJjoIdKm/Q/Bh7IJ1Ose9IBOwpOXcOvW3ikGTQGmKDgxTC6oCAzW6PynbkKP8+um1du81XJHZ0JA==} + '@rollup/rollup-win32-x64-msvc@4.30.1': + resolution: {integrity: sha512-D6qjsXGcvhTjv0kI4fU8tUuBDF/Ueee4SVX79VfNDXZa64TfCW1Slkb6Z7O1p7vflqZjcmOVdZlqf8gvJxc6og==} cpu: [x64] os: [win32] @@ -852,8 +852,8 @@ packages: '@types/jsonfile@6.1.4': resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} - '@types/lodash@4.17.13': - resolution: {integrity: sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==} + '@types/lodash@4.17.14': + resolution: {integrity: sha512-jsxagdikDiDBeIRaPYtArcT8my4tN1og7MtMRquFT3XNA6axxyHDRUemqDz/taRDdOUn0GnGHRCuff4q48sW9A==} '@types/mime@1.3.5': resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} @@ -864,8 +864,8 @@ packages: '@types/node-fetch@2.6.12': resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==} - '@types/node@20.17.10': - resolution: {integrity: sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==} + '@types/node@20.17.12': + resolution: {integrity: sha512-vo/wmBgMIiEA23A/knMfn/cf37VnuF52nZh5ZoW0GWt4e4sxNquibrMRJ7UQsA06+MBx9r/H1jsI9grYjQCQlw==} '@types/prompts@2.4.9': resolution: {integrity: sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==} @@ -887,8 +887,8 @@ packages: '@types/react-reconciler@0.28.8': resolution: {integrity: sha512-SN9c4kxXZonFhbX4hJrZy37yw9e7EIxcpHCxQv5JUS18wDE5ovkQKlqQEkufdJCCMfuI9BnjUJvhYeJ9x5Ra7g==} - '@types/react@18.3.17': - resolution: {integrity: sha512-opAQ5no6LqJNo9TqnxBKsgnkIYHozW9KSTlFVoSUJYh1Fl/sswkEoqIugRSm7tbh6pABtYjGAjW+GOS23j8qbw==} + '@types/react@18.3.18': + resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} '@types/send@0.17.4': resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} @@ -902,51 +902,51 @@ packages: '@types/ws@8.5.13': resolution: {integrity: sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==} - '@typescript-eslint/eslint-plugin@8.18.1': - resolution: {integrity: sha512-Ncvsq5CT3Gvh+uJG0Lwlho6suwDfUXH0HztslDf5I+F2wAFAZMRwYLEorumpKLzmO2suAXZ/td1tBg4NZIi9CQ==} + '@typescript-eslint/eslint-plugin@8.19.1': + resolution: {integrity: sha512-tJzcVyvvb9h/PB96g30MpxACd9IrunT7GF9wfA9/0TJ1LxGOJx1TdPzSbBBnNED7K9Ka8ybJsnEpiXPktolTLg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/parser@8.18.1': - resolution: {integrity: sha512-rBnTWHCdbYM2lh7hjyXqxk70wvon3p2FyaniZuey5TrcGBpfhVp0OxOa6gxr9Q9YhZFKyfbEnxc24ZnVbbUkCA==} + '@typescript-eslint/parser@8.19.1': + resolution: {integrity: sha512-67gbfv8rAwawjYx3fYArwldTQKoYfezNUT4D5ioWetr/xCrxXxvleo3uuiFuKfejipvq+og7mjz3b0G2bVyUCw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/scope-manager@8.18.1': - resolution: {integrity: sha512-HxfHo2b090M5s2+/9Z3gkBhI6xBH8OJCFjH9MhQ+nnoZqxU3wNxkLT+VWXWSFWc3UF3Z+CfPAyqdCTdoXtDPCQ==} + '@typescript-eslint/scope-manager@8.19.1': + resolution: {integrity: sha512-60L9KIuN/xgmsINzonOcMDSB8p82h95hoBfSBtXuO4jlR1R9L1xSkmVZKgCPVfavDlXihh4ARNjXhh1gGnLC7Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.18.1': - resolution: {integrity: sha512-jAhTdK/Qx2NJPNOTxXpMwlOiSymtR2j283TtPqXkKBdH8OAMmhiUfP0kJjc/qSE51Xrq02Gj9NY7MwK+UxVwHQ==} + '@typescript-eslint/type-utils@8.19.1': + resolution: {integrity: sha512-Rp7k9lhDKBMRJB/nM9Ksp1zs4796wVNyihG9/TU9R6KCJDNkQbc2EOKjrBtLYh3396ZdpXLtr/MkaSEmNMtykw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/types@8.18.1': - resolution: {integrity: sha512-7uoAUsCj66qdNQNpH2G8MyTFlgerum8ubf21s3TSM3XmKXuIn+H2Sifh/ES2nPOPiYSRJWAk0fDkW0APBWcpfw==} + '@typescript-eslint/types@8.19.1': + resolution: {integrity: sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.18.1': - resolution: {integrity: sha512-z8U21WI5txzl2XYOW7i9hJhxoKKNG1kcU4RzyNvKrdZDmbjkmLBo8bgeiOJmA06kizLI76/CCBAAGlTlEeUfyg==} + '@typescript-eslint/typescript-estree@8.19.1': + resolution: {integrity: sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@8.18.1': - resolution: {integrity: sha512-8vikiIj2ebrC4WRdcAdDcmnu9Q/MXXwg+STf40BVfT8exDqBCUPdypvzcUPxEqRGKg9ALagZ0UWcYCtn+4W2iQ==} + '@typescript-eslint/utils@8.19.1': + resolution: {integrity: sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/visitor-keys@8.18.1': - resolution: {integrity: sha512-Vj0WLm5/ZsD013YeUKn+K0y8p1M0jPpxOkKdbD1wB0ns53a5piVY02zjf072TblEweAbcYiFiPoSMF3kp+VhhQ==} + '@typescript-eslint/visitor-keys@8.19.1': + resolution: {integrity: sha512-fzmjU8CHK853V/avYZAvuVut3ZTfwN5YtMaoi+X9Y9MA9keaWNHC3zEQ9zvyX/7Hj+5JkNyK1l7TOR2hevHB6Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@vitejs/plugin-react@4.3.4': @@ -1002,8 +1002,8 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} array-flatten@1.1.1: @@ -1140,8 +1140,8 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - concurrently@9.1.0: - resolution: {integrity: sha512-VxkzwMAn4LP7WyMnJNbHN5mKV9L2IbyDjpzemKr99sXNR3GqRNMMHdm7prV1ws9wg7ETj6WUkNOigZVsptwbgg==} + concurrently@9.1.2: + resolution: {integrity: sha512-H9MWcoPsYddwbOGM6difjVwVZHl63nwMEwDJG/L7VGtuaJhb12h2caPG2tVPWs7emuYix252iGfqOyrz1GczTQ==} engines: {node: '>=18'} hasBin: true @@ -1173,12 +1173,12 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} engines: {node: '>= 0.4'} - data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + data-view-byte-length@1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} engines: {node: '>= 0.4'} data-view-byte-offset@1.0.1: @@ -1258,8 +1258,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.74: - resolution: {integrity: sha512-ck3//9RC+6oss/1Bh9tiAVFy5vfSKbRHAFh7Z3/eTRkEqJeWgymloShB17Vg3Z4nmDNp35vAd1BZ6CMW4Wt6Iw==} + electron-to-chromium@1.5.79: + resolution: {integrity: sha512-nYOxJNxQ9Om4EC88BE4pPoNI8xwSFf8pU/BAeOl4Hh/b/i6V4biTAzwV7pXi3ARKeoYO5JZKMIXTryXSVer5RA==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1278,12 +1278,12 @@ packages: end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - enhanced-resolve@5.17.1: - resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + enhanced-resolve@5.18.0: + resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} engines: {node: '>=10.13.0'} - es-abstract@1.23.6: - resolution: {integrity: sha512-Ifco6n3yj2tMZDWNLyloZrytt9lqqlwvS83P3HtaETR0NUOYnIULGGHpktqYGObGy+8wc1okO25p8TjemhImvA==} + es-abstract@1.23.9: + resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} engines: {node: '>= 0.4'} es-define-property@1.0.1: @@ -1298,8 +1298,8 @@ packages: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} engines: {node: '>= 0.4'} - es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} es-shim-unscopables@1.0.2: @@ -1465,8 +1465,8 @@ packages: fast-diff@1.3.0: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} fast-json-stable-stringify@2.1.0: @@ -1482,8 +1482,8 @@ packages: fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fastq@1.18.0: + resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} fdir@6.4.2: resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} @@ -1567,8 +1567,8 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.1.7: - resolution: {integrity: sha512-2g4x+HqTJKM9zcJqBSpjoRmdcPFtJM60J3xJisTQSXBWka5XqyBN/2tNUgma1mztTXyDuUsEtYe5qcs7xYzYQA==} + function.prototype.name@1.1.8: + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} engines: {node: '>= 0.4'} functions-have-names@1.2.3: @@ -1582,8 +1582,12 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-intrinsic@1.2.6: - resolution: {integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==} + get-intrinsic@1.2.7: + resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} + engines: {node: '>= 0.4'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} get-symbol-description@1.1.0: @@ -1713,8 +1717,8 @@ packages: resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} engines: {node: '>= 0.4'} - is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + is-async-function@2.1.0: + resolution: {integrity: sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==} engines: {node: '>= 0.4'} is-bigint@1.1.0: @@ -1736,8 +1740,8 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-core-module@2.16.0: - resolution: {integrity: sha512-urTSINYfAYgcbLb0yDQ6egFm6h3Mo1DcF9EkyXSRjjzdHbsulg01qhwWuXdOoUBuTkbQ80KDboXa0vFJ+BDH+g==} + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} is-data-view@1.0.2: @@ -1760,8 +1764,8 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + is-generator-function@1.1.0: + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} engines: {node: '>= 0.4'} is-glob@4.0.3: @@ -1772,10 +1776,6 @@ packages: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} - is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - is-number-object@1.1.1: resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} @@ -2079,6 +2079,10 @@ packages: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} + own-keys@1.0.1: + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + engines: {node: '>= 0.4'} + p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} @@ -2152,8 +2156,8 @@ packages: pino-std-serializers@7.0.0: resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} - pino@9.5.0: - resolution: {integrity: sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==} + pino@9.6.0: + resolution: {integrity: sha512-i85pKRCt4qMjZ1+L7sy2Ag4t1atFcdbEt76+7iRJn1g2BvsnRMGu9p8pivl9fs63M2kF/A0OacFZhTub+m/qMg==} hasBin: true possible-typed-array-names@1.0.0: @@ -2177,8 +2181,8 @@ packages: engines: {node: '>=14'} hasBin: true - process-warning@4.0.0: - resolution: {integrity: sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==} + process-warning@4.0.1: + resolution: {integrity: sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q==} prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} @@ -2240,12 +2244,12 @@ packages: resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} engines: {node: '>= 12.13.0'} - reflect.getprototypeof@1.0.9: - resolution: {integrity: sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q==} + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} - regexp.prototype.flags@1.5.3: - resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} require-directory@2.1.1: @@ -2259,8 +2263,9 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve@1.22.9: - resolution: {integrity: sha512-QxrmX1DzraFIi9PxdG5VkRfRwIgjwyud+z/iBwfRRrVmHc+P9Q7u2lSSpQ6bjr2gy5lrqIiU9vb6iAeGf2400A==} + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} hasBin: true reusify@1.0.4: @@ -2292,8 +2297,8 @@ packages: rollup: ^3.29.4 || ^4 typescript: ^4.5 || ^5.0 - rollup@4.28.1: - resolution: {integrity: sha512-61fXYl/qNVinKmGSTHAZ6Yy8I3YIJC/r2m9feHo6SwVAVcLT5MPwOUFe7EuURA/4m0NR8lXG4BBXuo/IZEsjMg==} + rollup@4.30.1: + resolution: {integrity: sha512-mlJ4glW020fPuLi7DkM/lN97mYEZGWeqBnrljzN0gs7GLctqX3lNWxKQ7Gl712UAX+6fog/L3jh4gb7R6aVi3w==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -2310,6 +2315,10 @@ packages: safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safe-push-apply@1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} + safe-regex-test@1.1.0: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} @@ -2355,6 +2364,10 @@ packages: resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} + set-proto@1.0.0: + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} + setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} @@ -2501,11 +2514,11 @@ packages: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true - ts-api-utils@1.4.3: - resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} - engines: {node: '>=16'} + ts-api-utils@2.0.0: + resolution: {integrity: sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==} + engines: {node: '>=18.12'} peerDependencies: - typescript: '>=4.2.0' + typescript: '>=4.8.4' ts-node@10.9.2: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} @@ -2554,8 +2567,8 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript-eslint@8.18.1: - resolution: {integrity: sha512-Mlaw6yxuaDEPQvb/2Qwu3/TfgeBHy9iTJ3mTwe7OvpPmF6KPQjVOfGyEJpPv6Ez2C34OODChhXrzYw/9phI0MQ==} + typescript-eslint@8.19.1: + resolution: {integrity: sha512-LKPUQpdEMVOeKluHi8md7rwLcoXHhwvWp3x+sJkMuq3gGm9yaYJtPo8sRZSblMFJ5pcOGCAak/scKf1mvZDlQw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -2566,11 +2579,6 @@ packages: engines: {node: '>=14.17'} hasBin: true - typescript@5.7.2: - resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} - engines: {node: '>=14.17'} - hasBin: true - unbox-primitive@1.1.0: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} @@ -3058,7 +3066,7 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 + fastq: 1.18.0 '@nolyfill/is-core-module@1.0.39': {} @@ -3067,78 +3075,78 @@ snapshots: '@pkgr/core@0.1.1': {} - '@rollup/plugin-typescript@11.1.6(rollup@4.28.1)(tslib@2.8.1)(typescript@5.7.2)': + '@rollup/plugin-typescript@11.1.6(rollup@4.30.1)(tslib@2.8.1)(typescript@5.5.3)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.28.1) - resolve: 1.22.9 - typescript: 5.7.2 + '@rollup/pluginutils': 5.1.4(rollup@4.30.1) + resolve: 1.22.10 + typescript: 5.5.3 optionalDependencies: - rollup: 4.28.1 + rollup: 4.30.1 tslib: 2.8.1 - '@rollup/pluginutils@5.1.4(rollup@4.28.1)': + '@rollup/pluginutils@5.1.4(rollup@4.30.1)': dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.28.1 + rollup: 4.30.1 - '@rollup/rollup-android-arm-eabi@4.28.1': + '@rollup/rollup-android-arm-eabi@4.30.1': optional: true - '@rollup/rollup-android-arm64@4.28.1': + '@rollup/rollup-android-arm64@4.30.1': optional: true - '@rollup/rollup-darwin-arm64@4.28.1': + '@rollup/rollup-darwin-arm64@4.30.1': optional: true - '@rollup/rollup-darwin-x64@4.28.1': + '@rollup/rollup-darwin-x64@4.30.1': optional: true - '@rollup/rollup-freebsd-arm64@4.28.1': + '@rollup/rollup-freebsd-arm64@4.30.1': optional: true - '@rollup/rollup-freebsd-x64@4.28.1': + '@rollup/rollup-freebsd-x64@4.30.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.28.1': + '@rollup/rollup-linux-arm-gnueabihf@4.30.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.28.1': + '@rollup/rollup-linux-arm-musleabihf@4.30.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.28.1': + '@rollup/rollup-linux-arm64-gnu@4.30.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.28.1': + '@rollup/rollup-linux-arm64-musl@4.30.1': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.28.1': + '@rollup/rollup-linux-loongarch64-gnu@4.30.1': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.28.1': + '@rollup/rollup-linux-powerpc64le-gnu@4.30.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.28.1': + '@rollup/rollup-linux-riscv64-gnu@4.30.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.28.1': + '@rollup/rollup-linux-s390x-gnu@4.30.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.28.1': + '@rollup/rollup-linux-x64-gnu@4.30.1': optional: true - '@rollup/rollup-linux-x64-musl@4.28.1': + '@rollup/rollup-linux-x64-musl@4.30.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.28.1': + '@rollup/rollup-win32-arm64-msvc@4.30.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.28.1': + '@rollup/rollup-win32-ia32-msvc@4.30.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.28.1': + '@rollup/rollup-win32-x64-msvc@4.30.1': optional: true '@rtsao/scc@1.1.0': {} @@ -3175,17 +3183,17 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 20.17.10 + '@types/node': 20.17.12 '@types/connect@3.4.38': dependencies: - '@types/node': 20.17.10 + '@types/node': 20.17.12 '@types/estree@1.0.6': {} '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 20.17.10 + '@types/node': 20.17.12 '@types/qs': 6.9.17 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -3200,16 +3208,16 @@ snapshots: '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 20.17.10 + '@types/node': 20.17.12 '@types/fs-extra@8.1.5': dependencies: - '@types/node': 20.17.10 + '@types/node': 20.17.12 '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.17.10 + '@types/node': 20.17.12 '@types/http-errors@2.0.4': {} @@ -3219,9 +3227,9 @@ snapshots: '@types/jsonfile@6.1.4': dependencies: - '@types/node': 20.17.10 + '@types/node': 20.17.12 - '@types/lodash@4.17.13': {} + '@types/lodash@4.17.14': {} '@types/mime@1.3.5': {} @@ -3229,16 +3237,16 @@ snapshots: '@types/node-fetch@2.6.12': dependencies: - '@types/node': 20.17.10 + '@types/node': 20.17.12 form-data: 4.0.1 - '@types/node@20.17.10': + '@types/node@20.17.12': dependencies: undici-types: 6.19.8 '@types/prompts@2.4.9': dependencies: - '@types/node': 20.17.10 + '@types/node': 20.17.12 kleur: 3.0.3 '@types/prop-types@15.7.14': {} @@ -3247,15 +3255,15 @@ snapshots: '@types/range-parser@1.2.7': {} - '@types/react-dom@18.3.5(@types/react@18.3.17)': + '@types/react-dom@18.3.5(@types/react@18.3.18)': dependencies: - '@types/react': 18.3.17 + '@types/react': 18.3.18 '@types/react-reconciler@0.28.8': dependencies: - '@types/react': 18.3.17 + '@types/react': 18.3.18 - '@types/react@18.3.17': + '@types/react@18.3.18': dependencies: '@types/prop-types': 15.7.14 csstype: 3.1.3 @@ -3263,170 +3271,105 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 20.17.10 + '@types/node': 20.17.12 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 20.17.10 + '@types/node': 20.17.12 '@types/send': 0.17.4 '@types/uuid@10.0.0': {} '@types/ws@8.5.13': dependencies: - '@types/node': 20.17.10 + '@types/node': 20.17.12 - '@typescript-eslint/eslint-plugin@8.18.1(@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.5.3))(eslint@9.17.0)(typescript@5.5.3)': + '@typescript-eslint/eslint-plugin@8.19.1(@typescript-eslint/parser@8.19.1(eslint@9.17.0)(typescript@5.5.3))(eslint@9.17.0)(typescript@5.5.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.18.1(eslint@9.17.0)(typescript@5.5.3) - '@typescript-eslint/scope-manager': 8.18.1 - '@typescript-eslint/type-utils': 8.18.1(eslint@9.17.0)(typescript@5.5.3) - '@typescript-eslint/utils': 8.18.1(eslint@9.17.0)(typescript@5.5.3) - '@typescript-eslint/visitor-keys': 8.18.1 + '@typescript-eslint/parser': 8.19.1(eslint@9.17.0)(typescript@5.5.3) + '@typescript-eslint/scope-manager': 8.19.1 + '@typescript-eslint/type-utils': 8.19.1(eslint@9.17.0)(typescript@5.5.3) + '@typescript-eslint/utils': 8.19.1(eslint@9.17.0)(typescript@5.5.3) + '@typescript-eslint/visitor-keys': 8.19.1 eslint: 9.17.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.5.3) + ts-api-utils: 2.0.0(typescript@5.5.3) typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.18.1(@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2)': + '@typescript-eslint/parser@8.19.1(eslint@9.17.0)(typescript@5.5.3)': dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.18.1(eslint@9.17.0)(typescript@5.7.2) - '@typescript-eslint/scope-manager': 8.18.1 - '@typescript-eslint/type-utils': 8.18.1(eslint@9.17.0)(typescript@5.7.2) - '@typescript-eslint/utils': 8.18.1(eslint@9.17.0)(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 8.18.1 - eslint: 9.17.0 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.7.2) - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.5.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.18.1 - '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/typescript-estree': 8.18.1(typescript@5.5.3) - '@typescript-eslint/visitor-keys': 8.18.1 + '@typescript-eslint/scope-manager': 8.19.1 + '@typescript-eslint/types': 8.19.1 + '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.5.3) + '@typescript-eslint/visitor-keys': 8.19.1 debug: 4.4.0 eslint: 9.17.0 typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.7.2)': - dependencies: - '@typescript-eslint/scope-manager': 8.18.1 - '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/typescript-estree': 8.18.1(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 8.18.1 - debug: 4.4.0 - eslint: 9.17.0 - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@8.18.1': + '@typescript-eslint/scope-manager@8.19.1': dependencies: - '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/visitor-keys': 8.18.1 + '@typescript-eslint/types': 8.19.1 + '@typescript-eslint/visitor-keys': 8.19.1 - '@typescript-eslint/type-utils@8.18.1(eslint@9.17.0)(typescript@5.5.3)': + '@typescript-eslint/type-utils@8.19.1(eslint@9.17.0)(typescript@5.5.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.18.1(typescript@5.5.3) - '@typescript-eslint/utils': 8.18.1(eslint@9.17.0)(typescript@5.5.3) + '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.5.3) + '@typescript-eslint/utils': 8.19.1(eslint@9.17.0)(typescript@5.5.3) debug: 4.4.0 eslint: 9.17.0 - ts-api-utils: 1.4.3(typescript@5.5.3) + ts-api-utils: 2.0.0(typescript@5.5.3) typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.18.1(eslint@9.17.0)(typescript@5.7.2)': - dependencies: - '@typescript-eslint/typescript-estree': 8.18.1(typescript@5.7.2) - '@typescript-eslint/utils': 8.18.1(eslint@9.17.0)(typescript@5.7.2) - debug: 4.4.0 - eslint: 9.17.0 - ts-api-utils: 1.4.3(typescript@5.7.2) - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@8.18.1': {} + '@typescript-eslint/types@8.19.1': {} - '@typescript-eslint/typescript-estree@8.18.1(typescript@5.5.3)': + '@typescript-eslint/typescript-estree@8.19.1(typescript@5.5.3)': dependencies: - '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/visitor-keys': 8.18.1 + '@typescript-eslint/types': 8.19.1 + '@typescript-eslint/visitor-keys': 8.19.1 debug: 4.4.0 - fast-glob: 3.3.2 + fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.4.3(typescript@5.5.3) + ts-api-utils: 2.0.0(typescript@5.5.3) typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.18.1(typescript@5.7.2)': - dependencies: - '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/visitor-keys': 8.18.1 - debug: 4.4.0 - fast-glob: 3.3.2 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 1.4.3(typescript@5.7.2) - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.18.1(eslint@9.17.0)(typescript@5.5.3)': + '@typescript-eslint/utils@8.19.1(eslint@9.17.0)(typescript@5.5.3)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0) - '@typescript-eslint/scope-manager': 8.18.1 - '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/typescript-estree': 8.18.1(typescript@5.5.3) + '@typescript-eslint/scope-manager': 8.19.1 + '@typescript-eslint/types': 8.19.1 + '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.5.3) eslint: 9.17.0 typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.18.1(eslint@9.17.0)(typescript@5.7.2)': + '@typescript-eslint/visitor-keys@8.19.1': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0) - '@typescript-eslint/scope-manager': 8.18.1 - '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/typescript-estree': 8.18.1(typescript@5.7.2) - eslint: 9.17.0 - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/visitor-keys@8.18.1': - dependencies: - '@typescript-eslint/types': 8.18.1 + '@typescript-eslint/types': 8.19.1 eslint-visitor-keys: 4.2.0 - '@vitejs/plugin-react@4.3.4(vite@5.4.11(@types/node@20.17.10))': + '@vitejs/plugin-react@4.3.4(vite@5.4.11(@types/node@20.17.12))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.11(@types/node@20.17.10) + vite: 5.4.11(@types/node@20.17.12) transitivePeerDependencies: - supports-color @@ -3471,9 +3414,9 @@ snapshots: argparse@2.0.1: {} - array-buffer-byte-length@1.0.1: + array-buffer-byte-length@1.0.2: dependencies: - call-bind: 1.0.8 + call-bound: 1.0.3 is-array-buffer: 3.0.5 array-flatten@1.1.1: {} @@ -3482,9 +3425,9 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.6 + es-abstract: 1.23.9 es-object-atoms: 1.0.0 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 is-string: 1.1.1 array-union@2.1.0: {} @@ -3493,7 +3436,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.6 + es-abstract: 1.23.9 es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 @@ -3502,24 +3445,24 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.6 + es-abstract: 1.23.9 es-shim-unscopables: 1.0.2 array.prototype.flatmap@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.6 + es-abstract: 1.23.9 es-shim-unscopables: 1.0.2 arraybuffer.prototype.slice@1.0.4: dependencies: - array-buffer-byte-length: 1.0.1 + array-buffer-byte-length: 1.0.2 call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.6 + es-abstract: 1.23.9 es-errors: 1.3.0 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 is-array-buffer: 3.0.5 asynckit@0.4.0: {} @@ -3581,7 +3524,7 @@ snapshots: browserslist@4.24.3: dependencies: caniuse-lite: 1.0.30001690 - electron-to-chromium: 1.5.74 + electron-to-chromium: 1.5.79 node-releases: 2.0.19 update-browserslist-db: 1.1.1(browserslist@4.24.3) @@ -3596,13 +3539,13 @@ snapshots: dependencies: call-bind-apply-helpers: 1.0.1 es-define-property: 1.0.1 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 set-function-length: 1.2.2 call-bound@1.0.3: dependencies: call-bind-apply-helpers: 1.0.1 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 callsites@3.1.0: {} @@ -3651,7 +3594,7 @@ snapshots: concat-map@0.0.1: {} - concurrently@9.1.0: + concurrently@9.1.2: dependencies: chalk: 4.1.2 lodash: 4.17.21 @@ -3683,15 +3626,15 @@ snapshots: csstype@3.1.3: {} - data-view-buffer@1.0.1: + data-view-buffer@1.0.2: dependencies: - call-bind: 1.0.8 + call-bound: 1.0.3 es-errors: 1.3.0 is-data-view: 1.0.2 - data-view-byte-length@1.0.1: + data-view-byte-length@1.0.2: dependencies: - call-bind: 1.0.8 + call-bound: 1.0.3 es-errors: 1.3.0 is-data-view: 1.0.2 @@ -3755,7 +3698,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.74: {} + electron-to-chromium@1.5.79: {} emoji-regex@8.0.0: {} @@ -3769,28 +3712,29 @@ snapshots: dependencies: once: 1.4.0 - enhanced-resolve@5.17.1: + enhanced-resolve@5.18.0: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 - es-abstract@1.23.6: + es-abstract@1.23.9: dependencies: - array-buffer-byte-length: 1.0.1 + array-buffer-byte-length: 1.0.2 arraybuffer.prototype.slice: 1.0.4 available-typed-arrays: 1.0.7 call-bind: 1.0.8 call-bound: 1.0.3 - data-view-buffer: 1.0.1 - data-view-byte-length: 1.0.1 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 data-view-byte-offset: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 es-object-atoms: 1.0.0 - es-set-tostringtag: 2.0.3 + es-set-tostringtag: 2.1.0 es-to-primitive: 1.3.0 - function.prototype.name: 1.1.7 - get-intrinsic: 1.2.6 + function.prototype.name: 1.1.8 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 get-symbol-description: 1.1.0 globalthis: 1.0.4 gopd: 1.2.0 @@ -3802,7 +3746,6 @@ snapshots: is-array-buffer: 3.0.5 is-callable: 1.2.7 is-data-view: 1.0.2 - is-negative-zero: 2.0.3 is-regex: 1.2.1 is-shared-array-buffer: 1.0.4 is-string: 1.1.1 @@ -3812,9 +3755,12 @@ snapshots: object-inspect: 1.13.3 object-keys: 1.1.1 object.assign: 4.1.7 - regexp.prototype.flags: 1.5.3 + own-keys: 1.0.1 + regexp.prototype.flags: 1.5.4 safe-array-concat: 1.1.3 + safe-push-apply: 1.0.0 safe-regex-test: 1.1.0 + set-proto: 1.0.0 string.prototype.trim: 1.2.10 string.prototype.trimend: 1.0.9 string.prototype.trimstart: 1.0.8 @@ -3833,9 +3779,10 @@ snapshots: dependencies: es-errors: 1.3.0 - es-set-tostringtag@2.0.3: + es-set-tostringtag@2.1.0: dependencies: - get-intrinsic: 1.2.6 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 has-tostringtag: 1.0.2 hasown: 2.0.2 @@ -3888,8 +3835,8 @@ snapshots: eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 - is-core-module: 2.16.0 - resolve: 1.22.9 + is-core-module: 2.16.1 + resolve: 1.22.10 transitivePeerDependencies: - supports-color @@ -3897,30 +3844,30 @@ snapshots: dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.0 - enhanced-resolve: 5.17.1 + enhanced-resolve: 5.18.0 eslint: 9.17.0 - fast-glob: 3.3.2 + fast-glob: 3.3.3 get-tsconfig: 4.8.1 is-bun-module: 1.3.0 is-glob: 4.0.3 stable-hash: 0.0.4 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.7.0)(eslint@9.17.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.19.1(eslint@9.17.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.7.0)(eslint@9.17.0) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.17.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.19.1(eslint@9.17.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.17.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.18.1(eslint@9.17.0)(typescript@5.5.3) + '@typescript-eslint/parser': 8.19.1(eslint@9.17.0)(typescript@5.5.3) eslint: 9.17.0 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@9.17.0) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.7.0)(eslint@9.17.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.19.1(eslint@9.17.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.7.0)(eslint@9.17.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -3931,9 +3878,9 @@ snapshots: doctrine: 2.1.0 eslint: 9.17.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.17.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.19.1(eslint@9.17.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.17.0) hasown: 2.0.2 - is-core-module: 2.16.0 + is-core-module: 2.16.1 is-glob: 4.0.3 minimatch: 3.1.2 object.fromentries: 2.0.8 @@ -3943,7 +3890,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.18.1(eslint@9.17.0)(typescript@5.5.3) + '@typescript-eslint/parser': 8.19.1(eslint@9.17.0)(typescript@5.5.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -4078,7 +4025,7 @@ snapshots: fast-diff@1.3.0: {} - fast-glob@3.3.2: + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 @@ -4094,7 +4041,7 @@ snapshots: fast-safe-stringify@2.1.1: {} - fastq@1.17.1: + fastq@1.18.0: dependencies: reusify: 1.0.4 @@ -4178,9 +4125,10 @@ snapshots: function-bind@1.1.2: {} - function.prototype.name@1.1.7: + function.prototype.name@1.1.8: dependencies: call-bind: 1.0.8 + call-bound: 1.0.3 define-properties: 1.2.1 functions-have-names: 1.2.3 hasown: 2.0.2 @@ -4192,24 +4140,29 @@ snapshots: get-caller-file@2.0.5: {} - get-intrinsic@1.2.6: + get-intrinsic@1.2.7: dependencies: call-bind-apply-helpers: 1.0.1 - dunder-proto: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 es-object-atoms: 1.0.0 function-bind: 1.1.2 + get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 hasown: 2.0.2 math-intrinsics: 1.1.0 + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.0.0 + get-symbol-description@1.1.0: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 get-tsconfig@4.8.1: dependencies: @@ -4266,7 +4219,7 @@ snapshots: '@types/glob': 7.2.0 array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.2 + fast-glob: 3.3.3 glob: 7.2.3 ignore: 5.3.2 merge2: 1.4.1 @@ -4342,11 +4295,14 @@ snapshots: dependencies: call-bind: 1.0.8 call-bound: 1.0.3 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 - is-async-function@2.0.0: + is-async-function@2.1.0: dependencies: + call-bound: 1.0.3 + get-proto: 1.0.1 has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 is-bigint@1.1.0: dependencies: @@ -4367,14 +4323,14 @@ snapshots: is-callable@1.2.7: {} - is-core-module@2.16.0: + is-core-module@2.16.1: dependencies: hasown: 2.0.2 is-data-view@1.0.2: dependencies: call-bound: 1.0.3 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 is-typed-array: 1.1.15 is-date-object@1.1.0: @@ -4390,9 +4346,12 @@ snapshots: is-fullwidth-code-point@3.0.0: {} - is-generator-function@1.0.10: + is-generator-function@1.1.0: dependencies: + call-bound: 1.0.3 + get-proto: 1.0.1 has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 is-glob@4.0.3: dependencies: @@ -4400,8 +4359,6 @@ snapshots: is-map@2.0.3: {} - is-negative-zero@2.0.3: {} - is-number-object@1.1.1: dependencies: call-bound: 1.0.3 @@ -4448,7 +4405,7 @@ snapshots: is-weakset@2.0.4: dependencies: call-bound: 1.0.3 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 isarray@2.0.5: {} @@ -4480,7 +4437,7 @@ snapshots: dependencies: '@apidevtools/json-schema-ref-parser': 11.7.3 '@types/json-schema': 7.0.15 - '@types/lodash': 4.17.13 + '@types/lodash': 4.17.14 is-glob: 4.0.3 js-yaml: 4.1.0 lodash: 4.17.21 @@ -4641,14 +4598,14 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.6 + es-abstract: 1.23.9 es-object-atoms: 1.0.0 object.groupby@1.0.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.6 + es-abstract: 1.23.9 object.values@1.2.1: dependencies: @@ -4676,6 +4633,12 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 + own-keys@1.0.1: + dependencies: + get-intrinsic: 1.2.7 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 @@ -4747,14 +4710,14 @@ snapshots: pino-std-serializers@7.0.0: {} - pino@9.5.0: + pino@9.6.0: dependencies: atomic-sleep: 1.0.0 fast-redact: 3.5.0 on-exit-leak-free: 2.1.2 pino-abstract-transport: 2.0.0 pino-std-serializers: 7.0.0 - process-warning: 4.0.0 + process-warning: 4.0.1 quick-format-unescaped: 4.0.4 real-require: 0.2.0 safe-stable-stringify: 2.5.0 @@ -4777,7 +4740,7 @@ snapshots: prettier@3.4.2: {} - process-warning@4.0.0: {} + process-warning@4.0.1: {} prompts@2.4.2: dependencies: @@ -4837,22 +4800,24 @@ snapshots: real-require@0.2.0: {} - reflect.getprototypeof@1.0.9: + reflect.getprototypeof@1.0.10: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - dunder-proto: 1.0.1 - es-abstract: 1.23.6 + es-abstract: 1.23.9 es-errors: 1.3.0 - get-intrinsic: 1.2.6 - gopd: 1.2.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 which-builtin-type: 1.2.1 - regexp.prototype.flags@1.5.3: + regexp.prototype.flags@1.5.4: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 set-function-name: 2.0.2 require-directory@2.1.1: {} @@ -4861,9 +4826,9 @@ snapshots: resolve-pkg-maps@1.0.0: {} - resolve@1.22.9: + resolve@1.22.10: dependencies: - is-core-module: 2.16.0 + is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -4890,37 +4855,37 @@ snapshots: globby: 10.0.1 is-plain-object: 3.0.1 - rollup-plugin-dts@6.1.1(rollup@4.28.1)(typescript@5.7.2): + rollup-plugin-dts@6.1.1(rollup@4.30.1)(typescript@5.5.3): dependencies: magic-string: 0.30.17 - rollup: 4.28.1 - typescript: 5.7.2 + rollup: 4.30.1 + typescript: 5.5.3 optionalDependencies: '@babel/code-frame': 7.26.2 - rollup@4.28.1: + rollup@4.30.1: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.28.1 - '@rollup/rollup-android-arm64': 4.28.1 - '@rollup/rollup-darwin-arm64': 4.28.1 - '@rollup/rollup-darwin-x64': 4.28.1 - '@rollup/rollup-freebsd-arm64': 4.28.1 - '@rollup/rollup-freebsd-x64': 4.28.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.28.1 - '@rollup/rollup-linux-arm-musleabihf': 4.28.1 - '@rollup/rollup-linux-arm64-gnu': 4.28.1 - '@rollup/rollup-linux-arm64-musl': 4.28.1 - '@rollup/rollup-linux-loongarch64-gnu': 4.28.1 - '@rollup/rollup-linux-powerpc64le-gnu': 4.28.1 - '@rollup/rollup-linux-riscv64-gnu': 4.28.1 - '@rollup/rollup-linux-s390x-gnu': 4.28.1 - '@rollup/rollup-linux-x64-gnu': 4.28.1 - '@rollup/rollup-linux-x64-musl': 4.28.1 - '@rollup/rollup-win32-arm64-msvc': 4.28.1 - '@rollup/rollup-win32-ia32-msvc': 4.28.1 - '@rollup/rollup-win32-x64-msvc': 4.28.1 + '@rollup/rollup-android-arm-eabi': 4.30.1 + '@rollup/rollup-android-arm64': 4.30.1 + '@rollup/rollup-darwin-arm64': 4.30.1 + '@rollup/rollup-darwin-x64': 4.30.1 + '@rollup/rollup-freebsd-arm64': 4.30.1 + '@rollup/rollup-freebsd-x64': 4.30.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.30.1 + '@rollup/rollup-linux-arm-musleabihf': 4.30.1 + '@rollup/rollup-linux-arm64-gnu': 4.30.1 + '@rollup/rollup-linux-arm64-musl': 4.30.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.30.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.30.1 + '@rollup/rollup-linux-riscv64-gnu': 4.30.1 + '@rollup/rollup-linux-s390x-gnu': 4.30.1 + '@rollup/rollup-linux-x64-gnu': 4.30.1 + '@rollup/rollup-linux-x64-musl': 4.30.1 + '@rollup/rollup-win32-arm64-msvc': 4.30.1 + '@rollup/rollup-win32-ia32-msvc': 4.30.1 + '@rollup/rollup-win32-x64-msvc': 4.30.1 fsevents: 2.3.3 run-parallel@1.2.0: @@ -4935,12 +4900,17 @@ snapshots: dependencies: call-bind: 1.0.8 call-bound: 1.0.3 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 has-symbols: 1.1.0 isarray: 2.0.5 safe-buffer@5.2.1: {} + safe-push-apply@1.0.0: + dependencies: + es-errors: 1.3.0 + isarray: 2.0.5 + safe-regex-test@1.1.0: dependencies: call-bound: 1.0.3 @@ -4995,7 +4965,7 @@ snapshots: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 gopd: 1.2.0 has-property-descriptors: 1.0.2 @@ -5006,6 +4976,12 @@ snapshots: functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 + set-proto@1.0.0: + dependencies: + dunder-proto: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + setprototypeof@1.2.0: {} shebang-command@2.0.0: @@ -5025,14 +5001,14 @@ snapshots: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 object-inspect: 1.13.3 side-channel-weakmap@1.0.2: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 object-inspect: 1.13.3 side-channel-map: 1.0.1 @@ -5080,7 +5056,7 @@ snapshots: call-bound: 1.0.3 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.23.6 + es-abstract: 1.23.9 es-object-atoms: 1.0.0 has-property-descriptors: 1.0.2 @@ -5163,29 +5139,25 @@ snapshots: tree-kill@1.2.2: {} - ts-api-utils@1.4.3(typescript@5.5.3): + ts-api-utils@2.0.0(typescript@5.5.3): dependencies: typescript: 5.5.3 - ts-api-utils@1.4.3(typescript@5.7.2): - dependencies: - typescript: 5.7.2 - - ts-node@10.9.2(@types/node@20.17.10)(typescript@5.7.2): + ts-node@10.9.2(@types/node@20.17.12)(typescript@5.5.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.17.10 + '@types/node': 20.17.12 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.7.2 + typescript: 5.5.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 @@ -5231,7 +5203,7 @@ snapshots: gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 - reflect.getprototypeof: 1.0.9 + reflect.getprototypeof: 1.0.10 typed-array-length@1.0.7: dependencies: @@ -5240,22 +5212,20 @@ snapshots: gopd: 1.2.0 is-typed-array: 1.1.15 possible-typed-array-names: 1.0.0 - reflect.getprototypeof: 1.0.9 + reflect.getprototypeof: 1.0.10 - typescript-eslint@8.18.1(eslint@9.17.0)(typescript@5.7.2): + typescript-eslint@8.19.1(eslint@9.17.0)(typescript@5.5.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.18.1(@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2) - '@typescript-eslint/parser': 8.18.1(eslint@9.17.0)(typescript@5.7.2) - '@typescript-eslint/utils': 8.18.1(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/eslint-plugin': 8.19.1(@typescript-eslint/parser@8.19.1(eslint@9.17.0)(typescript@5.5.3))(eslint@9.17.0)(typescript@5.5.3) + '@typescript-eslint/parser': 8.19.1(eslint@9.17.0)(typescript@5.5.3) + '@typescript-eslint/utils': 8.19.1(eslint@9.17.0)(typescript@5.5.3) eslint: 9.17.0 - typescript: 5.7.2 + typescript: 5.5.3 transitivePeerDependencies: - supports-color typescript@5.5.3: {} - typescript@5.7.2: {} - unbox-primitive@1.1.0: dependencies: call-bound: 1.0.3 @@ -5293,21 +5263,21 @@ snapshots: vary@1.1.2: {} - vite-plugin-static-copy@1.0.6(vite@5.4.11(@types/node@20.17.10)): + vite-plugin-static-copy@1.0.6(vite@5.4.11(@types/node@20.17.12)): dependencies: chokidar: 3.6.0 - fast-glob: 3.3.2 + fast-glob: 3.3.3 fs-extra: 11.2.0 picocolors: 1.1.1 - vite: 5.4.11(@types/node@20.17.10) + vite: 5.4.11(@types/node@20.17.12) - vite@5.4.11(@types/node@20.17.10): + vite@5.4.11(@types/node@20.17.12): dependencies: esbuild: 0.21.5 postcss: 8.4.49 - rollup: 4.28.1 + rollup: 4.30.1 optionalDependencies: - '@types/node': 20.17.10 + '@types/node': 20.17.12 fsevents: 2.3.3 wasm-pack@0.13.1: @@ -5334,12 +5304,12 @@ snapshots: which-builtin-type@1.2.1: dependencies: call-bound: 1.0.3 - function.prototype.name: 1.1.7 + function.prototype.name: 1.1.8 has-tostringtag: 1.0.2 - is-async-function: 2.0.0 + is-async-function: 2.1.0 is-date-object: 1.1.0 is-finalizationregistry: 1.1.1 - is-generator-function: 1.0.10 + is-generator-function: 1.1.0 is-regex: 1.2.1 is-weakref: 1.1.0 isarray: 2.0.5 @@ -5409,9 +5379,9 @@ snapshots: yocto-queue@0.1.0: {} - zustand@4.5.5(@types/react@18.3.17)(react@18.3.1): + zustand@4.5.5(@types/react@18.3.18)(react@18.3.1): dependencies: use-sync-external-store: 1.2.2(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 + '@types/react': 18.3.18 react: 18.3.1