diff --git a/README.md b/README.md
index 7a7531a..1762f91 100644
--- a/README.md
+++ b/README.md
@@ -33,7 +33,7 @@ We also just added experimental support for taking a video/screen recording of a
## Sponsors
-
+
## 🚀 Try It Out without no install
diff --git a/backend/routes/generate_code.py b/backend/routes/generate_code.py
index 526571d..d1f2760 100644
--- a/backend/routes/generate_code.py
+++ b/backend/routes/generate_code.py
@@ -23,7 +23,7 @@ from routes.saas_utils import does_user_have_subscription_credits
from prompts.claude_prompts import VIDEO_PROMPT
from prompts.types import Stack
-# from utils import pprint_prompt
+from utils import pprint_prompt
from video.utils import extract_tag_content, assemble_claude_prompt_video
from ws.constants import APP_ERROR_WEB_SOCKET_CODE # type: ignore
@@ -243,7 +243,7 @@ async def stream_code(websocket: WebSocket):
video_data_url = params["image"]
prompt_messages = await assemble_claude_prompt_video(video_data_url)
- # pprint_prompt(prompt_messages) # type: ignore
+ pprint_prompt(prompt_messages) # type: ignore
if SHOULD_MOCK_AI_RESPONSE:
completion = await mock_completion(
diff --git a/frontend/package.json b/frontend/package.json
index 3bde6c4..5f8c639 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -54,7 +54,7 @@
"thememirror": "^2.0.1",
"vite-plugin-checker": "^0.6.2",
"webm-duration-fix": "^1.0.4",
- "zustand": "^4.4.7"
+ "zustand": "^4.5.2"
},
"devDependencies": {
"@types/jest": "^29.5.12",
diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx
index 8c5a150..074667c 100644
--- a/frontend/src/App.tsx
+++ b/frontend/src/App.tsx
@@ -43,6 +43,7 @@ import { extractHtml } from "./components/preview/extractHtml";
import useBrowserTabIndicator from "./hooks/useBrowserTabIndicator";
import TipLink from "./components/core/TipLink";
import FeedbackCallNote from "./components/user-feedback/FeedbackCallNote";
+import SelectAndEditModeToggleButton from "./components/select-and-edit/SelectAndEditModeToggleButton";
const IS_OPENAI_DOWN = false;
@@ -108,6 +109,10 @@ function App({ navbarComponent }: Props) {
// const showFeedbackCallNote = subscriberTier !== "free";
const showFeedbackCallNote = false;
+ const showSelectAndEditFeature =
+ selectedCodeGenerationModel === CodeGenerationModel.GPT_4O_2024_05_13 &&
+ settings.generatedCodeConfig === Stack.HTML_TAILWIND;
+
// Indicate coding state using the browser tab's favicon and title
useBrowserTabIndicator(appState === AppState.CODING);
@@ -266,7 +271,9 @@ function App({ navbarComponent }: Props) {
parentIndex: parentVersion,
code,
inputs: {
- prompt: updateInstruction,
+ prompt: params.history
+ ? params.history[params.history.length - 1]
+ : updateInstruction,
},
},
];
@@ -312,7 +319,10 @@ function App({ navbarComponent }: Props) {
}
// Subsequent updates
- async function doUpdate() {
+ async function doUpdate(
+ updateInstruction: string,
+ selectedElement?: HTMLElement
+ ) {
if (currentVersion === null) {
toast.error(
"No current version set. Contact support or open a Github issue."
@@ -332,7 +342,17 @@ function App({ navbarComponent }: Props) {
return;
}
- const updatedHistory = [...historyTree, updateInstruction];
+ let modifiedUpdateInstruction = updateInstruction;
+
+ // Send in a reference to the selected element if it exists
+ if (selectedElement) {
+ modifiedUpdateInstruction =
+ updateInstruction +
+ " referring to this element specifically: " +
+ selectedElement.outerHTML;
+ }
+
+ const updatedHistory = [...historyTree, modifiedUpdateInstruction];
if (shouldIncludeResultImage) {
const resultImage = await takeScreenshot();
@@ -523,8 +543,8 @@ function App({ navbarComponent }: Props) {
/>
@@ -536,6 +556,9 @@ function App({ navbarComponent }: Props) {
>
🔄 Regenerate
+ {showSelectAndEditFeature && (
+
+ )}
@@ -668,10 +691,18 @@ function App({ navbarComponent }: Props) {
-
+
-
+
void;
}
-function Preview({ code, device }: Props) {
+function Preview({ code, device, doUpdate }: Props) {
+ const { inSelectAndEditMode } = useAppStore();
+
const iframeRef = useRef(null);
// Don't update code more often than every 200ms.
const throttledCode = useThrottle(code, 200);
+ // Select and edit functionality
+ const [clickEvent, setClickEvent] = useState(null);
+
useEffect(() => {
- if (iframeRef.current) {
- iframeRef.current.srcdoc = throttledCode;
+ const iframe = iframeRef.current;
+ if (iframe) {
+ iframe.srcdoc = throttledCode;
+
+ // Set up click handler for select and edit funtionality
+ iframe.addEventListener("load", function () {
+ iframe.contentWindow?.document.body.addEventListener(
+ "click",
+ setClickEvent
+ );
+ });
}
}, [throttledCode]);
@@ -34,6 +51,12 @@ function Preview({ code, device }: Props) {
}
)}
>
+
);
}
diff --git a/frontend/src/components/select-and-edit/EditPopup.tsx b/frontend/src/components/select-and-edit/EditPopup.tsx
new file mode 100644
index 0000000..5bc9d42
--- /dev/null
+++ b/frontend/src/components/select-and-edit/EditPopup.tsx
@@ -0,0 +1,126 @@
+import React, { useEffect, useRef, useState } from "react";
+import { Textarea } from "../ui/textarea";
+import { Button } from "../ui/button";
+import { addHighlight, getAdjustedCoordinates, removeHighlight } from "./utils";
+
+interface EditPopupProps {
+ event: MouseEvent | null;
+ inSelectAndEditMode: boolean;
+ doUpdate: (updateInstruction: string, selectedElement?: HTMLElement) => void;
+ iframeRef: React.RefObject;
+}
+
+const EditPopup: React.FC = ({
+ event,
+ inSelectAndEditMode,
+ doUpdate,
+ iframeRef,
+}) => {
+ // Edit state
+ const [selectedElement, setSelectedElement] = useState<
+ HTMLElement | undefined
+ >(undefined);
+ const [updateText, setUpdateText] = useState("");
+
+ // Popup state
+ const [popupVisible, setPopupVisible] = useState(false);
+ const [popupPosition, setPopupPosition] = useState({ x: 0, y: 0 });
+
+ // Create a wrapper ref to store inSelectAndEditMode so the value is not stale
+ // in a event listener
+ const inSelectAndEditModeRef = useRef(inSelectAndEditMode);
+
+ // Textarea ref for focusing
+ const textareaRef = useRef(null);
+
+ function onUpdate(updateText: string) {
+ // Perform the update
+ doUpdate(
+ updateText,
+ selectedElement ? removeHighlight(selectedElement) : selectedElement
+ );
+
+ // Unselect the element
+ setSelectedElement(undefined);
+
+ // Hide the popup
+ setPopupVisible(false);
+ }
+
+ // Update the ref whenever the state changes
+ useEffect(() => {
+ inSelectAndEditModeRef.current = inSelectAndEditMode;
+ }, [inSelectAndEditMode]);
+
+ // Remove highlight and reset state when not in select and edit mode
+ useEffect(() => {
+ if (!inSelectAndEditMode) {
+ if (selectedElement) removeHighlight(selectedElement);
+ setSelectedElement(undefined);
+ setPopupVisible(false);
+ }
+ }, [inSelectAndEditMode, selectedElement]);
+
+ // Handle the click event
+ useEffect(() => {
+ // Return if not in select and edit mode
+ if (!inSelectAndEditModeRef.current || !event) {
+ return;
+ }
+
+ // Prevent default to avoid issues like label clicks triggering textareas, etc.
+ event.preventDefault();
+
+ const targetElement = event.target as HTMLElement;
+
+ // Return if no target element
+ if (!targetElement) return;
+
+ // Highlight and set the selected element
+ setSelectedElement((prev) => {
+ // Remove style from previous element
+ if (prev) {
+ removeHighlight(prev);
+ }
+ return addHighlight(targetElement);
+ });
+
+ // Calculate adjusted coordinates
+ const adjustedCoordinates = getAdjustedCoordinates(
+ event.clientX,
+ event.clientY,
+ iframeRef.current?.getBoundingClientRect()
+ );
+
+ // Show the popup at the click position
+ setPopupVisible(true);
+ setPopupPosition({ x: adjustedCoordinates.x, y: adjustedCoordinates.y });
+
+ // Reset the update text
+ setUpdateText("");
+
+ // Focus the textarea
+ textareaRef.current?.focus();
+ }, [event, iframeRef]);
+
+ if (!popupVisible) return;
+
+ return (
+
+ );
+};
+
+export default EditPopup;
diff --git a/frontend/src/components/select-and-edit/SelectAndEditModeToggleButton.tsx b/frontend/src/components/select-and-edit/SelectAndEditModeToggleButton.tsx
new file mode 100644
index 0000000..f076c9b
--- /dev/null
+++ b/frontend/src/components/select-and-edit/SelectAndEditModeToggleButton.tsx
@@ -0,0 +1,18 @@
+import { useAppStore } from "../../store/app-store";
+import { Button } from "../ui/button";
+
+function SelectAndEditModeToggleButton() {
+ const { inSelectAndEditMode, toggleInSelectAndEditMode } = useAppStore();
+
+ return (
+
+ );
+}
+
+export default SelectAndEditModeToggleButton;
diff --git a/frontend/src/components/select-and-edit/utils.ts b/frontend/src/components/select-and-edit/utils.ts
new file mode 100644
index 0000000..f3180fd
--- /dev/null
+++ b/frontend/src/components/select-and-edit/utils.ts
@@ -0,0 +1,24 @@
+export function removeHighlight(element: HTMLElement) {
+ element.style.outline = "";
+ element.style.backgroundColor = "";
+ return element;
+}
+
+export function addHighlight(element: HTMLElement) {
+ element.style.outline = "2px dashed #1846db";
+ element.style.backgroundColor = "#bfcbf5";
+ return element;
+}
+
+export function getAdjustedCoordinates(
+ x: number,
+ y: number,
+ rect: DOMRect | undefined
+) {
+ const offsetX = rect ? rect.left : 0;
+ const offsetY = rect ? rect.top : 0;
+
+ // Adjust for scale
+ const scale = 1; // the scale factor applied to the iframe
+ return { x: x / scale + offsetX, y: y / scale + offsetY };
+}
diff --git a/frontend/src/store/app-store.ts b/frontend/src/store/app-store.ts
new file mode 100644
index 0000000..26b7994
--- /dev/null
+++ b/frontend/src/store/app-store.ts
@@ -0,0 +1,15 @@
+import { create } from "zustand";
+
+// Store for app-wide state
+interface AppStore {
+ inSelectAndEditMode: boolean;
+ inputMode: "image" | "video";
+ toggleInSelectAndEditMode: () => void;
+}
+
+export const useAppStore = create((set) => ({
+ inputMode: "image",
+ inSelectAndEditMode: false,
+ toggleInSelectAndEditMode: () =>
+ set((state) => ({ inSelectAndEditMode: !state.inSelectAndEditMode })),
+}));
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index 8b59826..e1254e8 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -282,11 +282,11 @@
js-tokens "^4.0.0"
"@babel/highlight@^7.24.2":
- version "7.24.5"
- resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.5.tgz#bc0613f98e1dd0720e99b2a9ee3760194a704b6e"
- integrity sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==
+ version "7.24.2"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.2.tgz#3f539503efc83d3c59080a10e6634306e0370d26"
+ integrity sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==
dependencies:
- "@babel/helper-validator-identifier" "^7.24.5"
+ "@babel/helper-validator-identifier" "^7.22.20"
chalk "^2.4.2"
js-tokens "^4.0.0"
picocolors "^1.0.0"
@@ -420,13 +420,6 @@
dependencies:
regenerator-runtime "^0.14.0"
-"@babel/runtime@^7.21.0":
- version "7.23.9"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.9.tgz#47791a15e4603bb5f905bc0753801cf21d6345f7"
- integrity sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==
- dependencies:
- regenerator-runtime "^0.14.0"
-
"@babel/template@^7.22.15":
version "7.22.15"
resolved "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz"
@@ -500,31 +493,6 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
-"@clerk/clerk-react@^4.29.0":
- version "4.29.0"
- resolved "https://registry.yarnpkg.com/@clerk/clerk-react/-/clerk-react-4.29.0.tgz#42d677265689fcdf20fbbb56fc112578c8a16ded"
- integrity sha512-mNFjUiKd40bc1+PVbUS/PWbzU/w2pSo/5mvQYU9rpyE/0jRFdhx/q58ouuI9LYmBS1IGjP8sY/tKXe69snZDWA==
- dependencies:
- "@clerk/shared" "1.1.1"
- "@clerk/types" "3.59.0"
- tslib "2.4.1"
-
-"@clerk/shared@1.1.1":
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/@clerk/shared/-/shared-1.1.1.tgz#7844edcaad285a98528e754b82909015065002d0"
- integrity sha512-pEzhalD1Yo/gGsOE2BQugVQTjlIl2aYmoeRld3BDXHRDV1jnk+yUE2CFOw6bojgFWN9sbeN/ph/47UWvvoCSOg==
- dependencies:
- glob-to-regexp "0.4.1"
- js-cookie "3.0.1"
- swr "2.2.0"
-
-"@clerk/types@3.59.0":
- version "3.59.0"
- resolved "https://registry.yarnpkg.com/@clerk/types/-/types-3.59.0.tgz#13d8a12b660ac0922f2ecbdbb1546d407c0e9391"
- integrity sha512-OchGdY3mf+hXql7CPQsuCv1HicPvvz6NdMeo6r0M5FY11INcXGaF4pexido9IThrd31rIum+giWVLaFTwlhzfg==
- dependencies:
- csstype "3.1.1"
-
"@codemirror/autocomplete@^6.0.0":
version "6.11.0"
resolved "https://registry.yarnpkg.com/@codemirror/autocomplete/-/autocomplete-6.11.0.tgz#406dee8bf5342dfb48920ad75454d3406ddf9963"
@@ -1261,6 +1229,20 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
+"@puppeteer/browsers@2.2.1":
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/@puppeteer/browsers/-/browsers-2.2.1.tgz#c40608b96b10c09a6b2d08ab5ea31dfe1b409455"
+ integrity sha512-QSXujx4d4ogDamQA8ckkkRieFzDgZEuZuGiey9G7CuDcbnX4iINKWxTPC5Br2AEzY9ICAvcndqgAUFMMKnS/Tw==
+ dependencies:
+ debug "4.3.4"
+ extract-zip "2.0.1"
+ progress "2.0.3"
+ proxy-agent "6.4.0"
+ semver "7.6.0"
+ tar-fs "3.0.5"
+ unbzip2-stream "1.4.3"
+ yargs "17.7.2"
+
"@puppeteer/browsers@2.2.3":
version "2.2.3"
resolved "https://registry.yarnpkg.com/@puppeteer/browsers/-/browsers-2.2.3.tgz#ad6b79129c50825e77ddaba082680f4dad0b674e"
@@ -1326,17 +1308,6 @@
"@babel/runtime" "^7.13.10"
"@radix-ui/react-primitive" "1.0.3"
-"@radix-ui/react-avatar@^1.0.4":
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/@radix-ui/react-avatar/-/react-avatar-1.0.4.tgz#de9a5349d9e3de7bbe990334c4d2011acbbb9623"
- integrity sha512-kVK2K7ZD3wwj3qhle0ElXhOjbezIgyl2hVvgwfIdexL3rN6zJmy5AqqIf+D31lxVppdzV8CjAfZ6PklkmInZLw==
- dependencies:
- "@babel/runtime" "^7.13.10"
- "@radix-ui/react-context" "1.0.1"
- "@radix-ui/react-primitive" "1.0.3"
- "@radix-ui/react-use-callback-ref" "1.0.1"
- "@radix-ui/react-use-layout-effect" "1.0.1"
-
"@radix-ui/react-checkbox@^1.0.4":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@radix-ui/react-checkbox/-/react-checkbox-1.0.4.tgz#98f22c38d5010dd6df4c5744cac74087e3275f4b"
@@ -1432,20 +1403,6 @@
"@radix-ui/react-use-callback-ref" "1.0.1"
"@radix-ui/react-use-escape-keydown" "1.0.3"
-"@radix-ui/react-dropdown-menu@^2.0.6":
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.0.6.tgz#cdf13c956c5e263afe4e5f3587b3071a25755b63"
- integrity sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==
- dependencies:
- "@babel/runtime" "^7.13.10"
- "@radix-ui/primitive" "1.0.1"
- "@radix-ui/react-compose-refs" "1.0.1"
- "@radix-ui/react-context" "1.0.1"
- "@radix-ui/react-id" "1.0.1"
- "@radix-ui/react-menu" "2.0.6"
- "@radix-ui/react-primitive" "1.0.3"
- "@radix-ui/react-use-controllable-state" "1.0.1"
-
"@radix-ui/react-focus-guards@1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz#1ea7e32092216b946397866199d892f71f7f98ad"
@@ -1500,31 +1457,6 @@
"@babel/runtime" "^7.13.10"
"@radix-ui/react-primitive" "1.0.3"
-"@radix-ui/react-menu@2.0.6":
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/@radix-ui/react-menu/-/react-menu-2.0.6.tgz#2c9e093c1a5d5daa87304b2a2f884e32288ae79e"
- integrity sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==
- dependencies:
- "@babel/runtime" "^7.13.10"
- "@radix-ui/primitive" "1.0.1"
- "@radix-ui/react-collection" "1.0.3"
- "@radix-ui/react-compose-refs" "1.0.1"
- "@radix-ui/react-context" "1.0.1"
- "@radix-ui/react-direction" "1.0.1"
- "@radix-ui/react-dismissable-layer" "1.0.5"
- "@radix-ui/react-focus-guards" "1.0.1"
- "@radix-ui/react-focus-scope" "1.0.4"
- "@radix-ui/react-id" "1.0.1"
- "@radix-ui/react-popper" "1.1.3"
- "@radix-ui/react-portal" "1.0.4"
- "@radix-ui/react-presence" "1.0.1"
- "@radix-ui/react-primitive" "1.0.3"
- "@radix-ui/react-roving-focus" "1.0.4"
- "@radix-ui/react-slot" "1.0.2"
- "@radix-ui/react-use-callback-ref" "1.0.1"
- aria-hidden "^1.1.1"
- react-remove-scroll "2.5.5"
-
"@radix-ui/react-popover@^1.0.7":
version "1.0.7"
resolved "https://registry.yarnpkg.com/@radix-ui/react-popover/-/react-popover-1.0.7.tgz#23eb7e3327330cb75ec7b4092d685398c1654e3c"
@@ -1863,18 +1795,6 @@
dependencies:
"@sinonjs/commons" "^3.0.0"
-"@stripe/stripe-js@^2.2.2":
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/@stripe/stripe-js/-/stripe-js-2.2.2.tgz#9c1318a3e09a6df0a667d54d7f6edb917670109d"
- integrity sha512-LvFZRZEBoMe6vXC6RoOAIbXWo/0JDdndq43ekL9M6affcM7PtF5KALmwt91BazW7q49sbSl0l7TunWhhSwEW4w==
-
-"@swc/helpers@^0.5.3":
- version "0.5.6"
- resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.6.tgz#d16d8566b7aea2bef90d059757e2d77f48224160"
- integrity sha512-aYX01Ke9hunpoCexYAgQucEpARGQ5w/cqHFrIR+e9gdKb1QWTsVJuTJ2ozQzIAxLyRQe/m+2RqzkyOOGiMKRQA==
- dependencies:
- tslib "^2.4.0"
-
"@tootallnate/quickjs-emscripten@^0.23.0":
version "0.23.0"
resolved "https://registry.yarnpkg.com/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz#db4ecfd499a9765ab24002c3b696d02e6d32a12c"
@@ -1925,9 +1845,9 @@
"@babel/types" "^7.20.7"
"@types/babel__traverse@^7.0.6":
- version "7.20.6"
- resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.6.tgz#8dc9f0ae0f202c08d8d4dab648912c8d6038e3f7"
- integrity sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==
+ version "7.20.5"
+ resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz#7b7502be0aa80cc4ef22978846b983edaafcd4dd"
+ integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==
dependencies:
"@babel/types" "^7.20.7"
@@ -1971,9 +1891,9 @@
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
"@types/node@*":
- version "20.12.12"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.12.tgz#7cbecdf902085cec634fdb362172dfe12b8f2050"
- integrity sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==
+ version "20.12.7"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.7.tgz#04080362fa3dd6c5822061aa3124f5c152cff384"
+ integrity sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==
dependencies:
undici-types "~5.26.4"
@@ -2405,33 +2325,26 @@ bare-events@^2.0.0, bare-events@^2.2.0:
integrity sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==
bare-fs@^2.1.1:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/bare-fs/-/bare-fs-2.3.0.tgz#0872f8e33cf291c9fd527d827154f156a298d402"
- integrity sha512-TNFqa1B4N99pds2a5NYHR15o0ZpdNKbAeKTE/+G6ED/UeOavv8RY3dr/Fu99HW3zU3pXpo2kDNO8Sjsm2esfOw==
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/bare-fs/-/bare-fs-2.2.3.tgz#34f8b81b8c79de7ef043383c05e57d4a10392a68"
+ integrity sha512-amG72llr9pstfXOBOHve1WjiuKKAMnebcmMbPWDZ7BCevAoJLpugjuAPRsDINEyjT0a6tbaVx3DctkXIRbLuJw==
dependencies:
bare-events "^2.0.0"
bare-path "^2.0.0"
- bare-stream "^1.0.0"
+ streamx "^2.13.0"
bare-os@^2.1.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/bare-os/-/bare-os-2.3.0.tgz#718e680b139effff0624a7421c098e7a2c2d63da"
- integrity sha512-oPb8oMM1xZbhRQBngTgpcQ5gXw6kjOaRsSWsIeNyRxGed2w/ARyP7ScBYpWR1qfX2E5rS3gBw6OWcSQo+s+kUg==
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/bare-os/-/bare-os-2.2.1.tgz#c94a258c7a408ca6766399e44675136c0964913d"
+ integrity sha512-OwPyHgBBMkhC29Hl3O4/YfxW9n7mdTr2+SsO29XBWKKJsbgj3mnorDB80r5TiCQgQstgE5ga1qNYrpes6NvX2w==
bare-path@^2.0.0, bare-path@^2.1.0:
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/bare-path/-/bare-path-2.1.3.tgz#594104c829ef660e43b5589ec8daef7df6cedb3e"
- integrity sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/bare-path/-/bare-path-2.1.1.tgz#111db5bf2db0aed40081aa4ba38b8dfc2bb782eb"
+ integrity sha512-OHM+iwRDRMDBsSW7kl3dO62JyHdBKO3B25FB9vNQBPcGHMo4+eA8Yj41Lfbk3pS/seDY+siNge0LdRTulAau/A==
dependencies:
bare-os "^2.1.0"
-bare-stream@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/bare-stream/-/bare-stream-1.0.0.tgz#25c3e56198d922187320c3f8c52d75c4051178b4"
- integrity sha512-KhNUoDL40iP4gFaLSsoGE479t0jHijfYdIcxRn/XtezA2BaUD0NRf/JGRpsMq6dMNM+SrCrB0YSSo/5wBY4rOQ==
- dependencies:
- streamx "^2.16.1"
-
base64-arraybuffer@^1.0.2:
version "1.0.2"
resolved "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz#1c37589a7c4b0746e34bd1feb951da2df01c1bdc"
@@ -2578,9 +2491,9 @@ caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001541:
integrity sha512-kfte3Hym//51EdX4239i+Rmp20EsLIYGdPkERegTgU19hQWCRhsRFGKHTliUlsry53tv17K7n077Kqa0WJU4ng==
caniuse-lite@^1.0.30001587:
- version "1.0.30001621"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001621.tgz#4adcb443c8b9c8303e04498318f987616b8fea2e"
- integrity sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==
+ version "1.0.30001620"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz#78bb6f35b8fe315b96b8590597094145d0b146b4"
+ integrity sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==
chai@^4.3.10:
version "4.3.10"
@@ -2639,6 +2552,15 @@ chokidar@^3.5.1, chokidar@^3.5.3:
optionalDependencies:
fsevents "~2.3.2"
+chromium-bidi@0.5.17:
+ version "0.5.17"
+ resolved "https://registry.yarnpkg.com/chromium-bidi/-/chromium-bidi-0.5.17.tgz#04b66fa77f9ab80234b72206e71fc2af96fd08c4"
+ integrity sha512-BqOuIWUgTPj8ayuBFJUYCCuwIcwjBsb3/614P7tt1bEPJ4i1M0kCdIl0Wi9xhtswBXnfO2bTpTMkHD71H8rJMg==
+ dependencies:
+ mitt "3.0.1"
+ urlpattern-polyfill "10.0.0"
+ zod "3.22.4"
+
chromium-bidi@0.5.19:
version "0.5.19"
resolved "https://registry.yarnpkg.com/chromium-bidi/-/chromium-bidi-0.5.19.tgz#e4f4951b7d9b20d668d6b387839f7b7bf2d69ef4"
@@ -2677,11 +2599,6 @@ clean-css@^5.2.2:
dependencies:
source-map "~0.6.0"
-client-only@^0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1"
- integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==
-
cliui@^8.0.1:
version "8.0.1"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"
@@ -2855,11 +2772,6 @@ cssesc@^3.0.0:
resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz"
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
-csstype@3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9"
- integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==
-
csstype@^3.0.2:
version "3.1.2"
resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz"
@@ -2870,13 +2782,6 @@ data-uri-to-buffer@^6.0.2:
resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz#8a58bb67384b261a38ef18bea1810cb01badd28b"
integrity sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==
-date-fns@^2.30.0:
- version "2.30.0"
- resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0"
- integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==
- dependencies:
- "@babel/runtime" "^7.21.0"
-
debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4:
version "4.3.4"
resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
@@ -2884,13 +2789,6 @@ debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, de
dependencies:
ms "2.1.2"
-debug@^2.6.6:
- version "2.6.9"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
- integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
- dependencies:
- ms "2.0.0"
-
dedent@^1.0.0:
version "1.5.3"
resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a"
@@ -2932,6 +2830,11 @@ detect-node-es@^1.1.0:
resolved "https://registry.yarnpkg.com/detect-node-es/-/detect-node-es-1.1.0.tgz#163acdf643330caa0b4cd7c21e7ee7755d6fa493"
integrity sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==
+devtools-protocol@0.0.1262051:
+ version "0.0.1262051"
+ resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1262051.tgz#670b1f8459b2a136e05bd9a8d54ec0212d543a38"
+ integrity sha512-YJe4CT5SA8on3Spa+UDtNhEqtuV6Epwz3OZ4HQVLhlRccpZ9/PAYk0/cy/oKxFKRrZPBUPyxympQci4yWNWZ9g==
+
devtools-protocol@0.0.1286932:
version "0.0.1286932"
resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1286932.tgz#2303707034426fe0b39012713d4b7339f7dbc815"
@@ -3037,9 +2940,9 @@ electron-to-chromium@^1.4.535:
integrity sha512-89o0MGoocwYbzqUUjc+VNpeOFSOK9nIdC5wY4N+PVUarUK0MtjyTjks75AZS2bW4Kl8MdewdFsWaH0jLy+JNoA==
electron-to-chromium@^1.4.668:
- version "1.4.780"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.780.tgz#8c6d7ff82b56b4219f2ae7918ee271ae25654f07"
- integrity sha512-NPtACGFe7vunRYzvYqVRhQvsDrTevxpgDKxG/Vcbe0BTNOY+5+/2mOXSw2ls7ToNbE5Bf/+uQbjTxcmwMozpCw==
+ version "1.4.774"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.774.tgz#1017d1758aaeeefe5423aa9d67b4b1e5d1d0a856"
+ integrity sha512-132O1XCd7zcTkzS3FgkAzKmnBuNJjK8WjcTtNuoylj7MYbqw5eXehjQ5OK91g0zm7OTKIPeaAG4CPoRfD9M1Mg==
emittery@^0.13.1:
version "0.13.1"
@@ -3334,7 +3237,7 @@ extract-zip@2.0.1:
optionalDependencies:
"@types/yauzl" "^2.9.1"
-fast-deep-equal@3.1.3, fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
+fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
version "3.1.3"
resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
@@ -3386,11 +3289,6 @@ fd-slicer@~1.1.0:
dependencies:
pend "~1.2.0"
-fflate@^0.4.8:
- version "0.4.8"
- resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.4.8.tgz#f90b82aefbd8ac174213abb338bd7ef848f0f5ae"
- integrity sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==
-
file-entry-cache@^6.0.1:
version "6.0.1"
resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz"
@@ -3562,11 +3460,6 @@ glob-parent@^6.0.2:
dependencies:
is-glob "^4.0.3"
-glob-to-regexp@0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
- integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
-
glob@7.1.6:
version "7.1.6"
resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz"
@@ -3716,7 +3609,7 @@ ignore@^5.2.0, ignore@^5.2.4:
import-fresh@^3.2.1, import-fresh@^3.3.0:
version "3.3.0"
- resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+ resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz"
integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
dependencies:
parent-module "^1.0.0"
@@ -4260,11 +4153,6 @@ jiti@^1.19.1:
resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz"
integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==
-js-cookie@3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.1.tgz#9e39b4c6c2f56563708d7d31f6f5f21873a92414"
- integrity sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==
-
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
@@ -4369,11 +4257,6 @@ lines-and-columns@^1.1.6:
resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz"
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
-load-script@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/load-script/-/load-script-1.0.0.tgz#0491939e0bee5643ee494a7e3da3d2bac70c6ca4"
- integrity sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==
-
local-pkg@^0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.5.0.tgz#093d25a346bae59a99f80e75f6e9d36d7e8c925c"
@@ -4539,11 +4422,6 @@ mlly@^1.2.0, mlly@^1.4.2:
pkg-types "^1.0.3"
ufo "^1.3.0"
-ms@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
- integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
-
ms@2.1.2:
version "2.1.2"
resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
@@ -4647,7 +4525,7 @@ object-hash@^3.0.0:
once@^1.3.0, once@^1.3.1, once@^1.4.0:
version "1.4.0"
- resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
dependencies:
wrappy "1"
@@ -4840,7 +4718,7 @@ pify@^2.3.0:
pirates@^4.0.1, pirates@^4.0.4:
version "4.0.6"
- resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9"
+ resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz"
integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==
pkg-dir@^4.2.0:
@@ -4921,19 +4799,6 @@ postcss@^8.4.32:
picocolors "^1.0.0"
source-map-js "^1.0.2"
-posthog-js@^1.128.1:
- version "1.128.1"
- resolved "https://registry.yarnpkg.com/posthog-js/-/posthog-js-1.128.1.tgz#48efbd6e42be6462be30bc7588b81c724b00e552"
- integrity sha512-+CIiZf+ijhgAF8g6K+PfaDbSBiADfRaXzrlYKmu5IEN8ghunFd06EV5QM68cwLUEkti4FXn7AAM3k9/KxJgvcA==
- dependencies:
- fflate "^0.4.8"
- preact "^10.19.3"
-
-preact@^10.19.3:
- version "10.19.3"
- resolved "https://registry.yarnpkg.com/preact/-/preact-10.19.3.tgz#7a7107ed2598a60676c943709ea3efb8aaafa899"
- integrity sha512-nHHTeFVBTHRGxJXKkKu5hT8C/YWBkPso4/Gad6xuj5dbptt9iF9NZr9pHbPhBrnT2klheu7mHTxTZ/LjwJiEiQ==
-
prelude-ls@^1.2.1:
version "1.2.1"
resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
@@ -4961,7 +4826,7 @@ prompts@^2.0.1:
kleur "^3.0.3"
sisteransi "^1.0.5"
-prop-types@15.8.1, prop-types@^15.8.1:
+prop-types@^15.8.1:
version "15.8.1"
resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz"
integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
@@ -5002,6 +4867,17 @@ punycode@^2.1.0:
resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz"
integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
+puppeteer-core@22.6.4:
+ version "22.6.4"
+ resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-22.6.4.tgz#b0f9b3c7e90013e892fc34f0a3685543aa7b6326"
+ integrity sha512-QtfJwPmqQec3EHc6LqbEz03vSiuVAr9bYp0TV87dLoreev6ZevsXdLgOfQgoA3GocrsSe/eUf7NRPQ1lQfsc3w==
+ dependencies:
+ "@puppeteer/browsers" "2.2.1"
+ chromium-bidi "0.5.17"
+ debug "4.3.4"
+ devtools-protocol "0.0.1262051"
+ ws "8.16.0"
+
puppeteer-core@22.9.0:
version "22.9.0"
resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-22.9.0.tgz#df7ef6c285f4eed938911322184f9cd21d892b39"
@@ -5013,7 +4889,7 @@ puppeteer-core@22.9.0:
devtools-protocol "0.0.1286932"
ws "8.17.0"
-puppeteer@*, puppeteer@^22.6.4:
+puppeteer@*:
version "22.9.0"
resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-22.9.0.tgz#ef404de6c1f6a5b32e01ede20258acf4aa826bf9"
integrity sha512-yNux2cm6Sfik4lNLNjJ25Cdn9spJRbMXxl1YZtVZCEhEeej1sFlCvZ/Cr64LhgyJOuvz3iq2uk+RLFpQpGwrjw==
@@ -5023,6 +4899,16 @@ puppeteer@*, puppeteer@^22.6.4:
devtools-protocol "0.0.1286932"
puppeteer-core "22.9.0"
+puppeteer@^22.6.4:
+ version "22.6.4"
+ resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-22.6.4.tgz#478028ff522e51b5456d9c4a2a0df6ee3a5b2a72"
+ integrity sha512-J9hXNwZmuqKDmNMj6kednZH8jzbdX9735NQfQJrq5LRD4nHisAMyW9pCD7glKi+iM7RV9JkesI1MYhdsN+0ZSQ==
+ dependencies:
+ "@puppeteer/browsers" "2.2.1"
+ cosmiconfig "9.0.0"
+ devtools-protocol "0.0.1262051"
+ puppeteer-core "22.6.4"
+
pure-rand@^6.0.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2"
@@ -5125,25 +5011,6 @@ react-style-singleton@^2.2.1:
invariant "^2.2.4"
tslib "^2.0.0"
-react-tweet@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/react-tweet/-/react-tweet-3.2.0.tgz#653571842298b1c57076ec38f022ba640c3d2dde"
- integrity sha512-eYLAX5ViOICQT/vkte/IzYZZDoBnl7hDO3Ns4++lKEFr/+BohPK5Rg+Lvbfx78Qtn3AjfDG5c6n+rOt7c2J6qg==
- dependencies:
- "@swc/helpers" "^0.5.3"
- clsx "^2.0.0"
- date-fns "^2.30.0"
- swr "^2.2.4"
-
-react-youtube@^10.1.0:
- version "10.1.0"
- resolved "https://registry.yarnpkg.com/react-youtube/-/react-youtube-10.1.0.tgz#7e5670c764f12eb408166e8eb438d788dc64e8b5"
- integrity sha512-ZfGtcVpk0SSZtWCSTYOQKhfx5/1cfyEW1JN/mugGNfAxT3rmVJeMbGpA9+e78yG21ls5nc/5uZJETE3cm3knBg==
- dependencies:
- fast-deep-equal "3.1.3"
- prop-types "15.8.1"
- youtube-player "5.5.2"
-
react@^18.2.0:
version "18.2.0"
resolved "https://registry.npmjs.org/react/-/react-18.2.0.tgz"
@@ -5204,7 +5071,7 @@ resolve.exports@^2.0.0:
resolve@^1.1.7, resolve@^1.20.0, resolve@^1.22.2:
version "1.22.8"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d"
+ resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz"
integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==
dependencies:
is-core-module "^2.13.0"
@@ -5314,11 +5181,6 @@ signal-exit@^4.1.0:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
-sister@^3.0.0:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/sister/-/sister-3.0.2.tgz#bb3e39f07b1f75bbe1945f29a27ff1e5a2f26be4"
- integrity sha512-p19rtTs+NksBRKW9qn0UhZ8/TUI9BPw9lmtHny+Y3TinWlOa9jWh9xB0AtPSdmOy49NJJJSSe0Ey4C7h0TrcYA==
-
sisteransi@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
@@ -5404,7 +5266,7 @@ std-env@^3.5.0:
resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.6.0.tgz#94807562bddc68fa90f2e02c5fd5b6865bb4e98e"
integrity sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg==
-streamx@^2.15.0, streamx@^2.16.1:
+streamx@^2.13.0, streamx@^2.15.0:
version "2.16.1"
resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.16.1.tgz#2b311bd34832f08aa6bb4d6a80297c9caef89614"
integrity sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==
@@ -5509,21 +5371,6 @@ supports-preserve-symlinks-flag@^1.0.0:
resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
-swr@2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/swr/-/swr-2.2.0.tgz#575c6ac1bec087847f4c86a39ccbc0043c834d6a"
- integrity sha512-AjqHOv2lAhkuUdIiBu9xbuettzAzWXmCEcLONNKJRba87WAefz8Ca9d6ds/SzrPc235n1IxWYdhJ2zF3MNUaoQ==
- dependencies:
- use-sync-external-store "^1.2.0"
-
-swr@^2.2.4:
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/swr/-/swr-2.2.4.tgz#03ec4c56019902fbdc904d78544bd7a9a6fa3f07"
- integrity sha512-njiZ/4RiIhoOlAaLYDqwz5qH/KZXVilRLvomrx83HjzCWTfa+InyfAjv05PSFxnmLzZkNO9ZfvgoqzAaEI4sGQ==
- dependencies:
- client-only "^0.0.1"
- use-sync-external-store "^1.2.0"
-
tailwind-merge@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/tailwind-merge/-/tailwind-merge-2.0.0.tgz#a0f3a8c874ebae5feec5595614d08245a5f88a39"
@@ -5692,9 +5539,9 @@ ts-interface-checker@^0.1.9:
integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==
ts-jest@^29.1.2:
- version "29.1.3"
- resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.1.3.tgz#2bab16ba5ab0f4896684985f9618acc2cf1197e9"
- integrity sha512-6L9qz3ginTd1NKhOxmkP0qU3FyKjj5CPoY+anszfVn6Pmv/RIKzhiMCsH7Yb7UvJR9I2A64rm4zQl531s2F1iw==
+ version "29.1.2"
+ resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.1.2.tgz#7613d8c81c43c8cb312c6904027257e814c40e09"
+ integrity sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==
dependencies:
bs-logger "0.x"
fast-json-stable-stringify "2.x"
@@ -5705,11 +5552,6 @@ ts-jest@^29.1.2:
semver "^7.5.3"
yargs-parser "^21.0.1"
-tslib@2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e"
- integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==
-
tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0:
version "2.6.2"
resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz"
@@ -5800,7 +5642,7 @@ use-sidecar@^1.1.2:
detect-node-es "^1.1.0"
tslib "^2.0.0"
-use-sync-external-store@1.2.0, use-sync-external-store@^1.2.0:
+use-sync-external-store@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a"
integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==
@@ -6030,6 +5872,11 @@ write-file-atomic@^4.0.2:
imurmurhash "^0.1.4"
signal-exit "^3.0.7"
+ws@8.16.0:
+ version "8.16.0"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4"
+ integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==
+
ws@8.17.0:
version "8.17.0"
resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.0.tgz#d145d18eca2ed25aaf791a183903f7be5e295fea"
@@ -6091,23 +5938,14 @@ yocto-queue@^1.0.0:
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251"
integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==
-youtube-player@5.5.2:
- version "5.5.2"
- resolved "https://registry.yarnpkg.com/youtube-player/-/youtube-player-5.5.2.tgz#052b86b1eabe21ff331095ffffeae285fa7f7cb5"
- integrity sha512-ZGtsemSpXnDky2AUYWgxjaopgB+shFHgXVpiJFeNB5nWEugpW1KWYDaHKuLqh2b67r24GtP6HoSW5swvf0fFIQ==
- dependencies:
- debug "^2.6.6"
- load-script "^1.0.0"
- sister "^3.0.0"
-
zod@3.22.4:
version "3.22.4"
resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff"
integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==
-zustand@^4.4.7:
- version "4.4.7"
- resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.4.7.tgz#355406be6b11ab335f59a66d2cf9815e8f24038c"
- integrity sha512-QFJWJMdlETcI69paJwhSMJz7PPWjVP8Sjhclxmxmxv/RYI7ZOvR5BHX+ktH0we9gTWQMxcne8q1OY8xxz604gw==
+zustand@^4.5.2:
+ version "4.5.2"
+ resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.5.2.tgz#fddbe7cac1e71d45413b3682cdb47b48034c3848"
+ integrity sha512-2cN1tPkDVkwCy5ickKrI7vijSjPksFRfqS6237NzT0vqSsztTNnQdHw9mmN7uBdk3gceVXU0a+21jFzFzAc9+g==
dependencies:
use-sync-external-store "1.2.0"