From 60b6f476d7515c34a1aafe65a55f6661e00ff8cc Mon Sep 17 00:00:00 2001 From: Leex Date: Mon, 3 Mar 2025 15:57:25 +0100 Subject: [PATCH 01/19] Delete wrangler.toml --- wrangler.toml | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 wrangler.toml diff --git a/wrangler.toml b/wrangler.toml deleted file mode 100644 index addd1007..00000000 --- a/wrangler.toml +++ /dev/null @@ -1,6 +0,0 @@ -#:schema node_modules/wrangler/config-schema.json -name = "bolt" -compatibility_flags = ["nodejs_compat"] -compatibility_date = "2024-07-01" -pages_build_output_dir = "./build/client" -send_metrics = false \ No newline at end of file From 2780b2ebe1226ff6f88df591e34d049d257653fe Mon Sep 17 00:00:00 2001 From: Leex Date: Mon, 3 Mar 2025 15:57:41 +0100 Subject: [PATCH 02/19] Delete .tool-versions --- .tool-versions | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 .tool-versions diff --git a/.tool-versions b/.tool-versions deleted file mode 100644 index 74c88f6a..00000000 --- a/.tool-versions +++ /dev/null @@ -1,2 +0,0 @@ -nodejs 20.15.1 -pnpm 9.4.0 \ No newline at end of file From 8d1f1382243e801ae1b0fcfca7eac6f8ebb0cf0c Mon Sep 17 00:00:00 2001 From: Anirban Kar Date: Mon, 3 Mar 2025 21:21:04 +0530 Subject: [PATCH 03/19] Revert "Delete wrangler.toml" This reverts commit 60b6f476d7515c34a1aafe65a55f6661e00ff8cc. --- wrangler.toml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 wrangler.toml diff --git a/wrangler.toml b/wrangler.toml new file mode 100644 index 00000000..addd1007 --- /dev/null +++ b/wrangler.toml @@ -0,0 +1,6 @@ +#:schema node_modules/wrangler/config-schema.json +name = "bolt" +compatibility_flags = ["nodejs_compat"] +compatibility_date = "2024-07-01" +pages_build_output_dir = "./build/client" +send_metrics = false \ No newline at end of file From 9b2a204ddc3ff0cb75236fe4e56ee103e32dcbb2 Mon Sep 17 00:00:00 2001 From: Anirban Kar Date: Tue, 4 Mar 2025 20:28:51 +0530 Subject: [PATCH 04/19] ci: added arm64 build and tags build --- .github/workflows/docker.yaml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index 42070f9f..b44e63a0 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -5,6 +5,9 @@ on: branches: - main - stable + tags: + - 'v*' + - '*.*.*' workflow_dispatch: permissions: @@ -21,6 +24,10 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -37,12 +44,17 @@ jobs: uses: docker/metadata-action@v4 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=ref,event=branch + type=ref,event=tag + type=sha - name: Build and push Docker image for main if: github.ref == 'refs/heads/main' uses: docker/build-push-action@v6 with: context: . + platforms: linux/amd64,linux/arm64 push: true tags: | ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest @@ -54,8 +66,20 @@ jobs: uses: docker/build-push-action@v6 with: context: . + platforms: linux/amd64,linux/arm64 push: true tags: | ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:stable ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} labels: ${{ steps.meta.outputs.labels }} + + - name: Build and push Docker image for tags + if: startsWith(github.ref, 'refs/tags/') + uses: docker/build-push-action@v6 + with: + context: . + platforms: linux/amd64,linux/arm64 + push: true + tags: | + ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.ref_name }} + labels: ${{ steps.meta.outputs.labels }} From 2452f9413d835508df3e6ea50b57bcbccd0645c8 Mon Sep 17 00:00:00 2001 From: Anirban Kar Date: Tue, 4 Mar 2025 20:37:33 +0530 Subject: [PATCH 05/19] ci: updated to have concise and parallel builds --- .github/workflows/docker.yaml | 58 ++++++++++------------------------- 1 file changed, 17 insertions(+), 41 deletions(-) diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index b44e63a0..05ab7831 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -2,14 +2,14 @@ name: Docker Publish on: push: - branches: - - main - - stable - tags: - - 'v*' - - '*.*.*' + branches: [main, stable] + tags: ['v*', '*.*.*'] workflow_dispatch: +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + permissions: packages: write contents: read @@ -21,17 +21,14 @@ env: jobs: docker-build-publish: runs-on: ubuntu-latest + # timeout-minutes: 30 steps: - name: Checkout code uses: actions/checkout@v4 - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - + - name: Log in to GitHub Container Registry uses: docker/login-action@v3 with: @@ -45,41 +42,20 @@ jobs: with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} tags: | - type=ref,event=branch + type=raw,value=latest,enable=${{ github.ref == 'refs/heads/main' }} + type=raw,value=stable,enable=${{ github.ref == 'refs/heads/stable' }} type=ref,event=tag - type=sha + type=sha,format=short + type=raw,value=${{ github.ref_name }},enable=${{ startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main' || github.ref == 'refs/heads/stable' }} - - name: Build and push Docker image for main - if: github.ref == 'refs/heads/main' + - name: Build and push Docker image uses: docker/build-push-action@v6 with: context: . platforms: linux/amd64,linux/arm64 push: true - tags: | - ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest - ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} - labels: ${{ steps.meta.outputs.labels }} - - - name: Build and push Docker image for stable - if: github.ref == 'refs/heads/stable' - uses: docker/build-push-action@v6 - with: - context: . - platforms: linux/amd64,linux/arm64 - push: true - tags: | - ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:stable - ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} - labels: ${{ steps.meta.outputs.labels }} - - - name: Build and push Docker image for tags - if: startsWith(github.ref, 'refs/tags/') - uses: docker/build-push-action@v6 - with: - context: . - platforms: linux/amd64,linux/arm64 - push: true - tags: | - ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.ref_name }} + tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + + - name: Check manifest + run: docker buildx imagetools inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }} \ No newline at end of file From f9436d4929bbb41a316dee69472145d8b71cca0a Mon Sep 17 00:00:00 2001 From: Anirban Kar Date: Wed, 5 Mar 2025 03:58:01 +0530 Subject: [PATCH 06/19] ci: updated target for docker build (#1451) --- .github/workflows/docker.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index 05ab7831..a038e02f 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -53,6 +53,7 @@ jobs: with: context: . platforms: linux/amd64,linux/arm64 + target: bolt-ai-production push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} From 73a0f3ae24c3dc79c68d075b49dea3883d4ce694 Mon Sep 17 00:00:00 2001 From: Anirban Kar Date: Wed, 5 Mar 2025 04:23:01 +0530 Subject: [PATCH 07/19] fix: git clone modal to work with non main as default branch (#1428) --- .../components/RepositorySelectionDialog.tsx | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/app/components/@settings/tabs/connections/components/RepositorySelectionDialog.tsx b/app/components/@settings/tabs/connections/components/RepositorySelectionDialog.tsx index 06202850..5f07e727 100644 --- a/app/components/@settings/tabs/connections/components/RepositorySelectionDialog.tsx +++ b/app/components/@settings/tabs/connections/components/RepositorySelectionDialog.tsx @@ -292,11 +292,24 @@ export function RepositorySelectionDialog({ isOpen, onClose, onSelect }: Reposit const connection = getLocalStorage('github_connection'); const headers: HeadersInit = connection?.token ? { Authorization: `Bearer ${connection.token}` } : {}; - - // Fetch repository tree - const treeResponse = await fetch(`https://api.github.com/repos/${owner}/${repo}/git/trees/main?recursive=1`, { + const repoObjResponse = await fetch(`https://api.github.com/repos/${owner}/${repo}`, { headers, }); + const repoObjData = (await repoObjResponse.json()) as any; + + if (!repoObjData.default_branch) { + throw new Error('Failed to fetch repository branch'); + } + + const defaultBranch = repoObjData.default_branch; + + // Fetch repository tree + const treeResponse = await fetch( + `https://api.github.com/repos/${owner}/${repo}/git/trees/${defaultBranch}?recursive=1`, + { + headers, + }, + ); if (!treeResponse.ok) { throw new Error('Failed to fetch repository structure'); From 1f940391b19e7187890623150136d24f0adb6322 Mon Sep 17 00:00:00 2001 From: Anirban Kar Date: Wed, 5 Mar 2025 10:59:48 +0530 Subject: [PATCH 08/19] feat: restoring project from snapshot on reload (#444) * feat:(project-snapshot) restoring project from snapshot on reload * minor bugfix * updated message * added snapshot reload with auto run dev commands * added message context * snapshot updated --- app/lib/persistence/types.ts | 7 + app/lib/persistence/useChatHistory.ts | 218 +++++++++++++++++++++++++- 2 files changed, 217 insertions(+), 8 deletions(-) create mode 100644 app/lib/persistence/types.ts diff --git a/app/lib/persistence/types.ts b/app/lib/persistence/types.ts new file mode 100644 index 00000000..56dacd61 --- /dev/null +++ b/app/lib/persistence/types.ts @@ -0,0 +1,7 @@ +import type { FileMap } from '~/lib/stores/files'; + +export interface Snapshot { + chatIndex: string; + files: FileMap; + summary?: string; +} diff --git a/app/lib/persistence/useChatHistory.ts b/app/lib/persistence/useChatHistory.ts index 7baefa56..b8b5c833 100644 --- a/app/lib/persistence/useChatHistory.ts +++ b/app/lib/persistence/useChatHistory.ts @@ -1,7 +1,7 @@ import { useLoaderData, useNavigate, useSearchParams } from '@remix-run/react'; -import { useState, useEffect } from 'react'; +import { useState, useEffect, useCallback } from 'react'; import { atom } from 'nanostores'; -import type { Message } from 'ai'; +import { generateId, type JSONValue, type Message } from 'ai'; import { toast } from 'react-toastify'; import { workbenchStore } from '~/lib/stores/workbench'; import { logStore } from '~/lib/stores/logs'; // Import logStore @@ -15,6 +15,11 @@ import { createChatFromMessages, type IChatMetadata, } from './db'; +import type { FileMap } from '~/lib/stores/files'; +import type { Snapshot } from './types'; +import { webcontainer } from '~/lib/webcontainer'; +import { createCommandsMessage, detectProjectCommands } from '~/utils/projectCommands'; +import type { ContextAnnotation } from '~/types/context'; export interface ChatHistoryItem { id: string; @@ -37,6 +42,7 @@ export function useChatHistory() { const { id: mixedId } = useLoaderData<{ id?: string }>(); const [searchParams] = useSearchParams(); + const [archivedMessages, setArchivedMessages] = useState([]); const [initialMessages, setInitialMessages] = useState([]); const [ready, setReady] = useState(false); const [urlId, setUrlId] = useState(); @@ -56,14 +62,128 @@ export function useChatHistory() { if (mixedId) { getMessages(db, mixedId) - .then((storedMessages) => { + .then(async (storedMessages) => { if (storedMessages && storedMessages.messages.length > 0) { + const snapshotStr = localStorage.getItem(`snapshot:${mixedId}`); + const snapshot: Snapshot = snapshotStr ? JSON.parse(snapshotStr) : { chatIndex: 0, files: {} }; + const summary = snapshot.summary; + const rewindId = searchParams.get('rewindTo'); - const filteredMessages = rewindId - ? storedMessages.messages.slice(0, storedMessages.messages.findIndex((m) => m.id === rewindId) + 1) - : storedMessages.messages; + let startingIdx = 0; + const endingIdx = rewindId + ? storedMessages.messages.findIndex((m) => m.id === rewindId) + 1 + : storedMessages.messages.length; + const snapshotIndex = storedMessages.messages.findIndex((m) => m.id === snapshot.chatIndex); + + if (snapshotIndex >= 0 && snapshotIndex < endingIdx) { + startingIdx = snapshotIndex; + } + + if (snapshotIndex > 0 && storedMessages.messages[snapshotIndex].id == rewindId) { + startingIdx = 0; + } + + let filteredMessages = storedMessages.messages.slice(startingIdx + 1, endingIdx); + let archivedMessages: Message[] = []; + + if (startingIdx > 0) { + archivedMessages = storedMessages.messages.slice(0, startingIdx + 1); + } + + setArchivedMessages(archivedMessages); + + if (startingIdx > 0) { + const files = Object.entries(snapshot?.files || {}) + .map(([key, value]) => { + if (value?.type !== 'file') { + return null; + } + + return { + content: value.content, + path: key, + }; + }) + .filter((x) => !!x); + const projectCommands = await detectProjectCommands(files); + const commands = createCommandsMessage(projectCommands); + + filteredMessages = [ + { + id: generateId(), + role: 'user', + content: `Restore project from snapshot + `, + annotations: ['no-store', 'hidden'], + }, + { + id: storedMessages.messages[snapshotIndex].id, + role: 'assistant', + content: ` 📦 Chat Restored from snapshot, You can revert this message to load the full chat history + + ${Object.entries(snapshot?.files || {}) + .filter((x) => !x[0].endsWith('lock.json')) + .map(([key, value]) => { + if (value?.type === 'file') { + return ` + +${value.content} + + `; + } else { + return ``; + } + }) + .join('\n')} + + `, + annotations: [ + 'no-store', + ...(summary + ? [ + { + chatId: storedMessages.messages[snapshotIndex].id, + type: 'chatSummary', + summary, + } satisfies ContextAnnotation, + ] + : []), + ], + }, + ...(commands !== null + ? [ + { + id: `${storedMessages.messages[snapshotIndex].id}-2`, + role: 'user' as const, + content: `setup project`, + annotations: ['no-store', 'hidden'], + }, + { + ...commands, + id: `${storedMessages.messages[snapshotIndex].id}-3`, + annotations: [ + 'no-store', + ...(commands.annotations || []), + ...(summary + ? [ + { + chatId: `${storedMessages.messages[snapshotIndex].id}-3`, + type: 'chatSummary', + summary, + } satisfies ContextAnnotation, + ] + : []), + ], + }, + ] + : []), + ...filteredMessages, + ]; + restoreSnapshot(mixedId); + } setInitialMessages(filteredMessages); + setUrlId(storedMessages.urlId); description.set(storedMessages.description); chatId.set(storedMessages.id); @@ -75,10 +195,64 @@ export function useChatHistory() { setReady(true); }) .catch((error) => { + console.error(error); + logStore.logError('Failed to load chat messages', error); toast.error(error.message); }); } + }, [mixedId]); + + const takeSnapshot = useCallback( + async (chatIdx: string, files: FileMap, _chatId?: string | undefined, chatSummary?: string) => { + const id = _chatId || chatId; + + if (!id) { + return; + } + + const snapshot: Snapshot = { + chatIndex: chatIdx, + files, + summary: chatSummary, + }; + localStorage.setItem(`snapshot:${id}`, JSON.stringify(snapshot)); + }, + [chatId], + ); + + const restoreSnapshot = useCallback(async (id: string) => { + const snapshotStr = localStorage.getItem(`snapshot:${id}`); + const container = await webcontainer; + + // if (snapshotStr)setSnapshot(JSON.parse(snapshotStr)); + const snapshot: Snapshot = snapshotStr ? JSON.parse(snapshotStr) : { chatIndex: 0, files: {} }; + + if (!snapshot?.files) { + return; + } + + Object.entries(snapshot.files).forEach(async ([key, value]) => { + if (key.startsWith(container.workdir)) { + key = key.replace(container.workdir, ''); + } + + if (value?.type === 'folder') { + await container.fs.mkdir(key, { recursive: true }); + } + }); + Object.entries(snapshot.files).forEach(async ([key, value]) => { + if (value?.type === 'file') { + if (key.startsWith(container.workdir)) { + key = key.replace(container.workdir, ''); + } + + await container.fs.writeFile(key, value.content, { encoding: value.isBinary ? undefined : 'utf8' }); + } else { + } + }); + + // workbenchStore.files.setKey(snapshot?.files) }, []); return { @@ -105,14 +279,34 @@ export function useChatHistory() { } const { firstArtifact } = workbenchStore; + messages = messages.filter((m) => !m.annotations?.includes('no-store')); + + let _urlId = urlId; if (!urlId && firstArtifact?.id) { const urlId = await getUrlId(db, firstArtifact.id); - + _urlId = urlId; navigateChat(urlId); setUrlId(urlId); } + let chatSummary: string | undefined = undefined; + const lastMessage = messages[messages.length - 1]; + + if (lastMessage.role === 'assistant') { + const annotations = lastMessage.annotations as JSONValue[]; + const filteredAnnotations = (annotations?.filter( + (annotation: JSONValue) => + annotation && typeof annotation === 'object' && Object.keys(annotation).includes('type'), + ) || []) as { type: string; value: any } & { [key: string]: any }[]; + + if (filteredAnnotations.find((annotation) => annotation.type === 'chatSummary')) { + chatSummary = filteredAnnotations.find((annotation) => annotation.type === 'chatSummary')?.summary; + } + } + + takeSnapshot(messages[messages.length - 1].id, workbenchStore.files.get(), _urlId, chatSummary); + if (!description.get() && firstArtifact?.title) { description.set(firstArtifact?.title); } @@ -127,7 +321,15 @@ export function useChatHistory() { } } - await setMessages(db, chatId.get() as string, messages, urlId, description.get(), undefined, chatMetadata.get()); + await setMessages( + db, + chatId.get() as string, + [...archivedMessages, ...messages], + urlId, + description.get(), + undefined, + chatMetadata.get(), + ); }, duplicateCurrentChat: async (listItemId: string) => { if (!db || (!mixedId && !listItemId)) { From 20722a108ca619c7eca68b063ae6c7af786d4efe Mon Sep 17 00:00:00 2001 From: Burhanuddin Khatri <144617735+BurhanCantCode@users.noreply.github.com> Date: Wed, 5 Mar 2025 18:42:52 +0500 Subject: [PATCH 09/19] feat: add Claude 3.7 Sonnet model as static list and update API key reference (#1449) --- app/lib/modules/llm/providers/anthropic.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/lib/modules/llm/providers/anthropic.ts b/app/lib/modules/llm/providers/anthropic.ts index f8dca5a8..70f93c07 100644 --- a/app/lib/modules/llm/providers/anthropic.ts +++ b/app/lib/modules/llm/providers/anthropic.ts @@ -13,6 +13,12 @@ export default class AnthropicProvider extends BaseProvider { }; staticModels: ModelInfo[] = [ + { + name: 'claude-3-7-sonnet-20250219', + label: 'Claude 3.7 Sonnet', + provider: 'Anthropic', + maxTokenAllowed: 8000, + }, { name: 'claude-3-5-sonnet-latest', label: 'Claude 3.5 Sonnet (new)', @@ -46,7 +52,7 @@ export default class AnthropicProvider extends BaseProvider { providerSettings: settings, serverEnv: serverEnv as any, defaultBaseUrlKey: '', - defaultApiTokenKey: 'OPENAI_API_KEY', + defaultApiTokenKey: 'ANTHROPIC_API_KEY', }); if (!apiKey) { From 9780393b17de28c9bad6fecee4a5ce713541eb0f Mon Sep 17 00:00:00 2001 From: Anirban Kar Date: Fri, 7 Mar 2025 00:29:44 +0530 Subject: [PATCH 10/19] fix: git cookies are auto set anytime connects changed or loaded (#1461) --- .../tabs/connections/GithubConnection.tsx | 94 +++++++++++-------- 1 file changed, 54 insertions(+), 40 deletions(-) diff --git a/app/components/@settings/tabs/connections/GithubConnection.tsx b/app/components/@settings/tabs/connections/GithubConnection.tsx index 9f433724..36197f2e 100644 --- a/app/components/@settings/tabs/connections/GithubConnection.tsx +++ b/app/components/@settings/tabs/connections/GithubConnection.tsx @@ -77,6 +77,46 @@ export function GithubConnection() { const [isFetchingStats, setIsFetchingStats] = useState(false); const [isStatsExpanded, setIsStatsExpanded] = useState(false); + const fetchGithubUser = async (token: string) => { + try { + setIsConnecting(true); + + const response = await fetch('https://api.github.com/user', { + headers: { + Authorization: `Bearer ${token}`, + }, + }); + + if (!response.ok) { + throw new Error('Invalid token or unauthorized'); + } + + const data = (await response.json()) as GitHubUserResponse; + const newConnection: GitHubConnection = { + user: data, + token, + tokenType: connection.tokenType, + }; + + localStorage.setItem('github_connection', JSON.stringify(newConnection)); + Cookies.set('githubToken', token); + Cookies.set('githubUsername', data.login); + Cookies.set('git:github.com', JSON.stringify({ username: token, password: 'x-oauth-basic' })); + + setConnection(newConnection); + + await fetchGitHubStats(token); + + toast.success('Successfully connected to GitHub'); + } catch (error) { + logStore.logError('Failed to authenticate with GitHub', { error }); + toast.error('Failed to connect to GitHub'); + setConnection({ user: null, token: '', tokenType: 'classic' }); + } finally { + setIsConnecting(false); + } + }; + const fetchGitHubStats = async (token: string) => { try { setIsFetchingStats(true); @@ -182,51 +222,25 @@ export function GithubConnection() { setIsLoading(false); }, []); + useEffect(() => { + if (!connection) { + return; + } + + const token = connection.token; + const data = connection.user; + Cookies.set('githubToken', token); + Cookies.set('git:github.com', JSON.stringify({ username: token, password: 'x-oauth-basic' })); + + if (data) { + Cookies.set('githubUsername', data.login); + } + }, [connection]); if (isLoading || isConnecting || isFetchingStats) { return ; } - const fetchGithubUser = async (token: string) => { - try { - setIsConnecting(true); - - const response = await fetch('https://api.github.com/user', { - headers: { - Authorization: `Bearer ${token}`, - }, - }); - - if (!response.ok) { - throw new Error('Invalid token or unauthorized'); - } - - const data = (await response.json()) as GitHubUserResponse; - const newConnection: GitHubConnection = { - user: data, - token, - tokenType: connection.tokenType, - }; - - localStorage.setItem('github_connection', JSON.stringify(newConnection)); - Cookies.set('githubToken', token); - Cookies.set('githubUsername', data.login); - Cookies.set('git:github.com', JSON.stringify({ username: token, password: 'x-oauth-basic' })); - - setConnection(newConnection); - - await fetchGitHubStats(token); - - toast.success('Successfully connected to GitHub'); - } catch (error) { - logStore.logError('Failed to authenticate with GitHub', { error }); - toast.error('Failed to connect to GitHub'); - setConnection({ user: null, token: '', tokenType: 'classic' }); - } finally { - setIsConnecting(false); - } - }; - const handleConnect = async (event: React.FormEvent) => { event.preventDefault(); await fetchGithubUser(connection.token); From cd4a5e83809759efb82ed0e26abc7a9349ae47ff Mon Sep 17 00:00:00 2001 From: Anirban Kar Date: Fri, 7 Mar 2025 14:10:37 +0530 Subject: [PATCH 11/19] fix: fix git proxy to work with other git provider (#1466) --- app/lib/persistence/useChatHistory.ts | 6 +- app/routes/api.git-proxy.$.ts | 176 +++++++++++++++++++++----- 2 files changed, 145 insertions(+), 37 deletions(-) diff --git a/app/lib/persistence/useChatHistory.ts b/app/lib/persistence/useChatHistory.ts index b8b5c833..3077ca44 100644 --- a/app/lib/persistence/useChatHistory.ts +++ b/app/lib/persistence/useChatHistory.ts @@ -69,7 +69,7 @@ export function useChatHistory() { const summary = snapshot.summary; const rewindId = searchParams.get('rewindTo'); - let startingIdx = 0; + let startingIdx = -1; const endingIdx = rewindId ? storedMessages.messages.findIndex((m) => m.id === rewindId) + 1 : storedMessages.messages.length; @@ -80,13 +80,13 @@ export function useChatHistory() { } if (snapshotIndex > 0 && storedMessages.messages[snapshotIndex].id == rewindId) { - startingIdx = 0; + startingIdx = -1; } let filteredMessages = storedMessages.messages.slice(startingIdx + 1, endingIdx); let archivedMessages: Message[] = []; - if (startingIdx > 0) { + if (startingIdx >= 0) { archivedMessages = storedMessages.messages.slice(0, startingIdx + 1); } diff --git a/app/routes/api.git-proxy.$.ts b/app/routes/api.git-proxy.$.ts index 9e6cb3b1..45230520 100644 --- a/app/routes/api.git-proxy.$.ts +++ b/app/routes/api.git-proxy.$.ts @@ -1,6 +1,47 @@ import { json } from '@remix-run/cloudflare'; import type { ActionFunctionArgs, LoaderFunctionArgs } from '@remix-run/cloudflare'; +// Allowed headers to forward to the target server +const ALLOW_HEADERS = [ + 'accept-encoding', + 'accept-language', + 'accept', + 'access-control-allow-origin', + 'authorization', + 'cache-control', + 'connection', + 'content-length', + 'content-type', + 'dnt', + 'pragma', + 'range', + 'referer', + 'user-agent', + 'x-authorization', + 'x-http-method-override', + 'x-requested-with', +]; + +// Headers to expose from the target server's response +const EXPOSE_HEADERS = [ + 'accept-ranges', + 'age', + 'cache-control', + 'content-length', + 'content-language', + 'content-type', + 'date', + 'etag', + 'expires', + 'last-modified', + 'pragma', + 'server', + 'transfer-encoding', + 'vary', + 'x-github-request-id', + 'x-redirected-url', +]; + // Handle all HTTP methods export async function action({ request, params }: ActionFunctionArgs) { return handleProxyRequest(request, params['*']); @@ -16,50 +57,117 @@ async function handleProxyRequest(request: Request, path: string | undefined) { return json({ error: 'Invalid proxy URL format' }, { status: 400 }); } - const url = new URL(request.url); - - // Reconstruct the target URL - const targetURL = `https://${path}${url.search}`; - - // Forward the request to the target URL - const response = await fetch(targetURL, { - method: request.method, - headers: { - ...Object.fromEntries(request.headers), - - // Override host header with the target host - host: new URL(targetURL).host, - }, - body: ['GET', 'HEAD'].includes(request.method) ? null : await request.arrayBuffer(), - }); - - // Create response with CORS headers - const corsHeaders = { - 'Access-Control-Allow-Origin': '*', - 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS', - 'Access-Control-Allow-Headers': '*', - }; - - // Handle preflight requests + // Handle CORS preflight request if (request.method === 'OPTIONS') { return new Response(null, { - headers: corsHeaders, - status: 204, + status: 200, + headers: { + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Methods': 'POST, GET, OPTIONS', + 'Access-Control-Allow-Headers': ALLOW_HEADERS.join(', '), + 'Access-Control-Expose-Headers': EXPOSE_HEADERS.join(', '), + 'Access-Control-Max-Age': '86400', + }, }); } - // Forward the response with CORS headers - const responseHeaders = new Headers(response.headers); - Object.entries(corsHeaders).forEach(([key, value]) => { - responseHeaders.set(key, value); - }); + // Extract domain and remaining path + const parts = path.match(/([^\/]+)\/?(.*)/); + if (!parts) { + return json({ error: 'Invalid path format' }, { status: 400 }); + } + + const domain = parts[1]; + const remainingPath = parts[2] || ''; + + // Reconstruct the target URL with query parameters + const url = new URL(request.url); + const targetURL = `https://${domain}/${remainingPath}${url.search}`; + + console.log('Target URL:', targetURL); + + // Filter and prepare headers + const headers = new Headers(); + + // Only forward allowed headers + for (const header of ALLOW_HEADERS) { + if (request.headers.has(header)) { + headers.set(header, request.headers.get(header)!); + } + } + + // Set the host header + headers.set('Host', domain); + + // Set Git user agent if not already present + if (!headers.has('user-agent') || !headers.get('user-agent')?.startsWith('git/')) { + headers.set('User-Agent', 'git/@isomorphic-git/cors-proxy'); + } + + console.log('Request headers:', Object.fromEntries(headers.entries())); + + // Prepare fetch options + const fetchOptions: RequestInit = { + method: request.method, + headers, + redirect: 'follow', + }; + + // Add body and duplex option for non-GET/HEAD requests + if (!['GET', 'HEAD'].includes(request.method)) { + fetchOptions.body = request.body; + fetchOptions.duplex = 'half'; // This fixes the "duplex option is required when sending a body" error + } + + // Forward the request to the target URL + const response = await fetch(targetURL, fetchOptions); + + console.log('Response status:', response.status); + + // Create response headers + const responseHeaders = new Headers(); + + // Add CORS headers + responseHeaders.set('Access-Control-Allow-Origin', '*'); + responseHeaders.set('Access-Control-Allow-Methods', 'POST, GET, OPTIONS'); + responseHeaders.set('Access-Control-Allow-Headers', ALLOW_HEADERS.join(', ')); + responseHeaders.set('Access-Control-Expose-Headers', EXPOSE_HEADERS.join(', ')); + + // Copy exposed headers from the target response + for (const header of EXPOSE_HEADERS) { + // Skip content-length as we'll use the original response's content-length + if (header === 'content-length') { + continue; + } + + if (response.headers.has(header)) { + responseHeaders.set(header, response.headers.get(header)!); + } + } + + // If the response was redirected, add the x-redirected-url header + if (response.redirected) { + responseHeaders.set('x-redirected-url', response.url); + } + + console.log('Response headers:', Object.fromEntries(responseHeaders.entries())); + + // Return the response with the target's body stream piped directly return new Response(response.body, { status: response.status, + statusText: response.statusText, headers: responseHeaders, }); } catch (error) { - console.error('Git proxy error:', error); - return json({ error: 'Proxy error' }, { status: 500 }); + console.error('Proxy error:', error); + return json( + { + error: 'Proxy error', + message: error instanceof Error ? error.message : 'Unknown error', + url: path ? `https://${path}` : 'Invalid URL', + }, + { status: 500 }, + ); } } From 7ff48e1d45ff3ab9b7394218c230948b318ed2e1 Mon Sep 17 00:00:00 2001 From: Anirban Kar Date: Sat, 8 Mar 2025 12:44:46 +0530 Subject: [PATCH 12/19] fix: attachment not getting sent on first message if starter template is turned on (#1472) --- app/components/chat/Chat.client.tsx | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/app/components/chat/Chat.client.tsx b/app/components/chat/Chat.client.tsx index c08dd6d8..8ac5d286 100644 --- a/app/components/chat/Chat.client.tsx +++ b/app/components/chat/Chat.client.tsx @@ -323,7 +323,16 @@ export const ChatImpl = memo( { id: `1-${new Date().getTime()}`, role: 'user', - content: messageContent, + content: [ + { + type: 'text', + text: `[Model: ${model}]\n\n[Provider: ${provider.name}]\n\n${messageContent}`, + }, + ...imageDataList.map((imageData) => ({ + type: 'image', + image: imageData, + })), + ] as any, }, { id: `2-${new Date().getTime()}`, @@ -338,6 +347,15 @@ export const ChatImpl = memo( }, ]); reload(); + setInput(''); + Cookies.remove(PROMPT_COOKIE_KEY); + + setUploadedFiles([]); + setImageDataList([]); + + resetEnhancer(); + + textareaRef.current?.blur(); setFakeLoading(false); return; @@ -364,6 +382,15 @@ export const ChatImpl = memo( ]); reload(); setFakeLoading(false); + setInput(''); + Cookies.remove(PROMPT_COOKIE_KEY); + + setUploadedFiles([]); + setImageDataList([]); + + resetEnhancer(); + + textareaRef.current?.blur(); return; } From 50dd74de071dba4ed90a42a25884a2e9c0128cc2 Mon Sep 17 00:00:00 2001 From: Stijnus <72551117+Stijnus@users.noreply.github.com> Date: Sat, 8 Mar 2025 20:37:56 +0100 Subject: [PATCH 13/19] fix: settings bugfix error building my application issue #1414 (#1436) * Fix: error building my application #1414 * fix for vite * Update vite.config.ts * Update root.tsx * fix the root.tsx and the debugtab * lm studio fix and fix for the api key * Update api.enhancer for prompt enhancement * bugfixes * Revert api.enhancer.ts back to original code * Update api.enhancer.ts * Update api.git-proxy.$.ts * Update api.git-proxy.$.ts * Update api.enhancer.ts --- .../tabs/connections/ConnectionsTab.tsx | 25 +- .../tabs/connections/GithubConnection.tsx | 2 +- .../tabs/connections/NetlifyConnection.tsx | 2 +- app/lib/hooks/useShortcuts.ts | 2 +- app/lib/modules/llm/providers/lmstudio.ts | 2 +- app/lib/modules/llm/providers/ollama.ts | 31 +- app/root.tsx | 7 +- app/routes/api.check-env-key.ts | 33 +- app/routes/api.deploy.ts | 12 +- app/routes/api.enhancer.ts | 18 +- app/routes/api.git-proxy.$.ts | 8 +- app/routes/api.health.ts | 20 +- app/routes/api.system.app-info.ts | 47 +- app/routes/api.system.git-info.ts | 168 ++--- app/routes/api.update.ts | 580 +----------------- package.json | 1 + pnpm-lock.yaml | 3 + vite.config.ts | 43 +- 18 files changed, 233 insertions(+), 771 deletions(-) diff --git a/app/components/@settings/tabs/connections/ConnectionsTab.tsx b/app/components/@settings/tabs/connections/ConnectionsTab.tsx index 450d241a..72ff6434 100644 --- a/app/components/@settings/tabs/connections/ConnectionsTab.tsx +++ b/app/components/@settings/tabs/connections/ConnectionsTab.tsx @@ -1,6 +1,19 @@ import { motion } from 'framer-motion'; -import { GithubConnection } from './GithubConnection'; -import { NetlifyConnection } from './NetlifyConnection'; +import React, { Suspense } from 'react'; + +// Use React.lazy for dynamic imports +const GithubConnection = React.lazy(() => import('./GithubConnection')); +const NetlifyConnection = React.lazy(() => import('./NetlifyConnection')); + +// Loading fallback component +const LoadingFallback = () => ( +
+
+
+ Loading connection... +
+
+); export default function ConnectionsTab() { return ( @@ -20,8 +33,12 @@ export default function ConnectionsTab() {

- - + }> + + + }> + +
); diff --git a/app/components/@settings/tabs/connections/GithubConnection.tsx b/app/components/@settings/tabs/connections/GithubConnection.tsx index 36197f2e..789cf0b1 100644 --- a/app/components/@settings/tabs/connections/GithubConnection.tsx +++ b/app/components/@settings/tabs/connections/GithubConnection.tsx @@ -66,7 +66,7 @@ interface GitHubConnection { stats?: GitHubStats; } -export function GithubConnection() { +export default function GithubConnection() { const [connection, setConnection] = useState({ user: null, token: '', diff --git a/app/components/@settings/tabs/connections/NetlifyConnection.tsx b/app/components/@settings/tabs/connections/NetlifyConnection.tsx index 5881b761..d811602e 100644 --- a/app/components/@settings/tabs/connections/NetlifyConnection.tsx +++ b/app/components/@settings/tabs/connections/NetlifyConnection.tsx @@ -13,7 +13,7 @@ import { } from '~/lib/stores/netlify'; import type { NetlifyUser } from '~/types/netlify'; -export function NetlifyConnection() { +export default function NetlifyConnection() { const connection = useStore(netlifyConnection); const connecting = useStore(isConnecting); const fetchingStats = useStore(isFetchingStats); diff --git a/app/lib/hooks/useShortcuts.ts b/app/lib/hooks/useShortcuts.ts index 39308fcd..447a97e3 100644 --- a/app/lib/hooks/useShortcuts.ts +++ b/app/lib/hooks/useShortcuts.ts @@ -41,7 +41,7 @@ export function useShortcuts(): void { } // Debug logging in development only - if (process.env.NODE_ENV === 'development') { + if (import.meta.env.DEV) { console.log('Key pressed:', { key: event.key, code: event.code, diff --git a/app/lib/modules/llm/providers/lmstudio.ts b/app/lib/modules/llm/providers/lmstudio.ts index 9dabc3eb..fe5b27cd 100644 --- a/app/lib/modules/llm/providers/lmstudio.ts +++ b/app/lib/modules/llm/providers/lmstudio.ts @@ -75,7 +75,7 @@ export default class LMStudioProvider extends BaseProvider { throw new Error('No baseUrl found for LMStudio provider'); } - const isDocker = process.env.RUNNING_IN_DOCKER === 'true' || serverEnv?.RUNNING_IN_DOCKER === 'true'; + const isDocker = process?.env?.RUNNING_IN_DOCKER === 'true' || serverEnv?.RUNNING_IN_DOCKER === 'true'; if (typeof window === 'undefined') { baseUrl = isDocker ? baseUrl.replace('localhost', 'host.docker.internal') : baseUrl; diff --git a/app/lib/modules/llm/providers/ollama.ts b/app/lib/modules/llm/providers/ollama.ts index a3974ab3..e50ecae5 100644 --- a/app/lib/modules/llm/providers/ollama.ts +++ b/app/lib/modules/llm/providers/ollama.ts @@ -27,8 +27,6 @@ export interface OllamaApiResponse { models: OllamaModel[]; } -export const DEFAULT_NUM_CTX = process?.env?.DEFAULT_NUM_CTX ? parseInt(process.env.DEFAULT_NUM_CTX, 10) : 32768; - export default class OllamaProvider extends BaseProvider { name = 'Ollama'; getApiKeyLink = 'https://ollama.com/download'; @@ -41,6 +39,26 @@ export default class OllamaProvider extends BaseProvider { staticModels: ModelInfo[] = []; + private _convertEnvToRecord(env?: Env): Record { + if (!env) { + return {}; + } + + // Convert Env to a plain object with string values + return Object.entries(env).reduce( + (acc, [key, value]) => { + acc[key] = String(value); + return acc; + }, + {} as Record, + ); + } + + getDefaultNumCtx(serverEnv?: Env): number { + const envRecord = this._convertEnvToRecord(serverEnv); + return envRecord.DEFAULT_NUM_CTX ? parseInt(envRecord.DEFAULT_NUM_CTX, 10) : 32768; + } + async getDynamicModels( apiKeys?: Record, settings?: IProviderSetting, @@ -81,6 +99,7 @@ export default class OllamaProvider extends BaseProvider { maxTokenAllowed: 8000, })); } + getModelInstance: (options: { model: string; serverEnv?: Env; @@ -88,10 +107,12 @@ export default class OllamaProvider extends BaseProvider { providerSettings?: Record; }) => LanguageModelV1 = (options) => { const { apiKeys, providerSettings, serverEnv, model } = options; + const envRecord = this._convertEnvToRecord(serverEnv); + let { baseUrl } = this.getProviderBaseUrlAndKey({ apiKeys, providerSettings: providerSettings?.[this.name], - serverEnv: serverEnv as any, + serverEnv: envRecord, defaultBaseUrlKey: 'OLLAMA_API_BASE_URL', defaultApiTokenKey: '', }); @@ -101,14 +122,14 @@ export default class OllamaProvider extends BaseProvider { throw new Error('No baseUrl found for OLLAMA provider'); } - const isDocker = process?.env?.RUNNING_IN_DOCKER === 'true' || serverEnv?.RUNNING_IN_DOCKER === 'true'; + const isDocker = process?.env?.RUNNING_IN_DOCKER === 'true' || envRecord.RUNNING_IN_DOCKER === 'true'; baseUrl = isDocker ? baseUrl.replace('localhost', 'host.docker.internal') : baseUrl; baseUrl = isDocker ? baseUrl.replace('127.0.0.1', 'host.docker.internal') : baseUrl; logger.debug('Ollama Base Url used: ', baseUrl); const ollamaInstance = ollama(model, { - numCtx: DEFAULT_NUM_CTX, + numCtx: this.getDefaultNumCtx(serverEnv), }) as LanguageModelV1 & { config: any }; ollamaInstance.config.baseURL = `${baseUrl}/api`; diff --git a/app/root.tsx b/app/root.tsx index b49d7355..a7ccb285 100644 --- a/app/root.tsx +++ b/app/root.tsx @@ -8,6 +8,7 @@ import { createHead } from 'remix-island'; import { useEffect } from 'react'; import { DndProvider } from 'react-dnd'; import { HTML5Backend } from 'react-dnd-html5-backend'; +import { ClientOnly } from 'remix-utils/client-only'; import reactToastifyStyles from 'react-toastify/dist/ReactToastify.css?url'; import globalStyles from './styles/index.scss?url'; @@ -72,11 +73,11 @@ export function Layout({ children }: { children: React.ReactNode }) { }, [theme]); return ( - - {children} + <> + {() => {children}} - + ); } diff --git a/app/routes/api.check-env-key.ts b/app/routes/api.check-env-key.ts index 14d21236..70f65bf0 100644 --- a/app/routes/api.check-env-key.ts +++ b/app/routes/api.check-env-key.ts @@ -1,16 +1,41 @@ import type { LoaderFunction } from '@remix-run/cloudflare'; -import { providerBaseUrlEnvKeys } from '~/utils/constants'; +import { LLMManager } from '~/lib/modules/llm/manager'; +import { getApiKeysFromCookie } from '~/lib/api/cookies'; export const loader: LoaderFunction = async ({ context, request }) => { const url = new URL(request.url); const provider = url.searchParams.get('provider'); - if (!provider || !providerBaseUrlEnvKeys[provider].apiTokenKey) { + if (!provider) { return Response.json({ isSet: false }); } - const envVarName = providerBaseUrlEnvKeys[provider].apiTokenKey; - const isSet = !!(process.env[envVarName] || (context?.cloudflare?.env as Record)?.[envVarName]); + const llmManager = LLMManager.getInstance(context?.cloudflare?.env as any); + const providerInstance = llmManager.getProvider(provider); + + if (!providerInstance || !providerInstance.config.apiTokenKey) { + return Response.json({ isSet: false }); + } + + const envVarName = providerInstance.config.apiTokenKey; + + // Get API keys from cookie + const cookieHeader = request.headers.get('Cookie'); + const apiKeys = getApiKeysFromCookie(cookieHeader); + + /* + * Check API key in order of precedence: + * 1. Client-side API keys (from cookies) + * 2. Server environment variables (from Cloudflare env) + * 3. Process environment variables (from .env.local) + * 4. LLMManager environment variables + */ + const isSet = !!( + apiKeys?.[provider] || + (context?.cloudflare?.env as Record)?.[envVarName] || + process.env[envVarName] || + llmManager.env[envVarName] + ); return Response.json({ isSet }); }; diff --git a/app/routes/api.deploy.ts b/app/routes/api.deploy.ts index 48543e97..0bc1c5e4 100644 --- a/app/routes/api.deploy.ts +++ b/app/routes/api.deploy.ts @@ -1,5 +1,4 @@ import { type ActionFunctionArgs, json } from '@remix-run/cloudflare'; -import crypto from 'crypto'; import type { NetlifySiteInfo } from '~/types/netlify'; interface DeployRequestBody { @@ -8,6 +7,15 @@ interface DeployRequestBody { chatId: string; } +async function sha1(message: string) { + const msgBuffer = new TextEncoder().encode(message); + const hashBuffer = await crypto.subtle.digest('SHA-1', msgBuffer); + const hashArray = Array.from(new Uint8Array(hashBuffer)); + const hashHex = hashArray.map((b) => b.toString(16).padStart(2, '0')).join(''); + + return hashHex; +} + export async function action({ request }: ActionFunctionArgs) { try { const { siteId, files, token, chatId } = (await request.json()) as DeployRequestBody & { token: string }; @@ -104,7 +112,7 @@ export async function action({ request }: ActionFunctionArgs) { for (const [filePath, content] of Object.entries(files)) { // Ensure file path starts with a forward slash const normalizedPath = filePath.startsWith('/') ? filePath : '/' + filePath; - const hash = crypto.createHash('sha1').update(content).digest('hex'); + const hash = await sha1(content); fileDigests[normalizedPath] = hash; } diff --git a/app/routes/api.enhancer.ts b/app/routes/api.enhancer.ts index 4ab54f31..1e7bad5f 100644 --- a/app/routes/api.enhancer.ts +++ b/app/routes/api.enhancer.ts @@ -95,24 +95,28 @@ async function enhancerAction({ context, request }: ActionFunctionArgs) { }, }); + // Handle streaming errors in a non-blocking way (async () => { - for await (const part of result.fullStream) { - if (part.type === 'error') { - const error: any = part.error; - logger.error(error); - - return; + try { + for await (const part of result.fullStream) { + if (part.type === 'error') { + const error: any = part.error; + logger.error('Streaming error:', error); + break; + } } + } catch (error) { + logger.error('Error processing stream:', error); } })(); + // Return the text stream directly since it's already text data return new Response(result.textStream, { status: 200, headers: { 'Content-Type': 'text/event-stream', Connection: 'keep-alive', 'Cache-Control': 'no-cache', - 'Text-Encoding': 'chunked', }, }); } catch (error: unknown) { diff --git a/app/routes/api.git-proxy.$.ts b/app/routes/api.git-proxy.$.ts index 45230520..a4e8f1e0 100644 --- a/app/routes/api.git-proxy.$.ts +++ b/app/routes/api.git-proxy.$.ts @@ -114,10 +114,14 @@ async function handleProxyRequest(request: Request, path: string | undefined) { redirect: 'follow', }; - // Add body and duplex option for non-GET/HEAD requests + // Add body for non-GET/HEAD requests if (!['GET', 'HEAD'].includes(request.method)) { fetchOptions.body = request.body; - fetchOptions.duplex = 'half'; // This fixes the "duplex option is required when sending a body" error + + /* + * Note: duplex property is removed to ensure TypeScript compatibility + * across different environments and versions + */ } // Forward the request to the target URL diff --git a/app/routes/api.health.ts b/app/routes/api.health.ts index 9d3bd839..e5f5a30d 100644 --- a/app/routes/api.health.ts +++ b/app/routes/api.health.ts @@ -1,18 +1,8 @@ -import type { LoaderFunctionArgs } from '@remix-run/node'; +import { json, type LoaderFunctionArgs } from '@remix-run/cloudflare'; export const loader = async ({ request: _request }: LoaderFunctionArgs) => { - // Return a simple 200 OK response with some basic health information - return new Response( - JSON.stringify({ - status: 'healthy', - timestamp: new Date().toISOString(), - uptime: process.uptime(), - }), - { - status: 200, - headers: { - 'Content-Type': 'application/json', - }, - }, - ); + return json({ + status: 'healthy', + timestamp: new Date().toISOString(), + }); }; diff --git a/app/routes/api.system.app-info.ts b/app/routes/api.system.app-info.ts index d3ed0185..01953b68 100644 --- a/app/routes/api.system.app-info.ts +++ b/app/routes/api.system.app-info.ts @@ -1,6 +1,5 @@ import type { ActionFunctionArgs, LoaderFunction } from '@remix-run/cloudflare'; import { json } from '@remix-run/cloudflare'; -import { execSync } from 'child_process'; // These are injected by Vite at build time declare const __APP_VERSION: string; @@ -11,34 +10,24 @@ declare const __PKG_DEPENDENCIES: Record; declare const __PKG_DEV_DEPENDENCIES: Record; declare const __PKG_PEER_DEPENDENCIES: Record; declare const __PKG_OPTIONAL_DEPENDENCIES: Record; +declare const __COMMIT_HASH: string; +declare const __GIT_BRANCH: string; +declare const __GIT_COMMIT_TIME: string; +declare const __GIT_AUTHOR: string; +declare const __GIT_EMAIL: string; +declare const __GIT_REMOTE_URL: string; +declare const __GIT_REPO_NAME: string; const getGitInfo = () => { - try { - return { - commitHash: execSync('git rev-parse --short HEAD').toString().trim(), - branch: execSync('git rev-parse --abbrev-ref HEAD').toString().trim(), - commitTime: execSync('git log -1 --format=%cd').toString().trim(), - author: execSync('git log -1 --format=%an').toString().trim(), - email: execSync('git log -1 --format=%ae').toString().trim(), - remoteUrl: execSync('git config --get remote.origin.url').toString().trim(), - repoName: execSync('git config --get remote.origin.url') - .toString() - .trim() - .replace(/^.*github.com[:/]/, '') - .replace(/\.git$/, ''), - }; - } catch (error) { - console.error('Failed to get git info:', error); - return { - commitHash: 'unknown', - branch: 'unknown', - commitTime: 'unknown', - author: 'unknown', - email: 'unknown', - remoteUrl: 'unknown', - repoName: 'unknown', - }; - } + return { + commitHash: __COMMIT_HASH || 'unknown', + branch: __GIT_BRANCH || 'unknown', + commitTime: __GIT_COMMIT_TIME || 'unknown', + author: __GIT_AUTHOR || 'unknown', + email: __GIT_EMAIL || 'unknown', + remoteUrl: __GIT_REMOTE_URL || 'unknown', + repoName: __GIT_REPO_NAME || 'unknown', + }; }; const formatDependencies = ( @@ -60,11 +49,11 @@ const getAppResponse = () => { version: __APP_VERSION || '0.1.0', description: __PKG_DESCRIPTION || 'A DIY LLM interface', license: __PKG_LICENSE || 'MIT', - environment: process.env.NODE_ENV || 'development', + environment: 'cloudflare', gitInfo, timestamp: new Date().toISOString(), runtimeInfo: { - nodeVersion: process.version || 'unknown', + nodeVersion: 'cloudflare', }, dependencies: { production: formatDependencies(__PKG_DEPENDENCIES, 'production'), diff --git a/app/routes/api.system.git-info.ts b/app/routes/api.system.git-info.ts index d6bf9975..63c879ce 100644 --- a/app/routes/api.system.git-info.ts +++ b/app/routes/api.system.git-info.ts @@ -1,138 +1,48 @@ -import type { LoaderFunction } from '@remix-run/cloudflare'; -import { json } from '@remix-run/cloudflare'; -import { execSync } from 'child_process'; +import { json, type LoaderFunction } from '@remix-run/cloudflare'; -interface GitHubRepoInfo { - name: string; - full_name: string; - default_branch: string; - stargazers_count: number; - forks_count: number; - open_issues_count: number; - parent?: { - full_name: string; - default_branch: string; - stargazers_count: number; - forks_count: number; +interface GitInfo { + local: { + commitHash: string; + branch: string; + commitTime: string; + author: string; + email: string; + remoteUrl: string; + repoName: string; }; + github?: { + currentRepo?: { + fullName: string; + defaultBranch: string; + stars: number; + forks: number; + openIssues?: number; + }; + }; + isForked?: boolean; } -const getLocalGitInfo = () => { - try { - return { - commitHash: execSync('git rev-parse HEAD').toString().trim(), - branch: execSync('git rev-parse --abbrev-ref HEAD').toString().trim(), - commitTime: execSync('git log -1 --format=%cd').toString().trim(), - author: execSync('git log -1 --format=%an').toString().trim(), - email: execSync('git log -1 --format=%ae').toString().trim(), - remoteUrl: execSync('git config --get remote.origin.url').toString().trim(), - repoName: execSync('git config --get remote.origin.url') - .toString() - .trim() - .replace(/^.*github.com[:/]/, '') - .replace(/\.git$/, ''), - }; - } catch (error) { - console.error('Failed to get local git info:', error); - return null; - } -}; +// These values will be replaced at build time +declare const __COMMIT_HASH: string; +declare const __GIT_BRANCH: string; +declare const __GIT_COMMIT_TIME: string; +declare const __GIT_AUTHOR: string; +declare const __GIT_EMAIL: string; +declare const __GIT_REMOTE_URL: string; +declare const __GIT_REPO_NAME: string; -const getGitHubInfo = async (repoFullName: string) => { - try { - // Add GitHub token if available - const headers: Record = { - Accept: 'application/vnd.github.v3+json', - }; - - const githubToken = process.env.GITHUB_TOKEN; - - if (githubToken) { - headers.Authorization = `token ${githubToken}`; - } - - console.log('Fetching GitHub info for:', repoFullName); // Debug log - - const response = await fetch(`https://api.github.com/repos/${repoFullName}`, { - headers, - }); - - if (!response.ok) { - console.error('GitHub API error:', { - status: response.status, - statusText: response.statusText, - repoFullName, - }); - - // If we get a 404, try the main repo as fallback - if (response.status === 404 && repoFullName !== 'stackblitz-labs/bolt.diy') { - return getGitHubInfo('stackblitz-labs/bolt.diy'); - } - - throw new Error(`GitHub API error: ${response.statusText}`); - } - - const data = await response.json(); - console.log('GitHub API response:', data); // Debug log - - return data as GitHubRepoInfo; - } catch (error) { - console.error('Failed to get GitHub info:', error); - return null; - } -}; - -export const loader: LoaderFunction = async ({ request: _request }) => { - const localInfo = getLocalGitInfo(); - console.log('Local git info:', localInfo); // Debug log - - // If we have local info, try to get GitHub info for both our fork and upstream - let githubInfo = null; - - if (localInfo?.repoName) { - githubInfo = await getGitHubInfo(localInfo.repoName); - } - - // If no local info or GitHub info, try the main repo - if (!githubInfo) { - githubInfo = await getGitHubInfo('stackblitz-labs/bolt.diy'); - } - - const response = { - local: localInfo || { - commitHash: 'unknown', - branch: 'unknown', - commitTime: 'unknown', - author: 'unknown', - email: 'unknown', - remoteUrl: 'unknown', - repoName: 'unknown', +export const loader: LoaderFunction = async () => { + const gitInfo: GitInfo = { + local: { + commitHash: typeof __COMMIT_HASH !== 'undefined' ? __COMMIT_HASH : 'development', + branch: typeof __GIT_BRANCH !== 'undefined' ? __GIT_BRANCH : 'main', + commitTime: typeof __GIT_COMMIT_TIME !== 'undefined' ? __GIT_COMMIT_TIME : new Date().toISOString(), + author: typeof __GIT_AUTHOR !== 'undefined' ? __GIT_AUTHOR : 'development', + email: typeof __GIT_EMAIL !== 'undefined' ? __GIT_EMAIL : 'development@local', + remoteUrl: typeof __GIT_REMOTE_URL !== 'undefined' ? __GIT_REMOTE_URL : 'local', + repoName: typeof __GIT_REPO_NAME !== 'undefined' ? __GIT_REPO_NAME : 'bolt.diy', }, - github: githubInfo - ? { - currentRepo: { - fullName: githubInfo.full_name, - defaultBranch: githubInfo.default_branch, - stars: githubInfo.stargazers_count, - forks: githubInfo.forks_count, - openIssues: githubInfo.open_issues_count, - }, - upstream: githubInfo.parent - ? { - fullName: githubInfo.parent.full_name, - defaultBranch: githubInfo.parent.default_branch, - stars: githubInfo.parent.stargazers_count, - forks: githubInfo.parent.forks_count, - } - : null, - } - : null, - isForked: Boolean(githubInfo?.parent), - timestamp: new Date().toISOString(), }; - console.log('Final response:', response); - - // Debug log - return json(response); + return json(gitInfo); }; diff --git a/app/routes/api.update.ts b/app/routes/api.update.ts index 9f79d4ae..97d28ce0 100644 --- a/app/routes/api.update.ts +++ b/app/routes/api.update.ts @@ -1,573 +1,21 @@ -import { json } from '@remix-run/node'; -import type { ActionFunction } from '@remix-run/node'; -import { exec } from 'child_process'; -import { promisify } from 'util'; - -const execAsync = promisify(exec); - -interface UpdateRequestBody { - branch: string; - autoUpdate?: boolean; -} - -interface UpdateProgress { - stage: 'fetch' | 'pull' | 'install' | 'build' | 'complete'; - message: string; - progress?: number; - error?: string; - details?: { - changedFiles?: string[]; - additions?: number; - deletions?: number; - commitMessages?: string[]; - totalSize?: string; - currentCommit?: string; - remoteCommit?: string; - updateReady?: boolean; - changelog?: string; - compareUrl?: string; - }; -} +import { json, type ActionFunction } from '@remix-run/cloudflare'; export const action: ActionFunction = async ({ request }) => { if (request.method !== 'POST') { return json({ error: 'Method not allowed' }, { status: 405 }); } - try { - const body = await request.json(); - - if (!body || typeof body !== 'object' || !('branch' in body) || typeof body.branch !== 'string') { - return json({ error: 'Invalid request body: branch is required and must be a string' }, { status: 400 }); - } - - const { branch, autoUpdate = false } = body as UpdateRequestBody; - - // Create a ReadableStream to send progress updates - const stream = new ReadableStream({ - async start(controller) { - const encoder = new TextEncoder(); - const sendProgress = (update: UpdateProgress) => { - controller.enqueue(encoder.encode(JSON.stringify(update) + '\n')); - }; - - try { - // Initial check stage - sendProgress({ - stage: 'fetch', - message: 'Checking repository status...', - progress: 0, - }); - - // Check if remote exists - let defaultBranch = branch || 'main'; // Make branch mutable - - try { - await execAsync('git remote get-url upstream'); - sendProgress({ - stage: 'fetch', - message: 'Repository remote verified', - progress: 10, - }); - } catch { - throw new Error( - 'No upstream repository found. Please set up the upstream repository first by running:\ngit remote add upstream https://github.com/stackblitz-labs/bolt.diy.git', - ); - } - - // Get default branch if not specified - if (!branch) { - sendProgress({ - stage: 'fetch', - message: 'Detecting default branch...', - progress: 20, - }); - - try { - const { stdout } = await execAsync('git remote show upstream | grep "HEAD branch" | cut -d" " -f5'); - defaultBranch = stdout.trim() || 'main'; - sendProgress({ - stage: 'fetch', - message: `Using branch: ${defaultBranch}`, - progress: 30, - }); - } catch { - defaultBranch = 'main'; // Fallback to main if we can't detect - sendProgress({ - stage: 'fetch', - message: 'Using default branch: main', - progress: 30, - }); - } - } - - // Fetch stage - sendProgress({ - stage: 'fetch', - message: 'Fetching latest changes...', - progress: 40, - }); - - // Fetch all remotes - await execAsync('git fetch --all'); - sendProgress({ - stage: 'fetch', - message: 'Remote changes fetched', - progress: 50, - }); - - // Check if remote branch exists - try { - await execAsync(`git rev-parse --verify upstream/${defaultBranch}`); - sendProgress({ - stage: 'fetch', - message: 'Remote branch verified', - progress: 60, - }); - } catch { - throw new Error( - `Remote branch 'upstream/${defaultBranch}' not found. Please ensure the upstream repository is properly configured.`, - ); - } - - // Get current commit hash and remote commit hash - sendProgress({ - stage: 'fetch', - message: 'Comparing versions...', - progress: 70, - }); - - const { stdout: currentCommit } = await execAsync('git rev-parse HEAD'); - const { stdout: remoteCommit } = await execAsync(`git rev-parse upstream/${defaultBranch}`); - - // If we're on the same commit, no update is available - if (currentCommit.trim() === remoteCommit.trim()) { - sendProgress({ - stage: 'complete', - message: 'No updates available. You are on the latest version.', - progress: 100, - details: { - currentCommit: currentCommit.trim().substring(0, 7), - remoteCommit: remoteCommit.trim().substring(0, 7), - }, - }); - return; - } - - sendProgress({ - stage: 'fetch', - message: 'Analyzing changes...', - progress: 80, - }); - - // Initialize variables - let changedFiles: string[] = []; - let commitMessages: string[] = []; - let stats: RegExpMatchArray | null = null; - let totalSizeInBytes = 0; - - // Format size for display - const formatSize = (bytes: number) => { - if (bytes === 0) { - return '0 B'; - } - - const k = 1024; - const sizes = ['B', 'KB', 'MB', 'GB']; - const i = Math.floor(Math.log(bytes) / Math.log(k)); - - return `${parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${sizes[i]}`; - }; - - // Get list of changed files and their sizes - try { - const { stdout: diffOutput } = await execAsync( - `git diff --name-status ${currentCommit.trim()}..${remoteCommit.trim()}`, - ); - const files = diffOutput.split('\n').filter(Boolean); - - if (files.length === 0) { - sendProgress({ - stage: 'complete', - message: `No file changes detected between your version and upstream/${defaultBranch}. You might be on a different branch.`, - progress: 100, - details: { - currentCommit: currentCommit.trim().substring(0, 7), - remoteCommit: remoteCommit.trim().substring(0, 7), - }, - }); - return; - } - - sendProgress({ - stage: 'fetch', - message: `Found ${files.length} changed files, calculating sizes...`, - progress: 90, - }); - - // Get size information for each changed file - for (const line of files) { - const [status, file] = line.split('\t'); - - if (status !== 'D') { - // Skip deleted files - try { - const { stdout: sizeOutput } = await execAsync(`git cat-file -s ${remoteCommit.trim()}:${file}`); - const size = parseInt(sizeOutput) || 0; - totalSizeInBytes += size; - } catch { - console.debug(`Could not get size for file: ${file}`); - } - } - } - - changedFiles = files.map((line) => { - const [status, file] = line.split('\t'); - return `${status === 'M' ? 'Modified' : status === 'A' ? 'Added' : 'Deleted'}: ${file}`; - }); - } catch (err) { - console.debug('Failed to get changed files:', err); - throw new Error(`Failed to compare changes with upstream/${defaultBranch}. Are you on the correct branch?`); - } - - // Get commit messages between current and remote - try { - const { stdout: logOutput } = await execAsync( - `git log --pretty=format:"%h|%s|%aI" ${currentCommit.trim()}..${remoteCommit.trim()}`, - ); - - // Parse and group commits by type - const commits = logOutput - .split('\n') - .filter(Boolean) - .map((line) => { - const [hash, subject, timestamp] = line.split('|'); - let type = 'other'; - let message = subject; - - if (subject.startsWith('feat:') || subject.startsWith('feature:')) { - type = 'feature'; - message = subject.replace(/^feat(?:ure)?:/, '').trim(); - } else if (subject.startsWith('fix:')) { - type = 'fix'; - message = subject.replace(/^fix:/, '').trim(); - } else if (subject.startsWith('docs:')) { - type = 'docs'; - message = subject.replace(/^docs:/, '').trim(); - } else if (subject.startsWith('style:')) { - type = 'style'; - message = subject.replace(/^style:/, '').trim(); - } else if (subject.startsWith('refactor:')) { - type = 'refactor'; - message = subject.replace(/^refactor:/, '').trim(); - } else if (subject.startsWith('perf:')) { - type = 'perf'; - message = subject.replace(/^perf:/, '').trim(); - } else if (subject.startsWith('test:')) { - type = 'test'; - message = subject.replace(/^test:/, '').trim(); - } else if (subject.startsWith('build:')) { - type = 'build'; - message = subject.replace(/^build:/, '').trim(); - } else if (subject.startsWith('ci:')) { - type = 'ci'; - message = subject.replace(/^ci:/, '').trim(); - } - - return { - hash, - type, - message, - timestamp: new Date(timestamp), - }; - }); - - // Group commits by type - const groupedCommits = commits.reduce( - (acc, commit) => { - if (!acc[commit.type]) { - acc[commit.type] = []; - } - - acc[commit.type].push(commit); - - return acc; - }, - {} as Record, - ); - - // Format commit messages with emojis and timestamps - const formattedMessages = Object.entries(groupedCommits).map(([type, commits]) => { - const emoji = { - feature: '✨', - fix: '🐛', - docs: '📚', - style: '💎', - refactor: '♻️', - perf: '⚡', - test: '🧪', - build: '🛠️', - ci: '⚙️', - other: '🔍', - }[type]; - - const title = { - feature: 'Features', - fix: 'Bug Fixes', - docs: 'Documentation', - style: 'Styles', - refactor: 'Code Refactoring', - perf: 'Performance', - test: 'Tests', - build: 'Build', - ci: 'CI', - other: 'Other Changes', - }[type]; - - return `### ${emoji} ${title}\n\n${commits - .map((c) => `* ${c.message} (${c.hash.substring(0, 7)}) - ${c.timestamp.toLocaleString()}`) - .join('\n')}`; - }); - - commitMessages = formattedMessages; - } catch { - // Handle silently - empty commitMessages array will be used - } - - // Get diff stats using the specific commits - try { - const { stdout: diffStats } = await execAsync( - `git diff --shortstat ${currentCommit.trim()}..${remoteCommit.trim()}`, - ); - stats = diffStats.match( - /(\d+) files? changed(?:, (\d+) insertions?\\(\\+\\))?(?:, (\d+) deletions?\\(-\\))?/, - ); - } catch { - // Handle silently - null stats will be used - } - - // If we somehow still have no changes detected - if (!stats && changedFiles.length === 0) { - sendProgress({ - stage: 'complete', - message: `No changes detected between your version and upstream/${defaultBranch}. This might be unexpected - please check your git status.`, - progress: 100, - }); - return; - } - - // Fetch changelog - sendProgress({ - stage: 'fetch', - message: 'Fetching changelog...', - progress: 95, - }); - - const changelog = await fetchChangelog(currentCommit.trim(), remoteCommit.trim()); - - // We have changes, send the details - sendProgress({ - stage: 'fetch', - message: `Changes detected on upstream/${defaultBranch}`, - progress: 100, - details: { - changedFiles, - additions: stats?.[2] ? parseInt(stats[2]) : 0, - deletions: stats?.[3] ? parseInt(stats[3]) : 0, - commitMessages, - totalSize: formatSize(totalSizeInBytes), - currentCommit: currentCommit.trim().substring(0, 7), - remoteCommit: remoteCommit.trim().substring(0, 7), - updateReady: true, - changelog, - compareUrl: `https://github.com/stackblitz-labs/bolt.diy/compare/${currentCommit.trim().substring(0, 7)}...${remoteCommit.trim().substring(0, 7)}`, - }, - }); - - // Only proceed with update if autoUpdate is true - if (!autoUpdate) { - sendProgress({ - stage: 'complete', - message: 'Update is ready to be applied. Click "Update Now" to proceed.', - progress: 100, - details: { - changedFiles, - additions: stats?.[2] ? parseInt(stats[2]) : 0, - deletions: stats?.[3] ? parseInt(stats[3]) : 0, - commitMessages, - totalSize: formatSize(totalSizeInBytes), - currentCommit: currentCommit.trim().substring(0, 7), - remoteCommit: remoteCommit.trim().substring(0, 7), - updateReady: true, - changelog, - compareUrl: `https://github.com/stackblitz-labs/bolt.diy/compare/${currentCommit.trim().substring(0, 7)}...${remoteCommit.trim().substring(0, 7)}`, - }, - }); - return; - } - - // Pull stage - sendProgress({ - stage: 'pull', - message: `Pulling changes from upstream/${defaultBranch}...`, - progress: 0, - }); - - await execAsync(`git pull upstream ${defaultBranch}`); - - sendProgress({ - stage: 'pull', - message: 'Changes pulled successfully', - progress: 100, - }); - - // Install stage - sendProgress({ - stage: 'install', - message: 'Installing dependencies...', - progress: 0, - }); - - await execAsync('pnpm install'); - - sendProgress({ - stage: 'install', - message: 'Dependencies installed successfully', - progress: 100, - }); - - // Build stage - sendProgress({ - stage: 'build', - message: 'Building application...', - progress: 0, - }); - - await execAsync('pnpm build'); - - sendProgress({ - stage: 'build', - message: 'Build completed successfully', - progress: 100, - }); - - // Complete - sendProgress({ - stage: 'complete', - message: 'Update completed successfully! Click Restart to apply changes.', - progress: 100, - }); - } catch (err) { - sendProgress({ - stage: 'complete', - message: 'Update failed', - error: err instanceof Error ? err.message : 'Unknown error occurred', - }); - } finally { - controller.close(); - } - }, - }); - - return new Response(stream, { - headers: { - 'Content-Type': 'text/event-stream', - 'Cache-Control': 'no-cache', - Connection: 'keep-alive', - }, - }); - } catch (err) { - console.error('Update preparation failed:', err); - return json( - { - success: false, - error: err instanceof Error ? err.message : 'Unknown error occurred while preparing update', - }, - { status: 500 }, - ); - } + return json( + { + error: 'Updates must be performed manually in a server environment', + instructions: [ + '1. Navigate to the project directory', + '2. Run: git fetch upstream', + '3. Run: git pull upstream main', + '4. Run: pnpm install', + '5. Run: pnpm run build', + ], + }, + { status: 400 }, + ); }; - -// Add this function to fetch the changelog -async function fetchChangelog(currentCommit: string, remoteCommit: string): Promise { - try { - // First try to get the changelog.md content - const { stdout: changelogContent } = await execAsync('git show upstream/main:changelog.md'); - - // If we have a changelog, return it - if (changelogContent) { - return changelogContent; - } - - // If no changelog.md, generate one in a similar format - let changelog = '# Changes in this Update\n\n'; - - // Get commit messages grouped by type - const { stdout: commitLog } = await execAsync( - `git log --pretty=format:"%h|%s|%b" ${currentCommit.trim()}..${remoteCommit.trim()}`, - ); - - const commits = commitLog.split('\n').filter(Boolean); - const categorizedCommits: Record = { - '✨ Features': [], - '🐛 Bug Fixes': [], - '📚 Documentation': [], - '💎 Styles': [], - '♻️ Code Refactoring': [], - '⚡ Performance': [], - '🧪 Tests': [], - '🛠️ Build': [], - '⚙️ CI': [], - '🔍 Other Changes': [], - }; - - // Categorize commits - for (const commit of commits) { - const [hash, subject] = commit.split('|'); - let category = '🔍 Other Changes'; - - if (subject.startsWith('feat:') || subject.startsWith('feature:')) { - category = '✨ Features'; - } else if (subject.startsWith('fix:')) { - category = '🐛 Bug Fixes'; - } else if (subject.startsWith('docs:')) { - category = '📚 Documentation'; - } else if (subject.startsWith('style:')) { - category = '💎 Styles'; - } else if (subject.startsWith('refactor:')) { - category = '♻️ Code Refactoring'; - } else if (subject.startsWith('perf:')) { - category = '⚡ Performance'; - } else if (subject.startsWith('test:')) { - category = '🧪 Tests'; - } else if (subject.startsWith('build:')) { - category = '🛠️ Build'; - } else if (subject.startsWith('ci:')) { - category = '⚙️ CI'; - } - - const message = subject.includes(':') ? subject.split(':')[1].trim() : subject.trim(); - categorizedCommits[category].push(`* ${message} (${hash.substring(0, 7)})`); - } - - // Build changelog content - for (const [category, commits] of Object.entries(categorizedCommits)) { - if (commits.length > 0) { - changelog += `\n## ${category}\n\n${commits.join('\n')}\n`; - } - } - - // Add stats - const { stdout: stats } = await execAsync(`git diff --shortstat ${currentCommit.trim()}..${remoteCommit.trim()}`); - - if (stats) { - changelog += '\n## 📊 Stats\n\n'; - changelog += `${stats.trim()}\n`; - } - - return changelog; - } catch (error) { - console.error('Error fetching changelog:', error); - return 'Unable to fetch changelog'; - } -} diff --git a/package.json b/package.json index e287f0c5..144831fb 100644 --- a/package.json +++ b/package.json @@ -123,6 +123,7 @@ "remark-gfm": "^4.0.0", "remix-island": "^0.2.0", "remix-utils": "^7.7.0", + "rollup-plugin-node-polyfills": "^0.2.1", "shiki": "^1.24.0", "tailwind-merge": "^2.2.1", "unist-util-visit": "^5.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fc491791..bb37289b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -287,6 +287,9 @@ importers: remix-utils: specifier: ^7.7.0 version: 7.7.0(@remix-run/cloudflare@2.15.3(@cloudflare/workers-types@4.20250204.0)(typescript@5.7.3))(@remix-run/node@2.15.3(typescript@5.7.3))(@remix-run/react@2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3))(@remix-run/router@1.22.0)(react@18.3.1)(zod@3.24.1) + rollup-plugin-node-polyfills: + specifier: ^0.2.1 + version: 0.2.1 shiki: specifier: ^1.24.0 version: 1.29.2 diff --git a/vite.config.ts b/vite.config.ts index 01fb3b2e..a9351c12 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -89,14 +89,55 @@ export default defineConfig((config) => { __PKG_DEV_DEPENDENCIES: JSON.stringify(pkg.devDependencies), __PKG_PEER_DEPENDENCIES: JSON.stringify(pkg.peerDependencies), __PKG_OPTIONAL_DEPENDENCIES: JSON.stringify(pkg.optionalDependencies), + // Define global values + 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV), }, build: { target: 'esnext', + rollupOptions: { + output: { + format: 'esm', + }, + }, + commonjsOptions: { + transformMixedEsModules: true, + }, + }, + optimizeDeps: { + esbuildOptions: { + define: { + global: 'globalThis', + }, + }, + }, + resolve: { + alias: { + buffer: 'vite-plugin-node-polyfills/polyfills/buffer', + }, }, plugins: [ nodePolyfills({ - include: ['path', 'buffer', 'process'], + include: ['buffer', 'process', 'util', 'stream'], + globals: { + Buffer: true, + process: true, + global: true, + }, + protocolImports: true, + // Exclude Node.js modules that shouldn't be polyfilled in Cloudflare + exclude: ['child_process', 'fs', 'path'], }), + { + name: 'buffer-polyfill', + transform(code, id) { + if (id.includes('env.mjs')) { + return { + code: `import { Buffer } from 'buffer';\n${code}`, + map: null, + }; + } + }, + }, config.mode !== 'test' && remixCloudflareDevProxy(), remixVitePlugin({ future: { From fc779b5b1f49181d9a5f63130dd7815002692cef Mon Sep 17 00:00:00 2001 From: Leex Date: Sat, 8 Mar 2025 23:08:40 +0100 Subject: [PATCH 14/19] update: docs README.md - changed git clone for pulling stable branch, not main anymore - Removed some not needed stuff --- README.md | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 3071fcee..f92a21ff 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# bolt.diy (Previously oTToDev) +# bolt.diy [![bolt.diy: AI-Powered Full-Stack Web Development in the Browser](./public/social_preview_index.jpg)](https://bolt.diy) -Welcome to bolt.diy, the official open source version of Bolt.new (previously known as oTToDev and bolt.new ANY LLM), which allows you to choose the LLM that you use for each prompt! Currently, you can use OpenAI, Anthropic, Ollama, OpenRouter, Gemini, LMStudio, Mistral, xAI, HuggingFace, DeepSeek, or Groq models - and it is easily extended to use any other model supported by the Vercel AI SDK! See the instructions below for running this locally and extending it to include more models. +Welcome to bolt.diy, the official open source version of Bolt.new, which allows you to choose the LLM that you use for each prompt! Currently, you can use OpenAI, Anthropic, Ollama, OpenRouter, Gemini, LMStudio, Mistral, xAI, HuggingFace, DeepSeek, or Groq models - and it is easily extended to use any other model supported by the Vercel AI SDK! See the instructions below for running this locally and extending it to include more models. ----- Check the [bolt.diy Docs](https://stackblitz-labs.github.io/bolt.diy/) for more offical installation instructions and more informations. @@ -83,7 +83,8 @@ project, please check the [project management guide](./PROJECT.md) to get starte - ⬜ **HIGH PRIORITY** - Prevent bolt from rewriting files as often (file locking and diffs) - ⬜ **HIGH PRIORITY** - Better prompting for smaller LLMs (code window sometimes doesn't start) - ⬜ **HIGH PRIORITY** - Run agents in the backend as opposed to a single model call -- ⬜ Deploy directly to Vercel/Netlify/other similar platforms +- ✅ Deploy directly to Netlify (@xKevIsDev) +- ⬜ Supabase Integration - ⬜ Have LLM plan the project in a MD file for better results/transparency - ⬜ VSCode Integration with git-like confirmations - ⬜ Upload documents for knowledge - UI design templates, a code base to reference coding style, etc. @@ -101,8 +102,9 @@ project, please check the [project management guide](./PROJECT.md) to get starte - **Attach images to prompts** for better contextual understanding. - **Integrated terminal** to view output of LLM-run commands. - **Revert code to earlier versions** for easier debugging and quicker changes. -- **Download projects as ZIP** for easy portability. +- **Download projects as ZIP** for easy portabilitr Sync to a folder on the host. - **Integration-ready Docker support** for a hassle-free setup. +- **Deploy** directly to **Netlify** ## Setup @@ -241,8 +243,7 @@ This method is recommended for developers who want to: 1. **Clone the Repository**: ```bash - # Using HTTPS - git clone https://github.com/stackblitz-labs/bolt.diy.git + git clone -b stable https://github.com/stackblitz-labs/bolt.diy.git ``` 2. **Navigate to Project Directory**: @@ -251,21 +252,25 @@ This method is recommended for developers who want to: cd bolt.diy ``` -3. **Switch to the Main Branch**: - ```bash - git checkout main - ``` -4. **Install Dependencies**: +3. **Install Dependencies**: ```bash pnpm install ``` -5. **Start the Development Server**: +4. **Start the Development Server**: ```bash pnpm run dev ``` +5. **(OPTIONAL)** Switch to the Main Branch if you want to use pre-release/testbranch): + ```bash + git checkout main + ``` + Hint: Be aware that this can have beta-features and more likely got bugs than the stable release + + + #### Staying Updated To get the latest changes from the repository: @@ -279,7 +284,7 @@ To get the latest changes from the repository: 2. **Pull Latest Updates**: ```bash - git pull origin main + git pull ``` 3. **Update Dependencies**: From a696d5f254acc7e9ac0ad4c5e17021c2780e1074 Mon Sep 17 00:00:00 2001 From: Leex Date: Sun, 9 Mar 2025 23:44:23 +0100 Subject: [PATCH 15/19] Update README.md --- README.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f92a21ff..f38e23c0 100644 --- a/README.md +++ b/README.md @@ -263,13 +263,19 @@ This method is recommended for developers who want to: pnpm run dev ``` -5. **(OPTIONAL)** Switch to the Main Branch if you want to use pre-release/testbranch): +5. **(OPTIONAL)** Switch to the Main Branch if you want to use pre-release/testbranch: ```bash git checkout main + pnpm install + pnpm run dev ``` Hint: Be aware that this can have beta-features and more likely got bugs than the stable release - +>**Open the WebUI to test (Default: http://localhost:5173)** +> - Beginngers: +> - Try to use a sophisticated Provider/Model like Anthropic with Claude Sonnet 3.x Models to get best results +> - Explanation: The System Prompt currently implemented in bolt.diy cant cover the best performance for all providers and models out there. So it works better with some models, then other, even if the models itself are perfect for >programming +> - Future: Planned is a Plugin/Extentions-Library so there can be different System Prompts for different Models, which will help to get better results #### Staying Updated From 27fbfb76c4b95d55d837e78d399ea20de11e86dc Mon Sep 17 00:00:00 2001 From: Leex Date: Mon, 10 Mar 2025 00:05:36 +0100 Subject: [PATCH 16/19] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f38e23c0..c14974b2 100644 --- a/README.md +++ b/README.md @@ -102,7 +102,7 @@ project, please check the [project management guide](./PROJECT.md) to get starte - **Attach images to prompts** for better contextual understanding. - **Integrated terminal** to view output of LLM-run commands. - **Revert code to earlier versions** for easier debugging and quicker changes. -- **Download projects as ZIP** for easy portabilitr Sync to a folder on the host. +- **Download projects as ZIP** for easy portability Sync to a folder on the host. - **Integration-ready Docker support** for a hassle-free setup. - **Deploy** directly to **Netlify** From 7107163f3103eddcc209f6ac552f9fd85d54409c Mon Sep 17 00:00:00 2001 From: Leex Date: Tue, 18 Mar 2025 10:54:39 +0100 Subject: [PATCH 17/19] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index c14974b2..15a45169 100644 --- a/README.md +++ b/README.md @@ -360,3 +360,9 @@ Explore upcoming features and priorities on our [Roadmap](https://roadmap.sh/r/o ## FAQ For answers to common questions, issues, and to see a list of recommended models, visit our [FAQ Page](FAQ.md). + + +# Licensing +**Who needs a commercial WebContainer API license?** + +Licensing is required for production usage of the API in a commercial, for-profit setting. (Prototypes or POCs do not require a commercial license.) If you're using the API to meet the needs of your customers, prospective customers, and/or employees, you need a license to ensure compliance with our Terms of Service. Usage of the API in violation of these terms may result in your access being revoked. From 64afda10781d96749cbae44b9b7e3e62d8e02b53 Mon Sep 17 00:00:00 2001 From: Leex Date: Tue, 18 Mar 2025 11:40:49 +0100 Subject: [PATCH 18/19] Update README.md Co-authored-by: patak <583075+patak-dev@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 15a45169..74f807b5 100644 --- a/README.md +++ b/README.md @@ -365,4 +365,4 @@ For answers to common questions, issues, and to see a list of recommended models # Licensing **Who needs a commercial WebContainer API license?** -Licensing is required for production usage of the API in a commercial, for-profit setting. (Prototypes or POCs do not require a commercial license.) If you're using the API to meet the needs of your customers, prospective customers, and/or employees, you need a license to ensure compliance with our Terms of Service. Usage of the API in violation of these terms may result in your access being revoked. +bolt.diy source code is distributed as MIT, but it uses WebContainers API that [requires licensing](https://webcontainers.io/enterprise) for production usage in a commercial, for-profit setting. (Prototypes or POCs do not require a commercial license.) If you're using the API to meet the needs of your customers, prospective customers, and/or employees, you need a license to ensure compliance with our Terms of Service. Usage of the API in violation of these terms may result in your access being revoked. From 1ce6ad6b595fb2bcec9b68fa340c038337f6e5f7 Mon Sep 17 00:00:00 2001 From: Derek Wang Date: Wed, 19 Mar 2025 11:52:06 -0700 Subject: [PATCH 19/19] feat: electron desktop app without express server (#1136) * feat: add electron app * refactor: using different approach * chore: update commit hash to 02621e3545511ca8bc0279b70f92083218548655 * fix: working dev but prod showing not found and lint fix * fix: add icon * fix: resolve server file load issue * fix: eslint and prettier wip * fix: only load server build once * fix: forward request for other ports * fix: use cloudflare {} to avoid crash * fix: no need for appLogger * fix: forward cookie * fix: update script and update preload loading path * chore: minor update for appId * fix: store and load all cookies * refactor: split main/index.ts * refactor: group electron main files into two folders * fix: update electron build configs * fix: update auto update feat * fix: vite-plugin-node-polyfills need to be in dependencies for dmg version to work * ci: trigger build for electron branch * ci: mark draft if it's from branch commit * ci: add icons for windows and linux * fix: update icons for windows * fix: add author in package.json * ci: use softprops/action-gh-release@v2 * fix: use path to join * refactor: refactor path logic for working in both mac and windows * fix: still need vite-plugin-node-polyfills dependencies * fix: update vite-electron.config.ts * ci: sign mac app * refactor: assets folder * ci: notarization * ci: add NODE_OPTIONS * ci: window only nsis dist --------- Co-authored-by: github-actions[bot] --- .github/workflows/electron.yml | 91 + .../@settings/tabs/debug/DebugTab.tsx | 4 +- assets/entitlements.mac.plist | 25 + assets/icons/icon.icns | Bin 0 -> 167243 bytes assets/icons/icon.ico | Bin 0 -> 171717 bytes assets/icons/icon.png | Bin 0 -> 18915 bytes electron-builder.yml | 65 + electron-update.yml | 4 + electron/main/index.ts | 201 + electron/main/tsconfig.json | 30 + electron/main/ui/menu.ts | 29 + electron/main/ui/window.ts | 51 + electron/main/utils/auto-update.ts | 110 + electron/main/utils/constants.ts | 4 + electron/main/utils/cookie.ts | 40 + electron/main/utils/reload.ts | 35 + electron/main/utils/serve.ts | 71 + electron/main/utils/store.ts | 3 + electron/main/utils/vite-server.ts | 44 + electron/main/vite.config.ts | 44 + electron/preload/index.ts | 22 + electron/preload/tsconfig.json | 7 + electron/preload/vite.config.ts | 31 + eslint.config.mjs | 2 +- notarize.cjs | 31 + package.json | 38 +- pnpm-lock.yaml | 8036 +++++++++++------ tsconfig.json | 4 +- vite-electron.config.ts | 75 + 29 files changed, 6215 insertions(+), 2882 deletions(-) create mode 100644 .github/workflows/electron.yml create mode 100644 assets/entitlements.mac.plist create mode 100644 assets/icons/icon.icns create mode 100644 assets/icons/icon.ico create mode 100644 assets/icons/icon.png create mode 100644 electron-builder.yml create mode 100644 electron-update.yml create mode 100644 electron/main/index.ts create mode 100644 electron/main/tsconfig.json create mode 100644 electron/main/ui/menu.ts create mode 100644 electron/main/ui/window.ts create mode 100644 electron/main/utils/auto-update.ts create mode 100644 electron/main/utils/constants.ts create mode 100644 electron/main/utils/cookie.ts create mode 100644 electron/main/utils/reload.ts create mode 100644 electron/main/utils/serve.ts create mode 100644 electron/main/utils/store.ts create mode 100644 electron/main/utils/vite-server.ts create mode 100644 electron/main/vite.config.ts create mode 100644 electron/preload/index.ts create mode 100644 electron/preload/tsconfig.json create mode 100644 electron/preload/vite.config.ts create mode 100644 notarize.cjs create mode 100644 vite-electron.config.ts diff --git a/.github/workflows/electron.yml b/.github/workflows/electron.yml new file mode 100644 index 00000000..29ff2a67 --- /dev/null +++ b/.github/workflows/electron.yml @@ -0,0 +1,91 @@ +name: Electron Build and Release + +on: + workflow_dispatch: + push: + branches: + - electron + tags: + - 'v*' + +jobs: + build: + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [macos-latest, ubuntu-latest, windows-latest] + node-version: [18.18.0] + fail-fast: false + + steps: + - name: Check out Git repository + uses: actions/checkout@v4 + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + + - name: Install pnpm + uses: pnpm/action-setup@v2 + with: + version: 9.14.4 + run_install: false + + - name: Get pnpm store directory + shell: bash + run: | + echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV + + - name: Setup pnpm cache + uses: actions/cache@v3 + with: + path: ${{ env.STORE_PATH }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + + - name: Install dependencies + run: pnpm install + + # Install Linux dependencies + - name: Install Linux dependencies + if: matrix.os == 'ubuntu-latest' + run: | + sudo apt-get update + sudo apt-get install -y rpm + + # Build + - name: Build Electron app + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CSC_LINK: ${{ secrets.CSC_LINK }} + CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }} + APPLE_ID: ${{ secrets.APPLE_ID }} + APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }} + APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} + NODE_OPTIONS: "--max_old_space_size=4096" + run: | + if [ "$RUNNER_OS" == "Windows" ]; then + pnpm run electron:build:win + elif [ "$RUNNER_OS" == "macOS" ]; then + pnpm run electron:build:mac + else + pnpm run electron:build:linux + fi + shell: bash + + # Create Release + - name: Create Release + uses: softprops/action-gh-release@v2 + with: + draft: ${{ github.ref_type == 'branch' }} + files: | + dist/*.exe + dist/*.dmg + dist/*.deb + dist/*.AppImage + dist/*.zip + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/app/components/@settings/tabs/debug/DebugTab.tsx b/app/components/@settings/tabs/debug/DebugTab.tsx index e31ae473..25a86623 100644 --- a/app/components/@settings/tabs/debug/DebugTab.tsx +++ b/app/components/@settings/tabs/debug/DebugTab.tsx @@ -1353,7 +1353,9 @@ export default function DebugTab() {
- DOM Ready: {systemInfo ? (systemInfo.performance.timing.domReadyTime / 1000).toFixed(2) : '-'}s + DOM Ready: {systemInfo + ? (systemInfo.performance.timing.domReadyTime / 1000).toFixed(2) + : '-'}s
diff --git a/assets/entitlements.mac.plist b/assets/entitlements.mac.plist new file mode 100644 index 00000000..0b2a95cb --- /dev/null +++ b/assets/entitlements.mac.plist @@ -0,0 +1,25 @@ + + + + + + com.apple.security.cs.allow-jit + + + + com.apple.security.cs.allow-unsigned-executable-memory + + + + com.apple.security.network.client + + + + + + + + + \ No newline at end of file diff --git a/assets/icons/icon.icns b/assets/icons/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..b3fbe2b676eb0da65e3789ddcc5c090fdafabb5a GIT binary patch literal 167243 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 literal 0 HcmV?d00001 diff --git a/assets/icons/icon.png b/assets/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7bf0fc9a8b1d4ce7ea3514e1c55a2b30be8523e5 GIT binary patch literal 18915 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
~x&HFiiGX^_1X6uh9^Eko%cn!PqRwjys1ION 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 +import { createRequestHandler } from '@remix-run/node'; +import electron, { app, BrowserWindow, ipcMain, protocol, session } from 'electron'; +import log from 'electron-log'; +import path from 'node:path'; +import * as pkg from '../../package.json'; +import { setupAutoUpdater } from './utils/auto-update'; +import { isDev, DEFAULT_PORT } from './utils/constants'; +import { initViteServer, viteServer } from './utils/vite-server'; +import { setupMenu } from './ui/menu'; +import { createWindow } from './ui/window'; +import { initCookies, storeCookies } from './utils/cookie'; +import { loadServerBuild, serveAsset } from './utils/serve'; +import { reloadOnChange } from './utils/reload'; + +Object.assign(console, log.functions); + +console.debug('main: import.meta.env:', import.meta.env); +console.log('main: isDev:', isDev); +console.log('NODE_ENV:', global.process.env.NODE_ENV); +console.log('isPackaged:', app.isPackaged); + +// Log unhandled errors +process.on('uncaughtException', async (error) => { + console.log('Uncaught Exception:', error); +}); + +process.on('unhandledRejection', async (error) => { + console.log('Unhandled Rejection:', error); +}); + +(() => { + const root = global.process.env.APP_PATH_ROOT ?? import.meta.env.VITE_APP_PATH_ROOT; + + if (root === undefined) { + console.log('no given APP_PATH_ROOT or VITE_APP_PATH_ROOT. default path is used.'); + return; + } + + if (!path.isAbsolute(root)) { + console.log('APP_PATH_ROOT must be absolute path.'); + global.process.exit(1); + } + + console.log(`APP_PATH_ROOT: ${root}`); + + const subdirName = pkg.name; + + for (const [key, val] of [ + ['appData', ''], + ['userData', subdirName], + ['sessionData', subdirName], + ] as const) { + app.setPath(key, path.join(root, val)); + } + + app.setAppLogsPath(path.join(root, subdirName, 'Logs')); +})(); + +console.log('appPath:', app.getAppPath()); + +const keys: Parameters[number][] = ['home', 'appData', 'userData', 'sessionData', 'logs', 'temp']; +keys.forEach((key) => console.log(`${key}:`, app.getPath(key))); +console.log('start whenReady'); + +declare global { + // eslint-disable-next-line no-var, @typescript-eslint/naming-convention + var __electron__: typeof electron; +} + +(async () => { + await app.whenReady(); + console.log('App is ready'); + + // Load any existing cookies from ElectronStore, set as cookie + await initCookies(); + + const serverBuild = await loadServerBuild(); + + protocol.handle('http', async (req) => { + console.log('Handling request for:', req.url); + + if (isDev) { + console.log('Dev mode: forwarding to vite server'); + return await fetch(req); + } + + req.headers.append('Referer', req.referrer); + + try { + const url = new URL(req.url); + + // Forward requests to specific local server ports + if (url.port !== `${DEFAULT_PORT}`) { + console.log('Forwarding request to local server:', req.url); + return await fetch(req); + } + + // Always try to serve asset first + const assetPath = path.join(app.getAppPath(), 'build', 'client'); + const res = await serveAsset(req, assetPath); + + if (res) { + console.log('Served asset:', req.url); + return res; + } + + // Forward all cookies to remix server + const cookies = await session.defaultSession.cookies.get({}); + + if (cookies.length > 0) { + req.headers.set('Cookie', cookies.map((c) => `${c.name}=${c.value}`).join('; ')); + + // Store all cookies + await storeCookies(cookies); + } + + // Create request handler with the server build + const handler = createRequestHandler(serverBuild, 'production'); + console.log('Handling request with server build:', req.url); + + const result = await handler(req, { + /* + * Remix app access cloudflare.env + * Need to pass an empty object to prevent undefined + */ + // @ts-ignore:next-line + cloudflare: {}, + }); + + return result; + } catch (err) { + console.log('Error handling request:', { + url: req.url, + error: + err instanceof Error + ? { + message: err.message, + stack: err.stack, + cause: err.cause, + } + : err, + }); + + const error = err instanceof Error ? err : new Error(String(err)); + + return new Response(`Error handling request to ${req.url}: ${error.stack ?? error.message}`, { + status: 500, + headers: { 'content-type': 'text/plain' }, + }); + } + }); + + const rendererURL = await (isDev + ? (async () => { + await initViteServer(); + + if (!viteServer) { + throw new Error('Vite server is not initialized'); + } + + const listen = await viteServer.listen(); + global.__electron__ = electron; + viteServer.printUrls(); + + return `http://localhost:${listen.config.server.port}`; + })() + : `http://localhost:${DEFAULT_PORT}`); + + console.log('Using renderer URL:', rendererURL); + + const win = await createWindow(rendererURL); + + app.on('activate', async () => { + if (BrowserWindow.getAllWindows().length === 0) { + await createWindow(rendererURL); + } + }); + + console.log('end whenReady'); + + return win; +})() + .then((win) => { + // IPC samples : send and recieve. + let count = 0; + setInterval(() => win.webContents.send('ping', `hello from main! ${count++}`), 60 * 1000); + ipcMain.handle('ipcTest', (event, ...args) => console.log('ipc: renderer -> main', { event, ...args })); + + return win; + }) + .then((win) => setupMenu(win)); + +app.on('window-all-closed', () => { + if (process.platform !== 'darwin') { + app.quit(); + } +}); + +reloadOnChange(); +setupAutoUpdater(); diff --git a/electron/main/tsconfig.json b/electron/main/tsconfig.json new file mode 100644 index 00000000..9d478122 --- /dev/null +++ b/electron/main/tsconfig.json @@ -0,0 +1,30 @@ +{ + "include": ["."], + "compilerOptions": { + "lib": ["ESNext"], + "jsx": "preserve", + "target": "ESNext", + "noEmit": true, + "skipLibCheck": true, + "useDefineForClassFields": true, + + /* modules */ + "moduleResolution": "Bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "module": "ESNext", + "isolatedModules": true, + "emitDeclarationOnly": true, + "declaration": true, + "declarationDir": "./dist", + + /* type checking */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noImplicitReturns": true, + "verbatimModuleSyntax": true, + "forceConsistentCasingInFileNames": true + } +} diff --git a/electron/main/ui/menu.ts b/electron/main/ui/menu.ts new file mode 100644 index 00000000..9e416b02 --- /dev/null +++ b/electron/main/ui/menu.ts @@ -0,0 +1,29 @@ +import { BrowserWindow, Menu } from 'electron'; + +export function setupMenu(win: BrowserWindow): void { + const app = Menu.getApplicationMenu(); + Menu.setApplicationMenu( + Menu.buildFromTemplate([ + ...(app ? app.items : []), + { + label: 'Go', + submenu: [ + { + label: 'Back', + accelerator: 'CmdOrCtrl+[', + click: () => { + win?.webContents.navigationHistory.goBack(); + }, + }, + { + label: 'Forward', + accelerator: 'CmdOrCtrl+]', + click: () => { + win?.webContents.navigationHistory.goForward(); + }, + }, + ], + }, + ]), + ); +} diff --git a/electron/main/ui/window.ts b/electron/main/ui/window.ts new file mode 100644 index 00000000..7d5d1af8 --- /dev/null +++ b/electron/main/ui/window.ts @@ -0,0 +1,51 @@ +import { app, BrowserWindow } from 'electron'; +import path from 'node:path'; +import { isDev } from '../utils/constants'; +import { store } from '../utils/store'; + +export function createWindow(rendererURL: string) { + console.log('Creating window with URL:', rendererURL); + + const bounds = store.get('bounds'); + console.log('restored bounds:', bounds); + + const win = new BrowserWindow({ + ...{ + width: 1200, + height: 800, + ...bounds, + }, + vibrancy: 'under-window', + visualEffectState: 'active', + webPreferences: { + preload: path.join(app.getAppPath(), 'build', 'electron', 'preload', 'index.cjs'), + }, + }); + + console.log('Window created, loading URL...'); + win.loadURL(rendererURL).catch((err) => { + console.log('Failed to load URL:', err); + }); + + win.webContents.on('did-fail-load', (_, errorCode, errorDescription) => { + console.log('Failed to load:', errorCode, errorDescription); + }); + + win.webContents.on('did-finish-load', () => { + console.log('Window finished loading'); + }); + + // Open devtools in development + if (isDev) { + win.webContents.openDevTools(); + } + + const boundsListener = () => { + const bounds = win.getBounds(); + store.set('bounds', bounds); + }; + win.on('moved', boundsListener); + win.on('resized', boundsListener); + + return win; +} diff --git a/electron/main/utils/auto-update.ts b/electron/main/utils/auto-update.ts new file mode 100644 index 00000000..7c738b5b --- /dev/null +++ b/electron/main/utils/auto-update.ts @@ -0,0 +1,110 @@ +import logger from 'electron-log'; +import type { MessageBoxOptions } from 'electron'; +import { app, dialog } from 'electron'; +import type { AppUpdater, UpdateDownloadedEvent, UpdateInfo } from 'electron-updater'; +import path from 'node:path'; + +// NOTE: workaround to use electron-updater. +import * as electronUpdater from 'electron-updater'; +import { isDev } from './constants'; + +const autoUpdater: AppUpdater = (electronUpdater as any).default.autoUpdater; + +export async function setupAutoUpdater() { + // Configure logger + logger.transports.file.level = 'debug'; + autoUpdater.logger = logger; + + // Configure custom update config file + const resourcePath = isDev + ? path.join(process.cwd(), 'electron-update.yml') + : path.join(app.getAppPath(), 'electron-update.yml'); + logger.info('Update config path:', resourcePath); + autoUpdater.updateConfigPath = resourcePath; + + // Disable auto download - we want to ask user first + autoUpdater.autoDownload = false; + autoUpdater.autoInstallOnAppQuit = true; + + autoUpdater.on('checking-for-update', () => { + logger.info('checking-for-update...'); + }); + + autoUpdater.on('update-available', async (info: UpdateInfo) => { + logger.info('Update available.', info); + + const dialogOpts: MessageBoxOptions = { + type: 'info' as const, + buttons: ['Update', 'Later'], + title: 'Application Update', + message: `Version ${info.version} is available.`, + detail: 'A new version is available. Would you like to update now?', + }; + + const response = await dialog.showMessageBox(dialogOpts); + + if (response.response === 0) { + autoUpdater.downloadUpdate(); + } + }); + + autoUpdater.on('update-not-available', () => { + logger.info('Update not available.'); + }); + + /* + * Uncomment this before we have any published updates on github releases. + * autoUpdater.on('error', (err) => { + * logger.error('Error in auto-updater:', err); + * dialog.showErrorBox('Error: ', err.message); + * }); + */ + + autoUpdater.on('download-progress', (progressObj) => { + logger.info('Download progress:', progressObj); + }); + + autoUpdater.on('update-downloaded', async (event: UpdateDownloadedEvent) => { + logger.info('Update downloaded:', formatUpdateDownloadedEvent(event)); + + const dialogOpts: MessageBoxOptions = { + type: 'info' as const, + buttons: ['Restart', 'Later'], + title: 'Application Update', + message: 'Update Downloaded', + detail: 'A new version has been downloaded. Restart the application to apply the updates.', + }; + + const response = await dialog.showMessageBox(dialogOpts); + + if (response.response === 0) { + autoUpdater.quitAndInstall(false); + } + }); + + // Check for updates + try { + logger.info('Checking for updates. Current version:', app.getVersion()); + await autoUpdater.checkForUpdates(); + } catch (err) { + logger.error('Failed to check for updates:', err); + } + + // Set up periodic update checks (every 4 hours) + setInterval( + () => { + autoUpdater.checkForUpdates().catch((err) => { + logger.error('Periodic update check failed:', err); + }); + }, + 4 * 60 * 60 * 1000, + ); +} + +function formatUpdateDownloadedEvent(event: UpdateDownloadedEvent): string { + return JSON.stringify({ + version: event.version, + downloadedFile: event.downloadedFile, + files: event.files.map((e) => ({ files: { url: e.url, size: e.size } })), + }); +} diff --git a/electron/main/utils/constants.ts b/electron/main/utils/constants.ts new file mode 100644 index 00000000..caf3a8ed --- /dev/null +++ b/electron/main/utils/constants.ts @@ -0,0 +1,4 @@ +import { app } from 'electron'; + +export const isDev = !(global.process.env.NODE_ENV === 'production' || app.isPackaged); +export const DEFAULT_PORT = 5173; diff --git a/electron/main/utils/cookie.ts b/electron/main/utils/cookie.ts new file mode 100644 index 00000000..b1c2c574 --- /dev/null +++ b/electron/main/utils/cookie.ts @@ -0,0 +1,40 @@ +import { session } from 'electron'; +import { DEFAULT_PORT } from './constants'; +import { store } from './store'; + +/** + * On app startup: read any existing cookies from store and set it as a cookie. + */ +export async function initCookies() { + await loadStoredCookies(); +} + +// Function to store all cookies +export async function storeCookies(cookies: Electron.Cookie[]) { + for (const cookie of cookies) { + store.set(`cookie:${cookie.name}`, cookie); + } +} + +// Function to load stored cookies +async function loadStoredCookies() { + // Get all keys that start with 'cookie:' + const cookieKeys = store.store ? Object.keys(store.store).filter((key) => key.startsWith('cookie:')) : []; + + for (const key of cookieKeys) { + const cookie = store.get(key); + + if (cookie) { + try { + // Add default URL if not present + const cookieWithUrl = { + ...cookie, + url: cookie.url || `http://localhost:${DEFAULT_PORT}`, + }; + await session.defaultSession.cookies.set(cookieWithUrl); + } catch (error) { + console.error(`Failed to set cookie ${key}:`, error); + } + } + } +} diff --git a/electron/main/utils/reload.ts b/electron/main/utils/reload.ts new file mode 100644 index 00000000..6ec5724c --- /dev/null +++ b/electron/main/utils/reload.ts @@ -0,0 +1,35 @@ +import { app } from 'electron'; +import path from 'node:path'; +import { promises as fs } from 'node:fs'; + +// Reload on change. +let isQuited = false; + +const abort = new AbortController(); +const { signal } = abort; + +export async function reloadOnChange() { + const dir = path.join(app.getAppPath(), 'build', 'electron'); + + try { + const watcher = fs.watch(dir, { signal, recursive: true }); + + // eslint-disable-next-line @typescript-eslint/no-unused-vars + for await (const _event of watcher) { + if (!isQuited) { + isQuited = true; + app.relaunch(); + app.quit(); + } + } + } catch (err) { + if (!(err instanceof Error)) { + throw err; + } + + if (err.name === 'AbortError') { + console.log('abort watching:', dir); + return; + } + } +} diff --git a/electron/main/utils/serve.ts b/electron/main/utils/serve.ts new file mode 100644 index 00000000..9eaefb88 --- /dev/null +++ b/electron/main/utils/serve.ts @@ -0,0 +1,71 @@ +import { createReadableStreamFromReadable } from '@remix-run/node'; +import type { ServerBuild } from '@remix-run/node'; +import mime from 'mime'; +import { createReadStream, promises as fs } from 'node:fs'; +import path from 'node:path'; +import { pathToFileURL } from 'node:url'; +import { app } from 'electron'; +import { isDev } from './constants'; + +export async function loadServerBuild(): Promise { + if (isDev) { + console.log('Dev mode: server build not loaded'); + return; + } + + const serverBuildPath = path.join(app.getAppPath(), 'build', 'server', 'index.js'); + console.log(`Loading server build... path is ${serverBuildPath}`); + + try { + const fileUrl = pathToFileURL(serverBuildPath).href; + const serverBuild: ServerBuild = /** @type {ServerBuild} */ await import(fileUrl); + console.log('Server build loaded successfully'); + + // eslint-disable-next-line consistent-return + return serverBuild; + } catch (buildError) { + console.log('Failed to load server build:', { + message: (buildError as Error)?.message, + stack: (buildError as Error)?.stack, + error: JSON.stringify(buildError, Object.getOwnPropertyNames(buildError as object)), + }); + + return; + } +} + +// serve assets built by vite. +export async function serveAsset(req: Request, assetsPath: string): Promise { + const url = new URL(req.url); + const fullPath = path.join(assetsPath, decodeURIComponent(url.pathname)); + console.log('Serving asset, path:', fullPath); + + if (!fullPath.startsWith(assetsPath)) { + console.log('Path is outside assets directory:', fullPath); + return; + } + + const stat = await fs.stat(fullPath).catch((err) => { + console.log('Failed to stat file:', fullPath, err); + return undefined; + }); + + if (!stat?.isFile()) { + console.log('Not a file:', fullPath); + return; + } + + const headers = new Headers(); + const mimeType = mime.getType(fullPath); + + if (mimeType) { + headers.set('Content-Type', mimeType); + } + + console.log('Serving file with mime type:', mimeType); + + const body = createReadableStreamFromReadable(createReadStream(fullPath)); + + // eslint-disable-next-line consistent-return + return new Response(body, { headers }); +} diff --git a/electron/main/utils/store.ts b/electron/main/utils/store.ts new file mode 100644 index 00000000..bb6bd9b4 --- /dev/null +++ b/electron/main/utils/store.ts @@ -0,0 +1,3 @@ +import ElectronStore from 'electron-store'; + +export const store = new ElectronStore({ encryptionKey: 'something' }); diff --git a/electron/main/utils/vite-server.ts b/electron/main/utils/vite-server.ts new file mode 100644 index 00000000..e87e1e55 --- /dev/null +++ b/electron/main/utils/vite-server.ts @@ -0,0 +1,44 @@ +import { app } from 'electron'; +import type { ViteDevServer } from 'vite'; + +let viteServer: ViteDevServer | undefined; + +// Conditionally import Vite only in development +export async function initViteServer() { + if (!(global.process.env.NODE_ENV === 'production' || app.isPackaged)) { + const vite = await import('vite'); + viteServer = await vite.createServer({ + root: '.', + envDir: process.cwd(), // load .env files from the root directory. + }); + } +} + +/* + * + * take care of vite-dev-server. + * + */ +app.on('before-quit', async (_event) => { + if (!viteServer) { + return; + } + + /* + * ref: https://stackoverflow.com/questions/68750716/electron-app-throwing-quit-unexpectedly-error-message-on-mac-when-quitting-the-a + * event.preventDefault(); + */ + try { + console.log('will close vite-dev-server.'); + await viteServer.close(); + console.log('closed vite-dev-server.'); + + // app.quit(); // Not working. causes recursively 'before-quit' events. + app.exit(); // Not working expectedly SOMETIMES. Still throws exception and macOS shows dialog. + // global.process.exit(0); // Not working well... I still see exceptional dialog. + } catch (err) { + console.log('failed to close Vite server:', err); + } +}); + +export { viteServer }; diff --git a/electron/main/vite.config.ts b/electron/main/vite.config.ts new file mode 100644 index 00000000..a155801d --- /dev/null +++ b/electron/main/vite.config.ts @@ -0,0 +1,44 @@ +import { resolve } from 'path'; +import { defineConfig } from 'vite'; + +export default defineConfig({ + build: { + lib: { + entry: resolve('electron/main/index.ts'), + formats: ['es'], + }, + rollupOptions: { + external: [ + 'vite', + 'electron', + ...[ + 'electron-log', + + // electron-log uses fs internally + 'fs', + 'util', + ], + + // Add all Node.js built-in modules as external + 'node:fs', + 'node:path', + 'node:url', + 'node:util', + 'node:stream', + 'node:events', + 'electron-store', + '@remix-run/node', + + // "mime", // NOTE: don't enable. not working if it's external. + 'electron-updater', + ], + output: { + dir: 'build/electron', + entryFileNames: 'main/[name].mjs', + format: 'esm', + }, + }, + minify: false, + emptyOutDir: false, + }, +}); diff --git a/electron/preload/index.ts b/electron/preload/index.ts new file mode 100644 index 00000000..c99936fb --- /dev/null +++ b/electron/preload/index.ts @@ -0,0 +1,22 @@ +import { ipcRenderer, contextBridge, type IpcRendererEvent } from 'electron'; + +console.debug('start preload.', ipcRenderer); + +const ipc = { + invoke(...args: any[]) { + return ipcRenderer.invoke('ipcTest', ...args); + }, + // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type + on(channel: string, func: Function) { + const f = (event: IpcRendererEvent, ...args: any[]) => func(...[event, ...args]); + console.debug('register listener', channel, f); + ipcRenderer.on(channel, f); + + return () => { + console.debug('remove listener', channel, f); + ipcRenderer.removeListener(channel, f); + }; + }, +}; + +contextBridge.exposeInMainWorld('ipc', ipc); diff --git a/electron/preload/tsconfig.json b/electron/preload/tsconfig.json new file mode 100644 index 00000000..862ef516 --- /dev/null +++ b/electron/preload/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../main/tsconfig.json", + "include": ["./**/*.ts"], + "compilerOptions": { + "rootDir": "." + } +} diff --git a/electron/preload/vite.config.ts b/electron/preload/vite.config.ts new file mode 100644 index 00000000..c0a3c568 --- /dev/null +++ b/electron/preload/vite.config.ts @@ -0,0 +1,31 @@ +import { resolve } from 'path'; +import { defineConfig } from 'vite'; + +export default defineConfig({ + build: { + lib: { + entry: resolve('electron/preload/index.ts'), + formats: ['cjs'], + }, + rollupOptions: { + external: ['electron'], + output: { + dir: 'build/electron', + + /* + * preload must be cjs format. + * if mjs, it will be error: + * - Unable to load preload script. + * - SyntaxError: Cannot use import statement outside a module. + */ + entryFileNames: 'preload/[name].cjs', + format: 'cjs', + }, + }, + minify: false, + emptyOutDir: false, + }, + esbuild: { + platform: 'node', + }, +}); diff --git a/eslint.config.mjs b/eslint.config.mjs index eafac089..d2764646 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -39,7 +39,7 @@ export default [ }, { files: [...tsFileExtensions, ...jsFileExtensions, '**/*.tsx'], - ignores: ['functions/*'], + ignores: ['functions/*', 'electron/**/*'], rules: { 'no-restricted-imports': [ 'error', diff --git a/notarize.cjs b/notarize.cjs new file mode 100644 index 00000000..a59c50c8 --- /dev/null +++ b/notarize.cjs @@ -0,0 +1,31 @@ +const { notarize } = require('@electron/notarize'); + +exports.default = async function notarizing(context) { + const { electronPlatformName, appOutDir } = context; + + if (electronPlatformName !== 'darwin') { + return; + } + + // Skip notarization when identity is null (development build) + if (!context.packager.config.mac || context.packager.config.mac.identity === null) { + console.log('Skipping notarization: identity is null'); + return; + } + + const appName = context.packager.appInfo.productFilename; + const appBundleId = context.packager.config.appId; + + try { + console.log(`Notarizing ${appBundleId} found at ${appOutDir}/${appName}.app`); + await notarize({ + tool: 'notarytool', + appPath: `${appOutDir}/${appName}.app`, + teamId: process.env.APPLE_TEAM_ID, + }); + console.log(`Done notarizing ${appBundleId}`); + } catch (error) { + console.error('Notarization failed:', error); + throw error; + } +}; diff --git a/package.json b/package.json index 144831fb..e3a15c5c 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,10 @@ "sideEffects": false, "type": "module", "version": "0.0.7", + "author": { + "name": "bolt.diy team", + "email": "maintainers@bolt.diy" + }, "scripts": { "deploy": "npm run build && wrangler pages deploy", "build": "remix vite:build", @@ -25,7 +29,20 @@ "typegen": "wrangler types", "preview": "pnpm run build && pnpm run start", "prepare": "husky", - "clean": "node scripts/clean.js" + "clean": "node scripts/clean.js", + "electron:dev": "pnpm electron:dev:main", + "electron:dev:renderer": "cross-env NODE_ENV=development pnpm exec electron electron/dev-server.mjs", + "electron:dev:main": "cross-env NODE_ENV=development pnpm run electron:build:deps && electron build/electron/main/index.mjs", + "electron:build:start": "electron-builder start", + "electron:build:deps": "concurrently \"pnpm electron:build:main\" \"pnpm electron:build:preload\" --kill-others-on-fail", + "electron:build:main": "vite build --config ./electron/main/vite.config.ts", + "electron:build:preload": "vite build --config ./electron/preload/vite.config.ts", + "electron:build:renderer": "remix vite:build --config vite-electron.config.js", + "electron:build:unpack": "rm -rf dist && pnpm electron:build:renderer && pnpm electron:build:deps && electron-builder --dir", + "electron:build:mac": "rm -rf dist && pnpm electron:build:renderer && pnpm electron:build:deps && electron-builder --mac", + "electron:build:win": "rm -rf dist && pnpm electron:build:renderer && pnpm electron:build:deps && electron-builder --win", + "electron:build:linux": "rm -rf dist && pnpm electron:build:renderer && pnpm electron:build:deps && electron-builder --linux", + "electron:build:dist": "rm -rf dist && pnpm electron:build:renderer && pnpm electron:build:deps && electron-builder --mwl" }, "engines": { "node": ">=18.18.0" @@ -94,6 +111,9 @@ "date-fns": "^3.6.0", "diff": "^5.2.0", "dotenv": "^16.4.7", + "electron-log": "^5.2.3", + "electron-store": "^10.0.0", + "electron-updater": "^6.3.9", "file-saver": "^2.0.5", "framer-motion": "^11.12.0", "ignore": "^6.0.2", @@ -104,6 +124,7 @@ "js-cookie": "^3.0.5", "jspdf": "^2.5.2", "jszip": "^3.10.1", + "mime": "^4.0.4", "nanostores": "^0.10.3", "ollama-ai-provider": "^0.15.2", "path-browserify": "^1.0.1", @@ -127,23 +148,32 @@ "shiki": "^1.24.0", "tailwind-merge": "^2.2.1", "unist-util-visit": "^5.0.0", + "vite-plugin-node-polyfills": "^0.22.0", + "zod": "^3.24.1", "zustand": "^5.0.3" }, "devDependencies": { "@blitz/eslint-plugin": "0.1.0", "@cloudflare/workers-types": "^4.20241127.0", + "@electron/notarize": "^2.5.0", "@iconify-json/ph": "^1.2.1", "@iconify/types": "^2.0.0", "@remix-run/dev": "^2.15.2", + "@remix-run/serve": "^2.15.2", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.2.0", "@types/diff": "^5.2.3", "@types/dom-speech-recognition": "^0.0.4", + "@types/electron": "^1.6.10", "@types/file-saver": "^2.0.7", "@types/js-cookie": "^3.0.6", "@types/path-browserify": "^1.0.3", "@types/react": "^18.3.12", "@types/react-dom": "^18.3.1", + "concurrently": "^8.2.2", + "cross-env": "^7.0.3", + "electron": "^33.2.0", + "electron-builder": "^25.1.8", "@vitejs/plugin-react": "^4.3.4", "fast-glob": "^3.3.2", "husky": "9.1.7", @@ -152,17 +182,17 @@ "node-fetch": "^3.3.2", "pnpm": "^9.14.4", "prettier": "^3.4.1", + "rimraf": "^4.4.1", "sass-embedded": "^1.81.0", "typescript": "^5.7.2", "unified": "^11.0.5", "unocss": "^0.61.9", "vite": "^5.4.11", - "vite-plugin-node-polyfills": "^0.22.0", + "vite-plugin-copy": "^0.1.6", "vite-plugin-optimize-css-modules": "^1.1.0", "vite-tsconfig-paths": "^4.3.2", "vitest": "^2.1.7", - "wrangler": "^3.91.0", - "zod": "^3.24.1" + "wrangler": "^3.91.0" }, "resolutions": { "@typescript-eslint/utils": "^8.0.0-alpha.30" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bb37289b..04f2ce93 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,10 +19,10 @@ importers: version: 0.0.39(zod@3.24.1) '@ai-sdk/cohere': specifier: ^1.0.3 - version: 1.1.8(zod@3.24.1) + version: 1.0.3(zod@3.24.1) '@ai-sdk/deepseek': specifier: ^0.1.3 - version: 0.1.8(zod@3.24.1) + version: 0.1.3(zod@3.24.1) '@ai-sdk/google': specifier: ^0.0.52 version: 0.0.52(zod@3.24.1) @@ -31,19 +31,19 @@ importers: version: 0.0.43(zod@3.24.1) '@ai-sdk/openai': specifier: ^1.1.2 - version: 1.1.9(zod@3.24.1) + version: 1.1.2(zod@3.24.1) '@codemirror/autocomplete': specifier: ^6.18.3 - version: 6.18.4 + version: 6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3) '@codemirror/commands': specifier: ^6.7.1 - version: 6.8.0 + version: 6.7.1 '@codemirror/lang-cpp': specifier: ^6.0.2 version: 6.0.2 '@codemirror/lang-css': specifier: ^6.3.1 - version: 6.3.1 + version: 6.3.1(@codemirror/view@6.35.0) '@codemirror/lang-html': specifier: ^6.4.9 version: 6.4.9 @@ -55,13 +55,13 @@ importers: version: 6.0.1 '@codemirror/lang-markdown': specifier: ^6.3.1 - version: 6.3.2 + version: 6.3.1 '@codemirror/lang-python': specifier: ^6.1.6 - version: 6.1.7 + version: 6.1.6(@codemirror/view@6.35.0) '@codemirror/lang-sass': specifier: ^6.0.2 - version: 6.0.2 + version: 6.0.2(@codemirror/view@6.35.0) '@codemirror/lang-vue': specifier: ^0.1.3 version: 0.1.3 @@ -70,22 +70,22 @@ importers: version: 6.0.2 '@codemirror/language': specifier: ^6.10.6 - version: 6.10.8 + version: 6.10.6 '@codemirror/search': specifier: ^6.5.8 version: 6.5.8 '@codemirror/state': specifier: ^6.4.1 - version: 6.5.2 + version: 6.4.1 '@codemirror/view': specifier: ^6.35.0 - version: 6.36.2 + version: 6.35.0 '@headlessui/react': specifier: ^2.2.0 version: 2.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@iconify-json/svg-spinners': specifier: ^1.2.1 - version: 1.2.2 + version: 1.2.1 '@lezer/highlight': specifier: ^1.2.1 version: 1.2.1 @@ -94,10 +94,10 @@ importers: version: 0.7.3(nanostores@0.10.3)(react@18.3.1) '@octokit/rest': specifier: ^21.0.2 - version: 21.1.0 + version: 21.0.2 '@octokit/types': specifier: ^13.6.2 - version: 13.8.0 + version: 13.6.2 '@openrouter/ai-sdk-provider': specifier: ^0.0.5 version: 0.0.5(zod@3.24.1) @@ -106,61 +106,61 @@ importers: version: 2.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-collapsible': specifier: ^1.0.3 - version: 1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.3(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-context-menu': specifier: ^2.2.2 - version: 2.2.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.2.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-dialog': specifier: ^1.1.5 - version: 1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.6(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-dropdown-menu': specifier: ^2.1.6 - version: 2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.1.6(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-label': specifier: ^2.1.1 - version: 2.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-popover': specifier: ^1.1.5 - version: 1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.6(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-progress': specifier: ^1.0.3 - version: 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-scroll-area': specifier: ^1.2.2 - version: 1.2.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.2.3(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-separator': specifier: ^1.1.0 - version: 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-switch': specifier: ^1.1.1 - version: 1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-tabs': specifier: ^1.1.2 - version: 1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.3(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-tooltip': specifier: ^1.1.4 - version: 1.1.8(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.4(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@remix-run/cloudflare': specifier: ^2.15.2 - version: 2.15.3(@cloudflare/workers-types@4.20250204.0)(typescript@5.7.3) + version: 2.16.0(@cloudflare/workers-types@4.20241127.0)(typescript@5.7.2) '@remix-run/cloudflare-pages': specifier: ^2.15.2 - version: 2.15.3(@cloudflare/workers-types@4.20250204.0)(typescript@5.7.3) + version: 2.16.0(@cloudflare/workers-types@4.20241127.0)(typescript@5.7.2) '@remix-run/node': specifier: ^2.15.2 - version: 2.15.3(typescript@5.7.3) + version: 2.15.3(typescript@5.7.2) '@remix-run/react': specifier: ^2.15.2 - version: 2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3) + version: 2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.2) '@tanstack/react-virtual': specifier: ^3.13.0 - version: 3.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 3.13.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/react-beautiful-dnd': specifier: ^13.1.8 version: 13.1.8 '@uiw/codemirror-theme-vscode': specifier: ^4.23.6 - version: 4.23.8(@codemirror/language@6.10.8)(@codemirror/state@6.5.2)(@codemirror/view@6.36.2) + version: 4.23.6(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0) '@unocss/reset': specifier: ^0.61.9 version: 0.61.9 @@ -178,13 +178,13 @@ importers: version: 5.5.0 ai: specifier: ^4.1.2 - version: 4.1.34(react@18.3.1)(zod@3.24.1) + version: 4.1.2(react@18.3.1)(zod@3.24.1) chalk: specifier: ^5.4.1 version: 5.4.1 chart.js: specifier: ^4.4.7 - version: 4.4.7 + version: 4.4.8 class-variance-authority: specifier: ^0.7.0 version: 0.7.1 @@ -200,12 +200,21 @@ importers: dotenv: specifier: ^16.4.7 version: 16.4.7 + electron-log: + specifier: ^5.2.3 + version: 5.3.0 + electron-store: + specifier: ^10.0.0 + version: 10.0.1 + electron-updater: + specifier: ^6.3.9 + version: 6.3.9 file-saver: specifier: ^2.0.5 version: 2.0.5 framer-motion: specifier: ^11.12.0 - version: 11.18.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 11.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) ignore: specifier: ^6.0.2 version: 6.0.2 @@ -214,7 +223,7 @@ importers: version: 4.4.0 isomorphic-git: specifier: ^1.27.2 - version: 1.29.0 + version: 1.27.2 istextorbinary: specifier: ^9.5.0 version: 9.5.0 @@ -230,6 +239,9 @@ importers: jszip: specifier: ^3.10.1 version: 3.10.1 + mime: + specifier: ^4.0.4 + version: 4.0.6 nanostores: specifier: ^0.10.3 version: 0.10.3 @@ -247,10 +259,10 @@ importers: version: 13.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-chartjs-2: specifier: ^5.3.0 - version: 5.3.0(chart.js@4.4.7)(react@18.3.1) + version: 5.3.0(chart.js@4.4.8)(react@18.3.1) react-dnd: specifier: ^16.0.1 - version: 16.0.1(@types/hoist-non-react-statics@3.3.6)(@types/node@22.13.1)(@types/react@18.3.18)(react@18.3.1) + version: 16.0.1(@types/hoist-non-react-statics@3.3.6)(@types/node@22.10.1)(@types/react@18.3.12)(react@18.3.1) react-dnd-html5-backend: specifier: ^16.0.1 version: 16.0.1 @@ -262,10 +274,10 @@ importers: version: 4.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-icons: specifier: ^5.4.0 - version: 5.4.0(react@18.3.1) + version: 5.5.0(react@18.3.1) react-markdown: specifier: ^9.0.1 - version: 9.0.3(@types/react@18.3.18)(react@18.3.1) + version: 9.0.1(@types/react@18.3.12)(react@18.3.1) react-resizable-panels: specifier: ^2.1.7 version: 2.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -280,56 +292,71 @@ importers: version: 6.0.0 remark-gfm: specifier: ^4.0.0 - version: 4.0.1 + version: 4.0.0 remix-island: specifier: ^0.2.0 - version: 0.2.0(@remix-run/react@2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3))(@remix-run/server-runtime@2.15.3(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 0.2.0(@remix-run/react@2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.2))(@remix-run/server-runtime@2.16.0(typescript@5.7.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) remix-utils: specifier: ^7.7.0 - version: 7.7.0(@remix-run/cloudflare@2.15.3(@cloudflare/workers-types@4.20250204.0)(typescript@5.7.3))(@remix-run/node@2.15.3(typescript@5.7.3))(@remix-run/react@2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3))(@remix-run/router@1.22.0)(react@18.3.1)(zod@3.24.1) + version: 7.7.0(@remix-run/cloudflare@2.16.0(@cloudflare/workers-types@4.20241127.0)(typescript@5.7.2))(@remix-run/node@2.15.3(typescript@5.7.2))(@remix-run/react@2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.2))(@remix-run/router@1.23.0)(react@18.3.1)(zod@3.24.1) rollup-plugin-node-polyfills: specifier: ^0.2.1 version: 0.2.1 shiki: specifier: ^1.24.0 - version: 1.29.2 + version: 1.24.0 tailwind-merge: specifier: ^2.2.1 version: 2.6.0 unist-util-visit: specifier: ^5.0.0 version: 5.0.0 + vite-plugin-node-polyfills: + specifier: ^0.22.0 + version: 0.22.0(rollup@4.28.0)(vite@5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0)) + zod: + specifier: ^3.24.1 + version: 3.24.1 zustand: specifier: ^5.0.3 - version: 5.0.3(@types/react@18.3.18)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + version: 5.0.3(@types/react@18.3.12)(react@18.3.1)(use-sync-external-store@1.2.2(react@18.3.1)) devDependencies: '@blitz/eslint-plugin': specifier: 0.1.0 - version: 0.1.0(jiti@1.21.7)(prettier@3.5.0)(typescript@5.7.3) + version: 0.1.0(@types/eslint@8.56.10)(jiti@1.21.6)(prettier@3.4.1)(typescript@5.7.2) '@cloudflare/workers-types': specifier: ^4.20241127.0 - version: 4.20250204.0 + version: 4.20241127.0 + '@electron/notarize': + specifier: ^2.5.0 + version: 2.5.0 '@iconify-json/ph': specifier: ^1.2.1 - version: 1.2.2 + version: 1.2.1 '@iconify/types': specifier: ^2.0.0 version: 2.0.0 '@remix-run/dev': specifier: ^2.15.2 - version: 2.15.3(@remix-run/react@2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3))(@types/node@22.13.1)(sass-embedded@1.83.4)(typescript@5.7.3)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4))(wrangler@3.108.0(@cloudflare/workers-types@4.20250204.0)) + version: 2.16.0(@remix-run/react@2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.2))(@remix-run/serve@2.16.0(typescript@5.7.2))(@types/node@22.10.1)(sass-embedded@1.81.0)(typescript@5.7.2)(vite@5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0))(wrangler@3.91.0(@cloudflare/workers-types@4.20241127.0)) + '@remix-run/serve': + specifier: ^2.15.2 + version: 2.16.0(typescript@5.7.2) '@testing-library/jest-dom': specifier: ^6.6.3 version: 6.6.3 '@testing-library/react': specifier: ^16.2.0 - version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/diff': specifier: ^5.2.3 version: 5.2.3 '@types/dom-speech-recognition': specifier: ^0.0.4 version: 0.0.4 + '@types/electron': + specifier: ^1.6.10 + version: 1.6.12 '@types/file-saver': specifier: ^2.0.7 version: 2.0.7 @@ -341,16 +368,28 @@ importers: version: 1.0.3 '@types/react': specifier: ^18.3.12 - version: 18.3.18 + version: 18.3.12 '@types/react-dom': specifier: ^18.3.1 - version: 18.3.5(@types/react@18.3.18) + version: 18.3.1 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0)) + concurrently: + specifier: ^8.2.2 + version: 8.2.2 + cross-env: + specifier: ^7.0.3 + version: 7.0.3 + electron: + specifier: ^33.2.0 + version: 33.3.2 + electron-builder: + specifier: ^25.1.8 + version: 25.1.8(electron-builder-squirrel-windows@25.1.8(dmg-builder@25.1.8)) fast-glob: specifier: ^3.3.2 - version: 3.3.3 + version: 3.3.2 husky: specifier: 9.1.7 version: 9.1.7 @@ -365,46 +404,49 @@ importers: version: 3.3.2 pnpm: specifier: ^9.14.4 - version: 9.15.5 + version: 9.14.4 prettier: specifier: ^3.4.1 - version: 3.5.0 + version: 3.4.1 + rimraf: + specifier: ^4.4.1 + version: 4.4.1 sass-embedded: specifier: ^1.81.0 - version: 1.83.4 + version: 1.81.0 typescript: specifier: ^5.7.2 - version: 5.7.3 + version: 5.7.2 unified: specifier: ^11.0.5 version: 11.0.5 unocss: specifier: ^0.61.9 - version: 0.61.9(postcss@8.5.2)(rollup@3.29.5)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)) + version: 0.61.9(postcss@8.4.49)(rollup@4.28.0)(vite@5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0)) vite: specifier: ^5.4.11 - version: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4) - vite-plugin-node-polyfills: - specifier: ^0.22.0 - version: 0.22.0(rollup@3.29.5)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)) + version: 5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0) + vite-plugin-copy: + specifier: ^0.1.6 + version: 0.1.6 vite-plugin-optimize-css-modules: specifier: ^1.1.0 - version: 1.2.0(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)) + version: 1.1.0(vite@5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0)) vite-tsconfig-paths: specifier: ^4.3.2 - version: 4.3.2(typescript@5.7.3)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)) + version: 4.3.2(typescript@5.7.2)(vite@5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0)) vitest: specifier: ^2.1.7 - version: 2.1.9(@types/node@22.13.1)(jsdom@26.0.0)(sass-embedded@1.83.4) + version: 2.1.8(@types/node@22.10.1)(jsdom@26.0.0)(sass-embedded@1.81.0) wrangler: specifier: ^3.91.0 - version: 3.108.0(@cloudflare/workers-types@4.20250204.0) - zod: - specifier: ^3.24.1 - version: 3.24.1 + version: 3.91.0(@cloudflare/workers-types@4.20241127.0) packages: + 7zip-bin@5.2.0: + resolution: {integrity: sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==} + '@adobe/css-tools@4.4.2': resolution: {integrity: sha512-baYZExFpsdkBNuvGKTKWCwKH57HRZLVtycZS05WTQNVOiXVSeAki3nU35zlRbToeMW8aHlJfyS+1C4BOv27q0A==} @@ -420,14 +462,14 @@ packages: peerDependencies: zod: ^3.0.0 - '@ai-sdk/cohere@1.1.8': - resolution: {integrity: sha512-IUNmRrlYsGL2PICHYi5dh4xtflQP429FKRYtNgUfn3Pwpg5rf3kCYqnbEXGh6P1B0xUGtE31Xt4SnNyBXIw3YA==} + '@ai-sdk/cohere@1.0.3': + resolution: {integrity: sha512-SDjPinUcGzTNiSMN+9zs1fuAcP8rU1/+CmDWAGu7eMhwVGDurgiOqscC0Oqs/aLsodLt/sFeOvyqj86DAknpbg==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 - '@ai-sdk/deepseek@0.1.8': - resolution: {integrity: sha512-ZnugEqmkscB0an46I0Z6Ppor8YwOC2bIhWXkivkGbVdpQgpx43cPBrD3lyOyNEHIFwHtcrJF13S+4FNPzR0Gng==} + '@ai-sdk/deepseek@0.1.3': + resolution: {integrity: sha512-cj0uYgFk0TWWtHKtwB8v17frttquLll9hCpRWtKpiZO69SbiZOwNSjENaoyZvN1sHMLQoQkw+hnbMGtWuU2yOg==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -444,14 +486,14 @@ packages: peerDependencies: zod: ^3.0.0 - '@ai-sdk/openai-compatible@0.1.8': - resolution: {integrity: sha512-o2WeZmkOgaaEHAIZfAdlAASotNemhWBzupUp7ql/vBKIrPDctbQS4K7XOvG7EZ1dshn0TxB+Ur7Q8HoWSeWPmA==} + '@ai-sdk/openai-compatible@0.1.3': + resolution: {integrity: sha512-3dr81jVNTd7Tg4i6JwGKHX47DnQ+jn3zOuxLvu6bM2hFylchtIFn/ut3Et7VfsdMWf4gj9tXp/9rUiQ0JokkrQ==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 - '@ai-sdk/openai@1.1.9': - resolution: {integrity: sha512-t/CpC4TLipdbgBJTMX/otzzqzCMBSPQwUOkYPGbT/jyuC86F+YO9o+LS0Ty2pGUE1kyT+B3WmJ318B16ZCg4hw==} + '@ai-sdk/openai@1.1.2': + resolution: {integrity: sha512-9rfcwjl4g1/Bdr2SmgFQr+aw81r62MvIKE7QDHMC4ulFd/Hej2oClROSMpDFZHXzs7RGeb32VkRyCHUWWgN3RQ==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -483,6 +525,15 @@ packages: zod: optional: true + '@ai-sdk/provider-utils@2.0.2': + resolution: {integrity: sha512-IAvhKhdlXqiSmvx/D4uNlFYCl8dWT+M9K+IuEcSgnE2Aj27GWu8sDIpAf4r4Voc+wOUkOECVKQhFo8g9pozdjA==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.0.0 + peerDependenciesMeta: + zod: + optional: true + '@ai-sdk/provider-utils@2.0.5': resolution: {integrity: sha512-2M7vLhYN0ThGjNlzow7oO/lsL+DyMxvGMIYmVQvEYaCWhDzxH5dOp78VNjJIVwHzVLMbBDigX3rJuzAs853idw==} engines: {node: '>=18'} @@ -492,8 +543,8 @@ packages: zod: optional: true - '@ai-sdk/provider-utils@2.1.6': - resolution: {integrity: sha512-Pfyaj0QZS22qyVn5Iz7IXcJ8nKIKlu2MeSAdKJzTwkAks7zdLaKVB+396Rqcp1bfQnxl7vaduQVMQiXUrgK8Gw==} + '@ai-sdk/provider-utils@2.1.2': + resolution: {integrity: sha512-ezpQT6kzy/2O4yyn/2YigMqynBYjZIOam3/EMNVzju+Ogj+Z+pf27c/Th78ce0A2ltgrXx6xN14sal/HHZNOOw==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -513,16 +564,20 @@ packages: resolution: {integrity: sha512-XMsNGJdGO+L0cxhhegtqZ8+T6nn4EoShS819OvCgI2kLbYTIvk0GWFGD0AXJmxkxs3DrpsJxKAFukFR7bvTkgQ==} engines: {node: '>=18'} + '@ai-sdk/provider@1.0.1': + resolution: {integrity: sha512-mV+3iNDkzUsZ0pR2jG0sVzU6xtQY5DtSCBy3JFycLp6PwjyLw/iodfL3MwdmMCRJWgs3dadcHejRnMvF9nGTBg==} + engines: {node: '>=18'} + '@ai-sdk/provider@1.0.3': resolution: {integrity: sha512-WiuJEpHTrltOIzv3x2wx4gwksAHW0h6nK3SoDzjqCOJLu/2OJ1yASESTIX+f07ChFykHElVoP80Ol/fe9dw6tQ==} engines: {node: '>=18'} - '@ai-sdk/provider@1.0.7': - resolution: {integrity: sha512-q1PJEZ0qD9rVR+8JFEd01/QM++csMT5UVwYXSN2u54BrVw/D8TZLTeg2FEfKK00DgAx0UtWd8XOhhwITP9BT5g==} + '@ai-sdk/provider@1.0.6': + resolution: {integrity: sha512-hwj/gFNxpDgEfTaYzCYoslmw01IY9kWLKl/wf8xuPvHtQIzlfXWmmUwc8PnCwxyt8cKzIuV0dfUghCf68HQ0SA==} engines: {node: '>=18'} - '@ai-sdk/react@1.1.11': - resolution: {integrity: sha512-vfjZ7w2M+Me83HTMMrnnrmXotz39UDCMd27YQSrvt2f1YCLPloVpLhP+Y9TLZeFE/QiiRCrPYLDQm6aQJYJ9PQ==} + '@ai-sdk/react@1.1.2': + resolution: {integrity: sha512-bBcRsDaNHzCKSIBbPngMeqbnwZ1RFadXQo9XzHoGrvLANYRwuphGNB8XTXYVLC/eXjoaGVGw2wWf/TYigEnCuA==} engines: {node: '>=18'} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc @@ -533,8 +588,8 @@ packages: zod: optional: true - '@ai-sdk/ui-utils@1.1.11': - resolution: {integrity: sha512-1SC9W4VZLcJtxHRv4Y0aX20EFeaEP6gUvVqoKLBBtMLOgtcZrv/F/HQRjGavGugiwlS3dsVza4X+E78fiwtlTA==} + '@ai-sdk/ui-utils@1.1.2': + resolution: {integrity: sha512-+0kfBF4Y9jmlg1KlbNKIxchmXx9PzuReSpgRNWhpU10vfl1eeer4xK/XL2qHnzAWhsMFe/SVZXJIQObk44zNEQ==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -546,15 +601,12 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@antfu/install-pkg@1.0.0': - resolution: {integrity: sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw==} + '@antfu/install-pkg@0.4.1': + resolution: {integrity: sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==} '@antfu/utils@0.7.10': resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} - '@antfu/utils@8.1.0': - resolution: {integrity: sha512-XPR7Jfwp0FFl/dFYPX8ZjpmU4/1mIXTjnZ1ba48BLMyKOV62/tiRjdsFcPs2hsYcSud4tzk7w3a3LjX8Fu3huA==} - '@asamuzakjp/css-color@2.8.3': resolution: {integrity: sha512-GIc76d9UI1hCvOATjZPyHFmE5qhRccp3/zGfMPapK3jBi+yocEzp6BBB0UnfRYP9NP4FANqUZYb0hnfs3TM3hw==} @@ -575,92 +627,104 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-bedrock-runtime@3.744.0': - resolution: {integrity: sha512-kKKN6RwzlI4GRvfJ6pe3z4Rwm4FHL3BnVoe2xcP/Kr/c5dT6kZbBDDBumsg8Svb4KE6N4pWck4qr/6F9axQ2Bw==} - engines: {node: '>=18.0.0'} + '@aws-sdk/client-bedrock-runtime@3.716.0': + resolution: {integrity: sha512-ZnolSsCZE4IT4A8nn5sOHq+JiOomEV1+pp1SntHdK1SGu6pP5YMWNfwJwujZFrsKkRB+QpSGj7l0W0lr2B/JBw==} + engines: {node: '>=16.0.0'} - '@aws-sdk/client-sso@3.744.0': - resolution: {integrity: sha512-mzJxPQ9mcnNY50pi7+pxB34/Dt7PUn0OgkashHdJPTnavoriLWvPcaQCG1NEVAtyzxNdowhpi4KjC+aN1EwAeA==} - engines: {node: '>=18.0.0'} + '@aws-sdk/client-sso-oidc@3.716.0': + resolution: {integrity: sha512-lA4IB9FzR2KjH7EVCo+mHGFKqdViVyeBQEIX9oVratL/l7P0bMS1fMwgfHOc3ACazqNxBxDES7x08ZCp32y6Lw==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@aws-sdk/client-sts': ^3.716.0 - '@aws-sdk/core@3.744.0': - resolution: {integrity: sha512-R0XLfDDq7MAXYyDf7tPb+m0R7gmzTRRDtPNQ5jvuq8dbkefph5gFMkxZ2zSx7dfTsfYHhBPuTBsQ0c5Xjal3Vg==} - engines: {node: '>=18.0.0'} + '@aws-sdk/client-sso@3.716.0': + resolution: {integrity: sha512-5Nb0jJXce2TclbjG7WVPufwhgV1TRydz1QnsuBtKU0AdViEpr787YrZhPpGnNIM1Dx+R1H/tmAHZnOoohS6D8g==} + engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-env@3.744.0': - resolution: {integrity: sha512-hyjC7xqzAeERorYYjhQG1ivcr1XlxgfBpa+r4pG29toFG60mACyVzaR7+og3kgzjRFAB7D1imMxPQyEvQ1QokA==} - engines: {node: '>=18.0.0'} + '@aws-sdk/client-sts@3.716.0': + resolution: {integrity: sha512-i4SVNsrdXudp8T4bkm7Fi3YWlRnvXCSwvNDqf6nLqSJxqr4CN3VlBELueDyjBK7TAt453/qSif+eNx+bHmwo4Q==} + engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-http@3.744.0': - resolution: {integrity: sha512-k+P1Tl5ewBvVByR6hB726qFIzANgQVf2cY87hZ/e09pQYlH4bfBcyY16VJhkqYnKmv6HMdWxKHX7D8nwlc8Obg==} - engines: {node: '>=18.0.0'} + '@aws-sdk/core@3.716.0': + resolution: {integrity: sha512-5DkUiTrbyzO8/W4g7UFEqRFpuhgizayHI/Zbh0wtFMcot8801nJV+MP/YMhdjimlvAr/OqYB08FbGsPyWppMTw==} + engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-ini@3.744.0': - resolution: {integrity: sha512-hjEWgkF86tkvg8PIsDiB3KkTj7z8ZFGR0v0OLQYD47o17q1qfoMzZmg9wae3wXp9KzU+lZETo+8oMqX9a+7aVQ==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-env@3.716.0': + resolution: {integrity: sha512-JI2KQUnn2arICwP9F3CnqP1W3nAbm4+meQg/yOhp9X0DMzQiHrHRd4HIrK2vyVgi2/6hGhONY5uLF26yRTA7nQ==} + engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-node@3.744.0': - resolution: {integrity: sha512-4oUfRd6pe/VGmKoav17pPoOO0WP0L6YXmHqtJHSDmFUOAa+Vh0ZRljTj/yBdleRgdO6rOfdWqoGLFSFiAZDrsQ==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-http@3.716.0': + resolution: {integrity: sha512-CZ04pl2z7igQPysQyH2xKZHM3fLwkemxQbKOlje3TmiS1NwXvcKvERhp9PE/H23kOL7beTM19NMRog/Fka/rlw==} + engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-process@3.744.0': - resolution: {integrity: sha512-m0d/pDBIaiEAAxWXt/c79RHsKkUkyPOvF2SAMRddVhhOt1GFZI4ml+3f4drmAZfXldIyJmvJTJJqWluVPwTIqQ==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-ini@3.716.0': + resolution: {integrity: sha512-P37We2GtZvdROxiwP0zrpEL81/HuYK1qlYxp5VCj3uV+G4mG8UQN2gMIU/baYrpOQqa0h81RfyQGRFUjVaDVqw==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@aws-sdk/client-sts': ^3.716.0 - '@aws-sdk/credential-provider-sso@3.744.0': - resolution: {integrity: sha512-xdMufTZOvpbDoDPI2XLu0/Rg3qJ/txpS8IJR63NsCGotHJZ/ucLNKwTcGS40hllZB8qSHTlvmlOzElDahTtx/A==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-node@3.716.0': + resolution: {integrity: sha512-FGQPK2uKfS53dVvoskN/s/t6m0Po24BGd1PzJdzHBFCOjxbZLM6+8mDMXeyi2hCLVVQOUcuW41kOgmJ0+zMbww==} + engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-web-identity@3.744.0': - resolution: {integrity: sha512-cNk93GZxORzqEojWfXdrPBF6a7Nu3LpPCWG5mV+lH2tbuGsmw6XhKkwpt7o+OiIP4tKCpHlvqOD8f1nmhe1KDA==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-process@3.716.0': + resolution: {integrity: sha512-0spcu2MWVVHSTHH3WE2E//ttUJPwXRM3BCp+WyI41xLzpNu1Fd8zjOrDpEo0SnGUzsSiRTIJWgkuu/tqv9NJ2A==} + engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-host-header@3.734.0': - resolution: {integrity: sha512-LW7RRgSOHHBzWZnigNsDIzu3AiwtjeI2X66v+Wn1P1u+eXssy1+up4ZY/h+t2sU4LU36UvEf+jrZti9c6vRnFw==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-sso@3.716.0': + resolution: {integrity: sha512-J2IA3WuCpRGGoZm6VHZVFCnrxXP+41iUWb9Ct/1spljegTa1XjiaZ5Jf3+Ubj7WKiyvP9/dgz1L0bu2bYEjliw==} + engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-logger@3.734.0': - resolution: {integrity: sha512-mUMFITpJUW3LcKvFok176eI5zXAUomVtahb9IQBwLzkqFYOrMJvWAvoV4yuxrJ8TlQBG8gyEnkb9SnhZvjg67w==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-web-identity@3.716.0': + resolution: {integrity: sha512-vzgpWKs2gGXZGdbMKRFrMW4PqEFWkGvwWH2T7ZwQv9m+8lQ7P4Dk2uimqu0f37HZAbpn8HFMqRh4CaySjU354A==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@aws-sdk/client-sts': ^3.716.0 - '@aws-sdk/middleware-recursion-detection@3.734.0': - resolution: {integrity: sha512-CUat2d9ITsFc2XsmeiRQO96iWpxSKYFjxvj27Hc7vo87YUHRnfMfnc8jw1EpxEwMcvBD7LsRa6vDNky6AjcrFA==} - engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-host-header@3.714.0': + resolution: {integrity: sha512-6l68kjNrh5QC8FGX3I3geBDavWN5Tg1RLHJ2HLA8ByGBtJyCwnz3hEkKfaxn0bBx0hF9DzbfjEOUF6cDqy2Kjg==} + engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-user-agent@3.744.0': - resolution: {integrity: sha512-ROUbDQHfVWiBHXd4m9E9mKj1Azby8XCs8RC8OCf9GVH339GSE6aMrPJSzMlsV1LmzPdPIypgp5qqh5NfSrKztg==} - engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-logger@3.714.0': + resolution: {integrity: sha512-RkqHlMvQWUaRklU1bMfUuBvdWwxgUtEqpADaHXlGVj3vtEY2UgBjy+57CveC4MByqKIunNvVHBBbjrGVtwY7Lg==} + engines: {node: '>=16.0.0'} - '@aws-sdk/nested-clients@3.744.0': - resolution: {integrity: sha512-Mnrlh4lRY1gZQnKvN2Lh/5WXcGkzC41NM93mtn2uaqOh+DZLCXCttNCfbUesUvYJLOo3lYaOpiDsjTkPVB1yjw==} - engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-recursion-detection@3.714.0': + resolution: {integrity: sha512-AVU5ixnh93nqtsfgNc284oXsXaadyHGPHpql/jwgaaqQfEXjS/1/j3j9E/vpacfTTz2Vzo7hAOjnvrOXSEVDaA==} + engines: {node: '>=16.0.0'} - '@aws-sdk/region-config-resolver@3.734.0': - resolution: {integrity: sha512-Lvj1kPRC5IuJBr9DyJ9T9/plkh+EfKLy+12s/mykOy1JaKHDpvj+XGy2YO6YgYVOb8JFtaqloid+5COtje4JTQ==} - engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-user-agent@3.716.0': + resolution: {integrity: sha512-FpAtT6nNKrYdkDZndutEraiRMf+TgDzAGvniqRtZ/YTPA+gIsWrsn+TwMKINR81lFC3nQfb9deS5CFtxd021Ew==} + engines: {node: '>=16.0.0'} - '@aws-sdk/token-providers@3.744.0': - resolution: {integrity: sha512-v/1+lWkDCd60Ei6oyhJqli6mTsPEVepLoSMB50vHUVlJP0fzXu/3FMje90/RzeUoh/VugZQJCEv/NNpuC6wztg==} - engines: {node: '>=18.0.0'} + '@aws-sdk/region-config-resolver@3.714.0': + resolution: {integrity: sha512-HJzsQxgMOAzZrbf/YIqEx30or4tZK1oNAk6Wm6xecUQx+23JXIaePRu1YFUOLBBERQ4QBPpISFurZWBMZ5ibAw==} + engines: {node: '>=16.0.0'} - '@aws-sdk/types@3.734.0': - resolution: {integrity: sha512-o11tSPTT70nAkGV1fN9wm/hAIiLPyWX6SuGf+9JyTp7S/rC2cFWhR26MvA69nplcjNaXVzB0f+QFrLXXjOqCrg==} - engines: {node: '>=18.0.0'} + '@aws-sdk/token-providers@3.714.0': + resolution: {integrity: sha512-vKN064aLE3kl+Zl16Ony3jltHnMddMBT7JRkP1L+lLywhA0PcAKxpdvComul/sTBWnbnwLnaS5NsDUhcWySH8A==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@aws-sdk/client-sso-oidc': ^3.714.0 - '@aws-sdk/util-endpoints@3.743.0': - resolution: {integrity: sha512-sN1l559zrixeh5x+pttrnd0A3+r34r0tmPkJ/eaaMaAzXqsmKU/xYre9K3FNnsSS1J1k4PEfk/nHDTVUgFYjnw==} - engines: {node: '>=18.0.0'} + '@aws-sdk/types@3.714.0': + resolution: {integrity: sha512-ZjpP2gYbSFlxxaUDa1Il5AVvfggvUPbjzzB/l3q0gIE5Thd6xKW+yzEpt2mLZ5s5UaYSABZbF94g8NUOF4CVGA==} + engines: {node: '>=16.0.0'} - '@aws-sdk/util-locate-window@3.723.0': - resolution: {integrity: sha512-Yf2CS10BqK688DRsrKI/EO6B8ff5J86NXe4C+VCysK7UOgN0l1zOTeTukZ3H8Q9tYYX3oaF1961o8vRkFm7Nmw==} - engines: {node: '>=18.0.0'} + '@aws-sdk/util-endpoints@3.714.0': + resolution: {integrity: sha512-Xv+Z2lhe7w7ZZRsgBwBMZgGTVmS+dkkj2S13uNHAx9lhB5ovM8PhK5G/j28xYf6vIibeuHkRAbb7/ozdZIGR+A==} + engines: {node: '>=16.0.0'} - '@aws-sdk/util-user-agent-browser@3.734.0': - resolution: {integrity: sha512-xQTCus6Q9LwUuALW+S76OL0jcWtMOVu14q+GoLnWPUM7QeUw963oQcLhF7oq0CtaLLKyl4GOUfcwc773Zmwwng==} + '@aws-sdk/util-locate-window@3.693.0': + resolution: {integrity: sha512-ttrag6haJLWABhLqtg1Uf+4LgHWIMOVSYL+VYZmAp2v4PUGOwWmWQH0Zk8RM7YuQcLfH/EoR72/Yxz6A4FKcuw==} + engines: {node: '>=16.0.0'} - '@aws-sdk/util-user-agent-node@3.744.0': - resolution: {integrity: sha512-BJURjwIXhNa4heXkLC0+GcL+8wVXaU7JoyW6ckdvp93LL+sVHeR1d5FxXZHQW/pMI4E3gNlKyBqjKaT75tObNQ==} - engines: {node: '>=18.0.0'} + '@aws-sdk/util-user-agent-browser@3.714.0': + resolution: {integrity: sha512-OdJJ03cP9/MgIVToPJPCPUImbpZzTcwdIgbXC0tUQPJhbD7b7cB4LdnkhNHko+MptpOrCq4CPY/33EpOjRdofw==} + + '@aws-sdk/util-user-agent-node@3.716.0': + resolution: {integrity: sha512-3PqaXmQbxrtHKAsPCdp7kn5FrQktj8j3YyuNsqFZ8rWZeEQ88GWlsvE61PTsr2peYCKzpFqYVddef2x1axHU0w==} + engines: {node: '>=16.0.0'} peerDependencies: aws-crt: '>=1.0.0' peerDependenciesMeta: @@ -671,24 +735,24 @@ packages: resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.26.8': - resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} + '@babel/compat-data@7.26.2': + resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==} engines: {node: '>=6.9.0'} - '@babel/core@7.26.8': - resolution: {integrity: sha512-l+lkXCHS6tQEc5oUpK28xBOZ6+HwaH7YwoYQbLFiYb4nS2/l1tKnZEtEWkD0GuiYdvArf9qBS0XlQGXzPMsNqQ==} + '@babel/core@7.26.0': + resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} engines: {node: '>=6.9.0'} - '@babel/generator@7.26.8': - resolution: {integrity: sha512-ef383X5++iZHWAXX0SXQR6ZyQhw/0KtTkrTz61WXRhFM6dhpHulO/RJz79L8S6ugZHJkOOkUrUdxgdF2YiPFnA==} + '@babel/generator@7.26.2': + resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==} engines: {node: '>=6.9.0'} '@babel/helper-annotate-as-pure@7.25.9': resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.26.5': - resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} + '@babel/helper-compilation-targets@7.25.9': + resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} engines: {node: '>=6.9.0'} '@babel/helper-create-class-features-plugin@7.25.9': @@ -715,16 +779,20 @@ packages: resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.26.5': - resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} + '@babel/helper-plugin-utils@7.25.9': + resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} engines: {node: '>=6.9.0'} - '@babel/helper-replace-supers@7.26.5': - resolution: {integrity: sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==} + '@babel/helper-replace-supers@7.25.9': + resolution: {integrity: sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-simple-access@7.25.9': + resolution: {integrity: sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==} + engines: {node: '>=6.9.0'} + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} engines: {node: '>=6.9.0'} @@ -741,12 +809,12 @@ packages: resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.26.7': - resolution: {integrity: sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==} + '@babel/helpers@7.26.0': + resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.26.8': - resolution: {integrity: sha512-TZIQ25pkSoaKEYYaHbbxkfL36GNsQ6iFiBbeuzAkLnXayKR1yP1zFe+NxuZWWsUyvt8icPU9CCq0sgWGXR1GEw==} + '@babel/parser@7.26.2': + resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} engines: {node: '>=6.0.0'} hasBin: true @@ -768,8 +836,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.26.3': - resolution: {integrity: sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==} + '@babel/plugin-transform-modules-commonjs@7.25.9': + resolution: {integrity: sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -786,8 +854,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.26.8': - resolution: {integrity: sha512-bME5J9AC8ChwA7aEPJ6zym3w7aObZULHhbNLU0bKUhKsAkylkzUdq+0kdymh9rzi8nlNFl2bmldFBCKNJBUpuw==} + '@babel/plugin-transform-typescript@7.25.9': + resolution: {integrity: sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -798,28 +866,28 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.26.7': - resolution: {integrity: sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==} + '@babel/runtime@7.26.0': + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} engines: {node: '>=6.9.0'} - '@babel/template@7.26.8': - resolution: {integrity: sha512-iNKaX3ZebKIsCvJ+0jd6embf+Aulaa3vNBqZ41kM7iTWjx5qzWKXGHiJUW3+nTpQ18SG11hdF8OAzKrpXkb96Q==} + '@babel/template@7.25.9': + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.26.8': - resolution: {integrity: sha512-nic9tRkjYH0oB2dzr/JoGIm+4Q6SuYeLEiIiZDwBscRMYFJ+tMAz98fuel9ZnbXViA2I0HVSSRRK8DW5fjXStA==} + '@babel/traverse@7.25.9': + resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} engines: {node: '>=6.9.0'} - '@babel/types@7.26.8': - resolution: {integrity: sha512-eUuWapzEGWFEpHFxgEaBG8e3n6S8L3MSu0oda755rOfabWPnh0Our1AozNFVUxGFIhbKgd1ksprsoDGMinTOTA==} + '@babel/types@7.26.0': + resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} engines: {node: '>=6.9.0'} '@blitz/eslint-plugin@0.1.0': resolution: {integrity: sha512-mGEAFWCI5AQ4nrePhjp2WzvRen+UWR+SF4MvH70icIBClR08Gm3dT9MRa2jszOpfY00NyIYfm7/1CFZ37GvW4g==} engines: {node: ^18.0.0 || ^20.0.0} - '@bufbuild/protobuf@2.2.3': - resolution: {integrity: sha512-tFQoXHJdkEOSwj5tRIZSPNUuXK3RaR7T1nUrPgbYX1pUbvqqaaZAsfo+NXBPsz5rZMSKVFrgK1WL8Q/MSLvprg==} + '@bufbuild/protobuf@2.2.2': + resolution: {integrity: sha512-UNtPCbrwrenpmrXuRwn9jYpPoweNXj8X5sMvYgsqYyaH8jQ6LfUJSk3dJLnBK+6sfYPrF4iAIo5sd5HQ+tg75A==} '@cloudflare/kv-asset-handler@0.1.3': resolution: {integrity: sha512-FNcunDuTmEfQTLRLtA6zz+buIXUHj1soPvSWzzQFBC+n2lsy+CGf/NIrR3SEPCmsVNQj70/Jx2lViCpq+09YpQ==} @@ -828,44 +896,53 @@ packages: resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} engines: {node: '>=16.13'} - '@cloudflare/workerd-darwin-64@1.20250204.0': - resolution: {integrity: sha512-HpsgbWEfvdcwuZ8WAZhi1TlSCyyHC3tbghpKsOqGDaQNltyAFAWqa278TPNfcitYf/FmV4961v3eqUE+RFdHNQ==} + '@cloudflare/workerd-darwin-64@1.20241106.1': + resolution: {integrity: sha512-zxvaToi1m0qzAScrxFt7UvFVqU8DxrCO2CinM1yQkv5no7pA1HolpIrwZ0xOhR3ny64Is2s/J6BrRjpO5dM9Zw==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20250204.0': - resolution: {integrity: sha512-AJ8Tk7KMJqePlch3SH8oL41ROtsrb07hKRHD6M+FvGC3tLtf26rpteAAMNYKMDYKzFNFUIKZNijYDFZjBFndXQ==} + '@cloudflare/workerd-darwin-arm64@1.20241106.1': + resolution: {integrity: sha512-j3dg/42D/bPgfNP3cRUBxF+4waCKO/5YKwXNj+lnVOwHxDu+ne5pFw9TIkKYcWTcwn0ZUkbNZNM5rhJqRn4xbg==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20250204.0': - resolution: {integrity: sha512-RIUfUSnDC8h73zAa+u1K2Frc7nc+eeQoBBP7SaqsRe6JdX8jfIv/GtWjQWCoj8xQFgLvhpJKZ4sTTTV+AilQbw==} + '@cloudflare/workerd-linux-64@1.20241106.1': + resolution: {integrity: sha512-Ih+Ye8E1DMBXcKrJktGfGztFqHKaX1CeByqshmTbODnWKHt6O65ax3oTecUwyC0+abuyraOpAtdhHNpFMhUkmw==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20250204.0': - resolution: {integrity: sha512-8Ql8jDjoIgr2J7oBD01kd9kduUz60njofrBpAOkjCPed15He8e8XHkYaYow3g0xpae4S2ryrPOeoD3M64sRxeg==} + '@cloudflare/workerd-linux-arm64@1.20241106.1': + resolution: {integrity: sha512-mdQFPk4+14Yywn7n1xIzI+6olWM8Ybz10R7H3h+rk0XulMumCWUCy1CzIDauOx6GyIcSgKIibYMssVHZR30ObA==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20250204.0': - resolution: {integrity: sha512-RpDJO3+to+e17X3EWfRCagboZYwBz2fowc+jL53+fd7uD19v3F59H48lw2BDpHJMRyhg6ouWcpM94OhsHv8ecA==} + '@cloudflare/workerd-windows-64@1.20241106.1': + resolution: {integrity: sha512-4rtcss31E/Rb/PeFocZfr+B9i1MdrkhsTBWizh8siNR4KMmkslU2xs2wPaH1z8+ErxkOsHrKRa5EPLh5rIiFeg==} engines: {node: '>=16'} cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20250204.0': - resolution: {integrity: sha512-mWoQbYaP+nYztx9I7q9sgaiNlT54Cypszz0RfzMxYnT5W3NXDuwGcjGB+5B5H5VB8tEC2dYnBRpa70lX94ueaQ==} + '@cloudflare/workers-shared@0.9.0': + resolution: {integrity: sha512-eP6Ir45uPbKnpADVzUCtkRUYxYxjB1Ew6n/whTJvHu8H4m93USHAceCMm736VBZdlxuhXXUjEP3fCUxKPn+cfw==} + engines: {node: '>=16.7.0'} - '@codemirror/autocomplete@6.18.4': - resolution: {integrity: sha512-sFAphGQIqyQZfP2ZBsSHV7xQvo9Py0rV0dW7W3IMRdS+zDuNb2l3no78CvUaWKGfzFjI4FTrLdUSj86IGb2hRA==} + '@cloudflare/workers-types@4.20241127.0': + resolution: {integrity: sha512-UqlvtqV8eI0CdPR7nxlbVlE52+lcjHvGdbYXEPwisy23+39RsFV7OOy0da0moJAhqnL2OhDmWTOaKdsVcPHiJQ==} - '@codemirror/commands@6.8.0': - resolution: {integrity: sha512-q8VPEFaEP4ikSlt6ZxjB3zW72+7osfAYW9i8Zu943uqbKuz6utc1+F170hyLUCUltXORjQXRyYQNfkckzA/bPQ==} + '@codemirror/autocomplete@6.18.3': + resolution: {integrity: sha512-1dNIOmiM0z4BIBwxmxEfA1yoxh1MF/6KPBbh20a5vphGV0ictKlgQsbJs6D6SkR6iJpGbpwRsa6PFMNlg9T9pQ==} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + '@lezer/common': ^1.0.0 + + '@codemirror/commands@6.7.1': + resolution: {integrity: sha512-llTrboQYw5H4THfhN4U3qCnSZ1SOJ60ohhz+SzU0ADGtwlc533DtklQP0vSFaQuCPDn3BPpOd1GbbnUtwNjsrw==} '@codemirror/lang-cpp@6.0.2': resolution: {integrity: sha512-6oYEYUKHvrnacXxWxYa6t4puTlbN3dgV662BDfSH8+MfjQjVmP697/KYTDOqpxgerkvoNm7q5wlFMBeX8ZMocg==} @@ -882,11 +959,11 @@ packages: '@codemirror/lang-json@6.0.1': resolution: {integrity: sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==} - '@codemirror/lang-markdown@6.3.2': - resolution: {integrity: sha512-c/5MYinGbFxYl4itE9q/rgN/sMTjOr8XL5OWnC+EaRMLfCbVUmmubTJfdgpfcSS2SCaT7b+Q+xi3l6CgoE+BsA==} + '@codemirror/lang-markdown@6.3.1': + resolution: {integrity: sha512-y3sSPuQjBKZQbQwe3ZJKrSW6Silyl9PnrU/Mf0m2OQgIlPoSYTtOvEL7xs94SVMkb8f4x+SQFnzXPdX4Wk2lsg==} - '@codemirror/lang-python@6.1.7': - resolution: {integrity: sha512-mZnFTsL4lW5p9ch8uKNKeRU3xGGxr1QpESLilfON2E3fQzOa/OygEMkaDvERvXDJWJA9U9oN/D4w0ZuUzNO4+g==} + '@codemirror/lang-python@6.1.6': + resolution: {integrity: sha512-ai+01WfZhWqM92UqjnvorkxosZ2aq2u28kHvr+N3gu012XqY2CThD67JPMHnGceRfXPDBmn1HnyqowdpF57bNg==} '@codemirror/lang-sass@6.0.2': resolution: {integrity: sha512-l/bdzIABvnTo1nzdY6U+kPAC51czYQcOErfzQ9zSm9D8GmNPD0WTW8st/CJwBTPLO8jlrbyvlSEcN20dc4iL0Q==} @@ -897,8 +974,8 @@ packages: '@codemirror/lang-wast@6.0.2': resolution: {integrity: sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q==} - '@codemirror/language@6.10.8': - resolution: {integrity: sha512-wcP8XPPhDH2vTqf181U8MbZnW+tDyPYy0UzVOa+oHORjyT+mhhom9vBd7dApJwoDz9Nb/a8kHjJIsuA/t8vNFw==} + '@codemirror/language@6.10.6': + resolution: {integrity: sha512-KrsbdCnxEztLVbB5PycWXFxas4EOyk/fPAfruSOnDDppevQgid2XZ+KbJ9u+fDikP/e7MW7HPBTvTb8JlZK9vA==} '@codemirror/lint@6.8.4': resolution: {integrity: sha512-u4q7PnZlJUojeRe8FJa/njJcMctISGgPQ4PnWsd9268R4ZTtU+tfFYmwkBvgcrK2+QQ8tYFVALVb5fVJykKc5A==} @@ -906,11 +983,11 @@ packages: '@codemirror/search@6.5.8': resolution: {integrity: sha512-PoWtZvo7c1XFeZWmmyaOp2G0XVbOnm+fJzvghqGAktBW3cufwJUWvSCcNG0ppXiBEM05mZu6RhMtXPv2hpllig==} - '@codemirror/state@6.5.2': - resolution: {integrity: sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==} + '@codemirror/state@6.4.1': + resolution: {integrity: sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==} - '@codemirror/view@6.36.2': - resolution: {integrity: sha512-DZ6ONbs8qdJK0fdN7AB82CgI6tYXf4HWk1wSVa0+9bhVznCuuvhQtX8bFBoy3dv8rZSQqUd8GvhVAcielcidrA==} + '@codemirror/view@6.35.0': + resolution: {integrity: sha512-I0tYy63q5XkaWsJ8QRv5h6ves7kvtrBWjBcnf/bzohFJQc5c14a1AQRdE8QpPF9eMp5Mq2FMm59TCj1gDfE7kw==} '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} @@ -944,8 +1021,36 @@ packages: resolution: {integrity: sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==} engines: {node: '>=18'} - '@emnapi/runtime@1.3.1': - resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} + '@develar/schema-utils@2.6.5': + resolution: {integrity: sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==} + engines: {node: '>= 8.9.0'} + + '@electron/asar@3.2.18': + resolution: {integrity: sha512-2XyvMe3N3Nrs8cV39IKELRHTYUWFKrmqqSY1U+GMlc0jvqjIVnoxhNd2H4JolWQncbJi1DCvb5TNxZuI2fEjWg==} + engines: {node: '>=10.12.0'} + hasBin: true + + '@electron/get@2.0.3': + resolution: {integrity: sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==} + engines: {node: '>=12'} + + '@electron/notarize@2.5.0': + resolution: {integrity: sha512-jNT8nwH1f9X5GEITXaQ8IF/KdskvIkOFfB2CvwumsveVidzpSc+mvhhTMdAGSYF3O+Nq49lJ7y+ssODRXu06+A==} + engines: {node: '>= 10.0.0'} + + '@electron/osx-sign@1.3.1': + resolution: {integrity: sha512-BAfviURMHpmb1Yb50YbCxnOY0wfwaLXH5KJ4+80zS0gUkzDX3ec23naTlEqKsN+PwYn+a1cCzM7BJ4Wcd3sGzw==} + engines: {node: '>=12.0.0'} + hasBin: true + + '@electron/rebuild@3.6.1': + resolution: {integrity: sha512-f6596ZHpEq/YskUd8emYvOUne89ij8mQgjYFA5ru25QwbrRO+t1SImofdDv7kKOuWCmVOuU5tvfkbgGxIl3E/w==} + engines: {node: '>=12.13.0'} + hasBin: true + + '@electron/universal@2.0.1': + resolution: {integrity: sha512-fKpv9kg4SPmt+hY7SVBnIYULE9QJl8L3sCfcBsnqbJwwBwAeTLokJ9TRt9y7bK0JAzIW2y78TVVjvnQEms/yyA==} + engines: {node: '>=16.4'} '@emotion/hash@0.9.2': resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} @@ -1516,43 +1621,39 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.19.2': - resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} + '@eslint/config-array@0.19.0': + resolution: {integrity: sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.10.0': - resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/core@0.11.0': - resolution: {integrity: sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==} + '@eslint/core@0.9.0': + resolution: {integrity: sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/eslintrc@3.2.0': resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.20.0': - resolution: {integrity: sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==} + '@eslint/js@9.16.0': + resolution: {integrity: sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@2.1.6': - resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} + '@eslint/object-schema@2.1.4': + resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.5': - resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==} + '@eslint/plugin-kit@0.2.3': + resolution: {integrity: sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@fastify/busboy@2.1.1': resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} - '@floating-ui/core@1.6.9': - resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} + '@floating-ui/core@1.6.8': + resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==} - '@floating-ui/dom@1.6.13': - resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} + '@floating-ui/dom@1.6.12': + resolution: {integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==} '@floating-ui/react-dom@2.1.2': resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} @@ -1566,8 +1667,11 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' - '@floating-ui/utils@0.2.9': - resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + '@floating-ui/utils@0.2.8': + resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} + + '@gar/promisify@1.1.3': + resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} '@headlessui/react@2.2.0': resolution: {integrity: sha512-RzCEg+LXsuI7mHiSomsu/gBJSjpupm6A1qIZ5sWjd7JhARNlMiSA4kKfJpCKwU9tE+zMRterhhrP74PvfJrpXQ==} @@ -1596,129 +1700,24 @@ packages: resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} engines: {node: '>=18.18'} - '@iconify-json/ph@1.2.2': - resolution: {integrity: sha512-PgkEZNtqa8hBGjHXQa4pMwZa93hmfu8FUSjs/nv4oUU6yLsgv+gh9nu28Kqi8Fz9CCVu4hj1MZs9/60J57IzFw==} + '@iconify-json/ph@1.2.1': + resolution: {integrity: sha512-x0DNfwWrS18dbsBYOq3XGiZnGz4CgRyC+YSl/TZvMQiKhIUl1woWqUbMYqqfMNUBzjyk7ulvaRovpRsIlqIf8g==} - '@iconify-json/svg-spinners@1.2.2': - resolution: {integrity: sha512-DIErwfBWWzLfmAG2oQnbUOSqZhDxlXvr8941itMCrxQoMB0Hiv8Ww6Bln/zIgxwjDvSem2dKJtap+yKKwsB/2A==} + '@iconify-json/svg-spinners@1.2.1': + resolution: {integrity: sha512-QZNA4YzFD2zqdC6nIBJM6WlAGakUCjvMt92Ks1R4XFxkd76Ps3rdiauYWESDRZvNYURAByp2b9cwZarFula65g==} '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} - '@iconify/utils@2.3.0': - resolution: {integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==} - - '@img/sharp-darwin-arm64@0.33.5': - resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [darwin] - - '@img/sharp-darwin-x64@0.33.5': - resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [darwin] - - '@img/sharp-libvips-darwin-arm64@1.0.4': - resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} - cpu: [arm64] - os: [darwin] - - '@img/sharp-libvips-darwin-x64@1.0.4': - resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} - cpu: [x64] - os: [darwin] - - '@img/sharp-libvips-linux-arm64@1.0.4': - resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} - cpu: [arm64] - os: [linux] - - '@img/sharp-libvips-linux-arm@1.0.5': - resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} - cpu: [arm] - os: [linux] - - '@img/sharp-libvips-linux-s390x@1.0.4': - resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} - cpu: [s390x] - os: [linux] - - '@img/sharp-libvips-linux-x64@1.0.4': - resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} - cpu: [x64] - os: [linux] - - '@img/sharp-libvips-linuxmusl-arm64@1.0.4': - resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} - cpu: [arm64] - os: [linux] - - '@img/sharp-libvips-linuxmusl-x64@1.0.4': - resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} - cpu: [x64] - os: [linux] - - '@img/sharp-linux-arm64@0.33.5': - resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - - '@img/sharp-linux-arm@0.33.5': - resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm] - os: [linux] - - '@img/sharp-linux-s390x@0.33.5': - resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [s390x] - os: [linux] - - '@img/sharp-linux-x64@0.33.5': - resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - - '@img/sharp-linuxmusl-arm64@0.33.5': - resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - - '@img/sharp-linuxmusl-x64@0.33.5': - resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - - '@img/sharp-wasm32@0.33.5': - resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [wasm32] - - '@img/sharp-win32-ia32@0.33.5': - resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [ia32] - os: [win32] - - '@img/sharp-win32-x64@0.33.5': - resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [win32] + '@iconify/utils@2.1.33': + resolution: {integrity: sha512-jP9h6v/g0BIZx0p7XGJJVtkVnydtbgTgt9mVNcGDYwaa7UhdHdI9dvoq+gKj9sijMSJKxUPEG2JyjsgXjxL7Kw==} '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - '@jridgewell/gen-mapping@0.3.8': - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} '@jridgewell/resolve-uri@3.1.2': @@ -1750,8 +1749,8 @@ packages: '@lezer/cpp@1.1.2': resolution: {integrity: sha512-macwKtyeUO0EW86r3xWQCzOV9/CF8imJLpJlPv3sDY57cPGeUZ8gXWOWNlJr52TVByMV3PayFQCA5SHEERDmVQ==} - '@lezer/css@1.1.10': - resolution: {integrity: sha512-V5/89eDapjeAkWPBpWEfQjZ1Hag3aYUUJOL8213X0dFRuXJ4BXa5NKl9USzOnaLod4AOpmVCkduir2oKwZYZtg==} + '@lezer/css@1.1.9': + resolution: {integrity: sha512-TYwgljcDv+YrV0MZFFvYFQHCfGgbPMR6nuqLabBdmZoFH3EP1gvw8t0vae326Ne3PszQkbXfVBjCnf3ZVCr0bA==} '@lezer/highlight@1.2.1': resolution: {integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==} @@ -1759,29 +1758,31 @@ packages: '@lezer/html@1.3.10': resolution: {integrity: sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==} - '@lezer/javascript@1.4.21': - resolution: {integrity: sha512-lL+1fcuxWYPURMM/oFZLEDm0XuLN128QPV+VuGtKpeaOGdcl9F2LYC3nh1S9LkPqx9M0mndZFdXCipNAZpzIkQ==} + '@lezer/javascript@1.4.20': + resolution: {integrity: sha512-Qhl3x+hVPnZkylv+BS//zx77KR4GLxM4PiL02r/D1Zoa4WLQI1A0cHuOr6k0FOTTSCPNNfeNANax0I5DWcXBYw==} - '@lezer/json@1.0.3': - resolution: {integrity: sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ==} + '@lezer/json@1.0.2': + resolution: {integrity: sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ==} '@lezer/lr@1.4.2': resolution: {integrity: sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==} - '@lezer/markdown@1.4.1': - resolution: {integrity: sha512-Za5okfyWoNaX6sSZ2dm94XegaFXbkQ9UjKJ8hAoZX88XDpbu6DoR63IuSl+dqj1VkVQBQGsdr0JnTcMsogQDdw==} + '@lezer/markdown@1.3.2': + resolution: {integrity: sha512-Wu7B6VnrKTbBEohqa63h5vxXjiC4pO5ZQJ/TDbhJxPQaaIoRD/6UVDhSDtVsCwVZV12vvN9KxuLL3ATMnlG0oQ==} - '@lezer/python@1.1.15': - resolution: {integrity: sha512-aVQ43m2zk4FZYedCqL0KHPEUsqZOrmAvRhkhHlVPnDD1HODDyyQv5BRIuod4DadkgBEZd53vQOtXTonNbEgjrQ==} + '@lezer/python@1.1.14': + resolution: {integrity: sha512-ykDOb2Ti24n76PJsSa4ZoDF0zH12BSw1LGfQXCYJhJyOGiFTfGaX0Du66Ze72R+u/P35U+O6I9m8TFXov1JzsA==} '@lezer/sass@1.0.7': resolution: {integrity: sha512-8HLlOkuX/SMHOggI2DAsXUw38TuURe+3eQ5hiuk9QmYOUyC55B1dYEIMkav5A4IELVaW4e1T4P9WRiI5ka4mdw==} - '@marijn/buildtool@0.1.6': - resolution: {integrity: sha512-rcA2wljsM24MFAwx2U5vSBrt7IdIaPh4WPRfJPS8PuCUlbuQ8Pmky4c/ec00v3YFu90rZSbkVLnPuCeb/mUEng==} + '@malept/cross-spawn-promise@2.0.0': + resolution: {integrity: sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==} + engines: {node: '>= 12.13.0'} - '@marijn/find-cluster-break@1.0.2': - resolution: {integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==} + '@malept/flatpak-bundler@0.4.0': + resolution: {integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==} + engines: {node: '>= 10.0.0'} '@mdx-js/mdx@2.3.0': resolution: {integrity: sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA==} @@ -1805,6 +1806,10 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@npmcli/fs@2.1.2': + resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + '@npmcli/fs@3.1.1': resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -1813,6 +1818,11 @@ packages: resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/move-file@2.0.1': + resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This functionality has been moved to @npmcli/fs + '@npmcli/package-json@4.0.1': resolution: {integrity: sha512-lRCEGdHZomFsURroh522YvA/2cVb9oPIJrjHanCJZkiasz1BzcnLr3tBJhlV7S86MBJBuAQ33is2D60YitZL2Q==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -1821,27 +1831,27 @@ packages: resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@octokit/auth-token@5.1.2': - resolution: {integrity: sha512-JcQDsBdg49Yky2w2ld20IHAlwr8d/d8N6NiOXbtuoPCqzbsiJgF633mVUw3x4mo0H5ypataQIX7SFu3yy44Mpw==} + '@octokit/auth-token@5.1.1': + resolution: {integrity: sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==} engines: {node: '>= 18'} - '@octokit/core@6.1.3': - resolution: {integrity: sha512-z+j7DixNnfpdToYsOutStDgeRzJSMnbj8T1C/oQjB6Aa+kRfNjs/Fn7W6c8bmlt6mfy3FkgeKBRnDjxQow5dow==} + '@octokit/core@6.1.2': + resolution: {integrity: sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==} engines: {node: '>= 18'} - '@octokit/endpoint@10.1.2': - resolution: {integrity: sha512-XybpFv9Ms4hX5OCHMZqyODYqGTZ3H6K6Vva+M9LR7ib/xr1y1ZnlChYv9H680y77Vd/i/k+thXApeRASBQkzhA==} + '@octokit/endpoint@10.1.1': + resolution: {integrity: sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==} engines: {node: '>= 18'} - '@octokit/graphql@8.2.0': - resolution: {integrity: sha512-gejfDywEml/45SqbWTWrhfwvLBrcGYhOn50sPOjIeVvH6i7D16/9xcFA8dAJNp2HMcd+g4vru41g4E2RBiZvfQ==} + '@octokit/graphql@8.1.1': + resolution: {integrity: sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==} engines: {node: '>= 18'} - '@octokit/openapi-types@23.0.1': - resolution: {integrity: sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g==} + '@octokit/openapi-types@22.2.0': + resolution: {integrity: sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==} - '@octokit/plugin-paginate-rest@11.4.0': - resolution: {integrity: sha512-ttpGck5AYWkwMkMazNCZMqxKqIq1fJBNxBfsFwwfyYKTf914jKkLF0POMS3YkPBwp5g1c2Y4L79gDz01GhSr1g==} + '@octokit/plugin-paginate-rest@11.3.6': + resolution: {integrity: sha512-zcvqqf/+TicbTCa/Z+3w4eBJcAxCFymtc0UAIsR3dEVoNilWld4oXdscQ3laXamTszUZdusw97K8+DrbFiOwjw==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': '>=6' @@ -1852,26 +1862,26 @@ packages: peerDependencies: '@octokit/core': '>=6' - '@octokit/plugin-rest-endpoint-methods@13.3.1': - resolution: {integrity: sha512-o8uOBdsyR+WR8MK9Cco8dCgvG13H1RlM1nWnK/W7TEACQBFux/vPREgKucxUfuDQ5yi1T3hGf4C5ZmZXAERgwQ==} + '@octokit/plugin-rest-endpoint-methods@13.2.6': + resolution: {integrity: sha512-wMsdyHMjSfKjGINkdGKki06VEkgdEldIGstIEyGX0wbYHGByOwN/KiM+hAAlUwAtPkP3gvXtVQA9L3ITdV2tVw==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': '>=6' - '@octokit/request-error@6.1.6': - resolution: {integrity: sha512-pqnVKYo/at0NuOjinrgcQYpEbv4snvP3bKMRqHaD9kIsk9u1LCpb2smHZi8/qJfgeNqLo5hNW4Z7FezNdEo0xg==} + '@octokit/request-error@6.1.5': + resolution: {integrity: sha512-IlBTfGX8Yn/oFPMwSfvugfncK2EwRLjzbrpifNaMY8o/HTEAFqCA1FZxjD9cWvSKBHgrIhc4CSBIzMxiLsbzFQ==} engines: {node: '>= 18'} - '@octokit/request@9.2.0': - resolution: {integrity: sha512-kXLfcxhC4ozCnAXy2ff+cSxpcF0A1UqxjvYMqNuPIeOAzJbVWQ+dy5G2fTylofB/gTbObT8O6JORab+5XtA1Kw==} + '@octokit/request@9.1.3': + resolution: {integrity: sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==} engines: {node: '>= 18'} - '@octokit/rest@21.1.0': - resolution: {integrity: sha512-93iLxcKDJboUpmnUyeJ6cRIi7z7cqTZT1K7kRK4LobGxwTwpsa+2tQQbRQNGy7IFDEAmrtkf4F4wBj3D5rVlJQ==} + '@octokit/rest@21.0.2': + resolution: {integrity: sha512-+CiLisCoyWmYicH25y1cDfCrv41kRSvTq6pPWtRroRJzhsCZWZyCqGyI8foJT5LmScADSwRAnr/xo+eewL04wQ==} engines: {node: '>= 18'} - '@octokit/types@13.8.0': - resolution: {integrity: sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A==} + '@octokit/types@13.6.2': + resolution: {integrity: sha512-WpbZfZUcZU77DrSW4wbsSgTPfKcp286q3ItaIgvSbBpZJlu6mnYXAkjZz6LVZPXkEvLIM8McanyZejKTYUHipA==} '@openrouter/ai-sdk-provider@0.0.5': resolution: {integrity: sha512-AfxXQhISpxQSeUjU/4jo9waM5GRNX6eIkfTFS9l7vHkD1TKDP81Y/dXrE0ttJeN/Kap3tPF3Jwh49me0gWwjSw==} @@ -1904,9 +1914,25 @@ packages: '@radix-ui/number@1.1.0': resolution: {integrity: sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==} + '@radix-ui/primitive@1.1.0': + resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==} + '@radix-ui/primitive@1.1.1': resolution: {integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==} + '@radix-ui/react-arrow@1.1.0': + resolution: {integrity: sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-arrow@1.1.2': resolution: {integrity: sha512-G+KcpzXHq24iH0uGG/pF8LyzpFJYGD4RfLjCIBfGdSLXvjLHST31RUiRVrupIBMvIppMgSzQ6l66iAxl03tdlg==} peerDependencies: @@ -1933,6 +1959,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-collection@1.1.0': + resolution: {integrity: sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-collection@1.1.2': resolution: {integrity: sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw==} peerDependencies: @@ -1946,6 +1985,15 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-compose-refs@1.1.0': + resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-compose-refs@1.1.1': resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} peerDependencies: @@ -1955,8 +2003,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-context-menu@2.2.6': - resolution: {integrity: sha512-aUP99QZ3VU84NPsHeaFt4cQUNgJqFsLLOt/RbbWXszZ6MP0DpDyjkFZORr4RpAEx3sUBk+Kc8h13yGtC5Qw8dg==} + '@radix-ui/react-context-menu@2.2.2': + resolution: {integrity: sha512-99EatSTpW+hRYHt7m8wdDlLtkmTovEe8Z/hnxUPV+SKuuNL5HWNhQI4QSdjZqNSgXHay2z4M3Dym73j9p2Gx5Q==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1968,6 +2016,15 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-context@1.1.0': + resolution: {integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-context@1.1.1': resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} peerDependencies: @@ -1999,6 +2056,19 @@ packages: '@types/react': optional: true + '@radix-ui/react-dismissable-layer@1.1.1': + resolution: {integrity: sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-dismissable-layer@1.1.5': resolution: {integrity: sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg==} peerDependencies: @@ -2034,6 +2104,19 @@ packages: '@types/react': optional: true + '@radix-ui/react-focus-scope@1.1.0': + resolution: {integrity: sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-focus-scope@1.1.2': resolution: {integrity: sha512-zxwE80FCU7lcXUGWkdt6XpTTCKPitG1XKOwViTxHVKIJhZl9MvIl2dVHeZENCWD9+EdWv05wlaEkRXUykU27RA==} peerDependencies: @@ -2069,6 +2152,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-menu@2.1.2': + resolution: {integrity: sha512-lZ0R4qR2Al6fZ4yCCZzu/ReTFrylHFxIqy7OezIpWF4bL0o9biKo0pFIvkaew3TyZ9Fy5gYVrR5zCGZBVbO1zg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-menu@2.1.6': resolution: {integrity: sha512-tBBb5CXDJW3t2mo9WlO7r6GTmWV0F0uzHZVFmlRmYpiSK1CDU5IKojP1pm7oknpBOrFZx/YgBRW9oorPO2S/Lg==} peerDependencies: @@ -2095,6 +2191,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-popper@1.2.0': + resolution: {integrity: sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-popper@1.2.2': resolution: {integrity: sha512-Rvqc3nOpwseCyj/rgjlJDYAgyfw7OC1tTkKn2ivhaMGcYt8FSBlahHOZak2i3QwkRXUXgGgzeEe2RuqeEHuHgA==} peerDependencies: @@ -2108,6 +2217,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-portal@1.1.2': + resolution: {integrity: sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-portal@1.1.4': resolution: {integrity: sha512-sn2O9k1rPFYVyKd5LAJfo96JlSGVFpa1fS6UuBJfrZadudiw5tAmru+n1x7aMRQ84qDM71Zh1+SzK5QwU0tJfA==} peerDependencies: @@ -2121,6 +2243,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-presence@1.1.1': + resolution: {integrity: sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-presence@1.1.2': resolution: {integrity: sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==} peerDependencies: @@ -2134,6 +2269,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-primitive@2.0.0': + resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-primitive@2.0.2': resolution: {integrity: sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==} peerDependencies: @@ -2160,6 +2308,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-roving-focus@1.1.0': + resolution: {integrity: sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-roving-focus@1.1.2': resolution: {integrity: sha512-zgMQWkNO169GtGqRvYrzb0Zf8NhMHS2DuEB/TiEmVnpr5OqPU3i8lfbxaAmC2J/KYuIQxyoQQ6DxepyXp61/xw==} peerDependencies: @@ -2186,8 +2347,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-separator@1.1.2': - resolution: {integrity: sha512-oZfHcaAp2Y6KFBX6I5P1u7CQoy4lheCGiYj+pGFrHy8E/VNRb5E39TkTr3JrV520csPBTZjkuKFdEsjS5EUNKQ==} + '@radix-ui/react-separator@1.1.0': + resolution: {integrity: sha512-3uBAs+egzvJBDZAzvb/n4NxxOYpnspmWxO2u5NbZ8Y6FM/NdrGSF9bop3Cf6F6C71z1rTSn8KV0Fo2ZVd79lGA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2199,6 +2360,15 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-slot@1.1.0': + resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-slot@1.1.2': resolution: {integrity: sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==} peerDependencies: @@ -2208,8 +2378,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-switch@1.1.3': - resolution: {integrity: sha512-1nc+vjEOQkJVsJtWPSiISGT6OKm4SiOdjMo+/icLxo2G4vxz1GntC5MzfL4v8ey9OEfw787QCD1y3mUv0NiFEQ==} + '@radix-ui/react-switch@1.1.1': + resolution: {integrity: sha512-diPqDDoBcZPSicYoMWdWx+bCPuTRH4QSp9J+65IvtdS0Kuzt67bI6n32vCj8q6NZmYW/ah+2orOtMwcX5eQwIg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2234,8 +2404,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-tooltip@1.1.8': - resolution: {integrity: sha512-YAA2cu48EkJZdAMHC0dqo9kialOcRStbtiY4nJPaht7Ptrhcvpo+eDChaM6BIs8kL6a8Z5l5poiqLnXcNduOkA==} + '@radix-ui/react-tooltip@1.1.4': + resolution: {integrity: sha512-QpObUH/ZlpaO4YgHSaYzrLO2VuO+ZBFFgGzjMUPwtiYnAzzNNDPJeEGRrT7qNOrWm/Jr08M1vlp+vTHtnSQ0Uw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2310,8 +2480,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-visually-hidden@1.1.2': - resolution: {integrity: sha512-1SzA4ns2M1aRlvxErqhLHsBHoS5eI5UUcI2awAMgGUp4LoaoWOKYmvqDY2s/tltuPkh3Yk77YF/r3IRj+Amx4Q==} + '@radix-ui/react-visually-hidden@1.1.0': + resolution: {integrity: sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2326,14 +2496,14 @@ packages: '@radix-ui/rect@1.1.0': resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} - '@react-aria/focus@3.19.1': - resolution: {integrity: sha512-bix9Bu1Ue7RPcYmjwcjhB14BMu2qzfJ3tMQLqDc9pweJA66nOw8DThy3IfVr8Z7j2PHktOLf9kcbiZpydKHqzg==} + '@react-aria/focus@3.20.0': + resolution: {integrity: sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/interactions@3.23.0': - resolution: {integrity: sha512-0qR1atBIWrb7FzQ+Tmr3s8uH5mQdyRH78n0krYaG8tng9+u1JlSi8DGRSaC9ezKyNB84m7vHT207xnHXGeJ3Fg==} + '@react-aria/interactions@3.24.0': + resolution: {integrity: sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -2344,8 +2514,8 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/utils@3.27.0': - resolution: {integrity: sha512-p681OtApnKOdbeN8ITfnnYqfdHS0z7GE+4l8EXlfLnr70Rp/9xicBO6d2rU+V/B3JujDw2gPWxYKEnEeh0CGCw==} + '@react-aria/utils@3.28.0': + resolution: {integrity: sha512-FfpvpADk61OvEnFe37k6jF1zr5gtafIPN9ccJRnPCTqrzuExag01mGi+wX/hWyFK0zAe1OjWf1zFOX3FsFvikg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -2359,18 +2529,21 @@ packages: '@react-dnd/shallowequal@4.0.2': resolution: {integrity: sha512-/RVXdLvJxLg4QKvMoM5WlwNR9ViO9z8B/qPcc+C0Sa/teJY7QG7kJ441DwzOjMYEY7GmU4dj5EcGHIkKZiQZCA==} + '@react-stately/flags@3.1.0': + resolution: {integrity: sha512-KSHOCxTFpBtxhIRcKwsD1YDTaNxFtCYuAUb0KEihc16QwqZViq4hasgPBs2gYm7fHRbw7WYzWKf6ZSo/+YsFlg==} + '@react-stately/utils@3.10.5': resolution: {integrity: sha512-iMQSGcpaecghDIh3mZEpZfoFH3ExBwTtuBEcvZ2XnGzCgQjeYXcMdIUwAfVQLXFTdHUHGF6Gu6/dFrYsCzySBQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/shared@3.27.0': - resolution: {integrity: sha512-gvznmLhi6JPEf0bsq7SwRYTHAKKq/wcmKqFez9sRdbED+SPMUmK5omfZ6w3EwUFQHbYUa4zPBYedQ7Knv70RMw==} + '@react-types/shared@3.28.0': + resolution: {integrity: sha512-9oMEYIDc3sk0G5rysnYvdNrkSg7B04yTKl50HHSZVbokeHpnU0yRmsDaWb9B/5RprcKj8XszEk5guBO8Sa/Q+Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@remix-run/cloudflare-pages@2.15.3': - resolution: {integrity: sha512-fnkv/AbYY7j+vc1pSd2ycwq2hoPvblZGX8f4s41R5yP/0guFqKt+Ofzhk9fvNh6QErrFvoI5sOEhq/jldDZWzw==} + '@remix-run/cloudflare-pages@2.16.0': + resolution: {integrity: sha512-Il/4JWkIFhkGPqE9MtaWCG431wNvAo+JsGClwVnOQgQYOJKV7wcvjZ4fQmkzc+GYBGMlOxx1OxD/S76XqnVzFQ==} engines: {node: '>=18.0.0'} peerDependencies: '@cloudflare/workers-types': ^4.0.0 @@ -2379,8 +2552,8 @@ packages: typescript: optional: true - '@remix-run/cloudflare@2.15.3': - resolution: {integrity: sha512-L5O+ejspTcAffp979BwE2tDR1KkMblYiCjV87hfjYu1ktjWCLXcizeiOl65msljOE8yrMcF+cGzl75QQGw753w==} + '@remix-run/cloudflare@2.16.0': + resolution: {integrity: sha512-Z9kN6tChe36S175z4AVm8c79kUUBS4k16IBIpNods3z3oyo103EDawHdpiYcaEdz2OfdTCvNwsA7zLvRBW7yNA==} engines: {node: '>=18.0.0'} peerDependencies: '@cloudflare/workers-types': ^4.0.0 @@ -2389,15 +2562,15 @@ packages: typescript: optional: true - '@remix-run/dev@2.15.3': - resolution: {integrity: sha512-agndQJHs7qISPXXH/Zet0VHWvcwtQGoEOXxltjerNQ2zWcAJQBm9i06tS6n6v/ZP0sHIVdo/IsvgAA4wetqmNw==} + '@remix-run/dev@2.16.0': + resolution: {integrity: sha512-zfb93zJatWRMmBU4dQFM9pTgYfkZi1orDYtd18f9YNZM6pbshmhqlsiGZmrMAhAuYLGB983aqkXY3pxtZhoDkQ==} engines: {node: '>=18.0.0'} hasBin: true peerDependencies: - '@remix-run/react': ^2.15.3 - '@remix-run/serve': ^2.15.3 + '@remix-run/react': ^2.16.0 + '@remix-run/serve': ^2.16.0 typescript: ^5.1.0 - vite: ^5.1.0 + vite: ^5.1.0 || ^6.0.0 wrangler: ^3.28.2 peerDependenciesMeta: '@remix-run/serve': @@ -2409,6 +2582,16 @@ packages: wrangler: optional: true + '@remix-run/express@2.16.0': + resolution: {integrity: sha512-JuN+HjwJqlJqvMIWxWEw6Oj6u/TfwW4itHJg2hGAvQftBCwSD49kkAMUwBzdZr2BOepdwjuS/UKJpannp4PWKQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + express: ^4.20.0 + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true + '@remix-run/node@2.15.3': resolution: {integrity: sha512-TYfS6BPhbABBpSRZ6WBA4qIWSwWvJhRVQGXCHUtgOwkuW863rcFmjh9g2Xj/IHyTmbOYPdcjHsIgZ9el4CHOKQ==} engines: {node: '>=18.0.0'} @@ -2418,8 +2601,17 @@ packages: typescript: optional: true - '@remix-run/react@2.15.3': - resolution: {integrity: sha512-AynCltIk8KLlxV9a+4dORtEMNtF5wJAzBNBZLJMdw3FCJNQZRYQSen8rDnIovOOiz9UNZ2SmBTFERiFMKS16jw==} + '@remix-run/node@2.16.0': + resolution: {integrity: sha512-9yYBYCHYO1+bIScGAtOy5/r4BoTS8E5lpQmjWP99UxSCSiKHPEO76V9Z8mmmarTNis/FPN+sUwfmbQWNHLA2vw==} + engines: {node: '>=18.0.0'} + peerDependencies: + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true + + '@remix-run/react@2.16.0': + resolution: {integrity: sha512-eTi60/7AO8vnIL+IT33ZixT0tLjUrilgKhimdZtddBc/XIawUeslC01mNUHIlLXS+zUDM05iBmY2aLTKkqyy6Q==} engines: {node: '>=18.0.0'} peerDependencies: react: ^18.0.0 @@ -2433,6 +2625,15 @@ packages: resolution: {integrity: sha512-MBOl8MeOzpK0HQQQshKB7pABXbmyHizdTpqnrIseTbsv0nAepwC2ENZa1aaBExNQcpLoXmWthhak8SABLzvGPw==} engines: {node: '>=14.0.0'} + '@remix-run/router@1.23.0': + resolution: {integrity: sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA==} + engines: {node: '>=14.0.0'} + + '@remix-run/serve@2.16.0': + resolution: {integrity: sha512-KF3ofzLcXf2lY1jFa8o7iDbRblSDIlzpUaxhcvPWPatrJwfB6ww/aVEesERKD+AUUonx6kB4KkEj5eAn0U86MA==} + engines: {node: '>=18.0.0'} + hasBin: true + '@remix-run/server-runtime@2.15.3': resolution: {integrity: sha512-taHBe1DEqxZNjjj6OfkSYbup+sZPjbTgUhykaI+nHqrC2NDQuTiisBXhLwtx60GctONR/x0lWhF7R9ZGC5WsHw==} engines: {node: '>=18.0.0'} @@ -2442,6 +2643,15 @@ packages: typescript: optional: true + '@remix-run/server-runtime@2.16.0': + resolution: {integrity: sha512-gbuc4slxPi+pT47MrUYprX/wCuDlYL6H3LHZSvimWO1kDCBt8oefHzdHDPjLi4B1xzqXZomswTbuJzpZ7xRRTg==} + engines: {node: '>=18.0.0'} + peerDependencies: + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true + '@remix-run/web-blob@3.1.0': resolution: {integrity: sha512-owGzFLbqPH9PlKb8KvpNJ0NO74HWE2euAn61eEiyCXX/oteoVzTVSN8mpLgDjaxBf2btj5/nUllSUgpyd6IH6g==} @@ -2467,8 +2677,8 @@ packages: rollup: optional: true - '@rollup/pluginutils@5.1.4': - resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} + '@rollup/pluginutils@5.1.3': + resolution: {integrity: sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -2476,312 +2686,300 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.34.6': - resolution: {integrity: sha512-+GcCXtOQoWuC7hhX1P00LqjjIiS/iOouHXhMdiDSnq/1DGTox4SpUvO52Xm+div6+106r+TcvOeo/cxvyEyTgg==} + '@rollup/rollup-android-arm-eabi@4.28.0': + resolution: {integrity: sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.34.6': - resolution: {integrity: sha512-E8+2qCIjciYUnCa1AiVF1BkRgqIGW9KzJeesQqVfyRITGQN+dFuoivO0hnro1DjT74wXLRZ7QF8MIbz+luGaJA==} + '@rollup/rollup-android-arm64@4.28.0': + resolution: {integrity: sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.34.6': - resolution: {integrity: sha512-z9Ib+OzqN3DZEjX7PDQMHEhtF+t6Mi2z/ueChQPLS/qUMKY7Ybn5A2ggFoKRNRh1q1T03YTQfBTQCJZiepESAg==} + '@rollup/rollup-darwin-arm64@4.28.0': + resolution: {integrity: sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.34.6': - resolution: {integrity: sha512-PShKVY4u0FDAR7jskyFIYVyHEPCPnIQY8s5OcXkdU8mz3Y7eXDJPdyM/ZWjkYdR2m0izD9HHWA8sGcXn+Qrsyg==} + '@rollup/rollup-darwin-x64@4.28.0': + resolution: {integrity: sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.34.6': - resolution: {integrity: sha512-YSwyOqlDAdKqs0iKuqvRHLN4SrD2TiswfoLfvYXseKbL47ht1grQpq46MSiQAx6rQEN8o8URtpXARCpqabqxGQ==} + '@rollup/rollup-freebsd-arm64@4.28.0': + resolution: {integrity: sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.34.6': - resolution: {integrity: sha512-HEP4CgPAY1RxXwwL5sPFv6BBM3tVeLnshF03HMhJYCNc6kvSqBgTMmsEjb72RkZBAWIqiPUyF1JpEBv5XT9wKQ==} + '@rollup/rollup-freebsd-x64@4.28.0': + resolution: {integrity: sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.34.6': - resolution: {integrity: sha512-88fSzjC5xeH9S2Vg3rPgXJULkHcLYMkh8faix8DX4h4TIAL65ekwuQMA/g2CXq8W+NJC43V6fUpYZNjaX3+IIg==} + '@rollup/rollup-linux-arm-gnueabihf@4.28.0': + resolution: {integrity: sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.34.6': - resolution: {integrity: sha512-wM4ztnutBqYFyvNeR7Av+reWI/enK9tDOTKNF+6Kk2Q96k9bwhDDOlnCUNRPvromlVXo04riSliMBs/Z7RteEg==} + '@rollup/rollup-linux-arm-musleabihf@4.28.0': + resolution: {integrity: sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.34.6': - resolution: {integrity: sha512-9RyprECbRa9zEjXLtvvshhw4CMrRa3K+0wcp3KME0zmBe1ILmvcVHnypZ/aIDXpRyfhSYSuN4EPdCCj5Du8FIA==} + '@rollup/rollup-linux-arm64-gnu@4.28.0': + resolution: {integrity: sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.34.6': - resolution: {integrity: sha512-qTmklhCTyaJSB05S+iSovfo++EwnIEZxHkzv5dep4qoszUMX5Ca4WM4zAVUMbfdviLgCSQOu5oU8YoGk1s6M9Q==} + '@rollup/rollup-linux-arm64-musl@4.28.0': + resolution: {integrity: sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.34.6': - resolution: {integrity: sha512-4Qmkaps9yqmpjY5pvpkfOerYgKNUGzQpFxV6rnS7c/JfYbDSU0y6WpbbredB5cCpLFGJEqYX40WUmxMkwhWCjw==} - cpu: [loong64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.34.6': - resolution: {integrity: sha512-Zsrtux3PuaxuBTX/zHdLaFmcofWGzaWW1scwLU3ZbW/X+hSsFbz9wDIp6XvnT7pzYRl9MezWqEqKy7ssmDEnuQ==} + '@rollup/rollup-linux-powerpc64le-gnu@4.28.0': + resolution: {integrity: sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.34.6': - resolution: {integrity: sha512-aK+Zp+CRM55iPrlyKiU3/zyhgzWBxLVrw2mwiQSYJRobCURb781+XstzvA8Gkjg/hbdQFuDw44aUOxVQFycrAg==} + '@rollup/rollup-linux-riscv64-gnu@4.28.0': + resolution: {integrity: sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.34.6': - resolution: {integrity: sha512-WoKLVrY9ogmaYPXwTH326+ErlCIgMmsoRSx6bO+l68YgJnlOXhygDYSZe/qbUJCSiCiZAQ+tKm88NcWuUXqOzw==} + '@rollup/rollup-linux-s390x-gnu@4.28.0': + resolution: {integrity: sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.34.6': - resolution: {integrity: sha512-Sht4aFvmA4ToHd2vFzwMFaQCiYm2lDFho5rPcvPBT5pCdC+GwHG6CMch4GQfmWTQ1SwRKS0dhDYb54khSrjDWw==} + '@rollup/rollup-linux-x64-gnu@4.28.0': + resolution: {integrity: sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.34.6': - resolution: {integrity: sha512-zmmpOQh8vXc2QITsnCiODCDGXFC8LMi64+/oPpPx5qz3pqv0s6x46ps4xoycfUiVZps5PFn1gksZzo4RGTKT+A==} + '@rollup/rollup-linux-x64-musl@4.28.0': + resolution: {integrity: sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.34.6': - resolution: {integrity: sha512-3/q1qUsO/tLqGBaD4uXsB6coVGB3usxw3qyeVb59aArCgedSF66MPdgRStUd7vbZOsko/CgVaY5fo2vkvPLWiA==} + '@rollup/rollup-win32-arm64-msvc@4.28.0': + resolution: {integrity: sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.34.6': - resolution: {integrity: sha512-oLHxuyywc6efdKVTxvc0135zPrRdtYVjtVD5GUm55I3ODxhU/PwkQFD97z16Xzxa1Fz0AEe4W/2hzRtd+IfpOA==} + '@rollup/rollup-win32-ia32-msvc@4.28.0': + resolution: {integrity: sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.34.6': - resolution: {integrity: sha512-0PVwmgzZ8+TZ9oGBmdZoQVXflbvuwzN/HRclujpl4N/q3i+y0lqLw8n1bXA8ru3sApDjlmONaNAuYr38y1Kr9w==} + '@rollup/rollup-win32-x64-msvc@4.28.0': + resolution: {integrity: sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==} cpu: [x64] os: [win32] - '@shikijs/core@1.29.2': - resolution: {integrity: sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==} + '@shikijs/core@1.24.0': + resolution: {integrity: sha512-6pvdH0KoahMzr6689yh0QJ3rCgF4j1XsXRHNEeEN6M4xJTfQ6QPWrmHzIddotg+xPJUPEPzYzYCKzpYyhTI6Gw==} - '@shikijs/engine-javascript@1.29.2': - resolution: {integrity: sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==} + '@shikijs/engine-javascript@1.24.0': + resolution: {integrity: sha512-ZA6sCeSsF3Mnlxxr+4wGEJ9Tto4RHmfIS7ox8KIAbH0MTVUkw3roHPHZN+LlJMOHJJOVupe6tvuAzRpN8qK1vA==} - '@shikijs/engine-oniguruma@1.29.2': - resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==} + '@shikijs/engine-oniguruma@1.24.0': + resolution: {integrity: sha512-Eua0qNOL73Y82lGA4GF5P+G2+VXX9XnuUxkiUuwcxQPH4wom+tE39kZpBFXfUuwNYxHSkrSxpB1p4kyRW0moSg==} - '@shikijs/langs@1.29.2': - resolution: {integrity: sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==} + '@shikijs/types@1.24.0': + resolution: {integrity: sha512-aptbEuq1Pk88DMlCe+FzXNnBZ17LCiLIGWAeCWhoFDzia5Q5Krx3DgnULLiouSdd6+LUM39XwXGppqYE0Ghtug==} - '@shikijs/themes@1.29.2': - resolution: {integrity: sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==} + '@shikijs/vscode-textmate@9.3.0': + resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==} - '@shikijs/types@1.29.2': - resolution: {integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==} + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} - '@shikijs/vscode-textmate@10.0.1': - resolution: {integrity: sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==} + '@smithy/abort-controller@3.1.9': + resolution: {integrity: sha512-yiW0WI30zj8ZKoSYNx90no7ugVn3khlyH/z5W8qtKBtVE6awRALbhSG+2SAHA1r6bO/6M9utxYKVZ3PCJ1rWxw==} + engines: {node: '>=16.0.0'} - '@smithy/abort-controller@4.0.1': - resolution: {integrity: sha512-fiUIYgIgRjMWznk6iLJz35K2YxSLHzLBA/RC6lBrKfQ8fHbPfvk7Pk9UvpKoHgJjI18MnbPuEju53zcVy6KF1g==} - engines: {node: '>=18.0.0'} + '@smithy/config-resolver@3.0.13': + resolution: {integrity: sha512-Gr/qwzyPaTL1tZcq8WQyHhTZREER5R1Wytmz4WnVGL4onA3dNk6Btll55c8Vr58pLdvWZmtG8oZxJTw3t3q7Jg==} + engines: {node: '>=16.0.0'} - '@smithy/config-resolver@4.0.1': - resolution: {integrity: sha512-Igfg8lKu3dRVkTSEm98QpZUvKEOa71jDX4vKRcvJVyRc3UgN3j7vFMf0s7xLQhYmKa8kyJGQgUJDOV5V3neVlQ==} - engines: {node: '>=18.0.0'} + '@smithy/core@2.5.6': + resolution: {integrity: sha512-w494xO+CPwG/5B/N2l0obHv2Fi9U4DAY+sTi1GWT3BVvGpZetJjJXAynIO9IHp4zS1PinGhXtRSZydUXbJO4ag==} + engines: {node: '>=16.0.0'} - '@smithy/core@3.1.2': - resolution: {integrity: sha512-htwQXkbdF13uwwDevz9BEzL5ABK+1sJpVQXywwGSH973AVOvisHNfpcB8A8761G6XgHoS2kHPqc9DqHJ2gp+/Q==} - engines: {node: '>=18.0.0'} + '@smithy/credential-provider-imds@3.2.8': + resolution: {integrity: sha512-ZCY2yD0BY+K9iMXkkbnjo+08T2h8/34oHd0Jmh6BZUSZwaaGlGCyBT/3wnS7u7Xl33/EEfN4B6nQr3Gx5bYxgw==} + engines: {node: '>=16.0.0'} - '@smithy/credential-provider-imds@4.0.1': - resolution: {integrity: sha512-l/qdInaDq1Zpznpmev/+52QomsJNZ3JkTl5yrTl02V6NBgJOQ4LY0SFw/8zsMwj3tLe8vqiIuwF6nxaEwgf6mg==} - engines: {node: '>=18.0.0'} + '@smithy/eventstream-codec@3.1.10': + resolution: {integrity: sha512-323B8YckSbUH0nMIpXn7HZsAVKHYHFUODa8gG9cHo0ySvA1fr5iWaNT+iIL0UCqUzG6QPHA3BSsBtRQou4mMqQ==} - '@smithy/eventstream-codec@4.0.1': - resolution: {integrity: sha512-Q2bCAAR6zXNVtJgifsU16ZjKGqdw/DyecKNgIgi7dlqw04fqDu0mnq+JmGphqheypVc64CYq3azSuCpAdFk2+A==} - engines: {node: '>=18.0.0'} + '@smithy/eventstream-serde-browser@3.0.14': + resolution: {integrity: sha512-kbrt0vjOIihW3V7Cqj1SXQvAI5BR8SnyQYsandva0AOR307cXAc+IhPngxIPslxTLfxwDpNu0HzCAq6g42kCPg==} + engines: {node: '>=16.0.0'} - '@smithy/eventstream-serde-browser@4.0.1': - resolution: {integrity: sha512-HbIybmz5rhNg+zxKiyVAnvdM3vkzjE6ccrJ620iPL8IXcJEntd3hnBl+ktMwIy12Te/kyrSbUb8UCdnUT4QEdA==} - engines: {node: '>=18.0.0'} + '@smithy/eventstream-serde-config-resolver@3.0.11': + resolution: {integrity: sha512-P2pnEp4n75O+QHjyO7cbw/vsw5l93K/8EWyjNCAAybYwUmj3M+hjSQZ9P5TVdUgEG08ueMAP5R4FkuSkElZ5tQ==} + engines: {node: '>=16.0.0'} - '@smithy/eventstream-serde-config-resolver@4.0.1': - resolution: {integrity: sha512-lSipaiq3rmHguHa3QFF4YcCM3VJOrY9oq2sow3qlhFY+nBSTF/nrO82MUQRPrxHQXA58J5G1UnU2WuJfi465BA==} - engines: {node: '>=18.0.0'} + '@smithy/eventstream-serde-node@3.0.13': + resolution: {integrity: sha512-zqy/9iwbj8Wysmvi7Lq7XFLeDgjRpTbCfwBhJa8WbrylTAHiAu6oQTwdY7iu2lxigbc9YYr9vPv5SzYny5tCXQ==} + engines: {node: '>=16.0.0'} - '@smithy/eventstream-serde-node@4.0.1': - resolution: {integrity: sha512-o4CoOI6oYGYJ4zXo34U8X9szDe3oGjmHgsMGiZM0j4vtNoT+h80TLnkUcrLZR3+E6HIxqW+G+9WHAVfl0GXK0Q==} - engines: {node: '>=18.0.0'} + '@smithy/eventstream-serde-universal@3.0.13': + resolution: {integrity: sha512-L1Ib66+gg9uTnqp/18Gz4MDpJPKRE44geOjOQ2SVc0eiaO5l255ADziATZgjQjqumC7yPtp1XnjHlF1srcwjKw==} + engines: {node: '>=16.0.0'} - '@smithy/eventstream-serde-universal@4.0.1': - resolution: {integrity: sha512-Z94uZp0tGJuxds3iEAZBqGU2QiaBHP4YytLUjwZWx+oUeohCsLyUm33yp4MMBmhkuPqSbQCXq5hDet6JGUgHWA==} - engines: {node: '>=18.0.0'} + '@smithy/fetch-http-handler@4.1.2': + resolution: {integrity: sha512-R7rU7Ae3ItU4rC0c5mB2sP5mJNbCfoDc8I5XlYjIZnquyUwec7fEo78F6DA3SmgJgkU1qTMcZJuGblxZsl10ZA==} - '@smithy/fetch-http-handler@5.0.1': - resolution: {integrity: sha512-3aS+fP28urrMW2KTjb6z9iFow6jO8n3MFfineGbndvzGZit3taZhKWtTorf+Gp5RpFDDafeHlhfsGlDCXvUnJA==} - engines: {node: '>=18.0.0'} + '@smithy/hash-node@3.0.11': + resolution: {integrity: sha512-emP23rwYyZhQBvklqTtwetkQlqbNYirDiEEwXl2v0GYWMnCzxst7ZaRAnWuy28njp5kAH54lvkdG37MblZzaHA==} + engines: {node: '>=16.0.0'} - '@smithy/hash-node@4.0.1': - resolution: {integrity: sha512-TJ6oZS+3r2Xu4emVse1YPB3Dq3d8RkZDKcPr71Nj/lJsdAP1c7oFzYqEn1IBc915TsgLl2xIJNuxCz+gLbLE0w==} - engines: {node: '>=18.0.0'} - - '@smithy/invalid-dependency@4.0.1': - resolution: {integrity: sha512-gdudFPf4QRQ5pzj7HEnu6FhKRi61BfH/Gk5Yf6O0KiSbr1LlVhgjThcvjdu658VE6Nve8vaIWB8/fodmS1rBPQ==} - engines: {node: '>=18.0.0'} + '@smithy/invalid-dependency@3.0.11': + resolution: {integrity: sha512-NuQmVPEJjUX6c+UELyVz8kUx8Q539EDeNwbRyu4IIF8MeV7hUtq1FB3SHVyki2u++5XLMFqngeMKk7ccspnNyQ==} '@smithy/is-array-buffer@2.2.0': resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} engines: {node: '>=14.0.0'} - '@smithy/is-array-buffer@4.0.0': - resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==} - engines: {node: '>=18.0.0'} + '@smithy/is-array-buffer@3.0.0': + resolution: {integrity: sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==} + engines: {node: '>=16.0.0'} - '@smithy/middleware-content-length@4.0.1': - resolution: {integrity: sha512-OGXo7w5EkB5pPiac7KNzVtfCW2vKBTZNuCctn++TTSOMpe6RZO/n6WEC1AxJINn3+vWLKW49uad3lo/u0WJ9oQ==} - engines: {node: '>=18.0.0'} + '@smithy/middleware-content-length@3.0.13': + resolution: {integrity: sha512-zfMhzojhFpIX3P5ug7jxTjfUcIPcGjcQYzB9t+rv0g1TX7B0QdwONW+ATouaLoD7h7LOw/ZlXfkq4xJ/g2TrIw==} + engines: {node: '>=16.0.0'} - '@smithy/middleware-endpoint@4.0.3': - resolution: {integrity: sha512-YdbmWhQF5kIxZjWqPIgboVfi8i5XgiYMM7GGKFMTvBei4XjNQfNv8sukT50ITvgnWKKKpOtp0C0h7qixLgb77Q==} - engines: {node: '>=18.0.0'} + '@smithy/middleware-endpoint@3.2.7': + resolution: {integrity: sha512-GTxSKf280aJBANGN97MomUQhW1VNxZ6w7HAj/pvZM5MUHbMPOGnWOp1PRYKi4czMaHNj9bdiA+ZarmT3Wkdqiw==} + engines: {node: '>=16.0.0'} - '@smithy/middleware-retry@4.0.4': - resolution: {integrity: sha512-wmxyUBGHaYUqul0wZiset4M39SMtDBOtUr2KpDuftKNN74Do9Y36Go6Eqzj9tL0mIPpr31ulB5UUtxcsCeGXsQ==} - engines: {node: '>=18.0.0'} + '@smithy/middleware-retry@3.0.32': + resolution: {integrity: sha512-v8gVA9HqibuZkFuFpfkC/EcHE8no/3Mv3JvRUGly63Axt4yyas1WDVOasFSdiqm2hZVpY7/k8mRT1Wd5k7r3Yw==} + engines: {node: '>=16.0.0'} - '@smithy/middleware-serde@4.0.2': - resolution: {integrity: sha512-Sdr5lOagCn5tt+zKsaW+U2/iwr6bI9p08wOkCp6/eL6iMbgdtc2R5Ety66rf87PeohR0ExI84Txz9GYv5ou3iQ==} - engines: {node: '>=18.0.0'} + '@smithy/middleware-serde@3.0.11': + resolution: {integrity: sha512-KzPAeySp/fOoQA82TpnwItvX8BBURecpx6ZMu75EZDkAcnPtO6vf7q4aH5QHs/F1s3/snQaSFbbUMcFFZ086Mw==} + engines: {node: '>=16.0.0'} - '@smithy/middleware-stack@4.0.1': - resolution: {integrity: sha512-dHwDmrtR/ln8UTHpaIavRSzeIk5+YZTBtLnKwDW3G2t6nAupCiQUvNzNoHBpik63fwUaJPtlnMzXbQrNFWssIA==} - engines: {node: '>=18.0.0'} + '@smithy/middleware-stack@3.0.11': + resolution: {integrity: sha512-1HGo9a6/ikgOMrTrWL/WiN9N8GSVYpuRQO5kjstAq4CvV59bjqnh7TbdXGQ4vxLD3xlSjfBjq5t1SOELePsLnA==} + engines: {node: '>=16.0.0'} - '@smithy/node-config-provider@4.0.1': - resolution: {integrity: sha512-8mRTjvCtVET8+rxvmzRNRR0hH2JjV0DFOmwXPrISmTIJEfnCBugpYYGAsCj8t41qd+RB5gbheSQ/6aKZCQvFLQ==} - engines: {node: '>=18.0.0'} + '@smithy/node-config-provider@3.1.12': + resolution: {integrity: sha512-O9LVEu5J/u/FuNlZs+L7Ikn3lz7VB9hb0GtPT9MQeiBmtK8RSY3ULmsZgXhe6VAlgTw0YO+paQx4p8xdbs43vQ==} + engines: {node: '>=16.0.0'} - '@smithy/node-http-handler@4.0.2': - resolution: {integrity: sha512-X66H9aah9hisLLSnGuzRYba6vckuFtGE+a5DcHLliI/YlqKrGoxhisD5XbX44KyoeRzoNlGr94eTsMVHFAzPOw==} - engines: {node: '>=18.0.0'} + '@smithy/node-http-handler@3.3.3': + resolution: {integrity: sha512-BrpZOaZ4RCbcJ2igiSNG16S+kgAc65l/2hmxWdmhyoGWHTLlzQzr06PXavJp9OBlPEG/sHlqdxjWmjzV66+BSQ==} + engines: {node: '>=16.0.0'} - '@smithy/property-provider@4.0.1': - resolution: {integrity: sha512-o+VRiwC2cgmk/WFV0jaETGOtX16VNPp2bSQEzu0whbReqE1BMqsP2ami2Vi3cbGVdKu1kq9gQkDAGKbt0WOHAQ==} - engines: {node: '>=18.0.0'} + '@smithy/property-provider@3.1.11': + resolution: {integrity: sha512-I/+TMc4XTQ3QAjXfOcUWbSS073oOEAxgx4aZy8jHaf8JQnRkq2SZWw8+PfDtBvLUjcGMdxl+YwtzWe6i5uhL/A==} + engines: {node: '>=16.0.0'} - '@smithy/protocol-http@5.0.1': - resolution: {integrity: sha512-TE4cpj49jJNB/oHyh/cRVEgNZaoPaxd4vteJNB0yGidOCVR0jCw/hjPVsT8Q8FRmj8Bd3bFZt8Dh7xGCT+xMBQ==} - engines: {node: '>=18.0.0'} + '@smithy/protocol-http@4.1.8': + resolution: {integrity: sha512-hmgIAVyxw1LySOwkgMIUN0kjN8TG9Nc85LJeEmEE/cNEe2rkHDUWhnJf2gxcSRFLWsyqWsrZGw40ROjUogg+Iw==} + engines: {node: '>=16.0.0'} - '@smithy/querystring-builder@4.0.1': - resolution: {integrity: sha512-wU87iWZoCbcqrwszsOewEIuq+SU2mSoBE2CcsLwE0I19m0B2gOJr1MVjxWcDQYOzHbR1xCk7AcOBbGFUYOKvdg==} - engines: {node: '>=18.0.0'} + '@smithy/querystring-builder@3.0.11': + resolution: {integrity: sha512-u+5HV/9uJaeLj5XTb6+IEF/dokWWkEqJ0XiaRRogyREmKGUgZnNecLucADLdauWFKUNbQfulHFEZEdjwEBjXRg==} + engines: {node: '>=16.0.0'} - '@smithy/querystring-parser@4.0.1': - resolution: {integrity: sha512-Ma2XC7VS9aV77+clSFylVUnPZRindhB7BbmYiNOdr+CHt/kZNJoPP0cd3QxCnCFyPXC4eybmyE98phEHkqZ5Jw==} - engines: {node: '>=18.0.0'} + '@smithy/querystring-parser@3.0.11': + resolution: {integrity: sha512-Je3kFvCsFMnso1ilPwA7GtlbPaTixa3WwC+K21kmMZHsBEOZYQaqxcMqeFFoU7/slFjKDIpiiPydvdJm8Q/MCw==} + engines: {node: '>=16.0.0'} - '@smithy/service-error-classification@4.0.1': - resolution: {integrity: sha512-3JNjBfOWpj/mYfjXJHB4Txc/7E4LVq32bwzE7m28GN79+M1f76XHflUaSUkhOriprPDzev9cX/M+dEB80DNDKA==} - engines: {node: '>=18.0.0'} + '@smithy/service-error-classification@3.0.11': + resolution: {integrity: sha512-QnYDPkyewrJzCyaeI2Rmp7pDwbUETe+hU8ADkXmgNusO1bgHBH7ovXJiYmba8t0fNfJx75fE8dlM6SEmZxheog==} + engines: {node: '>=16.0.0'} - '@smithy/shared-ini-file-loader@4.0.1': - resolution: {integrity: sha512-hC8F6qTBbuHRI/uqDgqqi6J0R4GtEZcgrZPhFQnMhfJs3MnUTGSnR1NSJCJs5VWlMydu0kJz15M640fJlRsIOw==} - engines: {node: '>=18.0.0'} + '@smithy/shared-ini-file-loader@3.1.12': + resolution: {integrity: sha512-1xKSGI+U9KKdbG2qDvIR9dGrw3CNx+baqJfyr0igKEpjbHL5stsqAesYBzHChYHlelWtb87VnLWlhvfCz13H8Q==} + engines: {node: '>=16.0.0'} - '@smithy/signature-v4@5.0.1': - resolution: {integrity: sha512-nCe6fQ+ppm1bQuw5iKoeJ0MJfz2os7Ic3GBjOkLOPtavbD1ONoyE3ygjBfz2ythFWm4YnRm6OxW+8p/m9uCoIA==} - engines: {node: '>=18.0.0'} + '@smithy/signature-v4@4.2.4': + resolution: {integrity: sha512-5JWeMQYg81TgU4cG+OexAWdvDTs5JDdbEZx+Qr1iPbvo91QFGzjy0IkXAKaXUHqmKUJgSHK0ZxnCkgZpzkeNTA==} + engines: {node: '>=16.0.0'} - '@smithy/smithy-client@4.1.3': - resolution: {integrity: sha512-A2Hz85pu8BJJaYFdX8yb1yocqigyqBzn+OVaVgm+Kwi/DkN8vhN2kbDVEfADo6jXf5hPKquMLGA3UINA64UZ7A==} - engines: {node: '>=18.0.0'} + '@smithy/smithy-client@3.5.2': + resolution: {integrity: sha512-h7xn+1wlpbXyLrtvo/teHR1SFGIIrQ3imzG0nz43zVLAJgvfC1Mtdwa1pFhoIOYrt/TiNjt4pD0gSYQEdZSBtg==} + engines: {node: '>=16.0.0'} - '@smithy/types@4.1.0': - resolution: {integrity: sha512-enhjdwp4D7CXmwLtD6zbcDMbo6/T6WtuuKCY49Xxc6OMOmUWlBEBDREsxxgV2LIdeQPW756+f97GzcgAwp3iLw==} - engines: {node: '>=18.0.0'} + '@smithy/types@3.7.2': + resolution: {integrity: sha512-bNwBYYmN8Eh9RyjS1p2gW6MIhSO2rl7X9QeLM8iTdcGRP+eDiIWDt66c9IysCc22gefKszZv+ubV9qZc7hdESg==} + engines: {node: '>=16.0.0'} - '@smithy/url-parser@4.0.1': - resolution: {integrity: sha512-gPXcIEUtw7VlK8f/QcruNXm7q+T5hhvGu9tl63LsJPZ27exB6dtNwvh2HIi0v7JcXJ5emBxB+CJxwaLEdJfA+g==} - engines: {node: '>=18.0.0'} + '@smithy/url-parser@3.0.11': + resolution: {integrity: sha512-TmlqXkSk8ZPhfc+SQutjmFr5FjC0av3GZP4B/10caK1SbRwe/v+Wzu/R6xEKxoNqL+8nY18s1byiy6HqPG37Aw==} - '@smithy/util-base64@4.0.0': - resolution: {integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==} - engines: {node: '>=18.0.0'} + '@smithy/util-base64@3.0.0': + resolution: {integrity: sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==} + engines: {node: '>=16.0.0'} - '@smithy/util-body-length-browser@4.0.0': - resolution: {integrity: sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==} - engines: {node: '>=18.0.0'} + '@smithy/util-body-length-browser@3.0.0': + resolution: {integrity: sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==} - '@smithy/util-body-length-node@4.0.0': - resolution: {integrity: sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==} - engines: {node: '>=18.0.0'} + '@smithy/util-body-length-node@3.0.0': + resolution: {integrity: sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==} + engines: {node: '>=16.0.0'} '@smithy/util-buffer-from@2.2.0': resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} engines: {node: '>=14.0.0'} - '@smithy/util-buffer-from@4.0.0': - resolution: {integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==} - engines: {node: '>=18.0.0'} + '@smithy/util-buffer-from@3.0.0': + resolution: {integrity: sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==} + engines: {node: '>=16.0.0'} - '@smithy/util-config-provider@4.0.0': - resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==} - engines: {node: '>=18.0.0'} + '@smithy/util-config-provider@3.0.0': + resolution: {integrity: sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==} + engines: {node: '>=16.0.0'} - '@smithy/util-defaults-mode-browser@4.0.4': - resolution: {integrity: sha512-Ej1bV5sbrIfH++KnWxjjzFNq9nyP3RIUq2c9Iqq7SmMO/idUR24sqvKH2LUQFTSPy/K7G4sB2m8n7YYlEAfZaw==} - engines: {node: '>=18.0.0'} + '@smithy/util-defaults-mode-browser@3.0.32': + resolution: {integrity: sha512-FAGsnm/xJ19SZeoqGyo9CosqjUlm+XJTmygDMktebvDKw3bKiIiZ40O1MA6Z52KLmekYU2GO7BEK7u6e7ZORKw==} + engines: {node: '>= 10.0.0'} - '@smithy/util-defaults-mode-node@4.0.4': - resolution: {integrity: sha512-HE1I7gxa6yP7ZgXPCFfZSDmVmMtY7SHqzFF55gM/GPegzZKaQWZZ+nYn9C2Cc3JltCMyWe63VPR3tSFDEvuGjw==} - engines: {node: '>=18.0.0'} + '@smithy/util-defaults-mode-node@3.0.32': + resolution: {integrity: sha512-2CzKhkPFCVdd15f3+0D1rldNlvJME8pVRBtVVsea2hy7lcOn0bGB0dTVUwzgfM4LW/aU4IOg3jWf25ZWaxbOiw==} + engines: {node: '>= 10.0.0'} - '@smithy/util-endpoints@3.0.1': - resolution: {integrity: sha512-zVdUENQpdtn9jbpD9SCFK4+aSiavRb9BxEtw9ZGUR1TYo6bBHbIoi7VkrFQ0/RwZlzx0wRBaRmPclj8iAoJCLA==} - engines: {node: '>=18.0.0'} + '@smithy/util-endpoints@2.1.7': + resolution: {integrity: sha512-tSfcqKcN/Oo2STEYCABVuKgJ76nyyr6skGl9t15hs+YaiU06sgMkN7QYjo0BbVw+KT26zok3IzbdSOksQ4YzVw==} + engines: {node: '>=16.0.0'} - '@smithy/util-hex-encoding@4.0.0': - resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==} - engines: {node: '>=18.0.0'} + '@smithy/util-hex-encoding@3.0.0': + resolution: {integrity: sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==} + engines: {node: '>=16.0.0'} - '@smithy/util-middleware@4.0.1': - resolution: {integrity: sha512-HiLAvlcqhbzhuiOa0Lyct5IIlyIz0PQO5dnMlmQ/ubYM46dPInB+3yQGkfxsk6Q24Y0n3/JmcA1v5iEhmOF5mA==} - engines: {node: '>=18.0.0'} + '@smithy/util-middleware@3.0.11': + resolution: {integrity: sha512-dWpyc1e1R6VoXrwLoLDd57U1z6CwNSdkM69Ie4+6uYh2GC7Vg51Qtan7ITzczuVpqezdDTKJGJB95fFvvjU/ow==} + engines: {node: '>=16.0.0'} - '@smithy/util-retry@4.0.1': - resolution: {integrity: sha512-WmRHqNVwn3kI3rKk1LsKcVgPBG6iLTBGC1iYOV3GQegwJ3E8yjzHytPt26VNzOWr1qu0xE03nK0Ug8S7T7oufw==} - engines: {node: '>=18.0.0'} + '@smithy/util-retry@3.0.11': + resolution: {integrity: sha512-hJUC6W7A3DQgaee3Hp9ZFcOxVDZzmBIRBPlUAk8/fSOEl7pE/aX7Dci0JycNOnm9Mfr0KV2XjIlUOcGWXQUdVQ==} + engines: {node: '>=16.0.0'} - '@smithy/util-stream@4.0.2': - resolution: {integrity: sha512-0eZ4G5fRzIoewtHtwaYyl8g2C+osYOT4KClXgfdNEDAgkbe2TYPqcnw4GAWabqkZCax2ihRGPe9LZnsPdIUIHA==} - engines: {node: '>=18.0.0'} + '@smithy/util-stream@3.3.3': + resolution: {integrity: sha512-bOm0YMMxRjbI3X6QkWwADPFkh2AH2xBMQIB1IQgCsCRqXXpSJatgjUR3oxHthpYwFkw3WPkOt8VgMpJxC0rFqg==} + engines: {node: '>=16.0.0'} - '@smithy/util-uri-escape@4.0.0': - resolution: {integrity: sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==} - engines: {node: '>=18.0.0'} + '@smithy/util-uri-escape@3.0.0': + resolution: {integrity: sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==} + engines: {node: '>=16.0.0'} '@smithy/util-utf8@2.3.0': resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} engines: {node: '>=14.0.0'} - '@smithy/util-utf8@4.0.0': - resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==} - engines: {node: '>=18.0.0'} + '@smithy/util-utf8@3.0.0': + resolution: {integrity: sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==} + engines: {node: '>=16.0.0'} - '@stylistic/eslint-plugin-ts@2.13.0': - resolution: {integrity: sha512-nooe1oTwz60T4wQhZ+5u0/GAu3ygkKF9vPPZeRn/meG71ntQ0EZXVOKEonluAYl/+CV2T+nN0dknHa4evAW13Q==} + '@stylistic/eslint-plugin-ts@2.11.0': + resolution: {integrity: sha512-ZBxnfSjzxUiwCibbVCeYCYwZw+P5xaQw+pNA8B8uR42fdMQIOhUstXjJuS2nTHoW5CF4+vGSxbL4gklI8WxhyA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.40.0' @@ -2789,14 +2987,18 @@ packages: '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} - '@tanstack/react-virtual@3.13.0': - resolution: {integrity: sha512-CchF0NlLIowiM2GxtsoKBkXA4uqSnY2KvnXo+kyUFD4a4ll6+J0qzoRsUPMwXV/H26lRsxgJIr/YmjYum2oEjg==} + '@szmarczak/http-timer@4.0.6': + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} + + '@tanstack/react-virtual@3.13.2': + resolution: {integrity: sha512-LceSUgABBKF6HSsHK2ZqHzQ37IKV/jlaWbHm+NyTa3/WNb/JZVcThDuTainf+PixltOOcFCYXwxbLpOX9sCx+g==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tanstack/virtual-core@3.13.0': - resolution: {integrity: sha512-NBKJP3OIdmZY3COJdWkSonr50FMVIi+aj5ZJ7hI/DTpEKg2RMfo/KvP8A3B/zOSpMgIe52B5E2yn7rryULzA6g==} + '@tanstack/virtual-core@3.13.2': + resolution: {integrity: sha512-Qzz4EgzMbO5gKrmqUondCjiHcuu4B1ftHb0pjCut661lXZdGoHeze9f/M8iwsK1t5LGR6aNuNGU7mxkowaW6RQ==} '@testing-library/dom@10.4.0': resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} @@ -2821,6 +3023,10 @@ packages: '@types/react-dom': optional: true + '@tootallnate/once@2.0.0': + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + '@types/acorn@4.0.6': resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} @@ -2839,6 +3045,9 @@ packages: '@types/babel__traverse@7.20.6': resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + '@types/cacheable-request@6.0.3': + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + '@types/cookie@0.6.0': resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} @@ -2854,6 +3063,13 @@ packages: '@types/dom-speech-recognition@0.0.4': resolution: {integrity: sha512-zf2GwV/G6TdaLwpLDcGTIkHnXf8JEf/viMux+khqKQKDa8/8BAUtXXZS563GnvJ4Fg0PBLGAaFf2GekEVSZ6GQ==} + '@types/electron@1.6.12': + resolution: {integrity: sha512-NIJokDkGv9h+MStCL1IuiL1FOHYVkszoWeNxJtSI5dcEKRGbX83JcVYNAgk019qOQgJkHtz9WdP0CDXvrArrGg==} + deprecated: This is a stub types definition. electron provides its own type definitions, so you do not need this installed. + + '@types/eslint@8.56.10': + resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} + '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} @@ -2863,8 +3079,8 @@ packages: '@types/file-saver@2.0.7': resolution: {integrity: sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==} - '@types/gensync@1.0.4': - resolution: {integrity: sha512-C3YYeRQWp2fmq9OryX+FoDy8nXS6scQ7dPptD8LnFDAUNcKWJjXQKDNJD3HVm+kOUsXhTOkpi69vI4EuAr95bA==} + '@types/fs-extra@9.0.13': + resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} '@types/hast@2.3.10': resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} @@ -2875,12 +3091,18 @@ packages: '@types/hoist-non-react-statics@3.3.6': resolution: {integrity: sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==} + '@types/http-cache-semantics@4.0.4': + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + '@types/js-cookie@3.0.6': resolution: {integrity: sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ==} '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/keyv@3.1.4': + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + '@types/mdast@3.0.15': resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} @@ -2890,20 +3112,26 @@ packages: '@types/mdx@2.0.13': resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} - '@types/mocha@9.1.1': - resolution: {integrity: sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==} + '@types/ms@0.7.34': + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - '@types/ms@2.1.0': - resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + '@types/node-forge@1.3.11': + resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} - '@types/node@22.13.1': - resolution: {integrity: sha512-jK8uzQlrvXqEU91UxiK5J7pKHyzgnI1Qnl0QDHIgVGuolJhRb9EEl28Cj9b3rGR8B2lhFCtvIm5os8lFnO/1Ew==} + '@types/node@20.17.16': + resolution: {integrity: sha512-vOTpLduLkZXePLxHiHsBLp98mHGnl8RptV4YAO3HfKO5UHjDvySGbxKtpYfy8Sx5+WKcgc45qNreJJRVM3L6mw==} + + '@types/node@22.10.1': + resolution: {integrity: sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==} '@types/path-browserify@1.0.3': resolution: {integrity: sha512-ZmHivEbNCBtAfcrFeBCiTjdIc2dey0l7oCGNGpSuRTy8jP6UVND7oUowlvDujBy8r2Hoa8bfFUOCiPWfmtkfxw==} - '@types/prop-types@15.7.14': - resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} + '@types/plist@3.0.5': + resolution: {integrity: sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==} + + '@types/prop-types@15.7.13': + resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==} '@types/raf@3.4.3': resolution: {integrity: sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw==} @@ -2911,16 +3139,17 @@ packages: '@types/react-beautiful-dnd@13.1.8': resolution: {integrity: sha512-E3TyFsro9pQuK4r8S/OL6G99eq7p8v29sX0PM7oT8Z+PJfZvSQTx4zTQbUJ+QZXioAF0e7TGBEcA1XhYhCweyQ==} - '@types/react-dom@18.3.5': - resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==} - peerDependencies: - '@types/react': ^18.0.0 + '@types/react-dom@18.3.1': + resolution: {integrity: sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==} '@types/react-redux@7.1.34': resolution: {integrity: sha512-GdFaVjEbYv4Fthm2ZLvj1VSCedV7TqE5y1kNwnjSdBOTXuRSgowux6J8TAct15T3CKBr63UMk+2CO7ilRhyrAQ==} - '@types/react@18.3.18': - resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} + '@types/react@18.3.12': + resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==} + + '@types/responselike@1.0.3': + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} @@ -2931,65 +3160,86 @@ packages: '@types/uuid@9.0.8': resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} - '@typescript-eslint/eslint-plugin@8.24.0': - resolution: {integrity: sha512-aFcXEJJCI4gUdXgoo/j9udUYIHgF23MFkg09LFz2dzEmU0+1Plk4rQWv/IYKvPHAtlkkGoB3m5e6oUp+JPsNaQ==} + '@types/verror@1.10.10': + resolution: {integrity: sha512-l4MM0Jppn18hb9xmM6wwD1uTdShpf9Pn80aXTStnK1C94gtPvJcV2FrDmbOQUAQfJ1cKZHktkQUDwEqaAKXMMg==} + + '@types/yauzl@2.10.3': + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + + '@typescript-eslint/eslint-plugin@8.17.0': + resolution: {integrity: sha512-HU1KAdW3Tt8zQkdvNoIijfWDMvdSweFYm4hWh+KwhPstv+sCmWb89hCIP8msFm9N1R/ooh9honpSuvqKWlYy3w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - '@typescript-eslint/parser@8.24.0': - resolution: {integrity: sha512-MFDaO9CYiard9j9VepMNa9MTcqVvSny2N4hkY6roquzj8pdCBRENhErrteaQuu7Yjn1ppk0v1/ZF9CG3KIlrTA==} + '@typescript-eslint/parser@8.17.0': + resolution: {integrity: sha512-Drp39TXuUlD49F7ilHHCG7TTg8IkA+hxCuULdmzWYICxGXvDXmDmWEjJYZQYgf6l/TFfYNE167m7isnc3xlIEg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - '@typescript-eslint/scope-manager@8.24.0': - resolution: {integrity: sha512-HZIX0UByphEtdVBKaQBgTDdn9z16l4aTUz8e8zPQnyxwHBtf5vtl1L+OhH+m1FGV9DrRmoDuYKqzVrvWDcDozw==} + '@typescript-eslint/scope-manager@8.17.0': + resolution: {integrity: sha512-/ewp4XjvnxaREtqsZjF4Mfn078RD/9GmiEAtTeLQ7yFdKnqwTOgRMSvFz4et9U5RiJQ15WTGXPLj89zGusvxBg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.24.0': - resolution: {integrity: sha512-8fitJudrnY8aq0F1wMiPM1UUgiXQRJ5i8tFjq9kGfRajU+dbPyOuHbl0qRopLEidy0MwqgTHDt6CnSeXanNIwA==} + '@typescript-eslint/type-utils@8.17.0': + resolution: {integrity: sha512-q38llWJYPd63rRnJ6wY/ZQqIzPrBCkPdpIsaCfkR3Q4t3p6sb422zougfad4TFW9+ElIFLVDzWGiGAfbb/v2qw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - '@typescript-eslint/types@8.24.0': - resolution: {integrity: sha512-VacJCBTyje7HGAw7xp11q439A+zeGG0p0/p2zsZwpnMzjPB5WteaWqt4g2iysgGFafrqvyLWqq6ZPZAOCoefCw==} + '@typescript-eslint/types@8.17.0': + resolution: {integrity: sha512-gY2TVzeve3z6crqh2Ic7Cr+CAv6pfb0Egee7J5UAVWCpVvDI/F71wNfolIim4FE6hT15EbpZFVUj9j5i38jYXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.24.0': - resolution: {integrity: sha512-ITjYcP0+8kbsvT9bysygfIfb+hBj6koDsu37JZG7xrCiy3fPJyNmfVtaGsgTUSEuTzcvME5YI5uyL5LD1EV5ZQ==} + '@typescript-eslint/typescript-estree@8.17.0': + resolution: {integrity: sha512-JqkOopc1nRKZpX+opvKqnM3XUlM7LpFMD0lYxTqOTKQfCWAmxw45e3qlOCsEqEB2yuacujivudOFpCnqkBDNMw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.8.0' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - '@typescript-eslint/utils@8.24.0': - resolution: {integrity: sha512-07rLuUBElvvEb1ICnafYWr4hk8/U7X9RDCOqd9JcAMtjh/9oRmcfN4yGzbPVirgMR0+HLVHehmu19CWeh7fsmQ==} + '@typescript-eslint/utils@8.17.0': + resolution: {integrity: sha512-bQC8BnEkxqG8HBGKwG9wXlZqg37RKSMY7v/X8VEWD8JG2JuTHuNK0VFvMPMUKQcbk6B+tf05k+4AShAEtCtJ/w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - '@typescript-eslint/visitor-keys@8.24.0': - resolution: {integrity: sha512-kArLq83QxGLbuHrTMoOEWO+l2MwsNS2TGISEdx8xgqpkbytB07XmlQyQdNDrCc1ecSqx0cnmhGvpX+VBwqqSkg==} + '@typescript-eslint/visitor-keys@8.17.0': + resolution: {integrity: sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@uiw/codemirror-theme-vscode@4.23.8': - resolution: {integrity: sha512-Gxa98stfYFWGgy3OW4KUUuLI13TSBEp7fY/SSxf6nYzIfwPSBdWP24mizrVgEucsbMw99IvqCP9Uja62Sn2jSw==} + '@uiw/codemirror-theme-vscode@4.23.6': + resolution: {integrity: sha512-xUo1ic+Kk5hnv5gy+cXU12GZVSnDjic8s8weKq8loPHF1dSR1e6gkKVIKZRnvoOZ302taKRk7phWpBUaWIuKQg==} - '@uiw/codemirror-themes@4.23.8': - resolution: {integrity: sha512-PZmJBZxWMuZ48p/2D5aRPl8zTlBq1d/+NeRqyyH6P6k6yWDF6h71m0Dt+fjslgPE7KmWXux2hbejXXXoRLZO9Q==} + '@uiw/codemirror-themes@4.23.6': + resolution: {integrity: sha512-0dpuLQW+V6zrKvfvor/eo71V3tpr2L2Hsu8QZAdtSzksjWABxTOzH3ShaBRxCEsrz6sU9sa9o7ShwBMMDz59bQ==} peerDependencies: '@codemirror/language': '>=6.0.0' '@codemirror/state': '>=6.0.0' '@codemirror/view': '>=6.0.0' - '@ungap/structured-clone@1.3.0': - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} '@unocss/astro@0.61.9': resolution: {integrity: sha512-adOXz4itYHxqhvQgJHlEU58EHDTtY2qrcEPVmQVk4qI1W+ezQV6nQMQvti8mS/HbFw3MOJhIY1MlJoZK36/cyw==} @@ -3077,11 +3327,11 @@ packages: peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 - '@vanilla-extract/babel-plugin-debug-ids@1.2.0': - resolution: {integrity: sha512-z5nx2QBnOhvmlmBKeRX5sPVLz437wV30u+GJL+Hzj1rGiJYVNvgIIlzUpRNjVQ0MgAgiQIqIUbqPnmMc6HmDlQ==} + '@vanilla-extract/babel-plugin-debug-ids@1.1.0': + resolution: {integrity: sha512-Zy9bKjaL2P5zsrFYQJ8IjWGlFODmZrpvFmjFE0Zv8om55Pz1JtpJtL6DvlxlWUxbVaP1HKCqsmEfFOZN8fX/ZQ==} - '@vanilla-extract/css@1.17.1': - resolution: {integrity: sha512-tOHQXHm10FrJeXKFeWE09JfDGN/tvV6mbjwoNB9k03u930Vg021vTnbrCwVLkECj9Zvh/SHLBHJ4r2flGqfovw==} + '@vanilla-extract/css@1.16.1': + resolution: {integrity: sha512-3jKxH5ty/ZjmGoLAx8liY7e87FRCIJfnuufX/K9fQklu0YHP3ClrNisU++LkZuD+GZleqMSAQMF0r8Otln+OPQ==} '@vanilla-extract/integration@6.5.0': resolution: {integrity: sha512-E2YcfO8vA+vs+ua+gpvy1HRqvgWbI+MTlUpxA8FvatOvybuNcWAY0CKwQ/Gpj7rswYKtC6C7+xw33emM6/ImdQ==} @@ -3095,11 +3345,11 @@ packages: peerDependencies: vite: ^4.2.0 || ^5.0.0 || ^6.0.0 - '@vitest/expect@2.1.9': - resolution: {integrity: sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw==} + '@vitest/expect@2.1.8': + resolution: {integrity: sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw==} - '@vitest/mocker@2.1.9': - resolution: {integrity: sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg==} + '@vitest/mocker@2.1.8': + resolution: {integrity: sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA==} peerDependencies: msw: ^2.4.9 vite: ^5.0.0 @@ -3109,20 +3359,20 @@ packages: vite: optional: true - '@vitest/pretty-format@2.1.9': - resolution: {integrity: sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==} + '@vitest/pretty-format@2.1.8': + resolution: {integrity: sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==} - '@vitest/runner@2.1.9': - resolution: {integrity: sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g==} + '@vitest/runner@2.1.8': + resolution: {integrity: sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg==} - '@vitest/snapshot@2.1.9': - resolution: {integrity: sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ==} + '@vitest/snapshot@2.1.8': + resolution: {integrity: sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg==} - '@vitest/spy@2.1.9': - resolution: {integrity: sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ==} + '@vitest/spy@2.1.8': + resolution: {integrity: sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg==} - '@vitest/utils@2.1.9': - resolution: {integrity: sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==} + '@vitest/utils@2.1.8': + resolution: {integrity: sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==} '@web3-storage/multipart-parser@1.0.0': resolution: {integrity: sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==} @@ -3130,6 +3380,10 @@ packages: '@webcontainer/api@1.3.0-internal.10': resolution: {integrity: sha512-iuqjuDX2uADiJMYZok7+tJqVCJYZ+tU2NwVtxlvakRWSSmIFBGrJ38pD0C5igaOnBV8C9kGDjCE6B03SvLtN4Q==} + '@xmldom/xmldom@0.8.10': + resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} + engines: {node: '>=10.0.0'} + '@xterm/addon-fit@0.10.0': resolution: {integrity: sha512-UFYkDm4HUahf2lnEyHvio51TNGiLK66mqP2JoATy7hRZeXaGMRDr00JiSF7m63vR5WKATF605yEggJKsw0JpMQ==} peerDependencies: @@ -3146,6 +3400,9 @@ packages: '@zxing/text-encoding@0.9.0': resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==} + abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} @@ -3159,10 +3416,6 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} - acorn-walk@8.3.4: resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} @@ -3172,16 +3425,24 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + agent-base@7.1.3: resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} + agentkeepalive@4.6.0: + resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} + engines: {node: '>= 8.0.0'} + aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - ai@4.1.34: - resolution: {integrity: sha512-9IB5duz6VbXvjibqNrvKz6++PwE8Ui5UfbOC9/CtcQN5Z9sudUQErss+maj7ptoPysD2NPjj99e0Hp183Cz5LQ==} + ai@4.1.2: + resolution: {integrity: sha512-11efhPorWFphIpeCgjW6r/jk4wB5RWUGjxayHblBXCq6YEc7o5ki7vlmSnESprsDkMEfmONBWb/xM8pWjR5O2g==} engines: {node: '>=18'} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc @@ -3192,9 +3453,25 @@ packages: zod: optional: true + ajv-formats@3.0.1: + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -3219,6 +3496,36 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + app-builder-bin@5.0.0-alpha.10: + resolution: {integrity: sha512-Ev4jj3D7Bo+O0GPD2NMvJl+PGiBAfS7pUGawntBNpCbxtpncfUixqFj9z9Jme7V7s3LBGqsWZZP54fxBX3JKJw==} + + app-builder-lib@25.1.8: + resolution: {integrity: sha512-pCqe7dfsQFBABC1jeKZXQWhGcCPF3rPCXDdfqVKjIeWBcXzyC1iOWZdfFhGl+S9MyE/k//DFmC6FzuGAUudNDg==} + engines: {node: '>=14.0.0'} + peerDependencies: + dmg-builder: 25.1.8 + electron-builder-squirrel-windows: 25.1.8 + + aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + + archiver-utils@2.1.0: + resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} + engines: {node: '>= 6'} + + archiver-utils@3.0.4: + resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==} + engines: {node: '>= 10'} + + archiver@5.3.2: + resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==} + engines: {node: '>= 10'} + + are-we-there-yet@3.0.1: + resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This package is no longer supported. + arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} @@ -3245,6 +3552,10 @@ packages: asn1.js@4.10.1: resolution: {integrity: sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==} + assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + assert@2.1.0: resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} @@ -3252,21 +3563,39 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} + astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + astring@1.9.0: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true + async-exit-hook@2.0.1: + resolution: {integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==} + engines: {node: '>=0.12.0'} + async-lock@1.4.1: resolution: {integrity: sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==} + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + atob@2.1.2: resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} engines: {node: '>= 4.5.0'} hasBin: true + atomically@2.0.3: + resolution: {integrity: sha512-kU6FmrwZ3Lx7/7y3hPS5QnbJfaohcIul5fGqf7ok+4KklIEk9tJ0C2IQPdacSbVUWv6zVHXEBWoWd6NrVMT7Cw==} + available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} @@ -3284,6 +3613,10 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + basic-auth@2.0.1: + resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} + engines: {node: '>= 0.8'} + before-after-hook@3.0.2: resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==} @@ -3301,6 +3634,12 @@ packages: blake3-wasm@2.1.5: resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} + bluebird-lst@1.0.9: + resolution: {integrity: sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==} + + bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + bn.js@4.12.1: resolution: {integrity: sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==} @@ -3311,6 +3650,10 @@ packages: resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + boolean@3.2.0: + resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + bowser@2.11.0: resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} @@ -3353,8 +3696,8 @@ packages: browserify-zlib@0.2.0: resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==} - browserslist@4.24.4: - resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} + browserslist@4.24.2: + resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -3366,6 +3709,9 @@ packages: buffer-builder@0.2.0: resolution: {integrity: sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==} + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -3375,11 +3721,18 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + builder-util-runtime@9.2.10: + resolution: {integrity: sha512-6p/gfG1RJSQeIbz8TK5aPNkoztgY1q5TgmGFMAXcY8itsGW6Y2ld1ALsZ5UJn8rog7hKF3zHx5iQbNQ8uLcRlw==} + engines: {node: '>=12.0.0'} + + builder-util@25.1.7: + resolution: {integrity: sha512-7jPjzBwEGRbwNcep0gGNpLXG9P94VA3CPAZQCzxkFXiV2GMQKlziMbY//rXPI7WKfhsvGgFXjTcXdBEwgXw9ww==} + builtin-status-codes@3.0.0: resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==} - bundle-require@5.1.0: - resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} + bundle-require@5.0.0: + resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: esbuild: '>=0.18' @@ -3392,33 +3745,40 @@ packages: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} + cacache@16.1.3: + resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + cacache@17.1.4: resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - call-bind-apply-helpers@1.0.1: - resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} - engines: {node: '>= 0.4'} + cacheable-lookup@5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} + cacheable-request@7.0.4: + resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} + engines: {node: '>=8'} - call-bound@1.0.3: - resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - caniuse-lite@1.0.30001699: - resolution: {integrity: sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==} + caniuse-lite@1.0.30001685: + resolution: {integrity: sha512-e/kJN1EMyHQzgcMEEgoo+YTCO1NGCmIYHk5Qk8jT6AazWemS5QFKJ5ShCJlH3GZrNIdZofcNCEwZqbMjjKzmnA==} canvg@3.0.10: resolution: {integrity: sha512-qwR2FRNO9NlzTeKIPIKpnTY6fqwuYSequ8Ru8c0YkYU7U0oW+hLUvWadLvAu1Rl72OMNiFhoLu4f8eUjQ7l/+Q==} engines: {node: '>=10.0.0'} + capnp-ts@0.7.0: + resolution: {integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==} + ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -3450,8 +3810,8 @@ packages: character-reference-invalid@2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - chart.js@4.4.7: - resolution: {integrity: sha512-pwkcKfdzTMAU/+jNosKhNL2bHtJc/sSmYgVbuGTEDhzkrhmyihmP7vUc/5ZK9WopidMDHNe3Wm7jOd/WhuHWuw==} + chart.js@4.4.8: + resolution: {integrity: sha512-IkGZlVpXP+83QpMm4uxEiGqSI7jFizwVtF3+n5Pc3k7sMO+tkd0qxh2OzLhenM0K80xtmAONWGBn082EiBQSDA==} engines: {pnpm: '>=8'} check-error@2.1.1: @@ -3462,6 +3822,10 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chokidar@4.0.1: + resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} + engines: {node: '>= 14.16.0'} + chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -3469,6 +3833,9 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} + chromium-pickle-js@0.2.0: + resolution: {integrity: sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==} + ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} @@ -3495,6 +3862,20 @@ packages: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} + cli-truncate@2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + + client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone-response@1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} @@ -3510,12 +3891,9 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - - color@4.2.3: - resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} - engines: {node: '>=12.5.0'} + color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} @@ -3530,23 +3908,58 @@ packages: comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + commander@5.1.0: + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + engines: {node: '>= 6'} + common-tags@1.8.2: resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} engines: {node: '>=4.0.0'} + compare-version@0.1.2: + resolution: {integrity: sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==} + engines: {node: '>=0.10.0'} + + compress-commons@4.1.2: + resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==} + engines: {node: '>= 10'} + + compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + + compression@1.8.0: + resolution: {integrity: sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==} + engines: {node: '>= 0.8.0'} + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + concurrently@8.2.2: + resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==} + engines: {node: ^14.13.0 || >=16.0.0} + hasBin: true + + conf@13.1.0: + resolution: {integrity: sha512-Bi6v586cy1CoTFViVO4lGTtx780lfF96fUmS1lSX6wpZf6330NvHUu6fReVuDP1de8Mg0nkZb01c8tAQdz1o3w==} + engines: {node: '>=18'} + confbox@0.1.8: resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - consola@3.4.0: - resolution: {integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==} + config-file-ts@0.2.8-rc1: + resolution: {integrity: sha512-GtNECbVI82bT4RiDIzBSVuTKoSHufnU7Ce7/42bkWZJZFLjmDF2WBpVsvRkhKCfKBnTBb3qZrBwPpFBU/Myvhg==} + + consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} console-browserify@1.2.0: resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==} + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + constants-browserify@1.0.0: resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==} @@ -3568,10 +3981,6 @@ packages: resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} engines: {node: '>=6.6.0'} - cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} - engines: {node: '>= 0.6'} - cookie@0.6.0: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} @@ -3580,8 +3989,15 @@ packages: resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} engines: {node: '>= 0.6'} - core-js@3.40.0: - resolution: {integrity: sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==} + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + + core-js@3.41.0: + resolution: {integrity: sha512-SJ4/EHwS36QMJd6h/Rg+GyR4A5xE0FSI3eZ+iBVpfqf1x0eTSg1smWLHrA+2jQThZSh97fmSgFSU8B61nxosxA==} + + core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -3591,6 +4007,13 @@ packages: engines: {node: '>=0.8'} hasBin: true + crc32-stream@4.0.3: + resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==} + engines: {node: '>= 10'} + + crc@3.8.0: + resolution: {integrity: sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==} + create-ecdh@4.0.4: resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} @@ -3606,6 +4029,11 @@ packages: crelt@1.0.6: resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} + cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} @@ -3658,9 +4086,20 @@ packages: resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} engines: {node: '>=18'} + date-fns@2.30.0: + resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} + engines: {node: '>=0.11'} + date-fns@3.6.0: resolution: {integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==} + date-fns@4.1.0: + resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} + + debounce-fn@6.0.0: + resolution: {integrity: sha512-rBMW+F2TXryBwB54Q0d8drNEI+TfoS9JpNTAoVpukbWEhjXQq4rySFYLaqXMFXwdv61Zb2OHtj5bviSoimqxRQ==} + engines: {node: '>=18'} + debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -3669,6 +4108,15 @@ packages: supports-color: optional: true + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + debug@4.4.0: resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} @@ -3713,6 +4161,10 @@ packages: defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -3728,6 +4180,9 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} @@ -3753,6 +4208,9 @@ packages: detect-node-es@1.1.0: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -3769,6 +4227,18 @@ packages: diffie-hellman@5.0.3: resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} + dir-compare@4.2.0: + resolution: {integrity: sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ==} + + dmg-builder@25.1.8: + resolution: {integrity: sha512-NoXo6Liy2heSklTI5OIZbCgXC1RzrDQsZkeEwXhdOro3FT1VBOvbubvscdPnjVuQ4AMwwv61oaH96AbiYg9EnQ==} + + dmg-license@1.0.11: + resolution: {integrity: sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==} + engines: {node: '>=8'} + os: [darwin] + hasBin: true + dnd-core@16.0.1: resolution: {integrity: sha512-HK294sl7tbw6F6IeuK16YSBUoorvHpY8RHO+9yFfaJyCDVb6n7PRcezrOEOa2SBCqiYpemh5Jx20ZcjKdFAVng==} @@ -3785,14 +4255,18 @@ packages: dompurify@2.5.8: resolution: {integrity: sha512-o1vSNgrmYMQObbSSvF/1brBYEQPHhV1+gsmrusO7/GXtp1T9rCS8cXFqVxK/9crT1jA6Ccv+5MTSjBNqr7Sovw==} + dot-prop@9.0.0: + resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} + engines: {node: '>=18'} + + dotenv-expand@11.0.7: + resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==} + engines: {node: '>=12'} + dotenv@16.4.7: resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} engines: {node: '>=12'} - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} @@ -3809,8 +4283,40 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.97: - resolution: {integrity: sha512-HKLtaH02augM7ZOdYRuO19rWDeY+QSJ1VxnXFa/XDFLf07HvM90pALIJFgrO+UVaajI3+aJMMpojoUTLZyQ7JQ==} + ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} + engines: {node: '>=0.10.0'} + hasBin: true + + electron-builder-squirrel-windows@25.1.8: + resolution: {integrity: sha512-2ntkJ+9+0GFP6nAISiMabKt6eqBB0kX1QqHNWFWAXgi0VULKGisM46luRFpIBiU3u/TDmhZMM8tzvo2Abn3ayg==} + + electron-builder@25.1.8: + resolution: {integrity: sha512-poRgAtUHHOnlzZnc9PK4nzG53xh74wj2Jy7jkTrqZ0MWPoHGh1M2+C//hGeYdA+4K8w4yiVCNYoLXF7ySj2Wig==} + engines: {node: '>=14.0.0'} + hasBin: true + + electron-log@5.3.0: + resolution: {integrity: sha512-ILgbh2k9IKbSaN8NAbQriVteEhmkdLo/e4J1dg+JIBTFzXS/kO8zNRZBh/4YPwIT/zeyxF1jP6Xz8GLsPE2IBQ==} + engines: {node: '>= 14'} + + electron-publish@25.1.7: + resolution: {integrity: sha512-+jbTkR9m39eDBMP4gfbqglDd6UvBC7RLh5Y0MhFSsc6UkGHj9Vj9TWobxevHYMMqmoujL11ZLjfPpMX+Pt6YEg==} + + electron-store@10.0.1: + resolution: {integrity: sha512-Ok0bF13WWdTzZi9rCtPN8wUfwx+yDMmV6PAnCMqjNRKEXHmklW/rV+6DofV/Vf5qoAh+Bl9Bj7dQ+0W+IL2psg==} + engines: {node: '>=20'} + + electron-to-chromium@1.5.68: + resolution: {integrity: sha512-FgMdJlma0OzUYlbrtZ4AeXjKxKPk6KT8WOP8BjcqxWtlg8qyJQjRzPJzUtUn5GBg1oQ26hFs7HOOHJMYiJRnvQ==} + + electron-updater@6.3.9: + resolution: {integrity: sha512-2PJNONi+iBidkoC5D1nzT9XqsE8Q1X28Fn6xRQhO3YX8qRRyJ3mkV4F1aQsuRnYPqq6Hw+E51y27W75WgDoofw==} + + electron@33.3.2: + resolution: {integrity: sha512-2pWr0frM9UrZGX1d7eoFdMROw10h2vXIWJmXdjwlKnSWWUm18GCrEOUeDUr+IMgz5EjO7JM7FQDHDMApeMgHyg==} + engines: {node: '>= 12.20.55'} + hasBin: true elliptic@6.6.1: resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} @@ -3832,6 +4338,9 @@ packages: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} + encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -3839,27 +4348,30 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + env-paths@3.0.0: + resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} es-errors@1.3.0: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-module-lexer@1.6.0: - resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} - - es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} + es6-error@4.1.1: + resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} esbuild-plugins-node-modules-polyfill@1.6.8: resolution: {integrity: sha512-bRB4qbgUDWrdY1eMk123KiaCSW9VzQ+QLZrmU7D//cCFkmksPd9mUMpmWoFK/rxjIeTfTSOpKCoGoimlvI+AWw==} @@ -3925,14 +4437,14 @@ packages: '@eslint/json': optional: true - eslint-plugin-jsonc@2.19.1: - resolution: {integrity: sha512-MmlAOaZK1+Lg7YoCZPGRjb88ZjT+ct/KTsvcsbZdBm+w8WMzGx+XEmexk0m40P1WV9G2rFV7X3klyRGRpFXEjA==} + eslint-plugin-jsonc@2.18.2: + resolution: {integrity: sha512-SDhJiSsWt3nItl/UuIv+ti4g3m4gpGkmnUJS9UWR3TrpyNsIcnJoBRD7Kof6cM4Rk3L0wrmY5Tm3z7ZPjR2uGg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' - eslint-plugin-prettier@5.2.3: - resolution: {integrity: sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==} + eslint-plugin-prettier@5.2.1: + resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' @@ -3957,8 +4469,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.20.1: - resolution: {integrity: sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g==} + eslint@9.16.0: + resolution: {integrity: sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -4064,15 +4576,24 @@ packages: resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==} engines: {node: '>=12.0.0'} - express@4.21.2: - resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} + exponential-backoff@3.1.1: + resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} + + express@4.21.1: + resolution: {integrity: sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==} engines: {node: '>= 0.10.0'} extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - fast-content-type-parse@2.0.1: - resolution: {integrity: sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q==} + extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + + extsprintf@1.4.1: + resolution: {integrity: sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==} + engines: {'0': node >=0.6.0} fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -4080,8 +4601,8 @@ packages: fast-diff@1.3.0: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} fast-json-stable-stringify@2.1.0: @@ -4090,16 +4611,22 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-uri@3.0.6: + resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + fast-xml-parser@4.4.1: resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==} hasBin: true - fastq@1.19.0: - resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==} + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} fault@2.0.1: resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + fetch-blob@3.2.0: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} @@ -4114,6 +4641,9 @@ packages: file-saver@2.0.5: resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==} + filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -4133,16 +4663,15 @@ packages: flatted@3.3.2: resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} - for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} foreground-child@3.3.0: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} - form-data@4.0.2: - resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} engines: {node: '>= 6'} format@0.2.2: @@ -4157,12 +4686,12 @@ packages: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} - framer-motion@11.18.2: - resolution: {integrity: sha512-5F5Och7wrvtLVElIpclDT0CBzMVg3dL22B64aZwHtsIY8RB4mXICLrkajK4G9R+ieSAGcgrLeae2SeUTg2pr6w==} + framer-motion@11.12.0: + resolution: {integrity: sha512-gZaZeqFM6pX9kMVti60hYAa75jGpSsGYWAHbBfIkuHN7DkVHVkxSxeNYnrGmHuM0zPkWTzQx10ZT+fDjn7N4SA==} peerDependencies: '@emotion/is-prop-valid': '*' - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 + react: ^18.0.0 + react-dom: ^18.0.0 peerDependenciesMeta: '@emotion/is-prop-valid': optional: true @@ -4182,6 +4711,18 @@ packages: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} + fs-extra@11.3.0: + resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} + engines: {node: '>=14.14'} + + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + fs-minipass@2.1.0: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} @@ -4190,6 +4731,9 @@ packages: resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -4198,6 +4742,11 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + gauge@4.0.4: + resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This package is no longer supported. + generic-names@4.0.0: resolution: {integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==} @@ -4205,8 +4754,12 @@ packages: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} - get-intrinsic@1.2.7: - resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} get-nonce@1.0.1: @@ -4217,19 +4770,19 @@ packages: resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} engines: {node: '>=8'} - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - get-source@2.0.12: resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - get-tsconfig@4.10.0: - resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} + get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} @@ -4246,6 +4799,23 @@ packages: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + deprecated: Glob versions prior to v9 are no longer supported + + glob@9.3.5: + resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} + engines: {node: '>=16 || 14 >=14.17'} + + global-agent@3.0.0: + resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} + engines: {node: '>=10.0'} + globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -4254,17 +4824,25 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@15.14.0: - resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==} + globals@15.13.0: + resolution: {integrity: sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==} engines: {node: '>=18'} + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + globrex@0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + gopd@1.1.0: + resolution: {integrity: sha512-FQoVQnqcdk4hVM4JN1eromaun4iuS34oStkdlLENLdpULsuQcTyXj8w7ayhuUfPwEYZ1ZOooOTT6fdA9Vmx/RA==} engines: {node: '>= 0.4'} + got@11.8.6: + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} + graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -4286,6 +4864,10 @@ packages: has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + has-proto@1.1.0: + resolution: {integrity: sha512-QLdzI9IIO1Jg7f9GT1gXpPpXArAn6cS31R1eEZqz08Gc+uQ8/XiqHWt17Fiw+2p6oTTIq5GXEpQkAlA88YRl/Q==} + engines: {node: '>= 0.4'} + has-symbols@1.1.0: resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} @@ -4294,6 +4876,9 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} + has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + hash-base@3.0.5: resolution: {integrity: sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==} engines: {node: '>= 0.10'} @@ -4320,8 +4905,8 @@ packages: hast-util-to-estree@2.3.3: resolution: {integrity: sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==} - hast-util-to-html@9.0.4: - resolution: {integrity: sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==} + hast-util-to-html@9.0.3: + resolution: {integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==} hast-util-to-jsx-runtime@2.3.2: resolution: {integrity: sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==} @@ -4344,6 +4929,10 @@ packages: hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + hosted-git-info@6.1.3: resolution: {integrity: sha512-HVJyzUrLIL1c0QmviVh5E8VGyUS7xCFPS6yydaVd1UegW+ibV/CohqTH9MkOLDp5o+rb82DMo77PTuc9F/8GKw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -4362,17 +4951,32 @@ packages: resolution: {integrity: sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==} engines: {node: '>=8.0.0'} + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + http-errors@2.0.0: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} + http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} + http2-wrapper@1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} + https-browserify@1.0.0: resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + https-proxy-agent@7.0.6: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} @@ -4381,11 +4985,19 @@ packages: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + husky@9.1.7: resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} engines: {node: '>=18'} hasBin: true + iconv-corefoundation@1.1.7: + resolution: {integrity: sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==} + engines: {node: ^8.11.2 || >=10} + os: [darwin] + iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -4417,8 +5029,8 @@ packages: immutable@5.0.3: resolution: {integrity: sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==} - import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} importx@0.4.4: @@ -4432,6 +5044,13 @@ packages: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} + infer-owner@1.0.4: + resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -4441,6 +5060,13 @@ packages: inline-style-parser@0.2.4: resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} + invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + + ip-address@9.0.5: + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} + engines: {node: '>= 12'} + ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} @@ -4451,13 +5077,10 @@ packages: is-alphanumerical@2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - is-arguments@1.2.0: - resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} + is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} - is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} @@ -4474,8 +5097,8 @@ packages: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} engines: {node: '>= 0.4'} is-decimal@2.0.1: @@ -4492,8 +5115,8 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-generator-function@1.1.0: - resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} + is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} engines: {node: '>= 0.4'} is-glob@4.0.3: @@ -4511,6 +5134,9 @@ packages: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} + is-lambda@1.0.1: + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + is-nan@1.3.2: resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} engines: {node: '>= 0.4'} @@ -4533,16 +5159,12 @@ packages: is-reference@3.0.3: resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} - is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - engines: {node: '>= 0.4'} - is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} is-unicode-supported@0.1.0: @@ -4552,6 +5174,14 @@ packages: isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + isbinaryfile@4.0.10: + resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} + engines: {node: '>= 8.0.0'} + + isbinaryfile@5.0.4: + resolution: {integrity: sha512-YKBKVkKhty7s8rxddb40oOkuP0NbaeXrQvLin6QMHL7Ypiy2RW9LwOVrVgZRyOrhQlayMd9t+D8yDy8MKFTSDQ==} + engines: {node: '>= 18.0.0'} + isbot@4.4.0: resolution: {integrity: sha512-8ZvOWUA68kyJO4hHJdWjyreq7TYNWTS9y15IzeqVdKxR9pPr3P/3r9AHcoIv9M0Rllkao5qWz2v1lmcyKIVCzQ==} engines: {node: '>=18'} @@ -4559,8 +5189,8 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - isomorphic-git@1.29.0: - resolution: {integrity: sha512-zWGqk8901cicvVEhVpN76AwKrS/TzHak2NQCtNXIAavpMIy/yqh+d/JtC9A8AUKZAauUdOyEWKI29tuCLAL+Zg==} + isomorphic-git@1.27.2: + resolution: {integrity: sha512-nCiz+ieOkWb5kDJSSckDTiMjTcgkxqH2xuiQmw1Y6O/spwx4d6TKYSfGCd4f71HGvUYcRSUGqJEI+3uN6UQlOw==} engines: {node: '>=12'} hasBin: true @@ -4572,14 +5202,22 @@ packages: resolution: {integrity: sha512-5mbUj3SiZXCuRf9fT3ibzbSSEWiy63gFfksmGfdOzujPjW3k+z8WvIBxcJHBoQNlaZaiyB25deviif2+osLmLw==} engines: {node: '>=4'} + itty-time@1.0.6: + resolution: {integrity: sha512-+P8IZaLLBtFv8hCkIjcymZOp4UJ+xW6bSlQsXGqrkmJh7vSiMFSlNne0mCYagEE0N7HDNR5jJBRxwN0oYv61Rw==} + jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jake@10.9.2: + resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} + engines: {node: '>=10'} + hasBin: true + javascript-stringify@2.1.0: resolution: {integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==} - jiti@1.21.7: - resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} + jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true jiti@2.0.0-beta.3: @@ -4600,6 +5238,9 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true + jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + jsdom@26.0.0: resolution: {integrity: sha512-BZYDGVAIriBWTpIxYzrXjv3E/4u8+/pSG5bQdIYCbNCGOvsPkDQfTVLAIXAf9ETdCpduCVTkDe2NNZ8NIwUVzw==} engines: {node: '>=18'} @@ -4624,12 +5265,21 @@ packages: json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-schema-typed@8.0.1: + resolution: {integrity: sha512-XQmWYj2Sm4kn4WeTYvmpKEbyPsL7nBsb647c7pMe6l02/yx2+Jfc4dT6UZkEXnIUb5LhD55r2HPsJ1milQ4rDg==} + json-schema@0.4.0: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -4644,6 +5294,9 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} hasBin: true + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} @@ -4663,6 +5316,13 @@ packages: kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + lazy-val@1.0.5: + resolution: {integrity: sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==} + + lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -4670,8 +5330,8 @@ packages: lie@3.3.0: resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} - lilconfig@3.1.3: - resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} engines: {node: '>=14'} load-tsconfig@0.2.5: @@ -4686,10 +5346,6 @@ packages: resolution: {integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==} engines: {node: '>=14'} - local-pkg@1.0.0: - resolution: {integrity: sha512-bbgPw/wmroJsil/GgL4qjDzs5YLTBMQ99weRsok1XCDccQeehbHA/I1oRvk2NPtr7KGZgT/Y5tPRnAtMqeG2Kg==} - engines: {node: '>=14'} - locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -4700,9 +5356,31 @@ packages: lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + lodash.defaults@4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + + lodash.difference@4.5.0: + resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} + + lodash.escaperegexp@4.1.2: + resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} + + lodash.flatten@4.4.0: + resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} + + lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.union@4.6.0: + resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} + lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -4717,8 +5395,12 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - loupe@3.1.3: - resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} + loupe@3.1.2: + resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} + + lowercase-keys@2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} @@ -4726,6 +5408,10 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} @@ -4737,8 +5423,12 @@ packages: magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - magic-string@0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + magic-string@0.30.14: + resolution: {integrity: sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==} + + make-fetch-happen@10.2.1: + resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} markdown-extensions@1.1.1: resolution: {integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==} @@ -4747,9 +5437,9 @@ packages: markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} + matcher@3.0.0: + resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} + engines: {node: '>=10'} md5.js@1.3.5: resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} @@ -4757,8 +5447,8 @@ packages: mdast-util-definitions@5.1.2: resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==} - mdast-util-find-and-replace@3.0.2: - resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} mdast-util-from-markdown@1.3.1: resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} @@ -4772,8 +5462,8 @@ packages: mdast-util-gfm-autolink-literal@2.0.1: resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} - mdast-util-gfm-footnote@2.1.0: - resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} mdast-util-gfm-strikethrough@2.0.0: resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} @@ -4784,8 +5474,8 @@ packages: mdast-util-gfm-task-list-item@2.0.0: resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} - mdast-util-gfm@3.1.0: - resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} mdast-util-mdx-expression@1.3.2: resolution: {integrity: sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==} @@ -4796,8 +5486,8 @@ packages: mdast-util-mdx-jsx@2.1.4: resolution: {integrity: sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA==} - mdast-util-mdx-jsx@3.2.0: - resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} + mdast-util-mdx-jsx@3.1.3: + resolution: {integrity: sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==} mdast-util-mdx@2.0.1: resolution: {integrity: sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw==} @@ -4877,8 +5567,8 @@ packages: micromark-extension-gfm-strikethrough@2.1.0: resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} - micromark-extension-gfm-table@2.1.1: - resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + micromark-extension-gfm-table@2.1.0: + resolution: {integrity: sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==} micromark-extension-gfm-tagfilter@2.0.0: resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} @@ -5009,8 +5699,8 @@ packages: micromark-util-subtokenize@1.1.0: resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} - micromark-util-subtokenize@2.0.4: - resolution: {integrity: sha512-N6hXjrin2GTJDe3MVjf5FuXpm12PGm80BrUAeub9XFXca8JZbP+oIwY4LJSVwFUCL1IPm/WwSVUN7goFHmSGGQ==} + micromark-util-subtokenize@2.0.3: + resolution: {integrity: sha512-VXJJuNxYWSoYL6AJ6OQECCFGhIU2GGHMw8tahogePBrjkG8aCCas3ibkp7RnVOSTClg2is05/R7maAhF1XyQMg==} micromark-util-symbol@1.1.0: resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} @@ -5061,10 +5751,23 @@ packages: engines: {node: '>=10.0.0'} hasBin: true + mime@4.0.6: + resolution: {integrity: sha512-4rGt7rvQHBbaSOF9POGkk1ocRP16Md1x36Xma8sz8h8/vfCUI2OtEIeCqe4Ofes853x4xDoPiFLIT47J5fI/7A==} + engines: {node: '>=16'} + hasBin: true + mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + + mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} @@ -5073,8 +5776,8 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - miniflare@3.20250204.0: - resolution: {integrity: sha512-f7tezEkOvVRVHIVul2EbTyKvWJCXpTDRAOxTxtD4N92+YI8PC2P8AvO4Z30vlN61r5Pje33fTBG8G1fEwSZIqQ==} + miniflare@3.20241106.1: + resolution: {integrity: sha512-dM3RBlJE8rUFxnqlPCaFCq0E7qQqEQvKbYX7W/APGCK+rLcyLmEBzC4GQR/niXdNM/oV6gdg9AA50ghnn2ALuw==} engines: {node: '>=16.13'} hasBin: true @@ -5084,9 +5787,21 @@ packages: minimalistic-crypto-utils@1.0.1: resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + minimatch@10.0.1: + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} + engines: {node: 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + minimatch@8.0.4: + resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==} + engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -5101,6 +5816,10 @@ packages: resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} engines: {node: '>= 8'} + minipass-fetch@2.1.2: + resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + minipass-flush@1.0.5: resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} engines: {node: '>= 8'} @@ -5109,10 +5828,18 @@ packages: resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} engines: {node: '>=8'} + minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} + minipass@3.3.6: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} + minipass@4.2.8: + resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} + engines: {node: '>=8'} + minipass@5.0.0: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} @@ -5133,17 +5860,15 @@ packages: engines: {node: '>=10'} hasBin: true - mlly@1.7.4: - resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} + mlly@1.7.3: + resolution: {integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==} modern-ahocorasick@1.1.0: resolution: {integrity: sha512-sEKPVl2rM+MNVkGQt3ChdmD8YsigmXdn5NifZn6jiwn9LRJpWm8F3guhaqrJT/JOat6pwpbXEk6kv+b9DMIjsQ==} - motion-dom@11.18.1: - resolution: {integrity: sha512-g76KvA001z+atjfxczdRtw/RXOM3OMSdd1f4DL77qCTF/+avrRJiawSG4yDibEQ215sr9kpinSlX2pCTJ9zbhw==} - - motion-utils@11.18.1: - resolution: {integrity: sha512-49Kt+HKjtbJKLtgO/LKj9Ld+6vw9BjH5d9sc40R/kVyH8GLAXgT42M2NnuPcJNuA3s9ZfZBUcwIgpmZWGEE+hA==} + morgan@1.10.0: + resolution: {integrity: sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==} + engines: {node: '>= 0.8.0'} mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} @@ -5188,24 +5913,52 @@ packages: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} + negotiator@0.6.4: + resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} + engines: {node: '>= 0.6'} + + node-abi@3.74.0: + resolution: {integrity: sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==} + engines: {node: '>=10'} + + node-addon-api@1.7.2: + resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} + + node-api-version@0.2.0: + resolution: {integrity: sha512-fthTTsi8CxaBXMaBAD7ST2uylwvsnYxh2PfaScwpMhos6KlSFajXQPcM4ogNE1q2s3Lbz9GCGqeIHC+C6OZnKg==} + node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} - node-fetch-native@1.6.6: - resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==} + node-fetch-native@1.6.4: + resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} node-fetch@3.3.2: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} - node-stdlib-browser@1.3.1: - resolution: {integrity: sha512-X75ZN8DCLftGM5iKwoYLA3rjnrAEs97MkzvSd4q2746Tgpg8b8XWiBGiBG4ZpgcAqBgtgPHTiAc8ZMCvZuikDw==} + node-gyp@9.4.1: + resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==} + engines: {node: ^12.13 || ^14.13 || >=16} + hasBin: true + + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + + node-stdlib-browser@1.3.0: + resolution: {integrity: sha512-g/koYzOr9Fb1Jc+tHUHlFd5gODjGn48tHexUK8q6iqOVriEgSnd3/1T7myBYc+0KBVze/7F7n65ec9rW6OD7xw==} engines: {node: '>=10'} + nopt@6.0.0: + resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + hasBin: true + normalize-package-data@5.0.0: resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -5214,6 +5967,10 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + npm-install-checks@6.3.0: resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -5234,15 +5991,20 @@ packages: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} - nwsapi@2.2.16: - resolution: {integrity: sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==} + npmlog@6.0.2: + resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This package is no longer supported. + + nwsapi@2.2.18: + resolution: {integrity: sha512-p1TRH/edngVEHVbwqWnxUViEmq5znDvyB+Sik5cmuLpGOIfDf/39zLiq3swPF8Vakqn+gvNiOQAZu8djYlQILA==} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-inspect@1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} engines: {node: '>= 0.4'} object-is@1.1.6: @@ -5253,8 +6015,8 @@ packages: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} ofetch@1.4.1: @@ -5272,10 +6034,18 @@ packages: zod: optional: true + on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} + on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} + on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -5283,8 +6053,8 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - oniguruma-to-es@2.3.0: - resolution: {integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==} + oniguruma-to-es@0.7.0: + resolution: {integrity: sha512-HRaRh09cE0gRS3+wi2zxekB+I5L8C/gN60S+vb11eADHUaB/q4u8wGGOX3GvwvitG8ixaeycZfeoyruKQzUgNg==} optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} @@ -5300,6 +6070,10 @@ packages: outdent@0.8.0: resolution: {integrity: sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==} + p-cancelable@2.1.1: + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} + p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} @@ -5315,8 +6089,8 @@ packages: package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - package-manager-detector@0.2.9: - resolution: {integrity: sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==} + package-manager-detector@0.2.6: + resolution: {integrity: sha512-9vPH3qooBlYRJdmdYP00nvjZOulm40r5dhtal8st18ctf+6S1k7pi5yIHLvI4w5D70x0Y+xdVD9qITH0QO/A8A==} pako@0.2.9: resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} @@ -5332,8 +6106,8 @@ packages: resolution: {integrity: sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==} engines: {node: '>= 0.10'} - parse-entities@4.0.2: - resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} + parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} parse-ms@2.1.0: resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} @@ -5356,6 +6130,10 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -5367,8 +6145,8 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-to-regexp@0.1.12: - resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} + path-to-regexp@0.1.10: + resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} path-to-regexp@6.3.0: resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} @@ -5376,9 +6154,6 @@ packages: pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - pathe@2.0.2: - resolution: {integrity: sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==} - pathval@2.0.0: resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} engines: {node: '>= 14.16'} @@ -5387,9 +6162,16 @@ packages: resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} engines: {node: '>=0.12'} + pe-library@0.4.1: + resolution: {integrity: sha512-eRWB5LBz7PpDu4PUlwT0PhnQfTQJlDDdPa35urV4Osrm0t0AqQFGn+UIkU3klZvwJ8KPO3VbBFsXquA6p6kqZw==} + engines: {node: '>=12', npm: '>=6'} + peek-stream@1.1.3: resolution: {integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==} + pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + perfect-debounce@1.0.0: resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} @@ -5423,16 +6205,20 @@ packages: resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} engines: {node: '>=10'} - pkg-types@1.3.1: - resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + pkg-types@1.2.1: + resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} - pnpm@9.15.5: - resolution: {integrity: sha512-hFGWAmqrHMPwmKBHS2TfurKv56G06R3YaJXY5Koyp6bQMEni0K13C75N4COnEi+2jBodbg0DPHB2CF+dXUgA1A==} + plist@3.1.0: + resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==} + engines: {node: '>=10.4.0'} + + pnpm@9.14.4: + resolution: {integrity: sha512-yBgLP75OS8oCyUI0cXiWtVKXQKbLrfGfp4JUJwQD6i8n1OHUagig9WyJtj3I6/0+5TMm2nICc3lOYgD88NGEqw==} engines: {node: '>=18.12'} hasBin: true - possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} postcss-discard-duplicates@5.1.0: @@ -5459,8 +6245,8 @@ packages: peerDependencies: postcss: ^8.1.0 - postcss-modules-local-by-default@4.2.0: - resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==} + postcss-modules-local-by-default@4.1.0: + resolution: {integrity: sha512-rm0bdSv4jC3BDma3s9H19ZddW0aHX6EoqwDYU2IfZhRN+53QrufTRo2IdkAbRqLx4R2IYbZnbjKKxg4VN5oU9Q==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 @@ -5482,15 +6268,15 @@ packages: peerDependencies: postcss: ^8.0.0 - postcss-selector-parser@7.1.0: - resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} + postcss-selector-parser@7.0.0: + resolution: {integrity: sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==} engines: {node: '>=4'} postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.5.2: - resolution: {integrity: sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==} + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: @@ -5506,8 +6292,8 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - prettier@3.5.0: - resolution: {integrity: sha512-quyMrVt6svPS7CjQ9gKb3GLEX/rl3BCL2oa/QkNcXv4YNVBC9olt3s+H7ukto06q7B1Qz46PbrKLO34PR6vXcA==} + prettier@3.4.1: + resolution: {integrity: sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==} engines: {node: '>=14'} hasBin: true @@ -5533,6 +6319,10 @@ packages: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} + progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + promise-inflight@1.0.1: resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} peerDependencies: @@ -5578,8 +6368,8 @@ packages: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} - qs@6.14.0: - resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} + qs@6.13.1: + resolution: {integrity: sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==} engines: {node: '>=0.6'} querystring-es3@0.2.1: @@ -5589,6 +6379,10 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + raf-schd@4.0.3: resolution: {integrity: sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==} @@ -5651,8 +6445,8 @@ packages: react: '>=16.8.1' react-dom: '>=16.8.1' - react-icons@5.4.0: - resolution: {integrity: sha512-7eltJxgVt7X64oHh6wSWNwwbKTCtMfK35hcjvJS0yxEAhPM8oUKdS3+kqaW1vicIltw+kR2unHaa12S9pPALoQ==} + react-icons@5.5.0: + resolution: {integrity: sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==} peerDependencies: react: '*' @@ -5662,8 +6456,8 @@ packages: react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - react-markdown@9.0.3: - resolution: {integrity: sha512-Yk7Z94dbgYTOrdk41Z74GoKA7rThnsbbqBTRYuxoe08qvfQ9tJVhmAKw6BJS/ZORG7kTy/s1QvYzSuaoBA1qfw==} + react-markdown@9.0.1: + resolution: {integrity: sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==} peerDependencies: '@types/react': '>=18' react: '>=18' @@ -5684,6 +6478,16 @@ packages: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} + react-remove-scroll-bar@2.3.6: + resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + react-remove-scroll-bar@2.3.8: resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} engines: {node: '>=10'} @@ -5694,6 +6498,16 @@ packages: '@types/react': optional: true + react-remove-scroll@2.6.0: + resolution: {integrity: sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + react-remove-scroll@2.6.3: resolution: {integrity: sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==} engines: {node: '>=10'} @@ -5710,19 +6524,29 @@ packages: react: ^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc react-dom: ^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - react-router-dom@6.29.0: - resolution: {integrity: sha512-pkEbJPATRJ2iotK+wUwHfy0xs2T59YPEN8BQxVCPeBZvK7kfPESRc/nyxzdcxR17hXgUPYx2whMwl+eo9cUdnQ==} + react-router-dom@6.30.0: + resolution: {integrity: sha512-x30B78HV5tFk8ex0ITwzC9TTZMua4jGyA9IUlH1JLQYQTFyxr/ZxwOJq7evg1JX1qGVUcvhsmQSKdPncQrjTgA==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' - react-router@6.29.0: - resolution: {integrity: sha512-DXZJoE0q+KyeVw75Ck6GkPxFak63C4fGqZGNijnWgzB/HzSP1ZfTlBj5COaGWwhrMQ/R8bXiq5Ooy4KG+ReyjQ==} + react-router@6.30.0: + resolution: {integrity: sha512-D3X8FyH9nBcTSHGdEKurK7r8OYE1kKFn3d/CF+CoxbSHkxU7o37+Uh7eAHRXr6k2tSExXYO++07PeXJtA/dEhQ==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' + react-style-singleton@2.2.1: + resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + react-style-singleton@2.2.3: resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} engines: {node: '>=10'} @@ -5743,6 +6567,10 @@ packages: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} + read-binary-file-arch@1.0.6: + resolution: {integrity: sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==} + hasBin: true + readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -5750,10 +6578,17 @@ packages: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} + readdir-glob@1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + readdirp@4.0.2: + resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} + engines: {node: '>= 14.16.0'} + redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} @@ -5767,14 +6602,14 @@ packages: regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regex-recursion@5.1.1: - resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==} + regex-recursion@4.3.0: + resolution: {integrity: sha512-5LcLnizwjcQ2ALfOj95MjcatxyqF5RPySx9yT+PaXu3Gox2vyAtLDjHB8NTJLtMGkvyau6nI3CfpwFCjPUIs/A==} regex-utilities@2.3.0: resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} - regex@5.1.1: - resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} + regex@5.0.2: + resolution: {integrity: sha512-/pczGbKIQgfTMRV0XjABvc5RzLqQmwqxLHdQao2RTXPk+pmTXB2P0IaUHYdYyk412YLwUIkaeMd5T+RzVgTqnQ==} rehype-raw@7.0.0: resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} @@ -5785,8 +6620,8 @@ packages: remark-frontmatter@4.0.1: resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==} - remark-gfm@4.0.1: - resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} + remark-gfm@4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} remark-mdx-frontmatter@1.1.1: resolution: {integrity: sha512-7teX9DW4tI2WZkXS4DBxneYSY7NHiXl4AKdWDO9LXVweULlCT8OPWsOjLEnMIXViN1j+QcY8mfbq3k0EK6x3uA==} @@ -5851,9 +6686,24 @@ packages: zod: optional: true + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + require-like@0.1.2: resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==} + resedit@1.7.2: + resolution: {integrity: sha512-vHjcY2MlAITJhC0eRD/Vv8Vlgmu9Sd3LX9zZvtGzU5ZImdTN3+d6e/4mnTyV8vEbyf1sgNIrWxhWlrys52OkEA==} + engines: {node: '>=12', npm: '>=6'} + + resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -5865,11 +6715,13 @@ packages: resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} engines: {node: '>=10'} - resolve@1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} - engines: {node: '>= 0.4'} + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true + responselike@2.0.1: + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} @@ -5886,15 +6738,22 @@ packages: resolution: {integrity: sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==} engines: {node: '>= 0.8.15'} + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rimraf@4.4.1: + resolution: {integrity: sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==} + engines: {node: '>=14'} + hasBin: true + ripemd160@2.0.2: resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} - rollup-plugin-dts@5.3.1: - resolution: {integrity: sha512-gusMi+Z4gY/JaEQeXnB0RUdU82h1kF0WYzCWgVmV4p3hWXqelaKuCvcJawfeg+EKn2T1Ie+YWF2OiN1/L8bTVg==} - engines: {node: '>=v14.21.3'} - peerDependencies: - rollup: ^3.0 - typescript: ^4.1 || ^5.0 + roarr@2.15.4: + resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} + engines: {node: '>=8.0'} rollup-plugin-inject@3.0.2: resolution: {integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==} @@ -5906,13 +6765,8 @@ packages: rollup-pluginutils@2.8.2: resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} - rollup@3.29.5: - resolution: {integrity: sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - - rollup@4.34.6: - resolution: {integrity: sha512-wc2cBWqJgkU3Iz5oztRkQbfVkbxoz5EhnCGOrnJvnLnQ7O0WhQUYyv18qQI79O8L7DdHrrlJNeCHd4VGpnaXKQ==} + rollup@4.28.0: + resolution: {integrity: sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -5935,138 +6789,140 @@ packages: safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} - safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass-embedded-android-arm64@1.83.4: - resolution: {integrity: sha512-tgX4FzmbVqnQmD67ZxQDvI+qFNABrboOQgwsG05E5bA/US42zGajW9AxpECJYiMXVOHmg+d81ICbjb0fsVHskw==} + sanitize-filename@1.6.3: + resolution: {integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==} + + sass-embedded-android-arm64@1.81.0: + resolution: {integrity: sha512-I36P77/PKAHx6sqOmexO2iEY5kpsmQ1VxcgITZSOxPMQhdB6m4t3bTabfDuWQQmCrqqiNFtLQHeytB65bUqwiw==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [android] - sass-embedded-android-arm@1.83.4: - resolution: {integrity: sha512-9Z4pJAOgEkXa3VDY/o+U6l5XvV0mZTJcSl0l/mSPHihjAHSpLYnOW6+KOWeM8dxqrsqTYcd6COzhanI/a++5Gw==} + sass-embedded-android-arm@1.81.0: + resolution: {integrity: sha512-NWEmIuaIEsGFNsIRa+5JpIpPJyZ32H15E85CNZqEIhhwWlk9UNw7vlOCmTH8MtabtnACwC/2NG8VyNa3nxKzUQ==} engines: {node: '>=14.0.0'} cpu: [arm] os: [android] - sass-embedded-android-ia32@1.83.4: - resolution: {integrity: sha512-RsFOziFqPcfZXdFRULC4Ayzy9aK6R6FwQ411broCjlOBX+b0gurjRadkue3cfUEUR5mmy0KeCbp7zVKPLTK+5Q==} + sass-embedded-android-ia32@1.81.0: + resolution: {integrity: sha512-k8V1usXw30w1GVxvrteG1RzgYJzYQ9PfL2aeOqGdroBN7zYTD9VGJXTGcxA4IeeRxmRd7szVW2mKXXS472fh8g==} engines: {node: '>=14.0.0'} cpu: [ia32] os: [android] - sass-embedded-android-riscv64@1.83.4: - resolution: {integrity: sha512-EHwh0nmQarBBrMRU928eTZkFGx19k/XW2YwbPR4gBVdWLkbTgCA5aGe8hTE6/1zStyx++3nDGvTZ78+b/VvvLg==} + sass-embedded-android-riscv64@1.81.0: + resolution: {integrity: sha512-RXlanyLXEpN/DEehXgLuKPsqT//GYlsGFxKXgRiCc8hIPAueFLQXKJmLWlL3BEtHgmFdbsStIu4aZCcb1hOFlQ==} engines: {node: '>=14.0.0'} cpu: [riscv64] os: [android] - sass-embedded-android-x64@1.83.4: - resolution: {integrity: sha512-0PgQNuPWYy1jEOEPDVsV89KfqOsMLIp9CSbjBY7jRcwRhyVAcigqrUG6bDeNtojHUYKA1kU+Eh/85WxOHUOgBw==} + sass-embedded-android-x64@1.81.0: + resolution: {integrity: sha512-RQG0FxGQ1DERNyUDED8+BDVaLIjI+BNg8lVcyqlLZUrWY6NhzjwYEeiN/DNZmMmHtqDucAPNDcsdVUNQqsBy2A==} engines: {node: '>=14.0.0'} cpu: [x64] os: [android] - sass-embedded-darwin-arm64@1.83.4: - resolution: {integrity: sha512-rp2ywymWc3nymnSnAFG5R/8hvxWCsuhK3wOnD10IDlmNB7o4rzKby1c+2ZfpQGowlYGWsWWTgz8FW2qzmZsQRw==} + sass-embedded-darwin-arm64@1.81.0: + resolution: {integrity: sha512-gLKbsfII9Ppua76N41ODFnKGutla9qv0OGAas8gxe0jYBeAQFi/1iKQYdNtQtKi4mA9n5TQTqz+HHCKszZCoyA==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [darwin] - sass-embedded-darwin-x64@1.83.4: - resolution: {integrity: sha512-kLkN2lXz9PCgGfDS8Ev5YVcl/V2173L6379en/CaFuJJi7WiyPgBymW7hOmfCt4uO4R1y7CP2Uc08DRtZsBlAA==} + sass-embedded-darwin-x64@1.81.0: + resolution: {integrity: sha512-7uMOlT9hD2KUJCbTN2XcfghDxt/rc50ujjfSjSHjX1SYj7mGplkINUXvVbbvvaV2wt6t9vkGkCo5qNbeBhfwBg==} engines: {node: '>=14.0.0'} cpu: [x64] os: [darwin] - sass-embedded-linux-arm64@1.83.4: - resolution: {integrity: sha512-E0zjsZX2HgESwyqw31EHtI39DKa7RgK7nvIhIRco1d0QEw227WnoR9pjH3M/ZQy4gQj3GKilOFHM5Krs/omeIA==} + sass-embedded-linux-arm64@1.81.0: + resolution: {integrity: sha512-jy4bvhdUmqbyw1jv1f3Uxl+MF8EU/Y/GDx4w6XPJm4Ds+mwH/TwnyAwsxxoBhWfnBnW8q2ADy039DlS5p+9csQ==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [linux] - sass-embedded-linux-arm@1.83.4: - resolution: {integrity: sha512-nL90ryxX2lNmFucr9jYUyHHx21AoAgdCL1O5Ltx2rKg2xTdytAGHYo2MT5S0LIeKLa/yKP/hjuSvrbICYNDvtA==} + sass-embedded-linux-arm@1.81.0: + resolution: {integrity: sha512-REqR9qM4RchCE3cKqzRy9Q4zigIV82SbSpCi/O4O3oK3pg2I1z7vkb3TiJsivusG/li7aqKZGmYOtAXjruGQDA==} engines: {node: '>=14.0.0'} cpu: [arm] os: [linux] - sass-embedded-linux-ia32@1.83.4: - resolution: {integrity: sha512-ew5HpchSzgAYbQoriRh8QhlWn5Kw2nQ2jHoV9YLwGKe3fwwOWA0KDedssvDv7FWnY/FCqXyymhLd6Bxae4Xquw==} + sass-embedded-linux-ia32@1.81.0: + resolution: {integrity: sha512-ga/Jk4q5Bn1aC+iHJteDZuLSKnmBUiS3dEg1fnl/Z7GaHIChceKDJOw0zNaILRXI0qT2E1at9MwzoRaRA5Nn/g==} engines: {node: '>=14.0.0'} cpu: [ia32] os: [linux] - sass-embedded-linux-musl-arm64@1.83.4: - resolution: {integrity: sha512-IzMgalf6MZOxgp4AVCgsaWAFDP/IVWOrgVXxkyhw29fyAEoSWBJH4k87wyPhEtxSuzVHLxKNbc8k3UzdWmlBFg==} + sass-embedded-linux-musl-arm64@1.81.0: + resolution: {integrity: sha512-hpntWf5kjkoxncA1Vh8vhsUOquZ8AROZKx0rQh7ZjSRs4JrYZASz1cfevPKaEM3wIim/nYa6TJqm0VqWsrERlA==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [linux] - sass-embedded-linux-musl-arm@1.83.4: - resolution: {integrity: sha512-0RrJRwMrmm+gG0VOB5b5Cjs7Sd+lhqpQJa6EJNEaZHljJokEfpE5GejZsGMRMIQLxEvVphZnnxl6sonCGFE/QQ==} + sass-embedded-linux-musl-arm@1.81.0: + resolution: {integrity: sha512-oWVUvQ4d5Kx1Md75YXZl5z1WBjc+uOhfRRqzkJ3nWc8tjszxJN+y/5EOJavhsNI3/2yoTt6eMXRTqDD9b0tWSQ==} engines: {node: '>=14.0.0'} cpu: [arm] os: [linux] - sass-embedded-linux-musl-ia32@1.83.4: - resolution: {integrity: sha512-LLb4lYbcxPzX4UaJymYXC+WwokxUlfTJEFUv5VF0OTuSsHAGNRs/rslPtzVBTvMeG9TtlOQDhku1F7G6iaDotA==} + sass-embedded-linux-musl-ia32@1.81.0: + resolution: {integrity: sha512-UEXUYkBuqTSwg5JNWiNlfMZ1Jx6SJkaEdx+fsL3Tk099L8cKSoJWH2EPz4ZJjNbyIMymrSdVfymheTeZ8u24xA==} engines: {node: '>=14.0.0'} cpu: [ia32] os: [linux] - sass-embedded-linux-musl-riscv64@1.83.4: - resolution: {integrity: sha512-zoKlPzD5Z13HKin1UGR74QkEy+kZEk2AkGX5RelRG494mi+IWwRuWCppXIovor9+BQb9eDWPYPoMVahwN5F7VA==} + sass-embedded-linux-musl-riscv64@1.81.0: + resolution: {integrity: sha512-1D7OznytbIhx2XDHWi1nuQ8d/uCVR7FGGzELgaU//T8A9DapVTUgPKvB70AF1k4GzChR9IXU/WvFZs2hDTbaJg==} engines: {node: '>=14.0.0'} cpu: [riscv64] os: [linux] - sass-embedded-linux-musl-x64@1.83.4: - resolution: {integrity: sha512-hB8+/PYhfEf2zTIcidO5Bpof9trK6WJjZ4T8g2MrxQh8REVtdPcgIkoxczRynqybf9+fbqbUwzXtiUao2GV+vQ==} + sass-embedded-linux-musl-x64@1.81.0: + resolution: {integrity: sha512-ia6VCTeVDQtBSMktXRFza1AZCt8/6aUoujot6Ugf4KmdytQqPJIHxkHaGftm5xwi9WdrMGYS7zgolToPijR11A==} engines: {node: '>=14.0.0'} cpu: [x64] os: [linux] - sass-embedded-linux-riscv64@1.83.4: - resolution: {integrity: sha512-83fL4n+oeDJ0Y4KjASmZ9jHS1Vl9ESVQYHMhJE0i4xDi/P3BNarm2rsKljq/QtrwGpbqwn8ujzOu7DsNCMDSHA==} + sass-embedded-linux-riscv64@1.81.0: + resolution: {integrity: sha512-KbxSsqu4tT1XbhZfJV/5NfW0VtJIGlD58RjqJqJBi8Rnjrx29/upBsuwoDWtsPV/LhoGwwU1XkSa9Q1ifCz4fQ==} engines: {node: '>=14.0.0'} cpu: [riscv64] os: [linux] - sass-embedded-linux-x64@1.83.4: - resolution: {integrity: sha512-NlnGdvCmTD5PK+LKXlK3sAuxOgbRIEoZfnHvxd157imCm/s2SYF/R28D0DAAjEViyI8DovIWghgbcqwuertXsA==} + sass-embedded-linux-x64@1.81.0: + resolution: {integrity: sha512-AMDeVY2T9WAnSFkuQcsOn5c29GRs/TuqnCiblKeXfxCSKym5uKdBl/N7GnTV6OjzoxiJBbkYKdVIaS5By7Gj4g==} engines: {node: '>=14.0.0'} cpu: [x64] os: [linux] - sass-embedded-win32-arm64@1.83.4: - resolution: {integrity: sha512-J2BFKrEaeSrVazU2qTjyQdAk+MvbzJeTuCET0uAJEXSKtvQ3AzxvzndS7LqkDPbF32eXAHLw8GVpwcBwKbB3Uw==} + sass-embedded-win32-arm64@1.81.0: + resolution: {integrity: sha512-YOmBRYnygwWUmCoH14QbMRHjcvCJufeJBAp0m61tOJXIQh64ziwV4mjdqjS/Rx3zhTT4T+nulDUw4d3kLiMncA==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [win32] - sass-embedded-win32-ia32@1.83.4: - resolution: {integrity: sha512-uPAe9T/5sANFhJS5dcfAOhOJy8/l2TRYG4r+UO3Wp4yhqbN7bggPvY9c7zMYS0OC8tU/bCvfYUDFHYMCl91FgA==} + sass-embedded-win32-ia32@1.81.0: + resolution: {integrity: sha512-HFfr/C+uLJGGTENdnssuNTmXI/xnIasUuEHEKqI+2J0FHCWT5cpz3PGAOHymPyJcZVYGUG/7gIxIx/d7t0LFYw==} engines: {node: '>=14.0.0'} cpu: [ia32] os: [win32] - sass-embedded-win32-x64@1.83.4: - resolution: {integrity: sha512-C9fkDY0jKITdJFij4UbfPFswxoXN9O/Dr79v17fJnstVwtUojzVJWKHUXvF0Zg2LIR7TCc4ju3adejKFxj7ueA==} + sass-embedded-win32-x64@1.81.0: + resolution: {integrity: sha512-wxj52jDcIAwWcXb7ShZ7vQYKcVUkJ+04YM9l46jDY+qwHzliGuorAUyujLyKTE9heGD3gShJ3wPPC1lXzq6v9A==} engines: {node: '>=14.0.0'} cpu: [x64] os: [win32] - sass-embedded@1.83.4: - resolution: {integrity: sha512-Hf2burRA/y5PGxsg6jB9UpoK/xZ6g/pgrkOcdl6j+rRg1Zj8XhGKZ1MTysZGtTPUUmiiErqzkP5+Kzp95yv9GQ==} + sass-embedded@1.81.0: + resolution: {integrity: sha512-uZQ2Faxb1oWBHpeSSzjxnhClbMb3QadN0ql0ZFNuqWOLUxwaVhrMlMhPq6TDPbbfDUjihuwrMCuy695Bgna5RA==} engines: {node: '>=16.0.0'} hasBin: true + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + saxes@6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} @@ -6077,12 +6933,19 @@ packages: secure-json-parse@2.7.0: resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} + selfsigned@2.4.1: + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + engines: {node: '>=10'} + + semver-compare@1.0.0: + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.7.1: - resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} hasBin: true @@ -6090,10 +6953,17 @@ packages: resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} + serialize-error@7.0.1: + resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} + engines: {node: '>=10'} + serve-static@1.16.2: resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + set-cookie-parser@2.7.1: resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} @@ -6111,10 +6981,6 @@ packages: resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} hasBin: true - sharp@0.33.5: - resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -6123,23 +6989,15 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.29.2: - resolution: {integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==} - - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + shell-quote@1.8.2: + resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} engines: {node: '>= 0.4'} - side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} + shiki@1.24.0: + resolution: {integrity: sha512-qIneep7QRwxRd5oiHb8jaRzH15V/S8F3saCXOdjwRLgozZJr5x2yeBhQtqkO3FSzQDwYEFAYuifg4oHjpDghrg==} - side-channel-weakmap@1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} - engines: {node: '>= 0.4'} - - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} siginfo@2.0.0: @@ -6158,13 +7016,30 @@ packages: simple-get@4.0.1: resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} - simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + simple-update-notifier@2.0.0: + resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} + engines: {node: '>=10'} sirv@2.0.4: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} + slice-ansi@3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + + smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + + socks-proxy-agent@7.0.0: + resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} + engines: {node: '>= 10'} + + socks@2.8.3: + resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -6187,6 +7062,9 @@ packages: space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + spawn-command@0.0.2: + resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} + spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} @@ -6196,13 +7074,20 @@ packages: spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - spdx-license-ids@3.0.21: - resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} + spdx-license-ids@3.0.20: + resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} + + sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} ssri@10.0.6: resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ssri@9.0.1: + resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -6213,6 +7098,10 @@ packages: stacktracey@2.1.8: resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} + stat-mode@1.0.0: + resolution: {integrity: sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==} + engines: {node: '>= 6'} + statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} @@ -6283,6 +7172,9 @@ packages: strnum@1.0.5: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + stubborn-fs@1.2.5: + resolution: {integrity: sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g==} + style-mod@4.1.2: resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} @@ -6292,6 +7184,10 @@ packages: style-to-object@1.0.8: resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} + sumchecker@3.0.1: + resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} + engines: {node: '>= 8.0'} + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -6308,10 +7204,10 @@ packages: resolution: {integrity: sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==} engines: {node: '>=12.0.0'} - swr@2.3.2: - resolution: {integrity: sha512-RosxFpiabojs75IwQ316DGoDRmOqtiAj0tg8wCcbEu4CiLZBs/a9QNtHV7TUfDXmmlgqij/NqzKq/eLelyv9xA==} + swr@2.2.5: + resolution: {integrity: sha512-QtxqyclFeAsxEUeZIYmsaQ0UjimSq1RZ9Un7I68/0ClKK/U3LoyQunwkQfJZr2fc22DfIXLNDc2wFyTEikCUpg==} peerDependencies: - react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^16.11.0 || ^17.0.0 || ^18.0.0 symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} @@ -6338,8 +7234,8 @@ packages: tailwind-merge@2.6.0: resolution: {integrity: sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==} - tar-fs@2.1.2: - resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==} + tar-fs@2.1.1: + resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} @@ -6349,6 +7245,9 @@ packages: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} + temp-file@3.4.0: + resolution: {integrity: sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==} + text-segmentation@1.0.3: resolution: {integrity: sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==} @@ -6370,11 +7269,14 @@ packages: tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + tiny-typed-emitter@2.1.0: + resolution: {integrity: sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==} + tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - tinyexec@0.3.2: - resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + tinyexec@0.3.1: + resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} tinypool@1.0.2: resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} @@ -6388,13 +7290,20 @@ packages: resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} - tldts-core@6.1.78: - resolution: {integrity: sha512-jS0svNsB99jR6AJBmfmEWuKIgz91Haya91Z43PATaeHJ24BkMoNRb/jlaD37VYjb0mYf6gRL/HOnvS1zEnYBiw==} + tldts-core@6.1.83: + resolution: {integrity: sha512-I2wb9OJc6rXyh9d4aInhSNWChNI+ra6qDnFEGEwe9OoA68lE4Temw29bOkf1Uvwt8VZS079t1BFZdXVBmmB4dw==} - tldts@6.1.78: - resolution: {integrity: sha512-fSgYrW0ITH0SR/CqKMXIruYIPpNu5aDgUp22UhYoSrnUQwc7SBqifEBFNce7AAcygUPBo6a/gbtcguWdmko4RQ==} + tldts@6.1.83: + resolution: {integrity: sha512-FHxxNJJ0WNsEBPHyC1oesQb3rRoxpuho/z2g3zIIAhw1WHJeQsUzK1jYK8TI1/iClaa4fS3Z2TCA9mtxXsENSg==} hasBin: true + tmp-promise@3.0.3: + resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} + + tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -6410,28 +7319,35 @@ packages: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} - tough-cookie@5.1.1: - resolution: {integrity: sha512-Ek7HndSVkp10hmHP9V4qZO1u+pn1RU5sI0Fw+jCU3lyvuMZcgqsNgc6CmJJZyByK4Vm/qotGRJlfgAX8q+4JiA==} + tough-cookie@5.1.2: + resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} engines: {node: '>=16'} tr46@5.0.0: resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} engines: {node: '>=18'} + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - ts-api-utils@2.0.1: - resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' + truncate-utf8-bytes@1.0.2: + resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} - tsconfck@3.1.5: - resolution: {integrity: sha512-CLDfGgUp7XPswWnezWwsCRxNmgQjhYq3VXHM0/XIRxhVrKw0M1if9agzryh1QS3nxjCROvV+xWxoJO1YctzzWg==} + ts-api-utils@1.4.3: + resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + tsconfck@3.1.4: + resolution: {integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==} engines: {node: ^18 || >=20} hasBin: true peerDependencies: @@ -6462,45 +7378,59 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-fest@4.34.1: - resolution: {integrity: sha512-6kSc32kT0rbwxD6QL1CYe8IqdzN/J/ILMrNK+HMQCKH3insCDRY/3ITb0vcBss0a3t72fzh2YSzj8ko1HgwT3g==} + type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + + type-fest@4.30.0: + resolution: {integrity: sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==} engines: {node: '>=16'} type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} - typescript-eslint@8.24.0: - resolution: {integrity: sha512-/lmv4366en/qbB32Vz5+kCNZEMf6xYHwh1z48suBwZvAtnXKbP+YhGe8OLE2BqC67LMqKkCNLtjejdwsdW6uOQ==} + typescript-eslint@8.17.0: + resolution: {integrity: sha512-409VXvFd/f1br1DCbuKNFqQpXICoTB+V51afcwG1pn1a3Cp92MqAUges3YjwEdQ0cMUoCIodjVDAYzyD8h3SYA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - typescript@5.7.3: - resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} + typescript@5.7.2: + resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} engines: {node: '>=14.17'} hasBin: true ufo@1.5.4: resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + uint8array-extras@1.4.0: + resolution: {integrity: sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ==} + engines: {node: '>=18'} + unconfig@0.5.5: resolution: {integrity: sha512-VQZ5PT9HDX+qag0XdgQi8tJepPhXiR/yVOkn707gJDKo31lGjRilPREiQJ9Z6zd/Ugpv6ZvO5VxVIcatldYcNQ==} + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + undici-types@6.20.0: resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} - undici@5.28.5: - resolution: {integrity: sha512-zICwjrDrcrUE0pyyJc1I2QzBkLM8FINsgOrt6WjA+BgajVq9Nxu2PbFFXUrAggLfDXlZGZBVZYw7WNV5KiBiBA==} + undici@5.28.4: + resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} engines: {node: '>=14.0'} - undici@6.21.1: - resolution: {integrity: sha512-q/1rj5D0/zayJB2FraXdaWxbhWiNKDvu8naDT2dl1yTlvJp4BLtOcp2a5BvgGNQpYYJzau7tf1WgKv3b+7mqpQ==} + undici@6.21.0: + resolution: {integrity: sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==} engines: {node: '>=18.17'} - unenv@2.0.0-rc.1: - resolution: {integrity: sha512-PU5fb40H8X149s117aB4ytbORcCvlASdtF97tfls4BPIyj4PeVxvpSuy1jAptqYHqB0vb2w2sHvzM0XWcp2OKg==} + unenv-nightly@2.0.0-20241121-161142-806b5c0: + resolution: {integrity: sha512-RnFOasE/O0Q55gBkNB1b84OgKttgLEijGO0JCWpbn+O4XxpyCQg89NmcqQ5RGUiy4y+rMIrKzePTquQcLQF5pQ==} unified@10.1.2: resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} @@ -6508,10 +7438,18 @@ packages: unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + unique-filename@2.0.1: + resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + unique-filename@3.0.0: resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + unique-slug@3.0.0: + resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + unique-slug@4.0.0: resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -6558,6 +7496,10 @@ packages: universal-user-agent@7.0.2: resolution: {integrity: sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==} + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} @@ -6578,8 +7520,8 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - update-browserslist-db@1.1.2: - resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==} + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -6591,6 +7533,16 @@ packages: resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} engines: {node: '>= 0.4'} + use-callback-ref@1.3.2: + resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + use-callback-ref@1.3.3: resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} engines: {node: '>=10'} @@ -6606,6 +7558,16 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 + use-sidecar@1.1.2: + resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + use-sidecar@1.1.3: resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} engines: {node: '>=10'} @@ -6616,10 +7578,13 @@ packages: '@types/react': optional: true - use-sync-external-store@1.4.0: - resolution: {integrity: sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==} + use-sync-external-store@1.2.2: + resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + + utf8-byte-length@1.0.5: + resolution: {integrity: sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==} util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -6665,6 +7630,10 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} + verror@1.10.1: + resolution: {integrity: sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==} + engines: {node: '>=0.6.0'} + version-range@4.14.0: resolution: {integrity: sha512-gjb0ARm9qlcBAonU4zPwkl9ecKkas+tC2CGwFfptTCWWIVTWY1YUbT2zZKsOAF1jR/tNxxyLwwG0cb42XlYcTg==} engines: {node: '>=4'} @@ -6684,25 +7653,34 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite-node@1.6.1: - resolution: {integrity: sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA==} + vite-node@1.6.0: + resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true - vite-node@2.1.9: - resolution: {integrity: sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA==} + vite-node@2.1.8: + resolution: {integrity: sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true + vite-node@3.0.0-beta.2: + resolution: {integrity: sha512-ofTf6cfRdL30Wbl9n/BX81EyIR5s4PReLmSurrxQ+koLaWUNOEo8E0lCM53OJkb8vpa2URM2nSrxZsIFyvY1rg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + + vite-plugin-copy@0.1.6: + resolution: {integrity: sha512-bqIaefZOE2Jx8P5wJuHKL5GzCERa/pcwdUQWaocyTNXgalN2xkxXH7LmqRJ34V2OlKF2F9E/zj0zITS7U6PpUg==} + engines: {node: '>=14.8.0'} + vite-plugin-node-polyfills@0.22.0: resolution: {integrity: sha512-F+G3LjiGbG8QpbH9bZ//GSBr9i1InSTkaulfUHFa9jkLqVGORFBoqc2A/Yu5Mmh1kNAbiAeKeK+6aaQUf3x0JA==} peerDependencies: vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 - vite-plugin-optimize-css-modules@1.2.0: - resolution: {integrity: sha512-5kOEVyif9qSoLAQDmN6nXW2fgz66oLXGlapKwY7u8nPVaVoyabkioQqf90s0gFvssCAY2bwBndx5sK7LF+i2rA==} + vite-plugin-optimize-css-modules@1.1.0: + resolution: {integrity: sha512-6vtG+GwqBoT0yz90LAKKPf0HkiKkX7oCUzdw0Y0Jjv2S4pKyifq2IKTgCEJu5cLYhPku1mrPIjNVvQRmP0RgLQ==} peerDependencies: - vite: ^6.0.0 || ^5.0.0 || ^4.0.0 || ^3.0.0 || ^2.0.0 + vite: ^5.0.0 || ^4.0.0 || ^3.0.0 || ^2.0.0 vite-tsconfig-paths@4.3.2: resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==} @@ -6712,8 +7690,8 @@ packages: vite: optional: true - vite@5.4.14: - resolution: {integrity: sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==} + vite@5.4.11: + resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -6743,15 +7721,15 @@ packages: terser: optional: true - vitest@2.1.9: - resolution: {integrity: sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q==} + vitest@2.1.8: + resolution: {integrity: sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 2.1.9 - '@vitest/ui': 2.1.9 + '@vitest/browser': 2.1.8 + '@vitest/ui': 2.1.8 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -6807,8 +7785,11 @@ packages: resolution: {integrity: sha512-mDGf9diDad/giZ/Sm9Xi2YcyzaFpbdLpJPr+E9fSkyQ7KpQD4SdFcugkRQYzhmfI4KeV4Qpnn2sKPdo+kmsgRQ==} engines: {node: '>=18'} - which-typed-array@1.1.18: - resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} + when-exit@2.1.4: + resolution: {integrity: sha512-4rnvd3A1t16PWzrBUcSDZqcAmsUIy4minDXT/CZ8F2mVDgd65i4Aalimgz1aQkRGU0iH5eT5+6Rx2TK8o443Pg==} + + which-typed-array@1.1.16: + resolution: {integrity: sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==} engines: {node: '>= 0.4'} which@2.0.2: @@ -6826,21 +7807,24 @@ packages: engines: {node: '>=8'} hasBin: true + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - workerd@1.20250204.0: - resolution: {integrity: sha512-zcKufjVFsQMiD3/acg1Ix00HIMCkXCrDxQXYRDn/1AIz3QQGkmbVDwcUk1Ki2jBUoXmBCMsJdycRucgMVEypWg==} + workerd@1.20241106.1: + resolution: {integrity: sha512-1GdKl0kDw8rrirr/ThcK66Kbl4/jd4h8uHx5g7YHBrnenY5SX1UPuop2cnCzYUxlg55kPjzIqqYslz1muRFgFw==} engines: {node: '>=16'} hasBin: true - wrangler@3.108.0: - resolution: {integrity: sha512-w8J0VtDqn8F94qw+HnxFbri7MMdT/to5/w1QHAjR//tIHkilKAUFNaEF3GDEJREvUG3iHuawrH2p5ATTHnFc/Q==} + wrangler@3.91.0: + resolution: {integrity: sha512-Hdzn6wbY9cz5kL85ZUvWLwLIH7nPaEVRblfms40jhRf4qQO/Zf74aFlku8rQFbe8/2aVZFaxJVfBd6JQMeMSBQ==} engines: {node: '>=16.17.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20250204.0 + '@cloudflare/workers-types': ^4.20241106.0 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -6884,6 +7868,10 @@ packages: resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} engines: {node: '>=18'} + xmlbuilder@15.1.1: + resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} + engines: {node: '>=8.0'} + xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} @@ -6891,32 +7879,51 @@ packages: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} + xxhash-wasm@1.1.0: + resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.7.0: - resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} + yaml@2.6.1: + resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} engines: {node: '>= 14'} hasBin: true + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - youch@3.2.3: - resolution: {integrity: sha512-ZBcWz/uzZaQVdCvfV4uk616Bbpf2ee+F/AvuKDR5EwX/Y4v06xWdtMluqTD7+KlZdM93lLm9gMZYo0sKBS0pgw==} + youch@3.3.4: + resolution: {integrity: sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==} + + zip-stream@4.1.1: + resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} + engines: {node: '>= 10'} zod-to-json-schema@3.24.1: resolution: {integrity: sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==} peerDependencies: zod: ^3.24.1 - zod@3.22.3: - resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} - zod@3.24.1: resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} @@ -6943,13 +7950,15 @@ packages: snapshots: + 7zip-bin@5.2.0: {} + '@adobe/css-tools@4.4.2': {} '@ai-sdk/amazon-bedrock@1.0.6(zod@3.24.1)': dependencies: '@ai-sdk/provider': 1.0.3 '@ai-sdk/provider-utils': 2.0.5(zod@3.24.1) - '@aws-sdk/client-bedrock-runtime': 3.744.0 + '@aws-sdk/client-bedrock-runtime': 3.716.0 zod: 3.24.1 transitivePeerDependencies: - aws-crt @@ -6960,17 +7969,17 @@ snapshots: '@ai-sdk/provider-utils': 1.0.9(zod@3.24.1) zod: 3.24.1 - '@ai-sdk/cohere@1.1.8(zod@3.24.1)': + '@ai-sdk/cohere@1.0.3(zod@3.24.1)': dependencies: - '@ai-sdk/provider': 1.0.7 - '@ai-sdk/provider-utils': 2.1.6(zod@3.24.1) + '@ai-sdk/provider': 1.0.1 + '@ai-sdk/provider-utils': 2.0.2(zod@3.24.1) zod: 3.24.1 - '@ai-sdk/deepseek@0.1.8(zod@3.24.1)': + '@ai-sdk/deepseek@0.1.3(zod@3.24.1)': dependencies: - '@ai-sdk/openai-compatible': 0.1.8(zod@3.24.1) - '@ai-sdk/provider': 1.0.7 - '@ai-sdk/provider-utils': 2.1.6(zod@3.24.1) + '@ai-sdk/openai-compatible': 0.1.3(zod@3.24.1) + '@ai-sdk/provider': 1.0.6 + '@ai-sdk/provider-utils': 2.1.2(zod@3.24.1) zod: 3.24.1 '@ai-sdk/google@0.0.52(zod@3.24.1)': @@ -6986,16 +7995,16 @@ snapshots: '@ai-sdk/provider-utils': 1.0.20(zod@3.24.1) zod: 3.24.1 - '@ai-sdk/openai-compatible@0.1.8(zod@3.24.1)': + '@ai-sdk/openai-compatible@0.1.3(zod@3.24.1)': dependencies: - '@ai-sdk/provider': 1.0.7 - '@ai-sdk/provider-utils': 2.1.6(zod@3.24.1) + '@ai-sdk/provider': 1.0.6 + '@ai-sdk/provider-utils': 2.1.2(zod@3.24.1) zod: 3.24.1 - '@ai-sdk/openai@1.1.9(zod@3.24.1)': + '@ai-sdk/openai@1.1.2(zod@3.24.1)': dependencies: - '@ai-sdk/provider': 1.0.7 - '@ai-sdk/provider-utils': 2.1.6(zod@3.24.1) + '@ai-sdk/provider': 1.0.6 + '@ai-sdk/provider-utils': 2.1.2(zod@3.24.1) zod: 3.24.1 '@ai-sdk/provider-utils@1.0.2(zod@3.24.1)': @@ -7025,6 +8034,15 @@ snapshots: optionalDependencies: zod: 3.24.1 + '@ai-sdk/provider-utils@2.0.2(zod@3.24.1)': + dependencies: + '@ai-sdk/provider': 1.0.1 + eventsource-parser: 3.0.0 + nanoid: 3.3.8 + secure-json-parse: 2.7.0 + optionalDependencies: + zod: 3.24.1 + '@ai-sdk/provider-utils@2.0.5(zod@3.24.1)': dependencies: '@ai-sdk/provider': 1.0.3 @@ -7034,9 +8052,9 @@ snapshots: optionalDependencies: zod: 3.24.1 - '@ai-sdk/provider-utils@2.1.6(zod@3.24.1)': + '@ai-sdk/provider-utils@2.1.2(zod@3.24.1)': dependencies: - '@ai-sdk/provider': 1.0.7 + '@ai-sdk/provider': 1.0.6 eventsource-parser: 3.0.0 nanoid: 3.3.8 secure-json-parse: 2.7.0 @@ -7055,46 +8073,48 @@ snapshots: dependencies: json-schema: 0.4.0 + '@ai-sdk/provider@1.0.1': + dependencies: + json-schema: 0.4.0 + '@ai-sdk/provider@1.0.3': dependencies: json-schema: 0.4.0 - '@ai-sdk/provider@1.0.7': + '@ai-sdk/provider@1.0.6': dependencies: json-schema: 0.4.0 - '@ai-sdk/react@1.1.11(react@18.3.1)(zod@3.24.1)': + '@ai-sdk/react@1.1.2(react@18.3.1)(zod@3.24.1)': dependencies: - '@ai-sdk/provider-utils': 2.1.6(zod@3.24.1) - '@ai-sdk/ui-utils': 1.1.11(zod@3.24.1) - swr: 2.3.2(react@18.3.1) + '@ai-sdk/provider-utils': 2.1.2(zod@3.24.1) + '@ai-sdk/ui-utils': 1.1.2(zod@3.24.1) + swr: 2.2.5(react@18.3.1) throttleit: 2.1.0 optionalDependencies: react: 18.3.1 zod: 3.24.1 - '@ai-sdk/ui-utils@1.1.11(zod@3.24.1)': + '@ai-sdk/ui-utils@1.1.2(zod@3.24.1)': dependencies: - '@ai-sdk/provider': 1.0.7 - '@ai-sdk/provider-utils': 2.1.6(zod@3.24.1) + '@ai-sdk/provider': 1.0.6 + '@ai-sdk/provider-utils': 2.1.2(zod@3.24.1) zod-to-json-schema: 3.24.1(zod@3.24.1) optionalDependencies: zod: 3.24.1 '@ampproject/remapping@2.3.0': dependencies: - '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@antfu/install-pkg@1.0.0': + '@antfu/install-pkg@0.4.1': dependencies: - package-manager-detector: 0.2.9 - tinyexec: 0.3.2 + package-manager-detector: 0.2.6 + tinyexec: 0.3.1 '@antfu/utils@0.7.10': {} - '@antfu/utils@8.1.0': {} - '@asamuzakjp/css-color@2.8.3': dependencies: '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) @@ -7106,7 +8126,7 @@ snapshots: '@aws-crypto/crc32@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.734.0 + '@aws-sdk/types': 3.714.0 tslib: 2.8.1 '@aws-crypto/sha256-browser@5.2.0': @@ -7114,15 +8134,15 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-locate-window': 3.723.0 + '@aws-sdk/types': 3.714.0 + '@aws-sdk/util-locate-window': 3.693.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.734.0 + '@aws-sdk/types': 3.714.0 tslib: 2.8.1 '@aws-crypto/supports-web-crypto@5.2.0': @@ -7131,328 +8151,377 @@ snapshots: '@aws-crypto/util@5.2.0': dependencies: - '@aws-sdk/types': 3.734.0 + '@aws-sdk/types': 3.714.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - '@aws-sdk/client-bedrock-runtime@3.744.0': + '@aws-sdk/client-bedrock-runtime@3.716.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.744.0 - '@aws-sdk/credential-provider-node': 3.744.0 - '@aws-sdk/middleware-host-header': 3.734.0 - '@aws-sdk/middleware-logger': 3.734.0 - '@aws-sdk/middleware-recursion-detection': 3.734.0 - '@aws-sdk/middleware-user-agent': 3.744.0 - '@aws-sdk/region-config-resolver': 3.734.0 - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-endpoints': 3.743.0 - '@aws-sdk/util-user-agent-browser': 3.734.0 - '@aws-sdk/util-user-agent-node': 3.744.0 - '@smithy/config-resolver': 4.0.1 - '@smithy/core': 3.1.2 - '@smithy/eventstream-serde-browser': 4.0.1 - '@smithy/eventstream-serde-config-resolver': 4.0.1 - '@smithy/eventstream-serde-node': 4.0.1 - '@smithy/fetch-http-handler': 5.0.1 - '@smithy/hash-node': 4.0.1 - '@smithy/invalid-dependency': 4.0.1 - '@smithy/middleware-content-length': 4.0.1 - '@smithy/middleware-endpoint': 4.0.3 - '@smithy/middleware-retry': 4.0.4 - '@smithy/middleware-serde': 4.0.2 - '@smithy/middleware-stack': 4.0.1 - '@smithy/node-config-provider': 4.0.1 - '@smithy/node-http-handler': 4.0.2 - '@smithy/protocol-http': 5.0.1 - '@smithy/smithy-client': 4.1.3 - '@smithy/types': 4.1.0 - '@smithy/url-parser': 4.0.1 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.4 - '@smithy/util-defaults-mode-node': 4.0.4 - '@smithy/util-endpoints': 3.0.1 - '@smithy/util-middleware': 4.0.1 - '@smithy/util-retry': 4.0.1 - '@smithy/util-stream': 4.0.2 - '@smithy/util-utf8': 4.0.0 + '@aws-sdk/client-sso-oidc': 3.716.0(@aws-sdk/client-sts@3.716.0) + '@aws-sdk/client-sts': 3.716.0 + '@aws-sdk/core': 3.716.0 + '@aws-sdk/credential-provider-node': 3.716.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0))(@aws-sdk/client-sts@3.716.0) + '@aws-sdk/middleware-host-header': 3.714.0 + '@aws-sdk/middleware-logger': 3.714.0 + '@aws-sdk/middleware-recursion-detection': 3.714.0 + '@aws-sdk/middleware-user-agent': 3.716.0 + '@aws-sdk/region-config-resolver': 3.714.0 + '@aws-sdk/types': 3.714.0 + '@aws-sdk/util-endpoints': 3.714.0 + '@aws-sdk/util-user-agent-browser': 3.714.0 + '@aws-sdk/util-user-agent-node': 3.716.0 + '@smithy/config-resolver': 3.0.13 + '@smithy/core': 2.5.6 + '@smithy/eventstream-serde-browser': 3.0.14 + '@smithy/eventstream-serde-config-resolver': 3.0.11 + '@smithy/eventstream-serde-node': 3.0.13 + '@smithy/fetch-http-handler': 4.1.2 + '@smithy/hash-node': 3.0.11 + '@smithy/invalid-dependency': 3.0.11 + '@smithy/middleware-content-length': 3.0.13 + '@smithy/middleware-endpoint': 3.2.7 + '@smithy/middleware-retry': 3.0.32 + '@smithy/middleware-serde': 3.0.11 + '@smithy/middleware-stack': 3.0.11 + '@smithy/node-config-provider': 3.1.12 + '@smithy/node-http-handler': 3.3.3 + '@smithy/protocol-http': 4.1.8 + '@smithy/smithy-client': 3.5.2 + '@smithy/types': 3.7.2 + '@smithy/url-parser': 3.0.11 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.32 + '@smithy/util-defaults-mode-node': 3.0.32 + '@smithy/util-endpoints': 2.1.7 + '@smithy/util-middleware': 3.0.11 + '@smithy/util-retry': 3.0.11 + '@smithy/util-stream': 3.3.3 + '@smithy/util-utf8': 3.0.0 '@types/uuid': 9.0.8 tslib: 2.8.1 uuid: 9.0.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso@3.744.0': + '@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0)': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.744.0 - '@aws-sdk/middleware-host-header': 3.734.0 - '@aws-sdk/middleware-logger': 3.734.0 - '@aws-sdk/middleware-recursion-detection': 3.734.0 - '@aws-sdk/middleware-user-agent': 3.744.0 - '@aws-sdk/region-config-resolver': 3.734.0 - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-endpoints': 3.743.0 - '@aws-sdk/util-user-agent-browser': 3.734.0 - '@aws-sdk/util-user-agent-node': 3.744.0 - '@smithy/config-resolver': 4.0.1 - '@smithy/core': 3.1.2 - '@smithy/fetch-http-handler': 5.0.1 - '@smithy/hash-node': 4.0.1 - '@smithy/invalid-dependency': 4.0.1 - '@smithy/middleware-content-length': 4.0.1 - '@smithy/middleware-endpoint': 4.0.3 - '@smithy/middleware-retry': 4.0.4 - '@smithy/middleware-serde': 4.0.2 - '@smithy/middleware-stack': 4.0.1 - '@smithy/node-config-provider': 4.0.1 - '@smithy/node-http-handler': 4.0.2 - '@smithy/protocol-http': 5.0.1 - '@smithy/smithy-client': 4.1.3 - '@smithy/types': 4.1.0 - '@smithy/url-parser': 4.0.1 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.4 - '@smithy/util-defaults-mode-node': 4.0.4 - '@smithy/util-endpoints': 3.0.1 - '@smithy/util-middleware': 4.0.1 - '@smithy/util-retry': 4.0.1 - '@smithy/util-utf8': 4.0.0 + '@aws-sdk/client-sts': 3.716.0 + '@aws-sdk/core': 3.716.0 + '@aws-sdk/credential-provider-node': 3.716.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0))(@aws-sdk/client-sts@3.716.0) + '@aws-sdk/middleware-host-header': 3.714.0 + '@aws-sdk/middleware-logger': 3.714.0 + '@aws-sdk/middleware-recursion-detection': 3.714.0 + '@aws-sdk/middleware-user-agent': 3.716.0 + '@aws-sdk/region-config-resolver': 3.714.0 + '@aws-sdk/types': 3.714.0 + '@aws-sdk/util-endpoints': 3.714.0 + '@aws-sdk/util-user-agent-browser': 3.714.0 + '@aws-sdk/util-user-agent-node': 3.716.0 + '@smithy/config-resolver': 3.0.13 + '@smithy/core': 2.5.6 + '@smithy/fetch-http-handler': 4.1.2 + '@smithy/hash-node': 3.0.11 + '@smithy/invalid-dependency': 3.0.11 + '@smithy/middleware-content-length': 3.0.13 + '@smithy/middleware-endpoint': 3.2.7 + '@smithy/middleware-retry': 3.0.32 + '@smithy/middleware-serde': 3.0.11 + '@smithy/middleware-stack': 3.0.11 + '@smithy/node-config-provider': 3.1.12 + '@smithy/node-http-handler': 3.3.3 + '@smithy/protocol-http': 4.1.8 + '@smithy/smithy-client': 3.5.2 + '@smithy/types': 3.7.2 + '@smithy/url-parser': 3.0.11 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.32 + '@smithy/util-defaults-mode-node': 3.0.32 + '@smithy/util-endpoints': 2.1.7 + '@smithy/util-middleware': 3.0.11 + '@smithy/util-retry': 3.0.11 + '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/core@3.744.0': + '@aws-sdk/client-sso@3.716.0': dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/core': 3.1.2 - '@smithy/node-config-provider': 4.0.1 - '@smithy/property-provider': 4.0.1 - '@smithy/protocol-http': 5.0.1 - '@smithy/signature-v4': 5.0.1 - '@smithy/smithy-client': 4.1.3 - '@smithy/types': 4.1.0 - '@smithy/util-middleware': 4.0.1 + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.716.0 + '@aws-sdk/middleware-host-header': 3.714.0 + '@aws-sdk/middleware-logger': 3.714.0 + '@aws-sdk/middleware-recursion-detection': 3.714.0 + '@aws-sdk/middleware-user-agent': 3.716.0 + '@aws-sdk/region-config-resolver': 3.714.0 + '@aws-sdk/types': 3.714.0 + '@aws-sdk/util-endpoints': 3.714.0 + '@aws-sdk/util-user-agent-browser': 3.714.0 + '@aws-sdk/util-user-agent-node': 3.716.0 + '@smithy/config-resolver': 3.0.13 + '@smithy/core': 2.5.6 + '@smithy/fetch-http-handler': 4.1.2 + '@smithy/hash-node': 3.0.11 + '@smithy/invalid-dependency': 3.0.11 + '@smithy/middleware-content-length': 3.0.13 + '@smithy/middleware-endpoint': 3.2.7 + '@smithy/middleware-retry': 3.0.32 + '@smithy/middleware-serde': 3.0.11 + '@smithy/middleware-stack': 3.0.11 + '@smithy/node-config-provider': 3.1.12 + '@smithy/node-http-handler': 3.3.3 + '@smithy/protocol-http': 4.1.8 + '@smithy/smithy-client': 3.5.2 + '@smithy/types': 3.7.2 + '@smithy/url-parser': 3.0.11 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.32 + '@smithy/util-defaults-mode-node': 3.0.32 + '@smithy/util-endpoints': 2.1.7 + '@smithy/util-middleware': 3.0.11 + '@smithy/util-retry': 3.0.11 + '@smithy/util-utf8': 3.0.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sts@3.716.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/client-sso-oidc': 3.716.0(@aws-sdk/client-sts@3.716.0) + '@aws-sdk/core': 3.716.0 + '@aws-sdk/credential-provider-node': 3.716.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0))(@aws-sdk/client-sts@3.716.0) + '@aws-sdk/middleware-host-header': 3.714.0 + '@aws-sdk/middleware-logger': 3.714.0 + '@aws-sdk/middleware-recursion-detection': 3.714.0 + '@aws-sdk/middleware-user-agent': 3.716.0 + '@aws-sdk/region-config-resolver': 3.714.0 + '@aws-sdk/types': 3.714.0 + '@aws-sdk/util-endpoints': 3.714.0 + '@aws-sdk/util-user-agent-browser': 3.714.0 + '@aws-sdk/util-user-agent-node': 3.716.0 + '@smithy/config-resolver': 3.0.13 + '@smithy/core': 2.5.6 + '@smithy/fetch-http-handler': 4.1.2 + '@smithy/hash-node': 3.0.11 + '@smithy/invalid-dependency': 3.0.11 + '@smithy/middleware-content-length': 3.0.13 + '@smithy/middleware-endpoint': 3.2.7 + '@smithy/middleware-retry': 3.0.32 + '@smithy/middleware-serde': 3.0.11 + '@smithy/middleware-stack': 3.0.11 + '@smithy/node-config-provider': 3.1.12 + '@smithy/node-http-handler': 3.3.3 + '@smithy/protocol-http': 4.1.8 + '@smithy/smithy-client': 3.5.2 + '@smithy/types': 3.7.2 + '@smithy/url-parser': 3.0.11 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.32 + '@smithy/util-defaults-mode-node': 3.0.32 + '@smithy/util-endpoints': 2.1.7 + '@smithy/util-middleware': 3.0.11 + '@smithy/util-retry': 3.0.11 + '@smithy/util-utf8': 3.0.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/core@3.716.0': + dependencies: + '@aws-sdk/types': 3.714.0 + '@smithy/core': 2.5.6 + '@smithy/node-config-provider': 3.1.12 + '@smithy/property-provider': 3.1.11 + '@smithy/protocol-http': 4.1.8 + '@smithy/signature-v4': 4.2.4 + '@smithy/smithy-client': 3.5.2 + '@smithy/types': 3.7.2 + '@smithy/util-middleware': 3.0.11 fast-xml-parser: 4.4.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-env@3.744.0': + '@aws-sdk/credential-provider-env@3.716.0': dependencies: - '@aws-sdk/core': 3.744.0 - '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.1 - '@smithy/types': 4.1.0 + '@aws-sdk/core': 3.716.0 + '@aws-sdk/types': 3.714.0 + '@smithy/property-provider': 3.1.11 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@aws-sdk/credential-provider-http@3.744.0': + '@aws-sdk/credential-provider-http@3.716.0': dependencies: - '@aws-sdk/core': 3.744.0 - '@aws-sdk/types': 3.734.0 - '@smithy/fetch-http-handler': 5.0.1 - '@smithy/node-http-handler': 4.0.2 - '@smithy/property-provider': 4.0.1 - '@smithy/protocol-http': 5.0.1 - '@smithy/smithy-client': 4.1.3 - '@smithy/types': 4.1.0 - '@smithy/util-stream': 4.0.2 + '@aws-sdk/core': 3.716.0 + '@aws-sdk/types': 3.714.0 + '@smithy/fetch-http-handler': 4.1.2 + '@smithy/node-http-handler': 3.3.3 + '@smithy/property-provider': 3.1.11 + '@smithy/protocol-http': 4.1.8 + '@smithy/smithy-client': 3.5.2 + '@smithy/types': 3.7.2 + '@smithy/util-stream': 3.3.3 tslib: 2.8.1 - '@aws-sdk/credential-provider-ini@3.744.0': + '@aws-sdk/credential-provider-ini@3.716.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0))(@aws-sdk/client-sts@3.716.0)': dependencies: - '@aws-sdk/core': 3.744.0 - '@aws-sdk/credential-provider-env': 3.744.0 - '@aws-sdk/credential-provider-http': 3.744.0 - '@aws-sdk/credential-provider-process': 3.744.0 - '@aws-sdk/credential-provider-sso': 3.744.0 - '@aws-sdk/credential-provider-web-identity': 3.744.0 - '@aws-sdk/nested-clients': 3.744.0 - '@aws-sdk/types': 3.734.0 - '@smithy/credential-provider-imds': 4.0.1 - '@smithy/property-provider': 4.0.1 - '@smithy/shared-ini-file-loader': 4.0.1 - '@smithy/types': 4.1.0 + '@aws-sdk/client-sts': 3.716.0 + '@aws-sdk/core': 3.716.0 + '@aws-sdk/credential-provider-env': 3.716.0 + '@aws-sdk/credential-provider-http': 3.716.0 + '@aws-sdk/credential-provider-process': 3.716.0 + '@aws-sdk/credential-provider-sso': 3.716.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0)) + '@aws-sdk/credential-provider-web-identity': 3.716.0(@aws-sdk/client-sts@3.716.0) + '@aws-sdk/types': 3.714.0 + '@smithy/credential-provider-imds': 3.2.8 + '@smithy/property-provider': 3.1.11 + '@smithy/shared-ini-file-loader': 3.1.12 + '@smithy/types': 3.7.2 tslib: 2.8.1 transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' - aws-crt - '@aws-sdk/credential-provider-node@3.744.0': + '@aws-sdk/credential-provider-node@3.716.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0))(@aws-sdk/client-sts@3.716.0)': dependencies: - '@aws-sdk/credential-provider-env': 3.744.0 - '@aws-sdk/credential-provider-http': 3.744.0 - '@aws-sdk/credential-provider-ini': 3.744.0 - '@aws-sdk/credential-provider-process': 3.744.0 - '@aws-sdk/credential-provider-sso': 3.744.0 - '@aws-sdk/credential-provider-web-identity': 3.744.0 - '@aws-sdk/types': 3.734.0 - '@smithy/credential-provider-imds': 4.0.1 - '@smithy/property-provider': 4.0.1 - '@smithy/shared-ini-file-loader': 4.0.1 - '@smithy/types': 4.1.0 + '@aws-sdk/credential-provider-env': 3.716.0 + '@aws-sdk/credential-provider-http': 3.716.0 + '@aws-sdk/credential-provider-ini': 3.716.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0))(@aws-sdk/client-sts@3.716.0) + '@aws-sdk/credential-provider-process': 3.716.0 + '@aws-sdk/credential-provider-sso': 3.716.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0)) + '@aws-sdk/credential-provider-web-identity': 3.716.0(@aws-sdk/client-sts@3.716.0) + '@aws-sdk/types': 3.714.0 + '@smithy/credential-provider-imds': 3.2.8 + '@smithy/property-provider': 3.1.11 + '@smithy/shared-ini-file-loader': 3.1.12 + '@smithy/types': 3.7.2 tslib: 2.8.1 transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' + - '@aws-sdk/client-sts' - aws-crt - '@aws-sdk/credential-provider-process@3.744.0': + '@aws-sdk/credential-provider-process@3.716.0': dependencies: - '@aws-sdk/core': 3.744.0 - '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.1 - '@smithy/shared-ini-file-loader': 4.0.1 - '@smithy/types': 4.1.0 + '@aws-sdk/core': 3.716.0 + '@aws-sdk/types': 3.714.0 + '@smithy/property-provider': 3.1.11 + '@smithy/shared-ini-file-loader': 3.1.12 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@aws-sdk/credential-provider-sso@3.744.0': + '@aws-sdk/credential-provider-sso@3.716.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0))': dependencies: - '@aws-sdk/client-sso': 3.744.0 - '@aws-sdk/core': 3.744.0 - '@aws-sdk/token-providers': 3.744.0 - '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.1 - '@smithy/shared-ini-file-loader': 4.0.1 - '@smithy/types': 4.1.0 + '@aws-sdk/client-sso': 3.716.0 + '@aws-sdk/core': 3.716.0 + '@aws-sdk/token-providers': 3.714.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0)) + '@aws-sdk/types': 3.714.0 + '@smithy/property-provider': 3.1.11 + '@smithy/shared-ini-file-loader': 3.1.12 + '@smithy/types': 3.7.2 tslib: 2.8.1 transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' - aws-crt - '@aws-sdk/credential-provider-web-identity@3.744.0': + '@aws-sdk/credential-provider-web-identity@3.716.0(@aws-sdk/client-sts@3.716.0)': dependencies: - '@aws-sdk/core': 3.744.0 - '@aws-sdk/nested-clients': 3.744.0 - '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/middleware-host-header@3.734.0': - dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 + '@aws-sdk/client-sts': 3.716.0 + '@aws-sdk/core': 3.716.0 + '@aws-sdk/types': 3.714.0 + '@smithy/property-provider': 3.1.11 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@aws-sdk/middleware-logger@3.734.0': + '@aws-sdk/middleware-host-header@3.714.0': dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/types': 4.1.0 + '@aws-sdk/types': 3.714.0 + '@smithy/protocol-http': 4.1.8 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@aws-sdk/middleware-recursion-detection@3.734.0': + '@aws-sdk/middleware-logger@3.714.0': dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 + '@aws-sdk/types': 3.714.0 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@aws-sdk/middleware-user-agent@3.744.0': + '@aws-sdk/middleware-recursion-detection@3.714.0': dependencies: - '@aws-sdk/core': 3.744.0 - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-endpoints': 3.743.0 - '@smithy/core': 3.1.2 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 + '@aws-sdk/types': 3.714.0 + '@smithy/protocol-http': 4.1.8 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@aws-sdk/nested-clients@3.744.0': + '@aws-sdk/middleware-user-agent@3.716.0': dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.744.0 - '@aws-sdk/middleware-host-header': 3.734.0 - '@aws-sdk/middleware-logger': 3.734.0 - '@aws-sdk/middleware-recursion-detection': 3.734.0 - '@aws-sdk/middleware-user-agent': 3.744.0 - '@aws-sdk/region-config-resolver': 3.734.0 - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-endpoints': 3.743.0 - '@aws-sdk/util-user-agent-browser': 3.734.0 - '@aws-sdk/util-user-agent-node': 3.744.0 - '@smithy/config-resolver': 4.0.1 - '@smithy/core': 3.1.2 - '@smithy/fetch-http-handler': 5.0.1 - '@smithy/hash-node': 4.0.1 - '@smithy/invalid-dependency': 4.0.1 - '@smithy/middleware-content-length': 4.0.1 - '@smithy/middleware-endpoint': 4.0.3 - '@smithy/middleware-retry': 4.0.4 - '@smithy/middleware-serde': 4.0.2 - '@smithy/middleware-stack': 4.0.1 - '@smithy/node-config-provider': 4.0.1 - '@smithy/node-http-handler': 4.0.2 - '@smithy/protocol-http': 5.0.1 - '@smithy/smithy-client': 4.1.3 - '@smithy/types': 4.1.0 - '@smithy/url-parser': 4.0.1 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.4 - '@smithy/util-defaults-mode-node': 4.0.4 - '@smithy/util-endpoints': 3.0.1 - '@smithy/util-middleware': 4.0.1 - '@smithy/util-retry': 4.0.1 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/region-config-resolver@3.734.0': - dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/node-config-provider': 4.0.1 - '@smithy/types': 4.1.0 - '@smithy/util-config-provider': 4.0.0 - '@smithy/util-middleware': 4.0.1 + '@aws-sdk/core': 3.716.0 + '@aws-sdk/types': 3.714.0 + '@aws-sdk/util-endpoints': 3.714.0 + '@smithy/core': 2.5.6 + '@smithy/protocol-http': 4.1.8 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@aws-sdk/token-providers@3.744.0': + '@aws-sdk/region-config-resolver@3.714.0': dependencies: - '@aws-sdk/nested-clients': 3.744.0 - '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.1 - '@smithy/shared-ini-file-loader': 4.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/types@3.734.0': - dependencies: - '@smithy/types': 4.1.0 + '@aws-sdk/types': 3.714.0 + '@smithy/node-config-provider': 3.1.12 + '@smithy/types': 3.7.2 + '@smithy/util-config-provider': 3.0.0 + '@smithy/util-middleware': 3.0.11 tslib: 2.8.1 - '@aws-sdk/util-endpoints@3.743.0': + '@aws-sdk/token-providers@3.714.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0))': dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/types': 4.1.0 - '@smithy/util-endpoints': 3.0.1 + '@aws-sdk/client-sso-oidc': 3.716.0(@aws-sdk/client-sts@3.716.0) + '@aws-sdk/types': 3.714.0 + '@smithy/property-provider': 3.1.11 + '@smithy/shared-ini-file-loader': 3.1.12 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@aws-sdk/util-locate-window@3.723.0': + '@aws-sdk/types@3.714.0': + dependencies: + '@smithy/types': 3.7.2 + tslib: 2.8.1 + + '@aws-sdk/util-endpoints@3.714.0': + dependencies: + '@aws-sdk/types': 3.714.0 + '@smithy/types': 3.7.2 + '@smithy/util-endpoints': 2.1.7 + tslib: 2.8.1 + + '@aws-sdk/util-locate-window@3.693.0': dependencies: tslib: 2.8.1 - '@aws-sdk/util-user-agent-browser@3.734.0': + '@aws-sdk/util-user-agent-browser@3.714.0': dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/types': 4.1.0 + '@aws-sdk/types': 3.714.0 + '@smithy/types': 3.7.2 bowser: 2.11.0 tslib: 2.8.1 - '@aws-sdk/util-user-agent-node@3.744.0': + '@aws-sdk/util-user-agent-node@3.716.0': dependencies: - '@aws-sdk/middleware-user-agent': 3.744.0 - '@aws-sdk/types': 3.734.0 - '@smithy/node-config-provider': 4.0.1 - '@smithy/types': 4.1.0 + '@aws-sdk/middleware-user-agent': 3.716.0 + '@aws-sdk/types': 3.714.0 + '@smithy/node-config-provider': 3.1.12 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@babel/code-frame@7.26.2': @@ -7461,104 +8530,110 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.26.8': {} + '@babel/compat-data@7.26.2': {} - '@babel/core@7.26.8': + '@babel/core@7.26.0': dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.8 - '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.8) - '@babel/helpers': 7.26.7 - '@babel/parser': 7.26.8 - '@babel/template': 7.26.8 - '@babel/traverse': 7.26.8 - '@babel/types': 7.26.8 - '@types/gensync': 1.0.4 + '@babel/generator': 7.26.2 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helpers': 7.26.0 + '@babel/parser': 7.26.2 + '@babel/template': 7.25.9 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 convert-source-map: 2.0.0 - debug: 4.4.0 + debug: 4.3.7 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.26.8': + '@babel/generator@7.26.2': dependencies: - '@babel/parser': 7.26.8 - '@babel/types': 7.26.8 - '@jridgewell/gen-mapping': 0.3.8 + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 + '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.0.2 '@babel/helper-annotate-as-pure@7.25.9': dependencies: - '@babel/types': 7.26.8 + '@babel/types': 7.26.0 - '@babel/helper-compilation-targets@7.26.5': + '@babel/helper-compilation-targets@7.25.9': dependencies: - '@babel/compat-data': 7.26.8 + '@babel/compat-data': 7.26.2 '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.4 + browserslist: 4.24.2 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.8)': + '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.8 + '@babel/core': 7.26.0 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-member-expression-to-functions': 7.25.9 '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.8) + '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/traverse': 7.26.8 + '@babel/traverse': 7.25.9 semver: 6.3.1 transitivePeerDependencies: - supports-color '@babel/helper-member-expression-to-functions@7.25.9': dependencies: - '@babel/traverse': 7.26.8 - '@babel/types': 7.26.8 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.25.9': dependencies: - '@babel/traverse': 7.26.8 - '@babel/types': 7.26.8 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.8)': + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.8 + '@babel/core': 7.26.0 '@babel/helper-module-imports': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.8 + '@babel/traverse': 7.25.9 transitivePeerDependencies: - supports-color '@babel/helper-optimise-call-expression@7.25.9': dependencies: - '@babel/types': 7.26.8 + '@babel/types': 7.26.0 - '@babel/helper-plugin-utils@7.26.5': {} + '@babel/helper-plugin-utils@7.25.9': {} - '@babel/helper-replace-supers@7.26.5(@babel/core@7.26.8)': + '@babel/helper-replace-supers@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.8 + '@babel/core': 7.26.0 '@babel/helper-member-expression-to-functions': 7.25.9 '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.26.8 + '@babel/traverse': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/helper-simple-access@7.25.9': + dependencies: + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.25.9': dependencies: - '@babel/traverse': 7.26.8 - '@babel/types': 7.26.8 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 transitivePeerDependencies: - supports-color @@ -7568,110 +8643,111 @@ snapshots: '@babel/helper-validator-option@7.25.9': {} - '@babel/helpers@7.26.7': + '@babel/helpers@7.26.0': dependencies: - '@babel/template': 7.26.8 - '@babel/types': 7.26.8 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 - '@babel/parser@7.26.8': + '@babel/parser@7.26.2': dependencies: - '@babel/types': 7.26.8 + '@babel/types': 7.26.0 - '@babel/plugin-syntax-decorators@7.25.9(@babel/core@7.26.8)': + '@babel/plugin-syntax-decorators@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.8)': + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.8)': + '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.8)': + '@babel/plugin-transform-modules-commonjs@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.8) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.26.0 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-simple-access': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.8)': + '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.8)': + '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-typescript@7.26.8(@babel/core@7.26.8)': + '@babel/plugin-transform-typescript@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.8 + '@babel/core': 7.26.0 '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.8) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.8) + '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: - supports-color - '@babel/preset-typescript@7.26.0(@babel/core@7.26.8)': + '@babel/preset-typescript@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.8) - '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.8) - '@babel/plugin-transform-typescript': 7.26.8(@babel/core@7.26.8) + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-commonjs': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-typescript': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: - supports-color - '@babel/runtime@7.26.7': + '@babel/runtime@7.26.0': dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.26.8': + '@babel/template@7.25.9': dependencies: '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.8 - '@babel/types': 7.26.8 + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 - '@babel/traverse@7.26.8': + '@babel/traverse@7.25.9': dependencies: '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.8 - '@babel/parser': 7.26.8 - '@babel/template': 7.26.8 - '@babel/types': 7.26.8 - debug: 4.4.0 + '@babel/generator': 7.26.2 + '@babel/parser': 7.26.2 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 + debug: 4.3.7 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.26.8': + '@babel/types@7.26.0': dependencies: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 - '@blitz/eslint-plugin@0.1.0(jiti@1.21.7)(prettier@3.5.0)(typescript@5.7.3)': + '@blitz/eslint-plugin@0.1.0(@types/eslint@8.56.10)(jiti@1.21.6)(prettier@3.4.1)(typescript@5.7.2)': dependencies: - '@stylistic/eslint-plugin-ts': 2.13.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3) - '@typescript-eslint/eslint-plugin': 8.24.0(@typescript-eslint/parser@8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3))(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3) - '@typescript-eslint/parser': 8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3) - '@typescript-eslint/utils': 8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3) + '@stylistic/eslint-plugin-ts': 2.11.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) + '@typescript-eslint/eslint-plugin': 8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2))(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) common-tags: 1.8.2 - eslint: 9.20.1(jiti@1.21.7) - eslint-config-prettier: 9.1.0(eslint@9.20.1(jiti@1.21.7)) - eslint-plugin-jsonc: 2.19.1(eslint@9.20.1(jiti@1.21.7)) - eslint-plugin-prettier: 5.2.3(eslint-config-prettier@9.1.0(eslint@9.20.1(jiti@1.21.7)))(eslint@9.20.1(jiti@1.21.7))(prettier@3.5.0) - globals: 15.14.0 - typescript-eslint: 8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3) + eslint: 9.16.0(jiti@1.21.6) + eslint-config-prettier: 9.1.0(eslint@9.16.0(jiti@1.21.6)) + eslint-plugin-jsonc: 2.18.2(eslint@9.16.0(jiti@1.21.6)) + eslint-plugin-prettier: 5.2.1(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@1.21.6)))(eslint@9.16.0(jiti@1.21.6))(prettier@3.4.1) + globals: 15.13.0 + typescript-eslint: 8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) transitivePeerDependencies: - '@eslint/json' - '@types/eslint' @@ -7680,7 +8756,7 @@ snapshots: - supports-color - typescript - '@bufbuild/protobuf@2.2.3': {} + '@bufbuild/protobuf@2.2.2': {} '@cloudflare/kv-asset-handler@0.1.3': dependencies: @@ -7690,123 +8766,134 @@ snapshots: dependencies: mime: 3.0.0 - '@cloudflare/workerd-darwin-64@1.20250204.0': + '@cloudflare/workerd-darwin-64@1.20241106.1': optional: true - '@cloudflare/workerd-darwin-arm64@1.20250204.0': + '@cloudflare/workerd-darwin-arm64@1.20241106.1': optional: true - '@cloudflare/workerd-linux-64@1.20250204.0': + '@cloudflare/workerd-linux-64@1.20241106.1': optional: true - '@cloudflare/workerd-linux-arm64@1.20250204.0': + '@cloudflare/workerd-linux-arm64@1.20241106.1': optional: true - '@cloudflare/workerd-windows-64@1.20250204.0': + '@cloudflare/workerd-windows-64@1.20241106.1': optional: true - '@cloudflare/workers-types@4.20250204.0': {} - - '@codemirror/autocomplete@6.18.4': + '@cloudflare/workers-shared@0.9.0': dependencies: - '@codemirror/language': 6.10.8 - '@codemirror/state': 6.5.2 - '@codemirror/view': 6.36.2 + mime: 3.0.0 + zod: 3.24.1 + + '@cloudflare/workers-types@4.20241127.0': {} + + '@codemirror/autocomplete@6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3)': + dependencies: + '@codemirror/language': 6.10.6 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.35.0 '@lezer/common': 1.2.3 - '@codemirror/commands@6.8.0': + '@codemirror/commands@6.7.1': dependencies: - '@codemirror/language': 6.10.8 - '@codemirror/state': 6.5.2 - '@codemirror/view': 6.36.2 + '@codemirror/language': 6.10.6 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.35.0 '@lezer/common': 1.2.3 '@codemirror/lang-cpp@6.0.2': dependencies: - '@codemirror/language': 6.10.8 + '@codemirror/language': 6.10.6 '@lezer/cpp': 1.1.2 - '@codemirror/lang-css@6.3.1': + '@codemirror/lang-css@6.3.1(@codemirror/view@6.35.0)': dependencies: - '@codemirror/autocomplete': 6.18.4 - '@codemirror/language': 6.10.8 - '@codemirror/state': 6.5.2 + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3) + '@codemirror/language': 6.10.6 + '@codemirror/state': 6.4.1 '@lezer/common': 1.2.3 - '@lezer/css': 1.1.10 + '@lezer/css': 1.1.9 + transitivePeerDependencies: + - '@codemirror/view' '@codemirror/lang-html@6.4.9': dependencies: - '@codemirror/autocomplete': 6.18.4 - '@codemirror/lang-css': 6.3.1 + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3) + '@codemirror/lang-css': 6.3.1(@codemirror/view@6.35.0) '@codemirror/lang-javascript': 6.2.2 - '@codemirror/language': 6.10.8 - '@codemirror/state': 6.5.2 - '@codemirror/view': 6.36.2 + '@codemirror/language': 6.10.6 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.35.0 '@lezer/common': 1.2.3 - '@lezer/css': 1.1.10 + '@lezer/css': 1.1.9 '@lezer/html': 1.3.10 '@codemirror/lang-javascript@6.2.2': dependencies: - '@codemirror/autocomplete': 6.18.4 - '@codemirror/language': 6.10.8 + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3) + '@codemirror/language': 6.10.6 '@codemirror/lint': 6.8.4 - '@codemirror/state': 6.5.2 - '@codemirror/view': 6.36.2 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.35.0 '@lezer/common': 1.2.3 - '@lezer/javascript': 1.4.21 + '@lezer/javascript': 1.4.20 '@codemirror/lang-json@6.0.1': dependencies: - '@codemirror/language': 6.10.8 - '@lezer/json': 1.0.3 + '@codemirror/language': 6.10.6 + '@lezer/json': 1.0.2 - '@codemirror/lang-markdown@6.3.2': + '@codemirror/lang-markdown@6.3.1': dependencies: - '@codemirror/autocomplete': 6.18.4 + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3) '@codemirror/lang-html': 6.4.9 - '@codemirror/language': 6.10.8 - '@codemirror/state': 6.5.2 - '@codemirror/view': 6.36.2 + '@codemirror/language': 6.10.6 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.35.0 '@lezer/common': 1.2.3 - '@lezer/markdown': 1.4.1 + '@lezer/markdown': 1.3.2 - '@codemirror/lang-python@6.1.7': + '@codemirror/lang-python@6.1.6(@codemirror/view@6.35.0)': dependencies: - '@codemirror/autocomplete': 6.18.4 - '@codemirror/language': 6.10.8 - '@codemirror/state': 6.5.2 + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3) + '@codemirror/language': 6.10.6 + '@codemirror/state': 6.4.1 '@lezer/common': 1.2.3 - '@lezer/python': 1.1.15 + '@lezer/python': 1.1.14 + transitivePeerDependencies: + - '@codemirror/view' - '@codemirror/lang-sass@6.0.2': + '@codemirror/lang-sass@6.0.2(@codemirror/view@6.35.0)': dependencies: - '@codemirror/lang-css': 6.3.1 - '@codemirror/language': 6.10.8 - '@codemirror/state': 6.5.2 + '@codemirror/lang-css': 6.3.1(@codemirror/view@6.35.0) + '@codemirror/language': 6.10.6 + '@codemirror/state': 6.4.1 '@lezer/common': 1.2.3 '@lezer/sass': 1.0.7 + transitivePeerDependencies: + - '@codemirror/view' '@codemirror/lang-vue@0.1.3': dependencies: '@codemirror/lang-html': 6.4.9 '@codemirror/lang-javascript': 6.2.2 - '@codemirror/language': 6.10.8 + '@codemirror/language': 6.10.6 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@codemirror/lang-wast@6.0.2': dependencies: - '@codemirror/language': 6.10.8 + '@codemirror/language': 6.10.6 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 - '@codemirror/language@6.10.8': + '@codemirror/language@6.10.6': dependencies: - '@codemirror/state': 6.5.2 - '@codemirror/view': 6.36.2 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.35.0 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 @@ -7814,23 +8901,21 @@ snapshots: '@codemirror/lint@6.8.4': dependencies: - '@codemirror/state': 6.5.2 - '@codemirror/view': 6.36.2 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.35.0 crelt: 1.0.6 '@codemirror/search@6.5.8': dependencies: - '@codemirror/state': 6.5.2 - '@codemirror/view': 6.36.2 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.35.0 crelt: 1.0.6 - '@codemirror/state@6.5.2': - dependencies: - '@marijn/find-cluster-break': 1.0.2 + '@codemirror/state@6.4.1': {} - '@codemirror/view@6.36.2': + '@codemirror/view@6.35.0': dependencies: - '@codemirror/state': 6.5.2 + '@codemirror/state': 6.4.1 style-mod: 4.1.2 w3c-keyname: 2.2.8 @@ -7858,10 +8943,81 @@ snapshots: '@csstools/css-tokenizer@3.0.3': {} - '@emnapi/runtime@1.3.1': + '@develar/schema-utils@2.6.5': dependencies: - tslib: 2.8.1 - optional: true + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + + '@electron/asar@3.2.18': + dependencies: + commander: 5.1.0 + glob: 7.2.3 + minimatch: 3.1.2 + + '@electron/get@2.0.3': + dependencies: + debug: 4.3.7 + env-paths: 2.2.1 + fs-extra: 8.1.0 + got: 11.8.6 + progress: 2.0.3 + semver: 6.3.1 + sumchecker: 3.0.1 + optionalDependencies: + global-agent: 3.0.0 + transitivePeerDependencies: + - supports-color + + '@electron/notarize@2.5.0': + dependencies: + debug: 4.3.7 + fs-extra: 9.1.0 + promise-retry: 2.0.1 + transitivePeerDependencies: + - supports-color + + '@electron/osx-sign@1.3.1': + dependencies: + compare-version: 0.1.2 + debug: 4.3.7 + fs-extra: 10.1.0 + isbinaryfile: 4.0.10 + minimist: 1.2.8 + plist: 3.1.0 + transitivePeerDependencies: + - supports-color + + '@electron/rebuild@3.6.1': + dependencies: + '@malept/cross-spawn-promise': 2.0.0 + chalk: 4.1.2 + debug: 4.3.7 + detect-libc: 2.0.3 + fs-extra: 10.1.0 + got: 11.8.6 + node-abi: 3.74.0 + node-api-version: 0.2.0 + node-gyp: 9.4.1 + ora: 5.4.1 + read-binary-file-arch: 1.0.6 + semver: 7.6.3 + tar: 6.2.1 + yargs: 17.7.2 + transitivePeerDependencies: + - bluebird + - supports-color + + '@electron/universal@2.0.1': + dependencies: + '@electron/asar': 3.2.18 + '@malept/cross-spawn-promise': 2.0.0 + debug: 4.3.7 + dir-compare: 4.2.0 + fs-extra: 11.3.0 + minimatch: 9.0.5 + plist: 3.1.0 + transitivePeerDependencies: + - supports-color '@emotion/hash@0.9.2': {} @@ -8148,85 +9304,80 @@ snapshots: '@esbuild/win32-x64@0.23.1': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.20.1(jiti@1.21.7))': + '@eslint-community/eslint-utils@4.4.1(eslint@9.16.0(jiti@1.21.6))': dependencies: - eslint: 9.20.1(jiti@1.21.7) + eslint: 9.16.0(jiti@1.21.6) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.19.2': + '@eslint/config-array@0.19.0': dependencies: - '@eslint/object-schema': 2.1.6 - debug: 4.4.0 + '@eslint/object-schema': 2.1.4 + debug: 4.3.7 minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@eslint/core@0.10.0': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/core@0.11.0': - dependencies: - '@types/json-schema': 7.0.15 + '@eslint/core@0.9.0': {} '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 - debug: 4.4.0 + debug: 4.3.7 espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 - import-fresh: 3.3.1 + import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - '@eslint/js@9.20.0': {} + '@eslint/js@9.16.0': {} - '@eslint/object-schema@2.1.6': {} + '@eslint/object-schema@2.1.4': {} - '@eslint/plugin-kit@0.2.5': + '@eslint/plugin-kit@0.2.3': dependencies: - '@eslint/core': 0.10.0 levn: 0.4.1 '@fastify/busboy@2.1.1': {} - '@floating-ui/core@1.6.9': + '@floating-ui/core@1.6.8': dependencies: - '@floating-ui/utils': 0.2.9 + '@floating-ui/utils': 0.2.8 - '@floating-ui/dom@1.6.13': + '@floating-ui/dom@1.6.12': dependencies: - '@floating-ui/core': 1.6.9 - '@floating-ui/utils': 0.2.9 + '@floating-ui/core': 1.6.8 + '@floating-ui/utils': 0.2.8 '@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@floating-ui/dom': 1.6.13 + '@floating-ui/dom': 1.6.12 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) '@floating-ui/react@0.26.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@floating-ui/utils': 0.2.9 + '@floating-ui/utils': 0.2.8 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) tabbable: 6.2.0 - '@floating-ui/utils@0.2.9': {} + '@floating-ui/utils@0.2.8': {} + + '@gar/promisify@1.1.3': {} '@headlessui/react@2.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@floating-ui/react': 0.26.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/focus': 3.19.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tanstack/react-virtual': 3.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/focus': 3.20.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.24.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-virtual': 3.13.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -8243,104 +9394,28 @@ snapshots: '@humanwhocodes/retry@0.4.1': {} - '@iconify-json/ph@1.2.2': + '@iconify-json/ph@1.2.1': dependencies: '@iconify/types': 2.0.0 - '@iconify-json/svg-spinners@1.2.2': + '@iconify-json/svg-spinners@1.2.1': dependencies: '@iconify/types': 2.0.0 '@iconify/types@2.0.0': {} - '@iconify/utils@2.3.0': + '@iconify/utils@2.1.33': dependencies: - '@antfu/install-pkg': 1.0.0 - '@antfu/utils': 8.1.0 + '@antfu/install-pkg': 0.4.1 + '@antfu/utils': 0.7.10 '@iconify/types': 2.0.0 - debug: 4.4.0 - globals: 15.14.0 + debug: 4.3.7 kolorist: 1.8.0 - local-pkg: 1.0.0 - mlly: 1.7.4 + local-pkg: 0.5.1 + mlly: 1.7.3 transitivePeerDependencies: - supports-color - '@img/sharp-darwin-arm64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.0.4 - optional: true - - '@img/sharp-darwin-x64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.0.4 - optional: true - - '@img/sharp-libvips-darwin-arm64@1.0.4': - optional: true - - '@img/sharp-libvips-darwin-x64@1.0.4': - optional: true - - '@img/sharp-libvips-linux-arm64@1.0.4': - optional: true - - '@img/sharp-libvips-linux-arm@1.0.5': - optional: true - - '@img/sharp-libvips-linux-s390x@1.0.4': - optional: true - - '@img/sharp-libvips-linux-x64@1.0.4': - optional: true - - '@img/sharp-libvips-linuxmusl-arm64@1.0.4': - optional: true - - '@img/sharp-libvips-linuxmusl-x64@1.0.4': - optional: true - - '@img/sharp-linux-arm64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.0.4 - optional: true - - '@img/sharp-linux-arm@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.0.5 - optional: true - - '@img/sharp-linux-s390x@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.0.4 - optional: true - - '@img/sharp-linux-x64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.0.4 - optional: true - - '@img/sharp-linuxmusl-arm64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 - optional: true - - '@img/sharp-linuxmusl-x64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.0.4 - optional: true - - '@img/sharp-wasm32@0.33.5': - dependencies: - '@emnapi/runtime': 1.3.1 - optional: true - - '@img/sharp-win32-ia32@0.33.5': - optional: true - - '@img/sharp-win32-x64@0.33.5': - optional: true - '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -8350,7 +9425,7 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@jridgewell/gen-mapping@0.3.8': + '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.5.0 @@ -8384,7 +9459,7 @@ snapshots: '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 - '@lezer/css@1.1.10': + '@lezer/css@1.1.9': dependencies: '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 @@ -8400,13 +9475,13 @@ snapshots: '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 - '@lezer/javascript@1.4.21': + '@lezer/javascript@1.4.20': dependencies: '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 - '@lezer/json@1.0.3': + '@lezer/json@1.0.2': dependencies: '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 @@ -8416,13 +9491,12 @@ snapshots: dependencies: '@lezer/common': 1.2.3 - '@lezer/markdown@1.4.1': + '@lezer/markdown@1.3.2': dependencies: '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 - '@marijn/buildtool': 0.1.6 - '@lezer/python@1.1.15': + '@lezer/python@1.1.14': dependencies: '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 @@ -8434,16 +9508,18 @@ snapshots: '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 - '@marijn/buildtool@0.1.6': + '@malept/cross-spawn-promise@2.0.0': dependencies: - '@types/mocha': 9.1.1 - acorn: 8.14.0 - acorn-walk: 8.3.4 - rollup: 3.29.5 - rollup-plugin-dts: 5.3.1(rollup@3.29.5)(typescript@5.7.3) - typescript: 5.7.3 + cross-spawn: 7.0.6 - '@marijn/find-cluster-break@1.0.2': {} + '@malept/flatpak-bundler@0.4.0': + dependencies: + debug: 4.3.7 + fs-extra: 9.1.0 + lodash: 4.17.21 + tmp-promise: 3.0.3 + transitivePeerDependencies: + - supports-color '@mdx-js/mdx@2.3.0': dependencies: @@ -8482,11 +9558,16 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.0 + fastq: 1.17.1 + + '@npmcli/fs@2.1.2': + dependencies: + '@gar/promisify': 1.1.3 + semver: 7.6.3 '@npmcli/fs@3.1.1': dependencies: - semver: 7.7.1 + semver: 7.6.3 '@npmcli/git@4.1.0': dependencies: @@ -8496,11 +9577,16 @@ snapshots: proc-log: 3.0.0 promise-inflight: 1.0.1 promise-retry: 2.0.1 - semver: 7.7.1 + semver: 7.6.3 which: 3.0.1 transitivePeerDependencies: - bluebird + '@npmcli/move-file@2.0.1': + dependencies: + mkdirp: 1.0.4 + rimraf: 3.0.2 + '@npmcli/package-json@4.0.1': dependencies: '@npmcli/git': 4.1.0 @@ -8509,7 +9595,7 @@ snapshots: json-parse-even-better-errors: 3.0.2 normalize-package-data: 5.0.0 proc-log: 3.0.0 - semver: 7.7.1 + semver: 7.6.3 transitivePeerDependencies: - bluebird @@ -8517,67 +9603,66 @@ snapshots: dependencies: which: 3.0.1 - '@octokit/auth-token@5.1.2': {} + '@octokit/auth-token@5.1.1': {} - '@octokit/core@6.1.3': + '@octokit/core@6.1.2': dependencies: - '@octokit/auth-token': 5.1.2 - '@octokit/graphql': 8.2.0 - '@octokit/request': 9.2.0 - '@octokit/request-error': 6.1.6 - '@octokit/types': 13.8.0 + '@octokit/auth-token': 5.1.1 + '@octokit/graphql': 8.1.1 + '@octokit/request': 9.1.3 + '@octokit/request-error': 6.1.5 + '@octokit/types': 13.6.2 before-after-hook: 3.0.2 universal-user-agent: 7.0.2 - '@octokit/endpoint@10.1.2': + '@octokit/endpoint@10.1.1': dependencies: - '@octokit/types': 13.8.0 + '@octokit/types': 13.6.2 universal-user-agent: 7.0.2 - '@octokit/graphql@8.2.0': + '@octokit/graphql@8.1.1': dependencies: - '@octokit/request': 9.2.0 - '@octokit/types': 13.8.0 + '@octokit/request': 9.1.3 + '@octokit/types': 13.6.2 universal-user-agent: 7.0.2 - '@octokit/openapi-types@23.0.1': {} + '@octokit/openapi-types@22.2.0': {} - '@octokit/plugin-paginate-rest@11.4.0(@octokit/core@6.1.3)': + '@octokit/plugin-paginate-rest@11.3.6(@octokit/core@6.1.2)': dependencies: - '@octokit/core': 6.1.3 - '@octokit/types': 13.8.0 + '@octokit/core': 6.1.2 + '@octokit/types': 13.6.2 - '@octokit/plugin-request-log@5.3.1(@octokit/core@6.1.3)': + '@octokit/plugin-request-log@5.3.1(@octokit/core@6.1.2)': dependencies: - '@octokit/core': 6.1.3 + '@octokit/core': 6.1.2 - '@octokit/plugin-rest-endpoint-methods@13.3.1(@octokit/core@6.1.3)': + '@octokit/plugin-rest-endpoint-methods@13.2.6(@octokit/core@6.1.2)': dependencies: - '@octokit/core': 6.1.3 - '@octokit/types': 13.8.0 + '@octokit/core': 6.1.2 + '@octokit/types': 13.6.2 - '@octokit/request-error@6.1.6': + '@octokit/request-error@6.1.5': dependencies: - '@octokit/types': 13.8.0 + '@octokit/types': 13.6.2 - '@octokit/request@9.2.0': + '@octokit/request@9.1.3': dependencies: - '@octokit/endpoint': 10.1.2 - '@octokit/request-error': 6.1.6 - '@octokit/types': 13.8.0 - fast-content-type-parse: 2.0.1 + '@octokit/endpoint': 10.1.1 + '@octokit/request-error': 6.1.5 + '@octokit/types': 13.6.2 universal-user-agent: 7.0.2 - '@octokit/rest@21.1.0': + '@octokit/rest@21.0.2': dependencies: - '@octokit/core': 6.1.3 - '@octokit/plugin-paginate-rest': 11.4.0(@octokit/core@6.1.3) - '@octokit/plugin-request-log': 5.3.1(@octokit/core@6.1.3) - '@octokit/plugin-rest-endpoint-methods': 13.3.1(@octokit/core@6.1.3) + '@octokit/core': 6.1.2 + '@octokit/plugin-paginate-rest': 11.3.6(@octokit/core@6.1.2) + '@octokit/plugin-request-log': 5.3.1(@octokit/core@6.1.2) + '@octokit/plugin-rest-endpoint-methods': 13.2.6(@octokit/core@6.1.2) - '@octokit/types@13.8.0': + '@octokit/types@13.6.2': dependencies: - '@octokit/openapi-types': 23.0.1 + '@octokit/openapi-types': 22.2.0 '@openrouter/ai-sdk-provider@0.0.5(zod@3.24.1)': dependencies: @@ -8601,439 +9686,596 @@ snapshots: '@radix-ui/number@1.1.0': {} + '@radix-ui/primitive@1.1.0': {} + '@radix-ui/primitive@1.1.1': {} - '@radix-ui/react-arrow@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-collapsible@1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-arrow@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 + + '@radix-ui/react-collapsible@1.1.3(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-collection@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-collection@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.2(@types/react@18.3.12)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 + + '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.12)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.12 - '@radix-ui/react-context-menu@2.2.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.12)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.12 + + '@radix-ui/react-context-menu@2.2.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-menu': 2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 + + '@radix-ui/react-context@1.1.0(@types/react@18.3.12)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.12 + + '@radix-ui/react-context@1.1.1(@types/react@18.3.12)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.12 + + '@radix-ui/react-dialog@1.1.6(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-menu': 2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-context@1.1.1(@types/react@18.3.18)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-dialog@1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.2(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.6.3(@types/react@18.3.18)(react@18.3.1) + react-remove-scroll: 2.6.3(@types/react@18.3.12)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-direction@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-direction@1.1.0(@types/react@18.3.12)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.12 - '@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dismissable-layer@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.12)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 + + '@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.12)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-dropdown-menu@2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dropdown-menu@2.1.6(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-menu': 2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-menu': 2.1.6(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.12)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.12 - '@radix-ui/react-focus-scope@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-id@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-focus-scope@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-label@2.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-menu@2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-id@1.1.0(@types/react@18.3.12)(react@18.3.1)': dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-popper': 1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.12 + + '@radix-ui/react-label@2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 + + '@radix-ui/react-menu@2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.6.3(@types/react@18.3.18)(react@18.3.1) + react-remove-scroll: 2.6.0(@types/react@18.3.12)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-popover@1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-menu@2.1.6(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-popper': 1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-collection': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-popper': 1.2.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.2(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.6.3(@types/react@18.3.18)(react@18.3.1) + react-remove-scroll: 2.6.3(@types/react@18.3.12)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-popper@1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-popover@1.1.6(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-popper': 1.2.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.2(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1) + aria-hidden: 1.2.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.6.3(@types/react@18.3.12)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 + + '@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.12)(react@18.3.1) '@radix-ui/rect': 1.1.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-portal@1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-popper@1.2.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-arrow': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/rect': 1.1.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-presence@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-primitive@2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.1.4(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-progress@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-presence@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-roving-focus@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-presence@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 + + '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 + + '@radix-ui/react-primitive@2.0.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-slot': 1.1.2(@types/react@18.3.12)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 + + '@radix-ui/react-progress@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 + + '@radix-ui/react-roving-focus@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 + + '@radix-ui/react-roving-focus@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-collection': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-scroll-area@1.2.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-scroll-area@1.2.3(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/number': 1.1.0 '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-separator@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-separator@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-slot@1.1.2(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-slot@1.1.0(@types/react@18.3.12)(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.12 - '@radix-ui/react-switch@1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-slot@1.1.2(@types/react@18.3.12)(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.12 + + '@radix-ui/react-switch@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.12)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 + + '@radix-ui/react-tabs@1.1.3(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-tabs@1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-tooltip@1.1.4(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-tooltip@1.1.8(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-popper': 1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.12)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.12 - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.12)(react@18.3.1)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.12 - '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.12)(react@18.3.1)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.12 - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.12)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.12 - '@radix-ui/react-use-previous@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-previous@1.1.0(@types/react@18.3.12)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.12 - '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.12)(react@18.3.1)': dependencies: '@radix-ui/rect': 1.1.0 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.12 - '@radix-ui/react-use-size@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-size@1.1.0(@types/react@18.3.12)(react@18.3.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.12 - '@radix-ui/react-visually-hidden@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-visually-hidden@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 '@radix-ui/rect@1.1.0': {} - '@react-aria/focus@3.19.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/focus@3.20.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/interactions': 3.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-types/shared': 3.27.0(react@18.3.1) + '@react-aria/interactions': 3.24.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.28.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-types/shared': 3.28.0(react@18.3.1) '@swc/helpers': 0.5.15 clsx: 2.1.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/interactions@3.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/interactions@3.24.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/ssr': 3.9.7(react@18.3.1) - '@react-aria/utils': 3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-types/shared': 3.27.0(react@18.3.1) + '@react-aria/utils': 3.28.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-stately/flags': 3.1.0 + '@react-types/shared': 3.28.0(react@18.3.1) '@swc/helpers': 0.5.15 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -9043,11 +10285,12 @@ snapshots: '@swc/helpers': 0.5.15 react: 18.3.1 - '@react-aria/utils@3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/utils@3.28.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/ssr': 3.9.7(react@18.3.1) + '@react-stately/flags': 3.1.0 '@react-stately/utils': 3.10.5(react@18.3.1) - '@react-types/shared': 3.27.0(react@18.3.1) + '@react-types/shared': 3.28.0(react@18.3.1) '@swc/helpers': 0.5.15 clsx: 2.1.1 react: 18.3.1 @@ -9059,60 +10302,64 @@ snapshots: '@react-dnd/shallowequal@4.0.2': {} + '@react-stately/flags@3.1.0': + dependencies: + '@swc/helpers': 0.5.15 + '@react-stately/utils@3.10.5(react@18.3.1)': dependencies: '@swc/helpers': 0.5.15 react: 18.3.1 - '@react-types/shared@3.27.0(react@18.3.1)': + '@react-types/shared@3.28.0(react@18.3.1)': dependencies: react: 18.3.1 - '@remix-run/cloudflare-pages@2.15.3(@cloudflare/workers-types@4.20250204.0)(typescript@5.7.3)': + '@remix-run/cloudflare-pages@2.16.0(@cloudflare/workers-types@4.20241127.0)(typescript@5.7.2)': dependencies: - '@cloudflare/workers-types': 4.20250204.0 - '@remix-run/cloudflare': 2.15.3(@cloudflare/workers-types@4.20250204.0)(typescript@5.7.3) + '@cloudflare/workers-types': 4.20241127.0 + '@remix-run/cloudflare': 2.16.0(@cloudflare/workers-types@4.20241127.0)(typescript@5.7.2) optionalDependencies: - typescript: 5.7.3 + typescript: 5.7.2 - '@remix-run/cloudflare@2.15.3(@cloudflare/workers-types@4.20250204.0)(typescript@5.7.3)': + '@remix-run/cloudflare@2.16.0(@cloudflare/workers-types@4.20241127.0)(typescript@5.7.2)': dependencies: '@cloudflare/kv-asset-handler': 0.1.3 - '@cloudflare/workers-types': 4.20250204.0 - '@remix-run/server-runtime': 2.15.3(typescript@5.7.3) + '@cloudflare/workers-types': 4.20241127.0 + '@remix-run/server-runtime': 2.16.0(typescript@5.7.2) optionalDependencies: - typescript: 5.7.3 + typescript: 5.7.2 - '@remix-run/dev@2.15.3(@remix-run/react@2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3))(@types/node@22.13.1)(sass-embedded@1.83.4)(typescript@5.7.3)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4))(wrangler@3.108.0(@cloudflare/workers-types@4.20250204.0))': + '@remix-run/dev@2.16.0(@remix-run/react@2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.2))(@remix-run/serve@2.16.0(typescript@5.7.2))(@types/node@22.10.1)(sass-embedded@1.81.0)(typescript@5.7.2)(vite@5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0))(wrangler@3.91.0(@cloudflare/workers-types@4.20241127.0))': dependencies: - '@babel/core': 7.26.8 - '@babel/generator': 7.26.8 - '@babel/parser': 7.26.8 - '@babel/plugin-syntax-decorators': 7.25.9(@babel/core@7.26.8) - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.8) - '@babel/preset-typescript': 7.26.0(@babel/core@7.26.8) - '@babel/traverse': 7.26.8 - '@babel/types': 7.26.8 + '@babel/core': 7.26.0 + '@babel/generator': 7.26.2 + '@babel/parser': 7.26.2 + '@babel/plugin-syntax-decorators': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 '@mdx-js/mdx': 2.3.0 '@npmcli/package-json': 4.0.1 - '@remix-run/node': 2.15.3(typescript@5.7.3) - '@remix-run/react': 2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3) - '@remix-run/router': 1.22.0 - '@remix-run/server-runtime': 2.15.3(typescript@5.7.3) + '@remix-run/node': 2.16.0(typescript@5.7.2) + '@remix-run/react': 2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.2) + '@remix-run/router': 1.23.0 + '@remix-run/server-runtime': 2.16.0(typescript@5.7.2) '@types/mdx': 2.0.13 - '@vanilla-extract/integration': 6.5.0(@types/node@22.13.1)(sass-embedded@1.83.4) + '@vanilla-extract/integration': 6.5.0(@types/node@22.10.1)(sass-embedded@1.81.0) arg: 5.0.2 cacache: 17.1.4 chalk: 4.1.2 chokidar: 3.6.0 cross-spawn: 7.0.6 dotenv: 16.4.7 - es-module-lexer: 1.6.0 + es-module-lexer: 1.5.4 esbuild: 0.17.6 esbuild-plugins-node-modules-polyfill: 1.6.8(esbuild@0.17.6) execa: 5.1.1 exit-hook: 2.2.1 - express: 4.21.2 + express: 4.21.1 fs-extra: 10.1.0 get-port: 5.1.1 gunzip-maybe: 1.4.2 @@ -9122,29 +10369,31 @@ snapshots: lodash.debounce: 4.0.8 minimatch: 9.0.5 ora: 5.4.1 + pathe: 1.1.2 picocolors: 1.1.1 picomatch: 2.3.1 pidtree: 0.6.0 - postcss: 8.5.2 - postcss-discard-duplicates: 5.1.0(postcss@8.5.2) - postcss-load-config: 4.0.2(postcss@8.5.2) - postcss-modules: 6.0.1(postcss@8.5.2) + postcss: 8.4.49 + postcss-discard-duplicates: 5.1.0(postcss@8.4.49) + postcss-load-config: 4.0.2(postcss@8.4.49) + postcss-modules: 6.0.1(postcss@8.4.49) prettier: 2.8.8 pretty-ms: 7.0.1 react-refresh: 0.14.2 remark-frontmatter: 4.0.1 remark-mdx-frontmatter: 1.1.1 - semver: 7.7.1 + semver: 7.6.3 set-cookie-parser: 2.7.1 - tar-fs: 2.1.2 + tar-fs: 2.1.1 tsconfig-paths: 4.2.0 - valibot: 0.41.0(typescript@5.7.3) - vite-node: 1.6.1(@types/node@22.13.1)(sass-embedded@1.83.4) + valibot: 0.41.0(typescript@5.7.2) + vite-node: 3.0.0-beta.2(@types/node@22.10.1)(sass-embedded@1.81.0) ws: 7.5.10 optionalDependencies: - typescript: 5.7.3 - vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4) - wrangler: 3.108.0(@cloudflare/workers-types@4.20250204.0) + '@remix-run/serve': 2.16.0(typescript@5.7.2) + typescript: 5.7.2 + vite: 5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0) + wrangler: 3.91.0(@cloudflare/workers-types@4.20241127.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -9161,33 +10410,68 @@ snapshots: - ts-node - utf-8-validate - '@remix-run/node@2.15.3(typescript@5.7.3)': + '@remix-run/express@2.16.0(express@4.21.1)(typescript@5.7.2)': dependencies: - '@remix-run/server-runtime': 2.15.3(typescript@5.7.3) + '@remix-run/node': 2.16.0(typescript@5.7.2) + express: 4.21.1 + optionalDependencies: + typescript: 5.7.2 + + '@remix-run/node@2.15.3(typescript@5.7.2)': + dependencies: + '@remix-run/server-runtime': 2.15.3(typescript@5.7.2) '@remix-run/web-fetch': 4.4.2 '@web3-storage/multipart-parser': 1.0.0 cookie-signature: 1.2.2 source-map-support: 0.5.21 stream-slice: 0.1.2 - undici: 6.21.1 + undici: 6.21.0 optionalDependencies: - typescript: 5.7.3 + typescript: 5.7.2 - '@remix-run/react@2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)': + '@remix-run/node@2.16.0(typescript@5.7.2)': dependencies: - '@remix-run/router': 1.22.0 - '@remix-run/server-runtime': 2.15.3(typescript@5.7.3) + '@remix-run/server-runtime': 2.16.0(typescript@5.7.2) + '@remix-run/web-fetch': 4.4.2 + '@web3-storage/multipart-parser': 1.0.0 + cookie-signature: 1.2.2 + source-map-support: 0.5.21 + stream-slice: 0.1.2 + undici: 6.21.0 + optionalDependencies: + typescript: 5.7.2 + + '@remix-run/react@2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.2)': + dependencies: + '@remix-run/router': 1.23.0 + '@remix-run/server-runtime': 2.16.0(typescript@5.7.2) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-router: 6.29.0(react@18.3.1) - react-router-dom: 6.29.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-router: 6.30.0(react@18.3.1) + react-router-dom: 6.30.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) turbo-stream: 2.4.0 optionalDependencies: - typescript: 5.7.3 + typescript: 5.7.2 '@remix-run/router@1.22.0': {} - '@remix-run/server-runtime@2.15.3(typescript@5.7.3)': + '@remix-run/router@1.23.0': {} + + '@remix-run/serve@2.16.0(typescript@5.7.2)': + dependencies: + '@remix-run/express': 2.16.0(express@4.21.1)(typescript@5.7.2) + '@remix-run/node': 2.16.0(typescript@5.7.2) + chokidar: 3.6.0 + compression: 1.8.0 + express: 4.21.1 + get-port: 5.1.1 + morgan: 1.10.0 + source-map-support: 0.5.21 + transitivePeerDependencies: + - supports-color + - typescript + + '@remix-run/server-runtime@2.15.3(typescript@5.7.2)': dependencies: '@remix-run/router': 1.22.0 '@types/cookie': 0.6.0 @@ -9197,7 +10481,19 @@ snapshots: source-map: 0.7.4 turbo-stream: 2.4.0 optionalDependencies: - typescript: 5.7.3 + typescript: 5.7.2 + + '@remix-run/server-runtime@2.16.0(typescript@5.7.2)': + dependencies: + '@remix-run/router': 1.23.0 + '@types/cookie': 0.6.0 + '@web3-storage/multipart-parser': 1.0.0 + cookie: 0.6.0 + set-cookie-parser: 2.7.1 + source-map: 0.7.4 + turbo-stream: 2.4.0 + optionalDependencies: + typescript: 5.7.2 '@remix-run/web-blob@3.1.0': dependencies: @@ -9227,330 +10523,321 @@ snapshots: dependencies: web-streams-polyfill: 3.3.3 - '@rollup/plugin-inject@5.0.5(rollup@3.29.5)': + '@rollup/plugin-inject@5.0.5(rollup@4.28.0)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@3.29.5) + '@rollup/pluginutils': 5.1.3(rollup@4.28.0) estree-walker: 2.0.2 - magic-string: 0.30.17 + magic-string: 0.30.14 optionalDependencies: - rollup: 3.29.5 + rollup: 4.28.0 - '@rollup/pluginutils@5.1.4(rollup@3.29.5)': + '@rollup/pluginutils@5.1.3(rollup@4.28.0)': dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 3.29.5 + rollup: 4.28.0 - '@rollup/rollup-android-arm-eabi@4.34.6': + '@rollup/rollup-android-arm-eabi@4.28.0': optional: true - '@rollup/rollup-android-arm64@4.34.6': + '@rollup/rollup-android-arm64@4.28.0': optional: true - '@rollup/rollup-darwin-arm64@4.34.6': + '@rollup/rollup-darwin-arm64@4.28.0': optional: true - '@rollup/rollup-darwin-x64@4.34.6': + '@rollup/rollup-darwin-x64@4.28.0': optional: true - '@rollup/rollup-freebsd-arm64@4.34.6': + '@rollup/rollup-freebsd-arm64@4.28.0': optional: true - '@rollup/rollup-freebsd-x64@4.34.6': + '@rollup/rollup-freebsd-x64@4.28.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.34.6': + '@rollup/rollup-linux-arm-gnueabihf@4.28.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.34.6': + '@rollup/rollup-linux-arm-musleabihf@4.28.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.34.6': + '@rollup/rollup-linux-arm64-gnu@4.28.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.34.6': + '@rollup/rollup-linux-arm64-musl@4.28.0': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.34.6': + '@rollup/rollup-linux-powerpc64le-gnu@4.28.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.34.6': + '@rollup/rollup-linux-riscv64-gnu@4.28.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.34.6': + '@rollup/rollup-linux-s390x-gnu@4.28.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.34.6': + '@rollup/rollup-linux-x64-gnu@4.28.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.34.6': + '@rollup/rollup-linux-x64-musl@4.28.0': optional: true - '@rollup/rollup-linux-x64-musl@4.34.6': + '@rollup/rollup-win32-arm64-msvc@4.28.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.34.6': + '@rollup/rollup-win32-ia32-msvc@4.28.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.34.6': + '@rollup/rollup-win32-x64-msvc@4.28.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.34.6': - optional: true - - '@shikijs/core@1.29.2': + '@shikijs/core@1.24.0': dependencies: - '@shikijs/engine-javascript': 1.29.2 - '@shikijs/engine-oniguruma': 1.29.2 - '@shikijs/types': 1.29.2 - '@shikijs/vscode-textmate': 10.0.1 + '@shikijs/engine-javascript': 1.24.0 + '@shikijs/engine-oniguruma': 1.24.0 + '@shikijs/types': 1.24.0 + '@shikijs/vscode-textmate': 9.3.0 '@types/hast': 3.0.4 - hast-util-to-html: 9.0.4 + hast-util-to-html: 9.0.3 - '@shikijs/engine-javascript@1.29.2': + '@shikijs/engine-javascript@1.24.0': dependencies: - '@shikijs/types': 1.29.2 - '@shikijs/vscode-textmate': 10.0.1 - oniguruma-to-es: 2.3.0 + '@shikijs/types': 1.24.0 + '@shikijs/vscode-textmate': 9.3.0 + oniguruma-to-es: 0.7.0 - '@shikijs/engine-oniguruma@1.29.2': + '@shikijs/engine-oniguruma@1.24.0': dependencies: - '@shikijs/types': 1.29.2 - '@shikijs/vscode-textmate': 10.0.1 + '@shikijs/types': 1.24.0 + '@shikijs/vscode-textmate': 9.3.0 - '@shikijs/langs@1.29.2': + '@shikijs/types@1.24.0': dependencies: - '@shikijs/types': 1.29.2 - - '@shikijs/themes@1.29.2': - dependencies: - '@shikijs/types': 1.29.2 - - '@shikijs/types@1.29.2': - dependencies: - '@shikijs/vscode-textmate': 10.0.1 + '@shikijs/vscode-textmate': 9.3.0 '@types/hast': 3.0.4 - '@shikijs/vscode-textmate@10.0.1': {} + '@shikijs/vscode-textmate@9.3.0': {} - '@smithy/abort-controller@4.0.1': + '@sindresorhus/is@4.6.0': {} + + '@smithy/abort-controller@3.1.9': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/config-resolver@4.0.1': + '@smithy/config-resolver@3.0.13': dependencies: - '@smithy/node-config-provider': 4.0.1 - '@smithy/types': 4.1.0 - '@smithy/util-config-provider': 4.0.0 - '@smithy/util-middleware': 4.0.1 + '@smithy/node-config-provider': 3.1.12 + '@smithy/types': 3.7.2 + '@smithy/util-config-provider': 3.0.0 + '@smithy/util-middleware': 3.0.11 tslib: 2.8.1 - '@smithy/core@3.1.2': + '@smithy/core@2.5.6': dependencies: - '@smithy/middleware-serde': 4.0.2 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-middleware': 4.0.1 - '@smithy/util-stream': 4.0.2 - '@smithy/util-utf8': 4.0.0 + '@smithy/middleware-serde': 3.0.11 + '@smithy/protocol-http': 4.1.8 + '@smithy/types': 3.7.2 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-middleware': 3.0.11 + '@smithy/util-stream': 3.3.3 + '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 - '@smithy/credential-provider-imds@4.0.1': + '@smithy/credential-provider-imds@3.2.8': dependencies: - '@smithy/node-config-provider': 4.0.1 - '@smithy/property-provider': 4.0.1 - '@smithy/types': 4.1.0 - '@smithy/url-parser': 4.0.1 + '@smithy/node-config-provider': 3.1.12 + '@smithy/property-provider': 3.1.11 + '@smithy/types': 3.7.2 + '@smithy/url-parser': 3.0.11 tslib: 2.8.1 - '@smithy/eventstream-codec@4.0.1': + '@smithy/eventstream-codec@3.1.10': dependencies: '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 4.1.0 - '@smithy/util-hex-encoding': 4.0.0 + '@smithy/types': 3.7.2 + '@smithy/util-hex-encoding': 3.0.0 tslib: 2.8.1 - '@smithy/eventstream-serde-browser@4.0.1': + '@smithy/eventstream-serde-browser@3.0.14': dependencies: - '@smithy/eventstream-serde-universal': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/eventstream-serde-universal': 3.0.13 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/eventstream-serde-config-resolver@4.0.1': + '@smithy/eventstream-serde-config-resolver@3.0.11': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/eventstream-serde-node@4.0.1': + '@smithy/eventstream-serde-node@3.0.13': dependencies: - '@smithy/eventstream-serde-universal': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/eventstream-serde-universal': 3.0.13 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/eventstream-serde-universal@4.0.1': + '@smithy/eventstream-serde-universal@3.0.13': dependencies: - '@smithy/eventstream-codec': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/eventstream-codec': 3.1.10 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/fetch-http-handler@5.0.1': + '@smithy/fetch-http-handler@4.1.2': dependencies: - '@smithy/protocol-http': 5.0.1 - '@smithy/querystring-builder': 4.0.1 - '@smithy/types': 4.1.0 - '@smithy/util-base64': 4.0.0 + '@smithy/protocol-http': 4.1.8 + '@smithy/querystring-builder': 3.0.11 + '@smithy/types': 3.7.2 + '@smithy/util-base64': 3.0.0 tslib: 2.8.1 - '@smithy/hash-node@4.0.1': + '@smithy/hash-node@3.0.11': dependencies: - '@smithy/types': 4.1.0 - '@smithy/util-buffer-from': 4.0.0 - '@smithy/util-utf8': 4.0.0 + '@smithy/types': 3.7.2 + '@smithy/util-buffer-from': 3.0.0 + '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 - '@smithy/invalid-dependency@4.0.1': + '@smithy/invalid-dependency@3.0.11': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@smithy/is-array-buffer@2.2.0': dependencies: tslib: 2.8.1 - '@smithy/is-array-buffer@4.0.0': + '@smithy/is-array-buffer@3.0.0': dependencies: tslib: 2.8.1 - '@smithy/middleware-content-length@4.0.1': + '@smithy/middleware-content-length@3.0.13': dependencies: - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 + '@smithy/protocol-http': 4.1.8 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/middleware-endpoint@4.0.3': + '@smithy/middleware-endpoint@3.2.7': dependencies: - '@smithy/core': 3.1.2 - '@smithy/middleware-serde': 4.0.2 - '@smithy/node-config-provider': 4.0.1 - '@smithy/shared-ini-file-loader': 4.0.1 - '@smithy/types': 4.1.0 - '@smithy/url-parser': 4.0.1 - '@smithy/util-middleware': 4.0.1 + '@smithy/core': 2.5.6 + '@smithy/middleware-serde': 3.0.11 + '@smithy/node-config-provider': 3.1.12 + '@smithy/shared-ini-file-loader': 3.1.12 + '@smithy/types': 3.7.2 + '@smithy/url-parser': 3.0.11 + '@smithy/util-middleware': 3.0.11 tslib: 2.8.1 - '@smithy/middleware-retry@4.0.4': + '@smithy/middleware-retry@3.0.32': dependencies: - '@smithy/node-config-provider': 4.0.1 - '@smithy/protocol-http': 5.0.1 - '@smithy/service-error-classification': 4.0.1 - '@smithy/smithy-client': 4.1.3 - '@smithy/types': 4.1.0 - '@smithy/util-middleware': 4.0.1 - '@smithy/util-retry': 4.0.1 + '@smithy/node-config-provider': 3.1.12 + '@smithy/protocol-http': 4.1.8 + '@smithy/service-error-classification': 3.0.11 + '@smithy/smithy-client': 3.5.2 + '@smithy/types': 3.7.2 + '@smithy/util-middleware': 3.0.11 + '@smithy/util-retry': 3.0.11 tslib: 2.8.1 uuid: 9.0.1 - '@smithy/middleware-serde@4.0.2': + '@smithy/middleware-serde@3.0.11': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/middleware-stack@4.0.1': + '@smithy/middleware-stack@3.0.11': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/node-config-provider@4.0.1': + '@smithy/node-config-provider@3.1.12': dependencies: - '@smithy/property-provider': 4.0.1 - '@smithy/shared-ini-file-loader': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/property-provider': 3.1.11 + '@smithy/shared-ini-file-loader': 3.1.12 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/node-http-handler@4.0.2': + '@smithy/node-http-handler@3.3.3': dependencies: - '@smithy/abort-controller': 4.0.1 - '@smithy/protocol-http': 5.0.1 - '@smithy/querystring-builder': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/abort-controller': 3.1.9 + '@smithy/protocol-http': 4.1.8 + '@smithy/querystring-builder': 3.0.11 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/property-provider@4.0.1': + '@smithy/property-provider@3.1.11': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/protocol-http@5.0.1': + '@smithy/protocol-http@4.1.8': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/querystring-builder@4.0.1': + '@smithy/querystring-builder@3.0.11': dependencies: - '@smithy/types': 4.1.0 - '@smithy/util-uri-escape': 4.0.0 + '@smithy/types': 3.7.2 + '@smithy/util-uri-escape': 3.0.0 tslib: 2.8.1 - '@smithy/querystring-parser@4.0.1': + '@smithy/querystring-parser@3.0.11': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/service-error-classification@4.0.1': + '@smithy/service-error-classification@3.0.11': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 3.7.2 - '@smithy/shared-ini-file-loader@4.0.1': + '@smithy/shared-ini-file-loader@3.1.12': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/signature-v4@5.0.1': + '@smithy/signature-v4@4.2.4': dependencies: - '@smithy/is-array-buffer': 4.0.0 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 - '@smithy/util-hex-encoding': 4.0.0 - '@smithy/util-middleware': 4.0.1 - '@smithy/util-uri-escape': 4.0.0 - '@smithy/util-utf8': 4.0.0 + '@smithy/is-array-buffer': 3.0.0 + '@smithy/protocol-http': 4.1.8 + '@smithy/types': 3.7.2 + '@smithy/util-hex-encoding': 3.0.0 + '@smithy/util-middleware': 3.0.11 + '@smithy/util-uri-escape': 3.0.0 + '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 - '@smithy/smithy-client@4.1.3': + '@smithy/smithy-client@3.5.2': dependencies: - '@smithy/core': 3.1.2 - '@smithy/middleware-endpoint': 4.0.3 - '@smithy/middleware-stack': 4.0.1 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 - '@smithy/util-stream': 4.0.2 + '@smithy/core': 2.5.6 + '@smithy/middleware-endpoint': 3.2.7 + '@smithy/middleware-stack': 3.0.11 + '@smithy/protocol-http': 4.1.8 + '@smithy/types': 3.7.2 + '@smithy/util-stream': 3.3.3 tslib: 2.8.1 - '@smithy/types@4.1.0': + '@smithy/types@3.7.2': dependencies: tslib: 2.8.1 - '@smithy/url-parser@4.0.1': + '@smithy/url-parser@3.0.11': dependencies: - '@smithy/querystring-parser': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/querystring-parser': 3.0.11 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/util-base64@4.0.0': + '@smithy/util-base64@3.0.0': dependencies: - '@smithy/util-buffer-from': 4.0.0 - '@smithy/util-utf8': 4.0.0 + '@smithy/util-buffer-from': 3.0.0 + '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 - '@smithy/util-body-length-browser@4.0.0': + '@smithy/util-body-length-browser@3.0.0': dependencies: tslib: 2.8.1 - '@smithy/util-body-length-node@4.0.0': + '@smithy/util-body-length-node@3.0.0': dependencies: tslib: 2.8.1 @@ -9559,66 +10846,66 @@ snapshots: '@smithy/is-array-buffer': 2.2.0 tslib: 2.8.1 - '@smithy/util-buffer-from@4.0.0': + '@smithy/util-buffer-from@3.0.0': dependencies: - '@smithy/is-array-buffer': 4.0.0 + '@smithy/is-array-buffer': 3.0.0 tslib: 2.8.1 - '@smithy/util-config-provider@4.0.0': + '@smithy/util-config-provider@3.0.0': dependencies: tslib: 2.8.1 - '@smithy/util-defaults-mode-browser@4.0.4': + '@smithy/util-defaults-mode-browser@3.0.32': dependencies: - '@smithy/property-provider': 4.0.1 - '@smithy/smithy-client': 4.1.3 - '@smithy/types': 4.1.0 + '@smithy/property-provider': 3.1.11 + '@smithy/smithy-client': 3.5.2 + '@smithy/types': 3.7.2 bowser: 2.11.0 tslib: 2.8.1 - '@smithy/util-defaults-mode-node@4.0.4': + '@smithy/util-defaults-mode-node@3.0.32': dependencies: - '@smithy/config-resolver': 4.0.1 - '@smithy/credential-provider-imds': 4.0.1 - '@smithy/node-config-provider': 4.0.1 - '@smithy/property-provider': 4.0.1 - '@smithy/smithy-client': 4.1.3 - '@smithy/types': 4.1.0 + '@smithy/config-resolver': 3.0.13 + '@smithy/credential-provider-imds': 3.2.8 + '@smithy/node-config-provider': 3.1.12 + '@smithy/property-provider': 3.1.11 + '@smithy/smithy-client': 3.5.2 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/util-endpoints@3.0.1': + '@smithy/util-endpoints@2.1.7': dependencies: - '@smithy/node-config-provider': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/node-config-provider': 3.1.12 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/util-hex-encoding@4.0.0': + '@smithy/util-hex-encoding@3.0.0': dependencies: tslib: 2.8.1 - '@smithy/util-middleware@4.0.1': + '@smithy/util-middleware@3.0.11': dependencies: - '@smithy/types': 4.1.0 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/util-retry@4.0.1': + '@smithy/util-retry@3.0.11': dependencies: - '@smithy/service-error-classification': 4.0.1 - '@smithy/types': 4.1.0 + '@smithy/service-error-classification': 3.0.11 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/util-stream@4.0.2': + '@smithy/util-stream@3.3.3': dependencies: - '@smithy/fetch-http-handler': 5.0.1 - '@smithy/node-http-handler': 4.0.2 - '@smithy/types': 4.1.0 - '@smithy/util-base64': 4.0.0 - '@smithy/util-buffer-from': 4.0.0 - '@smithy/util-hex-encoding': 4.0.0 - '@smithy/util-utf8': 4.0.0 + '@smithy/fetch-http-handler': 4.1.2 + '@smithy/node-http-handler': 3.3.3 + '@smithy/types': 3.7.2 + '@smithy/util-base64': 3.0.0 + '@smithy/util-buffer-from': 3.0.0 + '@smithy/util-hex-encoding': 3.0.0 + '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 - '@smithy/util-uri-escape@4.0.0': + '@smithy/util-uri-escape@3.0.0': dependencies: tslib: 2.8.1 @@ -9627,15 +10914,15 @@ snapshots: '@smithy/util-buffer-from': 2.2.0 tslib: 2.8.1 - '@smithy/util-utf8@4.0.0': + '@smithy/util-utf8@3.0.0': dependencies: - '@smithy/util-buffer-from': 4.0.0 + '@smithy/util-buffer-from': 3.0.0 tslib: 2.8.1 - '@stylistic/eslint-plugin-ts@2.13.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3)': + '@stylistic/eslint-plugin-ts@2.11.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2)': dependencies: - '@typescript-eslint/utils': 8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3) - eslint: 9.20.1(jiti@1.21.7) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) + eslint: 9.16.0(jiti@1.21.6) eslint-visitor-keys: 4.2.0 espree: 10.3.0 transitivePeerDependencies: @@ -9646,18 +10933,22 @@ snapshots: dependencies: tslib: 2.8.1 - '@tanstack/react-virtual@3.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@szmarczak/http-timer@4.0.6': dependencies: - '@tanstack/virtual-core': 3.13.0 + defer-to-connect: 2.0.1 + + '@tanstack/react-virtual@3.13.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@tanstack/virtual-core': 3.13.2 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@tanstack/virtual-core@3.13.0': {} + '@tanstack/virtual-core@3.13.2': {} '@testing-library/dom@10.4.0': dependencies: '@babel/code-frame': 7.26.2 - '@babel/runtime': 7.26.7 + '@babel/runtime': 7.26.0 '@types/aria-query': 5.0.4 aria-query: 5.3.0 chalk: 4.1.2 @@ -9675,15 +10966,17 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.7 + '@babel/runtime': 7.26.0 '@testing-library/dom': 10.4.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 + + '@tootallnate/once@2.0.0': {} '@types/acorn@4.0.6': dependencies: @@ -9693,30 +10986,37 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.26.8 - '@babel/types': 7.26.8 + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.26.8 + '@babel/types': 7.26.0 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.26.8 - '@babel/types': 7.26.8 + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.26.8 + '@babel/types': 7.26.0 + + '@types/cacheable-request@6.0.3': + dependencies: + '@types/http-cache-semantics': 4.0.4 + '@types/keyv': 3.1.4 + '@types/node': 22.10.1 + '@types/responselike': 1.0.3 '@types/cookie@0.6.0': {} '@types/debug@4.1.12': dependencies: - '@types/ms': 2.1.0 + '@types/ms': 0.7.34 '@types/diff-match-patch@1.0.36': {} @@ -9724,6 +11024,18 @@ snapshots: '@types/dom-speech-recognition@0.0.4': {} + '@types/electron@1.6.12': + dependencies: + electron: 33.3.2 + transitivePeerDependencies: + - supports-color + + '@types/eslint@8.56.10': + dependencies: + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 + optional: true + '@types/estree-jsx@1.0.5': dependencies: '@types/estree': 1.0.6 @@ -9732,7 +11044,9 @@ snapshots: '@types/file-saver@2.0.7': {} - '@types/gensync@1.0.4': {} + '@types/fs-extra@9.0.13': + dependencies: + '@types/node': 22.10.1 '@types/hast@2.3.10': dependencies: @@ -9744,13 +11058,19 @@ snapshots: '@types/hoist-non-react-statics@3.3.6': dependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.12 hoist-non-react-statics: 3.3.2 + '@types/http-cache-semantics@4.0.4': {} + '@types/js-cookie@3.0.6': {} '@types/json-schema@7.0.15': {} + '@types/keyv@3.1.4': + dependencies: + '@types/node': 22.10.1 + '@types/mdast@3.0.15': dependencies: '@types/unist': 2.0.11 @@ -9761,164 +11081,193 @@ snapshots: '@types/mdx@2.0.13': {} - '@types/mocha@9.1.1': {} + '@types/ms@0.7.34': {} - '@types/ms@2.1.0': {} + '@types/node-forge@1.3.11': + dependencies: + '@types/node': 22.10.1 - '@types/node@22.13.1': + '@types/node@20.17.16': + dependencies: + undici-types: 6.19.8 + + '@types/node@22.10.1': dependencies: undici-types: 6.20.0 '@types/path-browserify@1.0.3': {} - '@types/prop-types@15.7.14': {} + '@types/plist@3.0.5': + dependencies: + '@types/node': 22.10.1 + xmlbuilder: 15.1.1 + optional: true + + '@types/prop-types@15.7.13': {} '@types/raf@3.4.3': optional: true '@types/react-beautiful-dnd@13.1.8': dependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.12 - '@types/react-dom@18.3.5(@types/react@18.3.18)': + '@types/react-dom@18.3.1': dependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.12 '@types/react-redux@7.1.34': dependencies: '@types/hoist-non-react-statics': 3.3.6 - '@types/react': 18.3.18 + '@types/react': 18.3.12 hoist-non-react-statics: 3.3.2 redux: 4.2.1 - '@types/react@18.3.18': + '@types/react@18.3.12': dependencies: - '@types/prop-types': 15.7.14 + '@types/prop-types': 15.7.13 csstype: 3.1.3 + '@types/responselike@1.0.3': + dependencies: + '@types/node': 22.10.1 + '@types/unist@2.0.11': {} '@types/unist@3.0.3': {} '@types/uuid@9.0.8': {} - '@typescript-eslint/eslint-plugin@8.24.0(@typescript-eslint/parser@8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3))(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3)': + '@types/verror@1.10.10': + optional: true + + '@types/yauzl@2.10.3': + dependencies: + '@types/node': 22.10.1 + optional: true + + '@typescript-eslint/eslint-plugin@8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2))(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.24.0 - '@typescript-eslint/type-utils': 8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3) - '@typescript-eslint/utils': 8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.24.0 - eslint: 9.20.1(jiti@1.21.7) + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.17.0 + '@typescript-eslint/type-utils': 8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 8.17.0 + eslint: 9.16.0(jiti@1.21.6) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + ts-api-utils: 1.4.3(typescript@5.7.2) + optionalDependencies: + typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3)': + '@typescript-eslint/parser@8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2)': dependencies: - '@typescript-eslint/scope-manager': 8.24.0 - '@typescript-eslint/types': 8.24.0 - '@typescript-eslint/typescript-estree': 8.24.0(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.24.0 - debug: 4.4.0 - eslint: 9.20.1(jiti@1.21.7) - typescript: 5.7.3 + '@typescript-eslint/scope-manager': 8.17.0 + '@typescript-eslint/types': 8.17.0 + '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 8.17.0 + debug: 4.3.7 + eslint: 9.16.0(jiti@1.21.6) + optionalDependencies: + typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.24.0': + '@typescript-eslint/scope-manager@8.17.0': dependencies: - '@typescript-eslint/types': 8.24.0 - '@typescript-eslint/visitor-keys': 8.24.0 + '@typescript-eslint/types': 8.17.0 + '@typescript-eslint/visitor-keys': 8.17.0 - '@typescript-eslint/type-utils@8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3)': + '@typescript-eslint/type-utils@8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.24.0(typescript@5.7.3) - '@typescript-eslint/utils': 8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3) - debug: 4.4.0 - eslint: 9.20.1(jiti@1.21.7) - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.7.2) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) + debug: 4.3.7 + eslint: 9.16.0(jiti@1.21.6) + ts-api-utils: 1.4.3(typescript@5.7.2) + optionalDependencies: + typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.24.0': {} + '@typescript-eslint/types@8.17.0': {} - '@typescript-eslint/typescript-estree@8.24.0(typescript@5.7.3)': + '@typescript-eslint/typescript-estree@8.17.0(typescript@5.7.2)': dependencies: - '@typescript-eslint/types': 8.24.0 - '@typescript-eslint/visitor-keys': 8.24.0 - debug: 4.4.0 - fast-glob: 3.3.3 + '@typescript-eslint/types': 8.17.0 + '@typescript-eslint/visitor-keys': 8.17.0 + debug: 4.3.7 + fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.1 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + semver: 7.6.3 + ts-api-utils: 1.4.3(typescript@5.7.2) + optionalDependencies: + typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3)': + '@typescript-eslint/utils@8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1(jiti@1.21.7)) - '@typescript-eslint/scope-manager': 8.24.0 - '@typescript-eslint/types': 8.24.0 - '@typescript-eslint/typescript-estree': 8.24.0(typescript@5.7.3) - eslint: 9.20.1(jiti@1.21.7) - typescript: 5.7.3 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@1.21.6)) + '@typescript-eslint/scope-manager': 8.17.0 + '@typescript-eslint/types': 8.17.0 + '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.7.2) + eslint: 9.16.0(jiti@1.21.6) + optionalDependencies: + typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.24.0': + '@typescript-eslint/visitor-keys@8.17.0': dependencies: - '@typescript-eslint/types': 8.24.0 + '@typescript-eslint/types': 8.17.0 eslint-visitor-keys: 4.2.0 - '@uiw/codemirror-theme-vscode@4.23.8(@codemirror/language@6.10.8)(@codemirror/state@6.5.2)(@codemirror/view@6.36.2)': + '@uiw/codemirror-theme-vscode@4.23.6(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)': dependencies: - '@uiw/codemirror-themes': 4.23.8(@codemirror/language@6.10.8)(@codemirror/state@6.5.2)(@codemirror/view@6.36.2) + '@uiw/codemirror-themes': 4.23.6(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' - '@uiw/codemirror-themes@4.23.8(@codemirror/language@6.10.8)(@codemirror/state@6.5.2)(@codemirror/view@6.36.2)': + '@uiw/codemirror-themes@4.23.6(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)': dependencies: - '@codemirror/language': 6.10.8 - '@codemirror/state': 6.5.2 - '@codemirror/view': 6.36.2 + '@codemirror/language': 6.10.6 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.35.0 - '@ungap/structured-clone@1.3.0': {} + '@ungap/structured-clone@1.2.0': {} - '@unocss/astro@0.61.9(rollup@3.29.5)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4))': + '@unocss/astro@0.61.9(rollup@4.28.0)(vite@5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0))': dependencies: '@unocss/core': 0.61.9 '@unocss/reset': 0.61.9 - '@unocss/vite': 0.61.9(rollup@3.29.5)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)) + '@unocss/vite': 0.61.9(rollup@4.28.0)(vite@5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0)) optionalDependencies: - vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4) + vite: 5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0) transitivePeerDependencies: - rollup - supports-color - '@unocss/cli@0.61.9(rollup@3.29.5)': + '@unocss/cli@0.61.9(rollup@4.28.0)': dependencies: '@ampproject/remapping': 2.3.0 - '@rollup/pluginutils': 5.1.4(rollup@3.29.5) + '@rollup/pluginutils': 5.1.3(rollup@4.28.0) '@unocss/config': 0.61.9 '@unocss/core': 0.61.9 '@unocss/preset-uno': 0.61.9 cac: 6.7.14 chokidar: 3.6.0 colorette: 2.0.20 - consola: 3.4.0 - fast-glob: 3.3.3 - magic-string: 0.30.17 + consola: 3.2.3 + fast-glob: 3.3.2 + magic-string: 0.30.14 pathe: 1.1.2 perfect-debounce: 1.0.0 transitivePeerDependencies: @@ -9945,15 +11294,15 @@ snapshots: gzip-size: 6.0.0 sirv: 2.0.4 - '@unocss/postcss@0.61.9(postcss@8.5.2)': + '@unocss/postcss@0.61.9(postcss@8.4.49)': dependencies: '@unocss/config': 0.61.9 '@unocss/core': 0.61.9 '@unocss/rule-utils': 0.61.9 css-tree: 2.3.1 - fast-glob: 3.3.3 - magic-string: 0.30.17 - postcss: 8.5.2 + fast-glob: 3.3.2 + magic-string: 0.30.14 + postcss: 8.4.49 transitivePeerDependencies: - supports-color @@ -9963,7 +11312,7 @@ snapshots: '@unocss/preset-icons@0.61.9': dependencies: - '@iconify/utils': 2.3.0 + '@iconify/utils': 2.1.33 '@unocss/core': 0.61.9 ofetch: 1.4.1 transitivePeerDependencies: @@ -10007,15 +11356,15 @@ snapshots: '@unocss/rule-utils@0.61.9': dependencies: '@unocss/core': 0.61.9 - magic-string: 0.30.17 + magic-string: 0.30.14 '@unocss/scope@0.61.9': {} '@unocss/transformer-attributify-jsx-babel@0.61.9': dependencies: - '@babel/core': 7.26.8 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.8) - '@babel/preset-typescript': 7.26.0(@babel/core@7.26.8) + '@babel/core': 7.26.0 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) '@unocss/core': 0.61.9 transitivePeerDependencies: - supports-color @@ -10038,30 +11387,30 @@ snapshots: dependencies: '@unocss/core': 0.61.9 - '@unocss/vite@0.61.9(rollup@3.29.5)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4))': + '@unocss/vite@0.61.9(rollup@4.28.0)(vite@5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0))': dependencies: '@ampproject/remapping': 2.3.0 - '@rollup/pluginutils': 5.1.4(rollup@3.29.5) + '@rollup/pluginutils': 5.1.3(rollup@4.28.0) '@unocss/config': 0.61.9 '@unocss/core': 0.61.9 '@unocss/inspector': 0.61.9 '@unocss/scope': 0.61.9 '@unocss/transformer-directives': 0.61.9 chokidar: 3.6.0 - fast-glob: 3.3.3 - magic-string: 0.30.17 - vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4) + fast-glob: 3.3.2 + magic-string: 0.30.14 + vite: 5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0) transitivePeerDependencies: - rollup - supports-color - '@vanilla-extract/babel-plugin-debug-ids@1.2.0': + '@vanilla-extract/babel-plugin-debug-ids@1.1.0': dependencies: - '@babel/core': 7.26.8 + '@babel/core': 7.26.0 transitivePeerDependencies: - supports-color - '@vanilla-extract/css@1.17.1': + '@vanilla-extract/css@1.16.1': dependencies: '@emotion/hash': 0.9.2 '@vanilla-extract/private': 1.0.6 @@ -10078,21 +11427,21 @@ snapshots: transitivePeerDependencies: - babel-plugin-macros - '@vanilla-extract/integration@6.5.0(@types/node@22.13.1)(sass-embedded@1.83.4)': + '@vanilla-extract/integration@6.5.0(@types/node@22.10.1)(sass-embedded@1.81.0)': dependencies: - '@babel/core': 7.26.8 - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.8) - '@vanilla-extract/babel-plugin-debug-ids': 1.2.0 - '@vanilla-extract/css': 1.17.1 + '@babel/core': 7.26.0 + '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) + '@vanilla-extract/babel-plugin-debug-ids': 1.1.0 + '@vanilla-extract/css': 1.16.1 esbuild: 0.17.19 eval: 0.1.8 find-up: 5.0.0 javascript-stringify: 2.1.0 lodash: 4.17.21 - mlly: 1.7.4 + mlly: 1.7.3 outdent: 0.8.0 - vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4) - vite-node: 1.6.1(@types/node@22.13.1)(sass-embedded@1.83.4) + vite: 5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0) + vite-node: 1.6.0(@types/node@22.10.1)(sass-embedded@1.81.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -10107,61 +11456,63 @@ snapshots: '@vanilla-extract/private@1.0.6': {} - '@vitejs/plugin-react@4.3.4(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4))': + '@vitejs/plugin-react@4.3.4(vite@5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0))': dependencies: - '@babel/core': 7.26.8 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.8) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.8) + '@babel/core': 7.26.0 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4) + vite: 5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0) transitivePeerDependencies: - supports-color - '@vitest/expect@2.1.9': + '@vitest/expect@2.1.8': dependencies: - '@vitest/spy': 2.1.9 - '@vitest/utils': 2.1.9 + '@vitest/spy': 2.1.8 + '@vitest/utils': 2.1.8 chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.9(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4))': + '@vitest/mocker@2.1.8(vite@5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0))': dependencies: - '@vitest/spy': 2.1.9 + '@vitest/spy': 2.1.8 estree-walker: 3.0.3 - magic-string: 0.30.17 + magic-string: 0.30.14 optionalDependencies: - vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4) + vite: 5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0) - '@vitest/pretty-format@2.1.9': + '@vitest/pretty-format@2.1.8': dependencies: tinyrainbow: 1.2.0 - '@vitest/runner@2.1.9': + '@vitest/runner@2.1.8': dependencies: - '@vitest/utils': 2.1.9 + '@vitest/utils': 2.1.8 pathe: 1.1.2 - '@vitest/snapshot@2.1.9': + '@vitest/snapshot@2.1.8': dependencies: - '@vitest/pretty-format': 2.1.9 - magic-string: 0.30.17 + '@vitest/pretty-format': 2.1.8 + magic-string: 0.30.14 pathe: 1.1.2 - '@vitest/spy@2.1.9': + '@vitest/spy@2.1.8': dependencies: tinyspy: 3.0.2 - '@vitest/utils@2.1.9': + '@vitest/utils@2.1.8': dependencies: - '@vitest/pretty-format': 2.1.9 - loupe: 3.1.3 + '@vitest/pretty-format': 2.1.8 + loupe: 3.1.2 tinyrainbow: 1.2.0 '@web3-storage/multipart-parser@1.0.0': {} '@webcontainer/api@1.3.0-internal.10': {} + '@xmldom/xmldom@0.8.10': {} + '@xterm/addon-fit@0.10.0(@xterm/xterm@5.5.0)': dependencies: '@xterm/xterm': 5.5.0 @@ -10175,6 +11526,8 @@ snapshots: '@zxing/text-encoding@0.9.0': optional: true + abbrev@1.1.1: {} + abort-controller@3.0.0: dependencies: event-target-shim: 5.0.1 @@ -10188,33 +11541,49 @@ snapshots: dependencies: acorn: 8.14.0 - acorn-walk@8.3.2: {} - acorn-walk@8.3.4: dependencies: acorn: 8.14.0 acorn@8.14.0: {} + agent-base@6.0.2: + dependencies: + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + agent-base@7.1.3: {} + agentkeepalive@4.6.0: + dependencies: + humanize-ms: 1.2.1 + aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 - ai@4.1.34(react@18.3.1)(zod@3.24.1): + ai@4.1.2(react@18.3.1)(zod@3.24.1): dependencies: - '@ai-sdk/provider': 1.0.7 - '@ai-sdk/provider-utils': 2.1.6(zod@3.24.1) - '@ai-sdk/react': 1.1.11(react@18.3.1)(zod@3.24.1) - '@ai-sdk/ui-utils': 1.1.11(zod@3.24.1) + '@ai-sdk/provider': 1.0.6 + '@ai-sdk/provider-utils': 2.1.2(zod@3.24.1) + '@ai-sdk/react': 1.1.2(react@18.3.1)(zod@3.24.1) + '@ai-sdk/ui-utils': 1.1.2(zod@3.24.1) '@opentelemetry/api': 1.9.0 jsondiffpatch: 0.6.0 optionalDependencies: react: 18.3.1 zod: 3.24.1 + ajv-formats@3.0.1(ajv@8.17.1): + optionalDependencies: + ajv: 8.17.1 + + ajv-keywords@3.5.2(ajv@6.12.6): + dependencies: + ajv: 6.12.6 + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -10222,6 +11591,13 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.0.6 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + ansi-regex@5.0.1: {} ansi-regex@6.1.0: {} @@ -10239,6 +11615,91 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 + app-builder-bin@5.0.0-alpha.10: {} + + app-builder-lib@25.1.8(dmg-builder@25.1.8(electron-builder-squirrel-windows@25.1.8))(electron-builder-squirrel-windows@25.1.8(dmg-builder@25.1.8)): + dependencies: + '@develar/schema-utils': 2.6.5 + '@electron/notarize': 2.5.0 + '@electron/osx-sign': 1.3.1 + '@electron/rebuild': 3.6.1 + '@electron/universal': 2.0.1 + '@malept/flatpak-bundler': 0.4.0 + '@types/fs-extra': 9.0.13 + async-exit-hook: 2.0.1 + bluebird-lst: 1.0.9 + builder-util: 25.1.7 + builder-util-runtime: 9.2.10 + chromium-pickle-js: 0.2.0 + config-file-ts: 0.2.8-rc1 + debug: 4.3.7 + dmg-builder: 25.1.8(electron-builder-squirrel-windows@25.1.8) + dotenv: 16.4.7 + dotenv-expand: 11.0.7 + ejs: 3.1.10 + electron-builder-squirrel-windows: 25.1.8(dmg-builder@25.1.8) + electron-publish: 25.1.7 + form-data: 4.0.1 + fs-extra: 10.1.0 + hosted-git-info: 4.1.0 + is-ci: 3.0.1 + isbinaryfile: 5.0.4 + js-yaml: 4.1.0 + json5: 2.2.3 + lazy-val: 1.0.5 + minimatch: 10.0.1 + resedit: 1.7.2 + sanitize-filename: 1.6.3 + semver: 7.6.3 + tar: 6.2.1 + temp-file: 3.4.0 + transitivePeerDependencies: + - bluebird + - supports-color + + aproba@2.0.0: {} + + archiver-utils@2.1.0: + dependencies: + glob: 7.2.3 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 2.3.8 + + archiver-utils@3.0.4: + dependencies: + glob: 7.2.3 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + + archiver@5.3.2: + dependencies: + archiver-utils: 2.1.0 + async: 3.2.6 + buffer-crc32: 0.2.13 + readable-stream: 3.6.2 + readdir-glob: 1.1.3 + tar-stream: 2.2.0 + zip-stream: 4.1.1 + + are-we-there-yet@3.0.1: + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + arg@5.0.2: {} argparse@2.0.1: {} @@ -10265,27 +11726,44 @@ snapshots: inherits: 2.0.4 minimalistic-assert: 1.0.1 + assert-plus@1.0.0: + optional: true + assert@2.1.0: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 is-nan: 1.3.2 object-is: 1.1.6 - object.assign: 4.1.7 + object.assign: 4.1.5 util: 0.12.5 assertion-error@2.0.1: {} + astral-regex@2.0.0: + optional: true + astring@1.9.0: {} + async-exit-hook@2.0.1: {} + async-lock@1.4.1: {} + async@3.2.6: {} + asynckit@0.4.0: {} + at-least-node@1.0.0: {} + atob@2.1.2: {} + atomically@2.0.3: + dependencies: + stubborn-fs: 1.2.5 + when-exit: 2.1.4 + available-typed-arrays@1.0.7: dependencies: - possible-typed-array-names: 1.1.0 + possible-typed-array-names: 1.0.0 bail@2.0.2: {} @@ -10296,6 +11774,10 @@ snapshots: base64-js@1.5.1: {} + basic-auth@2.0.1: + dependencies: + safe-buffer: 5.1.2 + before-after-hook@3.0.2: {} binary-extensions@2.3.0: {} @@ -10312,6 +11794,12 @@ snapshots: blake3-wasm@2.1.5: {} + bluebird-lst@1.0.9: + dependencies: + bluebird: 3.7.2 + + bluebird@3.7.2: {} + bn.js@4.12.1: {} bn.js@5.2.1: {} @@ -10333,6 +11821,9 @@ snapshots: transitivePeerDependencies: - supports-color + boolean@3.2.0: + optional: true + bowser@2.11.0: {} brace-expansion@1.1.11: @@ -10352,7 +11843,7 @@ snapshots: browser-resolve@2.0.0: dependencies: - resolve: 1.22.10 + resolve: 1.22.8 browserify-aes@1.2.0: dependencies: @@ -10403,17 +11894,19 @@ snapshots: dependencies: pako: 1.0.11 - browserslist@4.24.4: + browserslist@4.24.2: dependencies: - caniuse-lite: 1.0.30001699 - electron-to-chromium: 1.5.97 - node-releases: 2.0.19 - update-browserslist-db: 1.1.2(browserslist@4.24.4) + caniuse-lite: 1.0.30001685 + electron-to-chromium: 1.5.68 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.2) btoa@1.2.1: {} buffer-builder@0.2.0: {} + buffer-crc32@0.2.13: {} + buffer-from@1.1.2: {} buffer-xor@1.0.3: {} @@ -10423,9 +11916,37 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 + builder-util-runtime@9.2.10: + dependencies: + debug: 4.3.7 + sax: 1.4.1 + transitivePeerDependencies: + - supports-color + + builder-util@25.1.7: + dependencies: + 7zip-bin: 5.2.0 + '@types/debug': 4.1.12 + app-builder-bin: 5.0.0-alpha.10 + bluebird-lst: 1.0.9 + builder-util-runtime: 9.2.10 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.3.7 + fs-extra: 10.1.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + is-ci: 3.0.1 + js-yaml: 4.1.0 + source-map-support: 0.5.21 + stat-mode: 1.0.0 + temp-file: 3.4.0 + transitivePeerDependencies: + - supports-color + builtin-status-codes@3.0.0: {} - bundle-require@5.1.0(esbuild@0.23.1): + bundle-require@5.0.0(esbuild@0.23.1): dependencies: esbuild: 0.23.1 load-tsconfig: 0.2.5 @@ -10434,6 +11955,29 @@ snapshots: cac@6.7.14: {} + cacache@16.1.3: + dependencies: + '@npmcli/fs': 2.1.2 + '@npmcli/move-file': 2.0.1 + chownr: 2.0.0 + fs-minipass: 2.1.0 + glob: 8.1.0 + infer-owner: 1.0.4 + lru-cache: 7.18.3 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + mkdirp: 1.0.4 + p-map: 4.0.0 + promise-inflight: 1.0.1 + rimraf: 3.0.2 + ssri: 9.0.1 + tar: 6.2.1 + unique-filename: 2.0.1 + transitivePeerDependencies: + - bluebird + cacache@17.1.4: dependencies: '@npmcli/fs': 3.1.1 @@ -10449,32 +11993,35 @@ snapshots: tar: 6.2.1 unique-filename: 3.0.0 - call-bind-apply-helpers@1.0.1: + cacheable-lookup@5.0.4: {} + + cacheable-request@7.0.4: dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.1.1 + keyv: 4.5.4 + lowercase-keys: 2.0.0 + normalize-url: 6.1.0 + responselike: 2.0.1 + + call-bind@1.0.7: + dependencies: + es-define-property: 1.0.0 es-errors: 1.3.0 function-bind: 1.1.2 - - call-bind@1.0.8: - dependencies: - call-bind-apply-helpers: 1.0.1 - es-define-property: 1.0.1 - get-intrinsic: 1.2.7 + get-intrinsic: 1.2.4 set-function-length: 1.2.2 - call-bound@1.0.3: - dependencies: - call-bind-apply-helpers: 1.0.1 - get-intrinsic: 1.2.7 - callsites@3.1.0: {} - caniuse-lite@1.0.30001699: {} + caniuse-lite@1.0.30001685: {} canvg@3.0.10: dependencies: - '@babel/runtime': 7.26.7 + '@babel/runtime': 7.26.0 '@types/raf': 3.4.3 - core-js: 3.40.0 + core-js: 3.41.0 raf: 3.4.1 regenerator-runtime: 0.13.11 rgbcolor: 1.0.1 @@ -10482,6 +12029,13 @@ snapshots: svg-pathdata: 6.0.3 optional: true + capnp-ts@0.7.0: + dependencies: + debug: 4.3.7 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + ccount@2.0.1: {} chai@5.1.2: @@ -10489,7 +12043,7 @@ snapshots: assertion-error: 2.0.1 check-error: 2.1.1 deep-eql: 5.0.2 - loupe: 3.1.3 + loupe: 3.1.2 pathval: 2.0.0 chalk@3.0.0: @@ -10512,7 +12066,7 @@ snapshots: character-reference-invalid@2.0.1: {} - chart.js@4.4.7: + chart.js@4.4.8: dependencies: '@kurkle/color': 0.3.4 @@ -10530,10 +12084,16 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chokidar@4.0.1: + dependencies: + readdirp: 4.0.2 + chownr@1.1.4: {} chownr@2.0.0: {} + chromium-pickle-js@0.2.0: {} + ci-info@3.9.0: {} cipher-base@1.0.6: @@ -10555,6 +12115,24 @@ snapshots: cli-spinners@2.9.2: {} + cli-truncate@2.1.0: + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + optional: true + + client-only@0.0.1: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone-response@1.0.3: + dependencies: + mimic-response: 1.0.1 + clone@1.0.4: {} clsx@2.1.1: {} @@ -10565,17 +12143,7 @@ snapshots: color-name@1.1.4: {} - color-string@1.9.1: - dependencies: - color-name: 1.1.4 - simple-swizzle: 0.2.2 - optional: true - - color@4.2.3: - dependencies: - color-convert: 2.0.1 - color-string: 1.9.1 - optional: true + color-support@1.1.3: {} colorette@2.0.20: {} @@ -10587,16 +12155,74 @@ snapshots: comma-separated-tokens@2.0.3: {} + commander@5.1.0: {} + common-tags@1.8.2: {} + compare-version@0.1.2: {} + + compress-commons@4.1.2: + dependencies: + buffer-crc32: 0.2.13 + crc32-stream: 4.0.3 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + + compressible@2.0.18: + dependencies: + mime-db: 1.52.0 + + compression@1.8.0: + dependencies: + bytes: 3.1.2 + compressible: 2.0.18 + debug: 2.6.9 + negotiator: 0.6.4 + on-headers: 1.0.2 + safe-buffer: 5.2.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + concat-map@0.0.1: {} + concurrently@8.2.2: + dependencies: + chalk: 4.1.2 + date-fns: 2.30.0 + lodash: 4.17.21 + rxjs: 7.8.1 + shell-quote: 1.8.2 + spawn-command: 0.0.2 + supports-color: 8.1.1 + tree-kill: 1.2.2 + yargs: 17.7.2 + + conf@13.1.0: + dependencies: + ajv: 8.17.1 + ajv-formats: 3.0.1(ajv@8.17.1) + atomically: 2.0.3 + debounce-fn: 6.0.0 + dot-prop: 9.0.0 + env-paths: 3.0.0 + json-schema-typed: 8.0.1 + semver: 7.6.3 + uint8array-extras: 1.4.0 + confbox@0.1.8: {} - consola@3.4.0: {} + config-file-ts@0.2.8-rc1: + dependencies: + glob: 10.4.5 + typescript: 5.7.2 + + consola@3.2.3: {} console-browserify@1.2.0: {} + console-control-strings@1.1.0: {} + constants-browserify@1.0.0: {} content-disposition@0.5.4: @@ -10611,19 +12237,32 @@ snapshots: cookie-signature@1.2.2: {} - cookie@0.5.0: {} - cookie@0.6.0: {} cookie@0.7.1: {} - core-js@3.40.0: + cookie@0.7.2: {} + + core-js@3.41.0: + optional: true + + core-util-is@1.0.2: optional: true core-util-is@1.0.3: {} crc-32@1.2.2: {} + crc32-stream@4.0.3: + dependencies: + crc-32: 1.2.2 + readable-stream: 3.6.2 + + crc@3.8.0: + dependencies: + buffer: 5.7.1 + optional: true + create-ecdh@4.0.4: dependencies: bn.js: 4.12.1 @@ -10650,6 +12289,10 @@ snapshots: crelt@1.0.6: {} + cross-env@7.0.3: + dependencies: + cross-spawn: 7.0.6 + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 @@ -10709,12 +12352,26 @@ snapshots: whatwg-mimetype: 4.0.0 whatwg-url: 14.1.1 + date-fns@2.30.0: + dependencies: + '@babel/runtime': 7.26.0 + date-fns@3.6.0: {} + date-fns@4.1.0: {} + + debounce-fn@6.0.0: + dependencies: + mimic-function: 5.0.1 + debug@2.6.9: dependencies: ms: 2.0.0 + debug@4.3.7: + dependencies: + ms: 2.1.3 + debug@4.4.0: dependencies: ms: 2.1.3 @@ -10743,11 +12400,13 @@ snapshots: dependencies: clone: 1.0.4 + defer-to-connect@2.0.1: {} + define-data-property@1.1.4: dependencies: - es-define-property: 1.0.1 + es-define-property: 1.0.0 es-errors: 1.3.0 - gopd: 1.2.0 + gopd: 1.1.0 define-properties@1.2.1: dependencies: @@ -10759,6 +12418,8 @@ snapshots: delayed-stream@1.0.0: {} + delegates@1.0.0: {} + depd@2.0.0: {} dequal@2.0.3: {} @@ -10772,11 +12433,13 @@ snapshots: destroy@1.2.0: {} - detect-libc@2.0.3: - optional: true + detect-libc@2.0.3: {} detect-node-es@1.1.0: {} + detect-node@2.1.0: + optional: true + devlop@1.1.0: dependencies: dequal: 2.0.3 @@ -10793,6 +12456,38 @@ snapshots: miller-rabin: 4.0.1 randombytes: 2.1.0 + dir-compare@4.2.0: + dependencies: + minimatch: 3.1.2 + p-limit: 3.1.0 + + dmg-builder@25.1.8(electron-builder-squirrel-windows@25.1.8): + dependencies: + app-builder-lib: 25.1.8(dmg-builder@25.1.8(electron-builder-squirrel-windows@25.1.8))(electron-builder-squirrel-windows@25.1.8(dmg-builder@25.1.8)) + builder-util: 25.1.7 + builder-util-runtime: 9.2.10 + fs-extra: 10.1.0 + iconv-lite: 0.6.3 + js-yaml: 4.1.0 + optionalDependencies: + dmg-license: 1.0.11 + transitivePeerDependencies: + - bluebird + - electron-builder-squirrel-windows + - supports-color + + dmg-license@1.0.11: + dependencies: + '@types/plist': 3.0.5 + '@types/verror': 1.10.10 + ajv: 6.12.6 + crc: 3.8.0 + iconv-corefoundation: 1.1.7 + plist: 3.1.0 + smart-buffer: 4.2.0 + verror: 1.10.1 + optional: true + dnd-core@16.0.1: dependencies: '@react-dnd/asap': 5.0.2 @@ -10808,13 +12503,15 @@ snapshots: dompurify@2.5.8: optional: true - dotenv@16.4.7: {} - - dunder-proto@1.0.1: + dot-prop@9.0.0: dependencies: - call-bind-apply-helpers: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 + type-fest: 4.30.0 + + dotenv-expand@11.0.7: + dependencies: + dotenv: 16.4.7 + + dotenv@16.4.7: {} duplexer@0.1.2: {} @@ -10833,7 +12530,79 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.97: {} + ejs@3.1.10: + dependencies: + jake: 10.9.2 + + electron-builder-squirrel-windows@25.1.8(dmg-builder@25.1.8): + dependencies: + app-builder-lib: 25.1.8(dmg-builder@25.1.8(electron-builder-squirrel-windows@25.1.8))(electron-builder-squirrel-windows@25.1.8(dmg-builder@25.1.8)) + archiver: 5.3.2 + builder-util: 25.1.7 + fs-extra: 10.1.0 + transitivePeerDependencies: + - bluebird + - dmg-builder + - supports-color + + electron-builder@25.1.8(electron-builder-squirrel-windows@25.1.8(dmg-builder@25.1.8)): + dependencies: + app-builder-lib: 25.1.8(dmg-builder@25.1.8(electron-builder-squirrel-windows@25.1.8))(electron-builder-squirrel-windows@25.1.8(dmg-builder@25.1.8)) + builder-util: 25.1.7 + builder-util-runtime: 9.2.10 + chalk: 4.1.2 + dmg-builder: 25.1.8(electron-builder-squirrel-windows@25.1.8) + fs-extra: 10.1.0 + is-ci: 3.0.1 + lazy-val: 1.0.5 + simple-update-notifier: 2.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - bluebird + - electron-builder-squirrel-windows + - supports-color + + electron-log@5.3.0: {} + + electron-publish@25.1.7: + dependencies: + '@types/fs-extra': 9.0.13 + builder-util: 25.1.7 + builder-util-runtime: 9.2.10 + chalk: 4.1.2 + fs-extra: 10.1.0 + lazy-val: 1.0.5 + mime: 2.6.0 + transitivePeerDependencies: + - supports-color + + electron-store@10.0.1: + dependencies: + conf: 13.1.0 + type-fest: 4.30.0 + + electron-to-chromium@1.5.68: {} + + electron-updater@6.3.9: + dependencies: + builder-util-runtime: 9.2.10 + fs-extra: 10.1.0 + js-yaml: 4.1.0 + lazy-val: 1.0.5 + lodash.escaperegexp: 4.1.2 + lodash.isequal: 4.5.0 + semver: 7.6.3 + tiny-typed-emitter: 2.1.0 + transitivePeerDependencies: + - supports-color + + electron@33.3.2: + dependencies: + '@electron/get': 2.0.3 + '@types/node': 20.17.16 + extract-zip: 2.0.1 + transitivePeerDependencies: + - supports-color elliptic@6.6.1: dependencies: @@ -10855,30 +12624,33 @@ snapshots: encodeurl@2.0.0: {} + encoding@0.1.13: + dependencies: + iconv-lite: 0.6.3 + optional: true + end-of-stream@1.4.4: dependencies: once: 1.4.0 entities@4.5.0: {} + env-paths@2.2.1: {} + + env-paths@3.0.0: {} + err-code@2.0.3: {} - es-define-property@1.0.1: {} + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 es-errors@1.3.0: {} - es-module-lexer@1.6.0: {} + es-module-lexer@1.5.4: {} - es-object-atoms@1.1.1: - dependencies: - es-errors: 1.3.0 - - es-set-tostringtag@2.1.0: - dependencies: - es-errors: 1.3.0 - get-intrinsic: 1.2.7 - has-tostringtag: 1.0.2 - hasown: 2.0.2 + es6-error@4.1.1: + optional: true esbuild-plugins-node-modules-polyfill@1.6.8(esbuild@0.17.6): dependencies: @@ -10998,27 +12770,27 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.6.4(eslint@9.20.1(jiti@1.21.7)): + eslint-compat-utils@0.6.4(eslint@9.16.0(jiti@1.21.6)): dependencies: - eslint: 9.20.1(jiti@1.21.7) - semver: 7.7.1 + eslint: 9.16.0(jiti@1.21.6) + semver: 7.6.3 - eslint-config-prettier@9.1.0(eslint@9.20.1(jiti@1.21.7)): + eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@1.21.6)): dependencies: - eslint: 9.20.1(jiti@1.21.7) + eslint: 9.16.0(jiti@1.21.6) - eslint-json-compat-utils@0.2.1(eslint@9.20.1(jiti@1.21.7))(jsonc-eslint-parser@2.4.0): + eslint-json-compat-utils@0.2.1(eslint@9.16.0(jiti@1.21.6))(jsonc-eslint-parser@2.4.0): dependencies: - eslint: 9.20.1(jiti@1.21.7) + eslint: 9.16.0(jiti@1.21.6) esquery: 1.6.0 jsonc-eslint-parser: 2.4.0 - eslint-plugin-jsonc@2.19.1(eslint@9.20.1(jiti@1.21.7)): + eslint-plugin-jsonc@2.18.2(eslint@9.16.0(jiti@1.21.6)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1(jiti@1.21.7)) - eslint: 9.20.1(jiti@1.21.7) - eslint-compat-utils: 0.6.4(eslint@9.20.1(jiti@1.21.7)) - eslint-json-compat-utils: 0.2.1(eslint@9.20.1(jiti@1.21.7))(jsonc-eslint-parser@2.4.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@1.21.6)) + eslint: 9.16.0(jiti@1.21.6) + eslint-compat-utils: 0.6.4(eslint@9.16.0(jiti@1.21.6)) + eslint-json-compat-utils: 0.2.1(eslint@9.16.0(jiti@1.21.6))(jsonc-eslint-parser@2.4.0) espree: 9.6.1 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.0 @@ -11027,14 +12799,15 @@ snapshots: transitivePeerDependencies: - '@eslint/json' - eslint-plugin-prettier@5.2.3(eslint-config-prettier@9.1.0(eslint@9.20.1(jiti@1.21.7)))(eslint@9.20.1(jiti@1.21.7))(prettier@3.5.0): + eslint-plugin-prettier@5.2.1(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@1.21.6)))(eslint@9.16.0(jiti@1.21.6))(prettier@3.4.1): dependencies: - eslint: 9.20.1(jiti@1.21.7) - prettier: 3.5.0 + eslint: 9.16.0(jiti@1.21.6) + prettier: 3.4.1 prettier-linter-helpers: 1.0.0 synckit: 0.9.2 optionalDependencies: - eslint-config-prettier: 9.1.0(eslint@9.20.1(jiti@1.21.7)) + '@types/eslint': 8.56.10 + eslint-config-prettier: 9.1.0(eslint@9.16.0(jiti@1.21.6)) eslint-scope@8.2.0: dependencies: @@ -11045,15 +12818,15 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.20.1(jiti@1.21.7): + eslint@9.16.0(jiti@1.21.6): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1(jiti@1.21.7)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@1.21.6)) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.2 - '@eslint/core': 0.11.0 + '@eslint/config-array': 0.19.0 + '@eslint/core': 0.9.0 '@eslint/eslintrc': 3.2.0 - '@eslint/js': 9.20.0 - '@eslint/plugin-kit': 0.2.5 + '@eslint/js': 9.16.0 + '@eslint/plugin-kit': 0.2.3 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.1 @@ -11062,7 +12835,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.0 + debug: 4.3.7 escape-string-regexp: 4.0.0 eslint-scope: 8.2.0 eslint-visitor-keys: 4.2.0 @@ -11082,7 +12855,7 @@ snapshots: natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: - jiti: 1.21.7 + jiti: 1.21.6 transitivePeerDependencies: - supports-color @@ -11153,7 +12926,7 @@ snapshots: eval@0.1.8: dependencies: - '@types/node': 22.13.1 + '@types/node': 22.10.1 require-like: 0.1.2 event-target-shim@5.0.1: {} @@ -11185,7 +12958,9 @@ snapshots: expect-type@1.1.0: {} - express@4.21.2: + exponential-backoff@3.1.1: {} + + express@4.21.1: dependencies: accepts: 1.3.8 array-flatten: 1.1.1 @@ -11206,7 +12981,7 @@ snapshots: methods: 1.1.2 on-finished: 2.4.1 parseurl: 1.3.3 - path-to-regexp: 0.1.12 + path-to-regexp: 0.1.10 proxy-addr: 2.0.7 qs: 6.13.0 range-parser: 1.2.1 @@ -11223,13 +12998,24 @@ snapshots: extend@3.0.2: {} - fast-content-type-parse@2.0.1: {} + extract-zip@2.0.1: + dependencies: + debug: 4.3.7 + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.3 + transitivePeerDependencies: + - supports-color + + extsprintf@1.4.1: + optional: true fast-deep-equal@3.1.3: {} fast-diff@1.3.0: {} - fast-glob@3.3.3: + fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 @@ -11241,11 +13027,13 @@ snapshots: fast-levenshtein@2.0.6: {} + fast-uri@3.0.6: {} + fast-xml-parser@4.4.1: dependencies: strnum: 1.0.5 - fastq@1.19.0: + fastq@1.17.1: dependencies: reusify: 1.0.4 @@ -11253,6 +13041,10 @@ snapshots: dependencies: format: 0.2.2 + fd-slicer@1.1.0: + dependencies: + pend: 1.2.0 + fetch-blob@3.2.0: dependencies: node-domexception: 1.0.0 @@ -11266,6 +13058,10 @@ snapshots: file-saver@2.0.5: {} + filelist@1.0.4: + dependencies: + minimatch: 5.1.6 + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -11294,7 +13090,7 @@ snapshots: flatted@3.3.2: {} - for-each@0.3.5: + for-each@0.3.3: dependencies: is-callable: 1.2.7 @@ -11303,11 +13099,10 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - form-data@4.0.2: + form-data@4.0.1: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 mime-types: 2.1.35 format@0.2.2: {} @@ -11318,10 +13113,8 @@ snapshots: forwarded@0.2.0: {} - framer-motion@11.18.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + framer-motion@11.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - motion-dom: 11.18.1 - motion-utils: 11.18.1 tslib: 2.8.1 optionalDependencies: react: 18.3.1 @@ -11337,6 +13130,25 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 + fs-extra@11.3.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@9.1.0: + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + fs-minipass@2.1.0: dependencies: minipass: 3.3.6 @@ -11345,47 +13157,56 @@ snapshots: dependencies: minipass: 7.1.2 + fs.realpath@1.0.0: {} + fsevents@2.3.3: optional: true function-bind@1.1.2: {} + gauge@4.0.4: + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + generic-names@4.0.0: dependencies: loader-utils: 3.3.1 gensync@1.0.0-beta.2: {} - get-intrinsic@1.2.7: + get-caller-file@2.0.5: {} + + get-intrinsic@1.2.4: dependencies: - call-bind-apply-helpers: 1.0.1 - es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.1 function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 + has-proto: 1.1.0 has-symbols: 1.1.0 hasown: 2.0.2 - math-intrinsics: 1.1.0 get-nonce@1.0.1: {} get-port@5.1.1: {} - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 - get-source@2.0.12: dependencies: data-uri-to-buffer: 2.0.2 source-map: 0.6.1 + get-stream@5.2.0: + dependencies: + pump: 3.0.2 + get-stream@6.0.1: {} - get-tsconfig@4.10.0: + get-tsconfig@4.8.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -11408,15 +13229,71 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + glob@8.1.0: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + + glob@9.3.5: + dependencies: + fs.realpath: 1.0.0 + minimatch: 8.0.4 + minipass: 4.2.8 + path-scurry: 1.11.1 + + global-agent@3.0.0: + dependencies: + boolean: 3.2.0 + es6-error: 4.1.1 + matcher: 3.0.0 + roarr: 2.15.4 + semver: 7.6.3 + serialize-error: 7.0.1 + optional: true + globals@11.12.0: {} globals@14.0.0: {} - globals@15.14.0: {} + globals@15.13.0: {} + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.1.0 + optional: true globrex@0.1.2: {} - gopd@1.2.0: {} + gopd@1.1.0: + dependencies: + get-intrinsic: 1.2.4 + + got@11.8.6: + dependencies: + '@sindresorhus/is': 4.6.0 + '@szmarczak/http-timer': 4.0.6 + '@types/cacheable-request': 6.0.3 + '@types/responselike': 1.0.3 + cacheable-lookup: 5.0.4 + cacheable-request: 7.0.4 + decompress-response: 6.0.0 + http2-wrapper: 1.0.3 + lowercase-keys: 2.0.0 + p-cancelable: 2.1.1 + responselike: 2.0.1 graceful-fs@4.2.11: {} @@ -11439,7 +13316,11 @@ snapshots: has-property-descriptors@1.0.2: dependencies: - es-define-property: 1.0.1 + es-define-property: 1.0.0 + + has-proto@1.1.0: + dependencies: + call-bind: 1.0.7 has-symbols@1.1.0: {} @@ -11447,6 +13328,8 @@ snapshots: dependencies: has-symbols: 1.1.0 + has-unicode@2.0.1: {} + hash-base@3.0.5: dependencies: inherits: 2.0.4 @@ -11480,7 +13363,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.3 - '@ungap/structured-clone': 1.3.0 + '@ungap/structured-clone': 1.2.0 hast-util-from-parse5: 8.0.2 hast-util-to-parse5: 8.0.0 html-void-elements: 3.0.0 @@ -11495,7 +13378,7 @@ snapshots: hast-util-sanitize@5.0.2: dependencies: '@types/hast': 3.0.4 - '@ungap/structured-clone': 1.3.0 + '@ungap/structured-clone': 1.2.0 unist-util-position: 5.0.0 hast-util-to-estree@2.3.3: @@ -11518,7 +13401,7 @@ snapshots: transitivePeerDependencies: - supports-color - hast-util-to-html@9.0.4: + hast-util-to-html@9.0.3: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.3 @@ -11542,7 +13425,7 @@ snapshots: estree-util-is-identifier-name: 3.0.0 hast-util-whitespace: 3.0.0 mdast-util-mdx-expression: 2.0.1 - mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdx-jsx: 3.1.3 mdast-util-mdxjs-esm: 2.0.1 property-information: 6.5.0 space-separated-tokens: 2.0.2 @@ -11586,6 +13469,10 @@ snapshots: dependencies: react-is: 16.13.1 + hosted-git-info@4.1.0: + dependencies: + lru-cache: 6.0.0 + hosted-git-info@6.1.3: dependencies: lru-cache: 7.18.3 @@ -11604,6 +13491,8 @@ snapshots: text-segmentation: 1.0.3 optional: true + http-cache-semantics@4.1.1: {} + http-errors@2.0.0: dependencies: depd: 2.0.0 @@ -11612,26 +13501,56 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 - http-proxy-agent@7.0.2: + http-proxy-agent@5.0.0: dependencies: - agent-base: 7.1.3 + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 debug: 4.4.0 transitivePeerDependencies: - supports-color + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.3 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + http2-wrapper@1.0.3: + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + https-browserify@1.0.0: {} + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.3 - debug: 4.4.0 + debug: 4.3.7 transitivePeerDependencies: - supports-color human-signals@2.1.0: {} + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + husky@9.1.7: {} + iconv-corefoundation@1.1.7: + dependencies: + cli-truncate: 2.1.0 + node-addon-api: 1.7.2 + optional: true + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 @@ -11640,9 +13559,9 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.5.2): + icss-utils@5.1.0(postcss@8.4.49): dependencies: - postcss: 8.5.2 + postcss: 8.4.49 ieee754@1.2.1: {} @@ -11654,18 +13573,18 @@ snapshots: immutable@5.0.3: {} - import-fresh@3.3.1: + import-fresh@3.3.0: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 importx@0.4.4: dependencies: - bundle-require: 5.1.0(esbuild@0.23.1) + bundle-require: 5.0.0(esbuild@0.23.1) debug: 4.4.0 esbuild: 0.23.1 jiti: 2.0.0-beta.3 - jiti-v1: jiti@1.21.7 + jiti-v1: jiti@1.21.6 pathe: 1.1.2 tsx: 4.19.2 transitivePeerDependencies: @@ -11675,12 +13594,28 @@ snapshots: indent-string@4.0.0: {} + infer-owner@1.0.4: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + inherits@2.0.4: {} inline-style-parser@0.1.1: {} inline-style-parser@0.2.4: {} + invariant@2.2.4: + dependencies: + loose-envify: 1.4.0 + + ip-address@9.0.5: + dependencies: + jsbn: 1.1.0 + sprintf-js: 1.1.3 + ipaddr.js@1.9.1: {} is-alphabetical@2.0.1: {} @@ -11690,14 +13625,11 @@ snapshots: is-alphabetical: 2.0.1 is-decimal: 2.0.1 - is-arguments@1.2.0: + is-arguments@1.1.1: dependencies: - call-bound: 1.0.3 + call-bind: 1.0.7 has-tostringtag: 1.0.2 - is-arrayish@0.3.2: - optional: true - is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 @@ -11710,7 +13642,7 @@ snapshots: dependencies: ci-info: 3.9.0 - is-core-module@2.16.1: + is-core-module@2.15.1: dependencies: hasown: 2.0.2 @@ -11722,12 +13654,9 @@ snapshots: is-fullwidth-code-point@3.0.0: {} - is-generator-function@1.1.0: + is-generator-function@1.0.10: dependencies: - call-bound: 1.0.3 - get-proto: 1.0.1 has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 is-glob@4.0.3: dependencies: @@ -11739,9 +13668,11 @@ snapshots: is-interactive@1.0.0: {} + is-lambda@1.0.1: {} + is-nan@1.3.2: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 define-properties: 1.2.1 is-number@7.0.0: {} @@ -11756,28 +13687,25 @@ snapshots: dependencies: '@types/estree': 1.0.6 - is-regex@1.2.1: - dependencies: - call-bound: 1.0.3 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - is-stream@2.0.1: {} - is-typed-array@1.1.15: + is-typed-array@1.1.13: dependencies: - which-typed-array: 1.1.18 + which-typed-array: 1.1.16 is-unicode-supported@0.1.0: {} isarray@1.0.0: {} + isbinaryfile@4.0.10: {} + + isbinaryfile@5.0.4: {} + isbot@4.4.0: {} isexe@2.0.0: {} - isomorphic-git@1.29.0: + isomorphic-git@1.27.2: dependencies: async-lock: 1.4.1 clean-git-ref: 2.0.1 @@ -11800,15 +13728,24 @@ snapshots: editions: 6.21.0 textextensions: 6.11.0 + itty-time@1.0.6: {} + jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 + jake@10.9.2: + dependencies: + async: 3.2.6 + chalk: 4.1.2 + filelist: 1.0.4 + minimatch: 3.1.2 + javascript-stringify@2.1.0: {} - jiti@1.21.7: {} + jiti@1.21.6: {} jiti@2.0.0-beta.3: {} @@ -11822,22 +13759,24 @@ snapshots: dependencies: argparse: 2.0.1 + jsbn@1.1.0: {} + jsdom@26.0.0: dependencies: cssstyle: 4.2.1 data-urls: 5.0.0 decimal.js: 10.5.0 - form-data: 4.0.2 + form-data: 4.0.1 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.16 + nwsapi: 2.2.18 parse5: 7.2.1 rrweb-cssom: 0.8.0 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 5.1.1 + tough-cookie: 5.1.2 w3c-xmlserializer: 5.0.0 webidl-conversions: 7.0.0 whatwg-encoding: 3.1.1 @@ -11858,10 +13797,17 @@ snapshots: json-schema-traverse@0.4.1: {} + json-schema-traverse@1.0.0: {} + + json-schema-typed@8.0.1: {} + json-schema@0.4.0: {} json-stable-stringify-without-jsonify@1.0.1: {} + json-stringify-safe@5.0.1: + optional: true + json5@2.2.3: {} jsonc-eslint-parser@2.4.0: @@ -11869,7 +13815,7 @@ snapshots: acorn: 8.14.0 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - semver: 7.7.1 + semver: 7.6.3 jsondiffpatch@0.6.0: dependencies: @@ -11877,6 +13823,10 @@ snapshots: chalk: 5.4.1 diff-match-patch: 1.0.5 + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + jsonfile@6.1.0: dependencies: universalify: 2.0.1 @@ -11885,13 +13835,13 @@ snapshots: jspdf@2.5.2: dependencies: - '@babel/runtime': 7.26.7 + '@babel/runtime': 7.26.0 atob: 2.1.2 btoa: 1.2.1 fflate: 0.8.2 optionalDependencies: canvg: 3.0.10 - core-js: 3.40.0 + core-js: 3.41.0 dompurify: 2.5.8 html2canvas: 1.4.1 @@ -11910,6 +13860,12 @@ snapshots: kolorist@1.8.0: {} + lazy-val@1.0.5: {} + + lazystream@1.0.1: + dependencies: + readable-stream: 2.3.8 + levn@0.4.1: dependencies: prelude-ls: 1.2.1 @@ -11919,7 +13875,7 @@ snapshots: dependencies: immediate: 3.0.6 - lilconfig@3.1.3: {} + lilconfig@3.1.2: {} load-tsconfig@0.2.5: {} @@ -11927,13 +13883,8 @@ snapshots: local-pkg@0.5.1: dependencies: - mlly: 1.7.4 - pkg-types: 1.3.1 - - local-pkg@1.0.0: - dependencies: - mlly: 1.7.4 - pkg-types: 1.3.1 + mlly: 1.7.3 + pkg-types: 1.2.1 locate-path@6.0.0: dependencies: @@ -11943,8 +13894,22 @@ snapshots: lodash.debounce@4.0.8: {} + lodash.defaults@4.2.0: {} + + lodash.difference@4.5.0: {} + + lodash.escaperegexp@4.1.2: {} + + lodash.flatten@4.4.0: {} + + lodash.isequal@4.5.0: {} + + lodash.isplainobject@4.0.6: {} + lodash.merge@4.6.2: {} + lodash.union@4.6.0: {} + lodash@4.17.21: {} log-symbols@4.1.0: @@ -11958,7 +13923,9 @@ snapshots: dependencies: js-tokens: 4.0.0 - loupe@3.1.3: {} + loupe@3.1.2: {} + + lowercase-keys@2.0.0: {} lru-cache@10.4.3: {} @@ -11966,6 +13933,10 @@ snapshots: dependencies: yallist: 3.1.1 + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + lru-cache@7.18.3: {} lz-string@1.5.0: {} @@ -11974,15 +13945,40 @@ snapshots: dependencies: sourcemap-codec: 1.4.8 - magic-string@0.30.17: + magic-string@0.30.14: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + make-fetch-happen@10.2.1: + dependencies: + agentkeepalive: 4.6.0 + cacache: 16.1.3 + http-cache-semantics: 4.1.1 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-lambda: 1.0.1 + lru-cache: 7.18.3 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-fetch: 2.1.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 0.6.4 + promise-retry: 2.0.1 + socks-proxy-agent: 7.0.0 + ssri: 9.0.1 + transitivePeerDependencies: + - bluebird + - supports-color + markdown-extensions@1.1.1: {} markdown-table@3.0.4: {} - math-intrinsics@1.1.0: {} + matcher@3.0.0: + dependencies: + escape-string-regexp: 4.0.0 + optional: true md5.js@1.3.5: dependencies: @@ -11996,7 +13992,7 @@ snapshots: '@types/unist': 2.0.11 unist-util-visit: 4.1.2 - mdast-util-find-and-replace@3.0.2: + mdast-util-find-and-replace@3.0.1: dependencies: '@types/mdast': 4.0.4 escape-string-regexp: 5.0.0 @@ -12048,10 +14044,10 @@ snapshots: '@types/mdast': 4.0.4 ccount: 2.0.1 devlop: 1.1.0 - mdast-util-find-and-replace: 3.0.2 + mdast-util-find-and-replace: 3.0.1 micromark-util-character: 2.1.1 - mdast-util-gfm-footnote@2.1.0: + mdast-util-gfm-footnote@2.0.0: dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 @@ -12088,11 +14084,11 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-gfm@3.1.0: + mdast-util-gfm@3.0.0: dependencies: mdast-util-from-markdown: 2.0.2 mdast-util-gfm-autolink-literal: 2.0.1 - mdast-util-gfm-footnote: 2.1.0 + mdast-util-gfm-footnote: 2.0.0 mdast-util-gfm-strikethrough: 2.0.0 mdast-util-gfm-table: 2.0.0 mdast-util-gfm-task-list-item: 2.0.0 @@ -12130,7 +14126,7 @@ snapshots: ccount: 2.0.1 mdast-util-from-markdown: 1.3.1 mdast-util-to-markdown: 1.5.0 - parse-entities: 4.0.2 + parse-entities: 4.0.1 stringify-entities: 4.0.4 unist-util-remove-position: 4.0.2 unist-util-stringify-position: 3.0.3 @@ -12138,7 +14134,7 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-mdx-jsx@3.2.0: + mdast-util-mdx-jsx@3.1.3: dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -12148,7 +14144,7 @@ snapshots: devlop: 1.1.0 mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 - parse-entities: 4.0.2 + parse-entities: 4.0.1 stringify-entities: 4.0.4 unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 @@ -12211,7 +14207,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.3.0 + '@ungap/structured-clone': 1.2.0 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 @@ -12254,7 +14250,7 @@ snapshots: media-query-parser@2.0.2: dependencies: - '@babel/runtime': 7.26.7 + '@babel/runtime': 7.26.0 media-typer@0.3.0: {} @@ -12302,7 +14298,7 @@ snapshots: micromark-util-html-tag-name: 2.0.1 micromark-util-normalize-identifier: 2.0.1 micromark-util-resolve-all: 2.0.1 - micromark-util-subtokenize: 2.0.4 + micromark-util-subtokenize: 2.0.3 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.1 @@ -12340,7 +14336,7 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.1 - micromark-extension-gfm-table@2.1.1: + micromark-extension-gfm-table@2.1.0: dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.1 @@ -12365,7 +14361,7 @@ snapshots: micromark-extension-gfm-autolink-literal: 2.1.0 micromark-extension-gfm-footnote: 2.1.0 micromark-extension-gfm-strikethrough: 2.1.0 - micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-table: 2.1.0 micromark-extension-gfm-tagfilter: 2.0.0 micromark-extension-gfm-task-list-item: 2.1.0 micromark-util-combine-extensions: 2.0.1 @@ -12613,7 +14609,7 @@ snapshots: micromark-util-types: 1.1.0 uvu: 0.5.6 - micromark-util-subtokenize@2.0.4: + micromark-util-subtokenize@2.0.3: dependencies: devlop: 1.1.0 micromark-util-chunked: 2.0.1 @@ -12666,7 +14662,7 @@ snapshots: micromark-util-normalize-identifier: 2.0.1 micromark-util-resolve-all: 2.0.1 micromark-util-sanitize-uri: 2.0.1 - micromark-util-subtokenize: 2.0.4 + micromark-util-subtokenize: 2.0.3 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.1 transitivePeerDependencies: @@ -12694,37 +14690,57 @@ snapshots: mime@3.0.0: {} + mime@4.0.6: {} + mimic-fn@2.1.0: {} + mimic-function@5.0.1: {} + + mimic-response@1.0.1: {} + mimic-response@3.1.0: {} min-indent@1.0.1: {} - miniflare@3.20250204.0: + miniflare@3.20241106.1: dependencies: '@cspotcode/source-map-support': 0.8.1 acorn: 8.14.0 - acorn-walk: 8.3.2 + acorn-walk: 8.3.4 + capnp-ts: 0.7.0 exit-hook: 2.2.1 glob-to-regexp: 0.4.1 stoppable: 1.1.0 - undici: 5.28.5 - workerd: 1.20250204.0 + undici: 5.28.4 + workerd: 1.20241106.1 ws: 8.18.0 - youch: 3.2.3 - zod: 3.22.3 + youch: 3.3.4 + zod: 3.24.1 transitivePeerDependencies: - bufferutil + - supports-color - utf-8-validate minimalistic-assert@1.0.1: {} minimalistic-crypto-utils@1.0.1: {} + minimatch@10.0.1: + dependencies: + brace-expansion: 2.0.1 + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.1 + + minimatch@8.0.4: + dependencies: + brace-expansion: 2.0.1 + minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 @@ -12739,6 +14755,14 @@ snapshots: dependencies: minipass: 3.3.6 + minipass-fetch@2.1.2: + dependencies: + minipass: 3.3.6 + minipass-sized: 1.0.3 + minizlib: 2.1.2 + optionalDependencies: + encoding: 0.1.13 + minipass-flush@1.0.5: dependencies: minipass: 3.3.6 @@ -12747,10 +14771,16 @@ snapshots: dependencies: minipass: 3.3.6 + minipass-sized@1.0.3: + dependencies: + minipass: 3.3.6 + minipass@3.3.6: dependencies: yallist: 4.0.0 + minipass@4.2.8: {} + minipass@5.0.0: {} minipass@7.1.2: {} @@ -12764,20 +14794,24 @@ snapshots: mkdirp@1.0.4: {} - mlly@1.7.4: + mlly@1.7.3: dependencies: acorn: 8.14.0 - pathe: 2.0.2 - pkg-types: 1.3.1 + pathe: 1.1.2 + pkg-types: 1.2.1 ufo: 1.5.4 modern-ahocorasick@1.1.0: {} - motion-dom@11.18.1: + morgan@1.10.0: dependencies: - motion-utils: 11.18.1 - - motion-utils@11.18.1: {} + basic-auth: 2.0.1 + debug: 2.6.9 + depd: 2.0.0 + on-finished: 2.3.0 + on-headers: 1.0.2 + transitivePeerDependencies: + - supports-color mri@1.2.0: {} @@ -12801,9 +14835,22 @@ snapshots: negotiator@0.6.3: {} + negotiator@0.6.4: {} + + node-abi@3.74.0: + dependencies: + semver: 7.6.3 + + node-addon-api@1.7.2: + optional: true + + node-api-version@0.2.0: + dependencies: + semver: 7.6.3 + node-domexception@1.0.0: {} - node-fetch-native@1.6.6: {} + node-fetch-native@1.6.4: {} node-fetch@3.3.2: dependencies: @@ -12811,9 +14858,28 @@ snapshots: fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 - node-releases@2.0.19: {} + node-forge@1.3.1: {} - node-stdlib-browser@1.3.1: + node-gyp@9.4.1: + dependencies: + env-paths: 2.2.1 + exponential-backoff: 3.1.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + make-fetch-happen: 10.2.1 + nopt: 6.0.0 + npmlog: 6.0.2 + rimraf: 3.0.2 + semver: 7.6.3 + tar: 6.2.1 + which: 2.0.2 + transitivePeerDependencies: + - bluebird + - supports-color + + node-releases@2.0.18: {} + + node-stdlib-browser@1.3.0: dependencies: assert: 2.1.0 browser-resolve: 2.0.0 @@ -12843,18 +14909,24 @@ snapshots: util: 0.12.5 vm-browserify: 1.1.2 + nopt@6.0.0: + dependencies: + abbrev: 1.1.1 + normalize-package-data@5.0.0: dependencies: hosted-git-info: 6.1.3 - is-core-module: 2.16.1 - semver: 7.7.1 + is-core-module: 2.15.1 + semver: 7.6.3 validate-npm-package-license: 3.0.4 normalize-path@3.0.0: {} + normalize-url@6.1.0: {} + npm-install-checks@6.3.0: dependencies: - semver: 7.7.1 + semver: 7.6.3 npm-normalize-package-bin@3.0.1: {} @@ -12862,7 +14934,7 @@ snapshots: dependencies: hosted-git-info: 6.1.3 proc-log: 3.0.0 - semver: 7.7.1 + semver: 7.6.3 validate-npm-package-name: 5.0.1 npm-pick-manifest@8.0.2: @@ -12870,38 +14942,43 @@ snapshots: npm-install-checks: 6.3.0 npm-normalize-package-bin: 3.0.1 npm-package-arg: 10.1.0 - semver: 7.7.1 + semver: 7.6.3 npm-run-path@4.0.1: dependencies: path-key: 3.1.1 - nwsapi@2.2.16: {} + npmlog@6.0.2: + dependencies: + are-we-there-yet: 3.0.1 + console-control-strings: 1.1.0 + gauge: 4.0.4 + set-blocking: 2.0.0 + + nwsapi@2.2.18: {} object-assign@4.1.1: {} - object-inspect@1.13.4: {} + object-inspect@1.13.3: {} object-is@1.1.6: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 define-properties: 1.2.1 object-keys@1.1.1: {} - object.assign@4.1.7: + object.assign@4.1.5: dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 + call-bind: 1.0.7 define-properties: 1.2.1 - es-object-atoms: 1.1.1 has-symbols: 1.1.0 object-keys: 1.1.1 ofetch@1.4.1: dependencies: destr: 2.0.3 - node-fetch-native: 1.6.6 + node-fetch-native: 1.6.4 ufo: 1.5.4 ohash@1.1.4: {} @@ -12914,10 +14991,16 @@ snapshots: optionalDependencies: zod: 3.24.1 + on-finished@2.3.0: + dependencies: + ee-first: 1.1.1 + on-finished@2.4.1: dependencies: ee-first: 1.1.1 + on-headers@1.0.2: {} + once@1.4.0: dependencies: wrappy: 1.0.2 @@ -12926,11 +15009,11 @@ snapshots: dependencies: mimic-fn: 2.1.0 - oniguruma-to-es@2.3.0: + oniguruma-to-es@0.7.0: dependencies: emoji-regex-xs: 1.0.0 - regex: 5.1.1 - regex-recursion: 5.1.1 + regex: 5.0.2 + regex-recursion: 4.3.0 optionator@0.9.4: dependencies: @@ -12957,6 +15040,8 @@ snapshots: outdent@0.8.0: {} + p-cancelable@2.1.1: {} + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 @@ -12971,7 +15056,7 @@ snapshots: package-json-from-dist@1.0.1: {} - package-manager-detector@0.2.9: {} + package-manager-detector@0.2.6: {} pako@0.2.9: {} @@ -12990,9 +15075,10 @@ snapshots: pbkdf2: 3.1.2 safe-buffer: 5.2.1 - parse-entities@4.0.2: + parse-entities@4.0.1: dependencies: '@types/unist': 2.0.11 + character-entities: 2.0.2 character-entities-legacy: 3.0.0 character-reference-invalid: 2.0.1 decode-named-character-reference: 1.0.2 @@ -13014,6 +15100,8 @@ snapshots: path-exists@4.0.0: {} + path-is-absolute@1.0.1: {} + path-key@3.1.1: {} path-parse@1.0.7: {} @@ -13023,14 +15111,12 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-to-regexp@0.1.12: {} + path-to-regexp@0.1.10: {} path-to-regexp@6.3.0: {} pathe@1.1.2: {} - pathe@2.0.2: {} - pathval@2.0.0: {} pbkdf2@3.1.2: @@ -13041,12 +15127,16 @@ snapshots: safe-buffer: 5.2.1 sha.js: 2.4.11 + pe-library@0.4.1: {} + peek-stream@1.1.3: dependencies: buffer-from: 1.1.2 duplexify: 3.7.1 through2: 2.0.5 + pend@1.2.0: {} + perfect-debounce@1.0.0: {} performance-now@2.1.0: @@ -13072,68 +15162,74 @@ snapshots: dependencies: find-up: 5.0.0 - pkg-types@1.3.1: + pkg-types@1.2.1: dependencies: confbox: 0.1.8 - mlly: 1.7.4 - pathe: 2.0.2 + mlly: 1.7.3 + pathe: 1.1.2 - pnpm@9.15.5: {} - - possible-typed-array-names@1.1.0: {} - - postcss-discard-duplicates@5.1.0(postcss@8.5.2): + plist@3.1.0: dependencies: - postcss: 8.5.2 + '@xmldom/xmldom': 0.8.10 + base64-js: 1.5.1 + xmlbuilder: 15.1.1 - postcss-load-config@4.0.2(postcss@8.5.2): + pnpm@9.14.4: {} + + possible-typed-array-names@1.0.0: {} + + postcss-discard-duplicates@5.1.0(postcss@8.4.49): dependencies: - lilconfig: 3.1.3 - yaml: 2.7.0 + postcss: 8.4.49 + + postcss-load-config@4.0.2(postcss@8.4.49): + dependencies: + lilconfig: 3.1.2 + yaml: 2.6.1 optionalDependencies: - postcss: 8.5.2 + postcss: 8.4.49 - postcss-modules-extract-imports@3.1.0(postcss@8.5.2): + postcss-modules-extract-imports@3.1.0(postcss@8.4.49): dependencies: - postcss: 8.5.2 + postcss: 8.4.49 - postcss-modules-local-by-default@4.2.0(postcss@8.5.2): + postcss-modules-local-by-default@4.1.0(postcss@8.4.49): dependencies: - icss-utils: 5.1.0(postcss@8.5.2) - postcss: 8.5.2 - postcss-selector-parser: 7.1.0 + icss-utils: 5.1.0(postcss@8.4.49) + postcss: 8.4.49 + postcss-selector-parser: 7.0.0 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.1(postcss@8.5.2): + postcss-modules-scope@3.2.1(postcss@8.4.49): dependencies: - postcss: 8.5.2 - postcss-selector-parser: 7.1.0 + postcss: 8.4.49 + postcss-selector-parser: 7.0.0 - postcss-modules-values@4.0.0(postcss@8.5.2): + postcss-modules-values@4.0.0(postcss@8.4.49): dependencies: - icss-utils: 5.1.0(postcss@8.5.2) - postcss: 8.5.2 + icss-utils: 5.1.0(postcss@8.4.49) + postcss: 8.4.49 - postcss-modules@6.0.1(postcss@8.5.2): + postcss-modules@6.0.1(postcss@8.4.49): dependencies: generic-names: 4.0.0 - icss-utils: 5.1.0(postcss@8.5.2) + icss-utils: 5.1.0(postcss@8.4.49) lodash.camelcase: 4.3.0 - postcss: 8.5.2 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.2) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.2) - postcss-modules-scope: 3.2.1(postcss@8.5.2) - postcss-modules-values: 4.0.0(postcss@8.5.2) + postcss: 8.4.49 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.49) + postcss-modules-local-by-default: 4.1.0(postcss@8.4.49) + postcss-modules-scope: 3.2.1(postcss@8.4.49) + postcss-modules-values: 4.0.0(postcss@8.4.49) string-hash: 1.1.3 - postcss-selector-parser@7.1.0: + postcss-selector-parser@7.0.0: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 postcss-value-parser@4.2.0: {} - postcss@8.5.2: + postcss@8.4.49: dependencies: nanoid: 3.3.8 picocolors: 1.1.1 @@ -13147,7 +15243,7 @@ snapshots: prettier@2.8.8: {} - prettier@3.5.0: {} + prettier@3.4.1: {} pretty-format@27.5.1: dependencies: @@ -13167,6 +15263,8 @@ snapshots: process@0.11.10: {} + progress@2.0.3: {} + promise-inflight@1.0.1: {} promise-retry@2.0.1: @@ -13218,16 +15316,18 @@ snapshots: qs@6.13.0: dependencies: - side-channel: 1.1.0 + side-channel: 1.0.6 - qs@6.14.0: + qs@6.13.1: dependencies: - side-channel: 1.1.0 + side-channel: 1.0.6 querystring-es3@0.2.1: {} queue-microtask@1.2.3: {} + quick-lru@5.1.1: {} + raf-schd@4.0.3: {} raf@3.4.1: @@ -13255,7 +15355,7 @@ snapshots: react-beautiful-dnd@13.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.26.7 + '@babel/runtime': 7.26.0 css-box-model: 1.2.1 memoize-one: 5.2.1 raf-schd: 4.0.3 @@ -13267,16 +15367,16 @@ snapshots: transitivePeerDependencies: - react-native - react-chartjs-2@5.3.0(chart.js@4.4.7)(react@18.3.1): + react-chartjs-2@5.3.0(chart.js@4.4.8)(react@18.3.1): dependencies: - chart.js: 4.4.7 + chart.js: 4.4.8 react: 18.3.1 react-dnd-html5-backend@16.0.1: dependencies: dnd-core: 16.0.1 - react-dnd@16.0.1(@types/hoist-non-react-statics@3.3.6)(@types/node@22.13.1)(@types/react@18.3.18)(react@18.3.1): + react-dnd@16.0.1(@types/hoist-non-react-statics@3.3.6)(@types/node@22.10.1)(@types/react@18.3.12)(react@18.3.1): dependencies: '@react-dnd/invariant': 4.0.2 '@react-dnd/shallowequal': 4.0.2 @@ -13286,8 +15386,8 @@ snapshots: react: 18.3.1 optionalDependencies: '@types/hoist-non-react-statics': 3.3.6 - '@types/node': 22.13.1 - '@types/react': 18.3.18 + '@types/node': 22.10.1 + '@types/react': 18.3.12 react-dom@18.3.1(react@18.3.1): dependencies: @@ -13300,7 +15400,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-icons@5.4.0(react@18.3.1): + react-icons@5.5.0(react@18.3.1): dependencies: react: 18.3.1 @@ -13308,10 +15408,10 @@ snapshots: react-is@17.0.2: {} - react-markdown@9.0.3(@types/react@18.3.18)(react@18.3.1): + react-markdown@9.0.1(@types/react@18.3.12)(react@18.3.1): dependencies: '@types/hast': 3.0.4 - '@types/react': 18.3.18 + '@types/react': 18.3.12 devlop: 1.1.0 hast-util-to-jsx-runtime: 2.3.2 html-url-attributes: 3.0.1 @@ -13327,7 +15427,7 @@ snapshots: react-redux@7.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.26.7 + '@babel/runtime': 7.26.0 '@types/react-redux': 7.1.34 hoist-non-react-statics: 3.3.2 loose-envify: 1.4.0 @@ -13339,49 +15439,77 @@ snapshots: react-refresh@0.14.2: {} - react-remove-scroll-bar@2.3.8(@types/react@18.3.18)(react@18.3.1): + react-remove-scroll-bar@2.3.6(@types/react@18.3.12)(react@18.3.1): dependencies: react: 18.3.1 - react-style-singleton: 2.2.3(@types/react@18.3.18)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.12)(react@18.3.1) tslib: 2.8.1 optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.12 - react-remove-scroll@2.6.3(@types/react@18.3.18)(react@18.3.1): + react-remove-scroll-bar@2.3.8(@types/react@18.3.12)(react@18.3.1): dependencies: react: 18.3.1 - react-remove-scroll-bar: 2.3.8(@types/react@18.3.18)(react@18.3.1) - react-style-singleton: 2.2.3(@types/react@18.3.18)(react@18.3.1) + react-style-singleton: 2.2.3(@types/react@18.3.12)(react@18.3.1) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@18.3.18)(react@18.3.1) - use-sidecar: 1.1.3(@types/react@18.3.18)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.12 + + react-remove-scroll@2.6.0(@types/react@18.3.12)(react@18.3.1): + dependencies: + react: 18.3.1 + react-remove-scroll-bar: 2.3.6(@types/react@18.3.12)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.12)(react@18.3.1) + tslib: 2.8.1 + use-callback-ref: 1.3.2(@types/react@18.3.12)(react@18.3.1) + use-sidecar: 1.1.2(@types/react@18.3.12)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.12 + + react-remove-scroll@2.6.3(@types/react@18.3.12)(react@18.3.1): + dependencies: + react: 18.3.1 + react-remove-scroll-bar: 2.3.8(@types/react@18.3.12)(react@18.3.1) + react-style-singleton: 2.2.3(@types/react@18.3.12)(react@18.3.1) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@18.3.12)(react@18.3.1) + use-sidecar: 1.1.3(@types/react@18.3.12)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.12 react-resizable-panels@2.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-router-dom@6.29.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-router-dom@6.30.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@remix-run/router': 1.22.0 + '@remix-run/router': 1.23.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-router: 6.29.0(react@18.3.1) + react-router: 6.30.0(react@18.3.1) - react-router@6.29.0(react@18.3.1): + react-router@6.30.0(react@18.3.1): dependencies: - '@remix-run/router': 1.22.0 + '@remix-run/router': 1.23.0 react: 18.3.1 - react-style-singleton@2.2.3(@types/react@18.3.18)(react@18.3.1): + react-style-singleton@2.2.1(@types/react@18.3.12)(react@18.3.1): + dependencies: + get-nonce: 1.0.1 + invariant: 2.2.4 + react: 18.3.1 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 18.3.12 + + react-style-singleton@2.2.3(@types/react@18.3.12)(react@18.3.1): dependencies: get-nonce: 1.0.1 react: 18.3.1 tslib: 2.8.1 optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.12 react-toastify@10.0.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: @@ -13393,6 +15521,12 @@ snapshots: dependencies: loose-envify: 1.4.0 + read-binary-file-arch@1.0.6: + dependencies: + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 @@ -13409,10 +15543,16 @@ snapshots: string_decoder: 1.3.0 util-deprecate: 1.0.2 + readdir-glob@1.1.3: + dependencies: + minimatch: 5.1.6 + readdirp@3.6.0: dependencies: picomatch: 2.3.1 + readdirp@4.0.2: {} + redent@3.0.0: dependencies: indent-string: 4.0.0 @@ -13420,21 +15560,20 @@ snapshots: redux@4.2.1: dependencies: - '@babel/runtime': 7.26.7 + '@babel/runtime': 7.26.0 regenerator-runtime@0.13.11: optional: true regenerator-runtime@0.14.1: {} - regex-recursion@5.1.1: + regex-recursion@4.3.0: dependencies: - regex: 5.1.1 regex-utilities: 2.3.0 regex-utilities@2.3.0: {} - regex@5.1.1: + regex@5.0.2: dependencies: regex-utilities: 2.3.0 @@ -13456,10 +15595,10 @@ snapshots: micromark-extension-frontmatter: 1.1.1 unified: 10.1.2 - remark-gfm@4.0.1: + remark-gfm@4.0.0: dependencies: '@types/mdast': 4.0.4 - mdast-util-gfm: 3.1.0 + mdast-util-gfm: 3.0.0 micromark-extension-gfm: 3.0.0 remark-parse: 11.0.0 remark-stringify: 11.0.0 @@ -13519,38 +15658,52 @@ snapshots: mdast-util-to-markdown: 2.1.2 unified: 11.0.5 - remix-island@0.2.0(@remix-run/react@2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3))(@remix-run/server-runtime@2.15.3(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + remix-island@0.2.0(@remix-run/react@2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.2))(@remix-run/server-runtime@2.16.0(typescript@5.7.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@remix-run/react': 2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3) - '@remix-run/server-runtime': 2.15.3(typescript@5.7.3) + '@remix-run/react': 2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.2) + '@remix-run/server-runtime': 2.16.0(typescript@5.7.2) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - remix-utils@7.7.0(@remix-run/cloudflare@2.15.3(@cloudflare/workers-types@4.20250204.0)(typescript@5.7.3))(@remix-run/node@2.15.3(typescript@5.7.3))(@remix-run/react@2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3))(@remix-run/router@1.22.0)(react@18.3.1)(zod@3.24.1): + remix-utils@7.7.0(@remix-run/cloudflare@2.16.0(@cloudflare/workers-types@4.20241127.0)(typescript@5.7.2))(@remix-run/node@2.15.3(typescript@5.7.2))(@remix-run/react@2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.2))(@remix-run/router@1.23.0)(react@18.3.1)(zod@3.24.1): dependencies: - type-fest: 4.34.1 + type-fest: 4.30.0 optionalDependencies: - '@remix-run/cloudflare': 2.15.3(@cloudflare/workers-types@4.20250204.0)(typescript@5.7.3) - '@remix-run/node': 2.15.3(typescript@5.7.3) - '@remix-run/react': 2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3) - '@remix-run/router': 1.22.0 + '@remix-run/cloudflare': 2.16.0(@cloudflare/workers-types@4.20241127.0)(typescript@5.7.2) + '@remix-run/node': 2.15.3(typescript@5.7.2) + '@remix-run/react': 2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.2) + '@remix-run/router': 1.23.0 react: 18.3.1 zod: 3.24.1 + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + require-like@0.1.2: {} + resedit@1.7.2: + dependencies: + pe-library: 0.4.1 + + resolve-alpn@1.2.1: {} + resolve-from@4.0.0: {} resolve-pkg-maps@1.0.0: {} resolve.exports@2.0.3: {} - resolve@1.22.10: + resolve@1.22.8: dependencies: - is-core-module: 2.16.1 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + responselike@2.0.1: + dependencies: + lowercase-keys: 2.0.0 + restore-cursor@3.1.0: dependencies: onetime: 5.1.2 @@ -13563,18 +15716,28 @@ snapshots: rgbcolor@1.0.1: optional: true + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rimraf@4.4.1: + dependencies: + glob: 9.3.5 + ripemd160@2.0.2: dependencies: hash-base: 3.0.5 inherits: 2.0.4 - rollup-plugin-dts@5.3.1(rollup@3.29.5)(typescript@5.7.3): + roarr@2.15.4: dependencies: - magic-string: 0.30.17 - rollup: 3.29.5 - typescript: 5.7.3 - optionalDependencies: - '@babel/code-frame': 7.26.2 + boolean: 3.2.0 + detect-node: 2.1.0 + globalthis: 1.0.4 + json-stringify-safe: 5.0.1 + semver-compare: 1.0.0 + sprintf-js: 1.1.3 + optional: true rollup-plugin-inject@3.0.2: dependencies: @@ -13590,33 +15753,28 @@ snapshots: dependencies: estree-walker: 0.6.1 - rollup@3.29.5: - optionalDependencies: - fsevents: 2.3.3 - - rollup@4.34.6: + rollup@4.28.0: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.34.6 - '@rollup/rollup-android-arm64': 4.34.6 - '@rollup/rollup-darwin-arm64': 4.34.6 - '@rollup/rollup-darwin-x64': 4.34.6 - '@rollup/rollup-freebsd-arm64': 4.34.6 - '@rollup/rollup-freebsd-x64': 4.34.6 - '@rollup/rollup-linux-arm-gnueabihf': 4.34.6 - '@rollup/rollup-linux-arm-musleabihf': 4.34.6 - '@rollup/rollup-linux-arm64-gnu': 4.34.6 - '@rollup/rollup-linux-arm64-musl': 4.34.6 - '@rollup/rollup-linux-loongarch64-gnu': 4.34.6 - '@rollup/rollup-linux-powerpc64le-gnu': 4.34.6 - '@rollup/rollup-linux-riscv64-gnu': 4.34.6 - '@rollup/rollup-linux-s390x-gnu': 4.34.6 - '@rollup/rollup-linux-x64-gnu': 4.34.6 - '@rollup/rollup-linux-x64-musl': 4.34.6 - '@rollup/rollup-win32-arm64-msvc': 4.34.6 - '@rollup/rollup-win32-ia32-msvc': 4.34.6 - '@rollup/rollup-win32-x64-msvc': 4.34.6 + '@rollup/rollup-android-arm-eabi': 4.28.0 + '@rollup/rollup-android-arm64': 4.28.0 + '@rollup/rollup-darwin-arm64': 4.28.0 + '@rollup/rollup-darwin-x64': 4.28.0 + '@rollup/rollup-freebsd-arm64': 4.28.0 + '@rollup/rollup-freebsd-x64': 4.28.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.28.0 + '@rollup/rollup-linux-arm-musleabihf': 4.28.0 + '@rollup/rollup-linux-arm64-gnu': 4.28.0 + '@rollup/rollup-linux-arm64-musl': 4.28.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.28.0 + '@rollup/rollup-linux-riscv64-gnu': 4.28.0 + '@rollup/rollup-linux-s390x-gnu': 4.28.0 + '@rollup/rollup-linux-x64-gnu': 4.28.0 + '@rollup/rollup-linux-x64-musl': 4.28.0 + '@rollup/rollup-win32-arm64-msvc': 4.28.0 + '@rollup/rollup-win32-ia32-msvc': 4.28.0 + '@rollup/rollup-win32-x64-msvc': 4.28.0 fsevents: 2.3.3 rrweb-cssom@0.8.0: {} @@ -13637,77 +15795,75 @@ snapshots: safe-buffer@5.2.1: {} - safe-regex-test@1.1.0: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-regex: 1.2.1 - safer-buffer@2.1.2: {} - sass-embedded-android-arm64@1.83.4: - optional: true - - sass-embedded-android-arm@1.83.4: - optional: true - - sass-embedded-android-ia32@1.83.4: - optional: true - - sass-embedded-android-riscv64@1.83.4: - optional: true - - sass-embedded-android-x64@1.83.4: - optional: true - - sass-embedded-darwin-arm64@1.83.4: - optional: true - - sass-embedded-darwin-x64@1.83.4: - optional: true - - sass-embedded-linux-arm64@1.83.4: - optional: true - - sass-embedded-linux-arm@1.83.4: - optional: true - - sass-embedded-linux-ia32@1.83.4: - optional: true - - sass-embedded-linux-musl-arm64@1.83.4: - optional: true - - sass-embedded-linux-musl-arm@1.83.4: - optional: true - - sass-embedded-linux-musl-ia32@1.83.4: - optional: true - - sass-embedded-linux-musl-riscv64@1.83.4: - optional: true - - sass-embedded-linux-musl-x64@1.83.4: - optional: true - - sass-embedded-linux-riscv64@1.83.4: - optional: true - - sass-embedded-linux-x64@1.83.4: - optional: true - - sass-embedded-win32-arm64@1.83.4: - optional: true - - sass-embedded-win32-ia32@1.83.4: - optional: true - - sass-embedded-win32-x64@1.83.4: - optional: true - - sass-embedded@1.83.4: + sanitize-filename@1.6.3: dependencies: - '@bufbuild/protobuf': 2.2.3 + truncate-utf8-bytes: 1.0.2 + + sass-embedded-android-arm64@1.81.0: + optional: true + + sass-embedded-android-arm@1.81.0: + optional: true + + sass-embedded-android-ia32@1.81.0: + optional: true + + sass-embedded-android-riscv64@1.81.0: + optional: true + + sass-embedded-android-x64@1.81.0: + optional: true + + sass-embedded-darwin-arm64@1.81.0: + optional: true + + sass-embedded-darwin-x64@1.81.0: + optional: true + + sass-embedded-linux-arm64@1.81.0: + optional: true + + sass-embedded-linux-arm@1.81.0: + optional: true + + sass-embedded-linux-ia32@1.81.0: + optional: true + + sass-embedded-linux-musl-arm64@1.81.0: + optional: true + + sass-embedded-linux-musl-arm@1.81.0: + optional: true + + sass-embedded-linux-musl-ia32@1.81.0: + optional: true + + sass-embedded-linux-musl-riscv64@1.81.0: + optional: true + + sass-embedded-linux-musl-x64@1.81.0: + optional: true + + sass-embedded-linux-riscv64@1.81.0: + optional: true + + sass-embedded-linux-x64@1.81.0: + optional: true + + sass-embedded-win32-arm64@1.81.0: + optional: true + + sass-embedded-win32-ia32@1.81.0: + optional: true + + sass-embedded-win32-x64@1.81.0: + optional: true + + sass-embedded@1.81.0: + dependencies: + '@bufbuild/protobuf': 2.2.2 buffer-builder: 0.2.0 colorjs.io: 0.5.2 immutable: 5.0.3 @@ -13716,26 +15872,28 @@ snapshots: sync-child-process: 1.0.2 varint: 6.0.0 optionalDependencies: - sass-embedded-android-arm: 1.83.4 - sass-embedded-android-arm64: 1.83.4 - sass-embedded-android-ia32: 1.83.4 - sass-embedded-android-riscv64: 1.83.4 - sass-embedded-android-x64: 1.83.4 - sass-embedded-darwin-arm64: 1.83.4 - sass-embedded-darwin-x64: 1.83.4 - sass-embedded-linux-arm: 1.83.4 - sass-embedded-linux-arm64: 1.83.4 - sass-embedded-linux-ia32: 1.83.4 - sass-embedded-linux-musl-arm: 1.83.4 - sass-embedded-linux-musl-arm64: 1.83.4 - sass-embedded-linux-musl-ia32: 1.83.4 - sass-embedded-linux-musl-riscv64: 1.83.4 - sass-embedded-linux-musl-x64: 1.83.4 - sass-embedded-linux-riscv64: 1.83.4 - sass-embedded-linux-x64: 1.83.4 - sass-embedded-win32-arm64: 1.83.4 - sass-embedded-win32-ia32: 1.83.4 - sass-embedded-win32-x64: 1.83.4 + sass-embedded-android-arm: 1.81.0 + sass-embedded-android-arm64: 1.81.0 + sass-embedded-android-ia32: 1.81.0 + sass-embedded-android-riscv64: 1.81.0 + sass-embedded-android-x64: 1.81.0 + sass-embedded-darwin-arm64: 1.81.0 + sass-embedded-darwin-x64: 1.81.0 + sass-embedded-linux-arm: 1.81.0 + sass-embedded-linux-arm64: 1.81.0 + sass-embedded-linux-ia32: 1.81.0 + sass-embedded-linux-musl-arm: 1.81.0 + sass-embedded-linux-musl-arm64: 1.81.0 + sass-embedded-linux-musl-ia32: 1.81.0 + sass-embedded-linux-musl-riscv64: 1.81.0 + sass-embedded-linux-musl-x64: 1.81.0 + sass-embedded-linux-riscv64: 1.81.0 + sass-embedded-linux-x64: 1.81.0 + sass-embedded-win32-arm64: 1.81.0 + sass-embedded-win32-ia32: 1.81.0 + sass-embedded-win32-x64: 1.81.0 + + sax@1.4.1: {} saxes@6.0.0: dependencies: @@ -13747,9 +15905,17 @@ snapshots: secure-json-parse@2.7.0: {} + selfsigned@2.4.1: + dependencies: + '@types/node-forge': 1.3.11 + node-forge: 1.3.1 + + semver-compare@1.0.0: + optional: true + semver@6.3.1: {} - semver@7.7.1: {} + semver@7.6.3: {} send@0.19.0: dependencies: @@ -13769,6 +15935,11 @@ snapshots: transitivePeerDependencies: - supports-color + serialize-error@7.0.1: + dependencies: + type-fest: 0.13.1 + optional: true + serve-static@1.16.2: dependencies: encodeurl: 2.0.0 @@ -13778,6 +15949,8 @@ snapshots: transitivePeerDependencies: - supports-color + set-blocking@2.0.0: {} + set-cookie-parser@2.7.1: {} set-function-length@1.2.2: @@ -13785,8 +15958,8 @@ snapshots: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.7 - gopd: 1.2.0 + get-intrinsic: 1.2.4 + gopd: 1.1.0 has-property-descriptors: 1.0.2 setimmediate@1.0.5: {} @@ -13798,77 +15971,29 @@ snapshots: inherits: 2.0.4 safe-buffer: 5.2.1 - sharp@0.33.5: - dependencies: - color: 4.2.3 - detect-libc: 2.0.3 - semver: 7.7.1 - optionalDependencies: - '@img/sharp-darwin-arm64': 0.33.5 - '@img/sharp-darwin-x64': 0.33.5 - '@img/sharp-libvips-darwin-arm64': 1.0.4 - '@img/sharp-libvips-darwin-x64': 1.0.4 - '@img/sharp-libvips-linux-arm': 1.0.5 - '@img/sharp-libvips-linux-arm64': 1.0.4 - '@img/sharp-libvips-linux-s390x': 1.0.4 - '@img/sharp-libvips-linux-x64': 1.0.4 - '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 - '@img/sharp-libvips-linuxmusl-x64': 1.0.4 - '@img/sharp-linux-arm': 0.33.5 - '@img/sharp-linux-arm64': 0.33.5 - '@img/sharp-linux-s390x': 0.33.5 - '@img/sharp-linux-x64': 0.33.5 - '@img/sharp-linuxmusl-arm64': 0.33.5 - '@img/sharp-linuxmusl-x64': 0.33.5 - '@img/sharp-wasm32': 0.33.5 - '@img/sharp-win32-ia32': 0.33.5 - '@img/sharp-win32-x64': 0.33.5 - optional: true - shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 shebang-regex@3.0.0: {} - shiki@1.29.2: + shell-quote@1.8.2: {} + + shiki@1.24.0: dependencies: - '@shikijs/core': 1.29.2 - '@shikijs/engine-javascript': 1.29.2 - '@shikijs/engine-oniguruma': 1.29.2 - '@shikijs/langs': 1.29.2 - '@shikijs/themes': 1.29.2 - '@shikijs/types': 1.29.2 - '@shikijs/vscode-textmate': 10.0.1 + '@shikijs/core': 1.24.0 + '@shikijs/engine-javascript': 1.24.0 + '@shikijs/engine-oniguruma': 1.24.0 + '@shikijs/types': 1.24.0 + '@shikijs/vscode-textmate': 9.3.0 '@types/hast': 3.0.4 - side-channel-list@1.0.0: + side-channel@1.0.6: dependencies: + call-bind: 1.0.7 es-errors: 1.3.0 - object-inspect: 1.13.4 - - side-channel-map@1.0.1: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.7 - object-inspect: 1.13.4 - - side-channel-weakmap@1.0.2: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.7 - object-inspect: 1.13.4 - side-channel-map: 1.0.1 - - side-channel@1.1.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - side-channel-list: 1.0.0 - side-channel-map: 1.0.1 - side-channel-weakmap: 1.0.2 + get-intrinsic: 1.2.4 + object-inspect: 1.13.3 siginfo@2.0.0: {} @@ -13884,10 +16009,9 @@ snapshots: once: 1.4.0 simple-concat: 1.0.1 - simple-swizzle@0.2.2: + simple-update-notifier@2.0.0: dependencies: - is-arrayish: 0.3.2 - optional: true + semver: 7.6.3 sirv@2.0.4: dependencies: @@ -13895,6 +16019,28 @@ snapshots: mrmime: 2.0.0 totalist: 3.0.1 + slice-ansi@3.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + optional: true + + smart-buffer@4.2.0: {} + + socks-proxy-agent@7.0.0: + dependencies: + agent-base: 6.0.2 + debug: 4.4.0 + socks: 2.8.3 + transitivePeerDependencies: + - supports-color + + socks@2.8.3: + dependencies: + ip-address: 9.0.5 + smart-buffer: 4.2.0 + source-map-js@1.2.1: {} source-map-support@0.5.21: @@ -13910,24 +16056,32 @@ snapshots: space-separated-tokens@2.0.2: {} + spawn-command@0.0.2: {} + spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.21 + spdx-license-ids: 3.0.20 spdx-exceptions@2.5.0: {} spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.21 + spdx-license-ids: 3.0.20 - spdx-license-ids@3.0.21: {} + spdx-license-ids@3.0.20: {} + + sprintf-js@1.1.3: {} ssri@10.0.6: dependencies: minipass: 7.1.2 + ssri@9.0.1: + dependencies: + minipass: 3.3.6 + stackback@0.0.2: {} stackblur-canvas@2.7.0: @@ -13938,6 +16092,8 @@ snapshots: as-table: 1.0.55 get-source: 2.0.12 + stat-mode@1.0.0: {} + statuses@2.0.1: {} std-env@3.8.0: {} @@ -14007,6 +16163,8 @@ snapshots: strnum@1.0.5: {} + stubborn-fs@1.2.5: {} + style-mod@4.1.2: {} style-to-object@0.4.4: @@ -14017,6 +16175,12 @@ snapshots: dependencies: inline-style-parser: 0.2.4 + sumchecker@3.0.1: + dependencies: + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -14030,11 +16194,11 @@ snapshots: svg-pathdata@6.0.3: optional: true - swr@2.3.2(react@18.3.1): + swr@2.2.5(react@18.3.1): dependencies: - dequal: 2.0.3 + client-only: 0.0.1 react: 18.3.1 - use-sync-external-store: 1.4.0(react@18.3.1) + use-sync-external-store: 1.2.2(react@18.3.1) symbol-tree@3.2.4: {} @@ -14057,7 +16221,7 @@ snapshots: tailwind-merge@2.6.0: {} - tar-fs@2.1.2: + tar-fs@2.1.1: dependencies: chownr: 1.1.4 mkdirp-classic: 0.5.3 @@ -14081,6 +16245,11 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 + temp-file@3.4.0: + dependencies: + async-exit-hook: 2.0.1 + fs-extra: 10.1.0 + text-segmentation@1.0.3: dependencies: utrie: 1.0.2 @@ -14103,9 +16272,11 @@ snapshots: tiny-invariant@1.3.3: {} + tiny-typed-emitter@2.1.0: {} + tinybench@2.9.0: {} - tinyexec@0.3.2: {} + tinyexec@0.3.1: {} tinypool@1.0.2: {} @@ -14113,11 +16284,17 @@ snapshots: tinyspy@3.0.2: {} - tldts-core@6.1.78: {} + tldts-core@6.1.83: {} - tldts@6.1.78: + tldts@6.1.83: dependencies: - tldts-core: 6.1.78 + tldts-core: 6.1.83 + + tmp-promise@3.0.3: + dependencies: + tmp: 0.2.3 + + tmp@0.2.3: {} to-regex-range@5.0.1: dependencies: @@ -14129,25 +16306,31 @@ snapshots: totalist@3.0.1: {} - tough-cookie@5.1.1: + tough-cookie@5.1.2: dependencies: - tldts: 6.1.78 + tldts: 6.1.83 tr46@5.0.0: dependencies: punycode: 2.3.1 + tree-kill@1.2.2: {} + trim-lines@3.0.1: {} trough@2.2.0: {} - ts-api-utils@2.0.1(typescript@5.7.3): + truncate-utf8-bytes@1.0.2: dependencies: - typescript: 5.7.3 + utf8-byte-length: 1.0.5 - tsconfck@3.1.5(typescript@5.7.3): + ts-api-utils@1.4.3(typescript@5.7.2): + dependencies: + typescript: 5.7.2 + + tsconfck@3.1.4(typescript@5.7.2): optionalDependencies: - typescript: 5.7.3 + typescript: 5.7.2 tsconfig-paths@4.2.0: dependencies: @@ -14160,7 +16343,7 @@ snapshots: tsx@4.19.2: dependencies: esbuild: 0.23.1 - get-tsconfig: 4.10.0 + get-tsconfig: 4.8.1 optionalDependencies: fsevents: 2.3.3 @@ -14172,27 +16355,33 @@ snapshots: dependencies: prelude-ls: 1.2.1 - type-fest@4.34.1: {} + type-fest@0.13.1: + optional: true + + type-fest@4.30.0: {} type-is@1.6.18: dependencies: media-typer: 0.3.0 mime-types: 2.1.35 - typescript-eslint@8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3): + typescript-eslint@8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.24.0(@typescript-eslint/parser@8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3))(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3) - '@typescript-eslint/parser': 8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3) - '@typescript-eslint/utils': 8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3) - eslint: 9.20.1(jiti@1.21.7) - typescript: 5.7.3 + '@typescript-eslint/eslint-plugin': 8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2))(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) + eslint: 9.16.0(jiti@1.21.6) + optionalDependencies: + typescript: 5.7.2 transitivePeerDependencies: - supports-color - typescript@5.7.3: {} + typescript@5.7.2: {} ufo@1.5.4: {} + uint8array-extras@1.4.0: {} + unconfig@0.5.5: dependencies: '@antfu/utils': 0.7.10 @@ -14201,18 +16390,19 @@ snapshots: transitivePeerDependencies: - supports-color + undici-types@6.19.8: {} + undici-types@6.20.0: {} - undici@5.28.5: + undici@5.28.4: dependencies: '@fastify/busboy': 2.1.1 - undici@6.21.1: {} + undici@6.21.0: {} - unenv@2.0.0-rc.1: + unenv-nightly@2.0.0-20241121-161142-806b5c0: dependencies: defu: 6.1.4 - mlly: 1.7.4 ohash: 1.1.4 pathe: 1.1.2 ufo: 1.5.4 @@ -14237,10 +16427,18 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 + unique-filename@2.0.1: + dependencies: + unique-slug: 3.0.0 + unique-filename@3.0.0: dependencies: unique-slug: 4.0.0 + unique-slug@3.0.0: + dependencies: + imurmurhash: 0.1.4 + unique-slug@4.0.0: dependencies: imurmurhash: 0.1.4 @@ -14304,15 +16502,17 @@ snapshots: universal-user-agent@7.0.2: {} + universalify@0.1.2: {} + universalify@2.0.1: {} - unocss@0.61.9(postcss@8.5.2)(rollup@3.29.5)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)): + unocss@0.61.9(postcss@8.4.49)(rollup@4.28.0)(vite@5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0)): dependencies: - '@unocss/astro': 0.61.9(rollup@3.29.5)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)) - '@unocss/cli': 0.61.9(rollup@3.29.5) + '@unocss/astro': 0.61.9(rollup@4.28.0)(vite@5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0)) + '@unocss/cli': 0.61.9(rollup@4.28.0) '@unocss/core': 0.61.9 '@unocss/extractor-arbitrary-variants': 0.61.9 - '@unocss/postcss': 0.61.9(postcss@8.5.2) + '@unocss/postcss': 0.61.9(postcss@8.4.49) '@unocss/preset-attributify': 0.61.9 '@unocss/preset-icons': 0.61.9 '@unocss/preset-mini': 0.61.9 @@ -14327,9 +16527,9 @@ snapshots: '@unocss/transformer-compile-class': 0.61.9 '@unocss/transformer-directives': 0.61.9 '@unocss/transformer-variant-group': 0.61.9 - '@unocss/vite': 0.61.9(rollup@3.29.5)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)) + '@unocss/vite': 0.61.9(rollup@4.28.0)(vite@5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0)) optionalDependencies: - vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4) + vite: 5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0) transitivePeerDependencies: - postcss - rollup @@ -14337,9 +16537,9 @@ snapshots: unpipe@1.0.0: {} - update-browserslist-db@1.1.2(browserslist@4.24.4): + update-browserslist-db@1.1.1(browserslist@4.24.2): dependencies: - browserslist: 4.24.4 + browserslist: 4.24.2 escalade: 3.2.0 picocolors: 1.1.1 @@ -14350,40 +16550,57 @@ snapshots: url@0.11.4: dependencies: punycode: 1.4.1 - qs: 6.14.0 + qs: 6.13.1 - use-callback-ref@1.3.3(@types/react@18.3.18)(react@18.3.1): + use-callback-ref@1.3.2(@types/react@18.3.12)(react@18.3.1): dependencies: react: 18.3.1 tslib: 2.8.1 optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.12 + + use-callback-ref@1.3.3(@types/react@18.3.12)(react@18.3.1): + dependencies: + react: 18.3.1 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 18.3.12 use-memo-one@1.1.3(react@18.3.1): dependencies: react: 18.3.1 - use-sidecar@1.1.3(@types/react@18.3.18)(react@18.3.1): + use-sidecar@1.1.2(@types/react@18.3.12)(react@18.3.1): dependencies: detect-node-es: 1.1.0 react: 18.3.1 tslib: 2.8.1 optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.12 - use-sync-external-store@1.4.0(react@18.3.1): + use-sidecar@1.1.3(@types/react@18.3.12)(react@18.3.1): + dependencies: + detect-node-es: 1.1.0 + react: 18.3.1 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 18.3.12 + + use-sync-external-store@1.2.2(react@18.3.1): dependencies: react: 18.3.1 + utf8-byte-length@1.0.5: {} + util-deprecate@1.0.2: {} util@0.12.5: dependencies: inherits: 2.0.4 - is-arguments: 1.2.0 - is-generator-function: 1.1.0 - is-typed-array: 1.1.15 - which-typed-array: 1.1.18 + is-arguments: 1.1.1 + is-generator-function: 1.0.10 + is-typed-array: 1.1.13 + which-typed-array: 1.1.16 utils-merge@1.0.1: {} @@ -14401,9 +16618,9 @@ snapshots: kleur: 4.1.5 sade: 1.8.1 - valibot@0.41.0(typescript@5.7.3): + valibot@0.41.0(typescript@5.7.2): optionalDependencies: - typescript: 5.7.3 + typescript: 5.7.2 validate-npm-package-license@3.0.4: dependencies: @@ -14416,6 +16633,13 @@ snapshots: vary@1.1.2: {} + verror@1.10.1: + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.4.1 + optional: true + version-range@4.14.0: {} vfile-location@5.0.3: @@ -14445,13 +16669,13 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@1.6.1(@types/node@22.13.1)(sass-embedded@1.83.4): + vite-node@1.6.0(@types/node@22.10.1)(sass-embedded@1.81.0): dependencies: cac: 6.7.14 - debug: 4.4.0 + debug: 4.3.7 pathe: 1.1.2 picocolors: 1.1.1 - vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4) + vite: 5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0) transitivePeerDependencies: - '@types/node' - less @@ -14463,13 +16687,31 @@ snapshots: - supports-color - terser - vite-node@2.1.9(@types/node@22.13.1)(sass-embedded@1.83.4): + vite-node@2.1.8(@types/node@22.10.1)(sass-embedded@1.81.0): + dependencies: + cac: 6.7.14 + debug: 4.3.7 + es-module-lexer: 1.5.4 + pathe: 1.1.2 + vite: 5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + vite-node@3.0.0-beta.2(@types/node@22.10.1)(sass-embedded@1.81.0): dependencies: cac: 6.7.14 debug: 4.4.0 - es-module-lexer: 1.6.0 + es-module-lexer: 1.5.4 pathe: 1.1.2 - vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4) + vite: 5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0) transitivePeerDependencies: - '@types/node' - less @@ -14481,63 +16723,67 @@ snapshots: - supports-color - terser - vite-plugin-node-polyfills@0.22.0(rollup@3.29.5)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)): + vite-plugin-copy@0.1.6: dependencies: - '@rollup/plugin-inject': 5.0.5(rollup@3.29.5) - node-stdlib-browser: 1.3.1 - vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4) + fast-glob: 3.3.2 + + vite-plugin-node-polyfills@0.22.0(rollup@4.28.0)(vite@5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0)): + dependencies: + '@rollup/plugin-inject': 5.0.5(rollup@4.28.0) + node-stdlib-browser: 1.3.0 + vite: 5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0) transitivePeerDependencies: - rollup - vite-plugin-optimize-css-modules@1.2.0(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)): + vite-plugin-optimize-css-modules@1.1.0(vite@5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0)): dependencies: - vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4) + vite: 5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0) - vite-tsconfig-paths@4.3.2(typescript@5.7.3)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)): + vite-tsconfig-paths@4.3.2(typescript@5.7.2)(vite@5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0)): dependencies: - debug: 4.4.0 + debug: 4.3.7 globrex: 0.1.2 - tsconfck: 3.1.5(typescript@5.7.3) + tsconfck: 3.1.4(typescript@5.7.2) optionalDependencies: - vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4) + vite: 5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0) transitivePeerDependencies: - supports-color - typescript - vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4): + vite@5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0): dependencies: esbuild: 0.21.5 - postcss: 8.5.2 - rollup: 4.34.6 + postcss: 8.4.49 + rollup: 4.28.0 optionalDependencies: - '@types/node': 22.13.1 + '@types/node': 22.10.1 fsevents: 2.3.3 - sass-embedded: 1.83.4 + sass-embedded: 1.81.0 - vitest@2.1.9(@types/node@22.13.1)(jsdom@26.0.0)(sass-embedded@1.83.4): + vitest@2.1.8(@types/node@22.10.1)(jsdom@26.0.0)(sass-embedded@1.81.0): dependencies: - '@vitest/expect': 2.1.9 - '@vitest/mocker': 2.1.9(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)) - '@vitest/pretty-format': 2.1.9 - '@vitest/runner': 2.1.9 - '@vitest/snapshot': 2.1.9 - '@vitest/spy': 2.1.9 - '@vitest/utils': 2.1.9 + '@vitest/expect': 2.1.8 + '@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0)) + '@vitest/pretty-format': 2.1.8 + '@vitest/runner': 2.1.8 + '@vitest/snapshot': 2.1.8 + '@vitest/spy': 2.1.8 + '@vitest/utils': 2.1.8 chai: 5.1.2 - debug: 4.4.0 + debug: 4.3.7 expect-type: 1.1.0 - magic-string: 0.30.17 + magic-string: 0.30.14 pathe: 1.1.2 std-env: 3.8.0 tinybench: 2.9.0 - tinyexec: 0.3.2 + tinyexec: 0.3.1 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4) - vite-node: 2.1.9(@types/node@22.13.1)(sass-embedded@1.83.4) + vite: 5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0) + vite-node: 2.1.8(@types/node@22.10.1)(sass-embedded@1.81.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.13.1 + '@types/node': 22.10.1 jsdom: 26.0.0 transitivePeerDependencies: - less @@ -14585,13 +16831,14 @@ snapshots: tr46: 5.0.0 webidl-conversions: 7.0.0 - which-typed-array@1.1.18: + when-exit@2.1.4: {} + + which-typed-array@1.1.16: dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.3 - for-each: 0.3.5 - gopd: 1.2.0 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.1.0 has-tostringtag: 1.0.2 which@2.0.2: @@ -14607,33 +16854,47 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 + wide-align@1.1.5: + dependencies: + string-width: 4.2.3 + word-wrap@1.2.5: {} - workerd@1.20250204.0: + workerd@1.20241106.1: optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20250204.0 - '@cloudflare/workerd-darwin-arm64': 1.20250204.0 - '@cloudflare/workerd-linux-64': 1.20250204.0 - '@cloudflare/workerd-linux-arm64': 1.20250204.0 - '@cloudflare/workerd-windows-64': 1.20250204.0 + '@cloudflare/workerd-darwin-64': 1.20241106.1 + '@cloudflare/workerd-darwin-arm64': 1.20241106.1 + '@cloudflare/workerd-linux-64': 1.20241106.1 + '@cloudflare/workerd-linux-arm64': 1.20241106.1 + '@cloudflare/workerd-windows-64': 1.20241106.1 - wrangler@3.108.0(@cloudflare/workers-types@4.20250204.0): + wrangler@3.91.0(@cloudflare/workers-types@4.20241127.0): dependencies: '@cloudflare/kv-asset-handler': 0.3.4 + '@cloudflare/workers-shared': 0.9.0 '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) blake3-wasm: 2.1.5 + chokidar: 4.0.1 + date-fns: 4.1.0 esbuild: 0.17.19 - miniflare: 3.20250204.0 + itty-time: 1.0.6 + miniflare: 3.20241106.1 + nanoid: 3.3.8 path-to-regexp: 6.3.0 - unenv: 2.0.0-rc.1 - workerd: 1.20250204.0 + resolve: 1.22.8 + resolve.exports: 2.0.3 + selfsigned: 2.4.1 + source-map: 0.6.1 + unenv: unenv-nightly@2.0.0-20241121-161142-806b5c0 + workerd: 1.20241106.1 + xxhash-wasm: 1.1.0 optionalDependencies: - '@cloudflare/workers-types': 4.20250204.0 + '@cloudflare/workers-types': 4.20241127.0 fsevents: 2.3.3 - sharp: 0.33.5 transitivePeerDependencies: - bufferutil + - supports-color - utf-8-validate wrap-ansi@7.0.0: @@ -14656,36 +16917,63 @@ snapshots: xml-name-validator@5.0.0: {} + xmlbuilder@15.1.1: {} + xmlchars@2.2.0: {} xtend@4.0.2: {} + xxhash-wasm@1.1.0: {} + + y18n@5.0.8: {} + yallist@3.1.1: {} yallist@4.0.0: {} - yaml@2.7.0: {} + yaml@2.6.1: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yauzl@2.10.0: + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 yocto-queue@0.1.0: {} - youch@3.2.3: + youch@3.3.4: dependencies: - cookie: 0.5.0 + cookie: 0.7.2 mustache: 4.2.0 stacktracey: 2.1.8 + zip-stream@4.1.1: + dependencies: + archiver-utils: 3.0.4 + compress-commons: 4.1.2 + readable-stream: 3.6.2 + zod-to-json-schema@3.24.1(zod@3.24.1): dependencies: zod: 3.24.1 - zod@3.22.3: {} - zod@3.24.1: {} - zustand@5.0.3(@types/react@18.3.18)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)): + zustand@5.0.3(@types/react@18.3.12)(react@18.3.1)(use-sync-external-store@1.2.2(react@18.3.1)): optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.12 react: 18.3.1 - use-sync-external-store: 1.4.0(react@18.3.1) + use-sync-external-store: 1.2.2(react@18.3.1) zwitch@2.0.4: {} diff --git a/tsconfig.json b/tsconfig.json index 22a37cf9..fce7b74a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,7 +5,8 @@ "@remix-run/cloudflare", "vite/client", "@cloudflare/workers-types/2023-07-01", - "@types/dom-speech-recognition" + "@types/dom-speech-recognition", + "electron" ], "isolatedModules": true, "esModuleInterop": true, @@ -23,7 +24,6 @@ "paths": { "~/*": ["./app/*"] }, - // vite takes care of building everything, not tsc "noEmit": true }, diff --git a/vite-electron.config.ts b/vite-electron.config.ts new file mode 100644 index 00000000..2c7b8183 --- /dev/null +++ b/vite-electron.config.ts @@ -0,0 +1,75 @@ +import { defineConfig } from 'vite'; +import { vitePlugin as remixVitePlugin } from '@remix-run/dev'; +import UnoCSS from 'unocss/vite'; +import { nodePolyfills } from 'vite-plugin-node-polyfills'; +import { optimizeCssModules } from 'vite-plugin-optimize-css-modules'; +import tsconfigPaths from 'vite-tsconfig-paths'; + +import { execSync } from 'child_process'; + +// Get git hash with fallback +const getGitHash = () => { + try { + return execSync('git rev-parse --short HEAD').toString().trim(); + } catch { + return 'no-git-info'; + } +}; + +export default defineConfig((config) => { + return { + define: { + __COMMIT_HASH: JSON.stringify(getGitHash()), + __APP_VERSION: JSON.stringify(process.env.npm_package_version), + }, + build: { + target: 'esnext', + }, + plugins: [ + nodePolyfills({ + include: ['path', 'buffer', 'process'], + }), + remixVitePlugin({ + future: { + v3_fetcherPersist: true, + v3_relativeSplatPath: true, + v3_throwAbortReason: true, + v3_lazyRouteDiscovery: true, + }, + serverModuleFormat: 'esm', + }), + UnoCSS(), + tsconfigPaths(), + config.mode === 'production' && optimizeCssModules({ apply: 'build' }), + { + name: 'replaceReactDomServerImport', + enforce: 'pre', + transform(code, id) { + if (id.endsWith('entry.server.tsx')) { + /* + * Hack: fix the issue with react-dom/server not being found in electron + * Replace the import from 'react-dom/server' with 'react-dom/server.browser', only for electron build + */ + return code.replace(/from 'react-dom\/server';?/g, "from 'react-dom/server.browser';"); + } + + return undefined; + }, + }, + ], + envPrefix: [ + 'VITE_', + 'OPENAI_LIKE_API_BASE_URL', + 'OLLAMA_API_BASE_URL', + 'LMSTUDIO_API_BASE_URL', + 'TOGETHER_API_BASE_URL', + ], + css: { + preprocessorOptions: { + scss: { + api: 'modern-compiler', + }, + }, + }, + }; +});