From fd8f2f2fc888fe70eee0a6ff270b05f564d1b0d0 Mon Sep 17 00:00:00 2001 From: RoxaneBurri <43374563+RoxaneBurri@users.noreply.github.com> Date: Fri, 26 May 2023 08:23:33 +0200 Subject: [PATCH] feat: add explainable word cloud (#18) --------- Co-authored-by: RoxaneBurri Co-authored-by: spaenleh --- src/App.css | 6 - src/App.tsx | 49 ++++ src/Wordcloud.tsx | 192 ++++++++---- src/constants.ts | 9 +- src/data.ts | 59 +++- src/index.css | 3 +- src/main.tsx | 6 +- src/utils.test.ts | 76 ++--- src/utils.ts | 135 ++++++--- yarn.lock | 734 ++++++++++++++++++++++------------------------ 10 files changed, 721 insertions(+), 548 deletions(-) delete mode 100644 src/App.css create mode 100644 src/App.tsx diff --git a/src/App.css b/src/App.css deleted file mode 100644 index 902778b..0000000 --- a/src/App.css +++ /dev/null @@ -1,6 +0,0 @@ -#root { - max-width: 1280px; - margin: 0 auto; - padding: 2rem; - text-align: center; -} diff --git a/src/App.tsx b/src/App.tsx new file mode 100644 index 0000000..46f3f56 --- /dev/null +++ b/src/App.tsx @@ -0,0 +1,49 @@ +import { useState } from "react"; +import Wordcloud from "./Wordcloud"; +import { defaultWords1 } from "./data"; + +const App = () => { + const [showBounds, setShowBounds] = useState(false); + const [showWordBounds, setShowWordBounds] = useState(false); + + return ( +
+
+ Settings +
+
+ setShowBounds((p) => !p)} + /> + +
+ +
+ setShowWordBounds((p) => !p)} + /> + +
+ +
+ +
+
+
+ +
+ ); +}; +export default App; diff --git a/src/Wordcloud.tsx b/src/Wordcloud.tsx index 8fb018c..5aed7c0 100644 --- a/src/Wordcloud.tsx +++ b/src/Wordcloud.tsx @@ -1,8 +1,14 @@ import { boundParent, futurPosition, + getAreaRectangle, getBoundingRect, + getBoundingWordCloud, + getMoveDirection, + getNewPositions, + placeFirstWord, Rectangle, + slideWords, Word, } from "./utils"; import * as React from "react"; @@ -11,7 +17,6 @@ import { CONTAINER_HEIGHT, CONTAINER_WIDTH, DEFAULT_RECT, - NUMBER_OF_INTERVALS, } from "./constants"; const CUT_OFF = 0.5; @@ -20,15 +25,19 @@ export const MAX_FONT_SIZE = 20; export const MIN_FONT_SIZE = 6; type Props = { - data: Word[]; + data: { category: string; words: Word[] }[]; width?: number; height?: number; + showBounds?: boolean; + showWordBounds?: boolean; }; const Wordcloud = ({ data, width = CONTAINER_WIDTH, height = CONTAINER_HEIGHT, + showBounds = false, + showWordBounds = false, }: Props) => { const [words, setWords] = React.useState(data); @@ -37,39 +46,79 @@ const Wordcloud = ({ const updateWords = () => { setWords((prevWords) => { - const wordsToPlace = prevWords - .map((w) => ({ ...w, rect: getBoundingRect(w.id) || DEFAULT_RECT })) - .sort((a, b) => (a.coef > b.coef ? -1 : 1)); - const rectsToPlace = wordsToPlace.map((w) => w.rect); - const firstRect = { ...rectsToPlace[0] }; - const centeredRect = { - width: firstRect.width, - height: firstRect.height, - x: centerX, - y: centerY, - }; + prevWords.forEach((cat) => ({ + ...cat, + words: cat.words.sort((a, b) => (a.coef > b.coef ? -1 : 1)), + })); + const wordCloudOfWordCloud = prevWords.map(({ words }) => { + const wordsToPlace = words.map((w) => ({ + ...w, + rect: getBoundingRect(w.id) || DEFAULT_RECT, + })); + + wordsToPlace.sort((a, b) => (a.coef > b.coef ? -1 : 1)); + const rectsToPlace = wordsToPlace.map((w) => w.rect); + const firstRect = { ...rectsToPlace[0] }; + + const centeredRect = placeFirstWord(firstRect, centerX, centerY); - // Initialize the weights with the value 1, of the size of the number of intervals - const weight = new Array(NUMBER_OF_INTERVALS).fill(1); + const newPositions = getNewPositions(rectsToPlace, centeredRect, 7) + + return wordsToPlace.map((word, idx) => ( + { + ...word, + rect: newPositions[idx], + })); + }); + + const bigWordCloudsToPlace = wordCloudOfWordCloud.map((w) => ({ + rect: getBoundingWordCloud(w) || DEFAULT_RECT, + })); + bigWordCloudsToPlace.sort((a, b) => + getAreaRectangle(a.rect) > getAreaRectangle(b.rect) ? -1 : 1 + ); - const newPositions = rectsToPlace.slice(1).reduce( - (placedElements, rect) => { - const futureWord = futurPosition(rect, placedElements, 3, weight); - return [...placedElements, futureWord]; - }, - [centeredRect] + const bigWordCloudsRectToPlace = bigWordCloudsToPlace.map((w) => w.rect); + const firstWordCloud = { ...bigWordCloudsRectToPlace[0] }; + const centeredWordCloud = placeFirstWord( + firstWordCloud, + centerX, + centerY ); - return wordsToPlace.map((word, idx) => ({ - ...word, - rect: newPositions[idx], + console.log("CENTERED", centeredWordCloud) + + const newPositionWordCloud = getNewPositions(bigWordCloudsRectToPlace, centeredWordCloud,1) + + // slide word inside the word cloud + const slideCoeff = wordCloudOfWordCloud.map((wordCloud, idx) => + slideWords( + wordCloud.map((w) => w.rect), + getMoveDirection([centeredWordCloud], newPositionWordCloud[idx]) + ) + ); + return prevWords.map((wordCloud, idx) => ({ + ...wordCloud, + words: wordCloud.words.map((w, idxw) => ({ + ...w, + rect: slideCoeff[idx][idxw], + })), })); }); }; // casting is fine here https://codereview.stackexchange.com/questions/135363/filtering-undefined-elements-out-of-an-array - const rects = words.map((w) => w.rect).filter(Boolean) as Rectangle[]; - + const rects = words + .map( + (wordCloud) => + wordCloud.words.map((w) => w.rect).filter(Boolean) as Rectangle[] + ) + .reduce((acc, wordCloud) => [...acc, ...wordCloud], []); + const bounds = words.map((wordCloud) => + boundParent( + wordCloud.words.map((w) => w.rect).filter(Boolean) as Rectangle[] + ) + ); const bound = rects.length ? boundParent(rects) : { @@ -81,7 +130,7 @@ const Wordcloud = ({ React.useEffect(() => { updateWords(); - }, []); + }, [data]); return ( - {words.map((word) => { - const fontSize = - (word.coef - CUT_OFF) * - (1 / (1 - CUT_OFF)) ** 2 * - (MAX_FONT_SIZE - MIN_FONT_SIZE) + - MIN_FONT_SIZE; - - return ( - - {word.text} - - ); - })} + {words.map((wordCloud) => ( + + {wordCloud.words.map((word) => { + const fontSize = + (word.coef - CUT_OFF) * + (1 / (1 - CUT_OFF)) ** 2 * + (MAX_FONT_SIZE - MIN_FONT_SIZE) + + MIN_FONT_SIZE; + + return ( + + {word.text} + + ); + })} + + ))} + {showBounds && + bounds.map((b) => ( + + ))} + {showWordBounds && + words.map((wordCloud) => + wordCloud.words.map(({ text, rect: initRect }) => { + const rect = { + width: initRect?.width, + height: initRect?.height, + x: (initRect?.x || 0) - (initRect?.width || 0) / 2, + y: (initRect?.y || 0) - (initRect?.height || 0) / 2, + }; + return ( + + + + {text} + + + ); + }) + )} ); }; diff --git a/src/constants.ts b/src/constants.ts index 5ac6f44..1cb4af8 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -1,5 +1,5 @@ -export const CONTAINER_WIDTH = 500; -export const CONTAINER_HEIGHT = 300; +export const CONTAINER_WIDTH = 700; +export const CONTAINER_HEIGHT = 500; export const CENTER_Y = CONTAINER_HEIGHT / 2; export const CENTER_X = CONTAINER_WIDTH / 2; @@ -10,5 +10,10 @@ export const DEFAULT_RECT = { width: 10, height: 10, }; +export const MARGIN_WIDTH = 10; +export const MARGIN_HEIGHT = -5; + +export const WORD_CLOUD_MARGIN_WIDTH = 0; +export const WORD_CLOUD_MARGIN_HEIGHT = 0; export const NUMBER_OF_INTERVALS = 6; diff --git a/src/data.ts b/src/data.ts index 67cb9c0..1a1ebec 100644 --- a/src/data.ts +++ b/src/data.ts @@ -1,22 +1,49 @@ import { Word } from "./utils"; -export const defaultWords1: Word[] = [ - { id: "word-1", text: " Big word ", coef: 0.99 }, - { id: "word-2", text: "hello", coef: 0.8 }, - { id: "word-4", text: "caramba", coef: 0.97 }, - { id: "word-3", text: "all", coef: 0.74 }, - { id: "word-5", text: "Piniata", coef: 0.6 }, - { id: "word-6", text: "Taxi", coef: 0.93 }, - { id: "word-7", text: "papa", coef: 0.94 }, - { id: "word-8", text: "chicita", coef: 0.66 }, - { id: "word-9", text: "hellicopter", coef: 0.92 }, - { id: "word-10", text: "chiold", coef: 0.75 }, - { id: "word-11", text: "text", coef: 0.81 }, - { id: "word-12", text: "document", coef: 0.77 }, - { id: "word-13", text: "text", coef: 0.89 }, - { id: "word-14", text: "finger", coef: 0.91 }, - { id: "word-15", text: "girl", coef: 0.88 }, +export const defaultWords1: { category: string; words: Word[] }[] = [ + { + category: "1", + words: [ + { id: "word-1", text: " Big word ", coef: 0.99 }, + { id: "word-2", text: "hello", coef: 0.8 }, + { id: "word-4", text: "caramba", coef: 0.97 }, + ], + }, + { + category: "2", + words: [ + { id: "word-1", text: " Big word ", coef: 0.99 }, + { id: "word-2", text: "hello", coef: 0.8 }, + { id: "word-4", text: "caramba", coef: 0.97 }, + { id: "word-3", text: "all", coef: 0.94 }, + { id: "word-5", text: "Piniata", coef: 0.6 }, + { id: "word-6", text: "Taxi", coef: 0.93 }, + { id: "word-7", text: "papa", coef: 0.94 }, + { id: "word-8", text: "chicita", coef: 0.66 }, + { id: "word-9", text: "hellicopter", coef: 0.92 }, + { id: "word-10", text: "chiold", coef: 0.75 }, + { id: "word-11", text: "text", coef: 0.81 }, + { id: "word-12", text: "document", coef: 0.77 }, + { id: "word-13", text: "text", coef: 0.89 }, + { id: "word-14", text: "finger", coef: 0.91 }, + { id: "word-15", text: "girl", coef: 0.88 }, + ], + }, + { + category: "3", + words: [ + { id: "word-1", text: " Big word ", coef: 0.6 }, + { id: "word-2", text: "hello world", coef: 0.8 }, + { id: "word-4", text: "caramba", coef: 0.97 }, + { id: "word-3", text: "all", coef: 0.74 }, + { id: "word-13", text: "grand-pa", coef: 0.89 }, + { id: "word-14", text: "finger", coef: 0.91 }, + { id: "word-15", text: "coffin", coef: 0.8 }, + ], + }, ]; + +export const explainWordCloud = [{ key: "class1", value: defaultWords1 }]; export const defaultWords2: Word[] = [ { id: "word-1", text: "group", coef: 0.99 }, { id: "word-2", text: "people", coef: 0.99 }, diff --git a/src/index.css b/src/index.css index e87754f..a6b9545 100644 --- a/src/index.css +++ b/src/index.css @@ -24,8 +24,9 @@ a:hover { } body { - margin: 0; + margin: auto; display: flex; + flex-direction: column; place-items: center; min-width: 320px; min-height: 100vh; diff --git a/src/main.tsx b/src/main.tsx index ebd2324..3087f25 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,12 +1,10 @@ import React from "react"; import ReactDOM from "react-dom/client"; import "./index.css"; -import Wordcloud from "./Wordcloud"; - -import { defaultWords1, defaultWords2 } from "./data"; +import App from "./App"; ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( - + ); diff --git a/src/utils.test.ts b/src/utils.test.ts index bc6b62d..048cfba 100644 --- a/src/utils.test.ts +++ b/src/utils.test.ts @@ -10,9 +10,11 @@ import { randomInterval, cumulativeBins, slideWords, - getWordSlide, boundParent, rangeWithStep, + getAreaRectangle, + placeFirstWord, + getNewPositions, } from "./utils"; const origin: Coordinate = { @@ -27,6 +29,13 @@ const originRectangle: Rectangle = { height: 1, }; +const rectangle: Rectangle = { + x: 1, + y: 0, + width: 10, + height: 5, +}; + describe("areCentersTooClose", () => { it("No collisions", () => { expect(areCentersTooClose(origin, { x: 6, y: 0 }, 2, 2)).toBe(false); @@ -212,28 +221,28 @@ describe("slideWords", () => { it("On one direction", () => { expect( slideWords([{ x: 0, y: 0, width: 1, height: 1 }], { x: 0, y: 2 }) - ).toEqual([{ x: 0, y: 2, width: 1, height: 1 }]); + ).toEqual([{ x: -10, y: 7, width: 1, height: 1 }]); expect( slideWords([{ x: 1, y: 4, width: 4, height: 4 }], { x: 0, y: -2 }) - ).toEqual([{ x: 1, y: 2, width: 4, height: 4 }]); + ).toEqual([{ x: -9, y: 7, width: 4, height: 4 }]); expect( slideWords([{ x: 2, y: 0, width: 1, height: 1 }], { x: 2, y: 0 }) - ).toEqual([{ x: 4, y: 0, width: 1, height: 1 }]); + ).toEqual([{ x: -6, y: 5, width: 1, height: 1 }]); expect( slideWords([{ x: 2, y: 0, width: 1, height: 1 }], { x: -2, y: 0 }) - ).toEqual([{ x: 0, y: 0, width: 1, height: 1 }]); + ).toEqual([{ x: -10, y: 5, width: 1, height: 1 }]); }); it("On multiple direction", () => { expect( slideWords([{ x: 2, y: 0, width: 1, height: 1 }], { x: 2, y: 4 }) - ).toEqual([{ x: 4, y: 4, width: 1, height: 1 }]); + ).toEqual([{ x: -6, y: 9, width: 1, height: 1 }]); expect( slideWords([{ x: 2, y: 4, width: 1, height: 1 }], { x: -2, y: -2 }) - ).toEqual([{ x: 0, y: 2, width: 1, height: 1 }]); + ).toEqual([{ x: -10, y: 7, width: 1, height: 1 }]); expect( slideWords([{ x: 2, y: 0, width: 1, height: 1 }], { x: -1, y: 4 }) - ).toEqual([{ x: 1, y: 4, width: 1, height: 1 }]); + ).toEqual([{ x: -9, y: 9, width: 1, height: 1 }]); }); }); @@ -248,8 +257,8 @@ describe("slideWords", () => { { x: 1, y: 2 } ) ).toEqual([ - { x: 2, y: 6, width: 4, height: 4 }, - { x: 7, y: 11, width: 4, height: 4 }, + { x: -8, y: 11, width: 4, height: 4 }, + { x: -3, y: 16, width: 4, height: 4 }, ]); expect( slideWords( @@ -260,39 +269,13 @@ describe("slideWords", () => { { x: -1, y: -2 } ) ).toEqual([ - { x: 0, y: 2, width: 4, height: 4 }, - { x: 5, y: 7, width: 4, height: 4 }, + { x: -10, y: 7, width: 4, height: 4 }, + { x: -5, y: 12, width: 4, height: 4 }, ]); }); }); }); -describe("getSliceOfWords", () => { - it("No move", () => { - expect( - getWordSlide( - { x: 3, y: 3, width: 4, height: 4 }, - { x: 1, y: 1, width: 4, height: 4 } - ) - ).toEqual({ x: 0, y: 0 }); - }); - - it("Move on the right", () => { - expect( - getWordSlide( - { x: 2, y: 3, width: 4, height: 4 }, - { x: 1, y: 1, width: 4, height: 4 } - ) - ).toEqual({ x: 1, y: 0 }); - expect( - getWordSlide( - { x: 7, y: 8, width: 4, height: 4 }, - { x: 3, y: 5, width: 4, height: 4 } - ) - ).toEqual({ x: -2, y: -1 }); - }); -}); - describe("BoundParent", () => { it("With one rectangle", () => { expect(boundParent([{ x: 2, y: 2, width: 2, height: 2 }])).toEqual({ @@ -326,3 +309,20 @@ describe("Range with step", () => { expect(rangeWithStep(0, 9, 2)).toEqual([0, 2, 4, 6, 8]); }); }); + +describe("Get area rectangle", () => { + it("Get area", () => { + expect(getAreaRectangle(rectangle)).toEqual(50); + }); +}); + +describe("Place first item", () => { + it("Put in centre", () => { + expect(placeFirstWord(rectangle, 0, 0)).toEqual({ + x: 0, + y: 0, + width: 10, + height: 5, + }); + }); +}); diff --git a/src/utils.ts b/src/utils.ts index 4c4ad58..d6be338 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -2,7 +2,11 @@ import { CONTAINER_HEIGHT, CONTAINER_WIDTH, DEFAULT_RECT, + MARGIN_HEIGHT, + MARGIN_WIDTH, NUMBER_OF_INTERVALS, + WORD_CLOUD_MARGIN_HEIGHT, + WORD_CLOUD_MARGIN_WIDTH, } from "./constants"; export type Word = { @@ -41,8 +45,40 @@ export const getBoundingRect = ( return { x: bbox.x, y: bbox.y, - width: bbox.width + 10, - height: bbox.height - 5, + width: bbox.width + MARGIN_WIDTH, + height: bbox.height + MARGIN_HEIGHT, + }; +}; + +// This function returns the bound of the word cloud +export const boundParent = (rects: Rectangle[]): Rectangle => { + const topLeftPoints: Coordinate[] = rects.map((r) => ({ + x: r.x - r.width / 2, + y: r.y - r.height / 2, + })); + const bottomRightPoints: Coordinate[] = rects.map((r) => ({ + x: r.x + r.width / 2, + y: r.y + r.height / 2, + })); + + const xMin = Math.min(...topLeftPoints.map((r) => r.x)); + const xMax = Math.max(...bottomRightPoints.map((r) => r.x)); + const yMin = Math.min(...topLeftPoints.map((r) => r.y)); + const yMax = Math.max(...bottomRightPoints.map((r) => r.y)); + + console.log({ x: xMin, y: yMin, width: xMax - xMin, height: yMax - yMin }) + + return { x: xMin, y: yMin, width: xMax - xMin, height: yMax - yMin }; +}; + +export const getBoundingWordCloud = (word: Word[]): Rectangle => { + const rect = word.map((w) => w.rect as Rectangle); + + const tightBound = boundParent(rect); + return { + ...tightBound, + width: tightBound.width + WORD_CLOUD_MARGIN_WIDTH, + height: tightBound.height + WORD_CLOUD_MARGIN_HEIGHT, }; }; @@ -218,16 +254,16 @@ export const futurPosition = ( const hypothenus = Math.sqrt(moveDirection.x ** 2 + moveDirection.y ** 2); const stepX = (step / hypothenus) * moveDirection.x; const stepY = (step / hypothenus) * moveDirection.y; - const futurPosition: Rectangle = { + const futurRectPosition: Rectangle = { ...movedWord, x: movedWord.x + (Math.abs(stepX) > 0.01 ? stepX : 0), y: movedWord.y + (Math.abs(stepY) > 0.01 ? stepY : 0), }; // Test if the word can be move over the hypotenuse - if (allCollision(futurPosition, passRect)) { - const onlyMoveOverX = { ...futurPosition, y: movedWord.y }; - const onlyMoveOverY = { ...futurPosition, x: movedWord.x }; + if (allCollision(futurRectPosition, passRect) && !areAboveBound(futurRectPosition)) { + const onlyMoveOverX = { ...futurRectPosition, y: movedWord.y }; + const onlyMoveOverY = { ...futurRectPosition, x: movedWord.x }; const xColl = allCollision(onlyMoveOverX, passRect); const yColl = allCollision(onlyMoveOverY, passRect); if (xColl) { @@ -241,7 +277,7 @@ export const futurPosition = ( movedWord = { ...onlyMoveOverX }; } } else { - movedWord = { ...futurPosition }; + movedWord = { ...futurRectPosition }; } displacement = Math.abs(stepX) + Math.abs(stepY); iter++; @@ -249,6 +285,14 @@ export const futurPosition = ( return movedWord; }; +export const areAboveBound = (rect: Rectangle): Boolean => { + if (rect.x + rect.width/2 > CONTAINER_WIDTH || rect.x - rect.width/2 < 0 || rect.y + rect.height/2 > CONTAINER_HEIGHT || rect.y - rect.height/2 < 0){ + return true + } else { + return false + } +} + // This function indicates whether rectangles are in a collision export const areCentersTooClose = ( centerA: Coordinate, @@ -272,52 +316,51 @@ export const allCollision = (word: Rectangle, passRect: Rectangle[]): boolean => ) .some((t) => t === true); -// This function returns the bound of the word cloud -export const boundParent = (rects: Rectangle[]): Rectangle => { - const topLeftPoints: Coordinate[] = rects.map((r) => ({ - x: r.x - r.width / 2, - y: r.y - r.height / 2, - })); - const bottomRightPoints: Coordinate[] = rects.map((r) => ({ - x: r.x + r.width / 2, - y: r.y + r.height / 2, - })); - - const xMin = Math.min(...topLeftPoints.map((r) => r.x)); - const xMax = Math.max(...bottomRightPoints.map((r) => r.x)); - const yMin = Math.min(...topLeftPoints.map((r) => r.y)); - const yMax = Math.max(...bottomRightPoints.map((r) => r.y)); - - return { x: xMin, y: yMin, width: xMax - xMin, height: yMax - yMin }; -}; - -// This function gets the slide of the word cloud -export const getWordSlide = ( - parent: Rectangle, - bound: Rectangle -): Coordinate => { - const boundCentered: Rectangle = { - x: bound.x + bound.width / 2, - y: bound.y + bound.height / 2, - width: bound.width, - height: bound.height, - }; - - const differenceX = boundCentered.x - parent.x; - const differenceY = boundCentered.y - parent.y; - - return { x: differenceX, y: differenceY }; -}; - // This function slides an array of rectangles export const slideWords = ( words: Rectangle[], slice: Coordinate ): Rectangle[] => { words.map((w) => { - w.x = w.x + slice.x; - w.y = w.y + slice.y; + w.x = w.x - 10 + slice.x; + w.y = w.y + 5 + slice.y; }); return words; }; + +// This function returns the aera of a rectangle +export const getAreaRectangle = (rect: Rectangle): number => { + return rect.height * rect.width; +}; + +// This function places the first word in the centre of the rectangle +export const placeFirstWord = ( + rectToPlace: Rectangle, + centerX: number, + centerY: number +): Rectangle => { + const centeredRect = { + width: rectToPlace.width, + height: rectToPlace.height, + x: centerX, + y: centerY, + }; + + return centeredRect; +}; + +// This function returns the new position of a list of items +export const getNewPositions = (itemsToPlace: Rectangle[], centeredRect: Rectangle, step: number): Rectangle[] => { + + // Initialize the weights with the value 1, of the size of the number of intervals + const weight = new Array(NUMBER_OF_INTERVALS).fill(1); + + const newPositions = itemsToPlace.slice(1).reduce((placedItems, rect) => { + const futureItem = futurPosition(rect, placedItems, step, weight) + return [...placedItems, futureItem] + }, [centeredRect]) + + return newPositions + +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 02fce96..86f6453 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6,85 +6,85 @@ __metadata: cacheKey: 8 "@ampproject/remapping@npm:^2.2.0": - version: 2.2.0 - resolution: "@ampproject/remapping@npm:2.2.0" + version: 2.2.1 + resolution: "@ampproject/remapping@npm:2.2.1" dependencies: - "@jridgewell/gen-mapping": ^0.1.0 + "@jridgewell/gen-mapping": ^0.3.0 "@jridgewell/trace-mapping": ^0.3.9 - checksum: d74d170d06468913921d72430259424b7e4c826b5a7d39ff839a29d547efb97dc577caa8ba3fb5cf023624e9af9d09651afc3d4112a45e2050328abc9b3a2292 + checksum: 03c04fd526acc64a1f4df22651186f3e5ef0a9d6d6530ce4482ec9841269cf7a11dbb8af79237c282d721c5312024ff17529cd72cc4768c11e999b58e2302079 languageName: node linkType: hard -"@babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/code-frame@npm:7.18.6" +"@babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.18.6, @babel/code-frame@npm:^7.21.4": + version: 7.21.4 + resolution: "@babel/code-frame@npm:7.21.4" dependencies: "@babel/highlight": ^7.18.6 - checksum: 195e2be3172d7684bf95cff69ae3b7a15a9841ea9d27d3c843662d50cdd7d6470fd9c8e64be84d031117e4a4083486effba39f9aef6bbb2c89f7f21bcfba33ba + checksum: e5390e6ec1ac58dcef01d4f18eaf1fd2f1325528661ff6d4a5de8979588b9f5a8e852a54a91b923846f7a5c681b217f0a45c2524eb9560553160cd963b7d592c languageName: node linkType: hard -"@babel/compat-data@npm:^7.20.5": - version: 7.21.0 - resolution: "@babel/compat-data@npm:7.21.0" - checksum: dbf632c532f9c75ba0be7d1dc9f6cd3582501af52f10a6b90415d634ec5878735bd46064c91673b10317af94d4cc99c4da5bd9d955978cdccb7905fc33291e4d +"@babel/compat-data@npm:^7.21.5": + version: 7.21.7 + resolution: "@babel/compat-data@npm:7.21.7" + checksum: 28747eb3fc084d088ba2db0336f52118cfa730a57bdbac81630cae1f38ad0336605b95b3390325937802f344e0b7fa25e2f1b67e3ee2d7383b877f88dee0e51c languageName: node linkType: hard "@babel/core@npm:^7.20.12": - version: 7.21.0 - resolution: "@babel/core@npm:7.21.0" + version: 7.21.8 + resolution: "@babel/core@npm:7.21.8" dependencies: "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.21.0 - "@babel/helper-compilation-targets": ^7.20.7 - "@babel/helper-module-transforms": ^7.21.0 - "@babel/helpers": ^7.21.0 - "@babel/parser": ^7.21.0 + "@babel/code-frame": ^7.21.4 + "@babel/generator": ^7.21.5 + "@babel/helper-compilation-targets": ^7.21.5 + "@babel/helper-module-transforms": ^7.21.5 + "@babel/helpers": ^7.21.5 + "@babel/parser": ^7.21.8 "@babel/template": ^7.20.7 - "@babel/traverse": ^7.21.0 - "@babel/types": ^7.21.0 + "@babel/traverse": ^7.21.5 + "@babel/types": ^7.21.5 convert-source-map: ^1.7.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.2.2 semver: ^6.3.0 - checksum: 357f4dd3638861ceebf6d95ff49ad8b902065ee8b7b352621deed5666c2a6d702a48ca7254dba23ecae2a0afb67d20f90db7dd645c3b75e35e72ad9776c671aa + checksum: f28118447355af2a90bd340e2e60699f94c8020517eba9b71bf8ebff62fa9e00d63f076e033f9dfb97548053ad62ada45fafb0d96584b1a90e8aef5a3b8241b1 languageName: node linkType: hard -"@babel/generator@npm:^7.21.0, @babel/generator@npm:^7.21.1": - version: 7.21.1 - resolution: "@babel/generator@npm:7.21.1" +"@babel/generator@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/generator@npm:7.21.5" dependencies: - "@babel/types": ^7.21.0 + "@babel/types": ^7.21.5 "@jridgewell/gen-mapping": ^0.3.2 "@jridgewell/trace-mapping": ^0.3.17 jsesc: ^2.5.1 - checksum: 69085a211ff91a7a608ee3f86e6fcb9cf5e724b756d792a713b0c328a671cd3e423e1ef1b12533f366baba0616caffe0a7ba9d328727eab484de5961badbef00 + checksum: 78af737b9dd701d4c657f9731880430fa1c177767b562f4e8a330a7fe72a4abe857e3d24de4e6d9dafc1f6a11f894162d27e523d7e5948ff9e3925a0ce9867c4 languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/helper-compilation-targets@npm:7.20.7" +"@babel/helper-compilation-targets@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/helper-compilation-targets@npm:7.21.5" dependencies: - "@babel/compat-data": ^7.20.5 - "@babel/helper-validator-option": ^7.18.6 + "@babel/compat-data": ^7.21.5 + "@babel/helper-validator-option": ^7.21.0 browserslist: ^4.21.3 lru-cache: ^5.1.1 semver: ^6.3.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: 8c32c873ba86e2e1805b30e0807abd07188acbe00ebb97576f0b09061cc65007f1312b589eccb4349c5a8c7f8bb9f2ab199d41da7030bf103d9f347dcd3a3cf4 + checksum: 0edecb9c970ddc22ebda1163e77a7f314121bef9e483e0e0d9a5802540eed90d5855b6bf9bce03419b35b2e07c323e62d0353b153fa1ca34f17dbba897a83c25 languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/helper-environment-visitor@npm:7.18.9" - checksum: b25101f6162ddca2d12da73942c08ad203d7668e06663df685634a8fde54a98bc015f6f62938e8554457a592a024108d45b8f3e651fd6dcdb877275b73cc4420 +"@babel/helper-environment-visitor@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/helper-environment-visitor@npm:7.21.5" + checksum: e436af7b62956e919066448013a3f7e2cd0b51010c26c50f790124dcd350be81d5597b4e6ed0a4a42d098a27de1e38561cd7998a116a42e7899161192deac9a6 languageName: node linkType: hard @@ -107,44 +107,44 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-module-imports@npm:7.18.6" +"@babel/helper-module-imports@npm:^7.21.4": + version: 7.21.4 + resolution: "@babel/helper-module-imports@npm:7.21.4" dependencies: - "@babel/types": ^7.18.6 - checksum: f393f8a3b3304b1b7a288a38c10989de754f01d29caf62ce7c4e5835daf0a27b81f3ac687d9d2780d39685aae7b55267324b512150e7b2be967b0c493b6a1def + "@babel/types": ^7.21.4 + checksum: bd330a2edaafeb281fbcd9357652f8d2666502567c0aad71db926e8499c773c9ea9c10dfaae30122452940326d90c8caff5c649ed8e1bf15b23f858758d3abc6 languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.21.0": - version: 7.21.2 - resolution: "@babel/helper-module-transforms@npm:7.21.2" +"@babel/helper-module-transforms@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/helper-module-transforms@npm:7.21.5" dependencies: - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-module-imports": ^7.18.6 - "@babel/helper-simple-access": ^7.20.2 + "@babel/helper-environment-visitor": ^7.21.5 + "@babel/helper-module-imports": ^7.21.4 + "@babel/helper-simple-access": ^7.21.5 "@babel/helper-split-export-declaration": ^7.18.6 "@babel/helper-validator-identifier": ^7.19.1 "@babel/template": ^7.20.7 - "@babel/traverse": ^7.21.2 - "@babel/types": ^7.21.2 - checksum: 8a1c129a4f90bdf97d8b6e7861732c9580f48f877aaaafbc376ce2482febebcb8daaa1de8bc91676d12886487603f8c62a44f9e90ee76d6cac7f9225b26a49e1 + "@babel/traverse": ^7.21.5 + "@babel/types": ^7.21.5 + checksum: 1ccfc88830675a5d485d198e918498f9683cdd46f973fdd4fe1c85b99648fb70f87fca07756c7a05dc201bd9b248c74ced06ea80c9991926ac889f53c3659675 languageName: node linkType: hard "@babel/helper-plugin-utils@npm:^7.19.0, @babel/helper-plugin-utils@npm:^7.20.2": - version: 7.20.2 - resolution: "@babel/helper-plugin-utils@npm:7.20.2" - checksum: f6cae53b7fdb1bf3abd50fa61b10b4470985b400cc794d92635da1e7077bb19729f626adc0741b69403d9b6e411cddddb9c0157a709cc7c4eeb41e663be5d74b + version: 7.21.5 + resolution: "@babel/helper-plugin-utils@npm:7.21.5" + checksum: 6f086e9a84a50ea7df0d5639c8f9f68505af510ea3258b3c8ac8b175efdfb7f664436cb48996f71791a1350ba68f47ad3424131e8e718c5e2ad45564484cbb36 languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.20.2": - version: 7.20.2 - resolution: "@babel/helper-simple-access@npm:7.20.2" +"@babel/helper-simple-access@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/helper-simple-access@npm:7.21.5" dependencies: - "@babel/types": ^7.20.2 - checksum: ad1e96ee2e5f654ffee2369a586e5e8d2722bf2d8b028a121b4c33ebae47253f64d420157b9f0a8927aea3a9e0f18c0103e74fdd531815cf3650a0a4adca11a1 + "@babel/types": ^7.21.5 + checksum: ad212beaa24be3864c8c95bee02f840222457ccf5419991e2d3e3e39b0f75b77e7e857e0bf4ed428b1cd97acefc87f3831bdb0b9696d5ad0557421f398334fc3 languageName: node linkType: hard @@ -157,10 +157,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.19.4": - version: 7.19.4 - resolution: "@babel/helper-string-parser@npm:7.19.4" - checksum: b2f8a3920b30dfac81ec282ac4ad9598ea170648f8254b10f475abe6d944808fb006aab325d3eb5a8ad3bea8dfa888cfa6ef471050dae5748497c110ec060943 +"@babel/helper-string-parser@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/helper-string-parser@npm:7.21.5" + checksum: 36c0ded452f3858e67634b81960d4bde1d1cd2a56b82f4ba2926e97864816021c885f111a7cf81de88a0ed025f49d84a393256700e9acbca2d99462d648705d8 languageName: node linkType: hard @@ -171,21 +171,21 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.18.6": +"@babel/helper-validator-option@npm:^7.21.0": version: 7.21.0 resolution: "@babel/helper-validator-option@npm:7.21.0" checksum: 8ece4c78ffa5461fd8ab6b6e57cc51afad59df08192ed5d84b475af4a7193fc1cb794b59e3e7be64f3cdc4df7ac78bf3dbb20c129d7757ae078e6279ff8c2f07 languageName: node linkType: hard -"@babel/helpers@npm:^7.21.0": - version: 7.21.0 - resolution: "@babel/helpers@npm:7.21.0" +"@babel/helpers@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/helpers@npm:7.21.5" dependencies: "@babel/template": ^7.20.7 - "@babel/traverse": ^7.21.0 - "@babel/types": ^7.21.0 - checksum: 9370dad2bb665c551869a08ac87c8bdafad53dbcdce1f5c5d498f51811456a3c005d9857562715151a0f00b2e912ac8d89f56574f837b5689f5f5072221cdf54 + "@babel/traverse": ^7.21.5 + "@babel/types": ^7.21.5 + checksum: a6f74b8579713988e7f5adf1a986d8b5255757632ba65b2552f0f609ead5476edb784044c7e4b18f3681ee4818ca9d08c41feb9bd4e828648c25a00deaa1f9e4 languageName: node linkType: hard @@ -200,21 +200,12 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.0, @babel/parser@npm:^7.21.2": - version: 7.21.2 - resolution: "@babel/parser@npm:7.21.2" +"@babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.4, @babel/parser@npm:^7.21.5, @babel/parser@npm:^7.21.8": + version: 7.21.8 + resolution: "@babel/parser@npm:7.21.8" bin: parser: ./bin/babel-parser.js - checksum: e2b89de2c63d4cdd2cafeaea34f389bba729727eec7a8728f736bc472a59396059e3e9fe322c9bed8fd126d201fb609712949dc8783f4cae4806acd9a73da6ff - languageName: node - linkType: hard - -"@babel/parser@npm:^7.21.4": - version: 7.21.5 - resolution: "@babel/parser@npm:7.21.5" - bin: - parser: ./bin/babel-parser.js - checksum: c7ec0dae795f2a43885fdd5c1c53c7f11b3428628ae82ebe1e1537cb3d13e25e7993549e026662a3e05dcc743b595f82b25f0a49ef9155459a9a424eedb7e2b0 + checksum: 1b9a820fedfb6ef179e6ffa1dbc080808882949dec68340a616da2aa354af66ea2886bd68e61bd444d270aa0b24ad6273e3cfaf17d6878c34bf2521becacb353 languageName: node linkType: hard @@ -251,185 +242,185 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.21.0, @babel/traverse@npm:^7.21.2": - version: 7.21.2 - resolution: "@babel/traverse@npm:7.21.2" +"@babel/traverse@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/traverse@npm:7.21.5" dependencies: - "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.21.1 - "@babel/helper-environment-visitor": ^7.18.9 + "@babel/code-frame": ^7.21.4 + "@babel/generator": ^7.21.5 + "@babel/helper-environment-visitor": ^7.21.5 "@babel/helper-function-name": ^7.21.0 "@babel/helper-hoist-variables": ^7.18.6 "@babel/helper-split-export-declaration": ^7.18.6 - "@babel/parser": ^7.21.2 - "@babel/types": ^7.21.2 + "@babel/parser": ^7.21.5 + "@babel/types": ^7.21.5 debug: ^4.1.0 globals: ^11.1.0 - checksum: d851e3f5cfbdc2fac037a014eae7b0707709de50f7d2fbb82ffbf932d3eeba90a77431529371d6e544f8faaf8c6540eeb18fdd8d1c6fa2b61acea0fb47e18d4b + checksum: b403733fa7d858f0c8e224f0434a6ade641bc469a4f92975363391e796629d5bf53e544761dfe85039aab92d5389ebe7721edb309d7a5bb7df2bf74f37bf9f47 languageName: node linkType: hard -"@babel/types@npm:^7.18.6, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.0, @babel/types@npm:^7.21.2, @babel/types@npm:^7.8.3": - version: 7.21.2 - resolution: "@babel/types@npm:7.21.2" +"@babel/types@npm:^7.18.6, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.0, @babel/types@npm:^7.21.4, @babel/types@npm:^7.21.5, @babel/types@npm:^7.8.3": + version: 7.21.5 + resolution: "@babel/types@npm:7.21.5" dependencies: - "@babel/helper-string-parser": ^7.19.4 + "@babel/helper-string-parser": ^7.21.5 "@babel/helper-validator-identifier": ^7.19.1 to-fast-properties: ^2.0.0 - checksum: a45a52acde139e575502c6de42c994bdbe262bafcb92ae9381fb54cdf1a3672149086843fda655c7683ce9806e998fd002bbe878fa44984498d0fdc7935ce7ff + checksum: 43242a99c612d13285ee4af46cc0f1066bcb6ffd38307daef7a76e8c70f36cfc3255eb9e75c8e768b40e761176c313aec4d5c0b9d97a21e494d49d5fd123a9f7 languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/android-arm64@npm:0.16.17" +"@esbuild/android-arm64@npm:0.17.18": + version: 0.17.18 + resolution: "@esbuild/android-arm64@npm:0.17.18" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@esbuild/android-arm@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/android-arm@npm:0.16.17" +"@esbuild/android-arm@npm:0.17.18": + version: 0.17.18 + resolution: "@esbuild/android-arm@npm:0.17.18" conditions: os=android & cpu=arm languageName: node linkType: hard -"@esbuild/android-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/android-x64@npm:0.16.17" +"@esbuild/android-x64@npm:0.17.18": + version: 0.17.18 + resolution: "@esbuild/android-x64@npm:0.17.18" conditions: os=android & cpu=x64 languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/darwin-arm64@npm:0.16.17" +"@esbuild/darwin-arm64@npm:0.17.18": + version: 0.17.18 + resolution: "@esbuild/darwin-arm64@npm:0.17.18" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/darwin-x64@npm:0.16.17" +"@esbuild/darwin-x64@npm:0.17.18": + version: 0.17.18 + resolution: "@esbuild/darwin-x64@npm:0.17.18" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/freebsd-arm64@npm:0.16.17" +"@esbuild/freebsd-arm64@npm:0.17.18": + version: 0.17.18 + resolution: "@esbuild/freebsd-arm64@npm:0.17.18" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/freebsd-x64@npm:0.16.17" +"@esbuild/freebsd-x64@npm:0.17.18": + version: 0.17.18 + resolution: "@esbuild/freebsd-x64@npm:0.17.18" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-arm64@npm:0.16.17" +"@esbuild/linux-arm64@npm:0.17.18": + version: 0.17.18 + resolution: "@esbuild/linux-arm64@npm:0.17.18" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-arm@npm:0.16.17" +"@esbuild/linux-arm@npm:0.17.18": + version: 0.17.18 + resolution: "@esbuild/linux-arm@npm:0.17.18" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-ia32@npm:0.16.17" +"@esbuild/linux-ia32@npm:0.17.18": + version: 0.17.18 + resolution: "@esbuild/linux-ia32@npm:0.17.18" conditions: os=linux & cpu=ia32 languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-loong64@npm:0.16.17" +"@esbuild/linux-loong64@npm:0.17.18": + version: 0.17.18 + resolution: "@esbuild/linux-loong64@npm:0.17.18" conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-mips64el@npm:0.16.17" +"@esbuild/linux-mips64el@npm:0.17.18": + version: 0.17.18 + resolution: "@esbuild/linux-mips64el@npm:0.17.18" conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-ppc64@npm:0.16.17" +"@esbuild/linux-ppc64@npm:0.17.18": + version: 0.17.18 + resolution: "@esbuild/linux-ppc64@npm:0.17.18" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-riscv64@npm:0.16.17" +"@esbuild/linux-riscv64@npm:0.17.18": + version: 0.17.18 + resolution: "@esbuild/linux-riscv64@npm:0.17.18" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-s390x@npm:0.16.17" +"@esbuild/linux-s390x@npm:0.17.18": + version: 0.17.18 + resolution: "@esbuild/linux-s390x@npm:0.17.18" conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-x64@npm:0.16.17" +"@esbuild/linux-x64@npm:0.17.18": + version: 0.17.18 + resolution: "@esbuild/linux-x64@npm:0.17.18" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/netbsd-x64@npm:0.16.17" +"@esbuild/netbsd-x64@npm:0.17.18": + version: 0.17.18 + resolution: "@esbuild/netbsd-x64@npm:0.17.18" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/openbsd-x64@npm:0.16.17" +"@esbuild/openbsd-x64@npm:0.17.18": + version: 0.17.18 + resolution: "@esbuild/openbsd-x64@npm:0.17.18" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/sunos-x64@npm:0.16.17" +"@esbuild/sunos-x64@npm:0.17.18": + version: 0.17.18 + resolution: "@esbuild/sunos-x64@npm:0.17.18" conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/win32-arm64@npm:0.16.17" +"@esbuild/win32-arm64@npm:0.17.18": + version: 0.17.18 + resolution: "@esbuild/win32-arm64@npm:0.17.18" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/win32-ia32@npm:0.16.17" +"@esbuild/win32-ia32@npm:0.17.18": + version: 0.17.18 + resolution: "@esbuild/win32-ia32@npm:0.17.18" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/win32-x64@npm:0.16.17" +"@esbuild/win32-x64@npm:0.17.18": + version: 0.17.18 + resolution: "@esbuild/win32-x64@npm:0.17.18" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -441,24 +432,14 @@ __metadata: languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.1.0": - version: 0.1.1 - resolution: "@jridgewell/gen-mapping@npm:0.1.1" - dependencies: - "@jridgewell/set-array": ^1.0.0 - "@jridgewell/sourcemap-codec": ^1.4.10 - checksum: 3bcc21fe786de6ffbf35c399a174faab05eb23ce6a03e8769569de28abbf4facc2db36a9ddb0150545ae23a8d35a7cf7237b2aa9e9356a7c626fb4698287d5cc - languageName: node - linkType: hard - -"@jridgewell/gen-mapping@npm:^0.3.2": - version: 0.3.2 - resolution: "@jridgewell/gen-mapping@npm:0.3.2" +"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2": + version: 0.3.3 + resolution: "@jridgewell/gen-mapping@npm:0.3.3" dependencies: "@jridgewell/set-array": ^1.0.1 "@jridgewell/sourcemap-codec": ^1.4.10 "@jridgewell/trace-mapping": ^0.3.9 - checksum: 1832707a1c476afebe4d0fbbd4b9434fdb51a4c3e009ab1e9938648e21b7a97049fa6009393bdf05cab7504108413441df26d8a3c12193996e65493a4efb6882 + checksum: 4a74944bd31f22354fc01c3da32e83c19e519e3bbadafa114f6da4522ea77dd0c2842607e923a591d60a76699d819a2fbb6f3552e277efdb9b58b081390b60ab languageName: node linkType: hard @@ -469,46 +450,53 @@ __metadata: languageName: node linkType: hard -"@jridgewell/set-array@npm:^1.0.0, @jridgewell/set-array@npm:^1.0.1": +"@jridgewell/set-array@npm:^1.0.1": version: 1.1.2 resolution: "@jridgewell/set-array@npm:1.1.2" checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13": +"@jridgewell/sourcemap-codec@npm:1.4.14": version: 1.4.14 resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" checksum: 61100637b6d173d3ba786a5dff019e1a74b1f394f323c1fee337ff390239f053b87266c7a948777f4b1ee68c01a8ad0ab61e5ff4abb5a012a0b091bec391ab97 languageName: node linkType: hard +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13": + version: 1.4.15 + resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" + checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 + languageName: node + linkType: hard + "@jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9": - version: 0.3.17 - resolution: "@jridgewell/trace-mapping@npm:0.3.17" + version: 0.3.18 + resolution: "@jridgewell/trace-mapping@npm:0.3.18" dependencies: "@jridgewell/resolve-uri": 3.1.0 "@jridgewell/sourcemap-codec": 1.4.14 - checksum: 9d703b859cff5cd83b7308fd457a431387db5db96bd781a63bf48e183418dd9d3d44e76b9e4ae13237f6abeeb25d739ec9215c1d5bfdd08f66f750a50074a339 + checksum: 0572669f855260808c16fe8f78f5f1b4356463b11d3f2c7c0b5580c8ba1cbf4ae53efe9f627595830856e57dbac2325ac17eb0c3dd0ec42102e6f227cc289c02 languageName: node linkType: hard -"@microsoft/api-extractor-model@npm:7.26.7": - version: 7.26.7 - resolution: "@microsoft/api-extractor-model@npm:7.26.7" +"@microsoft/api-extractor-model@npm:7.26.8": + version: 7.26.8 + resolution: "@microsoft/api-extractor-model@npm:7.26.8" dependencies: "@microsoft/tsdoc": 0.14.2 "@microsoft/tsdoc-config": ~0.16.1 "@rushstack/node-core-library": 3.58.0 - checksum: eafdbec592cad7bee6010ed83a9a5914729664029bf64013f173688d194b3888c750fbee0364e160ebc2ad8b6374a5d2cce9a65e2d5335a2e8267473d47701a2 + checksum: ce1bafefbfad59d16a7d4bbc24702cae42910f286c45d50a60758f4318db594c3e6c8cf5fd2145668cd14f1364f84927781788d1fd45840e443156dde15d0553 languageName: node linkType: hard "@microsoft/api-extractor@npm:^7.34.4": - version: 7.34.7 - resolution: "@microsoft/api-extractor@npm:7.34.7" + version: 7.34.8 + resolution: "@microsoft/api-extractor@npm:7.34.8" dependencies: - "@microsoft/api-extractor-model": 7.26.7 + "@microsoft/api-extractor-model": 7.26.8 "@microsoft/tsdoc": 0.14.2 "@microsoft/tsdoc-config": ~0.16.1 "@rushstack/node-core-library": 3.58.0 @@ -522,7 +510,7 @@ __metadata: typescript: ~4.8.4 bin: api-extractor: bin/api-extractor - checksum: b7253040cf1018de1211858dd19dd436d39c9921a93058776e78bc3f40d32b787ede4231a07d03c061a63542e8d4a959b1d4c7601d25903683640e40d1ca32db + checksum: 2757a080032788642c9659e7fffc0d0dda7fd29d023ce548760a08fc0569f025f22b84e38061cf61e3570c5ab5298d4178e9d36b78cd8fc75ffd2893485b32f7 languageName: node linkType: hard @@ -686,9 +674,9 @@ __metadata: linkType: hard "@types/chai@npm:*, @types/chai@npm:^4.3.4": - version: 4.3.4 - resolution: "@types/chai@npm:4.3.4" - checksum: 571184967beb03bf64c4392a13a7d44e72da9af5a1e83077ff81c39cf59c0fda2a5c78d2005084601cf8f3d11726608574d8b5b4a0e3e9736792807afd926cd0 + version: 4.3.5 + resolution: "@types/chai@npm:4.3.5" + checksum: c8f26a88c6b5b53a3275c7f5ff8f107028e3cbb9ff26795fff5f3d9dea07106a54ce9e2dce5e40347f7c4cc35657900aaf0c83934a25a1ae12e61e0f5516e431 languageName: node linkType: hard @@ -700,9 +688,9 @@ __metadata: linkType: hard "@types/node@npm:*": - version: 18.14.6 - resolution: "@types/node@npm:18.14.6" - checksum: 2f88f482cabadc6dbddd627a1674239e68c3c9beab56eb4ae2309fb96fd17fc3a509d99b0309bafe13b58529574f49ecf3a583f2ebe2896dd32fe4be436dc96e + version: 20.1.1 + resolution: "@types/node@npm:20.1.1" + checksum: 47961ee23f873c14c3f6045422ff3059f3bfb10231ef3080a7a72d7215cc8c2623fa8cedb7b246305962fa9c1e0c9e381e04b12eb3e9ec5d076025c6231ac8da languageName: node linkType: hard @@ -714,29 +702,29 @@ __metadata: linkType: hard "@types/react-dom@npm:^18.0.11": - version: 18.0.11 - resolution: "@types/react-dom@npm:18.0.11" + version: 18.2.4 + resolution: "@types/react-dom@npm:18.2.4" dependencies: "@types/react": "*" - checksum: 579691e4d5ec09688087568037c35edf8cfb1ab3e07f6c60029280733ee7b5c06d66df6fcc90786702c93ac8cb13bc7ff16c79ddfc75d082938fbaa36e1cdbf4 + checksum: 8301f35cf1cbfec8c723e9477aecf87774e3c168bd457d353b23c45064737213d3e8008b067c6767b7b08e4f2b3823ee239242a6c225fc91e7f8725ef8734124 languageName: node linkType: hard "@types/react@npm:*, @types/react@npm:^18.0.28": - version: 18.0.28 - resolution: "@types/react@npm:18.0.28" + version: 18.2.6 + resolution: "@types/react@npm:18.2.6" dependencies: "@types/prop-types": "*" "@types/scheduler": "*" csstype: ^3.0.2 - checksum: e752df961105e5127652460504785897ca6e77259e0da8f233f694f9e8f451cde7fa0709d4456ade0ff600c8ce909cfe29f9b08b9c247fa9b734e126ec53edd7 + checksum: dea9d232d8df7ac357367a69dcb557711ab3d5501807ffa77cebeee73d49ee94d095f298e36853c63ed47cce097eee4c7eae2aaa8c02fac3f0171ec1b523a819 languageName: node linkType: hard "@types/scheduler@npm:*": - version: 0.16.2 - resolution: "@types/scheduler@npm:0.16.2" - checksum: b6b4dcfeae6deba2e06a70941860fb1435730576d3689225a421280b7742318d1548b3d22c1f66ab68e414f346a9542f29240bc955b6332c5b11e561077583bc + version: 0.16.3 + resolution: "@types/scheduler@npm:0.16.3" + checksum: 2b0aec39c24268e3ce938c5db2f2e77f5c3dd280e05c262d9c2fe7d890929e4632a6b8e94334017b66b45e4f92a5aa42ba3356640c2a1175fa37bef2f5200767 languageName: node linkType: hard @@ -755,47 +743,46 @@ __metadata: languageName: node linkType: hard -"@vitest/expect@npm:0.29.2": - version: 0.29.2 - resolution: "@vitest/expect@npm:0.29.2" +"@vitest/expect@npm:0.29.8": + version: 0.29.8 + resolution: "@vitest/expect@npm:0.29.8" dependencies: - "@vitest/spy": 0.29.2 - "@vitest/utils": 0.29.2 + "@vitest/spy": 0.29.8 + "@vitest/utils": 0.29.8 chai: ^4.3.7 - checksum: 90754976b1e7e200dad9296646d69f828b23bcc8e104d06ba34a7d25dd0bf45cc67ec9b4644afa0ecb9756ff296e4f69ca0ddf1da9f3592e24a3720b281e3a04 + checksum: a80f9c352a979eb46690be2ea54b5ca391d3575b4053be80c1359325fb0cea913d6217f48d54e64ff5dda3b15bd7a6873a5f8128e8c098f7ebad1365d4065c5e languageName: node linkType: hard -"@vitest/runner@npm:0.29.2": - version: 0.29.2 - resolution: "@vitest/runner@npm:0.29.2" +"@vitest/runner@npm:0.29.8": + version: 0.29.8 + resolution: "@vitest/runner@npm:0.29.8" dependencies: - "@vitest/utils": 0.29.2 + "@vitest/utils": 0.29.8 p-limit: ^4.0.0 pathe: ^1.1.0 - checksum: 254ccfbcb11695805fbc63173030a86e70a8e8b5d3adfdae3ec7918eebb82e4d77dd0146807c0d7f77237ffda6f5d9a451f4b5fd2e3d91f3c817794694a1bbcc + checksum: 8305370ff6c3fc6aea7189bd138ee4ff0e040a959c0fe6ab64bcb9e70ae5bf836b8dc058b1de288aa75c9d1cd648e5f112e7cd5691c03b7a1d32466d8bfc71a9 languageName: node linkType: hard -"@vitest/spy@npm:0.29.2": - version: 0.29.2 - resolution: "@vitest/spy@npm:0.29.2" +"@vitest/spy@npm:0.29.8": + version: 0.29.8 + resolution: "@vitest/spy@npm:0.29.8" dependencies: tinyspy: ^1.0.2 - checksum: e8225a833c168c760a7e9a36c982b4c79861c4fc9748048a718e1550894cddf9e42bad5ec4ff97aa1f36e204caeb05e2e95b4d8363327e33c35ca373f9b063a3 + checksum: 7b1607b696275bf94a497e92d7d10c466b9b3d08726bbedb3735bdf57f003763a9516e328af22746829526ce573f87eb6119ab64ce7db95794b2d220aa53b607 languageName: node linkType: hard -"@vitest/utils@npm:0.29.2": - version: 0.29.2 - resolution: "@vitest/utils@npm:0.29.2" +"@vitest/utils@npm:0.29.8": + version: 0.29.8 + resolution: "@vitest/utils@npm:0.29.8" dependencies: cli-truncate: ^3.1.0 diff: ^5.1.0 loupe: ^2.3.6 - picocolors: ^1.0.0 pretty-format: ^27.5.1 - checksum: fcb3c47ec5a55e55f9f49d6ccbc35e622981fdc9a0edd21a8865217eab596b3a610a6befe5c785662ecb3b52debae19d9090ebe2d7dc13833160d68c067347d5 + checksum: fa18cccb6ab5295e43a1a43b9c022f070646a893adb0561c50b3e0c39f05ea74cbf379aef22ef485ea9acbf2bb8f0a224d457fd4f16b9e1bf509c13052c7f08b languageName: node linkType: hard @@ -1069,9 +1056,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.30001449": - version: 1.0.30001458 - resolution: "caniuse-lite@npm:1.0.30001458" - checksum: 258cc5a25babbbfe483bf788c6f321a19400ff80b2bf156b360bac09a6f9f4da44516350d187a30395667cb142c682d9ea96577ea0df236d35f76234b07ccb41 + version: 1.0.30001486 + resolution: "caniuse-lite@npm:1.0.30001486" + checksum: 5e8c2ba2679e4ad17dea6d2761a6449b814441bfeac81af6cc9d58af187df6af4b79b27befcbfc4a557e720b21c0399a7d1911c8705922e38938dcc0f40b5d4b languageName: node linkType: hard @@ -1252,9 +1239,9 @@ __metadata: linkType: hard "csstype@npm:^3.0.2": - version: 3.1.1 - resolution: "csstype@npm:3.1.1" - checksum: 1f7b4f5fdd955b7444b18ebdddf3f5c699159f13e9cf8ac9027ae4a60ae226aef9bbb14a6e12ca7dba3358b007cee6354b116e720262867c398de6c955ea451d + version: 3.1.2 + resolution: "csstype@npm:3.1.2" + checksum: e1a52e6c25c1314d6beef5168da704ab29c5186b877c07d822bd0806717d9a265e8493a2e35ca7e68d0f5d472d43fac1cdce70fd79fd0853dff81f3028d857b5 languageName: node linkType: hard @@ -1308,9 +1295,9 @@ __metadata: linkType: hard "electron-to-chromium@npm:^1.4.284": - version: 1.4.313 - resolution: "electron-to-chromium@npm:1.4.313" - checksum: 694c379e0800e55e3e2966f73557bfc3bad66e1eb120928d33e8f0619b59ec057eb94ecb27a06e6f7ea1892565f6b8a87b03129a8243baa0d1ccea9579040a83 + version: 1.4.387 + resolution: "electron-to-chromium@npm:1.4.387" + checksum: 3c1ddddad5b9d86aa68cbe002e76b9ce1ed2b220b766f33249ea40cd3ae7be8af93f75a05f27a3e13e039801d936ce302b61f74cb054023180369541e4a31197 languageName: node linkType: hard @@ -1351,32 +1338,32 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.16.14": - version: 0.16.17 - resolution: "esbuild@npm:0.16.17" - dependencies: - "@esbuild/android-arm": 0.16.17 - "@esbuild/android-arm64": 0.16.17 - "@esbuild/android-x64": 0.16.17 - "@esbuild/darwin-arm64": 0.16.17 - "@esbuild/darwin-x64": 0.16.17 - "@esbuild/freebsd-arm64": 0.16.17 - "@esbuild/freebsd-x64": 0.16.17 - "@esbuild/linux-arm": 0.16.17 - "@esbuild/linux-arm64": 0.16.17 - "@esbuild/linux-ia32": 0.16.17 - "@esbuild/linux-loong64": 0.16.17 - "@esbuild/linux-mips64el": 0.16.17 - "@esbuild/linux-ppc64": 0.16.17 - "@esbuild/linux-riscv64": 0.16.17 - "@esbuild/linux-s390x": 0.16.17 - "@esbuild/linux-x64": 0.16.17 - "@esbuild/netbsd-x64": 0.16.17 - "@esbuild/openbsd-x64": 0.16.17 - "@esbuild/sunos-x64": 0.16.17 - "@esbuild/win32-arm64": 0.16.17 - "@esbuild/win32-ia32": 0.16.17 - "@esbuild/win32-x64": 0.16.17 +"esbuild@npm:^0.17.5": + version: 0.17.18 + resolution: "esbuild@npm:0.17.18" + dependencies: + "@esbuild/android-arm": 0.17.18 + "@esbuild/android-arm64": 0.17.18 + "@esbuild/android-x64": 0.17.18 + "@esbuild/darwin-arm64": 0.17.18 + "@esbuild/darwin-x64": 0.17.18 + "@esbuild/freebsd-arm64": 0.17.18 + "@esbuild/freebsd-x64": 0.17.18 + "@esbuild/linux-arm": 0.17.18 + "@esbuild/linux-arm64": 0.17.18 + "@esbuild/linux-ia32": 0.17.18 + "@esbuild/linux-loong64": 0.17.18 + "@esbuild/linux-mips64el": 0.17.18 + "@esbuild/linux-ppc64": 0.17.18 + "@esbuild/linux-riscv64": 0.17.18 + "@esbuild/linux-s390x": 0.17.18 + "@esbuild/linux-x64": 0.17.18 + "@esbuild/netbsd-x64": 0.17.18 + "@esbuild/openbsd-x64": 0.17.18 + "@esbuild/sunos-x64": 0.17.18 + "@esbuild/win32-arm64": 0.17.18 + "@esbuild/win32-ia32": 0.17.18 + "@esbuild/win32-x64": 0.17.18 dependenciesMeta: "@esbuild/android-arm": optional: true @@ -1424,7 +1411,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 4c2cc609ecfb426554bc3f75beb92d89eb2d0c515cfceebaa36c7599d7dcaab7056b70f6d6b51e72b45951ddf9021ee28e356cf205f8e42cc055d522312ea30c + checksum: 900b333f649fd89804216fb61fb5a0ffadc6dc37a2ec3b5981b588f72821676ea649a7c0ec785f0dbe6e774080b084c8af5f6ee7adbc1b138faf2a8c35e2c69c languageName: node linkType: hard @@ -1506,13 +1493,13 @@ __metadata: linkType: hard "fs-extra@npm:^11.1.0": - version: 11.1.0 - resolution: "fs-extra@npm:11.1.0" + version: 11.1.1 + resolution: "fs-extra@npm:11.1.1" dependencies: graceful-fs: ^4.2.0 jsonfile: ^6.0.1 universalify: ^2.0.0 - checksum: 5ca476103fa1f5ff4a9b3c4f331548f8a3c1881edaae323a4415d3153b5dc11dc6a981c8d1dd93eec8367ceee27b53f8bd27eecbbf66ffcdd04927510c171e7f + checksum: fb883c68245b2d777fbc1f2082c9efb084eaa2bbf9fddaa366130d196c03608eebef7fb490541276429ee1ca99f317e2d73e96f5ca0999eefedf5a624ae1edfd languageName: node linkType: hard @@ -1642,20 +1629,13 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.2": +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 languageName: node linkType: hard -"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": - version: 4.2.10 - resolution: "graceful-fs@npm:4.2.10" - checksum: 3f109d70ae123951905d85032ebeae3c2a5a7a997430df00ea30df0e3a6c60cf6689b109654d6fdacd28810a053348c4d14642da1d075049e6be1ba5216218da - languageName: node - linkType: hard - "has-flag@npm:^3.0.0": version: 3.0.0 resolution: "has-flag@npm:3.0.0" @@ -1802,15 +1782,6 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.9.0": - version: 2.11.0 - resolution: "is-core-module@npm:2.11.0" - dependencies: - has: ^1.0.3 - checksum: f96fd490c6b48eb4f6d10ba815c6ef13f410b0ba6f7eb8577af51697de523e5f2cd9de1c441b51d27251bf0e4aebc936545e33a5d26d5d51f28d25698d4a8bab - languageName: node - linkType: hard - "is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" @@ -2173,10 +2144,10 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^4.0.0": - version: 4.2.4 - resolution: "minipass@npm:4.2.4" - checksum: c664f2ae4401408d1e7a6e4f50aca45f87b1b0634bc9261136df5c378e313e77355765f73f59c4a5abcadcdf43d83fcd3eb14e4a7cdcce8e36508e2290345753 +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: 425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea languageName: node linkType: hard @@ -2208,15 +2179,15 @@ __metadata: languageName: node linkType: hard -"mlly@npm:^1.1.0, mlly@npm:^1.1.1": - version: 1.1.1 - resolution: "mlly@npm:1.1.1" +"mlly@npm:^1.1.0, mlly@npm:^1.2.0": + version: 1.2.0 + resolution: "mlly@npm:1.2.0" dependencies: acorn: ^8.8.2 pathe: ^1.1.0 - pkg-types: ^1.0.1 - ufo: ^1.1.0 - checksum: 6bc4ffe0f4d061c7f6bd6bfe80c675eece0814ec3ac8efecbde2ecf337f31ddd78a8b35836ffcf66f37f17404a7cc094ab694122121b50f337bf435697f4ab9c + pkg-types: ^1.0.2 + ufo: ^1.1.1 + checksum: 640b019eb20e8e556bd623141b861d47e5c05f8af00210376ce1015912695dbd93a38cfe7ba18ca04f00e75645378f0f94a48a90bfa6e1b5dee1f0ec9c14eed1 languageName: node linkType: hard @@ -2234,12 +2205,12 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.3.4": - version: 3.3.4 - resolution: "nanoid@npm:3.3.4" +"nanoid@npm:^3.3.6": + version: 3.3.6 + resolution: "nanoid@npm:3.3.6" bin: nanoid: bin/nanoid.cjs - checksum: 2fddd6dee994b7676f008d3ffa4ab16035a754f4bb586c61df5a22cf8c8c94017aadd360368f47d653829e0569a92b129979152ff97af23a558331e47e37cd9c + checksum: 7d0eda657002738aa5206107bd0580aead6c95c460ef1bdd0b1a87a9c7ae6277ac2e9b945306aaa5b32c6dcb7feaf462d0f552e7f8b5718abfc6ead5c94a71b3 languageName: node linkType: hard @@ -2399,25 +2370,25 @@ __metadata: languageName: node linkType: hard -"pkg-types@npm:^1.0.1": - version: 1.0.2 - resolution: "pkg-types@npm:1.0.2" +"pkg-types@npm:^1.0.2": + version: 1.0.3 + resolution: "pkg-types@npm:1.0.3" dependencies: jsonc-parser: ^3.2.0 - mlly: ^1.1.1 + mlly: ^1.2.0 pathe: ^1.1.0 - checksum: 2d0a70c1721c2ebbe075b912531a4f43136e6658fdcc59dc76c39966201ab5ddf265868d1211943183406d4b70d373c17e3b176487bc2020ea737d030b0fd080 + checksum: 4b305c834b912ddcc8a0fe77530c0b0321fe340396f84cbb87aecdbc126606f47f2178f23b8639e71a4870f9631c7217aef52ffed0ae17ea2dbbe7e43d116a6e languageName: node linkType: hard -"postcss@npm:^8.4.21": - version: 8.4.21 - resolution: "postcss@npm:8.4.21" +"postcss@npm:^8.4.23": + version: 8.4.23 + resolution: "postcss@npm:8.4.23" dependencies: - nanoid: ^3.3.4 + nanoid: ^3.3.6 picocolors: ^1.0.0 source-map-js: ^1.0.2 - checksum: e39ac60ccd1542d4f9d93d894048aac0d686b3bb38e927d8386005718e6793dbbb46930f0a523fe382f1bbd843c6d980aaea791252bf5e176180e5a4336d9679 + checksum: 8bb9d1b2ea6e694f8987d4f18c94617971b2b8d141602725fedcc2222fdc413b776a6e1b969a25d627d7b2681ca5aabb56f59e727ef94072e1b6ac8412105a2f languageName: node linkType: hard @@ -2499,13 +2470,13 @@ __metadata: linkType: hard "readable-stream@npm:^3.6.0": - version: 3.6.1 - resolution: "readable-stream@npm:3.6.1" + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" dependencies: inherits: ^2.0.3 string_decoder: ^1.1.1 util-deprecate: ^1.0.1 - checksum: b7ab0508dba3c37277b9e43c0a970ea27635375698859a687f558c3c9393154b6c4f39c3aa5689641de183fffa26771bc1a45878ddde0236ad18fc8fdfde50ea + checksum: bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d languageName: node linkType: hard @@ -2518,19 +2489,6 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.22.1": - version: 1.22.1 - resolution: "resolve@npm:1.22.1" - dependencies: - is-core-module: ^2.9.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: 07af5fc1e81aa1d866cbc9e9460fbb67318a10fa3c4deadc35c3ad8a898ee9a71a86a65e4755ac3195e0ea0cfbe201eb323ebe655ce90526fd61917313a34e4e - languageName: node - linkType: hard - "resolve@npm:~1.19.0": version: 1.19.0 resolution: "resolve@npm:1.19.0" @@ -2554,19 +2512,6 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.22.1#~builtin": - version: 1.22.1 - resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin::version=1.22.1&hash=c3c19d" - dependencies: - is-core-module: ^2.9.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: 5656f4d0bedcf8eb52685c1abdf8fbe73a1603bb1160a24d716e27a57f6cecbe2432ff9c89c2bd57542c3a7b9d14b1882b73bfe2e9d7849c9a4c0b8b39f02b8b - languageName: node - linkType: hard - "resolve@patch:resolve@~1.19.0#~builtin": version: 1.19.0 resolution: "resolve@patch:resolve@npm%3A1.19.0#~builtin::version=1.19.0&hash=c3c19d" @@ -2615,9 +2560,9 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^3.10.0": - version: 3.17.3 - resolution: "rollup@npm:3.17.3" +"rollup@npm:^3.21.0": + version: 3.21.5 + resolution: "rollup@npm:3.21.5" dependencies: fsevents: ~2.3.2 dependenciesMeta: @@ -2625,7 +2570,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: afce20a6ef4a613e5803eff7fb17a3efe740e326257b43f48bdbe10783f3eae79587d7e455234bc68f3c3154a50f2c29c85d4d2a42cdebcc17a5abeaeb04e0ed + checksum: dfe2e4002fbfbc0a67591595f137c23082c639b1a790854ebe8611264b945e77caaf8c8ec9365faf9580f5df9cb9a954915443df020dc2ee391c477659484cf0 languageName: node linkType: hard @@ -2670,7 +2615,18 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:~7.3.0": +"semver@npm:^7.3.4, semver@npm:^7.3.5": + version: 7.5.0 + resolution: "semver@npm:7.5.0" + dependencies: + lru-cache: ^6.0.0 + bin: + semver: bin/semver.js + checksum: 2d266937756689a76f124ffb4c1ea3e1bbb2b263219f90ada8a11aebebe1280b13bb76cca2ca96bdee3dbc554cbc0b24752eb895b2a51577aa644427e9229f2b + languageName: node + linkType: hard + +"semver@npm:~7.3.0": version: 7.3.8 resolution: "semver@npm:7.3.8" dependencies: @@ -2778,9 +2734,9 @@ __metadata: linkType: hard "std-env@npm:^3.3.1": - version: 3.3.2 - resolution: "std-env@npm:3.3.2" - checksum: c02256bb041ba1870d23f8360bc7e47a9cf1fabcd02c8b7c4246d48f2c6bb47b4f45c70964348844e6d36521df84c4a9d09d468654b51e0eb5c600e3392b4570 + version: 3.3.3 + resolution: "std-env@npm:3.3.3" + checksum: 6665f6d8bd63aae432d3eb9abbd7322847ad0d902603e6dce1e8051b4f42ceeb4f7f96a4faf70bb05ce65ceee2dc982502b701575c8a58b1bfad29f3dbb19f81 languageName: node linkType: hard @@ -2882,16 +2838,16 @@ __metadata: linkType: hard "tar@npm:^6.1.11, tar@npm:^6.1.2": - version: 6.1.13 - resolution: "tar@npm:6.1.13" + version: 6.1.14 + resolution: "tar@npm:6.1.14" dependencies: chownr: ^2.0.0 fs-minipass: ^2.0.0 - minipass: ^4.0.0 + minipass: ^5.0.0 minizlib: ^2.1.1 mkdirp: ^1.0.3 yallist: ^4.0.0 - checksum: 8a278bed123aa9f53549b256a36b719e317c8b96fe86a63406f3c62887f78267cea9b22dc6f7007009738509800d4a4dccc444abd71d762287c90f35b002eb1c + checksum: a1be0815a9bdc97dfca7c6c2d71d1b836f8ba9314684e2c412832f0f59cc226d4c13da303d6bc30925e82f634cc793f40da79ae72f3e96fb87c23d0f4efd5207 languageName: node linkType: hard @@ -2903,16 +2859,16 @@ __metadata: linkType: hard "tinybench@npm:^2.3.1": - version: 2.4.0 - resolution: "tinybench@npm:2.4.0" - checksum: cfbe90f75755488653dde256019cc810f65e90f63fdd962e71e8b209b49598c5fc90c2227d2087eb807944895fafe7f12fe9ecae2b5e89db5adde66415e9b836 + version: 2.5.0 + resolution: "tinybench@npm:2.5.0" + checksum: 284bb9428f197ec8b869c543181315e65e41ccfdad3c4b6c916bb1fdae1b5c6785661b0d90cf135b48d833b03cb84dc5357b2d33ec65a1f5971fae0ab2023821 languageName: node linkType: hard -"tinypool@npm:^0.3.1": - version: 0.3.1 - resolution: "tinypool@npm:0.3.1" - checksum: 23af5f3889ccab1619a0459748bd419db52b5cbdfd409241f8d42993ace485af5fa4eb3d945e5c37f4b90690b727b7858696967b00b4292149b5d71fb5848185 +"tinypool@npm:^0.4.0": + version: 0.4.0 + resolution: "tinypool@npm:0.4.0" + checksum: 8abcac9e784793499f1eeeace8290c026454b9d7338c74029ce6a821643bab8dcab7caeb4051e39006baf681d6a62d57c3319e9c0f6e2317a45ab0fdbd76ee26 languageName: node linkType: hard @@ -3003,10 +2959,10 @@ __metadata: languageName: node linkType: hard -"ufo@npm:^1.1.0": - version: 1.1.1 - resolution: "ufo@npm:1.1.1" - checksum: 6bd210ed93d8c0dedd76c456b1d1dfb0e3b08c2216ee6080e61f0f545de0bac24b3d3a5530cd6a403810855f8d8fc3922583965296142e04cfc287442635e6c7 +"ufo@npm:^1.1.1": + version: 1.1.2 + resolution: "ufo@npm:1.1.2" + checksum: 83c940a6a23b6d4fc0cd116265bb5dcf88ab34a408ad9196e413270ca607a4781c09b547dc518f43caee128a096f20fe80b5a0e62b4bcc0a868619896106d048 languageName: node linkType: hard @@ -3043,16 +2999,16 @@ __metadata: linkType: hard "update-browserslist-db@npm:^1.0.10": - version: 1.0.10 - resolution: "update-browserslist-db@npm:1.0.10" + version: 1.0.11 + resolution: "update-browserslist-db@npm:1.0.11" dependencies: escalade: ^3.1.1 picocolors: ^1.0.0 peerDependencies: browserslist: ">= 4.21.0" bin: - browserslist-lint: cli.js - checksum: 12db73b4f63029ac407b153732e7cd69a1ea8206c9100b482b7d12859cd3cd0bc59c602d7ae31e652706189f1acb90d42c53ab24a5ba563ed13aebdddc5561a0 + update-browserslist-db: cli.js + checksum: b98327518f9a345c7cad5437afae4d2ae7d865f9779554baf2a200fdf4bac4969076b679b1115434bd6557376bdd37ca7583d0f9b8f8e302d7d4cc1e91b5f231 languageName: node linkType: hard @@ -3079,9 +3035,9 @@ __metadata: languageName: node linkType: hard -"vite-node@npm:0.29.2": - version: 0.29.2 - resolution: "vite-node@npm:0.29.2" +"vite-node@npm:0.29.8": + version: 0.29.8 + resolution: "vite-node@npm:0.29.8" dependencies: cac: ^6.7.14 debug: ^4.3.4 @@ -3091,7 +3047,7 @@ __metadata: vite: ^3.0.0 || ^4.0.0 bin: vite-node: vite-node.mjs - checksum: 0f231e4d61a5c84e981d098cc1ce878300b8d690cb9e24e270e19fb116800dfd3530a1d8d74a8b25859ce6e80981469d6a1b26b6da4c2e5f8a0f7219f37935a6 + checksum: b0981d4d63b1f373579eb9da69ca5af9123bf27c81ac246c541cdecf879ef4ef542e0b521cb6ceaafd5ead2cc3d243105d1fb8bf076953d42a6b2203607ce928 languageName: node linkType: hard @@ -3167,14 +3123,13 @@ __metadata: linkType: hard "vite@npm:^3.0.0 || ^4.0.0, vite@npm:^4.1.4": - version: 4.1.4 - resolution: "vite@npm:4.1.4" + version: 4.3.5 + resolution: "vite@npm:4.3.5" dependencies: - esbuild: ^0.16.14 + esbuild: ^0.17.5 fsevents: ~2.3.2 - postcss: ^8.4.21 - resolve: ^1.22.1 - rollup: ^3.10.0 + postcss: ^8.4.23 + rollup: ^3.21.0 peerDependencies: "@types/node": ">= 14" less: "*" @@ -3200,21 +3155,21 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 50a9a1f2e29e0ee8fefdec60314d38fb9b746df0bb6ae5a8114014b5bfd95e0fc9b29c0d5e73939361ba53af7eb66c7d20c5656bbe53a783e96540bd3b907c47 + checksum: 6b7f2189f097110846e49a3f1d463bd620dfe9e4f433b1967e5b99f0789610ff4475e85e3e71476e6fa40be25449bb6f1c45edb95c79deba6f3f173699bff948 languageName: node linkType: hard "vitest@npm:^0.29.2": - version: 0.29.2 - resolution: "vitest@npm:0.29.2" + version: 0.29.8 + resolution: "vitest@npm:0.29.8" dependencies: "@types/chai": ^4.3.4 "@types/chai-subset": ^1.3.3 "@types/node": "*" - "@vitest/expect": 0.29.2 - "@vitest/runner": 0.29.2 - "@vitest/spy": 0.29.2 - "@vitest/utils": 0.29.2 + "@vitest/expect": 0.29.8 + "@vitest/runner": 0.29.8 + "@vitest/spy": 0.29.8 + "@vitest/utils": 0.29.8 acorn: ^8.8.1 acorn-walk: ^8.2.0 cac: ^6.7.14 @@ -3227,10 +3182,10 @@ __metadata: std-env: ^3.3.1 strip-literal: ^1.0.0 tinybench: ^2.3.1 - tinypool: ^0.3.1 + tinypool: ^0.4.0 tinyspy: ^1.0.2 vite: ^3.0.0 || ^4.0.0 - vite-node: 0.29.2 + vite-node: 0.29.8 why-is-node-running: ^2.2.2 peerDependencies: "@edge-runtime/vm": "*" @@ -3238,6 +3193,9 @@ __metadata: "@vitest/ui": "*" happy-dom: "*" jsdom: "*" + playwright: "*" + safaridriver: "*" + webdriverio: "*" peerDependenciesMeta: "@edge-runtime/vm": optional: true @@ -3249,9 +3207,15 @@ __metadata: optional: true jsdom: optional: true + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true bin: vitest: vitest.mjs - checksum: d3b1069cc80f52649dead896f2dcd77b604724f64f35e0bb9478d5078547302bd4a13c18bc69d078516dd136e7aca343e2fe584c92d658e9545f40ca9cfb406e + checksum: 203e33bf093fdb99a6832c905a6c78175bb15313e06e1dcfbeb010a0e3efb8ff0aba4d317efedb4de76bd0086691bbd2c4bc7d6631f60fb1634b96832cba144f languageName: node linkType: hard @@ -3284,9 +3248,9 @@ __metadata: linkType: hard "vscode-languageserver-textdocument@npm:^1.0.1": - version: 1.0.8 - resolution: "vscode-languageserver-textdocument@npm:1.0.8" - checksum: d6b685456ceca2736793d7fc1924d78a8483997c96c6ec4900d90e64115730da6c0c03e3fbc2c5d031a4592f2acd9cca2ca58a651b696c4f40b8690a48538c06 + version: 1.0.10 + resolution: "vscode-languageserver-textdocument@npm:1.0.10" + checksum: 605ff0662535088567a145b48d28f0c41844d28269fa0b3fca3a1e179dd14baf7181150b274bf3840ef2a043ed8474a9227aaf169a6fae574516349a1b371a18 languageName: node linkType: hard