diff --git a/docs/examples.md b/docs/examples.md index af18733..db7a575 100644 --- a/docs/examples.md +++ b/docs/examples.md @@ -1,7 +1,7 @@ # Examples -Examples are located in the `apps` directory. +Examples are located in the `examples` directory. ## Adding New Examples -To add a new example, create a new directory in the `apps` directory, copy the `package.json` from another example, and then start building! +To add a new example, create a new directory in the `examples` directory, copy the `package.json` from another example, and then start building! diff --git a/examples/dzi.html b/examples/dzi.html new file mode 100644 index 0000000..f459824 --- /dev/null +++ b/examples/dzi.html @@ -0,0 +1,17 @@ + + + + +
+ + + diff --git a/examples/index.html b/examples/index.html index 307c49e..4b9835d 100644 --- a/examples/index.html +++ b/examples/index.html @@ -1,17 +1,11 @@ - - + EXAMPLES +
+ - diff --git a/examples/layers.html b/examples/layers.html new file mode 100644 index 0000000..307c49e --- /dev/null +++ b/examples/layers.html @@ -0,0 +1,17 @@ + + + + + + + + diff --git a/examples/package.json b/examples/package.json index 15f03b9..fb913ea 100644 --- a/examples/package.json +++ b/examples/package.json @@ -23,7 +23,7 @@ "email": "su.li@alleninstitute.org" } ], - "license": "TBD", + "license": "BSD-3-Clause", "type": "module", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -45,6 +45,7 @@ "dependencies": { "@alleninstitute/vis-geometry": "workspace:*", "@alleninstitute/vis-scatterbrain": "workspace:*", + "@alleninstitute/vis-dzi": "workspace:*", "@czi-sds/components": "^20.0.1", "@emotion/css": "^11.11.2", "@emotion/react": "^11.11.4", diff --git a/examples/readme.md b/examples/readme.md index 5d58807..30e37bf 100644 --- a/examples/readme.md +++ b/examples/readme.md @@ -7,15 +7,23 @@ 3. run `pnpm build` 4. `cd examples/` 5. `pnpm run dev` -6. navigate to the running app (default `localhost://5173`) +6. navigate to the running app (default `localhost://5173`). you can click a link to a specific example, or just use the address bar (`localhost://5173/{path_to_desired_example}`) -## Why? +## DZI Example + +### Why? + +A simple proof of concept for displaying DZI (Deep zoom images) using our utilities, as well as demonstrating how to share an Offscreen canvas to render WebGL to multiple client canvases. + +## Layers Example + +### Why? the goal of this (rather complicated) example app is not to show off a cool app - rather its goal is to show that we can build complexity by composing simple, focused modules. As we (the AIBS Apps team) have developed ABC-Atlas, we've tried to make sure our visualization code stays general, and that each part does as little as possible. The result is that it was fairly easy to combine those components into this new app, which mixes a (terrible) UI, scatter-plot rendering, polygon-mesh rendering (for annotations) and multi-channel volumetric rendering into independent layers. Although each of these data types appear different, our caching, fetching, visibility determination, and render-scheduling code is the same regardless of the datatype to be rendered. All that is required is to fill in a simple interface, and provide a low-level "renderer" plugin in order to add a new "layer" type. -## Demo Script +### Demo Script -### Programmatic Configuration +#### Programmatic Configuration After starting the app in a browser, you'll be greeted by a blank screen. We're going to demonstrate programmatic access to the features of this demo. The goal here is not to make users invoke command-line arguments, but rather just an easy way for interested parties to "peak under the hood". All the visualizations are configured here via simple json objects - it would not be a stretch to read these configuration options at initialization-time via URL parameters for example. diff --git a/examples/src/common/loaders/ome-zarr/zarr-data.ts b/examples/src/common/loaders/ome-zarr/zarr-data.ts index e2b9b7b..1c14120 100644 --- a/examples/src/common/loaders/ome-zarr/zarr-data.ts +++ b/examples/src/common/loaders/ome-zarr/zarr-data.ts @@ -120,7 +120,7 @@ export function pickBestScale( const choice = datasets.reduce( (bestSoFar, cur) => dstToDesired(vxlPitch(planeSizeInVoxels(plane, axes, bestSoFar)!), pxPitch) > - dstToDesired(vxlPitch(planeSizeInVoxels(plane, axes, cur)!), pxPitch) + dstToDesired(vxlPitch(planeSizeInVoxels(plane, axes, cur)!), pxPitch) ? cur : bestSoFar, datasets[0] @@ -135,9 +135,9 @@ export function sizeInUnits( plane: | AxisAlignedPlane | { - u: OmeDimension; - v: OmeDimension; - }, + u: OmeDimension; + v: OmeDimension; + }, axes: readonly AxisDesc[], dataset: DatasetWithShape ): vec2 | undefined { diff --git a/examples/src/dzi/app.tsx b/examples/src/dzi/app.tsx new file mode 100644 index 0000000..2dfeced --- /dev/null +++ b/examples/src/dzi/app.tsx @@ -0,0 +1,6 @@ +import React from 'react'; +import { TwoClientsPOC } from './double'; + +export function AppUi() { + return ; +} diff --git a/examples/src/dzi/double.tsx b/examples/src/dzi/double.tsx new file mode 100644 index 0000000..1870904 --- /dev/null +++ b/examples/src/dzi/double.tsx @@ -0,0 +1,70 @@ +import { useContext, useEffect, useMemo, useRef, useState } from 'react'; +import { RenderServerProvider } from './render-server-provider'; +import React from 'react'; +import { DziView } from './dziView'; +import type { DziImage, DziRenderSettings } from '@alleninstitute/vis-dzi'; +import { Box2D, Vec2, type box2D } from '@alleninstitute/vis-geometry'; + +const example: DziImage = { + format: 'jpeg', + imagesUrl: + 'https://idk-etl-prod-download-bucket.s3.amazonaws.com/idf-23-10-pathology-images/pat_images_HPW332DMO29NC92JPWA/H20.33.029-A12-I6-primary/H20.33.029-A12-I6-primary_files/', + overlap: 1, + size: { + width: 13446, + height: 11596, + }, + tileSize: 512, +}; +const exampleDzi: DziImage = { + imagesUrl: 'https://openseadragon.github.io/example-images/highsmith/highsmith_files/', + format: 'jpg', + overlap: 2, + size: { + width: 7026, + height: 9221, + }, + tileSize: 256, +}; +const exampleSettings: DziRenderSettings = { + camera: { + screenSize: [500, 500], + view: Box2D.create([0, 0], [1, 1]), + }, +}; + +export function TwoClientsPOC() { + const [view, setView] = useState(Box2D.create([0, 0], [1, 1])); + const zoom = (e: React.WheelEvent) => { + const scale = e.deltaY > 0 ? 1.1 : 0.9; + const m = Box2D.midpoint(view); + const v = Box2D.translate(Box2D.scale(Box2D.translate(view, Vec2.scale(m, -1)), [scale, scale]), m); + setView(v); + }; + const overlay = useRef(new Image()); + useEffect(() => { + overlay.current.onload = () => { + console.log('loaded svg!'); + }; + overlay.current.src = + 'https://idk-etl-prod-download-bucket.s3.amazonaws.com/idf-22-07-pathology-image-move/pat_images_JGCXWER774NLNWX2NNR/7179-A6-I6-MTG-classified/annotation.svg'; + }, []); + return ( + + + + + ); +} diff --git a/examples/src/dzi/dzi.ts b/examples/src/dzi/dzi.ts new file mode 100644 index 0000000..90a8fc7 --- /dev/null +++ b/examples/src/dzi/dzi.ts @@ -0,0 +1,5 @@ +import { createRoot } from 'react-dom/client'; +import { AppUi } from './app'; + +const uiroot = createRoot(document.getElementById('main')!); +uiroot.render(AppUi()); diff --git a/examples/src/dzi/dziView.tsx b/examples/src/dzi/dziView.tsx new file mode 100644 index 0000000..f50667c --- /dev/null +++ b/examples/src/dzi/dziView.tsx @@ -0,0 +1,110 @@ +import { useContext, useEffect, useRef, useState } from 'react'; +import { + buildDziRenderer, + type DziImage, + type DziRenderSettings, + type DziTile, + type GpuProps as CachedPixels, + buildAsyncDziRenderer, +} from '@alleninstitute/vis-dzi'; +import React from 'react'; +import { buildAsyncRenderer, type RenderFrameFn } from '@alleninstitute/vis-scatterbrain'; +import { isEqual } from 'lodash'; +import { renderServerContext } from './render-server-provider'; +import { Vec2, type vec2 } from '@alleninstitute/vis-geometry'; + +type Props = { + id: string; + dzi: DziImage; + svgOverlay: HTMLImageElement; + wheel: (e: React.WheelEvent) => void; +} & DziRenderSettings; + +function buildCompositor(svg: HTMLImageElement, settings: DziRenderSettings) { + return (ctx: CanvasRenderingContext2D, image: ImageData) => { + const { width, height } = svg; + const { camera } = settings; + const svgSize: vec2 = [width, height]; + const start = Vec2.mul(camera.view.minCorner, svgSize); + const wh = Vec2.sub(Vec2.mul(camera.view.maxCorner, svgSize), start); + const [sx, sy] = start; + const [sw, sh] = wh; + // first, draw the results from webGL + ctx.putImageData(image, 0, 0); + // then add our svg overlay + ctx.drawImage(svg, sx, sy, sw, sh, 0, 0, ctx.canvas.width, ctx.canvas.height); + }; +} + +export function DziView(props: Props) { + const { svgOverlay, camera, dzi, wheel, id } = props; + const server = useContext(renderServerContext); + const cnvs = useRef(null); + + // this is a demo, so rather than work hard to have a referentially stable camera, + // we just memoize it like so to prevent over-rendering + const [cam, setCam] = useState(camera); + useEffect(() => { + if (!isEqual(cam, camera)) { + setCam(camera); + } + }, [camera]); + + // the renderer needs WebGL for us to create it, and WebGL needs a canvas to exist, and that canvas needs to be the same canvas forever + // hence the awkwardness of refs + an effect to initialize the whole hting + const renderer = + useRef< + ReturnType> + >(); + + useEffect(() => { + if (server && server.regl) { + renderer.current = buildAsyncDziRenderer(server.regl); + } + return () => { + if (cnvs.current) { + server?.destroyClient(cnvs.current); + } + }; + }, [server]); + + useEffect(() => { + if (server && renderer.current && cnvs.current) { + const renderMyData: RenderFrameFn = (target, cache, callback) => { + if (renderer.current) { + // erase the frame before we start drawing on it + return renderer.current(dzi, { camera: cam }, callback, target, cache); + } + return null; + }; + const compose = buildCompositor(svgOverlay, { camera: cam }); + server.beginRendering( + renderMyData, + (e) => { + switch (e.status) { + case 'begin': + server.regl?.clear({ framebuffer: e.target, color: [0, 0, 0, 0], depth: 1 }); + break; + case 'progress': + // wanna see the tiles as they arrive? + e.server.copyToClient(compose); + break; + case 'finished': { + e.server.copyToClient(compose); + } + } + }, + cnvs.current + ); + } + }, [server, renderer.current, cnvs.current, cam]); + return ( + + ); +} diff --git a/examples/src/dzi/render-server-provider.tsx b/examples/src/dzi/render-server-provider.tsx new file mode 100644 index 0000000..4a0ad6b --- /dev/null +++ b/examples/src/dzi/render-server-provider.tsx @@ -0,0 +1,13 @@ +import { RenderServer } from '@alleninstitute/vis-scatterbrain'; +import React, { createContext, useEffect, useRef, type PropsWithChildren } from 'react'; + +export const renderServerContext = createContext(null); + +export function RenderServerProvider(props: PropsWithChildren<{}>) { + const server = useRef(); + const { children } = props; + useEffect(() => { + server.current = new RenderServer([2048, 2048], []); + }, []); + return {children}; +} diff --git a/examples/vite.config.ts b/examples/vite.config.ts index fb5ef50..9c51638 100644 --- a/examples/vite.config.ts +++ b/examples/vite.config.ts @@ -3,6 +3,14 @@ import react from '@vitejs/plugin-react-swc'; import path from 'path'; // https://vitejs.dev/config/ export default defineConfig({ + build: { + rollupOptions: { + input: { + layers: path.resolve(__dirname, './layers.html'), + dzi: path.resolve(__dirname, './dzi.html'), + }, + }, + }, plugins: [react()], resolve: { alias: { diff --git a/packages/dzi/package.json b/packages/dzi/package.json new file mode 100644 index 0000000..dd7e021 --- /dev/null +++ b/packages/dzi/package.json @@ -0,0 +1,58 @@ +{ + "name": "@alleninstitute/vis-dzi", + "version": "0.0.3", + "contributors": [ + { + "name": "Lane Sawyer", + "email": "lane.sawyer@alleninstitute.org" + }, + { + "name": "Noah Shepard", + "email": "noah.shepard@alleninstitute.org" + }, + { + "name": "Skyler Moosman", + "email": "skyler.moosman@alleninstitute.org" + }, + { + "name": "Su Li", + "email": "su.li@alleninstitute.org" + } + ], + "license": "BSD-3-Clause", + "source": "src/index.ts", + "main": "dist/main.js", + "module": "dist/module.js", + "types": "dist/types.d.ts", + "files": [ + "dist" + ], + "scripts": { + "preinstall": "npx only-allow pnpm", + "typecheck": "tsc --noEmit", + "build": "parcel build --no-cache", + "watch": "parcel watch", + "test": "vitest --watch" + }, + "repository": { + "type": "git", + "url": "https://github.com/AllenInstitute/vis.git" + }, + "publishConfig": { + "registry": "https://npm.pkg.github.com/AllenInstitute" + }, + "devDependencies": { + "@parcel/packager-ts": "^2.12.0", + "@parcel/transformer-typescript-types": "^2.12.0", + "@types/lodash": "^4.14.202", + "parcel": "2.12.0", + "typescript": "^5.3.3", + "vitest": "^1.4.0" + }, + "dependencies": { + "@alleninstitute/vis-geometry": "workspace:*", + "@alleninstitute/vis-scatterbrain": "workspace:*", + "lodash": "^4.17.21", + "regl": "^2.1.0" + } +} \ No newline at end of file diff --git a/packages/dzi/src/index.ts b/packages/dzi/src/index.ts new file mode 100644 index 0000000..93f9b5c --- /dev/null +++ b/packages/dzi/src/index.ts @@ -0,0 +1,2 @@ +export { getVisibleTiles, type DziImage, type DziTile } from './loader'; +export { buildDziRenderer, buildAsyncDziRenderer, type RenderSettings as DziRenderSettings } from './renderer'; diff --git a/packages/dzi/src/loader.test.ts b/packages/dzi/src/loader.test.ts new file mode 100644 index 0000000..59f9529 --- /dev/null +++ b/packages/dzi/src/loader.test.ts @@ -0,0 +1,72 @@ +import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { tilesInLayer, type DziImage, tileWithOverlap, imageSizeAtLayer, firstSuitableLayer } from './loader'; +import { Box2D } from '@alleninstitute/vis-geometry'; + +describe('tiling math', () => { + const highsmith: DziImage = { + format: 'jpeg', + imagesUrl: 'https://openseadragon.github.io/example-images/highsmith/highsmith_files/', + overlap: 2, + size: { + width: 7026, + height: 9221, + }, + tileSize: 256, + }; + describe('layer selection', () => { + it('picks layer 9 when the screen is 512 px wide (and the image is much larger)', () => { + expect(firstSuitableLayer(highsmith.size.width, 512)).toEqual(9); + }); + it('picks layer 8 when the screen is less than 256 px wide (and the image is much larger)', () => { + expect(firstSuitableLayer(highsmith.size.width, 255)).toEqual(8); + }); + it('wont pick a layer that wont exist (screen larger than image)', () => { + const pretend_max_image_width = 512; + expect(firstSuitableLayer(pretend_max_image_width, 4096)).toEqual(9); + }); + }); + it('divide 512 into 2 chunks', () => { + const intervals = tileWithOverlap(512, 256, 1); + console.log(intervals); + expect(intervals.length).toEqual(2); + expect(intervals[0].min).toBe(0); + expect(intervals[0].max).toBe(257); + expect(intervals[1].min).toBe(255); + expect(intervals[1].max).toBe(512); + }); + // these sizes were all checked manually against the returned tile sizes from the example dzi in the given link + it('matches observed image dimensions (https://openseadragon.github.io/example-images/highsmith/highsmith.dzi) at layer 7', () => { + const tiles = tilesInLayer(highsmith, 7); + expect(tiles.length).toBe(1); + const s = Box2D.size(tiles[0][0]); + expect(s).toEqual([55, 73]); + }); + it('matches observed image dimensions (https://openseadragon.github.io/example-images/highsmith/highsmith.dzi) at layer 8', () => { + const tiles = tilesInLayer(highsmith, 8); + expect(tiles.length).toBe(1); + const s = Box2D.size(tiles[0][0]); + expect(s).toEqual([110, 145]); + }); + it('image size is as expected for real data (layer 9) ', () => { + const size = imageSizeAtLayer(highsmith, 9); + expect(size).toEqual([220, 289]); + }); + it('matches observed image dimensions (https://openseadragon.github.io/example-images/highsmith/highsmith.dzi) at layer 9', () => { + const tiles = tilesInLayer(highsmith, 9); + expect(tiles.length).toBe(2); + expect(Box2D.size(tiles[0][0])).toEqual([220, 258]); + expect(Box2D.size(tiles[1][0])).toEqual([220, 35]); + }); + + it('matches observed image dimensions (https://openseadragon.github.io/example-images/highsmith/highsmith.dzi) at layer 10', () => { + const tiles = tilesInLayer(highsmith, 10); + expect(tiles.length).toBe(3); + expect(tiles[0].length).toBe(2); + expect(Box2D.size(tiles[0][0])).toEqual([258, 258]); // 0_0 + expect(Box2D.size(tiles[0][1])).toEqual([186, 258]); // 1_0 + expect(Box2D.size(tiles[1][0])).toEqual([258, 260]); // 0_1 + expect(Box2D.size(tiles[1][1])).toEqual([186, 260]); // 1_1 + expect(Box2D.size(tiles[2][0])).toEqual([258, 67]); // 0_2 + expect(Box2D.size(tiles[2][1])).toEqual([186, 67]); // 1_2 + }); +}); diff --git a/packages/dzi/src/loader.ts b/packages/dzi/src/loader.ts new file mode 100644 index 0000000..0edda84 --- /dev/null +++ b/packages/dzi/src/loader.ts @@ -0,0 +1,141 @@ +import { type vec2, type box2D, Box2D, type Interval, Vec2 } from '@alleninstitute/vis-geometry'; + +type DziTilesRoot = `${string}_files/`; +// see https://learn.microsoft.com/en-us/previous-versions/windows/silverlight/dotnet-windows-silverlight/cc645077(v=vs.95)?redirectedfrom=MSDN +// TODO find a less ancient spec... +export type DziImage = { + imagesUrl: DziTilesRoot; // lets say you found a dzi at http://blah.com/deepzoom.dzi + // imagesUrl would be the path which contains all the files for the actual image tiles: + // in this example: + // http://blah.com/deepzoom_files/ + format: 'jpeg' | 'png' | 'jpg' | 'JPG' | 'PNG'; + overlap: number; // in pixels, ADDED every side of any given tile (for example, with overlap=1 and tilesize=256, you could see a jpeg of size 258x258). + // note that tiles on the edge wont have padding (on a per edge basis!) + tileSize: number; + size: { + width: number; + height: number; + }; +}; +type TileIndex = { + row: number; + col: number; +}; +export type DziTile = { + url: string; + index: TileIndex; + relativeLocation: box2D; + layer: number; +}; +function tileUrl(dzi: DziImage, level: number, tile: TileIndex): string { + return `${dzi.imagesUrl}${level.toFixed(0)}/${tile.col.toFixed(0)}_${tile.row.toFixed(0)}.${dzi.format}`; +} +// some quick notes on this deepzoom image format: +// 1. image / tile names are given by {column}_{row}.{format} +// 2. a layer (which may contain multiple tiles) is a folder +// 2.1 that folder contains all the tiles for that layer. +// layer 0 should contain a single image, 0_0, which is a single pixel! +// the origin of this tile indexing system is the top left of the image. +// the spec says that the "size" of a layer is 2*layer... but its closer to pow(2, layer). +// note also that is more of a maximum size... for example I've seen 9/0_0.jpeg have a size of 421x363, both of those are lower than pow(2,9)=512 +// note also that overlap is ADDED to the tile-size, which is a weird choice, as tileSize seems like it must be a power of 2...🤷‍♀️ + +/** + * + * @param dzi the dzi image to read tiles from + * @param camera.view a parametric box [0:1] relative the the image as a whole. note that 0 is the TOP of the image. + * @param camera.screenSize the size, in output pixels, at which the requested region will be displayed. + * @return a list of tiles at the most appropriate resolution which may be fetched and displayed + */ +export function getVisibleTiles(dzi: DziImage, camera: { view: box2D; screenSize: vec2 }): DziTile[] { + const viewWidth = Box2D.size(camera.view)[0]; + const layer = firstSuitableLayer(dzi.size.width, camera.screenSize[0] / viewWidth); + const layerResolution = imageSizeAtLayer(dzi, layer); + + const availableTiles = tilesInLayer(dzi, layer); + const baseLayer = findLargestSingleTileLayer(dzi); + const baseIndex: TileIndex = { col: 0, row: 0 } + const baseTile: DziTile = { + index: baseIndex, + layer: baseLayer, + relativeLocation: Box2D.create([0, 0], [1, 1]), + url: tileUrl(dzi, baseLayer, baseIndex) + } + + // note that the tile boxes are in pixels relative to the layer in which they reside + // the given view is assumed to be a parameter (in the space [0:1]) of the image as a whole + // so, we must convert literal pixel boxes into their relative position in the image as a whole: + const tileBoxAsParameter = (tile: box2D) => + Box2D.create(Vec2.div(tile.minCorner, layerResolution), Vec2.div(tile.maxCorner, layerResolution)); + + const tiles: DziTile[] = availableTiles + .flatMap((row, rowIndex) => { + return row.map((tile, colIndex) => { + const index = { col: colIndex, row: rowIndex }; + return { + index, + layer, + relativeLocation: tileBoxAsParameter(tile), + url: tileUrl(dzi, layer, index), + }; + }); + // filter out tiles which are not in view + }) + .filter((t) => !!Box2D.intersection(t.relativeLocation, camera.view)); + return (baseLayer < layer) ? [baseTile, ...tiles] : tiles; +} +/** + * NOTE: THE REMAINDER OF THIS FILE IS EXPORTED ONLY FOR TESTING PURPOSES + * **/ + +// starting with the width of an image, and the width of the screen on which to display that image +// return the highest-numbered (aka highest resolution) dzi-layer folder which has a size that would be lower than the screen resolution +export function firstSuitableLayer(imageWidth: number, screenWidth: number) { + const idealLayer = Math.ceil(Math.log2(screenWidth)); + const biggestRealLayer = Math.ceil(Math.log2(imageWidth)); + return Math.min(biggestRealLayer, idealLayer); +} + +/** + * + * @param dzi + * @returns the index of the largest layer which contains only a single tile + * + */ +function findLargestSingleTileLayer(dzi: DziImage): number { + return Math.floor(Math.log2(dzi.tileSize)) +} +export function tileWithOverlap(total: number, step: number, overlap: number): Interval[] { + const blocks: Interval[] = []; + let start = 0; + while (start < total) { + const next = Math.min(total, start + step + overlap + (start > 0 ? overlap : 0)); + blocks.push({ min: start, max: next }); + if (next >= total) { + return blocks; + } + start = next - 2 * overlap; + } + return blocks; +} +function boxFromRowCol(row: Interval, col: Interval) { + return Box2D.create([col.min, row.min], [col.max, row.max]); +} +export function imageSizeAtLayer(dzi: DziImage, layer: number) { + const { size } = dzi; + const layerMaxSize = 2 ** layer; + let total: vec2 = [size.width, size.height]; + while (total[0] > layerMaxSize || total[1] > layerMaxSize) { + total = Vec2.ceil(Vec2.scale(total, 1 / 2)); + } + return total; +} +export function tilesInLayer(dzi: DziImage, layer: number): box2D[][] { + const { overlap, tileSize } = dzi; + // figure out the effective size of a layer by dividing the total size by 2 until its less than our layerMax + // note: if this all feels weird, its because I can find no reference implementation or specification, its a bit of reverse engineering + const total: vec2 = imageSizeAtLayer(dzi, layer); + const rows = tileWithOverlap(Math.ceil(total[1]), tileSize, overlap); + const cols = tileWithOverlap(Math.ceil(total[0]), tileSize, overlap); + return rows.map((r) => cols.map((c) => boxFromRowCol(r, c))); +} diff --git a/packages/dzi/src/renderer.ts b/packages/dzi/src/renderer.ts new file mode 100644 index 0000000..4962a41 --- /dev/null +++ b/packages/dzi/src/renderer.ts @@ -0,0 +1,74 @@ +import { Box2D, type box2D, type vec2 } from '@alleninstitute/vis-geometry'; +import { + type Renderer, + type ReglCacheEntry, + type CachedTexture, + buildAsyncRenderer, +} from '@alleninstitute/vis-scatterbrain'; +import type REGL from 'regl'; +import { type DziImage, type DziTile, getVisibleTiles } from './loader'; +import { buildTileRenderer } from './tile-renderer'; + +export type RenderSettings = { + camera: { + view: box2D; + screenSize: vec2; + }; +}; + +type GpuProps = { + pixels: CachedTexture; +}; +export function buildDziRenderer(regl: REGL.Regl): Renderer { + const renderCmd = buildTileRenderer(regl, { enable: false }); + const fetchDziTile = ( + tile: DziTile, + _img: DziImage, + _settings: RenderSettings, + _abort?: AbortSignal + ): Record Promise> => { + return { + pixels: () => { + return new Promise((resolve, reject) => { + try { + const img = new Image(); + img.crossOrigin = 'anonymous'; + img.onload = (ev) => { + resolve({ type: 'texture', texture: regl.texture(img), bytes: img.width * img.height * 4 }); // close enough + }; + img.src = tile.url; + } catch (err) { + reject(err); + } + }); + }, + }; + }; + return { + destroy: () => { }, // no private resources to destroy + cacheKey: (item, _requestKey, _data, _settings) => `${item.url}`, + fetchItemContent: fetchDziTile, + getVisibleItems: (dzi, settings) => { + return getVisibleTiles(dzi, settings.camera); + }, + isPrepared: (cacheData): cacheData is GpuProps => { + const pixels = cacheData['pixels']; + return !!pixels && pixels.type === 'texture'; + }, + renderItem: (target, tile, _dzi, settings, gpuData) => { + const { pixels } = gpuData; + const { camera } = settings; + renderCmd({ + target, + depth: -tile.layer / 1000, + img: pixels.texture, + tile: Box2D.toFlatArray(tile.relativeLocation), + view: Box2D.toFlatArray(camera.view), + }); + }, + }; +} + +export function buildAsyncDziRenderer(regl: REGL.Regl) { + return buildAsyncRenderer(buildDziRenderer(regl)); +} diff --git a/packages/dzi/src/tile-renderer.ts b/packages/dzi/src/tile-renderer.ts new file mode 100644 index 0000000..6d2391f --- /dev/null +++ b/packages/dzi/src/tile-renderer.ts @@ -0,0 +1,59 @@ +import type { vec4 } from '@alleninstitute/vis-geometry'; +import REGL from 'regl'; +type Props = { + img: REGL.Texture2D; + view: vec4; + tile: vec4; + depth: number; + target: REGL.Framebuffer2D | null; +}; +const vert = ` +precision highp float; +uniform vec4 view; +uniform vec4 tile; +uniform float depth; +attribute vec2 position; +varying vec2 uv; +void main(){ + uv = position; + vec2 size = view.zw-view.xy; + vec2 tileSize = tile.zw-tile.xy; + vec2 tilePosition = (position * tileSize)+tile.xy; + vec2 pos =(tilePosition-view.xy)/size; + // to clip space: + pos = (pos*2.0)-1.0; + gl_Position = vec4(pos.x,pos.y,depth,1); +}`; + +const frag = ` +precision highp float; +varying vec2 uv; +uniform sampler2D img; + +void main(){ + gl_FragColor = texture2D(img, uv); +} +`; +export function buildTileRenderer(regl: REGL.Regl, blend: REGL.BlendingOptions) { + const cmd = regl({ + vert, + frag, + depth: { + enable: true, + }, + blend, + count: 4, + primitive: 'triangle fan', + attributes: { + position: [0, 0, 1, 0, 1, 1, 0, 1], + }, + uniforms: { + img: regl.prop('img'), + view: regl.prop('view'), + tile: regl.prop('tile'), + depth: regl.prop('depth'), + }, + framebuffer: regl.prop('target'), + }); + return (p: Props) => cmd(p); +} diff --git a/packages/dzi/tsconfig.json b/packages/dzi/tsconfig.json new file mode 100644 index 0000000..baaee9e --- /dev/null +++ b/packages/dzi/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "paths": { + "~/*": ["./*"] + }, + "moduleResolution": "Bundler", + "module": "ES2022", + "target": "ES2022", + "lib": ["es2022", "DOM"] + }, + "include": ["./src/index.ts"] +} diff --git a/packages/geometry/package.json b/packages/geometry/package.json index fd1b2fe..f7ed500 100644 --- a/packages/geometry/package.json +++ b/packages/geometry/package.json @@ -23,7 +23,7 @@ "email": "su.li@alleninstitute.org" } ], - "license": "TBD", + "license": "BSD-3-Clause", "source": "src/index.ts", "main": "dist/main.js", "module": "dist/module.js", @@ -52,4 +52,4 @@ "typescript": "^5.3.3", "vitest": "^1.4.0" } -} +} \ No newline at end of file diff --git a/packages/scatterbrain/package.json b/packages/scatterbrain/package.json index 941b8a9..682be44 100644 --- a/packages/scatterbrain/package.json +++ b/packages/scatterbrain/package.json @@ -23,7 +23,7 @@ "email": "su.li@alleninstitute.org" } ], - "license": "TBD", + "license": "BSD-3-Clause", "source": "src/index.ts", "main": "dist/main.js", "module": "dist/module.js", @@ -58,4 +58,4 @@ "lodash": "^4.17.21", "regl": "^2.1.0" } -} +} \ No newline at end of file diff --git a/packages/scatterbrain/src/abstract/README.md b/packages/scatterbrain/src/abstract/README.md new file mode 100644 index 0000000..e91196f --- /dev/null +++ b/packages/scatterbrain/src/abstract/README.md @@ -0,0 +1,64 @@ +# How To use generic rendering tools for your cool data + +## Use case + +Lets say you have a big dataset, and you'd like to view it and interact with that view. The dataset is big enough that having your users download the whole thing is prohibitive. Often, datasets like this are partitioned in some way - [OME-ZARR](https://ngff.openmicroscopy.org/latest/) as an example, uses a pyramid of chunks - each successive "layer" of the pyramid is a higher resolution view of the data, and is divided into chunks or tiles. + +However your data is subdivided, we should be able to start with a renderer for the smallest, simplest unit (a single tile or chunk) and build up from there - the tools in this folder provide patterns for dealing with two common issues - caching chunks, and coordinating render scheduling when the data lives elsewhere. + +### Walkthrough + +#### prerequisites + +1. you plan to do your rendering with [reGL](https://github.com/regl-project/regl/tree/master) and you have some familiarity with its basic concepts and verbiage (framebuffer, command, etc.) +2. you have data that is partitioned in some way, preferably spatially. + +Lets start with scheduling first. Our goal is to be able to call the function `buildAsyncRenderer` from `async-frame.ts`. Its signature is thus: +`function buildAsyncRenderer>(renderer: Renderer)` + +It takes only a single argument, `Renderer`, but that argument is highly generic. Renderer is an interface that you will use to describe your data. The generic parameters end up being fairly simple: + +1. `Dataset` is the type of the whole thing you're rendering - for example a large tiled image or volume. Because we're assuming the dataset is remote, it need not be literally the dataset - often its just basic metadata and a URL. + +2. `Item` is the type of a renderable subdivision - a tile or small chunk. Again, it need not be the literal pixels, triangles, whatever! A placeholder (e.g. a path from the main url where the data lives) is great. + +3. `Settings` - a general bucket for things that dont change for a complete view - think camera angles, point sizes, color settings, etc. + +4. `SemanticKey` and `CacheKey` - ignore these for now - just think "string". + +5. `GpuData` - this is probably a bad name. As you will see later, we're going to write a function that looks like `renderItem(dataset, item, settings, gpuData)`. when we get there, gpuData will be a collection of entries from our cache. + +Even though I just described these, they dont need to be planned out in advance or anything - they'll arise naturally as we write the functions that form the interface of the Renderer we're trying to build to pass to `buildAsyncRenderer`. + +### Renderer Interface + +Lets take a look at the Renderer interface items, one at a time. Each describes something the framework needs to be able to manage rendering properly, and they tend to be simple: + +1. `getVisibleItems` - the first step of any good renderer is knowing the minimum amount of work to do! Given a Dataset and some Settings, return an array of Items that are in view. This is a strong hint that whatever concept of a "Camera" that makes sense should be in your settings object. +2. `fetchItemContent` - given a single item (and dataset and settings of course), return functions that fetch the raw, renderable data that an Item represents. In many cases, this could be very simple: + `return {pixels: ()=>${dataset.url}/${item.path}.jpg}` would be reasonable! the shape of this interface is this way to support "Columnar" data - imagine rows in a database describing cells - the columns of the table contain X and Y positions, and perhaps colors or other measurements. In this analogy, an Item is a group of rows of the table, and what is returned would be a `SELECT` of each column of interest to the renderer. +3. `isPrepared` is a simple convenience feature - because the system supports independent, cacheable columns, it can be awkward in the final step to render - you end up with a bunch of boilerplate to prove to Typescript that you have all the data! `isPrepared` is a [type guard](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates) that helps make working with the data from the cache slightly more tidy. +4. `renderItem` Is the main event! given a buffer to render to, and everything about the Item you're rendering, actually do the drawing. This usually involves calling one (or more!) reGL commands with the given target buffer and cached gpu data. +5. `cacheKey` - the cache system needs to know how to uniquely identify any data it fetches. What makes sense here will depend on your data entirely. Make sure this is a pure function of its input! +6. `destroy` - if you allocated (excluding cache data!) any resources, particularly GPU resources, you can release them here, think lookup tables or textures, etc. + +Think of the flow of rendering like this: + +`getVisibleItems(dataset).map(item=>Promise.awaitAll(fetchItemContent(item).map(fetcher=>fetcher())).then(gpuData)=>renderItem(dataset,item,gpuData))` + +### Now make it easy + +That was fun! now we can finally call `buildAsyncRenderer` on an object containing the functions we just wrote. TS will likely infer the generic types for you. The result of buildAsyncRenderer is a function that when called, will return a handle to a running frame which represents progress rendering to the given framebuffer. Because the data my not be in the cache yet, this frame may take a very long time to complete, and thus, there are options for cancelling it, as well as responding to various events (begin, progress, finished, etc). + +## Using it on a page + +Now that we have a function that can render, how do we deploy it? there are a few options. The first is the most direct - create a canvas, initialize WebGL and REGL on that canvas, then repeatedly call your renderer in response to events (move the camera, etc). The catch here is that GPU resources are bound to this canvas, and cannot be shared with other canvases. Often, this is a non-issue: you have a single page with a single view of big data, and your done. If so, feel free to stop reading. If however, you need multiple views of potentially shared data, you can use the render-server, which lets you draw to many canvases as though they shared a single WebGL context and cache. This will incur a small performance penalty when copying rendered results from the server to the client - in practice for a handful of views, this cost will be dwarfed by other bottlenecks. + +### Walkthrough + +1. Create a RenderServer instance. It will create its own reGL context, cache, and offscreen canvas. +2. Create your AsyncRenderer as described earlier in this document, you must use `server.regl` to construct your renderer. +3. Build your canvas component with access to a reference to this shared server. When its time to render a frame, call `server.beginRendering`. This function requires a wrapper around your Async Renderer, a callback for handling Render frame lifecycle events, and a reference to the Client canvas (where you want the rendering to appear when its done). +4. The first issue will be the render function wrapper - because the server is generic, and could be shared between renderers of different data types, it cant really know about a particular renderer's dataset types. We could make opaque placeholder types, but those are often confusing. Instead, you can simply wrap your renderer like so: + `const wrapper = (target,cache,callback)=>myFancyAsyncRenderer(myDataset, mySettings, callback,target,cache)` +5. Next up is the callback. At minimum, you must at some point handle an event (for example, the `finished` event) by copying the results of the rendering to the client, like so: `if(evnt.status == 'finished') evnt.server.copyToClient(compose)`. As you can see, how the pixels get to the client can be controlled by authoring a `compose` function. This function is given the 2D rendering [context](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D) on which to draw, and an [ImageData](https://developer.mozilla.org/docs/Web/API/ImageData) object representing the pixels rendered by reGL. In our testing, the most performant (over all browsers tested) way to deal with this is `context.putImageData(imageData, 0,0)` diff --git a/packages/scatterbrain/src/abstract/async-frame.ts b/packages/scatterbrain/src/abstract/async-frame.ts new file mode 100644 index 0000000..2879831 --- /dev/null +++ b/packages/scatterbrain/src/abstract/async-frame.ts @@ -0,0 +1,214 @@ +import { partial } from 'lodash'; +import { AsyncDataCache } from '../dataset-cache'; +import type { ReglCacheEntry, Renderer } from './types'; +import type REGL from 'regl'; + +/// THIS file is a copy of render-queue, but with some changes made that I hope will make the idea of beginLongRunningFrame easier to use /// +// TODO: delete (or make deprecated) the old one +// the most obvious difference: a config parameter, rather than a function over 11 arguments! +// the second difference is more subtle - you'll notice an "isPrepared" parameter, which we use to deal with some competing interests +// 1. it would be nice to write render functions that use objects (see the type GpuData) rather than records from strings to the data we want +// 2. this desire is complicated by our desire to share GPU-resident data if possible! because different renderers might want different "objects" to render which *could* all share raw gpu resources +// it becomes very difficult to express the types of such a system statically. +// SO: by having render-authors provide a type-guard, we can safely (provided the guard is reasonable) cast a record to a nice, friendly object 'GpuData' at runtime! +// note also: the cache is set up to dissuade users from holding on to references to data in the cache - its still possible of course (this is typescript!) but the whole system is set up to accept +// a generic useWithCache(...) function, which also makes this tricky + +export type FrameLifecycle = { + cancelFrame: (reason?: string) => void; +}; + +export type FrameBegin = { status: 'begin' }; +export type FrameProgress = { status: 'progress'; dataset: Dataset; renderedItems: ReadonlyArray }; +export type FrameCancelled = { status: 'cancelled' }; +export type FrameFinished = { status: 'finished' }; +export type FrameError = { status: 'error'; error: unknown }; + +export type AsyncFrameEvent = + | FrameBegin + | FrameProgress + | FrameFinished + | FrameCancelled + | FrameError; +export type RenderCallback = (event: AsyncFrameEvent) => void; + +export type RenderFrameConfig< + Dataset, + Item, + Settings, + RqKey extends string, + CacheKey extends string, + CacheEntryType, + GpuData extends Record, +> = { + maximumInflightAsyncTasks: number; // Maximum number of in-flight fetches to run at any time for this frame + queueProcessingIntervalMS: number; // The length of time to wait between processing the queue in milliseconds. + queueTimeBudgetMS: number; // Spend at most (soft limit) this many milliseconds working on the queue at a time + items: Item[]; // the items to render + mutableCache: AsyncDataCache; // the cached results of fetching item contents + dataset: Dataset; // the dataset comprised of all Items + settings: Settings; // the settings (anything that is the same for the entire frame, think colors, point-sizes etc.) + requestsForItem: ( + item: Item, + dataset: Dataset, + settings: Settings, + signal?: AbortSignal + ) => Record Promise>; + lifecycleCallback: RenderCallback; + cacheKeyForRequest: (item: Item, requestKey: RqKey, dataset: Dataset, settings: Settings) => CacheKey; + isPrepared: (cacheData: Record) => cacheData is GpuData; + renderItem: (item: Item, dataset: Dataset, settings: Settings, gpuData: GpuData) => void; +}; + +export function beginFrame< + Dataset, + Item, + Settings, + RqKey extends string, + CacheKey extends string, + CacheEntryType, + GpuData extends Record, +>(config: RenderFrameConfig): FrameLifecycle { + const { + maximumInflightAsyncTasks, + queueTimeBudgetMS, + queueProcessingIntervalMS, + cacheKeyForRequest, + settings, + items, + mutableCache, + lifecycleCallback, + renderItem, + requestsForItem, + isPrepared, + dataset, + } = config; + + const abort = new AbortController(); + const queue: Item[] = [...items]; + const taskCancelCallbacks: Array<() => void> = []; + const fancy = (itemToRender: Item, maybe: Record) => { + if (isPrepared(maybe)) { + renderItem(itemToRender, dataset, settings, maybe); + } + }; + const reportStatus = (event: AsyncFrameEvent, synchronous: boolean = false) => { + // we want to report our status, however the flow of events can be confusing - + // our callers anticipate an asynchronous (long running) frame to be started, + // but there are scenarios in which the whole thing is completely synchronous + // callers who are scheduling things may be surprised that their frame finished + // before the code that handles it appears to start. thus, we make the entire lifecycle callback + // system async, to prevent surprises. + if (synchronous) { + lifecycleCallback(event); + } else { + Promise.resolve().then(() => lifecycleCallback(event)); + } + }; + + const doWorkOnQueue = (intervalId: number) => { + // try our best to cleanup if something goes awry + const startWorkTime = performance.now(); + const cleanupOnError = (err: unknown) => { + // clear the queue and the staging area (inFlight) + taskCancelCallbacks.forEach((cancelMe) => cancelMe()); + queue.splice(0, queue.length); + // stop fetching + abort.abort(err); + clearInterval(intervalId); + // pass the error somewhere better: + reportStatus({ status: 'error', error: err }, true); + }; + while (mutableCache.getNumPendingTasks() < Math.max(maximumInflightAsyncTasks, 1)) { + // We know there are items in the queue because of the check above, so we assert the type exist + const itemToRender = queue.shift(); + if (!itemToRender) { + break; + } + const toCacheKey = (rq: RqKey) => cacheKeyForRequest(itemToRender, rq, dataset, settings); + try { + const result = mutableCache.cacheAndUse( + requestsForItem(itemToRender, dataset, settings, abort.signal), + partial(fancy, itemToRender), + toCacheKey, + () => reportStatus({ status: 'progress', dataset, renderedItems: [itemToRender] }, true) + ); + if (result !== undefined) { + // put this cancel callback in a list where we can invoke if something goes wrong + // note that it is harmless to cancel a task that was completed + taskCancelCallbacks.push(result); + } + } catch (err) { + cleanupOnError(err); + } + if (performance.now() - startWorkTime > queueTimeBudgetMS) { + // used up all our time - leave remaining work for later + break; + } + } + if (queue.length < 1) { + // we cant add anything to the in-flight staging area, the final task + // is already in flight + if (mutableCache.getNumPendingTasks() < 1) { + // we do want to wait for that last in-flight task to actually finish though: + clearInterval(intervalId); + reportStatus({ status: 'finished' }); + } + return; + } + }; + const interval = setInterval(() => doWorkOnQueue(interval), queueProcessingIntervalMS); + + // do some work right now... + if (queue.length > 0) { + reportStatus({ status: 'begin' }, true); + doWorkOnQueue(interval); + // return a function to allow our caller to cancel the frame - guaranteed that no settings/data will be + // touched/referenced after cancellation, unless the author of render() did some super weird bad things + return { + cancelFrame: (reason?: string) => { + taskCancelCallbacks.forEach((cancelMe) => cancelMe()); + abort.abort(new DOMException(reason, 'AbortError')); + clearInterval(interval); + reportStatus({ status: 'cancelled' }); + }, + }; + } + return { + cancelFrame: () => {}, + }; +} + +export function buildAsyncRenderer< + Dataset, + Item, + Settings, + SemanticKey extends string, + CacheKeyType extends string, + GpuData extends Record, +>(renderer: Renderer) { + return ( + data: Dataset, + settings: Settings, + callback: RenderCallback, + target: REGL.Framebuffer2D | null, + cache: AsyncDataCache + ) => { + const { renderItem, isPrepared, cacheKey, fetchItemContent, getVisibleItems } = renderer; + const config: RenderFrameConfig = { + queueProcessingIntervalMS: 33, + maximumInflightAsyncTasks: 5, + queueTimeBudgetMS: 16, + cacheKeyForRequest: cacheKey, + dataset: data, + isPrepared: isPrepared, + items: getVisibleItems(data, settings), + lifecycleCallback: callback, + mutableCache: cache, + renderItem: partial(renderItem, target), + requestsForItem: fetchItemContent, + settings, + }; + return beginFrame(config); + }; +} diff --git a/packages/scatterbrain/src/abstract/render-server.ts b/packages/scatterbrain/src/abstract/render-server.ts new file mode 100644 index 0000000..0f1acda --- /dev/null +++ b/packages/scatterbrain/src/abstract/render-server.ts @@ -0,0 +1,179 @@ +import { AsyncDataCache } from '../dataset-cache'; +import type { ReglCacheEntry } from './types'; +import { Vec2, type vec2 } from '@alleninstitute/vis-geometry'; +import REGL from 'regl'; +import { type AsyncFrameEvent, type RenderCallback } from './async-frame'; +import { type FrameLifecycle } from '../render-queue'; + +function destroyer(item: ReglCacheEntry) { + switch (item.type) { + case 'texture': + item.texture.destroy(); + break; + case 'buffer': + item.buffer.destroy(); + break; + } +} +// return the size, in bytes, of some cached entity! +function sizeOf(item: ReglCacheEntry) { + return Math.max(1, item.bytes ?? 0); +} +const oneMB = 1024 * 1024; + +type ClientEntry = { + frame: FrameLifecycle | null; + image: REGL.Framebuffer2D; + resolution: vec2; + copyBuffer: ArrayBuffer; + updateRequested: Compositor | null; +}; +type ServerActions = { + copyToClient: (composite: Compositor) => void; +}; +type Compositor = (ctx: CanvasRenderingContext2D, glImage: ImageData) => void; +type RenderEvent = AsyncFrameEvent & { target: REGL.Framebuffer2D | null; server: ServerActions }; +type ServerCallback = (event: RenderEvent) => void; +type RenderFrameFn = ( + target: REGL.Framebuffer2D | null, + cache: AsyncDataCache, + callback: RenderCallback +) => FrameLifecycle | null; + +type Client = HTMLCanvasElement; +export class RenderServer { + private canvas: OffscreenCanvas; + private refreshRequested: boolean; + regl: REGL.Regl | null; + cache: AsyncDataCache; + private clients: Map; + private maxSize: vec2; + constructor(maxSize: vec2, extensions: string[], cacheByteLimit: number = 2000 * oneMB) { + this.canvas = new OffscreenCanvas(10, 10); // we always render to private buffers, so we dont need a real resolution here... + this.clients = new Map(); + this.maxSize = maxSize; + this.refreshRequested = false; + const gl = this.canvas.getContext('webgl', { + alpha: true, + preserveDrawingBuffer: false, + antialias: true, + premultipliedAlpha: true, + }); + if (!gl) { + throw new Error('WebGL not supported!'); + } + const regl = REGL({ + gl, + extensions, + }); + this.regl = regl; + this.cache = new AsyncDataCache(destroyer, sizeOf, cacheByteLimit); + } + private copyToClient(frameInfo: ClientEntry, client: Client) { + // note: compared transferImageFromBitmap(transferImageToBitmap()), drawImage(canvas) and a few other variations + // this method seems to have the most consistent performance across various browsers + const { resolution, copyBuffer, image, updateRequested } = frameInfo; + const [width, height] = resolution; + if (updateRequested) { + try { + // read directly from the framebuffer to which we render: + this.regl?.read({ framebuffer: image, x: 0, y: 0, width, height, data: new Uint8Array(copyBuffer) }); + // then put those bytes in the client canvas: + const ctx: CanvasRenderingContext2D = client.getContext('2d')!; + const img = new ImageData(new Uint8ClampedArray(copyBuffer), width, height); + updateRequested(ctx, img); + } catch (err) { + console.error( + 'error - we tried to copy to a client buffer, but maybe it got unmounted? that can happen, its ok' + ); + } + } + } + private onAnimationFrame() { + if (this.refreshRequested) { + for (const [client, entry] of this.clients) { + if (entry.updateRequested) { + this.copyToClient(entry, client); + // mark our progress: + entry.updateRequested = null; + } + } + this.refreshRequested = false; + } + } + private requestComposition(client: Client, composite: Compositor) { + const c = this.clients.get(client); + if (c) { + if (!c.updateRequested) { + c.updateRequested = composite; + if (!this.refreshRequested) { + this.refreshRequested = true; + // as of 2023, requestAnimationFrame should be generally available globally in both workers* and a window + // if this becomes an issue, we can have our caller pass requestAnimationFrame in to the constructor + requestAnimationFrame(() => this.onAnimationFrame()); + } + } + } + } + private clientFrameFinished(client: Client) { + const C = this.clients.get(client); + if (C) { + C.frame = null; + } + } + destroyClient(client: Client) { + const C = this.clients.get(client); + if (C) { + C.frame?.cancelFrame(); + } + this.clients.delete(client); + } + private prepareToRenderToClient(client: Client) { + const previousEntry = this.clients.get(client); + if (previousEntry) { + // the client is mutable - so every time we get a request, we have to check to see if it got resized + if (client.width !== previousEntry.resolution[0] || client.height !== previousEntry.resolution[1]) { + // handle resizing by deleting previously allocated resources: + previousEntry.image.destroy(); + // the rest will get GC'd normally + } else { + // use the existing resources! + return previousEntry; + } + } + const resolution = Vec2.min(this.maxSize, [client.width, client.height]); + const copyBuffer = new ArrayBuffer(resolution[0] * resolution[1] * 4); + const image = this.regl!.framebuffer(...resolution); + return { resolution, copyBuffer, image }; + } + beginRendering(renderFn: RenderFrameFn, callback: ServerCallback, client: Client) { + if (this.regl) { + const clientFrame = this.clients.get(client); + if (clientFrame && clientFrame.frame) { + clientFrame.frame.cancelFrame(); + } + const { image, resolution, copyBuffer } = this.prepareToRenderToClient(client); + const hijack: RenderCallback = (e) => { + callback({ + ...e, + target: image, + server: { + copyToClient: (compose: Compositor) => { + this.requestComposition(client, compose); + }, + }, + }); + if (e.status === 'finished' || e.status === 'cancelled') { + this.clientFrameFinished(client); + } + }; + this.clients.set(client, { + frame: renderFn(image, this.cache, hijack), + image, + copyBuffer, + resolution, + updateRequested: null, + }); + } + } +} diff --git a/packages/scatterbrain/src/abstract/types.ts b/packages/scatterbrain/src/abstract/types.ts new file mode 100644 index 0000000..fcb3996 --- /dev/null +++ b/packages/scatterbrain/src/abstract/types.ts @@ -0,0 +1,33 @@ +import type REGL from 'regl'; + +export type CachedTexture = { + texture: REGL.Texture2D; + bytes: number; + type: 'texture'; +}; +export type CachedVertexBuffer = { + buffer: REGL.Buffer; + bytes: number; + type: 'buffer'; +}; +export type ReglCacheEntry = CachedTexture | CachedVertexBuffer; + +export type Renderer> = { + getVisibleItems: (data: Dataset, settings: Settings) => Array; + fetchItemContent: ( + item: Item, + dataset: Dataset, + settings: Settings, + signal?: AbortSignal + ) => Record Promise>; + isPrepared: (cacheData: Record) => cacheData is GpuData; + renderItem: ( + target: REGL.Framebuffer2D | null, + item: Item, + data: Dataset, + settings: Settings, + gpuData: GpuData + ) => void; + cacheKey: (item: Item, requestKey: string, data: Dataset, settings: Settings) => string; + destroy: (regl: REGL.Regl) => void; +}; diff --git a/packages/scatterbrain/src/index.ts b/packages/scatterbrain/src/index.ts index e4a2f6d..66dbd4c 100644 --- a/packages/scatterbrain/src/index.ts +++ b/packages/scatterbrain/src/index.ts @@ -2,3 +2,7 @@ export { beginLongRunningFrame } from './render-queue'; export { AsyncDataCache } from './dataset-cache'; export { ReglLayer2D } from './layers/layer-2D'; export * from './layers/buffer-pair'; + +export { beginFrame, buildAsyncRenderer, type RenderFrameConfig } from './abstract/async-frame'; +export type { CachedTexture, CachedVertexBuffer, ReglCacheEntry, Renderer } from './abstract/types'; +export { RenderServer } from './abstract/render-server'; diff --git a/packages/scatterbrain/src/render-queue.ts b/packages/scatterbrain/src/render-queue.ts index 88e8cd1..13fd568 100644 --- a/packages/scatterbrain/src/render-queue.ts +++ b/packages/scatterbrain/src/render-queue.ts @@ -38,6 +38,7 @@ export type RenderCallback = (event: { status: NormalStatus } | { status: 'error * In addition, you can cancel the frame at any time, which will stop the frame from running and prevent any further * rendering or data fetching from occurring. * + * @deprecated consider using beginFrame instead * @param maximumInflightAsyncTasks The maximum number of async tasks to run at once. * @param queueProcessingIntervalMS The length of time to wait between processing the queue in milliseconds. * @param items An array of generic items to render diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2770d04..d8ffb39 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4167 +1,5248 @@ lockfileVersion: '6.0' settings: - autoInstallPeers: true - excludeLinksFromLockfile: false + autoInstallPeers: true + excludeLinksFromLockfile: false importers: - - .: - devDependencies: - '@parcel/packager-ts': - specifier: 2.12.0 - version: 2.12.0(@parcel/core@2.12.0) - '@parcel/transformer-typescript-types': - specifier: 2.12.0 - version: 2.12.0(@parcel/core@2.12.0)(typescript@5.3.3) - buffer: - specifier: ^5.5.0||^6.0.0 - version: 6.0.3 - parcel: - specifier: 2.12.0 - version: 2.12.0(typescript@5.3.3) - prettier: - specifier: 3.3.2 - version: 3.3.2 - process: - specifier: ^0.11.10 - version: 0.11.10 - typescript: - specifier: ^5.3.3 - version: 5.3.3 - - examples: - dependencies: - '@alleninstitute/vis-geometry': - specifier: workspace:* - version: link:../packages/geometry - '@alleninstitute/vis-scatterbrain': - specifier: workspace:* - version: link:../packages/scatterbrain - '@czi-sds/components': - specifier: ^20.0.1 - version: 20.0.1(@emotion/core@11.0.0)(@emotion/css@11.11.2)(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/base@5.0.0-beta.40)(@mui/icons-material@5.15.15)(@mui/lab@5.0.0-alpha.170)(@mui/material@5.15.15)(react-dom@18.3.0)(react@18.3.0) - '@emotion/css': - specifier: ^11.11.2 - version: 11.11.2 - '@emotion/react': - specifier: ^11.11.4 - version: 11.11.4(@types/react@18.3.0)(react@18.3.0) - '@emotion/styled': - specifier: ^11.11.5 - version: 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.0)(react@18.3.0) - '@mui/base': - specifier: 5.0.0-beta.40 - version: 5.0.0-beta.40(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0) - '@mui/icons-material': - specifier: ^5.15.15 - version: 5.15.15(@mui/material@5.15.15)(@types/react@18.3.0)(react@18.3.0) - '@mui/lab': - specifier: 5.0.0-alpha.170 - version: 5.0.0-alpha.170(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@5.15.15)(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0) - '@mui/material': - specifier: ^5.15.15 - version: 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0) - '@types/lodash': - specifier: ^4.14.202 - version: 4.14.202 - file-saver: - specifier: ^2.0.5 - version: 2.0.5 - json5: - specifier: ^2.2.3 - version: 2.2.3 - kiwi-schema: - specifier: ^0.5.0 - version: 0.5.0 - lodash: - specifier: ^4.17.21 - version: 4.17.21 - react: - specifier: ^18.3.0 - version: 18.3.0 - react-dom: - specifier: ^18.3.0 - version: 18.3.0(react@18.3.0) - regl: - specifier: ^2.1.0 - version: 2.1.0 - zarrita: - specifier: 0.4.0-next.14 - version: 0.4.0-next.14 - devDependencies: - '@parcel/packager-ts': - specifier: ^2.12.0 - version: 2.12.0(@parcel/core@2.12.0) - '@parcel/transformer-typescript-types': - specifier: ^2.12.0 - version: 2.12.0(@parcel/core@2.12.0)(typescript@5.3.3) - '@types/file-saver': - specifier: ^2.0.7 - version: 2.0.7 - '@types/node': - specifier: ^22.1.0 - version: 22.1.0 - '@types/react': - specifier: ^18.3.0 - version: 18.3.0 - '@types/react-dom': - specifier: ^18.3.0 - version: 18.3.0 - '@vitejs/plugin-react-swc': - specifier: ^3.5.0 - version: 3.7.0(vite@5.3.5) - esbuild: - specifier: ^0.19.12 - version: 0.19.12 - parcel: - specifier: 2.12.0 - version: 2.12.0(typescript@5.3.3) - typescript: - specifier: ^5.3.3 - version: 5.3.3 - vite: - specifier: ^5.3.5 - version: 5.3.5(@types/node@22.1.0) - - packages/geometry: - devDependencies: - '@parcel/packager-ts': - specifier: ^2.12.0 - version: 2.12.0(@parcel/core@2.12.0) - '@parcel/transformer-typescript-types': - specifier: ^2.12.0 - version: 2.12.0(@parcel/core@2.12.0)(typescript@5.3.3) - parcel: - specifier: 2.12.0 - version: 2.12.0(typescript@5.3.3) - typescript: - specifier: ^5.3.3 - version: 5.3.3 - vitest: - specifier: ^1.4.0 - version: 1.4.0 - - packages/scatterbrain: - dependencies: - '@alleninstitute/vis-geometry': - specifier: workspace:* - version: link:../geometry - lodash: - specifier: ^4.17.21 - version: 4.17.21 - regl: - specifier: ^2.1.0 - version: 2.1.0 - devDependencies: - '@parcel/packager-ts': - specifier: ^2.12.0 - version: 2.12.0(@parcel/core@2.12.0) - '@parcel/transformer-typescript-types': - specifier: ^2.12.0 - version: 2.12.0(@parcel/core@2.12.0)(typescript@5.3.3) - '@types/lodash': - specifier: ^4.14.202 - version: 4.14.202 - parcel: - specifier: 2.12.0 - version: 2.12.0(typescript@5.3.3) - typescript: - specifier: ^5.3.3 - version: 5.3.3 - vitest: - specifier: ^1.4.0 - version: 1.4.0 + .: + devDependencies: + '@parcel/packager-ts': + specifier: 2.12.0 + version: 2.12.0(@parcel/core@2.12.0) + '@parcel/transformer-typescript-types': + specifier: 2.12.0 + version: 2.12.0(@parcel/core@2.12.0)(typescript@5.3.3) + buffer: + specifier: ^5.5.0||^6.0.0 + version: 6.0.3 + parcel: + specifier: 2.12.0 + version: 2.12.0(typescript@5.3.3) + prettier: + specifier: 3.3.2 + version: 3.3.2 + process: + specifier: ^0.11.10 + version: 0.11.10 + typescript: + specifier: ^5.3.3 + version: 5.3.3 + + examples: + dependencies: + '@alleninstitute/vis-dzi': + specifier: workspace:* + version: link:../packages/dzi + '@alleninstitute/vis-geometry': + specifier: workspace:* + version: link:../packages/geometry + '@alleninstitute/vis-scatterbrain': + specifier: workspace:* + version: link:../packages/scatterbrain + '@czi-sds/components': + specifier: ^20.0.1 + version: 20.0.1(@emotion/core@11.0.0)(@emotion/css@11.11.2)(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/base@5.0.0-beta.40)(@mui/icons-material@5.15.15)(@mui/lab@5.0.0-alpha.170)(@mui/material@5.15.15)(react-dom@18.3.0)(react@18.3.0) + '@emotion/css': + specifier: ^11.11.2 + version: 11.11.2 + '@emotion/react': + specifier: ^11.11.4 + version: 11.11.4(@types/react@18.3.0)(react@18.3.0) + '@emotion/styled': + specifier: ^11.11.5 + version: 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.0)(react@18.3.0) + '@mui/base': + specifier: 5.0.0-beta.40 + version: 5.0.0-beta.40(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0) + '@mui/icons-material': + specifier: ^5.15.15 + version: 5.15.15(@mui/material@5.15.15)(@types/react@18.3.0)(react@18.3.0) + '@mui/lab': + specifier: 5.0.0-alpha.170 + version: 5.0.0-alpha.170(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@5.15.15)(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0) + '@mui/material': + specifier: ^5.15.15 + version: 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0) + '@types/lodash': + specifier: ^4.14.202 + version: 4.14.202 + file-saver: + specifier: ^2.0.5 + version: 2.0.5 + json5: + specifier: ^2.2.3 + version: 2.2.3 + kiwi-schema: + specifier: ^0.5.0 + version: 0.5.0 + lodash: + specifier: ^4.17.21 + version: 4.17.21 + react: + specifier: ^18.3.0 + version: 18.3.0 + react-dom: + specifier: ^18.3.0 + version: 18.3.0(react@18.3.0) + regl: + specifier: ^2.1.0 + version: 2.1.0 + zarrita: + specifier: 0.4.0-next.14 + version: 0.4.0-next.14 + devDependencies: + '@types/file-saver': + specifier: ^2.0.7 + version: 2.0.7 + '@types/node': + specifier: ^22.1.0 + version: 22.1.0 + '@types/react': + specifier: ^18.3.0 + version: 18.3.0 + '@types/react-dom': + specifier: ^18.3.0 + version: 18.3.0 + '@vitejs/plugin-react-swc': + specifier: ^3.5.0 + version: 3.7.0(vite@5.3.5) + typescript: + specifier: ^5.3.3 + version: 5.3.3 + vite: + specifier: ^5.3.5 + version: 5.3.5(@types/node@22.1.0) + + packages/dzi: + dependencies: + '@alleninstitute/vis-geometry': + specifier: workspace:* + version: link:../geometry + '@alleninstitute/vis-scatterbrain': + specifier: workspace:* + version: link:../scatterbrain + lodash: + specifier: ^4.17.21 + version: 4.17.21 + regl: + specifier: ^2.1.0 + version: 2.1.0 + devDependencies: + '@parcel/packager-ts': + specifier: ^2.12.0 + version: 2.12.0(@parcel/core@2.12.0) + '@parcel/transformer-typescript-types': + specifier: ^2.12.0 + version: 2.12.0(@parcel/core@2.12.0)(typescript@5.3.3) + '@types/lodash': + specifier: ^4.14.202 + version: 4.14.202 + parcel: + specifier: 2.12.0 + version: 2.12.0(typescript@5.3.3) + typescript: + specifier: ^5.3.3 + version: 5.3.3 + vitest: + specifier: ^1.4.0 + version: 1.4.0 + + packages/geometry: + devDependencies: + '@parcel/packager-ts': + specifier: ^2.12.0 + version: 2.12.0(@parcel/core@2.12.0) + '@parcel/transformer-typescript-types': + specifier: ^2.12.0 + version: 2.12.0(@parcel/core@2.12.0)(typescript@5.3.3) + parcel: + specifier: 2.12.0 + version: 2.12.0(typescript@5.3.3) + typescript: + specifier: ^5.3.3 + version: 5.3.3 + vitest: + specifier: ^1.4.0 + version: 1.4.0 + + packages/scatterbrain: + dependencies: + '@alleninstitute/vis-geometry': + specifier: workspace:* + version: link:../geometry + lodash: + specifier: ^4.17.21 + version: 4.17.21 + regl: + specifier: ^2.1.0 + version: 2.1.0 + devDependencies: + '@parcel/packager-ts': + specifier: ^2.12.0 + version: 2.12.0(@parcel/core@2.12.0) + '@parcel/transformer-typescript-types': + specifier: ^2.12.0 + version: 2.12.0(@parcel/core@2.12.0)(typescript@5.3.3) + '@types/lodash': + specifier: ^4.14.202 + version: 4.14.202 + parcel: + specifier: 2.12.0 + version: 2.12.0(typescript@5.3.3) + typescript: + specifier: ^5.3.3 + version: 5.3.3 + vitest: + specifier: ^1.4.0 + version: 1.4.0 packages: + /@babel/code-frame@7.23.5: + resolution: + { + integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/highlight': 7.23.4 + chalk: 2.4.2 + + /@babel/helper-module-imports@7.24.3: + resolution: + { + integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.24.5 + dev: false + + /@babel/helper-string-parser@7.24.1: + resolution: + { + integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==, + } + engines: { node: '>=6.9.0' } + dev: false + + /@babel/helper-validator-identifier@7.22.20: + resolution: + { + integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==, + } + engines: { node: '>=6.9.0' } + + /@babel/helper-validator-identifier@7.24.5: + resolution: + { + integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==, + } + engines: { node: '>=6.9.0' } + dev: false + + /@babel/highlight@7.23.4: + resolution: + { + integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + + /@babel/runtime@7.24.5: + resolution: + { + integrity: sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==, + } + engines: { node: '>=6.9.0' } + dependencies: + regenerator-runtime: 0.14.1 + dev: false + + /@babel/types@7.24.5: + resolution: + { + integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/helper-string-parser': 7.24.1 + '@babel/helper-validator-identifier': 7.24.5 + to-fast-properties: 2.0.0 + dev: false + + /@czi-sds/components@20.0.1(@emotion/core@11.0.0)(@emotion/css@11.11.2)(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/base@5.0.0-beta.40)(@mui/icons-material@5.15.15)(@mui/lab@5.0.0-alpha.170)(@mui/material@5.15.15)(react-dom@18.3.0)(react@18.3.0): + resolution: + { + integrity: sha512-vB3gGl+tzxDmV00J8ioLr/LIj1WU26448Pot9orgyGeZy+AaJM7WMT/qsSpPSCGEKLN5ykcIUBIDIGK1E/JZmQ==, + } + peerDependencies: + '@emotion/core': ^11.0.0 + '@emotion/css': ^11.11.2 + '@emotion/react': ^11.11.3 + '@emotion/styled': ^11.11.0 + '@mui/base': ^5.0.0-beta.30 + '@mui/icons-material': ^5.15.3 + '@mui/lab': ^5.0.0-alpha.159 + '@mui/material': ^5.15.3 + react: '>=17.0.1' + react-dom: '>=17.0.1' + dependencies: + '@emotion/core': 11.0.0 + '@emotion/css': 11.11.2 + '@emotion/react': 11.11.4(@types/react@18.3.0)(react@18.3.0) + '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.0)(react@18.3.0) + '@mui/base': 5.0.0-beta.40(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0) + '@mui/icons-material': 5.15.15(@mui/material@5.15.15)(@types/react@18.3.0)(react@18.3.0) + '@mui/lab': 5.0.0-alpha.170(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@5.15.15)(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0) + '@mui/material': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0) + react: 18.3.0 + react-dom: 18.3.0(react@18.3.0) + dev: false + + /@emotion/babel-plugin@11.11.0: + resolution: + { + integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==, + } + dependencies: + '@babel/helper-module-imports': 7.24.3 + '@babel/runtime': 7.24.5 + '@emotion/hash': 0.9.1 + '@emotion/memoize': 0.8.1 + '@emotion/serialize': 1.1.4 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.9.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.2.0 + dev: false + + /@emotion/cache@11.11.0: + resolution: + { + integrity: sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==, + } + dependencies: + '@emotion/memoize': 0.8.1 + '@emotion/sheet': 1.2.2 + '@emotion/utils': 1.2.1 + '@emotion/weak-memoize': 0.3.1 + stylis: 4.2.0 + dev: false + + /@emotion/core@11.0.0: + resolution: + { + integrity: sha512-w4sE3AmHmyG6RDKf6mIbtHpgJUSJ2uGvPQb8VXFL7hFjMPibE8IiehG8cMX3Ztm4svfCQV6KqusQbeIOkurBcA==, + } + dev: false + + /@emotion/css@11.11.2: + resolution: + { + integrity: sha512-VJxe1ucoMYMS7DkiMdC2T7PWNbrEI0a39YRiyDvK2qq4lXwjRbVP/z4lpG+odCsRzadlR+1ywwrTzhdm5HNdew==, + } + dependencies: + '@emotion/babel-plugin': 11.11.0 + '@emotion/cache': 11.11.0 + '@emotion/serialize': 1.1.4 + '@emotion/sheet': 1.2.2 + '@emotion/utils': 1.2.1 + dev: false + + /@emotion/hash@0.9.1: + resolution: + { + integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==, + } + dev: false + + /@emotion/is-prop-valid@1.2.2: + resolution: + { + integrity: sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==, + } + dependencies: + '@emotion/memoize': 0.8.1 + dev: false + + /@emotion/memoize@0.8.1: + resolution: + { + integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==, + } + dev: false + + /@emotion/react@11.11.4(@types/react@18.3.0)(react@18.3.0): + resolution: + { + integrity: sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==, + } + peerDependencies: + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.5 + '@emotion/babel-plugin': 11.11.0 + '@emotion/cache': 11.11.0 + '@emotion/serialize': 1.1.4 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.0) + '@emotion/utils': 1.2.1 + '@emotion/weak-memoize': 0.3.1 + '@types/react': 18.3.0 + hoist-non-react-statics: 3.3.2 + react: 18.3.0 + dev: false + + /@emotion/serialize@1.1.4: + resolution: + { + integrity: sha512-RIN04MBT8g+FnDwgvIUi8czvr1LU1alUMI05LekWB5DGyTm8cCBMCRpq3GqaiyEDRptEXOyXnvZ58GZYu4kBxQ==, + } + dependencies: + '@emotion/hash': 0.9.1 + '@emotion/memoize': 0.8.1 + '@emotion/unitless': 0.8.1 + '@emotion/utils': 1.2.1 + csstype: 3.1.3 + dev: false + + /@emotion/sheet@1.2.2: + resolution: + { + integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==, + } + dev: false + + /@emotion/styled@11.11.5(@emotion/react@11.11.4)(@types/react@18.3.0)(react@18.3.0): + resolution: + { + integrity: sha512-/ZjjnaNKvuMPxcIiUkf/9SHoG4Q196DRl1w82hQ3WCsjo1IUR8uaGWrC6a87CrYAW0Kb/pK7hk8BnLgLRi9KoQ==, + } + peerDependencies: + '@emotion/react': ^11.0.0-rc.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.5 + '@emotion/babel-plugin': 11.11.0 + '@emotion/is-prop-valid': 1.2.2 + '@emotion/react': 11.11.4(@types/react@18.3.0)(react@18.3.0) + '@emotion/serialize': 1.1.4 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.0) + '@emotion/utils': 1.2.1 + '@types/react': 18.3.0 + react: 18.3.0 + dev: false + + /@emotion/unitless@0.8.1: + resolution: + { + integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==, + } + dev: false + + /@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.3.0): + resolution: + { + integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==, + } + peerDependencies: + react: '>=16.8.0' + dependencies: + react: 18.3.0 + dev: false + + /@emotion/utils@1.2.1: + resolution: + { + integrity: sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==, + } + dev: false + + /@emotion/weak-memoize@0.3.1: + resolution: + { + integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==, + } + dev: false + + /@esbuild/aix-ppc64@0.21.5: + resolution: + { + integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==, + } + engines: { node: '>=12' } + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.21.5: + resolution: + { + integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.21.5: + resolution: + { + integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==, + } + engines: { node: '>=12' } + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.21.5: + resolution: + { + integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.21.5: + resolution: + { + integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.21.5: + resolution: + { + integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.21.5: + resolution: + { + integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.21.5: + resolution: + { + integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.21.5: + resolution: + { + integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.21.5: + resolution: + { + integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==, + } + engines: { node: '>=12' } + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.21.5: + resolution: + { + integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==, + } + engines: { node: '>=12' } + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.21.5: + resolution: + { + integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==, + } + engines: { node: '>=12' } + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.21.5: + resolution: + { + integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==, + } + engines: { node: '>=12' } + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.21.5: + resolution: + { + integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==, + } + engines: { node: '>=12' } + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.21.5: + resolution: + { + integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==, + } + engines: { node: '>=12' } + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.21.5: + resolution: + { + integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==, + } + engines: { node: '>=12' } + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.21.5: + resolution: + { + integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.21.5: + resolution: + { + integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.21.5: + resolution: + { + integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.21.5: + resolution: + { + integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.21.5: + resolution: + { + integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.21.5: + resolution: + { + integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==, + } + engines: { node: '>=12' } + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.21.5: + resolution: + { + integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@floating-ui/core@1.6.1: + resolution: + { + integrity: sha512-42UH54oPZHPdRHdw6BgoBD6cg/eVTmVrFcgeRDM3jbO7uxSoipVcmcIGFcA5jmOHO5apcyvBhkSKES3fQJnu7A==, + } + dependencies: + '@floating-ui/utils': 0.2.2 + dev: false + + /@floating-ui/dom@1.6.4: + resolution: + { + integrity: sha512-0G8R+zOvQsAG1pg2Q99P21jiqxqGBW1iRe/iXHsBRBxnpXKFI8QwbB4x5KmYLggNO5m34IQgOIu9SCRfR/WWiQ==, + } + dependencies: + '@floating-ui/core': 1.6.1 + '@floating-ui/utils': 0.2.2 + dev: false + + /@floating-ui/react-dom@2.0.9(react-dom@18.3.0)(react@18.3.0): + resolution: + { + integrity: sha512-q0umO0+LQK4+p6aGyvzASqKbKOJcAHJ7ycE9CuUvfx3s9zTHWmGJTPOIlM/hmSBfUfg/XfY5YhLBLR/LHwShQQ==, + } + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@floating-ui/dom': 1.6.4 + react: 18.3.0 + react-dom: 18.3.0(react@18.3.0) + dev: false + + /@floating-ui/utils@0.2.2: + resolution: + { + integrity: sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==, + } + dev: false + + /@jest/schemas@29.6.3: + resolution: + { + integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: + { + integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, + } + dev: true + + /@lezer/common@1.2.1: + resolution: + { + integrity: sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==, + } + dev: true + + /@lezer/lr@1.4.0: + resolution: + { + integrity: sha512-Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg==, + } + dependencies: + '@lezer/common': 1.2.1 + dev: true + + /@lmdb/lmdb-darwin-arm64@2.8.5: + resolution: + { + integrity: sha512-KPDeVScZgA1oq0CiPBcOa3kHIqU+pTOwRFDIhxvmf8CTNvqdZQYp5cCKW0bUk69VygB2PuTiINFWbY78aR2pQw==, + } + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@lmdb/lmdb-darwin-x64@2.8.5: + resolution: + { + integrity: sha512-w/sLhN4T7MW1nB3R/U8WK5BgQLz904wh+/SmA2jD8NnF7BLLoUgflCNxOeSPOWp8geP6nP/+VjWzZVip7rZ1ug==, + } + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@lmdb/lmdb-linux-arm64@2.8.5: + resolution: + { + integrity: sha512-vtbZRHH5UDlL01TT5jB576Zox3+hdyogvpcbvVJlmU5PdL3c5V7cj1EODdh1CHPksRl+cws/58ugEHi8bcj4Ww==, + } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@lmdb/lmdb-linux-arm@2.8.5: + resolution: + { + integrity: sha512-c0TGMbm2M55pwTDIfkDLB6BpIsgxV4PjYck2HiOX+cy/JWiBXz32lYbarPqejKs9Flm7YVAKSILUducU9g2RVg==, + } + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@lmdb/lmdb-linux-x64@2.8.5: + resolution: + { + integrity: sha512-Xkc8IUx9aEhP0zvgeKy7IQ3ReX2N8N1L0WPcQwnZweWmOuKfwpS3GRIYqLtK5za/w3E60zhFfNdS+3pBZPytqQ==, + } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@lmdb/lmdb-win32-x64@2.8.5: + resolution: + { + integrity: sha512-4wvrf5BgnR8RpogHhtpCPJMKBmvyZPhhUtEwMJbXh0ni2BucpfF07jlmyM11zRqQ2XIq6PbC2j7W7UCCcm1rRQ==, + } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@mischnic/json-sourcemap@0.1.1: + resolution: + { + integrity: sha512-iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w==, + } + engines: { node: '>=12.0.0' } + dependencies: + '@lezer/common': 1.2.1 + '@lezer/lr': 1.4.0 + json5: 2.2.3 + dev: true + + /@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.2: + resolution: + { + integrity: sha512-9bfjwDxIDWmmOKusUcqdS4Rw+SETlp9Dy39Xui9BEGEk19dDwH0jhipwFzEff/pFg95NKymc6TOTbRKcWeRqyQ==, + } + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.2: + resolution: + { + integrity: sha512-lwriRAHm1Yg4iDf23Oxm9n/t5Zpw1lVnxYU3HnJPTi2lJRkKTrps1KVgvL6m7WvmhYVt/FIsssWay+k45QHeuw==, + } + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.2: + resolution: + { + integrity: sha512-FU20Bo66/f7He9Fp9sP2zaJ1Q8L9uLPZQDub/WlUip78JlPeMbVL8546HbZfcW9LNciEXc8d+tThSJjSC+tmsg==, + } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@msgpackr-extract/msgpackr-extract-linux-arm@3.0.2: + resolution: + { + integrity: sha512-MOI9Dlfrpi2Cuc7i5dXdxPbFIgbDBGgKR5F2yWEa6FVEtSWncfVNKW5AKjImAQ6CZlBK9tympdsZJ2xThBiWWA==, + } + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@msgpackr-extract/msgpackr-extract-linux-x64@3.0.2: + resolution: + { + integrity: sha512-gsWNDCklNy7Ajk0vBBf9jEx04RUxuDQfBse918Ww+Qb9HCPoGzS+XJTLe96iN3BVK7grnLiYghP/M4L8VsaHeA==, + } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@msgpackr-extract/msgpackr-extract-win32-x64@3.0.2: + resolution: + { + integrity: sha512-O+6Gs8UeDbyFpbSh2CPEz/UOrrdWPTBYNblZK5CxxLisYt4kGX3Sc+czffFonyjiGSq3jWLwJS/CCJc7tBr4sQ==, + } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@mui/base@5.0.0-beta.40(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0): + resolution: + { + integrity: sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==, + } + engines: { node: '>=12.0.0' } + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.5 + '@floating-ui/react-dom': 2.0.9(react-dom@18.3.0)(react@18.3.0) + '@mui/types': 7.2.14(@types/react@18.3.0) + '@mui/utils': 5.15.14(@types/react@18.3.0)(react@18.3.0) + '@popperjs/core': 2.11.8 + '@types/react': 18.3.0 + clsx: 2.1.1 + prop-types: 15.8.1 + react: 18.3.0 + react-dom: 18.3.0(react@18.3.0) + dev: false + + /@mui/core-downloads-tracker@5.15.15: + resolution: + { + integrity: sha512-aXnw29OWQ6I5A47iuWEI6qSSUfH6G/aCsW9KmW3LiFqr7uXZBK4Ks+z8G+qeIub8k0T5CMqlT2q0L+ZJTMrqpg==, + } + dev: false + + /@mui/icons-material@5.15.15(@mui/material@5.15.15)(@types/react@18.3.0)(react@18.3.0): + resolution: + { + integrity: sha512-kkeU/pe+hABcYDH6Uqy8RmIsr2S/y5bP2rp+Gat4CcRjCcVne6KudS1NrZQhUCRysrTDCAhcbcf9gt+/+pGO2g==, + } + engines: { node: '>=12.0.0' } + peerDependencies: + '@mui/material': ^5.0.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.5 + '@mui/material': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0) + '@types/react': 18.3.0 + react: 18.3.0 + dev: false + + /@mui/lab@5.0.0-alpha.170(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@5.15.15)(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0): + resolution: + { + integrity: sha512-0bDVECGmrNjd3+bLdcLiwYZ0O4HP5j5WSQm5DV6iA/Z9kr8O6AnvZ1bv9ImQbbX7Gj3pX4o43EKwCutj3EQxQg==, + } + engines: { node: '>=12.0.0' } + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@mui/material': '>=5.15.0' + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.5 + '@emotion/react': 11.11.4(@types/react@18.3.0)(react@18.3.0) + '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.0)(react@18.3.0) + '@mui/base': 5.0.0-beta.40(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0) + '@mui/material': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0) + '@mui/system': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.0)(react@18.3.0) + '@mui/types': 7.2.14(@types/react@18.3.0) + '@mui/utils': 5.15.14(@types/react@18.3.0)(react@18.3.0) + '@types/react': 18.3.0 + clsx: 2.1.1 + prop-types: 15.8.1 + react: 18.3.0 + react-dom: 18.3.0(react@18.3.0) + dev: false + + /@mui/material@5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0): + resolution: + { + integrity: sha512-3zvWayJ+E1kzoIsvwyEvkTUKVKt1AjchFFns+JtluHCuvxgKcLSRJTADw37k0doaRtVAsyh8bz9Afqzv+KYrIA==, + } + engines: { node: '>=12.0.0' } + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.5 + '@emotion/react': 11.11.4(@types/react@18.3.0)(react@18.3.0) + '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.0)(react@18.3.0) + '@mui/base': 5.0.0-beta.40(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0) + '@mui/core-downloads-tracker': 5.15.15 + '@mui/system': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.0)(react@18.3.0) + '@mui/types': 7.2.14(@types/react@18.3.0) + '@mui/utils': 5.15.14(@types/react@18.3.0)(react@18.3.0) + '@types/react': 18.3.0 + '@types/react-transition-group': 4.4.10 + clsx: 2.1.1 + csstype: 3.1.3 + prop-types: 15.8.1 + react: 18.3.0 + react-dom: 18.3.0(react@18.3.0) + react-is: 18.2.0 + react-transition-group: 4.4.5(react-dom@18.3.0)(react@18.3.0) + dev: false + + /@mui/private-theming@5.15.14(@types/react@18.3.0)(react@18.3.0): + resolution: + { + integrity: sha512-UH0EiZckOWcxiXLX3Jbb0K7rC8mxTr9L9l6QhOZxYc4r8FHUkefltV9VDGLrzCaWh30SQiJvAEd7djX3XXY6Xw==, + } + engines: { node: '>=12.0.0' } + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.5 + '@mui/utils': 5.15.14(@types/react@18.3.0)(react@18.3.0) + '@types/react': 18.3.0 + prop-types: 15.8.1 + react: 18.3.0 + dev: false + + /@mui/styled-engine@5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.0): + resolution: + { + integrity: sha512-RILkuVD8gY6PvjZjqnWhz8fu68dVkqhM5+jYWfB5yhlSQKg+2rHkmEwm75XIeAqI3qwOndK6zELK5H6Zxn4NHw==, + } + engines: { node: '>=12.0.0' } + peerDependencies: + '@emotion/react': ^11.4.1 + '@emotion/styled': ^11.3.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + dependencies: + '@babel/runtime': 7.24.5 + '@emotion/cache': 11.11.0 + '@emotion/react': 11.11.4(@types/react@18.3.0)(react@18.3.0) + '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.0)(react@18.3.0) + csstype: 3.1.3 + prop-types: 15.8.1 + react: 18.3.0 + dev: false + + /@mui/system@5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.0)(react@18.3.0): + resolution: + { + integrity: sha512-aulox6N1dnu5PABsfxVGOZffDVmlxPOVgj56HrUnJE8MCSh8lOvvkd47cebIVQQYAjpwieXQXiDPj5pwM40jTQ==, + } + engines: { node: '>=12.0.0' } + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.5 + '@emotion/react': 11.11.4(@types/react@18.3.0)(react@18.3.0) + '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.0)(react@18.3.0) + '@mui/private-theming': 5.15.14(@types/react@18.3.0)(react@18.3.0) + '@mui/styled-engine': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.0) + '@mui/types': 7.2.14(@types/react@18.3.0) + '@mui/utils': 5.15.14(@types/react@18.3.0)(react@18.3.0) + '@types/react': 18.3.0 + clsx: 2.1.1 + csstype: 3.1.3 + prop-types: 15.8.1 + react: 18.3.0 + dev: false + + /@mui/types@7.2.14(@types/react@18.3.0): + resolution: + { + integrity: sha512-MZsBZ4q4HfzBsywtXgM1Ksj6HDThtiwmOKUXH1pKYISI9gAVXCNHNpo7TlGoGrBaYWZTdNoirIN7JsQcQUjmQQ==, + } + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.0 + dev: false + + /@mui/utils@5.15.14(@types/react@18.3.0)(react@18.3.0): + resolution: + { + integrity: sha512-0lF/7Hh/ezDv5X7Pry6enMsbYyGKjADzvHyo3Qrc/SSlTsQ1VkbDMbH0m2t3OR5iIVLwMoxwM7yGd+6FCMtTFA==, + } + engines: { node: '>=12.0.0' } + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.5 + '@types/prop-types': 15.7.12 + '@types/react': 18.3.0 + prop-types: 15.8.1 + react: 18.3.0 + react-is: 18.2.0 + dev: false + + /@parcel/bundler-default@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-3ybN74oYNMKyjD6V20c9Gerdbh7teeNvVMwIoHIQMzuIFT6IGX53PyOLlOKRLbjxMc0TMimQQxIt2eQqxR5LsA==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/diagnostic': 2.12.0 + '@parcel/graph': 3.2.0 + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/rust': 2.12.0 + '@parcel/utils': 2.12.0 + nullthrows: 1.1.1 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/cache@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-FX5ZpTEkxvq/yvWklRHDESVRz+c7sLTXgFuzz6uEnBcXV38j6dMSikflNpHA6q/L4GKkCqRywm9R6XQwhwIMyw==, + } + engines: { node: '>= 12.0.0' } + peerDependencies: + '@parcel/core': ^2.12.0 + dependencies: + '@parcel/core': 2.12.0 + '@parcel/fs': 2.12.0(@parcel/core@2.12.0) + '@parcel/logger': 2.12.0 + '@parcel/utils': 2.12.0 + lmdb: 2.8.5 + transitivePeerDependencies: + - '@swc/helpers' + dev: true + + /@parcel/codeframe@2.12.0: + resolution: + { + integrity: sha512-v2VmneILFiHZJTxPiR7GEF1wey1/IXPdZMcUlNXBiPZyWDfcuNgGGVQkx/xW561rULLIvDPharOMdxz5oHOKQg==, + } + engines: { node: '>= 12.0.0' } + dependencies: + chalk: 4.1.2 + dev: true + + /@parcel/compressor-raw@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-h41Q3X7ZAQ9wbQ2csP8QGrwepasLZdXiuEdpUryDce6rF9ZiHoJ97MRpdLxOhOPyASTw/xDgE1xyaPQr0Q3f5A==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/config-default@2.12.0(@parcel/core@2.12.0)(typescript@5.3.3): + resolution: + { + integrity: sha512-dPNe2n9eEsKRc1soWIY0yToMUPirPIa2QhxcCB3Z5RjpDGIXm0pds+BaiqY6uGLEEzsjhRO0ujd4v2Rmm0vuFg==, + } + peerDependencies: + '@parcel/core': ^2.12.0 + dependencies: + '@parcel/bundler-default': 2.12.0(@parcel/core@2.12.0) + '@parcel/compressor-raw': 2.12.0(@parcel/core@2.12.0) + '@parcel/core': 2.12.0 + '@parcel/namer-default': 2.12.0(@parcel/core@2.12.0) + '@parcel/optimizer-css': 2.12.0(@parcel/core@2.12.0) + '@parcel/optimizer-htmlnano': 2.12.0(@parcel/core@2.12.0)(typescript@5.3.3) + '@parcel/optimizer-image': 2.12.0(@parcel/core@2.12.0) + '@parcel/optimizer-svgo': 2.12.0(@parcel/core@2.12.0) + '@parcel/optimizer-swc': 2.12.0(@parcel/core@2.12.0) + '@parcel/packager-css': 2.12.0(@parcel/core@2.12.0) + '@parcel/packager-html': 2.12.0(@parcel/core@2.12.0) + '@parcel/packager-js': 2.12.0(@parcel/core@2.12.0) + '@parcel/packager-raw': 2.12.0(@parcel/core@2.12.0) + '@parcel/packager-svg': 2.12.0(@parcel/core@2.12.0) + '@parcel/packager-wasm': 2.12.0(@parcel/core@2.12.0) + '@parcel/reporter-dev-server': 2.12.0(@parcel/core@2.12.0) + '@parcel/resolver-default': 2.12.0(@parcel/core@2.12.0) + '@parcel/runtime-browser-hmr': 2.12.0(@parcel/core@2.12.0) + '@parcel/runtime-js': 2.12.0(@parcel/core@2.12.0) + '@parcel/runtime-react-refresh': 2.12.0(@parcel/core@2.12.0) + '@parcel/runtime-service-worker': 2.12.0(@parcel/core@2.12.0) + '@parcel/transformer-babel': 2.12.0(@parcel/core@2.12.0) + '@parcel/transformer-css': 2.12.0(@parcel/core@2.12.0) + '@parcel/transformer-html': 2.12.0(@parcel/core@2.12.0) + '@parcel/transformer-image': 2.12.0(@parcel/core@2.12.0) + '@parcel/transformer-js': 2.12.0(@parcel/core@2.12.0) + '@parcel/transformer-json': 2.12.0(@parcel/core@2.12.0) + '@parcel/transformer-postcss': 2.12.0(@parcel/core@2.12.0) + '@parcel/transformer-posthtml': 2.12.0(@parcel/core@2.12.0) + '@parcel/transformer-raw': 2.12.0(@parcel/core@2.12.0) + '@parcel/transformer-react-refresh-wrap': 2.12.0(@parcel/core@2.12.0) + '@parcel/transformer-svg': 2.12.0(@parcel/core@2.12.0) + transitivePeerDependencies: + - '@swc/helpers' + - cssnano + - postcss + - purgecss + - relateurl + - srcset + - terser + - typescript + - uncss + dev: true + + /@parcel/core@2.12.0: + resolution: + { + integrity: sha512-s+6pwEj+GfKf7vqGUzN9iSEPueUssCCQrCBUlcAfKrJe0a22hTUCjewpB0I7lNrCIULt8dkndD+sMdOrXsRl6Q==, + } + engines: { node: '>= 12.0.0' } + dependencies: + '@mischnic/json-sourcemap': 0.1.1 + '@parcel/cache': 2.12.0(@parcel/core@2.12.0) + '@parcel/diagnostic': 2.12.0 + '@parcel/events': 2.12.0 + '@parcel/fs': 2.12.0(@parcel/core@2.12.0) + '@parcel/graph': 3.2.0 + '@parcel/logger': 2.12.0 + '@parcel/package-manager': 2.12.0(@parcel/core@2.12.0)(@swc/helpers@0.5.6) + '@parcel/plugin': 2.12.0(@parcel/core@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/core@2.12.0) + '@parcel/utils': 2.12.0 + '@parcel/workers': 2.12.0(@parcel/core@2.12.0) + abortcontroller-polyfill: 1.7.5 + base-x: 3.0.9 + browserslist: 4.22.3 + clone: 2.1.2 + dotenv: 7.0.0 + dotenv-expand: 5.1.0 + json5: 2.2.3 + msgpackr: 1.10.1 + nullthrows: 1.1.1 + semver: 7.5.4 + transitivePeerDependencies: + - '@swc/helpers' + dev: true + + /@parcel/diagnostic@2.12.0: + resolution: + { + integrity: sha512-8f1NOsSFK+F4AwFCKynyIu9Kr/uWHC+SywAv4oS6Bv3Acig0gtwUjugk0C9UaB8ztBZiW5TQZhw+uPZn9T/lJA==, + } + engines: { node: '>= 12.0.0' } + dependencies: + '@mischnic/json-sourcemap': 0.1.1 + nullthrows: 1.1.1 + dev: true + + /@parcel/events@2.12.0: + resolution: + { + integrity: sha512-nmAAEIKLjW1kB2cUbCYSmZOGbnGj8wCzhqnK727zCCWaA25ogzAtt657GPOeFyqW77KyosU728Tl63Fc8hphIA==, + } + engines: { node: '>= 12.0.0' } + dev: true + + /@parcel/fs@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-NnFkuvou1YBtPOhTdZr44WN7I60cGyly2wpHzqRl62yhObyi1KvW0SjwOMa0QGNcBOIzp4G0CapoZ93hD0RG5Q==, + } + engines: { node: '>= 12.0.0' } + peerDependencies: + '@parcel/core': ^2.12.0 + dependencies: + '@parcel/core': 2.12.0 + '@parcel/rust': 2.12.0 + '@parcel/types': 2.12.0(@parcel/core@2.12.0) + '@parcel/utils': 2.12.0 + '@parcel/watcher': 2.4.1 + '@parcel/workers': 2.12.0(@parcel/core@2.12.0) + transitivePeerDependencies: + - '@swc/helpers' + dev: true + + /@parcel/graph@3.2.0: + resolution: + { + integrity: sha512-xlrmCPqy58D4Fg5umV7bpwDx5Vyt7MlnQPxW68vae5+BA4GSWetfZt+Cs5dtotMG2oCHzZxhIPt7YZ7NRyQzLA==, + } + engines: { node: '>= 12.0.0' } + dependencies: + nullthrows: 1.1.1 + dev: true + + /@parcel/logger@2.12.0: + resolution: + { + integrity: sha512-cJ7Paqa7/9VJ7C+KwgJlwMqTQBOjjn71FbKk0G07hydUEBISU2aDfmc/52o60ErL9l+vXB26zTrIBanbxS8rVg==, + } + engines: { node: '>= 12.0.0' } + dependencies: + '@parcel/diagnostic': 2.12.0 + '@parcel/events': 2.12.0 + dev: true + + /@parcel/markdown-ansi@2.12.0: + resolution: + { + integrity: sha512-WZz3rzL8k0H3WR4qTHX6Ic8DlEs17keO9gtD4MNGyMNQbqQEvQ61lWJaIH0nAtgEetu0SOITiVqdZrb8zx/M7w==, + } + engines: { node: '>= 12.0.0' } + dependencies: + chalk: 4.1.2 + dev: true + + /@parcel/namer-default@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-9DNKPDHWgMnMtqqZIMiEj/R9PNWW16lpnlHjwK3ciRlMPgjPJ8+UNc255teZODhX0T17GOzPdGbU/O/xbxVPzA==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/diagnostic': 2.12.0 + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + nullthrows: 1.1.1 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/node-resolver-core@3.3.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-rhPW9DYPEIqQBSlYzz3S0AjXxjN6Ub2yS6tzzsW/4S3Gpsgk/uEq4ZfxPvoPf/6TgZndVxmKwpmxaKtGMmf3cA==, + } + engines: { node: '>= 12.0.0' } + dependencies: + '@mischnic/json-sourcemap': 0.1.1 + '@parcel/diagnostic': 2.12.0 + '@parcel/fs': 2.12.0(@parcel/core@2.12.0) + '@parcel/rust': 2.12.0 + '@parcel/utils': 2.12.0 + nullthrows: 1.1.1 + semver: 7.5.4 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/optimizer-css@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-ifbcC97fRzpruTjaa8axIFeX4MjjSIlQfem3EJug3L2AVqQUXnM1XO8L0NaXGNLTW2qnh1ZjIJ7vXT/QhsphsA==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/diagnostic': 2.12.0 + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/source-map': 2.1.1 + '@parcel/utils': 2.12.0 + browserslist: 4.22.3 + lightningcss: 1.24.0 + nullthrows: 1.1.1 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/optimizer-htmlnano@2.12.0(@parcel/core@2.12.0)(typescript@5.3.3): + resolution: + { + integrity: sha512-MfPMeCrT8FYiOrpFHVR+NcZQlXAptK2r4nGJjfT+ndPBhEEZp4yyL7n1y7HfX9geg5altc4WTb4Gug7rCoW8VQ==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + htmlnano: 2.1.0(svgo@2.8.0)(typescript@5.3.3) + nullthrows: 1.1.1 + posthtml: 0.16.6 + svgo: 2.8.0 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + - cssnano + - postcss + - purgecss + - relateurl + - srcset + - terser + - typescript + - uncss + dev: true + + /@parcel/optimizer-image@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-bo1O7raeAIbRU5nmNVtx8divLW9Xqn0c57GVNGeAK4mygnQoqHqRZ0mR9uboh64pxv6ijXZHPhKvU9HEpjPjBQ==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + peerDependencies: + '@parcel/core': ^2.12.0 + dependencies: + '@parcel/core': 2.12.0 + '@parcel/diagnostic': 2.12.0 + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/rust': 2.12.0 + '@parcel/utils': 2.12.0 + '@parcel/workers': 2.12.0(@parcel/core@2.12.0) + transitivePeerDependencies: + - '@swc/helpers' + dev: true + + /@parcel/optimizer-svgo@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-Kyli+ZZXnoonnbeRQdoWwee9Bk2jm/49xvnfb+2OO8NN0d41lblBoRhOyFiScRnJrw7eVl1Xrz7NTkXCIO7XFQ==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/diagnostic': 2.12.0 + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/utils': 2.12.0 + svgo: 2.8.0 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/optimizer-swc@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-iBi6LZB3lm6WmbXfzi8J3DCVPmn4FN2lw7DGXxUXu7MouDPVWfTsM6U/5TkSHJRNRogZ2gqy5q9g34NPxHbJcw==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/diagnostic': 2.12.0 + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/source-map': 2.1.1 + '@parcel/utils': 2.12.0 + '@swc/core': 1.7.6 + nullthrows: 1.1.1 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/package-manager@2.12.0(@parcel/core@2.12.0)(@swc/helpers@0.5.6): + resolution: + { + integrity: sha512-0nvAezcjPx9FT+hIL+LS1jb0aohwLZXct7jAh7i0MLMtehOi0z1Sau+QpgMlA9rfEZZ1LIeFdnZZwqSy7Ccspw==, + } + engines: { node: '>= 12.0.0' } + peerDependencies: + '@parcel/core': ^2.12.0 + dependencies: + '@parcel/core': 2.12.0 + '@parcel/diagnostic': 2.12.0 + '@parcel/fs': 2.12.0(@parcel/core@2.12.0) + '@parcel/logger': 2.12.0 + '@parcel/node-resolver-core': 3.3.0(@parcel/core@2.12.0) + '@parcel/types': 2.12.0(@parcel/core@2.12.0) + '@parcel/utils': 2.12.0 + '@parcel/workers': 2.12.0(@parcel/core@2.12.0) + '@swc/core': 1.3.107(@swc/helpers@0.5.6) + semver: 7.5.4 + transitivePeerDependencies: + - '@swc/helpers' + dev: true + + /@parcel/packager-css@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-j3a/ODciaNKD19IYdWJT+TP+tnhhn5koBGBWWtrKSu0UxWpnezIGZetit3eE+Y9+NTePalMkvpIlit2eDhvfJA==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/diagnostic': 2.12.0 + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/source-map': 2.1.1 + '@parcel/utils': 2.12.0 + lightningcss: 1.24.0 + nullthrows: 1.1.1 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/packager-html@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-PpvGB9hFFe+19NXGz2ApvPrkA9GwEqaDAninT+3pJD57OVBaxB8U+HN4a5LICKxjUppPPqmrLb6YPbD65IX4RA==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/types': 2.12.0(@parcel/core@2.12.0) + '@parcel/utils': 2.12.0 + nullthrows: 1.1.1 + posthtml: 0.16.6 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/packager-js@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-viMF+FszITRRr8+2iJyk+4ruGiL27Y6AF7hQ3xbJfzqnmbOhGFtLTQwuwhOLqN/mWR2VKdgbLpZSarWaO3yAMg==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/diagnostic': 2.12.0 + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/rust': 2.12.0 + '@parcel/source-map': 2.1.1 + '@parcel/types': 2.12.0(@parcel/core@2.12.0) + '@parcel/utils': 2.12.0 + globals: 13.24.0 + nullthrows: 1.1.1 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/packager-raw@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-tJZqFbHqP24aq1F+OojFbQIc09P/u8HAW5xfndCrFnXpW4wTgM3p03P0xfw3gnNq+TtxHJ8c3UFE5LnXNNKhYA==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/packager-svg@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-ldaGiacGb2lLqcXas97k8JiZRbAnNREmcvoY2W2dvW4loVuDT9B9fU777mbV6zODpcgcHWsLL3lYbJ5Lt3y9cg==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/types': 2.12.0(@parcel/core@2.12.0) + '@parcel/utils': 2.12.0 + posthtml: 0.16.6 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/packager-ts@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-8wR0BNN2NBD+IIU0tjioK+lRD4p2Qi/fKxDH5ixEW912tRV+Vd4kE8k++U6YQIpSlK4FRnjFod5zYYhNSLuiXg==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/packager-wasm@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-fYqZzIqO9fGYveeImzF8ll6KRo2LrOXfD+2Y5U3BiX/wp9wv17dz50QLDQm9hmTcKGWxK4yWqKQh+Evp/fae7A==, + } + engines: { node: '>=12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/plugin@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-nc/uRA8DiMoe4neBbzV6kDndh/58a4wQuGKw5oEoIwBCHUvE2W8ZFSu7ollSXUGRzfacTt4NdY8TwS73ScWZ+g==, + } + engines: { node: '>= 12.0.0' } + dependencies: + '@parcel/types': 2.12.0(@parcel/core@2.12.0) + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/plugin@2.12.0(@parcel/core@2.12.0)(@swc/helpers@0.5.6): + resolution: + { + integrity: sha512-nc/uRA8DiMoe4neBbzV6kDndh/58a4wQuGKw5oEoIwBCHUvE2W8ZFSu7ollSXUGRzfacTt4NdY8TwS73ScWZ+g==, + } + engines: { node: '>= 12.0.0' } + dependencies: + '@parcel/types': 2.12.0(@parcel/core@2.12.0)(@swc/helpers@0.5.6) + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/profiler@2.12.0: + resolution: + { + integrity: sha512-q53fvl5LDcFYzMUtSusUBZSjQrKjMlLEBgKeQHFwkimwR1mgoseaDBDuNz0XvmzDzF1UelJ02TUKCGacU8W2qA==, + } + engines: { node: '>= 12.0.0' } + dependencies: + '@parcel/diagnostic': 2.12.0 + '@parcel/events': 2.12.0 + chrome-trace-event: 1.0.3 + dev: true + + /@parcel/reporter-cli@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-TqKsH4GVOLPSCanZ6tcTPj+rdVHERnt5y4bwTM82cajM21bCX1Ruwp8xOKU+03091oV2pv5ieB18pJyRF7IpIw==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/types': 2.12.0(@parcel/core@2.12.0) + '@parcel/utils': 2.12.0 + chalk: 4.1.2 + term-size: 2.2.1 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/reporter-dev-server@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-tIcDqRvAPAttRlTV28dHcbWT5K2r/MBFks7nM4nrEDHWtnrCwimkDmZTc1kD8QOCCjGVwRHcQybpHvxfwol6GA==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/utils': 2.12.0 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/reporter-tracer@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-g8rlu9GxB8Ut/F8WGx4zidIPQ4pcYFjU9bZO+fyRIPrSUFH2bKijCnbZcr4ntqzDGx74hwD6cCG4DBoleq2UlQ==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/utils': 2.12.0 + chrome-trace-event: 1.0.3 + nullthrows: 1.1.1 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/resolver-default@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-uuhbajTax37TwCxu7V98JtRLiT6hzE4VYSu5B7Qkauy14/WFt2dz6GOUXPgVsED569/hkxebPx3KCMtZW6cHHA==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/node-resolver-core': 3.3.0(@parcel/core@2.12.0) + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/runtime-browser-hmr@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-4ZLp2FWyD32r0GlTulO3+jxgsA3oO1P1b5oO2IWuWilfhcJH5LTiazpL5YdusUjtNn9PGN6QLAWfxmzRIfM+Ow==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/utils': 2.12.0 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/runtime-js@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-sBerP32Z1crX5PfLNGDSXSdqzlllM++GVnVQVeM7DgMKS8JIFG3VLi28YkX+dYYGtPypm01JoIHCkvwiZEcQJg==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/diagnostic': 2.12.0 + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/utils': 2.12.0 + nullthrows: 1.1.1 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/runtime-react-refresh@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-SCHkcczJIDFTFdLTzrHTkQ0aTrX3xH6jrA4UsCBL6ji61+w+ohy4jEEe9qCgJVXhnJfGLE43HNXek+0MStX+Mw==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/utils': 2.12.0 + react-error-overlay: 6.0.9 + react-refresh: 0.9.0 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/runtime-service-worker@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-BXuMBsfiwpIEnssn+jqfC3jkgbS8oxeo3C7xhSQsuSv+AF2FwY3O3AO1c1RBskEW3XrBLNINOJujroNw80VTKA==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/utils': 2.12.0 + nullthrows: 1.1.1 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/rust@2.12.0: + resolution: + { + integrity: sha512-005cldMdFZFDPOjbDVEXcINQ3wT4vrxvSavRWI3Az0e3E18exO/x/mW9f648KtXugOXMAqCEqhFHcXECL9nmMw==, + } + engines: { node: '>= 12.0.0' } + dev: true + + /@parcel/source-map@2.1.1: + resolution: + { + integrity: sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==, + } + engines: { node: ^12.18.3 || >=14 } + dependencies: + detect-libc: 1.0.3 + dev: true + + /@parcel/transformer-babel@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-zQaBfOnf/l8rPxYGnsk/ufh/0EuqvmnxafjBIpKZ//j6rGylw5JCqXSb1QvvAqRYruKeccxGv7+HrxpqKU6V4A==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/diagnostic': 2.12.0 + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/source-map': 2.1.1 + '@parcel/utils': 2.12.0 + browserslist: 4.22.3 + json5: 2.2.3 + nullthrows: 1.1.1 + semver: 7.5.4 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/transformer-css@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-vXhOqoAlQGATYyQ433Z1DXKmiKmzOAUmKysbYH3FD+LKEKLMEl/pA14goqp00TW+A/EjtSKKyeMyHlMIIUqj4Q==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/diagnostic': 2.12.0 + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/source-map': 2.1.1 + '@parcel/utils': 2.12.0 + browserslist: 4.22.3 + lightningcss: 1.24.0 + nullthrows: 1.1.1 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/transformer-html@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-5jW4dFFBlYBvIQk4nrH62rfA/G/KzVzEDa6S+Nne0xXhglLjkm64Ci9b/d4tKZfuGWUbpm2ASAq8skti/nfpXw==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/diagnostic': 2.12.0 + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/rust': 2.12.0 + nullthrows: 1.1.1 + posthtml: 0.16.6 + posthtml-parser: 0.10.2 + posthtml-render: 3.0.0 + semver: 7.5.4 + srcset: 4.0.0 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/transformer-image@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-8hXrGm2IRII49R7lZ0RpmNk27EhcsH+uNKsvxuMpXPuEnWgC/ha/IrjaI29xCng1uGur74bJF43NUSQhR4aTdw==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + peerDependencies: + '@parcel/core': ^2.12.0 + dependencies: + '@parcel/core': 2.12.0 + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/utils': 2.12.0 + '@parcel/workers': 2.12.0(@parcel/core@2.12.0) + nullthrows: 1.1.1 + transitivePeerDependencies: + - '@swc/helpers' + dev: true + + /@parcel/transformer-js@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-OSZpOu+FGDbC/xivu24v092D9w6EGytB3vidwbdiJ2FaPgfV7rxS0WIUjH4I0OcvHAcitArRXL0a3+HrNTdQQw==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + peerDependencies: + '@parcel/core': ^2.12.0 + dependencies: + '@parcel/core': 2.12.0 + '@parcel/diagnostic': 2.12.0 + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0)(@swc/helpers@0.5.6) + '@parcel/rust': 2.12.0 + '@parcel/source-map': 2.1.1 + '@parcel/utils': 2.12.0 + '@parcel/workers': 2.12.0(@parcel/core@2.12.0) + '@swc/helpers': 0.5.6 + browserslist: 4.22.3 + nullthrows: 1.1.1 + regenerator-runtime: 0.13.11 + semver: 7.5.4 + dev: true + + /@parcel/transformer-json@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-Utv64GLRCQILK5r0KFs4o7I41ixMPllwOLOhkdjJKvf1hZmN6WqfOmB1YLbWS/y5Zb/iB52DU2pWZm96vLFQZQ==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + json5: 2.2.3 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/transformer-postcss@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-FZqn+oUtiLfPOn67EZxPpBkfdFiTnF4iwiXPqvst3XI8H+iC+yNgzmtJkunOOuylpYY6NOU5jT8d7saqWSDv2Q==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/diagnostic': 2.12.0 + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/rust': 2.12.0 + '@parcel/utils': 2.12.0 + clone: 2.1.2 + nullthrows: 1.1.1 + postcss-value-parser: 4.2.0 + semver: 7.5.4 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/transformer-posthtml@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-z6Z7rav/pcaWdeD+2sDUcd0mmNZRUvtHaUGa50Y2mr+poxrKilpsnFMSiWBT+oOqPt7j71jzDvrdnAF4XkCljg==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/utils': 2.12.0 + nullthrows: 1.1.1 + posthtml: 0.16.6 + posthtml-parser: 0.10.2 + posthtml-render: 3.0.0 + semver: 7.5.4 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/transformer-raw@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-Ht1fQvXxix0NncdnmnXZsa6hra20RXYh1VqhBYZLsDfkvGGFnXIgO03Jqn4Z8MkKoa0tiNbDhpKIeTjyclbBxQ==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/transformer-react-refresh-wrap@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-GE8gmP2AZtkpBIV5vSCVhewgOFRhqwdM5Q9jNPOY5PKcM3/Ff0qCqDiTzzGLhk0/VMBrdjssrfZkVx6S/lHdJw==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/utils': 2.12.0 + react-refresh: 0.9.0 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/transformer-svg@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-cZJqGRJ4JNdYcb+vj94J7PdOuTnwyy45dM9xqbIMH+HSiiIkfrMsdEwYft0GTyFTdsnf+hdHn3tau7Qa5hhX+A==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + dependencies: + '@parcel/diagnostic': 2.12.0 + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/rust': 2.12.0 + nullthrows: 1.1.1 + posthtml: 0.16.6 + posthtml-parser: 0.10.2 + posthtml-render: 3.0.0 + semver: 7.5.4 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/transformer-typescript-types@2.12.0(@parcel/core@2.12.0)(typescript@5.3.3): + resolution: + { + integrity: sha512-uxF4UBMYvbjiV3zHTWMrZX8cFD92VUvD3ArcGi5WEtuVROUm9Sc47o0mOzxKfMFlJu2KOfZVHYlzK9f/UKA2kQ==, + } + engines: { node: '>= 12.0.0', parcel: ^2.12.0 } + peerDependencies: + typescript: '>=3.0.0' + dependencies: + '@parcel/diagnostic': 2.12.0 + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) + '@parcel/source-map': 2.1.1 + '@parcel/ts-utils': 2.12.0(typescript@5.3.3) + '@parcel/utils': 2.12.0 + nullthrows: 1.1.1 + typescript: 5.3.3 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/ts-utils@2.12.0(typescript@5.3.3): + resolution: + { + integrity: sha512-zou+W6dcqnXXUOfN5zGM+ePIWbYOhGp8bVB2jICoNkoKmNAHd4l4zeHl5yQXnbZfynVw88cZVqxtXS8tYebelg==, + } + engines: { node: '>= 12.0.0' } + peerDependencies: + typescript: '>=3.0.0' + dependencies: + nullthrows: 1.1.1 + typescript: 5.3.3 + dev: true + + /@parcel/types@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-8zAFiYNCwNTQcglIObyNwKfRYQK5ELlL13GuBOrSMxueUiI5ylgsGbTS1N7J3dAGZixHO8KhHGv5a71FILn9rQ==, + } + dependencies: + '@parcel/cache': 2.12.0(@parcel/core@2.12.0) + '@parcel/diagnostic': 2.12.0 + '@parcel/fs': 2.12.0(@parcel/core@2.12.0) + '@parcel/package-manager': 2.12.0(@parcel/core@2.12.0)(@swc/helpers@0.5.6) + '@parcel/source-map': 2.1.1 + '@parcel/workers': 2.12.0(@parcel/core@2.12.0) + utility-types: 3.11.0 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/types@2.12.0(@parcel/core@2.12.0)(@swc/helpers@0.5.6): + resolution: + { + integrity: sha512-8zAFiYNCwNTQcglIObyNwKfRYQK5ELlL13GuBOrSMxueUiI5ylgsGbTS1N7J3dAGZixHO8KhHGv5a71FILn9rQ==, + } + dependencies: + '@parcel/cache': 2.12.0(@parcel/core@2.12.0) + '@parcel/diagnostic': 2.12.0 + '@parcel/fs': 2.12.0(@parcel/core@2.12.0) + '@parcel/package-manager': 2.12.0(@parcel/core@2.12.0)(@swc/helpers@0.5.6) + '@parcel/source-map': 2.1.1 + '@parcel/workers': 2.12.0(@parcel/core@2.12.0) + utility-types: 3.11.0 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + dev: true + + /@parcel/utils@2.12.0: + resolution: + { + integrity: sha512-z1JhLuZ8QmDaYoEIuUCVZlhcFrS7LMfHrb2OCRui5SQFntRWBH2fNM6H/fXXUkT9SkxcuFP2DUA6/m4+Gkz72g==, + } + engines: { node: '>= 12.0.0' } + 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.2 + nullthrows: 1.1.1 + dev: true + + /@parcel/watcher-android-arm64@2.4.1: + resolution: + { + integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==, + } + engines: { node: '>= 10.0.0' } + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true - /@babel/code-frame@7.23.5: - resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.23.4 - chalk: 2.4.2 - - /@babel/helper-module-imports@7.24.3: - resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.5 - dev: false - - /@babel/helper-string-parser@7.24.1: - resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} - engines: {node: '>=6.9.0'} - dev: false - - /@babel/helper-validator-identifier@7.22.20: - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} - engines: {node: '>=6.9.0'} - - /@babel/helper-validator-identifier@7.24.5: - resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} - engines: {node: '>=6.9.0'} - dev: false - - /@babel/highlight@7.23.4: - resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 - - /@babel/runtime@7.24.5: - resolution: {integrity: sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==} - engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.14.1 - dev: false - - /@babel/types@7.24.5: - resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.24.1 - '@babel/helper-validator-identifier': 7.24.5 - to-fast-properties: 2.0.0 - dev: false - - /@czi-sds/components@20.0.1(@emotion/core@11.0.0)(@emotion/css@11.11.2)(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/base@5.0.0-beta.40)(@mui/icons-material@5.15.15)(@mui/lab@5.0.0-alpha.170)(@mui/material@5.15.15)(react-dom@18.3.0)(react@18.3.0): - resolution: {integrity: sha512-vB3gGl+tzxDmV00J8ioLr/LIj1WU26448Pot9orgyGeZy+AaJM7WMT/qsSpPSCGEKLN5ykcIUBIDIGK1E/JZmQ==} - peerDependencies: - '@emotion/core': ^11.0.0 - '@emotion/css': ^11.11.2 - '@emotion/react': ^11.11.3 - '@emotion/styled': ^11.11.0 - '@mui/base': ^5.0.0-beta.30 - '@mui/icons-material': ^5.15.3 - '@mui/lab': ^5.0.0-alpha.159 - '@mui/material': ^5.15.3 - react: '>=17.0.1' - react-dom: '>=17.0.1' - dependencies: - '@emotion/core': 11.0.0 - '@emotion/css': 11.11.2 - '@emotion/react': 11.11.4(@types/react@18.3.0)(react@18.3.0) - '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.0)(react@18.3.0) - '@mui/base': 5.0.0-beta.40(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0) - '@mui/icons-material': 5.15.15(@mui/material@5.15.15)(@types/react@18.3.0)(react@18.3.0) - '@mui/lab': 5.0.0-alpha.170(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@5.15.15)(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0) - '@mui/material': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0) - react: 18.3.0 - react-dom: 18.3.0(react@18.3.0) - dev: false - - /@emotion/babel-plugin@11.11.0: - resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==} - dependencies: - '@babel/helper-module-imports': 7.24.3 - '@babel/runtime': 7.24.5 - '@emotion/hash': 0.9.1 - '@emotion/memoize': 0.8.1 - '@emotion/serialize': 1.1.4 - babel-plugin-macros: 3.1.0 - convert-source-map: 1.9.0 - escape-string-regexp: 4.0.0 - find-root: 1.1.0 - source-map: 0.5.7 - stylis: 4.2.0 - dev: false - - /@emotion/cache@11.11.0: - resolution: {integrity: sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==} - dependencies: - '@emotion/memoize': 0.8.1 - '@emotion/sheet': 1.2.2 - '@emotion/utils': 1.2.1 - '@emotion/weak-memoize': 0.3.1 - stylis: 4.2.0 - dev: false - - /@emotion/core@11.0.0: - resolution: {integrity: sha512-w4sE3AmHmyG6RDKf6mIbtHpgJUSJ2uGvPQb8VXFL7hFjMPibE8IiehG8cMX3Ztm4svfCQV6KqusQbeIOkurBcA==} - dev: false - - /@emotion/css@11.11.2: - resolution: {integrity: sha512-VJxe1ucoMYMS7DkiMdC2T7PWNbrEI0a39YRiyDvK2qq4lXwjRbVP/z4lpG+odCsRzadlR+1ywwrTzhdm5HNdew==} - dependencies: - '@emotion/babel-plugin': 11.11.0 - '@emotion/cache': 11.11.0 - '@emotion/serialize': 1.1.4 - '@emotion/sheet': 1.2.2 - '@emotion/utils': 1.2.1 - dev: false - - /@emotion/hash@0.9.1: - resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==} - dev: false - - /@emotion/is-prop-valid@1.2.2: - resolution: {integrity: sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==} - dependencies: - '@emotion/memoize': 0.8.1 - dev: false - - /@emotion/memoize@0.8.1: - resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} - dev: false - - /@emotion/react@11.11.4(@types/react@18.3.0)(react@18.3.0): - resolution: {integrity: sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==} - peerDependencies: - '@types/react': '*' - react: '>=16.8.0' - peerDependenciesMeta: - '@types/react': + /@parcel/watcher-darwin-arm64@2.4.1: + resolution: + { + integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==, + } + engines: { node: '>= 10.0.0' } + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true optional: true - dependencies: - '@babel/runtime': 7.24.5 - '@emotion/babel-plugin': 11.11.0 - '@emotion/cache': 11.11.0 - '@emotion/serialize': 1.1.4 - '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.0) - '@emotion/utils': 1.2.1 - '@emotion/weak-memoize': 0.3.1 - '@types/react': 18.3.0 - hoist-non-react-statics: 3.3.2 - react: 18.3.0 - dev: false - - /@emotion/serialize@1.1.4: - resolution: {integrity: sha512-RIN04MBT8g+FnDwgvIUi8czvr1LU1alUMI05LekWB5DGyTm8cCBMCRpq3GqaiyEDRptEXOyXnvZ58GZYu4kBxQ==} - dependencies: - '@emotion/hash': 0.9.1 - '@emotion/memoize': 0.8.1 - '@emotion/unitless': 0.8.1 - '@emotion/utils': 1.2.1 - csstype: 3.1.3 - dev: false - - /@emotion/sheet@1.2.2: - resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==} - dev: false - - /@emotion/styled@11.11.5(@emotion/react@11.11.4)(@types/react@18.3.0)(react@18.3.0): - resolution: {integrity: sha512-/ZjjnaNKvuMPxcIiUkf/9SHoG4Q196DRl1w82hQ3WCsjo1IUR8uaGWrC6a87CrYAW0Kb/pK7hk8BnLgLRi9KoQ==} - peerDependencies: - '@emotion/react': ^11.0.0-rc.0 - '@types/react': '*' - react: '>=16.8.0' - peerDependenciesMeta: - '@types/react': + + /@parcel/watcher-darwin-x64@2.4.1: + resolution: + { + integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==, + } + engines: { node: '>= 10.0.0' } + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-freebsd-x64@2.4.1: + resolution: + { + integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==, + } + engines: { node: '>= 10.0.0' } + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-linux-arm-glibc@2.4.1: + resolution: + { + integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==, + } + engines: { node: '>= 10.0.0' } + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-linux-arm64-glibc@2.4.1: + resolution: + { + integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==, + } + engines: { node: '>= 10.0.0' } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-linux-arm64-musl@2.4.1: + resolution: + { + integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==, + } + engines: { node: '>= 10.0.0' } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-linux-x64-glibc@2.4.1: + resolution: + { + integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==, + } + engines: { node: '>= 10.0.0' } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-linux-x64-musl@2.4.1: + resolution: + { + integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==, + } + engines: { node: '>= 10.0.0' } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-win32-arm64@2.4.1: + resolution: + { + integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==, + } + engines: { node: '>= 10.0.0' } + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-win32-ia32@2.4.1: + resolution: + { + integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==, + } + engines: { node: '>= 10.0.0' } + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-win32-x64@2.4.1: + resolution: + { + integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==, + } + engines: { node: '>= 10.0.0' } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher@2.4.1: + resolution: + { + integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==, + } + engines: { node: '>= 10.0.0' } + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.5 + node-addon-api: 7.1.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 + dev: true + + /@parcel/workers@2.12.0(@parcel/core@2.12.0): + resolution: + { + integrity: sha512-zv5We5Jmb+ZWXlU6A+AufyjY4oZckkxsZ8J4dvyWL0W8IQvGO1JB4FGeryyttzQv3RM3OxcN/BpTGPiDG6keBw==, + } + engines: { node: '>= 12.0.0' } + peerDependencies: + '@parcel/core': ^2.12.0 + dependencies: + '@parcel/core': 2.12.0 + '@parcel/diagnostic': 2.12.0 + '@parcel/logger': 2.12.0 + '@parcel/profiler': 2.12.0 + '@parcel/types': 2.12.0(@parcel/core@2.12.0) + '@parcel/utils': 2.12.0 + nullthrows: 1.1.1 + dev: true + + /@popperjs/core@2.11.8: + resolution: + { + integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==, + } + dev: false + + /@rollup/rollup-android-arm-eabi@4.14.1: + resolution: + { + integrity: sha512-fH8/o8nSUek8ceQnT7K4EQbSiV7jgkHq81m9lWZFIXjJ7lJzpWXbQFpT/Zh6OZYnpFykvzC3fbEvEAFZu03dPA==, + } + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.14.1: + resolution: + { + integrity: sha512-Y/9OHLjzkunF+KGEoJr3heiD5X9OLa8sbT1lm0NYeKyaM3oMhhQFvPB0bNZYJwlq93j8Z6wSxh9+cyKQaxS7PQ==, + } + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.14.1: + resolution: + { + integrity: sha512-+kecg3FY84WadgcuSVm6llrABOdQAEbNdnpi5X3UwWiFVhZIZvKgGrF7kmLguvxHNQy+UuRV66cLVl3S+Rkt+Q==, + } + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.14.1: + resolution: + { + integrity: sha512-2pYRzEjVqq2TB/UNv47BV/8vQiXkFGVmPFwJb+1E0IFFZbIX8/jo1olxqqMbo6xCXf8kabANhp5bzCij2tFLUA==, + } + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true optional: true - dependencies: - '@babel/runtime': 7.24.5 - '@emotion/babel-plugin': 11.11.0 - '@emotion/is-prop-valid': 1.2.2 - '@emotion/react': 11.11.4(@types/react@18.3.0)(react@18.3.0) - '@emotion/serialize': 1.1.4 - '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.0) - '@emotion/utils': 1.2.1 - '@types/react': 18.3.0 - react: 18.3.0 - dev: false - - /@emotion/unitless@0.8.1: - resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} - dev: false - - /@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.3.0): - resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==} - peerDependencies: - react: '>=16.8.0' - dependencies: - react: 18.3.0 - dev: false - - /@emotion/utils@1.2.1: - resolution: {integrity: sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==} - dev: false - - /@emotion/weak-memoize@0.3.1: - resolution: {integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==} - dev: false - - /@esbuild/aix-ppc64@0.19.12: - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - requiresBuild: true - dev: true - optional: true - - /@esbuild/aix-ppc64@0.21.5: - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm64@0.19.12: - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm64@0.21.5: - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm@0.19.12: - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm@0.21.5: - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-x64@0.19.12: - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-x64@0.21.5: - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-arm64@0.19.12: - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-arm64@0.21.5: - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-x64@0.19.12: - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-x64@0.21.5: - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-arm64@0.19.12: - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-arm64@0.21.5: - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-x64@0.19.12: - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-x64@0.21.5: - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm64@0.19.12: - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm64@0.21.5: - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm@0.19.12: - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm@0.21.5: - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ia32@0.19.12: - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ia32@0.21.5: - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64@0.19.12: - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64@0.21.5: - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-mips64el@0.19.12: - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-mips64el@0.21.5: - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ppc64@0.19.12: - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ppc64@0.21.5: - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-riscv64@0.19.12: - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-riscv64@0.21.5: - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-s390x@0.19.12: - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-s390x@0.21.5: - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-x64@0.19.12: - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-x64@0.21.5: - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/netbsd-x64@0.19.12: - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/netbsd-x64@0.21.5: - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/openbsd-x64@0.19.12: - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/openbsd-x64@0.21.5: - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/sunos-x64@0.19.12: - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /@esbuild/sunos-x64@0.21.5: - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-arm64@0.19.12: - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-arm64@0.21.5: - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-ia32@0.19.12: - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-ia32@0.21.5: - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-x64@0.19.12: - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-x64@0.21.5: - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@floating-ui/core@1.6.1: - resolution: {integrity: sha512-42UH54oPZHPdRHdw6BgoBD6cg/eVTmVrFcgeRDM3jbO7uxSoipVcmcIGFcA5jmOHO5apcyvBhkSKES3fQJnu7A==} - dependencies: - '@floating-ui/utils': 0.2.2 - dev: false - - /@floating-ui/dom@1.6.4: - resolution: {integrity: sha512-0G8R+zOvQsAG1pg2Q99P21jiqxqGBW1iRe/iXHsBRBxnpXKFI8QwbB4x5KmYLggNO5m34IQgOIu9SCRfR/WWiQ==} - dependencies: - '@floating-ui/core': 1.6.1 - '@floating-ui/utils': 0.2.2 - dev: false - - /@floating-ui/react-dom@2.0.9(react-dom@18.3.0)(react@18.3.0): - resolution: {integrity: sha512-q0umO0+LQK4+p6aGyvzASqKbKOJcAHJ7ycE9CuUvfx3s9zTHWmGJTPOIlM/hmSBfUfg/XfY5YhLBLR/LHwShQQ==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - dependencies: - '@floating-ui/dom': 1.6.4 - react: 18.3.0 - react-dom: 18.3.0(react@18.3.0) - dev: false - - /@floating-ui/utils@0.2.2: - resolution: {integrity: sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==} - dev: false - - /@jest/schemas@29.6.3: - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@sinclair/typebox': 0.27.8 - dev: true - - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: true - - /@lezer/common@1.2.1: - resolution: {integrity: sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==} - dev: true - - /@lezer/lr@1.4.0: - resolution: {integrity: sha512-Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg==} - dependencies: - '@lezer/common': 1.2.1 - dev: true - - /@lmdb/lmdb-darwin-arm64@2.8.5: - resolution: {integrity: sha512-KPDeVScZgA1oq0CiPBcOa3kHIqU+pTOwRFDIhxvmf8CTNvqdZQYp5cCKW0bUk69VygB2PuTiINFWbY78aR2pQw==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@lmdb/lmdb-darwin-x64@2.8.5: - resolution: {integrity: sha512-w/sLhN4T7MW1nB3R/U8WK5BgQLz904wh+/SmA2jD8NnF7BLLoUgflCNxOeSPOWp8geP6nP/+VjWzZVip7rZ1ug==} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@lmdb/lmdb-linux-arm64@2.8.5: - resolution: {integrity: sha512-vtbZRHH5UDlL01TT5jB576Zox3+hdyogvpcbvVJlmU5PdL3c5V7cj1EODdh1CHPksRl+cws/58ugEHi8bcj4Ww==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@lmdb/lmdb-linux-arm@2.8.5: - resolution: {integrity: sha512-c0TGMbm2M55pwTDIfkDLB6BpIsgxV4PjYck2HiOX+cy/JWiBXz32lYbarPqejKs9Flm7YVAKSILUducU9g2RVg==} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@lmdb/lmdb-linux-x64@2.8.5: - resolution: {integrity: sha512-Xkc8IUx9aEhP0zvgeKy7IQ3ReX2N8N1L0WPcQwnZweWmOuKfwpS3GRIYqLtK5za/w3E60zhFfNdS+3pBZPytqQ==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@lmdb/lmdb-win32-x64@2.8.5: - resolution: {integrity: sha512-4wvrf5BgnR8RpogHhtpCPJMKBmvyZPhhUtEwMJbXh0ni2BucpfF07jlmyM11zRqQ2XIq6PbC2j7W7UCCcm1rRQ==} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@mischnic/json-sourcemap@0.1.1: - resolution: {integrity: sha512-iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w==} - engines: {node: '>=12.0.0'} - dependencies: - '@lezer/common': 1.2.1 - '@lezer/lr': 1.4.0 - json5: 2.2.3 - dev: true - - /@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.2: - resolution: {integrity: sha512-9bfjwDxIDWmmOKusUcqdS4Rw+SETlp9Dy39Xui9BEGEk19dDwH0jhipwFzEff/pFg95NKymc6TOTbRKcWeRqyQ==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.2: - resolution: {integrity: sha512-lwriRAHm1Yg4iDf23Oxm9n/t5Zpw1lVnxYU3HnJPTi2lJRkKTrps1KVgvL6m7WvmhYVt/FIsssWay+k45QHeuw==} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.2: - resolution: {integrity: sha512-FU20Bo66/f7He9Fp9sP2zaJ1Q8L9uLPZQDub/WlUip78JlPeMbVL8546HbZfcW9LNciEXc8d+tThSJjSC+tmsg==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@msgpackr-extract/msgpackr-extract-linux-arm@3.0.2: - resolution: {integrity: sha512-MOI9Dlfrpi2Cuc7i5dXdxPbFIgbDBGgKR5F2yWEa6FVEtSWncfVNKW5AKjImAQ6CZlBK9tympdsZJ2xThBiWWA==} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@msgpackr-extract/msgpackr-extract-linux-x64@3.0.2: - resolution: {integrity: sha512-gsWNDCklNy7Ajk0vBBf9jEx04RUxuDQfBse918Ww+Qb9HCPoGzS+XJTLe96iN3BVK7grnLiYghP/M4L8VsaHeA==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@msgpackr-extract/msgpackr-extract-win32-x64@3.0.2: - resolution: {integrity: sha512-O+6Gs8UeDbyFpbSh2CPEz/UOrrdWPTBYNblZK5CxxLisYt4kGX3Sc+czffFonyjiGSq3jWLwJS/CCJc7tBr4sQ==} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@mui/base@5.0.0-beta.40(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0): - resolution: {integrity: sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': + + /@rollup/rollup-linux-arm-gnueabihf@4.14.1: + resolution: + { + integrity: sha512-mS6wQ6Do6/wmrF9aTFVpIJ3/IDXhg1EZcQFYHZLHqw6AzMBjTHWnCG35HxSqUNphh0EHqSM6wRTT8HsL1C0x5g==, + } + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true optional: true - dependencies: - '@babel/runtime': 7.24.5 - '@floating-ui/react-dom': 2.0.9(react-dom@18.3.0)(react@18.3.0) - '@mui/types': 7.2.14(@types/react@18.3.0) - '@mui/utils': 5.15.14(@types/react@18.3.0)(react@18.3.0) - '@popperjs/core': 2.11.8 - '@types/react': 18.3.0 - clsx: 2.1.1 - prop-types: 15.8.1 - react: 18.3.0 - react-dom: 18.3.0(react@18.3.0) - dev: false - - /@mui/core-downloads-tracker@5.15.15: - resolution: {integrity: sha512-aXnw29OWQ6I5A47iuWEI6qSSUfH6G/aCsW9KmW3LiFqr7uXZBK4Ks+z8G+qeIub8k0T5CMqlT2q0L+ZJTMrqpg==} - dev: false - - /@mui/icons-material@5.15.15(@mui/material@5.15.15)(@types/react@18.3.0)(react@18.3.0): - resolution: {integrity: sha512-kkeU/pe+hABcYDH6Uqy8RmIsr2S/y5bP2rp+Gat4CcRjCcVne6KudS1NrZQhUCRysrTDCAhcbcf9gt+/+pGO2g==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@mui/material': ^5.0.0 - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': + + /@rollup/rollup-linux-arm64-gnu@4.14.1: + resolution: + { + integrity: sha512-p9rGKYkHdFMzhckOTFubfxgyIO1vw//7IIjBBRVzyZebWlzRLeNhqxuSaZ7kCEKVkm/kuC9fVRW9HkC/zNRG2w==, + } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true optional: true - dependencies: - '@babel/runtime': 7.24.5 - '@mui/material': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0) - '@types/react': 18.3.0 - react: 18.3.0 - dev: false - - /@mui/lab@5.0.0-alpha.170(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@5.15.15)(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0): - resolution: {integrity: sha512-0bDVECGmrNjd3+bLdcLiwYZ0O4HP5j5WSQm5DV6iA/Z9kr8O6AnvZ1bv9ImQbbX7Gj3pX4o43EKwCutj3EQxQg==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@emotion/react': ^11.5.0 - '@emotion/styled': ^11.3.0 - '@mui/material': '>=5.15.0' - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@emotion/react': + + /@rollup/rollup-linux-arm64-musl@4.14.1: + resolution: + { + integrity: sha512-nDY6Yz5xS/Y4M2i9JLQd3Rofh5OR8Bn8qe3Mv/qCVpHFlwtZSBYSPaU4mrGazWkXrdQ98GB//H0BirGR/SKFSw==, + } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@emotion/styled': + + /@rollup/rollup-linux-powerpc64le-gnu@4.14.1: + resolution: + { + integrity: sha512-im7HE4VBL+aDswvcmfx88Mp1soqL9OBsdDBU8NqDEYtkri0qV0THhQsvZtZeNNlLeCUQ16PZyv7cqutjDF35qw==, + } + cpu: [ppc64le] + os: [linux] + requiresBuild: true + dev: true optional: true - '@types/react': + + /@rollup/rollup-linux-riscv64-gnu@4.14.1: + resolution: + { + integrity: sha512-RWdiHuAxWmzPJgaHJdpvUUlDz8sdQz4P2uv367T2JocdDa98iRw2UjIJ4QxSyt077mXZT2X6pKfT2iYtVEvOFw==, + } + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true optional: true - dependencies: - '@babel/runtime': 7.24.5 - '@emotion/react': 11.11.4(@types/react@18.3.0)(react@18.3.0) - '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.0)(react@18.3.0) - '@mui/base': 5.0.0-beta.40(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0) - '@mui/material': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0) - '@mui/system': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.0)(react@18.3.0) - '@mui/types': 7.2.14(@types/react@18.3.0) - '@mui/utils': 5.15.14(@types/react@18.3.0)(react@18.3.0) - '@types/react': 18.3.0 - clsx: 2.1.1 - prop-types: 15.8.1 - react: 18.3.0 - react-dom: 18.3.0(react@18.3.0) - dev: false - - /@mui/material@5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0): - resolution: {integrity: sha512-3zvWayJ+E1kzoIsvwyEvkTUKVKt1AjchFFns+JtluHCuvxgKcLSRJTADw37k0doaRtVAsyh8bz9Afqzv+KYrIA==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@emotion/react': ^11.5.0 - '@emotion/styled': ^11.3.0 - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@emotion/react': + + /@rollup/rollup-linux-s390x-gnu@4.14.1: + resolution: + { + integrity: sha512-VMgaGQ5zRX6ZqV/fas65/sUGc9cPmsntq2FiGmayW9KMNfWVG/j0BAqImvU4KTeOOgYSf1F+k6at1UfNONuNjA==, + } + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.14.1: + resolution: + { + integrity: sha512-9Q7DGjZN+hTdJomaQ3Iub4m6VPu1r94bmK2z3UeWP3dGUecRC54tmVu9vKHTm1bOt3ASoYtEz6JSRLFzrysKlA==, + } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@emotion/styled': + + /@rollup/rollup-linux-x64-musl@4.14.1: + resolution: + { + integrity: sha512-JNEG/Ti55413SsreTguSx0LOVKX902OfXIKVg+TCXO6Gjans/k9O6ww9q3oLGjNDaTLxM+IHFMeXy/0RXL5R/g==, + } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@types/react': + + /@rollup/rollup-win32-arm64-msvc@4.14.1: + resolution: + { + integrity: sha512-ryS22I9y0mumlLNwDFYZRDFLwWh3aKaC72CWjFcFvxK0U6v/mOkM5Up1bTbCRAhv3kEIwW2ajROegCIQViUCeA==, + } + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true optional: true - dependencies: - '@babel/runtime': 7.24.5 - '@emotion/react': 11.11.4(@types/react@18.3.0)(react@18.3.0) - '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.0)(react@18.3.0) - '@mui/base': 5.0.0-beta.40(@types/react@18.3.0)(react-dom@18.3.0)(react@18.3.0) - '@mui/core-downloads-tracker': 5.15.15 - '@mui/system': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.0)(react@18.3.0) - '@mui/types': 7.2.14(@types/react@18.3.0) - '@mui/utils': 5.15.14(@types/react@18.3.0)(react@18.3.0) - '@types/react': 18.3.0 - '@types/react-transition-group': 4.4.10 - clsx: 2.1.1 - csstype: 3.1.3 - prop-types: 15.8.1 - react: 18.3.0 - react-dom: 18.3.0(react@18.3.0) - react-is: 18.2.0 - react-transition-group: 4.4.5(react-dom@18.3.0)(react@18.3.0) - dev: false - - /@mui/private-theming@5.15.14(@types/react@18.3.0)(react@18.3.0): - resolution: {integrity: sha512-UH0EiZckOWcxiXLX3Jbb0K7rC8mxTr9L9l6QhOZxYc4r8FHUkefltV9VDGLrzCaWh30SQiJvAEd7djX3XXY6Xw==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': + + /@rollup/rollup-win32-ia32-msvc@4.14.1: + resolution: + { + integrity: sha512-TdloItiGk+T0mTxKx7Hp279xy30LspMso+GzQvV2maYePMAWdmrzqSNZhUpPj3CGw12aGj57I026PgLCTu8CGg==, + } + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true optional: true - dependencies: - '@babel/runtime': 7.24.5 - '@mui/utils': 5.15.14(@types/react@18.3.0)(react@18.3.0) - '@types/react': 18.3.0 - prop-types: 15.8.1 - react: 18.3.0 - dev: false - - /@mui/styled-engine@5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.0): - resolution: {integrity: sha512-RILkuVD8gY6PvjZjqnWhz8fu68dVkqhM5+jYWfB5yhlSQKg+2rHkmEwm75XIeAqI3qwOndK6zELK5H6Zxn4NHw==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@emotion/react': ^11.4.1 - '@emotion/styled': ^11.3.0 - react: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@emotion/react': + + /@rollup/rollup-win32-x64-msvc@4.14.1: + resolution: + { + integrity: sha512-wQGI+LY/Py20zdUPq+XCem7JcPOyzIJBm3dli+56DJsQOHbnXZFEwgmnC6el1TPAfC8lBT3m+z69RmLykNUbew==, + } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true optional: true - '@emotion/styled': + + /@sinclair/typebox@0.27.8: + resolution: + { + integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==, + } + dev: true + + /@swc/core-darwin-arm64@1.3.107: + resolution: + { + integrity: sha512-47tD/5vSXWxPd0j/ZllyQUg4bqalbQTsmqSw0J4dDdS82MWqCAwUErUrAZPRjBkjNQ6Kmrf5rpCWaGTtPw+ngw==, + } + engines: { node: '>=10' } + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true optional: true - dependencies: - '@babel/runtime': 7.24.5 - '@emotion/cache': 11.11.0 - '@emotion/react': 11.11.4(@types/react@18.3.0)(react@18.3.0) - '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.0)(react@18.3.0) - csstype: 3.1.3 - prop-types: 15.8.1 - react: 18.3.0 - dev: false - - /@mui/system@5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.0)(react@18.3.0): - resolution: {integrity: sha512-aulox6N1dnu5PABsfxVGOZffDVmlxPOVgj56HrUnJE8MCSh8lOvvkd47cebIVQQYAjpwieXQXiDPj5pwM40jTQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@emotion/react': ^11.5.0 - '@emotion/styled': ^11.3.0 - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@emotion/react': + + /@swc/core-darwin-arm64@1.7.6: + resolution: + { + integrity: sha512-6lYHey84ZzsdtC7UuPheM4Rm0Inzxm6Sb8U6dmKc4eCx8JL0LfWG4LC5RsdsrTxnjTsbriWlnhZBffh8ijUHIQ==, + } + engines: { node: '>=10' } + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true optional: true - '@emotion/styled': + + /@swc/core-darwin-x64@1.3.107: + resolution: + { + integrity: sha512-hwiLJ2ulNkBGAh1m1eTfeY1417OAYbRGcb/iGsJ+LuVLvKAhU/itzsl535CvcwAlt2LayeCFfcI8gdeOLeZa9A==, + } + engines: { node: '>=10' } + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true optional: true - '@types/react': + + /@swc/core-darwin-x64@1.7.6: + resolution: + { + integrity: sha512-Fyl+8aH9O5rpx4O7r2KnsPpoi32iWoKOYKiipeTbGjQ/E95tNPxbmsz4yqE8Ovldcga60IPJ5OKQA3HWRiuzdw==, + } + engines: { node: '>=10' } + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true optional: true - dependencies: - '@babel/runtime': 7.24.5 - '@emotion/react': 11.11.4(@types/react@18.3.0)(react@18.3.0) - '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.0)(react@18.3.0) - '@mui/private-theming': 5.15.14(@types/react@18.3.0)(react@18.3.0) - '@mui/styled-engine': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.0) - '@mui/types': 7.2.14(@types/react@18.3.0) - '@mui/utils': 5.15.14(@types/react@18.3.0)(react@18.3.0) - '@types/react': 18.3.0 - clsx: 2.1.1 - csstype: 3.1.3 - prop-types: 15.8.1 - react: 18.3.0 - dev: false - - /@mui/types@7.2.14(@types/react@18.3.0): - resolution: {integrity: sha512-MZsBZ4q4HfzBsywtXgM1Ksj6HDThtiwmOKUXH1pKYISI9gAVXCNHNpo7TlGoGrBaYWZTdNoirIN7JsQcQUjmQQ==} - peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': + + /@swc/core-linux-arm-gnueabihf@1.3.107: + resolution: + { + integrity: sha512-I2wzcC0KXqh0OwymCmYwNRgZ9nxX7DWnOOStJXV3pS0uB83TXAkmqd7wvMBuIl9qu4Hfomi9aDM7IlEEn9tumQ==, + } + engines: { node: '>=10' } + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true optional: true - dependencies: - '@types/react': 18.3.0 - dev: false - - /@mui/utils@5.15.14(@types/react@18.3.0)(react@18.3.0): - resolution: {integrity: sha512-0lF/7Hh/ezDv5X7Pry6enMsbYyGKjADzvHyo3Qrc/SSlTsQ1VkbDMbH0m2t3OR5iIVLwMoxwM7yGd+6FCMtTFA==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': + + /@swc/core-linux-arm-gnueabihf@1.7.6: + resolution: + { + integrity: sha512-2WxYTqFaOx48GKC2cbO1/IntA+w+kfCFy436Ij7qRqqtV/WAvTM9TC1OmiFbqq436rSot52qYmX8fkwdB5UcLQ==, + } + engines: { node: '>=10' } + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true optional: true - dependencies: - '@babel/runtime': 7.24.5 - '@types/prop-types': 15.7.12 - '@types/react': 18.3.0 - prop-types: 15.8.1 - react: 18.3.0 - react-is: 18.2.0 - dev: false - - /@parcel/bundler-default@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-3ybN74oYNMKyjD6V20c9Gerdbh7teeNvVMwIoHIQMzuIFT6IGX53PyOLlOKRLbjxMc0TMimQQxIt2eQqxR5LsA==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/diagnostic': 2.12.0 - '@parcel/graph': 3.2.0 - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/rust': 2.12.0 - '@parcel/utils': 2.12.0 - nullthrows: 1.1.1 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/cache@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-FX5ZpTEkxvq/yvWklRHDESVRz+c7sLTXgFuzz6uEnBcXV38j6dMSikflNpHA6q/L4GKkCqRywm9R6XQwhwIMyw==} - engines: {node: '>= 12.0.0'} - peerDependencies: - '@parcel/core': ^2.12.0 - dependencies: - '@parcel/core': 2.12.0 - '@parcel/fs': 2.12.0(@parcel/core@2.12.0) - '@parcel/logger': 2.12.0 - '@parcel/utils': 2.12.0 - lmdb: 2.8.5 - transitivePeerDependencies: - - '@swc/helpers' - dev: true - - /@parcel/codeframe@2.12.0: - resolution: {integrity: sha512-v2VmneILFiHZJTxPiR7GEF1wey1/IXPdZMcUlNXBiPZyWDfcuNgGGVQkx/xW561rULLIvDPharOMdxz5oHOKQg==} - engines: {node: '>= 12.0.0'} - dependencies: - chalk: 4.1.2 - dev: true - - /@parcel/compressor-raw@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-h41Q3X7ZAQ9wbQ2csP8QGrwepasLZdXiuEdpUryDce6rF9ZiHoJ97MRpdLxOhOPyASTw/xDgE1xyaPQr0Q3f5A==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/config-default@2.12.0(@parcel/core@2.12.0)(typescript@5.3.3): - resolution: {integrity: sha512-dPNe2n9eEsKRc1soWIY0yToMUPirPIa2QhxcCB3Z5RjpDGIXm0pds+BaiqY6uGLEEzsjhRO0ujd4v2Rmm0vuFg==} - peerDependencies: - '@parcel/core': ^2.12.0 - dependencies: - '@parcel/bundler-default': 2.12.0(@parcel/core@2.12.0) - '@parcel/compressor-raw': 2.12.0(@parcel/core@2.12.0) - '@parcel/core': 2.12.0 - '@parcel/namer-default': 2.12.0(@parcel/core@2.12.0) - '@parcel/optimizer-css': 2.12.0(@parcel/core@2.12.0) - '@parcel/optimizer-htmlnano': 2.12.0(@parcel/core@2.12.0)(typescript@5.3.3) - '@parcel/optimizer-image': 2.12.0(@parcel/core@2.12.0) - '@parcel/optimizer-svgo': 2.12.0(@parcel/core@2.12.0) - '@parcel/optimizer-swc': 2.12.0(@parcel/core@2.12.0) - '@parcel/packager-css': 2.12.0(@parcel/core@2.12.0) - '@parcel/packager-html': 2.12.0(@parcel/core@2.12.0) - '@parcel/packager-js': 2.12.0(@parcel/core@2.12.0) - '@parcel/packager-raw': 2.12.0(@parcel/core@2.12.0) - '@parcel/packager-svg': 2.12.0(@parcel/core@2.12.0) - '@parcel/packager-wasm': 2.12.0(@parcel/core@2.12.0) - '@parcel/reporter-dev-server': 2.12.0(@parcel/core@2.12.0) - '@parcel/resolver-default': 2.12.0(@parcel/core@2.12.0) - '@parcel/runtime-browser-hmr': 2.12.0(@parcel/core@2.12.0) - '@parcel/runtime-js': 2.12.0(@parcel/core@2.12.0) - '@parcel/runtime-react-refresh': 2.12.0(@parcel/core@2.12.0) - '@parcel/runtime-service-worker': 2.12.0(@parcel/core@2.12.0) - '@parcel/transformer-babel': 2.12.0(@parcel/core@2.12.0) - '@parcel/transformer-css': 2.12.0(@parcel/core@2.12.0) - '@parcel/transformer-html': 2.12.0(@parcel/core@2.12.0) - '@parcel/transformer-image': 2.12.0(@parcel/core@2.12.0) - '@parcel/transformer-js': 2.12.0(@parcel/core@2.12.0) - '@parcel/transformer-json': 2.12.0(@parcel/core@2.12.0) - '@parcel/transformer-postcss': 2.12.0(@parcel/core@2.12.0) - '@parcel/transformer-posthtml': 2.12.0(@parcel/core@2.12.0) - '@parcel/transformer-raw': 2.12.0(@parcel/core@2.12.0) - '@parcel/transformer-react-refresh-wrap': 2.12.0(@parcel/core@2.12.0) - '@parcel/transformer-svg': 2.12.0(@parcel/core@2.12.0) - transitivePeerDependencies: - - '@swc/helpers' - - cssnano - - postcss - - purgecss - - relateurl - - srcset - - terser - - typescript - - uncss - dev: true - - /@parcel/core@2.12.0: - resolution: {integrity: sha512-s+6pwEj+GfKf7vqGUzN9iSEPueUssCCQrCBUlcAfKrJe0a22hTUCjewpB0I7lNrCIULt8dkndD+sMdOrXsRl6Q==} - engines: {node: '>= 12.0.0'} - dependencies: - '@mischnic/json-sourcemap': 0.1.1 - '@parcel/cache': 2.12.0(@parcel/core@2.12.0) - '@parcel/diagnostic': 2.12.0 - '@parcel/events': 2.12.0 - '@parcel/fs': 2.12.0(@parcel/core@2.12.0) - '@parcel/graph': 3.2.0 - '@parcel/logger': 2.12.0 - '@parcel/package-manager': 2.12.0(@parcel/core@2.12.0)(@swc/helpers@0.5.6) - '@parcel/plugin': 2.12.0(@parcel/core@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/core@2.12.0) - '@parcel/utils': 2.12.0 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0) - abortcontroller-polyfill: 1.7.5 - base-x: 3.0.9 - browserslist: 4.22.3 - clone: 2.1.2 - dotenv: 7.0.0 - dotenv-expand: 5.1.0 - json5: 2.2.3 - msgpackr: 1.10.1 - nullthrows: 1.1.1 - semver: 7.5.4 - transitivePeerDependencies: - - '@swc/helpers' - dev: true - - /@parcel/diagnostic@2.12.0: - resolution: {integrity: sha512-8f1NOsSFK+F4AwFCKynyIu9Kr/uWHC+SywAv4oS6Bv3Acig0gtwUjugk0C9UaB8ztBZiW5TQZhw+uPZn9T/lJA==} - engines: {node: '>= 12.0.0'} - dependencies: - '@mischnic/json-sourcemap': 0.1.1 - nullthrows: 1.1.1 - dev: true - - /@parcel/events@2.12.0: - resolution: {integrity: sha512-nmAAEIKLjW1kB2cUbCYSmZOGbnGj8wCzhqnK727zCCWaA25ogzAtt657GPOeFyqW77KyosU728Tl63Fc8hphIA==} - engines: {node: '>= 12.0.0'} - dev: true - - /@parcel/fs@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-NnFkuvou1YBtPOhTdZr44WN7I60cGyly2wpHzqRl62yhObyi1KvW0SjwOMa0QGNcBOIzp4G0CapoZ93hD0RG5Q==} - engines: {node: '>= 12.0.0'} - peerDependencies: - '@parcel/core': ^2.12.0 - dependencies: - '@parcel/core': 2.12.0 - '@parcel/rust': 2.12.0 - '@parcel/types': 2.12.0(@parcel/core@2.12.0) - '@parcel/utils': 2.12.0 - '@parcel/watcher': 2.4.1 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0) - transitivePeerDependencies: - - '@swc/helpers' - dev: true - - /@parcel/graph@3.2.0: - resolution: {integrity: sha512-xlrmCPqy58D4Fg5umV7bpwDx5Vyt7MlnQPxW68vae5+BA4GSWetfZt+Cs5dtotMG2oCHzZxhIPt7YZ7NRyQzLA==} - engines: {node: '>= 12.0.0'} - dependencies: - nullthrows: 1.1.1 - dev: true - - /@parcel/logger@2.12.0: - resolution: {integrity: sha512-cJ7Paqa7/9VJ7C+KwgJlwMqTQBOjjn71FbKk0G07hydUEBISU2aDfmc/52o60ErL9l+vXB26zTrIBanbxS8rVg==} - engines: {node: '>= 12.0.0'} - dependencies: - '@parcel/diagnostic': 2.12.0 - '@parcel/events': 2.12.0 - dev: true - - /@parcel/markdown-ansi@2.12.0: - resolution: {integrity: sha512-WZz3rzL8k0H3WR4qTHX6Ic8DlEs17keO9gtD4MNGyMNQbqQEvQ61lWJaIH0nAtgEetu0SOITiVqdZrb8zx/M7w==} - engines: {node: '>= 12.0.0'} - dependencies: - chalk: 4.1.2 - dev: true - - /@parcel/namer-default@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-9DNKPDHWgMnMtqqZIMiEj/R9PNWW16lpnlHjwK3ciRlMPgjPJ8+UNc255teZODhX0T17GOzPdGbU/O/xbxVPzA==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/diagnostic': 2.12.0 - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - nullthrows: 1.1.1 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/node-resolver-core@3.3.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-rhPW9DYPEIqQBSlYzz3S0AjXxjN6Ub2yS6tzzsW/4S3Gpsgk/uEq4ZfxPvoPf/6TgZndVxmKwpmxaKtGMmf3cA==} - engines: {node: '>= 12.0.0'} - dependencies: - '@mischnic/json-sourcemap': 0.1.1 - '@parcel/diagnostic': 2.12.0 - '@parcel/fs': 2.12.0(@parcel/core@2.12.0) - '@parcel/rust': 2.12.0 - '@parcel/utils': 2.12.0 - nullthrows: 1.1.1 - semver: 7.5.4 - transitivePeerDependencies: - - '@parcel/core' - dev: true - - /@parcel/optimizer-css@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-ifbcC97fRzpruTjaa8axIFeX4MjjSIlQfem3EJug3L2AVqQUXnM1XO8L0NaXGNLTW2qnh1ZjIJ7vXT/QhsphsA==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/diagnostic': 2.12.0 - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/source-map': 2.1.1 - '@parcel/utils': 2.12.0 - browserslist: 4.22.3 - lightningcss: 1.24.0 - nullthrows: 1.1.1 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/optimizer-htmlnano@2.12.0(@parcel/core@2.12.0)(typescript@5.3.3): - resolution: {integrity: sha512-MfPMeCrT8FYiOrpFHVR+NcZQlXAptK2r4nGJjfT+ndPBhEEZp4yyL7n1y7HfX9geg5altc4WTb4Gug7rCoW8VQ==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - htmlnano: 2.1.0(svgo@2.8.0)(typescript@5.3.3) - nullthrows: 1.1.1 - posthtml: 0.16.6 - svgo: 2.8.0 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - - cssnano - - postcss - - purgecss - - relateurl - - srcset - - terser - - typescript - - uncss - dev: true - - /@parcel/optimizer-image@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-bo1O7raeAIbRU5nmNVtx8divLW9Xqn0c57GVNGeAK4mygnQoqHqRZ0mR9uboh64pxv6ijXZHPhKvU9HEpjPjBQ==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - peerDependencies: - '@parcel/core': ^2.12.0 - dependencies: - '@parcel/core': 2.12.0 - '@parcel/diagnostic': 2.12.0 - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/rust': 2.12.0 - '@parcel/utils': 2.12.0 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0) - transitivePeerDependencies: - - '@swc/helpers' - dev: true - - /@parcel/optimizer-svgo@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-Kyli+ZZXnoonnbeRQdoWwee9Bk2jm/49xvnfb+2OO8NN0d41lblBoRhOyFiScRnJrw7eVl1Xrz7NTkXCIO7XFQ==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/diagnostic': 2.12.0 - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/utils': 2.12.0 - svgo: 2.8.0 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/optimizer-swc@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-iBi6LZB3lm6WmbXfzi8J3DCVPmn4FN2lw7DGXxUXu7MouDPVWfTsM6U/5TkSHJRNRogZ2gqy5q9g34NPxHbJcw==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/diagnostic': 2.12.0 - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/source-map': 2.1.1 - '@parcel/utils': 2.12.0 - '@swc/core': 1.7.6 - nullthrows: 1.1.1 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/package-manager@2.12.0(@parcel/core@2.12.0)(@swc/helpers@0.5.6): - resolution: {integrity: sha512-0nvAezcjPx9FT+hIL+LS1jb0aohwLZXct7jAh7i0MLMtehOi0z1Sau+QpgMlA9rfEZZ1LIeFdnZZwqSy7Ccspw==} - engines: {node: '>= 12.0.0'} - peerDependencies: - '@parcel/core': ^2.12.0 - dependencies: - '@parcel/core': 2.12.0 - '@parcel/diagnostic': 2.12.0 - '@parcel/fs': 2.12.0(@parcel/core@2.12.0) - '@parcel/logger': 2.12.0 - '@parcel/node-resolver-core': 3.3.0(@parcel/core@2.12.0) - '@parcel/types': 2.12.0(@parcel/core@2.12.0) - '@parcel/utils': 2.12.0 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0) - '@swc/core': 1.3.107(@swc/helpers@0.5.6) - semver: 7.5.4 - transitivePeerDependencies: - - '@swc/helpers' - dev: true - - /@parcel/packager-css@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-j3a/ODciaNKD19IYdWJT+TP+tnhhn5koBGBWWtrKSu0UxWpnezIGZetit3eE+Y9+NTePalMkvpIlit2eDhvfJA==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/diagnostic': 2.12.0 - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/source-map': 2.1.1 - '@parcel/utils': 2.12.0 - lightningcss: 1.24.0 - nullthrows: 1.1.1 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/packager-html@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-PpvGB9hFFe+19NXGz2ApvPrkA9GwEqaDAninT+3pJD57OVBaxB8U+HN4a5LICKxjUppPPqmrLb6YPbD65IX4RA==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/types': 2.12.0(@parcel/core@2.12.0) - '@parcel/utils': 2.12.0 - nullthrows: 1.1.1 - posthtml: 0.16.6 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/packager-js@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-viMF+FszITRRr8+2iJyk+4ruGiL27Y6AF7hQ3xbJfzqnmbOhGFtLTQwuwhOLqN/mWR2VKdgbLpZSarWaO3yAMg==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/diagnostic': 2.12.0 - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/rust': 2.12.0 - '@parcel/source-map': 2.1.1 - '@parcel/types': 2.12.0(@parcel/core@2.12.0) - '@parcel/utils': 2.12.0 - globals: 13.24.0 - nullthrows: 1.1.1 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/packager-raw@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-tJZqFbHqP24aq1F+OojFbQIc09P/u8HAW5xfndCrFnXpW4wTgM3p03P0xfw3gnNq+TtxHJ8c3UFE5LnXNNKhYA==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/packager-svg@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-ldaGiacGb2lLqcXas97k8JiZRbAnNREmcvoY2W2dvW4loVuDT9B9fU777mbV6zODpcgcHWsLL3lYbJ5Lt3y9cg==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/types': 2.12.0(@parcel/core@2.12.0) - '@parcel/utils': 2.12.0 - posthtml: 0.16.6 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/packager-ts@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-8wR0BNN2NBD+IIU0tjioK+lRD4p2Qi/fKxDH5ixEW912tRV+Vd4kE8k++U6YQIpSlK4FRnjFod5zYYhNSLuiXg==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/packager-wasm@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-fYqZzIqO9fGYveeImzF8ll6KRo2LrOXfD+2Y5U3BiX/wp9wv17dz50QLDQm9hmTcKGWxK4yWqKQh+Evp/fae7A==} - engines: {node: '>=12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/plugin@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-nc/uRA8DiMoe4neBbzV6kDndh/58a4wQuGKw5oEoIwBCHUvE2W8ZFSu7ollSXUGRzfacTt4NdY8TwS73ScWZ+g==} - engines: {node: '>= 12.0.0'} - dependencies: - '@parcel/types': 2.12.0(@parcel/core@2.12.0) - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/plugin@2.12.0(@parcel/core@2.12.0)(@swc/helpers@0.5.6): - resolution: {integrity: sha512-nc/uRA8DiMoe4neBbzV6kDndh/58a4wQuGKw5oEoIwBCHUvE2W8ZFSu7ollSXUGRzfacTt4NdY8TwS73ScWZ+g==} - engines: {node: '>= 12.0.0'} - dependencies: - '@parcel/types': 2.12.0(@parcel/core@2.12.0)(@swc/helpers@0.5.6) - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/profiler@2.12.0: - resolution: {integrity: sha512-q53fvl5LDcFYzMUtSusUBZSjQrKjMlLEBgKeQHFwkimwR1mgoseaDBDuNz0XvmzDzF1UelJ02TUKCGacU8W2qA==} - engines: {node: '>= 12.0.0'} - dependencies: - '@parcel/diagnostic': 2.12.0 - '@parcel/events': 2.12.0 - chrome-trace-event: 1.0.3 - dev: true - - /@parcel/reporter-cli@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-TqKsH4GVOLPSCanZ6tcTPj+rdVHERnt5y4bwTM82cajM21bCX1Ruwp8xOKU+03091oV2pv5ieB18pJyRF7IpIw==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/types': 2.12.0(@parcel/core@2.12.0) - '@parcel/utils': 2.12.0 - chalk: 4.1.2 - term-size: 2.2.1 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/reporter-dev-server@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-tIcDqRvAPAttRlTV28dHcbWT5K2r/MBFks7nM4nrEDHWtnrCwimkDmZTc1kD8QOCCjGVwRHcQybpHvxfwol6GA==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/utils': 2.12.0 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/reporter-tracer@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-g8rlu9GxB8Ut/F8WGx4zidIPQ4pcYFjU9bZO+fyRIPrSUFH2bKijCnbZcr4ntqzDGx74hwD6cCG4DBoleq2UlQ==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/utils': 2.12.0 - chrome-trace-event: 1.0.3 - nullthrows: 1.1.1 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/resolver-default@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-uuhbajTax37TwCxu7V98JtRLiT6hzE4VYSu5B7Qkauy14/WFt2dz6GOUXPgVsED569/hkxebPx3KCMtZW6cHHA==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/node-resolver-core': 3.3.0(@parcel/core@2.12.0) - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/runtime-browser-hmr@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-4ZLp2FWyD32r0GlTulO3+jxgsA3oO1P1b5oO2IWuWilfhcJH5LTiazpL5YdusUjtNn9PGN6QLAWfxmzRIfM+Ow==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/utils': 2.12.0 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/runtime-js@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-sBerP32Z1crX5PfLNGDSXSdqzlllM++GVnVQVeM7DgMKS8JIFG3VLi28YkX+dYYGtPypm01JoIHCkvwiZEcQJg==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/diagnostic': 2.12.0 - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/utils': 2.12.0 - nullthrows: 1.1.1 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/runtime-react-refresh@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-SCHkcczJIDFTFdLTzrHTkQ0aTrX3xH6jrA4UsCBL6ji61+w+ohy4jEEe9qCgJVXhnJfGLE43HNXek+0MStX+Mw==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/utils': 2.12.0 - react-error-overlay: 6.0.9 - react-refresh: 0.9.0 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/runtime-service-worker@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-BXuMBsfiwpIEnssn+jqfC3jkgbS8oxeo3C7xhSQsuSv+AF2FwY3O3AO1c1RBskEW3XrBLNINOJujroNw80VTKA==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/utils': 2.12.0 - nullthrows: 1.1.1 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/rust@2.12.0: - resolution: {integrity: sha512-005cldMdFZFDPOjbDVEXcINQ3wT4vrxvSavRWI3Az0e3E18exO/x/mW9f648KtXugOXMAqCEqhFHcXECL9nmMw==} - engines: {node: '>= 12.0.0'} - dev: true - - /@parcel/source-map@2.1.1: - resolution: {integrity: sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==} - engines: {node: ^12.18.3 || >=14} - dependencies: - detect-libc: 1.0.3 - dev: true - - /@parcel/transformer-babel@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-zQaBfOnf/l8rPxYGnsk/ufh/0EuqvmnxafjBIpKZ//j6rGylw5JCqXSb1QvvAqRYruKeccxGv7+HrxpqKU6V4A==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/diagnostic': 2.12.0 - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/source-map': 2.1.1 - '@parcel/utils': 2.12.0 - browserslist: 4.22.3 - json5: 2.2.3 - nullthrows: 1.1.1 - semver: 7.5.4 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/transformer-css@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-vXhOqoAlQGATYyQ433Z1DXKmiKmzOAUmKysbYH3FD+LKEKLMEl/pA14goqp00TW+A/EjtSKKyeMyHlMIIUqj4Q==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/diagnostic': 2.12.0 - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/source-map': 2.1.1 - '@parcel/utils': 2.12.0 - browserslist: 4.22.3 - lightningcss: 1.24.0 - nullthrows: 1.1.1 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/transformer-html@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-5jW4dFFBlYBvIQk4nrH62rfA/G/KzVzEDa6S+Nne0xXhglLjkm64Ci9b/d4tKZfuGWUbpm2ASAq8skti/nfpXw==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/diagnostic': 2.12.0 - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/rust': 2.12.0 - nullthrows: 1.1.1 - posthtml: 0.16.6 - posthtml-parser: 0.10.2 - posthtml-render: 3.0.0 - semver: 7.5.4 - srcset: 4.0.0 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/transformer-image@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-8hXrGm2IRII49R7lZ0RpmNk27EhcsH+uNKsvxuMpXPuEnWgC/ha/IrjaI29xCng1uGur74bJF43NUSQhR4aTdw==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - peerDependencies: - '@parcel/core': ^2.12.0 - dependencies: - '@parcel/core': 2.12.0 - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/utils': 2.12.0 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0) - nullthrows: 1.1.1 - transitivePeerDependencies: - - '@swc/helpers' - dev: true - - /@parcel/transformer-js@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-OSZpOu+FGDbC/xivu24v092D9w6EGytB3vidwbdiJ2FaPgfV7rxS0WIUjH4I0OcvHAcitArRXL0a3+HrNTdQQw==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - peerDependencies: - '@parcel/core': ^2.12.0 - dependencies: - '@parcel/core': 2.12.0 - '@parcel/diagnostic': 2.12.0 - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0)(@swc/helpers@0.5.6) - '@parcel/rust': 2.12.0 - '@parcel/source-map': 2.1.1 - '@parcel/utils': 2.12.0 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0) - '@swc/helpers': 0.5.6 - browserslist: 4.22.3 - nullthrows: 1.1.1 - regenerator-runtime: 0.13.11 - semver: 7.5.4 - dev: true - - /@parcel/transformer-json@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-Utv64GLRCQILK5r0KFs4o7I41ixMPllwOLOhkdjJKvf1hZmN6WqfOmB1YLbWS/y5Zb/iB52DU2pWZm96vLFQZQ==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - json5: 2.2.3 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/transformer-postcss@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-FZqn+oUtiLfPOn67EZxPpBkfdFiTnF4iwiXPqvst3XI8H+iC+yNgzmtJkunOOuylpYY6NOU5jT8d7saqWSDv2Q==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/diagnostic': 2.12.0 - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/rust': 2.12.0 - '@parcel/utils': 2.12.0 - clone: 2.1.2 - nullthrows: 1.1.1 - postcss-value-parser: 4.2.0 - semver: 7.5.4 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/transformer-posthtml@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-z6Z7rav/pcaWdeD+2sDUcd0mmNZRUvtHaUGa50Y2mr+poxrKilpsnFMSiWBT+oOqPt7j71jzDvrdnAF4XkCljg==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/utils': 2.12.0 - nullthrows: 1.1.1 - posthtml: 0.16.6 - posthtml-parser: 0.10.2 - posthtml-render: 3.0.0 - semver: 7.5.4 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/transformer-raw@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-Ht1fQvXxix0NncdnmnXZsa6hra20RXYh1VqhBYZLsDfkvGGFnXIgO03Jqn4Z8MkKoa0tiNbDhpKIeTjyclbBxQ==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/transformer-react-refresh-wrap@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-GE8gmP2AZtkpBIV5vSCVhewgOFRhqwdM5Q9jNPOY5PKcM3/Ff0qCqDiTzzGLhk0/VMBrdjssrfZkVx6S/lHdJw==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/utils': 2.12.0 - react-refresh: 0.9.0 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/transformer-svg@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-cZJqGRJ4JNdYcb+vj94J7PdOuTnwyy45dM9xqbIMH+HSiiIkfrMsdEwYft0GTyFTdsnf+hdHn3tau7Qa5hhX+A==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - dependencies: - '@parcel/diagnostic': 2.12.0 - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/rust': 2.12.0 - nullthrows: 1.1.1 - posthtml: 0.16.6 - posthtml-parser: 0.10.2 - posthtml-render: 3.0.0 - semver: 7.5.4 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/transformer-typescript-types@2.12.0(@parcel/core@2.12.0)(typescript@5.3.3): - resolution: {integrity: sha512-uxF4UBMYvbjiV3zHTWMrZX8cFD92VUvD3ArcGi5WEtuVROUm9Sc47o0mOzxKfMFlJu2KOfZVHYlzK9f/UKA2kQ==} - engines: {node: '>= 12.0.0', parcel: ^2.12.0} - peerDependencies: - typescript: '>=3.0.0' - dependencies: - '@parcel/diagnostic': 2.12.0 - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0) - '@parcel/source-map': 2.1.1 - '@parcel/ts-utils': 2.12.0(typescript@5.3.3) - '@parcel/utils': 2.12.0 - nullthrows: 1.1.1 - typescript: 5.3.3 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/ts-utils@2.12.0(typescript@5.3.3): - resolution: {integrity: sha512-zou+W6dcqnXXUOfN5zGM+ePIWbYOhGp8bVB2jICoNkoKmNAHd4l4zeHl5yQXnbZfynVw88cZVqxtXS8tYebelg==} - engines: {node: '>= 12.0.0'} - peerDependencies: - typescript: '>=3.0.0' - dependencies: - nullthrows: 1.1.1 - typescript: 5.3.3 - dev: true - - /@parcel/types@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-8zAFiYNCwNTQcglIObyNwKfRYQK5ELlL13GuBOrSMxueUiI5ylgsGbTS1N7J3dAGZixHO8KhHGv5a71FILn9rQ==} - dependencies: - '@parcel/cache': 2.12.0(@parcel/core@2.12.0) - '@parcel/diagnostic': 2.12.0 - '@parcel/fs': 2.12.0(@parcel/core@2.12.0) - '@parcel/package-manager': 2.12.0(@parcel/core@2.12.0)(@swc/helpers@0.5.6) - '@parcel/source-map': 2.1.1 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0) - utility-types: 3.11.0 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/types@2.12.0(@parcel/core@2.12.0)(@swc/helpers@0.5.6): - resolution: {integrity: sha512-8zAFiYNCwNTQcglIObyNwKfRYQK5ELlL13GuBOrSMxueUiI5ylgsGbTS1N7J3dAGZixHO8KhHGv5a71FILn9rQ==} - dependencies: - '@parcel/cache': 2.12.0(@parcel/core@2.12.0) - '@parcel/diagnostic': 2.12.0 - '@parcel/fs': 2.12.0(@parcel/core@2.12.0) - '@parcel/package-manager': 2.12.0(@parcel/core@2.12.0)(@swc/helpers@0.5.6) - '@parcel/source-map': 2.1.1 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0) - utility-types: 3.11.0 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - dev: true - - /@parcel/utils@2.12.0: - resolution: {integrity: sha512-z1JhLuZ8QmDaYoEIuUCVZlhcFrS7LMfHrb2OCRui5SQFntRWBH2fNM6H/fXXUkT9SkxcuFP2DUA6/m4+Gkz72g==} - engines: {node: '>= 12.0.0'} - 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.2 - nullthrows: 1.1.1 - dev: true - - /@parcel/watcher-android-arm64@2.4.1: - resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-darwin-arm64@2.4.1: - resolution: {integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-darwin-x64@2.4.1: - resolution: {integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-freebsd-x64@2.4.1: - resolution: {integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-linux-arm-glibc@2.4.1: - resolution: {integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-linux-arm64-glibc@2.4.1: - resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-linux-arm64-musl@2.4.1: - resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-linux-x64-glibc@2.4.1: - resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-linux-x64-musl@2.4.1: - resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-win32-arm64@2.4.1: - resolution: {integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-win32-ia32@2.4.1: - resolution: {integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==} - engines: {node: '>= 10.0.0'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-win32-x64@2.4.1: - resolution: {integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher@2.4.1: - resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==} - engines: {node: '>= 10.0.0'} - dependencies: - detect-libc: 1.0.3 - is-glob: 4.0.3 - micromatch: 4.0.5 - node-addon-api: 7.1.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 - dev: true - - /@parcel/workers@2.12.0(@parcel/core@2.12.0): - resolution: {integrity: sha512-zv5We5Jmb+ZWXlU6A+AufyjY4oZckkxsZ8J4dvyWL0W8IQvGO1JB4FGeryyttzQv3RM3OxcN/BpTGPiDG6keBw==} - engines: {node: '>= 12.0.0'} - peerDependencies: - '@parcel/core': ^2.12.0 - dependencies: - '@parcel/core': 2.12.0 - '@parcel/diagnostic': 2.12.0 - '@parcel/logger': 2.12.0 - '@parcel/profiler': 2.12.0 - '@parcel/types': 2.12.0(@parcel/core@2.12.0) - '@parcel/utils': 2.12.0 - nullthrows: 1.1.1 - dev: true - - /@popperjs/core@2.11.8: - resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - dev: false - - /@rollup/rollup-android-arm-eabi@4.14.1: - resolution: {integrity: sha512-fH8/o8nSUek8ceQnT7K4EQbSiV7jgkHq81m9lWZFIXjJ7lJzpWXbQFpT/Zh6OZYnpFykvzC3fbEvEAFZu03dPA==} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-android-arm64@4.14.1: - resolution: {integrity: sha512-Y/9OHLjzkunF+KGEoJr3heiD5X9OLa8sbT1lm0NYeKyaM3oMhhQFvPB0bNZYJwlq93j8Z6wSxh9+cyKQaxS7PQ==} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-darwin-arm64@4.14.1: - resolution: {integrity: sha512-+kecg3FY84WadgcuSVm6llrABOdQAEbNdnpi5X3UwWiFVhZIZvKgGrF7kmLguvxHNQy+UuRV66cLVl3S+Rkt+Q==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-darwin-x64@4.14.1: - resolution: {integrity: sha512-2pYRzEjVqq2TB/UNv47BV/8vQiXkFGVmPFwJb+1E0IFFZbIX8/jo1olxqqMbo6xCXf8kabANhp5bzCij2tFLUA==} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm-gnueabihf@4.14.1: - resolution: {integrity: sha512-mS6wQ6Do6/wmrF9aTFVpIJ3/IDXhg1EZcQFYHZLHqw6AzMBjTHWnCG35HxSqUNphh0EHqSM6wRTT8HsL1C0x5g==} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm64-gnu@4.14.1: - resolution: {integrity: sha512-p9rGKYkHdFMzhckOTFubfxgyIO1vw//7IIjBBRVzyZebWlzRLeNhqxuSaZ7kCEKVkm/kuC9fVRW9HkC/zNRG2w==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm64-musl@4.14.1: - resolution: {integrity: sha512-nDY6Yz5xS/Y4M2i9JLQd3Rofh5OR8Bn8qe3Mv/qCVpHFlwtZSBYSPaU4mrGazWkXrdQ98GB//H0BirGR/SKFSw==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-powerpc64le-gnu@4.14.1: - resolution: {integrity: sha512-im7HE4VBL+aDswvcmfx88Mp1soqL9OBsdDBU8NqDEYtkri0qV0THhQsvZtZeNNlLeCUQ16PZyv7cqutjDF35qw==} - cpu: [ppc64le] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-riscv64-gnu@4.14.1: - resolution: {integrity: sha512-RWdiHuAxWmzPJgaHJdpvUUlDz8sdQz4P2uv367T2JocdDa98iRw2UjIJ4QxSyt077mXZT2X6pKfT2iYtVEvOFw==} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-s390x-gnu@4.14.1: - resolution: {integrity: sha512-VMgaGQ5zRX6ZqV/fas65/sUGc9cPmsntq2FiGmayW9KMNfWVG/j0BAqImvU4KTeOOgYSf1F+k6at1UfNONuNjA==} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-x64-gnu@4.14.1: - resolution: {integrity: sha512-9Q7DGjZN+hTdJomaQ3Iub4m6VPu1r94bmK2z3UeWP3dGUecRC54tmVu9vKHTm1bOt3ASoYtEz6JSRLFzrysKlA==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-x64-musl@4.14.1: - resolution: {integrity: sha512-JNEG/Ti55413SsreTguSx0LOVKX902OfXIKVg+TCXO6Gjans/k9O6ww9q3oLGjNDaTLxM+IHFMeXy/0RXL5R/g==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-arm64-msvc@4.14.1: - resolution: {integrity: sha512-ryS22I9y0mumlLNwDFYZRDFLwWh3aKaC72CWjFcFvxK0U6v/mOkM5Up1bTbCRAhv3kEIwW2ajROegCIQViUCeA==} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-ia32-msvc@4.14.1: - resolution: {integrity: sha512-TdloItiGk+T0mTxKx7Hp279xy30LspMso+GzQvV2maYePMAWdmrzqSNZhUpPj3CGw12aGj57I026PgLCTu8CGg==} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-x64-msvc@4.14.1: - resolution: {integrity: sha512-wQGI+LY/Py20zdUPq+XCem7JcPOyzIJBm3dli+56DJsQOHbnXZFEwgmnC6el1TPAfC8lBT3m+z69RmLykNUbew==} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@sinclair/typebox@0.27.8: - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - dev: true - - /@swc/core-darwin-arm64@1.3.107: - resolution: {integrity: sha512-47tD/5vSXWxPd0j/ZllyQUg4bqalbQTsmqSw0J4dDdS82MWqCAwUErUrAZPRjBkjNQ6Kmrf5rpCWaGTtPw+ngw==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@swc/core-darwin-arm64@1.7.6: - resolution: {integrity: sha512-6lYHey84ZzsdtC7UuPheM4Rm0Inzxm6Sb8U6dmKc4eCx8JL0LfWG4LC5RsdsrTxnjTsbriWlnhZBffh8ijUHIQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@swc/core-darwin-x64@1.3.107: - resolution: {integrity: sha512-hwiLJ2ulNkBGAh1m1eTfeY1417OAYbRGcb/iGsJ+LuVLvKAhU/itzsl535CvcwAlt2LayeCFfcI8gdeOLeZa9A==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@swc/core-darwin-x64@1.7.6: - resolution: {integrity: sha512-Fyl+8aH9O5rpx4O7r2KnsPpoi32iWoKOYKiipeTbGjQ/E95tNPxbmsz4yqE8Ovldcga60IPJ5OKQA3HWRiuzdw==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-arm-gnueabihf@1.3.107: - resolution: {integrity: sha512-I2wzcC0KXqh0OwymCmYwNRgZ9nxX7DWnOOStJXV3pS0uB83TXAkmqd7wvMBuIl9qu4Hfomi9aDM7IlEEn9tumQ==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-arm-gnueabihf@1.7.6: - resolution: {integrity: sha512-2WxYTqFaOx48GKC2cbO1/IntA+w+kfCFy436Ij7qRqqtV/WAvTM9TC1OmiFbqq436rSot52qYmX8fkwdB5UcLQ==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-arm64-gnu@1.3.107: - resolution: {integrity: sha512-HWgnn7JORYlOYnGsdunpSF8A+BCZKPLzLtEUA27/M/ZuANcMZabKL9Zurt7XQXq888uJFAt98Gy+59PU90aHKg==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-arm64-gnu@1.7.6: - resolution: {integrity: sha512-TBEGMSe0LhvPe4S7E68c7VzgT3OMu4VTmBLS7B2aHv4v8uZO92Khpp7L0WqgYU1y5eMjk+XLDLi4kokiNHv/Hg==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-arm64-musl@1.3.107: - resolution: {integrity: sha512-vfPF74cWfAm8hyhS8yvYI94ucMHIo8xIYU+oFOW9uvDlGQRgnUf/6DEVbLyt/3yfX5723Ln57U8uiMALbX5Pyw==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-arm64-musl@1.7.6: - resolution: {integrity: sha512-QI8QGL0HGT42tj7F1A+YAzhGkJjUcvvTfI1e2m704W0Enl2/UIK9v5D1zvQzYwusRyKuaQfbeBRYDh0NcLOGLg==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-x64-gnu@1.3.107: - resolution: {integrity: sha512-uBVNhIg0ip8rH9OnOsCARUFZ3Mq3tbPHxtmWk9uAa5u8jQwGWeBx5+nTHpDOVd3YxKb6+5xDEI/edeeLpha/9g==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-x64-gnu@1.7.6: - resolution: {integrity: sha512-61AYVzhjuNQAVIKKWOJu3H0/pFD28RYJGxnGg3YMhvRLRyuWNyY5Nyyj2WkKcz/ON+g38Arlz00NT1LDIViRLg==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-x64-musl@1.3.107: - resolution: {integrity: sha512-mvACkUvzSIB12q1H5JtabWATbk3AG+pQgXEN95AmEX2ZA5gbP9+B+mijsg7Sd/3tboHr7ZHLz/q3SHTvdFJrEw==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-x64-musl@1.7.6: - resolution: {integrity: sha512-hQFznpfLK8XajfAAN9Cjs0w/aVmO7iu9VZvInyrTCRcPqxV5O+rvrhRxKvC1LRMZXr5M6JRSRtepp5w+TK4kAw==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-arm64-msvc@1.3.107: - resolution: {integrity: sha512-J3P14Ngy/1qtapzbguEH41kY109t6DFxfbK4Ntz9dOWNuVY3o9/RTB841ctnJk0ZHEG+BjfCJjsD2n8H5HcaOA==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-arm64-msvc@1.7.6: - resolution: {integrity: sha512-Aqsd9afykVMuekzjm4X4TDqwxmG4CrzoOSFe0hZrn9SMio72l5eAPnMtYoe5LsIqtjV8MNprLfXaNbjHjTegmA==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-ia32-msvc@1.3.107: - resolution: {integrity: sha512-ZBUtgyjTHlz8TPJh7kfwwwFma+ktr6OccB1oXC8fMSopD0AxVnQasgun3l3099wIsAB9eEsJDQ/3lDkOLs1gBA==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-ia32-msvc@1.7.6: - resolution: {integrity: sha512-9h0hYnOeRVNeQgHQTvD1Im67faNSSzBZ7Adtxyu9urNLfBTJilMllFd2QuGHlKW5+uaT6ZH7ZWDb+c/enx7Lcg==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-x64-msvc@1.3.107: - resolution: {integrity: sha512-Eyzo2XRqWOxqhE1gk9h7LWmUf4Bp4Xn2Ttb0ayAXFp6YSTxQIThXcT9kipXZqcpxcmDwoq8iWbbf2P8XL743EA==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-x64-msvc@1.7.6: - resolution: {integrity: sha512-izeoB8glCSe6IIDQmrVm6bvR9muk9TeKgmtY7b6l1BwL4BFnTUk4dMmpbntT90bEVQn3JPCaPtUG4HfL8VuyuA==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core@1.3.107(@swc/helpers@0.5.6): - resolution: {integrity: sha512-zKhqDyFcTsyLIYK1iEmavljZnf4CCor5pF52UzLAz4B6Nu/4GLU+2LQVAf+oRHjusG39PTPjd2AlRT3f3QWfsQ==} - engines: {node: '>=10'} - requiresBuild: true - peerDependencies: - '@swc/helpers': ^0.5.0 - peerDependenciesMeta: - '@swc/helpers': + + /@swc/core-linux-arm64-gnu@1.3.107: + resolution: + { + integrity: sha512-HWgnn7JORYlOYnGsdunpSF8A+BCZKPLzLtEUA27/M/ZuANcMZabKL9Zurt7XQXq888uJFAt98Gy+59PU90aHKg==, + } + engines: { node: '>=10' } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true optional: true - dependencies: - '@swc/counter': 0.1.2 - '@swc/helpers': 0.5.6 - '@swc/types': 0.1.5 - optionalDependencies: - '@swc/core-darwin-arm64': 1.3.107 - '@swc/core-darwin-x64': 1.3.107 - '@swc/core-linux-arm-gnueabihf': 1.3.107 - '@swc/core-linux-arm64-gnu': 1.3.107 - '@swc/core-linux-arm64-musl': 1.3.107 - '@swc/core-linux-x64-gnu': 1.3.107 - '@swc/core-linux-x64-musl': 1.3.107 - '@swc/core-win32-arm64-msvc': 1.3.107 - '@swc/core-win32-ia32-msvc': 1.3.107 - '@swc/core-win32-x64-msvc': 1.3.107 - dev: true - - /@swc/core@1.7.6: - resolution: {integrity: sha512-FZxyao9eQks1MRmUshgsZTmlg/HB2oXK5fghkoWJm/1CU2q2kaJlVDll2as5j+rmWiwkp0Gidlq8wlXcEEAO+g==} - engines: {node: '>=10'} - requiresBuild: true - peerDependencies: - '@swc/helpers': '*' - peerDependenciesMeta: - '@swc/helpers': + + /@swc/core-linux-arm64-gnu@1.7.6: + resolution: + { + integrity: sha512-TBEGMSe0LhvPe4S7E68c7VzgT3OMu4VTmBLS7B2aHv4v8uZO92Khpp7L0WqgYU1y5eMjk+XLDLi4kokiNHv/Hg==, + } + engines: { node: '>=10' } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true optional: true - dependencies: - '@swc/counter': 0.1.3 - '@swc/types': 0.1.12 - optionalDependencies: - '@swc/core-darwin-arm64': 1.7.6 - '@swc/core-darwin-x64': 1.7.6 - '@swc/core-linux-arm-gnueabihf': 1.7.6 - '@swc/core-linux-arm64-gnu': 1.7.6 - '@swc/core-linux-arm64-musl': 1.7.6 - '@swc/core-linux-x64-gnu': 1.7.6 - '@swc/core-linux-x64-musl': 1.7.6 - '@swc/core-win32-arm64-msvc': 1.7.6 - '@swc/core-win32-ia32-msvc': 1.7.6 - '@swc/core-win32-x64-msvc': 1.7.6 - dev: true - - /@swc/counter@0.1.2: - resolution: {integrity: sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==} - dev: true - - /@swc/counter@0.1.3: - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - dev: true - - /@swc/helpers@0.5.6: - resolution: {integrity: sha512-aYX01Ke9hunpoCexYAgQucEpARGQ5w/cqHFrIR+e9gdKb1QWTsVJuTJ2ozQzIAxLyRQe/m+2RqzkyOOGiMKRQA==} - dependencies: - tslib: 2.6.2 - dev: true - - /@swc/types@0.1.12: - resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} - dependencies: - '@swc/counter': 0.1.3 - dev: true - - /@swc/types@0.1.5: - resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==} - dev: true - - /@trysound/sax@0.2.0: - resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} - engines: {node: '>=10.13.0'} - dev: true - - /@types/estree@1.0.5: - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - dev: true - - /@types/file-saver@2.0.7: - resolution: {integrity: sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==} - dev: true - - /@types/lodash@4.14.202: - resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==} - - /@types/node@22.1.0: - resolution: {integrity: sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==} - dependencies: - undici-types: 6.13.0 - dev: true - - /@types/parse-json@4.0.2: - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - dev: false - - /@types/prop-types@15.7.12: - resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} - - /@types/react-dom@18.3.0: - resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} - dependencies: - '@types/react': 18.3.0 - dev: true - - /@types/react-transition-group@4.4.10: - resolution: {integrity: sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==} - dependencies: - '@types/react': 18.3.0 - dev: false - - /@types/react@18.3.0: - resolution: {integrity: sha512-DiUcKjzE6soLyln8NNZmyhcQjVv+WsUIFSqetMN0p8927OztKT4VTfFTqsbAi5oAGIcgOmOajlfBqyptDDjZRw==} - dependencies: - '@types/prop-types': 15.7.12 - csstype: 3.1.3 - - /@vitejs/plugin-react-swc@3.7.0(vite@5.3.5): - resolution: {integrity: sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==} - peerDependencies: - vite: ^4 || ^5 - dependencies: - '@swc/core': 1.7.6 - vite: 5.3.5(@types/node@22.1.0) - transitivePeerDependencies: - - '@swc/helpers' - dev: true - - /@vitest/expect@1.4.0: - resolution: {integrity: sha512-Jths0sWCJZ8BxjKe+p+eKsoqev1/T8lYcrjavEaz8auEJ4jAVY0GwW3JKmdVU4mmNPLPHixh4GNXP7GFtAiDHA==} - dependencies: - '@vitest/spy': 1.4.0 - '@vitest/utils': 1.4.0 - chai: 4.4.1 - dev: true - - /@vitest/runner@1.4.0: - resolution: {integrity: sha512-EDYVSmesqlQ4RD2VvWo3hQgTJ7ZrFQ2VSJdfiJiArkCerDAGeyF1i6dHkmySqk573jLp6d/cfqCN+7wUB5tLgg==} - dependencies: - '@vitest/utils': 1.4.0 - p-limit: 5.0.0 - pathe: 1.1.2 - dev: true - - /@vitest/snapshot@1.4.0: - resolution: {integrity: sha512-saAFnt5pPIA5qDGxOHxJ/XxhMFKkUSBJmVt5VgDsAqPTX6JP326r5C/c9UuCMPoXNzuudTPsYDZCoJ5ilpqG2A==} - dependencies: - magic-string: 0.30.9 - pathe: 1.1.2 - pretty-format: 29.7.0 - dev: true - - /@vitest/spy@1.4.0: - resolution: {integrity: sha512-Ywau/Qs1DzM/8Uc+yA77CwSegizMlcgTJuYGAi0jujOteJOUf1ujunHThYo243KG9nAyWT3L9ifPYZ5+As/+6Q==} - dependencies: - tinyspy: 2.2.1 - dev: true - - /@vitest/utils@1.4.0: - resolution: {integrity: sha512-mx3Yd1/6e2Vt/PUC98DcqTirtfxUyAZ32uK82r8rZzbtBeBo+nqgnjx/LvqQdWsrvNtm14VmurNgcf4nqY5gJg==} - dependencies: - diff-sequences: 29.6.3 - estree-walker: 3.0.3 - loupe: 2.3.7 - pretty-format: 29.7.0 - dev: true - - /@zarrita/core@0.1.0-next.12: - resolution: {integrity: sha512-Y3TsUBqyQ86Z7Z/1uI9CllI8clm0fFGi0URlVn+YrSfuoZV377DBfYwksoycyb2KtPyo/tfRvwahYXW71RrWhQ==} - dependencies: - '@zarrita/storage': 0.1.0-next.5 - '@zarrita/typedarray': 0.1.0-next.3 - numcodecs: 0.3.1 - dev: false - - /@zarrita/indexing@0.1.0-next.14: - resolution: {integrity: sha512-13Af1eQgdkp9Cw+tQf3jQ5YYirkR2YEIiPFRcwNuHV3u2ycM1okuY2lilIjQ1hgeJzrmIc3q/y72ioT4bgiwcQ==} - dependencies: - '@zarrita/core': 0.1.0-next.12 - '@zarrita/storage': 0.1.0-next.5 - '@zarrita/typedarray': 0.1.0-next.3 - dev: false - - /@zarrita/storage@0.1.0-next.5: - resolution: {integrity: sha512-E1VSxhNGZHL4RsKfIuyaz0HRsDk7hOU8Y7R+8yvKolaHDjK31XQsUgu97oaR24qS1j1OOg5vGyFyd+y0q7FNOA==} - dependencies: - reference-spec-reader: 0.2.0 - unzipit: 1.4.3 - dev: false - - /@zarrita/typedarray@0.1.0-next.3: - resolution: {integrity: sha512-DpSaU3Cr6HmYDC/v8oM+e219cHU/kzKma309Z9E+QbpRnZycKNbSTKcxFR7FqB6HgB9640gzNUVFG5P+wzX5Xg==} - dev: false - - /abortcontroller-polyfill@1.7.5: - resolution: {integrity: sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==} - dev: true - - /acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} - dev: true - - /acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - - /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - - /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - dev: true - - /ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - dev: true - - /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - dev: true - - /assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - dev: true - - /babel-plugin-macros@3.1.0: - resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} - engines: {node: '>=10', npm: '>=6'} - dependencies: - '@babel/runtime': 7.24.5 - cosmiconfig: 7.1.0 - resolve: 1.22.8 - dev: false - - /base-x@3.0.9: - resolution: {integrity: sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==} - dependencies: - safe-buffer: 5.2.1 - dev: true - - /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: true - - /boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - dev: true - - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 - dev: true - - /browserslist@4.22.3: - resolution: {integrity: sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001581 - electron-to-chromium: 1.4.650 - node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.22.3) - dev: true - - /buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: true - - /cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - dev: true - - /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - /caniuse-lite@1.0.30001581: - resolution: {integrity: sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ==} - dev: true - - /chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} - engines: {node: '>=4'} - dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.3 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.0.8 - dev: true - - /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: true - - /check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} - dependencies: - get-func-name: 2.0.2 - dev: true - - /chrome-trace-event@1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} - engines: {node: '>=6.0'} - dev: true - - /clone@2.1.2: - resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} - engines: {node: '>=0.8'} - dev: true - - /clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} - dev: false - - /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - dev: true - - /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true - - /commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} - dev: true - - /convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - dev: false - - /cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} - dependencies: - '@types/parse-json': 4.0.2 - import-fresh: 3.3.0 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - dev: false - - /cosmiconfig@8.3.6(typescript@5.3.3): - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: + + /@swc/core-linux-arm64-musl@1.3.107: + resolution: + { + integrity: sha512-vfPF74cWfAm8hyhS8yvYI94ucMHIo8xIYU+oFOW9uvDlGQRgnUf/6DEVbLyt/3yfX5723Ln57U8uiMALbX5Pyw==, + } + engines: { node: '>=10' } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true optional: true - dependencies: - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - path-type: 4.0.0 - typescript: 5.3.3 - dev: true - - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - dev: true - - /css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} - dependencies: - boolbase: 1.0.0 - css-what: 6.1.0 - domhandler: 4.3.1 - domutils: 2.8.0 - nth-check: 2.1.1 - dev: true - - /css-tree@1.1.3: - resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} - engines: {node: '>=8.0.0'} - dependencies: - mdn-data: 2.0.14 - source-map: 0.6.1 - dev: true - - /css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - dev: true - - /csso@4.2.0: - resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} - engines: {node: '>=8.0.0'} - dependencies: - css-tree: 1.1.3 - dev: true - - /csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - - /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: + + /@swc/core-linux-arm64-musl@1.7.6: + resolution: + { + integrity: sha512-QI8QGL0HGT42tj7F1A+YAzhGkJjUcvvTfI1e2m704W0Enl2/UIK9v5D1zvQzYwusRyKuaQfbeBRYDh0NcLOGLg==, + } + engines: { node: '>=10' } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true optional: true - dependencies: - ms: 2.1.2 - dev: true - - /deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} - engines: {node: '>=6'} - dependencies: - type-detect: 4.0.8 - dev: true - - /detect-libc@1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} - engines: {node: '>=0.10'} - hasBin: true - dev: true - - /detect-libc@2.0.2: - resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} - engines: {node: '>=8'} - dev: true - - /diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - - /dom-helpers@5.2.1: - resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} - dependencies: - '@babel/runtime': 7.24.5 - csstype: 3.1.3 - dev: false - - /dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} - dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - entities: 2.2.0 - dev: true - - /domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - dev: true - - /domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} - dependencies: - domelementtype: 2.3.0 - dev: true - - /domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - dependencies: - dom-serializer: 1.4.1 - domelementtype: 2.3.0 - domhandler: 4.3.1 - dev: true - - /dotenv-expand@5.1.0: - resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} - dev: true - - /dotenv@7.0.0: - resolution: {integrity: sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==} - engines: {node: '>=6'} - dev: true - - /electron-to-chromium@1.4.650: - resolution: {integrity: sha512-sYSQhJCJa4aGA1wYol5cMQgekDBlbVfTRavlGZVr3WZpDdOPcp6a6xUnFfrt8TqZhsBYYbDxJZCjGfHuGupCRQ==} - dev: true - - /entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - dev: true - - /entities@3.0.1: - resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} - engines: {node: '>=0.12'} - dev: true - - /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - dependencies: - is-arrayish: 0.2.1 - - /esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/aix-ppc64': 0.19.12 - '@esbuild/android-arm': 0.19.12 - '@esbuild/android-arm64': 0.19.12 - '@esbuild/android-x64': 0.19.12 - '@esbuild/darwin-arm64': 0.19.12 - '@esbuild/darwin-x64': 0.19.12 - '@esbuild/freebsd-arm64': 0.19.12 - '@esbuild/freebsd-x64': 0.19.12 - '@esbuild/linux-arm': 0.19.12 - '@esbuild/linux-arm64': 0.19.12 - '@esbuild/linux-ia32': 0.19.12 - '@esbuild/linux-loong64': 0.19.12 - '@esbuild/linux-mips64el': 0.19.12 - '@esbuild/linux-ppc64': 0.19.12 - '@esbuild/linux-riscv64': 0.19.12 - '@esbuild/linux-s390x': 0.19.12 - '@esbuild/linux-x64': 0.19.12 - '@esbuild/netbsd-x64': 0.19.12 - '@esbuild/openbsd-x64': 0.19.12 - '@esbuild/sunos-x64': 0.19.12 - '@esbuild/win32-arm64': 0.19.12 - '@esbuild/win32-ia32': 0.19.12 - '@esbuild/win32-x64': 0.19.12 - dev: true - - /esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 - dev: true - - /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} - dev: true - - /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - dev: false - - /estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - dependencies: - '@types/estree': 1.0.5 - dev: true - - /execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} - 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.3.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - dev: true - - /fflate@0.8.2: - resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} - dev: false - - /file-saver@2.0.5: - resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==} - dev: false - - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - dev: true - - /find-root@1.1.0: - resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} - dev: false - - /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - dev: false - - /get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - dev: true - - /get-port@4.2.0: - resolution: {integrity: sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==} - engines: {node: '>=6'} - dev: true - - /get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - dev: true - - /globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 - dev: true - - /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - dev: true - - /hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - dependencies: - function-bind: 1.1.2 - dev: false - - /hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - dependencies: - react-is: 16.13.1 - dev: false - - /htmlnano@2.1.0(svgo@2.8.0)(typescript@5.3.3): - resolution: {integrity: sha512-jVGRE0Ep9byMBKEu0Vxgl8dhXYOUk0iNQ2pjsG+BcRB0u0oDF5A9p/iBGMg/PGKYUyMD0OAGu8dVT5Lzj8S58g==} - 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: + + /@swc/core-linux-x64-gnu@1.3.107: + resolution: + { + integrity: sha512-uBVNhIg0ip8rH9OnOsCARUFZ3Mq3tbPHxtmWk9uAa5u8jQwGWeBx5+nTHpDOVd3YxKb6+5xDEI/edeeLpha/9g==, + } + engines: { node: '>=10' } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true optional: true - postcss: + + /@swc/core-linux-x64-gnu@1.7.6: + resolution: + { + integrity: sha512-61AYVzhjuNQAVIKKWOJu3H0/pFD28RYJGxnGg3YMhvRLRyuWNyY5Nyyj2WkKcz/ON+g38Arlz00NT1LDIViRLg==, + } + engines: { node: '>=10' } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true optional: true - purgecss: + + /@swc/core-linux-x64-musl@1.3.107: + resolution: + { + integrity: sha512-mvACkUvzSIB12q1H5JtabWATbk3AG+pQgXEN95AmEX2ZA5gbP9+B+mijsg7Sd/3tboHr7ZHLz/q3SHTvdFJrEw==, + } + engines: { node: '>=10' } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true optional: true - relateurl: + + /@swc/core-linux-x64-musl@1.7.6: + resolution: + { + integrity: sha512-hQFznpfLK8XajfAAN9Cjs0w/aVmO7iu9VZvInyrTCRcPqxV5O+rvrhRxKvC1LRMZXr5M6JRSRtepp5w+TK4kAw==, + } + engines: { node: '>=10' } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true optional: true - srcset: + + /@swc/core-win32-arm64-msvc@1.3.107: + resolution: + { + integrity: sha512-J3P14Ngy/1qtapzbguEH41kY109t6DFxfbK4Ntz9dOWNuVY3o9/RTB841ctnJk0ZHEG+BjfCJjsD2n8H5HcaOA==, + } + engines: { node: '>=10' } + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true optional: true - svgo: + + /@swc/core-win32-arm64-msvc@1.7.6: + resolution: + { + integrity: sha512-Aqsd9afykVMuekzjm4X4TDqwxmG4CrzoOSFe0hZrn9SMio72l5eAPnMtYoe5LsIqtjV8MNprLfXaNbjHjTegmA==, + } + engines: { node: '>=10' } + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true optional: true - terser: + + /@swc/core-win32-ia32-msvc@1.3.107: + resolution: + { + integrity: sha512-ZBUtgyjTHlz8TPJh7kfwwwFma+ktr6OccB1oXC8fMSopD0AxVnQasgun3l3099wIsAB9eEsJDQ/3lDkOLs1gBA==, + } + engines: { node: '>=10' } + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true optional: true - uncss: + + /@swc/core-win32-ia32-msvc@1.7.6: + resolution: + { + integrity: sha512-9h0hYnOeRVNeQgHQTvD1Im67faNSSzBZ7Adtxyu9urNLfBTJilMllFd2QuGHlKW5+uaT6ZH7ZWDb+c/enx7Lcg==, + } + engines: { node: '>=10' } + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true optional: true - dependencies: - cosmiconfig: 8.3.6(typescript@5.3.3) - posthtml: 0.16.6 - svgo: 2.8.0 - timsort: 0.3.0 - transitivePeerDependencies: - - typescript - dev: true - - /htmlparser2@7.2.0: - resolution: {integrity: sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==} - dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - domutils: 2.8.0 - entities: 3.0.1 - dev: true - - /human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - dev: true - - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: true - - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - dependencies: - hasown: 2.0.2 - dev: false - - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - dev: true - - /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: true - - /is-json@2.0.1: - resolution: {integrity: sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==} - dev: true - - /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - dev: true - - /is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: true - - /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - /js-tokens@9.0.0: - resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} - dev: true - - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - dependencies: - argparse: 2.0.1 - dev: true - - /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - /json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - /jsonc-parser@3.2.1: - resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} - dev: true - - /kiwi-schema@0.5.0: - resolution: {integrity: sha512-X+FpfU0yTEtc6aTHS7VwbOpvQwRt70+pXXWRI5fd6CvWhe7pSVC854TVo4Zo0x5/wwcWj+/9KUlXpdcP0dY9AA==} - hasBin: true - dev: false - - /lightningcss-darwin-arm64@1.24.0: - resolution: {integrity: sha512-rTNPkEiynOu4CfGdd5ZfVOQe2gd2idfQd4EfX1l2ZUUwd+2SwSdbb7cG4rlwfnZckbzCAygm85xkpekRE5/wFw==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /lightningcss-darwin-x64@1.24.0: - resolution: {integrity: sha512-4KCeF2RJjzp9xdGY8zIH68CUtptEg8uz8PfkHvsIdrP4t9t5CIgfDBhiB8AmuO75N6SofdmZexDZIKdy9vA7Ww==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /lightningcss-freebsd-x64@1.24.0: - resolution: {integrity: sha512-FJAYlek1wXuVTsncNU0C6YD41q126dXcIUm97KAccMn9C4s/JfLSqGWT2gIzAblavPFkyGG2gIADTWp3uWfN1g==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /lightningcss-linux-arm-gnueabihf@1.24.0: - resolution: {integrity: sha512-N55K6JqzMx7C0hYUu1YmWqhkHwzEJlkQRMA6phY65noO0I1LOAvP4wBIoFWrzRE+O6zL0RmXJ2xppqyTbk3sYw==} - engines: {node: '>= 12.0.0'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /lightningcss-linux-arm64-gnu@1.24.0: - resolution: {integrity: sha512-MqqUB2TpYtFWeBvvf5KExDdClU3YGLW5bHKs50uKKootcvG9KoS7wYwd5UichS+W3mYLc5yXUPGD1DNWbLiYKw==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /lightningcss-linux-arm64-musl@1.24.0: - resolution: {integrity: sha512-5wn4d9tFwa5bS1ao9mLexYVJdh3nn09HNIipsII6ZF7z9ZA5J4dOEhMgKoeCl891axTGTUYd8Kxn+Hn3XUSYRQ==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /lightningcss-linux-x64-gnu@1.24.0: - resolution: {integrity: sha512-3j5MdTh+LSDF3o6uDwRjRUgw4J+IfDCVtdkUrJvKxL79qBLUujXY7CTe5X3IQDDLKEe/3wu49r8JKgxr0MfjbQ==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /lightningcss-linux-x64-musl@1.24.0: - resolution: {integrity: sha512-HI+rNnvaLz0o36z6Ki0gyG5igVGrJmzczxA5fznr6eFTj3cHORoR/j2q8ivMzNFR4UKJDkTWUH5LMhacwOHWBA==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /lightningcss-win32-x64-msvc@1.24.0: - resolution: {integrity: sha512-oeije/t7OZ5N9vSs6amyW/34wIYoBCpE6HUlsSKcP2SR1CVgx9oKEM00GtQmtqNnYiMIfsSm7+ppMb4NLtD5vg==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /lightningcss@1.24.0: - resolution: {integrity: sha512-y36QEEDVx4IM7/yIZNsZJMRREIu26WzTsauIysf5s76YeCmlSbRZS7aC97IGPuoFRnyZ5Wx43OBsQBFB5Ne7ng==} - engines: {node: '>= 12.0.0'} - dependencies: - detect-libc: 1.0.3 - optionalDependencies: - lightningcss-darwin-arm64: 1.24.0 - lightningcss-darwin-x64: 1.24.0 - lightningcss-freebsd-x64: 1.24.0 - lightningcss-linux-arm-gnueabihf: 1.24.0 - lightningcss-linux-arm64-gnu: 1.24.0 - lightningcss-linux-arm64-musl: 1.24.0 - lightningcss-linux-x64-gnu: 1.24.0 - lightningcss-linux-x64-musl: 1.24.0 - lightningcss-win32-x64-msvc: 1.24.0 - dev: true - - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - /lmdb@2.8.5: - resolution: {integrity: sha512-9bMdFfc80S+vSldBmG3HOuLVHnxRdNTlpzR6QDnzqCQtCzGUEAGTzBKYMeIM+I/sU4oZfgbcbS7X7F65/z/oxQ==} - hasBin: true - requiresBuild: true - dependencies: - msgpackr: 1.10.1 - node-addon-api: 6.1.0 - node-gyp-build-optional-packages: 5.1.1 - ordered-binary: 1.5.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 - dev: true - - /local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} - dependencies: - mlly: 1.6.1 - pkg-types: 1.0.3 - dev: true - - /lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: false - - /loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - dependencies: - js-tokens: 4.0.0 - dev: false - - /loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} - dependencies: - get-func-name: 2.0.2 - dev: true - - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - dev: true - - /magic-string@0.30.9: - resolution: {integrity: sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - - /mdn-data@2.0.14: - resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} - dev: true - - /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true - - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - dev: true - - /mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - dev: true - - /mlly@1.6.1: - resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} - dependencies: - acorn: 8.11.3 - pathe: 1.1.2 - pkg-types: 1.0.3 - ufo: 1.5.3 - dev: true - - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: true - - /msgpackr-extract@3.0.2: - resolution: {integrity: sha512-SdzXp4kD/Qf8agZ9+iTu6eql0m3kWm1A2y1hkpTeVNENutaB0BwHlSvAIaMxwntmRUAUjon2V4L8Z/njd0Ct8A==} - hasBin: true - requiresBuild: true - 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 - dev: true - optional: true - - /msgpackr@1.10.1: - resolution: {integrity: sha512-r5VRLv9qouXuLiIBrLpl2d5ZvPt8svdQTl5/vMvE4nzDMyEX4sgW5yWhuBBj5UmgwOTWj8CIdSXn5sAfsHAWIQ==} - optionalDependencies: - msgpackr-extract: 3.0.2 - dev: true - - /nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: true - - /node-addon-api@6.1.0: - resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} - dev: true - - /node-addon-api@7.1.0: - resolution: {integrity: sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==} - engines: {node: ^16 || ^18 || >= 20} - dev: true - - /node-gyp-build-optional-packages@5.0.7: - resolution: {integrity: sha512-YlCCc6Wffkx0kHkmam79GKvDQ6x+QZkMjFGrIMxgFNILFvGSbCp2fCBC55pGTT9gVaz8Na5CLmxt/urtzRv36w==} - hasBin: true - requiresBuild: true - dev: true - optional: true - - /node-gyp-build-optional-packages@5.1.1: - resolution: {integrity: sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==} - hasBin: true - dependencies: - detect-libc: 2.0.2 - dev: true - - /node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - dev: true - - /npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - path-key: 4.0.0 - dev: true - - /nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - dependencies: - boolbase: 1.0.0 - dev: true - - /nullthrows@1.1.1: - resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==} - dev: true - - /numcodecs@0.3.1: - resolution: {integrity: sha512-ywIyGpJ+c6Ojktq9a8jsWSy12ZSUcW/W+I3jlH0q0zv9aR/ZiMsN7IrWaNq9YV2FRdLu6r/M6lp35jMA6fug/A==} - dependencies: - fflate: 0.8.2 - dev: false - - /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - dev: false - - /onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - dependencies: - mimic-fn: 4.0.0 - dev: true - - /ordered-binary@1.5.1: - resolution: {integrity: sha512-5VyHfHY3cd0iza71JepYG50My+YUbrFtGoUz2ooEydPyPM7Aai/JW098juLr+RG6+rDJuzNNTsEQu2DZa1A41A==} - dev: true - - /p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} - engines: {node: '>=18'} - dependencies: - yocto-queue: 1.0.0 - dev: true - - /parcel@2.12.0(typescript@5.3.3): - resolution: {integrity: sha512-W+gxAq7aQ9dJIg/XLKGcRT0cvnStFAQHPaI0pvD0U2l6IVLueUAm3nwN7lkY62zZNmlvNx6jNtE4wlbS+CyqSg==} - engines: {node: '>= 12.0.0'} - hasBin: true - peerDependenciesMeta: - '@parcel/core': + + /@swc/core-win32-x64-msvc@1.3.107: + resolution: + { + integrity: sha512-Eyzo2XRqWOxqhE1gk9h7LWmUf4Bp4Xn2Ttb0ayAXFp6YSTxQIThXcT9kipXZqcpxcmDwoq8iWbbf2P8XL743EA==, + } + engines: { node: '>=10' } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true optional: true - dependencies: - '@parcel/config-default': 2.12.0(@parcel/core@2.12.0)(typescript@5.3.3) - '@parcel/core': 2.12.0 - '@parcel/diagnostic': 2.12.0 - '@parcel/events': 2.12.0 - '@parcel/fs': 2.12.0(@parcel/core@2.12.0) - '@parcel/logger': 2.12.0 - '@parcel/package-manager': 2.12.0(@parcel/core@2.12.0)(@swc/helpers@0.5.6) - '@parcel/reporter-cli': 2.12.0(@parcel/core@2.12.0) - '@parcel/reporter-dev-server': 2.12.0(@parcel/core@2.12.0) - '@parcel/reporter-tracer': 2.12.0(@parcel/core@2.12.0) - '@parcel/utils': 2.12.0 - chalk: 4.1.2 - commander: 7.2.0 - get-port: 4.2.0 - transitivePeerDependencies: - - '@swc/helpers' - - cssnano - - postcss - - purgecss - - relateurl - - srcset - - terser - - typescript - - uncss - dev: true - - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - dependencies: - callsites: 3.1.0 - - /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - dependencies: - '@babel/code-frame': 7.23.5 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - dev: true - - /path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - dev: true - - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: false - - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - /pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - dev: true - - /pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - dev: true - - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true - - /picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - dev: true - - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - dev: true - - /pkg-types@1.0.3: - resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} - dependencies: - jsonc-parser: 3.2.1 - mlly: 1.6.1 - pathe: 1.1.2 - dev: true - - /postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - dev: true - - /postcss@8.4.41: - resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 - dev: true - - /posthtml-parser@0.10.2: - resolution: {integrity: sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==} - engines: {node: '>=12'} - dependencies: - htmlparser2: 7.2.0 - dev: true - - /posthtml-parser@0.11.0: - resolution: {integrity: sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==} - engines: {node: '>=12'} - dependencies: - htmlparser2: 7.2.0 - dev: true - - /posthtml-render@3.0.0: - resolution: {integrity: sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==} - engines: {node: '>=12'} - dependencies: - is-json: 2.0.1 - dev: true - - /posthtml@0.16.6: - resolution: {integrity: sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==} - engines: {node: '>=12.0.0'} - dependencies: - posthtml-parser: 0.11.0 - posthtml-render: 3.0.0 - dev: true - - /prettier@3.3.2: - resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} - engines: {node: '>=14'} - hasBin: true - dev: true - - /pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.2.0 - dev: true - - /process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - dev: true - - /prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - dev: false - - /react-dom@18.3.0(react@18.3.0): - resolution: {integrity: sha512-zaKdLBftQJnvb7FtDIpZtsAIb2MZU087RM8bRDZU8LVCCFYjPTsDZJNFUWPcVz3HFSN1n/caxi0ca4B/aaVQGQ==} - peerDependencies: - react: ^18.3.0 - dependencies: - loose-envify: 1.4.0 - react: 18.3.0 - scheduler: 0.23.1 - dev: false - - /react-error-overlay@6.0.9: - resolution: {integrity: sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==} - dev: true - - /react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - dev: false - - /react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - - /react-refresh@0.9.0: - resolution: {integrity: sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==} - engines: {node: '>=0.10.0'} - dev: true - - /react-transition-group@4.4.5(react-dom@18.3.0)(react@18.3.0): - resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} - peerDependencies: - react: '>=16.6.0' - react-dom: '>=16.6.0' - dependencies: - '@babel/runtime': 7.24.5 - dom-helpers: 5.2.1 - loose-envify: 1.4.0 - prop-types: 15.8.1 - react: 18.3.0 - react-dom: 18.3.0(react@18.3.0) - dev: false - - /react@18.3.0: - resolution: {integrity: sha512-RPutkJftSAldDibyrjuku7q11d3oy6wKOyPe5K1HA/HwwrXcEqBdHsLypkC2FFYjP7bPUa6gbzSBhw4sY2JcDg==} - engines: {node: '>=0.10.0'} - dependencies: - loose-envify: 1.4.0 - dev: false - - /reference-spec-reader@0.2.0: - resolution: {integrity: sha512-q0mfCi5yZSSHXpCyxjgQeaORq3tvDsxDyzaadA/5+AbAUwRyRuuTh0aRQuE/vAOt/qzzxidJ5iDeu1cLHaNBlQ==} - dev: false - - /regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - dev: true - - /regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - dev: false - - /regl@2.1.0: - resolution: {integrity: sha512-oWUce/aVoEvW5l2V0LK7O5KJMzUSKeiOwFuJehzpSFd43dO5spP9r+sSUfhKtsky4u6MCqWJaRL+abzExynfTg==} - dev: false - - /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - /resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - dependencies: - is-core-module: 2.13.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: false - - /rollup@4.14.1: - resolution: {integrity: sha512-4LnHSdd3QK2pa1J6dFbfm1HN0D7vSK/ZuZTsdyUAlA6Rr1yTouUTL13HaDOGJVgby461AhrNGBS7sCGXXtT+SA==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.14.1 - '@rollup/rollup-android-arm64': 4.14.1 - '@rollup/rollup-darwin-arm64': 4.14.1 - '@rollup/rollup-darwin-x64': 4.14.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.14.1 - '@rollup/rollup-linux-arm64-gnu': 4.14.1 - '@rollup/rollup-linux-arm64-musl': 4.14.1 - '@rollup/rollup-linux-powerpc64le-gnu': 4.14.1 - '@rollup/rollup-linux-riscv64-gnu': 4.14.1 - '@rollup/rollup-linux-s390x-gnu': 4.14.1 - '@rollup/rollup-linux-x64-gnu': 4.14.1 - '@rollup/rollup-linux-x64-musl': 4.14.1 - '@rollup/rollup-win32-arm64-msvc': 4.14.1 - '@rollup/rollup-win32-ia32-msvc': 4.14.1 - '@rollup/rollup-win32-x64-msvc': 4.14.1 - fsevents: 2.3.3 - dev: true - - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: true - - /scheduler@0.23.1: - resolution: {integrity: sha512-5GKS5JGfiah1O38Vfa9srZE4s3wdHbwjlCrvIookrg2FO9aIwKLOJXuJQFlEfNcVSOXuaL2hzDeY20uVXcUtrw==} - dependencies: - loose-envify: 1.4.0 - dev: false - - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - - /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - dependencies: - shebang-regex: 3.0.0 - dev: true - - /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - dev: true - - /siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - dev: true - - /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - dev: true - - /source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - dev: true - - /source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} - dev: false - - /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - dev: true - - /srcset@4.0.0: - resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==} - engines: {node: '>=12'} - dev: true - - /stable@0.1.8: - resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} - deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' - dev: true - - /stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - dev: true - - /std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - dev: true - - /strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - dev: true - - /strip-literal@2.1.0: - resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} - dependencies: - js-tokens: 9.0.0 - dev: true - - /stylis@4.2.0: - resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} - dev: false - - /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - dependencies: - has-flag: 3.0.0 - - /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - dev: true - - /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: false - - /svgo@2.8.0: - resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} - engines: {node: '>=10.13.0'} - hasBin: true - dependencies: - '@trysound/sax': 0.2.0 - commander: 7.2.0 - css-select: 4.3.0 - css-tree: 1.1.3 - csso: 4.2.0 - picocolors: 1.0.1 - stable: 0.1.8 - dev: true - - /term-size@2.2.1: - resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} - engines: {node: '>=8'} - dev: true - - /timsort@0.3.0: - resolution: {integrity: sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==} - dev: true - - /tinybench@2.6.0: - resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} - dev: true - - /tinypool@0.8.3: - resolution: {integrity: sha512-Ud7uepAklqRH1bvwy22ynrliC7Dljz7Tm8M/0RBUW+YRa4YHhZ6e4PpgE+fu1zr/WqB1kbeuVrdfeuyIBpy4tw==} - engines: {node: '>=14.0.0'} - dev: true - - /tinyspy@2.2.1: - resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} - engines: {node: '>=14.0.0'} - dev: true - - /to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - dev: false - - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - dependencies: - is-number: 7.0.0 - dev: true - - /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - dev: true - - /type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - dev: true - - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - dev: true - - /typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} - engines: {node: '>=14.17'} - hasBin: true - dev: true - - /ufo@1.5.3: - resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} - dev: true - - /undici-types@6.13.0: - resolution: {integrity: sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==} - dev: true - - /unzipit@1.4.3: - resolution: {integrity: sha512-gsq2PdJIWWGhx5kcdWStvNWit9FVdTewm4SEG7gFskWs+XCVaULt9+BwuoBtJiRE8eo3L1IPAOrbByNLtLtIlg==} - engines: {node: '>=12'} - dependencies: - uzip-module: 1.0.3 - dev: false - - /update-browserslist-db@1.0.13(browserslist@4.22.3): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.22.3 - escalade: 3.1.1 - picocolors: 1.0.0 - dev: true - - /utility-types@3.11.0: - resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} - engines: {node: '>= 4'} - dev: true - - /uzip-module@1.0.3: - resolution: {integrity: sha512-AMqwWZaknLM77G+VPYNZLEruMGWGzyigPK3/Whg99B3S6vGHuqsyl5ZrOv1UUF3paGK1U6PM0cnayioaryg/fA==} - dev: false - - /vite-node@1.4.0: - resolution: {integrity: sha512-VZDAseqjrHgNd4Kh8icYHWzTKSCZMhia7GyHfhtzLW33fZlG9SwsB6CEhgyVOWkJfJ2pFLrp/Gj1FSfAiqH9Lw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - dependencies: - cac: 6.7.14 - debug: 4.3.4 - pathe: 1.1.2 - picocolors: 1.0.0 - vite: 5.3.5(@types/node@22.1.0) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - - /vite@5.3.5(@types/node@22.1.0): - resolution: {integrity: sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': + + /@swc/core-win32-x64-msvc@1.7.6: + resolution: + { + integrity: sha512-izeoB8glCSe6IIDQmrVm6bvR9muk9TeKgmtY7b6l1BwL4BFnTUk4dMmpbntT90bEVQn3JPCaPtUG4HfL8VuyuA==, + } + engines: { node: '>=10' } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true optional: true - less: + + /@swc/core@1.3.107(@swc/helpers@0.5.6): + resolution: + { + integrity: sha512-zKhqDyFcTsyLIYK1iEmavljZnf4CCor5pF52UzLAz4B6Nu/4GLU+2LQVAf+oRHjusG39PTPjd2AlRT3f3QWfsQ==, + } + engines: { node: '>=10' } + requiresBuild: true + peerDependencies: + '@swc/helpers': ^0.5.0 + peerDependenciesMeta: + '@swc/helpers': + optional: true + dependencies: + '@swc/counter': 0.1.2 + '@swc/helpers': 0.5.6 + '@swc/types': 0.1.5 + optionalDependencies: + '@swc/core-darwin-arm64': 1.3.107 + '@swc/core-darwin-x64': 1.3.107 + '@swc/core-linux-arm-gnueabihf': 1.3.107 + '@swc/core-linux-arm64-gnu': 1.3.107 + '@swc/core-linux-arm64-musl': 1.3.107 + '@swc/core-linux-x64-gnu': 1.3.107 + '@swc/core-linux-x64-musl': 1.3.107 + '@swc/core-win32-arm64-msvc': 1.3.107 + '@swc/core-win32-ia32-msvc': 1.3.107 + '@swc/core-win32-x64-msvc': 1.3.107 + dev: true + + /@swc/core@1.7.6: + resolution: + { + integrity: sha512-FZxyao9eQks1MRmUshgsZTmlg/HB2oXK5fghkoWJm/1CU2q2kaJlVDll2as5j+rmWiwkp0Gidlq8wlXcEEAO+g==, + } + engines: { node: '>=10' } + requiresBuild: true + peerDependencies: + '@swc/helpers': '*' + peerDependenciesMeta: + '@swc/helpers': + optional: true + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.12 + optionalDependencies: + '@swc/core-darwin-arm64': 1.7.6 + '@swc/core-darwin-x64': 1.7.6 + '@swc/core-linux-arm-gnueabihf': 1.7.6 + '@swc/core-linux-arm64-gnu': 1.7.6 + '@swc/core-linux-arm64-musl': 1.7.6 + '@swc/core-linux-x64-gnu': 1.7.6 + '@swc/core-linux-x64-musl': 1.7.6 + '@swc/core-win32-arm64-msvc': 1.7.6 + '@swc/core-win32-ia32-msvc': 1.7.6 + '@swc/core-win32-x64-msvc': 1.7.6 + dev: true + + /@swc/counter@0.1.2: + resolution: + { + integrity: sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==, + } + dev: true + + /@swc/counter@0.1.3: + resolution: + { + integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==, + } + dev: true + + /@swc/helpers@0.5.6: + resolution: + { + integrity: sha512-aYX01Ke9hunpoCexYAgQucEpARGQ5w/cqHFrIR+e9gdKb1QWTsVJuTJ2ozQzIAxLyRQe/m+2RqzkyOOGiMKRQA==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /@swc/types@0.1.12: + resolution: + { + integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==, + } + dependencies: + '@swc/counter': 0.1.3 + dev: true + + /@swc/types@0.1.5: + resolution: + { + integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==, + } + dev: true + + /@trysound/sax@0.2.0: + resolution: + { + integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==, + } + engines: { node: '>=10.13.0' } + dev: true + + /@types/estree@1.0.5: + resolution: + { + integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==, + } + dev: true + + /@types/file-saver@2.0.7: + resolution: + { + integrity: sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==, + } + dev: true + + /@types/lodash@4.14.202: + resolution: + { + integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==, + } + + /@types/node@22.1.0: + resolution: + { + integrity: sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==, + } + dependencies: + undici-types: 6.13.0 + dev: true + + /@types/parse-json@4.0.2: + resolution: + { + integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==, + } + dev: false + + /@types/prop-types@15.7.12: + resolution: + { + integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==, + } + + /@types/react-dom@18.3.0: + resolution: + { + integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==, + } + dependencies: + '@types/react': 18.3.0 + dev: true + + /@types/react-transition-group@4.4.10: + resolution: + { + integrity: sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==, + } + dependencies: + '@types/react': 18.3.0 + dev: false + + /@types/react@18.3.0: + resolution: + { + integrity: sha512-DiUcKjzE6soLyln8NNZmyhcQjVv+WsUIFSqetMN0p8927OztKT4VTfFTqsbAi5oAGIcgOmOajlfBqyptDDjZRw==, + } + dependencies: + '@types/prop-types': 15.7.12 + csstype: 3.1.3 + + /@vitejs/plugin-react-swc@3.7.0(vite@5.3.5): + resolution: + { + integrity: sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==, + } + peerDependencies: + vite: ^4 || ^5 + dependencies: + '@swc/core': 1.7.6 + vite: 5.3.5(@types/node@22.1.0) + transitivePeerDependencies: + - '@swc/helpers' + dev: true + + /@vitest/expect@1.4.0: + resolution: + { + integrity: sha512-Jths0sWCJZ8BxjKe+p+eKsoqev1/T8lYcrjavEaz8auEJ4jAVY0GwW3JKmdVU4mmNPLPHixh4GNXP7GFtAiDHA==, + } + dependencies: + '@vitest/spy': 1.4.0 + '@vitest/utils': 1.4.0 + chai: 4.4.1 + dev: true + + /@vitest/runner@1.4.0: + resolution: + { + integrity: sha512-EDYVSmesqlQ4RD2VvWo3hQgTJ7ZrFQ2VSJdfiJiArkCerDAGeyF1i6dHkmySqk573jLp6d/cfqCN+7wUB5tLgg==, + } + dependencies: + '@vitest/utils': 1.4.0 + p-limit: 5.0.0 + pathe: 1.1.2 + dev: true + + /@vitest/snapshot@1.4.0: + resolution: + { + integrity: sha512-saAFnt5pPIA5qDGxOHxJ/XxhMFKkUSBJmVt5VgDsAqPTX6JP326r5C/c9UuCMPoXNzuudTPsYDZCoJ5ilpqG2A==, + } + dependencies: + magic-string: 0.30.9 + pathe: 1.1.2 + pretty-format: 29.7.0 + dev: true + + /@vitest/spy@1.4.0: + resolution: + { + integrity: sha512-Ywau/Qs1DzM/8Uc+yA77CwSegizMlcgTJuYGAi0jujOteJOUf1ujunHThYo243KG9nAyWT3L9ifPYZ5+As/+6Q==, + } + dependencies: + tinyspy: 2.2.1 + dev: true + + /@vitest/utils@1.4.0: + resolution: + { + integrity: sha512-mx3Yd1/6e2Vt/PUC98DcqTirtfxUyAZ32uK82r8rZzbtBeBo+nqgnjx/LvqQdWsrvNtm14VmurNgcf4nqY5gJg==, + } + dependencies: + diff-sequences: 29.6.3 + estree-walker: 3.0.3 + loupe: 2.3.7 + pretty-format: 29.7.0 + dev: true + + /@zarrita/core@0.1.0-next.12: + resolution: + { + integrity: sha512-Y3TsUBqyQ86Z7Z/1uI9CllI8clm0fFGi0URlVn+YrSfuoZV377DBfYwksoycyb2KtPyo/tfRvwahYXW71RrWhQ==, + } + dependencies: + '@zarrita/storage': 0.1.0-next.5 + '@zarrita/typedarray': 0.1.0-next.3 + numcodecs: 0.3.1 + dev: false + + /@zarrita/indexing@0.1.0-next.14: + resolution: + { + integrity: sha512-13Af1eQgdkp9Cw+tQf3jQ5YYirkR2YEIiPFRcwNuHV3u2ycM1okuY2lilIjQ1hgeJzrmIc3q/y72ioT4bgiwcQ==, + } + dependencies: + '@zarrita/core': 0.1.0-next.12 + '@zarrita/storage': 0.1.0-next.5 + '@zarrita/typedarray': 0.1.0-next.3 + dev: false + + /@zarrita/storage@0.1.0-next.5: + resolution: + { + integrity: sha512-E1VSxhNGZHL4RsKfIuyaz0HRsDk7hOU8Y7R+8yvKolaHDjK31XQsUgu97oaR24qS1j1OOg5vGyFyd+y0q7FNOA==, + } + dependencies: + reference-spec-reader: 0.2.0 + unzipit: 1.4.3 + dev: false + + /@zarrita/typedarray@0.1.0-next.3: + resolution: + { + integrity: sha512-DpSaU3Cr6HmYDC/v8oM+e219cHU/kzKma309Z9E+QbpRnZycKNbSTKcxFR7FqB6HgB9640gzNUVFG5P+wzX5Xg==, + } + dev: false + + /abortcontroller-polyfill@1.7.5: + resolution: + { + integrity: sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==, + } + dev: true + + /acorn-walk@8.3.2: + resolution: + { + integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==, + } + engines: { node: '>=0.4.0' } + dev: true + + /acorn@8.11.3: + resolution: + { + integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==, + } + engines: { node: '>=0.4.0' } + hasBin: true + dev: true + + /ansi-styles@3.2.1: + resolution: + { + integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, + } + engines: { node: '>=4' } + dependencies: + color-convert: 1.9.3 + + /ansi-styles@4.3.0: + resolution: + { + integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, + } + engines: { node: '>=8' } + dependencies: + color-convert: 2.0.1 + dev: true + + /ansi-styles@5.2.0: + resolution: + { + integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==, + } + engines: { node: '>=10' } + dev: true + + /argparse@2.0.1: + resolution: + { + integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, + } + dev: true + + /assertion-error@1.1.0: + resolution: + { + integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==, + } + dev: true + + /babel-plugin-macros@3.1.0: + resolution: + { + integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==, + } + engines: { node: '>=10', npm: '>=6' } + dependencies: + '@babel/runtime': 7.24.5 + cosmiconfig: 7.1.0 + resolve: 1.22.8 + dev: false + + /base-x@3.0.9: + resolution: + { + integrity: sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==, + } + dependencies: + safe-buffer: 5.2.1 + dev: true + + /base64-js@1.5.1: + resolution: + { + integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, + } + dev: true + + /boolbase@1.0.0: + resolution: + { + integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==, + } + dev: true + + /braces@3.0.2: + resolution: + { + integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, + } + engines: { node: '>=8' } + dependencies: + fill-range: 7.0.1 + dev: true + + /browserslist@4.22.3: + resolution: + { + integrity: sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==, + } + engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } + hasBin: true + dependencies: + caniuse-lite: 1.0.30001581 + electron-to-chromium: 1.4.650 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.22.3) + dev: true + + /buffer@6.0.3: + resolution: + { + integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==, + } + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + + /cac@6.7.14: + resolution: + { + integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==, + } + engines: { node: '>=8' } + dev: true + + /callsites@3.1.0: + resolution: + { + integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, + } + engines: { node: '>=6' } + + /caniuse-lite@1.0.30001581: + resolution: + { + integrity: sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ==, + } + dev: true + + /chai@4.4.1: + resolution: + { + integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==, + } + engines: { node: '>=4' } + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.3 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: true + + /chalk@2.4.2: + resolution: + { + integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, + } + engines: { node: '>=4' } + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + /chalk@4.1.2: + resolution: + { + integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, + } + engines: { node: '>=10' } + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /check-error@1.0.3: + resolution: + { + integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==, + } + dependencies: + get-func-name: 2.0.2 + dev: true + + /chrome-trace-event@1.0.3: + resolution: + { + integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==, + } + engines: { node: '>=6.0' } + dev: true + + /clone@2.1.2: + resolution: + { + integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==, + } + engines: { node: '>=0.8' } + dev: true + + /clsx@2.1.1: + resolution: + { + integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==, + } + engines: { node: '>=6' } + dev: false + + /color-convert@1.9.3: + resolution: + { + integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, + } + dependencies: + color-name: 1.1.3 + + /color-convert@2.0.1: + resolution: + { + integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, + } + engines: { node: '>=7.0.0' } + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.3: + resolution: + { + integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, + } + + /color-name@1.1.4: + resolution: + { + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, + } + dev: true + + /commander@7.2.0: + resolution: + { + integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==, + } + engines: { node: '>= 10' } + dev: true + + /convert-source-map@1.9.0: + resolution: + { + integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==, + } + dev: false + + /cosmiconfig@7.1.0: + resolution: + { + integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==, + } + engines: { node: '>=10' } + dependencies: + '@types/parse-json': 4.0.2 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: false + + /cosmiconfig@8.3.6(typescript@5.3.3): + resolution: + { + integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==, + } + engines: { node: '>=14' } + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + typescript: 5.3.3 + dev: true + + /cross-spawn@7.0.3: + resolution: + { + integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, + } + engines: { node: '>= 8' } + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /css-select@4.3.0: + resolution: + { + integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==, + } + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 + dev: true + + /css-tree@1.1.3: + resolution: + { + integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==, + } + engines: { node: '>=8.0.0' } + dependencies: + mdn-data: 2.0.14 + source-map: 0.6.1 + dev: true + + /css-what@6.1.0: + resolution: + { + integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==, + } + engines: { node: '>= 6' } + dev: true + + /csso@4.2.0: + resolution: + { + integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==, + } + engines: { node: '>=8.0.0' } + dependencies: + css-tree: 1.1.3 + dev: true + + /csstype@3.1.3: + resolution: + { + integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==, + } + + /debug@4.3.4: + resolution: + { + integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, + } + engines: { node: '>=6.0' } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /deep-eql@4.1.3: + resolution: + { + integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==, + } + engines: { node: '>=6' } + dependencies: + type-detect: 4.0.8 + dev: true + + /detect-libc@1.0.3: + resolution: + { + integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==, + } + engines: { node: '>=0.10' } + hasBin: true + dev: true + + /detect-libc@2.0.2: + resolution: + { + integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==, + } + engines: { node: '>=8' } + dev: true + + /diff-sequences@29.6.3: + resolution: + { + integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + dev: true + + /dom-helpers@5.2.1: + resolution: + { + integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==, + } + dependencies: + '@babel/runtime': 7.24.5 + csstype: 3.1.3 + dev: false + + /dom-serializer@1.4.1: + resolution: + { + integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==, + } + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 + dev: true + + /domelementtype@2.3.0: + resolution: + { + integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==, + } + dev: true + + /domhandler@4.3.1: + resolution: + { + integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==, + } + engines: { node: '>= 4' } + dependencies: + domelementtype: 2.3.0 + dev: true + + /domutils@2.8.0: + resolution: + { + integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==, + } + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + dev: true + + /dotenv-expand@5.1.0: + resolution: + { + integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==, + } + dev: true + + /dotenv@7.0.0: + resolution: + { + integrity: sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==, + } + engines: { node: '>=6' } + dev: true + + /electron-to-chromium@1.4.650: + resolution: + { + integrity: sha512-sYSQhJCJa4aGA1wYol5cMQgekDBlbVfTRavlGZVr3WZpDdOPcp6a6xUnFfrt8TqZhsBYYbDxJZCjGfHuGupCRQ==, + } + dev: true + + /entities@2.2.0: + resolution: + { + integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==, + } + dev: true + + /entities@3.0.1: + resolution: + { + integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==, + } + engines: { node: '>=0.12' } + dev: true + + /error-ex@1.3.2: + resolution: + { + integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, + } + dependencies: + is-arrayish: 0.2.1 + + /esbuild@0.21.5: + resolution: + { + integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==, + } + engines: { node: '>=12' } + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + dev: true + + /escalade@3.1.1: + resolution: + { + integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, + } + engines: { node: '>=6' } + dev: true + + /escape-string-regexp@1.0.5: + resolution: + { + integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, + } + engines: { node: '>=0.8.0' } + + /escape-string-regexp@4.0.0: + resolution: + { + integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, + } + engines: { node: '>=10' } + dev: false + + /estree-walker@3.0.3: + resolution: + { + integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==, + } + dependencies: + '@types/estree': 1.0.5 + dev: true + + /execa@8.0.1: + resolution: + { + integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==, + } + engines: { node: '>=16.17' } + 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.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + + /fflate@0.8.2: + resolution: + { + integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==, + } + dev: false + + /file-saver@2.0.5: + resolution: + { + integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==, + } + dev: false + + /fill-range@7.0.1: + resolution: + { + integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, + } + engines: { node: '>=8' } + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-root@1.1.0: + resolution: + { + integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==, + } + dev: false + + /fsevents@2.3.3: + resolution: + { + integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, + } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + os: [darwin] + requiresBuild: true + dev: true optional: true - lightningcss: + + /function-bind@1.1.2: + resolution: + { + integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, + } + dev: false + + /get-func-name@2.0.2: + resolution: + { + integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==, + } + dev: true + + /get-port@4.2.0: + resolution: + { + integrity: sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==, + } + engines: { node: '>=6' } + dev: true + + /get-stream@8.0.1: + resolution: + { + integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==, + } + engines: { node: '>=16' } + dev: true + + /globals@13.24.0: + resolution: + { + integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==, + } + engines: { node: '>=8' } + dependencies: + type-fest: 0.20.2 + dev: true + + /has-flag@3.0.0: + resolution: + { + integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, + } + engines: { node: '>=4' } + + /has-flag@4.0.0: + resolution: + { + integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, + } + engines: { node: '>=8' } + dev: true + + /hasown@2.0.2: + resolution: + { + integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==, + } + engines: { node: '>= 0.4' } + dependencies: + function-bind: 1.1.2 + dev: false + + /hoist-non-react-statics@3.3.2: + resolution: + { + integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==, + } + dependencies: + react-is: 16.13.1 + dev: false + + /htmlnano@2.1.0(svgo@2.8.0)(typescript@5.3.3): + resolution: + { + integrity: sha512-jVGRE0Ep9byMBKEu0Vxgl8dhXYOUk0iNQ2pjsG+BcRB0u0oDF5A9p/iBGMg/PGKYUyMD0OAGu8dVT5Lzj8S58g==, + } + 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 + dependencies: + cosmiconfig: 8.3.6(typescript@5.3.3) + posthtml: 0.16.6 + svgo: 2.8.0 + timsort: 0.3.0 + transitivePeerDependencies: + - typescript + dev: true + + /htmlparser2@7.2.0: + resolution: + { + integrity: sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==, + } + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + domutils: 2.8.0 + entities: 3.0.1 + dev: true + + /human-signals@5.0.0: + resolution: + { + integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==, + } + engines: { node: '>=16.17.0' } + dev: true + + /ieee754@1.2.1: + resolution: + { + integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, + } + dev: true + + /import-fresh@3.3.0: + resolution: + { + integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, + } + engines: { node: '>=6' } + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + /is-arrayish@0.2.1: + resolution: + { + integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, + } + + /is-core-module@2.13.1: + resolution: + { + integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==, + } + dependencies: + hasown: 2.0.2 + dev: false + + /is-extglob@2.1.1: + resolution: + { + integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, + } + engines: { node: '>=0.10.0' } + dev: true + + /is-glob@4.0.3: + resolution: + { + integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, + } + engines: { node: '>=0.10.0' } + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-json@2.0.1: + resolution: + { + integrity: sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==, + } + dev: true + + /is-number@7.0.0: + resolution: + { + integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, + } + engines: { node: '>=0.12.0' } + dev: true + + /is-stream@3.0.0: + resolution: + { + integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + dev: true + + /isexe@2.0.0: + resolution: + { + integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, + } + dev: true + + /js-tokens@4.0.0: + resolution: + { + integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, + } + + /js-tokens@9.0.0: + resolution: + { + integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==, + } + dev: true + + /js-yaml@4.1.0: + resolution: + { + integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, + } + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /json-parse-even-better-errors@2.3.1: + resolution: + { + integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, + } + + /json5@2.2.3: + resolution: + { + integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, + } + engines: { node: '>=6' } + hasBin: true + + /jsonc-parser@3.2.1: + resolution: + { + integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==, + } + dev: true + + /kiwi-schema@0.5.0: + resolution: + { + integrity: sha512-X+FpfU0yTEtc6aTHS7VwbOpvQwRt70+pXXWRI5fd6CvWhe7pSVC854TVo4Zo0x5/wwcWj+/9KUlXpdcP0dY9AA==, + } + hasBin: true + dev: false + + /lightningcss-darwin-arm64@1.24.0: + resolution: + { + integrity: sha512-rTNPkEiynOu4CfGdd5ZfVOQe2gd2idfQd4EfX1l2ZUUwd+2SwSdbb7cG4rlwfnZckbzCAygm85xkpekRE5/wFw==, + } + engines: { node: '>= 12.0.0' } + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true optional: true - sass: + + /lightningcss-darwin-x64@1.24.0: + resolution: + { + integrity: sha512-4KCeF2RJjzp9xdGY8zIH68CUtptEg8uz8PfkHvsIdrP4t9t5CIgfDBhiB8AmuO75N6SofdmZexDZIKdy9vA7Ww==, + } + engines: { node: '>= 12.0.0' } + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true optional: true - stylus: + + /lightningcss-freebsd-x64@1.24.0: + resolution: + { + integrity: sha512-FJAYlek1wXuVTsncNU0C6YD41q126dXcIUm97KAccMn9C4s/JfLSqGWT2gIzAblavPFkyGG2gIADTWp3uWfN1g==, + } + engines: { node: '>= 12.0.0' } + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true optional: true - sugarss: + + /lightningcss-linux-arm-gnueabihf@1.24.0: + resolution: + { + integrity: sha512-N55K6JqzMx7C0hYUu1YmWqhkHwzEJlkQRMA6phY65noO0I1LOAvP4wBIoFWrzRE+O6zL0RmXJ2xppqyTbk3sYw==, + } + engines: { node: '>= 12.0.0' } + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true optional: true - terser: + + /lightningcss-linux-arm64-gnu@1.24.0: + resolution: + { + integrity: sha512-MqqUB2TpYtFWeBvvf5KExDdClU3YGLW5bHKs50uKKootcvG9KoS7wYwd5UichS+W3mYLc5yXUPGD1DNWbLiYKw==, + } + engines: { node: '>= 12.0.0' } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true optional: true - dependencies: - '@types/node': 22.1.0 - esbuild: 0.21.5 - postcss: 8.4.41 - rollup: 4.14.1 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /vitest@1.4.0: - resolution: {integrity: sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.4.0 - '@vitest/ui': 1.4.0 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': + + /lightningcss-linux-arm64-musl@1.24.0: + resolution: + { + integrity: sha512-5wn4d9tFwa5bS1ao9mLexYVJdh3nn09HNIipsII6ZF7z9ZA5J4dOEhMgKoeCl891axTGTUYd8Kxn+Hn3XUSYRQ==, + } + engines: { node: '>= 12.0.0' } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@types/node': + + /lightningcss-linux-x64-gnu@1.24.0: + resolution: + { + integrity: sha512-3j5MdTh+LSDF3o6uDwRjRUgw4J+IfDCVtdkUrJvKxL79qBLUujXY7CTe5X3IQDDLKEe/3wu49r8JKgxr0MfjbQ==, + } + engines: { node: '>= 12.0.0' } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@vitest/browser': + + /lightningcss-linux-x64-musl@1.24.0: + resolution: + { + integrity: sha512-HI+rNnvaLz0o36z6Ki0gyG5igVGrJmzczxA5fznr6eFTj3cHORoR/j2q8ivMzNFR4UKJDkTWUH5LMhacwOHWBA==, + } + engines: { node: '>= 12.0.0' } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@vitest/ui': + + /lightningcss-win32-x64-msvc@1.24.0: + resolution: + { + integrity: sha512-oeije/t7OZ5N9vSs6amyW/34wIYoBCpE6HUlsSKcP2SR1CVgx9oKEM00GtQmtqNnYiMIfsSm7+ppMb4NLtD5vg==, + } + engines: { node: '>= 12.0.0' } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true optional: true - happy-dom: + + /lightningcss@1.24.0: + resolution: + { + integrity: sha512-y36QEEDVx4IM7/yIZNsZJMRREIu26WzTsauIysf5s76YeCmlSbRZS7aC97IGPuoFRnyZ5Wx43OBsQBFB5Ne7ng==, + } + engines: { node: '>= 12.0.0' } + dependencies: + detect-libc: 1.0.3 + optionalDependencies: + lightningcss-darwin-arm64: 1.24.0 + lightningcss-darwin-x64: 1.24.0 + lightningcss-freebsd-x64: 1.24.0 + lightningcss-linux-arm-gnueabihf: 1.24.0 + lightningcss-linux-arm64-gnu: 1.24.0 + lightningcss-linux-arm64-musl: 1.24.0 + lightningcss-linux-x64-gnu: 1.24.0 + lightningcss-linux-x64-musl: 1.24.0 + lightningcss-win32-x64-msvc: 1.24.0 + dev: true + + /lines-and-columns@1.2.4: + resolution: + { + integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, + } + + /lmdb@2.8.5: + resolution: + { + integrity: sha512-9bMdFfc80S+vSldBmG3HOuLVHnxRdNTlpzR6QDnzqCQtCzGUEAGTzBKYMeIM+I/sU4oZfgbcbS7X7F65/z/oxQ==, + } + hasBin: true + requiresBuild: true + dependencies: + msgpackr: 1.10.1 + node-addon-api: 6.1.0 + node-gyp-build-optional-packages: 5.1.1 + ordered-binary: 1.5.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 + dev: true + + /local-pkg@0.5.0: + resolution: + { + integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==, + } + engines: { node: '>=14' } + dependencies: + mlly: 1.6.1 + pkg-types: 1.0.3 + dev: true + + /lodash@4.17.21: + resolution: + { + integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, + } + dev: false + + /loose-envify@1.4.0: + resolution: + { + integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, + } + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: false + + /loupe@2.3.7: + resolution: + { + integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==, + } + dependencies: + get-func-name: 2.0.2 + dev: true + + /lru-cache@6.0.0: + resolution: + { + integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, + } + engines: { node: '>=10' } + dependencies: + yallist: 4.0.0 + dev: true + + /magic-string@0.30.9: + resolution: + { + integrity: sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==, + } + engines: { node: '>=12' } + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /mdn-data@2.0.14: + resolution: + { + integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==, + } + dev: true + + /merge-stream@2.0.0: + resolution: + { + integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, + } + dev: true + + /micromatch@4.0.5: + resolution: + { + integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, + } + engines: { node: '>=8.6' } + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mimic-fn@4.0.0: + resolution: + { + integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, + } + engines: { node: '>=12' } + dev: true + + /mlly@1.6.1: + resolution: + { + integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==, + } + dependencies: + acorn: 8.11.3 + pathe: 1.1.2 + pkg-types: 1.0.3 + ufo: 1.5.3 + dev: true + + /ms@2.1.2: + resolution: + { + integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, + } + dev: true + + /msgpackr-extract@3.0.2: + resolution: + { + integrity: sha512-SdzXp4kD/Qf8agZ9+iTu6eql0m3kWm1A2y1hkpTeVNENutaB0BwHlSvAIaMxwntmRUAUjon2V4L8Z/njd0Ct8A==, + } + hasBin: true + requiresBuild: true + 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 + dev: true optional: true - jsdom: + + /msgpackr@1.10.1: + resolution: + { + integrity: sha512-r5VRLv9qouXuLiIBrLpl2d5ZvPt8svdQTl5/vMvE4nzDMyEX4sgW5yWhuBBj5UmgwOTWj8CIdSXn5sAfsHAWIQ==, + } + optionalDependencies: + msgpackr-extract: 3.0.2 + dev: true + + /nanoid@3.3.7: + resolution: + { + integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==, + } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } + hasBin: true + dev: true + + /node-addon-api@6.1.0: + resolution: + { + integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==, + } + dev: true + + /node-addon-api@7.1.0: + resolution: + { + integrity: sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==, + } + engines: { node: ^16 || ^18 || >= 20 } + dev: true + + /node-gyp-build-optional-packages@5.0.7: + resolution: + { + integrity: sha512-YlCCc6Wffkx0kHkmam79GKvDQ6x+QZkMjFGrIMxgFNILFvGSbCp2fCBC55pGTT9gVaz8Na5CLmxt/urtzRv36w==, + } + hasBin: true + requiresBuild: true + dev: true optional: true - dependencies: - '@vitest/expect': 1.4.0 - '@vitest/runner': 1.4.0 - '@vitest/snapshot': 1.4.0 - '@vitest/spy': 1.4.0 - '@vitest/utils': 1.4.0 - acorn-walk: 8.3.2 - chai: 4.4.1 - debug: 4.3.4 - execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.9 - pathe: 1.1.2 - picocolors: 1.0.0 - std-env: 3.7.0 - strip-literal: 2.1.0 - tinybench: 2.6.0 - tinypool: 0.8.3 - vite: 5.3.5(@types/node@22.1.0) - vite-node: 1.4.0 - why-is-node-running: 2.2.2 - transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - - /weak-lru-cache@1.2.2: - resolution: {integrity: sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==} - dev: true - - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: true - - /why-is-node-running@2.2.2: - resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} - engines: {node: '>=8'} - hasBin: true - dependencies: - siginfo: 2.0.0 - stackback: 0.0.2 - dev: true - - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: true - - /yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: false - - /yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - dev: true - - /zarrita@0.4.0-next.14: - resolution: {integrity: sha512-B5a3Nw31EEaxjI0yh+CJuSdqDo3f0KnCrf8aZiDj4Nhrsi/Jau7Mtc7Yo6T3SmM6AInTmA/VNv/FKT5ZLfADTQ==} - dependencies: - '@zarrita/core': 0.1.0-next.12 - '@zarrita/indexing': 0.1.0-next.14 - '@zarrita/storage': 0.1.0-next.5 - dev: false + + /node-gyp-build-optional-packages@5.1.1: + resolution: + { + integrity: sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==, + } + hasBin: true + dependencies: + detect-libc: 2.0.2 + dev: true + + /node-releases@2.0.14: + resolution: + { + integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==, + } + dev: true + + /npm-run-path@5.3.0: + resolution: + { + integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + dependencies: + path-key: 4.0.0 + dev: true + + /nth-check@2.1.1: + resolution: + { + integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==, + } + dependencies: + boolbase: 1.0.0 + dev: true + + /nullthrows@1.1.1: + resolution: + { + integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==, + } + dev: true + + /numcodecs@0.3.1: + resolution: + { + integrity: sha512-ywIyGpJ+c6Ojktq9a8jsWSy12ZSUcW/W+I3jlH0q0zv9aR/ZiMsN7IrWaNq9YV2FRdLu6r/M6lp35jMA6fug/A==, + } + dependencies: + fflate: 0.8.2 + dev: false + + /object-assign@4.1.1: + resolution: + { + integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, + } + engines: { node: '>=0.10.0' } + dev: false + + /onetime@6.0.0: + resolution: + { + integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, + } + engines: { node: '>=12' } + dependencies: + mimic-fn: 4.0.0 + dev: true + + /ordered-binary@1.5.1: + resolution: + { + integrity: sha512-5VyHfHY3cd0iza71JepYG50My+YUbrFtGoUz2ooEydPyPM7Aai/JW098juLr+RG6+rDJuzNNTsEQu2DZa1A41A==, + } + dev: true + + /p-limit@5.0.0: + resolution: + { + integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==, + } + engines: { node: '>=18' } + dependencies: + yocto-queue: 1.0.0 + dev: true + + /parcel@2.12.0(typescript@5.3.3): + resolution: + { + integrity: sha512-W+gxAq7aQ9dJIg/XLKGcRT0cvnStFAQHPaI0pvD0U2l6IVLueUAm3nwN7lkY62zZNmlvNx6jNtE4wlbS+CyqSg==, + } + engines: { node: '>= 12.0.0' } + hasBin: true + peerDependenciesMeta: + '@parcel/core': + optional: true + dependencies: + '@parcel/config-default': 2.12.0(@parcel/core@2.12.0)(typescript@5.3.3) + '@parcel/core': 2.12.0 + '@parcel/diagnostic': 2.12.0 + '@parcel/events': 2.12.0 + '@parcel/fs': 2.12.0(@parcel/core@2.12.0) + '@parcel/logger': 2.12.0 + '@parcel/package-manager': 2.12.0(@parcel/core@2.12.0)(@swc/helpers@0.5.6) + '@parcel/reporter-cli': 2.12.0(@parcel/core@2.12.0) + '@parcel/reporter-dev-server': 2.12.0(@parcel/core@2.12.0) + '@parcel/reporter-tracer': 2.12.0(@parcel/core@2.12.0) + '@parcel/utils': 2.12.0 + chalk: 4.1.2 + commander: 7.2.0 + get-port: 4.2.0 + transitivePeerDependencies: + - '@swc/helpers' + - cssnano + - postcss + - purgecss + - relateurl + - srcset + - terser + - typescript + - uncss + dev: true + + /parent-module@1.0.1: + resolution: + { + integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, + } + engines: { node: '>=6' } + dependencies: + callsites: 3.1.0 + + /parse-json@5.2.0: + resolution: + { + integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, + } + engines: { node: '>=8' } + dependencies: + '@babel/code-frame': 7.23.5 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + /path-key@3.1.1: + resolution: + { + integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, + } + engines: { node: '>=8' } + dev: true + + /path-key@4.0.0: + resolution: + { + integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, + } + engines: { node: '>=12' } + dev: true + + /path-parse@1.0.7: + resolution: + { + integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, + } + dev: false + + /path-type@4.0.0: + resolution: + { + integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, + } + engines: { node: '>=8' } + + /pathe@1.1.2: + resolution: + { + integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==, + } + dev: true + + /pathval@1.1.1: + resolution: + { + integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==, + } + dev: true + + /picocolors@1.0.0: + resolution: + { + integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, + } + dev: true + + /picocolors@1.0.1: + resolution: + { + integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==, + } + dev: true + + /picomatch@2.3.1: + resolution: + { + integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, + } + engines: { node: '>=8.6' } + dev: true + + /pkg-types@1.0.3: + resolution: + { + integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==, + } + dependencies: + jsonc-parser: 3.2.1 + mlly: 1.6.1 + pathe: 1.1.2 + dev: true + + /postcss-value-parser@4.2.0: + resolution: + { + integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, + } + dev: true + + /postcss@8.4.41: + resolution: + { + integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==, + } + engines: { node: ^10 || ^12 || >=14 } + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 + dev: true + + /posthtml-parser@0.10.2: + resolution: + { + integrity: sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==, + } + engines: { node: '>=12' } + dependencies: + htmlparser2: 7.2.0 + dev: true + + /posthtml-parser@0.11.0: + resolution: + { + integrity: sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==, + } + engines: { node: '>=12' } + dependencies: + htmlparser2: 7.2.0 + dev: true + + /posthtml-render@3.0.0: + resolution: + { + integrity: sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==, + } + engines: { node: '>=12' } + dependencies: + is-json: 2.0.1 + dev: true + + /posthtml@0.16.6: + resolution: + { + integrity: sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==, + } + engines: { node: '>=12.0.0' } + dependencies: + posthtml-parser: 0.11.0 + posthtml-render: 3.0.0 + dev: true + + /prettier@3.3.2: + resolution: + { + integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==, + } + engines: { node: '>=14' } + hasBin: true + dev: true + + /pretty-format@29.7.0: + resolution: + { + integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + + /process@0.11.10: + resolution: + { + integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==, + } + engines: { node: '>= 0.6.0' } + dev: true + + /prop-types@15.8.1: + resolution: + { + integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==, + } + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: false + + /react-dom@18.3.0(react@18.3.0): + resolution: + { + integrity: sha512-zaKdLBftQJnvb7FtDIpZtsAIb2MZU087RM8bRDZU8LVCCFYjPTsDZJNFUWPcVz3HFSN1n/caxi0ca4B/aaVQGQ==, + } + peerDependencies: + react: ^18.3.0 + dependencies: + loose-envify: 1.4.0 + react: 18.3.0 + scheduler: 0.23.1 + dev: false + + /react-error-overlay@6.0.9: + resolution: + { + integrity: sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==, + } + dev: true + + /react-is@16.13.1: + resolution: + { + integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==, + } + dev: false + + /react-is@18.2.0: + resolution: + { + integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==, + } + + /react-refresh@0.9.0: + resolution: + { + integrity: sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==, + } + engines: { node: '>=0.10.0' } + dev: true + + /react-transition-group@4.4.5(react-dom@18.3.0)(react@18.3.0): + resolution: + { + integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==, + } + peerDependencies: + react: '>=16.6.0' + react-dom: '>=16.6.0' + dependencies: + '@babel/runtime': 7.24.5 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 18.3.0 + react-dom: 18.3.0(react@18.3.0) + dev: false + + /react@18.3.0: + resolution: + { + integrity: sha512-RPutkJftSAldDibyrjuku7q11d3oy6wKOyPe5K1HA/HwwrXcEqBdHsLypkC2FFYjP7bPUa6gbzSBhw4sY2JcDg==, + } + engines: { node: '>=0.10.0' } + dependencies: + loose-envify: 1.4.0 + dev: false + + /reference-spec-reader@0.2.0: + resolution: + { + integrity: sha512-q0mfCi5yZSSHXpCyxjgQeaORq3tvDsxDyzaadA/5+AbAUwRyRuuTh0aRQuE/vAOt/qzzxidJ5iDeu1cLHaNBlQ==, + } + dev: false + + /regenerator-runtime@0.13.11: + resolution: + { + integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==, + } + dev: true + + /regenerator-runtime@0.14.1: + resolution: + { + integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==, + } + dev: false + + /regl@2.1.0: + resolution: + { + integrity: sha512-oWUce/aVoEvW5l2V0LK7O5KJMzUSKeiOwFuJehzpSFd43dO5spP9r+sSUfhKtsky4u6MCqWJaRL+abzExynfTg==, + } + dev: false + + /resolve-from@4.0.0: + resolution: + { + integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, + } + engines: { node: '>=4' } + + /resolve@1.22.8: + resolution: + { + integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, + } + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: false + + /rollup@4.14.1: + resolution: + { + integrity: sha512-4LnHSdd3QK2pa1J6dFbfm1HN0D7vSK/ZuZTsdyUAlA6Rr1yTouUTL13HaDOGJVgby461AhrNGBS7sCGXXtT+SA==, + } + engines: { node: '>=18.0.0', npm: '>=8.0.0' } + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.14.1 + '@rollup/rollup-android-arm64': 4.14.1 + '@rollup/rollup-darwin-arm64': 4.14.1 + '@rollup/rollup-darwin-x64': 4.14.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.14.1 + '@rollup/rollup-linux-arm64-gnu': 4.14.1 + '@rollup/rollup-linux-arm64-musl': 4.14.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.14.1 + '@rollup/rollup-linux-riscv64-gnu': 4.14.1 + '@rollup/rollup-linux-s390x-gnu': 4.14.1 + '@rollup/rollup-linux-x64-gnu': 4.14.1 + '@rollup/rollup-linux-x64-musl': 4.14.1 + '@rollup/rollup-win32-arm64-msvc': 4.14.1 + '@rollup/rollup-win32-ia32-msvc': 4.14.1 + '@rollup/rollup-win32-x64-msvc': 4.14.1 + fsevents: 2.3.3 + dev: true + + /safe-buffer@5.2.1: + resolution: + { + integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, + } + dev: true + + /scheduler@0.23.1: + resolution: + { + integrity: sha512-5GKS5JGfiah1O38Vfa9srZE4s3wdHbwjlCrvIookrg2FO9aIwKLOJXuJQFlEfNcVSOXuaL2hzDeY20uVXcUtrw==, + } + dependencies: + loose-envify: 1.4.0 + dev: false + + /semver@7.5.4: + resolution: + { + integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==, + } + engines: { node: '>=10' } + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /shebang-command@2.0.0: + resolution: + { + integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, + } + engines: { node: '>=8' } + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@3.0.0: + resolution: + { + integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, + } + engines: { node: '>=8' } + dev: true + + /siginfo@2.0.0: + resolution: + { + integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==, + } + dev: true + + /signal-exit@4.1.0: + resolution: + { + integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, + } + engines: { node: '>=14' } + dev: true + + /source-map-js@1.2.0: + resolution: + { + integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==, + } + engines: { node: '>=0.10.0' } + dev: true + + /source-map@0.5.7: + resolution: + { + integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==, + } + engines: { node: '>=0.10.0' } + dev: false + + /source-map@0.6.1: + resolution: + { + integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, + } + engines: { node: '>=0.10.0' } + dev: true + + /srcset@4.0.0: + resolution: + { + integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==, + } + engines: { node: '>=12' } + dev: true + + /stable@0.1.8: + resolution: + { + integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==, + } + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + dev: true + + /stackback@0.0.2: + resolution: + { + integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==, + } + dev: true + + /std-env@3.7.0: + resolution: + { + integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==, + } + dev: true + + /strip-final-newline@3.0.0: + resolution: + { + integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, + } + engines: { node: '>=12' } + dev: true + + /strip-literal@2.1.0: + resolution: + { + integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==, + } + dependencies: + js-tokens: 9.0.0 + dev: true + + /stylis@4.2.0: + resolution: + { + integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==, + } + dev: false + + /supports-color@5.5.0: + resolution: + { + integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, + } + engines: { node: '>=4' } + dependencies: + has-flag: 3.0.0 + + /supports-color@7.2.0: + resolution: + { + integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, + } + engines: { node: '>=8' } + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: + { + integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, + } + engines: { node: '>= 0.4' } + dev: false + + /svgo@2.8.0: + resolution: + { + integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==, + } + engines: { node: '>=10.13.0' } + hasBin: true + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 4.3.0 + css-tree: 1.1.3 + csso: 4.2.0 + picocolors: 1.0.1 + stable: 0.1.8 + dev: true + + /term-size@2.2.1: + resolution: + { + integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==, + } + engines: { node: '>=8' } + dev: true + + /timsort@0.3.0: + resolution: + { + integrity: sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==, + } + dev: true + + /tinybench@2.6.0: + resolution: + { + integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==, + } + dev: true + + /tinypool@0.8.3: + resolution: + { + integrity: sha512-Ud7uepAklqRH1bvwy22ynrliC7Dljz7Tm8M/0RBUW+YRa4YHhZ6e4PpgE+fu1zr/WqB1kbeuVrdfeuyIBpy4tw==, + } + engines: { node: '>=14.0.0' } + dev: true + + /tinyspy@2.2.1: + resolution: + { + integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==, + } + engines: { node: '>=14.0.0' } + dev: true + + /to-fast-properties@2.0.0: + resolution: + { + integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, + } + engines: { node: '>=4' } + dev: false + + /to-regex-range@5.0.1: + resolution: + { + integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, + } + engines: { node: '>=8.0' } + dependencies: + is-number: 7.0.0 + dev: true + + /tslib@2.6.2: + resolution: + { + integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==, + } + dev: true + + /type-detect@4.0.8: + resolution: + { + integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==, + } + engines: { node: '>=4' } + dev: true + + /type-fest@0.20.2: + resolution: + { + integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, + } + engines: { node: '>=10' } + dev: true + + /typescript@5.3.3: + resolution: + { + integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==, + } + engines: { node: '>=14.17' } + hasBin: true + dev: true + + /ufo@1.5.3: + resolution: + { + integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==, + } + dev: true + + /undici-types@6.13.0: + resolution: + { + integrity: sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==, + } + dev: true + + /unzipit@1.4.3: + resolution: + { + integrity: sha512-gsq2PdJIWWGhx5kcdWStvNWit9FVdTewm4SEG7gFskWs+XCVaULt9+BwuoBtJiRE8eo3L1IPAOrbByNLtLtIlg==, + } + engines: { node: '>=12' } + dependencies: + uzip-module: 1.0.3 + dev: false + + /update-browserslist-db@1.0.13(browserslist@4.22.3): + resolution: + { + integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==, + } + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.3 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /utility-types@3.11.0: + resolution: + { + integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==, + } + engines: { node: '>= 4' } + dev: true + + /uzip-module@1.0.3: + resolution: + { + integrity: sha512-AMqwWZaknLM77G+VPYNZLEruMGWGzyigPK3/Whg99B3S6vGHuqsyl5ZrOv1UUF3paGK1U6PM0cnayioaryg/fA==, + } + dev: false + + /vite-node@1.4.0: + resolution: + { + integrity: sha512-VZDAseqjrHgNd4Kh8icYHWzTKSCZMhia7GyHfhtzLW33fZlG9SwsB6CEhgyVOWkJfJ2pFLrp/Gj1FSfAiqH9Lw==, + } + engines: { node: ^18.0.0 || >=20.0.0 } + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + pathe: 1.1.2 + picocolors: 1.0.1 + vite: 5.3.5(@types/node@22.1.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vite@5.3.5(@types/node@22.1.0): + resolution: + { + integrity: sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==, + } + engines: { node: ^18.0.0 || >=20.0.0 } + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 22.1.0 + esbuild: 0.21.5 + postcss: 8.4.41 + rollup: 4.14.1 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /vitest@1.4.0: + resolution: + { + integrity: sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==, + } + engines: { node: ^18.0.0 || >=20.0.0 } + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 1.4.0 + '@vitest/ui': 1.4.0 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@vitest/expect': 1.4.0 + '@vitest/runner': 1.4.0 + '@vitest/snapshot': 1.4.0 + '@vitest/spy': 1.4.0 + '@vitest/utils': 1.4.0 + acorn-walk: 8.3.2 + chai: 4.4.1 + debug: 4.3.4 + execa: 8.0.1 + local-pkg: 0.5.0 + magic-string: 0.30.9 + pathe: 1.1.2 + picocolors: 1.0.1 + std-env: 3.7.0 + strip-literal: 2.1.0 + tinybench: 2.6.0 + tinypool: 0.8.3 + vite: 5.3.5(@types/node@22.1.0) + vite-node: 1.4.0 + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /weak-lru-cache@1.2.2: + resolution: + { + integrity: sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==, + } + dev: true + + /which@2.0.2: + resolution: + { + integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, + } + engines: { node: '>= 8' } + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /why-is-node-running@2.2.2: + resolution: + { + integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==, + } + engines: { node: '>=8' } + hasBin: true + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + dev: true + + /yallist@4.0.0: + resolution: + { + integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, + } + dev: true + + /yaml@1.10.2: + resolution: + { + integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, + } + engines: { node: '>= 6' } + dev: false + + /yocto-queue@1.0.0: + resolution: + { + integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==, + } + engines: { node: '>=12.20' } + dev: true + + /zarrita@0.4.0-next.14: + resolution: + { + integrity: sha512-B5a3Nw31EEaxjI0yh+CJuSdqDo3f0KnCrf8aZiDj4Nhrsi/Jau7Mtc7Yo6T3SmM6AInTmA/VNv/FKT5ZLfADTQ==, + } + dependencies: + '@zarrita/core': 0.1.0-next.12 + '@zarrita/indexing': 0.1.0-next.14 + '@zarrita/storage': 0.1.0-next.5 + dev: false