From deeef6cb15f1e47d6259cd6508db3f7debb95102 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Tue, 12 Aug 2025 13:05:21 +0200 Subject: [PATCH 01/44] more files --- .../add/experimental/morphology/page.tsx | 20 + .../explore/interactive/add/layout.tsx | 7 + .../interactive-navigation-menu.tsx | 44 +- .../ContributeLayout/index.tsx | 47 + .../contribute/_components/atoms/index.ts | 170 +++ .../circuit-details/circuit-details.tsx | 22 + .../_components/circuit-details/index.ts | 1 + .../circuit-name/circuit-name.module.css | 50 + .../circuit-preview.module.css | 14 + .../circuit-preview/circuit-preview.tsx | 25 + .../_components/circuit-preview/index.ts | 1 + .../contribute/_components/components.tsx | 964 ++++++++++++++++++ .../_components/file-viewer/index.tsx | 81 ++ .../contribute/_components/hooks/circuit.ts | 88 ++ .../_components/hooks/config-atom.ts | 30 + .../contribute/_components/hooks/schema.ts | 157 +++ .../contribute/_components/section.tsx | 221 ++++ .../_components/simulation-files/index.tsx | 198 ++++ .../_components/simulation-status/index.tsx | 50 + .../_components/tabs-selector/index.ts | 1 + .../tabs-selector/tabs-selector.tsx | 43 + .../contribute/_components/tooltip/index.ts | 1 + .../_components/tooltip/tooltip.module.css | 39 + .../_components/tooltip/tooltip.tsx | 20 + src/features/contribute/_components/utils.ts | 73 ++ src/features/contribute/error-registry.ts | 7 + src/features/contribute/index.tsx | 616 +++++++++++ .../contribute/small-microcircuit.module.css | 32 + src/features/contribute/types.ts | 35 + 29 files changed, 3047 insertions(+), 10 deletions(-) create mode 100755 src/app/app/virtual-lab/lab/[virtualLabId]/project/[projectId]/explore/interactive/add/experimental/morphology/page.tsx create mode 100755 src/app/app/virtual-lab/lab/[virtualLabId]/project/[projectId]/explore/interactive/add/layout.tsx create mode 100755 src/components/explore-section/ContributeLayout/index.tsx create mode 100644 src/features/contribute/_components/atoms/index.ts create mode 100644 src/features/contribute/_components/circuit-details/circuit-details.tsx create mode 100644 src/features/contribute/_components/circuit-details/index.ts create mode 100644 src/features/contribute/_components/circuit-name/circuit-name.module.css create mode 100644 src/features/contribute/_components/circuit-preview/circuit-preview.module.css create mode 100644 src/features/contribute/_components/circuit-preview/circuit-preview.tsx create mode 100644 src/features/contribute/_components/circuit-preview/index.ts create mode 100644 src/features/contribute/_components/components.tsx create mode 100644 src/features/contribute/_components/file-viewer/index.tsx create mode 100644 src/features/contribute/_components/hooks/circuit.ts create mode 100644 src/features/contribute/_components/hooks/config-atom.ts create mode 100644 src/features/contribute/_components/hooks/schema.ts create mode 100644 src/features/contribute/_components/section.tsx create mode 100644 src/features/contribute/_components/simulation-files/index.tsx create mode 100644 src/features/contribute/_components/simulation-status/index.tsx create mode 100644 src/features/contribute/_components/tabs-selector/index.ts create mode 100644 src/features/contribute/_components/tabs-selector/tabs-selector.tsx create mode 100644 src/features/contribute/_components/tooltip/index.ts create mode 100644 src/features/contribute/_components/tooltip/tooltip.module.css create mode 100644 src/features/contribute/_components/tooltip/tooltip.tsx create mode 100644 src/features/contribute/_components/utils.ts create mode 100755 src/features/contribute/error-registry.ts create mode 100755 src/features/contribute/index.tsx create mode 100755 src/features/contribute/small-microcircuit.module.css create mode 100755 src/features/contribute/types.ts diff --git a/src/app/app/virtual-lab/lab/[virtualLabId]/project/[projectId]/explore/interactive/add/experimental/morphology/page.tsx b/src/app/app/virtual-lab/lab/[virtualLabId]/project/[projectId]/explore/interactive/add/experimental/morphology/page.tsx new file mode 100755 index 000000000..318ca8323 --- /dev/null +++ b/src/app/app/virtual-lab/lab/[virtualLabId]/project/[projectId]/explore/interactive/add/experimental/morphology/page.tsx @@ -0,0 +1,20 @@ +'use client'; + +import { useParams } from 'next/navigation'; + +import ContributeConfig from '@/features/contribute'; +import { WorkspaceContext } from '@/types/common'; + +type Params = WorkspaceContext & { circuit_id: string }; + +export default function ContributeConfiguration() { + const { virtualLabId, projectId } = useParams(); + console.log('ContributeConfiguration function entered'); + return ( + + ); +} diff --git a/src/app/app/virtual-lab/lab/[virtualLabId]/project/[projectId]/explore/interactive/add/layout.tsx b/src/app/app/virtual-lab/lab/[virtualLabId]/project/[projectId]/explore/interactive/add/layout.tsx new file mode 100755 index 000000000..8e7fe075a --- /dev/null +++ b/src/app/app/virtual-lab/lab/[virtualLabId]/project/[projectId]/explore/interactive/add/layout.tsx @@ -0,0 +1,7 @@ +import { ReactNode } from 'react'; +import ContributeLayout from '@/components/explore-section/ContributeLayout'; + +export default function ContributeDataLayout({ children }: { children: ReactNode }) { + console.log('ContributeDataLayout function entered'); + return {children}; +} diff --git a/src/components/entities-type-stats/interactive-navigation-menu.tsx b/src/components/entities-type-stats/interactive-navigation-menu.tsx index 9346c16fc..f9c919b83 100644 --- a/src/components/entities-type-stats/interactive-navigation-menu.tsx +++ b/src/components/entities-type-stats/interactive-navigation-menu.tsx @@ -60,8 +60,10 @@ function EntityTypeStats(props: StatsPanelProps) { return match(selectedTab) .with('experimental-data', () => ( <> - {Object.entries(ExperimentalEntitiesTileTypes).map(([key, value]) => { + {Object.entries(ExperimentalEntitiesTileTypes).map(([key, value], index) => { const href = `${pathName}/${value?.explore.basePrefix}/${value.slug}`; + + const baseHref = `${pathName}/${value?.explore.basePrefix}/${value.slug}`; let records = ''; let isError = false; @@ -74,16 +76,38 @@ function EntityTypeStats(props: StatsPanelProps) { isError = !!error || typeof tmpResult === 'string'; } + // Find the last occurrence of '/interactive/' and insert '/add/' after it + const lastInteractiveIndex = pathName.lastIndexOf('/interactive'); + let addHref = baseHref; + if (lastInteractiveIndex !== -1) { + const pathBeforeInteractive = pathName.substring( + 0, + lastInteractiveIndex + '/interactive'.length + ); + const pathAfterInteractive = baseHref.substring(baseHref.indexOf('/experimental')); // Assuming /experimental is always after /interactive + addHref = `${pathBeforeInteractive}/add${pathAfterInteractive}`; + } + return ( - +
+ + {index === 0 && ( + + add + + )} +
); })} diff --git a/src/components/explore-section/ContributeLayout/index.tsx b/src/components/explore-section/ContributeLayout/index.tsx new file mode 100755 index 000000000..5a175d01d --- /dev/null +++ b/src/components/explore-section/ContributeLayout/index.tsx @@ -0,0 +1,47 @@ +// File: app/virtual-lab/explore/interactive/add/layout.tsx (or wherever your 'add' route lives) + +'use client'; + +import { ReactNode } from 'react'; +import { usePathname } from 'next/navigation'; +import { ErrorBoundary } from 'react-error-boundary'; +import SimpleErrorComponent from '@/components/GenericErrorFallback'; +import BackToInteractiveExplorationBtn from '@/components/explore-section/BackToInteractiveExplorationBtn'; + +export default function ContributeLayout({ children }: { children: ReactNode }) { + const pathname = usePathname(); + console.log('ContributeLayout function entered'); + // Determine the href for the back button. + // Goal: If current is /virtual-lab/explore/interactive/add/experimental/morphology + // It should go back to /virtual-lab/explore/interactive + const splittedPathname = pathname.split('/'); + let interactivePageHref = '/'; // Default fallback + + const addIndex = splittedPathname.indexOf('add'); + + if (addIndex > -1) { + // If 'add' is found, take all segments up to (but not including) 'add' + interactivePageHref = splittedPathname.slice(0, addIndex).join('/'); + } else { + // Fallback: If 'add' is not in the path (unexpected for this layout), + // go back one level from the current path. + interactivePageHref = splittedPathname.slice(0, splittedPathname.length - 1).join('/'); + } + + // Ensure the path starts with a '/' if it's not empty (e.g., if it's just 'virtual-lab/explore/interactive') + if (interactivePageHref === '') { + interactivePageHref = '/'; + } else if (!interactivePageHref.startsWith('/')) { + interactivePageHref = '/' + interactivePageHref; + } + + return ( +
+ + + +
{children}
+
+
+ ); +} diff --git a/src/features/contribute/_components/atoms/index.ts b/src/features/contribute/_components/atoms/index.ts new file mode 100644 index 000000000..25ceed256 --- /dev/null +++ b/src/features/contribute/_components/atoms/index.ts @@ -0,0 +1,170 @@ +import { atom } from 'jotai'; +import { atomWithRefresh } from 'jotai/utils'; +import isEqual from 'lodash/isEqual'; + +import { downloadAsset } from '@/api/entitycore/queries/assets'; +import { getCircuit } from '@/api/entitycore/queries/model/circuit'; +import { getCircuitSimulations } from '@/api/entitycore/queries/simulation/circuit-simulation'; +import { getCircuitSimulationExecutions } from '@/api/entitycore/queries/simulation/circuit-simulation-execution'; +import { getCircuitSimulationResult } from '@/api/entitycore/queries/simulation/circuit-simulation-result'; +import { EntityTypeValue } from '@/api/entitycore/types'; +import { ICircuit } from '@/api/entitycore/types/entities/circuit'; +import { ICircuitSimulation } from '@/api/entitycore/types/entities/circuit-simulation'; +import { ICircuitSimulationExecution } from '@/api/entitycore/types/entities/circuit-simulation-execution'; +import { ICircuitSimulationResult } from '@/api/entitycore/types/entities/circuit-simulation-result'; +import { getLatestSimExecStatus } from '@/features/small-microcircuit/_components/utils'; +import { SimExecStatusMap } from '@/features/small-microcircuit/types'; +import { WorkspaceContext } from '@/types/common'; +import { atomFamilyWithExpiration, readAtomFamilyWithExpiration } from '@/util/atoms'; + +const simExecBySimIdAtomFamily = readAtomFamilyWithExpiration( + ({ simulationId, context }: { simulationId: string; context: WorkspaceContext }) => + atom>(async () => { + const simulationExecutionFilters = { used__id: simulationId }; + const res = await getCircuitSimulationExecutions({ + filters: simulationExecutionFilters, + context, + }); + + return res.data[0]; + }), + { + ttl: 120000, // 2 minutes + areEqual: isEqual, + } +); + +export const simExecRemoteStatusMapAtomFamily = atomFamilyWithExpiration( + ({ simulationIds, context }: { simulationIds: string[]; context: WorkspaceContext }) => + atomWithRefresh>(async () => { + const simulationExecutionFilters = { used__id__in: simulationIds.join(',') }; + const res = await getCircuitSimulationExecutions({ + filters: simulationExecutionFilters, + context, + }); + + return res.data.reduce( + (map, simExec) => map.set(simExec.used[0].id, simExec.status), + new Map() + ); + }), + { + ttl: 120000, // 2 minutes + areEqual: isEqual, + } +); + +type SimExecStatusMapAtomFamilyArg = { simulationIds: string[]; context: WorkspaceContext }; + +export const simExecStatusMapAtomFamily = atomFamilyWithExpiration( + ({ simulationIds, context }: SimExecStatusMapAtomFamilyArg) => { + const simExecRemoteStatusMapAtom = simExecRemoteStatusMapAtomFamily({ + simulationIds, + context, + }); + + const localStatusMapAtom = atom(new Map()); + + return atom, [SimExecStatusMap], void>( + async (get) => { + const remoteStatusMap = await get(simExecRemoteStatusMapAtom); + const localStatusMap = get(localStatusMapAtom); + + const simIds = Array.from(new Set([...remoteStatusMap.keys(), ...localStatusMap.keys()])); + const statusMap = simIds.reduce((map, simId) => { + const remoteStatus = remoteStatusMap.get(simId); + const localStatus = localStatusMap.get(simId); + // If both are set we take the latest possible one, + // because the status change in a particular sequence. + // See definition of getLatestSimExecStatus + const status = + remoteStatus && localStatus + ? getLatestSimExecStatus(remoteStatus, localStatus) + : (localStatus ?? remoteStatus); + return map.set(simId, status); + }, new Map()); + + return statusMap; + }, + (get, set, newStatusMap) => set(localStatusMapAtom, new Map(newStatusMap)) + ); + }, + { + ttl: 120000, // 2 minutes + areEqual: isEqual, + } +); + +export const simResultBySimIdAtomFamily = readAtomFamilyWithExpiration( + ({ simulationId, context }: { simulationId: string; context: WorkspaceContext }) => + atom>(async (get) => { + const execution = await get(simExecBySimIdAtomFamily({ simulationId, context })); + + if (!execution?.generated?.[0]) { + throw new Error('Simulation Result not found'); + } + + return getCircuitSimulationResult({ id: execution.generated[0].id, context }); + }), + { + ttl: 120000, // 2 minutes + areEqual: isEqual, + } +); + +export const simulationsByCampaignIdAtomFamily = readAtomFamilyWithExpiration( + ({ campaignId, context }: { campaignId: string; context: WorkspaceContext }) => + atom>(async () => { + const filters = { simulation_campaign_id: campaignId }; + const res = await getCircuitSimulations({ filters, context }); + + return res.data; + }), + { + ttl: 120000, // 2 minutes + areEqual: isEqual, + } +); + +export const circuitAtomFamily = readAtomFamilyWithExpiration( + ({ circuitId, context }: { circuitId: string; context: WorkspaceContext }) => + atom>(async () => { + return getCircuit({ id: circuitId, context }); + }), + { + ttl: 120000, // 2 minutes + areEqual: isEqual, + } +); + +export const fileAtomFamily = readAtomFamilyWithExpiration( + ({ + id, + entityId, + entityType, + assetPath, + context, + }: { + id: string; + entityId: string; + entityType: EntityTypeValue; + assetPath?: string; + context: WorkspaceContext; + }) => + atom>(async () => { + const res = await downloadAsset({ + ctx: context, + entityId, + id, + entityType, + assetPath, + asRawResponse: true, + }); + + return res.json(); + }), + { + ttl: 120000, // 2 minutes + areEqual: isEqual, + } +); diff --git a/src/features/contribute/_components/circuit-details/circuit-details.tsx b/src/features/contribute/_components/circuit-details/circuit-details.tsx new file mode 100644 index 000000000..f8f856fd3 --- /dev/null +++ b/src/features/contribute/_components/circuit-details/circuit-details.tsx @@ -0,0 +1,22 @@ +import React from 'react'; +import { Input } from 'antd'; + +import Tooltip from '../tooltip'; + +import { ICircuit } from '@/api/entitycore/types/entities/circuit'; + +interface CircuitDetailsProps { + className?: string; + circuit: ICircuit; +} + +export default function CircuitDetails({ className, circuit }: CircuitDetailsProps) { + return ( +
+ + + + +
+ ); +} diff --git a/src/features/contribute/_components/circuit-details/index.ts b/src/features/contribute/_components/circuit-details/index.ts new file mode 100644 index 000000000..42451142f --- /dev/null +++ b/src/features/contribute/_components/circuit-details/index.ts @@ -0,0 +1 @@ +export { default } from './circuit-details'; diff --git a/src/features/contribute/_components/circuit-name/circuit-name.module.css b/src/features/contribute/_components/circuit-name/circuit-name.module.css new file mode 100644 index 000000000..61b1f9711 --- /dev/null +++ b/src/features/contribute/_components/circuit-name/circuit-name.module.css @@ -0,0 +1,50 @@ +.circuitName { + position: relative; + text-align: end; +} + +.circuitName > .name svg { + margin-left: 1em; + color: #005; +} + +.name { + font-weight: bold; + font-variant: small-caps; +} + +.description { + margin-top: 16px; + white-space: pre-wrap; + position: absolute; + background: #0050b3ee; + color: #fff; + padding: 0.5em 1em; + border-radius: 0.25em; + position: absolute; + left: 0; + right: 0; + width: 100%; + pointer-events: none; + z-index: 9; + text-align: start; + transition: all 0.3s; + opacity: 0; +} + +.circuitName:hover .description { + opacity: 1; +} + +.description::after { + content: ''; + border: 16px solid transparent; + border-bottom: 16px solid #0050b3ee; + position: absolute; + top: -16px; + left: 50%; + width: 0; + height: 0; + margin: -16px; + transform: scale(0.5, 1); +} diff --git a/src/features/contribute/_components/circuit-preview/circuit-preview.module.css b/src/features/contribute/_components/circuit-preview/circuit-preview.module.css new file mode 100644 index 000000000..2e4f7d702 --- /dev/null +++ b/src/features/contribute/_components/circuit-preview/circuit-preview.module.css @@ -0,0 +1,14 @@ +div.circuitPreview { + width: 100%; + height: 100%; + min-height: 0; + overflow: visible; +} + +.circuitPreview > .image { + background: #fff; + border-radius: 1em; + box-shadow: 0 2px 8px #0002; + width: 100%; + height: 100%; +} diff --git a/src/features/contribute/_components/circuit-preview/circuit-preview.tsx b/src/features/contribute/_components/circuit-preview/circuit-preview.tsx new file mode 100644 index 000000000..8862833f2 --- /dev/null +++ b/src/features/contribute/_components/circuit-preview/circuit-preview.tsx @@ -0,0 +1,25 @@ +/* eslint-disable @next/next/no-img-element */ +import React from 'react'; + +import { useCircuitImageURL } from '../hooks/circuit'; +import { classNames } from '@/util/utils'; +import { ICircuit } from '@/api/entitycore/types/entities/circuit'; +import ZoomableImage from '@/components/zoomable-image'; + +import styles from './circuit-preview.module.css'; + +interface CircuitPreviewProps { + className?: string; + circuit: ICircuit | undefined | null; +} + +export default function CircuitPreview({ className, circuit }: CircuitPreviewProps) { + const url = useCircuitImageURL(circuit?.id); + + return ( +
+ {/* Circuit preview */} + +
+ ); +} diff --git a/src/features/contribute/_components/circuit-preview/index.ts b/src/features/contribute/_components/circuit-preview/index.ts new file mode 100644 index 000000000..677278f17 --- /dev/null +++ b/src/features/contribute/_components/circuit-preview/index.ts @@ -0,0 +1 @@ +export { default } from './circuit-preview'; diff --git a/src/features/contribute/_components/components.tsx b/src/features/contribute/_components/components.tsx new file mode 100644 index 000000000..ee93f0735 --- /dev/null +++ b/src/features/contribute/_components/components.tsx @@ -0,0 +1,964 @@ +// components.tsx +import { useEffect, useState, useRef } from 'react'; +import { atom, useAtom } from 'jotai'; +import { InputNumber, Input, Select, Button } from 'antd'; +import { CheckCircleOutlined, CloseCircleOutlined, PlusCircleOutlined } from '@ant-design/icons'; + +import { JSONSchema } from '../types'; +import { isPlainObject } from './utils'; +import CircuitDetails from './circuit-details'; +import Tooltip from './tooltip'; + +import { ICircuit } from '@/api/entitycore/types/entities/circuit'; +import { classNames } from '@/util/utils'; + +type Primitive = null | boolean | number | string; +interface Object { + [key: string]: Primitive | Primitive[] | Object; +} + +export type ConfigValue = Primitive | Primitive[] | Object; + +export type Config = Record; + +// Updated structure for MTYPE classification +const MTYPE_CLASSES = [ + { mtype_pref_label: 'L23_NBC', mtype_id: '6605787b-ba14-43fd-a954-de9cff4b15a0' }, + { mtype_pref_label: 'L23_NGC', mtype_id: 'dd16dca0-e567-416b-b8b7-f8fbcaa05af0' }, + { mtype_pref_label: 'L23_PC', mtype_id: '0791edc9-7ad4-4a94-a4a5-feab9b690d7e' }, + { mtype_pref_label: 'L23_PTPC', mtype_id: '52ea242f-6591-425a-8eae-962fa0b4dfe0' }, + { mtype_pref_label: 'L23_SBC', mtype_id: 'fbb8b577-92f4-4c93-b355-0982ef5a3c7c' }, + { mtype_pref_label: 'L23_STPC', mtype_id: '93be8237-9861-4870-9977-ff1cf9e7462c' }, + { mtype_pref_label: 'L2_ChC', mtype_id: '91ba3deb-1139-4bc6-a12f-6a64a0ed0e92' }, + { mtype_pref_label: 'L2_IPC', mtype_id: 'e55f12e1-807c-42f6-ba98-91d6d30c57d7' }, + { mtype_pref_label: 'L2_MC', mtype_id: 'ea51f2c8-95fc-4940-a400-c37a3ff2d9eb' }, + { mtype_pref_label: 'L2_PC', mtype_id: 'dd73956b-423e-42c5-87d9-9e2cc84356b9' }, + { mtype_pref_label: 'L2_TPC', mtype_id: '7abf03d5-30b0-41ae-a02b-1f4e26c243a8' }, + { mtype_pref_label: 'L2_TPC:A', mtype_id: '9b04acb1-4737-4088-8d22-0658414bdda1' }, + { mtype_pref_label: 'L2_TPC:B', mtype_id: '4b6862b9-c438-4dfc-a2e6-1ad4d7a00eda' }, + { mtype_pref_label: 'L3_MC', mtype_id: '52578494-b41c-499b-9717-5d11f4b2f068' }, + { mtype_pref_label: 'L3_PC', mtype_id: '87fec7dd-7a2f-400a-aee0-94d1946cf1ab' }, + { mtype_pref_label: 'L3_TPC', mtype_id: '229c31f1-a6ec-4d8c-85d3-d8175ffde109' }, + { mtype_pref_label: 'L3_TPC:A', mtype_id: 'dd346e90-7bca-4976-bf9a-303b6a94b339' }, + { mtype_pref_label: 'L3_TPC:B', mtype_id: 'a71d226c-2c56-40ee-a4be-9726fc430932' }, + { mtype_pref_label: 'L3_TPC:C', mtype_id: 'd9b7bd4d-cec9-4fec-a448-79320de89f2a' }, + { mtype_pref_label: 'L4_BP', mtype_id: 'a55f6ce7-068a-4c5e-a883-de5f4304612e' }, + { mtype_pref_label: 'L4_BTC', mtype_id: '8315d249-6678-4d55-b581-3b6f9eb48e86' }, + { mtype_pref_label: 'L4_ChC', mtype_id: '0e4f3036-0d14-4fd9-b7a8-87f5e90a9fa6' }, + { mtype_pref_label: 'L4_DBC', mtype_id: '8de61c06-31e8-4483-bd98-608bc874b369' }, + { mtype_pref_label: 'L4_LBC', mtype_id: 'bb875a91-4ae5-4f6f-b050-5ad952e9cd6c' }, + { mtype_pref_label: 'L4_MC', mtype_id: '0bdf029e-a55a-444c-a7c9-9d0ff51239a5' }, + { mtype_pref_label: 'L4_NBC', mtype_id: '72673af9-2f2b-4a9a-95dc-552777ab63b9' }, + { mtype_pref_label: 'L4_NGC', mtype_id: '41f41550-5e0e-4de7-b52d-62110c338a27' }, + { mtype_pref_label: 'L4_PC', mtype_id: 'ad5769c6-7e86-4433-8f34-9efcb4f0d182' }, + { mtype_pref_label: 'L4_SBC', mtype_id: '43a7d86b-71c5-4a10-be62-ef6cf95ca694' }, + { mtype_pref_label: 'L4_SSC', mtype_id: '400a55f7-e162-4fd1-80a0-4f2facea7cec' }, + { mtype_pref_label: 'L4_TPC', mtype_id: '02e13718-5227-4c28-b838-04dd0c2c67f2' }, + { mtype_pref_label: 'L4_UPC', mtype_id: '2ef7e0b5-39e4-441b-a72a-c7186afa7f5c' }, + { mtype_pref_label: 'L56_PC', mtype_id: '629d6d6f-93f9-43d8-8a99-277740fd8f22' }, + { mtype_pref_label: 'L5_BP', mtype_id: '7b16c860-ae76-4ddf-b093-4e28620b3712' }, +]; + +// Helper function to check if a field value is considered "empty" or invalid +const isEmptyValue = (value: ConfigValue): boolean => { + if (value === null || value === undefined || value === '') return true; + if (Array.isArray(value) && value.length === 0) return true; + if (typeof value === 'object' && value !== null && Object.keys(value).length === 0) return true; + return false; +}; + +// Helper function to validate required fields +const getRequiredFieldErrors = ( + state: Record, + schema: JSONSchema +): string[] => { + const errors: string[] = []; + const requiredFields = schema.required || []; + + requiredFields.forEach((fieldName) => { + const value = state[fieldName]; + if (isEmptyValue(value)) { + const fieldSchema = schema.properties?.[fieldName]; + const fieldTitle = fieldSchema?.title || fieldName; + errors.push(`${fieldTitle} is required`); + } + }); + + return errors; +}; + +export function JSONSchemaForm({ + disabled, + schema, + stateAtom, + config, + circuit, + onAddReferenceClick, + nodeId, + currentCategory, + onValidationChange, // New prop to communicate validation state to parent +}: { + disabled: boolean; + config: Config; + schema: JSONSchema; + circuit: ICircuit | undefined | null; + stateAtom: ReturnType>; + onAddReferenceClick: (reference: string) => void; + nodeId?: string; + currentCategory?: string; + onValidationChange?: (isValid: boolean, errors: string[]) => void; +}) { + const skip = ['type']; + + const [state, setState] = useAtom(stateAtom); + const [addingElement, setAddingElement] = useState<{ [key: string]: boolean }>({ + legacy_id: true, + }); + const [newElement, setNewElement] = useState<{ [key: string]: number | string | null }>({}); + const [validationErrors, setValidationErrors] = useState([]); + const [touchedFields, setTouchedFields] = useState>(new Set()); + + const referenceTypesToConfigKeys: Record = { + NeuronSetReference: 'neuron_sets', + TimestampsReference: 'timestamps', + }; + + const referenceTypesToTitles: Record = { + NeuronSetReference: 'Neuron Set', + TimestampsReference: 'Timestamps', + }; + + // Callback ref to avoid dependency issues + const onValidationChangeRef = useRef(onValidationChange); + useEffect(() => { + onValidationChangeRef.current = onValidationChange; + }); + + // Validate form whenever state changes + useEffect(() => { + const errors = getRequiredFieldErrors(state, schema); + + // Only update if errors actually changed + setValidationErrors((prevErrors) => { + const errorsChanged = + prevErrors.length !== errors.length || + prevErrors.some((error, index) => error !== errors[index]); + + if (errorsChanged && onValidationChangeRef.current) { + onValidationChangeRef.current(errors.length === 0, errors); + } + + return errorsChanged ? errors : prevErrors; + }); + }, [state, schema]); + + useEffect(() => { + if (!schema.properties) return; + + const initial: Record = {}; + + Object.entries(schema.properties).forEach(([key, value]) => { + if (key === 'type') initial[key] = value.const ?? null; + else if (key === 'legacy_id') initial[key] = []; + else if (key === 'strain_id') initial[key] = null; + else if (key === 'license_id') + initial[key] = 'c268a20e-b78a-4332-a5e1-38e26c4454b9'; // Default to undefined UUID + else initial[key] = value.default ?? null; + }); + + // Auto-populate brain region id if we're in morphology category + if (currentCategory === 'morphology' && nodeId) { + const brainRegionIdKey = Object.keys(schema.properties || {}).find((key) => { + const normalizedKey = key.toLowerCase().replace(/[\s_]/g, ''); + return ( + normalizedKey === 'brainregionid' || + normalizedKey === 'brain_region_id' || + normalizedKey === 'brainregion' + ); + }); + + if (brainRegionIdKey) { + initial[brainRegionIdKey] = nodeId; + } + } + + // Auto-populate species id (hardcoded mouse species ID) + const speciesIdKey = Object.keys(schema.properties || {}).find((key) => { + const normalizedKey = key.toLowerCase().replace(/[\s_]/g, ''); + return ( + normalizedKey === 'speciesid' || + normalizedKey === 'species_id' || + normalizedKey === 'species' + ); + }); + + if (speciesIdKey) { + initial[speciesIdKey] = 'b7ad4cca-4ac2-4095-9781-37fb68fe9ca1'; + } + + // Auto-populate atlas id + const atlasIdKey = Object.keys(schema.properties || {}).find((key) => { + const normalizedKey = key.toLowerCase().replace(/[\s_]/g, ''); + return ( + normalizedKey === 'atlasid' || normalizedKey === 'atlas_id' || normalizedKey === 'atlas' + ); + }); + + if (atlasIdKey) { + initial[atlasIdKey] = 'e3e70682-c209-4cac-a29f-6fbed82c07cd'; + } + + console.log('Initial state for morphology:', initial); + setState((prev) => { + const newState = { ...initial, ...prev }; + console.log('Updated state for morphology:', newState); + return newState; + }); + }, [stateAtom, setState, schema.properties, nodeId, currentCategory]); + + // Helper function to mark field as touched + const markFieldTouched = (fieldName: string) => { + setTouchedFields((prev) => new Set(prev).add(fieldName)); + }; + + // Helper function to check if a field has an error + const hasFieldError = (fieldName: string): boolean => { + const isRequired = schema.required?.includes(fieldName); + const isTouched = touchedFields.has(fieldName); + const isEmpty = isEmptyValue(state[fieldName]); + return isRequired && isTouched && isEmpty; + }; + + // Helper function to get field error message + const getFieldErrorMessage = (fieldName: string): string | null => { + if (!hasFieldError(fieldName)) return null; + const fieldSchema = schema.properties?.[fieldName]; + const fieldTitle = fieldSchema?.title || fieldName; + return `${fieldTitle} is required`; + }; + + function renderInput(k: string, v: JSONSchema) { + const obj = { + ...v, + ...v.anyOf?.find((subv) => subv.type !== 'array' && subv.type !== 'null'), + }; + const normalizedKey = k.toLowerCase().replace(/[\s_]/g, ''); + const isRequired = schema.required?.includes(k); + const fieldError = getFieldErrorMessage(k); + const hasError = hasFieldError(k); + + const isBrainRegionIdField = + currentCategory === 'morphology' && + (normalizedKey === 'brainregionid' || + normalizedKey === 'brain_region_id' || + normalizedKey === 'brainregion'); + const isSpeciesIdField = + normalizedKey === 'speciesid' || + normalizedKey === 'species_id' || + normalizedKey === 'species'; + const isAtlasIdField = + normalizedKey === 'atlasid' || normalizedKey === 'atlas_id' || normalizedKey === 'atlas'; + const isExperimentDateField = + normalizedKey === 'experimentdate' || + normalizedKey === 'experiment_date' || + normalizedKey === 'date' || + v.title?.toLowerCase().includes('date'); + const isStrainIdField = + normalizedKey === 'strainid' || normalizedKey === 'strain_id' || normalizedKey === 'strain'; + const isAgePeriodField = normalizedKey === 'ageperiod' || normalizedKey === 'age_period'; + const isLegacyIdField = normalizedKey === 'legacyid' || normalizedKey === 'legacy_id'; + const isLicenseIdField = normalizedKey === 'licenseid' || normalizedKey === 'license_id'; + const isMtypeClassIdField = normalizedKey === 'mtypeclassid'; + + // Common input props for consistency + const commonInputProps = { + disabled, + className: `w-full ${hasError ? 'border-red-500' : ''}`, + onBlur: () => markFieldTouched(k), + }; + + if (isBrainRegionIdField && nodeId) { + return ( +
+ +
+ ); + } + + if (isSpeciesIdField) { + return ( +
+ +
+ ); + } + + if (isAtlasIdField) { + return ( +
+ +
+ ); + } + + if (isExperimentDateField) { + const formatDate = (value: string) => { + const cleaned = value.replace(/[^\d\s-]/g, ''); + const parts = cleaned.split(/[\s-]+/).filter((part) => part.length > 0); + if (parts.length === 0) return ''; + if (parts.length === 1) return parts[0]; + if (parts.length === 2) return `${parts[0]} ${parts[1]}`; + return parts.slice(0, 3).join(' '); + }; + + const validateDateFormat = (value: string) => { + if (!value) return true; + const parts = value.split(' '); + if (parts.length !== 3) return false; + const [day, month, year] = parts; + const dayNum = parseInt(day); + const monthNum = parseInt(month); + const yearNum = parseInt(year); + return ( + dayNum >= 1 && + dayNum <= 31 && + monthNum >= 1 && + monthNum <= 12 && + yearNum >= 1900 && + yearNum <= new Date().getFullYear() + ); + }; + + const currentValue = typeof state[k] === 'string' ? state[k] : ''; + const isValid = validateDateFormat(currentValue); + const showDateError = !isValid && currentValue; + + return ( +
+ { + const formatted = formatDate(e.currentTarget.value); + setState({ ...state, [k]: formatted }); + }} + placeholder="DD MM YYYY (e.g., 15 03 2024)" + /> + {showDateError && ( +
+ Please use format: DD MM YYYY (day month year) +
+ )} + {fieldError &&
{fieldError}
} +
+ ); + } + + if (isStrainIdField) { + const allSpeciesStrains = [ + { + species_id: 'b7ad4cca-4ac2-4095-9781-37fb68fe9ca1', + species_name: 'Mouse', + strains: { + 'C57BL/6': '123e4567-e89b-12d3-a456-426614174000', + 'BALB/c': '456e7890-e29b-41d4-a716-446655440001', + }, + }, + { + species_id: '789e0123-e29b-41d4-a716-446655440002', + species_name: 'Rat', + strains: { + 'Sprague Dawley': '890e1234-e29b-41d4-a716-446655440003', + }, + }, + ]; + + const speciesId = 'b7ad4cca-4ac2-4095-9781-37fb68fe9ca1'; + const selectedSpecies = allSpeciesStrains.find((s) => s.species_id === speciesId); + + if (!selectedSpecies) { + return ( +
+ + {fieldError &&
{fieldError}
} +
+ ); + } + + const strainOptions = Object.entries(selectedSpecies.strains).map(([name, id]) => ({ + label: name, + value: id, + })); + + return ( +
+ { + setState({ ...state, [k]: newV }); + markFieldTouched(k); + }} + value={state[k]} + options={obj.enum.map((subv: string) => ({ + label: subv, + value: subv, + }))} + placeholder="Select age period" + /> + {fieldError &&
{fieldError}
} +
+ ); + } + console.warn('No enum found for age_period:', obj); + return ( +
+ { + setState({ ...state, [k]: e.currentTarget.value }); + }} + placeholder="Enter age period" + /> + {fieldError &&
{fieldError}
} +
+ ); + } + + if (isLegacyIdField) { + return ( +
+
+
+ {Array.isArray(state[k]) && + state[k].map((e, i) => ( +
+ {e}{' '} + {!disabled && ( + { + const newElements = [...state[k]]; + newElements.splice(i, 1); + setState({ ...state, [k]: newElements }); + markFieldTouched(k); + }} + /> + )} +
+ ))} +
+ {!addingElement[k] && !disabled && ( + setAddingElement({ ...addingElement, [k]: true })} + className="text-primary-8" + /> + )} + {addingElement[k] && !disabled && ( +
+ setNewElement({ ...newElement, [k]: e.currentTarget.value })} + placeholder="Enter legacy ID" + /> + {newElement[k] && ( + { + setState({ + ...state, + [k]: [...(Array.isArray(state[k]) ? state[k] : []), newElement[k]], + }); + setAddingElement({ ...addingElement, [k]: false }); + setNewElement({ ...newElement, [k]: null }); + markFieldTouched(k); + }} + /> + )} + { + setAddingElement({ ...addingElement, [k]: false }); + setNewElement({ ...newElement, [k]: null }); + }} + className="text-primary-8" + /> +
+ )} +
+ {fieldError &&
{fieldError}
} +
+ ); + } + + // New condition for 'license id' field + if (isLicenseIdField) { + const licenseOptions = { + undefined: 'c268a20e-b78a-4332-a5e1-38e26c4454b9', + 'CC BY-NC-SA 4.0 Deed': '9e766299-b873-4162-9207-30fcd583d933', + 'CC BY-NC 2.0 Deed': 'fafcd04d-a967-4eec-b2e1-3afb2d63a41a', + 'CC BY-NC 4.0 Deed': '1283454d-b5ad-488f-acb7-d00b9f02873d', + 'CC BY 2.0 Deed': '211ac318-504d-44b9-b250-3cae8980d2e9', + 'CC BY 4.0 Deed': 'ad8686db-3cdd-4e3f-bcbd-812380a9eba7', + 'CC0 1.0 Deed': '74b8c953-67f5-4e95-ac58-095274901328', + 'NGV_Data Licence_v1.0': '0c39107e-3b68-4f1f-904a-5c7f1b4f89c5', + }; + + const options = Object.entries(licenseOptions).map(([name, id]) => ({ + label: name, + value: id, + })); + + // Find the key corresponding to the current state value to set the label + const currentLicenseLabel = Object.keys(licenseOptions).find( + (key) => licenseOptions[key] === state[k] + ); + + return ( +
+ { + setState({ ...state, [k]: newV }); + markFieldTouched(k); + }} + value={currentMtypeLabel || state[k]} + options={options} + placeholder="Select an MTYPE CLASS" + /> + {fieldError &&
{fieldError}
} +
+ ); + } + + if (k === 'circuit' && circuit) return ; + + if (v.is_block_reference && v.properties && typeof v.properties.type.const === 'string') { + const referenceKey = referenceTypesToConfigKeys[v.properties.type.const]; + const referenceTitle = referenceTypesToTitles[v.properties.type.const]; + if (!referenceKey) return null; + const referenceConfig = config[referenceKey]; + if (!isPlainObject(referenceConfig)) return null; + + const referees = Object.entries(referenceConfig).filter(([_, val]) => { + return isPlainObject(val); + }); + + if (referees.length === 0) { + return ( +
+ + {fieldError &&
{fieldError}
} +
+ ); + } + + const defaultV = + isPlainObject(state[k]) && typeof state[k].block_name === 'string' + ? state[k].block_name + : null; + + return ( +
+ { + setState({ ...state, [k]: newV }); + markFieldTouched(k); + }} + value={state[k]} + options={obj.enum.map((subv: string) => ({ + label: subv, + value: subv, + }))} + placeholder={`Select ${v.title || k}`} + /> + {fieldError &&
{fieldError}
} +
+ ); + } + + if (obj.type === 'number' || obj.type === 'integer') { + return ( +
+ { + setState({ ...state, [k]: value }); + }} + onBlur={() => markFieldTouched(k)} + className={`w-full ${hasError ? 'border-red-500' : ''}`} + /> + {fieldError &&
{fieldError}
} +
+ ); + } + + if (obj.type === 'string') { + return ( +
+ { + setState({ ...state, [k]: e.currentTarget.value }); + }} + /> + {fieldError &&
{fieldError}
} +
+ ); + } + + console.warn(`Unhandled schema type for key: ${k}`, obj); + return ( +
+ { + setState({ ...state, [k]: e.currentTarget.value }); + }} + placeholder={`Enter value for ${v.title || k}`} + /> + {fieldError &&
{fieldError}
} +
+ ); + } + + console.log('Rendering JSONSchemaForm with config:', config); + console.log('Current state:', state); + console.log('Validation errors:', validationErrors); + + return ( +
+
{schema.title}
+
{schema.description}
+ + {/* Show overall validation errors summary if there are any */} + {validationErrors.length > 0 && ( +
+
+ Please fix the following required fields: +
+
    + {validationErrors.map((error, index) => ( +
  • {error}
  • + ))} +
+
+ )} + +
+ {schema.properties && + Object.entries(schema.properties) + .filter(([k]) => { + return !skip.includes(k); + }) + .map(([k, v]) => { + const isRequired = schema.required?.includes(k); + const normalizedKey = k.toLowerCase().replace(/[\s_]/g, ''); + const isStrainIdField = + normalizedKey === 'strainid' || + normalizedKey === 'strain_id' || + normalizedKey === 'strain'; + const isAgePeriodField = + normalizedKey === 'ageperiod' || normalizedKey === 'age_period'; + const isLicenseIdField = + normalizedKey === 'licenseid' || normalizedKey === 'license_id'; + const isMtypeClassIdField = normalizedKey === 'mtypeclassid'; + + if (currentCategory === 'subject' && normalizedKey === 'ageperiod') { + console.log('Age period field:', { + key: k, + schema: v, + title: v.title, + resolved: { + ...v, + ...v.anyOf?.find((subv) => subv.type !== 'array' && subv.type !== 'null'), + }, + }); + } + + return ( +
+
+
+ {isStrainIdField + ? 'STRAIN' + : isAgePeriodField + ? 'AGE PERIOD' + : isLicenseIdField + ? 'LICENSE' // New condition for license title + : isMtypeClassIdField + ? 'MTYPE CLASS' + : v.title || k} + {isRequired && *} +
+ {v.units &&
{v.units}
} +
+ {renderInput(k, v)} +
+ ); + })} +
+
+ ); +} + +export function Tab({ + tab, + selectedTab, + children, + onClick, + rounded = 'rounded-full', + extraClass, + disabled, +}: { + tab: string; + selectedTab: string; + onClick?: () => void; + rounded?: 'rounded-l-full' | 'rounded-r-full' | 'rounded-full'; + children?: React.ReactNode; + extraClass?: string; + disabled?: boolean; +}) { + return ( + + ); +} + +export function Chevron({ rotate }: { rotate?: number }) { + return ( + + + + ); +} diff --git a/src/features/contribute/_components/file-viewer/index.tsx b/src/features/contribute/_components/file-viewer/index.tsx new file mode 100644 index 000000000..e8d736a3a --- /dev/null +++ b/src/features/contribute/_components/file-viewer/index.tsx @@ -0,0 +1,81 @@ +import { Suspense } from 'react'; +import { match } from 'ts-pattern'; +import { useAtomValue } from 'jotai'; + +import { File } from '../simulation-files'; +import { fileAtomFamily } from '../atoms'; + +import EphysViewer from '@/features/ephys-viewer'; +import { classNames } from '@/util/utils'; +import { WorkspaceContext } from '@/types/common'; +import { ICircuitSimulationResult } from '@/api/entitycore/types/entities/circuit-simulation-result'; + +type FileViewerProps = { + file?: File; + context: WorkspaceContext; + className?: string; +}; + +export function FileViewer({ file, context, className = '' }: FileViewerProps) { + const fileName = file?.assetPath?.split('/').at(-1) ?? file?.asset.path.split('/').at(-1); + const fileExt = fileName?.split('.').at(-1)?.toLowerCase(); + + const viewerContent = match(fileExt) + .with(undefined, () =>

Select a file for preview

) + .with('json', () => ) + .with('nwb', () => ) + .otherwise(() => ); + + return ( +
+
+ Loading...
}>{viewerContent} +
+ + ); +} + +type JsonFileViewerProps = { + file: File; + context: WorkspaceContext; +}; + +function JsonFileViewer({ file, context }: JsonFileViewerProps) { + const parsedJson = useAtomValue( + fileAtomFamily({ + id: file.asset.id, + entityId: file.entity.id, + entityType: file.entity.type, + assetPath: file.assetPath, + context, + }) + ); + + return
{JSON.stringify(parsedJson, null, 2)}
; +} + +type NwbFileViewerProps = { + file: File; + context: WorkspaceContext; +}; + +function NwbFileViewer({ file, context }: NwbFileViewerProps) { + return ; +} + +type PlaceholderFileViewerProps = { + file: File; +}; + +function PlaceholderFileViewer({ file }: PlaceholderFileViewerProps) { + const fileName = file?.assetPath?.split('/').at(-1) ?? file?.asset.path.split('/').at(-1); + const fileExt = fileName?.split('.').at(-1)?.toLowerCase(); + + return ( +
+ + Preview for {fileExt} files is not supported yet + +
+ ); +} diff --git a/src/features/contribute/_components/hooks/circuit.ts b/src/features/contribute/_components/hooks/circuit.ts new file mode 100644 index 000000000..4d3ae3c9b --- /dev/null +++ b/src/features/contribute/_components/hooks/circuit.ts @@ -0,0 +1,88 @@ +import React from 'react'; + +import { getCircuit } from '@/api/entitycore/queries/model/circuit'; +import { ICircuit } from '@/api/entitycore/types/entities/circuit'; +import { useAppNotification } from '@/components/notification'; +import { AssetLabel } from '@/api/entitycore/types/shared/global'; +import { downloadAsset } from '@/api/entitycore/queries/assets'; +import { EntityTypeEnum } from '@/api/entitycore/types'; + +const pendingQueries = new Map>(); + +/** + * Retrieve a circuit from EntityCore. + * @param circuitId + * @returns `undefined` if the query is pending, `null` if an error occured and the circuit in case of success. + */ +export function useCircuit(circuitId: string | undefined): ICircuit | undefined | null { + const { error } = useAppNotification(); + const [circuit, setCircuit] = React.useState(undefined); + + React.useEffect(() => { + if (!circuitId) { + setCircuit(undefined); + return; + } + + getQuery(circuitId) + .then(setCircuit) + .catch((ex) => { + error({ + message: `Unable to retrieve circuit "${circuitId}"!\n${ex}`, + }); + setCircuit(null); + }); + }, [circuitId, error]); + + return circuit; +} + +export function useCircuitImageURL(circuitId: string | undefined) { + const { error } = useAppNotification(); + const [url, setUrl] = React.useState(undefined); + const circuit = useCircuit(circuitId); + + React.useEffect(() => { + const action = async () => { + if (!circuit) return; + + const asset = circuit.assets.find( + (item) => item.label === AssetLabel.simulation_designer_image + ); + if (!asset) { + error({ message: `No image found for circuit "${circuit.name}" (${circuitId})!` }); + return; + } + try { + const resp = await downloadAsset({ + entityType: EntityTypeEnum.Circuit, + entityId: circuit.id, + id: asset.id, + asRawResponse: false, + }); + if (!(resp instanceof ArrayBuffer)) { + throw new Error('Wrong image format: expected ArrayBuffer!'); + } + const blob = new Blob([resp], { type: asset.content_type }); + const newUrl = URL.createObjectURL(blob); + setUrl(newUrl); + } catch (ex) { + error({ + message: `Unable to download image for circuit "${circuit.name}"!\n${ex}`, + }); + } + }; + action(); + }, [circuit, circuitId, error]); + + return url; +} + +function getQuery(circuitId: string): Promise { + const query = pendingQueries.get(circuitId); + if (query) return query; + + const newQuery = getCircuit({ id: circuitId }); + pendingQueries.set(circuitId, newQuery); + return newQuery; +} diff --git a/src/features/contribute/_components/hooks/config-atom.ts b/src/features/contribute/_components/hooks/config-atom.ts new file mode 100644 index 000000000..9fbb48e61 --- /dev/null +++ b/src/features/contribute/_components/hooks/config-atom.ts @@ -0,0 +1,30 @@ +import React from 'react'; +import { atom, useAtom } from 'jotai'; + +import { JSONSchema, AtomsMap } from '../../types'; +import { Config } from '../components'; +import { isAtom } from '../utils'; + +export function useConfigAtom(schema: JSONSchema | null, atomsMap: AtomsMap) { + const configAtom = React.useMemo(() => { + return atom((get) => { + const result: Config = {}; + Object.keys(atomsMap).forEach((key) => { + if (isAtom(atomsMap[key])) result[key] = get(atomsMap[key]); + else { + result[key] = {}; + Object.entries(atomsMap[key]).forEach(([subkey, v]) => { + if (typeof result[key] === 'string') return; + result[key][subkey] = get(v); + }); + } + }); + + result.type = schema?.properties?.type.const ?? ''; + + return result; + }); + }, [atomsMap, schema]); + const [config] = useAtom(configAtom); + return config; +} diff --git a/src/features/contribute/_components/hooks/schema.ts b/src/features/contribute/_components/hooks/schema.ts new file mode 100644 index 000000000..6beb8c33f --- /dev/null +++ b/src/features/contribute/_components/hooks/schema.ts @@ -0,0 +1,157 @@ +import React from 'react'; +import { atom } from 'jotai'; +import { NotificationInstance } from 'antd/es/notification/interface'; + +import $RefParser from '@apidevtools/json-schema-ref-parser'; + +import { AtomsMap, JSONSchema } from '../../types'; +import { ConfigValue, Config } from '../components'; +import { isPlainObject, isAtom } from '../utils'; +import { assertErrorMessage } from '@/util/utils'; + +export function useObioneJsonSchema( + circuitId: string, + notification: NotificationInstance, + setSchema: React.Dispatch>, + setAtomsMap: (atomsMap: AtomsMap) => void, + initialConfig?: Config +) { + React.useEffect(() => { + async function fetchSpec() { + try { + const res = await fetch(`${process.env.NEXT_PUBLIC_OBI_ONE_URL}/openapi.json`); + const json = await res.json(); + const dereferenced = await $RefParser.dereference(json); + // @ts-ignore + const theSchema = dereferenced.components.schemas.SimulationsForm as JSONSchema; + if (!theSchema.properties) return; + + setSchema(theSchema); + + const map: { + [key: string]: + | ReturnType>> + | Record>>>; + } = {}; + + if (initialConfig) { + Object.entries(initialConfig) + .filter(([k]) => { + return isRootCategory(theSchema, k); + }) + .forEach(([k, v]) => { + if (isPlainObject(v)) map[k] = atom>(v); + }); + + Object.entries(initialConfig) + .filter(([k]) => { + return !isRootCategory(theSchema, k); + }) + .forEach(([k, v]) => { + map[k] = {}; + + Object.entries(v).forEach(([subK, subV]) => { + if (!isPlainObject(subV) || isAtom(map[k])) return; + map[k][subK] = atom>(subV); + }); + }); + } else { + // Setting up initial values and constants. + Object.entries(theSchema.properties).forEach(([k, v]) => { + if (!v.additionalProperties) { + const initial: Record = {}; + + if (v.properties) + Object.entries(v.properties).forEach(([subkey, subValue]) => { + if (subkey === 'type') initial[subkey] = subValue.const ?? null; + else initial[subkey] = subValue.default ?? null; + }); + + if (k === 'initialize') { + initial.circuit = { + type: 'CircuitFromID', + id_str: circuitId, + }; + } + + map[k] = atom>(initial); + } else map[k] = {}; + }); + } + + setAtomsMap(map); + } catch (e) { + // eslint-disable-next-line no-console + console.error(assertErrorMessage(e)); + notification.error({ message: assertErrorMessage(e) }); + } + } + + fetchSpec(); + }, [notification, setAtomsMap, setSchema, initialConfig]); +} + +export function isRootCategory(schema: JSONSchema, key: string) { + return schema.properties?.[key] && !schema.properties[key].additionalProperties; +} + +export function resolveKey(schema: JSONSchema, tabKey: string, itemIdx: number | null) { + if (typeof itemIdx === null) throw new Error('Invalid itemIdx'); + if (!schema.properties?.[tabKey]?.singular_name) throw new Error(`Invalid schema for ${tabKey}`); + if (isRootCategory(schema, tabKey)) throw new Error("Shouldn't be a root category"); + + return `${schema.properties[tabKey].singular_name.replaceAll(' ', '')}_${itemIdx}`; +} + +export function useObioneJsonConfigurationSchema( + circuitId: string, + notification: NotificationInstance, + setSchema: React.Dispatch>, + setAtomsMap: (atomsMap: AtomsMap) => void +) { + React.useEffect(() => { + async function fetchSpec() { + try { + const res = await fetch(`http://0.0.0.0:8100/openapi.json`); + // const res = await fetch(`${process.env.NEXT_PUBLIC_OBI_ONE_URL}/openapi.json`); + console.log('Fetching schema'); + const json = await res.json(); + const dereferenced = await $RefParser.dereference(json); + // @ts-ignore + const theSchema = dereferenced.components.schemas.ContributeMorphologyForm as JSONSchema; + if (!theSchema.properties) return; + + setSchema(theSchema); + + const map: { + [key: string]: + | ReturnType>> + | Record>>>; + } = {}; + + // Setting up initial values and constants. + Object.entries(theSchema.properties).forEach(([k, v]) => { + if (!v.additionalProperties) { + const initial: Record = {}; + + if (v.properties) + Object.entries(v.properties).forEach(([subkey, subValue]) => { + if (subkey === 'type') initial[subkey] = subValue.const ?? null; + else initial[subkey] = subValue.default ?? null; + }); + + map[k] = atom>(initial); + } else map[k] = {}; + }); + + setAtomsMap(map); + } catch (e) { + // eslint-disable-next-line no-console + console.error(assertErrorMessage(e)); + notification.error({ message: assertErrorMessage(e) }); + } + } + + fetchSpec(); + }, [notification, setAtomsMap, setSchema]); +} diff --git a/src/features/contribute/_components/section.tsx b/src/features/contribute/_components/section.tsx new file mode 100644 index 000000000..b8dc739c7 --- /dev/null +++ b/src/features/contribute/_components/section.tsx @@ -0,0 +1,221 @@ +/* eslint-disable no-param-reassign */ +import React, { Fragment } from 'react'; +import { atom } from 'jotai'; +import { + CheckCircleFilled, + DeleteOutlined, + PlusCircleOutlined, + WarningFilled, +} from '@ant-design/icons'; +import { ErrorObject } from 'ajv'; + +import { AtomsMap, JSONSchema } from '../types'; +import { Chevron, Config, ConfigValue, Tab } from './components'; +import { isAtom, isPlainObject } from './utils'; +import { isRootCategory, resolveKey } from './hooks/schema'; + +import { classNames } from '@/util/utils'; + +export function Section({ + schema, + k, + sectionSchema, + atomsMap, + setAtomsMap, + configTab, + setConfigTab, + config, + campaignId, + loading, + errors, + selectedItemIdx, + setSelectedItemIdx, + setEditing, + setSelectedCategory, + readOnly, +}: { + schema: JSONSchema | null; // The global schema + k: string; // secition key + sectionSchema: JSONSchema; // The schema for this section + atomsMap: AtomsMap; + setAtomsMap: React.Dispatch>; + configTab: string; // Key for selected section + setConfigTab: (configTab: string) => void; + config: Config; + campaignId: string; + loading: boolean; + errors: ErrorObject, unknown>[] | null | undefined; + selectedItemIdx: number | null; + setSelectedItemIdx: (selectedItemIdx: number | null) => void; + setEditing: React.Dispatch>; + setSelectedCategory: React.Dispatch>; + readOnly?: boolean; +}) { + if (!schema || !schema?.properties) return; + + const handleHeaderClick = (subkey: string, subValue: unknown) => { + if (isPlainObject(subValue)) { + setSelectedCategory(typeof subValue.type === 'string' ? subValue.type : ''); + setSelectedItemIdx(parseInt(subkey.split('_')[1], 10)); + } + setEditing(true); + }; + + return ( + <> + { + if (configTab === k && !isRootCategory(schema, k)) { + setEditing(false); + setSelectedCategory(''); + setSelectedItemIdx(null); + setConfigTab(''); + return; + } + + setConfigTab(k); + setSelectedItemIdx(null); + if (!sectionSchema.additionalProperties) setEditing(true); + else setEditing(false); + }} + extraClass="w-full flex justify-between h-[50px] min-h-[50px] items-center drop-shadow" + > + {schema.properties?.[k]?.title} +
+ {errors?.find((error) => error.instancePath.startsWith('/' + k)) ? ( + + ) : ( + + )} + +
+
+ {sectionSchema.additionalProperties && configTab === k && config[k] && ( + <> + {Object.entries(config[k]).map(([subkey, subValue]) => { + const idx = parseInt(subkey.split('_')[1], 10); + + const isSelected = configTab === k && idx === selectedItemIdx; + + return ( + +
handleHeaderClick(subkey, subValue)} + onKeyDown={(evt) => { + if (evt.key === ' ' || evt.key === 'Enter') { + handleHeaderClick(subkey, subValue); + } + }} + > + {subkey} +
+ {errors?.find((error) => error.instancePath.startsWith(`/${k}/${subkey}`)) ? ( + + ) : ( + + )} + + {!campaignId && !loading && !readOnly && ( + { + e.stopPropagation(); + + setSelectedCategory(''); + setEditing(false); + + const selectedTabAtoms = atomsMap[configTab]; + if (!isAtom(selectedTabAtoms)) { + const refereeKey = resolveKey(schema, configTab, idx); + + delete selectedTabAtoms[refereeKey]; + + // Initialize case + const configInitialize = config.initialize; + if ( + isPlainObject(configInitialize) && + isPlainObject(configInitialize.node_set) && + typeof configInitialize.node_set.block_name === 'string' && + configInitialize.node_set.block_name === refereeKey + ) { + atomsMap.initialize = atom>({ + ...configInitialize, + node_set: null, + }); + } + + // Check all keys in the config + Object.entries(config) + .filter(([configK]) => configK !== 'initialize') + .forEach(([configK, configV]) => { + if (typeof configV !== 'object') return; + + // Check all keys in a section (e.g stimuli, recordings) + Object.entries(configV).forEach(([entryKey, entryV]) => { + if (!isPlainObject(entryV)) return; + + // Check all values in a particular object (a single stimuli, a single timestamp, etc) + Object.entries(entryV).forEach(([fieldK, field]) => { + if ( + !isPlainObject(entryV) || + !isPlainObject(field) || + typeof field.block_name !== 'string' || + isAtom(atomsMap[configK]) || // skip top level atoms (e.g initialize) + field.block_name !== refereeKey + ) + return; + + // Deleting the reference to current object + + delete entryV[fieldK]; //eslint-disable-line + + // The atom that has a reference to current object + atomsMap[configK][entryKey] = + atom>(entryV); + }); + }); + }); + + setAtomsMap({ + ...atomsMap, + [configTab]: { + ...selectedTabAtoms, + }, + }); + } + + setSelectedItemIdx(null); + }} + /> + )} +
+
+
+ ); + })} + {!campaignId && !loading && !readOnly && ( + + )} + + )} + + ); +} diff --git a/src/features/contribute/_components/simulation-files/index.tsx b/src/features/contribute/_components/simulation-files/index.tsx new file mode 100644 index 000000000..0d2a8ca2c --- /dev/null +++ b/src/features/contribute/_components/simulation-files/index.tsx @@ -0,0 +1,198 @@ +import { useAtomValue } from 'jotai'; +import { Suspense, useMemo } from 'react'; +import { ErrorBoundary } from 'react-error-boundary'; + +import { ICircuitSimulation } from '@/api/entitycore/types/entities/circuit-simulation'; +import { CircuitSimulationExecutionStatus } from '@/api/entitycore/types/entities/circuit-simulation-execution'; +import { IEntity } from '@/api/entitycore/types/entities/entity'; +import { IAsset } from '@/api/entitycore/types/shared/global'; +import { + circuitAtomFamily, + simResultBySimIdAtomFamily, +} from '@/features/small-microcircuit/_components/atoms'; +import { WorkspaceContext } from '@/types/common'; +import { classNames } from '@/util/utils'; + +export type File = { + asset: IAsset; + entity: IEntity; + assetPath?: string; +}; + +type SimulationFilesProps = { + simulation: ICircuitSimulation; + execStatus?: CircuitSimulationExecutionStatus | null; + selectedFile?: File; + onSelect: (file: File) => void; + context: WorkspaceContext; +}; + +export function SimulationFiles({ + simulation, + execStatus, + selectedFile, + onSelect, + context, +}: SimulationFilesProps) { + const outputAvailable = + execStatus && + [CircuitSimulationExecutionStatus.ERROR, CircuitSimulationExecutionStatus.DONE].includes( + execStatus + ); + + return ( + <> +

Input files

+ +

Output files

+ Loading...}> + {outputAvailable && ( + There was an issue loading output files + } + resetKeys={[simulation]} + > + + + )} + + + ); +} + +type SimulationInputFilesProps = { + simulation: ICircuitSimulation; + context: WorkspaceContext; + selectedFile?: File; + onSelect: (file: File) => void; + className?: string; +}; + +function SimulationInputFiles({ + simulation, + context, + selectedFile, + onSelect, + className = '', +}: SimulationInputFilesProps) { + const circuit = useAtomValue(circuitAtomFamily({ circuitId: simulation.entity_id, context })); + // TODO: fetch circuitConfig + const sonataCircuitAsset = circuit.assets.find((asset) => asset.label === 'sonata_circuit'); + const circuitConfigFile: File = useMemo( + () => ({ + entity: circuit, + asset: sonataCircuitAsset!, + assetPath: 'circuit_config.json', + }), + [circuit, sonataCircuitAsset] + ); + + const files: File[] = useMemo( + () => [circuitConfigFile, ...simulation.assets.map((asset) => ({ asset, entity: simulation }))], + [simulation, circuitConfigFile] + ); + + return ( +
+ {files.map((file) => ( + + ))} +
+ ); +} + +type SimulationOutputFilesProps = { + simulation: ICircuitSimulation; + context: WorkspaceContext; + selectedFile?: File; + onSelect: (file: File) => void; + className?: string; +}; + +function SimulationOutputFiles({ + simulation, + onSelect, + selectedFile, + context, + className = '', +}: SimulationOutputFilesProps) { + const simResult = useAtomValue( + simResultBySimIdAtomFamily({ simulationId: simulation.id, context }) + ); + + const files: File[] = useMemo( + () => simResult.assets.map((asset) => ({ asset, entity: simResult })), + [simResult] + ); + + return ( +
+ {files.map((file) => ( + + ))} +
+ ); +} + +type SimulationFileProps = { + file: File; + selected?: boolean; + onSelect: (file: File) => void; +}; + +function SimulationFile({ file, selected, onSelect }: SimulationFileProps) { + const fileName = file.assetPath?.split('/').at(-1) ?? file.asset.path.split('/').at(-1); + const fileExt = fileName?.split('.').at(-1); + + return ( + + ); +} diff --git a/src/features/contribute/_components/simulation-status/index.tsx b/src/features/contribute/_components/simulation-status/index.tsx new file mode 100644 index 000000000..499d77215 --- /dev/null +++ b/src/features/contribute/_components/simulation-status/index.tsx @@ -0,0 +1,50 @@ +import { CircuitSimulationExecutionStatus } from '@/api/entitycore/types/entities/circuit-simulation-execution'; + +export function SimulationStatusBadge({ status }: { status?: CircuitSimulationExecutionStatus }) { + const color = status ? statusColorMap[status] : '#fafafa'; + const showSpinner = status && ['pending', 'running'].includes(status); + + // TODO: move spinner outside of the module. + + return ( +
+ {showSpinner && ( + + + + + )} + + + {status ?? ''} + +
+ ); +} +const statusColorMap: Record = { + created: '#434343', + pending: '#fa8c16', + running: '#1890ff', + done: '#389e0d', + error: '#f5222d', +}; diff --git a/src/features/contribute/_components/tabs-selector/index.ts b/src/features/contribute/_components/tabs-selector/index.ts new file mode 100644 index 000000000..e516b026d --- /dev/null +++ b/src/features/contribute/_components/tabs-selector/index.ts @@ -0,0 +1 @@ +export { default } from './tabs-selector'; diff --git a/src/features/contribute/_components/tabs-selector/tabs-selector.tsx b/src/features/contribute/_components/tabs-selector/tabs-selector.tsx new file mode 100644 index 000000000..3b2b02a17 --- /dev/null +++ b/src/features/contribute/_components/tabs-selector/tabs-selector.tsx @@ -0,0 +1,43 @@ +import React from 'react'; + +import { Tab } from '../components'; +import { TabType } from '../../types'; +import { classNames } from '@/util/utils'; + +interface TabsSelectorProps { + className?: string; + tab: TabType; + setTab(tab: TabType): void; + disableSimulationTab: boolean; +} + +export default function TabsSelector({ + className, + tab, + setTab, + disableSimulationTab, +}: TabsSelectorProps) { + return ( +
+
+ setTab('configuration')} + > + Configuration + + setTab('simulations')} + disabled={disableSimulationTab} + > + Simulations + +
+
+ ); +} diff --git a/src/features/contribute/_components/tooltip/index.ts b/src/features/contribute/_components/tooltip/index.ts new file mode 100644 index 000000000..bb106e207 --- /dev/null +++ b/src/features/contribute/_components/tooltip/index.ts @@ -0,0 +1 @@ +export { default } from './tooltip'; diff --git a/src/features/contribute/_components/tooltip/tooltip.module.css b/src/features/contribute/_components/tooltip/tooltip.module.css new file mode 100644 index 000000000..a4e563aa8 --- /dev/null +++ b/src/features/contribute/_components/tooltip/tooltip.module.css @@ -0,0 +1,39 @@ +.tooltipContainer { + position: relative; + overflow: visible; +} + +.tooltip { + position: relative; + background: #0050b3ee; + color: #fff; + padding: 0.5em 1em; + border-radius: 0.25em; + position: absolute; + left: 0; + right: 0; + bottom: 0; + width: 100%; + pointer-events: none; + z-index: 9; + transform: translateY(calc(100% + 16px)); + transition: all 0.2s; + opacity: 0; +} + +.tooltipContainer:hover .tooltip { + opacity: 1; +} + +.tooltip::after { + content: ''; + border: 16px solid transparent; + border-bottom: 16px solid #0050b3ee; + position: absolute; + top: -16px; + left: 50%; + width: 0; + height: 0; + margin: -16px; + transform: scale(0.5, 1); +} diff --git a/src/features/contribute/_components/tooltip/tooltip.tsx b/src/features/contribute/_components/tooltip/tooltip.tsx new file mode 100644 index 000000000..45a1501f4 --- /dev/null +++ b/src/features/contribute/_components/tooltip/tooltip.tsx @@ -0,0 +1,20 @@ +import React from 'react'; + +import { classNames } from '@/util/utils'; + +import styles from './tooltip.module.css'; + +interface TooltipProps { + className?: string; + value?: React.ReactNode; + children: React.ReactNode; +} + +export default function Tooltip({ className, value, children }: TooltipProps) { + return ( +
+ {children} + {value &&
{value}
} +
+ ); +} diff --git a/src/features/contribute/_components/utils.ts b/src/features/contribute/_components/utils.ts new file mode 100644 index 000000000..f4f3c34a2 --- /dev/null +++ b/src/features/contribute/_components/utils.ts @@ -0,0 +1,73 @@ +import { Atom } from 'jotai'; +import uniq from 'lodash/uniq'; +import { CircuitSimulationExecutionStatus } from '@/api/entitycore/types/entities/circuit-simulation-execution'; + +export type Primitive = null | boolean | number | string; +export interface ConfigObject { + [key: string]: Primitive | Primitive[] | ConfigObject; +} + +export function isPlainObject(value: unknown): value is Record { + return typeof value === 'object' && !Array.isArray(value) && value !== null; +} + +export function isAtom(val: unknown): val is Atom { + return typeof val === 'object' && val !== null && 'read' in val; +} + +export const ORDERING: Record = { + assets: { + order: 0, + category: 'Assets', + }, + morphology: { + order: 1, + category: 'Setup', + }, + contribution: { + order: 2, + category: 'Contribution', + }, + subject: { + order: 4, + category: 'Subject', + }, + license: { + order: 5, + category: 'License', + }, + mtype: { + order: 6, + category: 'Mtype', + }, + // publication: { + // order: 7, + // category: 'Publication', + // }, + // scientificartifact: { + // order: 8, + // category: 'Scientific Artifact', + // }, +}; + +export const CATEGORIES: string[] = uniq(Object.values(ORDERING).map((o) => o.category)); + +const simExecStatusListordered = [ + CircuitSimulationExecutionStatus.CREATED, + CircuitSimulationExecutionStatus.PENDING, + CircuitSimulationExecutionStatus.RUNNING, + CircuitSimulationExecutionStatus.DONE, + CircuitSimulationExecutionStatus.ERROR, +]; + +export function getLatestSimExecStatus( + remoteStatus: CircuitSimulationExecutionStatus, + localStatus: CircuitSimulationExecutionStatus +) { + const remoteStatusIdx = simExecStatusListordered.indexOf(remoteStatus); + const localStatusIdx = simExecStatusListordered.indexOf(localStatus); + + const latestStatus = Math.max(remoteStatusIdx, localStatusIdx); + + return simExecStatusListordered[latestStatus]; +} diff --git a/src/features/contribute/error-registry.ts b/src/features/contribute/error-registry.ts new file mode 100755 index 000000000..afc71adf6 --- /dev/null +++ b/src/features/contribute/error-registry.ts @@ -0,0 +1,7 @@ +import { messages } from '@/i18n/en/simulation'; + +const errorCodeToTranslationKey: Record = { + ACCOUNTING_INSUFFICIENT_FUNDS_ERROR: messages.LowFundsError, +}; + +export default errorCodeToTranslationKey; diff --git a/src/features/contribute/index.tsx b/src/features/contribute/index.tsx new file mode 100755 index 000000000..66c406951 --- /dev/null +++ b/src/features/contribute/index.tsx @@ -0,0 +1,616 @@ +// index.tsx + +'use client'; + +import { + LoadingOutlined, + RightOutlined, + UploadOutlined, + CheckCircleFilled, +} from '@ant-design/icons'; +import Ajv, { AnySchema } from 'ajv'; +import { atom, useAtomValue, useSetAtom } from 'jotai'; +import { Fragment, Suspense, useEffect, useMemo, useRef, useState } from 'react'; +import { useParams } from 'next/navigation'; +import { Progress } from 'antd'; +import { match } from 'ts-pattern'; +import { + simExecRemoteStatusMapAtomFamily, + simExecStatusMapAtomFamily, + simulationsByCampaignIdAtomFamily, +} from './_components/atoms'; +import CircuitPreview from './_components/circuit-preview'; +import { Config, ConfigValue, JSONSchemaForm } from './_components/components'; +import { FileViewer } from './_components/file-viewer'; +import { useCircuit } from './_components/hooks/circuit'; +import { useConfigAtom } from './_components/hooks/config-atom'; +import { + isRootCategory, + resolveKey, + useObioneJsonConfigurationSchema, +} from './_components/hooks/schema'; +import { Section } from './_components/section'; +import TabsSelector from './_components/tabs-selector'; +import { CATEGORIES, isAtom, ORDERING } from './_components/utils'; +import { AtomsMap, JSONSchema, TabType } from './types'; +import { resolveDataKey } from '@/utils/key-builder'; +import { useBrainRegionHierarchy } from '@/features/brain-region-hierarchy/context'; +import { ICircuitSimulation } from '@/api/entitycore/types/entities/circuit-simulation'; +import { CircuitSimulationExecutionStatus } from '@/api/entitycore/types/entities/circuit-simulation-execution'; +import ApiError from '@/api/error'; +import authFetch from '@/authFetch'; +import { useAppNotification } from '@/components/notification'; +import { ButtonCopyId } from '@/features/details-view/button-copy-id'; +import { useLastTruthyValue } from '@/hooks/hooks'; +import { messages } from '@/i18n/en/simulation'; +import { runSimulation } from '@/services/small-scale-simulator/circuit'; +import { MessageType } from '@/services/small-scale-simulator/types'; +import { assertErrorMessage, classNames } from '@/util/utils'; +import { getErrorMessage } from '@/utils/error'; +import styles from './small-microcircuit.module.css'; + +export default function ContributeMorphologyConfiguration({ + circuitId, + virtualLabId, + projectId, + initialCampaignId, + initialConfig, +}: { + circuitId: string; + virtualLabId: string; + projectId: string; + initialCampaignId?: string; + initialConfig?: Config; +}) { + if (!!initialCampaignId !== !!initialConfig) + throw new Error('Both or none of initialCampaignId, initialConfigId should be passed'); + + const params = useParams(); + const { node } = useBrainRegionHierarchy({ + dataKey: resolveDataKey({ section: 'explore', projectId }), + }); + + const [configTab, setConfigTab] = useState('info'); + const [editing, setEditing] = useState(true); + const [schema, setSchema] = useState(null); + const [selectedCategory, setSelectedCategory] = useState(''); + const [selectedItemIdx, setSelectedItemIdx] = useState(null); + const [loading, setLoading] = useState(false); + const [showConfig, setShowConfig] = useState(false); + const [selectedFile, setSelectedFile] = useState(null); + const [fileStatus, setFileStatus] = useState<{ + message?: string; + }>({}); + const [newJsonPayload, setNewJsonPayload] = useState(null); + const notification = useAppNotification(); + const [campaignId, setCampaignId] = useState(initialCampaignId ?? ''); + const initialConfigValidated = useRef(false); + + // Add success state + const [isSuccess, setIsSuccess] = useState(false); + + // Add validation state + const [formValidation, setFormValidation] = useState<{ + isValid: boolean; + errors: string[]; + }>({ + isValid: true, + errors: [], + }); + + const selectedCatSchema = schema?.properties?.[configTab]?.additionalProperties?.anyOf?.find( + (s) => s.properties?.type.const === selectedCategory + ); + + const handleAddReferenceClick = (referenceTab: string) => { + setConfigTab(referenceTab); + setEditing(true); + setSelectedCategory(''); + }; + + // Handle validation changes from the form + const handleValidationChange = (isValid: boolean, errors: string[]) => { + setFormValidation({ isValid, errors }); + }; + + const readOnly = initialConfig !== undefined; + + const validate = useMemo(() => { + const ajv = new Ajv({ strictSchema: false, allErrors: true }); + if (!schema) return; + return ajv.compile(schema as AnySchema); + }, [schema]); + + const [atomsMap, setAtomsMap] = useState({}); + + const config = useConfigAtom(schema, atomsMap, node.id, configTab); + + if (validate && initialConfig && !initialConfigValidated.current) { + initialConfigValidated.current = true; + validate(initialConfig); + if (validate.errors) throw new Error('Invalid Simulation Campaign Configuration'); + } + + const errors = useMemo(() => { + if (validate) validate(config); + return validate?.errors; + }, [validate, config]); + + useObioneJsonConfigurationSchema(circuitId, notification, setSchema, setAtomsMap); + + const hasSuccessfulUpload = Object.values(fileStatus).some( + (status) => status?.status === 'success' + ); + + // Update the submit button condition + const canSubmit = + !errors?.length && !loading && !readOnly && selectedFile && formValidation.isValid; + + // Show success page if upload was successful + if (isSuccess) { + return ( +
+
+
+ ✓ Morphology created successfully +
+ +
+
+ ); + } + + if (!schema) { + return ( +
+ +
+ ); + } + + return ( +
+
+
+
+
+ {/* Show overall form validation status */} + {!formValidation.isValid && formValidation.errors.length > 0 && ( +
+
Required fields missing:
+
{formValidation.errors.join(', ')}
+
+ )} + +
Assets
+
{ + setConfigTab('assets'); + setEditing(true); + setSelectedCategory(''); + setSelectedItemIdx(null); + }} + > + Assets +
+ {selectedFile ? ( + + ) : ( +
// Placeholder to maintain spacing + )} + +
+
+ {CATEGORIES.filter((c) => c !== 'Assets').map((c) => { + return ( + +
{c}
+ {schema.properties && + Object.entries(schema.properties) + .filter(([k]) => k !== 'type' && ORDERING[k]?.category === c) + .sort((a, b) => { + const order = (k: string) => ORDERING[k]?.order ?? 999; + return order(a[0]) - order(b[0]); + }) + .map(([k, v]) => { + return ( +
+ ); + })} + + ); + })} +
+ {!readOnly && ( + + )} +
+
+ {configTab === 'assets' && editing && ( +
+
+ UPLOAD MORPHOLOGY FILE +
+
+ One reference file should be loaded. +
+
+
+ + {fileStatus?.message && ( + {fileStatus.message} + )} +
+
+
+ )} + {schema.properties && + schema.properties?.[configTab]?.additionalProperties?.anyOf && + !selectedCategory && + editing && + configTab !== 'assets' && ( +
+ {schema.properties[configTab].additionalProperties.anyOf.map((o) => { + return ( + +
{ + if (isRootCategory(schema, configTab)) return; + setSelectedCategory(o.properties?.type.const ?? ''); + const initial: Record = {}; + if (o.properties) + Object.entries(o.properties).forEach(([subkey, subValue]) => { + if (subkey === 'type') initial[subkey] = subValue.const ?? null; + else initial[subkey] = subValue.default ?? null; + }); + const itemIndexes = Object.keys(atomsMap[configTab]).map((subkey) => + parseInt(subkey.split('_')[1], 10) + ); + itemIndexes.sort((a, b) => a - b); + const itemIdx = (itemIndexes.at(-1) ?? -1) + 1; + setSelectedItemIdx(itemIdx); + setAtomsMap({ + ...atomsMap, + [configTab]: { + ...atomsMap[configTab], + [resolveKey(schema, configTab, itemIdx)]: + atom>(initial), + }, + }); + }} + > +
{o.title}
+
{o.description}
+
+
+ ); + })} +
+ )} + {schema.properties && + schema.properties?.[configTab] && + editing && + (isRootCategory(schema, configTab) || selectedCatSchema) && + configTab !== 'assets' && ( + + )} +
+
+ {showConfig && ( +
+
+
+

New Record JSON

+ +
+ +
+              {JSON.stringify(newJsonPayload, null, 2)}
+            
+ +
+ +
+
+
+ )} +
+ ); +} diff --git a/src/features/contribute/small-microcircuit.module.css b/src/features/contribute/small-microcircuit.module.css new file mode 100755 index 000000000..0a4777633 --- /dev/null +++ b/src/features/contribute/small-microcircuit.module.css @@ -0,0 +1,32 @@ +div.threeColumns { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 2fr); + gap: 5px; + height: calc(100% - 100px); +} + +div.threeColumns > div { + min-height: 0; + height: 100%; +} + +div.threeColumns > div.scrollable { + overflow-y: auto; + overflow-x: visible; +} + +div.threeColumns > div:first-child { + display: grid; + grid-template-rows: 1fr auto; + gap: 1em; + overflow: unset; +} + +header.header { + display: flex; + flex-wrap: nowrap; + flex-direction: row; + justify-content: space-between; + align-items: center; + gap: 1em; +} diff --git a/src/features/contribute/types.ts b/src/features/contribute/types.ts new file mode 100755 index 000000000..2217e8e2b --- /dev/null +++ b/src/features/contribute/types.ts @@ -0,0 +1,35 @@ +import { atom } from 'jotai'; + +import { ConfigValue } from './_components/components'; +import { CircuitSimulationExecutionStatus } from '@/api/entitycore/types/entities/circuit-simulation-execution'; + +export type JSONSchema = { + type?: 'string' | 'number' | 'integer' | 'object' | 'array' | 'boolean' | 'null'; + properties?: { [key: string]: JSONSchema }; + items?: JSONSchema | JSONSchema[]; + required?: string[]; + enum?: any[]; + const?: string; + additionalProperties?: JSONSchema; + oneOf?: JSONSchema[]; + anyOf?: JSONSchema[]; + allOf?: JSONSchema[]; + not?: JSONSchema; + format?: string; + title?: string; + description?: string; + default?: any; + examples?: any[]; + [key: string]: any; + singular_name?: string; +}; + +export interface AtomsMap { + [key: string]: + | ReturnType>> + | Record>>>; +} + +export type TabType = 'configuration' | 'simulations'; + +export type SimExecStatusMap = Map; From 8d79750fde788e0359011da76d13d8a96f824a53 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Tue, 12 Aug 2025 14:03:59 +0200 Subject: [PATCH 02/44] fixed linting --- .../contribute/_components/components.tsx | 80 +++++++++---------- src/features/contribute/index.tsx | 42 ++-------- 2 files changed, 48 insertions(+), 74 deletions(-) diff --git a/src/features/contribute/_components/components.tsx b/src/features/contribute/_components/components.tsx index ee93f0735..e7677510f 100644 --- a/src/features/contribute/_components/components.tsx +++ b/src/features/contribute/_components/components.tsx @@ -23,40 +23,40 @@ export type Config = Record; // Updated structure for MTYPE classification const MTYPE_CLASSES = [ - { mtype_pref_label: 'L23_NBC', mtype_id: '6605787b-ba14-43fd-a954-de9cff4b15a0' }, - { mtype_pref_label: 'L23_NGC', mtype_id: 'dd16dca0-e567-416b-b8b7-f8fbcaa05af0' }, - { mtype_pref_label: 'L23_PC', mtype_id: '0791edc9-7ad4-4a94-a4a5-feab9b690d7e' }, - { mtype_pref_label: 'L23_PTPC', mtype_id: '52ea242f-6591-425a-8eae-962fa0b4dfe0' }, - { mtype_pref_label: 'L23_SBC', mtype_id: 'fbb8b577-92f4-4c93-b355-0982ef5a3c7c' }, - { mtype_pref_label: 'L23_STPC', mtype_id: '93be8237-9861-4870-9977-ff1cf9e7462c' }, - { mtype_pref_label: 'L2_ChC', mtype_id: '91ba3deb-1139-4bc6-a12f-6a64a0ed0e92' }, - { mtype_pref_label: 'L2_IPC', mtype_id: 'e55f12e1-807c-42f6-ba98-91d6d30c57d7' }, - { mtype_pref_label: 'L2_MC', mtype_id: 'ea51f2c8-95fc-4940-a400-c37a3ff2d9eb' }, - { mtype_pref_label: 'L2_PC', mtype_id: 'dd73956b-423e-42c5-87d9-9e2cc84356b9' }, - { mtype_pref_label: 'L2_TPC', mtype_id: '7abf03d5-30b0-41ae-a02b-1f4e26c243a8' }, - { mtype_pref_label: 'L2_TPC:A', mtype_id: '9b04acb1-4737-4088-8d22-0658414bdda1' }, - { mtype_pref_label: 'L2_TPC:B', mtype_id: '4b6862b9-c438-4dfc-a2e6-1ad4d7a00eda' }, - { mtype_pref_label: 'L3_MC', mtype_id: '52578494-b41c-499b-9717-5d11f4b2f068' }, - { mtype_pref_label: 'L3_PC', mtype_id: '87fec7dd-7a2f-400a-aee0-94d1946cf1ab' }, - { mtype_pref_label: 'L3_TPC', mtype_id: '229c31f1-a6ec-4d8c-85d3-d8175ffde109' }, - { mtype_pref_label: 'L3_TPC:A', mtype_id: 'dd346e90-7bca-4976-bf9a-303b6a94b339' }, - { mtype_pref_label: 'L3_TPC:B', mtype_id: 'a71d226c-2c56-40ee-a4be-9726fc430932' }, - { mtype_pref_label: 'L3_TPC:C', mtype_id: 'd9b7bd4d-cec9-4fec-a448-79320de89f2a' }, - { mtype_pref_label: 'L4_BP', mtype_id: 'a55f6ce7-068a-4c5e-a883-de5f4304612e' }, - { mtype_pref_label: 'L4_BTC', mtype_id: '8315d249-6678-4d55-b581-3b6f9eb48e86' }, - { mtype_pref_label: 'L4_ChC', mtype_id: '0e4f3036-0d14-4fd9-b7a8-87f5e90a9fa6' }, - { mtype_pref_label: 'L4_DBC', mtype_id: '8de61c06-31e8-4483-bd98-608bc874b369' }, - { mtype_pref_label: 'L4_LBC', mtype_id: 'bb875a91-4ae5-4f6f-b050-5ad952e9cd6c' }, - { mtype_pref_label: 'L4_MC', mtype_id: '0bdf029e-a55a-444c-a7c9-9d0ff51239a5' }, - { mtype_pref_label: 'L4_NBC', mtype_id: '72673af9-2f2b-4a9a-95dc-552777ab63b9' }, - { mtype_pref_label: 'L4_NGC', mtype_id: '41f41550-5e0e-4de7-b52d-62110c338a27' }, - { mtype_pref_label: 'L4_PC', mtype_id: 'ad5769c6-7e86-4433-8f34-9efcb4f0d182' }, - { mtype_pref_label: 'L4_SBC', mtype_id: '43a7d86b-71c5-4a10-be62-ef6cf95ca694' }, - { mtype_pref_label: 'L4_SSC', mtype_id: '400a55f7-e162-4fd1-80a0-4f2facea7cec' }, - { mtype_pref_label: 'L4_TPC', mtype_id: '02e13718-5227-4c28-b838-04dd0c2c67f2' }, - { mtype_pref_label: 'L4_UPC', mtype_id: '2ef7e0b5-39e4-441b-a72a-c7186afa7f5c' }, - { mtype_pref_label: 'L56_PC', mtype_id: '629d6d6f-93f9-43d8-8a99-277740fd8f22' }, - { mtype_pref_label: 'L5_BP', mtype_id: '7b16c860-ae76-4ddf-b093-4e28620b3712' }, + {"mtype_pref_label":"L23_NBC","mtype_id":"6605787b-ba14-43fd-a954-de9cff4b15a0"}, + {"mtype_pref_label":"L23_NGC","mtype_id":"dd16dca0-e567-416b-b8b7-f8fbcaa05af0"}, + {"mtype_pref_label":"L23_PC","mtype_id":"0791edc9-7ad4-4a94-a4a5-feab9b690d7e"}, + {"mtype_pref_label":"L23_PTPC","mtype_id":"52ea242f-6591-425a-8eae-962fa0b4dfe0"}, + {"mtype_pref_label":"L23_SBC","mtype_id":"fbb8b577-92f4-4c93-b355-0982ef5a3c7c"}, + {"mtype_pref_label":"L23_STPC","mtype_id":"93be8237-9861-4870-9977-ff1cf9e7462c"}, + {"mtype_pref_label":"L2_ChC","mtype_id":"91ba3deb-1139-4bc6-a12f-6a64a0ed0e92"}, + {"mtype_pref_label":"L2_IPC","mtype_id":"e55f12e1-807c-42f6-ba98-91d6d30c57d7"}, + {"mtype_pref_label":"L2_MC","mtype_id":"ea51f2c8-95fc-4940-a400-c37a3ff2d9eb"}, + {"mtype_pref_label":"L2_PC","mtype_id":"dd73956b-423e-42c5-87d9-9e2cc84356b9"}, + {"mtype_pref_label":"L2_TPC","mtype_id":"7abf03d5-30b0-41ae-a02b-1f4e26c243a8"}, + {"mtype_pref_label":"L2_TPC:A","mtype_id":"9b04acb1-4737-4088-8d22-0658414bdda1"}, + {"mtype_pref_label":"L2_TPC:B","mtype_id":"4b6862b9-c438-4dfc-a2e6-1ad4d7a00eda"}, + {"mtype_pref_label":"L3_MC","mtype_id":"52578494-b41c-499b-9717-5d11f4b2f068"}, + {"mtype_pref_label":"L3_PC","mtype_id":"87fec7dd-7a2f-400a-aee0-94d1946cf1ab"}, + {"mtype_pref_label":"L3_TPC","mtype_id":"229c31f1-a6ec-4d8c-85d3-d8175ffde109"}, + {"mtype_pref_label":"L3_TPC:A","mtype_id":"dd346e90-7bca-4976-bf9a-303b6a94b339"}, + {"mtype_pref_label":"L3_TPC:B","mtype_id":"a71d226c-2c56-40ee-a4be-9726fc430932"}, + {"mtype_pref_label":"L3_TPC:C","mtype_id":"d9b7bd4d-cec9-4fec-a448-79320de89f2a"}, + {"mtype_pref_label":"L4_BP","mtype_id":"a55f6ce7-068a-4c5e-a883-de5f4304612e"}, + {"mtype_pref_label":"L4_BTC","mtype_id":"8315d249-6678-4d55-b581-3b6f9eb48e86"}, + {"mtype_pref_label":"L4_ChC","mtype_id":"0e4f3036-0d14-4fd9-b7a8-87f5e90a9fa6"}, + {"mtype_pref_label":"L4_DBC","mtype_id":"8de61c06-31e8-4483-bd98-608bc874b369"}, + {"mtype_pref_label":"L4_LBC","mtype_id":"bb875a91-4ae5-4f6f-b050-5ad952e9cd6c"}, + {"mtype_pref_label":"L4_MC","mtype_id":"0bdf029e-a55a-444c-a7c9-9d0ff51239a5"}, + {"mtype_pref_label":"L4_NBC","mtype_id":"72673af9-2f2b-4a9a-95dc-552777ab63b9"}, + {"mtype_pref_label":"L4_NGC","mtype_id":"41f41550-5e0e-4de7-b52d-62110c338a27"}, + {"mtype_pref_label":"L4_PC","mtype_id":"ad5769c6-7e86-4433-8f34-9efcb4f0d182"}, + {"mtype_pref_label":"L4_SBC","mtype_id":"43a7d86b-71c5-4a10-be62-ef6cf95ca694"}, + {"mtype_pref_label":"L4_SSC","mtype_id":"400a55f7-e162-4fd1-80a0-4f2facea7cec"}, + {"mtype_pref_label":"L4_TPC","mtype_id":"02e13718-5227-4c28-b838-04dd0c2c67f2"}, + {"mtype_pref_label":"L4_UPC","mtype_id":"2ef7e0b5-39e4-441b-a72a-c7186afa7f5c"}, + {"mtype_pref_label":"L56_PC","mtype_id":"629d6d6f-93f9-43d8-8a99-277740fd8f22"}, + {"mtype_pref_label":"L5_BP","mtype_id":"7b16c860-ae76-4ddf-b093-4e28620b3712"} ]; // Helper function to check if a field value is considered "empty" or invalid @@ -243,7 +243,7 @@ export function JSONSchemaForm({ ...v.anyOf?.find((subv) => subv.type !== 'array' && subv.type !== 'null'), }; const normalizedKey = k.toLowerCase().replace(/[\s_]/g, ''); - const isRequired = schema.required?.includes(k); + const fieldError = getFieldErrorMessage(k); const hasError = hasFieldError(k); @@ -564,18 +564,18 @@ export function JSONSchemaForm({
); } - + // New condition for 'mtype class id' if (isMtypeClassIdField) { const options = MTYPE_CLASSES.map((mtype) => ({ label: mtype.mtype_pref_label, value: mtype.mtype_id, })); - + const currentMtypeLabel = MTYPE_CLASSES.find( (mtype) => mtype.mtype_id === state[k] )?.mtype_pref_label; - + return (
{ - console.log(`Updating strain_id to: ${newV}`); - setState((prev) => { - const newState = { ...prev, [k]: newV }; - console.log('New state after strain_id update:', newState); - return newState; - }); + setState((prev) => ({ ...prev, [k]: newV })); markFieldTouched(k); }} value={state[k]} @@ -424,7 +415,6 @@ export function JSONSchemaForm({ } if (isAgePeriodField) { - console.log('Rendering age_period field:', { key: k, schema: v, resolved: obj }); if (obj.enum) { return (
@@ -445,7 +435,6 @@ export function JSONSchemaForm({
); } - console.warn('No enum found for age_period:', obj); return (
{Array.isArray(state[k]) && state[k].map((e, i) => ( -
+
{e}{' '} {!disabled && ( { - const newElements = [...state[k]]; + const newElements = [...(Array.isArray(state[k]) ? state[k] : [])]; newElements.splice(i, 1); setState({ ...state, [k]: newElements }); markFieldTouched(k); @@ -659,7 +648,7 @@ export function JSONSchemaForm({ {isPlainObject(state[k]) && Array.isArray(state[k].elements) && state[k].elements.map((e, i) => ( -
+
{e}{' '} {!disabled && ( - {newElement[k] !== null && ( + {!isNil(newElement[k]) && ( { @@ -803,7 +793,6 @@ export function JSONSchemaForm({ ); } - console.warn(`Unhandled schema type for key: ${k}`, obj); return (
{schema.title}
@@ -836,7 +821,7 @@ export function JSONSchemaForm({
    {validationErrors.map((error, index) => ( -
  • {error}
  • +
  • {error}
  • ))}
@@ -861,18 +846,6 @@ export function JSONSchemaForm({ normalizedKey === 'licenseid' || normalizedKey === 'license_id'; const isMtypeClassIdField = normalizedKey === 'mtypeclassid'; - if (currentCategory === 'subject' && normalizedKey === 'ageperiod') { - console.log('Age period field:', { - key: k, - schema: v, - title: v.title, - resolved: { - ...v, - ...v.anyOf?.find((subv) => subv.type !== 'array' && subv.type !== 'null'), - }, - }); - } - return (
@@ -888,7 +861,7 @@ export function JSONSchemaForm({ : isAgePeriodField ? 'AGE PERIOD' : isLicenseIdField - ? 'LICENSE' // New condition for license title + ? 'LICENSE' : isMtypeClassIdField ? 'MTYPE CLASS' : v.title || k} diff --git a/src/features/contribute/_components/hooks/schema.ts b/src/features/contribute/_components/hooks/schema.ts index 6beb8c33f..41016d5eb 100644 --- a/src/features/contribute/_components/hooks/schema.ts +++ b/src/features/contribute/_components/hooks/schema.ts @@ -10,7 +10,7 @@ import { isPlainObject, isAtom } from '../utils'; import { assertErrorMessage } from '@/util/utils'; export function useObioneJsonSchema( - circuitId: string, + notification: NotificationInstance, setSchema: React.Dispatch>, setAtomsMap: (atomsMap: AtomsMap) => void, @@ -67,13 +67,6 @@ export function useObioneJsonSchema( else initial[subkey] = subValue.default ?? null; }); - if (k === 'initialize') { - initial.circuit = { - type: 'CircuitFromID', - id_str: circuitId, - }; - } - map[k] = atom>(initial); } else map[k] = {}; }); From e2169e1f8e09a8b8c7283f767f89a1c1c0414466 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Tue, 12 Aug 2025 14:26:05 +0200 Subject: [PATCH 04/44] more linting --- src/features/contribute/index.tsx | 59 ++++++++++++++++++++++++++----- 1 file changed, 50 insertions(+), 9 deletions(-) diff --git a/src/features/contribute/index.tsx b/src/features/contribute/index.tsx index 88705b9cb..69d91ed3a 100755 --- a/src/features/contribute/index.tsx +++ b/src/features/contribute/index.tsx @@ -1,4 +1,3 @@ -// index.tsx 'use client'; import { @@ -9,7 +8,7 @@ import { } from '@ant-design/icons'; import Ajv, { AnySchema } from 'ajv'; import { atom } from 'jotai'; -import { Fragment, useMemo, useRef, useState } from 'react'; +import { Fragment, useMemo, useRef, useState, KeyboardEvent } from 'react'; import { Config, ConfigValue, JSONSchemaForm } from './_components/components'; import { useConfigAtom } from './_components/hooks/config-atom'; import { @@ -121,14 +120,15 @@ export default function ContributeMorphologyConfiguration({ !errors?.length && !loading && !readOnly && selectedFile && formValidation.isValid; // Show success page if upload was successful -if (isSuccess) { + if (isSuccess) { return (
-
+
✓ Morphology created successfully
- {CATEGORIES.filter((c) => c !== 'Assets').map((c) => { - return ( - -
{c}
- {schema.properties && - Object.entries(schema.properties) - .filter(([k]) => k !== 'type' && ORDERING[k]?.category === c) - .sort((a, b) => { - const order = (k: string) => ORDERING[k]?.order ?? 999; - return order(a[0]) - order(b[0]); - }) - .map(([k, v]) => { - return ( -
- ); - })} - - ); - })} + {CATEGORIES.filter((c) => c !== 'Assets').map((c) => ( + +
{c}
+ {schema.properties && + Object.entries(schema.properties) + .filter(([k]) => k !== 'type' && ORDERING[k]?.category === c) + .sort((a, b) => { + const order = (k: string) => ORDERING[k]?.order ?? 999; + return order(a[0]) - order(b[0]); + }) + .map(([k, v]) => ( +
+ ))} + + ))}
{!readOnly && ( @@ -464,10 +482,9 @@ export default function ContributeMorphologyConfiguration({ htmlFor="file-upload" className={classNames( 'flex cursor-pointer items-center justify-center rounded-full px-4 py-2 text-sm', - loading - ? 'bg-gray-300 text-gray-500' - : 'bg-primary-8 hover:bg-primary-9 text-white', - readOnly && 'cursor-not-allowed opacity-50' + loading || readOnly + ? 'bg-gray-300 text-gray-500 cursor-not-allowed opacity-50' + : 'bg-primary-8 hover:bg-primary-9 text-white' )} > @@ -503,70 +520,67 @@ export default function ContributeMorphologyConfiguration({ editing && configTab !== 'assets' && (
- {schema.properties[configTab].additionalProperties.anyOf.map((o) => { - return ( - -
{ - if (isRootCategory(schema, configTab)) return; - setSelectedCategory(o.properties?.type.const ?? ''); - const initial: Record = {}; - if (o.properties) - Object.entries(o.properties).forEach(([subkey, subValue]) => { - if (subkey === 'type') initial[subkey] = subValue.const ?? null; - else initial[subkey] = subValue.default ?? null; - }); - const itemIndexes = Object.keys(atomsMap[configTab]).map((subkey) => - parseInt(subkey.split('_')[1], 10) - ); - itemIndexes.sort((a, b) => a - b); - const itemIdx = (itemIndexes.at(-1) ?? -1) + 1; - setSelectedItemIdx(itemIdx); - setAtomsMap({ - ...atomsMap, - [configTab]: { - ...atomsMap[configTab], - [resolveKey(schema, configTab, itemIdx)]: - atom>(initial), - }, + {schema.properties[configTab].additionalProperties.anyOf.map((o) => ( +
{ + if (isRootCategory(schema, configTab)) return; + setSelectedCategory(o.properties?.type.const ?? ''); + const initial: Record = {}; + if (o.properties) { + Object.entries(o.properties).forEach(([subkey, subValue]) => { + initial[subkey] = subkey === 'type' ? subValue.const ?? null : subValue.default ?? null; + }); + } + const itemIndexes = Object.keys(atomsMap[configTab]).map((subkey) => + parseInt(subkey.split('_')[1], 10) + ); + itemIndexes.sort((a, b) => a - b); + const itemIdx = (itemIndexes.at(-1) ?? -1) + 1; + setSelectedItemIdx(itemIdx); + setAtomsMap({ + ...atomsMap, + [configTab]: { + ...atomsMap[configTab], + [resolveKey(schema, configTab, itemIdx)]: + atom>(initial), + }, + }); + }} + onKeyDown={(e: KeyboardEvent) => { + if (e.key === 'Enter' || e.key === ' ') { + if (isRootCategory(schema, configTab)) return; + setSelectedCategory(o.properties?.type.const ?? ''); + const initial: Record = {}; + if (o.properties) { + Object.entries(o.properties).forEach(([subkey, subValue]) => { + initial[subkey] = subkey === 'type' ? subValue.const ?? null : subValue.default ?? null; }); - }} - onKeyDown={(e: KeyboardEvent) => { - if (e.key === 'Enter' || e.key === ' ') { - if (isRootCategory(schema, configTab)) return; - setSelectedCategory(o.properties?.type.const ?? ''); - const initial: Record = {}; - if (o.properties) - Object.entries(o.properties).forEach(([subkey, subValue]) => { - if (subkey === 'type') initial[subkey] = subValue.const ?? null; - else initial[subkey] = subValue.default ?? null; - }); - const itemIndexes = Object.keys(atomsMap[configTab]).map((subkey) => - parseInt(subkey.split('_')[1], 10) - ); - itemIndexes.sort((a, b) => a - b); - const itemIdx = (itemIndexes.at(-1) ?? -1) + 1; - setSelectedItemIdx(itemIdx); - setAtomsMap({ - ...atomsMap, - [configTab]: { - ...atomsMap[configTab], - [resolveKey(schema, configTab, itemIdx)]: - atom>(initial), - }, - }); - } - }} - > -
{o.title}
-
{o.description}
-
- - ); - })} + } + const itemIndexes = Object.keys(atomsMap[configTab]).map((subkey) => + parseInt(subkey.split('_')[1], 10) + ); + itemIndexes.sort((a, b) => a - b); + const itemIdx = (itemIndexes.at(-1) ?? -1) + 1; + setSelectedItemIdx(itemIdx); + setAtomsMap({ + ...atomsMap, + [configTab]: { + ...atomsMap[configTab], + [resolveKey(schema, configTab, itemIdx)]: + atom>(initial), + }, + }); + } + }} + > +
{o.title}
+
{o.description}
+
+ ))}
)} {schema.properties && From fe55d22ea44b5a26b2d80f586cca02421713b940 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Tue, 12 Aug 2025 14:50:03 +0200 Subject: [PATCH 06/44] more linting --- .../contribute/_components/components.tsx | 116 ++++++++++-------- 1 file changed, 67 insertions(+), 49 deletions(-) diff --git a/src/features/contribute/_components/components.tsx b/src/features/contribute/_components/components.tsx index 793b4b2da..62e7f5802 100644 --- a/src/features/contribute/_components/components.tsx +++ b/src/features/contribute/_components/components.tsx @@ -1,4 +1,3 @@ -// components.tsx import { useEffect, useState, useRef } from 'react'; import { atom, useAtom } from 'jotai'; import { InputNumber, Input, Select, Button } from 'antd'; @@ -28,7 +27,7 @@ const MTYPE_CLASSES = [ {"mtype_pref_label":"L23_NGC","mtype_id":"dd16dca0-e567-416b-b8b7-f8fbcaa05af0"}, {"mtype_pref_label":"L23_PC","mtype_id":"0791edc9-7ad4-4a94-a4a5-feab9b690d7e"}, {"mtype_pref_label":"L23_PTPC","mtype_id":"52ea242f-6591-425a-8eae-962fa0b4dfe0"}, - {"mtype_pref_label":"L23_SBC","mtype_id":"fbb8b577-92f4-4c93-b355-0982ef5a3c7c"}, + {"mtype_pref_label":"L23_SBC","mtype_id":"fbb8b577-92f4-4c93-b355-0982af5a3c7c"}, {"mtype_pref_label":"L23_STPC","mtype_id":"93be8237-9861-4870-9977-ff1cf9e7462c"}, {"mtype_pref_label":"L2_ChC","mtype_id":"91ba3deb-1139-4bc6-a12f-6a64a0ed0e92"}, {"mtype_pref_label":"L2_IPC","mtype_id":"e55f12e1-807c-42f6-ba98-91d6d30c57d7"}, @@ -266,17 +265,16 @@ export function JSONSchemaForm({ const isLicenseIdField = normalizedKey === 'licenseid' || normalizedKey === 'license_id'; const isMtypeClassIdField = normalizedKey === 'mtypeclassid'; - // Common input props for consistency - const commonInputProps = { - disabled, - className: `w-full ${hasError ? 'border-red-500' : ''}`, - onBlur: () => markFieldTouched(k), - }; - if (isBrainRegionIdField && nodeId) { return (
- + markFieldTouched(k)} + value={nodeId} + readOnly + />
); } @@ -285,9 +283,10 @@ export function JSONSchemaForm({ return (
markFieldTouched(k)} value="b7ad4cca-4ac2-4095-9781-37fb68fe9ca1" - className="w-full bg-gray-100" readOnly />
@@ -298,9 +297,10 @@ export function JSONSchemaForm({ return (
markFieldTouched(k)} value="e3e70682-c209-4cac-a29f-6fbed82c07cd" - className="w-full bg-gray-100" readOnly />
@@ -342,7 +342,8 @@ export function JSONSchemaForm({ return (
markFieldTouched(k)} value={currentValue} className={`w-full ${hasError || showDateError ? 'border-red-500' : ''}`} onChange={(e) => { @@ -400,7 +401,9 @@ export function JSONSchemaForm({ return (
markFieldTouched(k)} onChange={(newV) => { setState({ ...state, [k]: newV }); markFieldTouched(k); @@ -438,7 +443,9 @@ export function JSONSchemaForm({ return (
markFieldTouched(k)} value={typeof state[k] === 'string' ? state[k] : ''} onChange={(e) => { setState({ ...state, [k]: e.currentTarget.value }); @@ -456,14 +463,14 @@ export function JSONSchemaForm({
{Array.isArray(state[k]) && - state[k].map((e, i) => ( -
+ state[k].map((e) => ( +
{e}{' '} {!disabled && ( { const newElements = [...(Array.isArray(state[k]) ? state[k] : [])]; - newElements.splice(i, 1); + newElements.splice(newElements.indexOf(e), 1); setState({ ...state, [k]: newElements }); markFieldTouched(k); }} @@ -540,7 +547,9 @@ export function JSONSchemaForm({ return (
markFieldTouched(k)} onChange={(newV) => { setState({ ...state, [k]: newV }); markFieldTouched(k); @@ -614,7 +625,9 @@ export function JSONSchemaForm({ return (
markFieldTouched(k)} onChange={(newV) => { setState({ ...state, [k]: newV }); markFieldTouched(k); @@ -782,7 +797,9 @@ export function JSONSchemaForm({ return (
markFieldTouched(k)} value={typeof state[k] === 'string' ? state[k] : ''} onChange={(e) => { setState({ ...state, [k]: e.currentTarget.value }); @@ -796,7 +813,9 @@ export function JSONSchemaForm({ return (
markFieldTouched(k)} value={typeof state[k] === 'string' ? state[k] : ''} onChange={(e) => { setState({ ...state, [k]: e.currentTarget.value }); @@ -807,6 +826,21 @@ export function JSONSchemaForm({
); } + + function getFieldTitle(k: string, v: JSONSchema, normalizedKey: string): string { + if (normalizedKey === 'strainid' || normalizedKey === 'strain_id' || normalizedKey === 'strain') { + return 'STRAIN'; + } else if (normalizedKey === 'ageperiod' || normalizedKey === 'age_period') { + return 'AGE PERIOD'; + } else if (normalizedKey === 'licenseid' || normalizedKey === 'license_id') { + return 'LICENSE'; + } else if (normalizedKey === 'mtypeclassid') { + return 'MTYPE CLASS'; + } else { + return v.title || k; + } + } + return (
@@ -820,7 +854,7 @@ export function JSONSchemaForm({ Please fix the following required fields:
    - {validationErrors.map((error, index) => ( + {validationErrors.map((error) => (
  • {error}
  • ))}
@@ -836,15 +870,7 @@ export function JSONSchemaForm({ .map(([k, v]) => { const isRequired = schema.required?.includes(k); const normalizedKey = k.toLowerCase().replace(/[\s_]/g, ''); - const isStrainIdField = - normalizedKey === 'strainid' || - normalizedKey === 'strain_id' || - normalizedKey === 'strain'; - const isAgePeriodField = - normalizedKey === 'ageperiod' || normalizedKey === 'age_period'; - const isLicenseIdField = - normalizedKey === 'licenseid' || normalizedKey === 'license_id'; - const isMtypeClassIdField = normalizedKey === 'mtypeclassid'; + const fieldTitle = getFieldTitle(k, v, normalizedKey); return (
@@ -856,15 +882,7 @@ export function JSONSchemaForm({ )} title={v.description} > - {isStrainIdField - ? 'STRAIN' - : isAgePeriodField - ? 'AGE PERIOD' - : isLicenseIdField - ? 'LICENSE' - : isMtypeClassIdField - ? 'MTYPE CLASS' - : v.title || k} + {fieldTitle} {isRequired && *}
{v.units &&
{v.units}
} From 1f511e3579d6303d0147ee8b965229c99e7ad582 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Tue, 12 Aug 2025 14:54:21 +0200 Subject: [PATCH 07/44] more linting --- src/features/contribute/index.tsx | 53 ++++++++++++++++--------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/src/features/contribute/index.tsx b/src/features/contribute/index.tsx index 10d63382d..60c03a4dd 100755 --- a/src/features/contribute/index.tsx +++ b/src/features/contribute/index.tsx @@ -311,32 +311,35 @@ export default function ContributeMorphologyConfiguration({ const subjectId = subjectResponseData.id; // --- END: New pre-flight API call --- - const newJson = { - authorized_public: false, - license_id: null, - name: morphologyConfig.name || 'test', - description: morphologyConfig.description || 'string', - location: { - x: 0, - y: 0, - z: 0, - }, - legacy_id: Array.isArray(morphologyConfig.legacy_id) - ? morphologyConfig.legacy_id - : typeof morphologyConfig.legacy_id === 'string' - ? [morphologyConfig.legacy_id] - : [], - species_id: - morphologyConfig.species_id || - morphologyConfig.species || - 'b7ad4cca-4ac2-4095-9781-37fb68fe9ca1', - strain_id: morphologyConfig.strain_id || null, - brain_region_id: - morphologyConfig.brain_region_id || morphologyConfig.brain_region || node.id, - subject_id: subjectId, - }; - setNewJsonPayload(newJson); + const legacyId = Array.isArray(morphologyConfig.legacy_id) + ? morphologyConfig.legacy_id + : typeof morphologyConfig.legacy_id === 'string' + ? [morphologyConfig.legacy_id] + : []; + + const newJson = { + authorized_public: false, + license_id: null, + name: morphologyConfig.name || 'test', + description: morphologyConfig.description || 'string', + location: { + x: 0, + y: 0, + z: 0, + }, + legacy_id: legacyId, + species_id: + morphologyConfig.species_id || + morphologyConfig.species || + 'b7ad4cca-4ac2-4095-9781-37fb68fe9ca1', + strain_id: morphologyConfig.strain_id || null, + brain_region_id: + morphologyConfig.brain_region_id || morphologyConfig.brain_region || node.id, + subject_id: subjectId, +}; + + setNewJsonPayload(newJson); const headers = { accept: 'application/json', From 68ed8311c61165986a86d654277d894d172df2c1 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Tue, 12 Aug 2025 16:20:17 +0200 Subject: [PATCH 08/44] more linting --- src/features/contribute/index.tsx | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/features/contribute/index.tsx b/src/features/contribute/index.tsx index 60c03a4dd..f29c316c3 100755 --- a/src/features/contribute/index.tsx +++ b/src/features/contribute/index.tsx @@ -312,11 +312,15 @@ export default function ContributeMorphologyConfiguration({ // --- END: New pre-flight API call --- - const legacyId = Array.isArray(morphologyConfig.legacy_id) - ? morphologyConfig.legacy_id - : typeof morphologyConfig.legacy_id === 'string' - ? [morphologyConfig.legacy_id] - : []; + let legacyId; + +if (Array.isArray(morphologyConfig.legacy_id)) { + legacyId = morphologyConfig.legacy_id; +} else if (typeof morphologyConfig.legacy_id === 'string') { + legacyId = [morphologyConfig.legacy_id]; +} else { + legacyId = []; +} const newJson = { authorized_public: false, From df59fa732be27822f86126b33f70b4b69628de69 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Tue, 12 Aug 2025 16:45:30 +0200 Subject: [PATCH 09/44] more linting --- .../explore/interactive/add/layout.tsx | 1 - .../interactive-navigation-menu.tsx | 2 - .../ContributeLayout/index.tsx | 2 +- src/features/cell-composition/how-to.md | 4 - .../contribute/_components/components.tsx | 104 +++++++++--------- .../contribute/_components/hooks/schema.ts | 1 - src/features/contribute/index.tsx | 103 ++++++++--------- .../build/me-model/configure.tsx | 8 +- 8 files changed, 107 insertions(+), 118 deletions(-) diff --git a/src/app/app/virtual-lab/lab/[virtualLabId]/project/[projectId]/explore/interactive/add/layout.tsx b/src/app/app/virtual-lab/lab/[virtualLabId]/project/[projectId]/explore/interactive/add/layout.tsx index 813531a61..fdbc79a4d 100755 --- a/src/app/app/virtual-lab/lab/[virtualLabId]/project/[projectId]/explore/interactive/add/layout.tsx +++ b/src/app/app/virtual-lab/lab/[virtualLabId]/project/[projectId]/explore/interactive/add/layout.tsx @@ -2,6 +2,5 @@ import { ReactNode } from 'react'; import ContributeLayout from '@/components/explore-section/ContributeLayout'; export default function ContributeDataLayout({ children }: { children: ReactNode }) { - return {children}; } diff --git a/src/components/entities-type-stats/interactive-navigation-menu.tsx b/src/components/entities-type-stats/interactive-navigation-menu.tsx index 3e46a88cb..bcbf5438a 100644 --- a/src/components/entities-type-stats/interactive-navigation-menu.tsx +++ b/src/components/entities-type-stats/interactive-navigation-menu.tsx @@ -61,8 +61,6 @@ function EntityTypeStats(props: StatsPanelProps) { .with('experimental-data', () => ( <> {Object.entries(ExperimentalEntitiesTileTypes).map(([key, value], index) => { - - const baseHref = `${pathName}/${value?.explore.basePrefix}/${value.slug}`; let records = ''; let isError = false; diff --git a/src/components/explore-section/ContributeLayout/index.tsx b/src/components/explore-section/ContributeLayout/index.tsx index 054a58896..55bceb0f1 100755 --- a/src/components/explore-section/ContributeLayout/index.tsx +++ b/src/components/explore-section/ContributeLayout/index.tsx @@ -10,7 +10,7 @@ import BackToInteractiveExplorationBtn from '@/components/explore-section/BackTo export default function ContributeLayout({ children }: { children: ReactNode }) { const pathname = usePathname(); - + // Determine the href for the back button. // Goal: If current is /virtual-lab/explore/interactive/add/experimental/morphology // It should go back to /virtual-lab/explore/interactive diff --git a/src/features/cell-composition/how-to.md b/src/features/cell-composition/how-to.md index bcbb3c3a0..e84bf62e4 100644 --- a/src/features/cell-composition/how-to.md +++ b/src/features/cell-composition/how-to.md @@ -26,27 +26,23 @@ flowchart TD ## How to process: 1. **Initialization** - - start with a brain region id (selected by the user) - retrieve all leaf regions under that brain region (use `brainRegionHierarchyAtom`) - create volume maps for each leaf region (using `brainRegionAtlasAtom`) 2. **Node Construction** - - for each leaf region: - process mTypes and their child eTypes - build tree nodes with cell counts and densities - calculate composition data based on volumes 3. **Node Aggregation** - - merge nodes that represent the same mType/eType across different leaf regions - sum cell counts across regions - recalculate densities based on aggregated volumes - create links between parent mTypes and child eTypes 4. **Final Calculations** - - calculate total neuron and glial cell counts - determine total volume (not needed for now) - compute the whole composition densities diff --git a/src/features/contribute/_components/components.tsx b/src/features/contribute/_components/components.tsx index 62e7f5802..c731cca78 100644 --- a/src/features/contribute/_components/components.tsx +++ b/src/features/contribute/_components/components.tsx @@ -2,7 +2,7 @@ import { useEffect, useState, useRef } from 'react'; import { atom, useAtom } from 'jotai'; import { InputNumber, Input, Select, Button } from 'antd'; import { CheckCircleOutlined, CloseCircleOutlined, PlusCircleOutlined } from '@ant-design/icons'; -import { isNil } from 'lodash'; +import isNil from 'lodash/isNil'; import { JSONSchema } from '../types'; import { isPlainObject } from './utils'; @@ -23,40 +23,40 @@ export type Config = Record; // Updated structure for MTYPE classification const MTYPE_CLASSES = [ - {"mtype_pref_label":"L23_NBC","mtype_id":"6605787b-ba14-43fd-a954-de9cff4b15a0"}, - {"mtype_pref_label":"L23_NGC","mtype_id":"dd16dca0-e567-416b-b8b7-f8fbcaa05af0"}, - {"mtype_pref_label":"L23_PC","mtype_id":"0791edc9-7ad4-4a94-a4a5-feab9b690d7e"}, - {"mtype_pref_label":"L23_PTPC","mtype_id":"52ea242f-6591-425a-8eae-962fa0b4dfe0"}, - {"mtype_pref_label":"L23_SBC","mtype_id":"fbb8b577-92f4-4c93-b355-0982af5a3c7c"}, - {"mtype_pref_label":"L23_STPC","mtype_id":"93be8237-9861-4870-9977-ff1cf9e7462c"}, - {"mtype_pref_label":"L2_ChC","mtype_id":"91ba3deb-1139-4bc6-a12f-6a64a0ed0e92"}, - {"mtype_pref_label":"L2_IPC","mtype_id":"e55f12e1-807c-42f6-ba98-91d6d30c57d7"}, - {"mtype_pref_label":"L2_MC","mtype_id":"ea51f2c8-95fc-4940-a400-c37a3ff2d9eb"}, - {"mtype_pref_label":"L2_PC","mtype_id":"dd73956b-423e-42c5-87d9-9e2cc84356b9"}, - {"mtype_pref_label":"L2_TPC","mtype_id":"7abf03d5-30b0-41ae-a02b-1f4e26c243a8"}, - {"mtype_pref_label":"L2_TPC:A","mtype_id":"9b04acb1-4737-4088-8d22-0658414bdda1"}, - {"mtype_pref_label":"L2_TPC:B","mtype_id":"4b6862b9-c438-4dfc-a2e6-1ad4d7a00eda"}, - {"mtype_pref_label":"L3_MC","mtype_id":"52578494-b41c-499b-9717-5d11f4b2f068"}, - {"mtype_pref_label":"L3_PC","mtype_id":"87fec7dd-7a2f-400a-aee0-94d1946cf1ab"}, - {"mtype_pref_label":"L3_TPC","mtype_id":"229c31f1-a6ec-4d8c-85d3-d8175ffde109"}, - {"mtype_pref_label":"L3_TPC:A","mtype_id":"dd346e90-7bca-4976-bf9a-303b6a94b339"}, - {"mtype_pref_label":"L3_TPC:B","mtype_id":"a71d226c-2c56-40ee-a4be-9726fc430932"}, - {"mtype_pref_label":"L3_TPC:C","mtype_id":"d9b7bd4d-cec9-4fec-a448-79320de89f2a"}, - {"mtype_pref_label":"L4_BP","mtype_id":"a55f6ce7-068a-4c5e-a883-de5f4304612e"}, - {"mtype_pref_label":"L4_BTC","mtype_id":"8315d249-6678-4d55-b581-3b6f9eb48e86"}, - {"mtype_pref_label":"L4_ChC","mtype_id":"0e4f3036-0d14-4fd9-b7a8-87f5e90a9fa6"}, - {"mtype_pref_label":"L4_DBC","mtype_id":"8de61c06-31e8-4483-bd98-608bc874b369"}, - {"mtype_pref_label":"L4_LBC","mtype_id":"bb875a91-4ae5-4f6f-b050-5ad952e9cd6c"}, - {"mtype_pref_label":"L4_MC","mtype_id":"0bdf029e-a55a-444c-a7c9-9d0ff51239a5"}, - {"mtype_pref_label":"L4_NBC","mtype_id":"72673af9-2f2b-4a9a-95dc-552777ab63b9"}, - {"mtype_pref_label":"L4_NGC","mtype_id":"41f41550-5e0e-4de7-b52d-62110c338a27"}, - {"mtype_pref_label":"L4_PC","mtype_id":"ad5769c6-7e86-4433-8f34-9efcb4f0d182"}, - {"mtype_pref_label":"L4_SBC","mtype_id":"43a7d86b-71c5-4a10-be62-ef6cf95ca694"}, - {"mtype_pref_label":"L4_SSC","mtype_id":"400a55f7-e162-4fd1-80a0-4f2facea7cec"}, - {"mtype_pref_label":"L4_TPC","mtype_id":"02e13718-5227-4c28-b838-04dd0c2c67f2"}, - {"mtype_pref_label":"L4_UPC","mtype_id":"2ef7e0b5-39e4-441b-a72a-c7186afa7f5c"}, - {"mtype_pref_label":"L56_PC","mtype_id":"629d6d6f-93f9-43d8-8a99-277740fd8f22"}, - {"mtype_pref_label":"L5_BP","mtype_id":"7b16c860-ae76-4ddf-b093-4e28620b3712"} + { mtype_pref_label: 'L23_NBC', mtype_id: '6605787b-ba14-43fd-a954-de9cff4b15a0' }, + { mtype_pref_label: 'L23_NGC', mtype_id: 'dd16dca0-e567-416b-b8b7-f8fbcaa05af0' }, + { mtype_pref_label: 'L23_PC', mtype_id: '0791edc9-7ad4-4a94-a4a5-feab9b690d7e' }, + { mtype_pref_label: 'L23_PTPC', mtype_id: '52ea242f-6591-425a-8eae-962fa0b4dfe0' }, + { mtype_pref_label: 'L23_SBC', mtype_id: 'fbb8b577-92f4-4c93-b355-0982af5a3c7c' }, + { mtype_pref_label: 'L23_STPC', mtype_id: '93be8237-9861-4870-9977-ff1cf9e7462c' }, + { mtype_pref_label: 'L2_ChC', mtype_id: '91ba3deb-1139-4bc6-a12f-6a64a0ed0e92' }, + { mtype_pref_label: 'L2_IPC', mtype_id: 'e55f12e1-807c-42f6-ba98-91d6d30c57d7' }, + { mtype_pref_label: 'L2_MC', mtype_id: 'ea51f2c8-95fc-4940-a400-c37a3ff2d9eb' }, + { mtype_pref_label: 'L2_PC', mtype_id: 'dd73956b-423e-42c5-87d9-9e2cc84356b9' }, + { mtype_pref_label: 'L2_TPC', mtype_id: '7abf03d5-30b0-41ae-a02b-1f4e26c243a8' }, + { mtype_pref_label: 'L2_TPC:A', mtype_id: '9b04acb1-4737-4088-8d22-0658414bdda1' }, + { mtype_pref_label: 'L2_TPC:B', mtype_id: '4b6862b9-c438-4dfc-a2e6-1ad4d7a00eda' }, + { mtype_pref_label: 'L3_MC', mtype_id: '52578494-b41c-499b-9717-5d11f4b2f068' }, + { mtype_pref_label: 'L3_PC', mtype_id: '87fec7dd-7a2f-400a-aee0-94d1946cf1ab' }, + { mtype_pref_label: 'L3_TPC', mtype_id: '229c31f1-a6ec-4d8c-85d3-d8175ffde109' }, + { mtype_pref_label: 'L3_TPC:A', mtype_id: 'dd346e90-7bca-4976-bf9a-303b6a94b339' }, + { mtype_pref_label: 'L3_TPC:B', mtype_id: 'a71d226c-2c56-40ee-a4be-9726fc430932' }, + { mtype_pref_label: 'L3_TPC:C', mtype_id: 'd9b7bd4d-cec9-4fec-a448-79320de89f2a' }, + { mtype_pref_label: 'L4_BP', mtype_id: 'a55f6ce7-068a-4c5e-a883-de5f4304612e' }, + { mtype_pref_label: 'L4_BTC', mtype_id: '8315d249-6678-4d55-b581-3b6f9eb48e86' }, + { mtype_pref_label: 'L4_ChC', mtype_id: '0e4f3036-0d14-4fd9-b7a8-87f5e90a9fa6' }, + { mtype_pref_label: 'L4_DBC', mtype_id: '8de61c06-31e8-4483-bd98-608bc874b369' }, + { mtype_pref_label: 'L4_LBC', mtype_id: 'bb875a91-4ae5-4f6f-b050-5ad952e9cd6c' }, + { mtype_pref_label: 'L4_MC', mtype_id: '0bdf029e-a55a-444c-a7c9-9d0ff51239a5' }, + { mtype_pref_label: 'L4_NBC', mtype_id: '72673af9-2f2b-4a9a-95dc-552777ab63b9' }, + { mtype_pref_label: 'L4_NGC', mtype_id: '41f41550-5e0e-4de7-b52d-62110c338a27' }, + { mtype_pref_label: 'L4_PC', mtype_id: 'ad5769c6-7e86-4433-8f34-9efcb4f0d182' }, + { mtype_pref_label: 'L4_SBC', mtype_id: '43a7d86b-71c5-4a10-be62-ef6cf95ca694' }, + { mtype_pref_label: 'L4_SSC', mtype_id: '400a55f7-e162-4fd1-80a0-4f2facea7cec' }, + { mtype_pref_label: 'L4_TPC', mtype_id: '02e13718-5227-4c28-b838-04dd0c2c67f2' }, + { mtype_pref_label: 'L4_UPC', mtype_id: '2ef7e0b5-39e4-441b-a72a-c7186afa7f5c' }, + { mtype_pref_label: 'L56_PC', mtype_id: '629d6d6f-93f9-43d8-8a99-277740fd8f22' }, + { mtype_pref_label: 'L5_BP', mtype_id: '7b16c860-ae76-4ddf-b093-4e28620b3712' }, ]; // Helper function to check if a field value is considered "empty" or invalid @@ -562,18 +562,18 @@ export function JSONSchemaForm({
); } - + // New condition for 'mtype class id' if (isMtypeClassIdField) { const options = MTYPE_CLASSES.map((mtype) => ({ label: mtype.mtype_pref_label, value: mtype.mtype_id, })); - + const currentMtypeLabel = MTYPE_CLASSES.find( (mtype) => mtype.mtype_id === state[k] )?.mtype_pref_label; - + return (
{fieldError &&
{fieldError}
}
- ); + ) } const strainOptions = Object.entries(selectedSpecies.strains).map(([name, id]) => ({ label: name, value: id, - })); + })) return (
@@ -405,8 +403,8 @@ export function JSONSchemaForm({ className={`w-full ${hasError ? 'border-red-500' : ''}`} onBlur={() => markFieldTouched(k)} onChange={(newV) => { - setState((prev) => ({ ...prev, [k]: newV })); - markFieldTouched(k); + setState((prev) => ({ ...prev, [k]: newV })) + markFieldTouched(k) }} value={state[k]} options={strainOptions} @@ -414,7 +412,7 @@ export function JSONSchemaForm({ /> {fieldError &&
{fieldError}
}
- ); + ) } if (isAgePeriodField) { @@ -426,8 +424,8 @@ export function JSONSchemaForm({ className={`w-full ${hasError ? 'border-red-500' : ''}`} onBlur={() => markFieldTouched(k)} onChange={(newV) => { - setState({ ...state, [k]: newV }); - markFieldTouched(k); + setState({ ...state, [k]: newV }) + markFieldTouched(k) }} value={state[k]} options={obj.enum.map((subv: string) => ({ @@ -438,7 +436,7 @@ export function JSONSchemaForm({ /> {fieldError &&
{fieldError}
}
- ); + ) } return (
@@ -448,13 +446,13 @@ export function JSONSchemaForm({ onBlur={() => markFieldTouched(k)} value={typeof state[k] === 'string' ? state[k] : ''} onChange={(e) => { - setState({ ...state, [k]: e.currentTarget.value }); + setState({ ...state, [k]: e.currentTarget.value }) }} placeholder="Enter age period" /> {fieldError &&
{fieldError}
}
- ); + ) } if (isLegacyIdField) { @@ -469,10 +467,10 @@ export function JSONSchemaForm({ {!disabled && ( { - const newElements = [...(Array.isArray(state[k]) ? state[k] : [])]; - newElements.splice(newElements.indexOf(e), 1); - setState({ ...state, [k]: newElements }); - markFieldTouched(k); + const newElements = [...(Array.isArray(state[k]) ? state[k] : [])] + newElements.splice(newElements.indexOf(e), 1) + setState({ ...state, [k]: newElements }) + markFieldTouched(k) }} /> )} @@ -499,17 +497,17 @@ export function JSONSchemaForm({ setState({ ...state, [k]: [...(Array.isArray(state[k]) ? state[k] : []), newElement[k]], - }); - setAddingElement({ ...addingElement, [k]: false }); - setNewElement({ ...newElement, [k]: null }); - markFieldTouched(k); + }) + setAddingElement({ ...addingElement, [k]: false }) + setNewElement({ ...newElement, [k]: null }) + markFieldTouched(k) }} /> )} { - setAddingElement({ ...addingElement, [k]: false }); - setNewElement({ ...newElement, [k]: null }); + setAddingElement({ ...addingElement, [k]: false }) + setNewElement({ ...newElement, [k]: null }) }} className="text-primary-8" /> @@ -518,7 +516,7 @@ export function JSONSchemaForm({
{fieldError &&
{fieldError}
}
- ); + ) } // New condition for 'license id' field @@ -532,17 +530,17 @@ export function JSONSchemaForm({ 'CC BY 4.0 Deed': 'ad8686db-3cdd-4e3f-bcbd-812380a9eba7', 'CC0 1.0 Deed': '74b8c953-67f5-4e95-ac58-095274901328', 'NGV_Data Licence_v1.0': '0c39107e-3b68-4f1f-904a-5c7f1b4f89c5', - }; + } const options = Object.entries(licenseOptions).map(([name, id]) => ({ label: name, value: id, - })); + })) // Find the key corresponding to the current state value to set the label const currentLicenseLabel = Object.keys(licenseOptions).find( - (key) => licenseOptions[key] === state[k] - ); + (key) => licenseOptions[key] === state[k], + ) return (
@@ -551,8 +549,8 @@ export function JSONSchemaForm({ className={`w-full ${hasError ? 'border-red-500' : ''}`} onBlur={() => markFieldTouched(k)} onChange={(newV) => { - setState({ ...state, [k]: newV }); - markFieldTouched(k); + setState({ ...state, [k]: newV }) + markFieldTouched(k) }} value={currentLicenseLabel || state[k]} // Use the label for display, or the value if not found options={options} @@ -560,7 +558,7 @@ export function JSONSchemaForm({ /> {fieldError &&
{fieldError}
}
- ); + ) } // New condition for 'mtype class id' @@ -568,11 +566,11 @@ export function JSONSchemaForm({ const options = MTYPE_CLASSES.map((mtype) => ({ label: mtype.mtype_pref_label, value: mtype.mtype_id, - })); + })) const currentMtypeLabel = MTYPE_CLASSES.find( - (mtype) => mtype.mtype_id === state[k] - )?.mtype_pref_label; + (mtype) => mtype.mtype_id === state[k], + )?.mtype_pref_label return (
@@ -581,8 +579,8 @@ export function JSONSchemaForm({ className={`w-full ${hasError ? 'border-red-500' : ''}`} onBlur={() => markFieldTouched(k)} onChange={(newV) => { - setState({ ...state, [k]: newV }); - markFieldTouched(k); + setState({ ...state, [k]: newV }) + markFieldTouched(k) }} value={currentMtypeLabel || state[k]} options={options} @@ -590,21 +588,21 @@ export function JSONSchemaForm({ /> {fieldError &&
{fieldError}
}
- ); + ) } - if (k === 'circuit' && circuit) return ; + if (k === 'circuit' && circuit) return if (v.is_block_reference && v.properties && typeof v.properties.type.const === 'string') { - const referenceKey = referenceTypesToConfigKeys[v.properties.type.const]; - const referenceTitle = referenceTypesToTitles[v.properties.type.const]; - if (!referenceKey) return null; - const referenceConfig = config[referenceKey]; - if (!isPlainObject(referenceConfig)) return null; + const referenceKey = referenceTypesToConfigKeys[v.properties.type.const] + const referenceTitle = referenceTypesToTitles[v.properties.type.const] + if (!referenceKey) return null + const referenceConfig = config[referenceKey] + if (!isPlainObject(referenceConfig)) return null const referees = Object.entries(referenceConfig).filter(([, val]) => { - return isPlainObject(val); - }); + return isPlainObject(val) + }) if (referees.length === 0) { return ( @@ -614,13 +612,13 @@ export function JSONSchemaForm({ {fieldError &&
{fieldError}
}
- ); + ) } const defaultV = isPlainObject(state[k]) && typeof state[k].block_name === 'string' ? state[k].block_name - : null; + : null return (
@@ -630,7 +628,7 @@ export function JSONSchemaForm({ onBlur={() => markFieldTouched(k)} onChange={(newV: string) => { if (!v.properties?.type.const || typeof v.properties.type.const !== 'string') - throw new Error('Invalid reference definition'); + throw new Error('Invalid reference definition') setState({ ...state, @@ -639,8 +637,8 @@ export function JSONSchemaForm({ type: v.properties.type.const, block_dict_name: referenceKey, }, - }); - markFieldTouched(k); + }) + markFieldTouched(k) }} value={defaultV} options={referees.map(([subkey]) => ({ @@ -650,7 +648,7 @@ export function JSONSchemaForm({ /> {fieldError &&
{fieldError}
}
- ); + ) } if (k === 'neuron_ids') { @@ -666,16 +664,16 @@ export function JSONSchemaForm({ {!disabled && ( { - if (!isPlainObject(state[k]) || !Array.isArray(state[k].elements)) return; + if (!isPlainObject(state[k]) || !Array.isArray(state[k].elements)) return if (state[k].elements.length === 1) { - setState({ ...state, [k]: null }); - markFieldTouched(k); - return; + setState({ ...state, [k]: null }) + markFieldTouched(k) + return } - const newElements = [...state[k].elements]; - newElements.splice(newElements.indexOf(e), 1); + const newElements = [...state[k].elements] + newElements.splice(newElements.indexOf(e), 1) setState({ ...state, [k]: { @@ -683,8 +681,8 @@ export function JSONSchemaForm({ name: 'example_id_neuron_set', elements: newElements, }, - }); - markFieldTouched(k); + }) + markFieldTouched(k) }} /> )} @@ -704,7 +702,7 @@ export function JSONSchemaForm({ step={1} min={0} onChange={(newV) => { - setNewElement({ ...newElement, [k]: newV }); + setNewElement({ ...newElement, [k]: newV }) }} /> {!isNil(newElement[k]) && ( @@ -719,7 +717,7 @@ export function JSONSchemaForm({ name: 'example_id_neuron_set', elements: [newElement[k]], }, - }); + }) } else if (isPlainObject(state[k]) && Array.isArray(state[k].elements)) { setState({ ...state, @@ -728,18 +726,18 @@ export function JSONSchemaForm({ name: 'example_id_neuron_set', elements: [...state[k].elements, newElement[k]], }, - }); + }) } - setAddingElement({ ...addingElement, [k]: false }); - setNewElement({ ...newElement, [k]: null }); - markFieldTouched(k); + setAddingElement({ ...addingElement, [k]: false }) + setNewElement({ ...newElement, [k]: null }) + markFieldTouched(k) }} /> )} { - setAddingElement({ ...addingElement, [k]: false }); - setNewElement({ ...newElement, [k]: null }); + setAddingElement({ ...addingElement, [k]: false }) + setNewElement({ ...newElement, [k]: null }) }} className="text-primary-8" /> @@ -748,7 +746,7 @@ export function JSONSchemaForm({
{fieldError &&
{fieldError}
}
- ); + ) } if (obj.enum) { @@ -759,8 +757,8 @@ export function JSONSchemaForm({ className={`w-full ${hasError ? 'border-red-500' : ''}`} onBlur={() => markFieldTouched(k)} onChange={(newV) => { - setState({ ...state, [k]: newV }); - markFieldTouched(k); + setState({ ...state, [k]: newV }) + markFieldTouched(k) }} value={state[k]} options={obj.enum.map((subv: string) => ({ @@ -771,7 +769,7 @@ export function JSONSchemaForm({ /> {fieldError &&
{fieldError}
}
- ); + ) } if (obj.type === 'number' || obj.type === 'integer') { @@ -783,14 +781,14 @@ export function JSONSchemaForm({ disabled={disabled} value={typeof state[k] === 'number' ? state[k] : null} onChange={(value) => { - setState({ ...state, [k]: value }); + setState({ ...state, [k]: value }) }} onBlur={() => markFieldTouched(k)} className={`w-full ${hasError ? 'border-red-500' : ''}`} /> {fieldError &&
{fieldError}
}
- ); + ) } if (obj.type === 'string') { @@ -802,12 +800,12 @@ export function JSONSchemaForm({ onBlur={() => markFieldTouched(k)} value={typeof state[k] === 'string' ? state[k] : ''} onChange={(e) => { - setState({ ...state, [k]: e.currentTarget.value }); + setState({ ...state, [k]: e.currentTarget.value }) }} /> {fieldError &&
{fieldError}
}
- ); + ) } return ( @@ -818,22 +816,22 @@ export function JSONSchemaForm({ onBlur={() => markFieldTouched(k)} value={typeof state[k] === 'string' ? state[k] : ''} onChange={(e) => { - setState({ ...state, [k]: e.currentTarget.value }); + setState({ ...state, [k]: e.currentTarget.value }) }} placeholder={`Enter value for ${v.title || k}`} /> {fieldError &&
{fieldError}
}
- ); + ) } function getFieldTitle(k: string, v: JSONSchema, normalizedKey: string): string { if (normalizedKey === 'strainid' || normalizedKey === 'strain_id' || normalizedKey === 'strain') - return 'STRAIN'; - if (normalizedKey === 'ageperiod' || normalizedKey === 'age_period') return 'AGE PERIOD'; - if (normalizedKey === 'licenseid' || normalizedKey === 'license_id') return 'LICENSE'; - if (normalizedKey === 'mtypeclassid') return 'MTYPE CLASS'; - return v.title || k; + return 'STRAIN' + if (normalizedKey === 'ageperiod' || normalizedKey === 'age_period') return 'AGE PERIOD' + if (normalizedKey === 'licenseid' || normalizedKey === 'license_id') return 'LICENSE' + if (normalizedKey === 'mtypeclassid') return 'MTYPE CLASS' + return v.title || k } return ( @@ -859,12 +857,12 @@ export function JSONSchemaForm({ {schema.properties && Object.entries(schema.properties) .filter(([k]) => { - return !skip.includes(k); + return !skip.includes(k) }) .map(([k, v]) => { - const isRequired = schema.required?.includes(k); - const normalizedKey = k.toLowerCase().replace(/[\s_]/g, ''); - const fieldTitle = getFieldTitle(k, v, normalizedKey); + const isRequired = schema.required?.includes(k) + const normalizedKey = k.toLowerCase().replace(/[\s_]/g, '') + const fieldTitle = getFieldTitle(k, v, normalizedKey) return (
@@ -872,7 +870,7 @@ export function JSONSchemaForm({
@@ -883,11 +881,11 @@ export function JSONSchemaForm({
{renderInput(k, v)}
- ); + ) })}
- ); + ) } export function Tab({ @@ -899,13 +897,13 @@ export function Tab({ extraClass, disabled, }: { - tab: string; - selectedTab: string; - onClick?: () => void; - rounded?: 'rounded-l-full' | 'rounded-r-full' | 'rounded-full'; - children?: React.ReactNode; - extraClass?: string; - disabled?: boolean; + tab: string + selectedTab: string + onClick?: () => void + rounded?: 'rounded-l-full' | 'rounded-r-full' | 'rounded-full' + children?: React.ReactNode + extraClass?: string + disabled?: boolean }) { return ( - ); + ) } export function Chevron({ rotate }: { rotate?: number }) { @@ -945,5 +943,5 @@ export function Chevron({ rotate }: { rotate?: number }) { strokeLinejoin="round" /> - ); + ) } diff --git a/src/page-wrappers/build/me-model/configure.tsx b/src/page-wrappers/build/me-model/configure.tsx index 12a9631f1..7ffb859cd 100644 --- a/src/page-wrappers/build/me-model/configure.tsx +++ b/src/page-wrappers/build/me-model/configure.tsx @@ -1,56 +1,56 @@ -'use client'; +'use client' -import { App, Button } from 'antd'; -import { useAtomValue, useSetAtom } from 'jotai'; -import get from 'lodash/get'; -import omit from 'lodash/omit'; -import { useRouter } from 'next/navigation'; -import { useTransition } from 'react'; -import z from 'zod'; +import { App, Button } from 'antd' +import { useAtomValue, useSetAtom } from 'jotai' +import get from 'lodash/get' +import omit from 'lodash/omit' +import { useRouter } from 'next/navigation' +import { useTransition } from 'react' +import z from 'zod' -import EModelOverviewCard from '@/features/entities/me-model/detail-view/card-viewers/emodel-overview-card'; -import MorphologyOverviewCard from '@/features/entities/me-model/detail-view/card-viewers/morphology-overview-card'; +import EModelOverviewCard from '@/features/entities/me-model/detail-view/card-viewers/emodel-overview-card' +import MorphologyOverviewCard from '@/features/entities/me-model/detail-view/card-viewers/morphology-overview-card' // import CustomButton from '@/components/buttons/custom-btn'; -import { createMEModel } from '@/api/entitycore/queries'; -import { CreateMEModelSchema, ValidationStatus } from '@/api/entitycore/types/entities/me-model'; -import { tryCatch } from '@/api/utils'; -import { DataType } from '@/constants/explore-section/list-views'; -import { renderArray, renderEmptyOrValue } from '@/entity-configuration/definitions/renderer'; -import { MEmodel } from '@/entity-configuration/domain/model/me-model'; -import { activityAtomFamily } from '@/features/activity-view/context'; -import { useBuildMeModelSessionState } from '@/features/entities/me-model/build/create.state-session'; -import { messages } from '@/i18n/en/me-model'; -import { OneshotSession } from '@/services/accounting'; -import { useEntitiesCountAtom } from '@/services/entitycore/entities-count'; -import { runSingleNeuronAnalysis } from '@/services/small-scale-simulator'; -import { useRefreshDataAtom } from '@/state/explore-section/list-view-atoms'; -import { virtualLabProjectUsersAtomFamily } from '@/state/virtual-lab/projects'; -import { ServiceSubtype } from '@/types/accounting'; -import { WorkspaceContextSchema } from '@/types/common'; -import { classNames } from '@/util/utils'; -import { resolveDataKey } from '@/utils/key-builder'; -import { resolveExploreDetailsPageUrl } from '@/utils/url-builder'; +import { createMEModel } from '@/api/entitycore/queries' +import { CreateMEModelSchema, ValidationStatus } from '@/api/entitycore/types/entities/me-model' +import { tryCatch } from '@/api/utils' +import { DataType } from '@/constants/explore-section/list-views' +import { renderArray, renderEmptyOrValue } from '@/entity-configuration/definitions/renderer' +import { MEmodel } from '@/entity-configuration/domain/model/me-model' +import { activityAtomFamily } from '@/features/activity-view/context' +import { useBuildMeModelSessionState } from '@/features/entities/me-model/build/create.state-session' +import { messages } from '@/i18n/en/me-model' +import { OneshotSession } from '@/services/accounting' +import { useEntitiesCountAtom } from '@/services/entitycore/entities-count' +import { runSingleNeuronAnalysis } from '@/services/small-scale-simulator' +import { useRefreshDataAtom } from '@/state/explore-section/list-view-atoms' +import { virtualLabProjectUsersAtomFamily } from '@/state/virtual-lab/projects' +import { ServiceSubtype } from '@/types/accounting' +import { WorkspaceContextSchema } from '@/types/common' +import { classNames } from '@/util/utils' +import { resolveDataKey } from '@/utils/key-builder' +import { resolveExploreDetailsPageUrl } from '@/utils/url-builder' -import type { IMEModel } from '@/api/entitycore/types/entities/me-model'; -import type { WorkspaceContext } from '@/types/common'; +import type { IMEModel } from '@/api/entitycore/types/entities/me-model' +import type { WorkspaceContext } from '@/types/common' -const LOW_FUNDS_ERROR_CODE = 'INSUFFICIENT_FUNDS'; +const LOW_FUNDS_ERROR_CODE = 'INSUFFICIENT_FUNDS' -const CreateMeModelContextSchema = CreateMEModelSchema.merge(WorkspaceContextSchema); -type TCreateMeModelContext = z.infer; +const CreateMeModelContextSchema = CreateMEModelSchema.merge(WorkspaceContextSchema) +type TCreateMeModelContext = z.infer function Header({ stateId, virtualLabId, projectId }: WorkspaceContext & { stateId: string }) { const { sessionValue } = useBuildMeModelSessionState({ stateId, virtualLabId, projectId, - }); + }) const contributors = useAtomValue(virtualLabProjectUsersAtomFamily({ projectId, virtualLabId })) - ?.data?.users; - const { mmodel } = sessionValue; - const { emodel } = sessionValue; + ?.data?.users + const { mmodel } = sessionValue + const { emodel } = sessionValue const fields = [ { className: 'col-span-6', @@ -88,7 +88,7 @@ function Header({ stateId, virtualLabId, projectId }: WorkspaceContext & { state title: 'e-type', value: renderEmptyOrValue(renderArray(emodel?.etypes?.map((m) => m.pref_label) || [])), }, - ]; + ] return (
@@ -99,17 +99,17 @@ function Header({ stateId, virtualLabId, projectId }: WorkspaceContext & { state
))}
- ); + ) } type Props = { - ctx: WorkspaceContext; + ctx: WorkspaceContext searchParams: { - s: string; - m: string; - e: string; - }; -}; + s: string + m: string + e: string + } +} function CustomButton({ loading, @@ -118,11 +118,11 @@ function CustomButton({ onClick, children, }: { - loading: boolean; - disable: boolean; - className?: string; - onClick?: () => void; - children?: React.ReactNode; + loading: boolean + disable: boolean + className?: string + onClick?: () => void + children?: React.ReactNode }) { return ( - ); + ) } export default function Configure({ ctx, searchParams }: Props) { - const { push: navigate } = useRouter(); - const { notification } = App.useApp(); - const [isPending, startTransition] = useTransition(); - const emodelId = get(searchParams, 'e', undefined); - const morphologyId = get(searchParams, 'm', undefined); - const stateId = get(searchParams, 's', undefined); + const { push: navigate } = useRouter() + const { notification } = App.useApp() + const [isPending, startTransition] = useTransition() + const emodelId = get(searchParams, 'e', undefined) + const morphologyId = get(searchParams, 'm', undefined) + const stateId = get(searchParams, 's', undefined) const exploreDataKey = resolveDataKey({ projectId: ctx.projectId, section: 'explore', entity: MEmodel, - }); + }) - const refreshEntityCountsToParent = useEntitiesCountAtom(); - const refreshDataAtom = useRefreshDataAtom(exploreDataKey); + const refreshEntityCountsToParent = useEntitiesCountAtom() + const refreshDataAtom = useRefreshDataAtom(exploreDataKey) const refreshActivityAtom = useSetAtom( activityAtomFamily({ key: resolveDataKey({ @@ -171,33 +171,33 @@ export default function Configure({ ctx, searchParams }: Props) { projectId: ctx.projectId, virtualLabId: ctx.virtualLabId, type: 'memodel', - }) - ); + }), + ) const { sessionValue } = useBuildMeModelSessionState({ stateId: stateId || '', virtualLabId: ctx.virtualLabId, projectId: ctx.projectId, - }); + }) if (!stateId) { - navigate('./'); - return; + navigate('./') + return } const showErrorNotification = (error: any, type: 'validation' | 'http') => { - let message = messages.DefaultErrorMsg; + let message = messages.DefaultErrorMsg if (type === 'http') message = error?.cause?.error_code === LOW_FUNDS_ERROR_CODE ? messages.LowFundsError - : messages.DefaultErrorMsg; - else message = messages.ValidationError; + : messages.DefaultErrorMsg + else message = messages.ValidationError notification.error({ duration: 10, message, - }); - }; + }) + } const buildMeModel = async () => { const body: Partial = { @@ -211,26 +211,26 @@ export default function Configure({ ctx, searchParams }: Props) { brain_region_id: sessionValue.mmodel?.brain_region.id ?? sessionValue.brainRegion?.id, strain_id: sessionValue.mmodel?.strain?.id ?? null, validation_status: ValidationStatus.Initialized, - }; + } const { error: validationError, data: validationData } = - await CreateMeModelContextSchema.safeParseAsync(body); + await CreateMeModelContextSchema.safeParseAsync(body) if (validationError) { - showErrorNotification(validationError, 'validation'); - return { data: null, error: validationError, errorType: 'validation' as const }; + showErrorNotification(validationError, 'validation') + return { data: null, error: validationError, errorType: 'validation' as const } } const accountingSession = new OneshotSession({ subtype: ServiceSubtype.SingleCellBuild, virtualLabId: ctx.virtualLabId, projectId: ctx.projectId, count: 1, - }); + }) const { data, error } = await tryCatch( accountingSession.useWith(() => createMEModel({ body: omit(validationData, ['virtualLabId', 'projectId']), context: ctx, - }) + }), ), undefined, { @@ -240,39 +240,39 @@ export default function Configure({ ctx, searchParams }: Props) { virtualLabId: ctx.virtualLabId, projectId: ctx.projectId, }, - } - ); + }, + ) - return { data, error, errorType: 'http' as const }; - }; + return { data, error, errorType: 'http' as const } + } const onClick = async () => { startTransition(async () => { - const { data, error, errorType } = await buildMeModel(); + const { data, error, errorType } = await buildMeModel() if (error || !data) { - showErrorNotification(error, errorType); - return; + showErrorNotification(error, errorType) + return } try { - await runSingleNeuronAnalysis({ ctx, modelId: data.id }); + await runSingleNeuronAnalysis({ ctx, modelId: data.id }) } catch (runAnalysisError) { - const message = messages.RunAnalysisError; - notification.error({ message, duration: 20 }); + const message = messages.RunAnalysisError + notification.error({ message, duration: 20 }) } - refreshDataAtom(); - refreshActivityAtom(); - refreshEntityCountsToParent(data.brain_region.id); + refreshDataAtom() + refreshActivityAtom() + refreshEntityCountsToParent(data.brain_region.id) navigate( resolveExploreDetailsPageUrl({ ctx, dataType: DataType.CircuitMEModel, entityId: data.id, - }) - ); - }); - }; + }), + ) + }) + } const validateTrigger = sessionValue.emodel && sessionValue.mmodel && (
@@ -280,7 +280,7 @@ export default function Configure({ ctx, searchParams }: Props) { {isPending ? 'Creating ME-model' : 'Save'}
- ); + ) return ( <> @@ -307,5 +307,5 @@ export default function Configure({ ctx, searchParams }: Props) {
{validateTrigger} - ); + ) } From 9437077cc677ba439274714d16d1004fa16ae8bf Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Tue, 12 Aug 2025 17:17:31 +0200 Subject: [PATCH 12/44] more linting --- .../contribute/_components/components.tsx | 458 +++++++++--------- .../build/me-model/configure.tsx | 194 ++++---- 2 files changed, 327 insertions(+), 325 deletions(-) diff --git a/src/features/contribute/_components/components.tsx b/src/features/contribute/_components/components.tsx index 2413d293b..cbf36e002 100644 --- a/src/features/contribute/_components/components.tsx +++ b/src/features/contribute/_components/components.tsx @@ -1,25 +1,25 @@ -import { useEffect, useState, useRef } from 'react' -import { atom, useAtom } from 'jotai' -import { InputNumber, Input, Select, Button } from 'antd' -import { CheckCircleOutlined, CloseCircleOutlined, PlusCircleOutlined } from '@ant-design/icons' -import isNil from 'lodash/isNil' +import { useEffect, useState, useRef } from 'react'; +import { atom, useAtom } from 'jotai'; +import { InputNumber, Input, Select, Button } from 'antd'; +import { CheckCircleOutlined, CloseCircleOutlined, PlusCircleOutlined } from '@ant-design/icons'; +import isNil from 'lodash/isNil'; -import { JSONSchema } from '../types' -import { isPlainObject } from './utils' -import CircuitDetails from './circuit-details' -import Tooltip from './tooltip' +import { JSONSchema } from '../types'; +import { isPlainObject } from './utils'; +import CircuitDetails from './circuit-details'; +import Tooltip from './tooltip'; -import { ICircuit } from '@/api/entitycore/types/entities/circuit' -import { classNames } from '@/util/utils' +import { ICircuit } from '@/api/entitycore/types/entities/circuit'; +import { classNames } from '@/util/utils'; -type Primitive = null | boolean | number | string +type Primitive = null | boolean | number | string; interface Object { - [key: string]: Primitive | Primitive[] | Object + [key: string]: Primitive | Primitive[] | Object; } -export type ConfigValue = Primitive | Primitive[] | Object +export type ConfigValue = Primitive | Primitive[] | Object; -export type Config = Record +export type Config = Record; // Updated structure for MTYPE classification const MTYPE_CLASSES = [ @@ -57,35 +57,35 @@ const MTYPE_CLASSES = [ { mtype_pref_label: 'L4_UPC', mtype_id: '2ef7e0b5-39e4-441b-a72a-c7186afa7f5c' }, { mtype_pref_label: 'L56_PC', mtype_id: '629d6d6f-93f9-43d8-8a99-277740fd8f22' }, { mtype_pref_label: 'L5_BP', mtype_id: '7b16c860-ae76-4ddf-b093-4e28620b3712' }, -] +]; // Helper function to check if a field value is considered "empty" or invalid const isEmptyValue = (value: ConfigValue): boolean => { - if (isNil(value) || value === '') return true - if (Array.isArray(value) && value.length === 0) return true - if (typeof value === 'object' && value !== null && Object.keys(value).length === 0) return true - return false -} + if (isNil(value) || value === '') return true; + if (Array.isArray(value) && value.length === 0) return true; + if (typeof value === 'object' && value !== null && Object.keys(value).length === 0) return true; + return false; +}; // Helper function to validate required fields const getRequiredFieldErrors = ( state: Record, - schema: JSONSchema, + schema: JSONSchema ): string[] => { - const errors: string[] = [] - const requiredFields = schema.required || [] + const errors: string[] = []; + const requiredFields = schema.required || []; requiredFields.forEach((fieldName) => { - const value = state[fieldName] + const value = state[fieldName]; if (isEmptyValue(value)) { - const fieldSchema = schema.properties?.[fieldName] - const fieldTitle = fieldSchema?.title || fieldName - errors.push(`${fieldTitle} is required`) + const fieldSchema = schema.properties?.[fieldName]; + const fieldTitle = fieldSchema?.title || fieldName; + errors.push(`${fieldTitle} is required`); } - }) + }); - return errors -} + return errors; +}; export function JSONSchemaForm({ disabled, @@ -98,170 +98,172 @@ export function JSONSchemaForm({ currentCategory, onValidationChange, }: { - disabled: boolean - config: Config - schema: JSONSchema - circuit: ICircuit | undefined | null - stateAtom: ReturnType> - onAddReferenceClick: (reference: string) => void - nodeId?: string - currentCategory?: string - onValidationChange?: (isValid: boolean, errors: string[]) => void + disabled: boolean; + config: Config; + schema: JSONSchema; + circuit: ICircuit | undefined | null; + stateAtom: ReturnType>; + onAddReferenceClick: (reference: string) => void; + nodeId?: string; + currentCategory?: string; + onValidationChange?: (isValid: boolean, errors: string[]) => void; }) { - const skip = ['type'] + const skip = ['type']; - const [state, setState] = useAtom(stateAtom) + const [state, setState] = useAtom(stateAtom); const [addingElement, setAddingElement] = useState<{ [key: string]: boolean }>({ legacy_id: true, - }) - const [newElement, setNewElement] = useState<{ [key: string]: number | string | null }>({}) - const [validationErrors, setValidationErrors] = useState([]) - const [touchedFields, setTouchedFields] = useState>(new Set()) + }); + const [newElement, setNewElement] = useState<{ [key: string]: number | string | null }>({}); + const [validationErrors, setValidationErrors] = useState([]); + const [touchedFields, setTouchedFields] = useState>(new Set()); const referenceTypesToConfigKeys: Record = { NeuronSetReference: 'neuron_sets', TimestampsReference: 'timestamps', - } + }; const referenceTypesToTitles: Record = { NeuronSetReference: 'Neuron Set', TimestampsReference: 'Timestamps', - } + }; // Callback ref to avoid dependency issues - const onValidationChangeRef = useRef(onValidationChange) + const onValidationChangeRef = useRef(onValidationChange); useEffect(() => { - onValidationChangeRef.current = onValidationChange - }) + onValidationChangeRef.current = onValidationChange; + }); // Validate form whenever state changes useEffect(() => { - const errors = getRequiredFieldErrors(state, schema) + const errors = getRequiredFieldErrors(state, schema); // Only update if errors actually changed setValidationErrors((prevErrors) => { const errorsChanged = prevErrors.length !== errors.length || - prevErrors.some((error, index) => error !== errors[index]) + prevErrors.some((error, index) => error !== errors[index]); if (errorsChanged && onValidationChangeRef.current) { - onValidationChangeRef.current(errors.length === 0, errors) + onValidationChangeRef.current(errors.length === 0, errors); } - return errorsChanged ? errors : prevErrors - }) - }, [state, schema]) + return errorsChanged ? errors : prevErrors; + }); + }, [state, schema]); useEffect(() => { - if (!schema.properties) return + if (!schema.properties) return; - const initial: Record = {} + const initial: Record = {}; Object.entries(schema.properties).forEach(([key, value]) => { - if (key === 'type') initial[key] = value.const ?? null - else if (key === 'legacy_id') initial[key] = [] - else if (key === 'strain_id') initial[key] = null + if (key === 'type') initial[key] = value.const ?? null; + else if (key === 'legacy_id') initial[key] = []; + else if (key === 'strain_id') initial[key] = null; else if (key === 'license_id') - initial[key] = 'c268a20e-b78a-4332-a5e1-38e26c4454b9' // Default to undefined UUID - else initial[key] = value.default ?? null - }) + initial[key] = 'c268a20e-b78a-4332-a5e1-38e26c4454b9'; // Default to undefined UUID + else initial[key] = value.default ?? null; + }); // Auto-populate brain region id if we're in morphology category if (currentCategory === 'morphology' && nodeId) { const brainRegionIdKey = Object.keys(schema.properties || {}).find((key) => { - const normalizedKey = key.toLowerCase().replace(/[\s_]/g, '') + const normalizedKey = key.toLowerCase().replace(/[\s_]/g, ''); return ( normalizedKey === 'brainregionid' || normalizedKey === 'brain_region_id' || normalizedKey === 'brainregion' - ) - }) + ); + }); if (brainRegionIdKey) { - initial[brainRegionIdKey] = nodeId + initial[brainRegionIdKey] = nodeId; } } // Auto-populate species id (hardcoded mouse species ID) const speciesIdKey = Object.keys(schema.properties || {}).find((key) => { - const normalizedKey = key.toLowerCase().replace(/[\s_]/g, '') + const normalizedKey = key.toLowerCase().replace(/[\s_]/g, ''); return ( normalizedKey === 'speciesid' || normalizedKey === 'species_id' || normalizedKey === 'species' - ) - }) + ); + }); if (speciesIdKey) { - initial[speciesIdKey] = 'b7ad4cca-4ac2-4095-9781-37fb68fe9ca1' + initial[speciesIdKey] = 'b7ad4cca-4ac2-4095-9781-37fb68fe9ca1'; } // Auto-populate atlas id const atlasIdKey = Object.keys(schema.properties || {}).find((key) => { - const normalizedKey = key.toLowerCase().replace(/[\s_]/g, '') + const normalizedKey = key.toLowerCase().replace(/[\s_]/g, ''); return ( normalizedKey === 'atlasid' || normalizedKey === 'atlas_id' || normalizedKey === 'atlas' - ) - }) + ); + }); if (atlasIdKey) { - initial[atlasIdKey] = 'e3e70682-c209-4cac-a29f-6fbed82c07cd' + initial[atlasIdKey] = 'e3e70682-c209-4cac-a29f-6fbed82c07cd'; } - setState((prev) => ({ ...initial, ...prev })) - }, [stateAtom, setState, schema.properties, nodeId, currentCategory]) + setState((prev) => ({ ...initial, ...prev })); + }, [stateAtom, setState, schema.properties, nodeId, currentCategory]); // Helper function to mark field as touched const markFieldTouched = (fieldName: string) => { - setTouchedFields((prev) => new Set(prev).add(fieldName)) - } + setTouchedFields((prev) => new Set(prev).add(fieldName)); + }; // Helper function to check if a field has an error const hasFieldError = (fieldName: string): boolean => { - const isRequired = schema.required?.includes(fieldName) - const isTouched = touchedFields.has(fieldName) - const isEmpty = isEmptyValue(state[fieldName]) - return isRequired && isTouched && isEmpty - } + const isRequired = schema.required?.includes(fieldName); + const isTouched = touchedFields.has(fieldName); + const isEmpty = isEmptyValue(state[fieldName]); + return isRequired && isTouched && isEmpty; + }; // Helper function to get field error message const getFieldErrorMessage = (fieldName: string): string | null => { - if (!hasFieldError(fieldName)) return null - const fieldSchema = schema.properties?.[fieldName] - const fieldTitle = fieldSchema?.title || fieldName - return `${fieldTitle} is required` - } + if (!hasFieldError(fieldName)) return null; + const fieldSchema = schema.properties?.[fieldName]; + const fieldTitle = fieldSchema?.title || fieldName; + return `${fieldTitle} is required`; + }; function renderInput(k: string, v: JSONSchema) { const obj = { ...v, ...v.anyOf?.find((subv) => subv.type !== 'array' && subv.type !== 'null'), - } - const normalizedKey = k.toLowerCase().replace(/[\s_]/g, '') + }; + const normalizedKey = k.toLowerCase().replace(/[\s_]/g, ''); - const fieldError = getFieldErrorMessage(k) - const hasError = hasFieldError(k) + const fieldError = getFieldErrorMessage(k); + const hasError = hasFieldError(k); const isBrainRegionIdField = currentCategory === 'morphology' && (normalizedKey === 'brainregionid' || normalizedKey === 'brain_region_id' || - normalizedKey === 'brainregion') + normalizedKey === 'brainregion'); const isSpeciesIdField = - normalizedKey === 'speciesid' || normalizedKey === 'species_id' || normalizedKey === 'species' + normalizedKey === 'speciesid' || + normalizedKey === 'species_id' || + normalizedKey === 'species'; const isAtlasIdField = - normalizedKey === 'atlasid' || normalizedKey === 'atlas_id' || normalizedKey === 'atlas' + normalizedKey === 'atlasid' || normalizedKey === 'atlas_id' || normalizedKey === 'atlas'; const isExperimentDateField = normalizedKey === 'experimentdate' || normalizedKey === 'experiment_date' || normalizedKey === 'date' || - v.title?.toLowerCase().includes('date') + v.title?.toLowerCase().includes('date'); const isStrainIdField = - normalizedKey === 'strainid' || normalizedKey === 'strain_id' || normalizedKey === 'strain' - const isAgePeriodField = normalizedKey === 'ageperiod' || normalizedKey === 'age_period' - const isLegacyIdField = normalizedKey === 'legacyid' || normalizedKey === 'legacy_id' - const isLicenseIdField = normalizedKey === 'licenseid' || normalizedKey === 'license_id' - const isMtypeClassIdField = normalizedKey === 'mtypeclassid' + normalizedKey === 'strainid' || normalizedKey === 'strain_id' || normalizedKey === 'strain'; + const isAgePeriodField = normalizedKey === 'ageperiod' || normalizedKey === 'age_period'; + const isLegacyIdField = normalizedKey === 'legacyid' || normalizedKey === 'legacy_id'; + const isLicenseIdField = normalizedKey === 'licenseid' || normalizedKey === 'license_id'; + const isMtypeClassIdField = normalizedKey === 'mtypeclassid'; if (isBrainRegionIdField && nodeId) { return ( @@ -274,7 +276,7 @@ export function JSONSchemaForm({ readOnly />
- ) + ); } if (isSpeciesIdField) { @@ -288,7 +290,7 @@ export function JSONSchemaForm({ readOnly />
- ) + ); } if (isAtlasIdField) { @@ -302,27 +304,27 @@ export function JSONSchemaForm({ readOnly />
- ) + ); } if (isExperimentDateField) { const formatDate = (value: string) => { - const cleaned = value.replace(/[^\d\s-]/g, '') - const parts = cleaned.split(/[\s-]+/).filter((part) => part.length > 0) - if (parts.length === 0) return '' - if (parts.length === 1) return parts[0] - if (parts.length === 2) return `${parts[0]} ${parts[1]}` - return parts.slice(0, 3).join(' ') - } + const cleaned = value.replace(/[^\d\s-]/g, ''); + const parts = cleaned.split(/[\s-]+/).filter((part) => part.length > 0); + if (parts.length === 0) return ''; + if (parts.length === 1) return parts[0]; + if (parts.length === 2) return `${parts[0]} ${parts[1]}`; + return parts.slice(0, 3).join(' '); + }; const validateDateFormat = (value: string) => { - if (!value) return true - const parts = value.split(' ') - if (parts.length !== 3) return false - const [day, month, year] = parts - const dayNum = parseInt(day, 10) - const monthNum = parseInt(month, 10) - const yearNum = parseInt(year, 10) + if (!value) return true; + const parts = value.split(' '); + if (parts.length !== 3) return false; + const [day, month, year] = parts; + const dayNum = parseInt(day, 10); + const monthNum = parseInt(month, 10); + const yearNum = parseInt(year, 10); return ( dayNum >= 1 && dayNum <= 31 && @@ -330,12 +332,12 @@ export function JSONSchemaForm({ monthNum <= 12 && yearNum >= 1900 && yearNum <= new Date().getFullYear() - ) - } + ); + }; - const currentValue = typeof state[k] === 'string' ? state[k] : '' - const isValid = validateDateFormat(currentValue) - const showDateError = !isValid && currentValue + const currentValue = typeof state[k] === 'string' ? state[k] : ''; + const isValid = validateDateFormat(currentValue); + const showDateError = !isValid && currentValue; return (
@@ -345,8 +347,8 @@ export function JSONSchemaForm({ value={currentValue} className={`w-full ${hasError || showDateError ? 'border-red-500' : ''}`} onChange={(e) => { - const formatted = formatDate(e.currentTarget.value) - setState({ ...state, [k]: formatted }) + const formatted = formatDate(e.currentTarget.value); + setState({ ...state, [k]: formatted }); }} placeholder="DD MM YYYY (e.g., 15 03 2024)" /> @@ -357,7 +359,7 @@ export function JSONSchemaForm({ )} {fieldError &&
{fieldError}
}
- ) + ); } if (isStrainIdField) { @@ -377,10 +379,10 @@ export function JSONSchemaForm({ 'Sprague Dawley': '890e1234-e29b-41d4-a716-446655440003', }, }, - ] + ]; - const speciesId = 'b7ad4cca-4ac2-4095-9781-37fb68fe9ca1' - const selectedSpecies = allSpeciesStrains.find((s) => s.species_id === speciesId) + const speciesId = 'b7ad4cca-4ac2-4095-9781-37fb68fe9ca1'; + const selectedSpecies = allSpeciesStrains.find((s) => s.species_id === speciesId); if (!selectedSpecies) { return ( @@ -388,13 +390,13 @@ export function JSONSchemaForm({ {fieldError &&
{fieldError}
} - ) + ); } const strainOptions = Object.entries(selectedSpecies.strains).map(([name, id]) => ({ label: name, value: id, - })) + })); return (
@@ -403,8 +405,8 @@ export function JSONSchemaForm({ className={`w-full ${hasError ? 'border-red-500' : ''}`} onBlur={() => markFieldTouched(k)} onChange={(newV) => { - setState((prev) => ({ ...prev, [k]: newV })) - markFieldTouched(k) + setState((prev) => ({ ...prev, [k]: newV })); + markFieldTouched(k); }} value={state[k]} options={strainOptions} @@ -412,7 +414,7 @@ export function JSONSchemaForm({ /> {fieldError &&
{fieldError}
}
- ) + ); } if (isAgePeriodField) { @@ -424,8 +426,8 @@ export function JSONSchemaForm({ className={`w-full ${hasError ? 'border-red-500' : ''}`} onBlur={() => markFieldTouched(k)} onChange={(newV) => { - setState({ ...state, [k]: newV }) - markFieldTouched(k) + setState({ ...state, [k]: newV }); + markFieldTouched(k); }} value={state[k]} options={obj.enum.map((subv: string) => ({ @@ -436,7 +438,7 @@ export function JSONSchemaForm({ /> {fieldError &&
{fieldError}
} - ) + ); } return (
@@ -446,13 +448,13 @@ export function JSONSchemaForm({ onBlur={() => markFieldTouched(k)} value={typeof state[k] === 'string' ? state[k] : ''} onChange={(e) => { - setState({ ...state, [k]: e.currentTarget.value }) + setState({ ...state, [k]: e.currentTarget.value }); }} placeholder="Enter age period" /> {fieldError &&
{fieldError}
}
- ) + ); } if (isLegacyIdField) { @@ -467,10 +469,10 @@ export function JSONSchemaForm({ {!disabled && ( { - const newElements = [...(Array.isArray(state[k]) ? state[k] : [])] - newElements.splice(newElements.indexOf(e), 1) - setState({ ...state, [k]: newElements }) - markFieldTouched(k) + const newElements = [...(Array.isArray(state[k]) ? state[k] : [])]; + newElements.splice(newElements.indexOf(e), 1); + setState({ ...state, [k]: newElements }); + markFieldTouched(k); }} /> )} @@ -497,17 +499,17 @@ export function JSONSchemaForm({ setState({ ...state, [k]: [...(Array.isArray(state[k]) ? state[k] : []), newElement[k]], - }) - setAddingElement({ ...addingElement, [k]: false }) - setNewElement({ ...newElement, [k]: null }) - markFieldTouched(k) + }); + setAddingElement({ ...addingElement, [k]: false }); + setNewElement({ ...newElement, [k]: null }); + markFieldTouched(k); }} /> )} { - setAddingElement({ ...addingElement, [k]: false }) - setNewElement({ ...newElement, [k]: null }) + setAddingElement({ ...addingElement, [k]: false }); + setNewElement({ ...newElement, [k]: null }); }} className="text-primary-8" /> @@ -516,7 +518,7 @@ export function JSONSchemaForm({ {fieldError &&
{fieldError}
} - ) + ); } // New condition for 'license id' field @@ -530,17 +532,17 @@ export function JSONSchemaForm({ 'CC BY 4.0 Deed': 'ad8686db-3cdd-4e3f-bcbd-812380a9eba7', 'CC0 1.0 Deed': '74b8c953-67f5-4e95-ac58-095274901328', 'NGV_Data Licence_v1.0': '0c39107e-3b68-4f1f-904a-5c7f1b4f89c5', - } + }; const options = Object.entries(licenseOptions).map(([name, id]) => ({ label: name, value: id, - })) + })); // Find the key corresponding to the current state value to set the label const currentLicenseLabel = Object.keys(licenseOptions).find( - (key) => licenseOptions[key] === state[k], - ) + (key) => licenseOptions[key] === state[k] + ); return (
@@ -549,8 +551,8 @@ export function JSONSchemaForm({ className={`w-full ${hasError ? 'border-red-500' : ''}`} onBlur={() => markFieldTouched(k)} onChange={(newV) => { - setState({ ...state, [k]: newV }) - markFieldTouched(k) + setState({ ...state, [k]: newV }); + markFieldTouched(k); }} value={currentLicenseLabel || state[k]} // Use the label for display, or the value if not found options={options} @@ -558,7 +560,7 @@ export function JSONSchemaForm({ /> {fieldError &&
{fieldError}
}
- ) + ); } // New condition for 'mtype class id' @@ -566,11 +568,11 @@ export function JSONSchemaForm({ const options = MTYPE_CLASSES.map((mtype) => ({ label: mtype.mtype_pref_label, value: mtype.mtype_id, - })) + })); const currentMtypeLabel = MTYPE_CLASSES.find( - (mtype) => mtype.mtype_id === state[k], - )?.mtype_pref_label + (mtype) => mtype.mtype_id === state[k] + )?.mtype_pref_label; return (
@@ -579,8 +581,8 @@ export function JSONSchemaForm({ className={`w-full ${hasError ? 'border-red-500' : ''}`} onBlur={() => markFieldTouched(k)} onChange={(newV) => { - setState({ ...state, [k]: newV }) - markFieldTouched(k) + setState({ ...state, [k]: newV }); + markFieldTouched(k); }} value={currentMtypeLabel || state[k]} options={options} @@ -588,21 +590,21 @@ export function JSONSchemaForm({ /> {fieldError &&
{fieldError}
}
- ) + ); } - if (k === 'circuit' && circuit) return + if (k === 'circuit' && circuit) return ; if (v.is_block_reference && v.properties && typeof v.properties.type.const === 'string') { - const referenceKey = referenceTypesToConfigKeys[v.properties.type.const] - const referenceTitle = referenceTypesToTitles[v.properties.type.const] - if (!referenceKey) return null - const referenceConfig = config[referenceKey] - if (!isPlainObject(referenceConfig)) return null + const referenceKey = referenceTypesToConfigKeys[v.properties.type.const]; + const referenceTitle = referenceTypesToTitles[v.properties.type.const]; + if (!referenceKey) return null; + const referenceConfig = config[referenceKey]; + if (!isPlainObject(referenceConfig)) return null; const referees = Object.entries(referenceConfig).filter(([, val]) => { - return isPlainObject(val) - }) + return isPlainObject(val); + }); if (referees.length === 0) { return ( @@ -612,13 +614,13 @@ export function JSONSchemaForm({ {fieldError &&
{fieldError}
} - ) + ); } const defaultV = isPlainObject(state[k]) && typeof state[k].block_name === 'string' ? state[k].block_name - : null + : null; return (
@@ -628,7 +630,7 @@ export function JSONSchemaForm({ onBlur={() => markFieldTouched(k)} onChange={(newV: string) => { if (!v.properties?.type.const || typeof v.properties.type.const !== 'string') - throw new Error('Invalid reference definition') + throw new Error('Invalid reference definition'); setState({ ...state, @@ -637,8 +639,8 @@ export function JSONSchemaForm({ type: v.properties.type.const, block_dict_name: referenceKey, }, - }) - markFieldTouched(k) + }); + markFieldTouched(k); }} value={defaultV} options={referees.map(([subkey]) => ({ @@ -648,7 +650,7 @@ export function JSONSchemaForm({ /> {fieldError &&
{fieldError}
}
- ) + ); } if (k === 'neuron_ids') { @@ -664,16 +666,16 @@ export function JSONSchemaForm({ {!disabled && ( { - if (!isPlainObject(state[k]) || !Array.isArray(state[k].elements)) return + if (!isPlainObject(state[k]) || !Array.isArray(state[k].elements)) return; if (state[k].elements.length === 1) { - setState({ ...state, [k]: null }) - markFieldTouched(k) - return + setState({ ...state, [k]: null }); + markFieldTouched(k); + return; } - const newElements = [...state[k].elements] - newElements.splice(newElements.indexOf(e), 1) + const newElements = [...state[k].elements]; + newElements.splice(newElements.indexOf(e), 1); setState({ ...state, [k]: { @@ -681,8 +683,8 @@ export function JSONSchemaForm({ name: 'example_id_neuron_set', elements: newElements, }, - }) - markFieldTouched(k) + }); + markFieldTouched(k); }} /> )} @@ -702,7 +704,7 @@ export function JSONSchemaForm({ step={1} min={0} onChange={(newV) => { - setNewElement({ ...newElement, [k]: newV }) + setNewElement({ ...newElement, [k]: newV }); }} /> {!isNil(newElement[k]) && ( @@ -717,7 +719,7 @@ export function JSONSchemaForm({ name: 'example_id_neuron_set', elements: [newElement[k]], }, - }) + }); } else if (isPlainObject(state[k]) && Array.isArray(state[k].elements)) { setState({ ...state, @@ -726,18 +728,18 @@ export function JSONSchemaForm({ name: 'example_id_neuron_set', elements: [...state[k].elements, newElement[k]], }, - }) + }); } - setAddingElement({ ...addingElement, [k]: false }) - setNewElement({ ...newElement, [k]: null }) - markFieldTouched(k) + setAddingElement({ ...addingElement, [k]: false }); + setNewElement({ ...newElement, [k]: null }); + markFieldTouched(k); }} /> )} { - setAddingElement({ ...addingElement, [k]: false }) - setNewElement({ ...newElement, [k]: null }) + setAddingElement({ ...addingElement, [k]: false }); + setNewElement({ ...newElement, [k]: null }); }} className="text-primary-8" /> @@ -746,7 +748,7 @@ export function JSONSchemaForm({ {fieldError &&
{fieldError}
} - ) + ); } if (obj.enum) { @@ -757,8 +759,8 @@ export function JSONSchemaForm({ className={`w-full ${hasError ? 'border-red-500' : ''}`} onBlur={() => markFieldTouched(k)} onChange={(newV) => { - setState({ ...state, [k]: newV }) - markFieldTouched(k) + setState({ ...state, [k]: newV }); + markFieldTouched(k); }} value={state[k]} options={obj.enum.map((subv: string) => ({ @@ -769,7 +771,7 @@ export function JSONSchemaForm({ /> {fieldError &&
{fieldError}
} - ) + ); } if (obj.type === 'number' || obj.type === 'integer') { @@ -781,14 +783,14 @@ export function JSONSchemaForm({ disabled={disabled} value={typeof state[k] === 'number' ? state[k] : null} onChange={(value) => { - setState({ ...state, [k]: value }) + setState({ ...state, [k]: value }); }} onBlur={() => markFieldTouched(k)} className={`w-full ${hasError ? 'border-red-500' : ''}`} /> {fieldError &&
{fieldError}
} - ) + ); } if (obj.type === 'string') { @@ -800,12 +802,12 @@ export function JSONSchemaForm({ onBlur={() => markFieldTouched(k)} value={typeof state[k] === 'string' ? state[k] : ''} onChange={(e) => { - setState({ ...state, [k]: e.currentTarget.value }) + setState({ ...state, [k]: e.currentTarget.value }); }} /> {fieldError &&
{fieldError}
} - ) + ); } return ( @@ -816,22 +818,22 @@ export function JSONSchemaForm({ onBlur={() => markFieldTouched(k)} value={typeof state[k] === 'string' ? state[k] : ''} onChange={(e) => { - setState({ ...state, [k]: e.currentTarget.value }) + setState({ ...state, [k]: e.currentTarget.value }); }} placeholder={`Enter value for ${v.title || k}`} /> {fieldError &&
{fieldError}
} - ) + ); } function getFieldTitle(k: string, v: JSONSchema, normalizedKey: string): string { if (normalizedKey === 'strainid' || normalizedKey === 'strain_id' || normalizedKey === 'strain') - return 'STRAIN' - if (normalizedKey === 'ageperiod' || normalizedKey === 'age_period') return 'AGE PERIOD' - if (normalizedKey === 'licenseid' || normalizedKey === 'license_id') return 'LICENSE' - if (normalizedKey === 'mtypeclassid') return 'MTYPE CLASS' - return v.title || k + return 'STRAIN'; + if (normalizedKey === 'ageperiod' || normalizedKey === 'age_period') return 'AGE PERIOD'; + if (normalizedKey === 'licenseid' || normalizedKey === 'license_id') return 'LICENSE'; + if (normalizedKey === 'mtypeclassid') return 'MTYPE CLASS'; + return v.title || k; } return ( @@ -857,12 +859,12 @@ export function JSONSchemaForm({ {schema.properties && Object.entries(schema.properties) .filter(([k]) => { - return !skip.includes(k) + return !skip.includes(k); }) .map(([k, v]) => { - const isRequired = schema.required?.includes(k) - const normalizedKey = k.toLowerCase().replace(/[\s_]/g, '') - const fieldTitle = getFieldTitle(k, v, normalizedKey) + const isRequired = schema.required?.includes(k); + const normalizedKey = k.toLowerCase().replace(/[\s_]/g, ''); + const fieldTitle = getFieldTitle(k, v, normalizedKey); return (
@@ -870,7 +872,7 @@ export function JSONSchemaForm({
@@ -881,11 +883,11 @@ export function JSONSchemaForm({
{renderInput(k, v)}
- ) + ); })} - ) + ); } export function Tab({ @@ -897,13 +899,13 @@ export function Tab({ extraClass, disabled, }: { - tab: string - selectedTab: string - onClick?: () => void - rounded?: 'rounded-l-full' | 'rounded-r-full' | 'rounded-full' - children?: React.ReactNode - extraClass?: string - disabled?: boolean + tab: string; + selectedTab: string; + onClick?: () => void; + rounded?: 'rounded-l-full' | 'rounded-r-full' | 'rounded-full'; + children?: React.ReactNode; + extraClass?: string; + disabled?: boolean; }) { return ( - ) + ); } export function Chevron({ rotate }: { rotate?: number }) { @@ -943,5 +945,5 @@ export function Chevron({ rotate }: { rotate?: number }) { strokeLinejoin="round" /> - ) + ); } diff --git a/src/page-wrappers/build/me-model/configure.tsx b/src/page-wrappers/build/me-model/configure.tsx index 7ffb859cd..12a9631f1 100644 --- a/src/page-wrappers/build/me-model/configure.tsx +++ b/src/page-wrappers/build/me-model/configure.tsx @@ -1,56 +1,56 @@ -'use client' +'use client'; -import { App, Button } from 'antd' -import { useAtomValue, useSetAtom } from 'jotai' -import get from 'lodash/get' -import omit from 'lodash/omit' -import { useRouter } from 'next/navigation' -import { useTransition } from 'react' -import z from 'zod' +import { App, Button } from 'antd'; +import { useAtomValue, useSetAtom } from 'jotai'; +import get from 'lodash/get'; +import omit from 'lodash/omit'; +import { useRouter } from 'next/navigation'; +import { useTransition } from 'react'; +import z from 'zod'; -import EModelOverviewCard from '@/features/entities/me-model/detail-view/card-viewers/emodel-overview-card' -import MorphologyOverviewCard from '@/features/entities/me-model/detail-view/card-viewers/morphology-overview-card' +import EModelOverviewCard from '@/features/entities/me-model/detail-view/card-viewers/emodel-overview-card'; +import MorphologyOverviewCard from '@/features/entities/me-model/detail-view/card-viewers/morphology-overview-card'; // import CustomButton from '@/components/buttons/custom-btn'; -import { createMEModel } from '@/api/entitycore/queries' -import { CreateMEModelSchema, ValidationStatus } from '@/api/entitycore/types/entities/me-model' -import { tryCatch } from '@/api/utils' -import { DataType } from '@/constants/explore-section/list-views' -import { renderArray, renderEmptyOrValue } from '@/entity-configuration/definitions/renderer' -import { MEmodel } from '@/entity-configuration/domain/model/me-model' -import { activityAtomFamily } from '@/features/activity-view/context' -import { useBuildMeModelSessionState } from '@/features/entities/me-model/build/create.state-session' -import { messages } from '@/i18n/en/me-model' -import { OneshotSession } from '@/services/accounting' -import { useEntitiesCountAtom } from '@/services/entitycore/entities-count' -import { runSingleNeuronAnalysis } from '@/services/small-scale-simulator' -import { useRefreshDataAtom } from '@/state/explore-section/list-view-atoms' -import { virtualLabProjectUsersAtomFamily } from '@/state/virtual-lab/projects' -import { ServiceSubtype } from '@/types/accounting' -import { WorkspaceContextSchema } from '@/types/common' -import { classNames } from '@/util/utils' -import { resolveDataKey } from '@/utils/key-builder' -import { resolveExploreDetailsPageUrl } from '@/utils/url-builder' +import { createMEModel } from '@/api/entitycore/queries'; +import { CreateMEModelSchema, ValidationStatus } from '@/api/entitycore/types/entities/me-model'; +import { tryCatch } from '@/api/utils'; +import { DataType } from '@/constants/explore-section/list-views'; +import { renderArray, renderEmptyOrValue } from '@/entity-configuration/definitions/renderer'; +import { MEmodel } from '@/entity-configuration/domain/model/me-model'; +import { activityAtomFamily } from '@/features/activity-view/context'; +import { useBuildMeModelSessionState } from '@/features/entities/me-model/build/create.state-session'; +import { messages } from '@/i18n/en/me-model'; +import { OneshotSession } from '@/services/accounting'; +import { useEntitiesCountAtom } from '@/services/entitycore/entities-count'; +import { runSingleNeuronAnalysis } from '@/services/small-scale-simulator'; +import { useRefreshDataAtom } from '@/state/explore-section/list-view-atoms'; +import { virtualLabProjectUsersAtomFamily } from '@/state/virtual-lab/projects'; +import { ServiceSubtype } from '@/types/accounting'; +import { WorkspaceContextSchema } from '@/types/common'; +import { classNames } from '@/util/utils'; +import { resolveDataKey } from '@/utils/key-builder'; +import { resolveExploreDetailsPageUrl } from '@/utils/url-builder'; -import type { IMEModel } from '@/api/entitycore/types/entities/me-model' -import type { WorkspaceContext } from '@/types/common' +import type { IMEModel } from '@/api/entitycore/types/entities/me-model'; +import type { WorkspaceContext } from '@/types/common'; -const LOW_FUNDS_ERROR_CODE = 'INSUFFICIENT_FUNDS' +const LOW_FUNDS_ERROR_CODE = 'INSUFFICIENT_FUNDS'; -const CreateMeModelContextSchema = CreateMEModelSchema.merge(WorkspaceContextSchema) -type TCreateMeModelContext = z.infer +const CreateMeModelContextSchema = CreateMEModelSchema.merge(WorkspaceContextSchema); +type TCreateMeModelContext = z.infer; function Header({ stateId, virtualLabId, projectId }: WorkspaceContext & { stateId: string }) { const { sessionValue } = useBuildMeModelSessionState({ stateId, virtualLabId, projectId, - }) + }); const contributors = useAtomValue(virtualLabProjectUsersAtomFamily({ projectId, virtualLabId })) - ?.data?.users - const { mmodel } = sessionValue - const { emodel } = sessionValue + ?.data?.users; + const { mmodel } = sessionValue; + const { emodel } = sessionValue; const fields = [ { className: 'col-span-6', @@ -88,7 +88,7 @@ function Header({ stateId, virtualLabId, projectId }: WorkspaceContext & { state title: 'e-type', value: renderEmptyOrValue(renderArray(emodel?.etypes?.map((m) => m.pref_label) || [])), }, - ] + ]; return (
@@ -99,17 +99,17 @@ function Header({ stateId, virtualLabId, projectId }: WorkspaceContext & { state
))} - ) + ); } type Props = { - ctx: WorkspaceContext + ctx: WorkspaceContext; searchParams: { - s: string - m: string - e: string - } -} + s: string; + m: string; + e: string; + }; +}; function CustomButton({ loading, @@ -118,11 +118,11 @@ function CustomButton({ onClick, children, }: { - loading: boolean - disable: boolean - className?: string - onClick?: () => void - children?: React.ReactNode + loading: boolean; + disable: boolean; + className?: string; + onClick?: () => void; + children?: React.ReactNode; }) { return ( - ) + ); } export default function Configure({ ctx, searchParams }: Props) { - const { push: navigate } = useRouter() - const { notification } = App.useApp() - const [isPending, startTransition] = useTransition() - const emodelId = get(searchParams, 'e', undefined) - const morphologyId = get(searchParams, 'm', undefined) - const stateId = get(searchParams, 's', undefined) + const { push: navigate } = useRouter(); + const { notification } = App.useApp(); + const [isPending, startTransition] = useTransition(); + const emodelId = get(searchParams, 'e', undefined); + const morphologyId = get(searchParams, 'm', undefined); + const stateId = get(searchParams, 's', undefined); const exploreDataKey = resolveDataKey({ projectId: ctx.projectId, section: 'explore', entity: MEmodel, - }) + }); - const refreshEntityCountsToParent = useEntitiesCountAtom() - const refreshDataAtom = useRefreshDataAtom(exploreDataKey) + const refreshEntityCountsToParent = useEntitiesCountAtom(); + const refreshDataAtom = useRefreshDataAtom(exploreDataKey); const refreshActivityAtom = useSetAtom( activityAtomFamily({ key: resolveDataKey({ @@ -171,33 +171,33 @@ export default function Configure({ ctx, searchParams }: Props) { projectId: ctx.projectId, virtualLabId: ctx.virtualLabId, type: 'memodel', - }), - ) + }) + ); const { sessionValue } = useBuildMeModelSessionState({ stateId: stateId || '', virtualLabId: ctx.virtualLabId, projectId: ctx.projectId, - }) + }); if (!stateId) { - navigate('./') - return + navigate('./'); + return; } const showErrorNotification = (error: any, type: 'validation' | 'http') => { - let message = messages.DefaultErrorMsg + let message = messages.DefaultErrorMsg; if (type === 'http') message = error?.cause?.error_code === LOW_FUNDS_ERROR_CODE ? messages.LowFundsError - : messages.DefaultErrorMsg - else message = messages.ValidationError + : messages.DefaultErrorMsg; + else message = messages.ValidationError; notification.error({ duration: 10, message, - }) - } + }); + }; const buildMeModel = async () => { const body: Partial = { @@ -211,26 +211,26 @@ export default function Configure({ ctx, searchParams }: Props) { brain_region_id: sessionValue.mmodel?.brain_region.id ?? sessionValue.brainRegion?.id, strain_id: sessionValue.mmodel?.strain?.id ?? null, validation_status: ValidationStatus.Initialized, - } + }; const { error: validationError, data: validationData } = - await CreateMeModelContextSchema.safeParseAsync(body) + await CreateMeModelContextSchema.safeParseAsync(body); if (validationError) { - showErrorNotification(validationError, 'validation') - return { data: null, error: validationError, errorType: 'validation' as const } + showErrorNotification(validationError, 'validation'); + return { data: null, error: validationError, errorType: 'validation' as const }; } const accountingSession = new OneshotSession({ subtype: ServiceSubtype.SingleCellBuild, virtualLabId: ctx.virtualLabId, projectId: ctx.projectId, count: 1, - }) + }); const { data, error } = await tryCatch( accountingSession.useWith(() => createMEModel({ body: omit(validationData, ['virtualLabId', 'projectId']), context: ctx, - }), + }) ), undefined, { @@ -240,39 +240,39 @@ export default function Configure({ ctx, searchParams }: Props) { virtualLabId: ctx.virtualLabId, projectId: ctx.projectId, }, - }, - ) + } + ); - return { data, error, errorType: 'http' as const } - } + return { data, error, errorType: 'http' as const }; + }; const onClick = async () => { startTransition(async () => { - const { data, error, errorType } = await buildMeModel() + const { data, error, errorType } = await buildMeModel(); if (error || !data) { - showErrorNotification(error, errorType) - return + showErrorNotification(error, errorType); + return; } try { - await runSingleNeuronAnalysis({ ctx, modelId: data.id }) + await runSingleNeuronAnalysis({ ctx, modelId: data.id }); } catch (runAnalysisError) { - const message = messages.RunAnalysisError - notification.error({ message, duration: 20 }) + const message = messages.RunAnalysisError; + notification.error({ message, duration: 20 }); } - refreshDataAtom() - refreshActivityAtom() - refreshEntityCountsToParent(data.brain_region.id) + refreshDataAtom(); + refreshActivityAtom(); + refreshEntityCountsToParent(data.brain_region.id); navigate( resolveExploreDetailsPageUrl({ ctx, dataType: DataType.CircuitMEModel, entityId: data.id, - }), - ) - }) - } + }) + ); + }); + }; const validateTrigger = sessionValue.emodel && sessionValue.mmodel && (
@@ -280,7 +280,7 @@ export default function Configure({ ctx, searchParams }: Props) { {isPending ? 'Creating ME-model' : 'Save'}
- ) + ); return ( <> @@ -307,5 +307,5 @@ export default function Configure({ ctx, searchParams }: Props) { {validateTrigger} - ) + ); } From 68cc9129be7daabc32fb4a5514a185fd4f55ac20 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Tue, 12 Aug 2025 17:32:54 +0200 Subject: [PATCH 13/44] more linting --- src/page-wrappers/build/me-model/configure.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/page-wrappers/build/me-model/configure.tsx b/src/page-wrappers/build/me-model/configure.tsx index 12a9631f1..4cf346531 100644 --- a/src/page-wrappers/build/me-model/configure.tsx +++ b/src/page-wrappers/build/me-model/configure.tsx @@ -184,7 +184,7 @@ export default function Configure({ ctx, searchParams }: Props) { return; } - const showErrorNotification = (error: any, type: 'validation' | 'http') => { + const showErrorNotification = (error: unknown, type: 'validation' | 'http') => { let message = messages.DefaultErrorMsg; if (type === 'http') message = @@ -256,7 +256,7 @@ export default function Configure({ ctx, searchParams }: Props) { try { await runSingleNeuronAnalysis({ ctx, modelId: data.id }); - } catch (runAnalysisError) { + } catch (_runAnalysisError) { const message = messages.RunAnalysisError; notification.error({ message, duration: 20 }); } From 8bca0b12235a25d200ac99886afc2a3f84b906f9 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Tue, 12 Aug 2025 17:50:40 +0200 Subject: [PATCH 14/44] more linting --- src/features/cell-composition/how-to.md | 72 +++---------------------- 1 file changed, 7 insertions(+), 65 deletions(-) diff --git a/src/features/cell-composition/how-to.md b/src/features/cell-composition/how-to.md index e84bf62e4..6a0bed7a1 100644 --- a/src/features/cell-composition/how-to.md +++ b/src/features/cell-composition/how-to.md @@ -1,10 +1,15 @@ # HOW-TO: Construct Brain Cell Composition -This short document explains how cell composition has been constructed, which builds a hierarchical representation of brain cell types and their densities across brain regions. +This short document explains how cell composition has been constructed, +which builds a hierarchical representation of brain cell types and their +densities across brain regions. ## Overview -The cell composition feature processes hierarchical brain region data along with cell type information to generate a unified view of neuron and glial cell distributions. It handles relationships between `brain_region`, `mTypes`, `eTypes`. +The cell composition feature processes hierarchical brain region data +along with cell type information to generate a unified view of neuron +and glial cell distributions. It handles relationships between +`brain_region`, `mTypes`, `eTypes`. ## Data Flow @@ -21,66 +26,3 @@ flowchart TD H --> J[calculate total composition] I --> K[return needed data] J --> K -``` - -## How to process: - -1. **Initialization** - - start with a brain region id (selected by the user) - - retrieve all leaf regions under that brain region (use `brainRegionHierarchyAtom`) - - create volume maps for each leaf region (using `brainRegionAtlasAtom`) - -2. **Node Construction** - - for each leaf region: - - process mTypes and their child eTypes - - build tree nodes with cell counts and densities - - calculate composition data based on volumes - -3. **Node Aggregation** - - merge nodes that represent the same mType/eType across different leaf regions - - sum cell counts across regions - - recalculate densities based on aggregated volumes - - create links between parent mTypes and child eTypes - -4. **Final Calculations** - - calculate total neuron and glial cell counts - - determine total volume (not needed for now) - - compute the whole composition densities - -## Implementation Details - -### Composite IDs - -The system uses composite IDs (`mTypeId__eTypeId`) to ensure that when the same eType appears under different mTypes, they are treated as distinct nodes. This preserves the hierarchical relationship. - -```mermaid -graph TD - mType1 --> eType1_1[eType1 under mType1] - mType1 --> eType2_1[eType2 under mType1] - mType2 --> eType1_2[eType1 under mType2] - mType2 --> eType3[eType3] -``` - -### Volume and Density calculations: - -- **cell count** = density × volume -- **aggregated density** = totalCellCount / TotalVolume -- **neuron count scale** = 1e-9 - -### Node merging: - -When the same node (by composite ID) appears in multiple leaf regions: - -1. merge the lists of associated leaf regions -2. sum the cell counts from all regions -3. recalculate densities based on the total volume of all associated regions -4. combine related nodes (for mTypes pointing to eTypes) - -## Output: - -The final output contains: - -- **nodes**: Array of tree nodes representing mTypes and eTypes -- **links**: Connections between parent mTypes and child eTypes -- **totalVolume**: Combined volume of all leaf regions -- **totalComposition**: Overall neuron and glial cell densities and counts From 08b692cef9bb19af0e5d52863f5c31de6d8c6804 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Tue, 12 Aug 2025 17:52:52 +0200 Subject: [PATCH 15/44] more linting --- src/page-wrappers/build/me-model/configure.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/page-wrappers/build/me-model/configure.tsx b/src/page-wrappers/build/me-model/configure.tsx index 4cf346531..92ad7fa7a 100644 --- a/src/page-wrappers/build/me-model/configure.tsx +++ b/src/page-wrappers/build/me-model/configure.tsx @@ -256,9 +256,10 @@ export default function Configure({ ctx, searchParams }: Props) { try { await runSingleNeuronAnalysis({ ctx, modelId: data.id }); - } catch (_runAnalysisError) { + } catch (runAnalysisError) { const message = messages.RunAnalysisError; notification.error({ message, duration: 20 }); + console.error(runAnalysisError); } refreshDataAtom(); From be935d71e08ad672b3bfbdbe549be3d381c294f5 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Tue, 12 Aug 2025 18:25:10 +0200 Subject: [PATCH 16/44] more linting --- src/features/cell-composition/how-to.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/features/cell-composition/how-to.md b/src/features/cell-composition/how-to.md index 6a0bed7a1..0076f4d73 100644 --- a/src/features/cell-composition/how-to.md +++ b/src/features/cell-composition/how-to.md @@ -26,3 +26,4 @@ flowchart TD H --> J[calculate total composition] I --> K[return needed data] J --> K +``` From 21bf9a124a07276c6f6b741f8be479df0d28c7db Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Tue, 12 Aug 2025 22:06:09 +0200 Subject: [PATCH 17/44] more linting --- src/page-wrappers/build/me-model/configure.tsx | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/page-wrappers/build/me-model/configure.tsx b/src/page-wrappers/build/me-model/configure.tsx index 92ad7fa7a..0b7408feb 100644 --- a/src/page-wrappers/build/me-model/configure.tsx +++ b/src/page-wrappers/build/me-model/configure.tsx @@ -49,8 +49,7 @@ function Header({ stateId, virtualLabId, projectId }: WorkspaceContext & { state const contributors = useAtomValue(virtualLabProjectUsersAtomFamily({ projectId, virtualLabId })) ?.data?.users; - const { mmodel } = sessionValue; - const { emodel } = sessionValue; + const { mmodel, emodel } = sessionValue; const fields = [ { className: 'col-span-6', @@ -68,13 +67,7 @@ function Header({ stateId, virtualLabId, projectId }: WorkspaceContext & { state }, { title: 'created by', - value: ( -
    - {contributors?.map(({ id, name }) => ( -
  • {name}
  • - ))} -
- ), + value:
    {contributors?.map(({ id, name }) =>
  • {name}
  • )}
, }, { title: 'created date', @@ -131,8 +124,7 @@ function CustomButton({ className, 'bg-primary-9 h-14 rounded-none border border-white px-14 text-white', 'hover:border-primary-8! hover:bg-primary-8! hover:border! hover:font-bold hover:text-white! hover:shadow-xs', - 'disabled:border-gray-400 disabled:bg-white! disabled:text-gray-700! disabled:hover:text-gray-700!', - 'disabled:hover:border-gray-400! disabled:hover:bg-white! disabled:hover:text-gray-700!' + 'disabled:border-gray-400 disabled:bg-white! disabled:text-gray-700! disabled:hover:border-gray-400! disabled:hover:bg-white! disabled:hover:text-gray-700!' )} type="default" size="large" @@ -259,7 +251,7 @@ export default function Configure({ ctx, searchParams }: Props) { } catch (runAnalysisError) { const message = messages.RunAnalysisError; notification.error({ message, duration: 20 }); - console.error(runAnalysisError); + console.error(runAnalysisError); } refreshDataAtom(); From b5efac245f8e79f61a64d56893acb9ad1beed4f7 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Wed, 13 Aug 2025 13:03:09 +0200 Subject: [PATCH 18/44] made buttons consistent --- src/features/contribute/index.tsx | 49 +++++++++++++++++++++---------- 1 file changed, 33 insertions(+), 16 deletions(-) diff --git a/src/features/contribute/index.tsx b/src/features/contribute/index.tsx index 3d190de4e..dcd8e3971 100755 --- a/src/features/contribute/index.tsx +++ b/src/features/contribute/index.tsx @@ -2,13 +2,14 @@ import { LoadingOutlined, - RightOutlined, UploadOutlined, CheckCircleFilled, + WarningFilled, + RightOutlined, } from '@ant-design/icons'; import Ajv, { AnySchema } from 'ajv'; import { atom } from 'jotai'; -import { Fragment, useMemo, useRef, useState, KeyboardEvent } from 'react'; +import { Fragment, useMemo, useRef, useState, KeyboardEvent, useEffect } from 'react'; import { Config, ConfigValue, JSONSchemaForm } from './_components/components'; import { useConfigAtom } from './_components/hooks/config-atom'; import { @@ -76,6 +77,11 @@ export default function ContributeMorphologyConfiguration({ errors: [], }); + // Debug log to verify selectedFile state + useEffect(() => { + console.log('selectedFile state:', selectedFile); + }, [selectedFile]); + const selectedCatSchema = schema?.properties?.[configTab]?.additionalProperties?.anyOf?.find( (s) => s.properties?.type.const === selectedCategory ); @@ -157,17 +163,10 @@ export default function ContributeMorphologyConfiguration({ return (
-
+
- {/* Show overall form validation status */} - {!formValidation.isValid && formValidation.errors.length > 0 && ( -
-
Required fields missing:
-
{formValidation.errors.join(', ')}
-
- )} - + {/* ... form validation */}
Assets
Assets -
+
{selectedFile ? ( - + <> + + + ) : ( -
+ <> + + + )} -
{CATEGORIES.filter((c) => c !== 'Assets').map((c) => ( @@ -491,6 +507,7 @@ export default function ContributeMorphologyConfiguration({ disabled={loading || readOnly} onChange={(e) => { const file = e.target.files?.[0]; + console.log('File selected:', file); // Debug log if (file) { setSelectedFile(file); setFileStatus({ message: `File selected: ${file.name}` }); @@ -642,4 +659,4 @@ export default function ContributeMorphologyConfiguration({ )}
); -} +} \ No newline at end of file From 2dfa4846487cc364a32ff58a4f79de46ad8ecc59 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Wed, 13 Aug 2025 13:11:46 +0200 Subject: [PATCH 19/44] more linting --- src/features/contribute/index.tsx | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/features/contribute/index.tsx b/src/features/contribute/index.tsx index dcd8e3971..78aa0b8a4 100755 --- a/src/features/contribute/index.tsx +++ b/src/features/contribute/index.tsx @@ -163,7 +163,7 @@ export default function ContributeMorphologyConfiguration({ return (
-
+
{/* ... form validation */} @@ -198,10 +198,7 @@ export default function ContributeMorphologyConfiguration({ className="text-green-600" style={{ fontSize: '14px', visibility: 'visible' }} /> - + ) : ( <> @@ -209,10 +206,7 @@ export default function ContributeMorphologyConfiguration({ className="assets-warning text-yellow-400" style={{ fontSize: '14px', visibility: 'visible' }} /> - + )}
@@ -659,4 +653,4 @@ export default function ContributeMorphologyConfiguration({ )}
); -} \ No newline at end of file +} From 8d8ef6d96ae791b27b0bf12de651e883e8bd0458 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Tue, 9 Sep 2025 17:13:45 +0200 Subject: [PATCH 20/44] linting --- .../morphology/_components/components.tsx | 1379 +++++++++++++++++ src/features/contribute/morphology/index.tsx | 601 +++++++ 2 files changed, 1980 insertions(+) create mode 100644 src/features/contribute/morphology/_components/components.tsx create mode 100755 src/features/contribute/morphology/index.tsx diff --git a/src/features/contribute/morphology/_components/components.tsx b/src/features/contribute/morphology/_components/components.tsx new file mode 100644 index 000000000..67656a50b --- /dev/null +++ b/src/features/contribute/morphology/_components/components.tsx @@ -0,0 +1,1379 @@ +import { useEffect, useState } from 'react'; +import { atom, useAtom } from 'jotai'; +import { InputNumber, Input, Select, Button } from 'antd'; +import { CheckCircleOutlined, CloseCircleOutlined, PlusCircleOutlined } from '@ant-design/icons'; +import isNil from 'lodash/isNil'; + +import { JSONMorphologySchema } from '../types'; +import { isPlainObject } from './utils'; +import Tooltip from './tooltip'; + +import { classNames } from '@/util/utils'; +import { getSession } from '@/authFetch'; + +// Define interfaces for API response data +interface SpeciesRecord { + id: string; + name: string; +} + +interface StrainRecord { + id: string; + name: string; + species_id: string; +} + +interface PersonRecord { + id: string; + pref_label?: string; +} + +interface RoleRecord { + id: string; + name?: string; +} + +interface SubjectRecord { + id: string; + name?: string; +} + +interface LicenseRecord { + id: string; + label?: string; +} + +interface MtypeRecord { + id: string; + pref_label?: string; + alt_label?: string; +} + +interface BrainRegionResponse { + name: string; +} + +interface SpeciesData { + data: SpeciesRecord[]; +} + +interface StrainData { + data: StrainRecord[]; +} + +interface PersonData { + data: PersonRecord[]; +} + +interface RoleData { + data: RoleRecord[]; +} + +interface SubjectData { + data: SubjectRecord[]; +} + +interface LicenseData { + data: LicenseRecord[]; +} + +interface MtypeData { + data: MtypeRecord[]; +} + +type Primitive = null | boolean | number | string; +interface Object { + [key: string]: Primitive | Primitive[] | Object; +} + +export type ConfigValue = Primitive | Primitive[] | Object; + +export type Config = Record; + +// Move session fetch to a function to avoid top-level await +const getSessionWithCheck = async () => { + const session = await getSession(); + if (!session) { + throw new Error('Failed to get session'); + } + return session; +}; + +// Export getRequiredFieldErrors so it can be used in index.tsx +export const isEmptyValue = (value: ConfigValue): boolean => { + if (isNil(value) || value === '') return true; + if (Array.isArray(value) && value.length === 0) return true; + if (typeof value === 'object' && value !== null && Object.keys(value).length === 0) return true; + return false; +}; + +// Export getRequiredFieldErrors +export const getRequiredFieldErrors = ( + state: Record, + schema: JSONMorphologySchema +): string[] => { + const errors: string[] = []; + const requiredFields = schema.required || []; + + requiredFields.forEach((fieldName) => { + const value = state[fieldName]; + if (isEmptyValue(value)) { + const fieldSchema = schema.properties?.[fieldName]; + const fieldTitle = fieldSchema?.title || fieldName; + errors.push(`${fieldTitle} is required`); + } + }); + + return errors; +}; + +const processData = async (token: string): Promise => { + const headers: HeadersInit = { + accept: 'application/json', + Authorization: `Bearer ${token}`, + }; + + const urlSpecies = 'https://staging.openbraininstitute.org/api/entitycore/subject'; + const urlStrain = 'https://staging.openbraininstitute.org/api/entitycore/strain'; + + let json_data_species: SpeciesData = { data: [] }; + let json_data_strain: StrainData = { data: [] }; + + try { + const [responseSpecies, responseStrain] = await Promise.all([ + fetch(urlSpecies, { headers }), + fetch(urlStrain, { headers }), + ]); + + if (!responseSpecies.ok) { + throw new Error(`Species request failed with status code: ${responseSpecies.status}`); + } + if (!responseStrain.ok) { + throw new Error(`Strain request failed with status code: ${responseStrain.status}`); + } + + json_data_species = await responseSpecies.json(); + json_data_strain = await responseStrain.json(); + } catch (error) { + console.error((error as Error).message); + return null; + } + + // Add the generic records as in the Python code + json_data_species.data.push({ + id: 'b7ad4cca-4ac2-4095-9781-37fb68fe9ca1', + name: 'Generic Mus musculus', + }); + json_data_species.data.push({ + id: '3b1c2a25-b4fb-468d-98d2-d2d431ac8b4a', + name: 'Generic Rattus norvegicus', + }); + + const speclist: Array<{ + species_id: string; + species_name: string; + strains: Record; + }> = []; + + for (const species_record of json_data_species.data) { + if (species_record.name === 'Unknown') { + continue; + } + + const filtered_data = json_data_strain.data.filter( + (item) => item.species_id === species_record.id + ); + + const strains: Record = {}; + for (const strain of filtered_data) { + strains[strain.name] = strain.id; + } + + const species_entry = { + species_id: species_record.id, + species_name: species_record.name, + strains, + }; + + speclist.push(species_entry); + } + + return JSON.stringify(speclist, null, 2); +}; + +const fetchAgents = async (token: string): Promise | null> => { + const headers: HeadersInit = { + accept: 'application/json', + Authorization: `Bearer ${token}`, + }; + + const url = 'https://staging.openbraininstitute.org/api/entitycore/person'; + + try { + const response = await fetch(url, { headers }); + if (!response.ok) { + throw new Error(`Agent request failed with status code: ${response.status}`); + } + const json_data_person: PersonData = await response.json(); + + const person_dict: Record = {}; + for (const item of json_data_person.data) { + if (item.pref_label) { + person_dict[item.pref_label] = item.id; + } + } + return person_dict; + } catch (error) { + console.error((error as Error).message); + return null; + } +}; + +const fetchRoles = async (token: string): Promise | null> => { + const headers: HeadersInit = { + accept: 'application/json', + Authorization: `Bearer ${token}`, + }; + + const url = 'https://staging.openbraininstitute.org/api/entitycore/role'; + + try { + const response = await fetch(url, { headers }); + if (!response.ok) { + throw new Error(`Role request failed with status code: ${response.status}`); + } + const json_data_role: RoleData = await response.json(); + + const role_dict: Record = {}; + for (const item of json_data_role.data) { + if (item.name) { + role_dict[item.name] = item.id; + } + } + return role_dict; + } catch (error) { + console.error((error as Error).message); + return null; + } +}; + +const fetchSubjects = async ( + token: string +): Promise | null> => { + const headers: HeadersInit = { + accept: 'application/json', + Authorization: `Bearer ${token}`, + }; + + const url = 'https://staging.openbraininstitute.org/api/entitycore/subject'; + + try { + const response = await fetch(url, { headers }); + if (!response.ok) { + throw new Error(`Subject request failed with status code: ${response.status}`); + } + const json_data_subject: SubjectData = await response.json(); + + const subject_list: Array<{ label: string; value: string }> = []; + for (const item of json_data_subject.data) { + if (item.name) { + const subject_entry = { + label: item.name, + value: item.id, + }; + subject_list.push(subject_entry); + } + } + return subject_list; + } catch (error) { + console.error((error as Error).message); + return null; + } +}; + +const fetchLicenses = async ( + token: string +): Promise | null> => { + const headers: HeadersInit = { + accept: 'application/json', + Authorization: `Bearer ${token}`, + }; + + const url = 'https://staging.openbraininstitute.org/api/entitycore/license'; + + try { + const response = await fetch(url, { headers }); + if (!response.ok) { + throw new Error(`License request failed with status code: ${response.status}`); + } + const json_data_license: LicenseData = await response.json(); + + const license_list: Array<{ label: string; value: string }> = []; + for (const item of json_data_license.data) { + if (item.label && item.label !== 'undefined') { + const license_entry = { + label: item.label, + value: item.id, + }; + license_list.push(license_entry); + } + } + return license_list; + } catch (error) { + console.error((error as Error).message); + return null; + } +}; + +const fetchMtypes = async ( + token: string +): Promise | null> => { + const headers: HeadersInit = { + accept: 'application/json', + Authorization: `Bearer ${token}`, + }; + + const url = 'https://staging.openbraininstitute.org/api/entitycore/mtype'; + + try { + const response = await fetch(url, { headers }); + if (!response.ok) { + throw new Error(`MTYPE request failed with status code: ${response.status}`); + } + const json_data_mtype: MtypeData = await response.json(); + + const mtype_list: Array<{ mtype_pref_label: string; mtype_id: string }> = []; + for (const item of json_data_mtype.data) { + if (item.pref_label) { + const alt_label = item.alt_label ? ` ${item.alt_label}` : ''; + const mtype_entry = { + mtype_pref_label: item.pref_label + alt_label, + mtype_id: item.id, + }; + mtype_list.push(mtype_entry); + } + } + return mtype_list; + } catch (error) { + console.error((error as Error).message); + return null; + } +}; + +const fetchBrainRegion = async (token: string, brainRegionId: string): Promise => { + const headers: HeadersInit = { + accept: 'application/json', + Authorization: `Bearer ${token}`, + }; + + const url = `https://staging.openbraininstitute.org/api/entitycore/brain-region/${brainRegionId}`; + + try { + const response = await fetch(url, { headers }); + if (!response.ok) { + throw new Error(`Brain region request failed with status code: ${response.status}`); + } + const json_data: BrainRegionResponse = await response.json(); + return json_data.name; + } catch (error) { + console.error((error as Error).message); + return null; + } +}; + +export function JSONMorphologySchemaForm({ + disabled, + schema, + stateAtom, + config, + onAddReferenceClick, + nodeId, + currentCategory, +}: { + disabled: boolean; + config: Config; + schema: JSONMorphologySchema; + stateAtom: ReturnType>; + onAddReferenceClick: (reference: string) => void; + nodeId?: string; + currentCategory?: string; +}) { + const skip = ['type']; + + const [state, setState] = useAtom(stateAtom); + const [addingElement, setAddingElement] = useState<{ [key: string]: boolean }>({ + legacy_id: true, + }); + const [newElement, setNewElement] = useState<{ [key: string]: number | string | null }>({}); + const [validationErrors, setValidationErrors] = useState([]); + const [touchedFields, setTouchedFields] = useState>(new Set()); + + // NEW STATE TO STORE API DATA + const [allSpeciesStrains, setAllSpeciesStrains] = useState; + }> | null>(null); + const [allAgents, setAllAgents] = useState | null>(null); + const [allRoles, setAllRoles] = useState | null>(null); + const [allSubjects, setAllSubjects] = useState | null>( + null + ); + const [allLicenses, setAllLicenses] = useState | null>( + null + ); + const [allMtypes, setAllMtypes] = useState | null>(null); + const [brainRegionName, setBrainRegionName] = useState(null); + + const referenceTypesToConfigKeys: Record = { + NeuronSetReference: 'neuron_sets', + TimestampsReference: 'timestamps', + }; + + const referenceTypesToTitles: Record = { + NeuronSetReference: 'Neuron Set', + TimestampsReference: 'Timestamps', + }; + + // Validate form whenever state changes + useEffect(() => { + const errors = getRequiredFieldErrors(state, schema); + setValidationErrors(errors); + }, [state, schema]); + + // Fetch API data on component mount + useEffect(() => { + const fetchData = async () => { + const session = await getSessionWithCheck(); + if (!session) return; + + try { + const [speciesData, agentsData, rolesData, subjectsData, licensesData, mtypesData] = + await Promise.all([ + processData(session.accessToken), + fetchAgents(session.accessToken), + fetchRoles(session.accessToken), + fetchSubjects(session.accessToken), + fetchLicenses(session.accessToken), + fetchMtypes(session.accessToken), + ]); + + let brainRegionName = null; + if (nodeId) { + brainRegionName = await fetchBrainRegion(session.accessToken, nodeId); + } + + if (speciesData) { + const parsedData = JSON.parse(speciesData); + setAllSpeciesStrains(parsedData); + } + if (agentsData) { + setAllAgents(agentsData); + } + if (rolesData) { + setAllRoles(rolesData); + } + if (subjectsData) { + setAllSubjects(subjectsData); + } + if (licensesData) { + setAllLicenses(licensesData); + setState((prev) => ({ + ...prev, + license_id: prev.license_id || 'ad8686db-3cdd-4e3f-bcbd-812380a9eba7', + })); + } + if (mtypesData) { + setAllMtypes(mtypesData); + } + if (brainRegionName) { + setBrainRegionName(brainRegionName); + } + } catch (error) { + console.error((error as Error).message); + } + }; + fetchData(); + }, [nodeId, setState]); + + // Rest of the useEffect hook for initial state population... + useEffect(() => { + if (!schema.properties) return; + + const initial: Record = {}; + + Object.entries(schema.properties).forEach(([key, value]) => { + if (key === 'type') initial[key] = value.const ?? null; + else if (key === 'legacy_id') initial[key] = []; + else if (key === 'strain_id') initial[key] = null; + else if (key === 'subject_id') + initial[key] = '1c71c68c-44a4-4972-955d-7e0f264425e3'; // Default to first subject_id + else if (key === 'license_id') + initial[key] = 'ad8686db-3cdd-4e3f-bcbd-812380a9eba7'; // Default to CC BY 4.0 Deed + else initial[key] = value.default ?? null; + }); + + if (currentCategory === 'morphology' && nodeId) { + const brainRegionIdKey = Object.keys(schema.properties || {}).find((key) => { + const normalizedKey = key.toLowerCase().replace(/[\s_]/g, ''); + return ( + normalizedKey === 'brainregionid' || + normalizedKey === 'brain_region_id' || + normalizedKey === 'brainregion' + ); + }); + + if (brainRegionIdKey) { + initial[brainRegionIdKey] = nodeId; + } + } + + const speciesIdKey = Object.keys(schema.properties || {}).find((key) => { + const normalizedKey = key.toLowerCase().replace(/[\s_]/g, ''); + return ( + normalizedKey === 'speciesid' || + normalizedKey === 'species_id' || + normalizedKey === 'species' + ); + }); + + if (speciesIdKey) { + initial[speciesIdKey] = 'b7ad4cca-4ac2-4095-9781-37fb68fe9ca1'; + } + + const atlasIdKey = Object.keys(schema.properties || {}).find((key) => { + const normalizedKey = key.toLowerCase().replace(/[\s_]/g, ''); + return ( + normalizedKey === 'atlasid' || normalizedKey === 'atlas_id' || normalizedKey === 'atlas' + ); + }); + + if (atlasIdKey) { + initial[atlasIdKey] = 'e3e70682-c209-4cac-a29f-6fbed82c07cd'; + } + + setState((prev) => ({ ...initial, ...prev })); + }, [stateAtom, setState, schema.properties, nodeId, currentCategory]); + + const markFieldTouched = (fieldName: string) => { + setTouchedFields((prev) => new Set(prev).add(fieldName)); + }; + + const hasFieldError = (fieldName: string): boolean => { + const isRequired = schema.required?.includes(fieldName) ?? false; + const isTouched = touchedFields.has(fieldName); + const isEmpty = isEmptyValue(state[fieldName]); + return isRequired && isTouched && isEmpty; + }; + + const getFieldErrorMessage = (fieldName: string): string | null => { + if (!hasFieldError(fieldName)) return null; + const fieldSchema = schema.properties?.[fieldName]; + const fieldTitle = fieldSchema?.title || fieldName; + return `${fieldTitle} is required`; + }; + + function renderInput(k: string, v: JSONMorphologySchema) { + const obj = { + ...v, + ...v.anyOf?.find((subv) => subv.type !== 'array' && subv.type !== 'null'), + }; + const normalizedKey = k.toLowerCase().replace(/[\s_]/g, ''); + + const fieldError = getFieldErrorMessage(k); + const hasError = hasFieldError(k); + + const isBrainRegionIdField = + currentCategory === 'morphology' && + (normalizedKey === 'brainregionid' || + normalizedKey === 'brain_region_id' || + normalizedKey === 'brainregion'); + const isSpeciesIdField = + normalizedKey === 'speciesid' || + normalizedKey === 'species_id' || + normalizedKey === 'species'; + const isAtlasIdField = + normalizedKey === 'atlasid' || normalizedKey === 'atlas_id' || normalizedKey === 'atlas'; + const isExperimentDateField = + normalizedKey === 'experimentdate' || + normalizedKey === 'experiment_date' || + normalizedKey === 'date' || + v.title?.toLowerCase().includes('date'); + const isStrainIdField = + normalizedKey === 'strainid' || normalizedKey === 'strain_id' || normalizedKey === 'strain'; + const isAgePeriodField = normalizedKey === 'ageperiod' || normalizedKey === 'age_period'; + const isLegacyIdField = normalizedKey === 'legacyid' || normalizedKey === 'legacy_id'; + const isLicenseIdField = normalizedKey === 'licenseid' || normalizedKey === 'license_id'; + const isMtypeClassIdField = normalizedKey === 'mtypeclassid'; + const isSubjectIdField = normalizedKey === 'subjectid' || normalizedKey === 'subject_id'; + const isRoleIdField = + normalizedKey === 'roleid' || normalizedKey === 'role_id' || normalizedKey === 'role'; + const isAgentIdField = + normalizedKey === 'agentid' || normalizedKey === 'agent_id' || normalizedKey === 'agent'; + + if (isBrainRegionIdField && nodeId) { + return ( +
+ markFieldTouched(k)} + value={brainRegionName ? brainRegionName : 'Loading...'} + readOnly + /> +
+ ); + } + + if (isSpeciesIdField) { + const speciesId = 'b7ad4cca-4ac2-4095-9781-37fb68fe9ca1'; + const selectedSpecies = allSpeciesStrains + ? allSpeciesStrains.find((s) => s.species_id === speciesId) + : null; + const speciesName = selectedSpecies ? selectedSpecies.species_name : 'Loading...'; + + return ( +
+ markFieldTouched(k)} + value={speciesName} + readOnly + /> +
+ ); + } + + if (isAtlasIdField) { + return ( +
+ markFieldTouched(k)} + value="e3e70682-c209-4cac-a29f-6fbed82c07cd" + readOnly + /> +
+ ); + } + + if (isExperimentDateField) { + const formatDate = (value: string) => { + const cleaned = value.replace(/[^\d\s-]/g, ''); + const parts = cleaned.split(/[\s-]+/).filter((part) => part.length > 0); + if (parts.length === 0) return ''; + if (parts.length === 1) return parts[0]; + if (parts.length === 2) return `${parts[0]} ${parts[1]}`; + return parts.slice(0, 3).join(' '); + }; + + const validateDateFormat = (value: string) => { + if (!value) return true; + const parts = value.split(' '); + if (parts.length !== 3) return false; + const [day, month, year] = parts; + const dayNum = parseInt(day, 10); + const monthNum = parseInt(month, 10); + const yearNum = parseInt(year, 10); + return ( + dayNum >= 1 && + dayNum <= 31 && + monthNum >= 1 && + monthNum <= 12 && + yearNum >= 1900 && + yearNum <= new Date().getFullYear() + ); + }; + + const currentValue = typeof state[k] === 'string' ? state[k] : ''; + const isValid = validateDateFormat(currentValue); + const showDateError = !isValid && currentValue; + + return ( +
+ markFieldTouched(k)} + value={currentValue} + className={`w-full ${hasError || showDateError ? 'border-red-500' : ''}`} + onChange={(e) => { + const formatted = formatDate(e.currentTarget.value); + setState({ ...state, [k]: formatted }); + }} + placeholder="DD MM YYYY (e.g., 15 03 2024)" + /> + {showDateError && ( +
+ Please use format: DD MM YYYY (day month year) +
+ )} + {fieldError &&
{fieldError}
} +
+ ); + } + + if (isStrainIdField) { + if (!allSpeciesStrains) { + return ( +
+ +
+ ); + } + + const speciesId = 'b7ad4cca-4ac2-4095-9781-37fb68fe9ca1'; + const selectedSpecies = allSpeciesStrains.find((s) => s.species_id === speciesId); + + if (!selectedSpecies) { + return ( +
+ + {fieldError &&
{fieldError}
} +
+ ); + } + + const strainOptions = Object.entries(selectedSpecies.strains).map(([name, id]) => ({ + label: name, + value: id, + })); + + return ( +
+ markFieldTouched(k)} + onChange={(newV) => { + setState({ ...state, [k]: newV }); + markFieldTouched(k); + }} + value={state[k]} + options={obj.enum.map((subv: string) => ({ + label: subv, + value: subv, + }))} + placeholder="Select age period" + /> + {fieldError &&
{fieldError}
} +
+ ); + } + return ( +
+ markFieldTouched(k)} + value={typeof state[k] === 'string' ? state[k] : ''} + onChange={(e) => { + setState({ ...state, [k]: e.currentTarget.value }); + }} + placeholder="Enter age period" + /> + {fieldError &&
{fieldError}
} +
+ ); + } + + if (isLegacyIdField) { + return ( +
+
+
+ {Array.isArray(state[k]) && + state[k].map((e) => ( +
+ {e}{' '} + {!disabled && ( + { + const newElements = [...(Array.isArray(state[k]) ? state[k] : [])]; + newElements.splice(newElements.indexOf(e), 1); + setState({ ...state, [k]: newElements }); + markFieldTouched(k); + }} + /> + )} +
+ ))} +
+ {!addingElement[k] && !disabled && ( + setAddingElement({ ...addingElement, [k]: true })} + className="text-primary-8" + /> + )} + {addingElement[k] && !disabled && ( +
+ setNewElement({ ...newElement, [k]: e.currentTarget.value })} + placeholder="Enter legacy ID" + /> + {newElement[k] && ( + { + setState({ + ...state, + [k]: [...(Array.isArray(state[k]) ? state[k] : []), newElement[k]], + }); + setAddingElement({ ...addingElement, [k]: false }); + setNewElement({ ...newElement, [k]: null }); + markFieldTouched(k); + }} + /> + )} + { + setAddingElement({ ...addingElement, [k]: false }); + setNewElement({ ...newElement, [k]: null }); + }} + className="text-primary-8" + /> +
+ )} +
+ {fieldError &&
{fieldError}
} +
+ ); + } + + if (isLicenseIdField) { + if (!allLicenses) { + return ( +
+ +
+ ); + } + + const options = allLicenses.map((license) => ({ + label: license.label, + value: license.value, + })); + + return ( +
+ +
+ ); + } + + const options = allSubjects.map((subject) => ({ + label: subject.label, + value: subject.value, + })); + + return ( +
+ +
+ ); + } + + const options = allMtypes.map((mtype) => ({ + label: mtype.mtype_pref_label, + value: mtype.mtype_id, + })); + + return ( +
+ +
+ ); + } + + const options = Object.entries(allRoles).map(([label, value]) => ({ + label, + value, + })); + + return ( +
+ +
+ ); + } + + const options = Object.entries(allAgents).map(([label, value]) => ({ + label, + value, + })); + + return ( +
+ markFieldTouched(k)} + onChange={(newV: string) => { + if (!v.properties?.type.const || typeof v.properties.type.const !== 'string') + throw new Error('Invalid reference definition'); + + setState({ + ...state, + [k]: { + block_name: newV, + type: v.properties.type.const, + block_dict_name: referenceKey, + }, + }); + markFieldTouched(k); + }} + value={defaultV} + options={referees.map(([subkey]) => ({ + label: subkey, + value: subkey, + }))} + /> + {fieldError &&
{fieldError}
} +
+ ); + } + + if (k === 'neuron_ids') { + return ( +
+
+
+ {isPlainObject(state[k]) && + Array.isArray(state[k].elements) && + state[k].elements.map((e) => ( +
+ {e}{' '} + {!disabled && ( + { + if (!isPlainObject(state[k]) || !Array.isArray(state[k].elements)) return; + + if (state[k].elements.length === 1) { + setState({ ...state, [k]: null }); + markFieldTouched(k); + return; + } + + const newElements = [...state[k].elements]; + newElements.splice(newElements.indexOf(e), 1); + setState({ + ...state, + [k]: { + type: 'NamedTuple', + name: 'example_id_neuron_set', + elements: newElements, + }, + }); + markFieldTouched(k); + }} + /> + )} +
+ ))} +
+ {!addingElement[k] && !disabled && ( + setAddingElement({ ...addingElement, [k]: true })} + className="text-primary-8" + /> + )} + {addingElement[k] && !disabled && ( +
+ { + setNewElement({ ...newElement, [k]: newV }); + }} + /> + {!isNil(newElement[k]) && ( + { + if (!state[k]) { + setState({ + ...state, + [k]: { + type: 'NamedTuple', + name: 'example_id_neuron_set', + elements: [newElement[k]], + }, + }); + } else if (isPlainObject(state[k]) && Array.isArray(state[k].elements)) { + setState({ + ...state, + [k]: { + type: 'NamedTuple', + name: 'example_id_neuron_set', + elements: [...state[k].elements, newElement[k]], + }, + }); + } + setAddingElement({ ...addingElement, [k]: false }); + setNewElement({ ...newElement, [k]: null }); + markFieldTouched(k); + }} + /> + )} + { + setAddingElement({ ...addingElement, [k]: false }); + setNewElement({ ...newElement, [k]: null }); + }} + className="text-primary-8" + /> +
+ )} +
+ {fieldError &&
{fieldError}
} +
+ ); + } + + if (obj.type === 'number' || obj.type === 'integer') { + return ( +
+ { + setState({ ...state, [k]: value }); + }} + onBlur={() => markFieldTouched(k)} + className={`w-full ${hasError ? 'border-red-500' : ''}`} + /> + {fieldError &&
{fieldError}
} +
+ ); + } + + if (obj.type === 'string') { + return ( +
+ markFieldTouched(k)} + value={typeof state[k] === 'string' ? state[k] : ''} + onChange={(e) => { + setState({ ...state, [k]: e.currentTarget.value }); + }} + /> + {fieldError &&
{fieldError}
} +
+ ); + } + + return ( +
+ markFieldTouched(k)} + value={typeof state[k] === 'string' ? state[k] : ''} + onChange={(e) => { + setState({ ...state, [k]: e.currentTarget.value }); + }} + placeholder={`Enter value for ${v.title || k}`} + /> + {fieldError &&
{fieldError}
} +
+ ); + } + + function getFieldTitle(k: string, v: JSONMorphologySchema, normalizedKey: string): string { + if ( + normalizedKey === 'brainregionid' || + normalizedKey === 'brain_region_id' || + normalizedKey === 'brainregion' + ) + return 'BRAIN REGION'; + if ( + normalizedKey === 'speciesid' || + normalizedKey === 'species_id' || + normalizedKey === 'species' + ) + return 'SPECIES'; + if (normalizedKey === 'strainid' || normalizedKey === 'strain_id' || normalizedKey === 'strain') + return 'STRAIN'; + if (normalizedKey === 'ageperiod' || normalizedKey === 'age_period') return 'AGE PERIOD'; + if (normalizedKey === 'licenseid' || normalizedKey === 'license_id') return 'LICENSE'; + if (normalizedKey === 'mtypeclassid') return 'MTYPE CLASS'; + if (normalizedKey === 'subjectid' || normalizedKey === 'subject_id') return 'SUBJECT'; + if (normalizedKey === 'roleid' || normalizedKey === 'role_id' || normalizedKey === 'role') + return 'ROLE'; + if (normalizedKey === 'agentid' || normalizedKey === 'agent_id' || normalizedKey === 'agent') + return 'AGENT'; + + return v.title || k; + } + + return ( +
+
{schema.title}
+
{schema.description}
+ + {validationErrors.length > 0 && ( +
+
+ Please fix the following required fields: +
+
    + {validationErrors.map((error) => ( +
  • {error}
  • + ))} +
+
+ )} + +
+ {schema.properties && + Object.entries(schema.properties) + .filter(([k]) => { + return !skip.includes(k); + }) + .map(([k, v]) => { + const isRequired = schema.required?.includes(k) ?? false; + const normalizedKey = k.toLowerCase().replace(/[\s_]/g, ''); + const fieldTitle = getFieldTitle(k, v, normalizedKey); + + return ( +
+
+
+ {fieldTitle} + {isRequired && *} +
+ {v.units &&
{v.units}
} +
+ {renderInput(k, v)} +
+ ); + })} +
+
+ ); +} + +export function Tab({ + tab, + selectedTab, + children, + onClick, + rounded = 'rounded-full', + extraClass, + disabled, +}: { + tab: string; + selectedTab: string; + onClick?: () => void; + rounded?: 'rounded-l-full' | 'rounded-r-full' | 'rounded-full'; + children?: React.ReactNode; + extraClass?: string; + disabled?: boolean; +}) { + return ( + + ); +} + +export function Chevron({ rotate }: { rotate?: number }) { + return ( + + + + ); +} diff --git a/src/features/contribute/morphology/index.tsx b/src/features/contribute/morphology/index.tsx new file mode 100755 index 000000000..92e13a507 --- /dev/null +++ b/src/features/contribute/morphology/index.tsx @@ -0,0 +1,601 @@ +'use client'; + +import { + LoadingOutlined, + UploadOutlined, + CheckCircleFilled, + WarningFilled, + RightOutlined, +} from '@ant-design/icons'; +import Ajv, { AnySchema } from 'ajv'; +import { atom } from 'jotai'; +import { Fragment, useMemo, useRef, useState, KeyboardEvent, useEffect } from 'react'; +import { Config, ConfigValue, JSONMorphologySchemaForm } from './_components/components'; +import { useConfigAtom } from './_components/hooks/config-atom'; +import { + isRootCategory, + resolveKey, + useObioneJsonConfigurationSchema, +} from './_components/hooks/schema'; +import { Section } from './_components/section'; +import { CATEGORIES, isAtom, ORDERING } from './_components/utils'; +import { AtomsMap, JSONMorphologySchema } from './types'; +import { resolveDataKey } from '@/utils/key-builder'; +import { useBrainRegionHierarchy } from '@/features/brain-region-hierarchy/context'; +import ApiError from '@/api/error'; +import authFetch from '@/authFetch'; +import { useAppNotification } from '@/components/notification'; +import { classNames } from '@/util/utils'; +import styles from './small-microcircuit.module.css'; + +export default function ContributeMorphologyConfiguration({ + circuitId, + virtualLabId, + projectId, + initialCampaignId, + initialConfig, +}: { + circuitId: string; + virtualLabId: string; + projectId: string; + initialCampaignId?: string; + initialConfig?: Config; +}) { + if (!!initialCampaignId !== !!initialConfig) { + throw new Error('Both or none of initialCampaignId, initialConfigId should be passed'); + } + + const { node } = useBrainRegionHierarchy({ + dataKey: resolveDataKey({ section: 'explore', projectId }), + }); + + const [configTab, setConfigTab] = useState('info'); + const [editing, setEditing] = useState(true); + const [schema, setSchema] = useState(null); + const [selectedCategory, setSelectedCategory] = useState(''); + const [selectedItemIdx, setSelectedItemIdx] = useState(null); + const [loading, setLoading] = useState(false); + const [showConfig, setShowConfig] = useState(false); + const [selectedFile, setSelectedFile] = useState(null); + const [fileStatus, setFileStatus] = useState<{ + message?: string; + }>({}); + const [newJsonPayload, setNewJsonPayload] = useState(null); + const notification = useAppNotification(); + const [campaignId, setCampaignId] = useState(initialCampaignId ?? ''); + const initialConfigValidated = useRef(false); + + // Add success state + const [isSuccess, setIsSuccess] = useState(false); + + // Add validation state + const [formValidation] = useState<{ + isValid: boolean; + errors: string[]; + }>({ + isValid: true, + errors: [], + }); + + // Debug log to verify selectedFile state + useEffect(() => { + console.log('selectedFile state:', selectedFile); + }, [selectedFile]); + + const selectedCatSchema = schema?.properties?.[configTab]?.additionalProperties?.anyOf?.find( + (s) => s.properties?.type.const === selectedCategory + ); + + const handleAddReferenceClick = (referenceTab: string) => { + setConfigTab(referenceTab); + setEditing(true); + setSelectedCategory(''); + }; + + const readOnly = initialConfig !== undefined; + + const validate = useMemo(() => { + const ajv = new Ajv({ strictSchema: false, allErrors: true }); + if (!schema) { + return; + } + return ajv.compile(schema as AnySchema); + }, [schema]); + + const [atomsMap, setAtomsMap] = useState({}); + + // Fix TS2554: Adjust useConfigAtom call to pass only schema and atomsMap + const config = useConfigAtom(schema, atomsMap); + + if (validate && initialConfig && !initialConfigValidated.current) { + initialConfigValidated.current = true; + validate(initialConfig); + if (validate.errors) { + throw new Error('Invalid Simulation Campaign Configuration'); + } + } + + const errors = useMemo(() => { + if (validate) { + validate(config); + } + return validate?.errors; + }, [validate, config]); + + useObioneJsonConfigurationSchema(circuitId, notification, setSchema, setAtomsMap); + + // Update the submit button condition + const canSubmit = + !errors?.length && !loading && !readOnly && selectedFile && formValidation.isValid; + + // Show success page if upload was successful + if (isSuccess) { + return ( +
+
+
+ ✓ Morphology created successfully +
+ +
+
+ ); + } + + if (!schema) { + return ( +
+ +
+ ); + } + + return ( +
+
+
+
+
+ {/* ... form validation */} +
Assets
+
{ + setConfigTab('assets'); + setEditing(true); + setSelectedCategory(''); + setSelectedItemIdx(null); + }} + onKeyDown={(e: KeyboardEvent) => { + if (e.key === 'Enter' || e.key === ' ') { + setConfigTab('assets'); + setEditing(true); + setSelectedCategory(''); + setSelectedItemIdx(null); + } + }} + > + Assets +
+ {selectedFile ? ( + <> + + + + ) : ( + <> + + + + )} +
+
+ {CATEGORIES.filter((c) => c !== 'Assets').map((c) => ( + +
{c}
+ {schema.properties && + Object.entries(schema.properties) + .filter(([k]) => k !== 'type' && ORDERING[k]?.category === c) + .sort((a, b) => { + const order = (k: string) => ORDERING[k]?.order ?? 999; + return order(a[0]) - order(b[0]); + }) + .map(([k, v]) => ( +
+ ))} + + ))} + {!readOnly && ( + + )} +
+
+
+ {configTab === 'assets' && editing && ( +
+
+ UPLOAD MORPHOLOGY FILE +
+
+ One reference file should be loaded. +
+
+
+ + {fileStatus?.message && ( + {fileStatus.message} + )} +
+
+
+ )} + {schema.properties && + schema.properties?.[configTab]?.additionalProperties?.anyOf && + !selectedCategory && + editing && + configTab !== 'assets' && ( +
+ {schema.properties[configTab].additionalProperties.anyOf.map((o) => ( +
{ + if (isRootCategory(schema, configTab)) return; + setSelectedCategory(o.properties?.type.const ?? ''); + const initial: Record = {}; + if (o.properties) { + Object.entries(o.properties).forEach(([subkey, subValue]) => { + initial[subkey] = + subkey === 'type' + ? (subValue.const ?? null) + : (subValue.default ?? null); + }); + } + const itemIndexes = Object.keys(atomsMap[configTab]).map((subkey) => + parseInt(subkey.split('_')[1], 10) + ); + itemIndexes.sort((a, b) => a - b); + const itemIdx = (itemIndexes.at(-1) ?? -1) + 1; + setSelectedItemIdx(itemIdx); + setAtomsMap({ + ...atomsMap, + [configTab]: { + ...atomsMap[configTab], + [resolveKey(schema, configTab, itemIdx)]: + atom>(initial), + }, + }); + }} + onKeyDown={(e: KeyboardEvent) => { + if (e.key === 'Enter' || e.key === ' ') { + if (isRootCategory(schema, configTab)) return; + setSelectedCategory(o.properties?.type.const ?? ''); + const initial: Record = {}; + if (o.properties) { + Object.entries(o.properties).forEach(([subkey, subValue]) => { + initial[subkey] = + subkey === 'type' + ? (subValue.const ?? null) + : (subValue.default ?? null); + }); + } + const itemIndexes = Object.keys(atomsMap[configTab]).map((subkey) => + parseInt(subkey.split('_')[1], 10) + ); + itemIndexes.sort((a, b) => a - b); + const itemIdx = (itemIndexes.at(-1) ?? -1) + 1; + setSelectedItemIdx(itemIdx); + setAtomsMap({ + ...atomsMap, + [configTab]: { + ...atomsMap[configTab], + [resolveKey(schema, configTab, itemIdx)]: + atom>(initial), + }, + }); + } + }} + > +
{o.title}
+
{o.description}
+
+ ))} +
+ )} + {schema.properties && + schema.properties?.[configTab] && + editing && + (isRootCategory(schema, configTab) || selectedCatSchema) && + configTab !== 'assets' && ( + + )} +
+
+ {showConfig && ( +
+
+
+

New Record JSON

+ +
+ +
+              {JSON.stringify(newJsonPayload, null, 2)}
+            
+ +
+ +
+
+
+ )} +
+ ); +} From 0c93cea546f29451dd8556d8a0c575bf9aeec19c Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Thu, 11 Sep 2025 21:49:27 +0200 Subject: [PATCH 21/44] updated with feedback --- .../morphology/_components/components.tsx | 574 +++--------------- .../_components/hooks/config-atom.ts | 52 ++ .../morphology/_components/hooks/schema.ts | 209 +++++++ src/features/contribute/morphology/index.tsx | 452 ++++++++------ src/features/contribute/morphology/types.ts | 36 ++ 5 files changed, 632 insertions(+), 691 deletions(-) create mode 100644 src/features/contribute/morphology/_components/hooks/config-atom.ts create mode 100644 src/features/contribute/morphology/_components/hooks/schema.ts create mode 100755 src/features/contribute/morphology/types.ts diff --git a/src/features/contribute/morphology/_components/components.tsx b/src/features/contribute/morphology/_components/components.tsx index 67656a50b..d3d654541 100644 --- a/src/features/contribute/morphology/_components/components.tsx +++ b/src/features/contribute/morphology/_components/components.tsx @@ -1,17 +1,15 @@ +// src/features/contribute/morphology/_components/components.tsx import { useEffect, useState } from 'react'; -import { atom, useAtom } from 'jotai'; -import { InputNumber, Input, Select, Button } from 'antd'; -import { CheckCircleOutlined, CloseCircleOutlined, PlusCircleOutlined } from '@ant-design/icons'; +import { useAtom, PrimitiveAtom } from 'jotai'; +import { InputNumber, Input, Select } from 'antd'; import isNil from 'lodash/isNil'; import { JSONMorphologySchema } from '../types'; -import { isPlainObject } from './utils'; import Tooltip from './tooltip'; import { classNames } from '@/util/utils'; import { getSession } from '@/authFetch'; -// Define interfaces for API response data interface SpeciesRecord { id: string; name: string; @@ -81,16 +79,15 @@ interface MtypeData { data: MtypeRecord[]; } -type Primitive = null | boolean | number | string; +type Primitive = null | boolean | number | string | undefined; interface Object { - [key: string]: Primitive | Primitive[] | Object; + [key: string]: ConfigValue; } export type ConfigValue = Primitive | Primitive[] | Object; -export type Config = Record; +export type Config = Record>; -// Move session fetch to a function to avoid top-level await const getSessionWithCheck = async () => { const session = await getSession(); if (!session) { @@ -99,7 +96,6 @@ const getSessionWithCheck = async () => { return session; }; -// Export getRequiredFieldErrors so it can be used in index.tsx export const isEmptyValue = (value: ConfigValue): boolean => { if (isNil(value) || value === '') return true; if (Array.isArray(value) && value.length === 0) return true; @@ -107,7 +103,6 @@ export const isEmptyValue = (value: ConfigValue): boolean => { return false; }; -// Export getRequiredFieldErrors export const getRequiredFieldErrors = ( state: Record, schema: JSONMorphologySchema @@ -159,7 +154,6 @@ const processData = async (token: string): Promise => { return null; } - // Add the generic records as in the Python code json_data_species.data.push({ id: 'b7ad4cca-4ac2-4095-9781-37fb68fe9ca1', name: 'Generic Mus musculus', @@ -353,9 +347,10 @@ const fetchMtypes = async ( mtype_list.push(mtype_entry); } } + return mtype_list; } catch (error) { - console.error((error as Error).message); + console.error('fetchMtypes: Error', (error as Error).message); return null; } }; @@ -385,30 +380,20 @@ export function JSONMorphologySchemaForm({ disabled, schema, stateAtom, - config, - onAddReferenceClick, nodeId, - currentCategory, }: { disabled: boolean; - config: Config; schema: JSONMorphologySchema; - stateAtom: ReturnType>; - onAddReferenceClick: (reference: string) => void; + stateAtom: PrimitiveAtom<{ [key: string]: ConfigValue }>; nodeId?: string; currentCategory?: string; }) { const skip = ['type']; const [state, setState] = useAtom(stateAtom); - const [addingElement, setAddingElement] = useState<{ [key: string]: boolean }>({ - legacy_id: true, - }); - const [newElement, setNewElement] = useState<{ [key: string]: number | string | null }>({}); const [validationErrors, setValidationErrors] = useState([]); const [touchedFields, setTouchedFields] = useState>(new Set()); - // NEW STATE TO STORE API DATA const [allSpeciesStrains, setAllSpeciesStrains] = useState | null>(null); const [brainRegionName, setBrainRegionName] = useState(null); - const referenceTypesToConfigKeys: Record = { - NeuronSetReference: 'neuron_sets', - TimestampsReference: 'timestamps', - }; - - const referenceTypesToTitles: Record = { - NeuronSetReference: 'Neuron Set', - TimestampsReference: 'Timestamps', - }; - - // Validate form whenever state changes useEffect(() => { const errors = getRequiredFieldErrors(state, schema); setValidationErrors(errors); }, [state, schema]); - // Fetch API data on component mount useEffect(() => { const fetchData = async () => { const session = await getSessionWithCheck(); @@ -481,237 +454,89 @@ export function JSONMorphologySchemaForm({ } if (licensesData) { setAllLicenses(licensesData); - setState((prev) => ({ - ...prev, - license_id: prev.license_id || 'ad8686db-3cdd-4e3f-bcbd-812380a9eba7', - })); } if (mtypesData) { setAllMtypes(mtypesData); } - if (brainRegionName) { - setBrainRegionName(brainRegionName); - } + setBrainRegionName(brainRegionName); } catch (error) { - console.error((error as Error).message); + console.error('Failed to fetch data:', error); } }; - fetchData(); - }, [nodeId, setState]); - - // Rest of the useEffect hook for initial state population... - useEffect(() => { - if (!schema.properties) return; - - const initial: Record = {}; - - Object.entries(schema.properties).forEach(([key, value]) => { - if (key === 'type') initial[key] = value.const ?? null; - else if (key === 'legacy_id') initial[key] = []; - else if (key === 'strain_id') initial[key] = null; - else if (key === 'subject_id') - initial[key] = '1c71c68c-44a4-4972-955d-7e0f264425e3'; // Default to first subject_id - else if (key === 'license_id') - initial[key] = 'ad8686db-3cdd-4e3f-bcbd-812380a9eba7'; // Default to CC BY 4.0 Deed - else initial[key] = value.default ?? null; - }); - - if (currentCategory === 'morphology' && nodeId) { - const brainRegionIdKey = Object.keys(schema.properties || {}).find((key) => { - const normalizedKey = key.toLowerCase().replace(/[\s_]/g, ''); - return ( - normalizedKey === 'brainregionid' || - normalizedKey === 'brain_region_id' || - normalizedKey === 'brainregion' - ); - }); - - if (brainRegionIdKey) { - initial[brainRegionIdKey] = nodeId; - } - } - - const speciesIdKey = Object.keys(schema.properties || {}).find((key) => { - const normalizedKey = key.toLowerCase().replace(/[\s_]/g, ''); - return ( - normalizedKey === 'speciesid' || - normalizedKey === 'species_id' || - normalizedKey === 'species' - ); - }); - if (speciesIdKey) { - initial[speciesIdKey] = 'b7ad4cca-4ac2-4095-9781-37fb68fe9ca1'; - } - - const atlasIdKey = Object.keys(schema.properties || {}).find((key) => { - const normalizedKey = key.toLowerCase().replace(/[\s_]/g, ''); - return ( - normalizedKey === 'atlasid' || normalizedKey === 'atlas_id' || normalizedKey === 'atlas' - ); - }); - - if (atlasIdKey) { - initial[atlasIdKey] = 'e3e70682-c209-4cac-a29f-6fbed82c07cd'; - } - - setState((prev) => ({ ...initial, ...prev })); - }, [stateAtom, setState, schema.properties, nodeId, currentCategory]); - - const markFieldTouched = (fieldName: string) => { - setTouchedFields((prev) => new Set(prev).add(fieldName)); - }; - - const hasFieldError = (fieldName: string): boolean => { - const isRequired = schema.required?.includes(fieldName) ?? false; - const isTouched = touchedFields.has(fieldName); - const isEmpty = isEmptyValue(state[fieldName]); - return isRequired && isTouched && isEmpty; - }; + fetchData(); + }, [nodeId]); - const getFieldErrorMessage = (fieldName: string): string | null => { - if (!hasFieldError(fieldName)) return null; - const fieldSchema = schema.properties?.[fieldName]; - const fieldTitle = fieldSchema?.title || fieldName; - return `${fieldTitle} is required`; + const markFieldTouched = (field: string) => { + setTouchedFields((prev) => new Set([...prev, field])); }; - function renderInput(k: string, v: JSONMorphologySchema) { - const obj = { - ...v, - ...v.anyOf?.find((subv) => subv.type !== 'array' && subv.type !== 'null'), - }; + function renderInput(k: string, obj: JSONMorphologySchema) { const normalizedKey = k.toLowerCase().replace(/[\s_]/g, ''); - - const fieldError = getFieldErrorMessage(k); - const hasError = hasFieldError(k); - const isBrainRegionIdField = - currentCategory === 'morphology' && - (normalizedKey === 'brainregionid' || - normalizedKey === 'brain_region_id' || - normalizedKey === 'brainregion'); + normalizedKey === 'brainregionid' || + normalizedKey === 'brain_region_id' || + normalizedKey === 'brainregion'; const isSpeciesIdField = normalizedKey === 'speciesid' || normalizedKey === 'species_id' || normalizedKey === 'species'; - const isAtlasIdField = - normalizedKey === 'atlasid' || normalizedKey === 'atlas_id' || normalizedKey === 'atlas'; - const isExperimentDateField = - normalizedKey === 'experimentdate' || - normalizedKey === 'experiment_date' || - normalizedKey === 'date' || - v.title?.toLowerCase().includes('date'); const isStrainIdField = normalizedKey === 'strainid' || normalizedKey === 'strain_id' || normalizedKey === 'strain'; - const isAgePeriodField = normalizedKey === 'ageperiod' || normalizedKey === 'age_period'; - const isLegacyIdField = normalizedKey === 'legacyid' || normalizedKey === 'legacy_id'; const isLicenseIdField = normalizedKey === 'licenseid' || normalizedKey === 'license_id'; - const isMtypeClassIdField = normalizedKey === 'mtypeclassid'; const isSubjectIdField = normalizedKey === 'subjectid' || normalizedKey === 'subject_id'; + const isMtypeClassIdField = normalizedKey === 'mtypeclassid'; const isRoleIdField = normalizedKey === 'roleid' || normalizedKey === 'role_id' || normalizedKey === 'role'; const isAgentIdField = normalizedKey === 'agentid' || normalizedKey === 'agent_id' || normalizedKey === 'agent'; - if (isBrainRegionIdField && nodeId) { - return ( -
- markFieldTouched(k)} - value={brainRegionName ? brainRegionName : 'Loading...'} - readOnly - /> -
- ); - } - - if (isSpeciesIdField) { - const speciesId = 'b7ad4cca-4ac2-4095-9781-37fb68fe9ca1'; - const selectedSpecies = allSpeciesStrains - ? allSpeciesStrains.find((s) => s.species_id === speciesId) + const isRequired = schema.required?.includes(k) ?? false; + const hasBeenTouched = touchedFields.has(k); + const fieldError = + hasBeenTouched && isRequired && isEmptyValue(state[k]) + ? `${obj.title || k} is required` : null; - const speciesName = selectedSpecies ? selectedSpecies.species_name : 'Loading...'; - - return ( -
- markFieldTouched(k)} - value={speciesName} - readOnly - /> -
- ); - } + const hasError = !!fieldError; - if (isAtlasIdField) { + if (isBrainRegionIdField) { return (
- markFieldTouched(k)} - value="e3e70682-c209-4cac-a29f-6fbed82c07cd" - readOnly - /> + + {fieldError &&
{fieldError}
}
); } - if (isExperimentDateField) { - const formatDate = (value: string) => { - const cleaned = value.replace(/[^\d\s-]/g, ''); - const parts = cleaned.split(/[\s-]+/).filter((part) => part.length > 0); - if (parts.length === 0) return ''; - if (parts.length === 1) return parts[0]; - if (parts.length === 2) return `${parts[0]} ${parts[1]}`; - return parts.slice(0, 3).join(' '); - }; - - const validateDateFormat = (value: string) => { - if (!value) return true; - const parts = value.split(' '); - if (parts.length !== 3) return false; - const [day, month, year] = parts; - const dayNum = parseInt(day, 10); - const monthNum = parseInt(month, 10); - const yearNum = parseInt(year, 10); + if (isSpeciesIdField) { + if (!allSpeciesStrains) { return ( - dayNum >= 1 && - dayNum <= 31 && - monthNum >= 1 && - monthNum <= 12 && - yearNum >= 1900 && - yearNum <= new Date().getFullYear() +
+ +
); - }; + } - const currentValue = typeof state[k] === 'string' ? state[k] : ''; - const isValid = validateDateFormat(currentValue); - const showDateError = !isValid && currentValue; + const options = allSpeciesStrains.map((species) => ({ + label: species.species_name, + value: species.species_id, + })); return (
- markFieldTouched(k)} - value={currentValue} - className={`w-full ${hasError || showDateError ? 'border-red-500' : ''}`} - onChange={(e) => { - const formatted = formatDate(e.currentTarget.value); - setState({ ...state, [k]: formatted }); + onChange={(newV) => { + setState((prev) => ({ ...prev, [k]: newV })); + markFieldTouched(k); }} - placeholder="DD MM YYYY (e.g., 15 03 2024)" + value={state[k]} + options={options} + placeholder="Select a species" + allowClear /> - {showDateError && ( -
- Please use format: DD MM YYYY (day month year) -
- )} {fieldError &&
{fieldError}
}
); @@ -756,116 +581,13 @@ export function JSONMorphologySchemaForm({ value={state[k]} options={strainOptions} placeholder="Select a strain" + allowClear /> {fieldError &&
{fieldError}
}
); } - if (isAgePeriodField) { - if (obj.enum) { - return ( -
- markFieldTouched(k)} - value={typeof state[k] === 'string' ? state[k] : ''} - onChange={(e) => { - setState({ ...state, [k]: e.currentTarget.value }); - }} - placeholder="Enter age period" - /> - {fieldError &&
{fieldError}
} -
- ); - } - - if (isLegacyIdField) { - return ( -
-
-
- {Array.isArray(state[k]) && - state[k].map((e) => ( -
- {e}{' '} - {!disabled && ( - { - const newElements = [...(Array.isArray(state[k]) ? state[k] : [])]; - newElements.splice(newElements.indexOf(e), 1); - setState({ ...state, [k]: newElements }); - markFieldTouched(k); - }} - /> - )} -
- ))} -
- {!addingElement[k] && !disabled && ( - setAddingElement({ ...addingElement, [k]: true })} - className="text-primary-8" - /> - )} - {addingElement[k] && !disabled && ( -
- setNewElement({ ...newElement, [k]: e.currentTarget.value })} - placeholder="Enter legacy ID" - /> - {newElement[k] && ( - { - setState({ - ...state, - [k]: [...(Array.isArray(state[k]) ? state[k] : []), newElement[k]], - }); - setAddingElement({ ...addingElement, [k]: false }); - setNewElement({ ...newElement, [k]: null }); - markFieldTouched(k); - }} - /> - )} - { - setAddingElement({ ...addingElement, [k]: false }); - setNewElement({ ...newElement, [k]: null }); - }} - className="text-primary-8" - /> -
- )} -
- {fieldError &&
{fieldError}
} -
- ); - } - if (isLicenseIdField) { if (!allLicenses) { return ( @@ -887,12 +609,13 @@ export function JSONMorphologySchemaForm({ className={`w-full ${hasError ? 'border-red-500' : ''}`} onBlur={() => markFieldTouched(k)} onChange={(newV) => { - setState({ ...state, [k]: newV }); + setState((prev) => ({ ...prev, [k]: newV })); markFieldTouched(k); }} value={state[k]} options={options} placeholder="Select a license" + allowClear /> {fieldError &&
{fieldError}
}
@@ -920,12 +643,13 @@ export function JSONMorphologySchemaForm({ className={`w-full ${hasError ? 'border-red-500' : ''}`} onBlur={() => markFieldTouched(k)} onChange={(newV) => { - setState({ ...state, [k]: newV }); + setState((prev) => ({ ...prev, [k]: newV })); markFieldTouched(k); }} value={state[k]} options={options} placeholder="Select a subject" + allowClear /> {fieldError &&
{fieldError}
}
@@ -953,12 +677,16 @@ export function JSONMorphologySchemaForm({ className={`w-full ${hasError ? 'border-red-500' : ''}`} onBlur={() => markFieldTouched(k)} onChange={(newV) => { - setState({ ...state, [k]: newV }); + setState((prev) => { + const newState = { ...prev, [k]: newV }; + return newState; + }); markFieldTouched(k); }} value={state[k]} options={options} placeholder="Select an MTYPE CLASS" + allowClear /> {fieldError &&
{fieldError}
}
@@ -986,12 +714,13 @@ export function JSONMorphologySchemaForm({ className={`w-full ${hasError ? 'border-red-500' : ''}`} onBlur={() => markFieldTouched(k)} onChange={(newV) => { - setState({ ...state, [k]: newV }); + setState((prev) => ({ ...prev, [k]: newV })); markFieldTouched(k); }} value={state[k]} options={options} placeholder="Select a role" + allowClear /> {fieldError &&
{fieldError}
}
@@ -1019,184 +748,29 @@ export function JSONMorphologySchemaForm({ className={`w-full ${hasError ? 'border-red-500' : ''}`} onBlur={() => markFieldTouched(k)} onChange={(newV) => { - setState({ ...state, [k]: newV }); + setState((prev) => ({ ...prev, [k]: newV })); markFieldTouched(k); }} value={state[k]} options={options} placeholder="Select an agent" + allowClear /> {fieldError &&
{fieldError}
}
); } - if (v.is_block_reference && v.properties && typeof v.properties.type.const === 'string') { - const referenceKey = referenceTypesToConfigKeys[v.properties.type.const]; - const referenceTitle = referenceTypesToTitles[v.properties.type.const]; - if (!referenceKey) return null; - const referenceConfig = config[referenceKey]; - if (!isPlainObject(referenceConfig)) return null; - - const referees = Object.entries(referenceConfig).filter(([, val]) => { - return isPlainObject(val); - }); - - if (referees.length === 0) { - return ( -
- - {fieldError &&
{fieldError}
} -
- ); - } - - const defaultV = - isPlainObject(state[k]) && typeof state[k].block_name === 'string' - ? state[k].block_name - : null; - - return ( -
- onFieldChange(field, { ...value, [key]: e.target.value })} + /> +
+ ))} +
+ ) : ( + onFieldChange(field, e.target.value)} + /> + )} +
+ ); +} + +export default function DetailHeader< + T extends EntityCoreIdentifiableNamed & Partial>, +>({ fields, detail, extraHeaderAction, @@ -44,38 +94,90 @@ export default function DetailHeader({ commonFieldsClassName, fieldsClassName, onDownload, + isEditing = false, + onEditToggle, + onSave, + onFieldChange, }: { fields: Array; detail: T; commonFields?: Array; - // @FIXME: this property is not used. - // eslint-disable-next-line react/no-unused-prop-types url?: string | null; extraHeaderAction?: ReactNode; commonFieldsClassName?: string; fieldsClassName?: string; onDownload?: (entity: T) => void; + isEditing?: boolean; + onEditToggle?: () => void; + onSave?: () => void; + onFieldChange?: (fieldName: string, value: unknown) => void; }) { return (
- detail={detail} extraHeaderAction={extraHeaderAction} onDownload={onDownload} /> + + detail={detail} + extraHeaderAction={extraHeaderAction} + onDownload={onDownload} + isEditing={isEditing} + onEditToggle={onEditToggle} + onSave={onSave} + />
- {commonFields.length > 0 && ( -
- {commonFields.map(({ className, field }) => ( - - ))} -
+ {isEditing ? ( + <> + {commonFields.length > 0 && ( +
+ {commonFields.map(({ className, field }) => ( + + key={field} + className={className} + field={field} + data={detail} + onFieldChange={onFieldChange!} + /> + ))} +
+ )} +
+ {fields.map(({ className, field }) => ( + + key={field} + className={className} + field={field} + data={detail} + onFieldChange={onFieldChange!} + /> + ))} +
+ + ) : ( + <> + {commonFields.length > 0 && ( +
+ {commonFields.map(({ className, field }) => ( + key={field} className={className} field={field} data={detail} /> + ))} +
+ )} +
+ {fields.map(({ className, field }) => ( + key={field} className={className} field={field} data={detail} /> + ))} +
+ )} -
- {fields.map(({ className, field }) => ( - - ))} -
); diff --git a/src/features/details-view/summary.tsx b/src/features/details-view/summary.tsx index b067b3578..1cfb23e86 100644 --- a/src/features/details-view/summary.tsx +++ b/src/features/details-view/summary.tsx @@ -25,8 +25,11 @@ import type { TypeSummaryProps } from '@/entity-configuration/definitions/view-d import type { EntityCoreIdentifiableNamed } from '@/api/entitycore/types/shared/global'; import type { DetailViewUrlParams } from '@/types/explore-section/application'; import { downloadArchive } from '@/services/entity-download'; +import { EntityCoreFields } from '@/entity-configuration/definitions/fields-defs/enums'; -export default function Summary({ +export default function Summary< + T extends EntityCoreIdentifiableNamed & Partial>, +>({ payload, showViewMode, extraHeaderAction, @@ -50,12 +53,15 @@ export default function Summary({ const memoizedDetailAtom = useMemo(() => { const detailFetchAtom = detailFamily({ id, virtualLabId, projectId, dataType, ...params }); return conditionalAtom(payload, detailFetchAtom); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [payload, id, virtualLabId, projectId, dataType, JSON.stringify(params)]); + }, [payload, id, virtualLabId, projectId, dataType, params]); const detail = useAtomValue(memoizedDetailAtom); - const onDownload = useCallback((entity: T) => downloadArchive(entity.type, [entity.id]), []); + const onDownload = useCallback( + (entity: EntityCoreIdentifiableNamed & Partial>) => + downloadArchive(entity.type, [entity.id]), + [] + ); useEffect(() => { setBrainRegionSidebarIsCollapsed(true); From 537cfd09160eb08a06c6952a1e5f37663dd711f0 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Fri, 12 Sep 2025 08:10:05 +0200 Subject: [PATCH 24/44] updated with feedback --- .../morphology/small-microcircuit.module.css | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100755 src/features/contribute/morphology/small-microcircuit.module.css diff --git a/src/features/contribute/morphology/small-microcircuit.module.css b/src/features/contribute/morphology/small-microcircuit.module.css new file mode 100755 index 000000000..0a4777633 --- /dev/null +++ b/src/features/contribute/morphology/small-microcircuit.module.css @@ -0,0 +1,32 @@ +div.threeColumns { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 2fr); + gap: 5px; + height: calc(100% - 100px); +} + +div.threeColumns > div { + min-height: 0; + height: 100%; +} + +div.threeColumns > div.scrollable { + overflow-y: auto; + overflow-x: visible; +} + +div.threeColumns > div:first-child { + display: grid; + grid-template-rows: 1fr auto; + gap: 1em; + overflow: unset; +} + +header.header { + display: flex; + flex-wrap: nowrap; + flex-direction: row; + justify-content: space-between; + align-items: center; + gap: 1em; +} From f0991406aa8935566c0e8cb5faaba871be3042cb Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Fri, 12 Sep 2025 08:14:21 +0200 Subject: [PATCH 25/44] updated with feedback --- .../morphology/_components/tooltip/index.ts | 1 + .../_components/tooltip/tooltip.module.css | 39 +++++++++ .../_components/tooltip/tooltip.tsx | 20 +++++ .../#button-edit-metadata.css# | 80 +++++++++++++++++++ .../button-edit-metadata.module.css | 78 ++++++++++++++++++ .../button-edit-metadata.tsx | 43 ++++++++++ .../button-edit-metadata/index.ts | 1 + 7 files changed, 262 insertions(+) create mode 100644 src/features/contribute/morphology/_components/tooltip/index.ts create mode 100644 src/features/contribute/morphology/_components/tooltip/tooltip.module.css create mode 100644 src/features/contribute/morphology/_components/tooltip/tooltip.tsx create mode 100644 src/features/details-view/button-edit-metadata/#button-edit-metadata.css# create mode 100644 src/features/details-view/button-edit-metadata/button-edit-metadata.module.css create mode 100644 src/features/details-view/button-edit-metadata/button-edit-metadata.tsx create mode 100644 src/features/details-view/button-edit-metadata/index.ts diff --git a/src/features/contribute/morphology/_components/tooltip/index.ts b/src/features/contribute/morphology/_components/tooltip/index.ts new file mode 100644 index 000000000..bb106e207 --- /dev/null +++ b/src/features/contribute/morphology/_components/tooltip/index.ts @@ -0,0 +1 @@ +export { default } from './tooltip'; diff --git a/src/features/contribute/morphology/_components/tooltip/tooltip.module.css b/src/features/contribute/morphology/_components/tooltip/tooltip.module.css new file mode 100644 index 000000000..a4e563aa8 --- /dev/null +++ b/src/features/contribute/morphology/_components/tooltip/tooltip.module.css @@ -0,0 +1,39 @@ +.tooltipContainer { + position: relative; + overflow: visible; +} + +.tooltip { + position: relative; + background: #0050b3ee; + color: #fff; + padding: 0.5em 1em; + border-radius: 0.25em; + position: absolute; + left: 0; + right: 0; + bottom: 0; + width: 100%; + pointer-events: none; + z-index: 9; + transform: translateY(calc(100% + 16px)); + transition: all 0.2s; + opacity: 0; +} + +.tooltipContainer:hover .tooltip { + opacity: 1; +} + +.tooltip::after { + content: ''; + border: 16px solid transparent; + border-bottom: 16px solid #0050b3ee; + position: absolute; + top: -16px; + left: 50%; + width: 0; + height: 0; + margin: -16px; + transform: scale(0.5, 1); +} diff --git a/src/features/contribute/morphology/_components/tooltip/tooltip.tsx b/src/features/contribute/morphology/_components/tooltip/tooltip.tsx new file mode 100644 index 000000000..45a1501f4 --- /dev/null +++ b/src/features/contribute/morphology/_components/tooltip/tooltip.tsx @@ -0,0 +1,20 @@ +import React from 'react'; + +import { classNames } from '@/util/utils'; + +import styles from './tooltip.module.css'; + +interface TooltipProps { + className?: string; + value?: React.ReactNode; + children: React.ReactNode; +} + +export default function Tooltip({ className, value, children }: TooltipProps) { + return ( +
+ {children} + {value &&
{value}
} +
+ ); +} diff --git a/src/features/details-view/button-edit-metadata/#button-edit-metadata.css# b/src/features/details-view/button-edit-metadata/#button-edit-metadata.css# new file mode 100644 index 000000000..c4baa6891 --- /dev/null +++ b/src/features/details-view/button-edit-metadata/#button-edit-metadata.css# @@ -0,0 +1,80 @@ +.buttonEditMetadata { + margin: 0; + padding: 0; + position: relative; + overflow: visible; +} + padding: 0; + position: relative; + +.buttonEditMetadata, +.buttonEditMetadata > button.actualButton { + cursor: pointer; +} + +.buttonEditMetadata:hover > button.actualButton:hover { + color: #0352b3; +} + +.tooltip { + position: absolute; + left: 50%; + bottom: -2.5em; + width: auto; + height: 2em; + color: #fffe; + background-color: #003a8c; + z-index: 9999; + display: grid; + place-items: center; + margin-left: -50%; + padding: 0 1em; + pointer-events: none; + opacity: 0; + transition: opacity 0.2s; +} + +.buttonEditMetadata.copied .tooltip { + display: none; +} + +.buttonEditMetadata:hover .tooltip { + opacity: 1; +} + +.tooltip::after { + content: ''; + background-color: transparent; + position: absolute; + left: 50%; + top: -1em; + width: 0; + height: 0; + border-width: 0.5em; + border-color: transparent; + border-bottom: 0.5em solid #003a8c; +} + +.copiedLabel { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + display: flex; + flex-wrap: nowrap; + flex-direction: row; + justify-content: center; + align-items: center; + gap: 1em; + opacity: 0; + pointer-events: none; +} + +.buttonEditMetadata.copied .copiedLabel { + opacity: 1; +} + +.buttonEditMetadata.copied > button.actualButton { + opacity: 0; +} diff --git a/src/features/details-view/button-edit-metadata/button-edit-metadata.module.css b/src/features/details-view/button-edit-metadata/button-edit-metadata.module.css new file mode 100644 index 000000000..81dd62528 --- /dev/null +++ b/src/features/details-view/button-edit-metadata/button-edit-metadata.module.css @@ -0,0 +1,78 @@ +.buttonEditMetadata { + margin: 0; + padding: 0; + position: relative; + overflow: visible; +} + +.buttonEditMetadata, +.buttonEditMetadata > button.actualButton { + cursor: pointer; +} + +.buttonEditMetadata:hover > button.actualButton:hover { + color: #0352b3; +} + +.tooltip { + position: absolute; + left: 50%; + bottom: -2.5em; + width: auto; + height: 2em; + color: #fffe; + background-color: #003a8c; + z-index: 9999; + display: grid; + place-items: center; + margin-left: -50%; + padding: 0 1em; + pointer-events: none; + opacity: 0; + transition: opacity 0.2s; +} + +.buttonEditMetadata.copied .tooltip { + display: none; +} + +.buttonEditMetadata:hover .tooltip { + opacity: 1; +} + +.tooltip::after { + content: ''; + background-color: transparent; + position: absolute; + left: 50%; + top: -1em; + width: 0; + height: 0; + border-width: 0.5em; + border-color: transparent; + border-bottom: 0.5em solid #003a8c; +} + +.copiedLabel { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + display: flex; + flex-wrap: nowrap; + flex-direction: row; + justify-content: center; + align-items: center; + gap: 1em; + opacity: 0; + pointer-events: none; +} + +.buttonEditMetadata.copied .copiedLabel { + opacity: 1; +} + +.buttonEditMetadata.copied > button.actualButton { + opacity: 0; +} diff --git a/src/features/details-view/button-edit-metadata/button-edit-metadata.tsx b/src/features/details-view/button-edit-metadata/button-edit-metadata.tsx new file mode 100644 index 000000000..01d1b268a --- /dev/null +++ b/src/features/details-view/button-edit-metadata/button-edit-metadata.tsx @@ -0,0 +1,43 @@ +import React from 'react'; +import { Button } from 'antd'; +import { EditOutlined, EyeOutlined } from '@ant-design/icons'; + +import { classNames } from '@/util/utils'; + +import styles from './button-edit-metadata.module.css'; + +interface ButtonEditMetadataProps { + className?: string; + label?: string; + tooltip?: string; + isEditing: boolean; + onClick: () => void; +} + +export function ButtonEditMetadata({ + className, + label = 'Edit Metadata', + isEditing, + onClick, +}: ButtonEditMetadataProps) { + return ( +
+ +
+ ); +} diff --git a/src/features/details-view/button-edit-metadata/index.ts b/src/features/details-view/button-edit-metadata/index.ts new file mode 100644 index 000000000..4226d5370 --- /dev/null +++ b/src/features/details-view/button-edit-metadata/index.ts @@ -0,0 +1 @@ +export * from './button-edit-metadata'; From 7f1d0556339ceaf3f103fc496e7a5cee8ddeb39e Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Fri, 12 Sep 2025 08:49:11 +0200 Subject: [PATCH 26/44] updated with feedback --- .../interactive/add/experimental/morphology/page.tsx | 12 +++--------- .../morphology/_components/hooks/schema.ts | 1 - src/features/contribute/morphology/index.tsx | 4 +--- 3 files changed, 4 insertions(+), 13 deletions(-) diff --git a/src/app/app/virtual-lab/lab/[virtualLabId]/project/[projectId]/explore/interactive/add/experimental/morphology/page.tsx b/src/app/app/virtual-lab/lab/[virtualLabId]/project/[projectId]/explore/interactive/add/experimental/morphology/page.tsx index 74df5228a..73400c1b2 100755 --- a/src/app/app/virtual-lab/lab/[virtualLabId]/project/[projectId]/explore/interactive/add/experimental/morphology/page.tsx +++ b/src/app/app/virtual-lab/lab/[virtualLabId]/project/[projectId]/explore/interactive/add/experimental/morphology/page.tsx @@ -4,17 +4,11 @@ import { useParams } from 'next/navigation'; import ContributeMorphologyConfiguration from '@/features/contribute/morphology'; import { WorkspaceContext } from '@/types/common'; -type Params = WorkspaceContext & { circuit_id: string }; +type Params = WorkspaceContext; export default function MorphologyPage() { const params = useParams(); - const { virtualLabId, projectId, circuit_id } = params; + const { virtualLabId, projectId } = params; - return ( - - ); + return ; } diff --git a/src/features/contribute/morphology/_components/hooks/schema.ts b/src/features/contribute/morphology/_components/hooks/schema.ts index f09d4543d..825f9bc51 100644 --- a/src/features/contribute/morphology/_components/hooks/schema.ts +++ b/src/features/contribute/morphology/_components/hooks/schema.ts @@ -143,7 +143,6 @@ export function resolveKey( } export function useObioneJsonConfigurationSchema( - circuitId: string, notification: NotificationInstance, setSchema: React.Dispatch>, setAtomsMap: (atomsMap: AtomsMap) => void diff --git a/src/features/contribute/morphology/index.tsx b/src/features/contribute/morphology/index.tsx index 64840df58..8caf5ef37 100755 --- a/src/features/contribute/morphology/index.tsx +++ b/src/features/contribute/morphology/index.tsx @@ -30,13 +30,11 @@ import { classNames } from '@/util/utils'; import styles from './small-microcircuit.module.css'; export default function ContributeMorphologyConfiguration({ - circuitId, virtualLabId, projectId, initialCampaignId, initialConfig, }: { - circuitId: string; virtualLabId: string; projectId: string; initialCampaignId?: string; @@ -127,7 +125,7 @@ export default function ContributeMorphologyConfiguration({ return validate.errors ?? []; }, [validate, config]); - useObioneJsonConfigurationSchema(circuitId, notification, setSchema, setAtomsMap); + useObioneJsonConfigurationSchema(notification, setSchema, setAtomsMap); const canSubmit = !errors.length && !loading && !readOnly && selectedFile && formValidation.isValid; From 1040e896d8eb515a4ef8db3625ad70e1f4849c79 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Fri, 12 Sep 2025 10:24:25 +0200 Subject: [PATCH 27/44] updated with feedback --- src/features/contribute/index.tsx | 656 ------------------ .../morphology/_components/components.tsx | 190 +++-- .../morphology/_components/hooks/schema.ts | 138 +--- .../morphology/_components/section.tsx | 82 ++- src/features/contribute/morphology/index.tsx | 175 ++--- src/features/contribute/morphology/types.ts | 9 +- .../button-edit-metadata.tsx | 1 - src/features/details-view/overview.tsx | 28 +- 8 files changed, 277 insertions(+), 1002 deletions(-) delete mode 100755 src/features/contribute/index.tsx diff --git a/src/features/contribute/index.tsx b/src/features/contribute/index.tsx deleted file mode 100755 index 78aa0b8a4..000000000 --- a/src/features/contribute/index.tsx +++ /dev/null @@ -1,656 +0,0 @@ -'use client'; - -import { - LoadingOutlined, - UploadOutlined, - CheckCircleFilled, - WarningFilled, - RightOutlined, -} from '@ant-design/icons'; -import Ajv, { AnySchema } from 'ajv'; -import { atom } from 'jotai'; -import { Fragment, useMemo, useRef, useState, KeyboardEvent, useEffect } from 'react'; -import { Config, ConfigValue, JSONSchemaForm } from './_components/components'; -import { useConfigAtom } from './_components/hooks/config-atom'; -import { - isRootCategory, - resolveKey, - useObioneJsonConfigurationSchema, -} from './_components/hooks/schema'; -import { Section } from './_components/section'; -import { CATEGORIES, isAtom, ORDERING } from './_components/utils'; -import { AtomsMap, JSONSchema } from './types'; -import { resolveDataKey } from '@/utils/key-builder'; -import { useBrainRegionHierarchy } from '@/features/brain-region-hierarchy/context'; -import ApiError from '@/api/error'; -import authFetch from '@/authFetch'; -import { useAppNotification } from '@/components/notification'; -import { classNames } from '@/util/utils'; -import styles from './small-microcircuit.module.css'; - -export default function ContributeMorphologyConfiguration({ - circuitId, - virtualLabId, - projectId, - initialCampaignId, - initialConfig, -}: { - circuitId: string; - virtualLabId: string; - projectId: string; - initialCampaignId?: string; - initialConfig?: Config; -}) { - if (!!initialCampaignId !== !!initialConfig) { - throw new Error('Both or none of initialCampaignId, initialConfigId should be passed'); - } - - const { node } = useBrainRegionHierarchy({ - dataKey: resolveDataKey({ section: 'explore', projectId }), - }); - - const [configTab, setConfigTab] = useState('info'); - const [editing, setEditing] = useState(true); - const [schema, setSchema] = useState(null); - const [selectedCategory, setSelectedCategory] = useState(''); - const [selectedItemIdx, setSelectedItemIdx] = useState(null); - const [loading, setLoading] = useState(false); - const [showConfig, setShowConfig] = useState(false); - const [selectedFile, setSelectedFile] = useState(null); - const [fileStatus, setFileStatus] = useState<{ - message?: string; - }>({}); - const [newJsonPayload, setNewJsonPayload] = useState(null); - const notification = useAppNotification(); - const [campaignId, setCampaignId] = useState(initialCampaignId ?? ''); - const initialConfigValidated = useRef(false); - - // Add success state - const [isSuccess, setIsSuccess] = useState(false); - - // Add validation state - const [formValidation, setFormValidation] = useState<{ - isValid: boolean; - errors: string[]; - }>({ - isValid: true, - errors: [], - }); - - // Debug log to verify selectedFile state - useEffect(() => { - console.log('selectedFile state:', selectedFile); - }, [selectedFile]); - - const selectedCatSchema = schema?.properties?.[configTab]?.additionalProperties?.anyOf?.find( - (s) => s.properties?.type.const === selectedCategory - ); - - const handleAddReferenceClick = (referenceTab: string) => { - setConfigTab(referenceTab); - setEditing(true); - setSelectedCategory(''); - }; - - // Handle validation changes from the form - const handleValidationChange = (isValid: boolean, errors: string[]) => { - setFormValidation({ isValid, errors }); - }; - - const readOnly = initialConfig !== undefined; - - const validate = useMemo(() => { - const ajv = new Ajv({ strictSchema: false, allErrors: true }); - if (!schema) { - return; - } - return ajv.compile(schema as AnySchema); - }, [schema]); - - const [atomsMap, setAtomsMap] = useState({}); - - const config = useConfigAtom(schema, atomsMap, node.id, configTab); - - if (validate && initialConfig && !initialConfigValidated.current) { - initialConfigValidated.current = true; - validate(initialConfig); - if (validate.errors) { - throw new Error('Invalid Simulation Campaign Configuration'); - } - } - - const errors = useMemo(() => { - if (validate) { - validate(config); - } - return validate?.errors; - }, [validate, config]); - - useObioneJsonConfigurationSchema(circuitId, notification, setSchema, setAtomsMap); - - // Update the submit button condition - const canSubmit = - !errors?.length && !loading && !readOnly && selectedFile && formValidation.isValid; - - // Show success page if upload was successful - if (isSuccess) { - return ( -
-
-
- ✓ Morphology created successfully -
- -
-
- ); - } - - if (!schema) { - return ( -
- -
- ); - } - - return ( -
-
-
-
-
- {/* ... form validation */} -
Assets
-
{ - setConfigTab('assets'); - setEditing(true); - setSelectedCategory(''); - setSelectedItemIdx(null); - }} - onKeyDown={(e: KeyboardEvent) => { - if (e.key === 'Enter' || e.key === ' ') { - setConfigTab('assets'); - setEditing(true); - setSelectedCategory(''); - setSelectedItemIdx(null); - } - }} - > - Assets -
- {selectedFile ? ( - <> - - - - ) : ( - <> - - - - )} -
-
- {CATEGORIES.filter((c) => c !== 'Assets').map((c) => ( - -
{c}
- {schema.properties && - Object.entries(schema.properties) - .filter(([k]) => k !== 'type' && ORDERING[k]?.category === c) - .sort((a, b) => { - const order = (k: string) => ORDERING[k]?.order ?? 999; - return order(a[0]) - order(b[0]); - }) - .map(([k, v]) => ( -
- ))} - - ))} -
- {!readOnly && ( - - )} -
-
- {configTab === 'assets' && editing && ( -
-
- UPLOAD MORPHOLOGY FILE -
-
- One reference file should be loaded. -
-
-
- - {fileStatus?.message && ( - {fileStatus.message} - )} -
-
-
- )} - {schema.properties && - schema.properties?.[configTab]?.additionalProperties?.anyOf && - !selectedCategory && - editing && - configTab !== 'assets' && ( -
- {schema.properties[configTab].additionalProperties.anyOf.map((o) => ( -
{ - if (isRootCategory(schema, configTab)) return; - setSelectedCategory(o.properties?.type.const ?? ''); - const initial: Record = {}; - if (o.properties) { - Object.entries(o.properties).forEach(([subkey, subValue]) => { - initial[subkey] = - subkey === 'type' - ? (subValue.const ?? null) - : (subValue.default ?? null); - }); - } - const itemIndexes = Object.keys(atomsMap[configTab]).map((subkey) => - parseInt(subkey.split('_')[1], 10) - ); - itemIndexes.sort((a, b) => a - b); - const itemIdx = (itemIndexes.at(-1) ?? -1) + 1; - setSelectedItemIdx(itemIdx); - setAtomsMap({ - ...atomsMap, - [configTab]: { - ...atomsMap[configTab], - [resolveKey(schema, configTab, itemIdx)]: - atom>(initial), - }, - }); - }} - onKeyDown={(e: KeyboardEvent) => { - if (e.key === 'Enter' || e.key === ' ') { - if (isRootCategory(schema, configTab)) return; - setSelectedCategory(o.properties?.type.const ?? ''); - const initial: Record = {}; - if (o.properties) { - Object.entries(o.properties).forEach(([subkey, subValue]) => { - initial[subkey] = - subkey === 'type' - ? (subValue.const ?? null) - : (subValue.default ?? null); - }); - } - const itemIndexes = Object.keys(atomsMap[configTab]).map((subkey) => - parseInt(subkey.split('_')[1], 10) - ); - itemIndexes.sort((a, b) => a - b); - const itemIdx = (itemIndexes.at(-1) ?? -1) + 1; - setSelectedItemIdx(itemIdx); - setAtomsMap({ - ...atomsMap, - [configTab]: { - ...atomsMap[configTab], - [resolveKey(schema, configTab, itemIdx)]: - atom>(initial), - }, - }); - } - }} - > -
{o.title}
-
{o.description}
-
- ))} -
- )} - {schema.properties && - schema.properties?.[configTab] && - editing && - (isRootCategory(schema, configTab) || selectedCatSchema) && - configTab !== 'assets' && ( - - )} -
-
- {showConfig && ( -
-
-
-

New Record JSON

- -
- -
-              {JSON.stringify(newJsonPayload, null, 2)}
-            
- -
- -
-
-
- )} -
- ); -} diff --git a/src/features/contribute/morphology/_components/components.tsx b/src/features/contribute/morphology/_components/components.tsx index d3d654541..469d263de 100644 --- a/src/features/contribute/morphology/_components/components.tsx +++ b/src/features/contribute/morphology/_components/components.tsx @@ -1,4 +1,3 @@ -// src/features/contribute/morphology/_components/components.tsx import { useEffect, useState } from 'react'; import { useAtom, PrimitiveAtom } from 'jotai'; import { InputNumber, Input, Select } from 'antd'; @@ -131,8 +130,8 @@ const processData = async (token: string): Promise => { const urlSpecies = 'https://staging.openbraininstitute.org/api/entitycore/subject'; const urlStrain = 'https://staging.openbraininstitute.org/api/entitycore/strain'; - let json_data_species: SpeciesData = { data: [] }; - let json_data_strain: StrainData = { data: [] }; + let jsonDataSpecies: SpeciesData = { data: [] }; + let jsonDataStrain: StrainData = { data: [] }; try { const [responseSpecies, responseStrain] = await Promise.all([ @@ -147,18 +146,17 @@ const processData = async (token: string): Promise => { throw new Error(`Strain request failed with status code: ${responseStrain.status}`); } - json_data_species = await responseSpecies.json(); - json_data_strain = await responseStrain.json(); - } catch (error) { - console.error((error as Error).message); + jsonDataSpecies = await responseSpecies.json(); + jsonDataStrain = await responseStrain.json(); + } catch { return null; } - json_data_species.data.push({ + jsonDataSpecies.data.push({ id: 'b7ad4cca-4ac2-4095-9781-37fb68fe9ca1', name: 'Generic Mus musculus', }); - json_data_species.data.push({ + jsonDataSpecies.data.push({ id: '3b1c2a25-b4fb-468d-98d2-d2d431ac8b4a', name: 'Generic Rattus norvegicus', }); @@ -169,27 +167,25 @@ const processData = async (token: string): Promise => { strains: Record; }> = []; - for (const species_record of json_data_species.data) { - if (species_record.name === 'Unknown') { + for (const speciesRecord of jsonDataSpecies.data) { + if (speciesRecord.name === 'Unknown') { continue; } - const filtered_data = json_data_strain.data.filter( - (item) => item.species_id === species_record.id - ); + const filteredData = jsonDataStrain.data.filter((item) => item.species_id === speciesRecord.id); const strains: Record = {}; - for (const strain of filtered_data) { + for (const strain of filteredData) { strains[strain.name] = strain.id; } - const species_entry = { - species_id: species_record.id, - species_name: species_record.name, + const speciesEntry = { + species_id: speciesRecord.id, + species_name: speciesRecord.name, strains, }; - speclist.push(species_entry); + speclist.push(speciesEntry); } return JSON.stringify(speclist, null, 2); @@ -208,17 +204,16 @@ const fetchAgents = async (token: string): Promise | null if (!response.ok) { throw new Error(`Agent request failed with status code: ${response.status}`); } - const json_data_person: PersonData = await response.json(); + const jsonDataPerson: PersonData = await response.json(); - const person_dict: Record = {}; - for (const item of json_data_person.data) { + const personDict: Record = {}; + for (const item of jsonDataPerson.data) { if (item.pref_label) { - person_dict[item.pref_label] = item.id; + personDict[item.pref_label] = item.id; } } - return person_dict; - } catch (error) { - console.error((error as Error).message); + return personDict; + } catch { return null; } }; @@ -236,17 +231,16 @@ const fetchRoles = async (token: string): Promise | null> if (!response.ok) { throw new Error(`Role request failed with status code: ${response.status}`); } - const json_data_role: RoleData = await response.json(); + const jsonDataRole: RoleData = await response.json(); - const role_dict: Record = {}; - for (const item of json_data_role.data) { + const roleDict: Record = {}; + for (const item of jsonDataRole.data) { if (item.name) { - role_dict[item.name] = item.id; + roleDict[item.name] = item.id; } } - return role_dict; - } catch (error) { - console.error((error as Error).message); + return roleDict; + } catch { return null; } }; @@ -266,21 +260,20 @@ const fetchSubjects = async ( if (!response.ok) { throw new Error(`Subject request failed with status code: ${response.status}`); } - const json_data_subject: SubjectData = await response.json(); + const jsonDataSubject: SubjectData = await response.json(); - const subject_list: Array<{ label: string; value: string }> = []; - for (const item of json_data_subject.data) { + const subjectList: Array<{ label: string; value: string }> = []; + for (const item of jsonDataSubject.data) { if (item.name) { - const subject_entry = { + const subjectEntry = { label: item.name, value: item.id, }; - subject_list.push(subject_entry); + subjectList.push(subjectEntry); } } - return subject_list; - } catch (error) { - console.error((error as Error).message); + return subjectList; + } catch { return null; } }; @@ -300,21 +293,20 @@ const fetchLicenses = async ( if (!response.ok) { throw new Error(`License request failed with status code: ${response.status}`); } - const json_data_license: LicenseData = await response.json(); + const jsonDataLicense: LicenseData = await response.json(); - const license_list: Array<{ label: string; value: string }> = []; - for (const item of json_data_license.data) { + const licenseList: Array<{ label: string; value: string }> = []; + for (const item of jsonDataLicense.data) { if (item.label && item.label !== 'undefined') { - const license_entry = { + const licenseEntry = { label: item.label, value: item.id, }; - license_list.push(license_entry); + licenseList.push(licenseEntry); } } - return license_list; - } catch (error) { - console.error((error as Error).message); + return licenseList; + } catch { return null; } }; @@ -334,23 +326,21 @@ const fetchMtypes = async ( if (!response.ok) { throw new Error(`MTYPE request failed with status code: ${response.status}`); } - const json_data_mtype: MtypeData = await response.json(); + const jsonDataMtype: MtypeData = await response.json(); - const mtype_list: Array<{ mtype_pref_label: string; mtype_id: string }> = []; - for (const item of json_data_mtype.data) { + const mtypeList: Array<{ mtype_pref_label: string; mtype_id: string }> = []; + for (const item of jsonDataMtype.data) { if (item.pref_label) { - const alt_label = item.alt_label ? ` ${item.alt_label}` : ''; - const mtype_entry = { - mtype_pref_label: item.pref_label + alt_label, + const altLabel = item.alt_label ? ` ${item.alt_label}` : ''; + const mtypeEntry = { + mtype_pref_label: item.pref_label + altLabel, mtype_id: item.id, }; - mtype_list.push(mtype_entry); + mtypeList.push(mtypeEntry); } } - - return mtype_list; - } catch (error) { - console.error('fetchMtypes: Error', (error as Error).message); + return mtypeList; + } catch { return null; } }; @@ -368,10 +358,9 @@ const fetchBrainRegion = async (token: string, brainRegionId: string): Promise; nodeId?: string; - currentCategory?: string; }) { const skip = ['type']; @@ -423,45 +411,41 @@ export function JSONMorphologySchemaForm({ const session = await getSessionWithCheck(); if (!session) return; - try { - const [speciesData, agentsData, rolesData, subjectsData, licensesData, mtypesData] = - await Promise.all([ - processData(session.accessToken), - fetchAgents(session.accessToken), - fetchRoles(session.accessToken), - fetchSubjects(session.accessToken), - fetchLicenses(session.accessToken), - fetchMtypes(session.accessToken), - ]); - - let brainRegionName = null; - if (nodeId) { - brainRegionName = await fetchBrainRegion(session.accessToken, nodeId); - } - - if (speciesData) { - const parsedData = JSON.parse(speciesData); - setAllSpeciesStrains(parsedData); - } - if (agentsData) { - setAllAgents(agentsData); - } - if (rolesData) { - setAllRoles(rolesData); - } - if (subjectsData) { - setAllSubjects(subjectsData); - } - if (licensesData) { - setAllLicenses(licensesData); - } - if (mtypesData) { - setAllMtypes(mtypesData); - } - setBrainRegionName(brainRegionName); - } catch (error) { - console.error('Failed to fetch data:', error); + const [speciesData, agentsData, rolesData, subjectsData, licensesData, mtypesData] = + await Promise.all([ + processData(session.accessToken), + fetchAgents(session.accessToken), + fetchRoles(session.accessToken), + fetchSubjects(session.accessToken), + fetchLicenses(session.accessToken), + fetchMtypes(session.accessToken), + ]); + + let brainRegionName = null; + if (nodeId) { + brainRegionName = await fetchBrainRegion(session.accessToken, nodeId); + } + + if (speciesData) { + const parsedData = JSON.parse(speciesData); + setAllSpeciesStrains(parsedData); + } + if (agentsData) { + setAllAgents(agentsData); + } + if (rolesData) { + setAllRoles(rolesData); + } + if (subjectsData) { + setAllSubjects(subjectsData); + } + if (licensesData) { + setAllLicenses(licensesData); + } + if (mtypesData) { + setAllMtypes(mtypesData); } + setBrainRegionName(brainRegionName); }; fetchData(); diff --git a/src/features/contribute/morphology/_components/hooks/schema.ts b/src/features/contribute/morphology/_components/hooks/schema.ts index 825f9bc51..3e2c68d25 100644 --- a/src/features/contribute/morphology/_components/hooks/schema.ts +++ b/src/features/contribute/morphology/_components/hooks/schema.ts @@ -1,4 +1,3 @@ -// src/features/contribute/morphology/_components/hooks/schema.ts import React from 'react'; import { atom, PrimitiveAtom } from 'jotai'; import { NotificationInstance } from 'antd/es/notification/interface'; @@ -7,22 +6,31 @@ import $RefParser from '@apidevtools/json-schema-ref-parser'; import { AtomsMap, JSONMorphologySchema } from '../../types'; import { ConfigValue, Config } from '../components'; import { isPlainObject, isAtom } from '../utils'; -import { assertErrorMessage } from '@/util/utils'; // Define a type for the OpenAPI schema to include components interface OpenAPISchema { components?: { schemas?: { - SimulationsForm?: JSONMorphologySchema; - ContributeMorphologyForm?: JSONMorphologySchema; + [key: string]: JSONMorphologySchema; }; }; } -export function useObioneJsonMorphologySchema( +/** + * A generic hook to fetch and dereference a JSON schema from the OpenAPI spec. + * It also initializes Jotai atoms based on the schema properties. + * + * @param notification Antd notification instance. + * @param setSchema React state setter for the schema. + * @param setAtomsMap React state setter for the atoms map. + * @param schemaName The name of the schema to fetch (e.g., 'ContributeMorphologyForm'). + * @param initialConfig Optional initial configuration to populate the atoms. + */ +export function useObioneJsonSchema( notification: NotificationInstance, setSchema: React.Dispatch>, setAtomsMap: (atomsMap: AtomsMap) => void, + schemaName: string, initialConfig?: Config ) { React.useEffect(() => { @@ -31,25 +39,13 @@ export function useObioneJsonMorphologySchema( const res = await fetch(`${process.env.NEXT_PUBLIC_OBI_ONE_URL}/openapi.json`); const json = await res.json(); const dereferenced = (await $RefParser.dereference(json)) as OpenAPISchema; - const theSchema = dereferenced.components?.schemas?.SimulationsForm as - | JSONMorphologySchema - | undefined; + const theSchema = dereferenced.components?.schemas?.[schemaName]; if (!theSchema || !theSchema.properties) { - console.warn('useObioneJsonMorphologySchema: Schema has no properties', theSchema); - notification.error({ message: 'Schema has no properties' }); + notification.error({ message: `Schema "${schemaName}" has no properties` }); return; } - console.log( - 'useObioneJsonMorphologySchema: Loaded schema', - JSON.stringify(theSchema, null, 2) - ); - console.log( - 'useObioneJsonMorphologySchema: schema.properties.morphology', - theSchema.properties.morphology - ); - setSchema(theSchema); const map: AtomsMap = {}; @@ -59,27 +55,20 @@ export function useObioneJsonMorphologySchema( .filter(([k]) => isRootCategory(theSchema, k)) .forEach(([k, v]) => { if (isPlainObject(v)) { - const initial: Record = {}; - Object.entries(v).forEach(([subKey, subValue]) => { - initial[subKey] = subValue as ConfigValue; - }); - map[k] = atom>(initial); + map[k] = atom>(v as Record); } }); Object.entries(initialConfig) .filter(([k]) => !isRootCategory(theSchema, k)) .forEach(([k, v]) => { - if (!isPlainObject(v)) return; + if (!isPlainObject(v) || isAtom(map[k])) return; map[k] = {}; Object.entries(v).forEach(([subK, subV]) => { - if (!isPlainObject(subV) || isAtom(map[k])) return; - const initial: Record = {}; - Object.entries(subV).forEach(([innerKey, innerValue]) => { - initial[innerKey] = innerValue as ConfigValue; - }); - (map[k] as Record>>)[subK] = - atom>(initial); + if (!isPlainObject(subV)) return; + (map[k] as Record>>)[subK] = atom< + Record + >(subV as Record); }); }); } else { @@ -100,25 +89,17 @@ export function useObioneJsonMorphologySchema( } }); } - - console.log('useObioneJsonMorphologySchema: Initialized atomsMap', map); setAtomsMap(map); - } catch (e) { - console.error( - 'useObioneJsonMorphologySchema: Failed to fetch schema:', - assertErrorMessage(e) - ); - notification.error({ message: assertErrorMessage(e) }); + } catch { + notification.error({ message: `Failed to fetch schema "${schemaName}"` }); } } - fetchSpec(); - }, [notification, setAtomsMap, setSchema, initialConfig]); + }, [notification, setAtomsMap, setSchema, schemaName, initialConfig]); } export function isRootCategory(schema: JSONMorphologySchema | null, key: string) { - const isRoot = schema?.properties?.[key] && !schema.properties[key].additionalProperties; - console.log(`isRootCategory: key=${key}, isRoot=${isRoot}`); + const isRoot = !!schema?.properties?.[key] && !schema.properties[key].additionalProperties; return isRoot; } @@ -129,80 +110,11 @@ export function resolveKey( ) { if (itemIdx === null) throw new Error('Invalid itemIdx'); if (!schema || !schema.properties || !schema.properties[tabKey]?.singular_name) { - console.warn(`resolveKey: Using fallback key for ${tabKey}_${itemIdx} due to missing schema`); return `${tabKey}_${itemIdx}`; } if (isRootCategory(schema, tabKey)) { - console.log(`resolveKey: ${tabKey} is a root category, returning ${tabKey}`); return tabKey; } - const key = `${schema.properties[tabKey].singular_name.replaceAll(' ', '')}_${itemIdx}`; - console.log(`resolveKey: Generated key ${key} for tabKey=${tabKey}, itemIdx=${itemIdx}`); return key; } - -export function useObioneJsonConfigurationSchema( - notification: NotificationInstance, - setSchema: React.Dispatch>, - setAtomsMap: (atomsMap: AtomsMap) => void -) { - React.useEffect(() => { - async function fetchSpec() { - try { - const res = await fetch(`${process.env.NEXT_PUBLIC_OBI_ONE_URL}/openapi.json`); - const json = await res.json(); - const dereferenced = (await $RefParser.dereference(json)) as OpenAPISchema; - const theSchema = dereferenced.components?.schemas?.ContributeMorphologyForm as - | JSONMorphologySchema - | undefined; - - if (!theSchema || !theSchema.properties) { - console.warn('useObioneJsonConfigurationSchema: Schema has no properties', theSchema); - notification.error({ message: 'Schema has no properties' }); - return; - } - - console.log( - 'useObioneJsonConfigurationSchema: Loaded schema', - JSON.stringify(theSchema, null, 2) - ); - console.log( - 'useObioneJsonConfigurationSchema: schema.properties.morphology', - theSchema.properties.morphology - ); - - setSchema(theSchema); - - const map: AtomsMap = {}; - Object.entries(theSchema.properties).forEach(([k, v]) => { - if (!v.additionalProperties) { - const initial: Record = {}; - if (v.properties) { - Object.entries(v.properties).forEach(([subkey, subValue]) => { - initial[subkey] = - subkey === 'type' - ? (subValue.const ?? undefined) - : (subValue.default ?? undefined); - }); - } - map[k] = atom>(initial); - } else { - map[k] = {}; - } - }); - - console.log('useObioneJsonConfigurationSchema: Initialized atomsMap', map); - setAtomsMap(map); - } catch (e) { - console.error( - 'useObioneJsonConfigurationSchema: Failed to fetch schema:', - assertErrorMessage(e) - ); - notification.error({ message: assertErrorMessage(e) }); - } - } - - fetchSpec(); - }, [notification, setAtomsMap, setSchema]); -} diff --git a/src/features/contribute/morphology/_components/section.tsx b/src/features/contribute/morphology/_components/section.tsx index 5aa607b2a..f7ed8868b 100644 --- a/src/features/contribute/morphology/_components/section.tsx +++ b/src/features/contribute/morphology/_components/section.tsx @@ -1,32 +1,38 @@ -import { Dispatch, SetStateAction } from 'react'; +import { Dispatch, SetStateAction, KeyboardEvent } from 'react'; import { RightOutlined } from '@ant-design/icons'; -import { JSONMorphologySchema, AtomsMap } from '../types'; -import { classNames } from '@/util/utils'; +import isNil from 'lodash/isNil'; import { ErrorObject } from 'ajv'; -import { Config } from './components'; + +import { AtomsMap, JSONMorphologySchema, Config } from '../types'; +import { classNames } from '@/util/utils'; type Props = { k: string; - schema: JSONMorphologySchema; sectionSchema: JSONMorphologySchema | undefined; + schema: JSONMorphologySchema; + config: Config; + errors: ErrorObject, unknown>[]; // Fixed to avoid no-explicit-any atomsMap: AtomsMap; - setAtomsMap: Dispatch>; // Updated to Dispatch type + setAtomsMap: Dispatch>; configTab: string; setConfigTab: (tab: string) => void; - config: Config; - campaignId?: string; - loading?: boolean; - errors: ErrorObject, unknown>[] | null | undefined; - selectedItemIdx?: number | null; setSelectedItemIdx: (idx: number | null) => void; setEditing: (editing: boolean) => void; setSelectedCategory: (category: string) => void; + campaignId: string; + loading: boolean; + selectedItemIdx: number | null; }; export function Section({ k, - sectionSchema, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + schema, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + config, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + errors, atomsMap, setAtomsMap, configTab, @@ -34,14 +40,13 @@ export function Section({ setSelectedItemIdx, setEditing, setSelectedCategory, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + campaignId, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + loading, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + selectedItemIdx, }: Props) { - console.log(`Section ${k}:`, { - key: k, - sectionSchema: JSON.stringify(sectionSchema, null, 2), - isSectionSchemaValid: - sectionSchema && sectionSchema.type === 'object' && sectionSchema.properties, - }); - const fallbackSchema: JSONMorphologySchema = { type: 'object', title: k, @@ -53,26 +58,37 @@ export function Section({ const buttonText = k === 'subject' ? 'Subject' : schemaToUse.title || k; + const handleClick = () => { + setConfigTab(k); + setEditing(true); + setSelectedCategory(''); + setSelectedItemIdx(null); + + if (isNil(atomsMap[k])) { + setAtomsMap({ + ...atomsMap, + [k]: {}, + }); + } + }; + + const handleKeyDown = (e: KeyboardEvent) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + handleClick(); + } + }; + return (
{ - console.log(`Clicked section: ${k}`); - setConfigTab(k); - setEditing(true); - setSelectedCategory(''); - setSelectedItemIdx(null); - - if (!atomsMap[k]) { - setAtomsMap({ - ...atomsMap, - [k]: {}, - }); - } - }} + onClick={handleClick} + onKeyDown={handleKeyDown} + role="button" + tabIndex={0} > {buttonText}
diff --git a/src/features/contribute/morphology/index.tsx b/src/features/contribute/morphology/index.tsx index 8caf5ef37..70e2b0e47 100755 --- a/src/features/contribute/morphology/index.tsx +++ b/src/features/contribute/morphology/index.tsx @@ -1,4 +1,3 @@ -// src/features/contribute/morphology/index.tsx 'use client'; import { @@ -13,11 +12,7 @@ import { atom, useAtom, PrimitiveAtom } from 'jotai'; import { Fragment, useMemo, useRef, useState, KeyboardEvent, useEffect } from 'react'; import { Config, ConfigValue, JSONMorphologySchemaForm } from './_components/components'; import { useConfigAtom } from './_components/hooks/config-atom'; -import { - isRootCategory, - resolveKey, - useObioneJsonConfigurationSchema, -} from './_components/hooks/schema'; +import { isRootCategory, resolveKey, useObioneJsonSchema } from './_components/hooks/schema'; import { Section } from './_components/section'; import { CATEGORIES, ORDERING } from './_components/utils'; import { AtomsMap, JSONMorphologySchema } from './types'; @@ -125,7 +120,7 @@ export default function ContributeMorphologyConfiguration({ return validate.errors ?? []; }, [validate, config]); - useObioneJsonConfigurationSchema(notification, setSchema, setAtomsMap); + useObioneJsonSchema(notification, setSchema, setAtomsMap, 'ContributeMorphologyForm'); const canSubmit = !errors.length && !loading && !readOnly && selectedFile && formValidation.isValid; @@ -172,6 +167,15 @@ export default function ContributeMorphologyConfiguration({ ); } + // Fallback schema for when selectedCatSchema is undefined + const fallbackSchema: JSONMorphologySchema = { + type: 'object', + properties: {}, + required: [], + title: 'Default Schema', + description: 'Fallback schema when no specific schema is selected', + }; + return (
@@ -375,7 +379,7 @@ export default function ContributeMorphologyConfiguration({ }); } - const mtype_request_body = { + const mtypeRequestBody = { authorized_public: true, entity_id: newEntityId, mtype_class_id: mtypeConfig?.mtype_class_id ?? undefined, @@ -391,7 +395,7 @@ export default function ContributeMorphologyConfiguration({ { method: 'POST', headers: fileUploadMtypeHeaders, - body: JSON.stringify(mtype_request_body), + body: JSON.stringify(mtypeRequestBody), } ); const fileResponseMtypeText = await fileResponseMtype.text(); @@ -402,7 +406,7 @@ export default function ContributeMorphologyConfiguration({ }); } - const contribution_request_body = { + const contributionRequestBody = { entity_id: newEntityId, agent_id: contributionConfig?.agent_id ?? undefined, role_id: contributionConfig?.role_id ?? undefined, @@ -418,7 +422,7 @@ export default function ContributeMorphologyConfiguration({ { method: 'POST', headers: fileUploadContributionHeaders, - body: JSON.stringify(contribution_request_body), + body: JSON.stringify(contributionRequestBody), } ); const fileResponseContributionText = await fileResponseContribution.text(); @@ -521,42 +525,71 @@ export default function ContributeMorphologyConfiguration({
)} - {schema?.properties && - configTab !== 'assets' && + {configTab !== 'assets' && editing && ( + >) + : ( + atomsMap[configTab] as Record< + string, + PrimitiveAtom> + > + )[resolveKey(schema, configTab, selectedItemIdx)] + } + nodeId={node?.id} + /> + )} + {configTab !== 'assets' && editing && - (isRootCategory(schema, configTab) ? ( - >} - nodeId={node?.id} - currentCategory={configTab} - /> - ) : selectedCatSchema ? ( - > - > - )[resolveKey(schema, configTab, selectedItemIdx)] - } - nodeId={node?.id} - currentCategory={configTab} - /> - ) : ( - schema.properties[configTab]?.additionalProperties?.anyOf && ( -
- {schema.properties[configTab].additionalProperties.anyOf.map((o) => ( -
{ + !isRootCategory(schema, configTab) && + !selectedCatSchema && + schema.properties[configTab]?.additionalProperties?.anyOf && ( +
+ {schema.properties[configTab].additionalProperties.anyOf.map((o) => ( +
{ + if (isRootCategory(schema, configTab)) return; + setSelectedCategory(o.properties?.type.const ?? ''); + const initial: Record = {}; + if (o.properties) { + Object.entries(o.properties).forEach(([subkey, subValue]) => { + initial[subkey] = + subkey === 'type' + ? (subValue.const ?? undefined) + : (subValue.default ?? undefined); + }); + } + const itemIndexes = Object.keys(atomsMap[configTab] || {}).map((subkey) => + parseInt(subkey.split('_')[1], 10) + ); + itemIndexes.sort((a, b) => a - b); + const itemIdx = (itemIndexes.at(-1) ?? -1) + 1; + setSelectedItemIdx(itemIdx); + setAtomsMap((prev) => ({ + ...prev, + [configTab]: { + ...(prev[configTab] as Record< + string, + PrimitiveAtom> + >), + [resolveKey(schema, configTab, itemIdx)]: + atom>(initial), + }, + })); + }} + onKeyDown={(e: KeyboardEvent) => { + if (e.key === 'Enter' || e.key === ' ') { if (isRootCategory(schema, configTab)) return; setSelectedCategory(o.properties?.type.const ?? ''); const initial: Record = {}; @@ -585,47 +618,15 @@ export default function ContributeMorphologyConfiguration({ atom>(initial), }, })); - }} - onKeyDown={(e: KeyboardEvent) => { - if (e.key === 'Enter' || e.key === ' ') { - if (isRootCategory(schema, configTab)) return; - setSelectedCategory(o.properties?.type.const ?? ''); - const initial: Record = {}; - if (o.properties) { - Object.entries(o.properties).forEach(([subkey, subValue]) => { - initial[subkey] = - subkey === 'type' - ? (subValue.const ?? undefined) - : (subValue.default ?? undefined); - }); - } - const itemIndexes = Object.keys(atomsMap[configTab] || {}).map((subkey) => - parseInt(subkey.split('_')[1], 10) - ); - itemIndexes.sort((a, b) => a - b); - const itemIdx = (itemIndexes.at(-1) ?? -1) + 1; - setSelectedItemIdx(itemIdx); - setAtomsMap((prev) => ({ - ...prev, - [configTab]: { - ...(prev[configTab] as Record< - string, - PrimitiveAtom> - >), - [resolveKey(schema, configTab, itemIdx)]: - atom>(initial), - }, - })); - } - }} - > -
{o.title}
-
{o.description}
-
- ))} -
- ) - ))} + } + }} + > +
{o.title}
+
{o.description}
+
+ ))} +
+ )} {showConfig && (
diff --git a/src/features/contribute/morphology/types.ts b/src/features/contribute/morphology/types.ts index 04d46bc6d..257132571 100755 --- a/src/features/contribute/morphology/types.ts +++ b/src/features/contribute/morphology/types.ts @@ -1,4 +1,3 @@ -// src/features/contribute/morphology/types.ts import { PrimitiveAtom } from 'jotai'; import { ConfigValue } from './_components/components'; @@ -34,3 +33,11 @@ export type AtomsMap = Record< >; export type TabType = 'configuration' | 'simulations'; + +export type Config = { + morphology?: Record; + license?: Record; + mtype?: Record; + contribution?: Record; + [key: string]: ConfigValue | Record | ConfigValue[]; +}; diff --git a/src/features/details-view/button-edit-metadata/button-edit-metadata.tsx b/src/features/details-view/button-edit-metadata/button-edit-metadata.tsx index 01d1b268a..89b3b67ef 100644 --- a/src/features/details-view/button-edit-metadata/button-edit-metadata.tsx +++ b/src/features/details-view/button-edit-metadata/button-edit-metadata.tsx @@ -9,7 +9,6 @@ import styles from './button-edit-metadata.module.css'; interface ButtonEditMetadataProps { className?: string; label?: string; - tooltip?: string; isEditing: boolean; onClick: () => void; } diff --git a/src/features/details-view/overview.tsx b/src/features/details-view/overview.tsx index cb5a99d68..8a44dad48 100644 --- a/src/features/details-view/overview.tsx +++ b/src/features/details-view/overview.tsx @@ -54,6 +54,7 @@ function EditField< }) { const fieldObj = getFieldDefinition(field); const value = data[field]; + const inputId = `input-${field}`; // Unique ID for accessibility return (
@@ -62,8 +63,11 @@ function EditField<
{Object.keys(value).map((key) => (
- + ) : ( - onFieldChange(field, e.target.value)} - /> + <> + + onFieldChange(field, e.target.value)} + /> + )}
); @@ -98,11 +108,12 @@ export default function DetailHeader< onEditToggle, onSave, onFieldChange, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + url, }: { fields: Array; detail: T; commonFields?: Array; - url?: string | null; extraHeaderAction?: ReactNode; commonFieldsClassName?: string; fieldsClassName?: string; @@ -111,6 +122,7 @@ export default function DetailHeader< onEditToggle?: () => void; onSave?: () => void; onFieldChange?: (fieldName: string, value: unknown) => void; + url?: string; // Made optional to fix error in single-neuron-simulation.tsx }) { return (
From e54a535deef629152970a181f189b1e0bc5eaebe Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Fri, 12 Sep 2025 10:34:02 +0200 Subject: [PATCH 28/44] updated with feedback --- .../contribute/morphology/_components/components.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/features/contribute/morphology/_components/components.tsx b/src/features/contribute/morphology/_components/components.tsx index 469d263de..fb6acc40f 100644 --- a/src/features/contribute/morphology/_components/components.tsx +++ b/src/features/contribute/morphology/_components/components.tsx @@ -421,9 +421,9 @@ export function JSONMorphologySchemaForm({ fetchMtypes(session.accessToken), ]); - let brainRegionName = null; + let fetchedBrainRegionName = null; // Renamed to avoid shadowing if (nodeId) { - brainRegionName = await fetchBrainRegion(session.accessToken, nodeId); + fetchedBrainRegionName = await fetchBrainRegion(session.accessToken, nodeId); } if (speciesData) { @@ -445,7 +445,7 @@ export function JSONMorphologySchemaForm({ if (mtypesData) { setAllMtypes(mtypesData); } - setBrainRegionName(brainRegionName); + setBrainRegionName(fetchedBrainRegionName); }; fetchData(); From a9db8353ab1ffa895cd3bcb37e654b0ed1c4c8b3 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Fri, 12 Sep 2025 11:23:04 +0200 Subject: [PATCH 29/44] add dependencies --- package.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index a6520184b..f9eba45ff 100644 --- a/package.json +++ b/package.json @@ -134,7 +134,6 @@ "react-markdown": "^9.1.0", "react-pdf": "^9.2.1", "react-plotly.js": "^2.6.0", - "react-query": "link:@types/@tanstack/react-query", "react-resizable": "^3.0.5", "react-select": "^5.7.3", "react-syntax-highlighter": "^15.6.1", @@ -154,6 +153,8 @@ "zod": "^3.22.4" }, "devDependencies": { + "@opentelemetry/auto-instrumentations-node": "^0.64.1", + "@opentelemetry/sdk-node": "^0.205.0", "@playwright/test": "^1.51.1", "@sanity/types": "^3.93.0", "@tailwindcss/postcss": "^4.1.3", @@ -196,10 +197,12 @@ "knip": "^5.61.3", "lefthook": "^1.11.12", "msw": "^2.0.5", + "plotly.js": "^3.1.0", "postcss": "^8.5.3", "prettier": "^3.2.4", "prettier-plugin-tailwindcss": "^0.6.11", "raw-loader": "^4.0.2", + "sass": "^1.92.1", "tailwindcss": "^4.1.3", "typescript": "^5.8.3", "vite-tsconfig-paths": "^5.1.4", From 26295be8cf38ea800391a1d7fe0889c3af4e2396 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Fri, 12 Sep 2025 11:27:41 +0200 Subject: [PATCH 30/44] add dependencies --- pnpm-lock.yaml | 1768 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 1446 insertions(+), 322 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ce6c2cf1a..1943698c7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,7 +19,7 @@ importers: version: 6.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@ant-design/nextjs-registry': specifier: ^1.0.2 - version: 1.0.2(@ant-design/cssinjs@1.23.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(antd@5.24.6(date-fns@4.1.0)(moment@2.30.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.0.2(@ant-design/cssinjs@1.23.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(antd@5.24.6(date-fns@4.1.0)(moment@2.30.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@ant-design/v5-patch-for-react-19': specifier: ^1.0.3 version: 1.0.3(antd@5.24.6(date-fns@4.1.0)(moment@2.30.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -154,7 +154,7 @@ importers: version: 3.94.2(@types/react@19.1.0)(debug@4.4.0) '@sentry/nextjs': specifier: ^9.12.0 - version: 9.12.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2))(react@19.1.0)(webpack@5.99.5(esbuild@0.25.5)) + version: 9.12.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react@19.1.0)(webpack@5.99.5(esbuild@0.25.5)) '@stripe/react-stripe-js': specifier: ^3.6.0 version: 3.6.0(@stripe/stripe-js@7.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -274,19 +274,19 @@ importers: version: 0.1.20 next: specifier: ^15.4.1 - version: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2) + version: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1) next-auth: specifier: ^4.24.7 - version: 4.24.11(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 4.24.11(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) next-sanity: specifier: ^9.12.0 - version: 9.12.0(@emotion/is-prop-valid@1.2.2)(@sanity/client@7.6.0)(@sanity/icons@3.7.4(react@19.1.0))(@sanity/types@3.94.2(@types/react@19.1.0))(@sanity/ui@2.16.2(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2))(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(sanity@3.94.2(@emotion/is-prop-valid@1.2.2)(@types/node@22.14.0)(@types/react@19.1.0)(immer@10.1.1)(jiti@2.4.2)(lightningcss@1.29.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1))(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(typescript@5.8.3) + version: 9.12.0(@emotion/is-prop-valid@1.2.2)(@sanity/client@7.6.0)(@sanity/icons@3.7.4(react@19.1.0))(@sanity/types@3.94.2(@types/react@19.1.0))(@sanity/ui@2.16.2(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(sanity@3.94.2(@emotion/is-prop-valid@1.2.2)(@types/node@22.14.0)(@types/react@19.1.0)(immer@10.1.1)(jiti@2.4.2)(lightningcss@1.29.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1))(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(typescript@5.8.3) next-sanity-client: specifier: ^1.0.8 - version: 1.0.8(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2)) + version: 1.0.8(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1)) nuqs: specifier: ^2.4.1 - version: 2.4.1(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2))(react@19.1.0) + version: 2.4.1(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react@19.1.0) optics-ts: specifier: ^2.4.0 version: 2.4.1 @@ -331,10 +331,7 @@ importers: version: 9.2.1(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react-plotly.js: specifier: ^2.6.0 - version: 2.6.0(plotly.js@3.0.1(mapbox-gl@1.13.3)(webpack@5.99.5(esbuild@0.25.5)))(react@19.1.0) - react-query: - specifier: link:@types/@tanstack/react-query - version: link:@types/@tanstack/react-query + version: 2.6.0(plotly.js@3.1.0(mapbox-gl@1.13.3))(react@19.1.0) react-resizable: specifier: ^3.0.5 version: 3.0.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -358,7 +355,7 @@ importers: version: 6.0.0 sanity: specifier: ^3.93.0 - version: 3.94.2(@emotion/is-prop-valid@1.2.2)(@types/node@22.14.0)(@types/react@19.1.0)(immer@10.1.1)(jiti@2.4.2)(lightningcss@1.29.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1) + version: 3.94.2(@emotion/is-prop-valid@1.2.2)(@types/node@22.14.0)(@types/react@19.1.0)(immer@10.1.1)(jiti@2.4.2)(lightningcss@1.29.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1) sharp: specifier: ^0.34.1 version: 0.34.1 @@ -387,6 +384,12 @@ importers: specifier: ^3.22.4 version: 3.24.2 devDependencies: + '@opentelemetry/auto-instrumentations-node': + specifier: ^0.64.1 + version: 0.64.1(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0)) + '@opentelemetry/sdk-node': + specifier: ^0.205.0 + version: 0.205.0(@opentelemetry/api@1.9.0) '@playwright/test': specifier: ^1.51.1 version: 1.51.1 @@ -452,7 +455,7 @@ importers: version: 7.18.0(eslint@8.57.1)(typescript@5.8.3) '@vitejs/plugin-react': specifier: ^4.5.2 - version: 4.5.2(vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.89.2)(terser@5.43.1)(yaml@2.7.1)) + version: 4.5.2(vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1)) autoprefixer: specifier: ^10.4.14 version: 10.4.21(postcss@8.5.3) @@ -510,6 +513,9 @@ importers: msw: specifier: ^2.0.5 version: 2.7.3(@types/node@22.14.0)(typescript@5.8.3) + plotly.js: + specifier: ^3.1.0 + version: 3.1.0(mapbox-gl@1.13.3) postcss: specifier: ^8.5.3 version: 8.5.3 @@ -522,6 +528,9 @@ importers: raw-loader: specifier: ^4.0.2 version: 4.0.2(webpack@5.99.5(esbuild@0.25.5)) + sass: + specifier: ^1.92.1 + version: 1.92.1 tailwindcss: specifier: ^4.1.3 version: 4.1.3 @@ -530,10 +539,10 @@ importers: version: 5.8.3 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.89.2)(terser@5.43.1)(yaml@2.7.1)) + version: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1)) vitest: specifier: ^3.1.1 - version: 3.1.1(@types/debug@4.1.12)(@types/node@22.14.0)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.29.2)(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(sass@1.89.2)(terser@5.43.1)(yaml@2.7.1) + version: 3.1.1(@types/debug@4.1.12)(@types/node@22.14.0)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.29.2)(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1) packages: @@ -1937,6 +1946,15 @@ packages: '@floating-ui/utils@0.2.9': resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + '@grpc/grpc-js@1.13.4': + resolution: {integrity: sha512-GsFaMXCkMqkKIvwCQjCrwH+GHbPKBjhwo/8ZuUkWHqbI73Kky9I+pQltrlT0+MWpedCoosda53lgjYfyEPgxBg==} + engines: {node: '>=12.10.0'} + + '@grpc/proto-loader@0.7.15': + resolution: {integrity: sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==} + engines: {node: '>=6'} + hasBin: true + '@humanwhocodes/config-array@0.13.0': resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} engines: {node: '>=10.10.0'} @@ -2446,6 +2464,9 @@ packages: '@jridgewell/trace-mapping@0.3.29': resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} + '@js-sdsl/ordered-map@4.4.2': + resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} + '@juggle/resize-observer@3.4.0': resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} @@ -2785,6 +2806,10 @@ packages: '@open-draft/until@2.1.0': resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} + '@opentelemetry/api-logs@0.205.0': + resolution: {integrity: sha512-wBlPk1nFB37Hsm+3Qy73yQSobVn28F4isnWIBvKpd5IUH/eat8bwcL02H9yzmHyyPmukeccSl2mbN5sDQZYnPg==} + engines: {node: '>=8.0.0'} + '@opentelemetry/api-logs@0.57.2': resolution: {integrity: sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==} engines: {node: '>=14'} @@ -2793,72 +2818,259 @@ packages: resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} engines: {node: '>=8.0.0'} + '@opentelemetry/auto-instrumentations-node@0.64.1': + resolution: {integrity: sha512-V893tqyTsCD0zYsHjJXUor/x1M7VxmPr5j8Tga7EYVXfxubVrrPwqKk37ygtVRp2oDnQp+P/D7LGP+AP6eCblw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.4.1 + '@opentelemetry/core': ^2.0.0 + '@opentelemetry/context-async-hooks@1.30.1': resolution: {integrity: sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/context-async-hooks@2.1.0': + resolution: {integrity: sha512-zOyetmZppnwTyPrt4S7jMfXiSX9yyfF0hxlA8B5oo2TtKl+/RGCy7fi4DrBfIf3lCPrkKsRBWZZD7RFojK7FDg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/core@1.30.1': resolution: {integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/core@2.1.0': + resolution: {integrity: sha512-RMEtHsxJs/GiHHxYT58IY57UXAQTuUnZVco6ymDEqTNlJKTimM4qPUPVe8InNFyBjhHBEAx4k3Q8LtNayBsbUQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/exporter-logs-otlp-grpc@0.205.0': + resolution: {integrity: sha512-jQlw7OHbqZ8zPt+pOrW2KGN7T55P50e3NXBMr4ckPOF+DWDwSy4W7mkG09GpYWlQAQ5C9BXg5gfUlv5ldTgWsw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-logs-otlp-http@0.205.0': + resolution: {integrity: sha512-5JteMyVWiro4ghF0tHQjfE6OJcF7UBUcoEqX3UIQ5jutKP1H+fxFdyhqjjpmeHMFxzOHaYuLlNR1Bn7FOjGyJg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-logs-otlp-proto@0.205.0': + resolution: {integrity: sha512-q3VS9wS+lpZ01txKxiDGBtBpTNge3YhbVEFDgem9ZQR9eI3EZ68+9tVZH9zJcSxI37nZPJ6lEEZO58yEjYZsVA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-metrics-otlp-grpc@0.205.0': + resolution: {integrity: sha512-1Vxlo4lUwqSKYX+phFkXHKYR3DolFHxCku6lVMP1H8sVE3oj4wwmwxMzDsJ7zF+sXd8M0FCr+ckK4SnNNKkV+w==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-metrics-otlp-http@0.205.0': + resolution: {integrity: sha512-fFxNQ/HbbpLmh1pgU6HUVbFD1kNIjrkoluoKJkh88+gnmpFD92kMQ8WFNjPnSbjg2mNVnEkeKXgCYEowNW+p1w==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-metrics-otlp-proto@0.205.0': + resolution: {integrity: sha512-qIbNnedw9QfFjwpx4NQvdgjK3j3R2kWH/2T+7WXAm1IfMFe9fwatYxE61i7li4CIJKf8HgUC3GS8Du0C3D+AuQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-prometheus@0.205.0': + resolution: {integrity: sha512-xsot/Qm9VLDTag4GEwAunD1XR1U8eBHTLAgO7IZNo2JuD/c/vL7xmDP7mQIUr6Lk3gtj/yGGIR2h3vhTeVzv4w==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-trace-otlp-grpc@0.205.0': + resolution: {integrity: sha512-ZBksUk84CcQOuDJB65yu5A4PORkC4qEsskNwCrPZxDLeWjPOFZNSWt0E0jQxKCY8PskLhjNXJYo12YaqsYvGFA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-trace-otlp-http@0.205.0': + resolution: {integrity: sha512-vr2bwwPCSc9u7rbKc74jR+DXFvyMFQo9o5zs+H/fgbK672Whw/1izUKVf+xfWOdJOvuwTnfWxy+VAY+4TSo74Q==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-trace-otlp-proto@0.205.0': + resolution: {integrity: sha512-bGtFzqiENO2GpJk988mOBMe0MfeNpTQjbLm/LBijas6VRyEDQarUzdBHpFlu89A25k1+BCntdWGsWTa9Ai4FyA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-zipkin@2.1.0': + resolution: {integrity: sha512-0mEI0VDZrrX9t5RE1FhAyGz+jAGt96HSuXu73leswtY3L5YZD11gtcpARY2KAx/s6Z2+rj5Mhj566JsI2C7mfA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + '@opentelemetry/instrumentation-amqplib@0.46.1': resolution: {integrity: sha512-AyXVnlCf/xV3K/rNumzKxZqsULyITJH6OVLiW6730JPRqWA7Zc9bvYoVNpN6iOpTU8CasH34SU/ksVJmObFibQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-amqplib@0.52.0': + resolution: {integrity: sha512-G8RnaoDxfwYe6uXC7erNGzYJi0gY/xMSu+fPthQr9Won8+/ot9kqt48WQCk9OA2uiV67lSPs5hiDKKBBOcvJCA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-aws-lambda@0.56.0': + resolution: {integrity: sha512-QS3rhpdcuHzGQB84Qfy8cV75rP9R3vZ8lcUiRkRh+Uu3/+QnaXET1eOi9kS8Jc5I3uoLEz6L/A61I7lUXZ+U4A==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-aws-sdk@0.60.0': + resolution: {integrity: sha512-TX5tSQpSNO1um0xyQBmTIDqd4ANh/rOXJCZWHkKEKStfZH3vTxfunkTOCSWdzIcCfft+PaEJcLFjCivr34/6pQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-bunyan@0.51.0': + resolution: {integrity: sha512-N84VeifmawRyTrGkIhHRzzpHyaWkbD8fnVHg4LpbbFW1nQJcQphDE62kvuqKrzezIUbaYeS7Ue+tHV2WveTe9w==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-cassandra-driver@0.51.0': + resolution: {integrity: sha512-Qy8SmLCqXPzP3vMRcwWYtpAnOdhdU1WhAnvGoS8JMNvn48sush42CjJIYkQmsgpz676WDkrppCQ4V5T0nD5z4A==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-connect@0.43.1': resolution: {integrity: sha512-ht7YGWQuV5BopMcw5Q2hXn3I8eG8TH0J/kc/GMcW4CuNTgiP6wCu44BOnucJWL3CmFWaRHI//vWyAhaC8BwePw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-connect@0.49.0': + resolution: {integrity: sha512-mcGcz9w9gtJuNM3ErxBiwsVSgFkPu97Guxt16cxaZZKQkm+6he5qtQbUfLsmEj5tgaF0c3K4jvXhRQsusNilSQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-cucumber@0.21.0': + resolution: {integrity: sha512-a9v73VpANHK5MiiK2TxhDHVYPbbSofuKAhiE+3EUyTinz7KkLzUS4zk7sKip4yWzu04HmJ5N2S4Ke85dXpgK1g==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + '@opentelemetry/instrumentation-dataloader@0.16.1': resolution: {integrity: sha512-K/qU4CjnzOpNkkKO4DfCLSQshejRNAJtd4esgigo/50nxCB6XCyi1dhAblUHM9jG5dRm8eu0FB+t87nIo99LYQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-dataloader@0.23.0': + resolution: {integrity: sha512-HLPl6/kCcHMoMjVHy+nqBZa2ODSUdSRHOG63+ZRRn5JAeFLj74U/gZ93qNzip1nVSWYaPRxclSfDb44E2PH72w==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-dns@0.49.0': + resolution: {integrity: sha512-DWVfSI5oH1X9sh4bMJd4HOWQ+UCqHLp76s8X8dw8+TPP10jI8Ca9oyoCjNPxS4GMpFFDYtCLlFgsPq7LfTcN2A==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-express@0.47.1': resolution: {integrity: sha512-QNXPTWteDclR2B4pDFpz0TNghgB33UMjUt14B+BZPmtH1MwUFAfLHBaP5If0Z5NZC+jaH8oF2glgYjrmhZWmSw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-express@0.54.0': + resolution: {integrity: sha512-Bar+y7h4qs9MSrU8ItaOAMOYmXVC0xCh5RCBDqaPsMeBmWMc2IUD3l0R6Ts+qL5extJCbboD7JKcQPXHPbMOGw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-fastify@0.44.2': resolution: {integrity: sha512-arSp97Y4D2NWogoXRb8CzFK3W2ooVdvqRRtQDljFt9uC3zI6OuShgey6CVFC0JxT1iGjkAr1r4PDz23mWrFULQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-fastify@0.50.0': + resolution: {integrity: sha512-j30yphIxdt6Wm8dgUoRORSORxlcFX2IxCLV6QZ9G5HtvvMIEP0hA0UnhJ3CDrDHKJRSHCiW8E8piOSbtU+0MLA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-fs@0.19.1': resolution: {integrity: sha512-6g0FhB3B9UobAR60BGTcXg4IHZ6aaYJzp0Ki5FhnxyAPt8Ns+9SSvgcrnsN2eGmk3RWG5vYycUGOEApycQL24A==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-fs@0.25.0': + resolution: {integrity: sha512-U19QQ4WfbAjty1grQQoMFrhB0HIsAQktu41nN50E+T2defjz4OC2IvNwfAJFWT7gGzFA23daxzOS7+DumZOVMg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-generic-pool@0.43.1': resolution: {integrity: sha512-M6qGYsp1cURtvVLGDrPPZemMFEbuMmCXgQYTReC/IbimV5sGrLBjB+/hANUpRZjX67nGLdKSVLZuQQAiNz+sww==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-generic-pool@0.49.0': + resolution: {integrity: sha512-HwZmSNb7gjbWBXST/+elp8CnOZ5tvT1pOFr4GjnWpCdpx31lHhEA8cLhkao+hozqg+uMl1/nmTXR78vnIbG+8g==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-graphql@0.47.1': resolution: {integrity: sha512-EGQRWMGqwiuVma8ZLAZnExQ7sBvbOx0N/AE/nlafISPs8S+QtXX+Viy6dcQwVWwYHQPAcuY3bFt3xgoAwb4ZNQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-graphql@0.53.0': + resolution: {integrity: sha512-yVYgGlkfwOlBTqOm4YI9oHw0sWB18CpYMbxan2UMo7UAgm6JQ6ikur0c2T1ALp2jnkXv0XnR1PkYBGmGYUjG8A==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-grpc@0.205.0': + resolution: {integrity: sha512-IB5eKpb/7/x+tyWUVIIyY5KcAtODy/YbcDKPdnlJl8sMCFPByjNxti/lzOfPajYBPOXsN91g7H7cN0L1aSlerQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-hapi@0.45.2': resolution: {integrity: sha512-7Ehow/7Wp3aoyCrZwQpU7a2CnoMq0XhIcioFuKjBb0PLYfBfmTsFTUyatlHu0fRxhwcRsSQRTvEhmZu8CppBpQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-hapi@0.52.0': + resolution: {integrity: sha512-Hd39MAnYC+PrlWLpAwmkcZJE9l2g6Tie3Flg6gcHTEfs3WFJZb5WmfagDTKDujLwTMwc+setqjDJm/EOJyGXig==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-http@0.205.0': + resolution: {integrity: sha512-6fOgRlV7ypBuEzCQP7vXkLQxz3UL1FhE24rAlMRbwGvPAnZLvutcG/fq9FI/n+VU23dOpYexocYsXCf5oy/AXw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-http@0.57.2': resolution: {integrity: sha512-1Uz5iJ9ZAlFOiPuwYg29Bf7bJJc/GeoeJIFKJYQf67nTVKFe8RHbEtxgkOmK4UGZNHKXcpW4P8cWBYzBn1USpg==} engines: {node: '>=14'} @@ -2871,6 +3083,18 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-ioredis@0.53.0': + resolution: {integrity: sha512-Ah2wU347vOJYbE563Tgm3UX2J3DAXoI8gsr8qH0OOO4uDuEv3kVS/eDCfXApt11bvvDDPlOoc60/TGn6m9IoPw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-kafkajs@0.15.0': + resolution: {integrity: sha512-bfMRg8ICe8ICZgP8Nezy8xxov/uBQ7518r2h7puwKUZeEqga+5F+hKVL9to0aVlPWTAiHgEjdOAdP1D5eRzvuw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-kafkajs@0.7.1': resolution: {integrity: sha512-OtjaKs8H7oysfErajdYr1yuWSjMAectT7Dwr+axIoZqT9lmEOkD/H/3rgAs8h/NIuEi2imSXD+vL4MZtOuJfqQ==} engines: {node: '>=14'} @@ -2883,88 +3107,320 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-knex@0.50.0': + resolution: {integrity: sha512-kuQaU0BLMF1alpRS8pR7j2hA38h9M2c09EijfhVwhm63zzQoT34RLOB37maLepx9nY3EJo4ohZUHTnNmHE10ZQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-koa@0.47.1': resolution: {integrity: sha512-l/c+Z9F86cOiPJUllUCt09v+kICKvT+Vg1vOAJHtHPsJIzurGayucfCMq2acd/A/yxeNWunl9d9eqZ0G+XiI6A==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-koa@0.53.0': + resolution: {integrity: sha512-aZbivQx+IXZpqkMWWH8RlZNVsaJnPExYfGiUdzOtjwPLQqXVV1SN4gzzPC0kL1r6BVK6NKwUSQI6jznV81i8aQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-lru-memoizer@0.44.1': resolution: {integrity: sha512-5MPkYCvG2yw7WONEjYj5lr5JFehTobW7wX+ZUFy81oF2lr9IPfZk9qO+FTaM0bGEiymwfLwKe6jE15nHn1nmHg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-lru-memoizer@0.50.0': + resolution: {integrity: sha512-2mI3Yv7vzlNU1LURY1Jp3lgzICqKWeyeNEljGN2PUuOXwAoWviQwmFzTI5FoSnbWflANUvKGL1j0NH3KjagjdA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-memcached@0.49.0': + resolution: {integrity: sha512-TyurQ0NqbeV1Y12Cw72rXKikSkeeGVPNwCCRkA4Y60k0asVD3MCfnFs6Kpy1sZWMvqkSelLJbjuGh0yLJ3GN3A==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-mongodb@0.52.0': resolution: {integrity: sha512-1xmAqOtRUQGR7QfJFfGV/M2kC7wmI2WgZdpru8hJl3S0r4hW0n3OQpEHlSGXJAaNFyvT+ilnwkT+g5L4ljHR6g==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-mongodb@0.58.0': + resolution: {integrity: sha512-h6vrdfCE7qhflgZV41l7vAXUzvbt0ukuHrJ/9ByfNEWiCkNd7tW4FRKdJilWYzr6Nr69ddzMq6vtVFN0WUABUw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-mongoose@0.46.1': resolution: {integrity: sha512-3kINtW1LUTPkiXFRSSBmva1SXzS/72we/jL22N+BnF3DFcoewkdkHPYOIdAAk9gSicJ4d5Ojtt1/HeibEc5OQg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-mongoose@0.52.0': + resolution: {integrity: sha512-qdpq/hZO353UpD5FxmBowpuI+HinPEOmi7feQzX9GO1PCTmlGGzaeQ8xwUX1eA0OKg0YDrKuiWsFxlLoOXsocw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-mysql2@0.45.2': resolution: {integrity: sha512-h6Ad60FjCYdJZ5DTz1Lk2VmQsShiViKe0G7sYikb0GHI0NVvApp2XQNRHNjEMz87roFttGPLHOYVPlfy+yVIhQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-mysql2@0.52.0': + resolution: {integrity: sha512-+yuck72xsX8QE0B4IJpLzmGiAz8yeLHfVHBkTOR3GKfLz4D88AUx7O3QJW/uqkQQSDQOJybRRazOZfhC1Bkz3A==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-mysql@0.45.1': resolution: {integrity: sha512-TKp4hQ8iKQsY7vnp/j0yJJ4ZsP109Ht6l4RHTj0lNEG1TfgTrIH5vJMbgmoYXWzNHAqBH2e7fncN12p3BP8LFg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-mysql@0.51.0': + resolution: {integrity: sha512-WBCG18gMo7rNem5CZ3uXpnfbdN6PLMg2ioikL7G/cHNzjbcvGGuf/x6vBNMdmOUqLSIeVgEtnbniCo/GOrWcgw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-nestjs-core@0.51.0': + resolution: {integrity: sha512-Se/m4887W94OO12pjKMjI3398L7HCoWeCjcbwoPvNOWpSpMkljBOHA9vE/fyo63CaVG1XAM5xA4ad60wmJKl9A==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-net@0.49.0': + resolution: {integrity: sha512-XmpRZa1uRlZ2qff0LYzALkBmzJsEJyaDKEw50C0MDrawg/p5z1/TOMwMIKPG2g1EgAW56+dl/WD8p70XyW08Qg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-oracledb@0.31.0': + resolution: {integrity: sha512-CqjWWL1CEYR1ryBN6fCGWNhUS4rS+zNMLE/gYbpwJqH07QA6/Jt4ThbiOPujcq/PEQK3KuqoXeoGDCiI3YWMcQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-pg@0.51.1': resolution: {integrity: sha512-QxgjSrxyWZc7Vk+qGSfsejPVFL1AgAJdSBMYZdDUbwg730D09ub3PXScB9d04vIqPriZ+0dqzjmQx0yWKiCi2Q==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-pg@0.58.0': + resolution: {integrity: sha512-WHntZAorf6CZ0n5a3oHlwGkSeu5Xa4AiCmXkNTKg24TbYSFWzJUtWvPQSkxePvQ3ku71lhAY/M20WgwHlvpZpQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-pino@0.52.0': + resolution: {integrity: sha512-FLATUe4E1N/x2NkNyzXVGAIu8Jau6RitHmfIbCn3IL1gyuFT/aSlyc5z8HPotlonPZg5RAhp5rUcKiDKtuLY8Q==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-redis-4@0.46.1': resolution: {integrity: sha512-UMqleEoabYMsWoTkqyt9WAzXwZ4BlFZHO40wr3d5ZvtjKCHlD4YXLm+6OLCeIi/HkX7EXvQaz8gtAwkwwSEvcQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-redis@0.54.1': + resolution: {integrity: sha512-/hOkOa9uIpestrpKuVCNPLHYkSXY1sjsaiXZw/Srv5mzTjpybnDZs5MOCdsIADjFfaCg23sM/JmfIx6IhWgP0w==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-restify@0.51.0': + resolution: {integrity: sha512-DR8rquJixfQJzbOoGXB5qs1tuL4hGh1II+fk2xtxSu3qmOcmNI8jihez2dYPN67iofuhX+DxqZgvTYSqx4REpQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-router@0.50.0': + resolution: {integrity: sha512-tnEo9yoWUNgCm4FrizjINSTvkGOlS7pO0j+BUByRNf2sBvw8zpC3uG6C+8rg9f6Th5L+yZUU1W8Y6itWLNdh4g==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-runtime-node@0.19.0': + resolution: {integrity: sha512-rWlCcoroV3XlZ+YfTgVTO3Vq6nt61xjB1Or4C94g13Jf49zVi+QlipuEQRvMz8vsqtpxH21ZbAzCb1PcSsjT9g==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-socket.io@0.52.0': + resolution: {integrity: sha512-+dXOZGp2dHZ1+PaaebRKC4Hp5AIpryHbWIpZVmJ1mg3d24Xge2QZqOLjYF+3Z2s3IYSVp+j3uLef2vwg7e8+zQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-tedious@0.18.1': resolution: {integrity: sha512-5Cuy/nj0HBaH+ZJ4leuD7RjgvA844aY2WW+B5uLcWtxGjRZl3MNLuxnNg5DYWZNPO+NafSSnra0q49KWAHsKBg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-tedious@0.24.0': + resolution: {integrity: sha512-sOX7JaHzdYoaFmu2cHDcdKGJAvdEIrk/IB6uS5Tr28nSos3E+beGsWGbPPKRXJ6E97ubqS2c8YUH9W1ece1rOQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-undici@0.10.1': resolution: {integrity: sha512-rkOGikPEyRpMCmNu9AQuV5dtRlDmJp2dK5sw8roVshAGoB6hH/3QjDtRhdwd75SsJwgynWUNRUYe0wAkTo16tQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.7.0 + '@opentelemetry/instrumentation-undici@0.16.0': + resolution: {integrity: sha512-sky42QpDmsHbrmE02sCEk7kdug2uTB4w5OwLpfHKom/5vbzTJZDoaM68YpCq0vTQ9QwL/DIDGwjdaTcU+XXCxQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.7.0 + + '@opentelemetry/instrumentation-winston@0.50.0': + resolution: {integrity: sha512-RKcbKIwwKzT6RnNPo5yU6Zus5DYSysK5zr8dL+LU/8Qh8icV/U2rghFJzMI+t01GeirhwSJeuuWB28AdZvSnLQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation@0.205.0': + resolution: {integrity: sha512-cgvm7tvQdu9Qo7VurJP84wJ7ZV9F6WqDDGZpUc6rUEXwjV7/bXWs0kaYp9v+1Vh1+3TZCD3i6j/lUBcPhu8NhA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation@0.57.2': resolution: {integrity: sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/otlp-exporter-base@0.205.0': + resolution: {integrity: sha512-2MN0C1IiKyo34M6NZzD6P9Nv9Dfuz3OJ3rkZwzFmF6xzjDfqqCTatc9v1EpNfaP55iDOCLHFyYNCgs61FFgtUQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-grpc-exporter-base@0.205.0': + resolution: {integrity: sha512-AeuLfrciGYffqsp4EUTdYYc6Ee2BQS+hr08mHZk1C524SFWx0WnfcTnV0NFXbVURUNU6DZu1DhS89zRRrcx/hg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-transformer@0.205.0': + resolution: {integrity: sha512-KmObgqPtk9k/XTlWPJHdMbGCylRAmMJNXIRh6VYJmvlRDMfe+DonH41G7eenG8t4FXn3fxOGh14o/WiMRR6vPg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/propagator-b3@2.1.0': + resolution: {integrity: sha512-yOdHmFseIChYanddMMz0mJIFQHyjwbNhoxc65fEAA8yanxcBPwoFDoh1+WBUWAO/Z0NRgk+k87d+aFIzAZhcBw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/propagator-jaeger@2.1.0': + resolution: {integrity: sha512-QYo7vLyMjrBCUTpwQBF/e+rvP7oGskrSELGxhSvLj5gpM0az9oJnu/0O4l2Nm7LEhAff80ntRYKkAcSwVgvSVQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/redis-common@0.36.2': resolution: {integrity: sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==} engines: {node: '>=14'} + '@opentelemetry/redis-common@0.38.0': + resolution: {integrity: sha512-4Wc0AWURII2cfXVVoZ6vDqK+s5n4K5IssdrlVrvGsx6OEOKdghKtJZqXAHWFiZv4nTDLH2/2fldjIHY8clMOjQ==} + engines: {node: ^18.19.0 || >=20.6.0} + + '@opentelemetry/resource-detector-alibaba-cloud@0.31.5': + resolution: {integrity: sha512-SVweVr/WWWQZVuBII7WlqIW2exT5bYZdLwuGEh3EAi5Y5mulY4KUzvW8Rx+NoFWd8wgEscCltxuztFhhnlQDWQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + + '@opentelemetry/resource-detector-aws@2.5.0': + resolution: {integrity: sha512-NI7by8oi4G03yQA/igYZLZhbKkEy9tn/9JOQsHCPaRTDjzW+VHNcP5BLJH0FEM0NJZm7Ue/59J1a1aTSNJSDuA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + + '@opentelemetry/resource-detector-azure@0.12.0': + resolution: {integrity: sha512-U87/nRFthxoPxPJVOeqytf+M0X43Es1al7+K3+fAYQN4kEenahhA3TUZESl6MweEW8tejUxp7A0AjxWrydAWQg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + + '@opentelemetry/resource-detector-container@0.7.5': + resolution: {integrity: sha512-oa2+suq7q2epLC1R+pp3rmel7sS6kc4lPe67lxNNVSJ2Bw23ZJatCeG4Fjb2enueDE70VhqPpslVef5hnw1mBA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + + '@opentelemetry/resource-detector-gcp@0.40.0': + resolution: {integrity: sha512-uAsUV8K4R9OJ3cgPUGYDqQByxOMTz4StmzJyofIv7+W+c1dTSEc1WVjWpTS2PAmywik++JlSmd8O4rMRJZpO8Q==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + '@opentelemetry/resources@1.30.1': resolution: {integrity: sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/resources@2.1.0': + resolution: {integrity: sha512-1CJjf3LCvoefUOgegxi8h6r4B/wLSzInyhGP2UmIBYNlo4Qk5CZ73e1eEyWmfXvFtm1ybkmfb2DqWvspsYLrWw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-logs@0.205.0': + resolution: {integrity: sha512-nyqhNQ6eEzPWQU60Nc7+A5LIq8fz3UeIzdEVBQYefB4+msJZ2vuVtRuk9KxPMw1uHoHDtYEwkr2Ct0iG29jU8w==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.4.0 <1.10.0' + + '@opentelemetry/sdk-metrics@2.1.0': + resolution: {integrity: sha512-J9QX459mzqHLL9Y6FZ4wQPRZG4TOpMCyPOh6mkr/humxE1W2S3Bvf4i75yiMW9uyed2Kf5rxmLhTm/UK8vNkAw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.9.0 <1.10.0' + + '@opentelemetry/sdk-node@0.205.0': + resolution: {integrity: sha512-Y4Wcs8scj/Wy1u61pX1ggqPXPtCsGaqx/UnFu7BtRQE1zCQR+b0h56K7I0jz7U2bRlPUZIFdnNLtoaJSMNzz2g==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + '@opentelemetry/sdk-trace-base@1.30.1': resolution: {integrity: sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/sdk-trace-base@2.1.0': + resolution: {integrity: sha512-uTX9FBlVQm4S2gVQO1sb5qyBLq/FPjbp+tmGoxu4tIgtYGmBYB44+KX/725RFDe30yBSaA9Ml9fqphe1hbUyLQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-trace-node@2.1.0': + resolution: {integrity: sha512-SvVlBFc/jI96u/mmlKm86n9BbTCbQ35nsPoOohqJX6DXH92K0kTe73zGY5r8xoI1QkjR9PizszVJLzMC966y9Q==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/semantic-conventions@1.28.0': resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} engines: {node: '>=14'} @@ -2973,12 +3429,22 @@ packages: resolution: {integrity: sha512-s0OpmpQFSfMrmedAn9Lhg4KWJELHCU6uU9dtIJ28N8UGhf9Y55im5X8fEzwhwDwiSqN+ZPSNrDJF7ivf/AuRPQ==} engines: {node: '>=14'} + '@opentelemetry/semantic-conventions@1.37.0': + resolution: {integrity: sha512-JD6DerIKdJGmRp4jQyX5FlrQjA4tjOw1cvfsPAZXfOOEErMUHjPcPSICS+6WnM0nB0efSFARh0KAZss+bvExOA==} + engines: {node: '>=14'} + '@opentelemetry/sql-common@0.40.1': resolution: {integrity: sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.1.0 + '@opentelemetry/sql-common@0.41.0': + resolution: {integrity: sha512-pmzXctVbEERbqSfiAgdes9Y63xjoOyXcD7B6IXBkVb+vbM7M9U98mn33nGXxPf4dfYR0M+vhcKRZmbSJ7HfqFA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@oxc-resolver/binding-darwin-arm64@11.4.0': resolution: {integrity: sha512-+mlX+/yoWv/IfWad97mn/5KVYtwe/VLjwtyoY04UUL+VrHk0MpANAorM9gFf+7K6GkQEaNkTK1g4GqwPI8OiCQ==} cpu: [arm64] @@ -3210,6 +3676,36 @@ packages: '@probe.gl/stats@4.1.0': resolution: {integrity: sha512-EI413MkWKBDVNIfLdqbeNSJTs7ToBz/KVGkwi3D+dQrSIkRI2IYbWGAU3xX+D6+CI4ls8ehxMhNpUVMaZggDvQ==} + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + '@radix-ui/number@1.1.1': resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} @@ -4623,6 +5119,9 @@ packages: '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + '@types/aws-lambda@8.10.152': + resolution: {integrity: sha512-soT/c2gYBnT5ygwiHPmd9a1bftj462NWVk2tKCc1PYHSIacB2UwbTS2zYG4jzag1mRDuzg/OjtxQjQ2NKRB6Rw==} + '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -4638,6 +5137,9 @@ packages: '@types/base16@1.0.5': resolution: {integrity: sha512-OzOWrTluG9cwqidEzC/Q6FAmIPcnZfm8BFRlIx0+UIUqnuAmi5OS88O0RpT3Yz6qdmqObvUhasrbNsCofE4W9A==} + '@types/bunyan@1.8.11': + resolution: {integrity: sha512-758fRH7umIMk5qt5ELmRMff4mLDlN+xyYzC+dkPTdKwbSkJFvz6xwyScrytPU0QIBbRRwbiE8/BIg8bpajerNQ==} + '@types/canvas-confetti@1.9.0': resolution: {integrity: sha512-aBGj/dULrimR1XDZLtG9JwxX1b4HPRF6CX9Yfwh3NvstZEm1ZL7RBnel4keCPSqs1ANRu1u2Aoz9R+VmtjYuTg==} @@ -4824,9 +5326,6 @@ packages: '@types/katex@0.16.7': resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==} - '@types/less@3.0.8': - resolution: {integrity: sha512-Gjm4+H9noDJgu5EdT3rUw5MhPBag46fiOy27BefvWkNL8mlZnKnCaVVVTLKj6RYXed9b62CPKnPav9govyQDzA==} - '@types/lodash-es@4.17.12': resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} @@ -4845,6 +5344,9 @@ packages: '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + '@types/memcached@2.2.10': + resolution: {integrity: sha512-AM9smvZN55Gzs2wRrqeMHVP7KE8KWgCJO/XL5yCly2xF6EKa4YlbpK+cLSAH4NG/Ah64HrlegmGqW8kYws7Vxg==} + '@types/minimist@1.2.5': resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} @@ -4854,6 +5356,9 @@ packages: '@types/mysql@2.15.26': resolution: {integrity: sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==} + '@types/mysql@2.15.27': + resolution: {integrity: sha512-YfWiV16IY0OeBfBCk8+hXKmdTKrKlwKN1MNKAPBu5JYxLwBEZl7QzeEpGnlZb3VMGJrrGmB84gXiH+ofs/TezA==} + '@types/node@20.17.30': resolution: {integrity: sha512-7zf4YyHA+jvBNfVrk2Gtvs6x7E8V+YDW05bNfG2XkWDJfYRXrTiP/DsB2zSYTaHX0bGIujTBQdMVAhb+j7mwpg==} @@ -4869,6 +5374,9 @@ packages: '@types/offscreencanvas@2019.7.3': resolution: {integrity: sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==} + '@types/oracledb@6.5.2': + resolution: {integrity: sha512-kK1eBS/Adeyis+3OlBDMeQQuasIDLUYXsi2T15ccNJ0iyUpQ4xDF7svFu3+bGVrI0CMBUclPciz+lsQR3JX3TQ==} + '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -4878,6 +5386,9 @@ packages: '@types/pg-pool@2.0.6': resolution: {integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==} + '@types/pg@8.15.5': + resolution: {integrity: sha512-LF7lF6zWEKxuT3/OR8wAZGzkg4ENGXFNyiV/JeOt9z5B+0ZVwbql9McqX5c/WStFq1GaGso7H1AzP/qSzmlCKQ==} + '@types/pg@8.6.1': resolution: {integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==} @@ -4917,10 +5428,6 @@ packages: '@types/react@19.1.0': resolution: {integrity: sha512-UaicktuQI+9UKyA4njtDOGBD/67t8YEBt2xdfqu8+gP9hqPUPsiXlNPcpS2gVdjmis5GKPG3fCxbQLVgxsQZ8w==} - '@types/sass@1.45.0': - resolution: {integrity: sha512-jn7qwGFmJHwUSphV8zZneO3GmtlgLsmhs/LQyVvQbIIa+fzGMUiHI4HXJZL3FT8MJmgXWbLGiVVY7ElvHq6vDA==} - deprecated: This is a stub types definition. sass provides its own type definitions, so you do not need this installed. - '@types/shallow-equals@1.0.3': resolution: {integrity: sha512-xZx/hZsf1p9J5lGN/nGTsuW/chJCdlyGxilwg1TS78rygBCU5bpY50zZiFcIimlnl0p41kAyaASsy0bqU7WyBA==} @@ -4942,9 +5449,6 @@ packages: '@types/stylis@4.2.5': resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==} - '@types/stylus@0.48.43': - resolution: {integrity: sha512-72dv/zdhuyXWVHUXG2VTPEQdOG+oen95/DNFx2aMFFaY6LoITI6PwEqf5x31JF49kp2w9hvUzkNfTGBIeg61LQ==} - '@types/supercluster@7.1.3': resolution: {integrity: sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==} @@ -5608,6 +6112,9 @@ packages: big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + bignumber.js@9.3.1: + resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} + binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} @@ -6096,18 +6603,6 @@ packages: css-global-keywords@1.0.1: resolution: {integrity: sha512-X1xgQhkZ9n94WDwntqst5D/FKkmiU0GlJSFZSV3kLvyJ1WC5VeyoXDOuleUD+SIuH9C7W05is++0Woh0CGfKjQ==} - css-loader@7.1.2: - resolution: {integrity: sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==} - engines: {node: '>= 18.12.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.27.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - css-select@5.1.0: resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} @@ -6131,11 +6626,6 @@ packages: csscolorparser@1.0.3: resolution: {integrity: sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==} - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - cssom@0.3.8: resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} @@ -6763,9 +7253,6 @@ packages: peerDependencies: esbuild: '>=0.12 <1' - esbuild-style-plugin@1.6.3: - resolution: {integrity: sha512-XPEKf4FjLjEVLv/dJH4UxDzXCrFHYpD93DBO8B+izdZARW5b7nNKQbnKv3J+7VDWJbgCU+hzfgIh2AuIZzlmXQ==} - esbuild@0.25.2: resolution: {integrity: sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==} engines: {node: '>=18'} @@ -7330,8 +7817,13 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - generic-names@4.0.0: - resolution: {integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==} + gaxios@6.7.1: + resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} + engines: {node: '>=14'} + + gcp-metadata@6.1.1: + resolution: {integrity: sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==} + engines: {node: '>=14'} gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} @@ -7525,6 +8017,10 @@ packages: resolution: {integrity: sha512-bud98CJ6kGZcP9Yxcsi7Iz647wuDz3oN+IZsjCRi5X1PI7t/xPKeL0mOwXJjo+CRZMqvq0CkSJiywCcY7kVYog==} hasBin: true + google-logging-utils@0.0.2: + resolution: {integrity: sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==} + engines: {node: '>=14'} + gopd@1.2.0: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} @@ -7738,12 +8234,6 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} - icss-utils@5.1.0: - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -8409,6 +8899,9 @@ packages: engines: {node: '>=6'} hasBin: true + json-bigint@1.0.0: + resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} + json-bignum@0.0.3: resolution: {integrity: sha512-2WHyXj3OfHSgNyuzDbSxI1w2jgw5gkWSWhS7Qg4bWXx1nLk3jnbwfUeS0PSba3IzpTUWdHxBieELUzXRjQB2zg==} engines: {node: '>=0.8'} @@ -8678,10 +9171,6 @@ packages: resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} engines: {node: '>=8.9.0'} - loader-utils@3.3.1: - resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==} - engines: {node: '>= 12.13.0'} - locate-path@3.0.0: resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} engines: {node: '>=6'} @@ -8778,6 +9267,9 @@ packages: resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} engines: {node: '>=18'} + long@5.3.2: + resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} + longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -9753,8 +10245,8 @@ packages: plotly.js-dist-min@2.35.3: resolution: {integrity: sha512-sz2HLP8gkysLx/BanM2PtJTtZ1PLPwdHwMWNri2YxLBy3IOeuDsVQtlmWa4hoK3j/fi4naaD3uZJqH5ozM3zGg==} - plotly.js@3.0.1: - resolution: {integrity: sha512-eWEUkqdv4sblmUQJ7xGlEA+LghzEVPJOlPBZMJuagG0CsQxlmBb+7rd0UFVig5jhRnN8PQqRQaLv6qXIjnvzgg==} + plotly.js@3.1.0: + resolution: {integrity: sha512-vx+CyzApL9tquFpwoPHOGSIWDbFPsA4om/tXZcnsygGUejXideDF9R5VwkltEIDG7Xuof45quVPyz1otv6Aqjw==} engines: {node: '>=18.0.0'} pluralize-esm@9.0.5: @@ -9775,39 +10267,6 @@ packages: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} - postcss-modules-extract-imports@3.1.0: - resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-local-by-default@4.2.0: - resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-scope@3.2.1: - resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-values@4.0.0: - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules@6.0.1: - resolution: {integrity: sha512-zyo2sAkVvuZFFy0gc2+4O+xar5dYlaVy/ebO24KT0ftk/iJevSNyPyQellsBLlnccwh7f6V6Y4GvuKRYToNgpQ==} - peerDependencies: - postcss: ^8.0.0 - - postcss-selector-parser@7.1.0: - resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} - engines: {node: '>=4'} - postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -9823,10 +10282,6 @@ packages: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} - postcss@8.5.6: - resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} - engines: {node: ^10 || ^12 || >=14} - postgres-array@2.0.0: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} engines: {node: '>=4'} @@ -9986,6 +10441,10 @@ packages: property-information@7.0.0: resolution: {integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==} + protobufjs@7.5.4: + resolution: {integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==} + engines: {node: '>=12.0.0'} + protocol-buffers-schema@3.6.0: resolution: {integrity: sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==} @@ -10780,8 +11239,8 @@ packages: react-dom: ^18 || ^19 styled-components: ^6.1.15 - sass@1.89.2: - resolution: {integrity: sha512-xCmtksBKd/jdJ9Bt9p7nPKiuqrlBMBuuGkQlkhZjjQk3Ty48lv93k5Dq6OPkKt4XwxDJ7tvlfrTa1MPA9bf+QA==} + sass@1.92.1: + resolution: {integrity: sha512-ffmsdbwqb3XeyR8jJR6KelIXARM9bFQe8A6Q3W4Klmwy5Ckd5gz7jgUNHo4UOqutU5Sk1DtKLbpDP0nLCg1xqQ==} engines: {node: '>=14.0.0'} hasBin: true @@ -11071,9 +11530,6 @@ packages: string-convert@0.2.1: resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==} - string-hash@1.1.3: - resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} - string-length@4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} engines: {node: '>=10'} @@ -11170,12 +11626,6 @@ packages: strongly-connected-components@1.0.1: resolution: {integrity: sha512-i0TFx4wPcO0FwX+4RkLJi1MxmcTv90jNZgxMu9XRnMXMeFUY1VJlIoXpZunPUvUUqbCT1pg5PEkFqqpcaElNaA==} - style-loader@4.0.0: - resolution: {integrity: sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==} - engines: {node: '>= 18.12.0'} - peerDependencies: - webpack: ^5.27.0 - style-to-js@1.1.16: resolution: {integrity: sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==} @@ -12502,11 +12952,11 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@ant-design/nextjs-registry@1.0.2(@ant-design/cssinjs@1.23.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(antd@5.24.6(date-fns@4.1.0)(moment@2.30.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@ant-design/nextjs-registry@1.0.2(@ant-design/cssinjs@1.23.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(antd@5.24.6(date-fns@4.1.0)(moment@2.30.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@ant-design/cssinjs': 1.23.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) antd: 5.24.6(date-fns@4.1.0)(moment@2.30.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2) + next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) @@ -13927,6 +14377,18 @@ snapshots: '@floating-ui/utils@0.2.9': {} + '@grpc/grpc-js@1.13.4': + dependencies: + '@grpc/proto-loader': 0.7.15 + '@js-sdsl/ordered-map': 4.4.2 + + '@grpc/proto-loader@0.7.15': + dependencies: + lodash.camelcase: 4.3.0 + long: 5.3.2 + protobufjs: 7.5.4 + yargs: 17.7.2 + '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 @@ -14464,6 +14926,8 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.4 + '@js-sdsl/ordered-map@4.4.2': {} + '@juggle/resize-observer@3.4.0': {} '@lexical/clipboard@0.30.0': @@ -14918,22 +15382,532 @@ snapshots: '@open-draft/until@2.1.0': {} + '@opentelemetry/api-logs@0.205.0': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs@0.57.2': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/api@1.9.0': {} + '@opentelemetry/auto-instrumentations-node@0.64.1(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-amqplib': 0.52.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-aws-lambda': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-aws-sdk': 0.60.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-bunyan': 0.51.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-cassandra-driver': 0.51.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-connect': 0.49.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-cucumber': 0.21.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-dataloader': 0.23.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-dns': 0.49.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-express': 0.54.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-fastify': 0.50.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-fs': 0.25.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-generic-pool': 0.49.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-graphql': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-grpc': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-hapi': 0.52.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-http': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-ioredis': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-kafkajs': 0.15.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-knex': 0.50.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-koa': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-lru-memoizer': 0.50.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-memcached': 0.49.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mongodb': 0.58.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mongoose': 0.52.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mysql': 0.51.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mysql2': 0.52.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-nestjs-core': 0.51.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-net': 0.49.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-oracledb': 0.31.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-pg': 0.58.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-pino': 0.52.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-redis': 0.54.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-restify': 0.51.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-router': 0.50.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-runtime-node': 0.19.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-socket.io': 0.52.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-tedious': 0.24.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-undici': 0.16.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-winston': 0.50.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resource-detector-alibaba-cloud': 0.31.5(@opentelemetry/api@1.9.0) + '@opentelemetry/resource-detector-aws': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resource-detector-azure': 0.12.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resource-detector-container': 0.7.5(@opentelemetry/api@1.9.0) + '@opentelemetry/resource-detector-gcp': 0.40.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-node': 0.205.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - encoding + - supports-color + '@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/semantic-conventions': 1.28.0 + + '@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.32.0 + + '@opentelemetry/exporter-logs-otlp-grpc@0.205.0(@opentelemetry/api@1.9.0)': + dependencies: + '@grpc/grpc-js': 1.13.4 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-grpc-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.205.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-logs-otlp-http@0.205.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.205.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.205.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-logs-otlp-proto@0.205.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.205.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-metrics-otlp-grpc@0.205.0(@opentelemetry/api@1.9.0)': + dependencies: + '@grpc/grpc-js': 1.13.4 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-http': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-grpc-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.1.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-metrics-otlp-http@0.205.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.1.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-metrics-otlp-proto@0.205.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-http': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.1.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-prometheus@0.205.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.1.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-trace-otlp-grpc@0.205.0(@opentelemetry/api@1.9.0)': + dependencies: + '@grpc/grpc-js': 1.13.4 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-grpc-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-trace-otlp-http@0.205.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-trace-otlp-proto@0.205.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-zipkin@2.1.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + + '@opentelemetry/instrumentation-amqplib@0.46.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-amqplib@0.52.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-aws-lambda@0.56.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + '@types/aws-lambda': 8.10.152 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-aws-sdk@0.60.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.37.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-bunyan@0.51.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.205.0 + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@types/bunyan': 1.8.11 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-cassandra-driver@0.51.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-connect@0.43.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + '@types/connect': 3.4.38 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-connect@0.49.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + '@types/connect': 3.4.38 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-cucumber@0.21.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-dataloader@0.16.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-dataloader@0.23.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-dns@0.49.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-express@0.47.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-express@0.54.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-fastify@0.44.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-fastify@0.50.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-fs@0.19.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-fs@0.25.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-generic-pool@0.43.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-generic-pool@0.49.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-graphql@0.47.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-graphql@0.53.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-grpc@0.205.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-hapi@0.45.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-hapi@0.52.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-http@0.205.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + forwarded-parse: 2.1.2 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-http@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.28.0 + forwarded-parse: 2.1.2 + semver: 7.7.1 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-ioredis@0.47.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/redis-common': 0.36.2 + '@opentelemetry/semantic-conventions': 1.32.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-ioredis@0.53.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/redis-common': 0.38.0 + '@opentelemetry/semantic-conventions': 1.32.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-kafkajs@0.15.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-kafkajs@0.7.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-knex@0.44.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-knex@0.50.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.37.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-koa@0.47.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-koa@0.53.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-lru-memoizer@0.44.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-lru-memoizer@0.50.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-memcached@0.49.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + '@types/memcached': 2.2.10 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-mongodb@0.52.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-mongodb@0.58.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + transitivePeerDependencies: + - supports-color - '@opentelemetry/instrumentation-amqplib@0.46.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mongoose@0.46.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) @@ -14942,194 +15916,207 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-connect@0.43.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mongoose@0.52.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.32.0 - '@types/connect': 3.4.38 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-dataloader@0.16.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mysql2@0.45.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-express@0.47.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mysql2@0.52.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.32.0 + '@opentelemetry/sql-common': 0.41.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-fastify@0.44.2(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mysql@0.45.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.32.0 + '@types/mysql': 2.15.26 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-fs@0.19.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mysql@0.51.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + '@types/mysql': 2.15.27 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-generic-pool@0.43.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-nestjs-core@0.51.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-graphql@0.47.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-net@0.49.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-hapi@0.45.2(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-oracledb@0.31.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.32.0 + '@types/oracledb': 6.5.2 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-http@0.57.2(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-pg@0.51.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.28.0 - forwarded-parse: 2.1.2 - semver: 7.7.1 + '@opentelemetry/semantic-conventions': 1.32.0 + '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) + '@types/pg': 8.6.1 + '@types/pg-pool': 2.0.6 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-ioredis@0.47.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-pg@0.58.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.32.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.37.0 + '@opentelemetry/sql-common': 0.41.0(@opentelemetry/api@1.9.0) + '@types/pg': 8.15.5 + '@types/pg-pool': 2.0.6 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-kafkajs@0.7.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-pino@0.52.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 + '@opentelemetry/api-logs': 0.205.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-knex@0.44.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-redis-4@0.46.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/redis-common': 0.36.2 '@opentelemetry/semantic-conventions': 1.32.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-koa@0.47.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-redis@0.54.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/redis-common': 0.38.0 '@opentelemetry/semantic-conventions': 1.32.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-lru-memoizer@0.44.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-restify@0.51.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mongodb@0.52.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-router@0.50.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.32.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mongoose@0.46.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-runtime-node@0.19.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-socket.io@0.52.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.32.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mysql2@0.45.2(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-tedious@0.18.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.32.0 - '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) + '@types/tedious': 4.0.14 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mysql@0.45.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-tedious@0.24.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.32.0 - '@types/mysql': 2.15.26 + '@types/tedious': 4.0.14 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-pg@0.51.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-undici@0.10.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) - '@types/pg': 8.6.1 - '@types/pg-pool': 2.0.6 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-redis-4@0.46.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-undici@0.16.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.32.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-tedious@0.18.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-winston@0.50.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - '@types/tedious': 4.0.14 + '@opentelemetry/api-logs': 0.205.0 + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-undici@0.10.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation@0.205.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/api-logs': 0.205.0 + import-in-the-middle: 1.13.1 + require-in-the-middle: 7.5.2 transitivePeerDependencies: - supports-color @@ -15145,14 +16132,137 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/otlp-exporter-base@0.205.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/otlp-grpc-exporter-base@0.205.0(@opentelemetry/api@1.9.0)': + dependencies: + '@grpc/grpc-js': 1.13.4 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/otlp-transformer@0.205.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.205.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) + protobufjs: 7.5.4 + + '@opentelemetry/propagator-b3@2.1.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/propagator-jaeger@2.1.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/redis-common@0.36.2': {} + '@opentelemetry/redis-common@0.38.0': {} + + '@opentelemetry/resource-detector-alibaba-cloud@0.31.5(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + + '@opentelemetry/resource-detector-aws@2.5.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + + '@opentelemetry/resource-detector-azure@0.12.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + + '@opentelemetry/resource-detector-container@0.7.5(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + + '@opentelemetry/resource-detector-gcp@0.40.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + gcp-metadata: 6.1.1 + transitivePeerDependencies: + - encoding + - supports-color + '@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/resources@2.1.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + + '@opentelemetry/sdk-logs@0.205.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.205.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/sdk-metrics@2.1.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/sdk-node@0.205.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.205.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-logs-otlp-grpc': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-logs-otlp-http': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-logs-otlp-proto': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-grpc': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-http': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-proto': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-prometheus': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-grpc': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-http': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-proto': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-zipkin': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/propagator-b3': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/propagator-jaeger': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-node': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -15160,15 +16270,36 @@ snapshots: '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.32.0 + + '@opentelemetry/sdk-trace-node@2.1.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions@1.28.0': {} '@opentelemetry/semantic-conventions@1.32.0': {} + '@opentelemetry/semantic-conventions@1.37.0': {} + '@opentelemetry/sql-common@0.40.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sql-common@0.41.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@oxc-resolver/binding-darwin-arm64@11.4.0': optional: true @@ -15409,6 +16540,29 @@ snapshots: '@probe.gl/stats@4.1.0': {} + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + '@radix-ui/number@1.1.1': {} '@radix-ui/primitive@1.1.2': {} @@ -16161,12 +17315,12 @@ snapshots: nanoid: 3.3.11 rxjs: 7.8.2 - '@sanity/cli@3.94.2(@types/node@22.14.0)(@types/react@19.1.0)(lightningcss@1.29.2)(react@19.1.0)(sass@1.89.2)(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1)': + '@sanity/cli@3.94.2(@types/node@22.14.0)(@types/react@19.1.0)(lightningcss@1.29.2)(react@19.1.0)(sass@1.92.1)(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1)': dependencies: '@babel/traverse': 7.27.4 '@sanity/client': 7.6.0(debug@4.4.0) '@sanity/codegen': 3.94.2 - '@sanity/runtime-cli': 8.1.4(@types/node@22.14.0)(lightningcss@1.29.2)(sass@1.89.2)(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1) + '@sanity/runtime-cli': 8.1.4(@types/node@22.14.0)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1) '@sanity/telemetry': 0.8.1(react@19.1.0) '@sanity/template-validator': 2.4.3 '@sanity/util': 3.94.2(@types/react@19.1.0)(debug@4.4.0) @@ -16407,13 +17561,13 @@ snapshots: - '@types/react' - supports-color - '@sanity/next-loader@1.6.2(@sanity/types@3.94.2(@types/react@19.1.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2))(react@19.1.0)': + '@sanity/next-loader@1.6.2(@sanity/types@3.94.2(@types/react@19.1.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react@19.1.0)': dependencies: '@sanity/client': 7.6.0(debug@4.4.0) '@sanity/comlink': 3.0.5 '@sanity/presentation-comlink': 1.0.21(@sanity/client@7.6.0)(@sanity/types@3.94.2(@types/react@19.1.0)) dequal: 2.0.3 - next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2) + next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1) react: 19.1.0 use-effect-event: 1.0.2(react@19.1.0) transitivePeerDependencies: @@ -16445,7 +17599,7 @@ snapshots: '@sanity/client': 7.6.0(debug@4.4.0) '@sanity/uuid': 3.0.2 - '@sanity/runtime-cli@8.1.4(@types/node@22.14.0)(lightningcss@1.29.2)(sass@1.89.2)(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1)': + '@sanity/runtime-cli@8.1.4(@types/node@22.14.0)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1)': dependencies: '@oclif/core': 4.4.0 '@oclif/plugin-help': 6.2.29 @@ -16461,8 +17615,8 @@ snapshots: mime-types: 3.0.1 ora: 8.2.0 tar-stream: 3.1.7 - vite: 6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.89.2)(terser@5.43.1)(yaml@2.7.1) - vite-tsconfig-paths: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.89.2)(terser@5.43.1)(yaml@2.7.1)) + vite: 6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1) + vite-tsconfig-paths: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1)) ws: 8.18.2 xdg-basedir: 5.1.0 transitivePeerDependencies: @@ -16624,7 +17778,7 @@ snapshots: optionalDependencies: '@sanity/types': 3.94.2(@types/react@19.1.0)(debug@4.4.0) - '@sanity/visual-editing@2.15.0(@emotion/is-prop-valid@1.2.2)(@sanity/client@7.6.0)(@sanity/types@3.94.2(@types/react@19.1.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2))(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(typescript@5.8.3)': + '@sanity/visual-editing@2.15.0(@emotion/is-prop-valid@1.2.2)(@sanity/client@7.6.0)(@sanity/types@3.94.2(@types/react@19.1.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(typescript@5.8.3)': dependencies: '@sanity/comlink': 3.0.5 '@sanity/icons': 3.7.0(react@19.1.0) @@ -16647,7 +17801,7 @@ snapshots: xstate: 5.19.2 optionalDependencies: '@sanity/client': 7.6.0(debug@4.4.0) - next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2) + next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1) transitivePeerDependencies: - '@emotion/is-prop-valid' - '@sanity/types' @@ -16766,7 +17920,7 @@ snapshots: '@sentry/core@9.12.0': {} - '@sentry/nextjs@9.12.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2))(react@19.1.0)(webpack@5.99.5(esbuild@0.25.5))': + '@sentry/nextjs@9.12.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react@19.1.0)(webpack@5.99.5(esbuild@0.25.5))': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.32.0 @@ -16779,7 +17933,7 @@ snapshots: '@sentry/vercel-edge': 9.12.0 '@sentry/webpack-plugin': 3.2.4(webpack@5.99.5(esbuild@0.25.5)) chalk: 3.0.0 - next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2) + next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1) resolve: 1.22.8 rollup: 4.35.0 stacktrace-parser: 0.1.11 @@ -17108,6 +18262,8 @@ snapshots: '@types/aria-query@5.0.4': {} + '@types/aws-lambda@8.10.152': {} + '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.27.0 @@ -17131,6 +18287,10 @@ snapshots: '@types/base16@1.0.5': {} + '@types/bunyan@1.8.11': + dependencies: + '@types/node': 22.16.4 + '@types/canvas-confetti@1.9.0': {} '@types/chroma-js@2.4.5': {} @@ -17343,8 +18503,6 @@ snapshots: '@types/katex@0.16.7': {} - '@types/less@3.0.8': {} - '@types/lodash-es@4.17.12': dependencies: '@types/lodash': 4.17.16 @@ -17365,6 +18523,10 @@ snapshots: dependencies: '@types/unist': 3.0.3 + '@types/memcached@2.2.10': + dependencies: + '@types/node': 22.16.4 + '@types/minimist@1.2.5': {} '@types/ms@2.1.0': {} @@ -17373,6 +18535,10 @@ snapshots: dependencies: '@types/node': 22.14.0 + '@types/mysql@2.15.27': + dependencies: + '@types/node': 22.16.4 + '@types/node@20.17.30': dependencies: undici-types: 6.19.8 @@ -17389,6 +18555,10 @@ snapshots: '@types/offscreencanvas@2019.7.3': {} + '@types/oracledb@6.5.2': + dependencies: + '@types/node': 22.16.4 + '@types/parse-json@4.0.2': {} '@types/pbf@3.0.5': {} @@ -17397,6 +18567,12 @@ snapshots: dependencies: '@types/pg': 8.6.1 + '@types/pg@8.15.5': + dependencies: + '@types/node': 22.16.4 + pg-protocol: 1.8.0 + pg-types: 2.2.0 + '@types/pg@8.6.1': dependencies: '@types/node': 22.14.0 @@ -17442,10 +18618,6 @@ snapshots: dependencies: csstype: 3.1.3 - '@types/sass@1.45.0': - dependencies: - sass: 1.89.2 - '@types/shallow-equals@1.0.3': {} '@types/shimmer@1.2.0': {} @@ -17460,10 +18632,6 @@ snapshots: '@types/stylis@4.2.5': {} - '@types/stylus@0.48.43': - dependencies: - '@types/node': 22.16.4 - '@types/supercluster@7.1.3': dependencies: '@types/geojson': 7946.0.16 @@ -17697,7 +18865,7 @@ snapshots: '@vercel/stega@0.1.2': {} - '@vitejs/plugin-react@4.5.2(vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.89.2)(terser@5.43.1)(yaml@2.7.1))': + '@vitejs/plugin-react@4.5.2(vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1))': dependencies: '@babel/core': 7.27.4 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.27.4) @@ -17705,11 +18873,11 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.11 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.89.2)(terser@5.43.1)(yaml@2.7.1) + vite: 6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.6.0(vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.89.2)(terser@5.43.1)(yaml@2.7.1))': + '@vitejs/plugin-react@4.6.0(vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1))': dependencies: '@babel/core': 7.27.4 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.27.4) @@ -17717,7 +18885,7 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.19 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.89.2)(terser@5.43.1)(yaml@2.7.1) + vite: 6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1) transitivePeerDependencies: - supports-color @@ -17728,14 +18896,14 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.1.1(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(vite@6.2.6(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.89.2)(terser@5.43.1)(yaml@2.7.1))': + '@vitest/mocker@3.1.1(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(vite@6.2.6(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1))': dependencies: '@vitest/spy': 3.1.1 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: msw: 2.7.3(@types/node@22.14.0)(typescript@5.8.3) - vite: 6.2.6(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.89.2)(terser@5.43.1)(yaml@2.7.1) + vite: 6.2.6(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1) '@vitest/pretty-format@3.1.1': dependencies: @@ -18277,6 +19445,8 @@ snapshots: big.js@5.2.2: {} + bignumber.js@9.3.1: {} + binary-extensions@2.3.0: {} binary-search-bounds@2.0.5: {} @@ -18783,19 +19953,6 @@ snapshots: css-global-keywords@1.0.1: {} - css-loader@7.1.2(webpack@5.99.5(esbuild@0.25.5)): - dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.6) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.6) - postcss-modules-scope: 3.2.1(postcss@8.5.6) - postcss-modules-values: 4.0.0(postcss@8.5.6) - postcss-value-parser: 4.2.0 - semver: 7.7.2 - optionalDependencies: - webpack: 5.99.5(esbuild@0.25.5) - css-select@5.1.0: dependencies: boolbase: 1.0.0 @@ -18823,8 +19980,6 @@ snapshots: csscolorparser@1.0.3: {} - cssesc@3.0.0: {} - cssom@0.3.8: {} cssom@0.5.0: {} @@ -19548,15 +20703,6 @@ snapshots: transitivePeerDependencies: - supports-color - esbuild-style-plugin@1.6.3: - dependencies: - '@types/less': 3.0.8 - '@types/sass': 1.45.0 - '@types/stylus': 0.48.43 - glob: 10.4.5 - postcss: 8.5.6 - postcss-modules: 6.0.1(postcss@8.5.6) - esbuild@0.25.2: optionalDependencies: '@esbuild/aix-ppc64': 0.25.2 @@ -20226,9 +21372,25 @@ snapshots: functions-have-names@1.2.3: {} - generic-names@4.0.0: + gaxios@6.7.1: + dependencies: + extend: 3.0.2 + https-proxy-agent: 7.0.6 + is-stream: 2.0.1 + node-fetch: 2.7.0 + uuid: 9.0.1 + transitivePeerDependencies: + - encoding + - supports-color + + gcp-metadata@6.1.1: dependencies: - loader-utils: 3.3.1 + gaxios: 6.7.1 + google-logging-utils: 0.0.2 + json-bigint: 1.0.0 + transitivePeerDependencies: + - encoding + - supports-color gensync@1.0.0-beta.2: {} @@ -20515,6 +21677,8 @@ snapshots: through2: 2.0.5 xtend: 4.0.2 + google-logging-utils@0.0.2: {} + gopd@1.2.0: {} graceful-fs@4.2.11: {} @@ -20791,10 +21955,6 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - ieee754@1.2.1: {} ignore@5.3.2: {} @@ -21663,6 +22823,10 @@ snapshots: jsesc@3.1.0: {} + json-bigint@1.0.0: + dependencies: + bignumber.js: 9.3.1 + json-bignum@0.0.3: {} json-buffer@3.0.1: {} @@ -21896,8 +23060,6 @@ snapshots: emojis-list: 3.0.0 json5: 2.2.3 - loader-utils@3.3.1: {} - locate-path@3.0.0: dependencies: p-locate: 3.0.0 @@ -21973,6 +23135,8 @@ snapshots: chalk: 5.4.1 is-unicode-supported: 1.3.0 + long@5.3.2: {} + longest-streak@3.1.0: {} loose-envify@1.4.0: @@ -22716,13 +23880,13 @@ snapshots: neo-async@2.6.2: {} - next-auth@4.24.11(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2))(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + next-auth@4.24.11(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@babel/runtime': 7.27.0 '@panva/hkdf': 1.2.1 cookie: 0.7.2 jose: 4.15.9 - next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2) + next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1) oauth: 0.9.15 openid-client: 5.7.1 preact: 10.26.5 @@ -22731,27 +23895,27 @@ snapshots: react-dom: 19.1.0(react@19.1.0) uuid: 8.3.2 - next-sanity-client@1.0.8(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2)): + next-sanity-client@1.0.8(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1)): dependencies: - next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2) + next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1) - next-sanity@9.12.0(@emotion/is-prop-valid@1.2.2)(@sanity/client@7.6.0)(@sanity/icons@3.7.4(react@19.1.0))(@sanity/types@3.94.2(@types/react@19.1.0))(@sanity/ui@2.16.2(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2))(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(sanity@3.94.2(@emotion/is-prop-valid@1.2.2)(@types/node@22.14.0)(@types/react@19.1.0)(immer@10.1.1)(jiti@2.4.2)(lightningcss@1.29.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1))(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(typescript@5.8.3): + next-sanity@9.12.0(@emotion/is-prop-valid@1.2.2)(@sanity/client@7.6.0)(@sanity/icons@3.7.4(react@19.1.0))(@sanity/types@3.94.2(@types/react@19.1.0))(@sanity/ui@2.16.2(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(sanity@3.94.2(@emotion/is-prop-valid@1.2.2)(@types/node@22.14.0)(@types/react@19.1.0)(immer@10.1.1)(jiti@2.4.2)(lightningcss@1.29.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1))(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(typescript@5.8.3): dependencies: '@portabletext/react': 3.2.1(react@19.1.0) '@sanity/client': 7.6.0(debug@4.4.0) '@sanity/icons': 3.7.4(react@19.1.0) - '@sanity/next-loader': 1.6.2(@sanity/types@3.94.2(@types/react@19.1.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2))(react@19.1.0) + '@sanity/next-loader': 1.6.2(@sanity/types@3.94.2(@types/react@19.1.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react@19.1.0) '@sanity/preview-kit': 6.1.1(@sanity/types@3.94.2(@types/react@19.1.0))(react@19.1.0) '@sanity/preview-url-secret': 2.1.11(@sanity/client@7.6.0) '@sanity/types': 3.94.2(@types/react@19.1.0)(debug@4.4.0) '@sanity/ui': 2.16.2(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) - '@sanity/visual-editing': 2.15.0(@emotion/is-prop-valid@1.2.2)(@sanity/client@7.6.0)(@sanity/types@3.94.2(@types/react@19.1.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2))(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(typescript@5.8.3) + '@sanity/visual-editing': 2.15.0(@emotion/is-prop-valid@1.2.2)(@sanity/client@7.6.0)(@sanity/types@3.94.2(@types/react@19.1.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(typescript@5.8.3) groq: 3.92.0 history: 5.3.0 - next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2) + next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - sanity: 3.94.2(@emotion/is-prop-valid@1.2.2)(@types/node@22.14.0)(@types/react@19.1.0)(immer@10.1.1)(jiti@2.4.2)(lightningcss@1.29.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1) + sanity: 3.94.2(@emotion/is-prop-valid@1.2.2)(@types/node@22.14.0)(@types/react@19.1.0)(immer@10.1.1)(jiti@2.4.2)(lightningcss@1.29.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1) styled-components: 6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@emotion/is-prop-valid' @@ -22765,7 +23929,7 @@ snapshots: next-tick@1.1.0: {} - next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2): + next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1): dependencies: '@next/env': 15.4.1 '@swc/helpers': 0.5.15 @@ -22785,7 +23949,7 @@ snapshots: '@next/swc-win32-x64-msvc': 15.4.1 '@opentelemetry/api': 1.9.0 '@playwright/test': 1.51.1 - sass: 1.89.2 + sass: 1.92.1 sharp: 0.34.3 transitivePeerDependencies: - '@babel/core' @@ -22852,12 +24016,12 @@ snapshots: dependencies: is-finite: 1.1.0 - nuqs@2.4.1(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2))(react@19.1.0): + nuqs@2.4.1(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react@19.1.0): dependencies: mitt: 3.0.1 react: 19.1.0 optionalDependencies: - next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2) + next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1) nwsapi@2.2.20: {} @@ -23218,12 +24382,13 @@ snapshots: plotly.js-dist-min@2.35.3: {} - plotly.js@3.0.1(mapbox-gl@1.13.3)(webpack@5.99.5(esbuild@0.25.5)): + plotly.js@3.1.0(mapbox-gl@1.13.3): dependencies: '@plotly/d3': 3.8.2 '@plotly/d3-sankey': 0.7.2 '@plotly/d3-sankey-circular': 0.33.1 '@plotly/mapbox-gl': 1.13.4(mapbox-gl@1.13.3) + '@plotly/regl': 2.1.2 '@turf/area': 7.2.0 '@turf/bbox': 7.2.0 '@turf/centroid': 7.2.0 @@ -23234,7 +24399,6 @@ snapshots: color-parse: 2.0.0 color-rgba: 3.0.0 country-regex: 1.1.0 - css-loader: 7.1.2(webpack@5.99.5(esbuild@0.25.5)) d3-force: 1.2.1 d3-format: 1.4.5 d3-geo: 1.12.1 @@ -23243,7 +24407,6 @@ snapshots: d3-interpolate: 3.0.1 d3-time: 1.1.0 d3-time-format: 2.3.0 - esbuild-style-plugin: 1.6.3 fast-isnumeric: 1.1.4 gl-mat4: 1.2.0 gl-text: 1.4.0 @@ -23259,13 +24422,11 @@ snapshots: point-in-polygon: 1.1.0 polybooljs: 1.2.2 probe-image-size: 7.2.3 - regl: '@plotly/regl@2.1.2' regl-error2d: 2.0.12 regl-line2d: 3.1.3 regl-scatter2d: 3.3.1 regl-splom: 1.0.14 strongly-connected-components: 1.0.1 - style-loader: 4.0.0(webpack@5.99.5(esbuild@0.25.5)) superscript-text: 1.0.0 svg-path-sdf: 1.1.3 tinycolor2: 1.6.0 @@ -23274,10 +24435,8 @@ snapshots: webgl-context: 2.2.0 world-calendars: 1.0.4 transitivePeerDependencies: - - '@rspack/core' - mapbox-gl - supports-color - - webpack pluralize-esm@9.0.5: {} @@ -23291,44 +24450,6 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-modules-extract-imports@3.1.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - - postcss-modules-local-by-default@4.2.0(postcss@8.5.6): - dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-selector-parser: 7.1.0 - postcss-value-parser: 4.2.0 - - postcss-modules-scope@3.2.1(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-selector-parser: 7.1.0 - - postcss-modules-values@4.0.0(postcss@8.5.6): - dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 - - postcss-modules@6.0.1(postcss@8.5.6): - dependencies: - generic-names: 4.0.0 - icss-utils: 5.1.0(postcss@8.5.6) - lodash.camelcase: 4.3.0 - postcss: 8.5.6 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.6) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.6) - postcss-modules-scope: 3.2.1(postcss@8.5.6) - postcss-modules-values: 4.0.0(postcss@8.5.6) - string-hash: 1.1.3 - - postcss-selector-parser@7.1.0: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - postcss-value-parser@4.2.0: {} postcss@8.4.31: @@ -23349,12 +24470,6 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.6: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - postgres-array@2.0.0: {} postgres-bytea@1.0.0: {} @@ -23466,6 +24581,21 @@ snapshots: property-information@7.0.0: {} + protobufjs@7.5.4: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 22.16.4 + long: 5.3.2 + protocol-buffers-schema@3.6.0: {} proxy-from-env@1.1.0: {} @@ -24001,9 +25131,9 @@ snapshots: optionalDependencies: '@types/react': 19.1.0 - react-plotly.js@2.6.0(plotly.js@3.0.1(mapbox-gl@1.13.3)(webpack@5.99.5(esbuild@0.25.5)))(react@19.1.0): + react-plotly.js@2.6.0(plotly.js@3.1.0(mapbox-gl@1.13.3))(react@19.1.0): dependencies: - plotly.js: 3.0.1(mapbox-gl@1.13.3)(webpack@5.99.5(esbuild@0.25.5)) + plotly.js: 3.1.0(mapbox-gl@1.13.3) prop-types: 15.8.1 react: 19.1.0 @@ -24556,7 +25686,7 @@ snapshots: safer-buffer@2.1.2: {} - sanity@3.94.2(@emotion/is-prop-valid@1.2.2)(@types/node@22.14.0)(@types/react@19.1.0)(immer@10.1.1)(jiti@2.4.2)(lightningcss@1.29.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.2)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1): + sanity@3.94.2(@emotion/is-prop-valid@1.2.2)(@types/node@22.14.0)(@types/react@19.1.0)(immer@10.1.1)(jiti@2.4.2)(lightningcss@1.29.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1): dependencies: '@dnd-kit/core': 6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@dnd-kit/modifiers': 6.0.1(@dnd-kit/core@6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0) @@ -24570,7 +25700,7 @@ snapshots: '@rexxars/react-json-inspector': 9.0.1(react@19.1.0) '@sanity/asset-utils': 2.2.1 '@sanity/bifur-client': 0.4.1 - '@sanity/cli': 3.94.2(@types/node@22.14.0)(@types/react@19.1.0)(lightningcss@1.29.2)(react@19.1.0)(sass@1.89.2)(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1) + '@sanity/cli': 3.94.2(@types/node@22.14.0)(@types/react@19.1.0)(lightningcss@1.29.2)(react@19.1.0)(sass@1.92.1)(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1) '@sanity/client': 7.6.0(debug@4.4.0) '@sanity/color': 3.0.6 '@sanity/comlink': 3.0.5 @@ -24607,7 +25737,7 @@ snapshots: '@types/tar-stream': 3.1.3 '@types/use-sync-external-store': 1.5.0 '@types/which': 3.0.4 - '@vitejs/plugin-react': 4.6.0(vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.89.2)(terser@5.43.1)(yaml@2.7.1)) + '@vitejs/plugin-react': 4.6.0(vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1)) '@xstate/react': 6.0.0(@types/react@19.1.0)(react@19.1.0)(xstate@5.20.0) archiver: 7.0.1 arrify: 2.0.1 @@ -24695,7 +25825,7 @@ snapshots: use-hot-module-reload: 2.0.0(react@19.1.0) use-sync-external-store: 1.5.0(react@19.1.0) uuid: 11.1.0 - vite: 6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.89.2)(terser@5.43.1)(yaml@2.7.1) + vite: 6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1) which: 5.0.0 xstate: 5.20.0 yargs: 17.7.2 @@ -24721,7 +25851,7 @@ snapshots: - utf-8-validate - yaml - sass@1.89.2: + sass@1.92.1: dependencies: chokidar: 4.0.3 immutable: 5.1.3 @@ -25071,8 +26201,6 @@ snapshots: string-convert@0.2.1: {} - string-hash@1.1.3: {} - string-length@4.0.2: dependencies: char-regex: 1.0.2 @@ -25196,10 +26324,6 @@ snapshots: strongly-connected-components@1.0.1: {} - style-loader@4.0.0(webpack@5.99.5(esbuild@0.25.5)): - dependencies: - webpack: 5.99.5(esbuild@0.25.5) - style-to-js@1.1.16: dependencies: style-to-object: 1.0.8 @@ -25927,13 +27051,13 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@3.1.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.89.2)(terser@5.43.1)(yaml@2.7.1): + vite-node@3.1.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) es-module-lexer: 1.6.0 pathe: 2.0.3 - vite: 6.2.6(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.89.2)(terser@5.43.1)(yaml@2.7.1) + vite: 6.2.6(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1) transitivePeerDependencies: - '@types/node' - jiti @@ -25948,18 +27072,18 @@ snapshots: - tsx - yaml - vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.89.2)(terser@5.43.1)(yaml@2.7.1)): + vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1)): dependencies: debug: 4.4.0(supports-color@8.1.1) globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.8.3) optionalDependencies: - vite: 6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.89.2)(terser@5.43.1)(yaml@2.7.1) + vite: 6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1) transitivePeerDependencies: - supports-color - typescript - vite@6.2.6(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.89.2)(terser@5.43.1)(yaml@2.7.1): + vite@6.2.6(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1): dependencies: esbuild: 0.25.2 postcss: 8.5.3 @@ -25969,11 +27093,11 @@ snapshots: fsevents: 2.3.3 jiti: 2.4.2 lightningcss: 1.29.2 - sass: 1.89.2 + sass: 1.92.1 terser: 5.43.1 yaml: 2.7.1 - vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.89.2)(terser@5.43.1)(yaml@2.7.1): + vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1): dependencies: esbuild: 0.25.5 fdir: 6.4.6(picomatch@4.0.2) @@ -25986,14 +27110,14 @@ snapshots: fsevents: 2.3.3 jiti: 2.4.2 lightningcss: 1.29.2 - sass: 1.89.2 + sass: 1.92.1 terser: 5.43.1 yaml: 2.7.1 - vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.14.0)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.29.2)(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(sass@1.89.2)(terser@5.43.1)(yaml@2.7.1): + vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.14.0)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.29.2)(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1): dependencies: '@vitest/expect': 3.1.1 - '@vitest/mocker': 3.1.1(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(vite@6.2.6(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.89.2)(terser@5.43.1)(yaml@2.7.1)) + '@vitest/mocker': 3.1.1(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(vite@6.2.6(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1)) '@vitest/pretty-format': 3.1.1 '@vitest/runner': 3.1.1 '@vitest/snapshot': 3.1.1 @@ -26009,8 +27133,8 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.2.6(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.89.2)(terser@5.43.1)(yaml@2.7.1) - vite-node: 3.1.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.89.2)(terser@5.43.1)(yaml@2.7.1) + vite: 6.2.6(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1) + vite-node: 3.1.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 From 7ba5656a2f92d531104c7010cc16a432c0613bc1 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Fri, 12 Sep 2025 12:03:45 +0200 Subject: [PATCH 31/44] package fixes --- src/features/details-view/summary.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/features/details-view/summary.tsx b/src/features/details-view/summary.tsx index 1cfb23e86..e164948a4 100644 --- a/src/features/details-view/summary.tsx +++ b/src/features/details-view/summary.tsx @@ -44,16 +44,17 @@ export default function Summary< dataType: DataType; children?: (detail: T) => ReactNode; }) { - const { id, virtualLabId, projectId, ...params } = useParams(); + const allParams = useParams(); + const { virtualLabId, projectId } = allParams; const setBrainRegionSidebarIsCollapsed = useSetAtom(brainRegionSidebarIsCollapsedAtom); const fields = getViewDefinitionByLegacyType(dataType)?.summaryViewFields; const path = usePathname(); const memoizedDetailAtom = useMemo(() => { - const detailFetchAtom = detailFamily({ id, virtualLabId, projectId, dataType, ...params }); + const detailFetchAtom = detailFamily({ ...allParams, dataType }); return conditionalAtom(payload, detailFetchAtom); - }, [payload, id, virtualLabId, projectId, dataType, params]); + }, [payload, dataType, allParams]); const detail = useAtomValue(memoizedDetailAtom); From 15856472db603ef3ecdce2059d9338909974cb1b Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Fri, 12 Sep 2025 13:16:26 +0200 Subject: [PATCH 32/44] default license update --- .../contribute/morphology/_components/components.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/features/contribute/morphology/_components/components.tsx b/src/features/contribute/morphology/_components/components.tsx index fb6acc40f..fea52ddba 100644 --- a/src/features/contribute/morphology/_components/components.tsx +++ b/src/features/contribute/morphology/_components/components.tsx @@ -421,7 +421,7 @@ export function JSONMorphologySchemaForm({ fetchMtypes(session.accessToken), ]); - let fetchedBrainRegionName = null; // Renamed to avoid shadowing + let fetchedBrainRegionName = null; if (nodeId) { fetchedBrainRegionName = await fetchBrainRegion(session.accessToken, nodeId); } @@ -441,6 +441,10 @@ export function JSONMorphologySchemaForm({ } if (licensesData) { setAllLicenses(licensesData); + if (!state.license_id) { + const defaultLicenseId = 'ad8686db-3cdd-4e3f-bcbd-812380a9eba7'; + setState((prev) => ({ ...prev, license_id: defaultLicenseId })); + } } if (mtypesData) { setAllMtypes(mtypesData); @@ -449,7 +453,7 @@ export function JSONMorphologySchemaForm({ }; fetchData(); - }, [nodeId]); + }, [nodeId, state.license_id, setState]); const markFieldTouched = (field: string) => { setTouchedFields((prev) => new Set([...prev, field])); From e112ef5848200691394092f611b5aadccc736943 Mon Sep 17 00:00:00 2001 From: dkeller9 Date: Fri, 12 Sep 2025 16:19:53 +0200 Subject: [PATCH 33/44] Update components.tsx --- src/features/contribute/morphology/_components/components.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/features/contribute/morphology/_components/components.tsx b/src/features/contribute/morphology/_components/components.tsx index fea52ddba..91c702829 100644 --- a/src/features/contribute/morphology/_components/components.tsx +++ b/src/features/contribute/morphology/_components/components.tsx @@ -127,7 +127,7 @@ const processData = async (token: string): Promise => { Authorization: `Bearer ${token}`, }; - const urlSpecies = 'https://staging.openbraininstitute.org/api/entitycore/subject'; + const urlSpecies = 'https://staging.openbraininstitute.org/api/entitycore/species'; const urlStrain = 'https://staging.openbraininstitute.org/api/entitycore/strain'; let jsonDataSpecies: SpeciesData = { data: [] }; From 6f46820cfd9d5e3e2cb0fdbffb8e98b74d658940 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Fri, 12 Sep 2025 16:57:52 +0200 Subject: [PATCH 34/44] cleanup --- .../contribute/_components/atoms/index.ts | 170 ---- .../circuit-details/circuit-details.tsx | 22 - .../_components/circuit-details/index.ts | 1 - .../circuit-name/circuit-name.module.css | 50 - .../circuit-preview.module.css | 14 - .../circuit-preview/circuit-preview.tsx | 25 - .../_components/circuit-preview/index.ts | 1 - .../contribute/_components/components.tsx | 949 ------------------ .../_components/file-viewer/index.tsx | 81 -- .../contribute/_components/hooks/circuit.ts | 88 -- .../_components/hooks/config-atom.ts | 30 - .../contribute/_components/hooks/schema.ts | 149 --- .../contribute/_components/section.tsx | 221 ---- .../_components/simulation-files/index.tsx | 198 ---- .../_components/simulation-status/index.tsx | 50 - .../_components/tabs-selector/index.ts | 1 - .../tabs-selector/tabs-selector.tsx | 43 - .../contribute/_components/tooltip/index.ts | 1 - .../_components/tooltip/tooltip.module.css | 39 - .../_components/tooltip/tooltip.tsx | 20 - src/features/contribute/_components/utils.ts | 73 -- src/features/contribute/error-registry.ts | 7 - .../contribute/small-microcircuit.module.css | 32 - src/features/contribute/types.ts | 35 - 24 files changed, 2300 deletions(-) delete mode 100644 src/features/contribute/_components/atoms/index.ts delete mode 100644 src/features/contribute/_components/circuit-details/circuit-details.tsx delete mode 100644 src/features/contribute/_components/circuit-details/index.ts delete mode 100644 src/features/contribute/_components/circuit-name/circuit-name.module.css delete mode 100644 src/features/contribute/_components/circuit-preview/circuit-preview.module.css delete mode 100644 src/features/contribute/_components/circuit-preview/circuit-preview.tsx delete mode 100644 src/features/contribute/_components/circuit-preview/index.ts delete mode 100644 src/features/contribute/_components/components.tsx delete mode 100644 src/features/contribute/_components/file-viewer/index.tsx delete mode 100644 src/features/contribute/_components/hooks/circuit.ts delete mode 100644 src/features/contribute/_components/hooks/config-atom.ts delete mode 100644 src/features/contribute/_components/hooks/schema.ts delete mode 100644 src/features/contribute/_components/section.tsx delete mode 100644 src/features/contribute/_components/simulation-files/index.tsx delete mode 100644 src/features/contribute/_components/simulation-status/index.tsx delete mode 100644 src/features/contribute/_components/tabs-selector/index.ts delete mode 100644 src/features/contribute/_components/tabs-selector/tabs-selector.tsx delete mode 100644 src/features/contribute/_components/tooltip/index.ts delete mode 100644 src/features/contribute/_components/tooltip/tooltip.module.css delete mode 100644 src/features/contribute/_components/tooltip/tooltip.tsx delete mode 100644 src/features/contribute/_components/utils.ts delete mode 100755 src/features/contribute/error-registry.ts delete mode 100755 src/features/contribute/small-microcircuit.module.css delete mode 100755 src/features/contribute/types.ts diff --git a/src/features/contribute/_components/atoms/index.ts b/src/features/contribute/_components/atoms/index.ts deleted file mode 100644 index 25ceed256..000000000 --- a/src/features/contribute/_components/atoms/index.ts +++ /dev/null @@ -1,170 +0,0 @@ -import { atom } from 'jotai'; -import { atomWithRefresh } from 'jotai/utils'; -import isEqual from 'lodash/isEqual'; - -import { downloadAsset } from '@/api/entitycore/queries/assets'; -import { getCircuit } from '@/api/entitycore/queries/model/circuit'; -import { getCircuitSimulations } from '@/api/entitycore/queries/simulation/circuit-simulation'; -import { getCircuitSimulationExecutions } from '@/api/entitycore/queries/simulation/circuit-simulation-execution'; -import { getCircuitSimulationResult } from '@/api/entitycore/queries/simulation/circuit-simulation-result'; -import { EntityTypeValue } from '@/api/entitycore/types'; -import { ICircuit } from '@/api/entitycore/types/entities/circuit'; -import { ICircuitSimulation } from '@/api/entitycore/types/entities/circuit-simulation'; -import { ICircuitSimulationExecution } from '@/api/entitycore/types/entities/circuit-simulation-execution'; -import { ICircuitSimulationResult } from '@/api/entitycore/types/entities/circuit-simulation-result'; -import { getLatestSimExecStatus } from '@/features/small-microcircuit/_components/utils'; -import { SimExecStatusMap } from '@/features/small-microcircuit/types'; -import { WorkspaceContext } from '@/types/common'; -import { atomFamilyWithExpiration, readAtomFamilyWithExpiration } from '@/util/atoms'; - -const simExecBySimIdAtomFamily = readAtomFamilyWithExpiration( - ({ simulationId, context }: { simulationId: string; context: WorkspaceContext }) => - atom>(async () => { - const simulationExecutionFilters = { used__id: simulationId }; - const res = await getCircuitSimulationExecutions({ - filters: simulationExecutionFilters, - context, - }); - - return res.data[0]; - }), - { - ttl: 120000, // 2 minutes - areEqual: isEqual, - } -); - -export const simExecRemoteStatusMapAtomFamily = atomFamilyWithExpiration( - ({ simulationIds, context }: { simulationIds: string[]; context: WorkspaceContext }) => - atomWithRefresh>(async () => { - const simulationExecutionFilters = { used__id__in: simulationIds.join(',') }; - const res = await getCircuitSimulationExecutions({ - filters: simulationExecutionFilters, - context, - }); - - return res.data.reduce( - (map, simExec) => map.set(simExec.used[0].id, simExec.status), - new Map() - ); - }), - { - ttl: 120000, // 2 minutes - areEqual: isEqual, - } -); - -type SimExecStatusMapAtomFamilyArg = { simulationIds: string[]; context: WorkspaceContext }; - -export const simExecStatusMapAtomFamily = atomFamilyWithExpiration( - ({ simulationIds, context }: SimExecStatusMapAtomFamilyArg) => { - const simExecRemoteStatusMapAtom = simExecRemoteStatusMapAtomFamily({ - simulationIds, - context, - }); - - const localStatusMapAtom = atom(new Map()); - - return atom, [SimExecStatusMap], void>( - async (get) => { - const remoteStatusMap = await get(simExecRemoteStatusMapAtom); - const localStatusMap = get(localStatusMapAtom); - - const simIds = Array.from(new Set([...remoteStatusMap.keys(), ...localStatusMap.keys()])); - const statusMap = simIds.reduce((map, simId) => { - const remoteStatus = remoteStatusMap.get(simId); - const localStatus = localStatusMap.get(simId); - // If both are set we take the latest possible one, - // because the status change in a particular sequence. - // See definition of getLatestSimExecStatus - const status = - remoteStatus && localStatus - ? getLatestSimExecStatus(remoteStatus, localStatus) - : (localStatus ?? remoteStatus); - return map.set(simId, status); - }, new Map()); - - return statusMap; - }, - (get, set, newStatusMap) => set(localStatusMapAtom, new Map(newStatusMap)) - ); - }, - { - ttl: 120000, // 2 minutes - areEqual: isEqual, - } -); - -export const simResultBySimIdAtomFamily = readAtomFamilyWithExpiration( - ({ simulationId, context }: { simulationId: string; context: WorkspaceContext }) => - atom>(async (get) => { - const execution = await get(simExecBySimIdAtomFamily({ simulationId, context })); - - if (!execution?.generated?.[0]) { - throw new Error('Simulation Result not found'); - } - - return getCircuitSimulationResult({ id: execution.generated[0].id, context }); - }), - { - ttl: 120000, // 2 minutes - areEqual: isEqual, - } -); - -export const simulationsByCampaignIdAtomFamily = readAtomFamilyWithExpiration( - ({ campaignId, context }: { campaignId: string; context: WorkspaceContext }) => - atom>(async () => { - const filters = { simulation_campaign_id: campaignId }; - const res = await getCircuitSimulations({ filters, context }); - - return res.data; - }), - { - ttl: 120000, // 2 minutes - areEqual: isEqual, - } -); - -export const circuitAtomFamily = readAtomFamilyWithExpiration( - ({ circuitId, context }: { circuitId: string; context: WorkspaceContext }) => - atom>(async () => { - return getCircuit({ id: circuitId, context }); - }), - { - ttl: 120000, // 2 minutes - areEqual: isEqual, - } -); - -export const fileAtomFamily = readAtomFamilyWithExpiration( - ({ - id, - entityId, - entityType, - assetPath, - context, - }: { - id: string; - entityId: string; - entityType: EntityTypeValue; - assetPath?: string; - context: WorkspaceContext; - }) => - atom>(async () => { - const res = await downloadAsset({ - ctx: context, - entityId, - id, - entityType, - assetPath, - asRawResponse: true, - }); - - return res.json(); - }), - { - ttl: 120000, // 2 minutes - areEqual: isEqual, - } -); diff --git a/src/features/contribute/_components/circuit-details/circuit-details.tsx b/src/features/contribute/_components/circuit-details/circuit-details.tsx deleted file mode 100644 index f8f856fd3..000000000 --- a/src/features/contribute/_components/circuit-details/circuit-details.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import React from 'react'; -import { Input } from 'antd'; - -import Tooltip from '../tooltip'; - -import { ICircuit } from '@/api/entitycore/types/entities/circuit'; - -interface CircuitDetailsProps { - className?: string; - circuit: ICircuit; -} - -export default function CircuitDetails({ className, circuit }: CircuitDetailsProps) { - return ( -
- - - - -
- ); -} diff --git a/src/features/contribute/_components/circuit-details/index.ts b/src/features/contribute/_components/circuit-details/index.ts deleted file mode 100644 index 42451142f..000000000 --- a/src/features/contribute/_components/circuit-details/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './circuit-details'; diff --git a/src/features/contribute/_components/circuit-name/circuit-name.module.css b/src/features/contribute/_components/circuit-name/circuit-name.module.css deleted file mode 100644 index 61b1f9711..000000000 --- a/src/features/contribute/_components/circuit-name/circuit-name.module.css +++ /dev/null @@ -1,50 +0,0 @@ -.circuitName { - position: relative; - text-align: end; -} - -.circuitName > .name svg { - margin-left: 1em; - color: #005; -} - -.name { - font-weight: bold; - font-variant: small-caps; -} - -.description { - margin-top: 16px; - white-space: pre-wrap; - position: absolute; - background: #0050b3ee; - color: #fff; - padding: 0.5em 1em; - border-radius: 0.25em; - position: absolute; - left: 0; - right: 0; - width: 100%; - pointer-events: none; - z-index: 9; - text-align: start; - transition: all 0.3s; - opacity: 0; -} - -.circuitName:hover .description { - opacity: 1; -} - -.description::after { - content: ''; - border: 16px solid transparent; - border-bottom: 16px solid #0050b3ee; - position: absolute; - top: -16px; - left: 50%; - width: 0; - height: 0; - margin: -16px; - transform: scale(0.5, 1); -} diff --git a/src/features/contribute/_components/circuit-preview/circuit-preview.module.css b/src/features/contribute/_components/circuit-preview/circuit-preview.module.css deleted file mode 100644 index 2e4f7d702..000000000 --- a/src/features/contribute/_components/circuit-preview/circuit-preview.module.css +++ /dev/null @@ -1,14 +0,0 @@ -div.circuitPreview { - width: 100%; - height: 100%; - min-height: 0; - overflow: visible; -} - -.circuitPreview > .image { - background: #fff; - border-radius: 1em; - box-shadow: 0 2px 8px #0002; - width: 100%; - height: 100%; -} diff --git a/src/features/contribute/_components/circuit-preview/circuit-preview.tsx b/src/features/contribute/_components/circuit-preview/circuit-preview.tsx deleted file mode 100644 index 8862833f2..000000000 --- a/src/features/contribute/_components/circuit-preview/circuit-preview.tsx +++ /dev/null @@ -1,25 +0,0 @@ -/* eslint-disable @next/next/no-img-element */ -import React from 'react'; - -import { useCircuitImageURL } from '../hooks/circuit'; -import { classNames } from '@/util/utils'; -import { ICircuit } from '@/api/entitycore/types/entities/circuit'; -import ZoomableImage from '@/components/zoomable-image'; - -import styles from './circuit-preview.module.css'; - -interface CircuitPreviewProps { - className?: string; - circuit: ICircuit | undefined | null; -} - -export default function CircuitPreview({ className, circuit }: CircuitPreviewProps) { - const url = useCircuitImageURL(circuit?.id); - - return ( -
- {/* Circuit preview */} - -
- ); -} diff --git a/src/features/contribute/_components/circuit-preview/index.ts b/src/features/contribute/_components/circuit-preview/index.ts deleted file mode 100644 index 677278f17..000000000 --- a/src/features/contribute/_components/circuit-preview/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './circuit-preview'; diff --git a/src/features/contribute/_components/components.tsx b/src/features/contribute/_components/components.tsx deleted file mode 100644 index cbf36e002..000000000 --- a/src/features/contribute/_components/components.tsx +++ /dev/null @@ -1,949 +0,0 @@ -import { useEffect, useState, useRef } from 'react'; -import { atom, useAtom } from 'jotai'; -import { InputNumber, Input, Select, Button } from 'antd'; -import { CheckCircleOutlined, CloseCircleOutlined, PlusCircleOutlined } from '@ant-design/icons'; -import isNil from 'lodash/isNil'; - -import { JSONSchema } from '../types'; -import { isPlainObject } from './utils'; -import CircuitDetails from './circuit-details'; -import Tooltip from './tooltip'; - -import { ICircuit } from '@/api/entitycore/types/entities/circuit'; -import { classNames } from '@/util/utils'; - -type Primitive = null | boolean | number | string; -interface Object { - [key: string]: Primitive | Primitive[] | Object; -} - -export type ConfigValue = Primitive | Primitive[] | Object; - -export type Config = Record; - -// Updated structure for MTYPE classification -const MTYPE_CLASSES = [ - { mtype_pref_label: 'L23_NBC', mtype_id: '6605787b-ba14-43fd-a954-de9cff4b15a0' }, - { mtype_pref_label: 'L23_NGC', mtype_id: 'dd16dca0-e567-416b-b8b7-f8fbcaa05af0' }, - { mtype_pref_label: 'L23_PC', mtype_id: '0791edc9-7ad4-4a94-a4a5-feab9b690d7e' }, - { mtype_pref_label: 'L23_PTPC', mtype_id: '52ea242f-6591-425a-8eae-962fa0b4dfe0' }, - { mtype_pref_label: 'L23_SBC', mtype_id: 'fbb8b577-92f4-4c93-b355-0982af5a3c7c' }, - { mtype_pref_label: 'L23_STPC', mtype_id: '93be8237-9861-4870-9977-ff1cf9e7462c' }, - { mtype_pref_label: 'L2_ChC', mtype_id: '91ba3deb-1139-4bc6-a12f-6a64a0ed0e92' }, - { mtype_pref_label: 'L2_IPC', mtype_id: 'e55f12e1-807c-42f6-ba98-91d6d30c57d7' }, - { mtype_pref_label: 'L2_MC', mtype_id: 'ea51f2c8-95fc-4940-a400-c37a3ff2d9eb' }, - { mtype_pref_label: 'L2_PC', mtype_id: 'dd73956b-423e-42c5-87d9-9e2cc84356b9' }, - { mtype_pref_label: 'L2_TPC', mtype_id: '7abf03d5-30b0-41ae-a02b-1f4e26c243a8' }, - { mtype_pref_label: 'L2_TPC:A', mtype_id: '9b04acb1-4737-4088-8d22-0658414bdda1' }, - { mtype_pref_label: 'L2_TPC:B', mtype_id: '4b6862b9-c438-4dfc-a2e6-1ad4d7a00eda' }, - { mtype_pref_label: 'L3_MC', mtype_id: '52578494-b41c-499b-9717-5d11f4b2f068' }, - { mtype_pref_label: 'L3_PC', mtype_id: '87fec7dd-7a2f-400a-aee0-94d1946cf1ab' }, - { mtype_pref_label: 'L3_TPC', mtype_id: '229c31f1-a6ec-4d8c-85d3-d8175ffde109' }, - { mtype_pref_label: 'L3_TPC:A', mtype_id: 'dd346e90-7bca-4976-bf9a-303b6a94b339' }, - { mtype_pref_label: 'L3_TPC:B', mtype_id: 'a71d226c-2c56-40ee-a4be-9726fc430932' }, - { mtype_pref_label: 'L3_TPC:C', mtype_id: 'd9b7bd4d-cec9-4fec-a448-79320de89f2a' }, - { mtype_pref_label: 'L4_BP', mtype_id: 'a55f6ce7-068a-4c5e-a883-de5f4304612e' }, - { mtype_pref_label: 'L4_BTC', mtype_id: '8315d249-6678-4d55-b581-3b6f9eb48e86' }, - { mtype_pref_label: 'L4_ChC', mtype_id: '0e4f3036-0d14-4fd9-b7a8-87f5e90a9fa6' }, - { mtype_pref_label: 'L4_DBC', mtype_id: '8de61c06-31e8-4483-bd98-608bc874b369' }, - { mtype_pref_label: 'L4_LBC', mtype_id: 'bb875a91-4ae5-4f6f-b050-5ad952e9cd6c' }, - { mtype_pref_label: 'L4_MC', mtype_id: '0bdf029e-a55a-444c-a7c9-9d0ff51239a5' }, - { mtype_pref_label: 'L4_NBC', mtype_id: '72673af9-2f2b-4a9a-95dc-552777ab63b9' }, - { mtype_pref_label: 'L4_NGC', mtype_id: '41f41550-5e0e-4de7-b52d-62110c338a27' }, - { mtype_pref_label: 'L4_PC', mtype_id: 'ad5769c6-7e86-4433-8f34-9efcb4f0d182' }, - { mtype_pref_label: 'L4_SBC', mtype_id: '43a7d86b-71c5-4a10-be62-ef6cf95ca694' }, - { mtype_pref_label: 'L4_SSC', mtype_id: '400a55f7-e162-4fd1-80a0-4f2facea7cec' }, - { mtype_pref_label: 'L4_TPC', mtype_id: '02e13718-5227-4c28-b838-04dd0c2c67f2' }, - { mtype_pref_label: 'L4_UPC', mtype_id: '2ef7e0b5-39e4-441b-a72a-c7186afa7f5c' }, - { mtype_pref_label: 'L56_PC', mtype_id: '629d6d6f-93f9-43d8-8a99-277740fd8f22' }, - { mtype_pref_label: 'L5_BP', mtype_id: '7b16c860-ae76-4ddf-b093-4e28620b3712' }, -]; - -// Helper function to check if a field value is considered "empty" or invalid -const isEmptyValue = (value: ConfigValue): boolean => { - if (isNil(value) || value === '') return true; - if (Array.isArray(value) && value.length === 0) return true; - if (typeof value === 'object' && value !== null && Object.keys(value).length === 0) return true; - return false; -}; - -// Helper function to validate required fields -const getRequiredFieldErrors = ( - state: Record, - schema: JSONSchema -): string[] => { - const errors: string[] = []; - const requiredFields = schema.required || []; - - requiredFields.forEach((fieldName) => { - const value = state[fieldName]; - if (isEmptyValue(value)) { - const fieldSchema = schema.properties?.[fieldName]; - const fieldTitle = fieldSchema?.title || fieldName; - errors.push(`${fieldTitle} is required`); - } - }); - - return errors; -}; - -export function JSONSchemaForm({ - disabled, - schema, - stateAtom, - config, - circuit, - onAddReferenceClick, - nodeId, - currentCategory, - onValidationChange, -}: { - disabled: boolean; - config: Config; - schema: JSONSchema; - circuit: ICircuit | undefined | null; - stateAtom: ReturnType>; - onAddReferenceClick: (reference: string) => void; - nodeId?: string; - currentCategory?: string; - onValidationChange?: (isValid: boolean, errors: string[]) => void; -}) { - const skip = ['type']; - - const [state, setState] = useAtom(stateAtom); - const [addingElement, setAddingElement] = useState<{ [key: string]: boolean }>({ - legacy_id: true, - }); - const [newElement, setNewElement] = useState<{ [key: string]: number | string | null }>({}); - const [validationErrors, setValidationErrors] = useState([]); - const [touchedFields, setTouchedFields] = useState>(new Set()); - - const referenceTypesToConfigKeys: Record = { - NeuronSetReference: 'neuron_sets', - TimestampsReference: 'timestamps', - }; - - const referenceTypesToTitles: Record = { - NeuronSetReference: 'Neuron Set', - TimestampsReference: 'Timestamps', - }; - - // Callback ref to avoid dependency issues - const onValidationChangeRef = useRef(onValidationChange); - useEffect(() => { - onValidationChangeRef.current = onValidationChange; - }); - - // Validate form whenever state changes - useEffect(() => { - const errors = getRequiredFieldErrors(state, schema); - - // Only update if errors actually changed - setValidationErrors((prevErrors) => { - const errorsChanged = - prevErrors.length !== errors.length || - prevErrors.some((error, index) => error !== errors[index]); - - if (errorsChanged && onValidationChangeRef.current) { - onValidationChangeRef.current(errors.length === 0, errors); - } - - return errorsChanged ? errors : prevErrors; - }); - }, [state, schema]); - - useEffect(() => { - if (!schema.properties) return; - - const initial: Record = {}; - - Object.entries(schema.properties).forEach(([key, value]) => { - if (key === 'type') initial[key] = value.const ?? null; - else if (key === 'legacy_id') initial[key] = []; - else if (key === 'strain_id') initial[key] = null; - else if (key === 'license_id') - initial[key] = 'c268a20e-b78a-4332-a5e1-38e26c4454b9'; // Default to undefined UUID - else initial[key] = value.default ?? null; - }); - - // Auto-populate brain region id if we're in morphology category - if (currentCategory === 'morphology' && nodeId) { - const brainRegionIdKey = Object.keys(schema.properties || {}).find((key) => { - const normalizedKey = key.toLowerCase().replace(/[\s_]/g, ''); - return ( - normalizedKey === 'brainregionid' || - normalizedKey === 'brain_region_id' || - normalizedKey === 'brainregion' - ); - }); - - if (brainRegionIdKey) { - initial[brainRegionIdKey] = nodeId; - } - } - - // Auto-populate species id (hardcoded mouse species ID) - const speciesIdKey = Object.keys(schema.properties || {}).find((key) => { - const normalizedKey = key.toLowerCase().replace(/[\s_]/g, ''); - return ( - normalizedKey === 'speciesid' || - normalizedKey === 'species_id' || - normalizedKey === 'species' - ); - }); - - if (speciesIdKey) { - initial[speciesIdKey] = 'b7ad4cca-4ac2-4095-9781-37fb68fe9ca1'; - } - - // Auto-populate atlas id - const atlasIdKey = Object.keys(schema.properties || {}).find((key) => { - const normalizedKey = key.toLowerCase().replace(/[\s_]/g, ''); - return ( - normalizedKey === 'atlasid' || normalizedKey === 'atlas_id' || normalizedKey === 'atlas' - ); - }); - - if (atlasIdKey) { - initial[atlasIdKey] = 'e3e70682-c209-4cac-a29f-6fbed82c07cd'; - } - - setState((prev) => ({ ...initial, ...prev })); - }, [stateAtom, setState, schema.properties, nodeId, currentCategory]); - - // Helper function to mark field as touched - const markFieldTouched = (fieldName: string) => { - setTouchedFields((prev) => new Set(prev).add(fieldName)); - }; - - // Helper function to check if a field has an error - const hasFieldError = (fieldName: string): boolean => { - const isRequired = schema.required?.includes(fieldName); - const isTouched = touchedFields.has(fieldName); - const isEmpty = isEmptyValue(state[fieldName]); - return isRequired && isTouched && isEmpty; - }; - - // Helper function to get field error message - const getFieldErrorMessage = (fieldName: string): string | null => { - if (!hasFieldError(fieldName)) return null; - const fieldSchema = schema.properties?.[fieldName]; - const fieldTitle = fieldSchema?.title || fieldName; - return `${fieldTitle} is required`; - }; - - function renderInput(k: string, v: JSONSchema) { - const obj = { - ...v, - ...v.anyOf?.find((subv) => subv.type !== 'array' && subv.type !== 'null'), - }; - const normalizedKey = k.toLowerCase().replace(/[\s_]/g, ''); - - const fieldError = getFieldErrorMessage(k); - const hasError = hasFieldError(k); - - const isBrainRegionIdField = - currentCategory === 'morphology' && - (normalizedKey === 'brainregionid' || - normalizedKey === 'brain_region_id' || - normalizedKey === 'brainregion'); - const isSpeciesIdField = - normalizedKey === 'speciesid' || - normalizedKey === 'species_id' || - normalizedKey === 'species'; - const isAtlasIdField = - normalizedKey === 'atlasid' || normalizedKey === 'atlas_id' || normalizedKey === 'atlas'; - const isExperimentDateField = - normalizedKey === 'experimentdate' || - normalizedKey === 'experiment_date' || - normalizedKey === 'date' || - v.title?.toLowerCase().includes('date'); - const isStrainIdField = - normalizedKey === 'strainid' || normalizedKey === 'strain_id' || normalizedKey === 'strain'; - const isAgePeriodField = normalizedKey === 'ageperiod' || normalizedKey === 'age_period'; - const isLegacyIdField = normalizedKey === 'legacyid' || normalizedKey === 'legacy_id'; - const isLicenseIdField = normalizedKey === 'licenseid' || normalizedKey === 'license_id'; - const isMtypeClassIdField = normalizedKey === 'mtypeclassid'; - - if (isBrainRegionIdField && nodeId) { - return ( -
- markFieldTouched(k)} - value={nodeId} - readOnly - /> -
- ); - } - - if (isSpeciesIdField) { - return ( -
- markFieldTouched(k)} - value="b7ad4cca-4ac2-4095-9781-37fb68fe9ca1" - readOnly - /> -
- ); - } - - if (isAtlasIdField) { - return ( -
- markFieldTouched(k)} - value="e3e70682-c209-4cac-a29f-6fbed82c07cd" - readOnly - /> -
- ); - } - - if (isExperimentDateField) { - const formatDate = (value: string) => { - const cleaned = value.replace(/[^\d\s-]/g, ''); - const parts = cleaned.split(/[\s-]+/).filter((part) => part.length > 0); - if (parts.length === 0) return ''; - if (parts.length === 1) return parts[0]; - if (parts.length === 2) return `${parts[0]} ${parts[1]}`; - return parts.slice(0, 3).join(' '); - }; - - const validateDateFormat = (value: string) => { - if (!value) return true; - const parts = value.split(' '); - if (parts.length !== 3) return false; - const [day, month, year] = parts; - const dayNum = parseInt(day, 10); - const monthNum = parseInt(month, 10); - const yearNum = parseInt(year, 10); - return ( - dayNum >= 1 && - dayNum <= 31 && - monthNum >= 1 && - monthNum <= 12 && - yearNum >= 1900 && - yearNum <= new Date().getFullYear() - ); - }; - - const currentValue = typeof state[k] === 'string' ? state[k] : ''; - const isValid = validateDateFormat(currentValue); - const showDateError = !isValid && currentValue; - - return ( -
- markFieldTouched(k)} - value={currentValue} - className={`w-full ${hasError || showDateError ? 'border-red-500' : ''}`} - onChange={(e) => { - const formatted = formatDate(e.currentTarget.value); - setState({ ...state, [k]: formatted }); - }} - placeholder="DD MM YYYY (e.g., 15 03 2024)" - /> - {showDateError && ( -
- Please use format: DD MM YYYY (day month year) -
- )} - {fieldError &&
{fieldError}
} -
- ); - } - - if (isStrainIdField) { - const allSpeciesStrains = [ - { - species_id: 'b7ad4cca-4ac2-4095-9781-37fb68fe9ca1', - species_name: 'Mouse', - strains: { - 'C57BL/6': '123e4567-e89b-12d3-a456-426614174000', - 'BALB/c': '456e7890-e29b-41d4-a716-446655440001', - }, - }, - { - species_id: '789e0123-e29b-41d4-a716-446655440002', - species_name: 'Rat', - strains: { - 'Sprague Dawley': '890e1234-e29b-41d4-a716-446655440003', - }, - }, - ]; - - const speciesId = 'b7ad4cca-4ac2-4095-9781-37fb68fe9ca1'; - const selectedSpecies = allSpeciesStrains.find((s) => s.species_id === speciesId); - - if (!selectedSpecies) { - return ( -
- - {fieldError &&
{fieldError}
} -
- ); - } - - const strainOptions = Object.entries(selectedSpecies.strains).map(([name, id]) => ({ - label: name, - value: id, - })); - - return ( -
- markFieldTouched(k)} - onChange={(newV) => { - setState({ ...state, [k]: newV }); - markFieldTouched(k); - }} - value={state[k]} - options={obj.enum.map((subv: string) => ({ - label: subv, - value: subv, - }))} - placeholder="Select age period" - /> - {fieldError &&
{fieldError}
} -
- ); - } - return ( -
- markFieldTouched(k)} - value={typeof state[k] === 'string' ? state[k] : ''} - onChange={(e) => { - setState({ ...state, [k]: e.currentTarget.value }); - }} - placeholder="Enter age period" - /> - {fieldError &&
{fieldError}
} -
- ); - } - - if (isLegacyIdField) { - return ( -
-
-
- {Array.isArray(state[k]) && - state[k].map((e) => ( -
- {e}{' '} - {!disabled && ( - { - const newElements = [...(Array.isArray(state[k]) ? state[k] : [])]; - newElements.splice(newElements.indexOf(e), 1); - setState({ ...state, [k]: newElements }); - markFieldTouched(k); - }} - /> - )} -
- ))} -
- {!addingElement[k] && !disabled && ( - setAddingElement({ ...addingElement, [k]: true })} - className="text-primary-8" - /> - )} - {addingElement[k] && !disabled && ( -
- setNewElement({ ...newElement, [k]: e.currentTarget.value })} - placeholder="Enter legacy ID" - /> - {newElement[k] && ( - { - setState({ - ...state, - [k]: [...(Array.isArray(state[k]) ? state[k] : []), newElement[k]], - }); - setAddingElement({ ...addingElement, [k]: false }); - setNewElement({ ...newElement, [k]: null }); - markFieldTouched(k); - }} - /> - )} - { - setAddingElement({ ...addingElement, [k]: false }); - setNewElement({ ...newElement, [k]: null }); - }} - className="text-primary-8" - /> -
- )} -
- {fieldError &&
{fieldError}
} -
- ); - } - - // New condition for 'license id' field - if (isLicenseIdField) { - const licenseOptions = { - undefined: 'c268a20e-b78a-4332-a5e1-38e26c4454b9', - 'CC BY-NC-SA 4.0 Deed': '9e766299-b873-4162-9207-30fcd583d933', - 'CC BY-NC 2.0 Deed': 'fafcd04d-a967-4eec-b2e1-3afb2d63a41a', - 'CC BY-NC 4.0 Deed': '1283454d-b5ad-488f-acb7-d00b9f02873d', - 'CC BY 2.0 Deed': '211ac318-504d-44b9-b250-3cae8980d2e9', - 'CC BY 4.0 Deed': 'ad8686db-3cdd-4e3f-bcbd-812380a9eba7', - 'CC0 1.0 Deed': '74b8c953-67f5-4e95-ac58-095274901328', - 'NGV_Data Licence_v1.0': '0c39107e-3b68-4f1f-904a-5c7f1b4f89c5', - }; - - const options = Object.entries(licenseOptions).map(([name, id]) => ({ - label: name, - value: id, - })); - - // Find the key corresponding to the current state value to set the label - const currentLicenseLabel = Object.keys(licenseOptions).find( - (key) => licenseOptions[key] === state[k] - ); - - return ( -
- markFieldTouched(k)} - onChange={(newV) => { - setState({ ...state, [k]: newV }); - markFieldTouched(k); - }} - value={currentMtypeLabel || state[k]} - options={options} - placeholder="Select an MTYPE CLASS" - /> - {fieldError &&
{fieldError}
} -
- ); - } - - if (k === 'circuit' && circuit) return ; - - if (v.is_block_reference && v.properties && typeof v.properties.type.const === 'string') { - const referenceKey = referenceTypesToConfigKeys[v.properties.type.const]; - const referenceTitle = referenceTypesToTitles[v.properties.type.const]; - if (!referenceKey) return null; - const referenceConfig = config[referenceKey]; - if (!isPlainObject(referenceConfig)) return null; - - const referees = Object.entries(referenceConfig).filter(([, val]) => { - return isPlainObject(val); - }); - - if (referees.length === 0) { - return ( -
- - {fieldError &&
{fieldError}
} -
- ); - } - - const defaultV = - isPlainObject(state[k]) && typeof state[k].block_name === 'string' - ? state[k].block_name - : null; - - return ( -
- markFieldTouched(k)} - onChange={(newV) => { - setState({ ...state, [k]: newV }); - markFieldTouched(k); - }} - value={state[k]} - options={obj.enum.map((subv: string) => ({ - label: subv, - value: subv, - }))} - placeholder={`Select ${v.title || k}`} - /> - {fieldError &&
{fieldError}
} -
- ); - } - - if (obj.type === 'number' || obj.type === 'integer') { - return ( -
- { - setState({ ...state, [k]: value }); - }} - onBlur={() => markFieldTouched(k)} - className={`w-full ${hasError ? 'border-red-500' : ''}`} - /> - {fieldError &&
{fieldError}
} -
- ); - } - - if (obj.type === 'string') { - return ( -
- markFieldTouched(k)} - value={typeof state[k] === 'string' ? state[k] : ''} - onChange={(e) => { - setState({ ...state, [k]: e.currentTarget.value }); - }} - /> - {fieldError &&
{fieldError}
} -
- ); - } - - return ( -
- markFieldTouched(k)} - value={typeof state[k] === 'string' ? state[k] : ''} - onChange={(e) => { - setState({ ...state, [k]: e.currentTarget.value }); - }} - placeholder={`Enter value for ${v.title || k}`} - /> - {fieldError &&
{fieldError}
} -
- ); - } - - function getFieldTitle(k: string, v: JSONSchema, normalizedKey: string): string { - if (normalizedKey === 'strainid' || normalizedKey === 'strain_id' || normalizedKey === 'strain') - return 'STRAIN'; - if (normalizedKey === 'ageperiod' || normalizedKey === 'age_period') return 'AGE PERIOD'; - if (normalizedKey === 'licenseid' || normalizedKey === 'license_id') return 'LICENSE'; - if (normalizedKey === 'mtypeclassid') return 'MTYPE CLASS'; - return v.title || k; - } - - return ( -
-
{schema.title}
-
{schema.description}
- - {/* Show overall validation errors summary if there are any */} - {validationErrors.length > 0 && ( -
-
- Please fix the following required fields: -
-
    - {validationErrors.map((error) => ( -
  • {error}
  • - ))} -
-
- )} - -
- {schema.properties && - Object.entries(schema.properties) - .filter(([k]) => { - return !skip.includes(k); - }) - .map(([k, v]) => { - const isRequired = schema.required?.includes(k); - const normalizedKey = k.toLowerCase().replace(/[\s_]/g, ''); - const fieldTitle = getFieldTitle(k, v, normalizedKey); - - return ( -
-
-
- {fieldTitle} - {isRequired && *} -
- {v.units &&
{v.units}
} -
- {renderInput(k, v)} -
- ); - })} -
-
- ); -} - -export function Tab({ - tab, - selectedTab, - children, - onClick, - rounded = 'rounded-full', - extraClass, - disabled, -}: { - tab: string; - selectedTab: string; - onClick?: () => void; - rounded?: 'rounded-l-full' | 'rounded-r-full' | 'rounded-full'; - children?: React.ReactNode; - extraClass?: string; - disabled?: boolean; -}) { - return ( - - ); -} - -export function Chevron({ rotate }: { rotate?: number }) { - return ( - - - - ); -} diff --git a/src/features/contribute/_components/file-viewer/index.tsx b/src/features/contribute/_components/file-viewer/index.tsx deleted file mode 100644 index e8d736a3a..000000000 --- a/src/features/contribute/_components/file-viewer/index.tsx +++ /dev/null @@ -1,81 +0,0 @@ -import { Suspense } from 'react'; -import { match } from 'ts-pattern'; -import { useAtomValue } from 'jotai'; - -import { File } from '../simulation-files'; -import { fileAtomFamily } from '../atoms'; - -import EphysViewer from '@/features/ephys-viewer'; -import { classNames } from '@/util/utils'; -import { WorkspaceContext } from '@/types/common'; -import { ICircuitSimulationResult } from '@/api/entitycore/types/entities/circuit-simulation-result'; - -type FileViewerProps = { - file?: File; - context: WorkspaceContext; - className?: string; -}; - -export function FileViewer({ file, context, className = '' }: FileViewerProps) { - const fileName = file?.assetPath?.split('/').at(-1) ?? file?.asset.path.split('/').at(-1); - const fileExt = fileName?.split('.').at(-1)?.toLowerCase(); - - const viewerContent = match(fileExt) - .with(undefined, () =>

Select a file for preview

) - .with('json', () => ) - .with('nwb', () => ) - .otherwise(() => ); - - return ( -
-
- Loading...
}>{viewerContent} -
-
- ); -} - -type JsonFileViewerProps = { - file: File; - context: WorkspaceContext; -}; - -function JsonFileViewer({ file, context }: JsonFileViewerProps) { - const parsedJson = useAtomValue( - fileAtomFamily({ - id: file.asset.id, - entityId: file.entity.id, - entityType: file.entity.type, - assetPath: file.assetPath, - context, - }) - ); - - return
{JSON.stringify(parsedJson, null, 2)}
; -} - -type NwbFileViewerProps = { - file: File; - context: WorkspaceContext; -}; - -function NwbFileViewer({ file, context }: NwbFileViewerProps) { - return ; -} - -type PlaceholderFileViewerProps = { - file: File; -}; - -function PlaceholderFileViewer({ file }: PlaceholderFileViewerProps) { - const fileName = file?.assetPath?.split('/').at(-1) ?? file?.asset.path.split('/').at(-1); - const fileExt = fileName?.split('.').at(-1)?.toLowerCase(); - - return ( -
- - Preview for {fileExt} files is not supported yet - -
- ); -} diff --git a/src/features/contribute/_components/hooks/circuit.ts b/src/features/contribute/_components/hooks/circuit.ts deleted file mode 100644 index 4d3ae3c9b..000000000 --- a/src/features/contribute/_components/hooks/circuit.ts +++ /dev/null @@ -1,88 +0,0 @@ -import React from 'react'; - -import { getCircuit } from '@/api/entitycore/queries/model/circuit'; -import { ICircuit } from '@/api/entitycore/types/entities/circuit'; -import { useAppNotification } from '@/components/notification'; -import { AssetLabel } from '@/api/entitycore/types/shared/global'; -import { downloadAsset } from '@/api/entitycore/queries/assets'; -import { EntityTypeEnum } from '@/api/entitycore/types'; - -const pendingQueries = new Map>(); - -/** - * Retrieve a circuit from EntityCore. - * @param circuitId - * @returns `undefined` if the query is pending, `null` if an error occured and the circuit in case of success. - */ -export function useCircuit(circuitId: string | undefined): ICircuit | undefined | null { - const { error } = useAppNotification(); - const [circuit, setCircuit] = React.useState(undefined); - - React.useEffect(() => { - if (!circuitId) { - setCircuit(undefined); - return; - } - - getQuery(circuitId) - .then(setCircuit) - .catch((ex) => { - error({ - message: `Unable to retrieve circuit "${circuitId}"!\n${ex}`, - }); - setCircuit(null); - }); - }, [circuitId, error]); - - return circuit; -} - -export function useCircuitImageURL(circuitId: string | undefined) { - const { error } = useAppNotification(); - const [url, setUrl] = React.useState(undefined); - const circuit = useCircuit(circuitId); - - React.useEffect(() => { - const action = async () => { - if (!circuit) return; - - const asset = circuit.assets.find( - (item) => item.label === AssetLabel.simulation_designer_image - ); - if (!asset) { - error({ message: `No image found for circuit "${circuit.name}" (${circuitId})!` }); - return; - } - try { - const resp = await downloadAsset({ - entityType: EntityTypeEnum.Circuit, - entityId: circuit.id, - id: asset.id, - asRawResponse: false, - }); - if (!(resp instanceof ArrayBuffer)) { - throw new Error('Wrong image format: expected ArrayBuffer!'); - } - const blob = new Blob([resp], { type: asset.content_type }); - const newUrl = URL.createObjectURL(blob); - setUrl(newUrl); - } catch (ex) { - error({ - message: `Unable to download image for circuit "${circuit.name}"!\n${ex}`, - }); - } - }; - action(); - }, [circuit, circuitId, error]); - - return url; -} - -function getQuery(circuitId: string): Promise { - const query = pendingQueries.get(circuitId); - if (query) return query; - - const newQuery = getCircuit({ id: circuitId }); - pendingQueries.set(circuitId, newQuery); - return newQuery; -} diff --git a/src/features/contribute/_components/hooks/config-atom.ts b/src/features/contribute/_components/hooks/config-atom.ts deleted file mode 100644 index 9fbb48e61..000000000 --- a/src/features/contribute/_components/hooks/config-atom.ts +++ /dev/null @@ -1,30 +0,0 @@ -import React from 'react'; -import { atom, useAtom } from 'jotai'; - -import { JSONSchema, AtomsMap } from '../../types'; -import { Config } from '../components'; -import { isAtom } from '../utils'; - -export function useConfigAtom(schema: JSONSchema | null, atomsMap: AtomsMap) { - const configAtom = React.useMemo(() => { - return atom((get) => { - const result: Config = {}; - Object.keys(atomsMap).forEach((key) => { - if (isAtom(atomsMap[key])) result[key] = get(atomsMap[key]); - else { - result[key] = {}; - Object.entries(atomsMap[key]).forEach(([subkey, v]) => { - if (typeof result[key] === 'string') return; - result[key][subkey] = get(v); - }); - } - }); - - result.type = schema?.properties?.type.const ?? ''; - - return result; - }); - }, [atomsMap, schema]); - const [config] = useAtom(configAtom); - return config; -} diff --git a/src/features/contribute/_components/hooks/schema.ts b/src/features/contribute/_components/hooks/schema.ts deleted file mode 100644 index 0177adf09..000000000 --- a/src/features/contribute/_components/hooks/schema.ts +++ /dev/null @@ -1,149 +0,0 @@ -import React from 'react'; -import { atom } from 'jotai'; -import { NotificationInstance } from 'antd/es/notification/interface'; - -import $RefParser from '@apidevtools/json-schema-ref-parser'; - -import { AtomsMap, JSONSchema } from '../../types'; -import { ConfigValue, Config } from '../components'; -import { isPlainObject, isAtom } from '../utils'; -import { assertErrorMessage } from '@/util/utils'; - -export function useObioneJsonSchema( - notification: NotificationInstance, - setSchema: React.Dispatch>, - setAtomsMap: (atomsMap: AtomsMap) => void, - initialConfig?: Config -) { - React.useEffect(() => { - async function fetchSpec() { - try { - const res = await fetch(`${process.env.NEXT_PUBLIC_OBI_ONE_URL}/openapi.json`); - const json = await res.json(); - const dereferenced = await $RefParser.dereference(json); - // @ts-ignore - const theSchema = dereferenced.components.schemas.SimulationsForm as JSONSchema; - if (!theSchema.properties) return; - - setSchema(theSchema); - - const map: { - [key: string]: - | ReturnType>> - | Record>>>; - } = {}; - - if (initialConfig) { - Object.entries(initialConfig) - .filter(([k]) => { - return isRootCategory(theSchema, k); - }) - .forEach(([k, v]) => { - if (isPlainObject(v)) map[k] = atom>(v); - }); - - Object.entries(initialConfig) - .filter(([k]) => { - return !isRootCategory(theSchema, k); - }) - .forEach(([k, v]) => { - map[k] = {}; - - Object.entries(v).forEach(([subK, subV]) => { - if (!isPlainObject(subV) || isAtom(map[k])) return; - map[k][subK] = atom>(subV); - }); - }); - } else { - // Setting up initial values and constants. - Object.entries(theSchema.properties).forEach(([k, v]) => { - if (!v.additionalProperties) { - const initial: Record = {}; - - if (v.properties) - Object.entries(v.properties).forEach(([subkey, subValue]) => { - if (subkey === 'type') initial[subkey] = subValue.const ?? null; - else initial[subkey] = subValue.default ?? null; - }); - - map[k] = atom>(initial); - } else map[k] = {}; - }); - } - - setAtomsMap(map); - } catch (e) { - // eslint-disable-next-line no-console - console.error(assertErrorMessage(e)); - notification.error({ message: assertErrorMessage(e) }); - } - } - - fetchSpec(); - }, [notification, setAtomsMap, setSchema, initialConfig]); -} - -export function isRootCategory(schema: JSONSchema, key: string) { - return schema.properties?.[key] && !schema.properties[key].additionalProperties; -} - -export function resolveKey(schema: JSONSchema, tabKey: string, itemIdx: number | null) { - if (typeof itemIdx === null) throw new Error('Invalid itemIdx'); - if (!schema.properties?.[tabKey]?.singular_name) throw new Error(`Invalid schema for ${tabKey}`); - if (isRootCategory(schema, tabKey)) throw new Error("Shouldn't be a root category"); - - return `${schema.properties[tabKey].singular_name.replaceAll(' ', '')}_${itemIdx}`; -} - -export function useObioneJsonConfigurationSchema( - circuitId: string, - notification: NotificationInstance, - setSchema: React.Dispatch>, - setAtomsMap: (atomsMap: AtomsMap) => void -) { - React.useEffect(() => { - async function fetchSpec() { - try { - const res = await fetch(`http://0.0.0.0:8100/openapi.json`); - // const res = await fetch(`${process.env.NEXT_PUBLIC_OBI_ONE_URL}/openapi.json`); - - const json = await res.json(); - const dereferenced = await $RefParser.dereference(json); - // @ts-ignore - const theSchema = dereferenced.components.schemas.ContributeMorphologyForm as JSONSchema; - if (!theSchema.properties) return; - - setSchema(theSchema); - - const map: { - [key: string]: - | ReturnType>> - | Record>>>; - } = {}; - - // Setting up initial values and constants. - Object.entries(theSchema.properties).forEach(([k, v]) => { - if (!v.additionalProperties) { - const initial: Record = {}; - - if (v.properties) - Object.entries(v.properties).forEach(([subkey, subValue]) => { - if (subkey === 'type') initial[subkey] = subValue.const ?? null; - else initial[subkey] = subValue.default ?? null; - }); - - map[k] = atom>(initial); - } else map[k] = {}; - }); - - setAtomsMap(map); - } catch (e) { - // eslint-disable-next-line no-console - console.error(assertErrorMessage(e)); - notification.error({ message: assertErrorMessage(e) }); - } - } - - fetchSpec(); - }, [notification, setAtomsMap, setSchema]); -} diff --git a/src/features/contribute/_components/section.tsx b/src/features/contribute/_components/section.tsx deleted file mode 100644 index b8dc739c7..000000000 --- a/src/features/contribute/_components/section.tsx +++ /dev/null @@ -1,221 +0,0 @@ -/* eslint-disable no-param-reassign */ -import React, { Fragment } from 'react'; -import { atom } from 'jotai'; -import { - CheckCircleFilled, - DeleteOutlined, - PlusCircleOutlined, - WarningFilled, -} from '@ant-design/icons'; -import { ErrorObject } from 'ajv'; - -import { AtomsMap, JSONSchema } from '../types'; -import { Chevron, Config, ConfigValue, Tab } from './components'; -import { isAtom, isPlainObject } from './utils'; -import { isRootCategory, resolveKey } from './hooks/schema'; - -import { classNames } from '@/util/utils'; - -export function Section({ - schema, - k, - sectionSchema, - atomsMap, - setAtomsMap, - configTab, - setConfigTab, - config, - campaignId, - loading, - errors, - selectedItemIdx, - setSelectedItemIdx, - setEditing, - setSelectedCategory, - readOnly, -}: { - schema: JSONSchema | null; // The global schema - k: string; // secition key - sectionSchema: JSONSchema; // The schema for this section - atomsMap: AtomsMap; - setAtomsMap: React.Dispatch>; - configTab: string; // Key for selected section - setConfigTab: (configTab: string) => void; - config: Config; - campaignId: string; - loading: boolean; - errors: ErrorObject, unknown>[] | null | undefined; - selectedItemIdx: number | null; - setSelectedItemIdx: (selectedItemIdx: number | null) => void; - setEditing: React.Dispatch>; - setSelectedCategory: React.Dispatch>; - readOnly?: boolean; -}) { - if (!schema || !schema?.properties) return; - - const handleHeaderClick = (subkey: string, subValue: unknown) => { - if (isPlainObject(subValue)) { - setSelectedCategory(typeof subValue.type === 'string' ? subValue.type : ''); - setSelectedItemIdx(parseInt(subkey.split('_')[1], 10)); - } - setEditing(true); - }; - - return ( - <> - { - if (configTab === k && !isRootCategory(schema, k)) { - setEditing(false); - setSelectedCategory(''); - setSelectedItemIdx(null); - setConfigTab(''); - return; - } - - setConfigTab(k); - setSelectedItemIdx(null); - if (!sectionSchema.additionalProperties) setEditing(true); - else setEditing(false); - }} - extraClass="w-full flex justify-between h-[50px] min-h-[50px] items-center drop-shadow" - > - {schema.properties?.[k]?.title} -
- {errors?.find((error) => error.instancePath.startsWith('/' + k)) ? ( - - ) : ( - - )} - -
-
- {sectionSchema.additionalProperties && configTab === k && config[k] && ( - <> - {Object.entries(config[k]).map(([subkey, subValue]) => { - const idx = parseInt(subkey.split('_')[1], 10); - - const isSelected = configTab === k && idx === selectedItemIdx; - - return ( - -
handleHeaderClick(subkey, subValue)} - onKeyDown={(evt) => { - if (evt.key === ' ' || evt.key === 'Enter') { - handleHeaderClick(subkey, subValue); - } - }} - > - {subkey} -
- {errors?.find((error) => error.instancePath.startsWith(`/${k}/${subkey}`)) ? ( - - ) : ( - - )} - - {!campaignId && !loading && !readOnly && ( - { - e.stopPropagation(); - - setSelectedCategory(''); - setEditing(false); - - const selectedTabAtoms = atomsMap[configTab]; - if (!isAtom(selectedTabAtoms)) { - const refereeKey = resolveKey(schema, configTab, idx); - - delete selectedTabAtoms[refereeKey]; - - // Initialize case - const configInitialize = config.initialize; - if ( - isPlainObject(configInitialize) && - isPlainObject(configInitialize.node_set) && - typeof configInitialize.node_set.block_name === 'string' && - configInitialize.node_set.block_name === refereeKey - ) { - atomsMap.initialize = atom>({ - ...configInitialize, - node_set: null, - }); - } - - // Check all keys in the config - Object.entries(config) - .filter(([configK]) => configK !== 'initialize') - .forEach(([configK, configV]) => { - if (typeof configV !== 'object') return; - - // Check all keys in a section (e.g stimuli, recordings) - Object.entries(configV).forEach(([entryKey, entryV]) => { - if (!isPlainObject(entryV)) return; - - // Check all values in a particular object (a single stimuli, a single timestamp, etc) - Object.entries(entryV).forEach(([fieldK, field]) => { - if ( - !isPlainObject(entryV) || - !isPlainObject(field) || - typeof field.block_name !== 'string' || - isAtom(atomsMap[configK]) || // skip top level atoms (e.g initialize) - field.block_name !== refereeKey - ) - return; - - // Deleting the reference to current object - - delete entryV[fieldK]; //eslint-disable-line - - // The atom that has a reference to current object - atomsMap[configK][entryKey] = - atom>(entryV); - }); - }); - }); - - setAtomsMap({ - ...atomsMap, - [configTab]: { - ...selectedTabAtoms, - }, - }); - } - - setSelectedItemIdx(null); - }} - /> - )} -
-
-
- ); - })} - {!campaignId && !loading && !readOnly && ( - - )} - - )} - - ); -} diff --git a/src/features/contribute/_components/simulation-files/index.tsx b/src/features/contribute/_components/simulation-files/index.tsx deleted file mode 100644 index 0d2a8ca2c..000000000 --- a/src/features/contribute/_components/simulation-files/index.tsx +++ /dev/null @@ -1,198 +0,0 @@ -import { useAtomValue } from 'jotai'; -import { Suspense, useMemo } from 'react'; -import { ErrorBoundary } from 'react-error-boundary'; - -import { ICircuitSimulation } from '@/api/entitycore/types/entities/circuit-simulation'; -import { CircuitSimulationExecutionStatus } from '@/api/entitycore/types/entities/circuit-simulation-execution'; -import { IEntity } from '@/api/entitycore/types/entities/entity'; -import { IAsset } from '@/api/entitycore/types/shared/global'; -import { - circuitAtomFamily, - simResultBySimIdAtomFamily, -} from '@/features/small-microcircuit/_components/atoms'; -import { WorkspaceContext } from '@/types/common'; -import { classNames } from '@/util/utils'; - -export type File = { - asset: IAsset; - entity: IEntity; - assetPath?: string; -}; - -type SimulationFilesProps = { - simulation: ICircuitSimulation; - execStatus?: CircuitSimulationExecutionStatus | null; - selectedFile?: File; - onSelect: (file: File) => void; - context: WorkspaceContext; -}; - -export function SimulationFiles({ - simulation, - execStatus, - selectedFile, - onSelect, - context, -}: SimulationFilesProps) { - const outputAvailable = - execStatus && - [CircuitSimulationExecutionStatus.ERROR, CircuitSimulationExecutionStatus.DONE].includes( - execStatus - ); - - return ( - <> -

Input files

- -

Output files

- Loading...
}> - {outputAvailable && ( - There was an issue loading output files - } - resetKeys={[simulation]} - > - - - )} - - - ); -} - -type SimulationInputFilesProps = { - simulation: ICircuitSimulation; - context: WorkspaceContext; - selectedFile?: File; - onSelect: (file: File) => void; - className?: string; -}; - -function SimulationInputFiles({ - simulation, - context, - selectedFile, - onSelect, - className = '', -}: SimulationInputFilesProps) { - const circuit = useAtomValue(circuitAtomFamily({ circuitId: simulation.entity_id, context })); - // TODO: fetch circuitConfig - const sonataCircuitAsset = circuit.assets.find((asset) => asset.label === 'sonata_circuit'); - const circuitConfigFile: File = useMemo( - () => ({ - entity: circuit, - asset: sonataCircuitAsset!, - assetPath: 'circuit_config.json', - }), - [circuit, sonataCircuitAsset] - ); - - const files: File[] = useMemo( - () => [circuitConfigFile, ...simulation.assets.map((asset) => ({ asset, entity: simulation }))], - [simulation, circuitConfigFile] - ); - - return ( -
- {files.map((file) => ( - - ))} -
- ); -} - -type SimulationOutputFilesProps = { - simulation: ICircuitSimulation; - context: WorkspaceContext; - selectedFile?: File; - onSelect: (file: File) => void; - className?: string; -}; - -function SimulationOutputFiles({ - simulation, - onSelect, - selectedFile, - context, - className = '', -}: SimulationOutputFilesProps) { - const simResult = useAtomValue( - simResultBySimIdAtomFamily({ simulationId: simulation.id, context }) - ); - - const files: File[] = useMemo( - () => simResult.assets.map((asset) => ({ asset, entity: simResult })), - [simResult] - ); - - return ( -
- {files.map((file) => ( - - ))} -
- ); -} - -type SimulationFileProps = { - file: File; - selected?: boolean; - onSelect: (file: File) => void; -}; - -function SimulationFile({ file, selected, onSelect }: SimulationFileProps) { - const fileName = file.assetPath?.split('/').at(-1) ?? file.asset.path.split('/').at(-1); - const fileExt = fileName?.split('.').at(-1); - - return ( - - ); -} diff --git a/src/features/contribute/_components/simulation-status/index.tsx b/src/features/contribute/_components/simulation-status/index.tsx deleted file mode 100644 index 499d77215..000000000 --- a/src/features/contribute/_components/simulation-status/index.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import { CircuitSimulationExecutionStatus } from '@/api/entitycore/types/entities/circuit-simulation-execution'; - -export function SimulationStatusBadge({ status }: { status?: CircuitSimulationExecutionStatus }) { - const color = status ? statusColorMap[status] : '#fafafa'; - const showSpinner = status && ['pending', 'running'].includes(status); - - // TODO: move spinner outside of the module. - - return ( -
- {showSpinner && ( - - - - - )} - - - {status ?? ''} - -
- ); -} -const statusColorMap: Record = { - created: '#434343', - pending: '#fa8c16', - running: '#1890ff', - done: '#389e0d', - error: '#f5222d', -}; diff --git a/src/features/contribute/_components/tabs-selector/index.ts b/src/features/contribute/_components/tabs-selector/index.ts deleted file mode 100644 index e516b026d..000000000 --- a/src/features/contribute/_components/tabs-selector/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './tabs-selector'; diff --git a/src/features/contribute/_components/tabs-selector/tabs-selector.tsx b/src/features/contribute/_components/tabs-selector/tabs-selector.tsx deleted file mode 100644 index 3b2b02a17..000000000 --- a/src/features/contribute/_components/tabs-selector/tabs-selector.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import React from 'react'; - -import { Tab } from '../components'; -import { TabType } from '../../types'; -import { classNames } from '@/util/utils'; - -interface TabsSelectorProps { - className?: string; - tab: TabType; - setTab(tab: TabType): void; - disableSimulationTab: boolean; -} - -export default function TabsSelector({ - className, - tab, - setTab, - disableSimulationTab, -}: TabsSelectorProps) { - return ( -
-
- setTab('configuration')} - > - Configuration - - setTab('simulations')} - disabled={disableSimulationTab} - > - Simulations - -
-
- ); -} diff --git a/src/features/contribute/_components/tooltip/index.ts b/src/features/contribute/_components/tooltip/index.ts deleted file mode 100644 index bb106e207..000000000 --- a/src/features/contribute/_components/tooltip/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './tooltip'; diff --git a/src/features/contribute/_components/tooltip/tooltip.module.css b/src/features/contribute/_components/tooltip/tooltip.module.css deleted file mode 100644 index a4e563aa8..000000000 --- a/src/features/contribute/_components/tooltip/tooltip.module.css +++ /dev/null @@ -1,39 +0,0 @@ -.tooltipContainer { - position: relative; - overflow: visible; -} - -.tooltip { - position: relative; - background: #0050b3ee; - color: #fff; - padding: 0.5em 1em; - border-radius: 0.25em; - position: absolute; - left: 0; - right: 0; - bottom: 0; - width: 100%; - pointer-events: none; - z-index: 9; - transform: translateY(calc(100% + 16px)); - transition: all 0.2s; - opacity: 0; -} - -.tooltipContainer:hover .tooltip { - opacity: 1; -} - -.tooltip::after { - content: ''; - border: 16px solid transparent; - border-bottom: 16px solid #0050b3ee; - position: absolute; - top: -16px; - left: 50%; - width: 0; - height: 0; - margin: -16px; - transform: scale(0.5, 1); -} diff --git a/src/features/contribute/_components/tooltip/tooltip.tsx b/src/features/contribute/_components/tooltip/tooltip.tsx deleted file mode 100644 index 45a1501f4..000000000 --- a/src/features/contribute/_components/tooltip/tooltip.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import React from 'react'; - -import { classNames } from '@/util/utils'; - -import styles from './tooltip.module.css'; - -interface TooltipProps { - className?: string; - value?: React.ReactNode; - children: React.ReactNode; -} - -export default function Tooltip({ className, value, children }: TooltipProps) { - return ( -
- {children} - {value &&
{value}
} -
- ); -} diff --git a/src/features/contribute/_components/utils.ts b/src/features/contribute/_components/utils.ts deleted file mode 100644 index f4f3c34a2..000000000 --- a/src/features/contribute/_components/utils.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { Atom } from 'jotai'; -import uniq from 'lodash/uniq'; -import { CircuitSimulationExecutionStatus } from '@/api/entitycore/types/entities/circuit-simulation-execution'; - -export type Primitive = null | boolean | number | string; -export interface ConfigObject { - [key: string]: Primitive | Primitive[] | ConfigObject; -} - -export function isPlainObject(value: unknown): value is Record { - return typeof value === 'object' && !Array.isArray(value) && value !== null; -} - -export function isAtom(val: unknown): val is Atom { - return typeof val === 'object' && val !== null && 'read' in val; -} - -export const ORDERING: Record = { - assets: { - order: 0, - category: 'Assets', - }, - morphology: { - order: 1, - category: 'Setup', - }, - contribution: { - order: 2, - category: 'Contribution', - }, - subject: { - order: 4, - category: 'Subject', - }, - license: { - order: 5, - category: 'License', - }, - mtype: { - order: 6, - category: 'Mtype', - }, - // publication: { - // order: 7, - // category: 'Publication', - // }, - // scientificartifact: { - // order: 8, - // category: 'Scientific Artifact', - // }, -}; - -export const CATEGORIES: string[] = uniq(Object.values(ORDERING).map((o) => o.category)); - -const simExecStatusListordered = [ - CircuitSimulationExecutionStatus.CREATED, - CircuitSimulationExecutionStatus.PENDING, - CircuitSimulationExecutionStatus.RUNNING, - CircuitSimulationExecutionStatus.DONE, - CircuitSimulationExecutionStatus.ERROR, -]; - -export function getLatestSimExecStatus( - remoteStatus: CircuitSimulationExecutionStatus, - localStatus: CircuitSimulationExecutionStatus -) { - const remoteStatusIdx = simExecStatusListordered.indexOf(remoteStatus); - const localStatusIdx = simExecStatusListordered.indexOf(localStatus); - - const latestStatus = Math.max(remoteStatusIdx, localStatusIdx); - - return simExecStatusListordered[latestStatus]; -} diff --git a/src/features/contribute/error-registry.ts b/src/features/contribute/error-registry.ts deleted file mode 100755 index afc71adf6..000000000 --- a/src/features/contribute/error-registry.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { messages } from '@/i18n/en/simulation'; - -const errorCodeToTranslationKey: Record = { - ACCOUNTING_INSUFFICIENT_FUNDS_ERROR: messages.LowFundsError, -}; - -export default errorCodeToTranslationKey; diff --git a/src/features/contribute/small-microcircuit.module.css b/src/features/contribute/small-microcircuit.module.css deleted file mode 100755 index 0a4777633..000000000 --- a/src/features/contribute/small-microcircuit.module.css +++ /dev/null @@ -1,32 +0,0 @@ -div.threeColumns { - display: grid; - grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 2fr); - gap: 5px; - height: calc(100% - 100px); -} - -div.threeColumns > div { - min-height: 0; - height: 100%; -} - -div.threeColumns > div.scrollable { - overflow-y: auto; - overflow-x: visible; -} - -div.threeColumns > div:first-child { - display: grid; - grid-template-rows: 1fr auto; - gap: 1em; - overflow: unset; -} - -header.header { - display: flex; - flex-wrap: nowrap; - flex-direction: row; - justify-content: space-between; - align-items: center; - gap: 1em; -} diff --git a/src/features/contribute/types.ts b/src/features/contribute/types.ts deleted file mode 100755 index 2217e8e2b..000000000 --- a/src/features/contribute/types.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { atom } from 'jotai'; - -import { ConfigValue } from './_components/components'; -import { CircuitSimulationExecutionStatus } from '@/api/entitycore/types/entities/circuit-simulation-execution'; - -export type JSONSchema = { - type?: 'string' | 'number' | 'integer' | 'object' | 'array' | 'boolean' | 'null'; - properties?: { [key: string]: JSONSchema }; - items?: JSONSchema | JSONSchema[]; - required?: string[]; - enum?: any[]; - const?: string; - additionalProperties?: JSONSchema; - oneOf?: JSONSchema[]; - anyOf?: JSONSchema[]; - allOf?: JSONSchema[]; - not?: JSONSchema; - format?: string; - title?: string; - description?: string; - default?: any; - examples?: any[]; - [key: string]: any; - singular_name?: string; -}; - -export interface AtomsMap { - [key: string]: - | ReturnType>> - | Record>>>; -} - -export type TabType = 'configuration' | 'simulations'; - -export type SimExecStatusMap = Map; From b7fd2c57958c4475d3cb57df5c47d78ea572e4c8 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Fri, 12 Sep 2025 16:58:41 +0200 Subject: [PATCH 35/44] packages --- package.json | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index f9eba45ff..9cc8a3418 100644 --- a/package.json +++ b/package.json @@ -86,6 +86,7 @@ "@types/d3": "^7.4.0", "ajv": "^8.17.1", "antd": "^5.13.3", + "canvas": "2.11.2", "chroma-js": "^3.1.2", "comlink": "^4.4.1", "d3": "^7.8.4", @@ -193,7 +194,7 @@ "eslint-plugin-react-hooks": "^4.6.0", "jest": "^29.5.0", "jest-environment-jsdom": "^29.5.0", - "jsdom": "^26.1.0", + "jsdom": "22.1.0", "knip": "^5.61.3", "lefthook": "^1.11.12", "msw": "^2.0.5", @@ -212,7 +213,9 @@ "@types/react": "19.1.0", "@types/react-dom": "19.1.1", "react": "19.1.0", - "react-dom": "19.1.0" + "react-dom": "19.1.0", + "canvas": "2.11.2", + "jsdom": "22.1.0" }, "pnpm": { "peerDependencyRules": { From 05f987d630200d0d8817cddf824cab447cf86c7b Mon Sep 17 00:00:00 2001 From: dkeller9 Date: Fri, 12 Sep 2025 17:05:37 +0200 Subject: [PATCH 36/44] Update components.tsx --- .../contribute/morphology/_components/components.tsx | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/features/contribute/morphology/_components/components.tsx b/src/features/contribute/morphology/_components/components.tsx index 91c702829..4b264a4ab 100644 --- a/src/features/contribute/morphology/_components/components.tsx +++ b/src/features/contribute/morphology/_components/components.tsx @@ -152,15 +152,6 @@ const processData = async (token: string): Promise => { return null; } - jsonDataSpecies.data.push({ - id: 'b7ad4cca-4ac2-4095-9781-37fb68fe9ca1', - name: 'Generic Mus musculus', - }); - jsonDataSpecies.data.push({ - id: '3b1c2a25-b4fb-468d-98d2-d2d431ac8b4a', - name: 'Generic Rattus norvegicus', - }); - const speclist: Array<{ species_id: string; species_name: string; From d446b5e77771c551f1fed37e59c6d7725c6cb41c Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Fri, 12 Sep 2025 17:33:01 +0200 Subject: [PATCH 37/44] packages --- pnpm-lock.yaml | 27504 ----------------------------------------------- 1 file changed, 27504 deletions(-) delete mode 100644 pnpm-lock.yaml diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index 1943698c7..000000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,27504 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@ai-sdk/react': - specifier: ^1.1.21 - version: 1.2.8(react@19.1.0)(zod@3.24.2) - '@ai-sdk/ui-utils': - specifier: ^1.1.17 - version: 1.2.7(zod@3.24.2) - '@ant-design/icons': - specifier: ^6.0.0 - version: 6.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@ant-design/nextjs-registry': - specifier: ^1.0.2 - version: 1.0.2(@ant-design/cssinjs@1.23.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(antd@5.24.6(date-fns@4.1.0)(moment@2.30.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@ant-design/v5-patch-for-react-19': - specifier: ^1.0.3 - version: 1.0.3(antd@5.24.6(date-fns@4.1.0)(moment@2.30.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@apache-arrow/es2015-esm': - specifier: ^19.0.1 - version: 19.0.1 - '@apidevtools/json-schema-ref-parser': - specifier: ^13.0.1 - version: 13.0.1 - '@bbp/morphoviewer': - specifier: ^0.21.1 - version: 0.21.1 - '@dnd-kit/core': - specifier: ^6.0.8 - version: 6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@dnd-kit/modifiers': - specifier: ^9.0.0 - version: 9.0.0(@dnd-kit/core@6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0) - '@dnd-kit/sortable': - specifier: ^10.0.0 - version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0) - '@dnd-kit/utilities': - specifier: ^3.2.1 - version: 3.2.2(react@19.1.0) - '@exodus/schemasafe': - specifier: ^1.3.0 - version: 1.3.0 - '@floating-ui/core': - specifier: ^1.6.2 - version: 1.6.9 - '@floating-ui/dom': - specifier: ^1.6.5 - version: 1.6.13 - '@lexical/code': - specifier: ^0.30.0 - version: 0.30.0 - '@lexical/headless': - specifier: ^0.30.0 - version: 0.30.0 - '@lexical/link': - specifier: ^0.30.0 - version: 0.30.0 - '@lexical/list': - specifier: ^0.30.0 - version: 0.30.0 - '@lexical/markdown': - specifier: ^0.30.0 - version: 0.30.0 - '@lexical/react': - specifier: ^0.30.0 - version: 0.30.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(yjs@13.6.24) - '@lexical/rich-text': - specifier: ^0.30.0 - version: 0.30.0 - '@lexical/selection': - specifier: ^0.30.0 - version: 0.30.0 - '@lexical/table': - specifier: ^0.30.0 - version: 0.30.0 - '@lexical/utils': - specifier: ^0.30.0 - version: 0.30.0 - '@loaders.gl/core': - specifier: ^4.3.4 - version: 4.3.4 - '@loaders.gl/draco': - specifier: ^4.3.4 - version: 4.3.4(@loaders.gl/core@4.3.4) - '@loaders.gl/gltf': - specifier: ^4.3.4 - version: 4.3.4(@loaders.gl/core@4.3.4) - '@math.gl/core': - specifier: ^4.0.1 - version: 4.1.0 - '@next/bundle-analyzer': - specifier: ^15.4.1 - version: 15.4.1 - '@portabletext/react': - specifier: ^3.2.0 - version: 3.2.1(react@19.1.0) - '@radix-ui/react-accordion': - specifier: ^1.1.1 - version: 1.2.4(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-checkbox': - specifier: ^1.0.3 - version: 1.1.5(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-dialog': - specifier: ^1.0.4 - version: 1.1.7(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-dropdown-menu': - specifier: ^2.0.5 - version: 2.1.7(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-menubar': - specifier: ^1.1.6 - version: 1.1.7(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-popover': - specifier: ^1.0.5 - version: 1.1.7(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slider': - specifier: ^1.1.2 - version: 1.2.4(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-switch': - specifier: ^1.0.2 - version: 1.1.4(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-tabs': - specifier: ^1.0.3 - version: 1.1.4(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-tooltip': - specifier: ^1.0.6 - version: 1.2.0(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-three/drei': - specifier: ^10.0.6 - version: 10.0.6(@react-three/fiber@9.1.2(@types/react@19.1.0)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(three@0.159.0))(@types/react@19.1.0)(@types/three@0.159.0)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(three@0.159.0) - '@react-three/fiber': - specifier: ^9.1.2 - version: 9.1.2(@types/react@19.1.0)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(three@0.159.0) - '@rjsf/core': - specifier: ^5.24.11 - version: 5.24.11(@rjsf/utils@5.24.11(react@19.1.0))(react@19.1.0) - '@rjsf/validator-ajv8': - specifier: ^5.24.11 - version: 5.24.11(@rjsf/utils@5.24.11(react@19.1.0)) - '@sanity/client': - specifier: ^7.6.0 - version: 7.6.0(debug@4.4.0) - '@sanity/image-url': - specifier: ^1.1.0 - version: 1.1.0 - '@sanity/types': - specifier: ^3.93.0 - version: 3.94.2(@types/react@19.1.0)(debug@4.4.0) - '@sentry/nextjs': - specifier: ^9.12.0 - version: 9.12.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react@19.1.0)(webpack@5.99.5(esbuild@0.25.5)) - '@stripe/react-stripe-js': - specifier: ^3.6.0 - version: 3.6.0(@stripe/stripe-js@7.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@stripe/stripe-js': - specifier: ^7.0.0 - version: 7.0.0 - '@t3-oss/env-nextjs': - specifier: ^0.13.0 - version: 0.13.0(arktype@2.1.20)(typescript@5.8.3)(valibot@1.1.0(typescript@5.8.3))(zod@3.24.2) - '@tanstack/react-query': - specifier: ^5.84.1 - version: 5.84.2(react@19.1.0) - '@tanstack/react-query-devtools': - specifier: ^5.84.1 - version: 5.84.2(@tanstack/react-query@5.84.2(react@19.1.0))(react@19.1.0) - '@tanstack/react-table': - specifier: ^8.21.2 - version: 8.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@testing-library/user-event': - specifier: ^14.5.1 - version: 14.6.1(@testing-library/dom@10.4.0) - '@tolokoban/tgd': - specifier: ^2.0.33 - version: 2.0.33 - '@types/d3': - specifier: ^7.4.0 - version: 7.4.3 - ajv: - specifier: ^8.17.1 - version: 8.17.1 - antd: - specifier: ^5.13.3 - version: 5.24.6(date-fns@4.1.0)(moment@2.30.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - chroma-js: - specifier: ^3.1.2 - version: 3.1.2 - comlink: - specifier: ^4.4.1 - version: 4.4.2 - d3: - specifier: ^7.8.4 - version: 7.9.0 - d3-sankey: - specifier: ^0.12.3 - version: 0.12.3 - date-fns: - specifier: ^4.1.0 - version: 4.1.0 - deepdash-es: - specifier: ^5.3.9 - version: 5.3.9 - dexie: - specifier: ^4.0.11 - version: 4.0.11 - distinct-colors: - specifier: ^3.0.0 - version: 3.0.0 - elastic-builder: - specifier: ^2.20.0 - version: 2.31.0 - fast-csv: - specifier: ^5.0.2 - version: 5.0.2 - file-saver: - specifier: ^2.0.5 - version: 2.0.5 - flat: - specifier: ^6.0.1 - version: 6.0.1 - framer-motion: - specifier: ^12.4.7 - version: 12.6.3(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - github-markdown-css: - specifier: ^5.8.1 - version: 5.8.1 - h5wasm: - specifier: ^0.7.9 - version: 0.7.9 - import-in-the-middle: - specifier: ^1.13.1 - version: 1.13.1 - input-otp: - specifier: ^1.4.2 - version: 1.4.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - install: - specifier: ^0.13.0 - version: 0.13.0 - jotai: - specifier: ^2.7.2 - version: 2.12.2(@types/react@19.1.0)(react@19.1.0) - jotai-devtools: - specifier: ^0.11.0 - version: 0.11.0(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(redux@5.0.1) - jotai-optics: - specifier: ^0.4.0 - version: 0.4.0(jotai@2.12.2(@types/react@19.1.0)(react@19.1.0))(optics-ts@2.4.1) - js-yaml: - specifier: ^4.1.0 - version: 4.1.0 - jszip: - specifier: ^3.10.1 - version: 3.10.1 - lexical: - specifier: ^0.30.0 - version: 0.30.0 - lodash: - specifier: ^4.17.21 - version: 4.17.21 - memoize-one: - specifier: ^6.0.0 - version: 6.0.0 - moment: - specifier: ^2.30.1 - version: 2.30.1 - morphoviewer: - specifier: ^0.1.20 - version: 0.1.20 - next: - specifier: ^15.4.1 - version: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1) - next-auth: - specifier: ^4.24.7 - version: 4.24.11(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - next-sanity: - specifier: ^9.12.0 - version: 9.12.0(@emotion/is-prop-valid@1.2.2)(@sanity/client@7.6.0)(@sanity/icons@3.7.4(react@19.1.0))(@sanity/types@3.94.2(@types/react@19.1.0))(@sanity/ui@2.16.2(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(sanity@3.94.2(@emotion/is-prop-valid@1.2.2)(@types/node@22.14.0)(@types/react@19.1.0)(immer@10.1.1)(jiti@2.4.2)(lightningcss@1.29.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1))(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(typescript@5.8.3) - next-sanity-client: - specifier: ^1.0.8 - version: 1.0.8(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1)) - nuqs: - specifier: ^2.4.1 - version: 2.4.1(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react@19.1.0) - optics-ts: - specifier: ^2.4.0 - version: 2.4.1 - pako: - specifier: ^2.1.0 - version: 2.1.0 - performant-array-to-tree: - specifier: ^1.11.0 - version: 1.11.0 - plotly.js-dist-min: - specifier: ^2.35.3 - version: 2.35.3 - rc-picker: - specifier: ^4.11.3 - version: 4.11.3(date-fns@4.1.0)(dayjs@1.11.13)(moment@2.30.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: - specifier: 19.1.0 - version: 19.1.0 - react-canvas-confetti: - specifier: ^2.0.7 - version: 2.0.7(react@19.1.0) - react-confetti: - specifier: ^6.4.0 - version: 6.4.0(react@19.1.0) - react-dom: - specifier: 19.1.0 - version: 19.1.0(react@19.1.0) - react-error-boundary: - specifier: ^5.0.0 - version: 5.0.0(react@19.1.0) - react-intersection-observer: - specifier: ^9.5.2 - version: 9.16.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react-ipynb-renderer: - specifier: ^2.2.4 - version: 2.2.4(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react-markdown: - specifier: ^9.1.0 - version: 9.1.0(@types/react@19.1.0)(react@19.1.0) - react-pdf: - specifier: ^9.2.1 - version: 9.2.1(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react-plotly.js: - specifier: ^2.6.0 - version: 2.6.0(plotly.js@3.1.0(mapbox-gl@1.13.3))(react@19.1.0) - react-resizable: - specifier: ^3.0.5 - version: 3.0.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react-select: - specifier: ^5.7.3 - version: 5.10.1(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react-syntax-highlighter: - specifier: ^15.6.1 - version: 15.6.1(react@19.1.0) - rehype-katex: - specifier: ^7.0.1 - version: 7.0.1 - rehype-raw: - specifier: ^7.0.0 - version: 7.0.0 - remark-gfm: - specifier: ^4.0.1 - version: 4.0.1 - remark-math: - specifier: ^6.0.0 - version: 6.0.0 - sanity: - specifier: ^3.93.0 - version: 3.94.2(@emotion/is-prop-valid@1.2.2)(@types/node@22.14.0)(@types/react@19.1.0)(immer@10.1.1)(jiti@2.4.2)(lightningcss@1.29.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1) - sharp: - specifier: ^0.34.1 - version: 0.34.1 - superjson: - specifier: ^2.2.2 - version: 2.2.2 - swiper: - specifier: ^11.1.14 - version: 11.2.6 - tar-stream: - specifier: ^3.1.7 - version: 3.1.7 - three: - specifier: ^0.159.0 - version: 0.159.0 - ts-pattern: - specifier: ^5.7.0 - version: 5.7.0 - wavefront-obj-parser: - specifier: ^2.0.1 - version: 2.0.1 - whatwg-fetch: - specifier: ^3.6.19 - version: 3.6.20 - zod: - specifier: ^3.22.4 - version: 3.24.2 - devDependencies: - '@opentelemetry/auto-instrumentations-node': - specifier: ^0.64.1 - version: 0.64.1(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0)) - '@opentelemetry/sdk-node': - specifier: ^0.205.0 - version: 0.205.0(@opentelemetry/api@1.9.0) - '@playwright/test': - specifier: ^1.51.1 - version: 1.51.1 - '@tailwindcss/postcss': - specifier: ^4.1.3 - version: 4.1.3 - '@tanstack/eslint-plugin-query': - specifier: ^5.83.1 - version: 5.83.1(eslint@8.57.1)(typescript@5.8.3) - '@testing-library/dom': - specifier: ^10.4.0 - version: 10.4.0 - '@testing-library/jest-dom': - specifier: ^6.4.2 - version: 6.6.3 - '@testing-library/react': - specifier: ^16.3.0 - version: 16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@types/ajv': - specifier: ^1.0.4 - version: 1.0.4 - '@types/file-saver': - specifier: ^2.0.5 - version: 2.0.7 - '@types/jest': - specifier: ^29.5.14 - version: 29.5.14 - '@types/lodash': - specifier: ^4.14.194 - version: 4.17.16 - '@types/node': - specifier: ^22.14.0 - version: 22.14.0 - '@types/plotly.js-dist-min': - specifier: ^2.3.4 - version: 2.3.4 - '@types/react': - specifier: 19.1.0 - version: 19.1.0 - '@types/react-dom': - specifier: 19.1.1 - version: 19.1.1(@types/react@19.1.0) - '@types/react-plotly.js': - specifier: ^2.6.0 - version: 2.6.3 - '@types/react-resizable': - specifier: ^3.0.8 - version: 3.0.8 - '@types/react-syntax-highlighter': - specifier: ^15.5.13 - version: 15.5.13 - '@types/tar-stream': - specifier: ^3.1.3 - version: 3.1.3 - '@types/three': - specifier: ^0.159.0 - version: 0.159.0 - '@typescript-eslint/eslint-plugin': - specifier: ^7.7.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/parser': - specifier: ^7.7.0 - version: 7.18.0(eslint@8.57.1)(typescript@5.8.3) - '@vitejs/plugin-react': - specifier: ^4.5.2 - version: 4.5.2(vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1)) - autoprefixer: - specifier: ^10.4.14 - version: 10.4.21(postcss@8.5.3) - dotenv: - specifier: ^16.5.0 - version: 16.5.0 - dotenv-cli: - specifier: ^8.0.0 - version: 8.0.0 - eslint: - specifier: ^8.40.0 - version: 8.57.1 - eslint-config-airbnb: - specifier: ^19.0.4 - version: 19.0.4(eslint-plugin-import@2.31.0)(eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.37.5(eslint@8.57.1))(eslint@8.57.1) - eslint-config-airbnb-typescript: - specifier: ^18.0.0 - version: 18.0.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@8.57.1) - eslint-config-next: - specifier: 15.2.4 - version: 15.2.4(eslint@8.57.1)(typescript@5.8.3) - eslint-config-prettier: - specifier: ^9.0.0 - version: 9.1.0(eslint@8.57.1) - eslint-plugin-import: - specifier: ^2.27.5 - version: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.1) - eslint-plugin-jsx-a11y: - specifier: ^6.7.1 - version: 6.10.2(eslint@8.57.1) - eslint-plugin-lodash: - specifier: ^7.4.0 - version: 7.4.0(eslint@8.57.1) - eslint-plugin-react: - specifier: ^7.32.2 - version: 7.37.5(eslint@8.57.1) - eslint-plugin-react-hooks: - specifier: ^4.6.0 - version: 4.6.2(eslint@8.57.1) - jest: - specifier: ^29.5.0 - version: 29.7.0(@types/node@22.14.0)(babel-plugin-macros@3.1.0) - jest-environment-jsdom: - specifier: ^29.5.0 - version: 29.7.0 - jsdom: - specifier: ^26.1.0 - version: 26.1.0 - knip: - specifier: ^5.61.3 - version: 5.61.3(@types/node@22.14.0)(typescript@5.8.3) - lefthook: - specifier: ^1.11.12 - version: 1.11.13 - msw: - specifier: ^2.0.5 - version: 2.7.3(@types/node@22.14.0)(typescript@5.8.3) - plotly.js: - specifier: ^3.1.0 - version: 3.1.0(mapbox-gl@1.13.3) - postcss: - specifier: ^8.5.3 - version: 8.5.3 - prettier: - specifier: ^3.2.4 - version: 3.5.3 - prettier-plugin-tailwindcss: - specifier: ^0.6.11 - version: 0.6.11(prettier@3.5.3) - raw-loader: - specifier: ^4.0.2 - version: 4.0.2(webpack@5.99.5(esbuild@0.25.5)) - sass: - specifier: ^1.92.1 - version: 1.92.1 - tailwindcss: - specifier: ^4.1.3 - version: 4.1.3 - typescript: - specifier: ^5.8.3 - version: 5.8.3 - vite-tsconfig-paths: - specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1)) - vitest: - specifier: ^3.1.1 - version: 3.1.1(@types/debug@4.1.12)(@types/node@22.14.0)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.29.2)(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1) - -packages: - - '@actions/core@1.11.1': - resolution: {integrity: sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==} - - '@actions/exec@1.1.1': - resolution: {integrity: sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==} - - '@actions/github@6.0.0': - resolution: {integrity: sha512-alScpSVnYmjNEXboZjarjukQEzgCRmjMv6Xj47fsdnqGS73bjJNDpiiXmp8jr0UZLdUB6d9jW63IcmddUP+l0g==} - - '@actions/http-client@2.2.3': - resolution: {integrity: sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA==} - - '@actions/io@1.1.3': - resolution: {integrity: sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==} - - '@adobe/css-tools@4.4.2': - resolution: {integrity: sha512-baYZExFpsdkBNuvGKTKWCwKH57HRZLVtycZS05WTQNVOiXVSeAki3nU35zlRbToeMW8aHlJfyS+1C4BOv27q0A==} - - '@ai-sdk/provider-utils@2.2.6': - resolution: {integrity: sha512-sUlZ7Gnq84DCGWMQRIK8XVbkzIBnvPR1diV4v6JwPgpn5armnLI/j+rqn62MpLrU5ZCQZlDKl/Lw6ed3ulYqaA==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.23.8 - - '@ai-sdk/provider@1.1.2': - resolution: {integrity: sha512-ITdgNilJZwLKR7X5TnUr1BsQW6UTX5yFp0h66Nfx8XjBYkWD9W3yugr50GOz3CnE9m/U/Cd5OyEbTMI0rgi6ZQ==} - engines: {node: '>=18'} - - '@ai-sdk/react@1.2.8': - resolution: {integrity: sha512-S2FzCSi4uTF0JuSN6zYMXyiAWVAzi/Hho8ISYgHpGZiICYLNCP2si4DuXQOsnWef3IXzQPLVoE11C63lILZIkw==} - engines: {node: '>=18'} - peerDependencies: - react: ^18 || ^19 || ^19.0.0-rc - zod: ^3.23.8 - peerDependenciesMeta: - zod: - optional: true - - '@ai-sdk/ui-utils@1.2.7': - resolution: {integrity: sha512-OVRxa4SDj0wVsMZ8tGr/whT89oqNtNoXBKmqWC2BRv5ZG6azL2LYZ5ZK35u3lb4l1IE7cWGsLlmq0py0ttsL7A==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.23.8 - - '@alloc/quick-lru@5.2.0': - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} - engines: {node: '>=10'} - - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - - '@ant-design/colors@7.2.0': - resolution: {integrity: sha512-bjTObSnZ9C/O8MB/B4OUtd/q9COomuJAR2SYfhxLyHvCKn4EKwCN3e+fWGMo7H5InAyV0wL17jdE9ALrdOW/6A==} - - '@ant-design/colors@8.0.0': - resolution: {integrity: sha512-6YzkKCw30EI/E9kHOIXsQDHmMvTllT8STzjMb4K2qzit33RW2pqCJP0sk+hidBntXxE+Vz4n1+RvCTfBw6OErw==} - - '@ant-design/cssinjs-utils@1.1.3': - resolution: {integrity: sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@ant-design/cssinjs@1.23.0': - resolution: {integrity: sha512-7GAg9bD/iC9ikWatU9ym+P9ugJhi/WbsTWzcKN6T4gU0aehsprtke1UAaaSxxkjjmkJb3llet/rbUSLPgwlY4w==} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - - '@ant-design/fast-color@2.0.6': - resolution: {integrity: sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==} - engines: {node: '>=8.x'} - - '@ant-design/fast-color@3.0.0': - resolution: {integrity: sha512-eqvpP7xEDm2S7dUzl5srEQCBTXZMmY3ekf97zI+M2DHOYyKdJGH0qua0JACHTqbkRnD/KHFQP9J1uMJ/XWVzzA==} - engines: {node: '>=8.x'} - - '@ant-design/icons-svg@4.4.2': - resolution: {integrity: sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==} - - '@ant-design/icons@5.6.1': - resolution: {integrity: sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==} - engines: {node: '>=8'} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - - '@ant-design/icons@6.0.0': - resolution: {integrity: sha512-o0aCCAlHc1o4CQcapAwWzHeaW2x9F49g7P3IDtvtNXgHowtRWYb7kiubt8sQPFvfVIVU/jLw2hzeSlNt0FU+Uw==} - engines: {node: '>=8'} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - - '@ant-design/nextjs-registry@1.0.2': - resolution: {integrity: sha512-hmeBsD3Aq+bR9zlzvnE+zU0jGX6uamad5dk9nw/O5oZ7Pu+zonL+MuyUUw/olMOzqjq9iY+DZciJr9F86th3YQ==} - peerDependencies: - '@ant-design/cssinjs': ^1.18.2 - antd: ^5.0.0 - next: ^14.0.0 || ^15.0.0 - react: '>=16.0.0' - react-dom: '>=16.0.0' - - '@ant-design/react-slick@1.1.2': - resolution: {integrity: sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==} - peerDependencies: - react: '>=16.9.0' - - '@ant-design/v5-patch-for-react-19@1.0.3': - resolution: {integrity: sha512-iWfZuSUl5kuhqLUw7jJXUQFMMkM7XpW7apmKzQBQHU0cpifYW4A79xIBt9YVO5IBajKpPG5UKP87Ft7Yrw1p/w==} - engines: {node: '>=12.x'} - peerDependencies: - antd: '>=5.22.6' - react: '>=19.0.0' - react-dom: '>=19.0.0' - - '@apache-arrow/es2015-esm@19.0.1': - resolution: {integrity: sha512-qLMA5ZQAal2w/qHTWE1K3Y2U/aF+uVEQqbkZ69xwVk68jkca7ASKwSZOqQNljFihXALLIYL7yaW+sSceU5jriw==} - hasBin: true - - '@apidevtools/json-schema-ref-parser@13.0.1': - resolution: {integrity: sha512-91uy6MGWqu7CjcV7tLPMuYh/Wj/RNPBXquSdEaCEpj2H/cFy0Yu+t1EdxExSyaryl1ykhDo30plq9tIm/HVZnw==} - engines: {node: '>= 16'} - - '@ark/schema@0.46.0': - resolution: {integrity: sha512-c2UQdKgP2eqqDArfBqQIJppxJHvNNXuQPeuSPlDML4rjw+f1cu0qAlzOG4b8ujgm9ctIDWwhpyw6gjG5ledIVQ==} - - '@ark/util@0.46.0': - resolution: {integrity: sha512-JPy/NGWn/lvf1WmGCPw2VGpBg5utZraE84I7wli18EDF3p3zc/e9WolT35tINeZO3l7C77SjqRJeAUoT0CvMRg==} - - '@asamuzakjp/css-color@3.1.1': - resolution: {integrity: sha512-hpRD68SV2OMcZCsrbdkccTw5FXjNDLo5OuqSHyHZfwweGsDWZwDJ2+gONyNAbazZclobMirACLw0lk8WVxIqxA==} - - '@asamuzakjp/dom-selector@2.0.2': - resolution: {integrity: sha512-x1KXOatwofR6ZAYzXRBL5wrdV0vwNxlTCK9NCuLqAzQYARqGcvFwiJA6A1ERuh+dgeA4Dxm3JBYictIes+SqUQ==} - - '@babel/code-frame@7.26.2': - resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} - engines: {node: '>=6.9.0'} - - '@babel/code-frame@7.27.1': - resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.26.8': - resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.27.5': - resolution: {integrity: sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.26.10': - resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.27.4': - resolution: {integrity: sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.27.0': - resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.27.5': - resolution: {integrity: sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==} - 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-annotate-as-pure@7.27.3': - resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.27.0': - resolution: {integrity: sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.27.2': - resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-create-class-features-plugin@7.27.1': - resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-create-regexp-features-plugin@7.27.0': - resolution: {integrity: sha512-fO8l08T76v48BhpNRW/nQ0MxfnSdoSKUJBMjubOAYffsVuGG5qOfMq7N6Es7UJvi7Y8goXXo07EfcHZXDPuELQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-create-regexp-features-plugin@7.27.1': - resolution: {integrity: sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-define-polyfill-provider@0.6.4': - resolution: {integrity: sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - '@babel/helper-member-expression-to-functions@7.27.1': - resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.25.9': - resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.27.1': - resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.26.0': - resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-module-transforms@7.27.3': - resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-optimise-call-expression@7.27.1': - resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-plugin-utils@7.26.5': - resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-plugin-utils@7.27.1': - resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-remap-async-to-generator@7.27.1': - resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-replace-supers@7.27.1': - resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-skip-transparent-expression-wrappers@7.27.1': - resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.25.9': - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.25.9': - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.27.1': - resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.25.9': - resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.27.1': - resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-wrap-function@7.27.1': - resolution: {integrity: sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.27.0': - resolution: {integrity: sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.27.6': - resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.27.0': - resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/parser@7.27.5': - resolution: {integrity: sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1': - resolution: {integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1': - resolution: {integrity: sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1': - resolution: {integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1': - resolution: {integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1': - resolution: {integrity: sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-async-generators@7.8.4': - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-bigint@7.8.3': - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-properties@7.12.13': - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-static-block@7.14.5': - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-assertions@7.27.1': - resolution: {integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-attributes@7.26.0': - resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-attributes@7.27.1': - resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-meta@7.10.4': - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-json-strings@7.8.3': - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-jsx@7.25.9': - resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-jsx@7.27.1': - resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4': - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-numeric-separator@7.10.4': - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-object-rest-spread@7.8.3': - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3': - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-chaining@7.8.3': - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-private-property-in-object@7.14.5': - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-top-level-await@7.14.5': - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-typescript@7.25.9': - resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-typescript@7.27.1': - resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6': - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-arrow-functions@7.27.1': - resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-async-generator-functions@7.27.1': - resolution: {integrity: sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-async-to-generator@7.27.1': - resolution: {integrity: sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-block-scoped-functions@7.27.1': - resolution: {integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-block-scoping@7.27.5': - resolution: {integrity: sha512-JF6uE2s67f0y2RZcm2kpAUEbD50vH62TyWVebxwHAlbSdM49VqPz8t4a1uIjp4NIOIZ4xzLfjY5emt/RCyC7TQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-class-properties@7.27.1': - resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-class-static-block@7.27.1': - resolution: {integrity: sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 - - '@babel/plugin-transform-classes@7.27.1': - resolution: {integrity: sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-computed-properties@7.27.1': - resolution: {integrity: sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-destructuring@7.27.3': - resolution: {integrity: sha512-s4Jrok82JpiaIprtY2nHsYmrThKvvwgHwjgd7UMiYhZaN0asdXNLr0y+NjTfkA7SyQE5i2Fb7eawUOZmLvyqOA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-dotall-regex@7.27.1': - resolution: {integrity: sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-duplicate-keys@7.27.1': - resolution: {integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1': - resolution: {integrity: sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-dynamic-import@7.27.1': - resolution: {integrity: sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-exponentiation-operator@7.27.1': - resolution: {integrity: sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-export-namespace-from@7.27.1': - resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-for-of@7.27.1': - resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-function-name@7.27.1': - resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-json-strings@7.27.1': - resolution: {integrity: sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-literals@7.27.1': - resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-logical-assignment-operators@7.27.1': - resolution: {integrity: sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-member-expression-literals@7.27.1': - resolution: {integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-amd@7.27.1': - resolution: {integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-commonjs@7.27.1': - resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-systemjs@7.27.1': - resolution: {integrity: sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-umd@7.27.1': - resolution: {integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-named-capturing-groups-regex@7.27.1': - resolution: {integrity: sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-new-target@7.27.1': - resolution: {integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-nullish-coalescing-operator@7.27.1': - resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-numeric-separator@7.27.1': - resolution: {integrity: sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-object-rest-spread@7.27.3': - resolution: {integrity: sha512-7ZZtznF9g4l2JCImCo5LNKFHB5eXnN39lLtLY5Tg+VkR0jwOt7TBciMckuiQIOIW7L5tkQOCh3bVGYeXgMx52Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-object-super@7.27.1': - resolution: {integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-optional-catch-binding@7.27.1': - resolution: {integrity: sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-optional-chaining@7.27.1': - resolution: {integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-parameters@7.27.1': - resolution: {integrity: sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-private-methods@7.27.1': - resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-private-property-in-object@7.27.1': - resolution: {integrity: sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-property-literals@7.27.1': - resolution: {integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-display-name@7.27.1': - resolution: {integrity: sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-development@7.27.1': - resolution: {integrity: sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-self@7.27.1': - resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-source@7.27.1': - resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx@7.27.1': - resolution: {integrity: sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-pure-annotations@7.27.1': - resolution: {integrity: sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-regenerator@7.27.5': - resolution: {integrity: sha512-uhB8yHerfe3MWnuLAhEbeQ4afVoqv8BQsPqrTv7e/jZ9y00kJL6l9a/f4OWaKxotmjzewfEyXE1vgDJenkQ2/Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-regexp-modifiers@7.27.1': - resolution: {integrity: sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-reserved-words@7.27.1': - resolution: {integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-shorthand-properties@7.27.1': - resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-spread@7.27.1': - resolution: {integrity: sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-sticky-regex@7.27.1': - resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-template-literals@7.27.1': - resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typeof-symbol@7.27.1': - resolution: {integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typescript@7.27.1': - resolution: {integrity: sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-escapes@7.27.1': - resolution: {integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-property-regex@7.27.1': - resolution: {integrity: sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-regex@7.27.1': - resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-sets-regex@7.27.1': - resolution: {integrity: sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/preset-env@7.27.2': - resolution: {integrity: sha512-Ma4zSuYSlGNRlCLO+EAzLnCmJK2vdstgv+n7aUP+/IKZrOfWHOJVdSJtuub8RzHTj3ahD37k5OKJWvzf16TQyQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/preset-modules@0.1.6-no-external-plugins': - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - - '@babel/preset-react@7.27.1': - resolution: {integrity: sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/preset-typescript@7.27.1': - resolution: {integrity: sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/register@7.27.1': - resolution: {integrity: sha512-K13lQpoV54LATKkzBpBAEu1GGSIRzxR9f4IN4V8DCDgiUMo2UDGagEZr3lPeVNJPLkWUi5JE4hCHKneVTwQlYQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/runtime@7.27.0': - resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.27.0': - resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.27.2': - resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.27.0': - resolution: {integrity: sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.27.4': - resolution: {integrity: sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.27.0': - resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.27.6': - resolution: {integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==} - engines: {node: '>=6.9.0'} - - '@bbp/morphoviewer@0.21.1': - resolution: {integrity: sha512-0U7Em0/XiO9iYKJL8NfoLWhJ7/J0TDQHaOk1BU63xDrSEMYbUNnRtTA1UKWomsPN6Nw+OfHKfjmhL0J56cp+Lg==} - - '@bcoe/v8-coverage@0.2.3': - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - - '@bundled-es-modules/cookie@2.0.1': - resolution: {integrity: sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==} - - '@bundled-es-modules/statuses@1.0.1': - resolution: {integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==} - - '@bundled-es-modules/tough-cookie@0.1.6': - resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==} - - '@choojs/findup@0.2.1': - resolution: {integrity: sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw==} - hasBin: true - - '@csstools/color-helpers@5.0.2': - resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} - engines: {node: '>=18'} - - '@csstools/css-calc@2.1.2': - resolution: {integrity: sha512-TklMyb3uBB28b5uQdxjReG4L80NxAqgrECqLZFQbyLekwwlcDDS8r3f07DKqeo8C4926Br0gf/ZDe17Zv4wIuw==} - engines: {node: '>=18'} - peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.4 - '@csstools/css-tokenizer': ^3.0.3 - - '@csstools/css-color-parser@3.0.8': - resolution: {integrity: sha512-pdwotQjCCnRPuNi06jFuP68cykU1f3ZWExLe/8MQ1LOs8Xq+fTkYgd+2V8mWUWMrOn9iS2HftPVaMZDaXzGbhQ==} - engines: {node: '>=18'} - peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.4 - '@csstools/css-tokenizer': ^3.0.3 - - '@csstools/css-parser-algorithms@3.0.4': - resolution: {integrity: sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==} - engines: {node: '>=18'} - peerDependencies: - '@csstools/css-tokenizer': ^3.0.3 - - '@csstools/css-tokenizer@3.0.3': - resolution: {integrity: sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==} - engines: {node: '>=18'} - - '@date-fns/tz@1.2.0': - resolution: {integrity: sha512-LBrd7MiJZ9McsOgxqWX7AaxrDjcFVjWH/tIKJd7pnR7McaslGYOP1QmmiBXdJH/H/yLCT+rcQ7FaPBUxRGUtrg==} - - '@date-fns/utc@2.1.0': - resolution: {integrity: sha512-176grgAgU2U303rD2/vcOmNg0kGPbhzckuH1TEP2al7n0AQipZIy9P15usd2TKQCG1g+E1jX/ZVQSzs4sUDwgA==} - - '@discoveryjs/json-ext@0.5.7': - resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} - engines: {node: '>=10.0.0'} - - '@dnd-kit/accessibility@3.1.1': - resolution: {integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==} - peerDependencies: - react: '>=16.8.0' - - '@dnd-kit/core@6.3.1': - resolution: {integrity: sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - '@dnd-kit/modifiers@6.0.1': - resolution: {integrity: sha512-rbxcsg3HhzlcMHVHWDuh9LCjpOVAgqbV78wLGI8tziXY3+qcMQ61qVXIvNKQFuhj75dSfD+o+PYZQ/NUk2A23A==} - peerDependencies: - '@dnd-kit/core': ^6.0.6 - react: '>=16.8.0' - - '@dnd-kit/modifiers@9.0.0': - resolution: {integrity: sha512-ybiLc66qRGuZoC20wdSSG6pDXFikui/dCNGthxv4Ndy8ylErY0N3KVxY2bgo7AWwIbxDmXDg3ylAFmnrjcbVvw==} - peerDependencies: - '@dnd-kit/core': ^6.3.0 - react: '>=16.8.0' - - '@dnd-kit/sortable@10.0.0': - resolution: {integrity: sha512-+xqhmIIzvAYMGfBYYnbKuNicfSsk4RksY2XdmJhT+HAC01nix6fHCztU68jooFiMUB01Ky3F0FyOvhG/BZrWkg==} - peerDependencies: - '@dnd-kit/core': ^6.3.0 - react: '>=16.8.0' - - '@dnd-kit/sortable@7.0.2': - resolution: {integrity: sha512-wDkBHHf9iCi1veM834Gbk1429bd4lHX4RpAwT0y2cHLf246GAvU2sVw/oxWNpPKQNQRQaeGXhAVgrOl1IT+iyA==} - peerDependencies: - '@dnd-kit/core': ^6.0.7 - react: '>=16.8.0' - - '@dnd-kit/utilities@3.2.2': - resolution: {integrity: sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==} - peerDependencies: - react: '>=16.8.0' - - '@emnapi/core@1.4.0': - resolution: {integrity: sha512-H+N/FqT07NmLmt6OFFtDfwe8PNygprzBikrEMyQfgqSmT0vzE515Pz7R8izwB9q/zsH/MA64AKoul3sA6/CzVg==} - - '@emnapi/core@1.4.3': - resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} - - '@emnapi/runtime@1.4.0': - resolution: {integrity: sha512-64WYIf4UYcdLnbKn/umDlNjQDSS8AgZrI/R9+x5ilkUVFxXcA1Ebl+gQLc/6mERA4407Xof0R7wEyEuj091CVw==} - - '@emnapi/runtime@1.4.3': - resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} - - '@emnapi/runtime@1.4.4': - resolution: {integrity: sha512-hHyapA4A3gPaDCNfiqyZUStTMqIkKRshqPIuDOXv1hcBnD4U3l8cP0T1HMCfGRxQ6V64TGCcoswChANyOAwbQg==} - - '@emnapi/wasi-threads@1.0.1': - resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} - - '@emnapi/wasi-threads@1.0.2': - resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} - - '@emotion/babel-plugin@11.13.5': - resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} - - '@emotion/cache@11.14.0': - resolution: {integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==} - - '@emotion/hash@0.8.0': - resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} - - '@emotion/hash@0.9.2': - resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} - - '@emotion/is-prop-valid@1.2.2': - resolution: {integrity: sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==} - - '@emotion/memoize@0.8.1': - resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} - - '@emotion/memoize@0.9.0': - resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} - - '@emotion/react@11.14.0': - resolution: {integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==} - peerDependencies: - '@types/react': '*' - react: '>=16.8.0' - peerDependenciesMeta: - '@types/react': - optional: true - - '@emotion/serialize@1.3.3': - resolution: {integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==} - - '@emotion/sheet@1.4.0': - resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} - - '@emotion/unitless@0.10.0': - resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} - - '@emotion/unitless@0.7.5': - resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==} - - '@emotion/unitless@0.8.1': - resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} - - '@emotion/use-insertion-effect-with-fallbacks@1.2.0': - resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==} - peerDependencies: - react: '>=16.8.0' - - '@emotion/utils@1.4.2': - resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==} - - '@emotion/weak-memoize@0.4.0': - resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} - - '@esbuild/aix-ppc64@0.25.2': - resolution: {integrity: sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/aix-ppc64@0.25.5': - resolution: {integrity: sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.25.2': - resolution: {integrity: sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm64@0.25.5': - resolution: {integrity: sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.25.2': - resolution: {integrity: sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-arm@0.25.5': - resolution: {integrity: sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.25.2': - resolution: {integrity: sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/android-x64@0.25.5': - resolution: {integrity: sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.25.2': - resolution: {integrity: sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.25.5': - resolution: {integrity: sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.25.2': - resolution: {integrity: sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.25.5': - resolution: {integrity: sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.25.2': - resolution: {integrity: sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.25.5': - resolution: {integrity: sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.25.2': - resolution: {integrity: sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.25.5': - resolution: {integrity: sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.25.2': - resolution: {integrity: sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.25.5': - resolution: {integrity: sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.25.2': - resolution: {integrity: sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.25.5': - resolution: {integrity: sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.25.2': - resolution: {integrity: sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.25.5': - resolution: {integrity: sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.25.2': - resolution: {integrity: sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-loong64@0.25.5': - resolution: {integrity: sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.25.2': - resolution: {integrity: sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-mips64el@0.25.5': - resolution: {integrity: sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.25.2': - resolution: {integrity: sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-ppc64@0.25.5': - resolution: {integrity: sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.25.2': - resolution: {integrity: sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-riscv64@0.25.5': - resolution: {integrity: sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.25.2': - resolution: {integrity: sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-s390x@0.25.5': - resolution: {integrity: sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.25.2': - resolution: {integrity: sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - - '@esbuild/linux-x64@0.25.5': - resolution: {integrity: sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-arm64@0.25.2': - resolution: {integrity: sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - - '@esbuild/netbsd-arm64@0.25.5': - resolution: {integrity: sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.25.2': - resolution: {integrity: sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.25.5': - resolution: {integrity: sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-arm64@0.25.2': - resolution: {integrity: sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-arm64@0.25.5': - resolution: {integrity: sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.25.2': - resolution: {integrity: sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.25.5': - resolution: {integrity: sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.25.2': - resolution: {integrity: sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - - '@esbuild/sunos-x64@0.25.5': - resolution: {integrity: sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.25.2': - resolution: {integrity: sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-arm64@0.25.5': - resolution: {integrity: sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.25.2': - resolution: {integrity: sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-ia32@0.25.5': - resolution: {integrity: sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.25.2': - resolution: {integrity: sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - - '@esbuild/win32-x64@0.25.5': - resolution: {integrity: sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - - '@eslint-community/eslint-utils@4.5.1': - resolution: {integrity: sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/eslint-utils@4.7.0': - resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.12.1': - resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@eslint/js@8.57.1': - resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@exodus/schemasafe@1.3.0': - resolution: {integrity: sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==} - - '@fast-csv/format@5.0.2': - resolution: {integrity: sha512-fRYcWvI8vs0Zxa/8fXd/QlmQYWWkJqKZPAXM+vksnplb3owQFKTPPh9JqOtD0L3flQw/AZjjXdPkD7Kp/uHm8g==} - - '@fast-csv/parse@5.0.2': - resolution: {integrity: sha512-gMu1Btmm99TP+wc0tZnlH30E/F1Gw1Tah3oMDBHNPe9W8S68ixVHjt89Wg5lh7d9RuQMtwN+sGl5kxR891+fzw==} - - '@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/dom@1.6.13': - resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} - - '@floating-ui/react-dom@2.1.2': - resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - '@floating-ui/react-dom@2.1.3': - resolution: {integrity: sha512-huMBfiU9UnQ2oBwIhgzyIiSpVgvlDstU8CX0AF+wS+KzmYMs0J2a3GwuFHV1Lz+jlrQGeC1fF+Nv0QoumyV0bA==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - '@floating-ui/react@0.26.28': - resolution: {integrity: sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - '@floating-ui/utils@0.2.9': - resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} - - '@grpc/grpc-js@1.13.4': - resolution: {integrity: sha512-GsFaMXCkMqkKIvwCQjCrwH+GHbPKBjhwo/8ZuUkWHqbI73Kky9I+pQltrlT0+MWpedCoosda53lgjYfyEPgxBg==} - engines: {node: '>=12.10.0'} - - '@grpc/proto-loader@0.7.15': - resolution: {integrity: sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==} - engines: {node: '>=6'} - hasBin: true - - '@humanwhocodes/config-array@0.13.0': - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead - - '@img/sharp-darwin-arm64@0.34.1': - resolution: {integrity: sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [darwin] - - '@img/sharp-darwin-arm64@0.34.3': - resolution: {integrity: sha512-ryFMfvxxpQRsgZJqBd4wsttYQbCxsJksrv9Lw/v798JcQ8+w84mBWuXwl+TT0WJ/WrYOLaYpwQXi3sA9nTIaIg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [darwin] - - '@img/sharp-darwin-x64@0.34.1': - resolution: {integrity: sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [darwin] - - '@img/sharp-darwin-x64@0.34.3': - resolution: {integrity: sha512-yHpJYynROAj12TA6qil58hmPmAwxKKC7reUqtGLzsOHfP7/rniNGTL8tjWX6L3CTV4+5P4ypcS7Pp+7OB+8ihA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [darwin] - - '@img/sharp-libvips-darwin-arm64@1.1.0': - resolution: {integrity: sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==} - cpu: [arm64] - os: [darwin] - - '@img/sharp-libvips-darwin-arm64@1.2.0': - resolution: {integrity: sha512-sBZmpwmxqwlqG9ueWFXtockhsxefaV6O84BMOrhtg/YqbTaRdqDE7hxraVE3y6gVM4eExmfzW4a8el9ArLeEiQ==} - cpu: [arm64] - os: [darwin] - - '@img/sharp-libvips-darwin-x64@1.1.0': - resolution: {integrity: sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==} - cpu: [x64] - os: [darwin] - - '@img/sharp-libvips-darwin-x64@1.2.0': - resolution: {integrity: sha512-M64XVuL94OgiNHa5/m2YvEQI5q2cl9d/wk0qFTDVXcYzi43lxuiFTftMR1tOnFQovVXNZJ5TURSDK2pNe9Yzqg==} - cpu: [x64] - os: [darwin] - - '@img/sharp-libvips-linux-arm64@1.1.0': - resolution: {integrity: sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==} - cpu: [arm64] - os: [linux] - - '@img/sharp-libvips-linux-arm64@1.2.0': - resolution: {integrity: sha512-RXwd0CgG+uPRX5YYrkzKyalt2OJYRiJQ8ED/fi1tq9WQW2jsQIn0tqrlR5l5dr/rjqq6AHAxURhj2DVjyQWSOA==} - cpu: [arm64] - os: [linux] - - '@img/sharp-libvips-linux-arm@1.1.0': - resolution: {integrity: sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==} - cpu: [arm] - os: [linux] - - '@img/sharp-libvips-linux-arm@1.2.0': - resolution: {integrity: sha512-mWd2uWvDtL/nvIzThLq3fr2nnGfyr/XMXlq8ZJ9WMR6PXijHlC3ksp0IpuhK6bougvQrchUAfzRLnbsen0Cqvw==} - cpu: [arm] - os: [linux] - - '@img/sharp-libvips-linux-ppc64@1.1.0': - resolution: {integrity: sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==} - cpu: [ppc64] - os: [linux] - - '@img/sharp-libvips-linux-ppc64@1.2.0': - resolution: {integrity: sha512-Xod/7KaDDHkYu2phxxfeEPXfVXFKx70EAFZ0qyUdOjCcxbjqyJOEUpDe6RIyaunGxT34Anf9ue/wuWOqBW2WcQ==} - cpu: [ppc64] - os: [linux] - - '@img/sharp-libvips-linux-s390x@1.1.0': - resolution: {integrity: sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==} - cpu: [s390x] - os: [linux] - - '@img/sharp-libvips-linux-s390x@1.2.0': - resolution: {integrity: sha512-eMKfzDxLGT8mnmPJTNMcjfO33fLiTDsrMlUVcp6b96ETbnJmd4uvZxVJSKPQfS+odwfVaGifhsB07J1LynFehw==} - cpu: [s390x] - os: [linux] - - '@img/sharp-libvips-linux-x64@1.1.0': - resolution: {integrity: sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==} - cpu: [x64] - os: [linux] - - '@img/sharp-libvips-linux-x64@1.2.0': - resolution: {integrity: sha512-ZW3FPWIc7K1sH9E3nxIGB3y3dZkpJlMnkk7z5tu1nSkBoCgw2nSRTFHI5pB/3CQaJM0pdzMF3paf9ckKMSE9Tg==} - cpu: [x64] - os: [linux] - - '@img/sharp-libvips-linuxmusl-arm64@1.1.0': - resolution: {integrity: sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==} - cpu: [arm64] - os: [linux] - - '@img/sharp-libvips-linuxmusl-arm64@1.2.0': - resolution: {integrity: sha512-UG+LqQJbf5VJ8NWJ5Z3tdIe/HXjuIdo4JeVNADXBFuG7z9zjoegpzzGIyV5zQKi4zaJjnAd2+g2nna8TZvuW9Q==} - cpu: [arm64] - os: [linux] - - '@img/sharp-libvips-linuxmusl-x64@1.1.0': - resolution: {integrity: sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==} - cpu: [x64] - os: [linux] - - '@img/sharp-libvips-linuxmusl-x64@1.2.0': - resolution: {integrity: sha512-SRYOLR7CXPgNze8akZwjoGBoN1ThNZoqpOgfnOxmWsklTGVfJiGJoC/Lod7aNMGA1jSsKWM1+HRX43OP6p9+6Q==} - cpu: [x64] - os: [linux] - - '@img/sharp-linux-arm64@0.34.1': - resolution: {integrity: sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - - '@img/sharp-linux-arm64@0.34.3': - resolution: {integrity: sha512-QdrKe3EvQrqwkDrtuTIjI0bu6YEJHTgEeqdzI3uWJOH6G1O8Nl1iEeVYRGdj1h5I21CqxSvQp1Yv7xeU3ZewbA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - - '@img/sharp-linux-arm@0.34.1': - resolution: {integrity: sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm] - os: [linux] - - '@img/sharp-linux-arm@0.34.3': - resolution: {integrity: sha512-oBK9l+h6KBN0i3dC8rYntLiVfW8D8wH+NPNT3O/WBHeW0OQWCjfWksLUaPidsrDKpJgXp3G3/hkmhptAW0I3+A==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm] - os: [linux] - - '@img/sharp-linux-ppc64@0.34.3': - resolution: {integrity: sha512-GLtbLQMCNC5nxuImPR2+RgrviwKwVql28FWZIW1zWruy6zLgA5/x2ZXk3mxj58X/tszVF69KK0Is83V8YgWhLA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [ppc64] - os: [linux] - - '@img/sharp-linux-s390x@0.34.1': - resolution: {integrity: sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [s390x] - os: [linux] - - '@img/sharp-linux-s390x@0.34.3': - resolution: {integrity: sha512-3gahT+A6c4cdc2edhsLHmIOXMb17ltffJlxR0aC2VPZfwKoTGZec6u5GrFgdR7ciJSsHT27BD3TIuGcuRT0KmQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [s390x] - os: [linux] - - '@img/sharp-linux-x64@0.34.1': - resolution: {integrity: sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - - '@img/sharp-linux-x64@0.34.3': - resolution: {integrity: sha512-8kYso8d806ypnSq3/Ly0QEw90V5ZoHh10yH0HnrzOCr6DKAPI6QVHvwleqMkVQ0m+fc7EH8ah0BB0QPuWY6zJQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - - '@img/sharp-linuxmusl-arm64@0.34.1': - resolution: {integrity: sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - - '@img/sharp-linuxmusl-arm64@0.34.3': - resolution: {integrity: sha512-vAjbHDlr4izEiXM1OTggpCcPg9tn4YriK5vAjowJsHwdBIdx0fYRsURkxLG2RLm9gyBq66gwtWI8Gx0/ov+JKQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - - '@img/sharp-linuxmusl-x64@0.34.1': - resolution: {integrity: sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - - '@img/sharp-linuxmusl-x64@0.34.3': - resolution: {integrity: sha512-gCWUn9547K5bwvOn9l5XGAEjVTTRji4aPTqLzGXHvIr6bIDZKNTA34seMPgM0WmSf+RYBH411VavCejp3PkOeQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - - '@img/sharp-wasm32@0.34.1': - resolution: {integrity: sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [wasm32] - - '@img/sharp-wasm32@0.34.3': - resolution: {integrity: sha512-+CyRcpagHMGteySaWos8IbnXcHgfDn7pO2fiC2slJxvNq9gDipYBN42/RagzctVRKgxATmfqOSulgZv5e1RdMg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [wasm32] - - '@img/sharp-win32-arm64@0.34.3': - resolution: {integrity: sha512-MjnHPnbqMXNC2UgeLJtX4XqoVHHlZNd+nPt1kRPmj63wURegwBhZlApELdtxM2OIZDRv/DFtLcNhVbd1z8GYXQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [win32] - - '@img/sharp-win32-ia32@0.34.1': - resolution: {integrity: sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [ia32] - os: [win32] - - '@img/sharp-win32-ia32@0.34.3': - resolution: {integrity: sha512-xuCdhH44WxuXgOM714hn4amodJMZl3OEvf0GVTm0BEyMeA2to+8HEdRPShH0SLYptJY1uBw+SCFP9WVQi1Q/cw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [ia32] - os: [win32] - - '@img/sharp-win32-x64@0.34.1': - resolution: {integrity: sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [win32] - - '@img/sharp-win32-x64@0.34.3': - resolution: {integrity: sha512-OWwz05d++TxzLEv4VnsTz5CmZ6mI6S05sfQGEMrNrQcOEERbX46332IvE7pO/EUiw7jUrrS40z/M7kPyjfl04g==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [win32] - - '@inquirer/checkbox@4.1.8': - resolution: {integrity: sha512-d/QAsnwuHX2OPolxvYcgSj7A9DO9H6gVOy2DvBTx+P2LH2iRTo/RSGV3iwCzW024nP9hw98KIuDmdyhZQj1UQg==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/confirm@5.1.12': - resolution: {integrity: sha512-dpq+ielV9/bqgXRUbNH//KsY6WEw9DrGPmipkpmgC1Y46cwuBTNx7PXFWTjc3MQ+urcc0QxoVHcMI0FW4Ok0hg==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/confirm@5.1.9': - resolution: {integrity: sha512-NgQCnHqFTjF7Ys2fsqK2WtnA8X1kHyInyG+nMIuHowVTIgIuS10T4AznI/PvbqSpJqjCUqNBlKGh1v3bwLFL4w==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/core@10.1.10': - resolution: {integrity: sha512-roDaKeY1PYY0aCqhRmXihrHjoSW2A00pV3Ke5fTpMCkzcGF64R8e0lw3dK+eLEHwS4vB5RnW1wuQmvzoRul8Mw==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/core@10.1.13': - resolution: {integrity: sha512-1viSxebkYN2nJULlzCxES6G9/stgHSepZ9LqqfdIGPHj5OHhiBUXVS0a6R0bEC2A+VL4D9w6QB66ebCr6HGllA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/editor@4.2.13': - resolution: {integrity: sha512-WbicD9SUQt/K8O5Vyk9iC2ojq5RHoCLK6itpp2fHsWe44VxxcA9z3GTWlvjSTGmMQpZr+lbVmrxdHcumJoLbMA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/expand@4.0.15': - resolution: {integrity: sha512-4Y+pbr/U9Qcvf+N/goHzPEXiHH8680lM3Dr3Y9h9FFw4gHS+zVpbj8LfbKWIb/jayIB4aSO4pWiBTrBYWkvi5A==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/figures@1.0.11': - resolution: {integrity: sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw==} - engines: {node: '>=18'} - - '@inquirer/figures@1.0.12': - resolution: {integrity: sha512-MJttijd8rMFcKJC8NYmprWr6hD3r9Gd9qUC0XwPNwoEPWSMVJwA2MlXxF+nhZZNMY+HXsWa+o7KY2emWYIn0jQ==} - engines: {node: '>=18'} - - '@inquirer/input@4.1.12': - resolution: {integrity: sha512-xJ6PFZpDjC+tC1P8ImGprgcsrzQRsUh9aH3IZixm1lAZFK49UGHxM3ltFfuInN2kPYNfyoPRh+tU4ftsjPLKqQ==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/number@3.0.15': - resolution: {integrity: sha512-xWg+iYfqdhRiM55MvqiTCleHzszpoigUpN5+t1OMcRkJrUrw7va3AzXaxvS+Ak7Gny0j2mFSTv2JJj8sMtbV2g==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/password@4.0.15': - resolution: {integrity: sha512-75CT2p43DGEnfGTaqFpbDC2p2EEMrq0S+IRrf9iJvYreMy5mAWj087+mdKyLHapUEPLjN10mNvABpGbk8Wdraw==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/prompts@7.5.3': - resolution: {integrity: sha512-8YL0WiV7J86hVAxrh3fE5mDCzcTDe1670unmJRz6ArDgN+DBK1a0+rbnNWp4DUB5rPMwqD5ZP6YHl9KK1mbZRg==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/rawlist@4.1.3': - resolution: {integrity: sha512-7XrV//6kwYumNDSsvJIPeAqa8+p7GJh7H5kRuxirct2cgOcSWwwNGoXDRgpNFbY/MG2vQ4ccIWCi8+IXXyFMZA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/search@3.0.15': - resolution: {integrity: sha512-YBMwPxYBrADqyvP4nNItpwkBnGGglAvCLVW8u4pRmmvOsHUtCAUIMbUrLX5B3tFL1/WsLGdQ2HNzkqswMs5Uaw==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/select@4.2.3': - resolution: {integrity: sha512-OAGhXU0Cvh0PhLz9xTF/kx6g6x+sP+PcyTiLvCrewI99P3BBeexD+VbuwkNDvqGkk3y2h5ZiWLeRP7BFlhkUDg==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/type@3.0.6': - resolution: {integrity: sha512-/mKVCtVpyBu3IDarv0G+59KC4stsD5mDsGpYh+GKs1NZT88Jh52+cuoA1AtLk2Q0r/quNl+1cSUyLRHBFeD0XA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/type@3.0.7': - resolution: {integrity: sha512-PfunHQcjwnju84L+ycmcMKB/pTPIngjUJvfnRhKY6FKPuYXlM4aQCb/nIdTFR6BEhMjFvngzvng/vBAJMZpLSA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - - '@isaacs/fs-minipass@4.0.1': - resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} - engines: {node: '>=18.0.0'} - - '@istanbuljs/load-nyc-config@1.1.0': - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - - '@istanbuljs/schema@0.1.3': - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - - '@jest/console@29.7.0': - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/core@29.7.0': - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/environment@29.7.0': - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/expect-utils@29.7.0': - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/expect@29.7.0': - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/fake-timers@29.7.0': - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/globals@29.7.0': - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/reporters@29.7.0': - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/source-map@29.6.3': - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/test-result@29.7.0': - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/test-sequencer@29.7.0': - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/transform@29.7.0': - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jridgewell/gen-mapping@0.3.12': - resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} - - '@jridgewell/gen-mapping@0.3.8': - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/source-map@0.3.10': - resolution: {integrity: sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q==} - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - - '@jridgewell/sourcemap-codec@1.5.4': - resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@jridgewell/trace-mapping@0.3.29': - resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} - - '@js-sdsl/ordered-map@4.4.2': - resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} - - '@juggle/resize-observer@3.4.0': - resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} - - '@lexical/clipboard@0.30.0': - resolution: {integrity: sha512-taWQURtE6xF4Jy4I8teQw3+nVBVNO1r+9N9voXeivgwxSrAM40rjqQ/aZEKxWbwZtfkABDkCEArbVrqP0SkWcQ==} - - '@lexical/code@0.30.0': - resolution: {integrity: sha512-OmA6Bmp3w9SMV25Hae1dLXtPNOdCgnzo1xy84K19U+dPP5iqXagwFq5oY/9PVOOI2wgaQHrz3C+7B4phDb9xaA==} - - '@lexical/devtools-core@0.30.0': - resolution: {integrity: sha512-6vKEEIUym8pQ+tWt4VfRMOGE/dtfyPr9e1zPrAAV7Y/EdzK0AJYPPlw2Dt5Uqq9rposcIriqF4MkuFvy4UcZiQ==} - peerDependencies: - react: '>=17.x' - react-dom: '>=17.x' - - '@lexical/dragon@0.30.0': - resolution: {integrity: sha512-eikVYw1pIcFIOojn2mGlps59YcyT9ATd6UMIx/ivuscakrZeU7SZM/F6c75QPJXNOu1b2koOo+4Bb1GT6jixGQ==} - - '@lexical/hashtag@0.30.0': - resolution: {integrity: sha512-gB3DobSdAc0YZUhlTT7ZAUr+6RRREQ3UWVC1twdtFvXXw1vyTUXH2gWTDp/ParwBZ16Lnrg8mxET8Nu/qD1PSw==} - - '@lexical/headless@0.30.0': - resolution: {integrity: sha512-E+xC3GANIBgVqAuWdx//La8pmXDeiTINOVZNsHFljOfIXlrc+4MiSyWQRO1ZB0NGplTDQ78Kjlv6jatrD0XbGA==} - - '@lexical/history@0.30.0': - resolution: {integrity: sha512-dxudthi94vSLQKXVq3LSwcOVkOmb2lvxoy7sCma513yJbrsn3fPLppR2Ynhl6aB9oPw675wSDrfsE6BG3U3+CA==} - - '@lexical/html@0.30.0': - resolution: {integrity: sha512-GdegWO6RjJ7eE+yD3Z0X/OpT88SZjOs3DyQ0rgrZy3z7RPaFCbEEcq0M/NssJbKAB1XOFUsUFrnS7kZs1vJzGg==} - - '@lexical/link@0.30.0': - resolution: {integrity: sha512-isD3PC0ywQIwbtekHYEvh7hDxcPz/cEr/AspYntYs08u5J0czhw3rpqnXWGauWaav5V9ExIkf1ZkGUFUI6bw5w==} - - '@lexical/list@0.30.0': - resolution: {integrity: sha512-WKnwH+Cg+j2I0EbaEyPHo8MPNyrqQV3W1NmH5Mf/iRxCq42z7NJxemhmRUxbqv8vsugACwBkh2RlkhekRXmUQQ==} - - '@lexical/mark@0.30.0': - resolution: {integrity: sha512-dLFH6tJ2WQUSdo1Y2Jp81vRT8j48FjF75K5YLRsKD/UFxWEy+RFgRXsd0H/BuFkx/jPTXt6xe8CaIrZvek8mLg==} - - '@lexical/markdown@0.30.0': - resolution: {integrity: sha512-GGddZs63k0wb3/fdL7JyBjiy8L1AIHuRKT68riWbKAcNL7rfMl3Uy5VnMkgV/5bN/2eUQijkGjxG+VxsR8RWbw==} - - '@lexical/offset@0.30.0': - resolution: {integrity: sha512-sZFbZt5dVdtrdoYk79i13xBDs8/MHXw6CqmZNht85L7UdwiuzVqA3KTyaMe60Vrg6mfsKIVjghbpMOhspcuCrw==} - - '@lexical/overflow@0.30.0': - resolution: {integrity: sha512-fvjWnhtPZLMS3qJ6HC6tZTOMmcfNmeRUkgXTas9bvWT8Yul+WLJ/fWjzwvBcqpKlvPQjRFOcDcrW8T/Rp7KPrg==} - - '@lexical/plain-text@0.30.0': - resolution: {integrity: sha512-jvxMMxFO3Yuj7evWsc33IGWfigU5A1KrJaIf6zv6GmYj0a7ZRkR1x6vJyc7AlgUM70sld+dozLdoynguQIlmrQ==} - - '@lexical/react@0.30.0': - resolution: {integrity: sha512-fsb6voXzxHyP55lXdmnGhHMfxe6g/f+0NpmfPCkutOXYnY8UqKa86LLYl4Nrsi8HX8BRZfh1H0IjkzDG6EzVPw==} - peerDependencies: - react: '>=17.x' - react-dom: '>=17.x' - - '@lexical/rich-text@0.30.0': - resolution: {integrity: sha512-oitOh5u68E5DBZt5VBZIaIeM/iNdt3mIDkGp2C259x81V/9KlSNB9c3rqdTKcs/A+Msw4j60FRhdmZcKQ9uYUA==} - - '@lexical/selection@0.30.0': - resolution: {integrity: sha512-Ys2XfSmIV/Irg6Xo663YtR4jozIv/7sDemArkEGHT0fxZn2py5qftowPF5IBqFYxKTigAdv5vVPwusBvAnLIEg==} - - '@lexical/table@0.30.0': - resolution: {integrity: sha512-XPCIMIGnZLKTa5/4cP16bXbmzvMndPR273HNl7ZaF35ky7UjZxdj42HBbE7q9zw2zbRPDiO77EyhYA0p20cbdw==} - - '@lexical/text@0.30.0': - resolution: {integrity: sha512-P0ptriFwwP/hoDpz/MoBbzHxrFHqh0kCGzASWUdRZ1zrU0yPvJ9vV/UNMhyolH7xx+eAGI1Yl+m74NlpGmXqTg==} - - '@lexical/utils@0.30.0': - resolution: {integrity: sha512-VJlAUhupCZmnbYYX3zMWovd4viu2guR01sAqKGbbOMbP+4rlaymixFbinvNPaRKDBloOARi+fpiveQFxnyr/Ew==} - - '@lexical/yjs@0.30.0': - resolution: {integrity: sha512-mWGFAGpUPz4JoSV+Y0cZOzOZJoMLbVb/enldxEbV0xX71BBVzD0c0vjPxuaIJ9MtNkRZdK3eOubj+B45iOECtw==} - peerDependencies: - yjs: '>=13.5.22' - - '@loaders.gl/core@4.3.4': - resolution: {integrity: sha512-cG0C5fMZ1jyW6WCsf4LoHGvaIAJCEVA/ioqKoYRwoSfXkOf+17KupK1OUQyUCw5XoRn+oWA1FulJQOYlXnb9Gw==} - - '@loaders.gl/draco@4.3.4': - resolution: {integrity: sha512-4Lx0rKmYENGspvcgV5XDpFD9o+NamXoazSSl9Oa3pjVVjo+HJuzCgrxTQYD/3JvRrolW/QRehZeWD/L/cEC6mw==} - peerDependencies: - '@loaders.gl/core': ^4.3.0 - - '@loaders.gl/gltf@4.3.4': - resolution: {integrity: sha512-EiUTiLGMfukLd9W98wMpKmw+hVRhQ0dJ37wdlXK98XPeGGB+zTQxCcQY+/BaMhsSpYt/OOJleHhTfwNr8RgzRg==} - peerDependencies: - '@loaders.gl/core': ^4.3.0 - - '@loaders.gl/images@4.3.4': - resolution: {integrity: sha512-qgc33BaNsqN9cWa/xvcGvQ50wGDONgQQdzHCKDDKhV2w/uptZoR5iofJfuG8UUV2vUMMd82Uk9zbopRx2rS4Ag==} - peerDependencies: - '@loaders.gl/core': ^4.3.0 - - '@loaders.gl/loader-utils@4.3.4': - resolution: {integrity: sha512-tjMZvlKQSaMl2qmYTAxg+ySR6zd6hQn5n3XaU8+Ehp90TD3WzxvDKOMNDqOa72fFmIV+KgPhcmIJTpq4lAdC4Q==} - peerDependencies: - '@loaders.gl/core': ^4.3.0 - - '@loaders.gl/schema@4.3.4': - resolution: {integrity: sha512-1YTYoatgzr/6JTxqBLwDiD3AVGwQZheYiQwAimWdRBVB0JAzych7s1yBuE0CVEzj4JDPKOzVAz8KnU1TiBvJGw==} - peerDependencies: - '@loaders.gl/core': ^4.3.0 - - '@loaders.gl/textures@4.3.4': - resolution: {integrity: sha512-arWIDjlE7JaDS6v9by7juLfxPGGnjT9JjleaXx3wq/PTp+psLOpGUywHXm38BNECos3MFEQK3/GFShWI+/dWPw==} - peerDependencies: - '@loaders.gl/core': ^4.3.0 - - '@loaders.gl/worker-utils@4.3.4': - resolution: {integrity: sha512-EbsszrASgT85GH3B7jkx7YXfQyIYo/rlobwMx6V3ewETapPUwdSAInv+89flnk5n2eu2Lpdeh+2zS6PvqbL2RA==} - peerDependencies: - '@loaders.gl/core': ^4.3.0 - - '@mantine/code-highlight@7.17.4': - resolution: {integrity: sha512-Ewi4X/4a5Lbty7MmOg5OTOv7QexxuVA5dwUZ79zWEvqB3e/AHzGK//5Nb92x78FvmuEZ9M0rK5eRtWTT/+4zeA==} - peerDependencies: - '@mantine/core': 7.17.4 - '@mantine/hooks': 7.17.4 - react: ^18.x || ^19.x - react-dom: ^18.x || ^19.x - - '@mantine/core@7.17.4': - resolution: {integrity: sha512-Ea4M/98jxgIWCuxCdM0YIotVYjfLTGQsfIA6zDg0LsClgjo/ZLnnh4zbi+bLNgM+GGjP4ju7gv4MZvaTKuLO8g==} - peerDependencies: - '@mantine/hooks': 7.17.4 - react: ^18.x || ^19.x - react-dom: ^18.x || ^19.x - - '@mantine/hooks@7.17.4': - resolution: {integrity: sha512-PBcJxDAfGm8k1/JJmaDcxzRVQ3JSE1iXGktbgGz+qEOJmCxwbbAYe+CtGFFgi1xX2bPZ+7dtRr/+XFhnKtt/aw==} - peerDependencies: - react: ^18.x || ^19.x - - '@mapbox/geojson-rewind@0.5.2': - resolution: {integrity: sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==} - hasBin: true - - '@mapbox/geojson-types@1.0.2': - resolution: {integrity: sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==} - - '@mapbox/jsonlint-lines-primitives@2.0.2': - resolution: {integrity: sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==} - engines: {node: '>= 0.6'} - - '@mapbox/mapbox-gl-supported@1.5.0': - resolution: {integrity: sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==} - peerDependencies: - mapbox-gl: '>=0.32.1 <2.0.0' - - '@mapbox/point-geometry@0.1.0': - resolution: {integrity: sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==} - - '@mapbox/tiny-sdf@1.2.5': - resolution: {integrity: sha512-cD8A/zJlm6fdJOk6DqPUV8mcpyJkRz2x2R+/fYcWDYG3oWbG7/L7Yl/WqQ1VZCjnL9OTIMAn6c+BC5Eru4sQEw==} - - '@mapbox/tiny-sdf@2.0.6': - resolution: {integrity: sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA==} - - '@mapbox/unitbezier@0.0.0': - resolution: {integrity: sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==} - - '@mapbox/unitbezier@0.0.1': - resolution: {integrity: sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==} - - '@mapbox/vector-tile@1.3.1': - resolution: {integrity: sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==} - - '@mapbox/whoots-js@3.1.0': - resolution: {integrity: sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==} - engines: {node: '>=6.0.0'} - - '@maplibre/maplibre-gl-style-spec@20.4.0': - resolution: {integrity: sha512-AzBy3095fTFPjDjmWpR2w6HVRAZJ6hQZUCwk5Plz6EyfnfuQW1odeW5i2Ai47Y6TBA2hQnC+azscjBSALpaWgw==} - hasBin: true - - '@math.gl/core@4.1.0': - resolution: {integrity: sha512-FrdHBCVG3QdrworwrUSzXIaK+/9OCRLscxI2OUy6sLOHyHgBMyfnEGs99/m3KNvs+95BsnQLWklVfpKfQzfwKA==} - - '@math.gl/types@4.1.0': - resolution: {integrity: sha512-clYZdHcmRvMzVK5fjeDkQlHUzXQSNdZ7s4xOqC3nJPgz4C/TZkUecTo9YS4PruZqtDda/ag4erndP0MIn40dGA==} - - '@mediapipe/tasks-vision@0.10.17': - resolution: {integrity: sha512-CZWV/q6TTe8ta61cZXjfnnHsfWIdFhms03M9T7Cnd5y2mdpylJM0rF1qRq+wsQVRMLz1OYPVEBU9ph2Bx8cxrg==} - - '@monogrid/gainmap-js@3.1.0': - resolution: {integrity: sha512-Obb0/gEd/HReTlg8ttaYk+0m62gQJmCblMOjHSMHRrBP2zdfKMHLCRbh/6ex9fSUJMKdjjIEiohwkbGD3wj2Nw==} - peerDependencies: - three: '>= 0.159.0' - - '@mswjs/interceptors@0.37.6': - resolution: {integrity: sha512-wK+5pLK5XFmgtH3aQ2YVvA3HohS3xqV/OxuVOdNx9Wpnz7VE/fnC+e1A7ln6LFYeck7gOJ/dsZV6OLplOtAJ2w==} - engines: {node: '>=18'} - - '@napi-rs/wasm-runtime@0.2.11': - resolution: {integrity: sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==} - - '@napi-rs/wasm-runtime@0.2.8': - resolution: {integrity: sha512-OBlgKdX7gin7OIq4fadsjpg+cp2ZphvAIKucHsNfTdJiqdOmOEwQd/bHi0VwNrcw5xpBJyUw6cK/QilCqy1BSg==} - - '@next/bundle-analyzer@15.4.1': - resolution: {integrity: sha512-O5R3iPLR3/oQWFIXl+Mnd02IyhvWBterTlXcceIGw29QHWL/gjvyO0eIVEvrJPS7zzE6/NSu1TiSVgi8mxotlw==} - - '@next/env@15.4.1': - resolution: {integrity: sha512-DXQwFGAE2VH+f2TJsKepRXpODPU+scf5fDbKOME8MMyeyswe4XwgRdiiIYmBfkXU+2ssliLYznajTrOQdnLR5A==} - - '@next/eslint-plugin-next@15.2.4': - resolution: {integrity: sha512-O8ScvKtnxkp8kL9TpJTTKnMqlkZnS+QxwoQnJwPGBxjBbzd6OVVPEJ5/pMNrktSyXQD/chEfzfFzYLM6JANOOQ==} - - '@next/swc-darwin-arm64@15.4.1': - resolution: {integrity: sha512-L+81yMsiHq82VRXS2RVq6OgDwjvA4kDksGU8hfiDHEXP+ncKIUhUsadAVB+MRIp2FErs/5hpXR0u2eluWPAhig==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - - '@next/swc-darwin-x64@15.4.1': - resolution: {integrity: sha512-jfz1RXu6SzL14lFl05/MNkcN35lTLMJWPbqt7Xaj35+ZWAX342aePIJrN6xBdGeKl6jPXJm0Yqo3Xvh3Gpo3Uw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - - '@next/swc-linux-arm64-gnu@15.4.1': - resolution: {integrity: sha512-k0tOFn3dsnkaGfs6iQz8Ms6f1CyQe4GacXF979sL8PNQxjYS1swx9VsOyUQYaPoGV8nAZ7OX8cYaeiXGq9ahPQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@next/swc-linux-arm64-musl@15.4.1': - resolution: {integrity: sha512-4ogGQ/3qDzbbK3IwV88ltihHFbQVq6Qr+uEapzXHXBH1KsVBZOB50sn6BWHPcFjwSoMX2Tj9eH/fZvQnSIgc3g==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@next/swc-linux-x64-gnu@15.4.1': - resolution: {integrity: sha512-Jj0Rfw3wIgp+eahMz/tOGwlcYYEFjlBPKU7NqoOkTX0LY45i5W0WcDpgiDWSLrN8KFQq/LW7fZq46gxGCiOYlQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@next/swc-linux-x64-musl@15.4.1': - resolution: {integrity: sha512-9WlEZfnw1vFqkWsTMzZDgNL7AUI1aiBHi0S2m8jvycPyCq/fbZjtE/nDkhJRYbSjXbtRHYLDBlmP95kpjEmJbw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@next/swc-win32-arm64-msvc@15.4.1': - resolution: {integrity: sha512-WodRbZ9g6CQLRZsG3gtrA9w7Qfa9BwDzhFVdlI6sV0OCPq9JrOrJSp9/ioLsezbV8w9RCJ8v55uzJuJ5RgWLZg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - - '@next/swc-win32-x64-msvc@15.4.1': - resolution: {integrity: sha512-y+wTBxelk2xiNofmDOVU7O5WxTHcvOoL3srOM0kxTzKDjQ57kPU0tpnPJ/BWrRnsOwXEv0+3QSbGR7hY4n9LkQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@nolyfill/is-core-module@1.0.39': - resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} - engines: {node: '>=12.4.0'} - - '@oclif/core@4.4.0': - resolution: {integrity: sha512-wH5g3SLmbRutnr7UzQBSozRFEAZ7U9YGB/wFuBRr0ZghTgv5DE+KQaf6ZtU7iFb9pvkvoVRnT5XheNAtbjRDaQ==} - engines: {node: '>=18.0.0'} - - '@oclif/plugin-help@6.2.29': - resolution: {integrity: sha512-90DMOngEHiQw1I7oylVE1Hco991OkeDFJMx3CNJ2M3g5F1dhXgscjbaIlYHdiuNyVs0mTkKevdiMs911suD4yA==} - engines: {node: '>=18.0.0'} - - '@octokit/auth-token@4.0.0': - resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} - engines: {node: '>= 18'} - - '@octokit/core@5.2.1': - resolution: {integrity: sha512-dKYCMuPO1bmrpuogcjQ8z7ICCH3FP6WmxpwC03yjzGfZhj9fTJg6+bS1+UAplekbN2C+M61UNllGOOoAfGCrdQ==} - engines: {node: '>= 18'} - - '@octokit/endpoint@9.0.6': - resolution: {integrity: sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==} - engines: {node: '>= 18'} - - '@octokit/graphql@7.1.1': - resolution: {integrity: sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==} - engines: {node: '>= 18'} - - '@octokit/openapi-types@20.0.0': - resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==} - - '@octokit/openapi-types@24.2.0': - resolution: {integrity: sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==} - - '@octokit/plugin-paginate-rest@9.2.2': - resolution: {integrity: sha512-u3KYkGF7GcZnSD/3UP0S7K5XUFT2FkOQdcfXZGZQPGv3lm4F2Xbf71lvjldr8c1H3nNbF+33cLEkWYbokGWqiQ==} - engines: {node: '>= 18'} - peerDependencies: - '@octokit/core': '5' - - '@octokit/plugin-rest-endpoint-methods@10.4.1': - resolution: {integrity: sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==} - engines: {node: '>= 18'} - peerDependencies: - '@octokit/core': '5' - - '@octokit/request-error@5.1.1': - resolution: {integrity: sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==} - engines: {node: '>= 18'} - - '@octokit/request@8.4.1': - resolution: {integrity: sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==} - engines: {node: '>= 18'} - - '@octokit/types@12.6.0': - resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==} - - '@octokit/types@13.10.0': - resolution: {integrity: sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==} - - '@open-draft/deferred-promise@2.2.0': - resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} - - '@open-draft/logger@0.3.0': - resolution: {integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==} - - '@open-draft/until@2.1.0': - resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} - - '@opentelemetry/api-logs@0.205.0': - resolution: {integrity: sha512-wBlPk1nFB37Hsm+3Qy73yQSobVn28F4isnWIBvKpd5IUH/eat8bwcL02H9yzmHyyPmukeccSl2mbN5sDQZYnPg==} - engines: {node: '>=8.0.0'} - - '@opentelemetry/api-logs@0.57.2': - resolution: {integrity: sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==} - engines: {node: '>=14'} - - '@opentelemetry/api@1.9.0': - resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} - engines: {node: '>=8.0.0'} - - '@opentelemetry/auto-instrumentations-node@0.64.1': - resolution: {integrity: sha512-V893tqyTsCD0zYsHjJXUor/x1M7VxmPr5j8Tga7EYVXfxubVrrPwqKk37ygtVRp2oDnQp+P/D7LGP+AP6eCblw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.4.1 - '@opentelemetry/core': ^2.0.0 - - '@opentelemetry/context-async-hooks@1.30.1': - resolution: {integrity: sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/context-async-hooks@2.1.0': - resolution: {integrity: sha512-zOyetmZppnwTyPrt4S7jMfXiSX9yyfF0hxlA8B5oo2TtKl+/RGCy7fi4DrBfIf3lCPrkKsRBWZZD7RFojK7FDg==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/core@1.30.1': - resolution: {integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/core@2.1.0': - resolution: {integrity: sha512-RMEtHsxJs/GiHHxYT58IY57UXAQTuUnZVco6ymDEqTNlJKTimM4qPUPVe8InNFyBjhHBEAx4k3Q8LtNayBsbUQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/exporter-logs-otlp-grpc@0.205.0': - resolution: {integrity: sha512-jQlw7OHbqZ8zPt+pOrW2KGN7T55P50e3NXBMr4ckPOF+DWDwSy4W7mkG09GpYWlQAQ5C9BXg5gfUlv5ldTgWsw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/exporter-logs-otlp-http@0.205.0': - resolution: {integrity: sha512-5JteMyVWiro4ghF0tHQjfE6OJcF7UBUcoEqX3UIQ5jutKP1H+fxFdyhqjjpmeHMFxzOHaYuLlNR1Bn7FOjGyJg==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/exporter-logs-otlp-proto@0.205.0': - resolution: {integrity: sha512-q3VS9wS+lpZ01txKxiDGBtBpTNge3YhbVEFDgem9ZQR9eI3EZ68+9tVZH9zJcSxI37nZPJ6lEEZO58yEjYZsVA==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/exporter-metrics-otlp-grpc@0.205.0': - resolution: {integrity: sha512-1Vxlo4lUwqSKYX+phFkXHKYR3DolFHxCku6lVMP1H8sVE3oj4wwmwxMzDsJ7zF+sXd8M0FCr+ckK4SnNNKkV+w==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/exporter-metrics-otlp-http@0.205.0': - resolution: {integrity: sha512-fFxNQ/HbbpLmh1pgU6HUVbFD1kNIjrkoluoKJkh88+gnmpFD92kMQ8WFNjPnSbjg2mNVnEkeKXgCYEowNW+p1w==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/exporter-metrics-otlp-proto@0.205.0': - resolution: {integrity: sha512-qIbNnedw9QfFjwpx4NQvdgjK3j3R2kWH/2T+7WXAm1IfMFe9fwatYxE61i7li4CIJKf8HgUC3GS8Du0C3D+AuQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/exporter-prometheus@0.205.0': - resolution: {integrity: sha512-xsot/Qm9VLDTag4GEwAunD1XR1U8eBHTLAgO7IZNo2JuD/c/vL7xmDP7mQIUr6Lk3gtj/yGGIR2h3vhTeVzv4w==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/exporter-trace-otlp-grpc@0.205.0': - resolution: {integrity: sha512-ZBksUk84CcQOuDJB65yu5A4PORkC4qEsskNwCrPZxDLeWjPOFZNSWt0E0jQxKCY8PskLhjNXJYo12YaqsYvGFA==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/exporter-trace-otlp-http@0.205.0': - resolution: {integrity: sha512-vr2bwwPCSc9u7rbKc74jR+DXFvyMFQo9o5zs+H/fgbK672Whw/1izUKVf+xfWOdJOvuwTnfWxy+VAY+4TSo74Q==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/exporter-trace-otlp-proto@0.205.0': - resolution: {integrity: sha512-bGtFzqiENO2GpJk988mOBMe0MfeNpTQjbLm/LBijas6VRyEDQarUzdBHpFlu89A25k1+BCntdWGsWTa9Ai4FyA==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/exporter-zipkin@2.1.0': - resolution: {integrity: sha512-0mEI0VDZrrX9t5RE1FhAyGz+jAGt96HSuXu73leswtY3L5YZD11gtcpARY2KAx/s6Z2+rj5Mhj566JsI2C7mfA==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - - '@opentelemetry/instrumentation-amqplib@0.46.1': - resolution: {integrity: sha512-AyXVnlCf/xV3K/rNumzKxZqsULyITJH6OVLiW6730JPRqWA7Zc9bvYoVNpN6iOpTU8CasH34SU/ksVJmObFibQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-amqplib@0.52.0': - resolution: {integrity: sha512-G8RnaoDxfwYe6uXC7erNGzYJi0gY/xMSu+fPthQr9Won8+/ot9kqt48WQCk9OA2uiV67lSPs5hiDKKBBOcvJCA==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-aws-lambda@0.56.0': - resolution: {integrity: sha512-QS3rhpdcuHzGQB84Qfy8cV75rP9R3vZ8lcUiRkRh+Uu3/+QnaXET1eOi9kS8Jc5I3uoLEz6L/A61I7lUXZ+U4A==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-aws-sdk@0.60.0': - resolution: {integrity: sha512-TX5tSQpSNO1um0xyQBmTIDqd4ANh/rOXJCZWHkKEKStfZH3vTxfunkTOCSWdzIcCfft+PaEJcLFjCivr34/6pQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-bunyan@0.51.0': - resolution: {integrity: sha512-N84VeifmawRyTrGkIhHRzzpHyaWkbD8fnVHg4LpbbFW1nQJcQphDE62kvuqKrzezIUbaYeS7Ue+tHV2WveTe9w==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-cassandra-driver@0.51.0': - resolution: {integrity: sha512-Qy8SmLCqXPzP3vMRcwWYtpAnOdhdU1WhAnvGoS8JMNvn48sush42CjJIYkQmsgpz676WDkrppCQ4V5T0nD5z4A==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-connect@0.43.1': - resolution: {integrity: sha512-ht7YGWQuV5BopMcw5Q2hXn3I8eG8TH0J/kc/GMcW4CuNTgiP6wCu44BOnucJWL3CmFWaRHI//vWyAhaC8BwePw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-connect@0.49.0': - resolution: {integrity: sha512-mcGcz9w9gtJuNM3ErxBiwsVSgFkPu97Guxt16cxaZZKQkm+6he5qtQbUfLsmEj5tgaF0c3K4jvXhRQsusNilSQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-cucumber@0.21.0': - resolution: {integrity: sha512-a9v73VpANHK5MiiK2TxhDHVYPbbSofuKAhiE+3EUyTinz7KkLzUS4zk7sKip4yWzu04HmJ5N2S4Ke85dXpgK1g==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - - '@opentelemetry/instrumentation-dataloader@0.16.1': - resolution: {integrity: sha512-K/qU4CjnzOpNkkKO4DfCLSQshejRNAJtd4esgigo/50nxCB6XCyi1dhAblUHM9jG5dRm8eu0FB+t87nIo99LYQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-dataloader@0.23.0': - resolution: {integrity: sha512-HLPl6/kCcHMoMjVHy+nqBZa2ODSUdSRHOG63+ZRRn5JAeFLj74U/gZ93qNzip1nVSWYaPRxclSfDb44E2PH72w==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-dns@0.49.0': - resolution: {integrity: sha512-DWVfSI5oH1X9sh4bMJd4HOWQ+UCqHLp76s8X8dw8+TPP10jI8Ca9oyoCjNPxS4GMpFFDYtCLlFgsPq7LfTcN2A==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-express@0.47.1': - resolution: {integrity: sha512-QNXPTWteDclR2B4pDFpz0TNghgB33UMjUt14B+BZPmtH1MwUFAfLHBaP5If0Z5NZC+jaH8oF2glgYjrmhZWmSw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-express@0.54.0': - resolution: {integrity: sha512-Bar+y7h4qs9MSrU8ItaOAMOYmXVC0xCh5RCBDqaPsMeBmWMc2IUD3l0R6Ts+qL5extJCbboD7JKcQPXHPbMOGw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-fastify@0.44.2': - resolution: {integrity: sha512-arSp97Y4D2NWogoXRb8CzFK3W2ooVdvqRRtQDljFt9uC3zI6OuShgey6CVFC0JxT1iGjkAr1r4PDz23mWrFULQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-fastify@0.50.0': - resolution: {integrity: sha512-j30yphIxdt6Wm8dgUoRORSORxlcFX2IxCLV6QZ9G5HtvvMIEP0hA0UnhJ3CDrDHKJRSHCiW8E8piOSbtU+0MLA==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-fs@0.19.1': - resolution: {integrity: sha512-6g0FhB3B9UobAR60BGTcXg4IHZ6aaYJzp0Ki5FhnxyAPt8Ns+9SSvgcrnsN2eGmk3RWG5vYycUGOEApycQL24A==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-fs@0.25.0': - resolution: {integrity: sha512-U19QQ4WfbAjty1grQQoMFrhB0HIsAQktu41nN50E+T2defjz4OC2IvNwfAJFWT7gGzFA23daxzOS7+DumZOVMg==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-generic-pool@0.43.1': - resolution: {integrity: sha512-M6qGYsp1cURtvVLGDrPPZemMFEbuMmCXgQYTReC/IbimV5sGrLBjB+/hANUpRZjX67nGLdKSVLZuQQAiNz+sww==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-generic-pool@0.49.0': - resolution: {integrity: sha512-HwZmSNb7gjbWBXST/+elp8CnOZ5tvT1pOFr4GjnWpCdpx31lHhEA8cLhkao+hozqg+uMl1/nmTXR78vnIbG+8g==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-graphql@0.47.1': - resolution: {integrity: sha512-EGQRWMGqwiuVma8ZLAZnExQ7sBvbOx0N/AE/nlafISPs8S+QtXX+Viy6dcQwVWwYHQPAcuY3bFt3xgoAwb4ZNQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-graphql@0.53.0': - resolution: {integrity: sha512-yVYgGlkfwOlBTqOm4YI9oHw0sWB18CpYMbxan2UMo7UAgm6JQ6ikur0c2T1ALp2jnkXv0XnR1PkYBGmGYUjG8A==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-grpc@0.205.0': - resolution: {integrity: sha512-IB5eKpb/7/x+tyWUVIIyY5KcAtODy/YbcDKPdnlJl8sMCFPByjNxti/lzOfPajYBPOXsN91g7H7cN0L1aSlerQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-hapi@0.45.2': - resolution: {integrity: sha512-7Ehow/7Wp3aoyCrZwQpU7a2CnoMq0XhIcioFuKjBb0PLYfBfmTsFTUyatlHu0fRxhwcRsSQRTvEhmZu8CppBpQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-hapi@0.52.0': - resolution: {integrity: sha512-Hd39MAnYC+PrlWLpAwmkcZJE9l2g6Tie3Flg6gcHTEfs3WFJZb5WmfagDTKDujLwTMwc+setqjDJm/EOJyGXig==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-http@0.205.0': - resolution: {integrity: sha512-6fOgRlV7ypBuEzCQP7vXkLQxz3UL1FhE24rAlMRbwGvPAnZLvutcG/fq9FI/n+VU23dOpYexocYsXCf5oy/AXw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-http@0.57.2': - resolution: {integrity: sha512-1Uz5iJ9ZAlFOiPuwYg29Bf7bJJc/GeoeJIFKJYQf67nTVKFe8RHbEtxgkOmK4UGZNHKXcpW4P8cWBYzBn1USpg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-ioredis@0.47.1': - resolution: {integrity: sha512-OtFGSN+kgk/aoKgdkKQnBsQFDiG8WdCxu+UrHr0bXScdAmtSzLSraLo7wFIb25RVHfRWvzI5kZomqJYEg/l1iA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-ioredis@0.53.0': - resolution: {integrity: sha512-Ah2wU347vOJYbE563Tgm3UX2J3DAXoI8gsr8qH0OOO4uDuEv3kVS/eDCfXApt11bvvDDPlOoc60/TGn6m9IoPw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-kafkajs@0.15.0': - resolution: {integrity: sha512-bfMRg8ICe8ICZgP8Nezy8xxov/uBQ7518r2h7puwKUZeEqga+5F+hKVL9to0aVlPWTAiHgEjdOAdP1D5eRzvuw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-kafkajs@0.7.1': - resolution: {integrity: sha512-OtjaKs8H7oysfErajdYr1yuWSjMAectT7Dwr+axIoZqT9lmEOkD/H/3rgAs8h/NIuEi2imSXD+vL4MZtOuJfqQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-knex@0.44.1': - resolution: {integrity: sha512-U4dQxkNhvPexffjEmGwCq68FuftFK15JgUF05y/HlK3M6W/G2iEaACIfXdSnwVNe9Qh0sPfw8LbOPxrWzGWGMQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-knex@0.50.0': - resolution: {integrity: sha512-kuQaU0BLMF1alpRS8pR7j2hA38h9M2c09EijfhVwhm63zzQoT34RLOB37maLepx9nY3EJo4ohZUHTnNmHE10ZQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-koa@0.47.1': - resolution: {integrity: sha512-l/c+Z9F86cOiPJUllUCt09v+kICKvT+Vg1vOAJHtHPsJIzurGayucfCMq2acd/A/yxeNWunl9d9eqZ0G+XiI6A==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-koa@0.53.0': - resolution: {integrity: sha512-aZbivQx+IXZpqkMWWH8RlZNVsaJnPExYfGiUdzOtjwPLQqXVV1SN4gzzPC0kL1r6BVK6NKwUSQI6jznV81i8aQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-lru-memoizer@0.44.1': - resolution: {integrity: sha512-5MPkYCvG2yw7WONEjYj5lr5JFehTobW7wX+ZUFy81oF2lr9IPfZk9qO+FTaM0bGEiymwfLwKe6jE15nHn1nmHg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-lru-memoizer@0.50.0': - resolution: {integrity: sha512-2mI3Yv7vzlNU1LURY1Jp3lgzICqKWeyeNEljGN2PUuOXwAoWviQwmFzTI5FoSnbWflANUvKGL1j0NH3KjagjdA==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-memcached@0.49.0': - resolution: {integrity: sha512-TyurQ0NqbeV1Y12Cw72rXKikSkeeGVPNwCCRkA4Y60k0asVD3MCfnFs6Kpy1sZWMvqkSelLJbjuGh0yLJ3GN3A==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-mongodb@0.52.0': - resolution: {integrity: sha512-1xmAqOtRUQGR7QfJFfGV/M2kC7wmI2WgZdpru8hJl3S0r4hW0n3OQpEHlSGXJAaNFyvT+ilnwkT+g5L4ljHR6g==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-mongodb@0.58.0': - resolution: {integrity: sha512-h6vrdfCE7qhflgZV41l7vAXUzvbt0ukuHrJ/9ByfNEWiCkNd7tW4FRKdJilWYzr6Nr69ddzMq6vtVFN0WUABUw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-mongoose@0.46.1': - resolution: {integrity: sha512-3kINtW1LUTPkiXFRSSBmva1SXzS/72we/jL22N+BnF3DFcoewkdkHPYOIdAAk9gSicJ4d5Ojtt1/HeibEc5OQg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-mongoose@0.52.0': - resolution: {integrity: sha512-qdpq/hZO353UpD5FxmBowpuI+HinPEOmi7feQzX9GO1PCTmlGGzaeQ8xwUX1eA0OKg0YDrKuiWsFxlLoOXsocw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-mysql2@0.45.2': - resolution: {integrity: sha512-h6Ad60FjCYdJZ5DTz1Lk2VmQsShiViKe0G7sYikb0GHI0NVvApp2XQNRHNjEMz87roFttGPLHOYVPlfy+yVIhQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-mysql2@0.52.0': - resolution: {integrity: sha512-+yuck72xsX8QE0B4IJpLzmGiAz8yeLHfVHBkTOR3GKfLz4D88AUx7O3QJW/uqkQQSDQOJybRRazOZfhC1Bkz3A==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-mysql@0.45.1': - resolution: {integrity: sha512-TKp4hQ8iKQsY7vnp/j0yJJ4ZsP109Ht6l4RHTj0lNEG1TfgTrIH5vJMbgmoYXWzNHAqBH2e7fncN12p3BP8LFg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-mysql@0.51.0': - resolution: {integrity: sha512-WBCG18gMo7rNem5CZ3uXpnfbdN6PLMg2ioikL7G/cHNzjbcvGGuf/x6vBNMdmOUqLSIeVgEtnbniCo/GOrWcgw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-nestjs-core@0.51.0': - resolution: {integrity: sha512-Se/m4887W94OO12pjKMjI3398L7HCoWeCjcbwoPvNOWpSpMkljBOHA9vE/fyo63CaVG1XAM5xA4ad60wmJKl9A==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-net@0.49.0': - resolution: {integrity: sha512-XmpRZa1uRlZ2qff0LYzALkBmzJsEJyaDKEw50C0MDrawg/p5z1/TOMwMIKPG2g1EgAW56+dl/WD8p70XyW08Qg==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-oracledb@0.31.0': - resolution: {integrity: sha512-CqjWWL1CEYR1ryBN6fCGWNhUS4rS+zNMLE/gYbpwJqH07QA6/Jt4ThbiOPujcq/PEQK3KuqoXeoGDCiI3YWMcQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-pg@0.51.1': - resolution: {integrity: sha512-QxgjSrxyWZc7Vk+qGSfsejPVFL1AgAJdSBMYZdDUbwg730D09ub3PXScB9d04vIqPriZ+0dqzjmQx0yWKiCi2Q==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-pg@0.58.0': - resolution: {integrity: sha512-WHntZAorf6CZ0n5a3oHlwGkSeu5Xa4AiCmXkNTKg24TbYSFWzJUtWvPQSkxePvQ3ku71lhAY/M20WgwHlvpZpQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-pino@0.52.0': - resolution: {integrity: sha512-FLATUe4E1N/x2NkNyzXVGAIu8Jau6RitHmfIbCn3IL1gyuFT/aSlyc5z8HPotlonPZg5RAhp5rUcKiDKtuLY8Q==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-redis-4@0.46.1': - resolution: {integrity: sha512-UMqleEoabYMsWoTkqyt9WAzXwZ4BlFZHO40wr3d5ZvtjKCHlD4YXLm+6OLCeIi/HkX7EXvQaz8gtAwkwwSEvcQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-redis@0.54.1': - resolution: {integrity: sha512-/hOkOa9uIpestrpKuVCNPLHYkSXY1sjsaiXZw/Srv5mzTjpybnDZs5MOCdsIADjFfaCg23sM/JmfIx6IhWgP0w==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-restify@0.51.0': - resolution: {integrity: sha512-DR8rquJixfQJzbOoGXB5qs1tuL4hGh1II+fk2xtxSu3qmOcmNI8jihez2dYPN67iofuhX+DxqZgvTYSqx4REpQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-router@0.50.0': - resolution: {integrity: sha512-tnEo9yoWUNgCm4FrizjINSTvkGOlS7pO0j+BUByRNf2sBvw8zpC3uG6C+8rg9f6Th5L+yZUU1W8Y6itWLNdh4g==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-runtime-node@0.19.0': - resolution: {integrity: sha512-rWlCcoroV3XlZ+YfTgVTO3Vq6nt61xjB1Or4C94g13Jf49zVi+QlipuEQRvMz8vsqtpxH21ZbAzCb1PcSsjT9g==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-socket.io@0.52.0': - resolution: {integrity: sha512-+dXOZGp2dHZ1+PaaebRKC4Hp5AIpryHbWIpZVmJ1mg3d24Xge2QZqOLjYF+3Z2s3IYSVp+j3uLef2vwg7e8+zQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-tedious@0.18.1': - resolution: {integrity: sha512-5Cuy/nj0HBaH+ZJ4leuD7RjgvA844aY2WW+B5uLcWtxGjRZl3MNLuxnNg5DYWZNPO+NafSSnra0q49KWAHsKBg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-tedious@0.24.0': - resolution: {integrity: sha512-sOX7JaHzdYoaFmu2cHDcdKGJAvdEIrk/IB6uS5Tr28nSos3E+beGsWGbPPKRXJ6E97ubqS2c8YUH9W1ece1rOQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-undici@0.10.1': - resolution: {integrity: sha512-rkOGikPEyRpMCmNu9AQuV5dtRlDmJp2dK5sw8roVshAGoB6hH/3QjDtRhdwd75SsJwgynWUNRUYe0wAkTo16tQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.7.0 - - '@opentelemetry/instrumentation-undici@0.16.0': - resolution: {integrity: sha512-sky42QpDmsHbrmE02sCEk7kdug2uTB4w5OwLpfHKom/5vbzTJZDoaM68YpCq0vTQ9QwL/DIDGwjdaTcU+XXCxQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.7.0 - - '@opentelemetry/instrumentation-winston@0.50.0': - resolution: {integrity: sha512-RKcbKIwwKzT6RnNPo5yU6Zus5DYSysK5zr8dL+LU/8Qh8icV/U2rghFJzMI+t01GeirhwSJeuuWB28AdZvSnLQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation@0.205.0': - resolution: {integrity: sha512-cgvm7tvQdu9Qo7VurJP84wJ7ZV9F6WqDDGZpUc6rUEXwjV7/bXWs0kaYp9v+1Vh1+3TZCD3i6j/lUBcPhu8NhA==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation@0.57.2': - resolution: {integrity: sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/otlp-exporter-base@0.205.0': - resolution: {integrity: sha512-2MN0C1IiKyo34M6NZzD6P9Nv9Dfuz3OJ3rkZwzFmF6xzjDfqqCTatc9v1EpNfaP55iDOCLHFyYNCgs61FFgtUQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/otlp-grpc-exporter-base@0.205.0': - resolution: {integrity: sha512-AeuLfrciGYffqsp4EUTdYYc6Ee2BQS+hr08mHZk1C524SFWx0WnfcTnV0NFXbVURUNU6DZu1DhS89zRRrcx/hg==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/otlp-transformer@0.205.0': - resolution: {integrity: sha512-KmObgqPtk9k/XTlWPJHdMbGCylRAmMJNXIRh6VYJmvlRDMfe+DonH41G7eenG8t4FXn3fxOGh14o/WiMRR6vPg==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/propagator-b3@2.1.0': - resolution: {integrity: sha512-yOdHmFseIChYanddMMz0mJIFQHyjwbNhoxc65fEAA8yanxcBPwoFDoh1+WBUWAO/Z0NRgk+k87d+aFIzAZhcBw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/propagator-jaeger@2.1.0': - resolution: {integrity: sha512-QYo7vLyMjrBCUTpwQBF/e+rvP7oGskrSELGxhSvLj5gpM0az9oJnu/0O4l2Nm7LEhAff80ntRYKkAcSwVgvSVQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/redis-common@0.36.2': - resolution: {integrity: sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==} - engines: {node: '>=14'} - - '@opentelemetry/redis-common@0.38.0': - resolution: {integrity: sha512-4Wc0AWURII2cfXVVoZ6vDqK+s5n4K5IssdrlVrvGsx6OEOKdghKtJZqXAHWFiZv4nTDLH2/2fldjIHY8clMOjQ==} - engines: {node: ^18.19.0 || >=20.6.0} - - '@opentelemetry/resource-detector-alibaba-cloud@0.31.5': - resolution: {integrity: sha512-SVweVr/WWWQZVuBII7WlqIW2exT5bYZdLwuGEh3EAi5Y5mulY4KUzvW8Rx+NoFWd8wgEscCltxuztFhhnlQDWQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - - '@opentelemetry/resource-detector-aws@2.5.0': - resolution: {integrity: sha512-NI7by8oi4G03yQA/igYZLZhbKkEy9tn/9JOQsHCPaRTDjzW+VHNcP5BLJH0FEM0NJZm7Ue/59J1a1aTSNJSDuA==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - - '@opentelemetry/resource-detector-azure@0.12.0': - resolution: {integrity: sha512-U87/nRFthxoPxPJVOeqytf+M0X43Es1al7+K3+fAYQN4kEenahhA3TUZESl6MweEW8tejUxp7A0AjxWrydAWQg==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - - '@opentelemetry/resource-detector-container@0.7.5': - resolution: {integrity: sha512-oa2+suq7q2epLC1R+pp3rmel7sS6kc4lPe67lxNNVSJ2Bw23ZJatCeG4Fjb2enueDE70VhqPpslVef5hnw1mBA==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - - '@opentelemetry/resource-detector-gcp@0.40.0': - resolution: {integrity: sha512-uAsUV8K4R9OJ3cgPUGYDqQByxOMTz4StmzJyofIv7+W+c1dTSEc1WVjWpTS2PAmywik++JlSmd8O4rMRJZpO8Q==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - - '@opentelemetry/resources@1.30.1': - resolution: {integrity: sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/resources@2.1.0': - resolution: {integrity: sha512-1CJjf3LCvoefUOgegxi8h6r4B/wLSzInyhGP2UmIBYNlo4Qk5CZ73e1eEyWmfXvFtm1ybkmfb2DqWvspsYLrWw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.10.0' - - '@opentelemetry/sdk-logs@0.205.0': - resolution: {integrity: sha512-nyqhNQ6eEzPWQU60Nc7+A5LIq8fz3UeIzdEVBQYefB4+msJZ2vuVtRuk9KxPMw1uHoHDtYEwkr2Ct0iG29jU8w==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.4.0 <1.10.0' - - '@opentelemetry/sdk-metrics@2.1.0': - resolution: {integrity: sha512-J9QX459mzqHLL9Y6FZ4wQPRZG4TOpMCyPOh6mkr/humxE1W2S3Bvf4i75yiMW9uyed2Kf5rxmLhTm/UK8vNkAw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.9.0 <1.10.0' - - '@opentelemetry/sdk-node@0.205.0': - resolution: {integrity: sha512-Y4Wcs8scj/Wy1u61pX1ggqPXPtCsGaqx/UnFu7BtRQE1zCQR+b0h56K7I0jz7U2bRlPUZIFdnNLtoaJSMNzz2g==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.10.0' - - '@opentelemetry/sdk-trace-base@1.30.1': - resolution: {integrity: sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/sdk-trace-base@2.1.0': - resolution: {integrity: sha512-uTX9FBlVQm4S2gVQO1sb5qyBLq/FPjbp+tmGoxu4tIgtYGmBYB44+KX/725RFDe30yBSaA9Ml9fqphe1hbUyLQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.10.0' - - '@opentelemetry/sdk-trace-node@2.1.0': - resolution: {integrity: sha512-SvVlBFc/jI96u/mmlKm86n9BbTCbQ35nsPoOohqJX6DXH92K0kTe73zGY5r8xoI1QkjR9PizszVJLzMC966y9Q==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/semantic-conventions@1.28.0': - resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} - engines: {node: '>=14'} - - '@opentelemetry/semantic-conventions@1.32.0': - resolution: {integrity: sha512-s0OpmpQFSfMrmedAn9Lhg4KWJELHCU6uU9dtIJ28N8UGhf9Y55im5X8fEzwhwDwiSqN+ZPSNrDJF7ivf/AuRPQ==} - engines: {node: '>=14'} - - '@opentelemetry/semantic-conventions@1.37.0': - resolution: {integrity: sha512-JD6DerIKdJGmRp4jQyX5FlrQjA4tjOw1cvfsPAZXfOOEErMUHjPcPSICS+6WnM0nB0efSFARh0KAZss+bvExOA==} - engines: {node: '>=14'} - - '@opentelemetry/sql-common@0.40.1': - resolution: {integrity: sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.1.0 - - '@opentelemetry/sql-common@0.41.0': - resolution: {integrity: sha512-pmzXctVbEERbqSfiAgdes9Y63xjoOyXcD7B6IXBkVb+vbM7M9U98mn33nGXxPf4dfYR0M+vhcKRZmbSJ7HfqFA==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.1.0 - - '@oxc-resolver/binding-darwin-arm64@11.4.0': - resolution: {integrity: sha512-+mlX+/yoWv/IfWad97mn/5KVYtwe/VLjwtyoY04UUL+VrHk0MpANAorM9gFf+7K6GkQEaNkTK1g4GqwPI8OiCQ==} - cpu: [arm64] - os: [darwin] - - '@oxc-resolver/binding-darwin-x64@11.4.0': - resolution: {integrity: sha512-uImuGdgleCPvZFfsYM7WnDW3PZ5z/cwrOt37MFd++rtrQ9kEL32ezl85eyatX2KsvGq7E8qg1DvHLVHOW259uQ==} - cpu: [x64] - os: [darwin] - - '@oxc-resolver/binding-freebsd-x64@11.4.0': - resolution: {integrity: sha512-/uFsbq+RWHiOktH1c9AysKZ++nHj76+chjQrCIvKalHYHKn6ydhMM6GwHL/pWq/gCZADbiKRQ0AOYLNf86hsZg==} - cpu: [x64] - os: [freebsd] - - '@oxc-resolver/binding-linux-arm-gnueabihf@11.4.0': - resolution: {integrity: sha512-GPQcVSW2zgc8MtTF5ovIfmXkMCoGATzOmMOinLKjStvqq/KX9tBoVHhR/r7g7ChIJjozeXMMSYrf1q6r3zWXjA==} - cpu: [arm] - os: [linux] - - '@oxc-resolver/binding-linux-arm64-gnu@11.4.0': - resolution: {integrity: sha512-rrOFswgslH2i/e2HHP6ei2Z3ivWKvkU666eL1hPXkzHHzhlavIp5vOywjlNR7fZK/15PG4/GKcGsHAVunHd/+w==} - cpu: [arm64] - os: [linux] - - '@oxc-resolver/binding-linux-arm64-musl@11.4.0': - resolution: {integrity: sha512-+OQ0rckRSYNP3wuEw+Asf5Is0elLeHkmhzlRAjx20lkITgSaNtkk7wDaqlpJmkcPv6ja3YkOoMiyclfS/FMSGA==} - cpu: [arm64] - os: [linux] - - '@oxc-resolver/binding-linux-riscv64-gnu@11.4.0': - resolution: {integrity: sha512-hOmV2yNr4y5BVDaXPl3aCZASBsVLo4eAd7UWfItG2l1CMcZdtE35XIo0dB3xUg1DGDI5n02eo89014GN246aHA==} - cpu: [riscv64] - os: [linux] - - '@oxc-resolver/binding-linux-s390x-gnu@11.4.0': - resolution: {integrity: sha512-STBciuunyjnQAhaJQoOEON3uQWL/Ad7mL+Ap8Q9A2Zw2bxZR7iW+tMu8pJDljHGVtGxtP1uurUt68kY9bMkFhA==} - cpu: [s390x] - os: [linux] - - '@oxc-resolver/binding-linux-x64-gnu@11.4.0': - resolution: {integrity: sha512-x9uFAdBZ2SfVSWcQxza3GHo/5enZWLWb8Nf6zBCu0eBee/IL/z5oJIGpF/9xFwlvT4k35ZYHxBC33NGB4SkkGw==} - cpu: [x64] - os: [linux] - - '@oxc-resolver/binding-linux-x64-musl@11.4.0': - resolution: {integrity: sha512-DrPkwPdufbka98aVvJP+qC29LP1MltUm6KPH0sJ5v9g5Tj+qcLi8i1EG5n8fnIqOI3vMtYs3DS2yMR2UGF7xyw==} - cpu: [x64] - os: [linux] - - '@oxc-resolver/binding-wasm32-wasi@11.4.0': - resolution: {integrity: sha512-fRBFgjhiUWTfz/7H/98r6SHsqCu3FvQPxbbDAs0wEVRvQdu7rZ2Ur2i4vKCZ6qLx6mDiBUKrkXy0btmU7eSrkQ==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - - '@oxc-resolver/binding-win32-arm64-msvc@11.4.0': - resolution: {integrity: sha512-Vl32WwWT6aVk0qjfmXRH1BYwtLh8UHEanuuaNyAU4i/I9+Qx8SvNRNo39sRl1g7pHDcdeUgqFoNZkVXwIC5xVw==} - cpu: [arm64] - os: [win32] - - '@oxc-resolver/binding-win32-x64-msvc@11.4.0': - resolution: {integrity: sha512-bBvYlfLTV4uH5pXLnNlx4BZ9DAsV3yQHL3vhXE2PfQ+iZglBkSZU/f82hx8cNwewTaK08zJUz4m2vGMQiSyU8Q==} - cpu: [x64] - os: [win32] - - '@panva/hkdf@1.2.1': - resolution: {integrity: sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==} - - '@parcel/watcher-android-arm64@2.5.1': - resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [android] - - '@parcel/watcher-darwin-arm64@2.5.1': - resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [darwin] - - '@parcel/watcher-darwin-x64@2.5.1': - resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [darwin] - - '@parcel/watcher-freebsd-x64@2.5.1': - resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [freebsd] - - '@parcel/watcher-linux-arm-glibc@2.5.1': - resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - - '@parcel/watcher-linux-arm-musl@2.5.1': - resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - - '@parcel/watcher-linux-arm64-glibc@2.5.1': - resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - - '@parcel/watcher-linux-arm64-musl@2.5.1': - resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - - '@parcel/watcher-linux-x64-glibc@2.5.1': - resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - - '@parcel/watcher-linux-x64-musl@2.5.1': - resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - - '@parcel/watcher-win32-arm64@2.5.1': - resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [win32] - - '@parcel/watcher-win32-ia32@2.5.1': - resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} - engines: {node: '>= 10.0.0'} - cpu: [ia32] - os: [win32] - - '@parcel/watcher-win32-x64@2.5.1': - resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [win32] - - '@parcel/watcher@2.5.1': - resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} - engines: {node: '>= 10.0.0'} - - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@playwright/test@1.51.1': - resolution: {integrity: sha512-nM+kEaTSAoVlXmMPH10017vn3FSiFqr/bh4fKg9vmAdMfd9SDqRZNvPSiAHADc/itWak+qPvMPZQOPwCBW7k7Q==} - engines: {node: '>=18'} - hasBin: true - - '@plotly/d3-sankey-circular@0.33.1': - resolution: {integrity: sha512-FgBV1HEvCr3DV7RHhDsPXyryknucxtfnLwPtCKKxdolKyTFYoLX/ibEfX39iFYIL7DYbVeRtP43dbFcrHNE+KQ==} - - '@plotly/d3-sankey@0.7.2': - resolution: {integrity: sha512-2jdVos1N3mMp3QW0k2q1ph7Gd6j5PY1YihBrwpkFnKqO+cqtZq3AdEYUeSGXMeLsBDQYiqTVcihYfk8vr5tqhw==} - - '@plotly/d3@3.8.2': - resolution: {integrity: sha512-wvsNmh1GYjyJfyEBPKJLTMzgf2c2bEbSIL50lmqVUi+o1NHaLPi1Lb4v7VxXXJn043BhNyrxUrWI85Q+zmjOVA==} - - '@plotly/mapbox-gl@1.13.4': - resolution: {integrity: sha512-sR3/Pe5LqT/fhYgp4rT4aSFf1rTsxMbGiH6Hojc7PH36ny5Bn17iVFUjpzycafETURuFbLZUfjODO8LvSI+5zQ==} - engines: {node: '>=6.4.0'} - - '@plotly/point-cluster@3.1.9': - resolution: {integrity: sha512-MwaI6g9scKf68Orpr1pHZ597pYx9uP8UEFXLPbsCmuw3a84obwz6pnMXGc90VhgDNeNiLEdlmuK7CPo+5PIxXw==} - - '@plotly/regl@2.1.2': - resolution: {integrity: sha512-Mdk+vUACbQvjd0m/1JJjOOafmkp/EpmHjISsopEz5Av44CBq7rPC05HHNbYGKVyNUF2zmEoBS/TT0pd0SPFFyw==} - - '@polka/url@1.0.0-next.29': - resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} - - '@portabletext/block-tools@1.1.32': - resolution: {integrity: sha512-tfxaMXKePzWr4GQzkPEaNOkVziwVs8TU0Y1V5AFaj8HAF1Wd7Upsm3ztrZD6HHbwpXJ/ayjNbqDygmg6FZRIFw==} - peerDependencies: - '@sanity/types': ^3.94.2 - '@types/react': 18 || 19 - - '@portabletext/editor@1.55.5': - resolution: {integrity: sha512-As4gd0HC8Ym7fOnJVcmpdA95AkC4fAIx7XP+FH+ksH/qzu2BDxcHrQ4GIgkMP9hus2ZXXKTwtIbzjcbBQk/UbQ==} - engines: {node: '>=18'} - peerDependencies: - '@sanity/schema': ^3.94.2 - '@sanity/types': ^3.94.2 - react: ^16.9 || ^17 || ^18 || ^19 - rxjs: ^7.8.2 - - '@portabletext/patches@1.1.5': - resolution: {integrity: sha512-XO9STk1ALQFGvW+gFoY3Ay5ODdr26iRg6ajKHPDanKLko5blPmfcYBpAlfOjFVxvOdeaPmoNuccwlf/0zIp/lA==} - - '@portabletext/react@3.2.1': - resolution: {integrity: sha512-RyFLk6u2q6ZyABTdOk+xoNR2Tq/4fcQFEWayNk4Kbd3gHpUUTabqOrDMChcmG6C7YVLSpwIEBwHoBVcy4vK/hA==} - engines: {node: ^14.13.1 || >=16.0.0} - peerDependencies: - react: ^17 || ^18 || >=19.0.0-0 - - '@portabletext/to-html@2.0.14': - resolution: {integrity: sha512-wW2et59PoOT/mc56C4U3z+DKAx1yjieN/gp2q9szTfTwusMpb6mclR9+EPIfGrcQWdwGn6PEN7nxVFXnqlZ/0A==} - engines: {node: ^14.13.1 || >=16.0.0} - - '@portabletext/toolkit@2.0.17': - resolution: {integrity: sha512-5wj+oUaCmHm9Ay1cytPmT1Yc0SrR1twwUIc0qNQ3MtaXaNMPw99Gjt1NcA34yfyKmEf/TAB2NiiT72jFxdddIQ==} - engines: {node: ^14.13.1 || >=16.0.0} - - '@portabletext/types@2.0.13': - resolution: {integrity: sha512-5xk5MSyQU9CrDho3Rsguj38jhijhD36Mk8S6mZo3huv6PM+t4M/5kJN2KFIxgvt4ONpvOEs1pVIZAV0cL0Vi+Q==} - engines: {node: ^14.13.1 || >=16.0.0 || >=18.0.0} - - '@prisma/instrumentation@6.5.0': - resolution: {integrity: sha512-morJDtFRoAp5d/KENEm+K6Y3PQcn5bCvpJ5a9y3V3DNMrNy/ZSn2zulPGj+ld+Xj2UYVoaMJ8DpBX/o6iF6OiA==} - peerDependencies: - '@opentelemetry/api': ^1.8 - - '@probe.gl/env@4.1.0': - resolution: {integrity: sha512-5ac2Jm2K72VCs4eSMsM7ykVRrV47w32xOGMvcgqn8vQdEMF9PRXyBGYEV9YbqRKWNKpNKmQJVi4AHM/fkCxs9w==} - - '@probe.gl/log@4.1.0': - resolution: {integrity: sha512-r4gRReNY6f+OZEMgfWEXrAE2qJEt8rX0HsDJQXUBMoc+5H47bdB7f/5HBHAmapK8UydwPKL9wCDoS22rJ0yq7Q==} - - '@probe.gl/stats@4.1.0': - resolution: {integrity: sha512-EI413MkWKBDVNIfLdqbeNSJTs7ToBz/KVGkwi3D+dQrSIkRI2IYbWGAU3xX+D6+CI4ls8ehxMhNpUVMaZggDvQ==} - - '@protobufjs/aspromise@1.1.2': - resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} - - '@protobufjs/base64@1.1.2': - resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} - - '@protobufjs/codegen@2.0.4': - resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} - - '@protobufjs/eventemitter@1.1.0': - resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} - - '@protobufjs/fetch@1.1.0': - resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} - - '@protobufjs/float@1.0.2': - resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} - - '@protobufjs/inquire@1.1.0': - resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} - - '@protobufjs/path@1.1.2': - resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} - - '@protobufjs/pool@1.1.0': - resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} - - '@protobufjs/utf8@1.1.0': - resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - - '@radix-ui/number@1.1.1': - resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} - - '@radix-ui/primitive@1.1.2': - resolution: {integrity: sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==} - - '@radix-ui/react-accordion@1.2.4': - resolution: {integrity: sha512-SGCxlSBaMvEzDROzyZjsVNzu9XY5E28B3k8jOENyrz6csOv/pG1eHyYfLJai1n9tRjwG61coXDhfpgtxKxUv5g==} - 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.3': - resolution: {integrity: sha512-2dvVU4jva0qkNZH6HHWuSz5FN5GeU5tymvCgutF8WaXz9WnD1NgUhy73cqzkjkN4Zkn8lfTPv5JIfrC221W+Nw==} - 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-checkbox@1.1.5': - resolution: {integrity: sha512-B0gYIVxl77KYDR25AY9EGe/G//ef85RVBIxQvK+m5pxAC7XihAc/8leMHhDvjvhDu02SBSb6BuytlWr/G7F3+g==} - 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-collapsible@1.1.4': - resolution: {integrity: sha512-u7LCw1EYInQtBNLGjm9nZ89S/4GcvX1UR5XbekEgnQae2Hkpq39ycJ1OhdeN1/JDfVNG91kWaWoest127TaEKQ==} - 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.3': - resolution: {integrity: sha512-mM2pxoQw5HJ49rkzwOs7Y6J4oYH22wS8BfK2/bBxROlI4xuR0c4jEenQP63LlTlDkO6Buj2Vt+QYAYcOgqtrXA==} - 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-compose-refs@1.1.2': - resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} - 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.2': - resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-dialog@1.1.7': - resolution: {integrity: sha512-EIdma8C0C/I6kL6sO02avaCRqi3fmWJpxH6mqbVScorW6nNktzKJT/le7VPho3o/7wCsyRg3z0+Q+Obr0Gy/VQ==} - 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-direction@1.1.1': - resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-dismissable-layer@1.1.6': - resolution: {integrity: sha512-7gpgMT2gyKym9Jz2ZhlRXSg2y6cNQIK8d/cqBZ0RBCaps8pFryCWXiUKI+uHGFrhMrbGUP7U6PWgiXzIxoyF3Q==} - 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-dropdown-menu@2.1.7': - resolution: {integrity: sha512-7/1LiuNZuCQE3IzdicGoHdQOHkS2Q08+7p8w6TXZ6ZjgAULaCI85ZY15yPl4o4FVgoKLRT43/rsfNVN8osClQQ==} - 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-guards@1.1.2': - resolution: {integrity: sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-focus-scope@1.1.3': - resolution: {integrity: sha512-4XaDlq0bPt7oJwR+0k0clCiCO/7lO7NKZTAaJBYxDNQT/vj4ig0/UvctrRscZaFREpRvUTkpKR96ov1e6jptQg==} - 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-id@1.1.1': - resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-menu@2.1.7': - resolution: {integrity: sha512-tBODsrk68rOi1/iQzbM54toFF+gSw/y+eQgttFflqlGekuSebNqvFNHjJgjqPhiMb4Fw9A0zNFly1QT6ZFdQ+Q==} - 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-menubar@1.1.7': - resolution: {integrity: sha512-YB2zFhGdZ5SWEgRS+PgrF7EkwpsjEHntIFB/LRbT49LJdnIeK/xQQyuwLiRcOCgTDN+ALlPXQ08f0P0+TfR41g==} - 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-popover@1.1.7': - resolution: {integrity: sha512-I38OYWDmJF2kbO74LX8UsFydSHWOJuQ7LxPnTefjxxvdvPLempvAnmsyX9UsBlywcbSGpRH7oMLfkUf+ij4nrw==} - 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.3': - resolution: {integrity: sha512-iNb9LYUMkne9zIahukgQmHlSBp9XWGeQQ7FvUGNk45ywzOb6kQa+Ca38OphXlWDiKvyneo9S+KSJsLfLt8812A==} - 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.5': - resolution: {integrity: sha512-ps/67ZqsFm+Mb6lSPJpfhRLrVL2i2fntgCmGMqqth4eaGUf+knAuuRtWVJrNjUhExgmdRqftSgzpf0DF0n6yXA==} - 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.3': - resolution: {integrity: sha512-IrVLIhskYhH3nLvtcBLQFZr61tBG7wx7O3kEmdzcYwRGAEBmBicGGL7ATzNgruYJ3xBTbuzEEq9OXJM3PAX3tA==} - 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.3': - resolution: {integrity: sha512-Pf/t/GkndH7CQ8wE2hbkXA+WyZ83fhQQn5DDmwDiDo6AwN/fhaH8oqZ0jRjMrO2iaMhDi6P1HRx6AZwyMinY1g==} - 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.3': - resolution: {integrity: sha512-ufbpLUjZiOg4iYgb2hQrWXEPYX6jOLBbR27bDyAff5GYMRrCzcze8lukjuXVUQvJ6HZe8+oL+hhswDcjmcgVyg==} - 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-slider@1.2.4': - resolution: {integrity: sha512-Vr/OgNejNJPAghIhjS7Mf/2F/EXGDT0qgtiHf2BHz71+KqgN+jndFLKq5xAB9JOGejGzejfJLIvT04Do+yzhcg==} - 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-slot@1.2.0': - resolution: {integrity: sha512-ujc+V6r0HNDviYqIK3rW4ffgYiZ8g5DEHrGJVk4x7kTlLXRDILnKX9vAUYeIsLOoDpDJ0ujpqMkjH4w2ofuo6w==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-switch@1.1.4': - resolution: {integrity: sha512-zGP6W8plLeogoeGMiTHJ/uvf+TE1C2chVsEwfP8YlvpQKJHktG+iCkUtCLGPAuDV8/qDSmIRPm4NggaTxFMVBQ==} - 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-tabs@1.1.4': - resolution: {integrity: sha512-fuHMHWSf5SRhXke+DbHXj2wVMo+ghVH30vhX3XVacdXqDl+J4XWafMIGOOER861QpBx1jxgwKXL2dQnfrsd8MQ==} - 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-tooltip@1.2.0': - resolution: {integrity: sha512-b1Sdc75s7zN9B8ONQTGBSHL3XS8+IcjcOIY51fhM4R1Hx8s0YbgqgyNZiri4qcYMVZK8hfCZVBiyCm7N9rs0rw==} - 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-use-callback-ref@1.1.1': - resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-controllable-state@1.1.1': - resolution: {integrity: sha512-YnEXIy8/ga01Y1PN0VfaNH//MhA91JlEGVBDxDzROqwrAtG5Yr2QGEPz8A/rJA3C7ZAHryOYGaUv8fLSW2H/mg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-escape-keydown@1.1.1': - resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-layout-effect@1.1.1': - resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-previous@1.1.1': - resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-rect@1.1.1': - resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-size@1.1.1': - resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-visually-hidden@1.1.3': - resolution: {integrity: sha512-oXSF3ZQRd5fvomd9hmUCb2EHSZbPp3ZSHAHJJU/DlF9XoFkJBBW8RHU/E8WEH+RbSfJd/QFA0sl8ClJXknBwHQ==} - 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/rect@1.1.1': - resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} - - '@rc-component/async-validator@5.0.4': - resolution: {integrity: sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==} - engines: {node: '>=14.x'} - - '@rc-component/color-picker@2.0.1': - resolution: {integrity: sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/context@1.4.0': - resolution: {integrity: sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/mini-decimal@1.1.0': - resolution: {integrity: sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==} - engines: {node: '>=8.x'} - - '@rc-component/mutate-observer@1.1.0': - resolution: {integrity: sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/portal@1.1.2': - resolution: {integrity: sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/qrcode@1.0.0': - resolution: {integrity: sha512-L+rZ4HXP2sJ1gHMGHjsg9jlYBX/SLN2D6OxP9Zn3qgtpMWtO2vUfxVFwiogHpAIqs54FnALxraUy/BCO1yRIgg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/tour@1.15.1': - resolution: {integrity: sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/trigger@2.2.6': - resolution: {integrity: sha512-/9zuTnWwhQ3S3WT1T8BubuFTT46kvnXgaERR9f4BTKyn61/wpf/BvbImzYBubzJibU707FxwbKszLlHjcLiv1Q==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/util@1.2.1': - resolution: {integrity: sha512-AUVu6jO+lWjQnUOOECwu8iR0EdElQgWW5NBv5vP/Uf9dWbAX3udhMutRlkVXjuac2E40ghkFy+ve00mc/3Fymg==} - peerDependencies: - react: '>=18.0.0' - react-dom: '>=18.0.0' - - '@react-three/drei@10.0.6': - resolution: {integrity: sha512-QtiAv/a1BaP+ZYfp8BphV8BMSO0O1BNhIPye3Zqm5iDqgX6JeiknPR6f2UmzUdBfPLwjZEaqjfULgJFvTUWgkg==} - peerDependencies: - '@react-three/fiber': ^9.0.0 - react: ^19 - react-dom: ^19 - three: '>=0.159' - peerDependenciesMeta: - react-dom: - optional: true - - '@react-three/fiber@9.1.2': - resolution: {integrity: sha512-k8FR9yVHV9kIF3iuOD0ds5hVymXYXfgdKklqziBVod9ZEJ8uk05Zjw29J/omU3IKeUfLNAIHfxneN3TUYM4I2w==} - peerDependencies: - expo: '>=43.0' - expo-asset: '>=8.4' - expo-file-system: '>=11.0' - expo-gl: '>=11.0' - react: ^19.0.0 - react-dom: ^19.0.0 - react-native: '>=0.78' - three: '>=0.156' - peerDependenciesMeta: - expo: - optional: true - expo-asset: - optional: true - expo-file-system: - optional: true - expo-gl: - optional: true - react-dom: - optional: true - react-native: - optional: true - - '@redux-devtools/extension@3.3.0': - resolution: {integrity: sha512-X34S/rC8S/M1BIrkYD1mJ5f8vlH0BDqxXrs96cvxSBo4FhMdbhU+GUGsmNYov1xjSyLMHgo8NYrUG8bNX7525g==} - peerDependencies: - redux: ^3.1.0 || ^4.0.0 || ^5.0.0 - - '@rexxars/react-json-inspector@9.0.1': - resolution: {integrity: sha512-4uZ4RnrVoOGOShIKKcPoF+qhwDCZJsPPqyoEoW/8HRdzNknN9Q2yhlbEgTX1lMZunF1fv7iHzAs+n1vgIgfg/g==} - peerDependencies: - react: ^18 || ^19 - - '@rjsf/core@5.24.11': - resolution: {integrity: sha512-iSO8IIrsBREQZPPVb6AdtnQBclDcU0YK8cnF9oqS/mV+Qk/r8kU6On0X8j/lj8setGBdFJKDFA0hdJkNquQI1Q==} - engines: {node: '>=14'} - peerDependencies: - '@rjsf/utils': ^5.24.x - react: ^16.14.0 || >=17 - - '@rjsf/utils@5.24.11': - resolution: {integrity: sha512-2OyQM4Eum67jr4GJly6eflZhD8qoWkl7brCvCZ10z+pW6dgsGEusqRvTioK0L7thWJ5LwbJ2i4SFqJjiChZGxA==} - engines: {node: '>=14'} - peerDependencies: - react: ^16.14.0 || >=17 - - '@rjsf/validator-ajv8@5.24.11': - resolution: {integrity: sha512-x6pZojVPVFB1bVk3e8GvStyDXJN8ufa3Aoz4wx+UJRSdh7J4Iud+jaATPxyrjhLIuxsQhUy7ed39/4iP+YYZ/Q==} - engines: {node: '>=14'} - peerDependencies: - '@rjsf/utils': ^5.24.x - - '@rolldown/pluginutils@1.0.0-beta.11': - resolution: {integrity: sha512-L/gAA/hyCSuzTF1ftlzUSI/IKr2POHsv1Dd78GfqkR83KMNuswWD61JxGV2L7nRwBBBSDr6R1gCkdTmoN7W4ag==} - - '@rolldown/pluginutils@1.0.0-beta.19': - resolution: {integrity: sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==} - - '@rollup/plugin-commonjs@28.0.1': - resolution: {integrity: sha512-+tNWdlWKbpB3WgBN7ijjYkq9X5uhjmcvyjEght4NmH5fAU++zfQzAJ6wumLS+dNcvwEZhKx2Z+skY8m7v0wGSA==} - engines: {node: '>=16.0.0 || 14 >= 14.17'} - peerDependencies: - rollup: ^2.68.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/pluginutils@5.1.4': - resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/rollup-android-arm-eabi@4.35.0': - resolution: {integrity: sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm-eabi@4.39.0': - resolution: {integrity: sha512-lGVys55Qb00Wvh8DMAocp5kIcaNzEFTmGhfFd88LfaogYTRKrdxgtlO5H6S49v2Nd8R2C6wLOal0qv6/kCkOwA==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.35.0': - resolution: {integrity: sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-android-arm64@4.39.0': - resolution: {integrity: sha512-It9+M1zE31KWfqh/0cJLrrsCPiF72PoJjIChLX+rEcujVRCb4NLQ5QzFkzIZW8Kn8FTbvGQBY5TkKBau3S8cCQ==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.35.0': - resolution: {integrity: sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-arm64@4.39.0': - resolution: {integrity: sha512-lXQnhpFDOKDXiGxsU9/l8UEGGM65comrQuZ+lDcGUx+9YQ9dKpF3rSEGepyeR5AHZ0b5RgiligsBhWZfSSQh8Q==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.35.0': - resolution: {integrity: sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.39.0': - resolution: {integrity: sha512-mKXpNZLvtEbgu6WCkNij7CGycdw9cJi2k9v0noMb++Vab12GZjFgUXD69ilAbBh034Zwn95c2PNSz9xM7KYEAQ==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-freebsd-arm64@4.35.0': - resolution: {integrity: sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==} - cpu: [arm64] - os: [freebsd] - - '@rollup/rollup-freebsd-arm64@4.39.0': - resolution: {integrity: sha512-jivRRlh2Lod/KvDZx2zUR+I4iBfHcu2V/BA2vasUtdtTN2Uk3jfcZczLa81ESHZHPHy4ih3T/W5rPFZ/hX7RtQ==} - cpu: [arm64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.35.0': - resolution: {integrity: sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==} - cpu: [x64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.39.0': - resolution: {integrity: sha512-8RXIWvYIRK9nO+bhVz8DwLBepcptw633gv/QT4015CpJ0Ht8punmoHU/DuEd3iw9Hr8UwUV+t+VNNuZIWYeY7Q==} - cpu: [x64] - os: [freebsd] - - '@rollup/rollup-linux-arm-gnueabihf@4.35.0': - resolution: {integrity: sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-gnueabihf@4.39.0': - resolution: {integrity: sha512-mz5POx5Zu58f2xAG5RaRRhp3IZDK7zXGk5sdEDj4o96HeaXhlUwmLFzNlc4hCQi5sGdR12VDgEUqVSHer0lI9g==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.35.0': - resolution: {integrity: sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.39.0': - resolution: {integrity: sha512-+YDwhM6gUAyakl0CD+bMFpdmwIoRDzZYaTWV3SDRBGkMU/VpIBYXXEvkEcTagw/7VVkL2vA29zU4UVy1mP0/Yw==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.35.0': - resolution: {integrity: sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.39.0': - resolution: {integrity: sha512-EKf7iF7aK36eEChvlgxGnk7pdJfzfQbNvGV/+l98iiMwU23MwvmV0Ty3pJ0p5WQfm3JRHOytSIqD9LB7Bq7xdQ==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.35.0': - resolution: {integrity: sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.39.0': - resolution: {integrity: sha512-vYanR6MtqC7Z2SNr8gzVnzUul09Wi1kZqJaek3KcIlI/wq5Xtq4ZPIZ0Mr/st/sv/NnaPwy/D4yXg5x0B3aUUA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-loongarch64-gnu@4.35.0': - resolution: {integrity: sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==} - cpu: [loong64] - os: [linux] - - '@rollup/rollup-linux-loongarch64-gnu@4.39.0': - resolution: {integrity: sha512-NMRUT40+h0FBa5fb+cpxtZoGAggRem16ocVKIv5gDB5uLDgBIwrIsXlGqYbLwW8YyO3WVTk1FkFDjMETYlDqiw==} - cpu: [loong64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.35.0': - resolution: {integrity: sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.39.0': - resolution: {integrity: sha512-0pCNnmxgduJ3YRt+D+kJ6Ai/r+TaePu9ZLENl+ZDV/CdVczXl95CbIiwwswu4L+K7uOIGf6tMo2vm8uadRaICQ==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.35.0': - resolution: {integrity: sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.39.0': - resolution: {integrity: sha512-t7j5Zhr7S4bBtksT73bO6c3Qa2AV/HqiGlj9+KB3gNF5upcVkx+HLgxTm8DK4OkzsOYqbdqbLKwvGMhylJCPhQ==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-riscv64-musl@4.39.0': - resolution: {integrity: sha512-m6cwI86IvQ7M93MQ2RF5SP8tUjD39Y7rjb1qjHgYh28uAPVU8+k/xYWvxRO3/tBN2pZkSMa5RjnPuUIbrwVxeA==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.35.0': - resolution: {integrity: sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.39.0': - resolution: {integrity: sha512-iRDJd2ebMunnk2rsSBYlsptCyuINvxUfGwOUldjv5M4tpa93K8tFMeYGpNk2+Nxl+OBJnBzy2/JCscGeO507kA==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.35.0': - resolution: {integrity: sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.39.0': - resolution: {integrity: sha512-t9jqYw27R6Lx0XKfEFe5vUeEJ5pF3SGIM6gTfONSMb7DuG6z6wfj2yjcoZxHg129veTqU7+wOhY6GX8wmf90dA==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.35.0': - resolution: {integrity: sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.39.0': - resolution: {integrity: sha512-ThFdkrFDP55AIsIZDKSBWEt/JcWlCzydbZHinZ0F/r1h83qbGeenCt/G/wG2O0reuENDD2tawfAj2s8VK7Bugg==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.35.0': - resolution: {integrity: sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-arm64-msvc@4.39.0': - resolution: {integrity: sha512-jDrLm6yUtbOg2TYB3sBF3acUnAwsIksEYjLeHL+TJv9jg+TmTwdyjnDex27jqEMakNKf3RwwPahDIt7QXCSqRQ==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.35.0': - resolution: {integrity: sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.39.0': - resolution: {integrity: sha512-6w9uMuza+LbLCVoNKL5FSLE7yvYkq9laSd09bwS0tMjkwXrmib/4KmoJcrKhLWHvw19mwU+33ndC69T7weNNjQ==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.35.0': - resolution: {integrity: sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==} - cpu: [x64] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.39.0': - resolution: {integrity: sha512-yAkUOkIKZlK5dl7u6dg897doBgLXmUHhIINM2c+sND3DZwnrdQkkSiDh7N75Ll4mM4dxSkYfXqU9fW3lLkMFug==} - cpu: [x64] - os: [win32] - - '@rtsao/scc@1.1.0': - resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - - '@rushstack/eslint-patch@1.11.0': - resolution: {integrity: sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==} - - '@sanity/asset-utils@2.2.1': - resolution: {integrity: sha512-dBsZWH5X6ANcvclFRnQT9Y+NNvoWTJZIMKR5HT6hzoRpRb48p7+vWn+wi1V1wPvqgZg2ScsOQQcGXWXskbPbQQ==} - engines: {node: '>=18'} - - '@sanity/bifur-client@0.4.1': - resolution: {integrity: sha512-mHM8WR7pujbIw2qxuV0lzinS1izOoyLza/ejWV6quITTLpBhUoPIQGPER3Ar0SON5JV0VEEqkJGa1kjiYYgx2w==} - - '@sanity/cli@3.94.2': - resolution: {integrity: sha512-5B+83mNUFyYNxKQnBd/gmXDB2LI/s6YZOv2UWF+La9DhUFN5CMZpDRWKWxEzl7sNaOyPQj5SmbUCLpDd+ZxRkw==} - engines: {node: '>=18'} - hasBin: true - - '@sanity/client@6.28.4': - resolution: {integrity: sha512-xUv+Mzqv1JvzWgpNE+DDUPjsvImOEuwxHwOQZijX3+eqOBuRnqmlk7XtYIIw5NsDg6lE0b+uQ0wE5in9/JhYjw==} - engines: {node: '>=14.18'} - - '@sanity/client@7.6.0': - resolution: {integrity: sha512-bNgqWkKzzbAh2qDKHK0IYgR+7TaRsmk6rCpeX+kwIJ6J8ot8ZnZxzRgwfPmBztOQu8YfahQ6t90giT4uVhQNEg==} - engines: {node: '>=20'} - - '@sanity/codegen@3.94.2': - resolution: {integrity: sha512-sB+ydQAvV2p7dQtVt6m2cPCA2h9pI1MNn0Foatd9DGn6psR5TacB0/FbxEig6mxGJx4iNiU2OiGKL4eua/n09w==} - engines: {node: '>=18'} - - '@sanity/color@3.0.6': - resolution: {integrity: sha512-2TjYEvOftD0v7ukx3Csdh9QIu44P2z7NDJtlC3qITJRYV36J7R6Vfd3trVhFnN77/7CZrGjqngrtohv8VqO5nw==} - engines: {node: '>=18.0.0'} - - '@sanity/comlink@3.0.5': - resolution: {integrity: sha512-aYdqV8pJ6UT/3WucER5PBMGIlAt26wKiVYcmFSA7k3dmcEaPOd8tib93bwHfQsVXzGGnUaf0e8IacKYoyTwzCw==} - engines: {node: '>=18'} - - '@sanity/descriptors@1.0.0': - resolution: {integrity: sha512-Gxp/N1GHkteSALUkURxMXZdKxl8LzUqfYMk0vq37Z4YznMs7wMDNHIgD5SwL3E3w6rQkALz69xki8hUBa23GsA==} - engines: {node: '>=18.0.0'} - - '@sanity/diff-match-patch@3.2.0': - resolution: {integrity: sha512-4hPADs0qUThFZkBK/crnfKKHg71qkRowfktBljH2UIxGHHTxIzt8g8fBiXItyCjxkuNy+zpYOdRMifQNv8+Yww==} - engines: {node: '>=18.18'} - - '@sanity/diff-patch@5.0.0': - resolution: {integrity: sha512-JASdNaZsxUFBx8GQ1sX2XehYhdhOcurh7KwzQ3cXgOTdjvIQyQcLwmMeYCsU/K26GiI81ODbCEb/C0c92t2Unw==} - engines: {node: '>=18.2'} - - '@sanity/diff@3.94.2': - resolution: {integrity: sha512-FUCf58qOZLJ5ww0pZP4kOi+wYaGovaN0H/+UW0JOKNaLBxb/5EhJgmk9AWATg3Wr2c6uIx/ZO3zwUdz+V8W5mg==} - engines: {node: '>=18'} - - '@sanity/eventsource@5.0.2': - resolution: {integrity: sha512-/B9PMkUvAlUrpRq0y+NzXgRv5lYCLxZNsBJD2WXVnqZYOfByL9oQBV7KiTaARuObp5hcQYuPfOAVjgXe3hrixA==} - - '@sanity/export@3.45.1': - resolution: {integrity: sha512-o9qdYeJtHM0oEPW0L+ezpVZSB2W6IvnmH9TY0cV5Ga+zdc5rjeQzjUoDTyE544W1z5FJ+x5lzIZEfkIwx4ab8A==} - engines: {node: '>=18'} - - '@sanity/generate-help-url@3.0.0': - resolution: {integrity: sha512-wtMYcV5GIDIhVyF/jjmdwq1GdlK07dRL40XMns73VbrFI7FteRltxv48bhYVZPcLkRXb0SHjpDS/icj9/yzbVA==} - - '@sanity/icons@3.7.0': - resolution: {integrity: sha512-MVh5C55X8Vn2oIsraSPVx4MkHvkqUimkmv7yP++IfJBCLgb38/7G2CM+GB95GTpLPRdF2m3QEwwXcaeljjqKOQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: ^18.3 || ^19.0.0-0 - - '@sanity/icons@3.7.4': - resolution: {integrity: sha512-O9MnckiDsphFwlRS8Q3kj3n+JYUZ0UzKRujnSikMZOKI0dayucRe4U2XvxikRhJnFhcEJXW2RkWJoBaCoup9Sw==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: ^18.3 || ^19.0.0-0 - - '@sanity/id-utils@1.0.0': - resolution: {integrity: sha512-2sb7tbdMDuUuVyocJPKG0gZBiOML/ovCe+mJiLrv1j69ODOfa2LfUjDVR+dRw/A/+XuxoJSSP8ebG7NiwTOgIA==} - engines: {node: '>=18'} - - '@sanity/image-url@1.1.0': - resolution: {integrity: sha512-JHumVRxzzaZAJyOimntdukA9TjjzsJiaiq/uUBdTknMLCNvtM6KQ5OCp6W5fIdY78uyFxtQjz+MPXwK8WBIxWg==} - engines: {node: '>=10.0.0'} - - '@sanity/import@3.38.2': - resolution: {integrity: sha512-7KUEiksAjr+Ub+xbWbIIrNlfEesmqJcBW+n7zOr65TN8lS9WarTzIClDjbeZ13yYMS9e9FOKIzXVJC8UFwIseA==} - engines: {node: '>=18'} - hasBin: true - - '@sanity/insert-menu@1.1.12': - resolution: {integrity: sha512-pJyV3c+wFk1xYBD87CynhjJFi96gd5ybAWijz9z/uNU5YieywKjuFAYRcZBfBU24Ihncuf3LdOmkwtcJFG1w1A==} - engines: {node: '>=18.0.0'} - peerDependencies: - '@sanity/types': '*' - react: ^18.3 || >=19.0.0-rc - react-dom: ^18.3 || >=19.0.0-rc - react-is: ^18.3 || >=19.0.0-rc - - '@sanity/logos@2.2.1': - resolution: {integrity: sha512-jz7bvoSrwTAEFw4wlgGsPDquQsBG+k//XEEJIzlLK9bBp2q3Ln6xZiUAjhhScqUa+ThrUfxjfbf7UUecOeLzEQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - '@sanity/color': ^2.0 || ^3.0 || ^3.0.0-beta - react: ^18.3 || ^19.0.0-0 - - '@sanity/media-library-types@1.0.0': - resolution: {integrity: sha512-RwBou7SybMbHkSeCn+3L/hbaFP77at3BesP67o8D8RrFiOgHX/h4ibw4yEauC1s09U9BE1MPq9K7ji+0XU57GA==} - - '@sanity/message-protocol@0.13.3': - resolution: {integrity: sha512-ODamUtLYneiagN0x3i4QrdgD9bwSAJiL5DF+lxr5yzpR4vGSlJ+HFqJoVvLZTK/KdHBdJzmr2CMebP8hQYN36Q==} - engines: {node: '>=20.0.0'} - - '@sanity/migrate@3.94.2': - resolution: {integrity: sha512-39P5Zw6pl6C6Jy5k7kgFGqUwO0Hl4KJb170leRMlGmXxVvhQyIZeyFFhzfg2LpHxuuFgv+ex1Xc34YVZFpZ2xg==} - engines: {node: '>=18'} - - '@sanity/mutate@0.11.0-canary.4': - resolution: {integrity: sha512-82jU3PvxQepY+jVJU1WaXQOf2Q9Q/fOCE2ksJZ4cnH3/WFOsg7RceYoOWb1XKthchTCD9zSBS9DRmb7FQ0Jlsg==} - engines: {node: '>=18'} - peerDependencies: - xstate: ^5.19.0 - peerDependenciesMeta: - xstate: - optional: true - - '@sanity/mutate@0.12.4': - resolution: {integrity: sha512-CBPOOTCTyHFyhBL+seWpkGKJIE6lpaFd9yIeTIDt6miluBz6W8OKTNbaU6gPzOztqrr8KbrTaROiQAaMQDndQA==} - engines: {node: '>=18'} - - '@sanity/mutator@3.94.2': - resolution: {integrity: sha512-1OOGFZe8SwKAmhlosVOg2EhuNt/8MPhdiRLOm+iVev5GOIo1mWafJf1PqRgtCWpArFNNRTSVTQircpzeI72xKw==} - - '@sanity/next-loader@1.6.2': - resolution: {integrity: sha512-PF4L0p7Zi39n0b3LUuKkEKE8+ZgaBOfTHRmzSiivgafM5GgTKU9nnx9YLwXyo9UUpPZPjzvpuom5bo+zF5zZKg==} - engines: {node: '>=18.18'} - peerDependencies: - next: ^14.1 || ^15.0.0-0 - react: ^18.3 || ^19.0.0-0 - - '@sanity/presentation-comlink@1.0.21': - resolution: {integrity: sha512-23jXRySgkop9ISHvxkFVwsib8kbS1VTbKf7yfhrJWLGHcCzQ6MJTs9Sh4oWMEqIhhcHsv23Lvm+O4rr53arEuA==} - engines: {node: '>=18'} - peerDependencies: - '@sanity/client': ^7.1.0 - - '@sanity/preview-kit@6.1.1': - resolution: {integrity: sha512-NyyHVtcbcMohr6UM3Ji3QU//qZeh/mDRDSGUCenVB0zAkYEWnzapPtyJzRW7xlPNjwZhyOnLr7e5t7YpS9eMmw==} - engines: {node: '>=18'} - peerDependencies: - react: ^18 || ^19 - peerDependenciesMeta: - react: - optional: true - - '@sanity/preview-url-secret@2.1.11': - resolution: {integrity: sha512-kMxOvXARbDZ8g8vWPjCBJ+QYaPXoOYXlsHfh727mzl/Ibmvlh9F9fLuyAwxSvq4J2VWXZegb8kmKlEakgld0dg==} - engines: {node: '>=18'} - peerDependencies: - '@sanity/client': ^7.1.0 - - '@sanity/runtime-cli@8.1.4': - resolution: {integrity: sha512-dY0A7+IoH+LiByCIRwD+BRli++K/S3Kifsn8Tnz3LIv2z2NggOC2tM0s+ySaAU/eT8vMPfnfaWqH6A9t73bswQ==} - engines: {node: '>=20.11.0'} - hasBin: true - - '@sanity/schema@3.94.2': - resolution: {integrity: sha512-F5jRPuppCHHtUdIIUu/xWxQDc2tdIi9QteSAlNHAzesOR2AZs6JhJpwrxZLDCE/TWbAhPtbTbfY/e686XtbQvA==} - - '@sanity/sdk@0.0.0-alpha.25': - resolution: {integrity: sha512-sb5IeEszGCVFF2J+EGaPe1wUuZzErUXikIYewhbPR+3uCu1096Xh8R2dBJ1ekiU8ZjUKUOrWnHWz30XdgeGGcw==} - engines: {node: '>=20.0.0'} - - '@sanity/telemetry@0.8.1': - resolution: {integrity: sha512-YybPb6s3IO2HmHZ4dLC3JCX+IAwAnVk5/qmhH4CWbC3iL/VsikRbz4FfOIIIt0cj2UOKrahL/wpSPBR/3quQzg==} - engines: {node: '>=16.0.0'} - peerDependencies: - react: ^18.2 || ^19.0.0 - - '@sanity/template-validator@2.4.3': - resolution: {integrity: sha512-pce+x6opIjiL5jg4bJba6x0+mCT7pFDCwOjYcu5ZOmaQ/mWxypjjPtzWp3+QU6mfCP/bb9z4zKj+PSGIT3q/zw==} - engines: {node: '>=18.0.0'} - hasBin: true - - '@sanity/types@3.68.3': - resolution: {integrity: sha512-JemibQXC08rHIXgjUH/p2TCiiD9wq6+dDkCvVHOooCvaYZNhAe2S9FAEkaA6qwWtPzyY2r6/tj1eDgNeLgXN1Q==} - peerDependencies: - '@types/react': 18 || 19 - - '@sanity/types@3.94.2': - resolution: {integrity: sha512-bi7tOu0HRtDTyrHeXk+c6LS9L/on6ELWVq1mDmJX5UiN5Kzg2vV+ixhwWK9lGGthHPM0qCGhj8kd1Q4JeORmWQ==} - peerDependencies: - '@types/react': 18 || 19 - - '@sanity/ui@2.15.18': - resolution: {integrity: sha512-yN1FFMntHgRK86XTiZALA9Jr320yO1gpUplQZygqanP9DgZo3f8B/10wzIleIGaIyyOaYKCdo5oev2YYgOO+qQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: ^18 || >=19.0.0-0 - react-dom: ^18 || >=19.0.0-0 - react-is: ^18 || >=19.0.0-0 - styled-components: ^5.2 || ^6 - - '@sanity/ui@2.16.2': - resolution: {integrity: sha512-r4kiPsaW56l2kboCAY9GX3e4PrUaIe7SW/ICSrlnf5Gw9krLMIx8GNNvb0NsCg7mLSCDF1upeIEQRz01JniqYg==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: ^18 || >=19.0.0-0 - react-dom: ^18 || >=19.0.0-0 - react-is: ^18 || >=19.0.0-0 - styled-components: ^5.2 || ^6 - - '@sanity/util@3.68.3': - resolution: {integrity: sha512-J4Ov75oUvMqx221VEJkKNSibzF0D8VyCzejtwftW+jP80XguYFqBz7bAcTmwJ5vnxNUoAUCeAdZBoOYVpgew4g==} - engines: {node: '>=18'} - - '@sanity/util@3.94.2': - resolution: {integrity: sha512-EnflvzxtgLidhCY1NX6bf+9rILLRvuW6ifhYBPO0M073XNlYxSfQJvf/utRiytMwtiF90eUPVWjSIB0TYYKxXw==} - engines: {node: '>=18'} - - '@sanity/uuid@3.0.2': - resolution: {integrity: sha512-vzdhqOrX7JGbMyK40KuIwwyXHm7GMLOGuYgn3xlC09e4ZVNofUO5mgezQqnRv0JAMthIRhofqs9f6ufUjMKOvw==} - - '@sanity/visual-editing-csm@2.0.18': - resolution: {integrity: sha512-RWz4QpmbTpEOnWcpUfSlwFzskm8soi4A5sWuz+P7he2z/jOugVp6pbhsTp3ReuOYwvC2GjfPQVg/sfa51vjIcA==} - engines: {node: '>=18'} - peerDependencies: - '@sanity/client': ^7.1.0 - - '@sanity/visual-editing-types@1.1.0': - resolution: {integrity: sha512-Tb4bdy+He/ZFoCMbfPMiSq7rQHfShMOSKg6SC8zbJug9EKjfOzuWEJ5AS4YVu+8vgaPs0KKibyCoOuHTV95n0w==} - engines: {node: '>=18'} - peerDependencies: - '@sanity/client': ^7.1.0 - '@sanity/types': '*' - peerDependenciesMeta: - '@sanity/types': - optional: true - - '@sanity/visual-editing@2.15.0': - resolution: {integrity: sha512-l9MrudT4cvLjvDRlLSFSn4/JuQqQ25uQKP/NDSxPB18WQzDms2DqilLJVtLHoW1PeY3UQWMseAsFr9kqzG4vTQ==} - engines: {node: '>=18'} - peerDependencies: - '@remix-run/react': '>= 2' - '@sanity/client': ^7.1.0 - '@sveltejs/kit': '>= 2' - next: '>= 13 || >=14.3.0-canary.0 <14.3.0 || >=15.0.0-rc' - react: ^18.3 || >=19.0.0-rc - react-dom: ^18.3 || >=19.0.0-rc - react-is: ^18.3 || >=19.0.0-rc - react-router: '>= 6 || >= 7' - styled-components: ^6.1.17 - svelte: '>= 4' - peerDependenciesMeta: - '@remix-run/react': - optional: true - '@sanity/client': - optional: true - '@sveltejs/kit': - optional: true - next: - optional: true - react-router: - optional: true - svelte: - optional: true - - '@sentry-internal/browser-utils@8.55.0': - resolution: {integrity: sha512-ROgqtQfpH/82AQIpESPqPQe0UyWywKJsmVIqi3c5Fh+zkds5LUxnssTj3yNd1x+kxaPDVB023jAP+3ibNgeNDw==} - engines: {node: '>=14.18'} - - '@sentry-internal/browser-utils@9.12.0': - resolution: {integrity: sha512-GXuDEG2Ix8DmVtTkjsItWdusk2CvJ6EPWKYVqFKifxt+IAT3ZbhGZd99Rg3wdRmt9xhCNuS4QrDzDTPMPgfdCw==} - engines: {node: '>=18'} - - '@sentry-internal/feedback@8.55.0': - resolution: {integrity: sha512-cP3BD/Q6pquVQ+YL+rwCnorKuTXiS9KXW8HNKu4nmmBAyf7urjs+F6Hr1k9MXP5yQ8W3yK7jRWd09Yu6DHWOiw==} - engines: {node: '>=14.18'} - - '@sentry-internal/feedback@9.12.0': - resolution: {integrity: sha512-3+UxoT97QIXNSUQS4ATL1FFws0RkUb6PeaQN8CPndI6mFlqTW5tuVVLNg9Eo1seNg7R/dfk6WHCWrYN1NbFFKQ==} - engines: {node: '>=18'} - - '@sentry-internal/replay-canvas@8.55.0': - resolution: {integrity: sha512-nIkfgRWk1091zHdu4NbocQsxZF1rv1f7bbp3tTIlZYbrH62XVZosx5iHAuZG0Zc48AETLE7K4AX9VGjvQj8i9w==} - engines: {node: '>=14.18'} - - '@sentry-internal/replay-canvas@9.12.0': - resolution: {integrity: sha512-p8LuKZgWT/CoQBbDOXkSGjWWnc8WsnAayWgna8M/ZFWNITCNEM2rCuqZOyWOElIlrni+M7qoEA3jS7MZe8Ejxw==} - engines: {node: '>=18'} - - '@sentry-internal/replay@8.55.0': - resolution: {integrity: sha512-roCDEGkORwolxBn8xAKedybY+Jlefq3xYmgN2fr3BTnsXjSYOPC7D1/mYqINBat99nDtvgFvNfRcZPiwwZ1hSw==} - engines: {node: '>=14.18'} - - '@sentry-internal/replay@9.12.0': - resolution: {integrity: sha512-njEQosFeO/UX+gG+DMRANkPUuz6OIJLb+A1GVylhq9adUgFQydQ9Ay3v7/x1gMhdfHVP6Jeb27qkti0BWYbzBQ==} - engines: {node: '>=18'} - - '@sentry/babel-plugin-component-annotate@3.2.4': - resolution: {integrity: sha512-yBzRn3GEUSv1RPtE4xB4LnuH74ZxtdoRJ5cmQ9i6mzlmGDxlrnKuvem5++AolZTE9oJqAD3Tx2rd1PqmpWnLoA==} - engines: {node: '>= 14'} - - '@sentry/browser@8.55.0': - resolution: {integrity: sha512-1A31mCEWCjaMxJt6qGUK+aDnLDcK6AwLAZnqpSchNysGni1pSn1RWSmk9TBF8qyTds5FH8B31H480uxMPUJ7Cw==} - engines: {node: '>=14.18'} - - '@sentry/browser@9.12.0': - resolution: {integrity: sha512-4xQYoZqi+VVhNvlhWiwRd57+SMr3Og4sLjuayAA+zIp1Wx/bDcIld697cugLwml/BR+mVJI2eokkgh1CBl6zag==} - engines: {node: '>=18'} - - '@sentry/bundler-plugin-core@3.2.4': - resolution: {integrity: sha512-YMj9XW5W2JA89EeweE7CPKLDz245LBsI1JhCmqpt/bjSvmsSIAAPsLYnvIJBS3LQFm0OhtG8NB54PTi96dAcMA==} - engines: {node: '>= 14'} - - '@sentry/cli-darwin@2.42.2': - resolution: {integrity: sha512-GtJSuxER7Vrp1IpxdUyRZzcckzMnb4N5KTW7sbTwUiwqARRo+wxS+gczYrS8tdgtmXs5XYhzhs+t4d52ITHMIg==} - engines: {node: '>=10'} - os: [darwin] - - '@sentry/cli-linux-arm64@2.42.2': - resolution: {integrity: sha512-BOxzI7sgEU5Dhq3o4SblFXdE9zScpz6EXc5Zwr1UDZvzgXZGosUtKVc7d1LmkrHP8Q2o18HcDWtF3WvJRb5Zpw==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux, freebsd] - - '@sentry/cli-linux-arm@2.42.2': - resolution: {integrity: sha512-7udCw+YL9lwq+9eL3WLspvnuG+k5Icg92YE7zsteTzWLwgPVzaxeZD2f8hwhsu+wmL+jNqbpCRmktPteh3i2mg==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux, freebsd] - - '@sentry/cli-linux-i686@2.42.2': - resolution: {integrity: sha512-Sw/dQp5ZPvKnq3/y7wIJyxTUJYPGoTX/YeMbDs8BzDlu9to2LWV3K3r7hE7W1Lpbaw4tSquUHiQjP5QHCOS7aQ==} - engines: {node: '>=10'} - cpu: [x86, ia32] - os: [linux, freebsd] - - '@sentry/cli-linux-x64@2.42.2': - resolution: {integrity: sha512-mU4zUspAal6TIwlNLBV5oq6yYqiENnCWSxtSQVzWs0Jyq97wtqGNG9U+QrnwjJZ+ta/hvye9fvL2X25D/RxHQw==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux, freebsd] - - '@sentry/cli-win32-i686@2.42.2': - resolution: {integrity: sha512-iHvFHPGqgJMNqXJoQpqttfsv2GI3cGodeTq4aoVLU/BT3+hXzbV0x1VpvvEhncJkDgDicJpFLM8sEPHb3b8abw==} - engines: {node: '>=10'} - cpu: [x86, ia32] - os: [win32] - - '@sentry/cli-win32-x64@2.42.2': - resolution: {integrity: sha512-vPPGHjYoaGmfrU7xhfFxG7qlTBacroz5NdT+0FmDn6692D8IvpNXl1K+eV3Kag44ipJBBeR8g1HRJyx/F/9ACw==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - - '@sentry/cli@2.42.2': - resolution: {integrity: sha512-spb7S/RUumCGyiSTg8DlrCX4bivCNmU/A1hcfkwuciTFGu8l5CDc2I6jJWWZw8/0enDGxuj5XujgXvU5tr4bxg==} - engines: {node: '>= 10'} - hasBin: true - - '@sentry/core@8.55.0': - resolution: {integrity: sha512-6g7jpbefjHYs821Z+EBJ8r4Z7LT5h80YSWRJaylGS4nW5W5Z2KXzpdnyFarv37O7QjauzVC2E+PABmpkw5/JGA==} - engines: {node: '>=14.18'} - - '@sentry/core@9.12.0': - resolution: {integrity: sha512-jOqQK/90uzHmsBvkPTj/DAEFvA5poX4ZRyC7LE1zjg4F5jdOp3+M4W3qCy0CkSTu88Zu5VWBoppCU2Bs34XEqg==} - engines: {node: '>=18'} - - '@sentry/nextjs@9.12.0': - resolution: {integrity: sha512-sCKbziX/ofQXuCuoRkOC4oGH2L44nnvrJyLSiWpZ/4wC/5MN/O5pE7XZfT3+sVfVdqlpWo0zjblvuga6I9vw9A==} - engines: {node: '>=18'} - peerDependencies: - next: ^13.2.0 || ^14.0 || ^15.0.0-rc.0 - - '@sentry/node@9.12.0': - resolution: {integrity: sha512-NZHneJovlLOdde85vJAIs7vIki36EfJ234d6YXHUE+874sxKMknB/wrzAZi5XS5nqT3kqIXD5KgjgDTjrhAENQ==} - engines: {node: '>=18'} - - '@sentry/opentelemetry@9.12.0': - resolution: {integrity: sha512-jQfI/UmgDDbcWY439r1Jz0Y4mqNn3a2JwruWfCHWzIqQMOgBzkzcp9lbZMx9iU+x1iZTTp9s80Dy5F9nG4KKMQ==} - engines: {node: '>=18'} - peerDependencies: - '@opentelemetry/api': ^1.9.0 - '@opentelemetry/context-async-hooks': ^1.30.1 - '@opentelemetry/core': ^1.30.1 - '@opentelemetry/instrumentation': ^0.57.1 - '@opentelemetry/sdk-trace-base': ^1.30.1 - '@opentelemetry/semantic-conventions': ^1.28.0 - - '@sentry/react@8.55.0': - resolution: {integrity: sha512-/qNBvFLpvSa/Rmia0jpKfJdy16d4YZaAnH/TuKLAtm0BWlsPQzbXCU4h8C5Hsst0Do0zG613MEtEmWpWrVOqWA==} - engines: {node: '>=14.18'} - peerDependencies: - react: ^16.14.0 || 17.x || 18.x || 19.x - - '@sentry/react@9.12.0': - resolution: {integrity: sha512-5JTSPFEo3FC64DKky615YgF5ql0OePX7fhK/ZM3AFr2KPLiDteU8xkQqqDI5qk4zR4dnCxdGis6y/hXujALCOQ==} - engines: {node: '>=18'} - peerDependencies: - react: ^16.14.0 || 17.x || 18.x || 19.x - - '@sentry/vercel-edge@9.12.0': - resolution: {integrity: sha512-CrcwBCRdGPKfS0DlNQZI8sr5VemO8hObjiDem0SoR20m3VpYLQh3bJSvUpJXTDArAubP4Jk4YjiQQijPJTBrRA==} - engines: {node: '>=18'} - - '@sentry/webpack-plugin@3.2.4': - resolution: {integrity: sha512-LCuNu5LXPSCq2BNke1zvEW8CXL4SPBsCjYexAx51PZ6Lp87VxWcCxGqXhr37MGpYwY10A1r31/XOe69iXHJjGA==} - engines: {node: '>= 14'} - peerDependencies: - webpack: '>=4.40.0' - - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - - '@sinonjs/commons@3.0.1': - resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - - '@sinonjs/fake-timers@10.3.0': - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - - '@stripe/react-stripe-js@3.6.0': - resolution: {integrity: sha512-zEnaUmTOsu7zhl3RWbZ0l1dRiad+QIbcAYzQfF+yYelURJowhAwesRHKWH+qGAIBEpkO6/VCLFHhVLH9DtPlnw==} - peerDependencies: - '@stripe/stripe-js': '>=1.44.1 <8.0.0' - react: '>=16.8.0 <20.0.0' - react-dom: '>=16.8.0 <20.0.0' - - '@stripe/stripe-js@7.0.0': - resolution: {integrity: sha512-0AWkP+hoIXB5O34FGY7jh687ZPlOqLqMkJDkiSXcp4TaWWidnxjsZSp0xkjyAWbIz4+j1BFXDAK01Rqb7ceBRA==} - engines: {node: '>=12.16'} - - '@swc/helpers@0.5.15': - resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} - - '@swc/helpers@0.5.17': - resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} - - '@t3-oss/env-core@0.13.0': - resolution: {integrity: sha512-bV7LAvwoeyigLXyjBnlgbKb8S9l+E29uSzWtU1GJYuKMQ6qF9dvFbjakkgoxR+tXFoxg7aGbg8DdEfwNihvF8Q==} - peerDependencies: - arktype: ^2.1.0 - typescript: '>=5.0.0' - valibot: ^1.0.0-beta.7 || ^1.0.0 - zod: ^3.24.0 || ^4.0.0-beta.0 - peerDependenciesMeta: - typescript: - optional: true - valibot: - optional: true - zod: - optional: true - - '@t3-oss/env-nextjs@0.13.0': - resolution: {integrity: sha512-l+3H7w1rezfPhnfi5DPKeoLaMhsG8Os2WtoSA1Sq/+X+szccidazNmTAGKjp4v03IuUz4bsxYvU9DzQAX7atkg==} - peerDependencies: - typescript: '>=5.0.0' - valibot: ^1.0.0-beta.7 || ^1.0.0 - zod: ^3.24.0 || ^4.0.0-beta.0 - peerDependenciesMeta: - typescript: - optional: true - valibot: - optional: true - zod: - optional: true - - '@tailwindcss/node@4.1.3': - resolution: {integrity: sha512-H/6r6IPFJkCfBJZ2dKZiPJ7Ueb2wbL592+9bQEl2r73qbX6yGnmQVIfiUvDRB2YI0a3PWDrzUwkvQx1XW1bNkA==} - - '@tailwindcss/oxide-android-arm64@4.1.3': - resolution: {integrity: sha512-cxklKjtNLwFl3mDYw4XpEfBY+G8ssSg9ADL4Wm6//5woi3XGqlxFsnV5Zb6v07dxw1NvEX2uoqsxO/zWQsgR+g==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [android] - - '@tailwindcss/oxide-darwin-arm64@4.1.3': - resolution: {integrity: sha512-mqkf2tLR5VCrjBvuRDwzKNShRu99gCAVMkVsaEOFvv6cCjlEKXRecPu9DEnxp6STk5z+Vlbh1M5zY3nQCXMXhw==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - - '@tailwindcss/oxide-darwin-x64@4.1.3': - resolution: {integrity: sha512-7sGraGaWzXvCLyxrc7d+CCpUN3fYnkkcso3rCzwUmo/LteAl2ZGCDlGvDD8Y/1D3ngxT8KgDj1DSwOnNewKhmg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - - '@tailwindcss/oxide-freebsd-x64@4.1.3': - resolution: {integrity: sha512-E2+PbcbzIReaAYZe997wb9rId246yDkCwAakllAWSGqe6VTg9hHle67hfH6ExjpV2LSK/siRzBUs5wVff3RW9w==} - engines: {node: '>= 10'} - cpu: [x64] - os: [freebsd] - - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.3': - resolution: {integrity: sha512-GvfbJ8wjSSjbLFFE3UYz4Eh8i4L6GiEYqCtA8j2Zd2oXriPuom/Ah/64pg/szWycQpzRnbDiJozoxFU2oJZyfg==} - engines: {node: '>= 10'} - cpu: [arm] - os: [linux] - - '@tailwindcss/oxide-linux-arm64-gnu@4.1.3': - resolution: {integrity: sha512-35UkuCWQTeG9BHcBQXndDOrpsnt3Pj9NVIB4CgNiKmpG8GnCNXeMczkUpOoqcOhO6Cc/mM2W7kaQ/MTEENDDXg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@tailwindcss/oxide-linux-arm64-musl@4.1.3': - resolution: {integrity: sha512-dm18aQiML5QCj9DQo7wMbt1Z2tl3Giht54uVR87a84X8qRtuXxUqnKQkRDK5B4bCOmcZ580lF9YcoMkbDYTXHQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@tailwindcss/oxide-linux-x64-gnu@4.1.3': - resolution: {integrity: sha512-LMdTmGe/NPtGOaOfV2HuO7w07jI3cflPrVq5CXl+2O93DCewADK0uW1ORNAcfu2YxDUS035eY2W38TxrsqngxA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@tailwindcss/oxide-linux-x64-musl@4.1.3': - resolution: {integrity: sha512-aalNWwIi54bbFEizwl1/XpmdDrOaCjRFQRgtbv9slWjmNPuJJTIKPHf5/XXDARc9CneW9FkSTqTbyvNecYAEGw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@tailwindcss/oxide-win32-arm64-msvc@4.1.3': - resolution: {integrity: sha512-PEj7XR4OGTGoboTIAdXicKuWl4EQIjKHKuR+bFy9oYN7CFZo0eu74+70O4XuERX4yjqVZGAkCdglBODlgqcCXg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - - '@tailwindcss/oxide-win32-x64-msvc@4.1.3': - resolution: {integrity: sha512-T8gfxECWDBENotpw3HR9SmNiHC9AOJdxs+woasRZ8Q/J4VHN0OMs7F+4yVNZ9EVN26Wv6mZbK0jv7eHYuLJLwA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - - '@tailwindcss/oxide@4.1.3': - resolution: {integrity: sha512-t16lpHCU7LBxDe/8dCj9ntyNpXaSTAgxWm1u2XQP5NiIu4KGSyrDJJRlK9hJ4U9yJxx0UKCVI67MJWFNll5mOQ==} - engines: {node: '>= 10'} - - '@tailwindcss/postcss@4.1.3': - resolution: {integrity: sha512-6s5nJODm98F++QT49qn8xJKHQRamhYHfMi3X7/ltxiSQ9dyRsaFSfFkfaMsanWzf+TMYQtbk8mt5f6cCVXJwfg==} - - '@tanstack/eslint-plugin-query@5.83.1': - resolution: {integrity: sha512-tdkpPFfzkTksN9BIlT/qjixSAtKrsW6PUVRwdKWaOcag7DrD1vpki3UzzdfMQGDRGeg1Ue1Dg+rcl5FJGembNg==} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - - '@tanstack/query-core@5.83.1': - resolution: {integrity: sha512-OG69LQgT7jSp+5pPuCfzltq/+7l2xoweggjme9vlbCPa/d7D7zaqv5vN/S82SzSYZ4EDLTxNO1PWrv49RAS64Q==} - - '@tanstack/query-devtools@5.84.0': - resolution: {integrity: sha512-fbF3n+z1rqhvd9EoGp5knHkv3p5B2Zml1yNRjh7sNXklngYI5RVIWUrUjZ1RIcEoscarUb0+bOvIs5x9dwzOXQ==} - - '@tanstack/react-query-devtools@5.84.2': - resolution: {integrity: sha512-ojJ66QoW9noqK35Lsmfqpfucj6wuOxLL2TYwEwpvU+iUQ5R/7TKpapWvpy9kZyNSl0mxv5mpS+ImfR8aL8/x3g==} - peerDependencies: - '@tanstack/react-query': ^5.84.2 - react: ^18 || ^19 - - '@tanstack/react-query@5.84.2': - resolution: {integrity: sha512-cZadySzROlD2+o8zIfbD978p0IphuQzRWiiH3I2ugnTmz4jbjc0+TdibpwqxlzynEen8OulgAg+rzdNF37s7XQ==} - peerDependencies: - react: ^18 || ^19 - - '@tanstack/react-table@8.21.2': - resolution: {integrity: sha512-11tNlEDTdIhMJba2RBH+ecJ9l1zgS2kjmexDPAraulc8jeNA4xocSNeyzextT0XJyASil4XsCYlJmf5jEWAtYg==} - engines: {node: '>=12'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - - '@tanstack/react-table@8.21.3': - resolution: {integrity: sha512-5nNMTSETP4ykGegmVkhjcS8tTLW6Vl4axfEGQN3v0zdHYbK4UfoqfPChclTrJ4EoK9QynqAu9oUf8VEmrpZ5Ww==} - engines: {node: '>=12'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - - '@tanstack/react-virtual@3.13.11': - resolution: {integrity: sha512-u5EaOSJOq08T9NXFuDopMdxZBNDFuEMohIFFU45fBYDXXh9SjYdbpNq1OLFSOpQnDRPjqgmY96ipZTkzom9t9Q==} - 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/table-core@8.21.2': - resolution: {integrity: sha512-uvXk/U4cBiFMxt+p9/G7yUWI/UbHYbyghLCjlpWZ3mLeIZiUBSKcUnw9UnKkdRz7Z/N4UBuFLWQdJCjUe7HjvA==} - engines: {node: '>=12'} - - '@tanstack/table-core@8.21.3': - resolution: {integrity: sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==} - engines: {node: '>=12'} - - '@tanstack/virtual-core@3.13.11': - resolution: {integrity: sha512-ORL6UyuZJ0D9X33LDR4TcgcM+K2YiS2j4xbvH1vnhhObwR1Z4dKwPTL/c0kj2Yeb4Yp2lBv1wpyVaqlohk8zpg==} - - '@testing-library/dom@10.4.0': - resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} - engines: {node: '>=18'} - - '@testing-library/jest-dom@6.6.3': - resolution: {integrity: sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==} - engines: {node: '>=14', npm: '>=6', yarn: '>=1'} - - '@testing-library/react@16.3.0': - resolution: {integrity: sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==} - engines: {node: '>=18'} - peerDependencies: - '@testing-library/dom': ^10.0.0 - '@types/react': ^18.0.0 || ^19.0.0 - '@types/react-dom': ^18.0.0 || ^19.0.0 - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@testing-library/user-event@14.6.1': - resolution: {integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==} - engines: {node: '>=12', npm: '>=6'} - peerDependencies: - '@testing-library/dom': '>=7.21.4' - - '@tolokoban/tgd@2.0.33': - resolution: {integrity: sha512-vnvTiEFMz8TbA1/wkPDRa+Yh9Q32LpAIG9zRyYGHeOkk0tma/Q0JJqgCWDVGoQJm0vvZMqJmeF7AIcpOi0uE2A==} - - '@tootallnate/once@2.0.0': - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - - '@turf/area@7.2.0': - resolution: {integrity: sha512-zuTTdQ4eoTI9nSSjerIy4QwgvxqwJVciQJ8tOPuMHbXJ9N/dNjI7bU8tasjhxas/Cx3NE9NxVHtNpYHL0FSzoA==} - - '@turf/bbox@7.2.0': - resolution: {integrity: sha512-wzHEjCXlYZiDludDbXkpBSmv8Zu6tPGLmJ1sXQ6qDwpLE1Ew3mcWqt8AaxfTP5QwDNQa3sf2vvgTEzNbPQkCiA==} - - '@turf/centroid@7.2.0': - resolution: {integrity: sha512-yJqDSw25T7P48au5KjvYqbDVZ7qVnipziVfZ9aSo7P2/jTE7d4BP21w0/XLi3T/9bry/t9PR1GDDDQljN4KfDw==} - - '@turf/helpers@7.2.0': - resolution: {integrity: sha512-cXo7bKNZoa7aC7ydLmUR02oB3IgDe7MxiPuRz3cCtYQHn+BJ6h1tihmamYDWWUlPHgSNF0i3ATc4WmDECZafKw==} - - '@turf/meta@7.2.0': - resolution: {integrity: sha512-igzTdHsQc8TV1RhPuOLVo74Px/hyPrVgVOTgjWQZzt3J9BVseCdpfY/0cJBdlSRI4S/yTmmHl7gAqjhpYH5Yaw==} - - '@tybys/wasm-util@0.9.0': - resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} - - '@types/ajv@1.0.4': - resolution: {integrity: sha512-hq9s/qlTIJ2KYjs9MDt/ALvO7g/xIfGsVr2kjuNYLC52TieBkKAIQr7Fhk7jiQfmRXLQawY4nVgc/7wvxHow0g==} - deprecated: This is a stub types definition. ajv provides its own type definitions, so you do not need this installed. - - '@types/aria-query@5.0.4': - resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} - - '@types/aws-lambda@8.10.152': - resolution: {integrity: sha512-soT/c2gYBnT5ygwiHPmd9a1bftj462NWVk2tKCc1PYHSIacB2UwbTS2zYG4jzag1mRDuzg/OjtxQjQ2NKRB6Rw==} - - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - - '@types/babel__generator@7.27.0': - resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} - - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - - '@types/babel__traverse@7.20.7': - resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} - - '@types/base16@1.0.5': - resolution: {integrity: sha512-OzOWrTluG9cwqidEzC/Q6FAmIPcnZfm8BFRlIx0+UIUqnuAmi5OS88O0RpT3Yz6qdmqObvUhasrbNsCofE4W9A==} - - '@types/bunyan@1.8.11': - resolution: {integrity: sha512-758fRH7umIMk5qt5ELmRMff4mLDlN+xyYzC+dkPTdKwbSkJFvz6xwyScrytPU0QIBbRRwbiE8/BIg8bpajerNQ==} - - '@types/canvas-confetti@1.9.0': - resolution: {integrity: sha512-aBGj/dULrimR1XDZLtG9JwxX1b4HPRF6CX9Yfwh3NvstZEm1ZL7RBnel4keCPSqs1ANRu1u2Aoz9R+VmtjYuTg==} - - '@types/chroma-js@2.4.5': - resolution: {integrity: sha512-6ISjhzJViaPCy2q2e6PgK+8HcHQDQ0V2LDiKmYAh+jJlLqDa6HbwDh0wOevHY0kHHUx0iZwjSRbVD47WOUx5EQ==} - - '@types/command-line-args@5.2.3': - resolution: {integrity: sha512-uv0aG6R0Y8WHZLTamZwtfsDLVRnOa+n+n5rEvFWL5Na5gZ8V2Teab/duDPFzIIIhs9qizDpcavCusCLJZu62Kw==} - - '@types/command-line-usage@5.0.4': - resolution: {integrity: sha512-BwR5KP3Es/CSht0xqBcUXS3qCAUVXwpRKsV2+arxeb65atasuXG9LykC9Ab10Cw3s2raH92ZqOeILaQbsB2ACg==} - - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - - '@types/cookie@0.6.0': - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} - - '@types/d3-array@3.2.1': - resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} - - '@types/d3-axis@3.0.6': - resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==} - - '@types/d3-brush@3.0.6': - resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==} - - '@types/d3-chord@3.0.6': - resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==} - - '@types/d3-color@3.1.3': - resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} - - '@types/d3-contour@3.0.6': - resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==} - - '@types/d3-delaunay@6.0.4': - resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==} - - '@types/d3-dispatch@3.0.6': - resolution: {integrity: sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==} - - '@types/d3-drag@3.0.7': - resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==} - - '@types/d3-dsv@3.0.7': - resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==} - - '@types/d3-ease@3.0.2': - resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} - - '@types/d3-fetch@3.0.7': - resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==} - - '@types/d3-force@3.0.10': - resolution: {integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==} - - '@types/d3-format@3.0.4': - resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==} - - '@types/d3-geo@3.1.0': - resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==} - - '@types/d3-hierarchy@3.1.7': - resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==} - - '@types/d3-interpolate@3.0.4': - resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} - - '@types/d3-path@3.1.1': - resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==} - - '@types/d3-polygon@3.0.2': - resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==} - - '@types/d3-quadtree@3.0.6': - resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==} - - '@types/d3-random@3.0.3': - resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==} - - '@types/d3-scale-chromatic@3.1.0': - resolution: {integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==} - - '@types/d3-scale@4.0.9': - resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==} - - '@types/d3-selection@3.0.11': - resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==} - - '@types/d3-shape@3.1.7': - resolution: {integrity: sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==} - - '@types/d3-time-format@4.0.3': - resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==} - - '@types/d3-time@3.0.4': - resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==} - - '@types/d3-timer@3.0.2': - resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} - - '@types/d3-transition@3.0.9': - resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==} - - '@types/d3-zoom@3.0.8': - resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} - - '@types/d3@7.4.3': - resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==} - - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - - '@types/draco3d@1.4.10': - resolution: {integrity: sha512-AX22jp8Y7wwaBgAixaSvkoG4M/+PlAcm3Qs4OW8yT9DM4xUpWKeFhLueTAyZF39pviAdcDdeJoACapiAceqNcw==} - - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - - '@types/estree-jsx@1.0.5': - resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - - '@types/estree@1.0.7': - resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} - - '@types/estree@1.0.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - - '@types/event-source-polyfill@1.0.5': - resolution: {integrity: sha512-iaiDuDI2aIFft7XkcwMzDWLqo7LVDixd2sR6B4wxJut9xcp/Ev9bO4EFg4rm6S9QxATLBj5OPxdeocgmhjwKaw==} - - '@types/eventsource@1.1.15': - resolution: {integrity: sha512-XQmGcbnxUNa06HR3VBVkc9+A2Vpi9ZyLJcdS5dwaQQ/4ZMWFO+5c90FnMUpbtMZwB/FChoYHwuVg8TvkECacTA==} - - '@types/file-saver@2.0.7': - resolution: {integrity: sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==} - - '@types/follow-redirects@1.14.4': - resolution: {integrity: sha512-GWXfsD0Jc1RWiFmMuMFCpXMzi9L7oPDVwxUnZdg89kDNnqsRfUKXEtUYtA98A6lig1WXH/CYY/fvPW9HuN5fTA==} - - '@types/geojson-vt@3.2.5': - resolution: {integrity: sha512-qDO7wqtprzlpe8FfQ//ClPV9xiuoh2nkIgiouIptON9w5jvD/fA4szvP9GBlDVdJ5dldAl0kX/sy3URbWwLx0g==} - - '@types/geojson@7946.0.16': - resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} - - '@types/graceful-fs@4.1.9': - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} - - '@types/hast@2.3.10': - resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} - - '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - - '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - - '@types/istanbul-lib-report@3.0.3': - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - - '@types/istanbul-reports@3.0.4': - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - - '@types/jest@29.5.14': - resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} - - '@types/jsdom@20.0.1': - resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - - '@types/katex@0.16.7': - resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==} - - '@types/lodash-es@4.17.12': - resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} - - '@types/lodash@4.17.16': - resolution: {integrity: sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==} - - '@types/mapbox__point-geometry@0.1.4': - resolution: {integrity: sha512-mUWlSxAmYLfwnRBmgYV86tgYmMIICX4kza8YnE/eIlywGe2XoOxlpVnXWwir92xRLjwyarqwpu2EJKD2pk0IUA==} - - '@types/mapbox__vector-tile@1.3.4': - resolution: {integrity: sha512-bpd8dRn9pr6xKvuEBQup8pwQfD4VUyqO/2deGjfpe6AwC8YRlyEipvefyRJUSiCJTZuCb8Pl1ciVV5ekqJ96Bg==} - - '@types/mathjax@0.0.40': - resolution: {integrity: sha512-rHusx08LCg92WJxrsM3SPjvLTSvK5C+gealtSuhKbEOcUZfWlwigaFoPLf6Dfxhg4oryN5qP9Sj7zOQ4HYXINw==} - - '@types/mdast@4.0.4': - resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - - '@types/memcached@2.2.10': - resolution: {integrity: sha512-AM9smvZN55Gzs2wRrqeMHVP7KE8KWgCJO/XL5yCly2xF6EKa4YlbpK+cLSAH4NG/Ah64HrlegmGqW8kYws7Vxg==} - - '@types/minimist@1.2.5': - resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} - - '@types/ms@2.1.0': - resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - - '@types/mysql@2.15.26': - resolution: {integrity: sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==} - - '@types/mysql@2.15.27': - resolution: {integrity: sha512-YfWiV16IY0OeBfBCk8+hXKmdTKrKlwKN1MNKAPBu5JYxLwBEZl7QzeEpGnlZb3VMGJrrGmB84gXiH+ofs/TezA==} - - '@types/node@20.17.30': - resolution: {integrity: sha512-7zf4YyHA+jvBNfVrk2Gtvs6x7E8V+YDW05bNfG2XkWDJfYRXrTiP/DsB2zSYTaHX0bGIujTBQdMVAhb+j7mwpg==} - - '@types/node@22.14.0': - resolution: {integrity: sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA==} - - '@types/node@22.16.4': - resolution: {integrity: sha512-PYRhNtZdm2wH/NT2k/oAJ6/f2VD2N2Dag0lGlx2vWgMSJXGNmlce5MiTQzoWAiIJtso30mjnfQCOKVH+kAQC/g==} - - '@types/normalize-package-data@2.4.4': - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - - '@types/offscreencanvas@2019.7.3': - resolution: {integrity: sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==} - - '@types/oracledb@6.5.2': - resolution: {integrity: sha512-kK1eBS/Adeyis+3OlBDMeQQuasIDLUYXsi2T15ccNJ0iyUpQ4xDF7svFu3+bGVrI0CMBUclPciz+lsQR3JX3TQ==} - - '@types/parse-json@4.0.2': - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - - '@types/pbf@3.0.5': - resolution: {integrity: sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==} - - '@types/pg-pool@2.0.6': - resolution: {integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==} - - '@types/pg@8.15.5': - resolution: {integrity: sha512-LF7lF6zWEKxuT3/OR8wAZGzkg4ENGXFNyiV/JeOt9z5B+0ZVwbql9McqX5c/WStFq1GaGso7H1AzP/qSzmlCKQ==} - - '@types/pg@8.6.1': - resolution: {integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==} - - '@types/plotly.js-dist-min@2.3.4': - resolution: {integrity: sha512-ISwLFV6Zs/v3DkaRFLyk2rvYAfVdnYP2VVVy7h+fBDWw52sn7sMUzytkWiN4M75uxr1uz1uiBioePTDpAfoFIg==} - - '@types/plotly.js@2.35.5': - resolution: {integrity: sha512-9xczlf0FBsYXlUfKX4OsKBQs4d6CPRuRpfXXi5lp276yHi1BaI+FiVq6jXwt7JlDq84nMjWWU5LIN2Rpeg+vhg==} - - '@types/react-dom@19.1.1': - resolution: {integrity: sha512-jFf/woGTVTjUJsl2O7hcopJ1r0upqoq/vIOoCj0yLh3RIXxWcljlpuZ+vEBRXsymD1jhfeJrlyTy/S1UW+4y1w==} - peerDependencies: - '@types/react': ^19.0.0 - - '@types/react-is@19.0.0': - resolution: {integrity: sha512-71dSZeeJ0t3aoPyY9x6i+JNSvg5m9EF2i2OlSZI5QoJuI8Ocgor610i+4A10TQmURR+0vLwcVCEYFpXdzM1Biw==} - - '@types/react-plotly.js@2.6.3': - resolution: {integrity: sha512-HBQwyGuu/dGXDsWhnQrhH+xcJSsHvjkwfSRjP+YpOsCCWryIuXF78ZCBjpfgO3sCc0Jo8sYp4NOGtqT7Cn3epQ==} - - '@types/react-reconciler@0.28.9': - resolution: {integrity: sha512-HHM3nxyUZ3zAylX8ZEyrDNd2XZOnQ0D5XfunJF5FLQnZbHHYq4UWvW1QfelQNXv1ICNkwYhfxjwfnqivYB6bFg==} - peerDependencies: - '@types/react': '*' - - '@types/react-resizable@3.0.8': - resolution: {integrity: sha512-Pcvt2eGA7KNXldt1hkhVhAgZ8hK41m0mp89mFgQi7LAAEZiaLgm4fHJ5zbJZ/4m2LVaAyYrrRRv1LHDcrGQanA==} - - '@types/react-syntax-highlighter@15.5.13': - resolution: {integrity: sha512-uLGJ87j6Sz8UaBAooU0T6lWJ0dBmjZgN1PZTrj05TNql2/XpC6+4HhMT5syIdFUUt+FASfCeLLv4kBygNU+8qA==} - - '@types/react-transition-group@4.4.12': - resolution: {integrity: sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==} - peerDependencies: - '@types/react': '*' - - '@types/react@19.1.0': - resolution: {integrity: sha512-UaicktuQI+9UKyA4njtDOGBD/67t8YEBt2xdfqu8+gP9hqPUPsiXlNPcpS2gVdjmis5GKPG3fCxbQLVgxsQZ8w==} - - '@types/shallow-equals@1.0.3': - resolution: {integrity: sha512-xZx/hZsf1p9J5lGN/nGTsuW/chJCdlyGxilwg1TS78rygBCU5bpY50zZiFcIimlnl0p41kAyaASsy0bqU7WyBA==} - - '@types/shimmer@1.2.0': - resolution: {integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==} - - '@types/speakingurl@13.0.6': - resolution: {integrity: sha512-ywkRHNHBwq0mFs/2HRgW6TEBAzH66G8f2Txzh1aGR0UC9ZoAUHfHxLZGDhwMpck4BpSnB61eNFIFmlV+TJ+KUA==} - - '@types/stack-utils@2.0.3': - resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - - '@types/stats.js@0.17.3': - resolution: {integrity: sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==} - - '@types/statuses@2.0.5': - resolution: {integrity: sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==} - - '@types/stylis@4.2.5': - resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==} - - '@types/supercluster@7.1.3': - resolution: {integrity: sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==} - - '@types/tar-stream@3.1.3': - resolution: {integrity: sha512-Zbnx4wpkWBMBSu5CytMbrT5ZpMiF55qgM+EpHzR4yIDu7mv52cej8hTkOc6K+LzpkOAbxwn/m7j3iO+/l42YkQ==} - - '@types/tedious@4.0.14': - resolution: {integrity: sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==} - - '@types/three@0.159.0': - resolution: {integrity: sha512-2gybdh7HtX+rGUgslzK7QEJfzD2I0qrbUGzKk+dK0FDx49UHkNX0rqZVRzIgeFjBd1HzzhNNgwNoMacm3Wyc7w==} - - '@types/tough-cookie@4.0.5': - resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} - - '@types/trusted-types@2.0.7': - resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - - '@types/unist@2.0.11': - resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} - - '@types/unist@3.0.3': - resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - - '@types/use-sync-external-store@1.5.0': - resolution: {integrity: sha512-5dyB8nLC/qogMrlCizZnYWQTA4lnb/v+It+sqNl5YnSRAPMlIqY/X0Xn+gZw8vOL+TgTTr28VEbn3uf8fUtAkw==} - - '@types/uuid@8.3.4': - resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} - - '@types/webxr@0.5.21': - resolution: {integrity: sha512-geZIAtLzjGmgY2JUi6VxXdCrTb99A7yP49lxLr2Nm/uIK0PkkxcEi4OGhoGDO4pxCf3JwGz2GiJL2Ej4K2bKaA==} - - '@types/which@3.0.4': - resolution: {integrity: sha512-liyfuo/106JdlgSchJzXEQCVArk0CvevqPote8F8HgWgJ3dRCcTHgJIsLDuee0kxk/mhbInzIZk3QWSZJ8R+2w==} - - '@types/yargs-parser@21.0.3': - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - - '@types/yargs@17.0.33': - resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - - '@typescript-eslint/eslint-plugin@7.18.0': - resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@7.18.0': - resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/project-service@8.39.0': - resolution: {integrity: sha512-CTzJqaSq30V/Z2Og9jogzZt8lJRR5TKlAdXmWgdu4hgcC9Kww5flQ+xFvMxIBWVNdxJO7OifgdOK4PokMIWPew==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/scope-manager@7.18.0': - resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/scope-manager@8.39.0': - resolution: {integrity: sha512-8QOzff9UKxOh6npZQ/4FQu4mjdOCGSdO3p44ww0hk8Vu+IGbg0tB/H1LcTARRDzGCC8pDGbh2rissBuuoPgH8A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/tsconfig-utils@8.39.0': - resolution: {integrity: sha512-Fd3/QjmFV2sKmvv3Mrj8r6N8CryYiCS8Wdb/6/rgOXAWGcFuc+VkQuG28uk/4kVNVZBQuuDHEDUpo/pQ32zsIQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/type-utils@7.18.0': - resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@7.18.0': - resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/types@8.39.0': - resolution: {integrity: sha512-ArDdaOllnCj3yn/lzKn9s0pBQYmmyme/v1HbGIGB0GB/knFI3fWMHloC+oYTJW46tVbYnGKTMDK4ah1sC2v0Kg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@7.18.0': - resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/typescript-estree@8.39.0': - resolution: {integrity: sha512-ndWdiflRMvfIgQRpckQQLiB5qAKQ7w++V4LlCHwp62eym1HLB/kw7D9f2e8ytONls/jt89TEasgvb+VwnRprsw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/utils@7.18.0': - resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - - '@typescript-eslint/utils@8.39.0': - resolution: {integrity: sha512-4GVSvNA0Vx1Ktwvf4sFE+exxJ3QGUorQG1/A5mRfRNZtkBT2xrA/BCO2H0eALx/PnvCS6/vmYwRdDA41EoffkQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/visitor-keys@7.18.0': - resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/visitor-keys@8.39.0': - resolution: {integrity: sha512-ldgiJ+VAhQCfIjeOgu8Kj5nSxds0ktPOSO9p4+0VDH2R2pLvQraaM5Oen2d7NxzMCm+Sn/vJT+mv2H5u6b/3fA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@ungap/structured-clone@1.3.0': - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - - '@unrs/resolver-binding-darwin-arm64@1.4.1': - resolution: {integrity: sha512-8Tv+Bsd0BjGwfEedIyor4inw8atppRxM5BdUnIt+3mAm/QXUm7Dw74CHnXpfZKXkp07EXJGiA8hStqCINAWhdw==} - cpu: [arm64] - os: [darwin] - - '@unrs/resolver-binding-darwin-x64@1.4.1': - resolution: {integrity: sha512-X8c3PhWziEMKAzZz+YAYWfwawi5AEgzy/hmfizAB4C70gMHLKmInJcp1270yYAOs7z07YVFI220pp50z24Jk3A==} - cpu: [x64] - os: [darwin] - - '@unrs/resolver-binding-freebsd-x64@1.4.1': - resolution: {integrity: sha512-UUr/nREy1UdtxXQnmLaaTXFGOcGxPwNIzeJdb3KXai3TKtC1UgNOB9s8KOA4TaxOUBR/qVgL5BvBwmUjD5yuVA==} - cpu: [x64] - os: [freebsd] - - '@unrs/resolver-binding-linux-arm-gnueabihf@1.4.1': - resolution: {integrity: sha512-e3pII53dEeS8inkX6A1ad2UXE0nuoWCqik4kOxaDnls0uJUq0ntdj5d9IYd+bv5TDwf9DSge/xPOvCmRYH+Tsw==} - cpu: [arm] - os: [linux] - - '@unrs/resolver-binding-linux-arm-musleabihf@1.4.1': - resolution: {integrity: sha512-e/AKKd9gR+HNmVyDEPI/PIz2t0DrA3cyonHNhHVjrkxe8pMCiYiqhtn1+h+yIpHUtUlM6Y1FNIdivFa+r7wrEQ==} - cpu: [arm] - os: [linux] - - '@unrs/resolver-binding-linux-arm64-gnu@1.4.1': - resolution: {integrity: sha512-vtIu34luF1jRktlHtiwm2mjuE8oJCsFiFr8hT5+tFQdqFKjPhbJXn83LswKsOhy0GxAEevpXDI4xxEwkjuXIPA==} - cpu: [arm64] - os: [linux] - - '@unrs/resolver-binding-linux-arm64-musl@1.4.1': - resolution: {integrity: sha512-H3PaOuGyhFXiyJd+09uPhGl4gocmhyi1BRzvsP8Lv5AQO3p3/ZY7WjV4t2NkBksm9tMjf3YbOVHyPWi2eWsNYw==} - cpu: [arm64] - os: [linux] - - '@unrs/resolver-binding-linux-ppc64-gnu@1.4.1': - resolution: {integrity: sha512-4+GmJcaaFntCi1S01YByqp8wLMjV/FyQyHVGm0vedIhL1Vfx7uHkz/sZmKsidRwokBGuxi92GFmSzqT2O8KcNA==} - cpu: [ppc64] - os: [linux] - - '@unrs/resolver-binding-linux-s390x-gnu@1.4.1': - resolution: {integrity: sha512-6RDQVCmtFYTlhy89D5ixTqo9bTQqFhvNN0Ey1wJs5r+01Dq15gPHRXv2jF2bQATtMrOfYwv+R2ZR9ew1N1N3YQ==} - cpu: [s390x] - os: [linux] - - '@unrs/resolver-binding-linux-x64-gnu@1.4.1': - resolution: {integrity: sha512-XpU9uzIkD86+19NjCXxlVPISMUrVXsXo5htxtuG+uJ59p5JauSRZsIxQxzzfKzkxEjdvANPM/lS1HFoX6A6QeA==} - cpu: [x64] - os: [linux] - - '@unrs/resolver-binding-linux-x64-musl@1.4.1': - resolution: {integrity: sha512-3CDjG/spbTKCSHl66QP2ekHSD+H34i7utuDIM5gzoNBcZ1gTO0Op09Wx5cikXnhORRf9+HyDWzm37vU1PLSM1A==} - cpu: [x64] - os: [linux] - - '@unrs/resolver-binding-wasm32-wasi@1.4.1': - resolution: {integrity: sha512-50tYhvbCTnuzMn7vmP8IV2UKF7ITo1oihygEYq9wW2DUb/Y+QMqBHJUSCABRngATjZ4shOK6f2+s0gQX6ElENQ==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - - '@unrs/resolver-binding-win32-arm64-msvc@1.4.1': - resolution: {integrity: sha512-KyJiIne/AqV4IW0wyQO34wSMuJwy3VxVQOfIXIPyQ/Up6y/zi2P/WwXb78gHsLiGRUqCA9LOoCX+6dQZde0g1g==} - cpu: [arm64] - os: [win32] - - '@unrs/resolver-binding-win32-ia32-msvc@1.4.1': - resolution: {integrity: sha512-y2NUD7pygrBolN2NoXUrwVqBpKPhF8DiSNE5oB5/iFO49r2DpoYqdj5HPb3F42fPBH5qNqj6Zg63+xCEzAD2hw==} - cpu: [ia32] - os: [win32] - - '@unrs/resolver-binding-win32-x64-msvc@1.4.1': - resolution: {integrity: sha512-hVXaObGI2lGFmrtT77KSbPQ3I+zk9IU500wobjk0+oX59vg/0VqAzABNtt3YSQYgXTC2a/LYxekLfND/wlt0yQ==} - cpu: [x64] - os: [win32] - - '@use-gesture/core@10.3.1': - resolution: {integrity: sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==} - - '@use-gesture/react@10.3.1': - resolution: {integrity: sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==} - peerDependencies: - react: '>= 16.8.0' - - '@vercel/stega@0.1.2': - resolution: {integrity: sha512-P7mafQXjkrsoyTRppnt0N21udKS9wUmLXHRyP9saLXLHw32j/FgUJ3FscSWgvSqRs4cj7wKZtwqJEvWJ2jbGmA==} - - '@vitejs/plugin-react@4.5.2': - resolution: {integrity: sha512-QNVT3/Lxx99nMQWJWF7K4N6apUEuT0KlZA3mx/mVaoGj3smm/8rc8ezz15J1pcbcjDK0V15rpHetVfya08r76Q==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 - - '@vitejs/plugin-react@4.6.0': - resolution: {integrity: sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 - - '@vitest/expect@3.1.1': - resolution: {integrity: sha512-q/zjrW9lgynctNbwvFtQkGK9+vvHA5UzVi2V8APrp1C6fG6/MuYYkmlx4FubuqLycCeSdHD5aadWfua/Vr0EUA==} - - '@vitest/mocker@3.1.1': - resolution: {integrity: sha512-bmpJJm7Y7i9BBELlLuuM1J1Q6EQ6K5Ye4wcyOpOMXMcePYKSIYlpcrCm4l/O6ja4VJA5G2aMJiuZkZdnxlC3SA==} - peerDependencies: - msw: ^2.4.9 - vite: ^5.0.0 || ^6.0.0 - peerDependenciesMeta: - msw: - optional: true - vite: - optional: true - - '@vitest/pretty-format@3.1.1': - resolution: {integrity: sha512-dg0CIzNx+hMMYfNmSqJlLSXEmnNhMswcn3sXO7Tpldr0LiGmg3eXdLLhwkv2ZqgHb/d5xg5F7ezNFRA1fA13yA==} - - '@vitest/runner@3.1.1': - resolution: {integrity: sha512-X/d46qzJuEDO8ueyjtKfxffiXraPRfmYasoC4i5+mlLEJ10UvPb0XH5M9C3gWuxd7BAQhpK42cJgJtq53YnWVA==} - - '@vitest/snapshot@3.1.1': - resolution: {integrity: sha512-bByMwaVWe/+1WDf9exFxWWgAixelSdiwo2p33tpqIlM14vW7PRV5ppayVXtfycqze4Qhtwag5sVhX400MLBOOw==} - - '@vitest/spy@3.1.1': - resolution: {integrity: sha512-+EmrUOOXbKzLkTDwlsc/xrwOlPDXyVk3Z6P6K4oiCndxz7YLpp/0R0UsWVOKT0IXWjjBJuSMk6D27qipaupcvQ==} - - '@vitest/utils@3.1.1': - resolution: {integrity: sha512-1XIjflyaU2k3HMArJ50bwSh3wKWPD6Q47wz/NUSmRV0zNywPc4w79ARjg/i/aNINHwA+mIALhUVqD9/aUvZNgg==} - - '@webassemblyjs/ast@1.14.1': - resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} - - '@webassemblyjs/floating-point-hex-parser@1.13.2': - resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} - - '@webassemblyjs/helper-api-error@1.13.2': - resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} - - '@webassemblyjs/helper-buffer@1.14.1': - resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} - - '@webassemblyjs/helper-numbers@1.13.2': - resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} - - '@webassemblyjs/helper-wasm-bytecode@1.13.2': - resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} - - '@webassemblyjs/helper-wasm-section@1.14.1': - resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} - - '@webassemblyjs/ieee754@1.13.2': - resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} - - '@webassemblyjs/leb128@1.13.2': - resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} - - '@webassemblyjs/utf8@1.13.2': - resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} - - '@webassemblyjs/wasm-edit@1.14.1': - resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} - - '@webassemblyjs/wasm-gen@1.14.1': - resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} - - '@webassemblyjs/wasm-opt@1.14.1': - resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} - - '@webassemblyjs/wasm-parser@1.14.1': - resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} - - '@webassemblyjs/wast-printer@1.14.1': - resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} - - '@xstate/react@6.0.0': - resolution: {integrity: sha512-xXlLpFJxqLhhmecAXclBECgk+B4zYSrDTl8hTfPZBogkn82OHKbm9zJxox3Z/YXoOhAQhKFTRLMYGdlbhc6T9A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - xstate: ^5.20.0 - peerDependenciesMeta: - xstate: - optional: true - - '@xtuc/ieee754@1.2.0': - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - - '@xtuc/long@4.2.2': - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - - abab@2.0.6: - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} - deprecated: Use your platform's native atob() and btoa() methods instead - - abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - - abs-svg-path@0.1.1: - resolution: {integrity: sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==} - - acorn-globals@7.0.1: - resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} - - acorn-import-attributes@1.9.5: - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} - peerDependencies: - acorn: ^8 - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn-walk@8.3.4: - resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} - engines: {node: '>=0.4.0'} - - acorn@7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} - hasBin: true - - acorn@8.14.1: - resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} - engines: {node: '>=0.4.0'} - hasBin: true - - acorn@8.15.0: - resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} - engines: {node: '>=0.4.0'} - hasBin: true - - adm-zip@0.5.16: - resolution: {integrity: sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==} - engines: {node: '>=12.0'} - - 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'} - - ajv-formats@2.1.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - 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-keywords@5.1.0: - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} - peerDependencies: - ajv: ^8.8.2 - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ajv@8.17.1: - resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - - anser@2.3.2: - resolution: {integrity: sha512-PMqBCBvrOVDRqLGooQb+z+t1Q0PiPyurUQeZRR5uHBOVZcW8B04KMmnT12USnhpNX2wCPagWzLVppQMUG3u0Dw==} - - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-regex@6.1.0: - resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} - engines: {node: '>=12'} - - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - - ansicolors@0.3.2: - resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==} - - ansis@3.17.0: - resolution: {integrity: sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==} - engines: {node: '>=14'} - - antd@5.24.6: - resolution: {integrity: sha512-xIlTa/1CTbgkZsdU/dOXkYvJXb9VoiMwsaCzpKFH2zAEY3xqOfwQ57/DdG7lAdrWP7QORtSld4UA6suxzuTHXw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - archiver-utils@5.0.2: - resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} - engines: {node: '>= 14'} - - archiver@7.0.1: - resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} - engines: {node: '>= 14'} - - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - aria-hidden@1.2.4: - resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} - engines: {node: '>=10'} - - aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} - - aria-query@5.3.2: - resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} - engines: {node: '>= 0.4'} - - arktype@2.1.20: - resolution: {integrity: sha512-IZCEEXaJ8g+Ijd59WtSYwtjnqXiwM8sWQ5EjGamcto7+HVN9eK0C4p0zDlCuAwWhpqr6fIBkxPuYDl4/Mcj/+Q==} - - array-back@6.2.2: - resolution: {integrity: sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==} - engines: {node: '>=12.17'} - - array-bounds@1.0.1: - resolution: {integrity: sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ==} - - array-buffer-byte-length@1.0.2: - resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} - engines: {node: '>= 0.4'} - - array-find-index@1.0.2: - resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==} - engines: {node: '>=0.10.0'} - - array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} - - array-normalize@1.1.4: - resolution: {integrity: sha512-fCp0wKFLjvSPmCn4F5Tiw4M3lpMZoHlCjfcs7nNzuj3vqQQ1/a8cgB9DXcpDSn18c+coLnaW7rqfcYCvKbyJXg==} - - array-range@1.0.1: - resolution: {integrity: sha512-shdaI1zT3CVNL2hnx9c0JMc0ZogGaxDs5e85akgHWKYa0yVbIyp06Ind3dVkTj/uuFrzaHBOyqFzo+VV6aXgtA==} - - array-rearrange@2.2.2: - resolution: {integrity: sha512-UfobP5N12Qm4Qu4fwLDIi2v6+wZsSf6snYSxAMeKhrh37YGnNWZPRmVEKc/2wfms53TLQnzfpG8wCx2Y/6NG1w==} - - array-treeify@0.1.5: - resolution: {integrity: sha512-Ag85dlQyM0wahhm62ZvsLDLU0TcGNXjonRWpEUvlmmaFBuJNuzoc19Gi51uMs9HXoT2zwSewk6JzxUUw8b412g==} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} - - array.prototype.findlastindex@1.2.6: - resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} - engines: {node: '>= 0.4'} - - array.prototype.flat@1.3.3: - resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} - engines: {node: '>= 0.4'} - - array.prototype.flatmap@1.3.3: - resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} - engines: {node: '>= 0.4'} - - array.prototype.tosorted@1.1.4: - resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} - engines: {node: '>= 0.4'} - - arraybuffer.prototype.slice@1.0.4: - resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} - engines: {node: '>= 0.4'} - - arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - - arrify@2.0.1: - resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} - engines: {node: '>=8'} - - assertion-error@2.0.1: - resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} - engines: {node: '>=12'} - - ast-types-flow@0.0.8: - resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - - async-function@1.0.0: - resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} - engines: {node: '>= 0.4'} - - async-mutex@0.4.1: - resolution: {integrity: sha512-WfoBo4E/TbCX1G95XTjbWTE3X2XLG0m1Xbv2cwOtuPdyH9CZvnaA5nCt1ucjaKEgW2A5IF71hxrRhr83Je5xjA==} - - async@3.2.6: - resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} - - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - autoprefixer@10.4.21: - resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - - axe-core@4.10.3: - resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==} - engines: {node: '>=4'} - - axobject-query@4.1.0: - resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} - engines: {node: '>= 0.4'} - - b4a@1.6.7: - resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} - - babel-jest@29.7.0: - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - - babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} - - babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - babel-plugin-macros@3.1.0: - resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} - engines: {node: '>=10', npm: '>=6'} - - babel-plugin-polyfill-corejs2@0.4.13: - resolution: {integrity: sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-corejs3@0.11.1: - resolution: {integrity: sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-regenerator@0.6.4: - resolution: {integrity: sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-preset-current-node-syntax@1.1.0: - resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} - peerDependencies: - '@babel/core': ^7.0.0 - - babel-preset-jest@29.6.3: - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.0.0 - - bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - bare-events@2.5.4: - resolution: {integrity: sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==} - - base16@1.0.0: - resolution: {integrity: sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==} - - base64-arraybuffer@1.0.2: - resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==} - engines: {node: '>= 0.6.0'} - - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - before-after-hook@2.2.3: - resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} - - bidi-js@1.0.3: - resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} - - big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - - bignumber.js@9.3.1: - resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - - binary-search-bounds@2.0.5: - resolution: {integrity: sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA==} - - bit-twiddle@1.0.2: - resolution: {integrity: sha512-B9UhK0DKFZhoTFcfvAzhqsjStvGJp9vYWf3+6SNTtdSQnvIgfkHbgHrg/e4+TH71N2GDu8tpmCVoyfrL1d7ntA==} - - bitmap-sdf@1.0.4: - resolution: {integrity: sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==} - - bl@1.2.3: - resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} - - bl@2.2.1: - resolution: {integrity: sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==} - - bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - browserify-zlib@0.1.4: - resolution: {integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==} - - browserslist@4.24.4: - resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - - buffer-alloc-unsafe@1.1.0: - resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} - - buffer-alloc@1.2.0: - resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} - - buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - - buffer-crc32@1.0.0: - resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} - engines: {node: '>=8.0.0'} - - buffer-fill@1.0.0: - resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} - - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - - builtins@1.0.3: - resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} - - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} - - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} - - call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} - engines: {node: '>= 0.4'} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} - - camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - - camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - - camelize@1.0.1: - resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - - camera-controls@2.10.1: - resolution: {integrity: sha512-KnaKdcvkBJ1Irbrzl8XD6WtZltkRjp869Jx8c0ujs9K+9WD+1D7ryBsCiVqJYUqt6i/HR5FxT7RLASieUD+Q5w==} - peerDependencies: - three: '>=0.126.1' - - caniuse-lite@1.0.30001713: - resolution: {integrity: sha512-wCIWIg+A4Xr7NfhTuHdX+/FKh3+Op3LBbSp2N5Pfx6T/LhdQy3GTyoTg48BReaW/MyMNZAkTadsBtai3ldWK0Q==} - - canvas-confetti@1.9.3: - resolution: {integrity: sha512-rFfTURMvmVEX1gyXFgn5QMn81bYk70qa0HLzcIOSVEyl57n6o9ItHeBtUSWdvKAPY0xlvBHno4/v3QPrT83q9g==} - - canvas-fit@1.5.0: - resolution: {integrity: sha512-onIcjRpz69/Hx5bB5HGbYKUF2uC6QT6Gp+pfpGm3A7mPfcluSLV5v4Zu+oflDUwLdUw0rLIBhUbi0v8hM4FJQQ==} - - canvas@3.1.0: - resolution: {integrity: sha512-tTj3CqqukVJ9NgSahykNwtGda7V33VLObwrHfzT0vqJXu7J4d4C/7kQQW3fOEGDfZZoILPut5H00gOjyttPGyg==} - engines: {node: ^18.12.0 || >= 20.9.0} - - cardinal@2.1.1: - resolution: {integrity: sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==} - hasBin: true - - ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - - chai@5.2.0: - resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} - engines: {node: '>=12'} - - chalk-template@0.4.0: - resolution: {integrity: sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==} - engines: {node: '>=12'} - - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - - chalk@3.0.0: - resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} - engines: {node: '>=8'} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - chalk@5.4.1: - resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - - char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - - character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - - character-entities-legacy@1.1.4: - resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} - - character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - - character-entities@1.2.4: - resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} - - character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - - character-reference-invalid@1.1.4: - resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} - - character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - - chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - - check-error@2.1.1: - resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} - engines: {node: '>= 16'} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} - engines: {node: '>= 14.16.0'} - - chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - - chownr@3.0.0: - resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} - engines: {node: '>=18'} - - chroma-js@2.6.0: - resolution: {integrity: sha512-BLHvCB9s8Z1EV4ethr6xnkl/P2YRFOGqfgvuMG/MyCbZPrTA+NeiByY6XvgF0zP4/2deU2CXnWyMa3zu1LqQ3A==} - - chroma-js@3.1.2: - resolution: {integrity: sha512-IJnETTalXbsLx1eKEgx19d5L6SRM7cH4vINw/99p/M11HCuXGRWL+6YmCm7FWFGIo6dtWuQoQi1dc5yQ7ESIHg==} - - chrome-trace-event@1.0.4: - resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} - engines: {node: '>=6.0'} - - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - - cjs-module-lexer@1.4.3: - resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} - - clamp@1.0.1: - resolution: {integrity: sha512-kgMuFyE78OC6Dyu3Dy7vcx4uy97EIbVxJB/B0eJ3bUNAkwdNcxYzgKltnyADiYwsR7SEqkkUPsEUT//OVS6XMA==} - - classnames@2.5.1: - resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} - - clean-stack@3.0.1: - resolution: {integrity: sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg==} - engines: {node: '>=10'} - - cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - - cli-cursor@5.0.0: - resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} - engines: {node: '>=18'} - - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - - cli-width@4.1.0: - resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} - engines: {node: '>= 12'} - - 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-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} - engines: {node: '>=6'} - - clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - - clsx@1.2.1: - resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} - engines: {node: '>=6'} - - clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} - - co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - - codecutils@0.1.3: - resolution: {integrity: sha512-RUCY9dJDz0sDEkmmSTC/x1bqDoe/Ezeg5FSZ/gIybu546cHso9gLKXMSD9tXsnDrawiYrha1WOZnHuGups2VAw==} - - collect-v8-coverage@1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} - - color-alpha@1.0.4: - resolution: {integrity: sha512-lr8/t5NPozTSqli+duAN+x+no/2WaKTeWvxhHGN+aXT6AJ8vPlzLa7UriyjWak0pSC2jHol9JgjBYnnHsGha9A==} - - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-id@1.1.0: - resolution: {integrity: sha512-2iRtAn6dC/6/G7bBIo0uupVrIne1NsQJvJxZOBCzQOfk7jRq97feaDZ3RdzuHakRXXnHGNwglto3pqtRx1sX0g==} - - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - color-normalize@1.5.0: - resolution: {integrity: sha512-rUT/HDXMr6RFffrR53oX3HGWkDOP9goSAQGBkUaAYKjOE2JxozccdGyufageWDlInRAjm/jYPrf/Y38oa+7obw==} - - color-parse@1.4.3: - resolution: {integrity: sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A==} - - color-parse@2.0.0: - resolution: {integrity: sha512-g2Z+QnWsdHLppAbrpcFWo629kLOnOPtpxYV69GCqm92gqSgyXbzlfyN3MXs0412fPBkFmiuS+rXposgBgBa6Kg==} - - color-rgba@2.4.0: - resolution: {integrity: sha512-Nti4qbzr/z2LbUWySr7H9dk3Rl7gZt7ihHAxlgT4Ho90EXWkjtkL1avTleu9yeGuqrt/chxTB6GKK8nZZ6V0+Q==} - - color-rgba@3.0.0: - resolution: {integrity: sha512-PPwZYkEY3M2THEHHV6Y95sGUie77S7X8v+h1r6LSAPF3/LL2xJ8duUXSrkic31Nzc4odPwHgUbiX/XuTYzQHQg==} - - color-space@2.3.2: - resolution: {integrity: sha512-BcKnbOEsOarCwyoLstcoEztwT0IJxqqQkNwDuA3a65sICvvHL2yoeV13psoDFh5IuiOMnIOKdQDwB4Mk3BypiA==} - - color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - - color2k@2.0.3: - resolution: {integrity: sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog==} - - color@3.2.1: - resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} - - color@4.2.3: - resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} - engines: {node: '>=12.5.0'} - - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - - comlink@4.4.2: - resolution: {integrity: sha512-OxGdvBmJuNKSCMO4NTl1L47VRp6xn2wG4F/2hYzB6tiCb709otOxtEYCSvK80PtjODfXXZu8ds+Nw5kVCjqd2g==} - - comma-separated-tokens@1.0.8: - resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} - - comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - - command-line-args@6.0.1: - resolution: {integrity: sha512-Jr3eByUjqyK0qd8W0SGFW1nZwqCaNCtbXjRo2cRJC1OYxWl3MZ5t1US3jq+cO4sPavqgw4l9BMGX0CBe+trepg==} - engines: {node: '>=12.20'} - peerDependencies: - '@75lb/nature': latest - peerDependenciesMeta: - '@75lb/nature': - optional: true - - command-line-usage@7.0.3: - resolution: {integrity: sha512-PqMLy5+YGwhMh1wS04mVG44oqDsgyLRSKJBdOo1bnYhMKBW65gZF1dRp2OZRhiTjgUHljy99qkO7bsctLaw35Q==} - engines: {node: '>=12.20.0'} - - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - - commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} - - commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - - commander@9.2.0: - resolution: {integrity: sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==} - engines: {node: ^12.20.0 || >=14} - - commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - - compress-commons@6.0.2: - resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} - engines: {node: '>= 14'} - - compute-gcd@1.2.1: - resolution: {integrity: sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==} - - compute-lcm@1.1.2: - resolution: {integrity: sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ==} - - compute-scroll-into-view@3.1.1: - resolution: {integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - concat-stream@1.6.2: - resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} - engines: {'0': node >= 0.8} - - concat-stream@2.0.0: - resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} - engines: {'0': node >= 6.0} - - configstore@5.0.1: - resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} - engines: {node: '>=8'} - - confusing-browser-globals@1.0.11: - resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} - - console-table-printer@2.12.1: - resolution: {integrity: sha512-wKGOQRRvdnd89pCeH96e2Fn4wkbenSP6LMHfjfyNLMbGuHEFbMqQNuxXqd0oXG9caIOQ1FTvc5Uijp9/4jujnQ==} - - convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - cookie@0.7.2: - resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} - engines: {node: '>= 0.6'} - - copy-anything@3.0.5: - resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} - engines: {node: '>=12.13'} - - copy-to-clipboard@3.3.3: - resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} - - core-js-compat@3.41.0: - resolution: {integrity: sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A==} - - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - - cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} - - country-regex@1.1.0: - resolution: {integrity: sha512-iSPlClZP8vX7MC3/u6s3lrDuoQyhQukh5LyABJ3hvfzbQ3Yyayd4fp04zjLnfi267B/B2FkumcWWgrbban7sSA==} - - crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} - engines: {node: '>=0.8'} - hasBin: true - - crc32-stream@6.0.0: - resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} - engines: {node: '>= 14'} - - create-jest@29.7.0: - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - - 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'} - - crypto-random-string@2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} - engines: {node: '>=8'} - - css-color-keywords@1.0.0: - resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} - engines: {node: '>=4'} - - css-font-size-keywords@1.0.0: - resolution: {integrity: sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q==} - - css-font-stretch-keywords@1.0.1: - resolution: {integrity: sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg==} - - css-font-style-keywords@1.0.1: - resolution: {integrity: sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg==} - - css-font-weight-keywords@1.0.0: - resolution: {integrity: sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA==} - - css-font@1.2.0: - resolution: {integrity: sha512-V4U4Wps4dPDACJ4WpgofJ2RT5Yqwe1lEH6wlOOaIxMi0gTjdIijsc5FmxQlZ7ZZyKQkkutqqvULOp07l9c7ssA==} - - css-global-keywords@1.0.1: - resolution: {integrity: sha512-X1xgQhkZ9n94WDwntqst5D/FKkmiU0GlJSFZSV3kLvyJ1WC5VeyoXDOuleUD+SIuH9C7W05is++0Woh0CGfKjQ==} - - css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} - - css-system-font-keywords@1.0.0: - resolution: {integrity: sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA==} - - css-to-react-native@3.2.0: - resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==} - - css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - - css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - - css.escape@1.5.1: - resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} - - csscolorparser@1.0.3: - resolution: {integrity: sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==} - - cssom@0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - - cssom@0.5.0: - resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} - - cssstyle@2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} - engines: {node: '>=8'} - - cssstyle@4.3.0: - resolution: {integrity: sha512-6r0NiY0xizYqfBvWp1G7WXJ06/bZyrk7Dc6PHql82C/pKGUTKu4yAX4Y8JPamb1ob9nBKuxWzCGTRuGwU3yxJQ==} - engines: {node: '>=18'} - - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - - cyclist@1.0.2: - resolution: {integrity: sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==} - - d3-array@1.2.4: - resolution: {integrity: sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==} - - d3-array@2.12.1: - resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==} - - d3-array@3.2.4: - resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} - engines: {node: '>=12'} - - d3-axis@3.0.0: - resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} - engines: {node: '>=12'} - - d3-brush@3.0.0: - resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} - engines: {node: '>=12'} - - d3-chord@3.0.1: - resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} - engines: {node: '>=12'} - - d3-collection@1.0.7: - resolution: {integrity: sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==} - - d3-color@3.1.0: - resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} - engines: {node: '>=12'} - - d3-contour@4.0.2: - resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} - engines: {node: '>=12'} - - d3-delaunay@6.0.4: - resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} - engines: {node: '>=12'} - - d3-dispatch@1.0.6: - resolution: {integrity: sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==} - - d3-dispatch@3.0.1: - resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} - engines: {node: '>=12'} - - d3-drag@3.0.0: - resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} - engines: {node: '>=12'} - - d3-dsv@3.0.1: - resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} - engines: {node: '>=12'} - hasBin: true - - d3-ease@3.0.1: - resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} - engines: {node: '>=12'} - - d3-fetch@3.0.1: - resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} - engines: {node: '>=12'} - - d3-force@1.2.1: - resolution: {integrity: sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==} - - d3-force@3.0.0: - resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} - engines: {node: '>=12'} - - d3-format@1.4.5: - resolution: {integrity: sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==} - - d3-format@3.1.0: - resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} - engines: {node: '>=12'} - - d3-geo-projection@2.9.0: - resolution: {integrity: sha512-ZULvK/zBn87of5rWAfFMc9mJOipeSo57O+BBitsKIXmU4rTVAnX1kSsJkE0R+TxY8pGNoM1nbyRRE7GYHhdOEQ==} - hasBin: true - - d3-geo@1.12.1: - resolution: {integrity: sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==} - - d3-geo@3.1.1: - resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==} - engines: {node: '>=12'} - - d3-hierarchy@1.1.9: - resolution: {integrity: sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==} - - d3-hierarchy@3.1.2: - resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} - engines: {node: '>=12'} - - d3-interpolate@3.0.1: - resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} - engines: {node: '>=12'} - - d3-path@1.0.9: - resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==} - - d3-path@3.1.0: - resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} - engines: {node: '>=12'} - - d3-polygon@3.0.1: - resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} - engines: {node: '>=12'} - - d3-quadtree@1.0.7: - resolution: {integrity: sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==} - - d3-quadtree@3.0.1: - resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} - engines: {node: '>=12'} - - d3-random@3.0.1: - resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} - engines: {node: '>=12'} - - d3-sankey@0.12.3: - resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==} - - d3-scale-chromatic@3.1.0: - resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==} - engines: {node: '>=12'} - - d3-scale@4.0.2: - resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} - engines: {node: '>=12'} - - d3-selection@3.0.0: - resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} - engines: {node: '>=12'} - - d3-shape@1.3.7: - resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==} - - d3-shape@3.2.0: - resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} - engines: {node: '>=12'} - - d3-time-format@2.3.0: - resolution: {integrity: sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==} - - d3-time-format@4.1.0: - resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} - engines: {node: '>=12'} - - d3-time@1.1.0: - resolution: {integrity: sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==} - - d3-time@3.1.0: - resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} - engines: {node: '>=12'} - - d3-timer@1.0.10: - resolution: {integrity: sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==} - - d3-timer@3.0.1: - resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} - engines: {node: '>=12'} - - d3-transition@3.0.1: - resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} - engines: {node: '>=12'} - peerDependencies: - d3-selection: 2 - 3 - - d3-zoom@3.0.0: - resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} - engines: {node: '>=12'} - - d3@7.9.0: - resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} - engines: {node: '>=12'} - - d@1.0.2: - resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} - engines: {node: '>=0.12'} - - damerau-levenshtein@1.0.8: - resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - - data-uri-to-buffer@1.2.0: - resolution: {integrity: sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==} - - data-urls@3.0.2: - resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} - engines: {node: '>=12'} - - data-urls@5.0.0: - resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} - engines: {node: '>=18'} - - data-view-buffer@1.0.2: - resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} - engines: {node: '>= 0.4'} - - data-view-byte-length@1.0.2: - resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} - engines: {node: '>= 0.4'} - - data-view-byte-offset@1.0.1: - resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} - engines: {node: '>= 0.4'} - - dataloader@2.2.3: - resolution: {integrity: sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA==} - - date-fns@2.30.0: - resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} - engines: {node: '>=0.11'} - - date-fns@4.1.0: - resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} - - dayjs@1.11.13: - resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} - - debounce@1.2.1: - resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} - - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - 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'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.4.1: - resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} - - decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - - decimal.js@10.5.0: - resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} - - decode-named-character-reference@1.1.0: - resolution: {integrity: sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==} - - decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - - decompress-response@7.0.0: - resolution: {integrity: sha512-6IvPrADQyyPGLpMnUh6kfKiqy7SrbXbjoUuZ90WMBJKErzv2pCiwlGEXjRX9/54OnTq+XFVnkOnOMzclLI5aEA==} - engines: {node: '>=10'} - - decompress-tar@4.1.1: - resolution: {integrity: sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==} - engines: {node: '>=4'} - - decompress-tarbz2@4.1.1: - resolution: {integrity: sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==} - engines: {node: '>=4'} - - decompress-targz@4.1.1: - resolution: {integrity: sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==} - engines: {node: '>=4'} - - decompress-unzip@4.0.1: - resolution: {integrity: sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==} - engines: {node: '>=4'} - - decompress@4.2.1: - resolution: {integrity: sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==} - engines: {node: '>=4'} - - dedent@1.5.3: - resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - - deep-eql@5.0.2: - resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} - engines: {node: '>=6'} - - deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - deepdash-es@5.3.9: - resolution: {integrity: sha512-p/pFjNW8RgkWiTderYZpFA3yLo/ABjr2bR5ZSkT13nvpXIvrv66PYo31MAzaauJnU/kXwNpkiSR2kTLQbjhwJQ==} - - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - - defined@1.0.1: - resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==} - - delaunator@5.0.1: - resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==} - - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - - deprecation@2.3.1: - resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} - - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - - detect-gpu@5.0.70: - resolution: {integrity: sha512-bqerEP1Ese6nt3rFkwPnGbsUF9a4q+gMmpTVVOEzoCyeCc+y7/RvJnQZJx1JwhgQI5Ntg0Kgat8Uu7XpBqnz1w==} - - detect-kerning@2.1.2: - resolution: {integrity: sha512-I3JIbrnKPAntNLl1I6TpSQQdQ4AutYzv/sKMFKbepawV/hlH0GmYKhUoOEMd4xqaUHT+Bm0f4127lh5qs1m1tw==} - - detect-libc@1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} - engines: {node: '>=0.10'} - hasBin: true - - detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} - engines: {node: '>=8'} - - detect-libc@2.0.4: - resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} - engines: {node: '>=8'} - - detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - - detect-node-es@1.1.0: - resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} - - devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - - dexie@4.0.11: - resolution: {integrity: sha512-SOKO002EqlvBYYKQSew3iymBoN2EQ4BDw/3yprjh7kAfFzjBYkaMNa/pZvcA7HSWlcKSQb9XhPe3wKyQ0x4A8A==} - - diff-match-patch@1.0.5: - resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==} - - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - - direction@1.0.4: - resolution: {integrity: sha512-GYqKi1aH7PJXxdhTeZBFrg8vUBeKXi+cNprXsC1kpJcbcVnV9wBsrOu1cQEdG0WeQwlfHiy3XvnKfIrJ2R0NzQ==} - hasBin: true - - distinct-colors@3.0.0: - resolution: {integrity: sha512-ID2CzFkvsdhkm4IVpUYxCcUpB6GspIvVW8dLSWFjIwJzV5kNOoayegfgDyyzcWkOWWMAFc1cyEhdtFH868AfYQ==} - - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - - dom-accessibility-api@0.5.16: - resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} - - dom-accessibility-api@0.6.3: - resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} - - dom-helpers@5.2.1: - resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} - - dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - - dom-walk@0.1.2: - resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} - - domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - - domexception@4.0.0: - resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} - engines: {node: '>=12'} - deprecated: Use your platform's native DOMException instead - - domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} - - dompurify@3.2.5: - resolution: {integrity: sha512-mLPd29uoRe9HpvwP2TxClGQBzGXeEC/we/q+bFlmPPmj2p2Ugl3r6ATu/UU1v77DXNcehiBg9zsr1dREyA/dJQ==} - - domutils@3.2.2: - resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} - - dot-prop@5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} - engines: {node: '>=8'} - - dotenv-cli@8.0.0: - resolution: {integrity: sha512-aLqYbK7xKOiTMIRf1lDPbI+Y+Ip/wo5k3eyp6ePysVaSqbyxjyK3dK35BTxG+rmd7djf5q2UPs4noPNH+cj0Qw==} - hasBin: true - - dotenv-expand@10.0.0: - resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} - engines: {node: '>=12'} - - dotenv@16.5.0: - resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==} - engines: {node: '>=12'} - - draco3d@1.5.7: - resolution: {integrity: sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==} - - draw-svg-path@1.0.0: - resolution: {integrity: sha512-P8j3IHxcgRMcY6sDzr0QvJDLzBnJJqpTG33UZ2Pvp8rw0apCHhJCWqYprqrXjrgHnJ6tuhP1iTJSAodPDHxwkg==} - - dtype@2.0.0: - resolution: {integrity: sha512-s2YVcLKdFGS0hpFqJaTwscsyt0E8nNFdmo73Ocd81xNPj4URI4rj6D60A+vFMIw7BXWlb4yRkEwfBqcZzPGiZg==} - engines: {node: '>= 0.8.0'} - - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - - dup@1.0.0: - resolution: {integrity: sha512-Bz5jxMMC0wgp23Zm15ip1x8IhYRqJvF3nFC0UInJUDkN1z4uNPk9jTnfCUJXbOGiQ1JbXLQsiV41Fb+HXcj5BA==} - - duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - - duplexify@3.7.1: - resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} - - duplexify@4.1.3: - resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==} - - earcut@2.2.4: - resolution: {integrity: sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==} - - earcut@3.0.1: - resolution: {integrity: sha512-0l1/0gOjESMeQyYaK5IDiPNvFeu93Z/cO0TjZh9eZ1vyCtZnA7KMZ8rQggpsJHIbGSdrqYq9OhuveadOVHCshw==} - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - ejs@3.1.10: - resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} - engines: {node: '>=0.10.0'} - hasBin: true - - elastic-builder@2.31.0: - resolution: {integrity: sha512-tfVd2ATari9dOdMl90Iu6Z9W84qiGbmqhZGJa9Y4jFU6Y8VCNobtfWis8uDAcZNgJdzpU3Y5Np5pshvlHIflLw==} - - electron-to-chromium@1.5.136: - resolution: {integrity: sha512-kL4+wUTD7RSA5FHx5YwWtjDnEEkIIikFgWHR4P6fqjw1PPLlqYkxeOb++wAauAssat0YClCy8Y3C5SxgSkjibQ==} - - element-size@1.1.1: - resolution: {integrity: sha512-eaN+GMOq/Q+BIWy0ybsgpcYImjGIdNLyjLFJU4XsLHXYQao5jCNb36GyN6C2qwmDDYSfIBmKpPpr4VnBdLCsPQ==} - - elementary-circuits-directed-graph@1.3.1: - resolution: {integrity: sha512-ZEiB5qkn2adYmpXGnJKkxT8uJHlW/mxmBpmeqawEHzPxh9HkLD4/1mFYX5l0On+f6rcPIt8/EWlRU2Vo3fX6dQ==} - - emittery@0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} - - emoji-regex@10.4.0: - resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - - emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} - - end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - - enhanced-resolve@5.18.1: - resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} - engines: {node: '>=10.13.0'} - - enhanced-resolve@5.18.2: - resolution: {integrity: sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==} - engines: {node: '>=10.13.0'} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - - es-abstract@1.23.9: - resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} - engines: {node: '>= 0.4'} - - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-iterator-helpers@1.2.1: - resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} - engines: {node: '>= 0.4'} - - es-module-lexer@1.6.0: - resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} - - es-module-lexer@1.7.0: - resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - - 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'} - - es-shim-unscopables@1.1.0: - resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} - engines: {node: '>= 0.4'} - - es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} - engines: {node: '>= 0.4'} - - es5-ext@0.10.64: - resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} - engines: {node: '>=0.10'} - - es6-iterator@2.0.3: - resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} - - es6-symbol@3.1.4: - resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} - engines: {node: '>=0.12'} - - es6-weak-map@2.0.3: - resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} - - esbuild-register@3.6.0: - resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} - peerDependencies: - esbuild: '>=0.12 <1' - - esbuild@0.25.2: - resolution: {integrity: sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==} - engines: {node: '>=18'} - hasBin: true - - esbuild@0.25.5: - resolution: {integrity: sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==} - engines: {node: '>=18'} - hasBin: true - - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - - escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} - hasBin: true - - eslint-config-airbnb-base@15.0.0: - resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - eslint: ^7.32.0 || ^8.2.0 - eslint-plugin-import: ^2.25.2 - - eslint-config-airbnb-typescript@18.0.0: - resolution: {integrity: sha512-oc+Lxzgzsu8FQyFVa4QFaVKiitTYiiW3frB9KYW5OWdPrqFc7FzxgB20hP4cHMlr+MBzGcLl3jnCOVOydL9mIg==} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^7.0.0 - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - - eslint-config-airbnb@19.0.4: - resolution: {integrity: sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==} - engines: {node: ^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^7.32.0 || ^8.2.0 - eslint-plugin-import: ^2.25.3 - eslint-plugin-jsx-a11y: ^6.5.1 - eslint-plugin-react: ^7.28.0 - eslint-plugin-react-hooks: ^4.3.0 - - eslint-config-next@15.2.4: - resolution: {integrity: sha512-v4gYjd4eYIme8qzaJItpR5MMBXJ0/YV07u7eb50kEnlEmX7yhOjdUdzz70v4fiINYRjLf8X8TbogF0k7wlz6sA==} - peerDependencies: - eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 - typescript: '>=3.3.1' - peerDependenciesMeta: - typescript: - optional: true - - eslint-config-prettier@9.1.0: - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - - eslint-import-resolver-typescript@3.10.0: - resolution: {integrity: sha512-aV3/dVsT0/H9BtpNwbaqvl+0xGMRGzncLyhm793NFGvbwGGvzyAykqWZ8oZlZuGwuHkwJjhWJkG1cM3ynvd2pQ==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - eslint-plugin-import-x: '*' - peerDependenciesMeta: - eslint-plugin-import: - optional: true - eslint-plugin-import-x: - optional: true - - eslint-module-utils@2.12.0: - resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - - eslint-plugin-import@2.31.0: - resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - - eslint-plugin-jsx-a11y@6.10.2: - resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - - eslint-plugin-lodash@7.4.0: - resolution: {integrity: sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==} - engines: {node: '>=10'} - peerDependencies: - eslint: '>=2' - - eslint-plugin-react-hooks@4.6.2: - resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - - eslint-plugin-react-hooks@5.2.0: - resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - - eslint-plugin-react@7.37.5: - resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-visitor-keys@4.2.1: - resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint@8.57.1: - resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. - hasBin: true - - esm@3.2.25: - resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} - engines: {node: '>=6'} - - esniff@2.0.1: - resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} - engines: {node: '>=0.10'} - - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - estree-util-is-identifier-name@3.0.0: - resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} - - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - event-emitter@0.3.5: - resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} - - event-source-polyfill@1.0.31: - resolution: {integrity: sha512-4IJSItgS/41IxN5UVAVuAyczwZF7ZIEsM1XAoUzIHA6A+xzusEZUutdXz2Nr+MQPLxfTiCvqE79/C8HT8fKFvA==} - - event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - - eventsource-parser@3.0.1: - resolution: {integrity: sha512-VARTJ9CYeuQYb0pZEPbzi740OWFgpHe7AYJ2WFZVnUDUQp5Dk2yJUgF36YsZ81cOyxT0QxmXD2EQpapAouzWVA==} - engines: {node: '>=18.0.0'} - - eventsource@2.0.2: - resolution: {integrity: sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==} - engines: {node: '>=12.0.0'} - - eventsource@4.0.0: - resolution: {integrity: sha512-fvIkb9qZzdMxgZrEQDyll+9oJsyaVvY92I2Re+qK0qEJ+w5s0X3dtz+M0VAPOjP1gtU3iqWyjQ0G3nvd5CLZ2g==} - engines: {node: '>=20.0.0'} - - execa@2.1.0: - resolution: {integrity: sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==} - engines: {node: ^8.12.0 || >=9.7.0} - - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - - exif-component@1.0.1: - resolution: {integrity: sha512-FXnmK9yJYTa3V3G7DE9BRjUJ0pwXMICAxfbsAuKPTuSlFzMZhQbcvvwx0I8ofNJHxz3tfjze+whxcGpfklAWOQ==} - - exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} - engines: {node: '>= 0.8.0'} - - expand-template@2.0.3: - resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} - engines: {node: '>=6'} - - expect-type@1.2.1: - resolution: {integrity: sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==} - engines: {node: '>=12.0.0'} - - expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - ext@1.7.0: - resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} - - extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - - external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - - falafel@2.2.5: - resolution: {integrity: sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==} - engines: {node: '>=0.4.0'} - - fast-csv@5.0.2: - resolution: {integrity: sha512-CnB2zYAzzeh5Ta0UhSf32NexLy2SsEsSMY+fMWPV40k1OgaLEbm9Hf5dms3z/9fASZHBjB6i834079gVeksEqQ==} - engines: {node: '>=10.0.0'} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-fifo@1.3.2: - resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - - fast-glob@3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} - engines: {node: '>=8.6.0'} - - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} - - fast-isnumeric@1.1.4: - resolution: {integrity: sha512-1mM8qOr2LYz8zGaUdmiqRDiuue00Dxjgcb1NQR7TnhLVh6sQyngP9xvLo7Sl7LZpP/sk5eb+bcyWXw530NTBZw==} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - fast-uri@3.0.6: - resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} - - fastq@1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} - - fault@1.0.4: - resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==} - - fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - - fd-package-json@2.0.0: - resolution: {integrity: sha512-jKmm9YtsNXN789RS/0mSzOC1NUq9mkVd65vbSSVsKdjGvYXBuE4oWe2QOEoFeRmJg+lPuZxpmrfFclNhoRMneQ==} - - fd-slicer@1.1.0: - resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} - - fdir@6.4.3: - resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - - fdir@6.4.6: - resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - - fflate@0.6.10: - resolution: {integrity: sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg==} - - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - - file-saver@2.0.5: - resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==} - - file-type@3.9.0: - resolution: {integrity: sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==} - engines: {node: '>=0.10.0'} - - file-type@5.2.0: - resolution: {integrity: sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==} - engines: {node: '>=4'} - - file-type@6.2.0: - resolution: {integrity: sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==} - engines: {node: '>=4'} - - file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - - file-url@2.0.2: - resolution: {integrity: sha512-x3989K8a1jM6vulMigE8VngH7C5nci0Ks5d9kVjUXmNF28gmiZUNujk5HjwaS8dAzN2QmUfX56riJKgN00dNRw==} - engines: {node: '>=4'} - - 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'} - - find-cache-dir@2.1.0: - resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} - engines: {node: '>=6'} - - find-replace@5.0.2: - resolution: {integrity: sha512-Y45BAiE3mz2QsrN2fb5QEtO4qb44NcS7en/0y9PEVsg351HsLeVclP8QPMH79Le9sH3rs5RSwJu99W0WPZO43Q==} - engines: {node: '>=14'} - peerDependencies: - '@75lb/nature': latest - peerDependenciesMeta: - '@75lb/nature': - optional: true - - find-root@1.1.0: - resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} - - find-up-simple@1.0.1: - resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==} - engines: {node: '>=18'} - - find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - find-up@7.0.0: - resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} - engines: {node: '>=18'} - - find-yarn-workspace-root2@1.2.16: - resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} - - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - - flat@6.0.1: - resolution: {integrity: sha512-/3FfIa8mbrg3xE7+wAhWeV+bd7L2Mof+xtZb5dRDKZ+wDvYJK4WDYeIOuOhre5Yv5aQObZrlbRmk3RTSiuQBtw==} - engines: {node: '>=18'} - hasBin: true - - flatbuffers@24.12.23: - resolution: {integrity: sha512-dLVCAISd5mhls514keQzmEG6QHmUUsNuWsb4tFafIUwvvgDjXhtfAYSKOzt5SWOy+qByV5pbsDZ+Vb7HUOBEdA==} - - flatted@3.3.3: - resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - - flatten-vertex-data@1.0.2: - resolution: {integrity: sha512-BvCBFK2NZqerFTdMDgqfHBwxYWnxeCkwONsw6PvBMcUXqo8U/KDWwmXhqx1x2kLIg7DqIsJfOaJFOmlua3Lxuw==} - - flush-write-stream@2.0.0: - resolution: {integrity: sha512-uXClqPxT4xW0lcdSBheb2ObVU+kuqUk3Jk64EwieirEXZx9XUrVwp/JuBfKAWaM4T5Td/VL7QLDWPXp/MvGm/g==} - - focus-lock@1.3.6: - resolution: {integrity: sha512-Ik/6OCk9RQQ0T5Xw+hKNLWrjSMtv51dD4GRmJjbD5a58TIEpI5a5iXagKVl3Z5UuyslMCA8Xwnu76jQob62Yhg==} - engines: {node: '>=10'} - - follow-redirects@1.15.9: - resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - - font-atlas@2.1.0: - resolution: {integrity: sha512-kP3AmvX+HJpW4w3d+PiPR2X6E1yvsBXt2yhuCw+yReO9F1WYhvZwx3c95DGZGwg9xYzDGrgJYa885xmVA+28Cg==} - - font-measure@1.2.2: - resolution: {integrity: sha512-mRLEpdrWzKe9hbfaF3Qpr06TAjquuBVP5cHy4b3hyeNdjc9i0PO6HniGsX5vjL5OWv7+Bd++NiooNpT/s8BvIA==} - - for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} - - foreground-child@3.3.1: - resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} - engines: {node: '>=14'} - - form-data@4.0.2: - resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} - engines: {node: '>= 6'} - - format@0.2.2: - resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} - engines: {node: '>=0.4.x'} - - formatly@0.2.4: - resolution: {integrity: sha512-lIN7GpcvX/l/i24r/L9bnJ0I8Qn01qijWpQpDDvTLL29nKqSaJJu4h20+7VJ6m2CAhQ2/En/GbxDiHCzq/0MyA==} - engines: {node: '>=18.3.0'} - hasBin: true - - forwarded-parse@2.1.2: - resolution: {integrity: sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==} - - fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - - framer-motion@12.18.1: - resolution: {integrity: sha512-6o4EDuRPLk4LSZ1kRnnEOurbQ86MklVk+Y1rFBUKiF+d2pCdvMjWVu0ZkyMVCTwl5UyTH2n/zJEJx+jvTYuxow==} - peerDependencies: - '@emotion/is-prop-valid': '*' - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@emotion/is-prop-valid': - optional: true - react: - optional: true - react-dom: - optional: true - - framer-motion@12.19.1: - resolution: {integrity: sha512-nq9hwWAEKf4gzprbOZzKugLV5OVKF7zrNDY6UOVu+4D3ZgIkg8L9Jy6AMrpBM06fhbKJ6LEG6UY5+t7Eq6wNlg==} - peerDependencies: - '@emotion/is-prop-valid': '*' - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@emotion/is-prop-valid': - optional: true - react: - optional: true - react-dom: - optional: true - - framer-motion@12.6.3: - resolution: {integrity: sha512-2hsqknz23aloK85bzMc9nSR2/JP+fValQ459ZTVElFQ0xgwR2YqNjYSuDZdFBPOwVCt4Q9jgyTt6hg6sVOALzw==} - peerDependencies: - '@emotion/is-prop-valid': '*' - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@emotion/is-prop-valid': - optional: true - react: - optional: true - react-dom: - optional: true - - from2@2.3.0: - resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} - - fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - ftp@0.3.10: - resolution: {integrity: sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==} - engines: {node: '>=0.8.0'} - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - function.prototype.name@1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} - engines: {node: '>= 0.4'} - - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - - gaxios@6.7.1: - resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} - engines: {node: '>=14'} - - gcp-metadata@6.1.1: - resolution: {integrity: sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==} - engines: {node: '>=14'} - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - geojson-vt@3.2.1: - resolution: {integrity: sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==} - - geojson-vt@4.0.2: - resolution: {integrity: sha512-AV9ROqlNqoZEIJGfm1ncNjEXfkz2hdFlZf0qkVfmkwdKa8vj7H16YUOT81rJw1rdFhyEDlN2Tds91p/glzbl5A==} - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - get-canvas-context@1.0.2: - resolution: {integrity: sha512-LnpfLf/TNzr9zVOGiIY6aKCz8EKuXmlYNV7CM2pUjBa/B+c2I15tS7KLySep75+FuerJdmArvJLcsAXWEy2H0A==} - - get-east-asian-width@1.3.0: - resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} - engines: {node: '>=18'} - - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} - - get-it@8.6.9: - resolution: {integrity: sha512-CSUbVbfTZZbRrPqiMPaV3mWw+3MDgRPANtqBxLSp94cUUUZVAZfjGDwArvu5z2bx5ABW2MNB5kdT3PTOxe3cTw==} - engines: {node: '>=14.0.0'} - - get-nonce@1.0.1: - resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} - engines: {node: '>=6'} - - get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - - get-random-values-esm@1.0.2: - resolution: {integrity: sha512-HMSDTgj1HPFAuZG0FqxzHbYt5JeEGDUeT9r1RLXhS6RZQS8rLRjokgjZ0Pd28CN0lhXlRwfH6eviZqZEJ2kIoA==} - - get-random-values@1.2.2: - resolution: {integrity: sha512-lMyPjQyl0cNNdDf2oR+IQ/fM3itDvpoHy45Ymo2r0L1EjazeSl13SfbKZs7KtZ/3MDCeueiaJiuOEfKqRTsSgA==} - engines: {node: 10 || 12 || >=14} - - get-stream@2.3.1: - resolution: {integrity: sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==} - engines: {node: '>=0.10.0'} - - 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-symbol-description@1.1.0: - resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} - engines: {node: '>= 0.4'} - - get-tsconfig@4.10.0: - resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} - - get-uri@2.0.4: - resolution: {integrity: sha512-v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q==} - - github-from-package@0.0.0: - resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} - - github-markdown-css@5.8.1: - resolution: {integrity: sha512-8G+PFvqigBQSWLQjyzgpa2ThD9bo7+kDsriUIidGcRhXgmcaAWUIpCZf8DavJgc+xifjbCG+GvMyWr0XMXmc7g==} - engines: {node: '>=10'} - - gl-mat4@1.2.0: - resolution: {integrity: sha512-sT5C0pwB1/e9G9AvAoLsoaJtbMGjfd/jfxo8jMCKqYYEnjZuFvqV5rehqar0538EmssjdDeiEWnKyBSTw7quoA==} - - gl-matrix@3.4.3: - resolution: {integrity: sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==} - - gl-text@1.4.0: - resolution: {integrity: sha512-o47+XBqLCj1efmuNyCHt7/UEJmB9l66ql7pnobD6p+sgmBUdzfMZXIF0zD2+KRfpd99DJN+QXdvTFAGCKCVSmQ==} - - gl-util@3.1.3: - resolution: {integrity: sha512-dvRTggw5MSkJnCbh74jZzSoTOGnVYK+Bt+Ckqm39CVcl6+zSsxqWk4lr5NKhkqXHL6qvZAU9h17ZF8mIskY9mA==} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} - hasBin: true - - glob@11.0.1: - resolution: {integrity: sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==} - engines: {node: 20 || >=22} - hasBin: true - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - 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-prefix@4.0.0: - resolution: {integrity: sha512-w0Uf9Y9/nyHinEk5vMJKRie+wa4kR5hmDbEhGGds/kG1PwGLLHKRoNMeJOyCQjjBkANlnScqgzcFwGHgmgLkVA==} - engines: {node: '>=16'} - - global@4.4.0: - resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} - - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - - globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - - glsl-inject-defines@1.0.3: - resolution: {integrity: sha512-W49jIhuDtF6w+7wCMcClk27a2hq8znvHtlGnrYkSWEr8tHe9eA2dcnohlcAmxLYBSpSSdzOkRdyPTrx9fw49+A==} - - glsl-noise@0.0.0: - resolution: {integrity: sha512-b/ZCF6amfAUb7dJM/MxRs7AetQEahYzJ8PtgfrmEdtw6uyGOr+ZSGtgjFm6mfsBkxJ4d2W7kg+Nlqzqvn3Bc0w==} - - glsl-resolve@0.0.1: - resolution: {integrity: sha512-xxFNsfnhZTK9NBhzJjSBGX6IOqYpvBHxxmo+4vapiljyGNCY0Bekzn0firQkQrazK59c1hYxMDxYS8MDlhw4gA==} - - glsl-token-assignments@2.0.2: - resolution: {integrity: sha512-OwXrxixCyHzzA0U2g4btSNAyB2Dx8XrztY5aVUCjRSh4/D0WoJn8Qdps7Xub3sz6zE73W3szLrmWtQ7QMpeHEQ==} - - glsl-token-defines@1.0.0: - resolution: {integrity: sha512-Vb5QMVeLjmOwvvOJuPNg3vnRlffscq2/qvIuTpMzuO/7s5kT+63iL6Dfo2FYLWbzuiycWpbC0/KV0biqFwHxaQ==} - - glsl-token-depth@1.1.2: - resolution: {integrity: sha512-eQnIBLc7vFf8axF9aoi/xW37LSWd2hCQr/3sZui8aBJnksq9C7zMeUYHVJWMhFzXrBU7fgIqni4EhXVW4/krpg==} - - glsl-token-descope@1.0.2: - resolution: {integrity: sha512-kS2PTWkvi/YOeicVjXGgX5j7+8N7e56srNDEHDTVZ1dcESmbmpmgrnpjPcjxJjMxh56mSXYoFdZqb90gXkGjQw==} - - glsl-token-inject-block@1.1.0: - resolution: {integrity: sha512-q/m+ukdUBuHCOtLhSr0uFb/qYQr4/oKrPSdIK2C4TD+qLaJvqM9wfXIF/OOBjuSA3pUoYHurVRNao6LTVVUPWA==} - - glsl-token-properties@1.0.1: - resolution: {integrity: sha512-dSeW1cOIzbuUoYH0y+nxzwK9S9O3wsjttkq5ij9ZGw0OS41BirKJzzH48VLm8qLg+au6b0sINxGC0IrGwtQUcA==} - - glsl-token-scope@1.1.2: - resolution: {integrity: sha512-YKyOMk1B/tz9BwYUdfDoHvMIYTGtVv2vbDSLh94PT4+f87z21FVdou1KNKgF+nECBTo0fJ20dpm0B1vZB1Q03A==} - - glsl-token-string@1.0.1: - resolution: {integrity: sha512-1mtQ47Uxd47wrovl+T6RshKGkRRCYWhnELmkEcUAPALWGTFe2XZpH3r45XAwL2B6v+l0KNsCnoaZCSnhzKEksg==} - - glsl-token-whitespace-trim@1.0.0: - resolution: {integrity: sha512-ZJtsPut/aDaUdLUNtmBYhaCmhIjpKNg7IgZSfX5wFReMc2vnj8zok+gB/3Quqs0TsBSX/fGnqUUYZDqyuc2xLQ==} - - glsl-tokenizer@2.1.5: - resolution: {integrity: sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==} - - glslify-bundle@5.1.1: - resolution: {integrity: sha512-plaAOQPv62M1r3OsWf2UbjN0hUYAB7Aph5bfH58VxJZJhloRNbxOL9tl/7H71K7OLJoSJ2ZqWOKk3ttQ6wy24A==} - - glslify-deps@1.3.2: - resolution: {integrity: sha512-7S7IkHWygJRjcawveXQjRXLO2FTjijPDYC7QfZyAQanY+yGLCFHYnPtsGT9bdyHiwPTw/5a1m1M9hamT2aBpag==} - - glslify@7.1.1: - resolution: {integrity: sha512-bud98CJ6kGZcP9Yxcsi7Iz647wuDz3oN+IZsjCRi5X1PI7t/xPKeL0mOwXJjo+CRZMqvq0CkSJiywCcY7kVYog==} - hasBin: true - - google-logging-utils@0.0.2: - resolution: {integrity: sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==} - engines: {node: '>=14'} - - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - graphql@16.10.0: - resolution: {integrity: sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==} - engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} - - grid-index@1.1.0: - resolution: {integrity: sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==} - - groq-js@1.17.1: - resolution: {integrity: sha512-xsh5s/XPauqujZvuwKrDLDhGDyCCiXZ6QRJ0ZaQZ9/nbPADvde9ERfzTYpfeJKk4cjqlPzVBgdPBYO9hw5amBA==} - engines: {node: '>= 14'} - - groq@3.92.0: - resolution: {integrity: sha512-hxdCzI7fvoMTx7tB02thfRZN7cjcNtJGfow0VlMhlhOlwakBiwFKSpWJJ4JRxRM72dWTrrGQA+8e25c1wz4APQ==} - engines: {node: '>=18'} - - groq@3.94.2: - resolution: {integrity: sha512-4xb/cfGRydcQjxZloP42Rqgx5U6437MBgqm7ISBrZZ0PU7kL/8wSMzWxFPrOv30dAhuFTYwmSn1A4rhEsuS5Fg==} - engines: {node: '>=18'} - - gunzip-maybe@1.4.2: - resolution: {integrity: sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==} - hasBin: true - - gzip-size@6.0.0: - resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} - engines: {node: '>=10'} - - h5wasm@0.7.9: - resolution: {integrity: sha512-V3N+SSQdrTjQUqwu6sJsOcwocZCXeZnwmuNO/gervRaTiqJD1lSybqB+7d3YSciej3OIwmturEP1UzhIOZ77pA==} - - hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - - has-bigints@1.1.0: - resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} - engines: {node: '>= 0.4'} - - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - has-hover@1.0.1: - resolution: {integrity: sha512-0G6w7LnlcpyDzpeGUTuT0CEw05+QlMuGVk1IHNAlHrGJITGodjZu3x8BNDUMfKJSZXNB2ZAclqc1bvrd+uUpfg==} - - has-passive-events@1.0.0: - resolution: {integrity: sha512-2vSj6IeIsgvsRMyeQ0JaCX5Q3lX4zMn5HpoVc7MEhQ6pv8Iq9rsXjsp+E5ZwaT7T0xhMT0KmU8gtt1EFVdbJiw==} - - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-proto@1.2.0: - resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} - engines: {node: '>= 0.4'} - - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - hast-util-from-dom@5.0.1: - resolution: {integrity: sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==} - - hast-util-from-html-isomorphic@2.0.0: - resolution: {integrity: sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==} - - hast-util-from-html@2.0.3: - resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} - - hast-util-from-parse5@8.0.3: - resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} - - hast-util-is-element@3.0.0: - resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} - - hast-util-parse-selector@2.2.5: - resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} - - hast-util-parse-selector@4.0.0: - resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} - - hast-util-raw@9.1.0: - resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} - - hast-util-to-jsx-runtime@2.3.6: - resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} - - hast-util-to-parse5@8.0.0: - resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} - - hast-util-to-text@4.0.2: - resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} - - hast-util-whitespace@3.0.0: - resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - - hastscript@6.0.0: - resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} - - hastscript@9.0.1: - resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} - - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - - headers-polyfill@4.0.3: - resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} - - highlight.js@10.7.3: - resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} - - highlight.js@11.11.1: - resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==} - engines: {node: '>=12.0.0'} - - highlightjs-vue@1.0.0: - resolution: {integrity: sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==} - - history@5.3.0: - resolution: {integrity: sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==} - - hls.js@1.6.2: - resolution: {integrity: sha512-rx+pETSCJEDThm/JCm8CuadcAC410cVjb1XVXFNDKFuylaayHk1+tFxhkjvnMDAfqsJHxZXDAJ3Uc2d5xQyWlQ==} - - hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - - hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - - hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} - - hotscript@1.0.13: - resolution: {integrity: sha512-C++tTF1GqkGYecL+2S1wJTfoH6APGAsbb7PAWQ3iVIwgG/EFseAfEVOKFgAFq4yK3+6j1EjUD4UQ9dRJHX/sSQ==} - - html-encoding-sniffer@3.0.0: - resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} - engines: {node: '>=12'} - - html-encoding-sniffer@4.0.0: - resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} - engines: {node: '>=18'} - - html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - - html-parse-stringify@3.0.1: - resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==} - - html-url-attributes@3.0.1: - resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==} - - html-void-elements@3.0.0: - resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - - 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'} - - 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'} - - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - humanize-list@1.0.1: - resolution: {integrity: sha512-4+p3fCRF21oUqxhK0yZ6yaSP/H5/wZumc7q1fH99RkW7Q13aAxDeP78BKjoR+6y+kaHqKF/JWuQhsNuuI2NKtA==} - - i18next@23.16.8: - resolution: {integrity: sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==} - - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - - image-size@0.7.5: - resolution: {integrity: sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g==} - engines: {node: '>=6.9.0'} - hasBin: true - - immediate@3.0.6: - resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} - - immer@10.1.1: - resolution: {integrity: sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==} - - immutable@4.3.7: - resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} - - immutable@5.1.3: - resolution: {integrity: sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==} - - import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} - engines: {node: '>=6'} - - import-in-the-middle@1.13.1: - resolution: {integrity: sha512-k2V9wNm9B+ysuelDTHjI9d5KPc4l8zAZTGqj+pcynvWkypZd857ryzN8jNC7Pg2YZXNMJcHRPpaDyCBbNyVRpA==} - - import-local@3.2.0: - resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} - engines: {node: '>=8'} - hasBin: true - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - - 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==} - - ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - - ini@4.1.3: - resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - inline-style-parser@0.2.4: - resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} - - input-otp@1.4.2: - resolution: {integrity: sha512-l3jWwYNvrEa6NTCt7BECfCm48GvwuZzkoeG3gBL2w4CHeOXW3eKFmf9UNYkNfYc3mxMrthMnxjIE07MT0zLBQA==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc - - inquirer@12.6.3: - resolution: {integrity: sha512-eX9beYAjr1MqYsIjx1vAheXsRk1jbZRvHLcBu5nA9wX0rXR1IfCZLnVLp4Ym4mrhqmh7AuANwcdtgQ291fZDfQ==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - install@0.13.0: - resolution: {integrity: sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA==} - engines: {node: '>= 0.10'} - - internal-slot@1.1.0: - resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} - engines: {node: '>= 0.4'} - - internmap@1.0.1: - resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} - - internmap@2.0.3: - resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} - engines: {node: '>=12'} - - is-alphabetical@1.0.4: - resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} - - is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - - is-alphanumerical@1.0.4: - resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} - - is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - - is-array-buffer@3.0.5: - resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} - engines: {node: '>= 0.4'} - - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - - is-async-function@2.1.1: - resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} - engines: {node: '>= 0.4'} - - is-bigint@1.1.0: - resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} - engines: {node: '>= 0.4'} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-boolean-object@1.2.2: - resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} - engines: {node: '>= 0.4'} - - is-browser@2.1.0: - resolution: {integrity: sha512-F5rTJxDQ2sW81fcfOR1GnCXT6sVJC104fCyfj+mjpwNEwaPYSn5fte5jiHmBg3DHsIoL/l8Kvw5VN5SsTRcRFQ==} - - is-bun-module@2.0.0: - resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} - - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} - - is-data-view@1.0.2: - resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} - engines: {node: '>= 0.4'} - - is-date-object@1.1.0: - resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} - engines: {node: '>= 0.4'} - - is-decimal@1.0.4: - resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} - - is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - - is-deflate@1.0.0: - resolution: {integrity: sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==} - - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-finalizationregistry@1.1.1: - resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} - engines: {node: '>= 0.4'} - - is-finite@1.1.0: - resolution: {integrity: sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==} - engines: {node: '>=0.10.0'} - - is-firefox@1.0.3: - resolution: {integrity: sha512-6Q9ITjvWIm0Xdqv+5U12wgOKEM2KoBw4Y926m0OFkvlCxnbG94HKAsVz8w3fWcfAS5YA2fJORXX1dLrkprCCxA==} - engines: {node: '>=0.10.0'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-generator-fn@2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} - - is-generator-function@1.1.0: - resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} - engines: {node: '>= 0.4'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-gzip@1.0.0: - resolution: {integrity: sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==} - engines: {node: '>=0.10.0'} - - is-hexadecimal@1.0.4: - resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} - - is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - - is-hotkey-esm@1.0.0: - resolution: {integrity: sha512-eTXNmLCPXpKEZUERK6rmFsqmL66+5iNB998JMO+/61fSxBZFuUR1qHyFyx7ocBl5Vs8qjFzRAJLACpYfhS5g5w==} - - is-hotkey@0.2.0: - resolution: {integrity: sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==} - - is-iexplorer@1.0.0: - resolution: {integrity: sha512-YeLzceuwg3K6O0MLM3UyUUjKAlyULetwryFp1mHy1I5PfArK0AEqlfa+MR4gkJjcbuJXoDJCvXbyqZVf5CR2Sg==} - engines: {node: '>=0.10.0'} - - is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - - is-interactive@2.0.0: - resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} - engines: {node: '>=12'} - - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - - is-mobile@4.0.0: - resolution: {integrity: sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew==} - - is-natural-number@4.0.1: - resolution: {integrity: sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==} - - is-node-process@1.2.0: - resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} - - is-number-object@1.1.1: - resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} - engines: {node: '>= 0.4'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-obj@1.0.1: - resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} - engines: {node: '>=0.10.0'} - - is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - - is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - - is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} - - is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} - - is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} - - is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - - is-promise@2.2.2: - resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} - - is-reference@1.2.1: - resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} - - is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - engines: {node: '>= 0.4'} - - is-retry-allowed@2.2.0: - resolution: {integrity: sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==} - engines: {node: '>=10'} - - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - - is-shared-array-buffer@1.0.4: - resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} - engines: {node: '>= 0.4'} - - is-stream@1.1.0: - resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} - engines: {node: '>=0.10.0'} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - is-string-blank@1.0.1: - resolution: {integrity: sha512-9H+ZBCVs3L9OYqv8nuUAzpcT9OTgMD1yAWrG7ihlnibdkbtB850heAmYWxHuXc4CHy4lKeK69tN+ny1K7gBIrw==} - - is-string@1.1.1: - resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} - engines: {node: '>= 0.4'} - - is-svg-path@1.0.2: - resolution: {integrity: sha512-Lj4vePmqpPR1ZnRctHv8ltSh1OrSxHkhUkd7wi+VQdcdP15/KvQFyk7LhNuM7ZW0EVbJz8kZLVmL9quLrfq4Kg==} - - is-symbol@1.1.1: - resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} - engines: {node: '>= 0.4'} - - is-tar@1.0.0: - resolution: {integrity: sha512-8sR603bS6APKxcdkQ1e5rAC9JDCxM3OlbGJDWv5ajhHqIh6cTaqcpeOTch1iIeHYY4nHEFTgmCiGSLfvmODH4w==} - engines: {node: '>=0.10.0'} - - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} - - is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - - is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - - is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} - engines: {node: '>=12'} - - is-unicode-supported@2.1.0: - resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} - engines: {node: '>=18'} - - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - - is-weakref@1.1.1: - resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} - engines: {node: '>= 0.4'} - - is-weakset@2.0.4: - resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} - engines: {node: '>= 0.4'} - - is-what@4.1.16: - resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} - engines: {node: '>=12.13'} - - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - - isarray@0.0.1: - resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} - - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - isexe@3.1.1: - resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} - engines: {node: '>=16'} - - isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} - - isomorphic-dompurify@2.23.0: - resolution: {integrity: sha512-f9w5fPJwlu+VK1uowFy4eWYgd7uxl0nQJbtorGp1OAs6JeY1qPkBQKNee1RXrnr68GqZ86PwQ6LF/5rW1TrOZQ==} - engines: {node: '>=18'} - - isomorphic.js@0.2.5: - resolution: {integrity: sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==} - - istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} - - istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} - - istanbul-lib-instrument@6.0.3: - resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} - engines: {node: '>=10'} - - istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} - - istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} - - istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} - engines: {node: '>=8'} - - iterator.prototype@1.1.5: - resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} - engines: {node: '>= 0.4'} - - its-fine@2.0.0: - resolution: {integrity: sha512-KLViCmWx94zOvpLwSlsx6yOCeMhZYaxrJV87Po5k/FoZzcPSahvK5qJ7fYhS61sZi5ikmh2S3Hz55A2l3U69ng==} - peerDependencies: - react: ^19.0.0 - - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - - jackspeak@4.1.0: - resolution: {integrity: sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==} - engines: {node: 20 || >=22} - - 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==} - - jest-changed-files@29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-cli@29.7.0: - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - jest-config@29.7.0: - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true - - jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-each@29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-environment-jsdom@29.7.0: - resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - - jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-pnp-resolver@1.2.3: - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - - jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-resolve-dependencies@29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} - - jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest@29.7.0: - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - jiti@2.4.2: - resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} - hasBin: true - - jose@4.15.9: - resolution: {integrity: sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==} - - jotai-devtools@0.11.0: - resolution: {integrity: sha512-UVjjG7EHG/oIm1CKN46xwIbQDLW4Wkpq6pm0mjcIWATvs/W9r52U5l2FW36d9QWIRash+ccJ7RXgiz1JLPGmpA==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=17.0.0' - - jotai-optics@0.4.0: - resolution: {integrity: sha512-osbEt9AgS55hC4YTZDew2urXKZkaiLmLqkTS/wfW5/l0ib8bmmQ7kBXSFaosV6jDDWSp00IipITcJARFHdp42g==} - peerDependencies: - jotai: '>=2.0.0' - optics-ts: '>=2.0.0' - - jotai@2.12.2: - resolution: {integrity: sha512-oN8715y7MkjXlSrpyjlR887TOuc/NLZMs9gvgtfWH/JP47ChwO0lR2ijSwBvPMYyXRAPT+liIAhuBavluKGgtA==} - engines: {node: '>=12.20.0'} - peerDependencies: - '@types/react': '>=17.0.0' - react: '>=17.0.0' - peerDependenciesMeta: - '@types/react': - optional: true - react: - optional: true - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - jsdom-global@3.0.2: - resolution: {integrity: sha512-t1KMcBkz/pT5JrvcJbpUR2u/w1kO9jXctaaGJ0vZDzwFnIvGWw9IDSRciT83kIs8Bnw4qpOl8bQK08V01YgMPg==} - peerDependencies: - jsdom: '>=10.0.0' - - jsdom@20.0.3: - resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} - engines: {node: '>=14'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - - jsdom@23.2.0: - resolution: {integrity: sha512-L88oL7D/8ufIES+Zjz7v0aes+oBMh2Xnh3ygWvL0OaICOomKEPKuPnIfBJekiXr+BHbbMjrWn/xqrDQuxFTeyA==} - engines: {node: '>=18'} - peerDependencies: - canvas: ^2.11.2 - peerDependenciesMeta: - canvas: - optional: true - - jsdom@26.1.0: - resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==} - engines: {node: '>=18'} - peerDependencies: - canvas: ^3.0.0 - peerDependenciesMeta: - canvas: - optional: true - - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true - - jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true - - json-bigint@1.0.0: - resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} - - json-bignum@0.0.3: - resolution: {integrity: sha512-2WHyXj3OfHSgNyuzDbSxI1w2jgw5gkWSWhS7Qg4bWXx1nLk3jnbwfUeS0PSba3IzpTUWdHxBieELUzXRjQB2zg==} - engines: {node: '>=0.8'} - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-lexer@1.2.0: - resolution: {integrity: sha512-7otpx5UPFeSELoF8nkZPHCfywg86wOsJV0WNOaysuO7mfWj1QFp2vlqESRRCeJKBXr+tqDgHh4HgqUFKTLcifQ==} - - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - json-reduce@3.0.0: - resolution: {integrity: sha512-zvnhEvwhqTOxBIcXnxvHvhqtubdwFRp+FascmCaL56BT9jdttRU8IFc+Ilh2HPJ0AtioF8mFPxmReuJKLW0Iyw==} - - json-schema-compare@0.2.2: - resolution: {integrity: sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==} - - json-schema-merge-allof@0.8.1: - resolution: {integrity: sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w==} - engines: {node: '>=12.0.0'} - - 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@0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - json-stream-stringify@2.0.4: - resolution: {integrity: sha512-gIPoa6K5w6j/RnQ3fOtmvICKNJGViI83A7dnTIL+0QJ/1GKuNvCPFvbFWxt0agruF4iGgDFJvge4Gua4ZoiggQ==} - - json-stringify-pretty-compact@4.0.0: - resolution: {integrity: sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==} - - json2mq@0.2.0: - resolution: {integrity: sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==} - - json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - jsondiffpatch@0.5.0: - resolution: {integrity: sha512-Quz3MvAwHxVYNXsOByL7xI5EB2WYOeFswqaHIA3qOK3isRWTxiplBEocmmru6XmxDB2L7jDNYtYA4FyimoAFEw==} - engines: {node: '>=8.17.0'} - hasBin: true - bundledDependencies: [] - - jsonpointer@5.0.1: - resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} - engines: {node: '>=0.10.0'} - - jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} - - jszip@3.10.1: - resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} - - katex@0.16.22: - resolution: {integrity: sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==} - hasBin: true - - kdbush@3.0.0: - resolution: {integrity: sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==} - - kdbush@4.0.2: - resolution: {integrity: sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==} - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - - knip@5.61.3: - resolution: {integrity: sha512-8iSz8i8ufIjuUwUKzEwye7ROAW0RzCze7T770bUiz0PKL+SSwbs4RS32fjMztLwcOzSsNPlXdUAeqmkdzXxJ1Q==} - engines: {node: '>=18.18.0'} - hasBin: true - peerDependencies: - '@types/node': '>=18' - typescript: '>=5.0.4' - - ktx-parse@0.7.1: - resolution: {integrity: sha512-FeA3g56ksdFNwjXJJsc1CCc7co+AJYDp6ipIp878zZ2bU8kWROatLYf39TQEd4/XRSUvBXovQ8gaVKWPXsCLEQ==} - - language-subtag-registry@0.3.23: - resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} - - language-tags@1.0.9: - resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} - engines: {node: '>=0.10'} - - lazystream@1.0.1: - resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} - engines: {node: '>= 0.6.3'} - - lefthook-darwin-arm64@1.11.13: - resolution: {integrity: sha512-gHwHofXupCtzNLN+8esdWfFTnAEkmBxE/WKA0EwxPPJXdZYa1GUsiG5ipq/CdG/0j8ekYyM9Hzyrrk5BqJ42xw==} - cpu: [arm64] - os: [darwin] - - lefthook-darwin-x64@1.11.13: - resolution: {integrity: sha512-zYxkWNUirmTidhskY9J9AwxvdMi3YKH+TqZ3AQ1EOqkOwPBWJQW5PbnzsXDrd3YnrtZScYm/tE/moXJpEPPIpQ==} - cpu: [x64] - os: [darwin] - - lefthook-freebsd-arm64@1.11.13: - resolution: {integrity: sha512-gJzWnllcMcivusmPorEkXPpEciKotlBHn7QxWwYaSjss/U3YdZu+NTjDO30b3qeiVlyq4RAZ4BPKJODXxHHwUA==} - cpu: [arm64] - os: [freebsd] - - lefthook-freebsd-x64@1.11.13: - resolution: {integrity: sha512-689XdchgtDvZQWFFx1szUvm/mqrq/v6laki0odq5FAfcSgUeLu3w+z6UicBS5l55eFJuQTDNKARFqrKJ04e+Vw==} - cpu: [x64] - os: [freebsd] - - lefthook-linux-arm64@1.11.13: - resolution: {integrity: sha512-ujCLbaZg5S/Ao8KZAcNSb+Y3gl898ZEM0YKyiZmZo22dFFpm/5gcV46pF3xaqIw5IpH+3YYDTKDU+qTetmARyQ==} - cpu: [arm64] - os: [linux] - - lefthook-linux-x64@1.11.13: - resolution: {integrity: sha512-O5WdodeBtFOXQlvPcckqp4W/yqVM9DbVQBkvOxwSJlmsxO4sGYK1TqdxH9ihLB85B2kPPssZj9ze36/oizzhVQ==} - cpu: [x64] - os: [linux] - - lefthook-openbsd-arm64@1.11.13: - resolution: {integrity: sha512-SyBpciUfvY/lUDbZu7L6MtL/SVG2+yMTckBgb4PdJQhJlisY0IsyOYdlTw2icPPrY7JnwdsFv8UW0EJOB76W4g==} - cpu: [arm64] - os: [openbsd] - - lefthook-openbsd-x64@1.11.13: - resolution: {integrity: sha512-6+/0j6O2dzo9cjTWUKfL2J6hRR7Krna/ssqnW8cWh8QHZKO9WJn34epto9qgjeHwSysou8byI7Mwv5zOGthLCQ==} - cpu: [x64] - os: [openbsd] - - lefthook-windows-arm64@1.11.13: - resolution: {integrity: sha512-w5TwZ8bsZ17uOMtYGc5oEb4tCHjNTSeSXRy6H9Yic8E7IsPZtZLkaZGnIIwgXFuhhrcCdc6FuTvKt2tyV7EW2g==} - cpu: [arm64] - os: [win32] - - lefthook-windows-x64@1.11.13: - resolution: {integrity: sha512-7lvwnIs8CNOXKU4y3i1Pbqna+QegIORkSD2VCuHBNpIJ8H84NpjoG3tKU91IM/aI1a2eUvCk+dw+1rfMRz7Ytg==} - cpu: [x64] - os: [win32] - - lefthook@1.11.13: - resolution: {integrity: sha512-SDTk3D4nW1XRpR9u9fdYQ/qj1xeZVIwZmIFdJUnyq+w9ZLdCCvIrOmtD8SFiJowSevISjQDC+f9nqyFXUxc0SQ==} - hasBin: true - - leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - lexical@0.30.0: - resolution: {integrity: sha512-6gxYeXaJiAcreJD0whCofvO0MuJmnWoIgIl1w7L5FTigfhnEohuCx2SoI/oywzfzXE9gzZnyr3rVvZrMItPL8A==} - - lib0@0.2.111: - resolution: {integrity: sha512-NZPvycjIPaSY1DV9uz88RJYFwrul6kLMtZGIw1T1zE6i1E9q17XElZJPfWVn2iVDQTLLqhJijghuVxKS/z8EHQ==} - engines: {node: '>=16'} - hasBin: true - - lie@3.3.0: - resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} - - lightningcss-darwin-arm64@1.29.2: - resolution: {integrity: sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [darwin] - - lightningcss-darwin-x64@1.29.2: - resolution: {integrity: sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [darwin] - - lightningcss-freebsd-x64@1.29.2: - resolution: {integrity: sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [freebsd] - - lightningcss-linux-arm-gnueabihf@1.29.2: - resolution: {integrity: sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==} - engines: {node: '>= 12.0.0'} - cpu: [arm] - os: [linux] - - lightningcss-linux-arm64-gnu@1.29.2: - resolution: {integrity: sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - - lightningcss-linux-arm64-musl@1.29.2: - resolution: {integrity: sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - - lightningcss-linux-x64-gnu@1.29.2: - resolution: {integrity: sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - - lightningcss-linux-x64-musl@1.29.2: - resolution: {integrity: sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - - lightningcss-win32-arm64-msvc@1.29.2: - resolution: {integrity: sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [win32] - - lightningcss-win32-x64-msvc@1.29.2: - resolution: {integrity: sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [win32] - - lightningcss@1.29.2: - resolution: {integrity: sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==} - engines: {node: '>= 12.0.0'} - - lilconfig@3.1.3: - resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} - engines: {node: '>=14'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - load-yaml-file@0.2.0: - resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} - engines: {node: '>=6'} - - loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} - - loader-utils@2.0.4: - resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} - engines: {node: '>=8.9.0'} - - locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - lodash-es@4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - - lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - - lodash.curry@4.1.1: - resolution: {integrity: sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==} - - lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - - lodash.escaperegexp@4.1.2: - resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} - - lodash.groupby@4.6.0: - resolution: {integrity: sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==} - - lodash.has@4.5.2: - resolution: {integrity: sha512-rnYUdIo6xRCJnQmbVFEwcxF144erlD+M3YcJUVesflU9paQaE8p+fJDcIQrlMYbxoANFL+AB9hZrzSBBk5PL+g==} - - lodash.hasin@4.5.2: - resolution: {integrity: sha512-AFAitwTSq1Ka/1J9uBaVxpLBP5OI3INQvkl4wKcgIYxoA0S3aqO1QWXHR9aCcOrWtPFqP7GzlFncZfe0Jz0kNw==} - - lodash.head@4.0.1: - resolution: {integrity: sha512-cw2auMZNAJp4bAAbG0CITl68eE0j4SkbIPEskppHhIyQ2SFQWSrcoH6mnpcFPgsOqSI/lcrnCHKlz8r54D4jCA==} - - lodash.isboolean@3.0.3: - resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} - - lodash.isempty@4.4.0: - resolution: {integrity: sha512-oKMuF3xEeqDltrGMfDxAPGIVMSSRv8tbRSODbrs4KGsRRLEhrW8N8Rd4DRgB2+621hY8A8XwwrTVhXWpxFvMzg==} - - lodash.isequal@4.5.0: - resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. - - lodash.isfunction@3.0.9: - resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} - - lodash.isnil@4.0.0: - resolution: {integrity: sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==} - - lodash.isobject@3.0.2: - resolution: {integrity: sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA==} - - lodash.isstring@4.0.1: - resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} - - lodash.isundefined@3.0.1: - resolution: {integrity: sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - lodash.omit@4.5.0: - resolution: {integrity: sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==} - deprecated: This package is deprecated. Use destructuring assignment syntax instead. - - lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - - lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - log-symbols@2.2.0: - resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==} - engines: {node: '>=4'} - - log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - - log-symbols@6.0.0: - resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} - engines: {node: '>=18'} - - long@5.3.2: - resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} - - longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - - loupe@3.1.3: - resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} - - lowlight@1.20.0: - resolution: {integrity: sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==} - - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - - lru-cache@11.1.0: - resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==} - engines: {node: 20 || >=22} - - 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'} - - lz-string@1.5.0: - resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} - hasBin: true - - maath@0.10.8: - resolution: {integrity: sha512-tRvbDF0Pgqz+9XUa4jjfgAQ8/aPKmQdWXilFu2tMy4GWj4NOsx99HlULO4IeREfbO3a0sA145DZYyvXPkybm0g==} - peerDependencies: - '@types/three': '>=0.134.0' - three: '>=0.134.0' - - magic-string@0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} - - magic-string@0.30.8: - resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} - engines: {node: '>=12'} - - make-cancellable-promise@1.3.2: - resolution: {integrity: sha512-GCXh3bq/WuMbS+Ky4JBPW1hYTOU+znU+Q5m9Pu+pI8EoUqIHk9+tviOKC6/qhHh8C4/As3tzJ69IF32kdz85ww==} - - make-dir@1.3.0: - resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==} - engines: {node: '>=4'} - - make-dir@2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} - engines: {node: '>=6'} - - make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - - make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} - - make-event-props@1.6.2: - resolution: {integrity: sha512-iDwf7mA03WPiR8QxvcVHmVWEPfMY1RZXerDVNCRYW7dUr2ppH3J58Rwb39/WG39yTZdRSxr3x+2v22tvI0VEvA==} - - makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - - map-limit@0.0.1: - resolution: {integrity: sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==} - - map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - - map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - - mapbox-gl@1.13.3: - resolution: {integrity: sha512-p8lJFEiqmEQlyv+DQxFAOG/XPWN0Wp7j/Psq93Zywz7qt9CcUKFYDBOoOEKzqe6gudHVJY8/Bhqw6VDpX2lSBg==} - engines: {node: '>=6.4.0'} - - maplibre-gl@4.7.1: - resolution: {integrity: sha512-lgL7XpIwsgICiL82ITplfS7IGwrB1OJIw/pCvprDp2dhmSSEBgmPzYRvwYYYvJGJD7fxUv1Tvpih4nZ6VrLuaA==} - engines: {node: '>=16.14.0', npm: '>=8.1.0'} - - markdown-table@3.0.4: - resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - - markdown-to-jsx@7.7.6: - resolution: {integrity: sha512-/PWFFoKKMidk4Ut06F5hs5sluq1aJ0CGvUJWsnCK6hx/LPM8vlhvKAxtGHJ+U+V2Il2wmnfO6r81ICD3xZRVaw==} - engines: {node: '>= 10'} - peerDependencies: - react: '>= 0.14.0' - - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - - math-log2@1.0.1: - resolution: {integrity: sha512-9W0yGtkaMAkf74XGYVy4Dqw3YUMnTNB2eeiw9aQbUl4A3KmuCEHTt2DgAB07ENzOYAjsYSAYufkAq0Zd+jU7zA==} - engines: {node: '>=0.10.0'} - - mathjax-full@3.2.2: - resolution: {integrity: sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w==} - - md5-o-matic@0.1.1: - resolution: {integrity: sha512-QBJSFpsedXUl/Lgs4ySdB2XCzUEcJ3ujpbagdZCkRaYIaC0kFnID8jhc84KEiVv6dNFtIrmW7bqow0lDxgJi6A==} - - mdast-util-find-and-replace@3.0.2: - resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} - - mdast-util-from-markdown@2.0.2: - resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} - - 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-strikethrough@2.0.0: - resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} - - mdast-util-gfm-table@2.0.0: - resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} - - 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-math@3.0.0: - resolution: {integrity: sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==} - - mdast-util-mdx-expression@2.0.1: - resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} - - mdast-util-mdx-jsx@3.2.0: - resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} - - mdast-util-mdxjs-esm@2.0.1: - resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} - - mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - - mdast-util-to-hast@13.2.0: - resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} - - mdast-util-to-markdown@2.1.2: - resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} - - mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - - mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - - memoize-one@6.0.0: - resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} - - mendoza@3.0.8: - resolution: {integrity: sha512-iwxgEpSOx9BDLJMD0JAzNicqo9xdrvzt6w/aVwBKMndlA6z/DH41+o60H2uHB0vCR1Xr37UOgu9xFWJHvYsuKw==} - engines: {node: '>=14.18'} - - meow@9.0.0: - resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} - engines: {node: '>=10'} - - merge-refs@1.3.0: - resolution: {integrity: sha512-nqXPXbso+1dcKDpPCXvwZyJILz+vSLqGGOnDrYHQYE+B8n9JTCekVLC65AfCpR4ggVyA/45Y0iR9LDyS2iI+zA==} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - meshline@3.3.1: - resolution: {integrity: sha512-/TQj+JdZkeSUOl5Mk2J7eLcYTLiQm2IDzmlSvYm7ov15anEcDJ92GHqqazxTSreeNgfnYu24kiEvvv0WlbCdFQ==} - peerDependencies: - three: '>=0.137' - - meshoptimizer@0.18.1: - resolution: {integrity: sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==} - - mhchemparser@4.2.1: - resolution: {integrity: sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==} - - micromark-core-commonmark@2.0.3: - resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} - - micromark-extension-gfm-autolink-literal@2.1.0: - resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} - - micromark-extension-gfm-footnote@2.1.0: - resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} - - 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-tagfilter@2.0.0: - resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} - - micromark-extension-gfm-task-list-item@2.1.0: - resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} - - micromark-extension-gfm@3.0.0: - resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} - - micromark-extension-math@3.1.0: - resolution: {integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==} - - micromark-factory-destination@2.0.1: - resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} - - micromark-factory-label@2.0.1: - resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} - - micromark-factory-space@2.0.1: - resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} - - micromark-factory-title@2.0.1: - resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} - - micromark-factory-whitespace@2.0.1: - resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} - - micromark-util-character@2.1.1: - resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} - - micromark-util-chunked@2.0.1: - resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} - - micromark-util-classify-character@2.0.1: - resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} - - micromark-util-combine-extensions@2.0.1: - resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} - - micromark-util-decode-numeric-character-reference@2.0.2: - resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} - - micromark-util-decode-string@2.0.1: - resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} - - micromark-util-encode@2.0.1: - resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} - - micromark-util-html-tag-name@2.0.1: - resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} - - micromark-util-normalize-identifier@2.0.1: - resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} - - micromark-util-resolve-all@2.0.1: - resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} - - micromark-util-sanitize-uri@2.0.1: - resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} - - micromark-util-subtokenize@2.1.0: - resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} - - micromark-util-symbol@2.0.1: - resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} - - micromark-util-types@2.0.2: - resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} - - micromark@4.0.2: - resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} - - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-db@1.54.0: - resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - mime-types@3.0.1: - resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} - engines: {node: '>= 0.6'} - - 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@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - - min-document@2.19.0: - resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} - - min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - - 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'} - - minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - minipass@4.2.8: - resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} - engines: {node: '>=8'} - - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} - - minizlib@3.0.2: - resolution: {integrity: sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==} - engines: {node: '>= 18'} - - mississippi@4.0.0: - resolution: {integrity: sha512-7PujJ3Te6GGg9lG1nfw5jYCPV6/BsoAT0nCQwb6w+ROuromXYxI6jc/CQSlD82Z/OUMSBX1SoaqhTE+vXiLQzQ==} - engines: {node: '>=4.0.0'} - - mitt@3.0.1: - resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} - - mj-context-menu@0.6.1: - resolution: {integrity: sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==} - - mkdirp-classic@0.5.3: - resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - - mkdirp@3.0.1: - resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} - engines: {node: '>=10'} - hasBin: true - - module-alias@2.2.3: - resolution: {integrity: sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==} - - module-details-from-path@1.0.3: - resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==} - - moment@2.30.1: - resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} - - morphologycorejs@0.1.12: - resolution: {integrity: sha512-+1sR9aaH504/++kFXH8FoqgRsBcpcm8p40Jv4TOgmRJhtZqfsRUnuSh+6W25IV2Y8ru4WR4RtpmtK6fWgQAxKQ==} - - morphoviewer@0.1.20: - resolution: {integrity: sha512-Cky/E31NjLlD37jY7HxQruCFNu6z4U10PLwU6ib73lngMWEmFhLX3OCAzQJKXWUDn32c84d+0uGOD6Uc2jmCtg==} - - motion-dom@12.18.1: - resolution: {integrity: sha512-dR/4EYT23Snd+eUSLrde63Ws3oXQtJNw/krgautvTfwrN/2cHfCZMdu6CeTxVfRRWREW3Fy1f5vobRDiBb/q+w==} - - motion-dom@12.19.0: - resolution: {integrity: sha512-m96uqq8VbwxFLU0mtmlsIVe8NGGSdpBvBSHbnnOJQxniPaabvVdGgxSamhuDwBsRhwX7xPxdICgVJlOpzn/5bw==} - - motion-dom@12.6.3: - resolution: {integrity: sha512-gRY08RjcnzgFYLemUZ1lo/e9RkBxR+6d4BRvoeZDSeArG4XQXERSPapKl3LNQRu22Sndjf1h+iavgY0O4NrYqA==} - - motion-utils@12.18.1: - resolution: {integrity: sha512-az26YDU4WoDP0ueAkUtABLk2BIxe28d8NH1qWT8jPGhPyf44XTdDUh8pDk9OPphaSrR9McgpcJlgwSOIw/sfkA==} - - motion-utils@12.19.0: - resolution: {integrity: sha512-BuFTHINYmV07pdWs6lj6aI63vr2N4dg0vR+td0rtrdpWOhBzIkEklZyLcvKBoEtwSqx8Jg06vUB5RS0xDiUybw==} - - motion-utils@12.6.3: - resolution: {integrity: sha512-R/b3Ia2VxtTNZ4LTEO5pKYau1OUNHOuUfxuP0WFCTDYdHkeTBR9UtxR1cc8mDmKr8PEhmmfnTKGz3rSMjNRoRg==} - - mouse-change@1.4.0: - resolution: {integrity: sha512-vpN0s+zLL2ykyyUDh+fayu9Xkor5v/zRD9jhSqjRS1cJTGS0+oakVZzNm5n19JvvEj0you+MXlYTpNxUDQUjkQ==} - - mouse-event-offset@3.0.2: - resolution: {integrity: sha512-s9sqOs5B1Ykox3Xo8b3Ss2IQju4UwlW6LSR+Q5FXWpprJ5fzMLefIIItr3PH8RwzfGy6gxs/4GAmiNuZScE25w==} - - mouse-event@1.0.5: - resolution: {integrity: sha512-ItUxtL2IkeSKSp9cyaX2JLUuKk2uMoxBg4bbOWVd29+CskYJR9BGsUqtXenNzKbnDshvupjUewDIYVrOB6NmGw==} - - mouse-wheel@1.2.0: - resolution: {integrity: sha512-+OfYBiUOCTWcTECES49neZwL5AoGkXE+lFjIvzwNCnYRlso+EnfvovcBxGoyQ0yQt806eSPjS675K0EwWknXmw==} - - mout@1.2.4: - resolution: {integrity: sha512-mZb9uOruMWgn/fw28DG4/yE3Kehfk1zKCLhuDU2O3vlKdnBBr4XaOCqVTflJ5aODavGUPqFHZgrFX3NJVuxGhQ==} - - mrmime@2.0.1: - resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} - engines: {node: '>=10'} - - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - msw@2.7.3: - resolution: {integrity: sha512-+mycXv8l2fEAjFZ5sjrtjJDmm2ceKGjrNbBr1durRg6VkU9fNUE/gsmQ51hWbHqs+l35W1iM+ZsmOD9Fd6lspw==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - typescript: '>= 4.8.x' - peerDependenciesMeta: - typescript: - optional: true - - murmurhash-js@1.0.0: - resolution: {integrity: sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==} - - mute-stream@2.0.0: - resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} - engines: {node: ^18.17.0 || >=20.5.0} - - nano-pubsub@3.0.0: - resolution: {integrity: sha512-zoTNyBafxG0+F5PP3T3j1PKMr7gedriSdYRhLFLRFCz0OnQfQ6BkVk9peXVF30hz633Bw0Zh5McleOrXPjWYCQ==} - engines: {node: '>=18'} - - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - nanoid@5.1.5: - resolution: {integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==} - engines: {node: ^18 || >=20} - hasBin: true - - napi-build-utils@2.0.0: - resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} - - native-promise-only@0.8.1: - resolution: {integrity: sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg==} - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - needle@2.9.1: - resolution: {integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==} - engines: {node: '>= 4.4.x'} - hasBin: true - - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - - next-auth@4.24.11: - resolution: {integrity: sha512-pCFXzIDQX7xmHFs4KVH4luCjaCbuPRtZ9oBUjUhOk84mZ9WVPf94n87TxYI4rSRf9HmfHEF8Yep3JrYDVOo3Cw==} - peerDependencies: - '@auth/core': 0.34.2 - next: ^12.2.5 || ^13 || ^14 || ^15 - nodemailer: ^6.6.5 - react: ^17.0.2 || ^18 || ^19 - react-dom: ^17.0.2 || ^18 || ^19 - peerDependenciesMeta: - '@auth/core': - optional: true - nodemailer: - optional: true - - next-sanity-client@1.0.8: - resolution: {integrity: sha512-vpJMIsEN9WTuciLWjaGfSfEZChivMf2522sS+tjl6GtbNI8reU+5R29Zi5FGP0/pfieGlaiS3kPF6hIrFCrhCQ==} - peerDependencies: - next: latest - - next-sanity@9.12.0: - resolution: {integrity: sha512-h9j2WA0M19jhnXZSet8JMugf8zGWyx9j586VVPcntbI/LUnFvWxzZEi+tXtS/SELJDSA6xxhOu8JpUZDo7ltWw==} - engines: {node: '>=18.18'} - peerDependencies: - '@sanity/client': ^7.1.0 - '@sanity/icons': ^3.7.0 - '@sanity/types': ^3.88.2 - '@sanity/ui': ^2.15.17 - next: ^14.2 || ^15.0.0-0 - react: ^18.3 || ^19.0.0-0 - react-dom: ^18.3 || ^19.0.0-0 - sanity: ^3.88.2 - styled-components: ^6.1 - - next-tick@1.1.0: - resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} - - next@15.4.1: - resolution: {integrity: sha512-eNKB1q8C7o9zXF8+jgJs2CzSLIU3T6bQtX6DcTnCq1sIR1CJ0GlSyRs1BubQi3/JgCnr9Vr+rS5mOMI38FFyQw==} - engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.1.0 - '@playwright/test': ^1.51.1 - babel-plugin-react-compiler: '*' - react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 - react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 - sass: ^1.3.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - '@playwright/test': - optional: true - babel-plugin-react-compiler: - optional: true - sass: - optional: true - - node-abi@3.74.0: - resolution: {integrity: sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==} - engines: {node: '>=10'} - - node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - - node-html-parser@6.1.13: - resolution: {integrity: sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==} - - node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - - normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - - normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} - - normalize-svg-path@0.1.0: - resolution: {integrity: sha512-1/kmYej2iedi5+ROxkRESL/pI02pkg0OBnaR4hJkSIX6+ORzepwbuUXfrdZaPjysTsJInj0Rj5NuX027+dMBvA==} - - normalize-svg-path@1.1.0: - resolution: {integrity: sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg==} - - npm-run-path@3.1.0: - resolution: {integrity: sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==} - engines: {node: '>=8'} - - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - - number-is-integer@1.0.1: - resolution: {integrity: sha512-Dq3iuiFBkrbmuQjGFFF3zckXNCQoSD37/SdSbgcBailUx6knDvDwb5CympBgcoWHy36sfS12u74MHYkXyHq6bg==} - engines: {node: '>=0.10.0'} - - nuqs@2.4.1: - resolution: {integrity: sha512-u6sngTspqDe3jWHtcmqHQg3dl35niizCZAsm5gy7PBlgG2rwl71Dp2QUv5hwBaWKI9qz0wqILZY86TsRxq66SQ==} - peerDependencies: - '@remix-run/react': '>=2' - next: '>=14.2.0' - react: '>=18.2.0 || ^19.0.0-0' - react-router: ^6 || ^7 - react-router-dom: ^6 || ^7 - peerDependenciesMeta: - '@remix-run/react': - optional: true - next: - optional: true - react-router: - optional: true - react-router-dom: - optional: true - - nwsapi@2.2.20: - resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} - - oauth@0.9.15: - resolution: {integrity: sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==} - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - object-hash@2.2.0: - resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==} - engines: {node: '>= 6'} - - object-inspect@1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} - engines: {node: '>= 0.4'} - - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - - object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} - engines: {node: '>= 0.4'} - - object.entries@1.1.9: - resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} - engines: {node: '>= 0.4'} - - object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} - - object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} - - object.values@1.2.1: - resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} - engines: {node: '>= 0.4'} - - observable-callback@1.0.3: - resolution: {integrity: sha512-VlS275UyPnwdMtzxDgr/lCiOUyq9uXNll3vdwzDcJ6PB/LuO7gLmxAQopcCA3JoFwwujBwyA7/tP5TXZwWSXew==} - engines: {node: '>=16'} - peerDependencies: - rxjs: ^6.5 || ^7 - - oidc-token-hash@5.1.0: - resolution: {integrity: sha512-y0W+X7Ppo7oZX6eovsRkuzcSM40Bicg2JEJkDJ4irIt1wsYAP5MLSNv+QAogO8xivMffw/9OvV3um1pxXgt1uA==} - engines: {node: ^10.13.0 || >=12.0.0} - - once@1.3.3: - resolution: {integrity: sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - oneline@1.0.4: - resolution: {integrity: sha512-+hK7NemLRAJhl+cIi+G6cGrAcIlUIO0bY5XkP6OKFB6Gz3kVFrkh4Ad8t4bkiAWdsCN25OF/rNb1K/BE1ldivg==} - engines: {node: '>=6.0.0'} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - onetime@7.0.0: - resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} - engines: {node: '>=18'} - - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - - opener@1.5.2: - resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} - hasBin: true - - openid-client@5.7.1: - resolution: {integrity: sha512-jDBPgSVfTnkIh71Hg9pRvtJc6wTwqjRkN88+gCFtYWrlP4Yx2Dsrow8uPi3qLr/aeymPF3o2+dS+wOpglK04ew==} - - optics-ts@2.4.1: - resolution: {integrity: sha512-HaYzMHvC80r7U/LqAd4hQyopDezC60PO2qF5GuIwALut2cl5rK1VWHsqTp0oqoJJWjiv6uXKqsO+Q2OO0C3MmQ==} - - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - - ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - - ora@8.2.0: - resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==} - engines: {node: '>=18'} - - os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - - outvariant@1.4.3: - resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} - - own-keys@1.0.1: - resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} - engines: {node: '>= 0.4'} - - oxc-resolver@11.4.0: - resolution: {integrity: sha512-J19ZMuUoGTsMc7TUacC5B5LQccZ6CluLmQ/RiC9mXKVvC8RCoiLjQOjEKrVolvxeU9q+TK1hrcJnmtZi/DqA6Q==} - - p-finally@2.0.1: - resolution: {integrity: sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==} - engines: {node: '>=8'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - p-map@1.2.0: - resolution: {integrity: sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==} - engines: {node: '>=4'} - - p-map@7.0.3: - resolution: {integrity: sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==} - engines: {node: '>=18'} - - p-queue@2.4.2: - resolution: {integrity: sha512-n8/y+yDJwBjoLQe1GSJbbaYQLTI7QHNZI2+rpmCDbe++WLf9HC3gf6iqj5yfPAV71W4UF3ql5W1+UBPXoXTxng==} - engines: {node: '>=4'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - - pako@0.2.9: - resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} - - pako@1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - - pako@2.1.0: - resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} - - parallel-transform@1.2.0: - resolution: {integrity: sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - parenthesis@3.1.8: - resolution: {integrity: sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw==} - - parse-entities@2.0.0: - resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} - - parse-entities@4.0.2: - resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} - - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - - parse-ms@2.1.0: - resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} - engines: {node: '>=6'} - - parse-rect@1.2.0: - resolution: {integrity: sha512-4QZ6KYbnE6RTwg9E0HpLchUM9EZt6DnDxajFZZDSV4p/12ZJEvPO702DZpGvRYEPo00yKDys7jASi+/w7aO8LA==} - - parse-svg-path@0.1.2: - resolution: {integrity: sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==} - - parse-unit@1.0.1: - resolution: {integrity: sha512-hrqldJHokR3Qj88EIlV/kAyAi/G5R2+R56TBANxNMy0uPlYcttx0jnMW6Yx5KsKPSbC3KddM/7qQm3+0wEXKxg==} - - parse-wavefront-obj@1.0.3: - resolution: {integrity: sha512-La5IAKjlJ1jY0HNQGEwr9DCiLcYWRoh7IQSIsgAKMgSs0GovCZGZO8WADLEeWx3S/E/EOpJJb46zD5jifKu0kg==} - - parse5@7.2.1: - resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} - - path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - 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'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - - path-scurry@2.0.0: - resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} - engines: {node: 20 || >=22} - - path-to-regexp@6.3.0: - resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - path2d@0.2.2: - resolution: {integrity: sha512-+vnG6S4dYcYxZd+CZxzXCNKdELYZSKfohrk98yajCo1PtRoDgCTrrwOvK1GT0UoAdVszagDVllQc0U1vaX4NUQ==} - engines: {node: '>=6'} - - pathe@2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - - pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} - engines: {node: '>= 14.16'} - - pbf@3.3.0: - resolution: {integrity: sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==} - hasBin: true - - pdfjs-dist@4.8.69: - resolution: {integrity: sha512-IHZsA4T7YElCKNNXtiLgqScw4zPd3pG9do8UrznC757gMd7UPeHSL2qwNNMJo4r79fl8oj1Xx+1nh2YkzdMpLQ==} - engines: {node: '>=18'} - - 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==} - - performance-now@2.1.0: - resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} - - performant-array-to-tree@1.11.0: - resolution: {integrity: sha512-YwCqIDvnaebXaKuKQhI5yJD6ryDc3FxvoeX/5ougXTKDUWb7s5S2BuBgIyftCa4sBe1+ZU5Kmi4RJy+pjjjrpw==} - - pg-int8@1.0.1: - resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} - engines: {node: '>=4.0.0'} - - pg-protocol@1.8.0: - resolution: {integrity: sha512-jvuYlEkL03NRvOoyoRktBK7+qU5kOvlAwvmrH8sr3wbLrOdVWsRxQfz8mMy9sZFsqJ1hEWNfdWKI4SAmoL+j7g==} - - pg-types@2.2.0: - resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} - engines: {node: '>=4'} - - pick-by-alias@1.2.0: - resolution: {integrity: sha512-ESj2+eBxhGrcA1azgHs7lARG5+5iLakc/6nlfbpjcLl00HuuUOIuORhYXN4D1HfvMSKuVtFQjAlnwi1JHEeDIw==} - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} - - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - - pify@3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} - - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - - pinkie-promise@2.0.1: - resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} - engines: {node: '>=0.10.0'} - - pinkie@2.0.4: - resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} - engines: {node: '>=0.10.0'} - - pirates@4.0.7: - resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} - engines: {node: '>= 6'} - - pkg-dir@3.0.0: - resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} - engines: {node: '>=6'} - - pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - - pkg-dir@5.0.0: - resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} - engines: {node: '>=10'} - - playwright-core@1.51.1: - resolution: {integrity: sha512-/crRMj8+j/Nq5s8QcvegseuyeZPxpQCZb6HNk3Sos3BlZyAknRjoyJPFWkpNn8v0+P3WiwqFF8P+zQo4eqiNuw==} - engines: {node: '>=18'} - hasBin: true - - playwright@1.51.1: - resolution: {integrity: sha512-kkx+MB2KQRkyxjYPc3a0wLZZoDczmppyGJIvQ43l+aZihkaVvmu/21kiyaHeHjiFxjxNNFnUncKmcGIyOojsaw==} - engines: {node: '>=18'} - hasBin: true - - plotly.js-dist-min@2.35.3: - resolution: {integrity: sha512-sz2HLP8gkysLx/BanM2PtJTtZ1PLPwdHwMWNri2YxLBy3IOeuDsVQtlmWa4hoK3j/fi4naaD3uZJqH5ozM3zGg==} - - plotly.js@3.1.0: - resolution: {integrity: sha512-vx+CyzApL9tquFpwoPHOGSIWDbFPsA4om/tXZcnsygGUejXideDF9R5VwkltEIDG7Xuof45quVPyz1otv6Aqjw==} - engines: {node: '>=18.0.0'} - - pluralize-esm@9.0.5: - resolution: {integrity: sha512-Kb2dcpMsIutFw2hYrN0EhsAXOUJTd6FVMIxvNAkZCMQLVt9NGZqQczvGpYDxNWCZeCWLHUPxQIBudWzt1h7VVA==} - engines: {node: '>=14.0.0'} - - point-in-polygon@1.1.0: - resolution: {integrity: sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==} - - polished@4.3.1: - resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==} - engines: {node: '>=10'} - - polybooljs@1.2.2: - resolution: {integrity: sha512-ziHW/02J0XuNuUtmidBc6GXE8YohYydp3DWPWXYsd7O721TjcmN+k6ezjdwkDqep+gnWnFY+yqZHvzElra2oCg==} - - possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} - - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - - postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} - engines: {node: ^10 || ^12 || >=14} - - postcss@8.4.49: - resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} - engines: {node: ^10 || ^12 || >=14} - - postcss@8.5.3: - resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} - engines: {node: ^10 || ^12 || >=14} - - postgres-array@2.0.0: - resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} - engines: {node: '>=4'} - - postgres-bytea@1.0.0: - resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} - engines: {node: '>=0.10.0'} - - postgres-date@1.0.7: - resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} - engines: {node: '>=0.10.0'} - - postgres-interval@1.2.0: - resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} - engines: {node: '>=0.10.0'} - - potpack@1.0.2: - resolution: {integrity: sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==} - - potpack@2.1.0: - resolution: {integrity: sha512-pcaShQc1Shq0y+E7GqJqvZj8DTthWV1KeHGdi0Z6IAin2Oi3JnLCOfwnCo84qc+HAp52wT9nK9H7FAJp5a44GQ==} - - preact-render-to-string@5.2.6: - resolution: {integrity: sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==} - peerDependencies: - preact: '>=10' - - preact@10.26.5: - resolution: {integrity: sha512-fmpDkgfGU6JYux9teDWLhj9mKN55tyepwYbxHgQuIxbWQzgFg5vk7Mrrtfx7xRxq798ynkY4DDDxZr235Kk+4w==} - - prebuild-install@7.1.3: - resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} - engines: {node: '>=10'} - hasBin: true - - preferred-pm@4.1.1: - resolution: {integrity: sha512-rU+ZAv1Ur9jAUZtGPebQVQPzdGhNzaEiQ7VL9+cjsAWPHFYOccNXPNiev1CCDSOg/2j7UujM7ojNhpkuILEVNQ==} - engines: {node: '>=18.12'} - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier-plugin-tailwindcss@0.6.11: - resolution: {integrity: sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA==} - engines: {node: '>=14.21.3'} - peerDependencies: - '@ianvs/prettier-plugin-sort-imports': '*' - '@prettier/plugin-pug': '*' - '@shopify/prettier-plugin-liquid': '*' - '@trivago/prettier-plugin-sort-imports': '*' - '@zackad/prettier-plugin-twig': '*' - prettier: ^3.0 - prettier-plugin-astro: '*' - prettier-plugin-css-order: '*' - prettier-plugin-import-sort: '*' - prettier-plugin-jsdoc: '*' - prettier-plugin-marko: '*' - prettier-plugin-multiline-arrays: '*' - prettier-plugin-organize-attributes: '*' - prettier-plugin-organize-imports: '*' - prettier-plugin-sort-imports: '*' - prettier-plugin-style-order: '*' - prettier-plugin-svelte: '*' - peerDependenciesMeta: - '@ianvs/prettier-plugin-sort-imports': - optional: true - '@prettier/plugin-pug': - optional: true - '@shopify/prettier-plugin-liquid': - optional: true - '@trivago/prettier-plugin-sort-imports': - optional: true - '@zackad/prettier-plugin-twig': - optional: true - prettier-plugin-astro: - optional: true - prettier-plugin-css-order: - optional: true - prettier-plugin-import-sort: - optional: true - prettier-plugin-jsdoc: - optional: true - prettier-plugin-marko: - optional: true - prettier-plugin-multiline-arrays: - optional: true - prettier-plugin-organize-attributes: - optional: true - prettier-plugin-organize-imports: - optional: true - prettier-plugin-sort-imports: - optional: true - prettier-plugin-style-order: - optional: true - prettier-plugin-svelte: - optional: true - - prettier@3.5.3: - resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} - engines: {node: '>=14'} - hasBin: true - - pretty-format@27.5.1: - resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - pretty-format@3.8.0: - resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==} - - pretty-ms@7.0.1: - resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} - engines: {node: '>=10'} - - prismjs@1.27.0: - resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==} - engines: {node: '>=6'} - - prismjs@1.30.0: - resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} - engines: {node: '>=6'} - - probe-image-size@7.2.3: - resolution: {integrity: sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==} - - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - - process@0.11.10: - 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-worker-transferable@1.0.4: - resolution: {integrity: sha512-bN+0ehEnrXfxV2ZQvU2PetO0n4gqBD4ulq3MI1WOPLgr7/Mg9yRQkX5+0v1vagr74ZTsl7XtzlaYDo2EuCeYJw==} - - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - - prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - - property-information@5.6.0: - resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} - - property-information@6.5.0: - resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} - - property-information@7.0.0: - resolution: {integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==} - - protobufjs@7.5.4: - resolution: {integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==} - engines: {node: '>=12.0.0'} - - protocol-buffers-schema@3.6.0: - resolution: {integrity: sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==} - - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - - psl@1.15.0: - resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} - - pump@2.0.1: - resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} - - pump@3.0.2: - resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} - - pumpify@1.5.1: - resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - pure-rand@6.1.0: - resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} - - querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - - quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - - quickselect@2.0.0: - resolution: {integrity: sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==} - - quickselect@3.0.0: - resolution: {integrity: sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==} - - raf@3.4.1: - resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==} - - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - - raw-loader@4.0.2: - resolution: {integrity: sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - - rc-cascader@3.33.1: - resolution: {integrity: sha512-Kyl4EJ7ZfCBuidmZVieegcbFw0RcU5bHHSbtEdmuLYd0fYHCAiYKZ6zon7fWAVyC6rWWOOib0XKdTSf7ElC9rg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-checkbox@3.5.0: - resolution: {integrity: sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-collapse@3.9.0: - resolution: {integrity: sha512-swDdz4QZ4dFTo4RAUMLL50qP0EY62N2kvmk2We5xYdRwcRn8WcYtuetCJpwpaCbUfUt5+huLpVxhvmnK+PHrkA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-dialog@9.6.0: - resolution: {integrity: sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-drawer@7.2.0: - resolution: {integrity: sha512-9lOQ7kBekEJRdEpScHvtmEtXnAsy+NGDXiRWc2ZVC7QXAazNVbeT4EraQKYwCME8BJLa8Bxqxvs5swwyOepRwg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-dropdown@4.2.1: - resolution: {integrity: sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA==} - peerDependencies: - react: '>=16.11.0' - react-dom: '>=16.11.0' - - rc-field-form@2.7.0: - resolution: {integrity: sha512-hgKsCay2taxzVnBPZl+1n4ZondsV78G++XVsMIJCAoioMjlMQR9YwAp7JZDIECzIu2Z66R+f4SFIRrO2DjDNAA==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-image@7.11.1: - resolution: {integrity: sha512-XuoWx4KUXg7hNy5mRTy1i8c8p3K8boWg6UajbHpDXS5AlRVucNfTi5YxTtPBTBzegxAZpvuLfh3emXFt6ybUdA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-input-number@9.4.0: - resolution: {integrity: sha512-Tiy4DcXcFXAf9wDhN8aUAyMeCLHJUHA/VA/t7Hj8ZEx5ETvxG7MArDOSE6psbiSCo+vJPm4E3fGN710ITVn6GA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-input@1.7.3: - resolution: {integrity: sha512-A5w4egJq8+4JzlQ55FfQjDnPvOaAbzwC3VLOAdOytyek3TboSOP9qxN+Gifup+shVXfvecBLBbWBpWxmk02SWQ==} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - - rc-mentions@2.19.1: - resolution: {integrity: sha512-KK3bAc/bPFI993J3necmaMXD2reZTzytZdlTvkeBbp50IGH1BDPDvxLdHDUrpQx2b2TGaVJsn+86BvYa03kGqA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-menu@9.16.1: - resolution: {integrity: sha512-ghHx6/6Dvp+fw8CJhDUHFHDJ84hJE3BXNCzSgLdmNiFErWSOaZNsihDAsKq9ByTALo/xkNIwtDFGIl6r+RPXBg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-motion@2.9.5: - resolution: {integrity: sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-notification@5.6.3: - resolution: {integrity: sha512-42szwnn8VYQoT6GnjO00i1iwqV9D1TTMvxObWsuLwgl0TsOokzhkYiufdtQBsJMFjJravS1hfDKVMHLKLcPE4g==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-overflow@1.4.1: - resolution: {integrity: sha512-3MoPQQPV1uKyOMVNd6SZfONi+f3st0r8PksexIdBTeIYbMX0Jr+k7pHEDvsXtR4BpCv90/Pv2MovVNhktKrwvw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-pagination@5.1.0: - resolution: {integrity: sha512-8416Yip/+eclTFdHXLKTxZvn70duYVGTvUUWbckCCZoIl3jagqke3GLsFrMs0bsQBikiYpZLD9206Ej4SOdOXQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-picker@4.11.3: - resolution: {integrity: sha512-MJ5teb7FlNE0NFHTncxXQ62Y5lytq6sh5nUw0iH8OkHL/TjARSEvSHpr940pWgjGANpjCwyMdvsEV55l5tYNSg==} - engines: {node: '>=8.x'} - peerDependencies: - date-fns: '>= 2.x' - dayjs: '>= 1.x' - luxon: '>= 3.x' - moment: '>= 2.x' - react: '>=16.9.0' - react-dom: '>=16.9.0' - peerDependenciesMeta: - date-fns: - optional: true - dayjs: - optional: true - luxon: - optional: true - moment: - optional: true - - rc-progress@4.0.0: - resolution: {integrity: sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-rate@2.13.1: - resolution: {integrity: sha512-QUhQ9ivQ8Gy7mtMZPAjLbxBt5y9GRp65VcUyGUMF3N3fhiftivPHdpuDIaWIMOTEprAjZPC08bls1dQB+I1F2Q==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-resize-observer@1.4.3: - resolution: {integrity: sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-segmented@2.7.0: - resolution: {integrity: sha512-liijAjXz+KnTRVnxxXG2sYDGd6iLL7VpGGdR8gwoxAXy2KglviKCxLWZdjKYJzYzGSUwKDSTdYk8brj54Bn5BA==} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - - rc-select@14.16.6: - resolution: {integrity: sha512-YPMtRPqfZWOm2XGTbx5/YVr1HT0vn//8QS77At0Gjb3Lv+Lbut0IORJPKLWu1hQ3u4GsA0SrDzs7nI8JG7Zmyg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '*' - react-dom: '*' - - rc-slider@11.1.8: - resolution: {integrity: sha512-2gg/72YFSpKP+Ja5AjC5DPL1YnV8DEITDQrcc1eASrUYjl0esptaBVJBh5nLTXCCp15eD8EuGjwezVGSHhs9tQ==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-steps@6.0.1: - resolution: {integrity: sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-switch@4.1.0: - resolution: {integrity: sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-table@7.50.4: - resolution: {integrity: sha512-Y+YuncnQqoS5e7yHvfvlv8BmCvwDYDX/2VixTBEhkMDk9itS9aBINp4nhzXFKiBP/frG4w0pS9d9Rgisl0T1Bw==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-tabs@15.5.2: - resolution: {integrity: sha512-Hbqf2IV6k/jPgfMjPtIDmPV0D0C9c/fN4B/fYcoh9qqaUzUZQoK0PYzsV3UaV+3UsmyoYt48p74m/HkLhGTw+w==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-textarea@1.9.0: - resolution: {integrity: sha512-dQW/Bc/MriPBTugj2Kx9PMS5eXCCGn2cxoIaichjbNvOiARlaHdI99j4DTxLl/V8+PIfW06uFy7kjfUIDDKyxQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-tooltip@6.4.0: - resolution: {integrity: sha512-kqyivim5cp8I5RkHmpsp1Nn/Wk+1oeloMv9c7LXNgDxUpGm+RbXJGL+OPvDlcRnx9DBeOe4wyOIl4OKUERyH1g==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-tree-select@5.27.0: - resolution: {integrity: sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww==} - peerDependencies: - react: '*' - react-dom: '*' - - rc-tree@5.13.1: - resolution: {integrity: sha512-FNhIefhftobCdUJshO7M8uZTA9F4OPGVXqGfZkkD/5soDeOhwO06T/aKTrg0WD8gRg/pyfq+ql3aMymLHCTC4A==} - engines: {node: '>=10.x'} - peerDependencies: - react: '*' - react-dom: '*' - - rc-upload@4.8.1: - resolution: {integrity: sha512-toEAhwl4hjLAI1u8/CgKWt30BR06ulPa4iGQSMvSXoHzO88gPCslxqV/mnn4gJU7PDoltGIC9Eh+wkeudqgHyw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-util@5.44.4: - resolution: {integrity: sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-virtual-list@3.18.5: - resolution: {integrity: sha512-1FuxVSxhzTj3y8k5xMPbhXCB0t2TOiI3Tq+qE2Bu+GGV7f+ECVuQl4OUg6lZ2qT5fordTW7CBpr9czdzXCI7Pg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true - - react-base16-styling@0.9.1: - resolution: {integrity: sha512-1s0CY1zRBOQ5M3T61wetEpvQmsYSNtWEcdYzyZNxKa8t7oDvaOn9d21xrGezGAHFWLM7SHcktPuPTrvoqxSfKw==} - - react-canvas-confetti@2.0.7: - resolution: {integrity: sha512-DIj44O35TPAwJkUSIZqWdVsgAMHtVf8h7YNmnr3jF3bn5mG+d7Rh9gEcRmdJfYgRzh6K+MAGujwUoIqQyLnMJw==} - peerDependencies: - react: '*' - - react-clientside-effect@1.2.7: - resolution: {integrity: sha512-gce9m0Pk/xYYMEojRI9bgvqQAkl6hm7ozQvqWPyQx+kULiatdHgkNM1QG4DQRx5N9BAzWSCJmt9mMV8/KsdgVg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - - react-compiler-runtime@19.1.0-rc.2: - resolution: {integrity: sha512-852AwyIsbWJ5o1LkQVAZsVK3iLjMxOfKZuxqeGd/RfD+j1GqHb6j3DSHLtpu4HhFbQHsP2DzxjJyKR6luv4D8w==} - peerDependencies: - react: ^17.0.0 || ^18.0.0 || ^19.0.0 || ^0.0.0-experimental - - react-confetti@6.4.0: - resolution: {integrity: sha512-5MdGUcqxrTU26I2EU7ltkWPwxvucQTuqMm8dUz72z2YMqTD6s9vMcDUysk7n9jnC+lXuCPeJJ7Knf98VEYE9Rg==} - engines: {node: '>=16'} - peerDependencies: - react: ^16.3.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 - - react-dom@19.1.0: - resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==} - peerDependencies: - react: ^19.1.0 - - react-draggable@4.4.6: - resolution: {integrity: sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw==} - peerDependencies: - react: '>= 16.3.0' - react-dom: '>= 16.3.0' - - react-error-boundary@3.1.4: - resolution: {integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==} - engines: {node: '>=10', npm: '>=6'} - peerDependencies: - react: '>=16.13.1' - - react-error-boundary@5.0.0: - resolution: {integrity: sha512-tnjAxG+IkpLephNcePNA7v6F/QpWLH8He65+DmedchDwg162JZqx4NmbXj0mlAYVVEd81OW7aFhmbsScYfiAFQ==} - peerDependencies: - react: '>=16.13.1' - - react-fast-compare@3.2.2: - resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} - - react-focus-lock@2.13.6: - resolution: {integrity: sha512-ehylFFWyYtBKXjAO9+3v8d0i+cnc1trGS0vlTGhzFW1vbFXVUTmR8s2tt/ZQG8x5hElg6rhENlLG1H3EZK0Llg==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - react-i18next@14.0.2: - resolution: {integrity: sha512-YOB/H1IgXveEWeTsCHez18QjDXImzVZOcF9/JroSbjYoN1LOfCoARFJUQQ8VNow0TnGOtHq9SwTmismm78CTTA==} - peerDependencies: - i18next: '>= 23.2.3' - react: '>= 16.8.0' - react-dom: '*' - react-native: '*' - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true - - react-intersection-observer@9.16.0: - resolution: {integrity: sha512-w9nJSEp+DrW9KmQmeWHQyfaP6b03v+TdXynaoA964Wxt7mdR3An11z4NNCQgL4gKSK7y1ver2Fq+JKH6CWEzUA==} - peerDependencies: - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - react-dom: - optional: true - - react-ipynb-renderer@2.2.4: - resolution: {integrity: sha512-Hg6ulrEjrgBHIDfgdptf2lcbNdATCXgCXsItBn+u8y/6Uj5HZ6PkJMJAjxyrFKtzAFR4OGuALm4KOYoUmJYnQA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - - react-is@17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - - react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - - react-json-tree@0.18.0: - resolution: {integrity: sha512-Qe6HKSXrr++n9Y31nkRJ3XvQMATISpqigH1vEKhLwB56+nk5thTP0ITThpjxY6ZG/ubpVq/aEHIcyLP/OPHxeA==} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - - react-markdown@9.1.0: - resolution: {integrity: sha512-xaijuJB0kzGiUdG7nc2MOMDUDBWPyGAjZtUrow9XxUeua8IqeP+VlIfAZ3bphpcLTnSZXz6z9jcVC/TCwbfgdw==} - peerDependencies: - '@types/react': '>=18' - react: '>=18' - - react-number-format@5.4.3: - resolution: {integrity: sha512-VCY5hFg/soBighAoGcdE+GagkJq0230qN6jcS5sp8wQX1qy1fYN/RX7/BXkrs0oyzzwqR8/+eSUrqXbGeywdUQ==} - peerDependencies: - react: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - react-pdf@9.2.1: - resolution: {integrity: sha512-AJt0lAIkItWEZRA5d/mO+Om4nPCuTiQ0saA+qItO967DTjmGjnhmF+Bi2tL286mOTfBlF5CyLzJ35KTMaDoH+A==} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - 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 - peerDependenciesMeta: - '@types/react': - optional: true - - react-plotly.js@2.6.0: - resolution: {integrity: sha512-g93xcyhAVCSt9kV1svqG1clAEdL6k3U+jjuSzfTV7owaSU9Go6Ph8bl25J+jKfKvIGAEYpe4qj++WHJuc9IaeA==} - peerDependencies: - plotly.js: '>1.34.0' - react: '>0.13.0' - - react-reconciler@0.31.0: - resolution: {integrity: sha512-7Ob7Z+URmesIsIVRjnLoDGwBEG/tVitidU0nMsqX/eeJaLY89RISO/10ERe0MqmzuKUUB1rmY+h1itMbUHg9BQ==} - engines: {node: '>=0.10.0'} - peerDependencies: - react: ^19.0.0 - - react-refractor@2.2.0: - resolution: {integrity: sha512-UvWkBVqH/2b9nkkkt4UNFtU3aY1orQfd4plPjx5rxbefy6vGajNHU9n+tv8CbykFyVirr3vEBfN2JTxyK0d36g==} - peerDependencies: - react: '>=15.0.0' - - react-refresh@0.17.0: - resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} - engines: {node: '>=0.10.0'} - - react-remove-scroll-bar@2.3.8: - resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - react-remove-scroll@2.6.3: - resolution: {integrity: sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - react-resizable-panels@2.0.10: - resolution: {integrity: sha512-1cQl5rp3VDWRL04XXX92lzM1hej2Fe5x+vpjYXcldfOjKwLV5JVrt5T6q0cTB5yfp4Wh+JIdYQ9A5EnZypO1DQ==} - peerDependencies: - react: ^16.14.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.14.0 || ^17.0.0 || ^18.0.0 - - react-resizable@3.0.5: - resolution: {integrity: sha512-vKpeHhI5OZvYn82kXOs1bC8aOXktGU5AmKAgaZS4F5JPburCtbmDPqE7Pzp+1kN4+Wb81LlF33VpGwWwtXem+w==} - peerDependencies: - react: '>= 16.3' - - react-rx@4.1.30: - resolution: {integrity: sha512-O5+9CDr+yYqmPNb0Ddc6/wdc4EGpfZnZaK4h5Kf6d6ruleVb++usLUW39PmZowUH2bYCF7QnW5Gl0vLNVIlT0A==} - peerDependencies: - react: ^18.3 || >=19.0.0-0 - rxjs: ^7 - - react-select@5.10.1: - resolution: {integrity: sha512-roPEZUL4aRZDx6DcsD+ZNreVl+fM8VsKn0Wtex1v4IazH60ILp5xhdlp464IsEAlJdXeD+BhDAFsBVMfvLQueA==} - 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 - - react-style-singleton@2.2.3: - resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - react-syntax-highlighter@15.6.1: - resolution: {integrity: sha512-OqJ2/vL7lEeV5zTJyG7kmARppUjiB9h9udl4qHQjjgEos66z00Ia0OckwYfRxCSFrW8RJIBnsBwQsHZbVPspqg==} - peerDependencies: - react: '>= 0.14.0' - - react-textarea-autosize@8.5.9: - resolution: {integrity: sha512-U1DGlIQN5AwgjTyOEnI1oCcMuEr1pv1qOtklB2l4nyMGbHzWrI0eFsYK0zos2YWqAolJyG0IWJaqWmWj5ETh0A==} - engines: {node: '>=10'} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - react-transition-group@4.4.5: - resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} - peerDependencies: - react: '>=16.6.0' - react-dom: '>=16.6.0' - - react-use-measure@2.1.7: - resolution: {integrity: sha512-KrvcAo13I/60HpwGO5jpW7E9DfusKyLPLvuHlUyP5zqnmAPhNc6qTRjUQrdTADl0lpPpDVU2/Gg51UlOGHXbdg==} - peerDependencies: - react: '>=16.13' - react-dom: '>=16.13' - peerDependenciesMeta: - react-dom: - optional: true - - react@19.1.0: - resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} - engines: {node: '>=0.10.0'} - - read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} - - read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} - - readable-stream@1.0.34: - resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} - - readable-stream@1.1.14: - resolution: {integrity: sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==} - - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - - readable-stream@4.7.0: - resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - 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.1.2: - resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} - engines: {node: '>= 14.18.0'} - - redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} - - redeyed@2.1.1: - resolution: {integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==} - - redux@5.0.1: - resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} - - reflect.getprototypeof@1.0.10: - resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} - engines: {node: '>= 0.4'} - - refractor@3.6.0: - resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==} - - regenerate-unicode-properties@10.2.0: - resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} - engines: {node: '>=4'} - - regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - - regexp.prototype.flags@1.5.4: - resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} - engines: {node: '>= 0.4'} - - regexpu-core@6.2.0: - resolution: {integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==} - engines: {node: '>=4'} - - regjsgen@0.8.0: - resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - - regjsparser@0.12.0: - resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} - hasBin: true - - regl-error2d@2.0.12: - resolution: {integrity: sha512-r7BUprZoPO9AbyqM5qlJesrSRkl+hZnVKWKsVp7YhOl/3RIpi4UDGASGJY0puQ96u5fBYw/OlqV24IGcgJ0McA==} - - regl-line2d@3.1.3: - resolution: {integrity: sha512-fkgzW+tTn4QUQLpFKsUIE0sgWdCmXAM3ctXcCgoGBZTSX5FE2A0M7aynz7nrZT5baaftLrk9te54B+MEq4QcSA==} - - regl-scatter2d@3.3.1: - resolution: {integrity: sha512-seOmMIVwaCwemSYz/y4WE0dbSO9svNFSqtTh5RE57I7PjGo3tcUYKtH0MTSoshcAsreoqN8HoCtnn8wfHXXfKQ==} - - regl-splom@1.0.14: - resolution: {integrity: sha512-OiLqjmPRYbd7kDlHC6/zDf6L8lxgDC65BhC8JirhP4ykrK4x22ZyS+BnY8EUinXKDeMgmpRwCvUmk7BK4Nweuw==} - - regl@2.1.1: - resolution: {integrity: sha512-+IOGrxl3FZ8ZM9ixCWQZzFRiRn7Rzn9bu3iFHwg/yz4tlOUQgbO4PHLgG+1ZT60zcIV8tief6Qrmyl8qcoJP0g==} - - rehype-katex@7.0.1: - resolution: {integrity: sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==} - - rehype-mathjax@6.0.0: - resolution: {integrity: sha512-SioRmn+0mRWtDc4QVKG9JG88bXhPazfhc11GQoQ68mwot2WWyfabyZ7tuJu3Z4LCf893wXkQTVTF8PUlntoDwA==} - - rehype-raw@7.0.0: - resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} - - remark-gfm@4.0.1: - resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} - - remark-math@6.0.0: - resolution: {integrity: sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==} - - remark-parse@11.0.0: - resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - - remark-rehype@11.1.2: - resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} - - remark-stringify@11.0.0: - resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} - - 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-in-the-middle@7.5.2: - resolution: {integrity: sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==} - engines: {node: '>=8.6.0'} - - requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - - reselect@5.1.1: - resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==} - - resize-observer-polyfill@1.5.1: - resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} - - resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - - resolve-protobuf-schema@2.1.0: - resolution: {integrity: sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==} - - resolve.exports@2.0.3: - resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} - engines: {node: '>=10'} - - resolve@0.6.3: - resolution: {integrity: sha512-UHBY3viPlJKf85YijDUcikKX6tmF4SokIDp518ZDVT92JNDcG5uKIthaT/owt3Sar0lwtOafsQuwrg22/v2Dwg==} - - resolve@1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} - engines: {node: '>= 0.4'} - hasBin: true - - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - - resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true - - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - - restore-cursor@5.1.0: - resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} - engines: {node: '>=18'} - - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - right-now@1.0.0: - resolution: {integrity: sha512-DA8+YS+sMIVpbsuKgy+Z67L9Lxb1p05mNxRpDPNksPDEFir4vmBlUtuN9jkTGn9YMMdlBuK7XQgFiz6ws+yhSg==} - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - - rimraf@5.0.10: - resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} - hasBin: true - - rimraf@6.0.1: - resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} - engines: {node: 20 || >=22} - hasBin: true - - robust-predicates@3.0.2: - resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} - - rollup@4.35.0: - resolution: {integrity: sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - rollup@4.39.0: - resolution: {integrity: sha512-thI8kNc02yNvnmJp8dr3fNWJ9tCONDhp6TV35X6HkKGGs9E6q7YWCHbe5vKiTa7TAiNcFEmXKj3X/pG2b3ci0g==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - rrweb-cssom@0.6.0: - resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} - - rrweb-cssom@0.8.0: - resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} - - run-async@3.0.0: - resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} - engines: {node: '>=0.12.0'} - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - rw@1.3.3: - resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} - - rxjs-exhaustmap-with-trailing@2.1.1: - resolution: {integrity: sha512-gK7nsKyPFsbjDeJ0NYTcZYGW5TbTFjT3iACa28Pwp3fIf9wT/JUR8vdlKYCjUOZKXYnXEk8eRZ4zcQyEURosIA==} - peerDependencies: - rxjs: 7.x - - rxjs-mergemap-array@0.1.0: - resolution: {integrity: sha512-19fXxPXN4X8LPWu7fg/nyX+nr0G97qSNXhEvF32cdgWuoyUVQ4MrFr+UL4HGip6iO5kbZOL4puAjPeQ/D5qSlA==} - engines: {node: '>=18.0.0'} - peerDependencies: - rxjs: 7.x - - rxjs@7.8.2: - resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} - - safe-array-concat@1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} - engines: {node: '>=0.4'} - - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safe-push-apply@1.0.0: - resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} - engines: {node: '>= 0.4'} - - safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - sanity@3.94.2: - resolution: {integrity: sha512-14gx+bKum+gSRvr9GQc9ug6rLV8cl3UmMQmJOXY9shJ6y1I3uT2p62TlS+A2RsKtWN+TQe62+IgWZutzr8CnfA==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - react: ^18 || ^19 - react-dom: ^18 || ^19 - styled-components: ^6.1.15 - - sass@1.92.1: - resolution: {integrity: sha512-ffmsdbwqb3XeyR8jJR6KelIXARM9bFQe8A6Q3W4Klmwy5Ckd5gz7jgUNHo4UOqutU5Sk1DtKLbpDP0nLCg1xqQ==} - engines: {node: '>=14.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'} - - scheduler@0.25.0: - resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} - - scheduler@0.26.0: - resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} - - schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} - - schema-utils@4.3.2: - resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==} - engines: {node: '>= 10.13.0'} - - scroll-into-view-if-needed@3.1.0: - resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} - - scrollmirror@1.2.3: - resolution: {integrity: sha512-WQBV3VWrMY+T5smh8DPmzQI5SA7jyHytPSRJRlKDhP8iTx5PsdIg9zsN1SoZISkNL1Xp2bLbRSK1+gpW1hJsCQ==} - - secure-json-parse@2.7.0: - resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} - - seek-bzip@1.0.6: - resolution: {integrity: sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==} - hasBin: true - - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - semver@7.7.1: - resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} - engines: {node: '>=10'} - hasBin: true - - semver@7.7.2: - resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} - engines: {node: '>=10'} - hasBin: true - - serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} - - set-proto@1.0.0: - resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} - engines: {node: '>= 0.4'} - - setimmediate@1.0.5: - resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} - - sha256-uint8array@0.10.7: - resolution: {integrity: sha512-1Q6JQU4tX9NqsDGodej6pkrUVQVNapLZnvkwIhddH/JqzBZF1fSaxSWNY6sziXBE8aEa2twtGkXUrwzGeZCMpQ==} - - shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} - engines: {node: '>=8'} - - shallow-copy@0.0.1: - resolution: {integrity: sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==} - - shallow-equals@1.0.0: - resolution: {integrity: sha512-xd/FKcdmfmMbyYCca3QTVEJtqUOGuajNzvAX6nt8dXILwjAIEkfHc4hI8/JMGApAmb7VeULO0Q30NTxnbH/15g==} - - shallowequal@1.1.0: - resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} - - sharp@0.34.1: - resolution: {integrity: sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - - sharp@0.34.3: - resolution: {integrity: sha512-eX2IQ6nFohW4DbvHIOLRB3MHFpYqaqvXd3Tp5e/T/dSH83fxaNJQRvDMhASmkNTsNTVF2/OOopzRCt7xokgPfg==} - 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'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - shimmer@1.2.1: - resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==} - - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} - engines: {node: '>= 0.4'} - - side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} - - 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==} - engines: {node: '>= 0.4'} - - siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - signum@1.0.0: - resolution: {integrity: sha512-yodFGwcyt59XRh7w5W3jPcIQb3Bwi21suEfT7MAWnBX3iCdklJpgDgvGT9o04UonglZN5SNMfJFkHIR/jO8GHw==} - - simple-concat@1.0.1: - resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} - - 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-wcswidth@1.0.1: - resolution: {integrity: sha512-xMO/8eNREtaROt7tJvWJqHBDTMFN4eiQ5I4JRMuilwfnFcV5W9u7RUkueNkdw0jPqGMX36iCywelS5yilTuOxg==} - - sirv@2.0.4: - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} - engines: {node: '>= 10'} - - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - slate-dom@0.116.0: - resolution: {integrity: sha512-ZyyPdT4zY4d/P/gfqMWBaAWWqV3N2BbAiDqEfOtZwPLcy7vvC02PsVvSZLaGun7DvaM2EIqdN7tTq3REbQkYgA==} - peerDependencies: - slate: '>=0.99.0' - - slate-react@0.117.1: - resolution: {integrity: sha512-zwcuXRzSTMk6L1ILUC6PhEqwSIHKUq9ry13oL2ul2zKsCr6J+aVDoyU2K+IW+hk+c/8VW6U0/jUSl8mZgBc9kA==} - peerDependencies: - react: '>=18.2.0' - react-dom: '>=18.2.0' - slate: '>=0.114.0' - slate-dom: '>=0.116.0' - - slate@0.117.0: - resolution: {integrity: sha512-qPReb7Z7OQ5ryoStjlnC9tQd3294SdV5Y1aLjstAK/zckfvVYApI3GVdOawFdPgI+++KpZYiz6EHjwJGFVdbmA==} - - smol-toml@1.4.1: - resolution: {integrity: sha512-CxdwHXyYTONGHThDbq5XdwbFsuY4wlClRGejfE2NtwUtiHYsP1QtNsHb/hnj31jKYSchztJsaA8pSQoVzkfCFg==} - engines: {node: '>= 18'} - - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - - source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} - - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - - source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - space-separated-tokens@1.1.5: - resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} - - space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - - spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - - spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - - 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==} - - speakingurl@14.0.1: - resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} - engines: {node: '>=0.10.0'} - - speech-rule-engine@4.0.7: - resolution: {integrity: sha512-sJrL3/wHzNwJRLBdf6CjJWIlxC04iYKkyXvYSVsWVOiC2DSkHmxsqOhEeMsBA9XK+CHuNcsdkbFDnoUfAsmp9g==} - hasBin: true - - split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} - - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - stable-hash@0.0.5: - resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} - - stack-trace@0.0.9: - resolution: {integrity: sha512-vjUc6sfgtgY0dxCdnc40mK6Oftjo9+2K8H/NG81TMhgL392FtiPA9tn9RLyTxXmTLPJPjF3VyzFp6bsWFLisMQ==} - - stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} - - stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - - stacktrace-parser@0.1.11: - resolution: {integrity: sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==} - engines: {node: '>=6'} - - static-eval@2.1.1: - resolution: {integrity: sha512-MgWpQ/ZjGieSVB3eOJVs4OA2LT/q1vx98KPCTTQPzq/aLr0YUXTsgryTXr4SLfR0ZfUUCiedM9n/ABeDIyy4mA==} - - stats-gl@2.4.2: - resolution: {integrity: sha512-g5O9B0hm9CvnM36+v7SFl39T7hmAlv541tU81ME8YeSb3i1CIP5/QdDeSB3A0la0bKNHpxpwxOVRo2wFTYEosQ==} - peerDependencies: - '@types/three': '*' - three: '*' - - stats.js@0.17.0: - resolution: {integrity: sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw==} - - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - - std-env@3.9.0: - resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} - - stdin-discarder@0.2.2: - resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} - engines: {node: '>=18'} - - stream-each@1.2.3: - resolution: {integrity: sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==} - - stream-parser@0.3.1: - resolution: {integrity: sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==} - - stream-shift@1.0.3: - resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} - - streamx@2.22.0: - resolution: {integrity: sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==} - - strict-event-emitter@0.5.1: - resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} - - string-convert@0.2.1: - resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==} - - string-length@4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} - - string-split-by@1.0.0: - resolution: {integrity: sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - string-width@7.2.0: - resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} - engines: {node: '>=18'} - - string.prototype.includes@2.0.1: - resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} - engines: {node: '>= 0.4'} - - string.prototype.matchall@4.0.12: - resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} - engines: {node: '>= 0.4'} - - string.prototype.repeat@1.0.0: - resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} - - string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} - engines: {node: '>= 0.4'} - - string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} - - string_decoder@0.10.31: - resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} - - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - - stringify-entities@4.0.4: - resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - - strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - - strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - - strip-dirs@2.1.0: - resolution: {integrity: sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==} - - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - - strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - strip-json-comments@5.0.2: - resolution: {integrity: sha512-4X2FR3UwhNUE9G49aIsJW5hRRR3GXGTBTZRMfv568O60ojM8HcWjV/VxAxCDW3SUND33O6ZY66ZuRcdkj73q2g==} - engines: {node: '>=14.16'} - - strongly-connected-components@1.0.1: - resolution: {integrity: sha512-i0TFx4wPcO0FwX+4RkLJi1MxmcTv90jNZgxMu9XRnMXMeFUY1VJlIoXpZunPUvUUqbCT1pg5PEkFqqpcaElNaA==} - - style-to-js@1.1.16: - resolution: {integrity: sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==} - - style-to-object@1.0.8: - resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} - - styled-components@6.1.17: - resolution: {integrity: sha512-97D7DwWanI7nN24v0D4SvbfjLE9656umNSJZkBkDIWL37aZqG/wRQ+Y9pWtXyBIM/NSfcBzHLErEsqHmJNSVUg==} - engines: {node: '>= 16'} - peerDependencies: - react: '>= 16.8.0' - react-dom: '>= 16.8.0' - - styled-jsx@5.1.6: - resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} - engines: {node: '>= 12.0.0'} - peerDependencies: - '@babel/core': '*' - babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' - peerDependenciesMeta: - '@babel/core': - optional: true - babel-plugin-macros: - optional: true - - stylis@4.2.0: - resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} - - stylis@4.3.2: - resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==} - - stylis@4.3.6: - resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==} - - supercluster@7.1.5: - resolution: {integrity: sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==} - - supercluster@8.0.1: - resolution: {integrity: sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==} - - superjson@2.2.2: - resolution: {integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==} - engines: {node: '>=16'} - - superscript-text@1.0.0: - resolution: {integrity: sha512-gwu8l5MtRZ6koO0icVTlmN5pm7Dhh1+Xpe9O4x6ObMAsW+3jPbW14d1DsBq1F4wiI+WOFjXF35pslgec/G8yCQ==} - - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - suspend-react@0.1.3: - resolution: {integrity: sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==} - peerDependencies: - react: '>=17.0' - - svg-arc-to-cubic-bezier@3.2.0: - resolution: {integrity: sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==} - - svg-path-bounds@1.0.2: - resolution: {integrity: sha512-H4/uAgLWrppIC0kHsb2/dWUYSmb4GE5UqH06uqWBcg6LBjX2fu0A8+JrO2/FJPZiSsNOKZAhyFFgsLTdYUvSqQ==} - - svg-path-sdf@1.1.3: - resolution: {integrity: sha512-vJJjVq/R5lSr2KLfVXVAStktfcfa1pNFjFOgyJnzZFXlO/fDZ5DmM8FpnSKKzLPfEYTVeXuVBTHF296TpxuJVg==} - - swiper@11.2.6: - resolution: {integrity: sha512-8aXpYKtjy3DjcbzZfz+/OX/GhcU5h+looA6PbAzHMZT6ESSycSp9nAjPCenczgJyslV+rUGse64LMGpWE3PX9Q==} - engines: {node: '>= 4.7.0'} - - swr@2.3.3: - resolution: {integrity: sha512-dshNvs3ExOqtZ6kJBaAsabhPdHyeY4P2cKwRCniDVifBMoG/SVI7tfLWqPXriVspf2Rg4tPzXJTnwaihIeFw2A==} - peerDependencies: - react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - - tabbable@6.2.0: - resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} - - table-layout@4.1.1: - resolution: {integrity: sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==} - engines: {node: '>=12.17'} - - tailwindcss@4.1.3: - resolution: {integrity: sha512-2Q+rw9vy1WFXu5cIxlvsabCwhU2qUwodGq03ODhLJ0jW4ek5BUtoCsnLB0qG+m8AHgEsSJcJGDSDe06FXlP74g==} - - tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - - tapable@2.2.2: - resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} - engines: {node: '>=6'} - - tar-fs@2.1.2: - resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==} - - tar-stream@1.6.2: - resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==} - engines: {node: '>= 0.8.0'} - - tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} - - tar-stream@3.1.7: - resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} - - tar@7.4.3: - resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} - engines: {node: '>=18'} - - terser-webpack-plugin@5.3.14: - resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - - terser@5.43.1: - resolution: {integrity: sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==} - engines: {node: '>=10'} - hasBin: true - - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - - text-decoder@1.2.3: - resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} - - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - texture-compressor@1.0.2: - resolution: {integrity: sha512-dStVgoaQ11mA5htJ+RzZ51ZxIZqNOgWKAIvtjLrW1AliQQLCmrDqNzQZ8Jh91YealQ95DXt4MEduLzJmbs6lig==} - hasBin: true - - three-mesh-bvh@0.8.3: - resolution: {integrity: sha512-4G5lBaF+g2auKX3P0yqx+MJC6oVt6sB5k+CchS6Ob0qvH0YIhuUk1eYr7ktsIpY+albCqE80/FVQGV190PmiAg==} - peerDependencies: - three: '>= 0.159.0' - - three-stdlib@2.35.15: - resolution: {integrity: sha512-2XbhiOV7jVCchUoWxTmsj5dNhTe8eYb58Nyrfoa2F2yL+6h/+2VRaU2gENljRW1d/P1mk4/uwNzbdkKWV3hwzw==} - peerDependencies: - three: '>=0.128.0' - - three@0.159.0: - resolution: {integrity: sha512-eCmhlLGbBgucuo4VEA9IO3Qpc7dh8Bd4VKzr7WfW4+8hMcIfoAVi1ev0pJYN9PTTsCslbcKgBwr2wNZ1EvLInA==} - - three@0.96.0: - resolution: {integrity: sha512-tS+A5kelQgBblElc/E1G5zR3m6wNjbqmrf6OAjijuNJM7yoYQjOktPoa+Lglx73OTiTOJ3+Ff+pgWdOFt7cOhQ==} - - throttle-debounce@5.0.2: - resolution: {integrity: sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==} - engines: {node: '>=12.22'} - - throttleit@2.1.0: - resolution: {integrity: sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==} - engines: {node: '>=18'} - - through2@0.6.5: - resolution: {integrity: sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==} - - through2@2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} - - through2@3.0.2: - resolution: {integrity: sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==} - - through2@4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} - - through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - - tiny-invariant@1.3.1: - resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} - - tiny-invariant@1.3.3: - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - - tiny-warning@1.0.3: - resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} - - tinybench@2.9.0: - resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - - tinycolor2@1.6.0: - resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} - - tinyexec@0.3.2: - resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - - tinyglobby@0.2.12: - resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} - engines: {node: '>=12.0.0'} - - tinyglobby@0.2.14: - resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} - engines: {node: '>=12.0.0'} - - tinypool@1.0.2: - resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} - engines: {node: ^18.0.0 || >=20.0.0} - - tinyqueue@2.0.3: - resolution: {integrity: sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==} - - tinyqueue@3.0.0: - resolution: {integrity: sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==} - - tinyrainbow@2.0.0: - resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} - engines: {node: '>=14.0.0'} - - tinyspy@3.0.2: - resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} - engines: {node: '>=14.0.0'} - - tldts-core@6.1.85: - resolution: {integrity: sha512-DTjUVvxckL1fIoPSb3KE7ISNtkWSawZdpfxGxwiIrZoO6EbHVDXXUIlIuWympPaeS+BLGyggozX/HTMsRAdsoA==} - - tldts@6.1.85: - resolution: {integrity: sha512-gBdZ1RjCSevRPFix/hpaUWeak2/RNUZB4/8frF1r5uYMHjFptkiT0JXIebWvgI/0ZHXvxaUDDJshiA0j6GdL3w==} - hasBin: true - - tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - - tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - - to-buffer@1.1.1: - resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==} - - to-float32@1.1.0: - resolution: {integrity: sha512-keDnAusn/vc+R3iEiSDw8TOF7gPiTLdK1ArvWtYbJQiVfmRg6i/CAvbKq3uIS0vWroAC7ZecN3DjQKw3aSklUg==} - - to-px@1.0.1: - resolution: {integrity: sha512-2y3LjBeIZYL19e5gczp14/uRWFDtDUErJPVN3VU9a7SJO+RjGRtYR47aMN2bZgGlxvW4ZcEz2ddUPVHXcMfuXw==} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - toggle-selection@1.0.6: - resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} - - topojson-client@3.1.0: - resolution: {integrity: sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==} - hasBin: true - - totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} - - tough-cookie@4.1.4: - resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} - engines: {node: '>=6'} - - tough-cookie@5.1.2: - resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} - engines: {node: '>=16'} - - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - - tr46@3.0.0: - resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} - engines: {node: '>=12'} - - tr46@5.1.0: - resolution: {integrity: sha512-IUWnUK7ADYR5Sl1fZlO1INDUhVhatWl7BtJWsIhwJ0UAK7ilzzIa8uIqOO/aYVWHZPJkKbEL+362wrzoeRF7bw==} - engines: {node: '>=18'} - - traverse@0.6.11: - resolution: {integrity: sha512-vxXDZg8/+p3gblxB6BhhG5yWVn1kGRlaL8O78UDXc3wRnPizB5g83dcvWV1jpDMIPnjZjOFuxlMmE82XJ4407w==} - engines: {node: '>= 0.4'} - - trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - - trim-newlines@3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} - engines: {node: '>=8'} - - troika-three-text@0.52.4: - resolution: {integrity: sha512-V50EwcYGruV5rUZ9F4aNsrytGdKcXKALjEtQXIOBfhVoZU9VAqZNIoGQ3TMiooVqFAbR1w15T+f+8gkzoFzawg==} - peerDependencies: - three: '>=0.125.0' - - troika-three-utils@0.52.4: - resolution: {integrity: sha512-NORAStSVa/BDiG52Mfudk4j1FG4jC4ILutB3foPnfGbOeIs9+G5vZLa0pnmnaftZUGm4UwSoqEpWdqvC7zms3A==} - peerDependencies: - three: '>=0.125.0' - - troika-worker-utils@0.52.0: - resolution: {integrity: sha512-W1CpvTHykaPH5brv5VHLfQo9D1OYuo0cSBEUQFFT/nBUzM8iD6Lq2/tgG/f1OelbAS1WtaTPQzE5uM49egnngw==} - - trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - - ts-api-utils@1.4.3: - resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - - ts-api-utils@2.1.0: - resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - - ts-brand@0.2.0: - resolution: {integrity: sha512-H5uo7OqMvd91D2EefFmltBP9oeNInNzWLAZUSt6coGDn8b814Eis6SnEtzyXORr9ccEb38PfzyiRVDacdkycSQ==} - - ts-pattern@5.7.0: - resolution: {integrity: sha512-0/FvIG4g3kNkYgbNwBBW5pZBkfpeYQnH+2AA3xmjkCAit/DSDPKmgwC3fKof4oYUq6gupClVOJlFl+939VRBMg==} - - tsconfck@3.1.5: - resolution: {integrity: sha512-CLDfGgUp7XPswWnezWwsCRxNmgQjhYq3VXHM0/XIRxhVrKw0M1if9agzryh1QS3nxjCROvV+xWxoJO1YctzzWg==} - engines: {node: ^18 || >=20} - hasBin: true - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true - - tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - - tsconfig-paths@4.2.0: - resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} - engines: {node: '>=6'} - - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - - tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - - tunnel-rat@0.1.2: - resolution: {integrity: sha512-lR5VHmkPhzdhrM092lI2nACsLO4QubF0/yoOhzX7c+wIpbN1GjHNzCc91QlpxBi+cnx8vVJ+Ur6vL5cEoQPFpQ==} - - tunnel@0.0.6: - resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} - engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} - - tween-functions@1.2.0: - resolution: {integrity: sha512-PZBtLYcCLtEcjL14Fzb1gSxPBeL7nWvGhO5ZFPGqziCcr8uvHp0NDmdjBchp6KHL+tExcg0m3NISmKxhU394dA==} - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - - type-fest@0.18.1: - resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} - engines: {node: '>=10'} - - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - - type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - - type-fest@0.7.1: - resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} - engines: {node: '>=8'} - - type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - - type-fest@4.39.1: - resolution: {integrity: sha512-uW9qzd66uyHYxwyVBYiwS4Oi0qZyUqwjU+Oevr6ZogYiXt99EOYtwvzMSLw1c3lYo2HzJsep/NB23iEVEgjG/w==} - engines: {node: '>=16'} - - type@2.7.3: - resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} - - typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} - - typed-array-byte-length@1.0.3: - resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} - engines: {node: '>= 0.4'} - - typed-array-byte-offset@1.0.4: - resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} - engines: {node: '>= 0.4'} - - typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} - engines: {node: '>= 0.4'} - - typedarray-pool@1.2.0: - resolution: {integrity: sha512-YTSQbzX43yvtpfRtIDAYygoYtgT+Rpjuxy9iOpczrjpXLgGoyG7aS5USJXV2d3nn8uHTeb9rXDvzS27zUg5KYQ==} - - typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - - typedarray.prototype.slice@1.0.5: - resolution: {integrity: sha512-q7QNVDGTdl702bVFiI5eY4l/HkgCM6at9KhcFbgUAzezHFbOVy4+0O/lCjsABEQwbZPravVfBIiBVGo89yzHFg==} - engines: {node: '>= 0.4'} - - typedarray@0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - - typeid-js@0.3.0: - resolution: {integrity: sha512-A1EmvIWG6xwYRfHuYUjPltHqteZ1EiDG+HOmbIYXeHUVztmnGrPIfU9KIK1QC30x59ko0r4JsMlwzsALCyiB3Q==} - - typescript@5.8.3: - resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} - engines: {node: '>=14.17'} - hasBin: true - - typical@7.3.0: - resolution: {integrity: sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw==} - engines: {node: '>=12.17'} - - unbox-primitive@1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} - engines: {node: '>= 0.4'} - - unbzip2-stream@1.4.3: - resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} - - undici-types@6.19.8: - resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} - - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - - undici@5.29.0: - resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} - engines: {node: '>=14.0'} - - unicode-canonical-property-names-ecmascript@2.0.1: - resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} - engines: {node: '>=4'} - - unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} - - unicode-match-property-value-ecmascript@2.2.0: - resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} - engines: {node: '>=4'} - - unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} - - unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} - engines: {node: '>=18'} - - unified@11.0.5: - resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - - unique-string@2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} - - unist-util-filter@2.0.3: - resolution: {integrity: sha512-8k6Jl/KLFqIRTHydJlHh6+uFgqYHq66pV75pZgr1JwfyFSjbWb12yfb0yitW/0TbHXjr9U4G9BQpOvMANB+ExA==} - - unist-util-find-after@5.0.0: - resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} - - unist-util-is@4.1.0: - resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} - - unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - - unist-util-position@5.0.0: - resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} - - unist-util-remove-position@5.0.0: - resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} - - unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - - unist-util-visit-parents@3.1.1: - resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} - - unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - - unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - - universal-user-agent@6.0.1: - resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} - - universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} - - unplugin@1.0.1: - resolution: {integrity: sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA==} - - unquote@1.1.1: - resolution: {integrity: sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==} - - unrs-resolver@1.4.1: - resolution: {integrity: sha512-MhPB3wBI5BR8TGieTb08XuYlE8oFVEXdSAgat3psdlRyejl8ojQ8iqPcjh094qCZ1r+TnkxzP6BeCd/umfHckQ==} - - update-browserslist-db@1.1.3: - resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - update-diff@1.1.0: - resolution: {integrity: sha512-rCiBPiHxZwT4+sBhEbChzpO5hYHjm91kScWgdHf4Qeafs6Ba7MBl+d9GlGv72bcTZQO0sLmtQS1pHSWoCLtN/A==} - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - - urlpattern-polyfill@10.1.0: - resolution: {integrity: sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==} - - use-callback-ref@1.3.3: - resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - use-composed-ref@1.4.0: - resolution: {integrity: sha512-djviaxuOOh7wkj0paeO1Q/4wMZ8Zrnag5H6yBvzN7AKKe8beOaED9SF5/ByLqsku8NP4zQqsvM2u3ew/tJK8/w==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - use-device-pixel-ratio@1.1.2: - resolution: {integrity: sha512-nFxV0HwLdRUt20kvIgqHYZe6PK/v4mU1X8/eLsT1ti5ck0l2ob0HDRziaJPx+YWzBo6dMm4cTac3mcyk68Gh+A==} - peerDependencies: - react: '>=16.8.0' - - use-effect-event@1.0.2: - resolution: {integrity: sha512-9c8AAmtQja4LwJXI0EQPhQCip6dmrcSe0FMcTUZBeGh/XTCOLgw3Qbt0JdUT8Rcrm/ZH+Web7MIcMdqgQKdXJg==} - peerDependencies: - react: ^18.3 || ^19.0.0-0 - - use-effect-event@2.0.2: - resolution: {integrity: sha512-IGikKu2QMAjtBUc3basvXjYvAXvGAMTVmcz9S2cuuRDEGH142Ez4ctiOzhsw3HGNZoFSB2a+0c4OHpT1OTw3Og==} - peerDependencies: - react: ^18.3 || ^19.0.0-0 - - use-hot-module-reload@2.0.0: - resolution: {integrity: sha512-RbL/OY1HjHNf5BYSFV3yDtQhIGKjCx9ntEjnUBYsOGc9fTo94nyFTcjtD42/twJkPgMljWpszUIpTGD3LuwHSg==} - peerDependencies: - react: '>=17.0.0' - - use-isomorphic-layout-effect@1.2.0: - resolution: {integrity: sha512-q6ayo8DWoPZT0VdG4u3D3uxcgONP3Mevx2i2b0434cwWBoL+aelL1DzkXI6w3PhTZzUeR2kaVlZn70iCiseP6w==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - use-latest@1.3.0: - resolution: {integrity: sha512-mhg3xdm9NaM8q+gLT8KryJPnRFOz1/5XPBhmDEVZK1webPzDjrPk7f/mbpeLqTgB9msytYWANxgALOCJKnLvcQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - use-sidecar@1.1.3: - resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - use-sync-external-store@1.5.0: - resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - utility-types@3.11.0: - resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} - engines: {node: '>= 4'} - - uuid@11.1.0: - resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} - hasBin: true - - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - - uuidv7@0.4.4: - resolution: {integrity: sha512-jjRGChg03uGp9f6wQYSO8qXkweJwRbA5WRuEQE8xLIiehIzIIi23qZSzsyvZPCPoFqkeLtZuz7Plt1LGukAInA==} - hasBin: true - - v8-to-istanbul@9.3.0: - resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} - engines: {node: '>=10.12.0'} - - valibot@1.1.0: - resolution: {integrity: sha512-Nk8lX30Qhu+9txPYTwM0cFlWLdPFsFr6LblzqIySfbZph9+BFsAHsNvHOymEviUepeIW6KFHzpX8TKhbptBXXw==} - peerDependencies: - typescript: '>=5' - peerDependenciesMeta: - typescript: - optional: true - - validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - - validate-npm-package-name@3.0.0: - resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} - - validate.io-array@1.0.6: - resolution: {integrity: sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==} - - validate.io-function@1.0.2: - resolution: {integrity: sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==} - - validate.io-integer-array@1.0.0: - resolution: {integrity: sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==} - - validate.io-integer@1.0.5: - resolution: {integrity: sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==} - - validate.io-number@1.0.3: - resolution: {integrity: sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==} - - vfile-location@5.0.3: - resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} - - vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - - vfile@6.0.3: - resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - - vite-node@3.1.1: - resolution: {integrity: sha512-V+IxPAE2FvXpTCHXyNem0M+gWm6J7eRyWPR6vYoG/Gl+IscNOjXzztUhimQgTxaAoUoj40Qqimaa0NLIOOAH4w==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - - vite-tsconfig-paths@5.1.4: - resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} - peerDependencies: - vite: '*' - peerDependenciesMeta: - vite: - optional: true - - vite@6.2.6: - resolution: {integrity: sha512-9xpjNl3kR4rVDZgPNdTL0/c6ao4km69a/2ihNQbcANz8RuCOK3hQBmLSJf3bRKVQjVMda+YvizNE8AwvogcPbw==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - jiti: '>=1.21.0' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - - vite@6.3.5: - resolution: {integrity: sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - jiti: '>=1.21.0' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - - vitest@3.1.1: - resolution: {integrity: sha512-kiZc/IYmKICeBAZr9DQ5rT7/6bD9G7uqQEki4fxazi1jdVl2mWGzedtBs5s6llz59yQhVb7FFY2MbHzHCnT79Q==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/debug': ^4.1.12 - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 3.1.1 - '@vitest/ui': 3.1.1 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/debug': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - - void-elements@3.1.0: - resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} - engines: {node: '>=0.10.0'} - - vt-pbf@3.1.3: - resolution: {integrity: sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==} - - w3c-xmlserializer@4.0.0: - resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} - engines: {node: '>=14'} - - w3c-xmlserializer@5.0.0: - resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} - engines: {node: '>=18'} - - walk-up-path@4.0.0: - resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==} - engines: {node: 20 || >=22} - - walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - - warning@4.0.3: - resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} - - watchpack@2.4.4: - resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} - engines: {node: '>=10.13.0'} - - wavefront-obj-parser@2.0.1: - resolution: {integrity: sha512-/jQ6YJY96nL5gASw+gk0XP73DSGJE0zGrmL+19BVssvSEUOxXyKrW6v8Ozk6qAsd/bh0BtshYV0/kjjupZw9Pw==} - hasBin: true - - wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - - weak-map@1.0.8: - resolution: {integrity: sha512-lNR9aAefbGPpHO7AEnY0hCFjz1eTkWCXYvkTRrTHs9qv8zJp+SkVYpzfLIFXQQiG3tVvbNFQgVg2bQS8YGgxyw==} - - web-namespaces@2.0.1: - resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} - - webgl-constants@1.1.1: - resolution: {integrity: sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg==} - - webgl-context@2.2.0: - resolution: {integrity: sha512-q/fGIivtqTT7PEoF07axFIlHNk/XCPaYpq64btnepopSWvKNFkoORlQYgqDigBIuGA1ExnFd/GnSUnBNEPQY7Q==} - - webgl-sdf-generator@1.1.1: - resolution: {integrity: sha512-9Z0JcMTFxeE+b2x1LJTdnaT8rT8aEp7MVxkNwoycNmJWwPdzoXzMh0BjJSh/AEFP+KPYZUli814h8bJZFIZ2jA==} - - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} - - webpack-bundle-analyzer@4.10.1: - resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==} - engines: {node: '>= 10.13.0'} - hasBin: true - - webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} - - webpack-sources@3.3.3: - resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} - engines: {node: '>=10.13.0'} - - webpack-virtual-modules@0.5.0: - resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} - - webpack@5.99.5: - resolution: {integrity: sha512-q+vHBa6H9qwBLUlHL4Y7L0L1/LlyBKZtS9FHNCQmtayxjI5RKC9yD8gpvLeqGv5lCQp1Re04yi0MF40pf30Pvg==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - - whatwg-encoding@2.0.0: - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} - engines: {node: '>=12'} - - whatwg-encoding@3.1.1: - resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} - engines: {node: '>=18'} - - whatwg-fetch@3.6.20: - resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} - - whatwg-mimetype@3.0.0: - resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} - engines: {node: '>=12'} - - whatwg-mimetype@4.0.0: - resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} - engines: {node: '>=18'} - - whatwg-url@11.0.0: - resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} - engines: {node: '>=12'} - - whatwg-url@14.2.0: - resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} - engines: {node: '>=18'} - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - - which-boxed-primitive@1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} - engines: {node: '>= 0.4'} - - which-builtin-type@1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} - engines: {node: '>= 0.4'} - - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - - which-pm@3.0.1: - resolution: {integrity: sha512-v2JrMq0waAI4ju1xU5x3blsxBBMgdgZve580iYMN5frDaLGjbA24fok7wKCsya8KLVO19Ju4XDc5+zTZCJkQfg==} - engines: {node: '>=18.12'} - - which-typed-array@1.1.19: - resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} - engines: {node: '>= 0.4'} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - which@4.0.0: - resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} - engines: {node: ^16.13.0 || >=18.0.0} - hasBin: true - - which@5.0.0: - resolution: {integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==} - engines: {node: ^18.17.0 || >=20.5.0} - hasBin: true - - why-is-node-running@2.3.0: - resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} - engines: {node: '>=8'} - hasBin: true - - wicked-good-xpath@1.3.0: - resolution: {integrity: sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==} - - widest-line@3.1.0: - resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} - engines: {node: '>=8'} - - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - - wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - - wordwrapjs@5.1.0: - resolution: {integrity: sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==} - engines: {node: '>=12.17'} - - world-calendars@1.0.4: - resolution: {integrity: sha512-VGRnLJS+xJmGDPodgJRnGIDwGu0s+Cr9V2HB3EzlDZ5n0qb8h5SJtGUEkjrphZYAglEiXZ6kiXdmk0H/h/uu/w==} - - wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - - write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - ws@7.5.10: - resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@8.18.1: - resolution: {integrity: sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@8.18.2: - resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - xdg-basedir@4.0.0: - resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} - engines: {node: '>=8'} - - xdg-basedir@5.1.0: - resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} - engines: {node: '>=12'} - - xml-name-validator@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} - - xml-name-validator@5.0.0: - resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} - engines: {node: '>=18'} - - xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - - xmldom-sre@0.1.31: - resolution: {integrity: sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw==} - engines: {node: '>=0.1'} - - xregexp@2.0.0: - resolution: {integrity: sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==} - - xstate@5.19.2: - resolution: {integrity: sha512-B8fL2aP0ogn5aviAXFzI5oZseAMqN00fg/TeDa3ZtatyDcViYLIfuQl4y8qmHCiKZgGEzmnTyNtNQL9oeJE2gw==} - - xstate@5.20.0: - resolution: {integrity: sha512-lFQ0fLwVa0OMZnjNP8zUkt2fwIS85ZBNPvxE41APVYhYj0++aTssgmsnTAiBHdKYbgnd6+L8DRTZ9jPZAFPuyw==} - - xtend@2.2.0: - resolution: {integrity: sha512-SLt5uylT+4aoXxXuwtQp5ZnMMzhDb1Xkg4pEqc00WUJCQifPfV9Ub1VrNhp9kXkrjZD2I2Hl8WnjP37jzZLPZw==} - engines: {node: '>=0.4'} - - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - - 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==} - - yallist@5.0.0: - resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} - engines: {node: '>=18'} - - yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - - yaml@2.7.1: - resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==} - engines: {node: '>= 14'} - hasBin: true - - yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - - 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==} - - yjs@13.6.24: - resolution: {integrity: sha512-xn/pYLTZa3uD1uDG8lpxfLRo5SR/rp0frdASOl2a71aYNvUXdWcLtVL91s2y7j+Q8ppmjZ9H3jsGVgoFMbT2VA==} - engines: {node: '>=16.0.0', npm: '>=8.0.0'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - - yocto-queue@1.2.1: - resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} - engines: {node: '>=12.20'} - - yoctocolors-cjs@2.1.2: - resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} - engines: {node: '>=18'} - - zip-stream@6.0.1: - resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} - engines: {node: '>= 14'} - - zod-to-json-schema@3.24.5: - resolution: {integrity: sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==} - peerDependencies: - zod: ^3.24.1 - - zod-validation-error@3.5.2: - resolution: {integrity: sha512-mdi7YOLtram5dzJ5aDtm1AG9+mxRma1iaMrZdYIpFO7epdKBUwLHIxTF8CPDeCQ828zAXYtizrKlEJAtzgfgrw==} - engines: {node: '>=18.0.0'} - peerDependencies: - zod: ^3.25.0 - - zod@3.24.2: - resolution: {integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==} - - zustand@4.5.6: - resolution: {integrity: sha512-ibr/n1hBzLLj5Y+yUcU7dYw8p6WnIVzdJbnX+1YpaScvZVF2ziugqHs+LAmHw4lWO9c/zRj+K1ncgWDQuthEdQ==} - engines: {node: '>=12.7.0'} - peerDependencies: - '@types/react': '>=16.8' - immer: '>=9.0.6' - react: '>=16.8' - peerDependenciesMeta: - '@types/react': - optional: true - immer: - optional: true - react: - optional: true - - zustand@5.0.3: - resolution: {integrity: sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==} - engines: {node: '>=12.20.0'} - peerDependencies: - '@types/react': '>=18.0.0' - immer: '>=9.0.6' - react: '>=18.0.0' - use-sync-external-store: '>=1.2.0' - peerDependenciesMeta: - '@types/react': - optional: true - immer: - optional: true - react: - optional: true - use-sync-external-store: - optional: true - - zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - -snapshots: - - '@actions/core@1.11.1': - dependencies: - '@actions/exec': 1.1.1 - '@actions/http-client': 2.2.3 - - '@actions/exec@1.1.1': - dependencies: - '@actions/io': 1.1.3 - - '@actions/github@6.0.0': - dependencies: - '@actions/http-client': 2.2.3 - '@octokit/core': 5.2.1 - '@octokit/plugin-paginate-rest': 9.2.2(@octokit/core@5.2.1) - '@octokit/plugin-rest-endpoint-methods': 10.4.1(@octokit/core@5.2.1) - - '@actions/http-client@2.2.3': - dependencies: - tunnel: 0.0.6 - undici: 5.29.0 - - '@actions/io@1.1.3': {} - - '@adobe/css-tools@4.4.2': {} - - '@ai-sdk/provider-utils@2.2.6(zod@3.24.2)': - dependencies: - '@ai-sdk/provider': 1.1.2 - nanoid: 3.3.11 - secure-json-parse: 2.7.0 - zod: 3.24.2 - - '@ai-sdk/provider@1.1.2': - dependencies: - json-schema: 0.4.0 - - '@ai-sdk/react@1.2.8(react@19.1.0)(zod@3.24.2)': - dependencies: - '@ai-sdk/provider-utils': 2.2.6(zod@3.24.2) - '@ai-sdk/ui-utils': 1.2.7(zod@3.24.2) - react: 19.1.0 - swr: 2.3.3(react@19.1.0) - throttleit: 2.1.0 - optionalDependencies: - zod: 3.24.2 - - '@ai-sdk/ui-utils@1.2.7(zod@3.24.2)': - dependencies: - '@ai-sdk/provider': 1.1.2 - '@ai-sdk/provider-utils': 2.2.6(zod@3.24.2) - zod: 3.24.2 - zod-to-json-schema: 3.24.5(zod@3.24.2) - - '@alloc/quick-lru@5.2.0': {} - - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - - '@ant-design/colors@7.2.0': - dependencies: - '@ant-design/fast-color': 2.0.6 - - '@ant-design/colors@8.0.0': - dependencies: - '@ant-design/fast-color': 3.0.0 - - '@ant-design/cssinjs-utils@1.1.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@ant-design/cssinjs': 1.23.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@babel/runtime': 7.27.0 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@ant-design/cssinjs@1.23.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@babel/runtime': 7.27.0 - '@emotion/hash': 0.8.0 - '@emotion/unitless': 0.7.5 - classnames: 2.5.1 - csstype: 3.1.3 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - stylis: 4.3.6 - - '@ant-design/fast-color@2.0.6': - dependencies: - '@babel/runtime': 7.27.0 - - '@ant-design/fast-color@3.0.0': {} - - '@ant-design/icons-svg@4.4.2': {} - - '@ant-design/icons@5.6.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@ant-design/colors': 7.2.0 - '@ant-design/icons-svg': 4.4.2 - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@ant-design/icons@6.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@ant-design/colors': 8.0.0 - '@ant-design/icons-svg': 4.4.2 - '@rc-component/util': 1.2.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - classnames: 2.5.1 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@ant-design/nextjs-registry@1.0.2(@ant-design/cssinjs@1.23.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(antd@5.24.6(date-fns@4.1.0)(moment@2.30.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@ant-design/cssinjs': 1.23.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - antd: 5.24.6(date-fns@4.1.0)(moment@2.30.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@ant-design/react-slick@1.1.2(react@19.1.0)': - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - json2mq: 0.2.0 - react: 19.1.0 - resize-observer-polyfill: 1.5.1 - throttle-debounce: 5.0.2 - - '@ant-design/v5-patch-for-react-19@1.0.3(antd@5.24.6(date-fns@4.1.0)(moment@2.30.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - antd: 5.24.6(date-fns@4.1.0)(moment@2.30.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@apache-arrow/es2015-esm@19.0.1': - dependencies: - '@swc/helpers': 0.5.17 - '@types/command-line-args': 5.2.3 - '@types/command-line-usage': 5.0.4 - '@types/node': 20.17.30 - command-line-args: 6.0.1 - command-line-usage: 7.0.3 - flatbuffers: 24.12.23 - json-bignum: 0.0.3 - tslib: 2.8.1 - transitivePeerDependencies: - - '@75lb/nature' - - '@apidevtools/json-schema-ref-parser@13.0.1': - dependencies: - '@types/json-schema': 7.0.15 - js-yaml: 4.1.0 - - '@ark/schema@0.46.0': - dependencies: - '@ark/util': 0.46.0 - - '@ark/util@0.46.0': {} - - '@asamuzakjp/css-color@3.1.1': - 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) - '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - lru-cache: 10.4.3 - - '@asamuzakjp/dom-selector@2.0.2': - dependencies: - bidi-js: 1.0.3 - css-tree: 2.3.1 - is-potential-custom-element-name: 1.0.1 - - '@babel/code-frame@7.26.2': - dependencies: - '@babel/helper-validator-identifier': 7.25.9 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/code-frame@7.27.1': - dependencies: - '@babel/helper-validator-identifier': 7.27.1 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/compat-data@7.26.8': {} - - '@babel/compat-data@7.27.5': {} - - '@babel/core@7.26.10': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.27.0 - '@babel/helper-compilation-targets': 7.27.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) - '@babel/helpers': 7.27.0 - '@babel/parser': 7.27.0 - '@babel/template': 7.27.0 - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 - convert-source-map: 2.0.0 - debug: 4.4.0(supports-color@8.1.1) - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/core@7.27.4': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.27.5 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) - '@babel/helpers': 7.27.6 - '@babel/parser': 7.27.5 - '@babel/template': 7.27.2 - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 - convert-source-map: 2.0.0 - debug: 4.4.0(supports-color@8.1.1) - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.27.0': - dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.1.0 - - '@babel/generator@7.27.5': - dependencies: - '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.1.0 - - '@babel/helper-annotate-as-pure@7.25.9': - dependencies: - '@babel/types': 7.27.6 - - '@babel/helper-annotate-as-pure@7.27.3': - dependencies: - '@babel/types': 7.27.6 - - '@babel/helper-compilation-targets@7.27.0': - dependencies: - '@babel/compat-data': 7.26.8 - '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.4 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-compilation-targets@7.27.2': - dependencies: - '@babel/compat-data': 7.27.5 - '@babel/helper-validator-option': 7.27.1 - browserslist: 4.24.4 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-member-expression-to-functions': 7.27.1 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.4) - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.27.4 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/helper-create-regexp-features-plugin@7.27.0(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-annotate-as-pure': 7.25.9 - regexpu-core: 6.2.0 - semver: 6.3.1 - - '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-annotate-as-pure': 7.27.3 - regexpu-core: 6.2.0 - semver: 6.3.1 - - '@babel/helper-define-polyfill-provider@0.6.4(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.0(supports-color@8.1.1) - lodash.debounce: 4.0.8 - resolve: 1.22.10 - transitivePeerDependencies: - - supports-color - - '@babel/helper-member-expression-to-functions@7.27.1': - dependencies: - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-imports@7.25.9': - dependencies: - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-imports@7.27.1': - dependencies: - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.27.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.27.3(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.27.4 - transitivePeerDependencies: - - supports-color - - '@babel/helper-optimise-call-expression@7.27.1': - dependencies: - '@babel/types': 7.27.6 - - '@babel/helper-plugin-utils@7.26.5': {} - - '@babel/helper-plugin-utils@7.27.1': {} - - '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-wrap-function': 7.27.1 - '@babel/traverse': 7.27.4 - transitivePeerDependencies: - - supports-color - - '@babel/helper-replace-supers@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-member-expression-to-functions': 7.27.1 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.27.4 - transitivePeerDependencies: - - supports-color - - '@babel/helper-skip-transparent-expression-wrappers@7.27.1': - dependencies: - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 - transitivePeerDependencies: - - supports-color - - '@babel/helper-string-parser@7.25.9': {} - - '@babel/helper-string-parser@7.27.1': {} - - '@babel/helper-validator-identifier@7.25.9': {} - - '@babel/helper-validator-identifier@7.27.1': {} - - '@babel/helper-validator-option@7.25.9': {} - - '@babel/helper-validator-option@7.27.1': {} - - '@babel/helper-wrap-function@7.27.1': - dependencies: - '@babel/template': 7.27.2 - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 - transitivePeerDependencies: - - supports-color - - '@babel/helpers@7.27.0': - dependencies: - '@babel/template': 7.27.0 - '@babel/types': 7.27.0 - - '@babel/helpers@7.27.6': - dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.27.6 - - '@babel/parser@7.27.0': - dependencies: - '@babel/types': 7.27.0 - - '@babel/parser@7.27.5': - dependencies: - '@babel/types': 7.27.6 - - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.27.4 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.4) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.27.4 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-async-generator-functions@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.27.4) - '@babel/traverse': 7.27.4 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.27.4) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-block-scoping@7.27.5(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-classes@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.4) - '@babel/traverse': 7.27.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/template': 7.27.2 - - '@babel/plugin-transform-destructuring@7.27.3(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.27.4 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-literals@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.27.4 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-object-rest-spread@7.27.3(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.27.3(@babel/core@7.27.4) - '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.27.4) - - '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.4) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-parameters@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-react-display-name@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.27.4) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) - '@babel/types': 7.27.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-regenerator@7.27.5(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-spread@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-typescript@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.4) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/preset-env@7.27.2(@babel/core@7.27.4)': - dependencies: - '@babel/compat-data': 7.27.5 - '@babel/core': 7.27.4 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.27.4) - '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.27.4) - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-async-generator-functions': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-block-scoping': 7.27.5(@babel/core@7.27.4) - '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-classes': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-destructuring': 7.27.3(@babel/core@7.27.4) - '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-object-rest-spread': 7.27.3(@babel/core@7.27.4) - '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-regenerator': 7.27.5(@babel/core@7.27.4) - '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.27.4) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.27.4) - babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.27.4) - babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.27.4) - babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.27.4) - core-js-compat: 3.41.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/types': 7.27.6 - esutils: 2.0.3 - - '@babel/preset-react@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-transform-react-display-name': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.27.4) - transitivePeerDependencies: - - supports-color - - '@babel/preset-typescript@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.4) - transitivePeerDependencies: - - supports-color - - '@babel/register@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - clone-deep: 4.0.1 - find-cache-dir: 2.1.0 - make-dir: 2.1.0 - pirates: 4.0.7 - source-map-support: 0.5.21 - - '@babel/runtime@7.27.0': - dependencies: - regenerator-runtime: 0.14.1 - - '@babel/template@7.27.0': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 - - '@babel/template@7.27.2': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 - - '@babel/traverse@7.27.0': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.27.0 - '@babel/parser': 7.27.0 - '@babel/template': 7.27.0 - '@babel/types': 7.27.0 - debug: 4.4.0(supports-color@8.1.1) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - '@babel/traverse@7.27.4': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.27.5 - '@babel/parser': 7.27.5 - '@babel/template': 7.27.2 - '@babel/types': 7.27.6 - debug: 4.4.0(supports-color@8.1.1) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - '@babel/types@7.27.0': - dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - - '@babel/types@7.27.6': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - - '@bbp/morphoviewer@0.21.1': {} - - '@bcoe/v8-coverage@0.2.3': {} - - '@bundled-es-modules/cookie@2.0.1': - dependencies: - cookie: 0.7.2 - - '@bundled-es-modules/statuses@1.0.1': - dependencies: - statuses: 2.0.1 - - '@bundled-es-modules/tough-cookie@0.1.6': - dependencies: - '@types/tough-cookie': 4.0.5 - tough-cookie: 4.1.4 - - '@choojs/findup@0.2.1': - dependencies: - commander: 2.20.3 - - '@csstools/color-helpers@5.0.2': {} - - '@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)': - dependencies: - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - - '@csstools/css-color-parser@3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': - dependencies: - '@csstools/color-helpers': 5.0.2 - '@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) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - - '@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3)': - dependencies: - '@csstools/css-tokenizer': 3.0.3 - - '@csstools/css-tokenizer@3.0.3': {} - - '@date-fns/tz@1.2.0': {} - - '@date-fns/utc@2.1.0': {} - - '@discoveryjs/json-ext@0.5.7': {} - - '@dnd-kit/accessibility@3.1.1(react@19.1.0)': - dependencies: - react: 19.1.0 - tslib: 2.8.1 - - '@dnd-kit/core@6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@dnd-kit/accessibility': 3.1.1(react@19.1.0) - '@dnd-kit/utilities': 3.2.2(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - tslib: 2.8.1 - - '@dnd-kit/modifiers@6.0.1(@dnd-kit/core@6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)': - dependencies: - '@dnd-kit/core': 6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@dnd-kit/utilities': 3.2.2(react@19.1.0) - react: 19.1.0 - tslib: 2.8.1 - - '@dnd-kit/modifiers@9.0.0(@dnd-kit/core@6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)': - dependencies: - '@dnd-kit/core': 6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@dnd-kit/utilities': 3.2.2(react@19.1.0) - react: 19.1.0 - tslib: 2.8.1 - - '@dnd-kit/sortable@10.0.0(@dnd-kit/core@6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)': - dependencies: - '@dnd-kit/core': 6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@dnd-kit/utilities': 3.2.2(react@19.1.0) - react: 19.1.0 - tslib: 2.8.1 - - '@dnd-kit/sortable@7.0.2(@dnd-kit/core@6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)': - dependencies: - '@dnd-kit/core': 6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@dnd-kit/utilities': 3.2.2(react@19.1.0) - react: 19.1.0 - tslib: 2.8.1 - - '@dnd-kit/utilities@3.2.2(react@19.1.0)': - dependencies: - react: 19.1.0 - tslib: 2.8.1 - - '@emnapi/core@1.4.0': - dependencies: - '@emnapi/wasi-threads': 1.0.1 - tslib: 2.8.1 - optional: true - - '@emnapi/core@1.4.3': - dependencies: - '@emnapi/wasi-threads': 1.0.2 - tslib: 2.8.1 - optional: true - - '@emnapi/runtime@1.4.0': - dependencies: - tslib: 2.8.1 - optional: true - - '@emnapi/runtime@1.4.3': - dependencies: - tslib: 2.8.1 - optional: true - - '@emnapi/runtime@1.4.4': - dependencies: - tslib: 2.8.1 - optional: true - - '@emnapi/wasi-threads@1.0.1': - dependencies: - tslib: 2.8.1 - optional: true - - '@emnapi/wasi-threads@1.0.2': - dependencies: - tslib: 2.8.1 - optional: true - - '@emotion/babel-plugin@11.13.5': - dependencies: - '@babel/helper-module-imports': 7.25.9 - '@babel/runtime': 7.27.0 - '@emotion/hash': 0.9.2 - '@emotion/memoize': 0.9.0 - '@emotion/serialize': 1.3.3 - babel-plugin-macros: 3.1.0 - convert-source-map: 1.9.0 - escape-string-regexp: 4.0.0 - find-root: 1.1.0 - source-map: 0.5.7 - stylis: 4.2.0 - transitivePeerDependencies: - - supports-color - - '@emotion/cache@11.14.0': - dependencies: - '@emotion/memoize': 0.9.0 - '@emotion/sheet': 1.4.0 - '@emotion/utils': 1.4.2 - '@emotion/weak-memoize': 0.4.0 - stylis: 4.2.0 - - '@emotion/hash@0.8.0': {} - - '@emotion/hash@0.9.2': {} - - '@emotion/is-prop-valid@1.2.2': - dependencies: - '@emotion/memoize': 0.8.1 - - '@emotion/memoize@0.8.1': {} - - '@emotion/memoize@0.9.0': {} - - '@emotion/react@11.14.0(@types/react@19.1.0)(react@19.1.0)': - dependencies: - '@babel/runtime': 7.27.0 - '@emotion/babel-plugin': 11.13.5 - '@emotion/cache': 11.14.0 - '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.1.0) - '@emotion/utils': 1.4.2 - '@emotion/weak-memoize': 0.4.0 - hoist-non-react-statics: 3.3.2 - react: 19.1.0 - optionalDependencies: - '@types/react': 19.1.0 - transitivePeerDependencies: - - supports-color - - '@emotion/serialize@1.3.3': - dependencies: - '@emotion/hash': 0.9.2 - '@emotion/memoize': 0.9.0 - '@emotion/unitless': 0.10.0 - '@emotion/utils': 1.4.2 - csstype: 3.1.3 - - '@emotion/sheet@1.4.0': {} - - '@emotion/unitless@0.10.0': {} - - '@emotion/unitless@0.7.5': {} - - '@emotion/unitless@0.8.1': {} - - '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.1.0)': - dependencies: - react: 19.1.0 - - '@emotion/utils@1.4.2': {} - - '@emotion/weak-memoize@0.4.0': {} - - '@esbuild/aix-ppc64@0.25.2': - optional: true - - '@esbuild/aix-ppc64@0.25.5': - optional: true - - '@esbuild/android-arm64@0.25.2': - optional: true - - '@esbuild/android-arm64@0.25.5': - optional: true - - '@esbuild/android-arm@0.25.2': - optional: true - - '@esbuild/android-arm@0.25.5': - optional: true - - '@esbuild/android-x64@0.25.2': - optional: true - - '@esbuild/android-x64@0.25.5': - optional: true - - '@esbuild/darwin-arm64@0.25.2': - optional: true - - '@esbuild/darwin-arm64@0.25.5': - optional: true - - '@esbuild/darwin-x64@0.25.2': - optional: true - - '@esbuild/darwin-x64@0.25.5': - optional: true - - '@esbuild/freebsd-arm64@0.25.2': - optional: true - - '@esbuild/freebsd-arm64@0.25.5': - optional: true - - '@esbuild/freebsd-x64@0.25.2': - optional: true - - '@esbuild/freebsd-x64@0.25.5': - optional: true - - '@esbuild/linux-arm64@0.25.2': - optional: true - - '@esbuild/linux-arm64@0.25.5': - optional: true - - '@esbuild/linux-arm@0.25.2': - optional: true - - '@esbuild/linux-arm@0.25.5': - optional: true - - '@esbuild/linux-ia32@0.25.2': - optional: true - - '@esbuild/linux-ia32@0.25.5': - optional: true - - '@esbuild/linux-loong64@0.25.2': - optional: true - - '@esbuild/linux-loong64@0.25.5': - optional: true - - '@esbuild/linux-mips64el@0.25.2': - optional: true - - '@esbuild/linux-mips64el@0.25.5': - optional: true - - '@esbuild/linux-ppc64@0.25.2': - optional: true - - '@esbuild/linux-ppc64@0.25.5': - optional: true - - '@esbuild/linux-riscv64@0.25.2': - optional: true - - '@esbuild/linux-riscv64@0.25.5': - optional: true - - '@esbuild/linux-s390x@0.25.2': - optional: true - - '@esbuild/linux-s390x@0.25.5': - optional: true - - '@esbuild/linux-x64@0.25.2': - optional: true - - '@esbuild/linux-x64@0.25.5': - optional: true - - '@esbuild/netbsd-arm64@0.25.2': - optional: true - - '@esbuild/netbsd-arm64@0.25.5': - optional: true - - '@esbuild/netbsd-x64@0.25.2': - optional: true - - '@esbuild/netbsd-x64@0.25.5': - optional: true - - '@esbuild/openbsd-arm64@0.25.2': - optional: true - - '@esbuild/openbsd-arm64@0.25.5': - optional: true - - '@esbuild/openbsd-x64@0.25.2': - optional: true - - '@esbuild/openbsd-x64@0.25.5': - optional: true - - '@esbuild/sunos-x64@0.25.2': - optional: true - - '@esbuild/sunos-x64@0.25.5': - optional: true - - '@esbuild/win32-arm64@0.25.2': - optional: true - - '@esbuild/win32-arm64@0.25.5': - optional: true - - '@esbuild/win32-ia32@0.25.2': - optional: true - - '@esbuild/win32-ia32@0.25.5': - optional: true - - '@esbuild/win32-x64@0.25.2': - optional: true - - '@esbuild/win32-x64@0.25.5': - optional: true - - '@eslint-community/eslint-utils@4.5.1(eslint@8.57.1)': - dependencies: - eslint: 8.57.1 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/eslint-utils@4.7.0(eslint@8.57.1)': - dependencies: - eslint: 8.57.1 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.12.1': {} - - '@eslint/eslintrc@2.1.4': - dependencies: - ajv: 6.12.6 - debug: 4.4.0(supports-color@8.1.1) - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@8.57.1': {} - - '@exodus/schemasafe@1.3.0': {} - - '@fast-csv/format@5.0.2': - dependencies: - lodash.escaperegexp: 4.1.2 - lodash.isboolean: 3.0.3 - lodash.isequal: 4.5.0 - lodash.isfunction: 3.0.9 - lodash.isnil: 4.0.0 - - '@fast-csv/parse@5.0.2': - dependencies: - lodash.escaperegexp: 4.1.2 - lodash.groupby: 4.6.0 - lodash.isfunction: 3.0.9 - lodash.isnil: 4.0.0 - lodash.isundefined: 3.0.1 - lodash.uniq: 4.5.0 - - '@fastify/busboy@2.1.1': {} - - '@floating-ui/core@1.6.9': - dependencies: - '@floating-ui/utils': 0.2.9 - - '@floating-ui/dom@1.6.13': - dependencies: - '@floating-ui/core': 1.6.9 - '@floating-ui/utils': 0.2.9 - - '@floating-ui/react-dom@2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@floating-ui/dom': 1.6.13 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@floating-ui/react-dom@2.1.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@floating-ui/dom': 1.6.13 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@floating-ui/react@0.26.28(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@floating-ui/react-dom': 2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@floating-ui/utils': 0.2.9 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - tabbable: 6.2.0 - - '@floating-ui/utils@0.2.9': {} - - '@grpc/grpc-js@1.13.4': - dependencies: - '@grpc/proto-loader': 0.7.15 - '@js-sdsl/ordered-map': 4.4.2 - - '@grpc/proto-loader@0.7.15': - dependencies: - lodash.camelcase: 4.3.0 - long: 5.3.2 - protobufjs: 7.5.4 - yargs: 17.7.2 - - '@humanwhocodes/config-array@0.13.0': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.0(supports-color@8.1.1) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/object-schema@2.0.3': {} - - '@img/sharp-darwin-arm64@0.34.1': - optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.1.0 - optional: true - - '@img/sharp-darwin-arm64@0.34.3': - optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.2.0 - optional: true - - '@img/sharp-darwin-x64@0.34.1': - optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.1.0 - optional: true - - '@img/sharp-darwin-x64@0.34.3': - optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.2.0 - optional: true - - '@img/sharp-libvips-darwin-arm64@1.1.0': - optional: true - - '@img/sharp-libvips-darwin-arm64@1.2.0': - optional: true - - '@img/sharp-libvips-darwin-x64@1.1.0': - optional: true - - '@img/sharp-libvips-darwin-x64@1.2.0': - optional: true - - '@img/sharp-libvips-linux-arm64@1.1.0': - optional: true - - '@img/sharp-libvips-linux-arm64@1.2.0': - optional: true - - '@img/sharp-libvips-linux-arm@1.1.0': - optional: true - - '@img/sharp-libvips-linux-arm@1.2.0': - optional: true - - '@img/sharp-libvips-linux-ppc64@1.1.0': - optional: true - - '@img/sharp-libvips-linux-ppc64@1.2.0': - optional: true - - '@img/sharp-libvips-linux-s390x@1.1.0': - optional: true - - '@img/sharp-libvips-linux-s390x@1.2.0': - optional: true - - '@img/sharp-libvips-linux-x64@1.1.0': - optional: true - - '@img/sharp-libvips-linux-x64@1.2.0': - optional: true - - '@img/sharp-libvips-linuxmusl-arm64@1.1.0': - optional: true - - '@img/sharp-libvips-linuxmusl-arm64@1.2.0': - optional: true - - '@img/sharp-libvips-linuxmusl-x64@1.1.0': - optional: true - - '@img/sharp-libvips-linuxmusl-x64@1.2.0': - optional: true - - '@img/sharp-linux-arm64@0.34.1': - optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.1.0 - optional: true - - '@img/sharp-linux-arm64@0.34.3': - optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.2.0 - optional: true - - '@img/sharp-linux-arm@0.34.1': - optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.1.0 - optional: true - - '@img/sharp-linux-arm@0.34.3': - optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.2.0 - optional: true - - '@img/sharp-linux-ppc64@0.34.3': - optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.2.0 - optional: true - - '@img/sharp-linux-s390x@0.34.1': - optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.1.0 - optional: true - - '@img/sharp-linux-s390x@0.34.3': - optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.2.0 - optional: true - - '@img/sharp-linux-x64@0.34.1': - optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.1.0 - optional: true - - '@img/sharp-linux-x64@0.34.3': - optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.2.0 - optional: true - - '@img/sharp-linuxmusl-arm64@0.34.1': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 - optional: true - - '@img/sharp-linuxmusl-arm64@0.34.3': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.2.0 - optional: true - - '@img/sharp-linuxmusl-x64@0.34.1': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.1.0 - optional: true - - '@img/sharp-linuxmusl-x64@0.34.3': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.2.0 - optional: true - - '@img/sharp-wasm32@0.34.1': - dependencies: - '@emnapi/runtime': 1.4.0 - optional: true - - '@img/sharp-wasm32@0.34.3': - dependencies: - '@emnapi/runtime': 1.4.4 - optional: true - - '@img/sharp-win32-arm64@0.34.3': - optional: true - - '@img/sharp-win32-ia32@0.34.1': - optional: true - - '@img/sharp-win32-ia32@0.34.3': - optional: true - - '@img/sharp-win32-x64@0.34.1': - optional: true - - '@img/sharp-win32-x64@0.34.3': - optional: true - - '@inquirer/checkbox@4.1.8(@types/node@22.14.0)': - dependencies: - '@inquirer/core': 10.1.13(@types/node@22.14.0) - '@inquirer/figures': 1.0.12 - '@inquirer/type': 3.0.7(@types/node@22.14.0) - ansi-escapes: 4.3.2 - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 22.14.0 - - '@inquirer/confirm@5.1.12(@types/node@22.14.0)': - dependencies: - '@inquirer/core': 10.1.13(@types/node@22.14.0) - '@inquirer/type': 3.0.7(@types/node@22.14.0) - optionalDependencies: - '@types/node': 22.14.0 - - '@inquirer/confirm@5.1.9(@types/node@22.14.0)': - dependencies: - '@inquirer/core': 10.1.10(@types/node@22.14.0) - '@inquirer/type': 3.0.6(@types/node@22.14.0) - optionalDependencies: - '@types/node': 22.14.0 - - '@inquirer/core@10.1.10(@types/node@22.14.0)': - dependencies: - '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.6(@types/node@22.14.0) - ansi-escapes: 4.3.2 - cli-width: 4.1.0 - mute-stream: 2.0.0 - signal-exit: 4.1.0 - wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 22.14.0 - - '@inquirer/core@10.1.13(@types/node@22.14.0)': - dependencies: - '@inquirer/figures': 1.0.12 - '@inquirer/type': 3.0.7(@types/node@22.14.0) - ansi-escapes: 4.3.2 - cli-width: 4.1.0 - mute-stream: 2.0.0 - signal-exit: 4.1.0 - wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 22.14.0 - - '@inquirer/editor@4.2.13(@types/node@22.14.0)': - dependencies: - '@inquirer/core': 10.1.13(@types/node@22.14.0) - '@inquirer/type': 3.0.7(@types/node@22.14.0) - external-editor: 3.1.0 - optionalDependencies: - '@types/node': 22.14.0 - - '@inquirer/expand@4.0.15(@types/node@22.14.0)': - dependencies: - '@inquirer/core': 10.1.13(@types/node@22.14.0) - '@inquirer/type': 3.0.7(@types/node@22.14.0) - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 22.14.0 - - '@inquirer/figures@1.0.11': {} - - '@inquirer/figures@1.0.12': {} - - '@inquirer/input@4.1.12(@types/node@22.14.0)': - dependencies: - '@inquirer/core': 10.1.13(@types/node@22.14.0) - '@inquirer/type': 3.0.7(@types/node@22.14.0) - optionalDependencies: - '@types/node': 22.14.0 - - '@inquirer/number@3.0.15(@types/node@22.14.0)': - dependencies: - '@inquirer/core': 10.1.13(@types/node@22.14.0) - '@inquirer/type': 3.0.7(@types/node@22.14.0) - optionalDependencies: - '@types/node': 22.14.0 - - '@inquirer/password@4.0.15(@types/node@22.14.0)': - dependencies: - '@inquirer/core': 10.1.13(@types/node@22.14.0) - '@inquirer/type': 3.0.7(@types/node@22.14.0) - ansi-escapes: 4.3.2 - optionalDependencies: - '@types/node': 22.14.0 - - '@inquirer/prompts@7.5.3(@types/node@22.14.0)': - dependencies: - '@inquirer/checkbox': 4.1.8(@types/node@22.14.0) - '@inquirer/confirm': 5.1.12(@types/node@22.14.0) - '@inquirer/editor': 4.2.13(@types/node@22.14.0) - '@inquirer/expand': 4.0.15(@types/node@22.14.0) - '@inquirer/input': 4.1.12(@types/node@22.14.0) - '@inquirer/number': 3.0.15(@types/node@22.14.0) - '@inquirer/password': 4.0.15(@types/node@22.14.0) - '@inquirer/rawlist': 4.1.3(@types/node@22.14.0) - '@inquirer/search': 3.0.15(@types/node@22.14.0) - '@inquirer/select': 4.2.3(@types/node@22.14.0) - optionalDependencies: - '@types/node': 22.14.0 - - '@inquirer/rawlist@4.1.3(@types/node@22.14.0)': - dependencies: - '@inquirer/core': 10.1.13(@types/node@22.14.0) - '@inquirer/type': 3.0.7(@types/node@22.14.0) - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 22.14.0 - - '@inquirer/search@3.0.15(@types/node@22.14.0)': - dependencies: - '@inquirer/core': 10.1.13(@types/node@22.14.0) - '@inquirer/figures': 1.0.12 - '@inquirer/type': 3.0.7(@types/node@22.14.0) - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 22.14.0 - - '@inquirer/select@4.2.3(@types/node@22.14.0)': - dependencies: - '@inquirer/core': 10.1.13(@types/node@22.14.0) - '@inquirer/figures': 1.0.12 - '@inquirer/type': 3.0.7(@types/node@22.14.0) - ansi-escapes: 4.3.2 - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 22.14.0 - - '@inquirer/type@3.0.6(@types/node@22.14.0)': - optionalDependencies: - '@types/node': 22.14.0 - - '@inquirer/type@3.0.7(@types/node@22.14.0)': - optionalDependencies: - '@types/node': 22.14.0 - - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - - '@isaacs/fs-minipass@4.0.1': - dependencies: - minipass: 7.1.2 - - '@istanbuljs/load-nyc-config@1.1.0': - dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.1 - resolve-from: 5.0.0 - - '@istanbuljs/schema@0.1.3': {} - - '@jest/console@29.7.0': - dependencies: - '@jest/types': 29.6.3 - '@types/node': 22.14.0 - chalk: 4.1.2 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - slash: 3.0.0 - - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)': - dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.14.0 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - ci-info: 3.9.0 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.14.0)(babel-plugin-macros@3.1.0) - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 - micromatch: 4.0.8 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - ts-node - - '@jest/environment@29.7.0': - dependencies: - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.14.0 - jest-mock: 29.7.0 - - '@jest/expect-utils@29.7.0': - dependencies: - jest-get-type: 29.6.3 - - '@jest/expect@29.7.0': - dependencies: - expect: 29.7.0 - jest-snapshot: 29.7.0 - transitivePeerDependencies: - - supports-color - - '@jest/fake-timers@29.7.0': - dependencies: - '@jest/types': 29.6.3 - '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.14.0 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-util: 29.7.0 - - '@jest/globals@29.7.0': - dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/types': 29.6.3 - jest-mock: 29.7.0 - transitivePeerDependencies: - - supports-color - - '@jest/reporters@29.7.0': - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.14.0 - chalk: 4.1.2 - collect-v8-coverage: 1.0.2 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-instrument: 6.0.3 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.7 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - jest-worker: 29.7.0 - slash: 3.0.0 - string-length: 4.0.2 - strip-ansi: 6.0.1 - v8-to-istanbul: 9.3.0 - transitivePeerDependencies: - - supports-color - - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - - '@jest/source-map@29.6.3': - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - callsites: 3.1.0 - graceful-fs: 4.2.11 - - '@jest/test-result@29.7.0': - dependencies: - '@jest/console': 29.7.0 - '@jest/types': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - collect-v8-coverage: 1.0.2 - - '@jest/test-sequencer@29.7.0': - dependencies: - '@jest/test-result': 29.7.0 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - slash: 3.0.0 - - '@jest/transform@29.7.0': - dependencies: - '@babel/core': 7.26.10 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 2.0.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - micromatch: 4.0.8 - pirates: 4.0.7 - slash: 3.0.0 - write-file-atomic: 4.0.2 - transitivePeerDependencies: - - supports-color - - '@jest/types@29.6.3': - dependencies: - '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 22.14.0 - '@types/yargs': 17.0.33 - chalk: 4.1.2 - - '@jridgewell/gen-mapping@0.3.12': - dependencies: - '@jridgewell/sourcemap-codec': 1.5.4 - '@jridgewell/trace-mapping': 0.3.29 - - '@jridgewell/gen-mapping@0.3.8': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/set-array@1.2.1': {} - - '@jridgewell/source-map@0.3.10': - dependencies: - '@jridgewell/gen-mapping': 0.3.12 - '@jridgewell/trace-mapping': 0.3.29 - - '@jridgewell/sourcemap-codec@1.5.0': {} - - '@jridgewell/sourcemap-codec@1.5.4': {} - - '@jridgewell/trace-mapping@0.3.25': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - - '@jridgewell/trace-mapping@0.3.29': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.4 - - '@js-sdsl/ordered-map@4.4.2': {} - - '@juggle/resize-observer@3.4.0': {} - - '@lexical/clipboard@0.30.0': - dependencies: - '@lexical/html': 0.30.0 - '@lexical/list': 0.30.0 - '@lexical/selection': 0.30.0 - '@lexical/utils': 0.30.0 - lexical: 0.30.0 - - '@lexical/code@0.30.0': - dependencies: - '@lexical/utils': 0.30.0 - lexical: 0.30.0 - prismjs: 1.30.0 - - '@lexical/devtools-core@0.30.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@lexical/html': 0.30.0 - '@lexical/link': 0.30.0 - '@lexical/mark': 0.30.0 - '@lexical/table': 0.30.0 - '@lexical/utils': 0.30.0 - lexical: 0.30.0 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@lexical/dragon@0.30.0': - dependencies: - lexical: 0.30.0 - - '@lexical/hashtag@0.30.0': - dependencies: - '@lexical/utils': 0.30.0 - lexical: 0.30.0 - - '@lexical/headless@0.30.0': - dependencies: - lexical: 0.30.0 - - '@lexical/history@0.30.0': - dependencies: - '@lexical/utils': 0.30.0 - lexical: 0.30.0 - - '@lexical/html@0.30.0': - dependencies: - '@lexical/selection': 0.30.0 - '@lexical/utils': 0.30.0 - lexical: 0.30.0 - - '@lexical/link@0.30.0': - dependencies: - '@lexical/utils': 0.30.0 - lexical: 0.30.0 - - '@lexical/list@0.30.0': - dependencies: - '@lexical/selection': 0.30.0 - '@lexical/utils': 0.30.0 - lexical: 0.30.0 - - '@lexical/mark@0.30.0': - dependencies: - '@lexical/utils': 0.30.0 - lexical: 0.30.0 - - '@lexical/markdown@0.30.0': - dependencies: - '@lexical/code': 0.30.0 - '@lexical/link': 0.30.0 - '@lexical/list': 0.30.0 - '@lexical/rich-text': 0.30.0 - '@lexical/text': 0.30.0 - '@lexical/utils': 0.30.0 - lexical: 0.30.0 - - '@lexical/offset@0.30.0': - dependencies: - lexical: 0.30.0 - - '@lexical/overflow@0.30.0': - dependencies: - lexical: 0.30.0 - - '@lexical/plain-text@0.30.0': - dependencies: - '@lexical/clipboard': 0.30.0 - '@lexical/selection': 0.30.0 - '@lexical/utils': 0.30.0 - lexical: 0.30.0 - - '@lexical/react@0.30.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(yjs@13.6.24)': - dependencies: - '@lexical/devtools-core': 0.30.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@lexical/dragon': 0.30.0 - '@lexical/hashtag': 0.30.0 - '@lexical/history': 0.30.0 - '@lexical/link': 0.30.0 - '@lexical/list': 0.30.0 - '@lexical/mark': 0.30.0 - '@lexical/markdown': 0.30.0 - '@lexical/overflow': 0.30.0 - '@lexical/plain-text': 0.30.0 - '@lexical/rich-text': 0.30.0 - '@lexical/table': 0.30.0 - '@lexical/text': 0.30.0 - '@lexical/utils': 0.30.0 - '@lexical/yjs': 0.30.0(yjs@13.6.24) - lexical: 0.30.0 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - react-error-boundary: 3.1.4(react@19.1.0) - transitivePeerDependencies: - - yjs - - '@lexical/rich-text@0.30.0': - dependencies: - '@lexical/clipboard': 0.30.0 - '@lexical/selection': 0.30.0 - '@lexical/utils': 0.30.0 - lexical: 0.30.0 - - '@lexical/selection@0.30.0': - dependencies: - lexical: 0.30.0 - - '@lexical/table@0.30.0': - dependencies: - '@lexical/clipboard': 0.30.0 - '@lexical/utils': 0.30.0 - lexical: 0.30.0 - - '@lexical/text@0.30.0': - dependencies: - lexical: 0.30.0 - - '@lexical/utils@0.30.0': - dependencies: - '@lexical/list': 0.30.0 - '@lexical/selection': 0.30.0 - '@lexical/table': 0.30.0 - lexical: 0.30.0 - - '@lexical/yjs@0.30.0(yjs@13.6.24)': - dependencies: - '@lexical/offset': 0.30.0 - '@lexical/selection': 0.30.0 - lexical: 0.30.0 - yjs: 13.6.24 - - '@loaders.gl/core@4.3.4': - dependencies: - '@loaders.gl/loader-utils': 4.3.4(@loaders.gl/core@4.3.4) - '@loaders.gl/schema': 4.3.4(@loaders.gl/core@4.3.4) - '@loaders.gl/worker-utils': 4.3.4(@loaders.gl/core@4.3.4) - '@probe.gl/log': 4.1.0 - - '@loaders.gl/draco@4.3.4(@loaders.gl/core@4.3.4)': - dependencies: - '@loaders.gl/core': 4.3.4 - '@loaders.gl/loader-utils': 4.3.4(@loaders.gl/core@4.3.4) - '@loaders.gl/schema': 4.3.4(@loaders.gl/core@4.3.4) - '@loaders.gl/worker-utils': 4.3.4(@loaders.gl/core@4.3.4) - draco3d: 1.5.7 - - '@loaders.gl/gltf@4.3.4(@loaders.gl/core@4.3.4)': - dependencies: - '@loaders.gl/core': 4.3.4 - '@loaders.gl/draco': 4.3.4(@loaders.gl/core@4.3.4) - '@loaders.gl/images': 4.3.4(@loaders.gl/core@4.3.4) - '@loaders.gl/loader-utils': 4.3.4(@loaders.gl/core@4.3.4) - '@loaders.gl/schema': 4.3.4(@loaders.gl/core@4.3.4) - '@loaders.gl/textures': 4.3.4(@loaders.gl/core@4.3.4) - '@math.gl/core': 4.1.0 - - '@loaders.gl/images@4.3.4(@loaders.gl/core@4.3.4)': - dependencies: - '@loaders.gl/core': 4.3.4 - '@loaders.gl/loader-utils': 4.3.4(@loaders.gl/core@4.3.4) - - '@loaders.gl/loader-utils@4.3.4(@loaders.gl/core@4.3.4)': - dependencies: - '@loaders.gl/core': 4.3.4 - '@loaders.gl/schema': 4.3.4(@loaders.gl/core@4.3.4) - '@loaders.gl/worker-utils': 4.3.4(@loaders.gl/core@4.3.4) - '@probe.gl/log': 4.1.0 - '@probe.gl/stats': 4.1.0 - - '@loaders.gl/schema@4.3.4(@loaders.gl/core@4.3.4)': - dependencies: - '@loaders.gl/core': 4.3.4 - '@types/geojson': 7946.0.16 - - '@loaders.gl/textures@4.3.4(@loaders.gl/core@4.3.4)': - dependencies: - '@loaders.gl/core': 4.3.4 - '@loaders.gl/images': 4.3.4(@loaders.gl/core@4.3.4) - '@loaders.gl/loader-utils': 4.3.4(@loaders.gl/core@4.3.4) - '@loaders.gl/schema': 4.3.4(@loaders.gl/core@4.3.4) - '@loaders.gl/worker-utils': 4.3.4(@loaders.gl/core@4.3.4) - '@math.gl/types': 4.1.0 - ktx-parse: 0.7.1 - texture-compressor: 1.0.2 - - '@loaders.gl/worker-utils@4.3.4(@loaders.gl/core@4.3.4)': - dependencies: - '@loaders.gl/core': 4.3.4 - - '@mantine/code-highlight@7.17.4(@mantine/core@7.17.4(@mantine/hooks@7.17.4(react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@7.17.4(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@mantine/core': 7.17.4(@mantine/hooks@7.17.4(react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@mantine/hooks': 7.17.4(react@19.1.0) - clsx: 2.1.1 - highlight.js: 11.11.1 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@mantine/core@7.17.4(@mantine/hooks@7.17.4(react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@floating-ui/react': 0.26.28(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@mantine/hooks': 7.17.4(react@19.1.0) - clsx: 2.1.1 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - react-number-format: 5.4.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react-remove-scroll: 2.6.3(@types/react@19.1.0)(react@19.1.0) - react-textarea-autosize: 8.5.9(@types/react@19.1.0)(react@19.1.0) - type-fest: 4.39.1 - transitivePeerDependencies: - - '@types/react' - - '@mantine/hooks@7.17.4(react@19.1.0)': - dependencies: - react: 19.1.0 - - '@mapbox/geojson-rewind@0.5.2': - dependencies: - get-stream: 6.0.1 - minimist: 1.2.8 - - '@mapbox/geojson-types@1.0.2': {} - - '@mapbox/jsonlint-lines-primitives@2.0.2': {} - - '@mapbox/mapbox-gl-supported@1.5.0(mapbox-gl@1.13.3)': - dependencies: - mapbox-gl: 1.13.3 - - '@mapbox/point-geometry@0.1.0': {} - - '@mapbox/tiny-sdf@1.2.5': {} - - '@mapbox/tiny-sdf@2.0.6': {} - - '@mapbox/unitbezier@0.0.0': {} - - '@mapbox/unitbezier@0.0.1': {} - - '@mapbox/vector-tile@1.3.1': - dependencies: - '@mapbox/point-geometry': 0.1.0 - - '@mapbox/whoots-js@3.1.0': {} - - '@maplibre/maplibre-gl-style-spec@20.4.0': - dependencies: - '@mapbox/jsonlint-lines-primitives': 2.0.2 - '@mapbox/unitbezier': 0.0.1 - json-stringify-pretty-compact: 4.0.0 - minimist: 1.2.8 - quickselect: 2.0.0 - rw: 1.3.3 - tinyqueue: 3.0.0 - - '@math.gl/core@4.1.0': - dependencies: - '@math.gl/types': 4.1.0 - - '@math.gl/types@4.1.0': {} - - '@mediapipe/tasks-vision@0.10.17': {} - - '@monogrid/gainmap-js@3.1.0(three@0.159.0)': - dependencies: - promise-worker-transferable: 1.0.4 - three: 0.159.0 - - '@mswjs/interceptors@0.37.6': - dependencies: - '@open-draft/deferred-promise': 2.2.0 - '@open-draft/logger': 0.3.0 - '@open-draft/until': 2.1.0 - is-node-process: 1.2.0 - outvariant: 1.4.3 - strict-event-emitter: 0.5.1 - - '@napi-rs/wasm-runtime@0.2.11': - dependencies: - '@emnapi/core': 1.4.3 - '@emnapi/runtime': 1.4.3 - '@tybys/wasm-util': 0.9.0 - optional: true - - '@napi-rs/wasm-runtime@0.2.8': - dependencies: - '@emnapi/core': 1.4.0 - '@emnapi/runtime': 1.4.0 - '@tybys/wasm-util': 0.9.0 - optional: true - - '@next/bundle-analyzer@15.4.1': - dependencies: - webpack-bundle-analyzer: 4.10.1 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - '@next/env@15.4.1': {} - - '@next/eslint-plugin-next@15.2.4': - dependencies: - fast-glob: 3.3.1 - - '@next/swc-darwin-arm64@15.4.1': - optional: true - - '@next/swc-darwin-x64@15.4.1': - optional: true - - '@next/swc-linux-arm64-gnu@15.4.1': - optional: true - - '@next/swc-linux-arm64-musl@15.4.1': - optional: true - - '@next/swc-linux-x64-gnu@15.4.1': - optional: true - - '@next/swc-linux-x64-musl@15.4.1': - optional: true - - '@next/swc-win32-arm64-msvc@15.4.1': - optional: true - - '@next/swc-win32-x64-msvc@15.4.1': - optional: true - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 - - '@nolyfill/is-core-module@1.0.39': {} - - '@oclif/core@4.4.0': - dependencies: - ansi-escapes: 4.3.2 - ansis: 3.17.0 - clean-stack: 3.0.1 - cli-spinners: 2.9.2 - debug: 4.4.0(supports-color@8.1.1) - ejs: 3.1.10 - get-package-type: 0.1.0 - indent-string: 4.0.0 - is-wsl: 2.2.0 - lilconfig: 3.1.3 - minimatch: 9.0.5 - semver: 7.7.1 - string-width: 4.2.3 - supports-color: 8.1.1 - tinyglobby: 0.2.14 - widest-line: 3.1.0 - wordwrap: 1.0.0 - wrap-ansi: 7.0.0 - - '@oclif/plugin-help@6.2.29': - dependencies: - '@oclif/core': 4.4.0 - - '@octokit/auth-token@4.0.0': {} - - '@octokit/core@5.2.1': - dependencies: - '@octokit/auth-token': 4.0.0 - '@octokit/graphql': 7.1.1 - '@octokit/request': 8.4.1 - '@octokit/request-error': 5.1.1 - '@octokit/types': 13.10.0 - before-after-hook: 2.2.3 - universal-user-agent: 6.0.1 - - '@octokit/endpoint@9.0.6': - dependencies: - '@octokit/types': 13.10.0 - universal-user-agent: 6.0.1 - - '@octokit/graphql@7.1.1': - dependencies: - '@octokit/request': 8.4.1 - '@octokit/types': 13.10.0 - universal-user-agent: 6.0.1 - - '@octokit/openapi-types@20.0.0': {} - - '@octokit/openapi-types@24.2.0': {} - - '@octokit/plugin-paginate-rest@9.2.2(@octokit/core@5.2.1)': - dependencies: - '@octokit/core': 5.2.1 - '@octokit/types': 12.6.0 - - '@octokit/plugin-rest-endpoint-methods@10.4.1(@octokit/core@5.2.1)': - dependencies: - '@octokit/core': 5.2.1 - '@octokit/types': 12.6.0 - - '@octokit/request-error@5.1.1': - dependencies: - '@octokit/types': 13.10.0 - deprecation: 2.3.1 - once: 1.4.0 - - '@octokit/request@8.4.1': - dependencies: - '@octokit/endpoint': 9.0.6 - '@octokit/request-error': 5.1.1 - '@octokit/types': 13.10.0 - universal-user-agent: 6.0.1 - - '@octokit/types@12.6.0': - dependencies: - '@octokit/openapi-types': 20.0.0 - - '@octokit/types@13.10.0': - dependencies: - '@octokit/openapi-types': 24.2.0 - - '@open-draft/deferred-promise@2.2.0': {} - - '@open-draft/logger@0.3.0': - dependencies: - is-node-process: 1.2.0 - outvariant: 1.4.3 - - '@open-draft/until@2.1.0': {} - - '@opentelemetry/api-logs@0.205.0': - dependencies: - '@opentelemetry/api': 1.9.0 - - '@opentelemetry/api-logs@0.57.2': - dependencies: - '@opentelemetry/api': 1.9.0 - - '@opentelemetry/api@1.9.0': {} - - '@opentelemetry/auto-instrumentations-node@0.64.1(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-amqplib': 0.52.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-aws-lambda': 0.56.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-aws-sdk': 0.60.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-bunyan': 0.51.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-cassandra-driver': 0.51.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-connect': 0.49.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-cucumber': 0.21.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-dataloader': 0.23.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-dns': 0.49.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-express': 0.54.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-fastify': 0.50.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-fs': 0.25.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-generic-pool': 0.49.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-graphql': 0.53.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-grpc': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-hapi': 0.52.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-http': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-ioredis': 0.53.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-kafkajs': 0.15.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-knex': 0.50.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-koa': 0.53.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-lru-memoizer': 0.50.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-memcached': 0.49.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mongodb': 0.58.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mongoose': 0.52.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mysql': 0.51.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mysql2': 0.52.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-nestjs-core': 0.51.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-net': 0.49.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-oracledb': 0.31.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-pg': 0.58.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-pino': 0.52.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-redis': 0.54.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-restify': 0.51.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-router': 0.50.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-runtime-node': 0.19.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-socket.io': 0.52.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-tedious': 0.24.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-undici': 0.16.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-winston': 0.50.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-alibaba-cloud': 0.31.5(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-aws': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-azure': 0.12.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-container': 0.7.5(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-gcp': 0.40.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-node': 0.205.0(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - encoding - - supports-color - - '@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - - '@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - - '@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.28.0 - - '@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.32.0 - - '@opentelemetry/exporter-logs-otlp-grpc@0.205.0(@opentelemetry/api@1.9.0)': - dependencies: - '@grpc/grpc-js': 1.13.4 - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-grpc-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.205.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/exporter-logs-otlp-http@0.205.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.205.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.205.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/exporter-logs-otlp-proto@0.205.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.205.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/exporter-metrics-otlp-grpc@0.205.0(@opentelemetry/api@1.9.0)': - dependencies: - '@grpc/grpc-js': 1.13.4 - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-http': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-grpc-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 2.1.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/exporter-metrics-otlp-http@0.205.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 2.1.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/exporter-metrics-otlp-proto@0.205.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-http': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 2.1.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/exporter-prometheus@0.205.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 2.1.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/exporter-trace-otlp-grpc@0.205.0(@opentelemetry/api@1.9.0)': - dependencies: - '@grpc/grpc-js': 1.13.4 - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-grpc-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/exporter-trace-otlp-http@0.205.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/exporter-trace-otlp-proto@0.205.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/exporter-zipkin@2.1.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - - '@opentelemetry/instrumentation-amqplib@0.46.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-amqplib@0.52.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-aws-lambda@0.56.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - '@types/aws-lambda': 8.10.152 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-aws-sdk@0.60.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.37.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-bunyan@0.51.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.205.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@types/bunyan': 1.8.11 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-cassandra-driver@0.51.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-connect@0.43.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - '@types/connect': 3.4.38 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-connect@0.49.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - '@types/connect': 3.4.38 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-cucumber@0.21.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-dataloader@0.16.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-dataloader@0.23.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-dns@0.49.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-express@0.47.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-express@0.54.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-fastify@0.44.2(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-fastify@0.50.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-fs@0.19.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-fs@0.25.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-generic-pool@0.43.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-generic-pool@0.49.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-graphql@0.47.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-graphql@0.53.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-grpc@0.205.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-hapi@0.45.2(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-hapi@0.52.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-http@0.205.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - forwarded-parse: 2.1.2 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-http@0.57.2(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.28.0 - forwarded-parse: 2.1.2 - semver: 7.7.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-ioredis@0.47.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-ioredis@0.53.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/redis-common': 0.38.0 - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-kafkajs@0.15.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-kafkajs@0.7.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-knex@0.44.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-knex@0.50.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.37.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-koa@0.47.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-koa@0.53.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-lru-memoizer@0.44.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-lru-memoizer@0.50.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-memcached@0.49.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - '@types/memcached': 2.2.10 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-mongodb@0.52.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-mongodb@0.58.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-mongoose@0.46.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-mongoose@0.52.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-mysql2@0.45.2(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-mysql2@0.52.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - '@opentelemetry/sql-common': 0.41.0(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-mysql@0.45.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - '@types/mysql': 2.15.26 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-mysql@0.51.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - '@types/mysql': 2.15.27 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-nestjs-core@0.51.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-net@0.49.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-oracledb@0.31.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - '@types/oracledb': 6.5.2 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-pg@0.51.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) - '@types/pg': 8.6.1 - '@types/pg-pool': 2.0.6 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-pg@0.58.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.37.0 - '@opentelemetry/sql-common': 0.41.0(@opentelemetry/api@1.9.0) - '@types/pg': 8.15.5 - '@types/pg-pool': 2.0.6 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-pino@0.52.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.205.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-redis-4@0.46.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-redis@0.54.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/redis-common': 0.38.0 - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-restify@0.51.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-router@0.50.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-runtime-node@0.19.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-socket.io@0.52.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-tedious@0.18.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - '@types/tedious': 4.0.14 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-tedious@0.24.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - '@types/tedious': 4.0.14 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-undici@0.10.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-undici@0.16.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-winston@0.50.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.205.0 - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation@0.205.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.205.0 - import-in-the-middle: 1.13.1 - require-in-the-middle: 7.5.2 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.57.2 - '@types/shimmer': 1.2.0 - import-in-the-middle: 1.13.1 - require-in-the-middle: 7.5.2 - semver: 7.7.1 - shimmer: 1.2.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/otlp-exporter-base@0.205.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/otlp-grpc-exporter-base@0.205.0(@opentelemetry/api@1.9.0)': - dependencies: - '@grpc/grpc-js': 1.13.4 - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/otlp-transformer@0.205.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.205.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) - protobufjs: 7.5.4 - - '@opentelemetry/propagator-b3@2.1.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/propagator-jaeger@2.1.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/redis-common@0.36.2': {} - - '@opentelemetry/redis-common@0.38.0': {} - - '@opentelemetry/resource-detector-alibaba-cloud@0.31.5(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - - '@opentelemetry/resource-detector-aws@2.5.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - - '@opentelemetry/resource-detector-azure@0.12.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - - '@opentelemetry/resource-detector-container@0.7.5(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - - '@opentelemetry/resource-detector-gcp@0.40.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - gcp-metadata: 6.1.1 - transitivePeerDependencies: - - encoding - - supports-color - - '@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.28.0 - - '@opentelemetry/resources@2.1.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - - '@opentelemetry/sdk-logs@0.205.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.205.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/sdk-metrics@2.1.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/sdk-node@0.205.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.205.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-logs-otlp-grpc': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-logs-otlp-http': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-logs-otlp-proto': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-grpc': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-http': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-proto': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-prometheus': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-grpc': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-http': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-proto': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-zipkin': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/propagator-b3': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/propagator-jaeger': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.205.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-node': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.28.0 - - '@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - - '@opentelemetry/sdk-trace-node@2.1.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/semantic-conventions@1.28.0': {} - - '@opentelemetry/semantic-conventions@1.32.0': {} - - '@opentelemetry/semantic-conventions@1.37.0': {} - - '@opentelemetry/sql-common@0.40.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - - '@opentelemetry/sql-common@0.41.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - - '@oxc-resolver/binding-darwin-arm64@11.4.0': - optional: true - - '@oxc-resolver/binding-darwin-x64@11.4.0': - optional: true - - '@oxc-resolver/binding-freebsd-x64@11.4.0': - optional: true - - '@oxc-resolver/binding-linux-arm-gnueabihf@11.4.0': - optional: true - - '@oxc-resolver/binding-linux-arm64-gnu@11.4.0': - optional: true - - '@oxc-resolver/binding-linux-arm64-musl@11.4.0': - optional: true - - '@oxc-resolver/binding-linux-riscv64-gnu@11.4.0': - optional: true - - '@oxc-resolver/binding-linux-s390x-gnu@11.4.0': - optional: true - - '@oxc-resolver/binding-linux-x64-gnu@11.4.0': - optional: true - - '@oxc-resolver/binding-linux-x64-musl@11.4.0': - optional: true - - '@oxc-resolver/binding-wasm32-wasi@11.4.0': - dependencies: - '@napi-rs/wasm-runtime': 0.2.11 - optional: true - - '@oxc-resolver/binding-win32-arm64-msvc@11.4.0': - optional: true - - '@oxc-resolver/binding-win32-x64-msvc@11.4.0': - optional: true - - '@panva/hkdf@1.2.1': {} - - '@parcel/watcher-android-arm64@2.5.1': - optional: true - - '@parcel/watcher-darwin-arm64@2.5.1': - optional: true - - '@parcel/watcher-darwin-x64@2.5.1': - optional: true - - '@parcel/watcher-freebsd-x64@2.5.1': - optional: true - - '@parcel/watcher-linux-arm-glibc@2.5.1': - optional: true - - '@parcel/watcher-linux-arm-musl@2.5.1': - optional: true - - '@parcel/watcher-linux-arm64-glibc@2.5.1': - optional: true - - '@parcel/watcher-linux-arm64-musl@2.5.1': - optional: true - - '@parcel/watcher-linux-x64-glibc@2.5.1': - optional: true - - '@parcel/watcher-linux-x64-musl@2.5.1': - optional: true - - '@parcel/watcher-win32-arm64@2.5.1': - optional: true - - '@parcel/watcher-win32-ia32@2.5.1': - optional: true - - '@parcel/watcher-win32-x64@2.5.1': - optional: true - - '@parcel/watcher@2.5.1': - dependencies: - detect-libc: 1.0.3 - is-glob: 4.0.3 - micromatch: 4.0.8 - node-addon-api: 7.1.1 - optionalDependencies: - '@parcel/watcher-android-arm64': 2.5.1 - '@parcel/watcher-darwin-arm64': 2.5.1 - '@parcel/watcher-darwin-x64': 2.5.1 - '@parcel/watcher-freebsd-x64': 2.5.1 - '@parcel/watcher-linux-arm-glibc': 2.5.1 - '@parcel/watcher-linux-arm-musl': 2.5.1 - '@parcel/watcher-linux-arm64-glibc': 2.5.1 - '@parcel/watcher-linux-arm64-musl': 2.5.1 - '@parcel/watcher-linux-x64-glibc': 2.5.1 - '@parcel/watcher-linux-x64-musl': 2.5.1 - '@parcel/watcher-win32-arm64': 2.5.1 - '@parcel/watcher-win32-ia32': 2.5.1 - '@parcel/watcher-win32-x64': 2.5.1 - optional: true - - '@pkgjs/parseargs@0.11.0': - optional: true - - '@playwright/test@1.51.1': - dependencies: - playwright: 1.51.1 - - '@plotly/d3-sankey-circular@0.33.1': - dependencies: - d3-array: 1.2.4 - d3-collection: 1.0.7 - d3-shape: 1.3.7 - elementary-circuits-directed-graph: 1.3.1 - - '@plotly/d3-sankey@0.7.2': - dependencies: - d3-array: 1.2.4 - d3-collection: 1.0.7 - d3-shape: 1.3.7 - - '@plotly/d3@3.8.2': {} - - '@plotly/mapbox-gl@1.13.4(mapbox-gl@1.13.3)': - dependencies: - '@mapbox/geojson-rewind': 0.5.2 - '@mapbox/geojson-types': 1.0.2 - '@mapbox/jsonlint-lines-primitives': 2.0.2 - '@mapbox/mapbox-gl-supported': 1.5.0(mapbox-gl@1.13.3) - '@mapbox/point-geometry': 0.1.0 - '@mapbox/tiny-sdf': 1.2.5 - '@mapbox/unitbezier': 0.0.0 - '@mapbox/vector-tile': 1.3.1 - '@mapbox/whoots-js': 3.1.0 - csscolorparser: 1.0.3 - earcut: 2.2.4 - geojson-vt: 3.2.1 - gl-matrix: 3.4.3 - grid-index: 1.1.0 - murmurhash-js: 1.0.0 - pbf: 3.3.0 - potpack: 1.0.2 - quickselect: 2.0.0 - rw: 1.3.3 - supercluster: 7.1.5 - tinyqueue: 2.0.3 - vt-pbf: 3.1.3 - transitivePeerDependencies: - - mapbox-gl - - '@plotly/point-cluster@3.1.9': - dependencies: - array-bounds: 1.0.1 - binary-search-bounds: 2.0.5 - clamp: 1.0.1 - defined: 1.0.1 - dtype: 2.0.0 - flatten-vertex-data: 1.0.2 - is-obj: 1.0.1 - math-log2: 1.0.1 - parse-rect: 1.2.0 - pick-by-alias: 1.2.0 - - '@plotly/regl@2.1.2': {} - - '@polka/url@1.0.0-next.29': {} - - '@portabletext/block-tools@1.1.32(@sanity/types@3.94.2(@types/react@19.1.0))(@types/react@19.1.0)': - dependencies: - '@sanity/types': 3.94.2(@types/react@19.1.0)(debug@4.4.0) - '@types/react': 19.1.0 - get-random-values-esm: 1.0.2 - lodash: 4.17.21 - - '@portabletext/editor@1.55.5(@sanity/schema@3.94.2(@types/react@19.1.0)(debug@4.4.0))(@sanity/types@3.94.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rxjs@7.8.2)': - dependencies: - '@portabletext/block-tools': 1.1.32(@sanity/types@3.94.2(@types/react@19.1.0))(@types/react@19.1.0) - '@portabletext/patches': 1.1.5 - '@portabletext/to-html': 2.0.14 - '@sanity/schema': 3.94.2(@types/react@19.1.0)(debug@4.4.0) - '@sanity/types': 3.94.2(@types/react@19.1.0)(debug@4.4.0) - '@xstate/react': 6.0.0(@types/react@19.1.0)(react@19.1.0)(xstate@5.20.0) - debug: 4.4.1 - get-random-values-esm: 1.0.2 - immer: 10.1.1 - lodash: 4.17.21 - lodash.startcase: 4.4.0 - react: 19.1.0 - react-compiler-runtime: 19.1.0-rc.2(react@19.1.0) - rxjs: 7.8.2 - slate: 0.117.0 - slate-dom: 0.116.0(slate@0.117.0) - slate-react: 0.117.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0) - use-effect-event: 1.0.2(react@19.1.0) - xstate: 5.20.0 - transitivePeerDependencies: - - '@types/react' - - react-dom - - supports-color - - '@portabletext/patches@1.1.5': - dependencies: - '@sanity/diff-match-patch': 3.2.0 - lodash: 4.17.21 - - '@portabletext/react@3.2.1(react@19.1.0)': - dependencies: - '@portabletext/toolkit': 2.0.17 - '@portabletext/types': 2.0.13 - react: 19.1.0 - - '@portabletext/to-html@2.0.14': - dependencies: - '@portabletext/toolkit': 2.0.17 - '@portabletext/types': 2.0.13 - - '@portabletext/toolkit@2.0.17': - dependencies: - '@portabletext/types': 2.0.13 - - '@portabletext/types@2.0.13': {} - - '@prisma/instrumentation@6.5.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@probe.gl/env@4.1.0': {} - - '@probe.gl/log@4.1.0': - dependencies: - '@probe.gl/env': 4.1.0 - - '@probe.gl/stats@4.1.0': {} - - '@protobufjs/aspromise@1.1.2': {} - - '@protobufjs/base64@1.1.2': {} - - '@protobufjs/codegen@2.0.4': {} - - '@protobufjs/eventemitter@1.1.0': {} - - '@protobufjs/fetch@1.1.0': - dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/inquire': 1.1.0 - - '@protobufjs/float@1.0.2': {} - - '@protobufjs/inquire@1.1.0': {} - - '@protobufjs/path@1.1.2': {} - - '@protobufjs/pool@1.1.0': {} - - '@protobufjs/utf8@1.1.0': {} - - '@radix-ui/number@1.1.1': {} - - '@radix-ui/primitive@1.1.2': {} - - '@radix-ui/react-accordion@1.2.4(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collapsible': 1.1.4(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-collection': 1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - '@types/react-dom': 19.1.1(@types/react@19.1.0) - - '@radix-ui/react-arrow@1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - '@types/react-dom': 19.1.1(@types/react@19.1.0) - - '@radix-ui/react-checkbox@1.1.5(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.0)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - '@types/react-dom': 19.1.1(@types/react@19.1.0) - - '@radix-ui/react-collapsible@1.1.4(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - '@types/react-dom': 19.1.1(@types/react@19.1.0) - - '@radix-ui/react-collection@1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.0(@types/react@19.1.0)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - '@types/react-dom': 19.1.1(@types/react@19.1.0) - - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.0)(react@19.1.0)': - dependencies: - react: 19.1.0 - optionalDependencies: - '@types/react': 19.1.0 - - '@radix-ui/react-context@1.1.2(@types/react@19.1.0)(react@19.1.0)': - dependencies: - react: 19.1.0 - optionalDependencies: - '@types/react': 19.1.0 - - '@radix-ui/react-dialog@1.1.7(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.6(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-portal': 1.1.5(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.0(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.1.0) - aria-hidden: 1.2.4 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - react-remove-scroll: 2.6.3(@types/react@19.1.0)(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - '@types/react-dom': 19.1.1(@types/react@19.1.0) - - '@radix-ui/react-direction@1.1.1(@types/react@19.1.0)(react@19.1.0)': - dependencies: - react: 19.1.0 - optionalDependencies: - '@types/react': 19.1.0 - - '@radix-ui/react-dismissable-layer@1.1.6(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.0)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - '@types/react-dom': 19.1.1(@types/react@19.1.0) - - '@radix-ui/react-dropdown-menu@2.1.7(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-menu': 2.1.7(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - '@types/react-dom': 19.1.1(@types/react@19.1.0) - - '@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.0)(react@19.1.0)': - dependencies: - react: 19.1.0 - optionalDependencies: - '@types/react': 19.1.0 - - '@radix-ui/react-focus-scope@1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.0)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - '@types/react-dom': 19.1.1(@types/react@19.1.0) - - '@radix-ui/react-id@1.1.1(@types/react@19.1.0)(react@19.1.0)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.1.0) - react: 19.1.0 - optionalDependencies: - '@types/react': 19.1.0 - - '@radix-ui/react-menu@2.1.7(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.6(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-popper': 1.2.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-portal': 1.1.5(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-roving-focus': 1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.0(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.0)(react@19.1.0) - aria-hidden: 1.2.4 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - react-remove-scroll: 2.6.3(@types/react@19.1.0)(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - '@types/react-dom': 19.1.1(@types/react@19.1.0) - - '@radix-ui/react-menubar@1.1.7(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-menu': 2.1.7(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-roving-focus': 1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - '@types/react-dom': 19.1.1(@types/react@19.1.0) - - '@radix-ui/react-popover@1.1.7(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.6(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-popper': 1.2.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-portal': 1.1.5(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.0(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.1.0) - aria-hidden: 1.2.4 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - react-remove-scroll: 2.6.3(@types/react@19.1.0)(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - '@types/react-dom': 19.1.1(@types/react@19.1.0) - - '@radix-ui/react-popper@1.2.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@floating-ui/react-dom': 2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-arrow': 1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/rect': 1.1.1 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - '@types/react-dom': 19.1.1(@types/react@19.1.0) - - '@radix-ui/react-portal@1.1.5(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - '@types/react-dom': 19.1.1(@types/react@19.1.0) - - '@radix-ui/react-presence@1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - '@types/react-dom': 19.1.1(@types/react@19.1.0) - - '@radix-ui/react-primitive@2.0.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/react-slot': 1.2.0(@types/react@19.1.0)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - '@types/react-dom': 19.1.1(@types/react@19.1.0) - - '@radix-ui/react-roving-focus@1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - '@types/react-dom': 19.1.1(@types/react@19.1.0) - - '@radix-ui/react-slider@1.2.4(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/number': 1.1.1 - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.0)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - '@types/react-dom': 19.1.1(@types/react@19.1.0) - - '@radix-ui/react-slot@1.2.0(@types/react@19.1.0)(react@19.1.0)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) - react: 19.1.0 - optionalDependencies: - '@types/react': 19.1.0 - - '@radix-ui/react-switch@1.1.4(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.0)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - '@types/react-dom': 19.1.1(@types/react@19.1.0) - - '@radix-ui/react-tabs@1.1.4(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-roving-focus': 1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - '@types/react-dom': 19.1.1(@types/react@19.1.0) - - '@radix-ui/react-tooltip@1.2.0(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.6(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-popper': 1.2.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-portal': 1.1.5(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.0(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.1.0) - '@radix-ui/react-visually-hidden': 1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - '@types/react-dom': 19.1.1(@types/react@19.1.0) - - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.0)(react@19.1.0)': - dependencies: - react: 19.1.0 - optionalDependencies: - '@types/react': 19.1.0 - - '@radix-ui/react-use-controllable-state@1.1.1(@types/react@19.1.0)(react@19.1.0)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.0)(react@19.1.0) - react: 19.1.0 - optionalDependencies: - '@types/react': 19.1.0 - - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.0)(react@19.1.0)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.0)(react@19.1.0) - react: 19.1.0 - optionalDependencies: - '@types/react': 19.1.0 - - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.0)(react@19.1.0)': - dependencies: - react: 19.1.0 - optionalDependencies: - '@types/react': 19.1.0 - - '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.0)(react@19.1.0)': - dependencies: - react: 19.1.0 - optionalDependencies: - '@types/react': 19.1.0 - - '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.0)(react@19.1.0)': - dependencies: - '@radix-ui/rect': 1.1.1 - react: 19.1.0 - optionalDependencies: - '@types/react': 19.1.0 - - '@radix-ui/react-use-size@1.1.1(@types/react@19.1.0)(react@19.1.0)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.1.0) - react: 19.1.0 - optionalDependencies: - '@types/react': 19.1.0 - - '@radix-ui/react-visually-hidden@1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - '@types/react-dom': 19.1.1(@types/react@19.1.0) - - '@radix-ui/rect@1.1.1': {} - - '@rc-component/async-validator@5.0.4': - dependencies: - '@babel/runtime': 7.27.0 - - '@rc-component/color-picker@2.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@ant-design/fast-color': 2.0.6 - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@rc-component/context@1.4.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@babel/runtime': 7.27.0 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@rc-component/mini-decimal@1.1.0': - dependencies: - '@babel/runtime': 7.27.0 - - '@rc-component/mutate-observer@1.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@rc-component/portal@1.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@rc-component/qrcode@1.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@rc-component/tour@1.15.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@babel/runtime': 7.27.0 - '@rc-component/portal': 1.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@rc-component/trigger': 2.2.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@rc-component/trigger@2.2.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@babel/runtime': 7.27.0 - '@rc-component/portal': 1.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-resize-observer: 1.4.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@rc-component/util@1.2.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - react-is: 18.3.1 - - '@react-three/drei@10.0.6(@react-three/fiber@9.1.2(@types/react@19.1.0)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(three@0.159.0))(@types/react@19.1.0)(@types/three@0.159.0)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(three@0.159.0)': - dependencies: - '@babel/runtime': 7.27.0 - '@mediapipe/tasks-vision': 0.10.17 - '@monogrid/gainmap-js': 3.1.0(three@0.159.0) - '@react-three/fiber': 9.1.2(@types/react@19.1.0)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(three@0.159.0) - '@use-gesture/react': 10.3.1(react@19.1.0) - camera-controls: 2.10.1(three@0.159.0) - cross-env: 7.0.3 - detect-gpu: 5.0.70 - glsl-noise: 0.0.0 - hls.js: 1.6.2 - maath: 0.10.8(@types/three@0.159.0)(three@0.159.0) - meshline: 3.3.1(three@0.159.0) - react: 19.1.0 - stats-gl: 2.4.2(@types/three@0.159.0)(three@0.159.0) - stats.js: 0.17.0 - suspend-react: 0.1.3(react@19.1.0) - three: 0.159.0 - three-mesh-bvh: 0.8.3(three@0.159.0) - three-stdlib: 2.35.15(three@0.159.0) - troika-three-text: 0.52.4(three@0.159.0) - tunnel-rat: 0.1.2(@types/react@19.1.0)(immer@10.1.1)(react@19.1.0) - use-sync-external-store: 1.5.0(react@19.1.0) - utility-types: 3.11.0 - zustand: 5.0.3(@types/react@19.1.0)(immer@10.1.1)(react@19.1.0)(use-sync-external-store@1.5.0(react@19.1.0)) - optionalDependencies: - react-dom: 19.1.0(react@19.1.0) - transitivePeerDependencies: - - '@types/react' - - '@types/three' - - immer - - '@react-three/fiber@9.1.2(@types/react@19.1.0)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(three@0.159.0)': - dependencies: - '@babel/runtime': 7.27.0 - '@types/react-reconciler': 0.28.9(@types/react@19.1.0) - '@types/webxr': 0.5.21 - base64-js: 1.5.1 - buffer: 6.0.3 - its-fine: 2.0.0(@types/react@19.1.0)(react@19.1.0) - react: 19.1.0 - react-reconciler: 0.31.0(react@19.1.0) - react-use-measure: 2.1.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - scheduler: 0.25.0 - suspend-react: 0.1.3(react@19.1.0) - three: 0.159.0 - use-sync-external-store: 1.5.0(react@19.1.0) - zustand: 5.0.3(@types/react@19.1.0)(immer@10.1.1)(react@19.1.0)(use-sync-external-store@1.5.0(react@19.1.0)) - optionalDependencies: - react-dom: 19.1.0(react@19.1.0) - transitivePeerDependencies: - - '@types/react' - - immer - - '@redux-devtools/extension@3.3.0(redux@5.0.1)': - dependencies: - '@babel/runtime': 7.27.0 - immutable: 4.3.7 - redux: 5.0.1 - - '@rexxars/react-json-inspector@9.0.1(react@19.1.0)': - dependencies: - debounce: 1.2.1 - md5-o-matic: 0.1.1 - react: 19.1.0 - - '@rjsf/core@5.24.11(@rjsf/utils@5.24.11(react@19.1.0))(react@19.1.0)': - dependencies: - '@rjsf/utils': 5.24.11(react@19.1.0) - lodash: 4.17.21 - lodash-es: 4.17.21 - markdown-to-jsx: 7.7.6(react@19.1.0) - nanoid: 3.3.11 - prop-types: 15.8.1 - react: 19.1.0 - - '@rjsf/utils@5.24.11(react@19.1.0)': - dependencies: - json-schema-merge-allof: 0.8.1 - jsonpointer: 5.0.1 - lodash: 4.17.21 - lodash-es: 4.17.21 - react: 19.1.0 - react-is: 18.3.1 - - '@rjsf/validator-ajv8@5.24.11(@rjsf/utils@5.24.11(react@19.1.0))': - dependencies: - '@rjsf/utils': 5.24.11(react@19.1.0) - ajv: 8.17.1 - ajv-formats: 2.1.1(ajv@8.17.1) - lodash: 4.17.21 - lodash-es: 4.17.21 - - '@rolldown/pluginutils@1.0.0-beta.11': {} - - '@rolldown/pluginutils@1.0.0-beta.19': {} - - '@rollup/plugin-commonjs@28.0.1(rollup@4.35.0)': - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.35.0) - commondir: 1.0.1 - estree-walker: 2.0.2 - fdir: 6.4.3(picomatch@4.0.2) - is-reference: 1.2.1 - magic-string: 0.30.17 - picomatch: 4.0.2 - optionalDependencies: - rollup: 4.35.0 - - '@rollup/pluginutils@5.1.4(rollup@4.35.0)': - dependencies: - '@types/estree': 1.0.7 - estree-walker: 2.0.2 - picomatch: 4.0.2 - optionalDependencies: - rollup: 4.35.0 - - '@rollup/rollup-android-arm-eabi@4.35.0': - optional: true - - '@rollup/rollup-android-arm-eabi@4.39.0': - optional: true - - '@rollup/rollup-android-arm64@4.35.0': - optional: true - - '@rollup/rollup-android-arm64@4.39.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.35.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.39.0': - optional: true - - '@rollup/rollup-darwin-x64@4.35.0': - optional: true - - '@rollup/rollup-darwin-x64@4.39.0': - optional: true - - '@rollup/rollup-freebsd-arm64@4.35.0': - optional: true - - '@rollup/rollup-freebsd-arm64@4.39.0': - optional: true - - '@rollup/rollup-freebsd-x64@4.35.0': - optional: true - - '@rollup/rollup-freebsd-x64@4.39.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.35.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.39.0': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.35.0': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.39.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.35.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.39.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.35.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.39.0': - optional: true - - '@rollup/rollup-linux-loongarch64-gnu@4.35.0': - optional: true - - '@rollup/rollup-linux-loongarch64-gnu@4.39.0': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.35.0': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.39.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.35.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.39.0': - optional: true - - '@rollup/rollup-linux-riscv64-musl@4.39.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.35.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.39.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.35.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.39.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.35.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.39.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.35.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.39.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.35.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.39.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.35.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.39.0': - optional: true - - '@rtsao/scc@1.1.0': {} - - '@rushstack/eslint-patch@1.11.0': {} - - '@sanity/asset-utils@2.2.1': {} - - '@sanity/bifur-client@0.4.1': - dependencies: - nanoid: 3.3.11 - rxjs: 7.8.2 - - '@sanity/cli@3.94.2(@types/node@22.14.0)(@types/react@19.1.0)(lightningcss@1.29.2)(react@19.1.0)(sass@1.92.1)(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1)': - dependencies: - '@babel/traverse': 7.27.4 - '@sanity/client': 7.6.0(debug@4.4.0) - '@sanity/codegen': 3.94.2 - '@sanity/runtime-cli': 8.1.4(@types/node@22.14.0)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1) - '@sanity/telemetry': 0.8.1(react@19.1.0) - '@sanity/template-validator': 2.4.3 - '@sanity/util': 3.94.2(@types/react@19.1.0)(debug@4.4.0) - chalk: 4.1.2 - debug: 4.4.0(supports-color@8.1.1) - decompress: 4.2.1 - esbuild: 0.25.5 - esbuild-register: 3.6.0(esbuild@0.25.5) - get-it: 8.6.9(debug@4.4.0) - groq-js: 1.17.1 - pkg-dir: 5.0.0 - prettier: 3.5.3 - semver: 7.7.1 - validate-npm-package-name: 3.0.0 - transitivePeerDependencies: - - '@types/node' - - '@types/react' - - bufferutil - - less - - lightningcss - - react - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - typescript - - utf-8-validate - - yaml - - '@sanity/client@6.28.4(debug@4.4.0)': - dependencies: - '@sanity/eventsource': 5.0.2 - get-it: 8.6.9(debug@4.4.0) - rxjs: 7.8.2 - transitivePeerDependencies: - - debug - - '@sanity/client@7.6.0(debug@4.4.0)': - dependencies: - '@sanity/eventsource': 5.0.2 - get-it: 8.6.9(debug@4.4.0) - nanoid: 3.3.11 - rxjs: 7.8.2 - transitivePeerDependencies: - - debug - - '@sanity/codegen@3.94.2': - dependencies: - '@babel/core': 7.27.4 - '@babel/generator': 7.27.5 - '@babel/preset-env': 7.27.2(@babel/core@7.27.4) - '@babel/preset-react': 7.27.1(@babel/core@7.27.4) - '@babel/preset-typescript': 7.27.1(@babel/core@7.27.4) - '@babel/register': 7.27.1(@babel/core@7.27.4) - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 - debug: 4.4.0(supports-color@8.1.1) - globby: 11.1.0 - groq: 3.94.2 - groq-js: 1.17.1 - json5: 2.2.3 - tsconfig-paths: 4.2.0 - zod: 3.24.2 - transitivePeerDependencies: - - supports-color - - '@sanity/color@3.0.6': {} - - '@sanity/comlink@3.0.5': - dependencies: - rxjs: 7.8.2 - uuid: 11.1.0 - xstate: 5.19.2 - - '@sanity/descriptors@1.0.0': - dependencies: - sha256-uint8array: 0.10.7 - - '@sanity/diff-match-patch@3.2.0': {} - - '@sanity/diff-patch@5.0.0': - dependencies: - '@sanity/diff-match-patch': 3.2.0 - - '@sanity/diff@3.94.2': - dependencies: - '@sanity/diff-match-patch': 3.2.0 - - '@sanity/eventsource@5.0.2': - dependencies: - '@types/event-source-polyfill': 1.0.5 - '@types/eventsource': 1.1.15 - event-source-polyfill: 1.0.31 - eventsource: 2.0.2 - - '@sanity/export@3.45.1(@types/react@19.1.0)': - dependencies: - '@sanity/client': 6.28.4(debug@4.4.0) - '@sanity/util': 3.68.3(@types/react@19.1.0)(debug@4.4.0) - archiver: 7.0.1 - debug: 4.4.0(supports-color@8.1.1) - get-it: 8.6.9(debug@4.4.0) - json-stream-stringify: 2.0.4 - lodash: 4.17.21 - mississippi: 4.0.0 - p-queue: 2.4.2 - rimraf: 6.0.1 - split2: 4.2.0 - tar: 7.4.3 - yaml: 2.7.1 - transitivePeerDependencies: - - '@types/react' - - supports-color - - '@sanity/generate-help-url@3.0.0': {} - - '@sanity/icons@3.7.0(react@19.1.0)': - dependencies: - react: 19.1.0 - - '@sanity/icons@3.7.4(react@19.1.0)': - dependencies: - react: 19.1.0 - - '@sanity/id-utils@1.0.0': - dependencies: - '@sanity/uuid': 3.0.2 - lodash: 4.17.21 - ts-brand: 0.2.0 - - '@sanity/image-url@1.1.0': {} - - '@sanity/import@3.38.2(@types/react@19.1.0)': - dependencies: - '@sanity/asset-utils': 2.2.1 - '@sanity/generate-help-url': 3.0.0 - '@sanity/mutator': 3.94.2(@types/react@19.1.0) - '@sanity/uuid': 3.0.2 - debug: 4.4.0(supports-color@8.1.1) - file-url: 2.0.2 - get-it: 8.6.9(debug@4.4.0) - get-uri: 2.0.4 - gunzip-maybe: 1.4.2 - is-tar: 1.0.0 - lodash: 4.17.21 - meow: 9.0.0 - mississippi: 4.0.0 - ora: 5.4.1 - p-map: 1.2.0 - peek-stream: 1.1.3 - pretty-ms: 7.0.1 - rimraf: 6.0.1 - split2: 4.2.0 - tar-fs: 2.1.2 - tinyglobby: 0.2.14 - transitivePeerDependencies: - - '@types/react' - - supports-color - - '@sanity/insert-menu@1.1.12(@emotion/is-prop-valid@1.2.2)(@sanity/types@3.94.2(@types/react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))': - dependencies: - '@sanity/icons': 3.7.0(react@19.1.0) - '@sanity/types': 3.94.2(@types/react@19.1.0)(debug@4.4.0) - '@sanity/ui': 2.15.18(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) - lodash: 4.17.21 - react: 19.1.0 - react-compiler-runtime: 19.1.0-rc.2(react@19.1.0) - react-dom: 19.1.0(react@19.1.0) - react-is: 18.3.1 - transitivePeerDependencies: - - '@emotion/is-prop-valid' - - styled-components - - '@sanity/logos@2.2.1(@sanity/color@3.0.6)(react@19.1.0)': - dependencies: - '@sanity/color': 3.0.6 - react: 19.1.0 - - '@sanity/media-library-types@1.0.0': {} - - '@sanity/message-protocol@0.13.3': - dependencies: - '@sanity/comlink': 3.0.5 - - '@sanity/migrate@3.94.2(@types/react@19.1.0)': - dependencies: - '@sanity/client': 7.6.0(debug@4.4.0) - '@sanity/mutate': 0.12.4(debug@4.4.0) - '@sanity/types': 3.94.2(@types/react@19.1.0)(debug@4.4.0) - '@sanity/util': 3.94.2(@types/react@19.1.0)(debug@4.4.0) - arrify: 2.0.1 - debug: 4.4.0(supports-color@8.1.1) - fast-fifo: 1.3.2 - groq-js: 1.17.1 - p-map: 7.0.3 - transitivePeerDependencies: - - '@types/react' - - supports-color - - '@sanity/mutate@0.11.0-canary.4(xstate@5.19.2)': - dependencies: - '@sanity/client': 6.28.4(debug@4.4.0) - '@sanity/diff-match-patch': 3.2.0 - hotscript: 1.0.13 - lodash: 4.17.21 - lodash-es: 4.17.21 - mendoza: 3.0.8 - rxjs: 7.8.2 - optionalDependencies: - xstate: 5.19.2 - transitivePeerDependencies: - - debug - - '@sanity/mutate@0.12.4(debug@4.4.0)': - dependencies: - '@sanity/client': 6.28.4(debug@4.4.0) - '@sanity/diff-match-patch': 3.2.0 - '@sanity/uuid': 3.0.2 - hotscript: 1.0.13 - lodash: 4.17.21 - mendoza: 3.0.8 - nanoid: 5.1.5 - rxjs: 7.8.2 - transitivePeerDependencies: - - debug - - '@sanity/mutator@3.94.2(@types/react@19.1.0)': - dependencies: - '@sanity/diff-match-patch': 3.2.0 - '@sanity/types': 3.94.2(@types/react@19.1.0)(debug@4.4.0) - '@sanity/uuid': 3.0.2 - debug: 4.4.0(supports-color@8.1.1) - lodash: 4.17.21 - transitivePeerDependencies: - - '@types/react' - - supports-color - - '@sanity/next-loader@1.6.2(@sanity/types@3.94.2(@types/react@19.1.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react@19.1.0)': - dependencies: - '@sanity/client': 7.6.0(debug@4.4.0) - '@sanity/comlink': 3.0.5 - '@sanity/presentation-comlink': 1.0.21(@sanity/client@7.6.0)(@sanity/types@3.94.2(@types/react@19.1.0)) - dequal: 2.0.3 - next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1) - react: 19.1.0 - use-effect-event: 1.0.2(react@19.1.0) - transitivePeerDependencies: - - '@sanity/types' - - debug - - '@sanity/presentation-comlink@1.0.21(@sanity/client@7.6.0)(@sanity/types@3.94.2(@types/react@19.1.0))': - dependencies: - '@sanity/client': 7.6.0(debug@4.4.0) - '@sanity/comlink': 3.0.5 - '@sanity/visual-editing-types': 1.1.0(@sanity/client@7.6.0)(@sanity/types@3.94.2(@types/react@19.1.0)) - transitivePeerDependencies: - - '@sanity/types' - - '@sanity/preview-kit@6.1.1(@sanity/types@3.94.2(@types/react@19.1.0))(react@19.1.0)': - dependencies: - '@sanity/client': 7.6.0(debug@4.4.0) - '@sanity/comlink': 3.0.5 - '@sanity/presentation-comlink': 1.0.21(@sanity/client@7.6.0)(@sanity/types@3.94.2(@types/react@19.1.0)) - use-sync-external-store: 1.5.0(react@19.1.0) - optionalDependencies: - react: 19.1.0 - transitivePeerDependencies: - - '@sanity/types' - - debug - - '@sanity/preview-url-secret@2.1.11(@sanity/client@7.6.0)': - dependencies: - '@sanity/client': 7.6.0(debug@4.4.0) - '@sanity/uuid': 3.0.2 - - '@sanity/runtime-cli@8.1.4(@types/node@22.14.0)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1)': - dependencies: - '@oclif/core': 4.4.0 - '@oclif/plugin-help': 6.2.29 - adm-zip: 0.5.16 - array-treeify: 0.1.5 - cardinal: 2.1.1 - chalk: 5.4.1 - eventsource: 4.0.0 - find-up: 7.0.0 - groq-js: 1.17.1 - inquirer: 12.6.3(@types/node@22.14.0) - jiti: 2.4.2 - mime-types: 3.0.1 - ora: 8.2.0 - tar-stream: 3.1.7 - vite: 6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1) - vite-tsconfig-paths: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1)) - ws: 8.18.2 - xdg-basedir: 5.1.0 - transitivePeerDependencies: - - '@types/node' - - bufferutil - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - typescript - - utf-8-validate - - yaml - - '@sanity/schema@3.94.2(@types/react@19.1.0)(debug@4.4.0)': - dependencies: - '@sanity/descriptors': 1.0.0 - '@sanity/generate-help-url': 3.0.0 - '@sanity/types': 3.94.2(@types/react@19.1.0)(debug@4.4.0) - arrify: 2.0.1 - groq-js: 1.17.1 - humanize-list: 1.0.1 - leven: 3.1.0 - lodash: 4.17.21 - object-inspect: 1.13.4 - transitivePeerDependencies: - - '@types/react' - - debug - - supports-color - - '@sanity/sdk@0.0.0-alpha.25(@types/react@19.1.0)(debug@4.4.0)(immer@10.1.1)(react@19.1.0)(use-sync-external-store@1.5.0(react@19.1.0))': - dependencies: - '@sanity/client': 6.28.4(debug@4.4.0) - '@sanity/comlink': 3.0.5 - '@sanity/diff-match-patch': 3.2.0 - '@sanity/mutate': 0.12.4(debug@4.4.0) - '@sanity/types': 3.94.2(@types/react@19.1.0)(debug@4.4.0) - '@types/lodash-es': 4.17.12 - lodash-es: 4.17.21 - reselect: 5.1.1 - rxjs: 7.8.2 - zustand: 5.0.3(@types/react@19.1.0)(immer@10.1.1)(react@19.1.0)(use-sync-external-store@1.5.0(react@19.1.0)) - transitivePeerDependencies: - - '@types/react' - - debug - - immer - - react - - use-sync-external-store - - '@sanity/telemetry@0.8.1(react@19.1.0)': - dependencies: - lodash: 4.17.21 - react: 19.1.0 - rxjs: 7.8.2 - typeid-js: 0.3.0 - - '@sanity/template-validator@2.4.3': - dependencies: - '@actions/core': 1.11.1 - '@actions/github': 6.0.0 - yaml: 2.7.1 - - '@sanity/types@3.68.3(@types/react@19.1.0)(debug@4.4.0)': - dependencies: - '@sanity/client': 6.28.4(debug@4.4.0) - '@types/react': 19.1.0 - transitivePeerDependencies: - - debug - - '@sanity/types@3.94.2(@types/react@19.1.0)(debug@4.4.0)': - dependencies: - '@sanity/client': 7.6.0(debug@4.4.0) - '@sanity/media-library-types': 1.0.0 - '@types/react': 19.1.0 - transitivePeerDependencies: - - debug - - '@sanity/ui@2.15.18(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))': - dependencies: - '@floating-ui/react-dom': 2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@juggle/resize-observer': 3.4.0 - '@sanity/color': 3.0.6 - '@sanity/icons': 3.7.0(react@19.1.0) - csstype: 3.1.3 - framer-motion: 12.18.1(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-compiler-runtime: 19.1.0-rc.2(react@19.1.0) - react-dom: 19.1.0(react@19.1.0) - react-is: 18.3.1 - react-refractor: 2.2.0(react@19.1.0) - styled-components: 6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - use-effect-event: 1.0.2(react@19.1.0) - transitivePeerDependencies: - - '@emotion/is-prop-valid' - - '@sanity/ui@2.16.2(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))': - dependencies: - '@floating-ui/react-dom': 2.1.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@juggle/resize-observer': 3.4.0 - '@sanity/color': 3.0.6 - '@sanity/icons': 3.7.4(react@19.1.0) - csstype: 3.1.3 - framer-motion: 12.19.1(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-compiler-runtime: 19.1.0-rc.2(react@19.1.0) - react-dom: 19.1.0(react@19.1.0) - react-is: 18.3.1 - react-refractor: 2.2.0(react@19.1.0) - styled-components: 6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - use-effect-event: 2.0.2(react@19.1.0) - transitivePeerDependencies: - - '@emotion/is-prop-valid' - - '@sanity/util@3.68.3(@types/react@19.1.0)(debug@4.4.0)': - dependencies: - '@sanity/client': 6.28.4(debug@4.4.0) - '@sanity/types': 3.68.3(@types/react@19.1.0)(debug@4.4.0) - get-random-values-esm: 1.0.2 - moment: 2.30.1 - rxjs: 7.8.2 - transitivePeerDependencies: - - '@types/react' - - debug - - '@sanity/util@3.94.2(@types/react@19.1.0)(debug@4.4.0)': - dependencies: - '@date-fns/tz': 1.2.0 - '@date-fns/utc': 2.1.0 - '@sanity/client': 7.6.0(debug@4.4.0) - '@sanity/types': 3.94.2(@types/react@19.1.0)(debug@4.4.0) - date-fns: 4.1.0 - get-random-values-esm: 1.0.2 - rxjs: 7.8.2 - transitivePeerDependencies: - - '@types/react' - - debug - - '@sanity/uuid@3.0.2': - dependencies: - '@types/uuid': 8.3.4 - uuid: 8.3.2 - - '@sanity/visual-editing-csm@2.0.18(@sanity/client@7.6.0)(@sanity/types@3.94.2(@types/react@19.1.0))(typescript@5.8.3)': - dependencies: - '@sanity/client': 7.6.0(debug@4.4.0) - '@sanity/visual-editing-types': 1.1.0(@sanity/client@7.6.0)(@sanity/types@3.94.2(@types/react@19.1.0)) - valibot: 1.1.0(typescript@5.8.3) - transitivePeerDependencies: - - '@sanity/types' - - typescript - - '@sanity/visual-editing-types@1.1.0(@sanity/client@7.6.0)(@sanity/types@3.94.2(@types/react@19.1.0))': - dependencies: - '@sanity/client': 7.6.0(debug@4.4.0) - optionalDependencies: - '@sanity/types': 3.94.2(@types/react@19.1.0)(debug@4.4.0) - - '@sanity/visual-editing@2.15.0(@emotion/is-prop-valid@1.2.2)(@sanity/client@7.6.0)(@sanity/types@3.94.2(@types/react@19.1.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(typescript@5.8.3)': - dependencies: - '@sanity/comlink': 3.0.5 - '@sanity/icons': 3.7.0(react@19.1.0) - '@sanity/insert-menu': 1.1.12(@emotion/is-prop-valid@1.2.2)(@sanity/types@3.94.2(@types/react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) - '@sanity/mutate': 0.11.0-canary.4(xstate@5.19.2) - '@sanity/presentation-comlink': 1.0.21(@sanity/client@7.6.0)(@sanity/types@3.94.2(@types/react@19.1.0)) - '@sanity/preview-url-secret': 2.1.11(@sanity/client@7.6.0) - '@sanity/ui': 2.15.18(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) - '@sanity/visual-editing-csm': 2.0.18(@sanity/client@7.6.0)(@sanity/types@3.94.2(@types/react@19.1.0))(typescript@5.8.3) - '@vercel/stega': 0.1.2 - get-random-values-esm: 1.0.2 - react: 19.1.0 - react-compiler-runtime: 19.1.0-rc.2(react@19.1.0) - react-dom: 19.1.0(react@19.1.0) - react-is: 18.3.1 - rxjs: 7.8.2 - scroll-into-view-if-needed: 3.1.0 - styled-components: 6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - use-effect-event: 1.0.2(react@19.1.0) - xstate: 5.19.2 - optionalDependencies: - '@sanity/client': 7.6.0(debug@4.4.0) - next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1) - transitivePeerDependencies: - - '@emotion/is-prop-valid' - - '@sanity/types' - - debug - - typescript - - '@sentry-internal/browser-utils@8.55.0': - dependencies: - '@sentry/core': 8.55.0 - - '@sentry-internal/browser-utils@9.12.0': - dependencies: - '@sentry/core': 9.12.0 - - '@sentry-internal/feedback@8.55.0': - dependencies: - '@sentry/core': 8.55.0 - - '@sentry-internal/feedback@9.12.0': - dependencies: - '@sentry/core': 9.12.0 - - '@sentry-internal/replay-canvas@8.55.0': - dependencies: - '@sentry-internal/replay': 8.55.0 - '@sentry/core': 8.55.0 - - '@sentry-internal/replay-canvas@9.12.0': - dependencies: - '@sentry-internal/replay': 9.12.0 - '@sentry/core': 9.12.0 - - '@sentry-internal/replay@8.55.0': - dependencies: - '@sentry-internal/browser-utils': 8.55.0 - '@sentry/core': 8.55.0 - - '@sentry-internal/replay@9.12.0': - dependencies: - '@sentry-internal/browser-utils': 9.12.0 - '@sentry/core': 9.12.0 - - '@sentry/babel-plugin-component-annotate@3.2.4': {} - - '@sentry/browser@8.55.0': - dependencies: - '@sentry-internal/browser-utils': 8.55.0 - '@sentry-internal/feedback': 8.55.0 - '@sentry-internal/replay': 8.55.0 - '@sentry-internal/replay-canvas': 8.55.0 - '@sentry/core': 8.55.0 - - '@sentry/browser@9.12.0': - dependencies: - '@sentry-internal/browser-utils': 9.12.0 - '@sentry-internal/feedback': 9.12.0 - '@sentry-internal/replay': 9.12.0 - '@sentry-internal/replay-canvas': 9.12.0 - '@sentry/core': 9.12.0 - - '@sentry/bundler-plugin-core@3.2.4': - dependencies: - '@babel/core': 7.26.10 - '@sentry/babel-plugin-component-annotate': 3.2.4 - '@sentry/cli': 2.42.2 - dotenv: 16.5.0 - find-up: 5.0.0 - glob: 9.3.5 - magic-string: 0.30.8 - unplugin: 1.0.1 - transitivePeerDependencies: - - encoding - - supports-color - - '@sentry/cli-darwin@2.42.2': - optional: true - - '@sentry/cli-linux-arm64@2.42.2': - optional: true - - '@sentry/cli-linux-arm@2.42.2': - optional: true - - '@sentry/cli-linux-i686@2.42.2': - optional: true - - '@sentry/cli-linux-x64@2.42.2': - optional: true - - '@sentry/cli-win32-i686@2.42.2': - optional: true - - '@sentry/cli-win32-x64@2.42.2': - optional: true - - '@sentry/cli@2.42.2': - dependencies: - https-proxy-agent: 5.0.1 - node-fetch: 2.7.0 - progress: 2.0.3 - proxy-from-env: 1.1.0 - which: 2.0.2 - optionalDependencies: - '@sentry/cli-darwin': 2.42.2 - '@sentry/cli-linux-arm': 2.42.2 - '@sentry/cli-linux-arm64': 2.42.2 - '@sentry/cli-linux-i686': 2.42.2 - '@sentry/cli-linux-x64': 2.42.2 - '@sentry/cli-win32-i686': 2.42.2 - '@sentry/cli-win32-x64': 2.42.2 - transitivePeerDependencies: - - encoding - - supports-color - - '@sentry/core@8.55.0': {} - - '@sentry/core@9.12.0': {} - - '@sentry/nextjs@9.12.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react@19.1.0)(webpack@5.99.5(esbuild@0.25.5))': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.32.0 - '@rollup/plugin-commonjs': 28.0.1(rollup@4.35.0) - '@sentry-internal/browser-utils': 9.12.0 - '@sentry/core': 9.12.0 - '@sentry/node': 9.12.0 - '@sentry/opentelemetry': 9.12.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.32.0) - '@sentry/react': 9.12.0(react@19.1.0) - '@sentry/vercel-edge': 9.12.0 - '@sentry/webpack-plugin': 3.2.4(webpack@5.99.5(esbuild@0.25.5)) - chalk: 3.0.0 - next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1) - resolve: 1.22.8 - rollup: 4.35.0 - stacktrace-parser: 0.1.11 - transitivePeerDependencies: - - '@opentelemetry/context-async-hooks' - - '@opentelemetry/core' - - '@opentelemetry/instrumentation' - - '@opentelemetry/sdk-trace-base' - - encoding - - react - - supports-color - - webpack - - '@sentry/node@9.12.0': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-amqplib': 0.46.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-connect': 0.43.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-dataloader': 0.16.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-express': 0.47.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-fastify': 0.44.2(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-fs': 0.19.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-generic-pool': 0.43.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-graphql': 0.47.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-hapi': 0.45.2(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-http': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-ioredis': 0.47.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-kafkajs': 0.7.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-knex': 0.44.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-koa': 0.47.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-lru-memoizer': 0.44.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mongodb': 0.52.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mongoose': 0.46.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mysql': 0.45.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mysql2': 0.45.2(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-pg': 0.51.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-redis-4': 0.46.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-tedious': 0.18.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-undici': 0.10.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - '@prisma/instrumentation': 6.5.0(@opentelemetry/api@1.9.0) - '@sentry/core': 9.12.0 - '@sentry/opentelemetry': 9.12.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.32.0) - import-in-the-middle: 1.13.1 - transitivePeerDependencies: - - supports-color - - '@sentry/opentelemetry@9.12.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.32.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - '@sentry/core': 9.12.0 - - '@sentry/react@8.55.0(react@19.1.0)': - dependencies: - '@sentry/browser': 8.55.0 - '@sentry/core': 8.55.0 - hoist-non-react-statics: 3.3.2 - react: 19.1.0 - - '@sentry/react@9.12.0(react@19.1.0)': - dependencies: - '@sentry/browser': 9.12.0 - '@sentry/core': 9.12.0 - hoist-non-react-statics: 3.3.2 - react: 19.1.0 - - '@sentry/vercel-edge@9.12.0': - dependencies: - '@opentelemetry/api': 1.9.0 - '@sentry/core': 9.12.0 - - '@sentry/webpack-plugin@3.2.4(webpack@5.99.5(esbuild@0.25.5))': - dependencies: - '@sentry/bundler-plugin-core': 3.2.4 - unplugin: 1.0.1 - uuid: 9.0.1 - webpack: 5.99.5(esbuild@0.25.5) - transitivePeerDependencies: - - encoding - - supports-color - - '@sinclair/typebox@0.27.8': {} - - '@sinonjs/commons@3.0.1': - dependencies: - type-detect: 4.0.8 - - '@sinonjs/fake-timers@10.3.0': - dependencies: - '@sinonjs/commons': 3.0.1 - - '@stripe/react-stripe-js@3.6.0(@stripe/stripe-js@7.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@stripe/stripe-js': 7.0.0 - prop-types: 15.8.1 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@stripe/stripe-js@7.0.0': {} - - '@swc/helpers@0.5.15': - dependencies: - tslib: 2.8.1 - - '@swc/helpers@0.5.17': - dependencies: - tslib: 2.8.1 - - '@t3-oss/env-core@0.13.0(arktype@2.1.20)(typescript@5.8.3)(valibot@1.1.0(typescript@5.8.3))(zod@3.24.2)': - dependencies: - arktype: 2.1.20 - optionalDependencies: - typescript: 5.8.3 - valibot: 1.1.0(typescript@5.8.3) - zod: 3.24.2 - - '@t3-oss/env-nextjs@0.13.0(arktype@2.1.20)(typescript@5.8.3)(valibot@1.1.0(typescript@5.8.3))(zod@3.24.2)': - dependencies: - '@t3-oss/env-core': 0.13.0(arktype@2.1.20)(typescript@5.8.3)(valibot@1.1.0(typescript@5.8.3))(zod@3.24.2) - optionalDependencies: - typescript: 5.8.3 - valibot: 1.1.0(typescript@5.8.3) - zod: 3.24.2 - transitivePeerDependencies: - - arktype - - '@tailwindcss/node@4.1.3': - dependencies: - enhanced-resolve: 5.18.1 - jiti: 2.4.2 - lightningcss: 1.29.2 - tailwindcss: 4.1.3 - - '@tailwindcss/oxide-android-arm64@4.1.3': - optional: true - - '@tailwindcss/oxide-darwin-arm64@4.1.3': - optional: true - - '@tailwindcss/oxide-darwin-x64@4.1.3': - optional: true - - '@tailwindcss/oxide-freebsd-x64@4.1.3': - optional: true - - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.3': - optional: true - - '@tailwindcss/oxide-linux-arm64-gnu@4.1.3': - optional: true - - '@tailwindcss/oxide-linux-arm64-musl@4.1.3': - optional: true - - '@tailwindcss/oxide-linux-x64-gnu@4.1.3': - optional: true - - '@tailwindcss/oxide-linux-x64-musl@4.1.3': - optional: true - - '@tailwindcss/oxide-win32-arm64-msvc@4.1.3': - optional: true - - '@tailwindcss/oxide-win32-x64-msvc@4.1.3': - optional: true - - '@tailwindcss/oxide@4.1.3': - optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.1.3 - '@tailwindcss/oxide-darwin-arm64': 4.1.3 - '@tailwindcss/oxide-darwin-x64': 4.1.3 - '@tailwindcss/oxide-freebsd-x64': 4.1.3 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.3 - '@tailwindcss/oxide-linux-arm64-gnu': 4.1.3 - '@tailwindcss/oxide-linux-arm64-musl': 4.1.3 - '@tailwindcss/oxide-linux-x64-gnu': 4.1.3 - '@tailwindcss/oxide-linux-x64-musl': 4.1.3 - '@tailwindcss/oxide-win32-arm64-msvc': 4.1.3 - '@tailwindcss/oxide-win32-x64-msvc': 4.1.3 - - '@tailwindcss/postcss@4.1.3': - dependencies: - '@alloc/quick-lru': 5.2.0 - '@tailwindcss/node': 4.1.3 - '@tailwindcss/oxide': 4.1.3 - postcss: 8.5.3 - tailwindcss: 4.1.3 - - '@tanstack/eslint-plugin-query@5.83.1(eslint@8.57.1)(typescript@5.8.3)': - dependencies: - '@typescript-eslint/utils': 8.39.0(eslint@8.57.1)(typescript@5.8.3) - eslint: 8.57.1 - transitivePeerDependencies: - - supports-color - - typescript - - '@tanstack/query-core@5.83.1': {} - - '@tanstack/query-devtools@5.84.0': {} - - '@tanstack/react-query-devtools@5.84.2(@tanstack/react-query@5.84.2(react@19.1.0))(react@19.1.0)': - dependencies: - '@tanstack/query-devtools': 5.84.0 - '@tanstack/react-query': 5.84.2(react@19.1.0) - react: 19.1.0 - - '@tanstack/react-query@5.84.2(react@19.1.0)': - dependencies: - '@tanstack/query-core': 5.83.1 - react: 19.1.0 - - '@tanstack/react-table@8.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@tanstack/table-core': 8.21.2 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@tanstack/react-table@8.21.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@tanstack/table-core': 8.21.3 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@tanstack/react-virtual@3.13.11(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@tanstack/virtual-core': 3.13.11 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@tanstack/table-core@8.21.2': {} - - '@tanstack/table-core@8.21.3': {} - - '@tanstack/virtual-core@3.13.11': {} - - '@testing-library/dom@10.4.0': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/runtime': 7.27.0 - '@types/aria-query': 5.0.4 - aria-query: 5.3.0 - chalk: 4.1.2 - dom-accessibility-api: 0.5.16 - lz-string: 1.5.0 - pretty-format: 27.5.1 - - '@testing-library/jest-dom@6.6.3': - dependencies: - '@adobe/css-tools': 4.4.2 - aria-query: 5.3.2 - chalk: 3.0.0 - css.escape: 1.5.1 - dom-accessibility-api: 0.6.3 - lodash: 4.17.21 - redent: 3.0.0 - - '@testing-library/react@16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@babel/runtime': 7.27.0 - '@testing-library/dom': 10.4.0 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - '@types/react-dom': 19.1.1(@types/react@19.1.0) - - '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.0)': - dependencies: - '@testing-library/dom': 10.4.0 - - '@tolokoban/tgd@2.0.33': - dependencies: - gl-matrix: 3.4.3 - - '@tootallnate/once@2.0.0': {} - - '@turf/area@7.2.0': - dependencies: - '@turf/helpers': 7.2.0 - '@turf/meta': 7.2.0 - '@types/geojson': 7946.0.16 - tslib: 2.8.1 - - '@turf/bbox@7.2.0': - dependencies: - '@turf/helpers': 7.2.0 - '@turf/meta': 7.2.0 - '@types/geojson': 7946.0.16 - tslib: 2.8.1 - - '@turf/centroid@7.2.0': - dependencies: - '@turf/helpers': 7.2.0 - '@turf/meta': 7.2.0 - '@types/geojson': 7946.0.16 - tslib: 2.8.1 - - '@turf/helpers@7.2.0': - dependencies: - '@types/geojson': 7946.0.16 - tslib: 2.8.1 - - '@turf/meta@7.2.0': - dependencies: - '@turf/helpers': 7.2.0 - '@types/geojson': 7946.0.16 - - '@tybys/wasm-util@0.9.0': - dependencies: - tslib: 2.8.1 - optional: true - - '@types/ajv@1.0.4': - dependencies: - ajv: 8.17.1 - - '@types/aria-query@5.0.4': {} - - '@types/aws-lambda@8.10.152': {} - - '@types/babel__core@7.20.5': - dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 - '@types/babel__generator': 7.27.0 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.7 - - '@types/babel__generator@7.27.0': - dependencies: - '@babel/types': 7.27.0 - - '@types/babel__template@7.4.4': - dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 - - '@types/babel__traverse@7.20.7': - dependencies: - '@babel/types': 7.27.0 - - '@types/base16@1.0.5': {} - - '@types/bunyan@1.8.11': - dependencies: - '@types/node': 22.16.4 - - '@types/canvas-confetti@1.9.0': {} - - '@types/chroma-js@2.4.5': {} - - '@types/command-line-args@5.2.3': {} - - '@types/command-line-usage@5.0.4': {} - - '@types/connect@3.4.38': - dependencies: - '@types/node': 22.14.0 - - '@types/cookie@0.6.0': {} - - '@types/d3-array@3.2.1': {} - - '@types/d3-axis@3.0.6': - dependencies: - '@types/d3-selection': 3.0.11 - - '@types/d3-brush@3.0.6': - dependencies: - '@types/d3-selection': 3.0.11 - - '@types/d3-chord@3.0.6': {} - - '@types/d3-color@3.1.3': {} - - '@types/d3-contour@3.0.6': - dependencies: - '@types/d3-array': 3.2.1 - '@types/geojson': 7946.0.16 - - '@types/d3-delaunay@6.0.4': {} - - '@types/d3-dispatch@3.0.6': {} - - '@types/d3-drag@3.0.7': - dependencies: - '@types/d3-selection': 3.0.11 - - '@types/d3-dsv@3.0.7': {} - - '@types/d3-ease@3.0.2': {} - - '@types/d3-fetch@3.0.7': - dependencies: - '@types/d3-dsv': 3.0.7 - - '@types/d3-force@3.0.10': {} - - '@types/d3-format@3.0.4': {} - - '@types/d3-geo@3.1.0': - dependencies: - '@types/geojson': 7946.0.16 - - '@types/d3-hierarchy@3.1.7': {} - - '@types/d3-interpolate@3.0.4': - dependencies: - '@types/d3-color': 3.1.3 - - '@types/d3-path@3.1.1': {} - - '@types/d3-polygon@3.0.2': {} - - '@types/d3-quadtree@3.0.6': {} - - '@types/d3-random@3.0.3': {} - - '@types/d3-scale-chromatic@3.1.0': {} - - '@types/d3-scale@4.0.9': - dependencies: - '@types/d3-time': 3.0.4 - - '@types/d3-selection@3.0.11': {} - - '@types/d3-shape@3.1.7': - dependencies: - '@types/d3-path': 3.1.1 - - '@types/d3-time-format@4.0.3': {} - - '@types/d3-time@3.0.4': {} - - '@types/d3-timer@3.0.2': {} - - '@types/d3-transition@3.0.9': - dependencies: - '@types/d3-selection': 3.0.11 - - '@types/d3-zoom@3.0.8': - dependencies: - '@types/d3-interpolate': 3.0.4 - '@types/d3-selection': 3.0.11 - - '@types/d3@7.4.3': - dependencies: - '@types/d3-array': 3.2.1 - '@types/d3-axis': 3.0.6 - '@types/d3-brush': 3.0.6 - '@types/d3-chord': 3.0.6 - '@types/d3-color': 3.1.3 - '@types/d3-contour': 3.0.6 - '@types/d3-delaunay': 6.0.4 - '@types/d3-dispatch': 3.0.6 - '@types/d3-drag': 3.0.7 - '@types/d3-dsv': 3.0.7 - '@types/d3-ease': 3.0.2 - '@types/d3-fetch': 3.0.7 - '@types/d3-force': 3.0.10 - '@types/d3-format': 3.0.4 - '@types/d3-geo': 3.1.0 - '@types/d3-hierarchy': 3.1.7 - '@types/d3-interpolate': 3.0.4 - '@types/d3-path': 3.1.1 - '@types/d3-polygon': 3.0.2 - '@types/d3-quadtree': 3.0.6 - '@types/d3-random': 3.0.3 - '@types/d3-scale': 4.0.9 - '@types/d3-scale-chromatic': 3.1.0 - '@types/d3-selection': 3.0.11 - '@types/d3-shape': 3.1.7 - '@types/d3-time': 3.0.4 - '@types/d3-time-format': 4.0.3 - '@types/d3-timer': 3.0.2 - '@types/d3-transition': 3.0.9 - '@types/d3-zoom': 3.0.8 - - '@types/debug@4.1.12': - dependencies: - '@types/ms': 2.1.0 - - '@types/draco3d@1.4.10': {} - - '@types/eslint-scope@3.7.7': - dependencies: - '@types/eslint': 9.6.1 - '@types/estree': 1.0.8 - - '@types/eslint@9.6.1': - dependencies: - '@types/estree': 1.0.8 - '@types/json-schema': 7.0.15 - - '@types/estree-jsx@1.0.5': - dependencies: - '@types/estree': 1.0.7 - - '@types/estree@1.0.6': {} - - '@types/estree@1.0.7': {} - - '@types/estree@1.0.8': {} - - '@types/event-source-polyfill@1.0.5': {} - - '@types/eventsource@1.1.15': {} - - '@types/file-saver@2.0.7': {} - - '@types/follow-redirects@1.14.4': - dependencies: - '@types/node': 22.14.0 - - '@types/geojson-vt@3.2.5': - dependencies: - '@types/geojson': 7946.0.16 - - '@types/geojson@7946.0.16': {} - - '@types/graceful-fs@4.1.9': - dependencies: - '@types/node': 22.14.0 - - '@types/hast@2.3.10': - dependencies: - '@types/unist': 2.0.11 - - '@types/hast@3.0.4': - dependencies: - '@types/unist': 3.0.3 - - '@types/istanbul-lib-coverage@2.0.6': {} - - '@types/istanbul-lib-report@3.0.3': - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - - '@types/istanbul-reports@3.0.4': - dependencies: - '@types/istanbul-lib-report': 3.0.3 - - '@types/jest@29.5.14': - dependencies: - expect: 29.7.0 - pretty-format: 29.7.0 - - '@types/jsdom@20.0.1': - dependencies: - '@types/node': 22.14.0 - '@types/tough-cookie': 4.0.5 - parse5: 7.2.1 - - '@types/json-schema@7.0.15': {} - - '@types/json5@0.0.29': {} - - '@types/katex@0.16.7': {} - - '@types/lodash-es@4.17.12': - dependencies: - '@types/lodash': 4.17.16 - - '@types/lodash@4.17.16': {} - - '@types/mapbox__point-geometry@0.1.4': {} - - '@types/mapbox__vector-tile@1.3.4': - dependencies: - '@types/geojson': 7946.0.16 - '@types/mapbox__point-geometry': 0.1.4 - '@types/pbf': 3.0.5 - - '@types/mathjax@0.0.40': {} - - '@types/mdast@4.0.4': - dependencies: - '@types/unist': 3.0.3 - - '@types/memcached@2.2.10': - dependencies: - '@types/node': 22.16.4 - - '@types/minimist@1.2.5': {} - - '@types/ms@2.1.0': {} - - '@types/mysql@2.15.26': - dependencies: - '@types/node': 22.14.0 - - '@types/mysql@2.15.27': - dependencies: - '@types/node': 22.16.4 - - '@types/node@20.17.30': - dependencies: - undici-types: 6.19.8 - - '@types/node@22.14.0': - dependencies: - undici-types: 6.21.0 - - '@types/node@22.16.4': - dependencies: - undici-types: 6.21.0 - - '@types/normalize-package-data@2.4.4': {} - - '@types/offscreencanvas@2019.7.3': {} - - '@types/oracledb@6.5.2': - dependencies: - '@types/node': 22.16.4 - - '@types/parse-json@4.0.2': {} - - '@types/pbf@3.0.5': {} - - '@types/pg-pool@2.0.6': - dependencies: - '@types/pg': 8.6.1 - - '@types/pg@8.15.5': - dependencies: - '@types/node': 22.16.4 - pg-protocol: 1.8.0 - pg-types: 2.2.0 - - '@types/pg@8.6.1': - dependencies: - '@types/node': 22.14.0 - pg-protocol: 1.8.0 - pg-types: 2.2.0 - - '@types/plotly.js-dist-min@2.3.4': - dependencies: - '@types/plotly.js': 2.35.5 - - '@types/plotly.js@2.35.5': {} - - '@types/react-dom@19.1.1(@types/react@19.1.0)': - dependencies: - '@types/react': 19.1.0 - - '@types/react-is@19.0.0': - dependencies: - '@types/react': 19.1.0 - - '@types/react-plotly.js@2.6.3': - dependencies: - '@types/plotly.js': 2.35.5 - '@types/react': 19.1.0 - - '@types/react-reconciler@0.28.9(@types/react@19.1.0)': - dependencies: - '@types/react': 19.1.0 - - '@types/react-resizable@3.0.8': - dependencies: - '@types/react': 19.1.0 - - '@types/react-syntax-highlighter@15.5.13': - dependencies: - '@types/react': 19.1.0 - - '@types/react-transition-group@4.4.12(@types/react@19.1.0)': - dependencies: - '@types/react': 19.1.0 - - '@types/react@19.1.0': - dependencies: - csstype: 3.1.3 - - '@types/shallow-equals@1.0.3': {} - - '@types/shimmer@1.2.0': {} - - '@types/speakingurl@13.0.6': {} - - '@types/stack-utils@2.0.3': {} - - '@types/stats.js@0.17.3': {} - - '@types/statuses@2.0.5': {} - - '@types/stylis@4.2.5': {} - - '@types/supercluster@7.1.3': - dependencies: - '@types/geojson': 7946.0.16 - - '@types/tar-stream@3.1.3': - dependencies: - '@types/node': 22.14.0 - - '@types/tedious@4.0.14': - dependencies: - '@types/node': 22.14.0 - - '@types/three@0.159.0': - dependencies: - '@types/stats.js': 0.17.3 - '@types/webxr': 0.5.21 - fflate: 0.6.10 - meshoptimizer: 0.18.1 - - '@types/tough-cookie@4.0.5': {} - - '@types/trusted-types@2.0.7': - optional: true - - '@types/unist@2.0.11': {} - - '@types/unist@3.0.3': {} - - '@types/use-sync-external-store@1.5.0': {} - - '@types/uuid@8.3.4': {} - - '@types/webxr@0.5.21': {} - - '@types/which@3.0.4': {} - - '@types/yargs-parser@21.0.3': {} - - '@types/yargs@17.0.33': - dependencies: - '@types/yargs-parser': 21.0.3 - - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 7.18.0 - eslint: 8.57.1 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.8.3) - optionalDependencies: - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3)': - dependencies: - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.0(supports-color@8.1.1) - eslint: 8.57.1 - optionalDependencies: - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.39.0(typescript@5.8.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.39.0(typescript@5.8.3) - '@typescript-eslint/types': 8.39.0 - debug: 4.4.1 - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@7.18.0': - dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 - - '@typescript-eslint/scope-manager@8.39.0': - dependencies: - '@typescript-eslint/types': 8.39.0 - '@typescript-eslint/visitor-keys': 8.39.0 - - '@typescript-eslint/tsconfig-utils@8.39.0(typescript@5.8.3)': - dependencies: - typescript: 5.8.3 - - '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1)(typescript@5.8.3)': - dependencies: - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) - debug: 4.4.0(supports-color@8.1.1) - eslint: 8.57.1 - ts-api-utils: 1.4.3(typescript@5.8.3) - optionalDependencies: - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@7.18.0': {} - - '@typescript-eslint/types@8.39.0': {} - - '@typescript-eslint/typescript-estree@7.18.0(typescript@5.8.3)': - dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.0(supports-color@8.1.1) - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.1 - ts-api-utils: 1.4.3(typescript@5.8.3) - optionalDependencies: - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/typescript-estree@8.39.0(typescript@5.8.3)': - dependencies: - '@typescript-eslint/project-service': 8.39.0(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.39.0(typescript@5.8.3) - '@typescript-eslint/types': 8.39.0 - '@typescript-eslint/visitor-keys': 8.39.0 - debug: 4.4.1 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.2 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@7.18.0(eslint@8.57.1)(typescript@5.8.3)': - dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@8.57.1) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) - eslint: 8.57.1 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/utils@8.39.0(eslint@8.57.1)(typescript@5.8.3)': - dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) - '@typescript-eslint/scope-manager': 8.39.0 - '@typescript-eslint/types': 8.39.0 - '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.8.3) - eslint: 8.57.1 - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/visitor-keys@7.18.0': - dependencies: - '@typescript-eslint/types': 7.18.0 - eslint-visitor-keys: 3.4.3 - - '@typescript-eslint/visitor-keys@8.39.0': - dependencies: - '@typescript-eslint/types': 8.39.0 - eslint-visitor-keys: 4.2.1 - - '@ungap/structured-clone@1.3.0': {} - - '@unrs/resolver-binding-darwin-arm64@1.4.1': - optional: true - - '@unrs/resolver-binding-darwin-x64@1.4.1': - optional: true - - '@unrs/resolver-binding-freebsd-x64@1.4.1': - optional: true - - '@unrs/resolver-binding-linux-arm-gnueabihf@1.4.1': - optional: true - - '@unrs/resolver-binding-linux-arm-musleabihf@1.4.1': - optional: true - - '@unrs/resolver-binding-linux-arm64-gnu@1.4.1': - optional: true - - '@unrs/resolver-binding-linux-arm64-musl@1.4.1': - optional: true - - '@unrs/resolver-binding-linux-ppc64-gnu@1.4.1': - optional: true - - '@unrs/resolver-binding-linux-s390x-gnu@1.4.1': - optional: true - - '@unrs/resolver-binding-linux-x64-gnu@1.4.1': - optional: true - - '@unrs/resolver-binding-linux-x64-musl@1.4.1': - optional: true - - '@unrs/resolver-binding-wasm32-wasi@1.4.1': - dependencies: - '@napi-rs/wasm-runtime': 0.2.8 - optional: true - - '@unrs/resolver-binding-win32-arm64-msvc@1.4.1': - optional: true - - '@unrs/resolver-binding-win32-ia32-msvc@1.4.1': - optional: true - - '@unrs/resolver-binding-win32-x64-msvc@1.4.1': - optional: true - - '@use-gesture/core@10.3.1': {} - - '@use-gesture/react@10.3.1(react@19.1.0)': - dependencies: - '@use-gesture/core': 10.3.1 - react: 19.1.0 - - '@vercel/stega@0.1.2': {} - - '@vitejs/plugin-react@4.5.2(vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1))': - dependencies: - '@babel/core': 7.27.4 - '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.27.4) - '@rolldown/pluginutils': 1.0.0-beta.11 - '@types/babel__core': 7.20.5 - react-refresh: 0.17.0 - vite: 6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1) - transitivePeerDependencies: - - supports-color - - '@vitejs/plugin-react@4.6.0(vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1))': - dependencies: - '@babel/core': 7.27.4 - '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.27.4) - '@rolldown/pluginutils': 1.0.0-beta.19 - '@types/babel__core': 7.20.5 - react-refresh: 0.17.0 - vite: 6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1) - transitivePeerDependencies: - - supports-color - - '@vitest/expect@3.1.1': - dependencies: - '@vitest/spy': 3.1.1 - '@vitest/utils': 3.1.1 - chai: 5.2.0 - tinyrainbow: 2.0.0 - - '@vitest/mocker@3.1.1(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(vite@6.2.6(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1))': - dependencies: - '@vitest/spy': 3.1.1 - estree-walker: 3.0.3 - magic-string: 0.30.17 - optionalDependencies: - msw: 2.7.3(@types/node@22.14.0)(typescript@5.8.3) - vite: 6.2.6(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1) - - '@vitest/pretty-format@3.1.1': - dependencies: - tinyrainbow: 2.0.0 - - '@vitest/runner@3.1.1': - dependencies: - '@vitest/utils': 3.1.1 - pathe: 2.0.3 - - '@vitest/snapshot@3.1.1': - dependencies: - '@vitest/pretty-format': 3.1.1 - magic-string: 0.30.17 - pathe: 2.0.3 - - '@vitest/spy@3.1.1': - dependencies: - tinyspy: 3.0.2 - - '@vitest/utils@3.1.1': - dependencies: - '@vitest/pretty-format': 3.1.1 - loupe: 3.1.3 - tinyrainbow: 2.0.0 - - '@webassemblyjs/ast@1.14.1': - dependencies: - '@webassemblyjs/helper-numbers': 1.13.2 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - - '@webassemblyjs/floating-point-hex-parser@1.13.2': {} - - '@webassemblyjs/helper-api-error@1.13.2': {} - - '@webassemblyjs/helper-buffer@1.14.1': {} - - '@webassemblyjs/helper-numbers@1.13.2': - dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.13.2 - '@webassemblyjs/helper-api-error': 1.13.2 - '@xtuc/long': 4.2.2 - - '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} - - '@webassemblyjs/helper-wasm-section@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/wasm-gen': 1.14.1 - - '@webassemblyjs/ieee754@1.13.2': - dependencies: - '@xtuc/ieee754': 1.2.0 - - '@webassemblyjs/leb128@1.13.2': - dependencies: - '@xtuc/long': 4.2.2 - - '@webassemblyjs/utf8@1.13.2': {} - - '@webassemblyjs/wasm-edit@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/helper-wasm-section': 1.14.1 - '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/wasm-opt': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - '@webassemblyjs/wast-printer': 1.14.1 - - '@webassemblyjs/wasm-gen@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/ieee754': 1.13.2 - '@webassemblyjs/leb128': 1.13.2 - '@webassemblyjs/utf8': 1.13.2 - - '@webassemblyjs/wasm-opt@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - - '@webassemblyjs/wasm-parser@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-api-error': 1.13.2 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/ieee754': 1.13.2 - '@webassemblyjs/leb128': 1.13.2 - '@webassemblyjs/utf8': 1.13.2 - - '@webassemblyjs/wast-printer@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@xtuc/long': 4.2.2 - - '@xstate/react@6.0.0(@types/react@19.1.0)(react@19.1.0)(xstate@5.20.0)': - dependencies: - react: 19.1.0 - use-isomorphic-layout-effect: 1.2.0(@types/react@19.1.0)(react@19.1.0) - use-sync-external-store: 1.5.0(react@19.1.0) - optionalDependencies: - xstate: 5.20.0 - transitivePeerDependencies: - - '@types/react' - - '@xtuc/ieee754@1.2.0': {} - - '@xtuc/long@4.2.2': {} - - abab@2.0.6: {} - - abort-controller@3.0.0: - dependencies: - event-target-shim: 5.0.1 - - abs-svg-path@0.1.1: {} - - acorn-globals@7.0.1: - dependencies: - acorn: 8.14.1 - acorn-walk: 8.3.4 - - acorn-import-attributes@1.9.5(acorn@8.14.1): - dependencies: - acorn: 8.14.1 - - acorn-jsx@5.3.2(acorn@8.14.1): - dependencies: - acorn: 8.14.1 - - acorn-walk@8.3.4: - dependencies: - acorn: 8.15.0 - - acorn@7.4.1: {} - - acorn@8.14.1: {} - - acorn@8.15.0: {} - - adm-zip@0.5.16: {} - - agent-base@6.0.2: - dependencies: - debug: 4.4.0(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - agent-base@7.1.3: {} - - ajv-formats@2.1.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-keywords@5.1.0(ajv@8.17.1): - dependencies: - ajv: 8.17.1 - fast-deep-equal: 3.1.3 - - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - 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 - - anser@2.3.2: {} - - ansi-escapes@4.3.2: - dependencies: - type-fest: 0.21.3 - - ansi-regex@5.0.1: {} - - ansi-regex@6.1.0: {} - - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - ansi-styles@5.2.0: {} - - ansi-styles@6.2.1: {} - - ansicolors@0.3.2: {} - - ansis@3.17.0: {} - - antd@5.24.6(date-fns@4.1.0)(moment@2.30.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@ant-design/colors': 7.2.0 - '@ant-design/cssinjs': 1.23.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@ant-design/cssinjs-utils': 1.1.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@ant-design/fast-color': 2.0.6 - '@ant-design/icons': 5.6.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@ant-design/react-slick': 1.1.2(react@19.1.0) - '@babel/runtime': 7.27.0 - '@rc-component/color-picker': 2.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@rc-component/mutate-observer': 1.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@rc-component/qrcode': 1.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@rc-component/tour': 1.15.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@rc-component/trigger': 2.2.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - classnames: 2.5.1 - copy-to-clipboard: 3.3.3 - dayjs: 1.11.13 - rc-cascader: 3.33.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-checkbox: 3.5.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-collapse: 3.9.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-dialog: 9.6.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-drawer: 7.2.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-dropdown: 4.2.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-field-form: 2.7.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-image: 7.11.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-input: 1.7.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-input-number: 9.4.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-mentions: 2.19.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-menu: 9.16.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-notification: 5.6.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-pagination: 5.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-picker: 4.11.3(date-fns@4.1.0)(dayjs@1.11.13)(moment@2.30.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-progress: 4.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-rate: 2.13.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-resize-observer: 1.4.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-segmented: 2.7.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-select: 14.16.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-slider: 11.1.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-steps: 6.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-switch: 4.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-table: 7.50.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-tabs: 15.5.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-textarea: 1.9.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-tooltip: 6.4.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-tree: 5.13.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-tree-select: 5.27.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-upload: 4.8.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - scroll-into-view-if-needed: 3.1.0 - throttle-debounce: 5.0.2 - transitivePeerDependencies: - - date-fns - - luxon - - moment - - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - archiver-utils@5.0.2: - dependencies: - glob: 10.4.5 - graceful-fs: 4.2.11 - is-stream: 2.0.1 - lazystream: 1.0.1 - lodash: 4.17.21 - normalize-path: 3.0.0 - readable-stream: 4.7.0 - - archiver@7.0.1: - dependencies: - archiver-utils: 5.0.2 - async: 3.2.6 - buffer-crc32: 1.0.0 - readable-stream: 4.7.0 - readdir-glob: 1.1.3 - tar-stream: 3.1.7 - zip-stream: 6.0.1 - - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - - argparse@2.0.1: {} - - aria-hidden@1.2.4: - dependencies: - tslib: 2.8.1 - - aria-query@5.3.0: - dependencies: - dequal: 2.0.3 - - aria-query@5.3.2: {} - - arktype@2.1.20: - dependencies: - '@ark/schema': 0.46.0 - '@ark/util': 0.46.0 - - array-back@6.2.2: {} - - array-bounds@1.0.1: {} - - array-buffer-byte-length@1.0.2: - dependencies: - call-bound: 1.0.4 - is-array-buffer: 3.0.5 - - array-find-index@1.0.2: {} - - array-includes@3.1.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - is-string: 1.1.1 - - array-normalize@1.1.4: - dependencies: - array-bounds: 1.0.1 - - array-range@1.0.1: {} - - array-rearrange@2.2.2: {} - - array-treeify@0.1.5: {} - - array-union@2.1.0: {} - - array.prototype.findlast@1.2.5: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-shim-unscopables: 1.1.0 - - array.prototype.findlastindex@1.2.6: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-shim-unscopables: 1.1.0 - - array.prototype.flat@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.1.0 - - array.prototype.flatmap@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.1.0 - - array.prototype.tosorted@1.1.4: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-shim-unscopables: 1.1.0 - - arraybuffer.prototype.slice@1.0.4: - dependencies: - array-buffer-byte-length: 1.0.2 - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - is-array-buffer: 3.0.5 - - arrify@1.0.1: {} - - arrify@2.0.1: {} - - assertion-error@2.0.1: {} - - ast-types-flow@0.0.8: {} - - async-function@1.0.0: {} - - async-mutex@0.4.1: - dependencies: - tslib: 2.8.1 - - async@3.2.6: {} - - asynckit@0.4.0: {} - - autoprefixer@10.4.21(postcss@8.5.3): - dependencies: - browserslist: 4.24.4 - caniuse-lite: 1.0.30001713 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.1.1 - postcss: 8.5.3 - postcss-value-parser: 4.2.0 - - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.1.0 - - axe-core@4.10.3: {} - - axobject-query@4.1.0: {} - - b4a@1.6.7: {} - - babel-jest@29.7.0(@babel/core@7.26.10): - dependencies: - '@babel/core': 7.26.10 - '@jest/transform': 29.7.0 - '@types/babel__core': 7.20.5 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.26.10) - chalk: 4.1.2 - graceful-fs: 4.2.11 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-istanbul@6.1.1: - dependencies: - '@babel/helper-plugin-utils': 7.26.5 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.1 - test-exclude: 6.0.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-jest-hoist@29.6.3: - dependencies: - '@babel/template': 7.27.0 - '@babel/types': 7.27.0 - '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.7 - - babel-plugin-macros@3.1.0: - dependencies: - '@babel/runtime': 7.27.0 - cosmiconfig: 7.1.0 - resolve: 1.22.10 - - babel-plugin-polyfill-corejs2@0.4.13(@babel/core@7.27.4): - dependencies: - '@babel/compat-data': 7.27.5 - '@babel/core': 7.27.4 - '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.4) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.27.4): - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.4) - core-js-compat: 3.41.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-regenerator@0.6.4(@babel/core@7.27.4): - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.4) - transitivePeerDependencies: - - supports-color - - babel-preset-current-node-syntax@1.1.0(@babel/core@7.26.10): - dependencies: - '@babel/core': 7.26.10 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.10) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.10) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.10) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.10) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.10) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.10) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.10) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.10) - - babel-preset-jest@29.6.3(@babel/core@7.26.10): - dependencies: - '@babel/core': 7.26.10 - babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.10) - - bail@2.0.2: {} - - balanced-match@1.0.2: {} - - bare-events@2.5.4: - optional: true - - base16@1.0.0: {} - - base64-arraybuffer@1.0.2: {} - - base64-js@1.5.1: {} - - before-after-hook@2.2.3: {} - - bidi-js@1.0.3: - dependencies: - require-from-string: 2.0.2 - - big.js@5.2.2: {} - - bignumber.js@9.3.1: {} - - binary-extensions@2.3.0: {} - - binary-search-bounds@2.0.5: {} - - bit-twiddle@1.0.2: {} - - bitmap-sdf@1.0.4: {} - - bl@1.2.3: - dependencies: - readable-stream: 2.3.8 - safe-buffer: 5.2.1 - - bl@2.2.1: - dependencies: - readable-stream: 2.3.8 - safe-buffer: 5.2.1 - - bl@4.1.0: - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - - boolbase@1.0.0: {} - - brace-expansion@1.1.11: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - brace-expansion@2.0.1: - dependencies: - balanced-match: 1.0.2 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - browserify-zlib@0.1.4: - dependencies: - pako: 0.2.9 - - browserslist@4.24.4: - dependencies: - caniuse-lite: 1.0.30001713 - electron-to-chromium: 1.5.136 - node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.24.4) - - bser@2.1.1: - dependencies: - node-int64: 0.4.0 - - buffer-alloc-unsafe@1.1.0: {} - - buffer-alloc@1.2.0: - dependencies: - buffer-alloc-unsafe: 1.1.0 - buffer-fill: 1.0.0 - - buffer-crc32@0.2.13: {} - - buffer-crc32@1.0.0: {} - - buffer-fill@1.0.0: {} - - buffer-from@1.1.2: {} - - buffer@5.7.1: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - buffer@6.0.3: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - builtins@1.0.3: {} - - cac@6.7.14: {} - - call-bind-apply-helpers@1.0.2: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - - call-bind@1.0.8: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - get-intrinsic: 1.3.0 - set-function-length: 1.2.2 - - call-bound@1.0.4: - dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.0 - - callsites@3.1.0: {} - - camelcase-keys@6.2.2: - dependencies: - camelcase: 5.3.1 - map-obj: 4.3.0 - quick-lru: 4.0.1 - - camelcase@5.3.1: {} - - camelcase@6.3.0: {} - - camelize@1.0.1: {} - - camera-controls@2.10.1(three@0.159.0): - dependencies: - three: 0.159.0 - - caniuse-lite@1.0.30001713: {} - - canvas-confetti@1.9.3: {} - - canvas-fit@1.5.0: - dependencies: - element-size: 1.1.1 - - canvas@3.1.0: - dependencies: - node-addon-api: 7.1.1 - prebuild-install: 7.1.3 - optional: true - - cardinal@2.1.1: - dependencies: - ansicolors: 0.3.2 - redeyed: 2.1.1 - - ccount@2.0.1: {} - - chai@5.2.0: - dependencies: - assertion-error: 2.0.1 - check-error: 2.1.1 - deep-eql: 5.0.2 - loupe: 3.1.3 - pathval: 2.0.0 - - chalk-template@0.4.0: - dependencies: - chalk: 4.1.2 - - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - - chalk@3.0.0: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - chalk@5.4.1: {} - - char-regex@1.0.2: {} - - character-entities-html4@2.1.0: {} - - character-entities-legacy@1.1.4: {} - - character-entities-legacy@3.0.0: {} - - character-entities@1.2.4: {} - - character-entities@2.0.2: {} - - character-reference-invalid@1.1.4: {} - - character-reference-invalid@2.0.1: {} - - chardet@0.7.0: {} - - check-error@2.1.1: {} - - chokidar@3.6.0: - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - - chokidar@4.0.3: - dependencies: - readdirp: 4.1.2 - - chownr@1.1.4: {} - - chownr@3.0.0: {} - - chroma-js@2.6.0: {} - - chroma-js@3.1.2: {} - - chrome-trace-event@1.0.4: {} - - ci-info@3.9.0: {} - - cjs-module-lexer@1.4.3: {} - - clamp@1.0.1: {} - - classnames@2.5.1: {} - - clean-stack@3.0.1: - dependencies: - escape-string-regexp: 4.0.0 - - cli-cursor@3.1.0: - dependencies: - restore-cursor: 3.1.0 - - cli-cursor@5.0.0: - dependencies: - restore-cursor: 5.1.0 - - cli-spinners@2.9.2: {} - - cli-width@4.1.0: {} - - 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-deep@4.0.1: - dependencies: - is-plain-object: 2.0.4 - kind-of: 6.0.3 - shallow-clone: 3.0.1 - - clone@1.0.4: {} - - clsx@1.2.1: {} - - clsx@2.1.1: {} - - co@4.6.0: {} - - codecutils@0.1.3: - dependencies: - traverse: 0.6.11 - - collect-v8-coverage@1.0.2: {} - - color-alpha@1.0.4: - dependencies: - color-parse: 1.4.3 - - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-id@1.1.0: - dependencies: - clamp: 1.0.1 - - color-name@1.1.3: {} - - color-name@1.1.4: {} - - color-normalize@1.5.0: - dependencies: - clamp: 1.0.1 - color-rgba: 2.4.0 - dtype: 2.0.0 - - color-parse@1.4.3: - dependencies: - color-name: 1.1.4 - - color-parse@2.0.0: - dependencies: - color-name: 1.1.4 - - color-rgba@2.4.0: - dependencies: - color-parse: 1.4.3 - color-space: 2.3.2 - - color-rgba@3.0.0: - dependencies: - color-parse: 2.0.0 - color-space: 2.3.2 - - color-space@2.3.2: {} - - color-string@1.9.1: - dependencies: - color-name: 1.1.4 - simple-swizzle: 0.2.2 - - color2k@2.0.3: {} - - color@3.2.1: - dependencies: - color-convert: 1.9.3 - color-string: 1.9.1 - - color@4.2.3: - dependencies: - color-convert: 2.0.1 - color-string: 1.9.1 - - combined-stream@1.0.8: - dependencies: - delayed-stream: 1.0.0 - - comlink@4.4.2: {} - - comma-separated-tokens@1.0.8: {} - - comma-separated-tokens@2.0.3: {} - - command-line-args@6.0.1: - dependencies: - array-back: 6.2.2 - find-replace: 5.0.2 - lodash.camelcase: 4.3.0 - typical: 7.3.0 - - command-line-usage@7.0.3: - dependencies: - array-back: 6.2.2 - chalk-template: 0.4.0 - table-layout: 4.1.1 - typical: 7.3.0 - - commander@2.20.3: {} - - commander@7.2.0: {} - - commander@8.3.0: {} - - commander@9.2.0: {} - - commondir@1.0.1: {} - - compress-commons@6.0.2: - dependencies: - crc-32: 1.2.2 - crc32-stream: 6.0.0 - is-stream: 2.0.1 - normalize-path: 3.0.0 - readable-stream: 4.7.0 - - compute-gcd@1.2.1: - dependencies: - validate.io-array: 1.0.6 - validate.io-function: 1.0.2 - validate.io-integer-array: 1.0.0 - - compute-lcm@1.1.2: - dependencies: - compute-gcd: 1.2.1 - validate.io-array: 1.0.6 - validate.io-function: 1.0.2 - validate.io-integer-array: 1.0.0 - - compute-scroll-into-view@3.1.1: {} - - concat-map@0.0.1: {} - - concat-stream@1.6.2: - dependencies: - buffer-from: 1.1.2 - inherits: 2.0.4 - readable-stream: 2.3.8 - typedarray: 0.0.6 - - concat-stream@2.0.0: - dependencies: - buffer-from: 1.1.2 - inherits: 2.0.4 - readable-stream: 3.6.2 - typedarray: 0.0.6 - - configstore@5.0.1: - dependencies: - dot-prop: 5.3.0 - graceful-fs: 4.2.11 - make-dir: 3.1.0 - unique-string: 2.0.0 - write-file-atomic: 3.0.3 - xdg-basedir: 4.0.0 - - confusing-browser-globals@1.0.11: {} - - console-table-printer@2.12.1: - dependencies: - simple-wcswidth: 1.0.1 - - convert-source-map@1.9.0: {} - - convert-source-map@2.0.0: {} - - cookie@0.7.2: {} - - copy-anything@3.0.5: - dependencies: - is-what: 4.1.16 - - copy-to-clipboard@3.3.3: - dependencies: - toggle-selection: 1.0.6 - - core-js-compat@3.41.0: - dependencies: - browserslist: 4.24.4 - - core-util-is@1.0.3: {} - - cosmiconfig@7.1.0: - dependencies: - '@types/parse-json': 4.0.2 - import-fresh: 3.3.1 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - - country-regex@1.1.0: {} - - crc-32@1.2.2: {} - - crc32-stream@6.0.0: - dependencies: - crc-32: 1.2.2 - readable-stream: 4.7.0 - - create-jest@29.7.0(@types/node@22.14.0)(babel-plugin-macros@3.1.0): - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.14.0)(babel-plugin-macros@3.1.0) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - - cross-env@7.0.3: - dependencies: - cross-spawn: 7.0.6 - - cross-spawn@7.0.6: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - crypto-random-string@2.0.0: {} - - css-color-keywords@1.0.0: {} - - css-font-size-keywords@1.0.0: {} - - css-font-stretch-keywords@1.0.1: {} - - css-font-style-keywords@1.0.1: {} - - css-font-weight-keywords@1.0.0: {} - - css-font@1.2.0: - dependencies: - css-font-size-keywords: 1.0.0 - css-font-stretch-keywords: 1.0.1 - css-font-style-keywords: 1.0.1 - css-font-weight-keywords: 1.0.0 - css-global-keywords: 1.0.1 - css-system-font-keywords: 1.0.0 - pick-by-alias: 1.2.0 - string-split-by: 1.0.0 - unquote: 1.1.1 - - css-global-keywords@1.0.1: {} - - css-select@5.1.0: - dependencies: - boolbase: 1.0.0 - css-what: 6.1.0 - domhandler: 5.0.3 - domutils: 3.2.2 - nth-check: 2.1.1 - - css-system-font-keywords@1.0.0: {} - - css-to-react-native@3.2.0: - dependencies: - camelize: 1.0.1 - css-color-keywords: 1.0.0 - postcss-value-parser: 4.2.0 - - css-tree@2.3.1: - dependencies: - mdn-data: 2.0.30 - source-map-js: 1.2.1 - - css-what@6.1.0: {} - - css.escape@1.5.1: {} - - csscolorparser@1.0.3: {} - - cssom@0.3.8: {} - - cssom@0.5.0: {} - - cssstyle@2.3.0: - dependencies: - cssom: 0.3.8 - - cssstyle@4.3.0: - dependencies: - '@asamuzakjp/css-color': 3.1.1 - rrweb-cssom: 0.8.0 - - csstype@3.1.3: {} - - cyclist@1.0.2: {} - - d3-array@1.2.4: {} - - d3-array@2.12.1: - dependencies: - internmap: 1.0.1 - - d3-array@3.2.4: - dependencies: - internmap: 2.0.3 - - d3-axis@3.0.0: {} - - d3-brush@3.0.0: - dependencies: - d3-dispatch: 3.0.1 - d3-drag: 3.0.0 - d3-interpolate: 3.0.1 - d3-selection: 3.0.0 - d3-transition: 3.0.1(d3-selection@3.0.0) - - d3-chord@3.0.1: - dependencies: - d3-path: 3.1.0 - - d3-collection@1.0.7: {} - - d3-color@3.1.0: {} - - d3-contour@4.0.2: - dependencies: - d3-array: 3.2.4 - - d3-delaunay@6.0.4: - dependencies: - delaunator: 5.0.1 - - d3-dispatch@1.0.6: {} - - d3-dispatch@3.0.1: {} - - d3-drag@3.0.0: - dependencies: - d3-dispatch: 3.0.1 - d3-selection: 3.0.0 - - d3-dsv@3.0.1: - dependencies: - commander: 7.2.0 - iconv-lite: 0.6.3 - rw: 1.3.3 - - d3-ease@3.0.1: {} - - d3-fetch@3.0.1: - dependencies: - d3-dsv: 3.0.1 - - d3-force@1.2.1: - dependencies: - d3-collection: 1.0.7 - d3-dispatch: 1.0.6 - d3-quadtree: 1.0.7 - d3-timer: 1.0.10 - - d3-force@3.0.0: - dependencies: - d3-dispatch: 3.0.1 - d3-quadtree: 3.0.1 - d3-timer: 3.0.1 - - d3-format@1.4.5: {} - - d3-format@3.1.0: {} - - d3-geo-projection@2.9.0: - dependencies: - commander: 2.20.3 - d3-array: 1.2.4 - d3-geo: 1.12.1 - resolve: 1.22.10 - - d3-geo@1.12.1: - dependencies: - d3-array: 1.2.4 - - d3-geo@3.1.1: - dependencies: - d3-array: 3.2.4 - - d3-hierarchy@1.1.9: {} - - d3-hierarchy@3.1.2: {} - - d3-interpolate@3.0.1: - dependencies: - d3-color: 3.1.0 - - d3-path@1.0.9: {} - - d3-path@3.1.0: {} - - d3-polygon@3.0.1: {} - - d3-quadtree@1.0.7: {} - - d3-quadtree@3.0.1: {} - - d3-random@3.0.1: {} - - d3-sankey@0.12.3: - dependencies: - d3-array: 2.12.1 - d3-shape: 1.3.7 - - d3-scale-chromatic@3.1.0: - dependencies: - d3-color: 3.1.0 - d3-interpolate: 3.0.1 - - d3-scale@4.0.2: - dependencies: - d3-array: 3.2.4 - d3-format: 3.1.0 - d3-interpolate: 3.0.1 - d3-time: 3.1.0 - d3-time-format: 4.1.0 - - d3-selection@3.0.0: {} - - d3-shape@1.3.7: - dependencies: - d3-path: 1.0.9 - - d3-shape@3.2.0: - dependencies: - d3-path: 3.1.0 - - d3-time-format@2.3.0: - dependencies: - d3-time: 1.1.0 - - d3-time-format@4.1.0: - dependencies: - d3-time: 3.1.0 - - d3-time@1.1.0: {} - - d3-time@3.1.0: - dependencies: - d3-array: 3.2.4 - - d3-timer@1.0.10: {} - - d3-timer@3.0.1: {} - - d3-transition@3.0.1(d3-selection@3.0.0): - dependencies: - d3-color: 3.1.0 - d3-dispatch: 3.0.1 - d3-ease: 3.0.1 - d3-interpolate: 3.0.1 - d3-selection: 3.0.0 - d3-timer: 3.0.1 - - d3-zoom@3.0.0: - dependencies: - d3-dispatch: 3.0.1 - d3-drag: 3.0.0 - d3-interpolate: 3.0.1 - d3-selection: 3.0.0 - d3-transition: 3.0.1(d3-selection@3.0.0) - - d3@7.9.0: - dependencies: - d3-array: 3.2.4 - d3-axis: 3.0.0 - d3-brush: 3.0.0 - d3-chord: 3.0.1 - d3-color: 3.1.0 - d3-contour: 4.0.2 - d3-delaunay: 6.0.4 - d3-dispatch: 3.0.1 - d3-drag: 3.0.0 - d3-dsv: 3.0.1 - d3-ease: 3.0.1 - d3-fetch: 3.0.1 - d3-force: 3.0.0 - d3-format: 3.1.0 - d3-geo: 3.1.1 - d3-hierarchy: 3.1.2 - d3-interpolate: 3.0.1 - d3-path: 3.1.0 - d3-polygon: 3.0.1 - d3-quadtree: 3.0.1 - d3-random: 3.0.1 - d3-scale: 4.0.2 - d3-scale-chromatic: 3.1.0 - d3-selection: 3.0.0 - d3-shape: 3.2.0 - d3-time: 3.1.0 - d3-time-format: 4.1.0 - d3-timer: 3.0.1 - d3-transition: 3.0.1(d3-selection@3.0.0) - d3-zoom: 3.0.0 - - d@1.0.2: - dependencies: - es5-ext: 0.10.64 - type: 2.7.3 - - damerau-levenshtein@1.0.8: {} - - data-uri-to-buffer@1.2.0: {} - - data-urls@3.0.2: - dependencies: - abab: 2.0.6 - whatwg-mimetype: 3.0.0 - whatwg-url: 11.0.0 - - data-urls@5.0.0: - dependencies: - whatwg-mimetype: 4.0.0 - whatwg-url: 14.2.0 - - data-view-buffer@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-length@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-offset@1.0.1: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - dataloader@2.2.3: {} - - date-fns@2.30.0: - dependencies: - '@babel/runtime': 7.27.0 - - date-fns@4.1.0: {} - - dayjs@1.11.13: {} - - debounce@1.2.1: {} - - debug@2.6.9: - dependencies: - ms: 2.0.0 - - debug@3.2.7: - dependencies: - ms: 2.1.3 - - debug@4.4.0(supports-color@8.1.1): - dependencies: - ms: 2.1.3 - optionalDependencies: - supports-color: 8.1.1 - - debug@4.4.1: - dependencies: - ms: 2.1.3 - - decamelize-keys@1.1.1: - dependencies: - decamelize: 1.2.0 - map-obj: 1.0.1 - - decamelize@1.2.0: {} - - decimal.js@10.5.0: {} - - decode-named-character-reference@1.1.0: - dependencies: - character-entities: 2.0.2 - - decompress-response@6.0.0: - dependencies: - mimic-response: 3.1.0 - optional: true - - decompress-response@7.0.0: - dependencies: - mimic-response: 3.1.0 - - decompress-tar@4.1.1: - dependencies: - file-type: 5.2.0 - is-stream: 1.1.0 - tar-stream: 1.6.2 - - decompress-tarbz2@4.1.1: - dependencies: - decompress-tar: 4.1.1 - file-type: 6.2.0 - is-stream: 1.1.0 - seek-bzip: 1.0.6 - unbzip2-stream: 1.4.3 - - decompress-targz@4.1.1: - dependencies: - decompress-tar: 4.1.1 - file-type: 5.2.0 - is-stream: 1.1.0 - - decompress-unzip@4.0.1: - dependencies: - file-type: 3.9.0 - get-stream: 2.3.1 - pify: 2.3.0 - yauzl: 2.10.0 - - decompress@4.2.1: - dependencies: - decompress-tar: 4.1.1 - decompress-tarbz2: 4.1.1 - decompress-targz: 4.1.1 - decompress-unzip: 4.0.1 - graceful-fs: 4.2.11 - make-dir: 1.3.0 - pify: 2.3.0 - strip-dirs: 2.1.0 - - dedent@1.5.3(babel-plugin-macros@3.1.0): - optionalDependencies: - babel-plugin-macros: 3.1.0 - - deep-eql@5.0.2: {} - - deep-extend@0.6.0: - optional: true - - deep-is@0.1.4: {} - - deepdash-es@5.3.9: - dependencies: - lodash-es: 4.17.21 - - deepmerge@4.3.1: {} - - defaults@1.0.4: - dependencies: - clone: 1.0.4 - - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - - define-lazy-prop@2.0.0: {} - - define-properties@1.2.1: - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - object-keys: 1.1.1 - - defined@1.0.1: {} - - delaunator@5.0.1: - dependencies: - robust-predicates: 3.0.2 - - delayed-stream@1.0.0: {} - - deprecation@2.3.1: {} - - dequal@2.0.3: {} - - detect-gpu@5.0.70: - dependencies: - webgl-constants: 1.1.1 - - detect-kerning@2.1.2: {} - - detect-libc@1.0.3: - optional: true - - detect-libc@2.0.3: {} - - detect-libc@2.0.4: - optional: true - - detect-newline@3.1.0: {} - - detect-node-es@1.1.0: {} - - devlop@1.1.0: - dependencies: - dequal: 2.0.3 - - dexie@4.0.11: {} - - diff-match-patch@1.0.5: {} - - diff-sequences@29.6.3: {} - - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - - direction@1.0.4: {} - - distinct-colors@3.0.0: - dependencies: - '@types/chroma-js': 2.4.5 - chroma-js: 2.6.0 - mout: 1.2.4 - - doctrine@2.1.0: - dependencies: - esutils: 2.0.3 - - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - - dom-accessibility-api@0.5.16: {} - - dom-accessibility-api@0.6.3: {} - - dom-helpers@5.2.1: - dependencies: - '@babel/runtime': 7.27.0 - csstype: 3.1.3 - - dom-serializer@2.0.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - entities: 4.5.0 - - dom-walk@0.1.2: {} - - domelementtype@2.3.0: {} - - domexception@4.0.0: - dependencies: - webidl-conversions: 7.0.0 - - domhandler@5.0.3: - dependencies: - domelementtype: 2.3.0 - - dompurify@3.2.5: - optionalDependencies: - '@types/trusted-types': 2.0.7 - - domutils@3.2.2: - dependencies: - dom-serializer: 2.0.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - - dot-prop@5.3.0: - dependencies: - is-obj: 2.0.0 - - dotenv-cli@8.0.0: - dependencies: - cross-spawn: 7.0.6 - dotenv: 16.5.0 - dotenv-expand: 10.0.0 - minimist: 1.2.8 - - dotenv-expand@10.0.0: {} - - dotenv@16.5.0: {} - - draco3d@1.5.7: {} - - draw-svg-path@1.0.0: - dependencies: - abs-svg-path: 0.1.1 - normalize-svg-path: 0.1.0 - - dtype@2.0.0: {} - - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 - - dup@1.0.0: {} - - duplexer@0.1.2: {} - - duplexify@3.7.1: - dependencies: - end-of-stream: 1.4.4 - inherits: 2.0.4 - readable-stream: 2.3.8 - stream-shift: 1.0.3 - - duplexify@4.1.3: - dependencies: - end-of-stream: 1.4.4 - inherits: 2.0.4 - readable-stream: 3.6.2 - stream-shift: 1.0.3 - - earcut@2.2.4: {} - - earcut@3.0.1: {} - - eastasianwidth@0.2.0: {} - - ejs@3.1.10: - dependencies: - jake: 10.9.2 - - elastic-builder@2.31.0: - dependencies: - lodash.has: 4.5.2 - lodash.hasin: 4.5.2 - lodash.head: 4.0.1 - lodash.isempty: 4.4.0 - lodash.isnil: 4.0.0 - lodash.isobject: 3.0.2 - lodash.isstring: 4.0.1 - lodash.omit: 4.5.0 - - electron-to-chromium@1.5.136: {} - - element-size@1.1.1: {} - - elementary-circuits-directed-graph@1.3.1: - dependencies: - strongly-connected-components: 1.0.1 - - emittery@0.13.1: {} - - emoji-regex@10.4.0: {} - - emoji-regex@8.0.0: {} - - emoji-regex@9.2.2: {} - - emojis-list@3.0.0: {} - - end-of-stream@1.4.4: - dependencies: - once: 1.4.0 - - enhanced-resolve@5.18.1: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.1 - - enhanced-resolve@5.18.2: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.2 - - entities@4.5.0: {} - - error-ex@1.3.2: - dependencies: - is-arrayish: 0.2.1 - - es-abstract@1.23.9: - dependencies: - array-buffer-byte-length: 1.0.2 - arraybuffer.prototype.slice: 1.0.4 - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - data-view-buffer: 1.0.2 - data-view-byte-length: 1.0.2 - data-view-byte-offset: 1.0.1 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-set-tostringtag: 2.1.0 - es-to-primitive: 1.3.0 - function.prototype.name: 1.1.8 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - get-symbol-description: 1.1.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - internal-slot: 1.1.0 - is-array-buffer: 3.0.5 - is-callable: 1.2.7 - is-data-view: 1.0.2 - is-regex: 1.2.1 - is-shared-array-buffer: 1.0.4 - is-string: 1.1.1 - is-typed-array: 1.1.15 - is-weakref: 1.1.1 - math-intrinsics: 1.1.0 - object-inspect: 1.13.4 - object-keys: 1.1.1 - object.assign: 4.1.7 - own-keys: 1.0.1 - regexp.prototype.flags: 1.5.4 - safe-array-concat: 1.1.3 - safe-push-apply: 1.0.0 - safe-regex-test: 1.1.0 - set-proto: 1.0.0 - string.prototype.trim: 1.2.10 - string.prototype.trimend: 1.0.9 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.3 - typed-array-byte-length: 1.0.3 - typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 - unbox-primitive: 1.1.0 - which-typed-array: 1.1.19 - - es-define-property@1.0.1: {} - - es-errors@1.3.0: {} - - es-iterator-helpers@1.2.1: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-set-tostringtag: 2.1.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - internal-slot: 1.1.0 - iterator.prototype: 1.1.5 - safe-array-concat: 1.1.3 - - es-module-lexer@1.6.0: {} - - es-module-lexer@1.7.0: {} - - 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.3.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - es-shim-unscopables@1.1.0: - dependencies: - hasown: 2.0.2 - - es-to-primitive@1.3.0: - dependencies: - is-callable: 1.2.7 - is-date-object: 1.1.0 - is-symbol: 1.1.1 - - es5-ext@0.10.64: - dependencies: - es6-iterator: 2.0.3 - es6-symbol: 3.1.4 - esniff: 2.0.1 - next-tick: 1.1.0 - - es6-iterator@2.0.3: - dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - es6-symbol: 3.1.4 - - es6-symbol@3.1.4: - dependencies: - d: 1.0.2 - ext: 1.7.0 - - es6-weak-map@2.0.3: - dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - es6-iterator: 2.0.3 - es6-symbol: 3.1.4 - - esbuild-register@3.6.0(esbuild@0.25.5): - dependencies: - debug: 4.4.0(supports-color@8.1.1) - esbuild: 0.25.5 - transitivePeerDependencies: - - supports-color - - esbuild@0.25.2: - optionalDependencies: - '@esbuild/aix-ppc64': 0.25.2 - '@esbuild/android-arm': 0.25.2 - '@esbuild/android-arm64': 0.25.2 - '@esbuild/android-x64': 0.25.2 - '@esbuild/darwin-arm64': 0.25.2 - '@esbuild/darwin-x64': 0.25.2 - '@esbuild/freebsd-arm64': 0.25.2 - '@esbuild/freebsd-x64': 0.25.2 - '@esbuild/linux-arm': 0.25.2 - '@esbuild/linux-arm64': 0.25.2 - '@esbuild/linux-ia32': 0.25.2 - '@esbuild/linux-loong64': 0.25.2 - '@esbuild/linux-mips64el': 0.25.2 - '@esbuild/linux-ppc64': 0.25.2 - '@esbuild/linux-riscv64': 0.25.2 - '@esbuild/linux-s390x': 0.25.2 - '@esbuild/linux-x64': 0.25.2 - '@esbuild/netbsd-arm64': 0.25.2 - '@esbuild/netbsd-x64': 0.25.2 - '@esbuild/openbsd-arm64': 0.25.2 - '@esbuild/openbsd-x64': 0.25.2 - '@esbuild/sunos-x64': 0.25.2 - '@esbuild/win32-arm64': 0.25.2 - '@esbuild/win32-ia32': 0.25.2 - '@esbuild/win32-x64': 0.25.2 - - esbuild@0.25.5: - optionalDependencies: - '@esbuild/aix-ppc64': 0.25.5 - '@esbuild/android-arm': 0.25.5 - '@esbuild/android-arm64': 0.25.5 - '@esbuild/android-x64': 0.25.5 - '@esbuild/darwin-arm64': 0.25.5 - '@esbuild/darwin-x64': 0.25.5 - '@esbuild/freebsd-arm64': 0.25.5 - '@esbuild/freebsd-x64': 0.25.5 - '@esbuild/linux-arm': 0.25.5 - '@esbuild/linux-arm64': 0.25.5 - '@esbuild/linux-ia32': 0.25.5 - '@esbuild/linux-loong64': 0.25.5 - '@esbuild/linux-mips64el': 0.25.5 - '@esbuild/linux-ppc64': 0.25.5 - '@esbuild/linux-riscv64': 0.25.5 - '@esbuild/linux-s390x': 0.25.5 - '@esbuild/linux-x64': 0.25.5 - '@esbuild/netbsd-arm64': 0.25.5 - '@esbuild/netbsd-x64': 0.25.5 - '@esbuild/openbsd-arm64': 0.25.5 - '@esbuild/openbsd-x64': 0.25.5 - '@esbuild/sunos-x64': 0.25.5 - '@esbuild/win32-arm64': 0.25.5 - '@esbuild/win32-ia32': 0.25.5 - '@esbuild/win32-x64': 0.25.5 - - escalade@3.2.0: {} - - escape-string-regexp@1.0.5: {} - - escape-string-regexp@2.0.0: {} - - escape-string-regexp@4.0.0: {} - - escape-string-regexp@5.0.0: {} - - escodegen@2.1.0: - dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 - esutils: 2.0.3 - optionalDependencies: - source-map: 0.6.1 - - eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.31.0)(eslint@8.57.1): - dependencies: - confusing-browser-globals: 1.0.11 - eslint: 8.57.1 - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.1) - object.assign: 4.1.7 - object.entries: 1.1.9 - semver: 6.3.1 - - eslint-config-airbnb-typescript@18.0.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@8.57.1): - dependencies: - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) - eslint: 8.57.1 - eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.31.0)(eslint@8.57.1) - transitivePeerDependencies: - - eslint-plugin-import - - eslint-config-airbnb@19.0.4(eslint-plugin-import@2.31.0)(eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.37.5(eslint@8.57.1))(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.31.0)(eslint@8.57.1) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.1) - eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) - eslint-plugin-react: 7.37.5(eslint@8.57.1) - eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) - object.assign: 4.1.7 - object.entries: 1.1.9 - - eslint-config-next@15.2.4(eslint@8.57.1)(typescript@5.8.3): - dependencies: - '@next/eslint-plugin-next': 15.2.4 - '@rushstack/eslint-patch': 1.11.0 - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) - eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0)(eslint@8.57.1) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.1) - eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) - eslint-plugin-react: 7.37.5(eslint@8.57.1) - eslint-plugin-react-hooks: 5.2.0(eslint@8.57.1) - optionalDependencies: - typescript: 5.8.3 - transitivePeerDependencies: - - eslint-import-resolver-webpack - - eslint-plugin-import-x - - supports-color - - eslint-config-prettier@9.1.0(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - - eslint-import-resolver-node@0.3.9: - dependencies: - debug: 3.2.7 - is-core-module: 2.16.1 - resolve: 1.22.10 - transitivePeerDependencies: - - supports-color - - eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0)(eslint@8.57.1): - dependencies: - '@nolyfill/is-core-module': 1.0.39 - debug: 4.4.0(supports-color@8.1.1) - eslint: 8.57.1 - get-tsconfig: 4.10.0 - is-bun-module: 2.0.0 - stable-hash: 0.0.5 - tinyglobby: 0.2.12 - unrs-resolver: 1.4.1 - optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.1) - transitivePeerDependencies: - - supports-color - - eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.1): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) - eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0)(eslint@8.57.1) - transitivePeerDependencies: - - supports-color - - eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.1): - dependencies: - '@rtsao/scc': 1.1.0 - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.6 - array.prototype.flat: 1.3.3 - array.prototype.flatmap: 1.3.3 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.1) - hasown: 2.0.2 - is-core-module: 2.16.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.1 - semver: 6.3.1 - string.prototype.trimend: 1.0.9 - tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1): - dependencies: - aria-query: 5.3.2 - array-includes: 3.1.8 - array.prototype.flatmap: 1.3.3 - ast-types-flow: 0.0.8 - axe-core: 4.10.3 - axobject-query: 4.1.0 - damerau-levenshtein: 1.0.8 - emoji-regex: 9.2.2 - eslint: 8.57.1 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - language-tags: 1.0.9 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - safe-regex-test: 1.1.0 - string.prototype.includes: 2.0.1 - - eslint-plugin-lodash@7.4.0(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - lodash: 4.17.21 - - eslint-plugin-react-hooks@4.6.2(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - - eslint-plugin-react-hooks@5.2.0(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - - eslint-plugin-react@7.37.5(eslint@8.57.1): - dependencies: - array-includes: 3.1.8 - array.prototype.findlast: 1.2.5 - array.prototype.flatmap: 1.3.3 - array.prototype.tosorted: 1.1.4 - doctrine: 2.1.0 - es-iterator-helpers: 1.2.1 - eslint: 8.57.1 - estraverse: 5.3.0 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 - object.entries: 1.1.9 - object.fromentries: 2.0.8 - object.values: 1.2.1 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.12 - string.prototype.repeat: 1.0.0 - - eslint-scope@5.1.1: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - - eslint-scope@7.2.2: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-visitor-keys@3.4.3: {} - - eslint-visitor-keys@4.2.1: {} - - eslint@8.57.1: - dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@8.57.1) - '@eslint-community/regexpp': 4.12.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.1 - '@humanwhocodes/config-array': 0.13.0 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.3.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.0(supports-color@8.1.1) - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - - esm@3.2.25: {} - - esniff@2.0.1: - dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - event-emitter: 0.3.5 - type: 2.7.3 - - espree@9.6.1: - dependencies: - acorn: 8.14.1 - acorn-jsx: 5.3.2(acorn@8.14.1) - eslint-visitor-keys: 3.4.3 - - esprima@4.0.1: {} - - esquery@1.6.0: - dependencies: - estraverse: 5.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@4.3.0: {} - - estraverse@5.3.0: {} - - estree-util-is-identifier-name@3.0.0: {} - - estree-walker@2.0.2: {} - - estree-walker@3.0.3: - dependencies: - '@types/estree': 1.0.7 - - esutils@2.0.3: {} - - event-emitter@0.3.5: - dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - - event-source-polyfill@1.0.31: {} - - event-target-shim@5.0.1: {} - - events@3.3.0: {} - - eventsource-parser@3.0.1: {} - - eventsource@2.0.2: {} - - eventsource@4.0.0: - dependencies: - eventsource-parser: 3.0.1 - - execa@2.1.0: - dependencies: - cross-spawn: 7.0.6 - get-stream: 5.2.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 3.1.0 - onetime: 5.1.2 - p-finally: 2.0.1 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - - execa@5.1.1: - dependencies: - cross-spawn: 7.0.6 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - - exif-component@1.0.1: {} - - exit@0.1.2: {} - - expand-template@2.0.3: - optional: true - - expect-type@1.2.1: {} - - expect@29.7.0: - dependencies: - '@jest/expect-utils': 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - - ext@1.7.0: - dependencies: - type: 2.7.3 - - extend@3.0.2: {} - - external-editor@3.1.0: - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - - falafel@2.2.5: - dependencies: - acorn: 7.4.1 - isarray: 2.0.5 - - fast-csv@5.0.2: - dependencies: - '@fast-csv/format': 5.0.2 - '@fast-csv/parse': 5.0.2 - - fast-deep-equal@3.1.3: {} - - fast-fifo@1.3.2: {} - - fast-glob@3.3.1: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - - fast-glob@3.3.3: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - - fast-isnumeric@1.1.4: - dependencies: - is-string-blank: 1.0.1 - - fast-json-stable-stringify@2.1.0: {} - - fast-levenshtein@2.0.6: {} - - fast-uri@3.0.6: {} - - fastq@1.19.1: - dependencies: - reusify: 1.1.0 - - fault@1.0.4: - dependencies: - format: 0.2.2 - - fb-watchman@2.0.2: - dependencies: - bser: 2.1.1 - - fd-package-json@2.0.0: - dependencies: - walk-up-path: 4.0.0 - - fd-slicer@1.1.0: - dependencies: - pend: 1.2.0 - - fdir@6.4.3(picomatch@4.0.2): - optionalDependencies: - picomatch: 4.0.2 - - fdir@6.4.6(picomatch@4.0.2): - optionalDependencies: - picomatch: 4.0.2 - - fflate@0.6.10: {} - - file-entry-cache@6.0.1: - dependencies: - flat-cache: 3.2.0 - - file-saver@2.0.5: {} - - file-type@3.9.0: {} - - file-type@5.2.0: {} - - file-type@6.2.0: {} - - file-uri-to-path@1.0.0: {} - - file-url@2.0.2: {} - - filelist@1.0.4: - dependencies: - minimatch: 5.1.6 - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - find-cache-dir@2.1.0: - dependencies: - commondir: 1.0.1 - make-dir: 2.1.0 - pkg-dir: 3.0.0 - - find-replace@5.0.2: {} - - find-root@1.1.0: {} - - find-up-simple@1.0.1: {} - - find-up@3.0.0: - dependencies: - locate-path: 3.0.0 - - find-up@4.1.0: - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - find-up@7.0.0: - dependencies: - locate-path: 7.2.0 - path-exists: 5.0.0 - unicorn-magic: 0.1.0 - - find-yarn-workspace-root2@1.2.16: - dependencies: - micromatch: 4.0.8 - pkg-dir: 4.2.0 - - flat-cache@3.2.0: - dependencies: - flatted: 3.3.3 - keyv: 4.5.4 - rimraf: 3.0.2 - - flat@6.0.1: {} - - flatbuffers@24.12.23: {} - - flatted@3.3.3: {} - - flatten-vertex-data@1.0.2: - dependencies: - dtype: 2.0.0 - - flush-write-stream@2.0.0: - dependencies: - inherits: 2.0.4 - readable-stream: 3.6.2 - - focus-lock@1.3.6: - dependencies: - tslib: 2.8.1 - - follow-redirects@1.15.9(debug@4.4.0): - optionalDependencies: - debug: 4.4.0(supports-color@8.1.1) - - font-atlas@2.1.0: - dependencies: - css-font: 1.2.0 - - font-measure@1.2.2: - dependencies: - css-font: 1.2.0 - - for-each@0.3.5: - dependencies: - is-callable: 1.2.7 - - foreground-child@3.3.1: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - - form-data@4.0.2: - 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: {} - - formatly@0.2.4: - dependencies: - fd-package-json: 2.0.0 - - forwarded-parse@2.1.2: {} - - fraction.js@4.3.7: {} - - framer-motion@12.18.1(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - motion-dom: 12.18.1 - motion-utils: 12.18.1 - tslib: 2.8.1 - optionalDependencies: - '@emotion/is-prop-valid': 1.2.2 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - framer-motion@12.19.1(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - motion-dom: 12.19.0 - motion-utils: 12.19.0 - tslib: 2.8.1 - optionalDependencies: - '@emotion/is-prop-valid': 1.2.2 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - framer-motion@12.6.3(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - motion-dom: 12.6.3 - motion-utils: 12.6.3 - tslib: 2.8.1 - optionalDependencies: - '@emotion/is-prop-valid': 1.2.2 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - from2@2.3.0: - dependencies: - inherits: 2.0.4 - readable-stream: 2.3.8 - - fs-constants@1.0.0: {} - - fs.realpath@1.0.0: {} - - fsevents@2.3.2: - optional: true - - fsevents@2.3.3: - optional: true - - ftp@0.3.10: - dependencies: - readable-stream: 1.1.14 - xregexp: 2.0.0 - - function-bind@1.1.2: {} - - function.prototype.name@1.1.8: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - functions-have-names: 1.2.3 - hasown: 2.0.2 - is-callable: 1.2.7 - - functions-have-names@1.2.3: {} - - gaxios@6.7.1: - dependencies: - extend: 3.0.2 - https-proxy-agent: 7.0.6 - is-stream: 2.0.1 - node-fetch: 2.7.0 - uuid: 9.0.1 - transitivePeerDependencies: - - encoding - - supports-color - - gcp-metadata@6.1.1: - dependencies: - gaxios: 6.7.1 - google-logging-utils: 0.0.2 - json-bigint: 1.0.0 - transitivePeerDependencies: - - encoding - - supports-color - - gensync@1.0.0-beta.2: {} - - geojson-vt@3.2.1: {} - - geojson-vt@4.0.2: {} - - get-caller-file@2.0.5: {} - - get-canvas-context@1.0.2: {} - - get-east-asian-width@1.3.0: {} - - get-intrinsic@1.3.0: - dependencies: - call-bind-apply-helpers: 1.0.2 - 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-symbols: 1.1.0 - hasown: 2.0.2 - math-intrinsics: 1.1.0 - - get-it@8.6.9(debug@4.4.0): - dependencies: - '@types/follow-redirects': 1.14.4 - decompress-response: 7.0.0 - follow-redirects: 1.15.9(debug@4.4.0) - is-retry-allowed: 2.2.0 - through2: 4.0.2 - tunnel-agent: 0.6.0 - transitivePeerDependencies: - - debug - - get-nonce@1.0.1: {} - - get-package-type@0.1.0: {} - - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 - - get-random-values-esm@1.0.2: - dependencies: - get-random-values: 1.2.2 - - get-random-values@1.2.2: - dependencies: - global: 4.4.0 - - get-stream@2.3.1: - dependencies: - object-assign: 4.1.1 - pinkie-promise: 2.0.1 - - get-stream@5.2.0: - dependencies: - pump: 3.0.2 - - get-stream@6.0.1: {} - - get-symbol-description@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - - get-tsconfig@4.10.0: - dependencies: - resolve-pkg-maps: 1.0.0 - - get-uri@2.0.4: - dependencies: - data-uri-to-buffer: 1.2.0 - debug: 2.6.9 - extend: 3.0.2 - file-uri-to-path: 1.0.0 - ftp: 0.3.10 - readable-stream: 2.3.8 - transitivePeerDependencies: - - supports-color - - github-from-package@0.0.0: - optional: true - - github-markdown-css@5.8.1: {} - - gl-mat4@1.2.0: {} - - gl-matrix@3.4.3: {} - - gl-text@1.4.0: - dependencies: - bit-twiddle: 1.0.2 - color-normalize: 1.5.0 - css-font: 1.2.0 - detect-kerning: 2.1.2 - es6-weak-map: 2.0.3 - flatten-vertex-data: 1.0.2 - font-atlas: 2.1.0 - font-measure: 1.2.2 - gl-util: 3.1.3 - is-plain-obj: 1.1.0 - object-assign: 4.1.1 - parse-rect: 1.2.0 - parse-unit: 1.0.1 - pick-by-alias: 1.2.0 - regl: 2.1.1 - to-px: 1.0.1 - typedarray-pool: 1.2.0 - - gl-util@3.1.3: - dependencies: - is-browser: 2.1.0 - is-firefox: 1.0.3 - is-plain-obj: 1.1.0 - number-is-integer: 1.0.1 - object-assign: 4.1.1 - pick-by-alias: 1.2.0 - weak-map: 1.0.8 - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - - glob-to-regexp@0.4.1: {} - - glob@10.4.5: - dependencies: - foreground-child: 3.3.1 - jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 - - glob@11.0.1: - dependencies: - foreground-child: 3.3.1 - jackspeak: 4.1.0 - minimatch: 10.0.1 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 2.0.0 - - 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@9.3.5: - dependencies: - fs.realpath: 1.0.0 - minimatch: 8.0.4 - minipass: 4.2.8 - path-scurry: 1.11.1 - - global-prefix@4.0.0: - dependencies: - ini: 4.1.3 - kind-of: 6.0.3 - which: 4.0.0 - - global@4.4.0: - dependencies: - min-document: 2.19.0 - process: 0.11.10 - - globals@11.12.0: {} - - globals@13.24.0: - dependencies: - type-fest: 0.20.2 - - globalthis@1.0.4: - dependencies: - define-properties: 1.2.1 - gopd: 1.2.0 - - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.3 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 - - globrex@0.1.2: {} - - glsl-inject-defines@1.0.3: - dependencies: - glsl-token-inject-block: 1.1.0 - glsl-token-string: 1.0.1 - glsl-tokenizer: 2.1.5 - - glsl-noise@0.0.0: {} - - glsl-resolve@0.0.1: - dependencies: - resolve: 0.6.3 - xtend: 2.2.0 - - glsl-token-assignments@2.0.2: {} - - glsl-token-defines@1.0.0: - dependencies: - glsl-tokenizer: 2.1.5 - - glsl-token-depth@1.1.2: {} - - glsl-token-descope@1.0.2: - dependencies: - glsl-token-assignments: 2.0.2 - glsl-token-depth: 1.1.2 - glsl-token-properties: 1.0.1 - glsl-token-scope: 1.1.2 - - glsl-token-inject-block@1.1.0: {} - - glsl-token-properties@1.0.1: {} - - glsl-token-scope@1.1.2: {} - - glsl-token-string@1.0.1: {} - - glsl-token-whitespace-trim@1.0.0: {} - - glsl-tokenizer@2.1.5: - dependencies: - through2: 0.6.5 - - glslify-bundle@5.1.1: - dependencies: - glsl-inject-defines: 1.0.3 - glsl-token-defines: 1.0.0 - glsl-token-depth: 1.1.2 - glsl-token-descope: 1.0.2 - glsl-token-scope: 1.1.2 - glsl-token-string: 1.0.1 - glsl-token-whitespace-trim: 1.0.0 - glsl-tokenizer: 2.1.5 - murmurhash-js: 1.0.0 - shallow-copy: 0.0.1 - - glslify-deps@1.3.2: - dependencies: - '@choojs/findup': 0.2.1 - events: 3.3.0 - glsl-resolve: 0.0.1 - glsl-tokenizer: 2.1.5 - graceful-fs: 4.2.11 - inherits: 2.0.4 - map-limit: 0.0.1 - resolve: 1.22.10 - - glslify@7.1.1: - dependencies: - bl: 2.2.1 - concat-stream: 1.6.2 - duplexify: 3.7.1 - falafel: 2.2.5 - from2: 2.3.0 - glsl-resolve: 0.0.1 - glsl-token-whitespace-trim: 1.0.0 - glslify-bundle: 5.1.1 - glslify-deps: 1.3.2 - minimist: 1.2.8 - resolve: 1.22.10 - stack-trace: 0.0.9 - static-eval: 2.1.1 - through2: 2.0.5 - xtend: 4.0.2 - - google-logging-utils@0.0.2: {} - - gopd@1.2.0: {} - - graceful-fs@4.2.11: {} - - graphemer@1.4.0: {} - - graphql@16.10.0: {} - - grid-index@1.1.0: {} - - groq-js@1.17.1: - dependencies: - debug: 4.4.0(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - groq@3.92.0: {} - - groq@3.94.2: {} - - gunzip-maybe@1.4.2: - dependencies: - browserify-zlib: 0.1.4 - is-deflate: 1.0.0 - is-gzip: 1.0.0 - peek-stream: 1.1.3 - pumpify: 1.5.1 - through2: 2.0.5 - - gzip-size@6.0.0: - dependencies: - duplexer: 0.1.2 - - h5wasm@0.7.9: {} - - hard-rejection@2.1.0: {} - - has-bigints@1.1.0: {} - - has-flag@3.0.0: {} - - has-flag@4.0.0: {} - - has-hover@1.0.1: - dependencies: - is-browser: 2.1.0 - - has-passive-events@1.0.0: - dependencies: - is-browser: 2.1.0 - - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.1 - - has-proto@1.2.0: - dependencies: - dunder-proto: 1.0.1 - - has-symbols@1.1.0: {} - - has-tostringtag@1.0.2: - dependencies: - has-symbols: 1.1.0 - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - hast-util-from-dom@5.0.1: - dependencies: - '@types/hast': 3.0.4 - hastscript: 9.0.1 - web-namespaces: 2.0.1 - - hast-util-from-html-isomorphic@2.0.0: - dependencies: - '@types/hast': 3.0.4 - hast-util-from-dom: 5.0.1 - hast-util-from-html: 2.0.3 - unist-util-remove-position: 5.0.0 - - hast-util-from-html@2.0.3: - dependencies: - '@types/hast': 3.0.4 - devlop: 1.1.0 - hast-util-from-parse5: 8.0.3 - parse5: 7.2.1 - vfile: 6.0.3 - vfile-message: 4.0.2 - - hast-util-from-parse5@8.0.3: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - devlop: 1.1.0 - hastscript: 9.0.1 - property-information: 7.0.0 - vfile: 6.0.3 - vfile-location: 5.0.3 - web-namespaces: 2.0.1 - - hast-util-is-element@3.0.0: - dependencies: - '@types/hast': 3.0.4 - - hast-util-parse-selector@2.2.5: {} - - hast-util-parse-selector@4.0.0: - dependencies: - '@types/hast': 3.0.4 - - hast-util-raw@9.1.0: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - '@ungap/structured-clone': 1.3.0 - hast-util-from-parse5: 8.0.3 - hast-util-to-parse5: 8.0.0 - html-void-elements: 3.0.0 - mdast-util-to-hast: 13.2.0 - parse5: 7.2.1 - unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 - vfile: 6.0.3 - web-namespaces: 2.0.1 - zwitch: 2.0.4 - - hast-util-to-jsx-runtime@2.3.6: - dependencies: - '@types/estree': 1.0.7 - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - comma-separated-tokens: 2.0.3 - devlop: 1.1.0 - 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-mdxjs-esm: 2.0.1 - property-information: 7.0.0 - space-separated-tokens: 2.0.2 - style-to-js: 1.1.16 - unist-util-position: 5.0.0 - vfile-message: 4.0.2 - transitivePeerDependencies: - - supports-color - - hast-util-to-parse5@8.0.0: - dependencies: - '@types/hast': 3.0.4 - comma-separated-tokens: 2.0.3 - devlop: 1.1.0 - property-information: 6.5.0 - space-separated-tokens: 2.0.2 - web-namespaces: 2.0.1 - zwitch: 2.0.4 - - hast-util-to-text@4.0.2: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - hast-util-is-element: 3.0.0 - unist-util-find-after: 5.0.0 - - hast-util-whitespace@3.0.0: - dependencies: - '@types/hast': 3.0.4 - - hastscript@6.0.0: - dependencies: - '@types/hast': 2.3.10 - comma-separated-tokens: 1.0.8 - hast-util-parse-selector: 2.2.5 - property-information: 5.6.0 - space-separated-tokens: 1.1.5 - - hastscript@9.0.1: - dependencies: - '@types/hast': 3.0.4 - comma-separated-tokens: 2.0.3 - hast-util-parse-selector: 4.0.0 - property-information: 7.0.0 - space-separated-tokens: 2.0.2 - - he@1.2.0: {} - - headers-polyfill@4.0.3: {} - - highlight.js@10.7.3: {} - - highlight.js@11.11.1: {} - - highlightjs-vue@1.0.0: {} - - history@5.3.0: - dependencies: - '@babel/runtime': 7.27.0 - - hls.js@1.6.2: {} - - hoist-non-react-statics@3.3.2: - dependencies: - react-is: 16.13.1 - - hosted-git-info@2.8.9: {} - - hosted-git-info@4.1.0: - dependencies: - lru-cache: 6.0.0 - - hotscript@1.0.13: {} - - html-encoding-sniffer@3.0.0: - dependencies: - whatwg-encoding: 2.0.0 - - html-encoding-sniffer@4.0.0: - dependencies: - whatwg-encoding: 3.1.1 - - html-escaper@2.0.2: {} - - html-parse-stringify@3.0.1: - dependencies: - void-elements: 3.1.0 - - html-url-attributes@3.0.1: {} - - html-void-elements@3.0.0: {} - - http-proxy-agent@5.0.0: - dependencies: - '@tootallnate/once': 2.0.0 - agent-base: 6.0.2 - debug: 4.4.0(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - http-proxy-agent@7.0.2: - dependencies: - agent-base: 7.1.3 - debug: 4.4.0(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - https-proxy-agent@5.0.1: - dependencies: - agent-base: 6.0.2 - debug: 4.4.0(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - https-proxy-agent@7.0.6: - dependencies: - agent-base: 7.1.3 - debug: 4.4.0(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - human-signals@2.1.0: {} - - humanize-list@1.0.1: {} - - i18next@23.16.8: - dependencies: - '@babel/runtime': 7.27.0 - - iconv-lite@0.4.24: - dependencies: - safer-buffer: 2.1.2 - - iconv-lite@0.6.3: - dependencies: - safer-buffer: 2.1.2 - - ieee754@1.2.1: {} - - ignore@5.3.2: {} - - image-size@0.7.5: {} - - immediate@3.0.6: {} - - immer@10.1.1: {} - - immutable@4.3.7: {} - - immutable@5.1.3: {} - - import-fresh@3.3.1: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - import-in-the-middle@1.13.1: - dependencies: - acorn: 8.14.1 - acorn-import-attributes: 1.9.5(acorn@8.14.1) - cjs-module-lexer: 1.4.3 - module-details-from-path: 1.0.3 - - import-local@3.2.0: - dependencies: - pkg-dir: 4.2.0 - resolve-cwd: 3.0.0 - - imurmurhash@0.1.4: {} - - indent-string@4.0.0: {} - - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - inherits@2.0.4: {} - - ini@1.3.8: - optional: true - - ini@4.1.3: {} - - inline-style-parser@0.2.4: {} - - input-otp@1.4.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - inquirer@12.6.3(@types/node@22.14.0): - dependencies: - '@inquirer/core': 10.1.13(@types/node@22.14.0) - '@inquirer/prompts': 7.5.3(@types/node@22.14.0) - '@inquirer/type': 3.0.7(@types/node@22.14.0) - ansi-escapes: 4.3.2 - mute-stream: 2.0.0 - run-async: 3.0.0 - rxjs: 7.8.2 - optionalDependencies: - '@types/node': 22.14.0 - - install@0.13.0: {} - - internal-slot@1.1.0: - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.1.0 - - internmap@1.0.1: {} - - internmap@2.0.3: {} - - is-alphabetical@1.0.4: {} - - is-alphabetical@2.0.1: {} - - is-alphanumerical@1.0.4: - dependencies: - is-alphabetical: 1.0.4 - is-decimal: 1.0.4 - - is-alphanumerical@2.0.1: - dependencies: - is-alphabetical: 2.0.1 - is-decimal: 2.0.1 - - is-array-buffer@3.0.5: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - - is-arrayish@0.2.1: {} - - is-arrayish@0.3.2: {} - - is-async-function@2.1.1: - dependencies: - async-function: 1.0.0 - call-bound: 1.0.4 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - is-bigint@1.1.0: - dependencies: - has-bigints: 1.1.0 - - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - - is-boolean-object@1.2.2: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-browser@2.1.0: {} - - is-bun-module@2.0.0: - dependencies: - semver: 7.7.1 - - is-callable@1.2.7: {} - - is-core-module@2.16.1: - dependencies: - hasown: 2.0.2 - - is-data-view@1.0.2: - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - is-typed-array: 1.1.15 - - is-date-object@1.1.0: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-decimal@1.0.4: {} - - is-decimal@2.0.1: {} - - is-deflate@1.0.0: {} - - is-docker@2.2.1: {} - - is-extglob@2.1.1: {} - - is-finalizationregistry@1.1.1: - dependencies: - call-bound: 1.0.4 - - is-finite@1.1.0: {} - - is-firefox@1.0.3: {} - - is-fullwidth-code-point@3.0.0: {} - - is-generator-fn@2.1.0: {} - - is-generator-function@1.1.0: - dependencies: - call-bound: 1.0.4 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-gzip@1.0.0: {} - - is-hexadecimal@1.0.4: {} - - is-hexadecimal@2.0.1: {} - - is-hotkey-esm@1.0.0: {} - - is-hotkey@0.2.0: {} - - is-iexplorer@1.0.0: {} - - is-interactive@1.0.0: {} - - is-interactive@2.0.0: {} - - is-map@2.0.3: {} - - is-mobile@4.0.0: {} - - is-natural-number@4.0.1: {} - - is-node-process@1.2.0: {} - - is-number-object@1.1.1: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-number@7.0.0: {} - - is-obj@1.0.1: {} - - is-obj@2.0.0: {} - - is-path-inside@3.0.3: {} - - is-plain-obj@1.1.0: {} - - is-plain-obj@4.1.0: {} - - is-plain-object@2.0.4: - dependencies: - isobject: 3.0.1 - - is-plain-object@5.0.0: {} - - is-potential-custom-element-name@1.0.1: {} - - is-promise@2.2.2: {} - - is-reference@1.2.1: - dependencies: - '@types/estree': 1.0.7 - - is-regex@1.2.1: - dependencies: - call-bound: 1.0.4 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - is-retry-allowed@2.2.0: {} - - is-set@2.0.3: {} - - is-shared-array-buffer@1.0.4: - dependencies: - call-bound: 1.0.4 - - is-stream@1.1.0: {} - - is-stream@2.0.1: {} - - is-string-blank@1.0.1: {} - - is-string@1.1.1: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-svg-path@1.0.2: {} - - is-symbol@1.1.1: - dependencies: - call-bound: 1.0.4 - has-symbols: 1.1.0 - safe-regex-test: 1.1.0 - - is-tar@1.0.0: {} - - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.19 - - is-typedarray@1.0.0: {} - - is-unicode-supported@0.1.0: {} - - is-unicode-supported@1.3.0: {} - - is-unicode-supported@2.1.0: {} - - is-weakmap@2.0.2: {} - - is-weakref@1.1.1: - dependencies: - call-bound: 1.0.4 - - is-weakset@2.0.4: - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - - is-what@4.1.16: {} - - is-wsl@2.2.0: - dependencies: - is-docker: 2.2.1 - - isarray@0.0.1: {} - - isarray@1.0.0: {} - - isarray@2.0.5: {} - - isexe@2.0.0: {} - - isexe@3.1.1: {} - - isobject@3.0.1: {} - - isomorphic-dompurify@2.23.0: - dependencies: - dompurify: 3.2.5 - jsdom: 26.1.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - - isomorphic.js@0.2.5: {} - - istanbul-lib-coverage@3.2.2: {} - - istanbul-lib-instrument@5.2.1: - dependencies: - '@babel/core': 7.26.10 - '@babel/parser': 7.27.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - istanbul-lib-instrument@6.0.3: - dependencies: - '@babel/core': 7.26.10 - '@babel/parser': 7.27.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 7.7.1 - transitivePeerDependencies: - - supports-color - - istanbul-lib-report@3.0.1: - dependencies: - istanbul-lib-coverage: 3.2.2 - make-dir: 4.0.0 - supports-color: 7.2.0 - - istanbul-lib-source-maps@4.0.1: - dependencies: - debug: 4.4.0(supports-color@8.1.1) - istanbul-lib-coverage: 3.2.2 - source-map: 0.6.1 - transitivePeerDependencies: - - supports-color - - istanbul-reports@3.1.7: - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.1 - - iterator.prototype@1.1.5: - dependencies: - define-data-property: 1.1.4 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - has-symbols: 1.1.0 - set-function-name: 2.0.2 - - its-fine@2.0.0(@types/react@19.1.0)(react@19.1.0): - dependencies: - '@types/react-reconciler': 0.28.9(@types/react@19.1.0) - react: 19.1.0 - transitivePeerDependencies: - - '@types/react' - - jackspeak@3.4.3: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - jackspeak@4.1.0: - dependencies: - '@isaacs/cliui': 8.0.2 - - 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: {} - - jest-changed-files@29.7.0: - dependencies: - execa: 5.1.1 - jest-util: 29.7.0 - p-limit: 3.1.0 - - jest-circus@29.7.0(babel-plugin-macros@3.1.0): - dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.14.0 - chalk: 4.1.2 - co: 4.6.0 - dedent: 1.5.3(babel-plugin-macros@3.1.0) - is-generator-fn: 2.1.0 - jest-each: 29.7.0 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - p-limit: 3.1.0 - pretty-format: 29.7.0 - pure-rand: 6.1.0 - slash: 3.0.0 - stack-utils: 2.0.6 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-cli@29.7.0(@types/node@22.14.0)(babel-plugin-macros@3.1.0): - dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0) - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.14.0)(babel-plugin-macros@3.1.0) - exit: 0.1.2 - import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.14.0)(babel-plugin-macros@3.1.0) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - - jest-config@29.7.0(@types/node@22.14.0)(babel-plugin-macros@3.1.0): - dependencies: - '@babel/core': 7.26.10 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.26.10) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0(babel-plugin-macros@3.1.0) - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.8 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 22.14.0 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-diff@29.7.0: - dependencies: - chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - jest-docblock@29.7.0: - dependencies: - detect-newline: 3.1.0 - - jest-each@29.7.0: - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - jest-get-type: 29.6.3 - jest-util: 29.7.0 - pretty-format: 29.7.0 - - jest-environment-jsdom@29.7.0: - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/jsdom': 20.0.1 - '@types/node': 22.14.0 - jest-mock: 29.7.0 - jest-util: 29.7.0 - jsdom: 20.0.3 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - jest-environment-node@29.7.0: - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.14.0 - jest-mock: 29.7.0 - jest-util: 29.7.0 - - jest-get-type@29.6.3: {} - - jest-haste-map@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/graceful-fs': 4.1.9 - '@types/node': 22.14.0 - anymatch: 3.1.3 - fb-watchman: 2.0.2 - graceful-fs: 4.2.11 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - jest-worker: 29.7.0 - micromatch: 4.0.8 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.3 - - jest-leak-detector@29.7.0: - dependencies: - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - jest-matcher-utils@29.7.0: - dependencies: - chalk: 4.1.2 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - jest-message-util@29.7.0: - dependencies: - '@babel/code-frame': 7.26.2 - '@jest/types': 29.6.3 - '@types/stack-utils': 2.0.3 - chalk: 4.1.2 - graceful-fs: 4.2.11 - micromatch: 4.0.8 - pretty-format: 29.7.0 - slash: 3.0.0 - stack-utils: 2.0.6 - - jest-mock@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/node': 22.14.0 - jest-util: 29.7.0 - - jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): - optionalDependencies: - jest-resolve: 29.7.0 - - jest-regex-util@29.6.3: {} - - jest-resolve-dependencies@29.7.0: - dependencies: - jest-regex-util: 29.6.3 - jest-snapshot: 29.7.0 - transitivePeerDependencies: - - supports-color - - jest-resolve@29.7.0: - dependencies: - chalk: 4.1.2 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) - jest-util: 29.7.0 - jest-validate: 29.7.0 - resolve: 1.22.10 - resolve.exports: 2.0.3 - slash: 3.0.0 - - jest-runner@29.7.0: - dependencies: - '@jest/console': 29.7.0 - '@jest/environment': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.14.0 - chalk: 4.1.2 - emittery: 0.13.1 - graceful-fs: 4.2.11 - jest-docblock: 29.7.0 - jest-environment-node: 29.7.0 - jest-haste-map: 29.7.0 - jest-leak-detector: 29.7.0 - jest-message-util: 29.7.0 - jest-resolve: 29.7.0 - jest-runtime: 29.7.0 - jest-util: 29.7.0 - jest-watcher: 29.7.0 - jest-worker: 29.7.0 - p-limit: 3.1.0 - source-map-support: 0.5.13 - transitivePeerDependencies: - - supports-color - - jest-runtime@29.7.0: - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/globals': 29.7.0 - '@jest/source-map': 29.6.3 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.14.0 - chalk: 4.1.2 - cjs-module-lexer: 1.4.3 - collect-v8-coverage: 1.0.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - slash: 3.0.0 - strip-bom: 4.0.0 - transitivePeerDependencies: - - supports-color - - jest-snapshot@29.7.0: - dependencies: - '@babel/core': 7.26.10 - '@babel/generator': 7.27.0 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.10) - '@babel/types': 7.27.0 - '@jest/expect-utils': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.10) - chalk: 4.1.2 - expect: 29.7.0 - graceful-fs: 4.2.11 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - natural-compare: 1.4.0 - pretty-format: 29.7.0 - semver: 7.7.1 - transitivePeerDependencies: - - supports-color - - jest-util@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/node': 22.14.0 - chalk: 4.1.2 - ci-info: 3.9.0 - graceful-fs: 4.2.11 - picomatch: 2.3.1 - - jest-validate@29.7.0: - dependencies: - '@jest/types': 29.6.3 - camelcase: 6.3.0 - chalk: 4.1.2 - jest-get-type: 29.6.3 - leven: 3.1.0 - pretty-format: 29.7.0 - - jest-watcher@29.7.0: - dependencies: - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.14.0 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - emittery: 0.13.1 - jest-util: 29.7.0 - string-length: 4.0.2 - - jest-worker@27.5.1: - dependencies: - '@types/node': 22.16.4 - merge-stream: 2.0.0 - supports-color: 8.1.1 - - jest-worker@29.7.0: - dependencies: - '@types/node': 22.14.0 - jest-util: 29.7.0 - merge-stream: 2.0.0 - supports-color: 8.1.1 - - jest@29.7.0(@types/node@22.14.0)(babel-plugin-macros@3.1.0): - dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0) - '@jest/types': 29.6.3 - import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.14.0)(babel-plugin-macros@3.1.0) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - - jiti@2.4.2: {} - - jose@4.15.9: {} - - jotai-devtools@0.11.0(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(redux@5.0.1): - dependencies: - '@mantine/code-highlight': 7.17.4(@mantine/core@7.17.4(@mantine/hooks@7.17.4(react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@7.17.4(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@mantine/core': 7.17.4(@mantine/hooks@7.17.4(react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@mantine/hooks': 7.17.4(react@19.1.0) - '@redux-devtools/extension': 3.3.0(redux@5.0.1) - clsx: 2.1.1 - javascript-stringify: 2.1.0 - jsondiffpatch: 0.5.0 - react: 19.1.0 - react-base16-styling: 0.9.1 - react-error-boundary: 5.0.0(react@19.1.0) - react-json-tree: 0.18.0(@types/react@19.1.0)(react@19.1.0) - react-resizable-panels: 2.0.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - transitivePeerDependencies: - - '@types/react' - - react-dom - - redux - - jotai-optics@0.4.0(jotai@2.12.2(@types/react@19.1.0)(react@19.1.0))(optics-ts@2.4.1): - dependencies: - jotai: 2.12.2(@types/react@19.1.0)(react@19.1.0) - optics-ts: 2.4.1 - - jotai@2.12.2(@types/react@19.1.0)(react@19.1.0): - optionalDependencies: - '@types/react': 19.1.0 - react: 19.1.0 - - js-tokens@4.0.0: {} - - js-yaml@3.14.1: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 - - jsdom-global@3.0.2(jsdom@23.2.0): - dependencies: - jsdom: 23.2.0 - - jsdom@20.0.3: - dependencies: - abab: 2.0.6 - acorn: 8.14.1 - acorn-globals: 7.0.1 - cssom: 0.5.0 - cssstyle: 2.3.0 - data-urls: 3.0.2 - decimal.js: 10.5.0 - domexception: 4.0.0 - escodegen: 2.1.0 - form-data: 4.0.2 - html-encoding-sniffer: 3.0.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.20 - parse5: 7.2.1 - saxes: 6.0.0 - symbol-tree: 3.2.4 - tough-cookie: 4.1.4 - w3c-xmlserializer: 4.0.0 - webidl-conversions: 7.0.0 - whatwg-encoding: 2.0.0 - whatwg-mimetype: 3.0.0 - whatwg-url: 11.0.0 - ws: 8.18.1 - xml-name-validator: 4.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - jsdom@23.2.0: - dependencies: - '@asamuzakjp/dom-selector': 2.0.2 - cssstyle: 4.3.0 - data-urls: 5.0.0 - decimal.js: 10.5.0 - form-data: 4.0.2 - 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 - parse5: 7.2.1 - rrweb-cssom: 0.6.0 - saxes: 6.0.0 - symbol-tree: 3.2.4 - tough-cookie: 4.1.4 - w3c-xmlserializer: 5.0.0 - webidl-conversions: 7.0.0 - whatwg-encoding: 3.1.1 - whatwg-mimetype: 4.0.0 - whatwg-url: 14.2.0 - ws: 8.18.1 - xml-name-validator: 5.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - jsdom@26.1.0: - dependencies: - cssstyle: 4.3.0 - data-urls: 5.0.0 - decimal.js: 10.5.0 - 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.20 - parse5: 7.2.1 - rrweb-cssom: 0.8.0 - saxes: 6.0.0 - symbol-tree: 3.2.4 - tough-cookie: 5.1.2 - w3c-xmlserializer: 5.0.0 - webidl-conversions: 7.0.0 - whatwg-encoding: 3.1.1 - whatwg-mimetype: 4.0.0 - whatwg-url: 14.2.0 - ws: 8.18.1 - xml-name-validator: 5.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - jsesc@3.0.2: {} - - jsesc@3.1.0: {} - - json-bigint@1.0.0: - dependencies: - bignumber.js: 9.3.1 - - json-bignum@0.0.3: {} - - json-buffer@3.0.1: {} - - json-lexer@1.2.0: {} - - json-parse-even-better-errors@2.3.1: {} - - json-reduce@3.0.0: {} - - json-schema-compare@0.2.2: - dependencies: - lodash: 4.17.21 - - json-schema-merge-allof@0.8.1: - dependencies: - compute-lcm: 1.1.2 - json-schema-compare: 0.2.2 - lodash: 4.17.21 - - json-schema-traverse@0.4.1: {} - - json-schema-traverse@1.0.0: {} - - json-schema@0.4.0: {} - - json-stable-stringify-without-jsonify@1.0.1: {} - - json-stream-stringify@2.0.4: {} - - json-stringify-pretty-compact@4.0.0: {} - - json2mq@0.2.0: - dependencies: - string-convert: 0.2.1 - - json5@1.0.2: - dependencies: - minimist: 1.2.8 - - json5@2.2.3: {} - - jsondiffpatch@0.5.0: - dependencies: - chalk: 3.0.0 - diff-match-patch: 1.0.5 - - jsonpointer@5.0.1: {} - - jsx-ast-utils@3.3.5: - dependencies: - array-includes: 3.1.8 - array.prototype.flat: 1.3.3 - object.assign: 4.1.7 - object.values: 1.2.1 - - jszip@3.10.1: - dependencies: - lie: 3.3.0 - pako: 1.0.11 - readable-stream: 2.3.8 - setimmediate: 1.0.5 - - katex@0.16.22: - dependencies: - commander: 8.3.0 - - kdbush@3.0.0: {} - - kdbush@4.0.2: {} - - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 - - kind-of@6.0.3: {} - - kleur@3.0.3: {} - - knip@5.61.3(@types/node@22.14.0)(typescript@5.8.3): - dependencies: - '@nodelib/fs.walk': 1.2.8 - '@types/node': 22.14.0 - fast-glob: 3.3.3 - formatly: 0.2.4 - jiti: 2.4.2 - js-yaml: 4.1.0 - minimist: 1.2.8 - oxc-resolver: 11.4.0 - picocolors: 1.1.1 - picomatch: 4.0.2 - smol-toml: 1.4.1 - strip-json-comments: 5.0.2 - typescript: 5.8.3 - zod: 3.24.2 - zod-validation-error: 3.5.2(zod@3.24.2) - - ktx-parse@0.7.1: {} - - language-subtag-registry@0.3.23: {} - - language-tags@1.0.9: - dependencies: - language-subtag-registry: 0.3.23 - - lazystream@1.0.1: - dependencies: - readable-stream: 2.3.8 - - lefthook-darwin-arm64@1.11.13: - optional: true - - lefthook-darwin-x64@1.11.13: - optional: true - - lefthook-freebsd-arm64@1.11.13: - optional: true - - lefthook-freebsd-x64@1.11.13: - optional: true - - lefthook-linux-arm64@1.11.13: - optional: true - - lefthook-linux-x64@1.11.13: - optional: true - - lefthook-openbsd-arm64@1.11.13: - optional: true - - lefthook-openbsd-x64@1.11.13: - optional: true - - lefthook-windows-arm64@1.11.13: - optional: true - - lefthook-windows-x64@1.11.13: - optional: true - - lefthook@1.11.13: - optionalDependencies: - lefthook-darwin-arm64: 1.11.13 - lefthook-darwin-x64: 1.11.13 - lefthook-freebsd-arm64: 1.11.13 - lefthook-freebsd-x64: 1.11.13 - lefthook-linux-arm64: 1.11.13 - lefthook-linux-x64: 1.11.13 - lefthook-openbsd-arm64: 1.11.13 - lefthook-openbsd-x64: 1.11.13 - lefthook-windows-arm64: 1.11.13 - lefthook-windows-x64: 1.11.13 - - leven@3.1.0: {} - - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - - lexical@0.30.0: {} - - lib0@0.2.111: - dependencies: - isomorphic.js: 0.2.5 - - lie@3.3.0: - dependencies: - immediate: 3.0.6 - - lightningcss-darwin-arm64@1.29.2: - optional: true - - lightningcss-darwin-x64@1.29.2: - optional: true - - lightningcss-freebsd-x64@1.29.2: - optional: true - - lightningcss-linux-arm-gnueabihf@1.29.2: - optional: true - - lightningcss-linux-arm64-gnu@1.29.2: - optional: true - - lightningcss-linux-arm64-musl@1.29.2: - optional: true - - lightningcss-linux-x64-gnu@1.29.2: - optional: true - - lightningcss-linux-x64-musl@1.29.2: - optional: true - - lightningcss-win32-arm64-msvc@1.29.2: - optional: true - - lightningcss-win32-x64-msvc@1.29.2: - optional: true - - lightningcss@1.29.2: - dependencies: - detect-libc: 2.0.3 - optionalDependencies: - lightningcss-darwin-arm64: 1.29.2 - lightningcss-darwin-x64: 1.29.2 - lightningcss-freebsd-x64: 1.29.2 - lightningcss-linux-arm-gnueabihf: 1.29.2 - lightningcss-linux-arm64-gnu: 1.29.2 - lightningcss-linux-arm64-musl: 1.29.2 - lightningcss-linux-x64-gnu: 1.29.2 - lightningcss-linux-x64-musl: 1.29.2 - lightningcss-win32-arm64-msvc: 1.29.2 - lightningcss-win32-x64-msvc: 1.29.2 - - lilconfig@3.1.3: {} - - lines-and-columns@1.2.4: {} - - load-yaml-file@0.2.0: - dependencies: - graceful-fs: 4.2.11 - js-yaml: 3.14.1 - pify: 4.0.1 - strip-bom: 3.0.0 - - loader-runner@4.3.0: {} - - loader-utils@2.0.4: - dependencies: - big.js: 5.2.2 - emojis-list: 3.0.0 - json5: 2.2.3 - - locate-path@3.0.0: - dependencies: - p-locate: 3.0.0 - path-exists: 3.0.0 - - locate-path@5.0.0: - dependencies: - p-locate: 4.1.0 - - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 - - locate-path@7.2.0: - dependencies: - p-locate: 6.0.0 - - lodash-es@4.17.21: {} - - lodash.camelcase@4.3.0: {} - - lodash.curry@4.1.1: {} - - lodash.debounce@4.0.8: {} - - lodash.escaperegexp@4.1.2: {} - - lodash.groupby@4.6.0: {} - - lodash.has@4.5.2: {} - - lodash.hasin@4.5.2: {} - - lodash.head@4.0.1: {} - - lodash.isboolean@3.0.3: {} - - lodash.isempty@4.4.0: {} - - lodash.isequal@4.5.0: {} - - lodash.isfunction@3.0.9: {} - - lodash.isnil@4.0.0: {} - - lodash.isobject@3.0.2: {} - - lodash.isstring@4.0.1: {} - - lodash.isundefined@3.0.1: {} - - lodash.merge@4.6.2: {} - - lodash.omit@4.5.0: {} - - lodash.startcase@4.4.0: {} - - lodash.uniq@4.5.0: {} - - lodash@4.17.21: {} - - log-symbols@2.2.0: - dependencies: - chalk: 2.4.2 - - log-symbols@4.1.0: - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - - log-symbols@6.0.0: - dependencies: - chalk: 5.4.1 - is-unicode-supported: 1.3.0 - - long@5.3.2: {} - - longest-streak@3.1.0: {} - - loose-envify@1.4.0: - dependencies: - js-tokens: 4.0.0 - - loupe@3.1.3: {} - - lowlight@1.20.0: - dependencies: - fault: 1.0.4 - highlight.js: 10.7.3 - - lru-cache@10.4.3: {} - - lru-cache@11.1.0: {} - - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - - lz-string@1.5.0: {} - - maath@0.10.8(@types/three@0.159.0)(three@0.159.0): - dependencies: - '@types/three': 0.159.0 - three: 0.159.0 - - magic-string@0.30.17: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - - magic-string@0.30.8: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - - make-cancellable-promise@1.3.2: {} - - make-dir@1.3.0: - dependencies: - pify: 3.0.0 - - make-dir@2.1.0: - dependencies: - pify: 4.0.1 - semver: 5.7.2 - - make-dir@3.1.0: - dependencies: - semver: 6.3.1 - - make-dir@4.0.0: - dependencies: - semver: 7.7.1 - - make-event-props@1.6.2: {} - - makeerror@1.0.12: - dependencies: - tmpl: 1.0.5 - - map-limit@0.0.1: - dependencies: - once: 1.3.3 - - map-obj@1.0.1: {} - - map-obj@4.3.0: {} - - mapbox-gl@1.13.3: - dependencies: - '@mapbox/geojson-rewind': 0.5.2 - '@mapbox/geojson-types': 1.0.2 - '@mapbox/jsonlint-lines-primitives': 2.0.2 - '@mapbox/mapbox-gl-supported': 1.5.0(mapbox-gl@1.13.3) - '@mapbox/point-geometry': 0.1.0 - '@mapbox/tiny-sdf': 1.2.5 - '@mapbox/unitbezier': 0.0.0 - '@mapbox/vector-tile': 1.3.1 - '@mapbox/whoots-js': 3.1.0 - csscolorparser: 1.0.3 - earcut: 2.2.4 - geojson-vt: 3.2.1 - gl-matrix: 3.4.3 - grid-index: 1.1.0 - murmurhash-js: 1.0.0 - pbf: 3.3.0 - potpack: 1.0.2 - quickselect: 2.0.0 - rw: 1.3.3 - supercluster: 7.1.5 - tinyqueue: 2.0.3 - vt-pbf: 3.1.3 - - maplibre-gl@4.7.1: - dependencies: - '@mapbox/geojson-rewind': 0.5.2 - '@mapbox/jsonlint-lines-primitives': 2.0.2 - '@mapbox/point-geometry': 0.1.0 - '@mapbox/tiny-sdf': 2.0.6 - '@mapbox/unitbezier': 0.0.1 - '@mapbox/vector-tile': 1.3.1 - '@mapbox/whoots-js': 3.1.0 - '@maplibre/maplibre-gl-style-spec': 20.4.0 - '@types/geojson': 7946.0.16 - '@types/geojson-vt': 3.2.5 - '@types/mapbox__point-geometry': 0.1.4 - '@types/mapbox__vector-tile': 1.3.4 - '@types/pbf': 3.0.5 - '@types/supercluster': 7.1.3 - earcut: 3.0.1 - geojson-vt: 4.0.2 - gl-matrix: 3.4.3 - global-prefix: 4.0.0 - kdbush: 4.0.2 - murmurhash-js: 1.0.0 - pbf: 3.3.0 - potpack: 2.1.0 - quickselect: 3.0.0 - supercluster: 8.0.1 - tinyqueue: 3.0.0 - vt-pbf: 3.1.3 - - markdown-table@3.0.4: {} - - markdown-to-jsx@7.7.6(react@19.1.0): - dependencies: - react: 19.1.0 - - math-intrinsics@1.1.0: {} - - math-log2@1.0.1: {} - - mathjax-full@3.2.2: - dependencies: - esm: 3.2.25 - mhchemparser: 4.2.1 - mj-context-menu: 0.6.1 - speech-rule-engine: 4.0.7 - - md5-o-matic@0.1.1: {} - - mdast-util-find-and-replace@3.0.2: - dependencies: - '@types/mdast': 4.0.4 - escape-string-regexp: 5.0.0 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 - - mdast-util-from-markdown@2.0.2: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - decode-named-character-reference: 1.1.0 - devlop: 1.1.0 - mdast-util-to-string: 4.0.0 - micromark: 4.0.2 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-decode-string: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - unist-util-stringify-position: 4.0.0 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm-autolink-literal@2.0.1: - dependencies: - '@types/mdast': 4.0.4 - ccount: 2.0.1 - devlop: 1.1.0 - mdast-util-find-and-replace: 3.0.2 - micromark-util-character: 2.1.1 - - mdast-util-gfm-footnote@2.1.0: - dependencies: - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - micromark-util-normalize-identifier: 2.0.1 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm-strikethrough@2.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm-table@2.0.0: - dependencies: - '@types/mdast': 4.0.4 - devlop: 1.1.0 - markdown-table: 3.0.4 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm-task-list-item@2.0.0: - dependencies: - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm@3.1.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-strikethrough: 2.0.0 - mdast-util-gfm-table: 2.0.0 - mdast-util-gfm-task-list-item: 2.0.0 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-math@3.0.0: - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - devlop: 1.1.0 - longest-streak: 3.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - unist-util-remove-position: 5.0.0 - transitivePeerDependencies: - - supports-color - - mdast-util-mdx-expression@2.0.1: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-mdx-jsx@3.2.0: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - ccount: 2.0.1 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - parse-entities: 4.0.2 - stringify-entities: 4.0.4 - unist-util-stringify-position: 4.0.0 - vfile-message: 4.0.2 - transitivePeerDependencies: - - supports-color - - mdast-util-mdxjs-esm@2.0.1: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-phrasing@4.1.0: - dependencies: - '@types/mdast': 4.0.4 - unist-util-is: 6.0.0 - - mdast-util-to-hast@13.2.0: - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.3.0 - devlop: 1.1.0 - micromark-util-sanitize-uri: 2.0.1 - trim-lines: 3.0.1 - unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 - vfile: 6.0.3 - - mdast-util-to-markdown@2.1.2: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - longest-streak: 3.1.0 - mdast-util-phrasing: 4.1.0 - mdast-util-to-string: 4.0.0 - micromark-util-classify-character: 2.0.1 - micromark-util-decode-string: 2.0.1 - unist-util-visit: 5.0.0 - zwitch: 2.0.4 - - mdast-util-to-string@4.0.0: - dependencies: - '@types/mdast': 4.0.4 - - mdn-data@2.0.30: {} - - memoize-one@6.0.0: {} - - mendoza@3.0.8: {} - - meow@9.0.0: - dependencies: - '@types/minimist': 1.2.5 - camelcase-keys: 6.2.2 - decamelize: 1.2.0 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 3.0.3 - read-pkg-up: 7.0.1 - redent: 3.0.0 - trim-newlines: 3.0.1 - type-fest: 0.18.1 - yargs-parser: 20.2.9 - - merge-refs@1.3.0(@types/react@19.1.0): - optionalDependencies: - '@types/react': 19.1.0 - - merge-stream@2.0.0: {} - - merge2@1.4.1: {} - - meshline@3.3.1(three@0.159.0): - dependencies: - three: 0.159.0 - - meshoptimizer@0.18.1: {} - - mhchemparser@4.2.1: {} - - micromark-core-commonmark@2.0.3: - dependencies: - decode-named-character-reference: 1.1.0 - devlop: 1.1.0 - micromark-factory-destination: 2.0.1 - micromark-factory-label: 2.0.1 - micromark-factory-space: 2.0.1 - micromark-factory-title: 2.0.1 - micromark-factory-whitespace: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.1 - micromark-util-classify-character: 2.0.1 - 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.1.0 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-gfm-autolink-literal@2.1.0: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-sanitize-uri: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-gfm-footnote@2.1.0: - dependencies: - devlop: 1.1.0 - micromark-core-commonmark: 2.0.3 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-sanitize-uri: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-gfm-strikethrough@2.1.0: - dependencies: - devlop: 1.1.0 - micromark-util-chunked: 2.0.1 - micromark-util-classify-character: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-gfm-table@2.1.1: - dependencies: - devlop: 1.1.0 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-gfm-tagfilter@2.0.0: - dependencies: - micromark-util-types: 2.0.2 - - micromark-extension-gfm-task-list-item@2.1.0: - dependencies: - devlop: 1.1.0 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-gfm@3.0.0: - dependencies: - 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-tagfilter: 2.0.0 - micromark-extension-gfm-task-list-item: 2.1.0 - micromark-util-combine-extensions: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-math@3.1.0: - dependencies: - '@types/katex': 0.16.7 - devlop: 1.1.0 - katex: 0.16.22 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-destination@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-label@2.0.1: - dependencies: - devlop: 1.1.0 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-space@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-types: 2.0.2 - - micromark-factory-title@2.0.1: - dependencies: - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-whitespace@2.0.1: - dependencies: - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-character@2.1.1: - dependencies: - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-chunked@2.0.1: - dependencies: - micromark-util-symbol: 2.0.1 - - micromark-util-classify-character@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-combine-extensions@2.0.1: - dependencies: - micromark-util-chunked: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-decode-numeric-character-reference@2.0.2: - dependencies: - micromark-util-symbol: 2.0.1 - - micromark-util-decode-string@2.0.1: - dependencies: - decode-named-character-reference: 1.1.0 - micromark-util-character: 2.1.1 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-symbol: 2.0.1 - - micromark-util-encode@2.0.1: {} - - micromark-util-html-tag-name@2.0.1: {} - - micromark-util-normalize-identifier@2.0.1: - dependencies: - micromark-util-symbol: 2.0.1 - - micromark-util-resolve-all@2.0.1: - dependencies: - micromark-util-types: 2.0.2 - - micromark-util-sanitize-uri@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-encode: 2.0.1 - micromark-util-symbol: 2.0.1 - - micromark-util-subtokenize@2.1.0: - dependencies: - devlop: 1.1.0 - micromark-util-chunked: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-symbol@2.0.1: {} - - micromark-util-types@2.0.2: {} - - micromark@4.0.2: - dependencies: - '@types/debug': 4.1.12 - debug: 4.4.0(supports-color@8.1.1) - decode-named-character-reference: 1.1.0 - devlop: 1.1.0 - micromark-core-commonmark: 2.0.3 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.1 - micromark-util-combine-extensions: 2.0.1 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-encode: 2.0.1 - 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.1.0 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - transitivePeerDependencies: - - supports-color - - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - mime-db@1.52.0: {} - - mime-db@1.54.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - - mime-types@3.0.1: - dependencies: - mime-db: 1.54.0 - - mimic-fn@2.1.0: {} - - mimic-function@5.0.1: {} - - mimic-response@3.1.0: {} - - min-document@2.19.0: - dependencies: - dom-walk: 0.1.2 - - min-indent@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 - - minimist-options@4.1.0: - dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - kind-of: 6.0.3 - - minimist@1.2.8: {} - - minipass@4.2.8: {} - - minipass@7.1.2: {} - - minizlib@3.0.2: - dependencies: - minipass: 7.1.2 - - mississippi@4.0.0: - dependencies: - concat-stream: 2.0.0 - duplexify: 4.1.3 - end-of-stream: 1.4.4 - flush-write-stream: 2.0.0 - from2: 2.3.0 - parallel-transform: 1.2.0 - pump: 3.0.2 - pumpify: 1.5.1 - stream-each: 1.2.3 - through2: 3.0.2 - - mitt@3.0.1: {} - - mj-context-menu@0.6.1: {} - - mkdirp-classic@0.5.3: {} - - mkdirp@3.0.1: {} - - module-alias@2.2.3: {} - - module-details-from-path@1.0.3: {} - - moment@2.30.1: {} - - morphologycorejs@0.1.12: {} - - morphoviewer@0.1.20: - dependencies: - codecutils: 0.1.3 - morphologycorejs: 0.1.12 - pako: 1.0.11 - parse-wavefront-obj: 1.0.3 - three: 0.96.0 - - motion-dom@12.18.1: - dependencies: - motion-utils: 12.18.1 - - motion-dom@12.19.0: - dependencies: - motion-utils: 12.19.0 - - motion-dom@12.6.3: - dependencies: - motion-utils: 12.6.3 - - motion-utils@12.18.1: {} - - motion-utils@12.19.0: {} - - motion-utils@12.6.3: {} - - mouse-change@1.4.0: - dependencies: - mouse-event: 1.0.5 - - mouse-event-offset@3.0.2: {} - - mouse-event@1.0.5: {} - - mouse-wheel@1.2.0: - dependencies: - right-now: 1.0.0 - signum: 1.0.0 - to-px: 1.0.1 - - mout@1.2.4: {} - - mrmime@2.0.1: {} - - ms@2.0.0: {} - - ms@2.1.3: {} - - msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3): - dependencies: - '@bundled-es-modules/cookie': 2.0.1 - '@bundled-es-modules/statuses': 1.0.1 - '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 5.1.9(@types/node@22.14.0) - '@mswjs/interceptors': 0.37.6 - '@open-draft/deferred-promise': 2.2.0 - '@open-draft/until': 2.1.0 - '@types/cookie': 0.6.0 - '@types/statuses': 2.0.5 - graphql: 16.10.0 - headers-polyfill: 4.0.3 - is-node-process: 1.2.0 - outvariant: 1.4.3 - path-to-regexp: 6.3.0 - picocolors: 1.1.1 - strict-event-emitter: 0.5.1 - type-fest: 4.39.1 - yargs: 17.7.2 - optionalDependencies: - typescript: 5.8.3 - transitivePeerDependencies: - - '@types/node' - - murmurhash-js@1.0.0: {} - - mute-stream@2.0.0: {} - - nano-pubsub@3.0.0: {} - - nanoid@3.3.11: {} - - nanoid@5.1.5: {} - - napi-build-utils@2.0.0: - optional: true - - native-promise-only@0.8.1: {} - - natural-compare@1.4.0: {} - - needle@2.9.1: - dependencies: - debug: 3.2.7 - iconv-lite: 0.4.24 - sax: 1.4.1 - transitivePeerDependencies: - - supports-color - - neo-async@2.6.2: {} - - next-auth@4.24.11(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - '@panva/hkdf': 1.2.1 - cookie: 0.7.2 - jose: 4.15.9 - next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1) - oauth: 0.9.15 - openid-client: 5.7.1 - preact: 10.26.5 - preact-render-to-string: 5.2.6(preact@10.26.5) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - uuid: 8.3.2 - - next-sanity-client@1.0.8(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1)): - dependencies: - next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1) - - next-sanity@9.12.0(@emotion/is-prop-valid@1.2.2)(@sanity/client@7.6.0)(@sanity/icons@3.7.4(react@19.1.0))(@sanity/types@3.94.2(@types/react@19.1.0))(@sanity/ui@2.16.2(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(sanity@3.94.2(@emotion/is-prop-valid@1.2.2)(@types/node@22.14.0)(@types/react@19.1.0)(immer@10.1.1)(jiti@2.4.2)(lightningcss@1.29.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1))(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(typescript@5.8.3): - dependencies: - '@portabletext/react': 3.2.1(react@19.1.0) - '@sanity/client': 7.6.0(debug@4.4.0) - '@sanity/icons': 3.7.4(react@19.1.0) - '@sanity/next-loader': 1.6.2(@sanity/types@3.94.2(@types/react@19.1.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react@19.1.0) - '@sanity/preview-kit': 6.1.1(@sanity/types@3.94.2(@types/react@19.1.0))(react@19.1.0) - '@sanity/preview-url-secret': 2.1.11(@sanity/client@7.6.0) - '@sanity/types': 3.94.2(@types/react@19.1.0)(debug@4.4.0) - '@sanity/ui': 2.16.2(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) - '@sanity/visual-editing': 2.15.0(@emotion/is-prop-valid@1.2.2)(@sanity/client@7.6.0)(@sanity/types@3.94.2(@types/react@19.1.0))(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(typescript@5.8.3) - groq: 3.92.0 - history: 5.3.0 - next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - sanity: 3.94.2(@emotion/is-prop-valid@1.2.2)(@types/node@22.14.0)(@types/react@19.1.0)(immer@10.1.1)(jiti@2.4.2)(lightningcss@1.29.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1) - styled-components: 6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - transitivePeerDependencies: - - '@emotion/is-prop-valid' - - '@remix-run/react' - - '@sveltejs/kit' - - debug - - react-is - - react-router - - svelte - - typescript - - next-tick@1.1.0: {} - - next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1): - dependencies: - '@next/env': 15.4.1 - '@swc/helpers': 0.5.15 - caniuse-lite: 1.0.30001713 - postcss: 8.4.31 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - styled-jsx: 5.1.6(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react@19.1.0) - optionalDependencies: - '@next/swc-darwin-arm64': 15.4.1 - '@next/swc-darwin-x64': 15.4.1 - '@next/swc-linux-arm64-gnu': 15.4.1 - '@next/swc-linux-arm64-musl': 15.4.1 - '@next/swc-linux-x64-gnu': 15.4.1 - '@next/swc-linux-x64-musl': 15.4.1 - '@next/swc-win32-arm64-msvc': 15.4.1 - '@next/swc-win32-x64-msvc': 15.4.1 - '@opentelemetry/api': 1.9.0 - '@playwright/test': 1.51.1 - sass: 1.92.1 - sharp: 0.34.3 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - - node-abi@3.74.0: - dependencies: - semver: 7.7.1 - optional: true - - node-addon-api@7.1.1: - optional: true - - node-fetch@2.7.0: - dependencies: - whatwg-url: 5.0.0 - - node-html-parser@6.1.13: - dependencies: - css-select: 5.1.0 - he: 1.2.0 - - node-int64@0.4.0: {} - - node-releases@2.0.19: {} - - normalize-package-data@2.5.0: - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.10 - semver: 5.7.2 - validate-npm-package-license: 3.0.4 - - normalize-package-data@3.0.3: - dependencies: - hosted-git-info: 4.1.0 - is-core-module: 2.16.1 - semver: 7.7.1 - validate-npm-package-license: 3.0.4 - - normalize-path@3.0.0: {} - - normalize-range@0.1.2: {} - - normalize-svg-path@0.1.0: {} - - normalize-svg-path@1.1.0: - dependencies: - svg-arc-to-cubic-bezier: 3.2.0 - - npm-run-path@3.1.0: - dependencies: - path-key: 3.1.1 - - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 - - nth-check@2.1.1: - dependencies: - boolbase: 1.0.0 - - number-is-integer@1.0.1: - dependencies: - is-finite: 1.1.0 - - nuqs@2.4.1(next@15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1))(react@19.1.0): - dependencies: - mitt: 3.0.1 - react: 19.1.0 - optionalDependencies: - next: 15.4.1(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1) - - nwsapi@2.2.20: {} - - oauth@0.9.15: {} - - object-assign@4.1.1: {} - - object-hash@2.2.0: {} - - object-inspect@1.13.4: {} - - object-keys@1.1.1: {} - - object.assign@4.1.7: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - has-symbols: 1.1.0 - object-keys: 1.1.1 - - object.entries@1.1.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - object.fromentries@2.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - - object.groupby@1.0.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - - object.values@1.2.1: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - observable-callback@1.0.3(rxjs@7.8.2): - dependencies: - rxjs: 7.8.2 - - oidc-token-hash@5.1.0: {} - - once@1.3.3: - dependencies: - wrappy: 1.0.2 - - once@1.4.0: - dependencies: - wrappy: 1.0.2 - - oneline@1.0.4: {} - - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - - onetime@7.0.0: - dependencies: - mimic-function: 5.0.1 - - open@8.4.2: - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - - opener@1.5.2: {} - - openid-client@5.7.1: - dependencies: - jose: 4.15.9 - lru-cache: 6.0.0 - object-hash: 2.2.0 - oidc-token-hash: 5.1.0 - - optics-ts@2.4.1: {} - - optionator@0.9.4: - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - - ora@5.4.1: - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - - ora@8.2.0: - dependencies: - chalk: 5.4.1 - cli-cursor: 5.0.0 - cli-spinners: 2.9.2 - is-interactive: 2.0.0 - is-unicode-supported: 2.1.0 - log-symbols: 6.0.0 - stdin-discarder: 0.2.2 - string-width: 7.2.0 - strip-ansi: 7.1.0 - - os-tmpdir@1.0.2: {} - - outvariant@1.4.3: {} - - own-keys@1.0.1: - dependencies: - get-intrinsic: 1.3.0 - object-keys: 1.1.1 - safe-push-apply: 1.0.0 - - oxc-resolver@11.4.0: - optionalDependencies: - '@oxc-resolver/binding-darwin-arm64': 11.4.0 - '@oxc-resolver/binding-darwin-x64': 11.4.0 - '@oxc-resolver/binding-freebsd-x64': 11.4.0 - '@oxc-resolver/binding-linux-arm-gnueabihf': 11.4.0 - '@oxc-resolver/binding-linux-arm64-gnu': 11.4.0 - '@oxc-resolver/binding-linux-arm64-musl': 11.4.0 - '@oxc-resolver/binding-linux-riscv64-gnu': 11.4.0 - '@oxc-resolver/binding-linux-s390x-gnu': 11.4.0 - '@oxc-resolver/binding-linux-x64-gnu': 11.4.0 - '@oxc-resolver/binding-linux-x64-musl': 11.4.0 - '@oxc-resolver/binding-wasm32-wasi': 11.4.0 - '@oxc-resolver/binding-win32-arm64-msvc': 11.4.0 - '@oxc-resolver/binding-win32-x64-msvc': 11.4.0 - - p-finally@2.0.1: {} - - p-limit@2.3.0: - dependencies: - p-try: 2.2.0 - - p-limit@3.1.0: - dependencies: - yocto-queue: 0.1.0 - - p-limit@4.0.0: - dependencies: - yocto-queue: 1.2.1 - - p-locate@3.0.0: - dependencies: - p-limit: 2.3.0 - - p-locate@4.1.0: - dependencies: - p-limit: 2.3.0 - - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - - p-locate@6.0.0: - dependencies: - p-limit: 4.0.0 - - p-map@1.2.0: {} - - p-map@7.0.3: {} - - p-queue@2.4.2: {} - - p-try@2.2.0: {} - - package-json-from-dist@1.0.1: {} - - pako@0.2.9: {} - - pako@1.0.11: {} - - pako@2.1.0: {} - - parallel-transform@1.2.0: - dependencies: - cyclist: 1.0.2 - inherits: 2.0.4 - readable-stream: 2.3.8 - - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - - parenthesis@3.1.8: {} - - parse-entities@2.0.0: - dependencies: - character-entities: 1.2.4 - character-entities-legacy: 1.1.4 - character-reference-invalid: 1.1.4 - is-alphanumerical: 1.0.4 - is-decimal: 1.0.4 - is-hexadecimal: 1.0.4 - - parse-entities@4.0.2: - dependencies: - '@types/unist': 2.0.11 - character-entities-legacy: 3.0.0 - character-reference-invalid: 2.0.1 - decode-named-character-reference: 1.1.0 - is-alphanumerical: 2.0.1 - is-decimal: 2.0.1 - is-hexadecimal: 2.0.1 - - parse-json@5.2.0: - dependencies: - '@babel/code-frame': 7.26.2 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - - parse-ms@2.1.0: {} - - parse-rect@1.2.0: - dependencies: - pick-by-alias: 1.2.0 - - parse-svg-path@0.1.2: {} - - parse-unit@1.0.1: {} - - parse-wavefront-obj@1.0.3: {} - - parse5@7.2.1: - dependencies: - entities: 4.5.0 - - path-exists@3.0.0: {} - - path-exists@4.0.0: {} - - path-exists@5.0.0: {} - - path-is-absolute@1.0.1: {} - - path-key@3.1.1: {} - - path-parse@1.0.7: {} - - path-scurry@1.11.1: - dependencies: - lru-cache: 10.4.3 - minipass: 7.1.2 - - path-scurry@2.0.0: - dependencies: - lru-cache: 11.1.0 - minipass: 7.1.2 - - path-to-regexp@6.3.0: {} - - path-type@4.0.0: {} - - path2d@0.2.2: - optional: true - - pathe@2.0.3: {} - - pathval@2.0.0: {} - - pbf@3.3.0: - dependencies: - ieee754: 1.2.1 - resolve-protobuf-schema: 2.1.0 - - pdfjs-dist@4.8.69: - optionalDependencies: - canvas: 3.1.0 - path2d: 0.2.2 - - peek-stream@1.1.3: - dependencies: - buffer-from: 1.1.2 - duplexify: 3.7.1 - through2: 2.0.5 - - pend@1.2.0: {} - - performance-now@2.1.0: {} - - performant-array-to-tree@1.11.0: {} - - pg-int8@1.0.1: {} - - pg-protocol@1.8.0: {} - - pg-types@2.2.0: - dependencies: - pg-int8: 1.0.1 - postgres-array: 2.0.0 - postgres-bytea: 1.0.0 - postgres-date: 1.0.7 - postgres-interval: 1.2.0 - - pick-by-alias@1.2.0: {} - - picocolors@1.1.1: {} - - picomatch@2.3.1: {} - - picomatch@4.0.2: {} - - pify@2.3.0: {} - - pify@3.0.0: {} - - pify@4.0.1: {} - - pinkie-promise@2.0.1: - dependencies: - pinkie: 2.0.4 - - pinkie@2.0.4: {} - - pirates@4.0.7: {} - - pkg-dir@3.0.0: - dependencies: - find-up: 3.0.0 - - pkg-dir@4.2.0: - dependencies: - find-up: 4.1.0 - - pkg-dir@5.0.0: - dependencies: - find-up: 5.0.0 - - playwright-core@1.51.1: {} - - playwright@1.51.1: - dependencies: - playwright-core: 1.51.1 - optionalDependencies: - fsevents: 2.3.2 - - plotly.js-dist-min@2.35.3: {} - - plotly.js@3.1.0(mapbox-gl@1.13.3): - dependencies: - '@plotly/d3': 3.8.2 - '@plotly/d3-sankey': 0.7.2 - '@plotly/d3-sankey-circular': 0.33.1 - '@plotly/mapbox-gl': 1.13.4(mapbox-gl@1.13.3) - '@plotly/regl': 2.1.2 - '@turf/area': 7.2.0 - '@turf/bbox': 7.2.0 - '@turf/centroid': 7.2.0 - base64-arraybuffer: 1.0.2 - canvas-fit: 1.5.0 - color-alpha: 1.0.4 - color-normalize: 1.5.0 - color-parse: 2.0.0 - color-rgba: 3.0.0 - country-regex: 1.1.0 - d3-force: 1.2.1 - d3-format: 1.4.5 - d3-geo: 1.12.1 - d3-geo-projection: 2.9.0 - d3-hierarchy: 1.1.9 - d3-interpolate: 3.0.1 - d3-time: 1.1.0 - d3-time-format: 2.3.0 - fast-isnumeric: 1.1.4 - gl-mat4: 1.2.0 - gl-text: 1.4.0 - has-hover: 1.0.1 - has-passive-events: 1.0.0 - is-mobile: 4.0.0 - maplibre-gl: 4.7.1 - mouse-change: 1.4.0 - mouse-event-offset: 3.0.2 - mouse-wheel: 1.2.0 - native-promise-only: 0.8.1 - parse-svg-path: 0.1.2 - point-in-polygon: 1.1.0 - polybooljs: 1.2.2 - probe-image-size: 7.2.3 - regl-error2d: 2.0.12 - regl-line2d: 3.1.3 - regl-scatter2d: 3.3.1 - regl-splom: 1.0.14 - strongly-connected-components: 1.0.1 - superscript-text: 1.0.0 - svg-path-sdf: 1.1.3 - tinycolor2: 1.6.0 - to-px: 1.0.1 - topojson-client: 3.1.0 - webgl-context: 2.2.0 - world-calendars: 1.0.4 - transitivePeerDependencies: - - mapbox-gl - - supports-color - - pluralize-esm@9.0.5: {} - - point-in-polygon@1.1.0: {} - - polished@4.3.1: - dependencies: - '@babel/runtime': 7.27.0 - - polybooljs@1.2.2: {} - - possible-typed-array-names@1.1.0: {} - - postcss-value-parser@4.2.0: {} - - postcss@8.4.31: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - postcss@8.4.49: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - postcss@8.5.3: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - postgres-array@2.0.0: {} - - postgres-bytea@1.0.0: {} - - postgres-date@1.0.7: {} - - postgres-interval@1.2.0: - dependencies: - xtend: 4.0.2 - - potpack@1.0.2: {} - - potpack@2.1.0: {} - - preact-render-to-string@5.2.6(preact@10.26.5): - dependencies: - preact: 10.26.5 - pretty-format: 3.8.0 - - preact@10.26.5: {} - - prebuild-install@7.1.3: - dependencies: - detect-libc: 2.0.3 - expand-template: 2.0.3 - github-from-package: 0.0.0 - minimist: 1.2.8 - mkdirp-classic: 0.5.3 - napi-build-utils: 2.0.0 - node-abi: 3.74.0 - pump: 3.0.2 - rc: 1.2.8 - simple-get: 4.0.1 - tar-fs: 2.1.2 - tunnel-agent: 0.6.0 - optional: true - - preferred-pm@4.1.1: - dependencies: - find-up-simple: 1.0.1 - find-yarn-workspace-root2: 1.2.16 - which-pm: 3.0.1 - - prelude-ls@1.2.1: {} - - prettier-plugin-tailwindcss@0.6.11(prettier@3.5.3): - dependencies: - prettier: 3.5.3 - - prettier@3.5.3: {} - - pretty-format@27.5.1: - dependencies: - ansi-regex: 5.0.1 - ansi-styles: 5.2.0 - react-is: 17.0.2 - - pretty-format@29.7.0: - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.3.1 - - pretty-format@3.8.0: {} - - pretty-ms@7.0.1: - dependencies: - parse-ms: 2.1.0 - - prismjs@1.27.0: {} - - prismjs@1.30.0: {} - - probe-image-size@7.2.3: - dependencies: - lodash.merge: 4.6.2 - needle: 2.9.1 - stream-parser: 0.3.1 - transitivePeerDependencies: - - supports-color - - process-nextick-args@2.0.1: {} - - process@0.11.10: {} - - progress@2.0.3: {} - - promise-worker-transferable@1.0.4: - dependencies: - is-promise: 2.2.2 - lie: 3.3.0 - - prompts@2.4.2: - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - - prop-types@15.8.1: - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - - property-information@5.6.0: - dependencies: - xtend: 4.0.2 - - property-information@6.5.0: {} - - property-information@7.0.0: {} - - protobufjs@7.5.4: - dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/base64': 1.1.2 - '@protobufjs/codegen': 2.0.4 - '@protobufjs/eventemitter': 1.1.0 - '@protobufjs/fetch': 1.1.0 - '@protobufjs/float': 1.0.2 - '@protobufjs/inquire': 1.1.0 - '@protobufjs/path': 1.1.2 - '@protobufjs/pool': 1.1.0 - '@protobufjs/utf8': 1.1.0 - '@types/node': 22.16.4 - long: 5.3.2 - - protocol-buffers-schema@3.6.0: {} - - proxy-from-env@1.1.0: {} - - psl@1.15.0: - dependencies: - punycode: 2.3.1 - - pump@2.0.1: - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - - pump@3.0.2: - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - - pumpify@1.5.1: - dependencies: - duplexify: 3.7.1 - inherits: 2.0.4 - pump: 2.0.1 - - punycode@2.3.1: {} - - pure-rand@6.1.0: {} - - querystringify@2.2.0: {} - - queue-microtask@1.2.3: {} - - quick-lru@4.0.1: {} - - quick-lru@5.1.1: {} - - quickselect@2.0.0: {} - - quickselect@3.0.0: {} - - raf@3.4.1: - dependencies: - performance-now: 2.1.0 - - randombytes@2.1.0: - dependencies: - safe-buffer: 5.2.1 - - raw-loader@4.0.2(webpack@5.99.5(esbuild@0.25.5)): - dependencies: - loader-utils: 2.0.4 - schema-utils: 3.3.0 - webpack: 5.99.5(esbuild@0.25.5) - - rc-cascader@3.33.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-select: 14.16.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-tree: 5.13.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-checkbox@3.5.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-collapse@3.9.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-dialog@9.6.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - '@rc-component/portal': 1.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-drawer@7.2.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - '@rc-component/portal': 1.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-dropdown@4.2.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - '@rc-component/trigger': 2.2.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-field-form@2.7.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - '@rc-component/async-validator': 5.0.4 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-image@7.11.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - '@rc-component/portal': 1.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - classnames: 2.5.1 - rc-dialog: 9.6.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-input-number@9.4.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - '@rc-component/mini-decimal': 1.1.0 - classnames: 2.5.1 - rc-input: 1.7.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-input@1.7.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-mentions@2.19.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - '@rc-component/trigger': 2.2.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - classnames: 2.5.1 - rc-input: 1.7.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-menu: 9.16.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-textarea: 1.9.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-menu@9.16.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - '@rc-component/trigger': 2.2.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-overflow: 1.4.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-motion@2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-notification@5.6.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-overflow@1.4.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-resize-observer: 1.4.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-pagination@5.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-picker@4.11.3(date-fns@4.1.0)(dayjs@1.11.13)(moment@2.30.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - '@rc-component/trigger': 2.2.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - classnames: 2.5.1 - rc-overflow: 1.4.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-resize-observer: 1.4.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - optionalDependencies: - date-fns: 4.1.0 - dayjs: 1.11.13 - moment: 2.30.1 - - rc-progress@4.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-rate@2.13.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-resize-observer@1.4.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - resize-observer-polyfill: 1.5.1 - - rc-segmented@2.7.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-select@14.16.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - '@rc-component/trigger': 2.2.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-overflow: 1.4.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-virtual-list: 3.18.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-slider@11.1.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-steps@6.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-switch@4.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-table@7.50.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - '@rc-component/context': 1.4.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - classnames: 2.5.1 - rc-resize-observer: 1.4.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-virtual-list: 3.18.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-tabs@15.5.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-dropdown: 4.2.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-menu: 9.16.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-resize-observer: 1.4.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-textarea@1.9.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-input: 1.7.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-resize-observer: 1.4.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-tooltip@6.4.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - '@rc-component/trigger': 2.2.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-tree-select@5.27.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-select: 14.16.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-tree: 5.13.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-tree@5.13.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-virtual-list: 3.18.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-upload@4.8.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc-util@5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - react-is: 18.3.1 - - rc-virtual-list@3.18.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - classnames: 2.5.1 - rc-resize-observer: 1.4.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - rc@1.2.8: - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.8 - strip-json-comments: 2.0.1 - optional: true - - react-base16-styling@0.9.1: - dependencies: - '@babel/runtime': 7.27.0 - '@types/base16': 1.0.5 - '@types/lodash': 4.17.16 - base16: 1.0.0 - color: 3.2.1 - csstype: 3.1.3 - lodash.curry: 4.1.1 - - react-canvas-confetti@2.0.7(react@19.1.0): - dependencies: - '@types/canvas-confetti': 1.9.0 - canvas-confetti: 1.9.3 - react: 19.1.0 - - react-clientside-effect@1.2.7(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - react: 19.1.0 - - react-compiler-runtime@19.1.0-rc.2(react@19.1.0): - dependencies: - react: 19.1.0 - - react-confetti@6.4.0(react@19.1.0): - dependencies: - react: 19.1.0 - tween-functions: 1.2.0 - - react-dom@19.1.0(react@19.1.0): - dependencies: - react: 19.1.0 - scheduler: 0.26.0 - - react-draggable@4.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - clsx: 1.2.1 - prop-types: 15.8.1 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - react-error-boundary@3.1.4(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - react: 19.1.0 - - react-error-boundary@5.0.0(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - react: 19.1.0 - - react-fast-compare@3.2.2: {} - - react-focus-lock@2.13.6(@types/react@19.1.0)(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - focus-lock: 1.3.6 - prop-types: 15.8.1 - react: 19.1.0 - react-clientside-effect: 1.2.7(react@19.1.0) - use-callback-ref: 1.3.3(@types/react@19.1.0)(react@19.1.0) - use-sidecar: 1.1.3(@types/react@19.1.0)(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - - react-i18next@14.0.2(i18next@23.16.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - html-parse-stringify: 3.0.1 - i18next: 23.16.8 - react: 19.1.0 - optionalDependencies: - react-dom: 19.1.0(react@19.1.0) - - react-intersection-observer@9.16.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - react: 19.1.0 - optionalDependencies: - react-dom: 19.1.0(react@19.1.0) - - react-ipynb-renderer@2.2.4(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - anser: 2.3.2 - isomorphic-dompurify: 2.23.0 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - react-markdown: 9.1.0(@types/react@19.1.0)(react@19.1.0) - react-syntax-highlighter: 15.6.1(react@19.1.0) - rehype-mathjax: 6.0.0 - rehype-raw: 7.0.0 - remark-gfm: 4.0.1 - remark-math: 6.0.0 - transitivePeerDependencies: - - '@types/react' - - bufferutil - - canvas - - supports-color - - utf-8-validate - - react-is@16.13.1: {} - - react-is@17.0.2: {} - - react-is@18.3.1: {} - - react-json-tree@0.18.0(@types/react@19.1.0)(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - '@types/lodash': 4.17.16 - '@types/react': 19.1.0 - react: 19.1.0 - react-base16-styling: 0.9.1 - - react-markdown@9.1.0(@types/react@19.1.0)(react@19.1.0): - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@types/react': 19.1.0 - devlop: 1.1.0 - hast-util-to-jsx-runtime: 2.3.6 - html-url-attributes: 3.0.1 - mdast-util-to-hast: 13.2.0 - react: 19.1.0 - remark-parse: 11.0.0 - remark-rehype: 11.1.2 - unified: 11.0.5 - unist-util-visit: 5.0.0 - vfile: 6.0.3 - transitivePeerDependencies: - - supports-color - - react-number-format@5.4.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - react-pdf@9.2.1(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - clsx: 2.1.1 - dequal: 2.0.3 - make-cancellable-promise: 1.3.2 - make-event-props: 1.6.2 - merge-refs: 1.3.0(@types/react@19.1.0) - pdfjs-dist: 4.8.69 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - tiny-invariant: 1.3.3 - warning: 4.0.3 - optionalDependencies: - '@types/react': 19.1.0 - - react-plotly.js@2.6.0(plotly.js@3.1.0(mapbox-gl@1.13.3))(react@19.1.0): - dependencies: - plotly.js: 3.1.0(mapbox-gl@1.13.3) - prop-types: 15.8.1 - react: 19.1.0 - - react-reconciler@0.31.0(react@19.1.0): - dependencies: - react: 19.1.0 - scheduler: 0.25.0 - - react-refractor@2.2.0(react@19.1.0): - dependencies: - react: 19.1.0 - refractor: 3.6.0 - unist-util-filter: 2.0.3 - unist-util-visit-parents: 3.1.1 - - react-refresh@0.17.0: {} - - react-remove-scroll-bar@2.3.8(@types/react@19.1.0)(react@19.1.0): - dependencies: - react: 19.1.0 - react-style-singleton: 2.2.3(@types/react@19.1.0)(react@19.1.0) - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.1.0 - - react-remove-scroll@2.6.3(@types/react@19.1.0)(react@19.1.0): - dependencies: - react: 19.1.0 - react-remove-scroll-bar: 2.3.8(@types/react@19.1.0)(react@19.1.0) - react-style-singleton: 2.2.3(@types/react@19.1.0)(react@19.1.0) - tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.1.0)(react@19.1.0) - use-sidecar: 1.1.3(@types/react@19.1.0)(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - - react-resizable-panels@2.0.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - react-resizable@3.0.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - prop-types: 15.8.1 - react: 19.1.0 - react-draggable: 4.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - transitivePeerDependencies: - - react-dom - - react-rx@4.1.30(react@19.1.0)(rxjs@7.8.2): - dependencies: - observable-callback: 1.0.3(rxjs@7.8.2) - react: 19.1.0 - react-compiler-runtime: 19.1.0-rc.2(react@19.1.0) - rxjs: 7.8.2 - use-effect-event: 2.0.2(react@19.1.0) - - react-select@5.10.1(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - '@emotion/cache': 11.14.0 - '@emotion/react': 11.14.0(@types/react@19.1.0)(react@19.1.0) - '@floating-ui/dom': 1.6.13 - '@types/react-transition-group': 4.4.12(@types/react@19.1.0) - memoize-one: 6.0.0 - prop-types: 15.8.1 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - react-transition-group: 4.4.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - use-isomorphic-layout-effect: 1.2.0(@types/react@19.1.0)(react@19.1.0) - transitivePeerDependencies: - - '@types/react' - - supports-color - - react-style-singleton@2.2.3(@types/react@19.1.0)(react@19.1.0): - dependencies: - get-nonce: 1.0.1 - react: 19.1.0 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.1.0 - - react-syntax-highlighter@15.6.1(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - highlight.js: 10.7.3 - highlightjs-vue: 1.0.0 - lowlight: 1.20.0 - prismjs: 1.30.0 - react: 19.1.0 - refractor: 3.6.0 - - react-textarea-autosize@8.5.9(@types/react@19.1.0)(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - react: 19.1.0 - use-composed-ref: 1.4.0(@types/react@19.1.0)(react@19.1.0) - use-latest: 1.3.0(@types/react@19.1.0)(react@19.1.0) - transitivePeerDependencies: - - '@types/react' - - react-transition-group@4.4.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.0 - dom-helpers: 5.2.1 - loose-envify: 1.4.0 - prop-types: 15.8.1 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - react-use-measure@2.1.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - react: 19.1.0 - optionalDependencies: - react-dom: 19.1.0(react@19.1.0) - - react@19.1.0: {} - - read-pkg-up@7.0.1: - dependencies: - find-up: 4.1.0 - read-pkg: 5.2.0 - type-fest: 0.8.1 - - read-pkg@5.2.0: - dependencies: - '@types/normalize-package-data': 2.4.4 - normalize-package-data: 2.5.0 - parse-json: 5.2.0 - type-fest: 0.6.0 - - readable-stream@1.0.34: - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 0.0.1 - string_decoder: 0.10.31 - - readable-stream@1.1.14: - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 0.0.1 - string_decoder: 0.10.31 - - readable-stream@2.3.8: - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - - readable-stream@3.6.2: - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - - readable-stream@4.7.0: - dependencies: - abort-controller: 3.0.0 - buffer: 6.0.3 - events: 3.3.0 - process: 0.11.10 - string_decoder: 1.3.0 - - readdir-glob@1.1.3: - dependencies: - minimatch: 5.1.6 - - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 - - readdirp@4.1.2: {} - - redent@3.0.0: - dependencies: - indent-string: 4.0.0 - strip-indent: 3.0.0 - - redeyed@2.1.1: - dependencies: - esprima: 4.0.1 - - redux@5.0.1: {} - - reflect.getprototypeof@1.0.10: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - which-builtin-type: 1.2.1 - - refractor@3.6.0: - dependencies: - hastscript: 6.0.0 - parse-entities: 2.0.0 - prismjs: 1.27.0 - - regenerate-unicode-properties@10.2.0: - dependencies: - regenerate: 1.4.2 - - regenerate@1.4.2: {} - - regenerator-runtime@0.14.1: {} - - regexp.prototype.flags@1.5.4: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-errors: 1.3.0 - get-proto: 1.0.1 - gopd: 1.2.0 - set-function-name: 2.0.2 - - regexpu-core@6.2.0: - dependencies: - regenerate: 1.4.2 - regenerate-unicode-properties: 10.2.0 - regjsgen: 0.8.0 - regjsparser: 0.12.0 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.2.0 - - regjsgen@0.8.0: {} - - regjsparser@0.12.0: - dependencies: - jsesc: 3.0.2 - - regl-error2d@2.0.12: - dependencies: - array-bounds: 1.0.1 - color-normalize: 1.5.0 - flatten-vertex-data: 1.0.2 - object-assign: 4.1.1 - pick-by-alias: 1.2.0 - to-float32: 1.1.0 - update-diff: 1.1.0 - - regl-line2d@3.1.3: - dependencies: - array-bounds: 1.0.1 - array-find-index: 1.0.2 - array-normalize: 1.1.4 - color-normalize: 1.5.0 - earcut: 2.2.4 - es6-weak-map: 2.0.3 - flatten-vertex-data: 1.0.2 - object-assign: 4.1.1 - parse-rect: 1.2.0 - pick-by-alias: 1.2.0 - to-float32: 1.1.0 - - regl-scatter2d@3.3.1: - dependencies: - '@plotly/point-cluster': 3.1.9 - array-range: 1.0.1 - array-rearrange: 2.2.2 - clamp: 1.0.1 - color-id: 1.1.0 - color-normalize: 1.5.0 - color-rgba: 2.4.0 - flatten-vertex-data: 1.0.2 - glslify: 7.1.1 - is-iexplorer: 1.0.0 - object-assign: 4.1.1 - parse-rect: 1.2.0 - pick-by-alias: 1.2.0 - to-float32: 1.1.0 - update-diff: 1.1.0 - - regl-splom@1.0.14: - dependencies: - array-bounds: 1.0.1 - array-range: 1.0.1 - color-alpha: 1.0.4 - flatten-vertex-data: 1.0.2 - parse-rect: 1.2.0 - pick-by-alias: 1.2.0 - raf: 3.4.1 - regl-scatter2d: 3.3.1 - - regl@2.1.1: {} - - rehype-katex@7.0.1: - dependencies: - '@types/hast': 3.0.4 - '@types/katex': 0.16.7 - hast-util-from-html-isomorphic: 2.0.0 - hast-util-to-text: 4.0.2 - katex: 0.16.22 - unist-util-visit-parents: 6.0.1 - vfile: 6.0.3 - - rehype-mathjax@6.0.0: - dependencies: - '@types/hast': 3.0.4 - '@types/mathjax': 0.0.40 - hast-util-from-dom: 5.0.1 - hast-util-to-text: 4.0.2 - jsdom: 23.2.0 - mathjax-full: 3.2.2 - unified: 11.0.5 - unist-util-visit-parents: 6.0.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - - rehype-raw@7.0.0: - dependencies: - '@types/hast': 3.0.4 - hast-util-raw: 9.1.0 - vfile: 6.0.3 - - remark-gfm@4.0.1: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-gfm: 3.1.0 - micromark-extension-gfm: 3.0.0 - remark-parse: 11.0.0 - remark-stringify: 11.0.0 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color - - remark-math@6.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-math: 3.0.0 - micromark-extension-math: 3.1.0 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color - - remark-parse@11.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.2 - micromark-util-types: 2.0.2 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color - - remark-rehype@11.1.2: - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - mdast-util-to-hast: 13.2.0 - unified: 11.0.5 - vfile: 6.0.3 - - remark-stringify@11.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-to-markdown: 2.1.2 - unified: 11.0.5 - - require-directory@2.1.1: {} - - require-from-string@2.0.2: {} - - require-in-the-middle@7.5.2: - dependencies: - debug: 4.4.0(supports-color@8.1.1) - module-details-from-path: 1.0.3 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - - requires-port@1.0.0: {} - - reselect@5.1.1: {} - - resize-observer-polyfill@1.5.1: {} - - resolve-cwd@3.0.0: - dependencies: - resolve-from: 5.0.0 - - resolve-from@4.0.0: {} - - resolve-from@5.0.0: {} - - resolve-pkg-maps@1.0.0: {} - - resolve-protobuf-schema@2.1.0: - dependencies: - protocol-buffers-schema: 3.6.0 - - resolve.exports@2.0.3: {} - - resolve@0.6.3: {} - - resolve@1.22.10: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - resolve@1.22.8: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - resolve@2.0.0-next.5: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - restore-cursor@3.1.0: - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - - restore-cursor@5.1.0: - dependencies: - onetime: 7.0.0 - signal-exit: 4.1.0 - - reusify@1.1.0: {} - - right-now@1.0.0: {} - - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - - rimraf@5.0.10: - dependencies: - glob: 10.4.5 - - rimraf@6.0.1: - dependencies: - glob: 11.0.1 - package-json-from-dist: 1.0.1 - - robust-predicates@3.0.2: {} - - rollup@4.35.0: - dependencies: - '@types/estree': 1.0.6 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.35.0 - '@rollup/rollup-android-arm64': 4.35.0 - '@rollup/rollup-darwin-arm64': 4.35.0 - '@rollup/rollup-darwin-x64': 4.35.0 - '@rollup/rollup-freebsd-arm64': 4.35.0 - '@rollup/rollup-freebsd-x64': 4.35.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.35.0 - '@rollup/rollup-linux-arm-musleabihf': 4.35.0 - '@rollup/rollup-linux-arm64-gnu': 4.35.0 - '@rollup/rollup-linux-arm64-musl': 4.35.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.35.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.35.0 - '@rollup/rollup-linux-riscv64-gnu': 4.35.0 - '@rollup/rollup-linux-s390x-gnu': 4.35.0 - '@rollup/rollup-linux-x64-gnu': 4.35.0 - '@rollup/rollup-linux-x64-musl': 4.35.0 - '@rollup/rollup-win32-arm64-msvc': 4.35.0 - '@rollup/rollup-win32-ia32-msvc': 4.35.0 - '@rollup/rollup-win32-x64-msvc': 4.35.0 - fsevents: 2.3.3 - - rollup@4.39.0: - dependencies: - '@types/estree': 1.0.7 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.39.0 - '@rollup/rollup-android-arm64': 4.39.0 - '@rollup/rollup-darwin-arm64': 4.39.0 - '@rollup/rollup-darwin-x64': 4.39.0 - '@rollup/rollup-freebsd-arm64': 4.39.0 - '@rollup/rollup-freebsd-x64': 4.39.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.39.0 - '@rollup/rollup-linux-arm-musleabihf': 4.39.0 - '@rollup/rollup-linux-arm64-gnu': 4.39.0 - '@rollup/rollup-linux-arm64-musl': 4.39.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.39.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.39.0 - '@rollup/rollup-linux-riscv64-gnu': 4.39.0 - '@rollup/rollup-linux-riscv64-musl': 4.39.0 - '@rollup/rollup-linux-s390x-gnu': 4.39.0 - '@rollup/rollup-linux-x64-gnu': 4.39.0 - '@rollup/rollup-linux-x64-musl': 4.39.0 - '@rollup/rollup-win32-arm64-msvc': 4.39.0 - '@rollup/rollup-win32-ia32-msvc': 4.39.0 - '@rollup/rollup-win32-x64-msvc': 4.39.0 - fsevents: 2.3.3 - - rrweb-cssom@0.6.0: {} - - rrweb-cssom@0.8.0: {} - - run-async@3.0.0: {} - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - rw@1.3.3: {} - - rxjs-exhaustmap-with-trailing@2.1.1(rxjs@7.8.2): - dependencies: - rxjs: 7.8.2 - - rxjs-mergemap-array@0.1.0(rxjs@7.8.2): - dependencies: - rxjs: 7.8.2 - - rxjs@7.8.2: - dependencies: - tslib: 2.8.1 - - safe-array-concat@1.1.3: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - has-symbols: 1.1.0 - isarray: 2.0.5 - - safe-buffer@5.1.2: {} - - safe-buffer@5.2.1: {} - - safe-push-apply@1.0.0: - dependencies: - es-errors: 1.3.0 - isarray: 2.0.5 - - safe-regex-test@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-regex: 1.2.1 - - safer-buffer@2.1.2: {} - - sanity@3.94.2(@emotion/is-prop-valid@1.2.2)(@types/node@22.14.0)(@types/react@19.1.0)(immer@10.1.1)(jiti@2.4.2)(lightningcss@1.29.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.92.1)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1): - dependencies: - '@dnd-kit/core': 6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@dnd-kit/modifiers': 6.0.1(@dnd-kit/core@6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0) - '@dnd-kit/sortable': 7.0.2(@dnd-kit/core@6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0) - '@dnd-kit/utilities': 3.2.2(react@19.1.0) - '@juggle/resize-observer': 3.4.0 - '@portabletext/block-tools': 1.1.32(@sanity/types@3.94.2(@types/react@19.1.0))(@types/react@19.1.0) - '@portabletext/editor': 1.55.5(@sanity/schema@3.94.2(@types/react@19.1.0)(debug@4.4.0))(@sanity/types@3.94.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rxjs@7.8.2) - '@portabletext/react': 3.2.1(react@19.1.0) - '@portabletext/toolkit': 2.0.17 - '@rexxars/react-json-inspector': 9.0.1(react@19.1.0) - '@sanity/asset-utils': 2.2.1 - '@sanity/bifur-client': 0.4.1 - '@sanity/cli': 3.94.2(@types/node@22.14.0)(@types/react@19.1.0)(lightningcss@1.29.2)(react@19.1.0)(sass@1.92.1)(terser@5.43.1)(typescript@5.8.3)(yaml@2.7.1) - '@sanity/client': 7.6.0(debug@4.4.0) - '@sanity/color': 3.0.6 - '@sanity/comlink': 3.0.5 - '@sanity/diff': 3.94.2 - '@sanity/diff-match-patch': 3.2.0 - '@sanity/diff-patch': 5.0.0 - '@sanity/eventsource': 5.0.2 - '@sanity/export': 3.45.1(@types/react@19.1.0) - '@sanity/icons': 3.7.4(react@19.1.0) - '@sanity/id-utils': 1.0.0 - '@sanity/image-url': 1.1.0 - '@sanity/import': 3.38.2(@types/react@19.1.0) - '@sanity/insert-menu': 1.1.12(@emotion/is-prop-valid@1.2.2)(@sanity/types@3.94.2(@types/react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) - '@sanity/logos': 2.2.1(@sanity/color@3.0.6)(react@19.1.0) - '@sanity/media-library-types': 1.0.0 - '@sanity/message-protocol': 0.13.3 - '@sanity/migrate': 3.94.2(@types/react@19.1.0) - '@sanity/mutator': 3.94.2(@types/react@19.1.0) - '@sanity/presentation-comlink': 1.0.21(@sanity/client@7.6.0)(@sanity/types@3.94.2(@types/react@19.1.0)) - '@sanity/preview-url-secret': 2.1.11(@sanity/client@7.6.0) - '@sanity/schema': 3.94.2(@types/react@19.1.0)(debug@4.4.0) - '@sanity/sdk': 0.0.0-alpha.25(@types/react@19.1.0)(debug@4.4.0)(immer@10.1.1)(react@19.1.0)(use-sync-external-store@1.5.0(react@19.1.0)) - '@sanity/telemetry': 0.8.1(react@19.1.0) - '@sanity/types': 3.94.2(@types/react@19.1.0)(debug@4.4.0) - '@sanity/ui': 2.16.2(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react-is@18.3.1)(react@19.1.0)(styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) - '@sanity/util': 3.94.2(@types/react@19.1.0)(debug@4.4.0) - '@sanity/uuid': 3.0.2 - '@sentry/react': 8.55.0(react@19.1.0) - '@tanstack/react-table': 8.21.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@tanstack/react-virtual': 3.13.11(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@types/react-is': 19.0.0 - '@types/shallow-equals': 1.0.3 - '@types/speakingurl': 13.0.6 - '@types/tar-stream': 3.1.3 - '@types/use-sync-external-store': 1.5.0 - '@types/which': 3.0.4 - '@vitejs/plugin-react': 4.6.0(vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1)) - '@xstate/react': 6.0.0(@types/react@19.1.0)(react@19.1.0)(xstate@5.20.0) - archiver: 7.0.1 - arrify: 2.0.1 - async-mutex: 0.4.1 - chalk: 4.1.2 - chokidar: 3.6.0 - classnames: 2.5.1 - color2k: 2.0.3 - configstore: 5.0.1 - console-table-printer: 2.12.1 - dataloader: 2.2.3 - date-fns: 2.30.0 - debug: 4.4.0(supports-color@8.1.1) - esbuild: 0.25.5 - esbuild-register: 3.6.0(esbuild@0.25.5) - execa: 2.1.0 - exif-component: 1.0.1 - fast-deep-equal: 3.1.3 - form-data: 4.0.2 - framer-motion: 12.19.1(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - get-it: 8.6.9(debug@4.4.0) - get-random-values-esm: 1.0.2 - groq-js: 1.17.1 - gunzip-maybe: 1.4.2 - history: 5.3.0 - i18next: 23.16.8 - import-fresh: 3.3.1 - is-hotkey-esm: 1.0.0 - is-tar: 1.0.0 - isomorphic-dompurify: 2.23.0 - jsdom: 23.2.0 - jsdom-global: 3.0.2(jsdom@23.2.0) - json-lexer: 1.2.0 - json-reduce: 3.0.0 - json5: 2.2.3 - lodash: 4.17.21 - log-symbols: 2.2.0 - mendoza: 3.0.8 - module-alias: 2.2.3 - nano-pubsub: 3.0.0 - nanoid: 3.3.11 - node-html-parser: 6.1.13 - observable-callback: 1.0.3(rxjs@7.8.2) - oneline: 1.0.4 - open: 8.4.2 - p-map: 7.0.3 - path-to-regexp: 6.3.0 - peek-stream: 1.1.3 - pirates: 4.0.7 - pluralize-esm: 9.0.5 - polished: 4.3.1 - preferred-pm: 4.1.1 - pretty-ms: 7.0.1 - quick-lru: 5.1.1 - raf: 3.4.1 - react: 19.1.0 - react-compiler-runtime: 19.1.0-rc.2(react@19.1.0) - react-dom: 19.1.0(react@19.1.0) - react-fast-compare: 3.2.2 - react-focus-lock: 2.13.6(@types/react@19.1.0)(react@19.1.0) - react-i18next: 14.0.2(i18next@23.16.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react-is: 18.3.1 - react-refractor: 2.2.0(react@19.1.0) - react-rx: 4.1.30(react@19.1.0)(rxjs@7.8.2) - read-pkg-up: 7.0.1 - refractor: 3.6.0 - resolve-from: 5.0.0 - resolve.exports: 2.0.3 - rimraf: 5.0.10 - rxjs: 7.8.2 - rxjs-exhaustmap-with-trailing: 2.1.1(rxjs@7.8.2) - rxjs-mergemap-array: 0.1.0(rxjs@7.8.2) - scroll-into-view-if-needed: 3.1.0 - scrollmirror: 1.2.3 - semver: 7.7.1 - shallow-equals: 1.0.0 - speakingurl: 14.0.1 - styled-components: 6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - tar-fs: 2.1.2 - tar-stream: 3.1.7 - tinyglobby: 0.2.14 - urlpattern-polyfill: 10.1.0 - use-device-pixel-ratio: 1.1.2(react@19.1.0) - use-effect-event: 2.0.2(react@19.1.0) - use-hot-module-reload: 2.0.0(react@19.1.0) - use-sync-external-store: 1.5.0(react@19.1.0) - uuid: 11.1.0 - vite: 6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1) - which: 5.0.0 - xstate: 5.20.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@emotion/is-prop-valid' - - '@types/node' - - '@types/react' - - bufferutil - - canvas - - immer - - jiti - - less - - lightningcss - - react-native - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - typescript - - utf-8-validate - - yaml - - sass@1.92.1: - dependencies: - chokidar: 4.0.3 - immutable: 5.1.3 - source-map-js: 1.2.1 - optionalDependencies: - '@parcel/watcher': 2.5.1 - - sax@1.4.1: {} - - saxes@6.0.0: - dependencies: - xmlchars: 2.2.0 - - scheduler@0.25.0: {} - - scheduler@0.26.0: {} - - schema-utils@3.3.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - - schema-utils@4.3.2: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 8.17.1 - ajv-formats: 2.1.1(ajv@8.17.1) - ajv-keywords: 5.1.0(ajv@8.17.1) - - scroll-into-view-if-needed@3.1.0: - dependencies: - compute-scroll-into-view: 3.1.1 - - scrollmirror@1.2.3: {} - - secure-json-parse@2.7.0: {} - - seek-bzip@1.0.6: - dependencies: - commander: 2.20.3 - - semver@5.7.2: {} - - semver@6.3.1: {} - - semver@7.7.1: {} - - semver@7.7.2: {} - - serialize-javascript@6.0.2: - dependencies: - randombytes: 2.1.0 - - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - - set-function-name@2.0.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.2 - - set-proto@1.0.0: - dependencies: - dunder-proto: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - - setimmediate@1.0.5: {} - - sha256-uint8array@0.10.7: {} - - shallow-clone@3.0.1: - dependencies: - kind-of: 6.0.3 - - shallow-copy@0.0.1: {} - - shallow-equals@1.0.0: {} - - shallowequal@1.1.0: {} - - sharp@0.34.1: - dependencies: - color: 4.2.3 - detect-libc: 2.0.3 - semver: 7.7.1 - optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.1 - '@img/sharp-darwin-x64': 0.34.1 - '@img/sharp-libvips-darwin-arm64': 1.1.0 - '@img/sharp-libvips-darwin-x64': 1.1.0 - '@img/sharp-libvips-linux-arm': 1.1.0 - '@img/sharp-libvips-linux-arm64': 1.1.0 - '@img/sharp-libvips-linux-ppc64': 1.1.0 - '@img/sharp-libvips-linux-s390x': 1.1.0 - '@img/sharp-libvips-linux-x64': 1.1.0 - '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 - '@img/sharp-libvips-linuxmusl-x64': 1.1.0 - '@img/sharp-linux-arm': 0.34.1 - '@img/sharp-linux-arm64': 0.34.1 - '@img/sharp-linux-s390x': 0.34.1 - '@img/sharp-linux-x64': 0.34.1 - '@img/sharp-linuxmusl-arm64': 0.34.1 - '@img/sharp-linuxmusl-x64': 0.34.1 - '@img/sharp-wasm32': 0.34.1 - '@img/sharp-win32-ia32': 0.34.1 - '@img/sharp-win32-x64': 0.34.1 - - sharp@0.34.3: - dependencies: - color: 4.2.3 - detect-libc: 2.0.4 - semver: 7.7.2 - optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.3 - '@img/sharp-darwin-x64': 0.34.3 - '@img/sharp-libvips-darwin-arm64': 1.2.0 - '@img/sharp-libvips-darwin-x64': 1.2.0 - '@img/sharp-libvips-linux-arm': 1.2.0 - '@img/sharp-libvips-linux-arm64': 1.2.0 - '@img/sharp-libvips-linux-ppc64': 1.2.0 - '@img/sharp-libvips-linux-s390x': 1.2.0 - '@img/sharp-libvips-linux-x64': 1.2.0 - '@img/sharp-libvips-linuxmusl-arm64': 1.2.0 - '@img/sharp-libvips-linuxmusl-x64': 1.2.0 - '@img/sharp-linux-arm': 0.34.3 - '@img/sharp-linux-arm64': 0.34.3 - '@img/sharp-linux-ppc64': 0.34.3 - '@img/sharp-linux-s390x': 0.34.3 - '@img/sharp-linux-x64': 0.34.3 - '@img/sharp-linuxmusl-arm64': 0.34.3 - '@img/sharp-linuxmusl-x64': 0.34.3 - '@img/sharp-wasm32': 0.34.3 - '@img/sharp-win32-arm64': 0.34.3 - '@img/sharp-win32-ia32': 0.34.3 - '@img/sharp-win32-x64': 0.34.3 - optional: true - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - shimmer@1.2.1: {} - - side-channel-list@1.0.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - - side-channel-map@1.0.1: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - - side-channel-weakmap@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - 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 - - siginfo@2.0.0: {} - - signal-exit@3.0.7: {} - - signal-exit@4.1.0: {} - - signum@1.0.0: {} - - simple-concat@1.0.1: - optional: true - - simple-get@4.0.1: - dependencies: - decompress-response: 6.0.0 - once: 1.4.0 - simple-concat: 1.0.1 - optional: true - - simple-swizzle@0.2.2: - dependencies: - is-arrayish: 0.3.2 - - simple-wcswidth@1.0.1: {} - - sirv@2.0.4: - dependencies: - '@polka/url': 1.0.0-next.29 - mrmime: 2.0.1 - totalist: 3.0.1 - - sisteransi@1.0.5: {} - - slash@3.0.0: {} - - slate-dom@0.116.0(slate@0.117.0): - dependencies: - '@juggle/resize-observer': 3.4.0 - direction: 1.0.4 - is-hotkey: 0.2.0 - is-plain-object: 5.0.0 - lodash: 4.17.21 - scroll-into-view-if-needed: 3.1.0 - slate: 0.117.0 - tiny-invariant: 1.3.1 - - slate-react@0.117.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0): - dependencies: - '@juggle/resize-observer': 3.4.0 - direction: 1.0.4 - is-hotkey: 0.2.0 - lodash: 4.17.21 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - scroll-into-view-if-needed: 3.1.0 - slate: 0.117.0 - slate-dom: 0.116.0(slate@0.117.0) - tiny-invariant: 1.3.1 - - slate@0.117.0: - dependencies: - immer: 10.1.1 - tiny-warning: 1.0.3 - - smol-toml@1.4.1: {} - - source-map-js@1.2.1: {} - - source-map-support@0.5.13: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - - source-map-support@0.5.21: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - - source-map@0.5.7: {} - - source-map@0.6.1: {} - - space-separated-tokens@1.1.5: {} - - space-separated-tokens@2.0.2: {} - - spdx-correct@3.2.0: - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.21 - - 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.21: {} - - speakingurl@14.0.1: {} - - speech-rule-engine@4.0.7: - dependencies: - commander: 9.2.0 - wicked-good-xpath: 1.3.0 - xmldom-sre: 0.1.31 - - split2@4.2.0: {} - - sprintf-js@1.0.3: {} - - stable-hash@0.0.5: {} - - stack-trace@0.0.9: {} - - stack-utils@2.0.6: - dependencies: - escape-string-regexp: 2.0.0 - - stackback@0.0.2: {} - - stacktrace-parser@0.1.11: - dependencies: - type-fest: 0.7.1 - - static-eval@2.1.1: - dependencies: - escodegen: 2.1.0 - - stats-gl@2.4.2(@types/three@0.159.0)(three@0.159.0): - dependencies: - '@types/three': 0.159.0 - three: 0.159.0 - - stats.js@0.17.0: {} - - statuses@2.0.1: {} - - std-env@3.9.0: {} - - stdin-discarder@0.2.2: {} - - stream-each@1.2.3: - dependencies: - end-of-stream: 1.4.4 - stream-shift: 1.0.3 - - stream-parser@0.3.1: - dependencies: - debug: 2.6.9 - transitivePeerDependencies: - - supports-color - - stream-shift@1.0.3: {} - - streamx@2.22.0: - dependencies: - fast-fifo: 1.3.2 - text-decoder: 1.2.3 - optionalDependencies: - bare-events: 2.5.4 - - strict-event-emitter@0.5.1: {} - - string-convert@0.2.1: {} - - string-length@4.0.2: - dependencies: - char-regex: 1.0.2 - strip-ansi: 6.0.1 - - string-split-by@1.0.0: - dependencies: - parenthesis: 3.1.8 - - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - - string-width@7.2.0: - dependencies: - emoji-regex: 10.4.0 - get-east-asian-width: 1.3.0 - strip-ansi: 7.1.0 - - string.prototype.includes@2.0.1: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - - string.prototype.matchall@4.0.12: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-symbols: 1.1.0 - internal-slot: 1.1.0 - regexp.prototype.flags: 1.5.4 - set-function-name: 2.0.2 - side-channel: 1.1.0 - - string.prototype.repeat@1.0.0: - dependencies: - define-properties: 1.2.1 - es-abstract: 1.23.9 - - string.prototype.trim@1.2.10: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-data-property: 1.1.4 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - has-property-descriptors: 1.0.2 - - string.prototype.trimend@1.0.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - string.prototype.trimstart@1.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - string_decoder@0.10.31: {} - - string_decoder@1.1.1: - dependencies: - safe-buffer: 5.1.2 - - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 - - stringify-entities@4.0.4: - dependencies: - character-entities-html4: 2.1.0 - character-entities-legacy: 3.0.0 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - strip-ansi@7.1.0: - dependencies: - ansi-regex: 6.1.0 - - strip-bom@3.0.0: {} - - strip-bom@4.0.0: {} - - strip-dirs@2.1.0: - dependencies: - is-natural-number: 4.0.1 - - strip-final-newline@2.0.0: {} - - strip-indent@3.0.0: - dependencies: - min-indent: 1.0.1 - - strip-json-comments@2.0.1: - optional: true - - strip-json-comments@3.1.1: {} - - strip-json-comments@5.0.2: {} - - strongly-connected-components@1.0.1: {} - - style-to-js@1.1.16: - dependencies: - style-to-object: 1.0.8 - - style-to-object@1.0.8: - dependencies: - inline-style-parser: 0.2.4 - - styled-components@6.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@emotion/is-prop-valid': 1.2.2 - '@emotion/unitless': 0.8.1 - '@types/stylis': 4.2.5 - css-to-react-native: 3.2.0 - csstype: 3.1.3 - postcss: 8.4.49 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - shallowequal: 1.1.0 - stylis: 4.3.2 - tslib: 2.6.2 - - styled-jsx@5.1.6(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react@19.1.0): - dependencies: - client-only: 0.0.1 - react: 19.1.0 - optionalDependencies: - '@babel/core': 7.27.4 - babel-plugin-macros: 3.1.0 - - stylis@4.2.0: {} - - stylis@4.3.2: {} - - stylis@4.3.6: {} - - supercluster@7.1.5: - dependencies: - kdbush: 3.0.0 - - supercluster@8.0.1: - dependencies: - kdbush: 4.0.2 - - superjson@2.2.2: - dependencies: - copy-anything: 3.0.5 - - superscript-text@1.0.0: {} - - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 - - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - - supports-color@8.1.1: - dependencies: - has-flag: 4.0.0 - - supports-preserve-symlinks-flag@1.0.0: {} - - suspend-react@0.1.3(react@19.1.0): - dependencies: - react: 19.1.0 - - svg-arc-to-cubic-bezier@3.2.0: {} - - svg-path-bounds@1.0.2: - dependencies: - abs-svg-path: 0.1.1 - is-svg-path: 1.0.2 - normalize-svg-path: 1.1.0 - parse-svg-path: 0.1.2 - - svg-path-sdf@1.1.3: - dependencies: - bitmap-sdf: 1.0.4 - draw-svg-path: 1.0.0 - is-svg-path: 1.0.2 - parse-svg-path: 0.1.2 - svg-path-bounds: 1.0.2 - - swiper@11.2.6: {} - - swr@2.3.3(react@19.1.0): - dependencies: - dequal: 2.0.3 - react: 19.1.0 - use-sync-external-store: 1.5.0(react@19.1.0) - - symbol-tree@3.2.4: {} - - tabbable@6.2.0: {} - - table-layout@4.1.1: - dependencies: - array-back: 6.2.2 - wordwrapjs: 5.1.0 - - tailwindcss@4.1.3: {} - - tapable@2.2.1: {} - - tapable@2.2.2: {} - - tar-fs@2.1.2: - dependencies: - chownr: 1.1.4 - mkdirp-classic: 0.5.3 - pump: 3.0.2 - tar-stream: 2.2.0 - - tar-stream@1.6.2: - dependencies: - bl: 1.2.3 - buffer-alloc: 1.2.0 - end-of-stream: 1.4.4 - fs-constants: 1.0.0 - readable-stream: 2.3.8 - to-buffer: 1.1.1 - xtend: 4.0.2 - - tar-stream@2.2.0: - dependencies: - bl: 4.1.0 - end-of-stream: 1.4.4 - fs-constants: 1.0.0 - inherits: 2.0.4 - readable-stream: 3.6.2 - - tar-stream@3.1.7: - dependencies: - b4a: 1.6.7 - fast-fifo: 1.3.2 - streamx: 2.22.0 - - tar@7.4.3: - dependencies: - '@isaacs/fs-minipass': 4.0.1 - chownr: 3.0.0 - minipass: 7.1.2 - minizlib: 3.0.2 - mkdirp: 3.0.1 - yallist: 5.0.0 - - terser-webpack-plugin@5.3.14(esbuild@0.25.5)(webpack@5.99.5(esbuild@0.25.5)): - dependencies: - '@jridgewell/trace-mapping': 0.3.29 - jest-worker: 27.5.1 - schema-utils: 4.3.2 - serialize-javascript: 6.0.2 - terser: 5.43.1 - webpack: 5.99.5(esbuild@0.25.5) - optionalDependencies: - esbuild: 0.25.5 - - terser@5.43.1: - dependencies: - '@jridgewell/source-map': 0.3.10 - acorn: 8.15.0 - commander: 2.20.3 - source-map-support: 0.5.21 - - test-exclude@6.0.0: - dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 7.2.3 - minimatch: 3.1.2 - - text-decoder@1.2.3: - dependencies: - b4a: 1.6.7 - - text-table@0.2.0: {} - - texture-compressor@1.0.2: - dependencies: - argparse: 1.0.10 - image-size: 0.7.5 - - three-mesh-bvh@0.8.3(three@0.159.0): - dependencies: - three: 0.159.0 - - three-stdlib@2.35.15(three@0.159.0): - dependencies: - '@types/draco3d': 1.4.10 - '@types/offscreencanvas': 2019.7.3 - '@types/webxr': 0.5.21 - draco3d: 1.5.7 - fflate: 0.6.10 - potpack: 1.0.2 - three: 0.159.0 - - three@0.159.0: {} - - three@0.96.0: {} - - throttle-debounce@5.0.2: {} - - throttleit@2.1.0: {} - - through2@0.6.5: - dependencies: - readable-stream: 1.0.34 - xtend: 4.0.2 - - through2@2.0.5: - dependencies: - readable-stream: 2.3.8 - xtend: 4.0.2 - - through2@3.0.2: - dependencies: - inherits: 2.0.4 - readable-stream: 3.6.2 - - through2@4.0.2: - dependencies: - readable-stream: 3.6.2 - - through@2.3.8: {} - - tiny-invariant@1.3.1: {} - - tiny-invariant@1.3.3: {} - - tiny-warning@1.0.3: {} - - tinybench@2.9.0: {} - - tinycolor2@1.6.0: {} - - tinyexec@0.3.2: {} - - tinyglobby@0.2.12: - dependencies: - fdir: 6.4.3(picomatch@4.0.2) - picomatch: 4.0.2 - - tinyglobby@0.2.14: - dependencies: - fdir: 6.4.6(picomatch@4.0.2) - picomatch: 4.0.2 - - tinypool@1.0.2: {} - - tinyqueue@2.0.3: {} - - tinyqueue@3.0.0: {} - - tinyrainbow@2.0.0: {} - - tinyspy@3.0.2: {} - - tldts-core@6.1.85: {} - - tldts@6.1.85: - dependencies: - tldts-core: 6.1.85 - - tmp@0.0.33: - dependencies: - os-tmpdir: 1.0.2 - - tmpl@1.0.5: {} - - to-buffer@1.1.1: {} - - to-float32@1.1.0: {} - - to-px@1.0.1: - dependencies: - parse-unit: 1.0.1 - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - toggle-selection@1.0.6: {} - - topojson-client@3.1.0: - dependencies: - commander: 2.20.3 - - totalist@3.0.1: {} - - tough-cookie@4.1.4: - dependencies: - psl: 1.15.0 - punycode: 2.3.1 - universalify: 0.2.0 - url-parse: 1.5.10 - - tough-cookie@5.1.2: - dependencies: - tldts: 6.1.85 - - tr46@0.0.3: {} - - tr46@3.0.0: - dependencies: - punycode: 2.3.1 - - tr46@5.1.0: - dependencies: - punycode: 2.3.1 - - traverse@0.6.11: - dependencies: - gopd: 1.2.0 - typedarray.prototype.slice: 1.0.5 - which-typed-array: 1.1.19 - - trim-lines@3.0.1: {} - - trim-newlines@3.0.1: {} - - troika-three-text@0.52.4(three@0.159.0): - dependencies: - bidi-js: 1.0.3 - three: 0.159.0 - troika-three-utils: 0.52.4(three@0.159.0) - troika-worker-utils: 0.52.0 - webgl-sdf-generator: 1.1.1 - - troika-three-utils@0.52.4(three@0.159.0): - dependencies: - three: 0.159.0 - - troika-worker-utils@0.52.0: {} - - trough@2.2.0: {} - - ts-api-utils@1.4.3(typescript@5.8.3): - dependencies: - typescript: 5.8.3 - - ts-api-utils@2.1.0(typescript@5.8.3): - dependencies: - typescript: 5.8.3 - - ts-brand@0.2.0: {} - - ts-pattern@5.7.0: {} - - tsconfck@3.1.5(typescript@5.8.3): - optionalDependencies: - typescript: 5.8.3 - - tsconfig-paths@3.15.0: - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 - - tsconfig-paths@4.2.0: - dependencies: - json5: 2.2.3 - minimist: 1.2.8 - strip-bom: 3.0.0 - - tslib@2.6.2: {} - - tslib@2.8.1: {} - - tunnel-agent@0.6.0: - dependencies: - safe-buffer: 5.2.1 - - tunnel-rat@0.1.2(@types/react@19.1.0)(immer@10.1.1)(react@19.1.0): - dependencies: - zustand: 4.5.6(@types/react@19.1.0)(immer@10.1.1)(react@19.1.0) - transitivePeerDependencies: - - '@types/react' - - immer - - react - - tunnel@0.0.6: {} - - tween-functions@1.2.0: {} - - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - - type-detect@4.0.8: {} - - type-fest@0.18.1: {} - - type-fest@0.20.2: {} - - type-fest@0.21.3: {} - - type-fest@0.6.0: {} - - type-fest@0.7.1: {} - - type-fest@0.8.1: {} - - type-fest@4.39.1: {} - - type@2.7.3: {} - - typed-array-buffer@1.0.3: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-typed-array: 1.1.15 - - typed-array-byte-length@1.0.3: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - - typed-array-byte-offset@1.0.4: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - reflect.getprototypeof: 1.0.10 - - typed-array-length@1.0.7: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - is-typed-array: 1.1.15 - possible-typed-array-names: 1.1.0 - reflect.getprototypeof: 1.0.10 - - typedarray-pool@1.2.0: - dependencies: - bit-twiddle: 1.0.2 - dup: 1.0.0 - - typedarray-to-buffer@3.1.5: - dependencies: - is-typedarray: 1.0.0 - - typedarray.prototype.slice@1.0.5: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - get-proto: 1.0.1 - math-intrinsics: 1.1.0 - typed-array-buffer: 1.0.3 - typed-array-byte-offset: 1.0.4 - - typedarray@0.0.6: {} - - typeid-js@0.3.0: - dependencies: - uuidv7: 0.4.4 - - typescript@5.8.3: {} - - typical@7.3.0: {} - - unbox-primitive@1.1.0: - dependencies: - call-bound: 1.0.4 - has-bigints: 1.1.0 - has-symbols: 1.1.0 - which-boxed-primitive: 1.1.1 - - unbzip2-stream@1.4.3: - dependencies: - buffer: 5.7.1 - through: 2.3.8 - - undici-types@6.19.8: {} - - undici-types@6.21.0: {} - - undici@5.29.0: - dependencies: - '@fastify/busboy': 2.1.1 - - unicode-canonical-property-names-ecmascript@2.0.1: {} - - unicode-match-property-ecmascript@2.0.0: - dependencies: - unicode-canonical-property-names-ecmascript: 2.0.1 - unicode-property-aliases-ecmascript: 2.1.0 - - unicode-match-property-value-ecmascript@2.2.0: {} - - unicode-property-aliases-ecmascript@2.1.0: {} - - unicorn-magic@0.1.0: {} - - unified@11.0.5: - dependencies: - '@types/unist': 3.0.3 - bail: 2.0.2 - devlop: 1.1.0 - extend: 3.0.2 - is-plain-obj: 4.1.0 - trough: 2.2.0 - vfile: 6.0.3 - - unique-string@2.0.0: - dependencies: - crypto-random-string: 2.0.0 - - unist-util-filter@2.0.3: - dependencies: - unist-util-is: 4.1.0 - - unist-util-find-after@5.0.0: - dependencies: - '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - - unist-util-is@4.1.0: {} - - unist-util-is@6.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-position@5.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-remove-position@5.0.0: - dependencies: - '@types/unist': 3.0.3 - unist-util-visit: 5.0.0 - - unist-util-stringify-position@4.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-visit-parents@3.1.1: - dependencies: - '@types/unist': 2.0.11 - unist-util-is: 4.1.0 - - unist-util-visit-parents@6.0.1: - dependencies: - '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - - unist-util-visit@5.0.0: - dependencies: - '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 - - universal-user-agent@6.0.1: {} - - universalify@0.2.0: {} - - unplugin@1.0.1: - dependencies: - acorn: 8.14.1 - chokidar: 3.6.0 - webpack-sources: 3.2.3 - webpack-virtual-modules: 0.5.0 - - unquote@1.1.1: {} - - unrs-resolver@1.4.1: - optionalDependencies: - '@unrs/resolver-binding-darwin-arm64': 1.4.1 - '@unrs/resolver-binding-darwin-x64': 1.4.1 - '@unrs/resolver-binding-freebsd-x64': 1.4.1 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.4.1 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.4.1 - '@unrs/resolver-binding-linux-arm64-gnu': 1.4.1 - '@unrs/resolver-binding-linux-arm64-musl': 1.4.1 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.4.1 - '@unrs/resolver-binding-linux-s390x-gnu': 1.4.1 - '@unrs/resolver-binding-linux-x64-gnu': 1.4.1 - '@unrs/resolver-binding-linux-x64-musl': 1.4.1 - '@unrs/resolver-binding-wasm32-wasi': 1.4.1 - '@unrs/resolver-binding-win32-arm64-msvc': 1.4.1 - '@unrs/resolver-binding-win32-ia32-msvc': 1.4.1 - '@unrs/resolver-binding-win32-x64-msvc': 1.4.1 - - update-browserslist-db@1.1.3(browserslist@4.24.4): - dependencies: - browserslist: 4.24.4 - escalade: 3.2.0 - picocolors: 1.1.1 - - update-diff@1.1.0: {} - - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - - url-parse@1.5.10: - dependencies: - querystringify: 2.2.0 - requires-port: 1.0.0 - - urlpattern-polyfill@10.1.0: {} - - use-callback-ref@1.3.3(@types/react@19.1.0)(react@19.1.0): - dependencies: - react: 19.1.0 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.1.0 - - use-composed-ref@1.4.0(@types/react@19.1.0)(react@19.1.0): - dependencies: - react: 19.1.0 - optionalDependencies: - '@types/react': 19.1.0 - - use-device-pixel-ratio@1.1.2(react@19.1.0): - dependencies: - react: 19.1.0 - - use-effect-event@1.0.2(react@19.1.0): - dependencies: - react: 19.1.0 - - use-effect-event@2.0.2(react@19.1.0): - dependencies: - react: 19.1.0 - - use-hot-module-reload@2.0.0(react@19.1.0): - dependencies: - react: 19.1.0 - - use-isomorphic-layout-effect@1.2.0(@types/react@19.1.0)(react@19.1.0): - dependencies: - react: 19.1.0 - optionalDependencies: - '@types/react': 19.1.0 - - use-latest@1.3.0(@types/react@19.1.0)(react@19.1.0): - dependencies: - react: 19.1.0 - use-isomorphic-layout-effect: 1.2.0(@types/react@19.1.0)(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - - use-sidecar@1.1.3(@types/react@19.1.0)(react@19.1.0): - dependencies: - detect-node-es: 1.1.0 - react: 19.1.0 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.1.0 - - use-sync-external-store@1.5.0(react@19.1.0): - dependencies: - react: 19.1.0 - - util-deprecate@1.0.2: {} - - utility-types@3.11.0: {} - - uuid@11.1.0: {} - - uuid@8.3.2: {} - - uuid@9.0.1: {} - - uuidv7@0.4.4: {} - - v8-to-istanbul@9.3.0: - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - '@types/istanbul-lib-coverage': 2.0.6 - convert-source-map: 2.0.0 - - valibot@1.1.0(typescript@5.8.3): - optionalDependencies: - typescript: 5.8.3 - - validate-npm-package-license@3.0.4: - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 - - validate-npm-package-name@3.0.0: - dependencies: - builtins: 1.0.3 - - validate.io-array@1.0.6: {} - - validate.io-function@1.0.2: {} - - validate.io-integer-array@1.0.0: - dependencies: - validate.io-array: 1.0.6 - validate.io-integer: 1.0.5 - - validate.io-integer@1.0.5: - dependencies: - validate.io-number: 1.0.3 - - validate.io-number@1.0.3: {} - - vfile-location@5.0.3: - dependencies: - '@types/unist': 3.0.3 - vfile: 6.0.3 - - vfile-message@4.0.2: - dependencies: - '@types/unist': 3.0.3 - unist-util-stringify-position: 4.0.0 - - vfile@6.0.3: - dependencies: - '@types/unist': 3.0.3 - vfile-message: 4.0.2 - - vite-node@3.1.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1): - dependencies: - cac: 6.7.14 - debug: 4.4.0(supports-color@8.1.1) - es-module-lexer: 1.6.0 - pathe: 2.0.3 - vite: 6.2.6(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1) - transitivePeerDependencies: - - '@types/node' - - jiti - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - - vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1)): - dependencies: - debug: 4.4.0(supports-color@8.1.1) - globrex: 0.1.2 - tsconfck: 3.1.5(typescript@5.8.3) - optionalDependencies: - vite: 6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1) - transitivePeerDependencies: - - supports-color - - typescript - - vite@6.2.6(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1): - dependencies: - esbuild: 0.25.2 - postcss: 8.5.3 - rollup: 4.39.0 - optionalDependencies: - '@types/node': 22.14.0 - fsevents: 2.3.3 - jiti: 2.4.2 - lightningcss: 1.29.2 - sass: 1.92.1 - terser: 5.43.1 - yaml: 2.7.1 - - vite@6.3.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1): - dependencies: - esbuild: 0.25.5 - fdir: 6.4.6(picomatch@4.0.2) - picomatch: 4.0.2 - postcss: 8.5.3 - rollup: 4.39.0 - tinyglobby: 0.2.14 - optionalDependencies: - '@types/node': 22.14.0 - fsevents: 2.3.3 - jiti: 2.4.2 - lightningcss: 1.29.2 - sass: 1.92.1 - terser: 5.43.1 - yaml: 2.7.1 - - vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.14.0)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.29.2)(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1): - dependencies: - '@vitest/expect': 3.1.1 - '@vitest/mocker': 3.1.1(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(vite@6.2.6(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1)) - '@vitest/pretty-format': 3.1.1 - '@vitest/runner': 3.1.1 - '@vitest/snapshot': 3.1.1 - '@vitest/spy': 3.1.1 - '@vitest/utils': 3.1.1 - chai: 5.2.0 - debug: 4.4.0(supports-color@8.1.1) - expect-type: 1.2.1 - magic-string: 0.30.17 - pathe: 2.0.3 - std-env: 3.9.0 - tinybench: 2.9.0 - tinyexec: 0.3.2 - tinypool: 1.0.2 - tinyrainbow: 2.0.0 - vite: 6.2.6(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1) - vite-node: 3.1.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.92.1)(terser@5.43.1)(yaml@2.7.1) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/debug': 4.1.12 - '@types/node': 22.14.0 - jsdom: 26.1.0 - transitivePeerDependencies: - - jiti - - less - - lightningcss - - msw - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - - void-elements@3.1.0: {} - - vt-pbf@3.1.3: - dependencies: - '@mapbox/point-geometry': 0.1.0 - '@mapbox/vector-tile': 1.3.1 - pbf: 3.3.0 - - w3c-xmlserializer@4.0.0: - dependencies: - xml-name-validator: 4.0.0 - - w3c-xmlserializer@5.0.0: - dependencies: - xml-name-validator: 5.0.0 - - walk-up-path@4.0.0: {} - - walker@1.0.8: - dependencies: - makeerror: 1.0.12 - - warning@4.0.3: - dependencies: - loose-envify: 1.4.0 - - watchpack@2.4.4: - dependencies: - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - - wavefront-obj-parser@2.0.1: {} - - wcwidth@1.0.1: - dependencies: - defaults: 1.0.4 - - weak-map@1.0.8: {} - - web-namespaces@2.0.1: {} - - webgl-constants@1.1.1: {} - - webgl-context@2.2.0: - dependencies: - get-canvas-context: 1.0.2 - - webgl-sdf-generator@1.1.1: {} - - webidl-conversions@3.0.1: {} - - webidl-conversions@7.0.0: {} - - webpack-bundle-analyzer@4.10.1: - dependencies: - '@discoveryjs/json-ext': 0.5.7 - acorn: 8.15.0 - acorn-walk: 8.3.4 - commander: 7.2.0 - debounce: 1.2.1 - escape-string-regexp: 4.0.0 - gzip-size: 6.0.0 - html-escaper: 2.0.2 - is-plain-object: 5.0.0 - opener: 1.5.2 - picocolors: 1.1.1 - sirv: 2.0.4 - ws: 7.5.10 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - webpack-sources@3.2.3: {} - - webpack-sources@3.3.3: {} - - webpack-virtual-modules@0.5.0: {} - - webpack@5.99.5(esbuild@0.25.5): - dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.8 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.15.0 - browserslist: 4.24.4 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.2 - es-module-lexer: 1.7.0 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 4.3.2 - tapable: 2.2.2 - terser-webpack-plugin: 5.3.14(esbuild@0.25.5)(webpack@5.99.5(esbuild@0.25.5)) - watchpack: 2.4.4 - webpack-sources: 3.3.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - - whatwg-encoding@2.0.0: - dependencies: - iconv-lite: 0.6.3 - - whatwg-encoding@3.1.1: - dependencies: - iconv-lite: 0.6.3 - - whatwg-fetch@3.6.20: {} - - whatwg-mimetype@3.0.0: {} - - whatwg-mimetype@4.0.0: {} - - whatwg-url@11.0.0: - dependencies: - tr46: 3.0.0 - webidl-conversions: 7.0.0 - - whatwg-url@14.2.0: - dependencies: - tr46: 5.1.0 - webidl-conversions: 7.0.0 - - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - - which-boxed-primitive@1.1.1: - dependencies: - is-bigint: 1.1.0 - is-boolean-object: 1.2.2 - is-number-object: 1.1.1 - is-string: 1.1.1 - is-symbol: 1.1.1 - - which-builtin-type@1.2.1: - dependencies: - call-bound: 1.0.4 - function.prototype.name: 1.1.8 - has-tostringtag: 1.0.2 - is-async-function: 2.1.1 - is-date-object: 1.1.0 - is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.0 - is-regex: 1.2.1 - is-weakref: 1.1.1 - isarray: 2.0.5 - which-boxed-primitive: 1.1.1 - which-collection: 1.0.2 - which-typed-array: 1.1.19 - - which-collection@1.0.2: - dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.4 - - which-pm@3.0.1: - dependencies: - load-yaml-file: 0.2.0 - - which-typed-array@1.1.19: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - for-each: 0.3.5 - get-proto: 1.0.1 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - which@4.0.0: - dependencies: - isexe: 3.1.1 - - which@5.0.0: - dependencies: - isexe: 3.1.1 - - why-is-node-running@2.3.0: - dependencies: - siginfo: 2.0.0 - stackback: 0.0.2 - - wicked-good-xpath@1.3.0: {} - - widest-line@3.1.0: - dependencies: - string-width: 4.2.3 - - word-wrap@1.2.5: {} - - wordwrap@1.0.0: {} - - wordwrapjs@5.1.0: {} - - world-calendars@1.0.4: - dependencies: - object-assign: 4.1.1 - - wrap-ansi@6.2.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - - wrappy@1.0.2: {} - - write-file-atomic@3.0.3: - dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 - - write-file-atomic@4.0.2: - dependencies: - imurmurhash: 0.1.4 - signal-exit: 3.0.7 - - ws@7.5.10: {} - - ws@8.18.1: {} - - ws@8.18.2: {} - - xdg-basedir@4.0.0: {} - - xdg-basedir@5.1.0: {} - - xml-name-validator@4.0.0: {} - - xml-name-validator@5.0.0: {} - - xmlchars@2.2.0: {} - - xmldom-sre@0.1.31: {} - - xregexp@2.0.0: {} - - xstate@5.19.2: {} - - xstate@5.20.0: {} - - xtend@2.2.0: {} - - xtend@4.0.2: {} - - y18n@5.0.8: {} - - yallist@3.1.1: {} - - yallist@4.0.0: {} - - yallist@5.0.0: {} - - yaml@1.10.2: {} - - yaml@2.7.1: {} - - yargs-parser@20.2.9: {} - - 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 - - yjs@13.6.24: - dependencies: - lib0: 0.2.111 - - yocto-queue@0.1.0: {} - - yocto-queue@1.2.1: {} - - yoctocolors-cjs@2.1.2: {} - - zip-stream@6.0.1: - dependencies: - archiver-utils: 5.0.2 - compress-commons: 6.0.2 - readable-stream: 4.7.0 - - zod-to-json-schema@3.24.5(zod@3.24.2): - dependencies: - zod: 3.24.2 - - zod-validation-error@3.5.2(zod@3.24.2): - dependencies: - zod: 3.24.2 - - zod@3.24.2: {} - - zustand@4.5.6(@types/react@19.1.0)(immer@10.1.1)(react@19.1.0): - dependencies: - use-sync-external-store: 1.5.0(react@19.1.0) - optionalDependencies: - '@types/react': 19.1.0 - immer: 10.1.1 - react: 19.1.0 - - zustand@5.0.3(@types/react@19.1.0)(immer@10.1.1)(react@19.1.0)(use-sync-external-store@1.5.0(react@19.1.0)): - optionalDependencies: - '@types/react': 19.1.0 - immer: 10.1.1 - react: 19.1.0 - use-sync-external-store: 1.5.0(react@19.1.0) - - zwitch@2.0.4: {} From 2af82982e5655e9035cbd28ffc9d06be7ba2bbb0 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Fri, 12 Sep 2025 21:27:09 +0200 Subject: [PATCH 38/44] remove limit on number of mtypes --- .../morphology/_components/components.tsx | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/features/contribute/morphology/_components/components.tsx b/src/features/contribute/morphology/_components/components.tsx index 4b264a4ab..b5785d074 100644 --- a/src/features/contribute/morphology/_components/components.tsx +++ b/src/features/contribute/morphology/_components/components.tsx @@ -310,10 +310,23 @@ const fetchMtypes = async ( Authorization: `Bearer ${token}`, }; - const url = 'https://staging.openbraininstitute.org/api/entitycore/mtype'; + // Define your parameters + const params: Record = { + page_size: 1000, + }; + + // Create URLSearchParams instance and append parameters + const searchParams = new URLSearchParams(); + for (const key of Object.keys(params)) { + const value = params[key]; + searchParams.append(key, String(value)); + } + const url = 'https://staging.openbraininstitute.org/api/entitycore/mtype'; + // Construct the new URL with the query string + const newUrl = `${url}?${searchParams.toString()}`; try { - const response = await fetch(url, { headers }); + const response = await fetch(newUrl, { headers }); if (!response.ok) { throw new Error(`MTYPE request failed with status code: ${response.status}`); } From 9da0fc4536c093a3d01763112d3cd35a8e24a2ec Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Mon, 15 Sep 2025 13:54:45 +0200 Subject: [PATCH 39/44] changed subject handling and agents --- .../morphology/_components/components.tsx | 215 +++++++++++++++--- .../morphology/_components/section.tsx | 11 +- src/features/contribute/morphology/index.tsx | 33 ++- 3 files changed, 213 insertions(+), 46 deletions(-) diff --git a/src/features/contribute/morphology/_components/components.tsx b/src/features/contribute/morphology/_components/components.tsx index b5785d074..0c72e0046 100644 --- a/src/features/contribute/morphology/_components/components.tsx +++ b/src/features/contribute/morphology/_components/components.tsx @@ -30,9 +30,24 @@ interface RoleRecord { name?: string; } +interface SubjectSpeciesRecord { + id: string; + name: string; + taxonomy_id: string; +} + interface SubjectRecord { id: string; name?: string; + description?: string; + sex?: string; + weight?: string; + age_value?: string; + age_min?: string; + age_max?: string; + age_unit?: string; + age_period?: string; + species?: SubjectSpeciesRecord; } interface LicenseRecord { @@ -209,6 +224,60 @@ const fetchAgents = async (token: string): Promise | null } }; +const fetchConsortium = async (token: string): Promise | null> => { + const headers: HeadersInit = { + accept: 'application/json', + Authorization: `Bearer ${token}`, + }; + + const url = 'https://staging.openbraininstitute.org/api/entitycore/consortium'; + + try { + const response = await fetch(url, { headers }); + if (!response.ok) { + throw new Error(`Consortium request failed with status code: ${response.status}`); + } + const jsonDataPerson: PersonData = await response.json(); + + const personDict: Record = {}; + for (const item of jsonDataPerson.data) { + if (item.pref_label) { + personDict[item.pref_label] = item.id; + } + } + return personDict; + } catch { + return null; + } +}; + +const fetchOrganization = async (token: string): Promise | null> => { + const headers: HeadersInit = { + accept: 'application/json', + Authorization: `Bearer ${token}`, + }; + + const url = 'https://staging.openbraininstitute.org/api/entitycore/organization'; + + try { + const response = await fetch(url, { headers }); + if (!response.ok) { + throw new Error(`Organization request failed with status code: ${response.status}`); + } + const jsonDataPerson: PersonData = await response.json(); + + const personDict: Record = {}; + for (const item of jsonDataPerson.data) { + if (item.pref_label) { + personDict[item.pref_label] = item.id; + } + } + return personDict; + } catch { + return null; + } +}; + const fetchRoles = async (token: string): Promise | null> => { const headers: HeadersInit = { accept: 'application/json', @@ -236,9 +305,7 @@ const fetchRoles = async (token: string): Promise | null> } }; -const fetchSubjects = async ( - token: string -): Promise | null> => { +const fetchSubjects = async (token: string): Promise => { const headers: HeadersInit = { accept: 'application/json', Authorization: `Bearer ${token}`, @@ -253,17 +320,7 @@ const fetchSubjects = async ( } const jsonDataSubject: SubjectData = await response.json(); - const subjectList: Array<{ label: string; value: string }> = []; - for (const item of jsonDataSubject.data) { - if (item.name) { - const subjectEntry = { - label: item.name, - value: item.id, - }; - subjectList.push(subjectEntry); - } - } - return subjectList; + return jsonDataSubject.data; } catch { return null; } @@ -310,12 +367,10 @@ const fetchMtypes = async ( Authorization: `Bearer ${token}`, }; - // Define your parameters const params: Record = { page_size: 1000, }; - // Create URLSearchParams instance and append parameters const searchParams = new URLSearchParams(); for (const key of Object.keys(params)) { const value = params[key]; @@ -323,7 +378,6 @@ const fetchMtypes = async ( } const url = 'https://staging.openbraininstitute.org/api/entitycore/mtype'; - // Construct the new URL with the query string const newUrl = `${url}?${searchParams.toString()}`; try { const response = await fetch(newUrl, { headers }); @@ -385,6 +439,7 @@ export function JSONMorphologySchemaForm({ const [state, setState] = useAtom(stateAtom); const [validationErrors, setValidationErrors] = useState([]); const [touchedFields, setTouchedFields] = useState>(new Set()); + const [agentType, setAgentType] = useState('Person'); const [allSpeciesStrains, setAllSpeciesStrains] = useState; }> | null>(null); const [allAgents, setAllAgents] = useState | null>(null); + const [allOrganizations, setAllOrganizations] = useState | null>(null); + const [allConsortia, setAllConsortia] = useState | null>(null); const [allRoles, setAllRoles] = useState | null>(null); - const [allSubjects, setAllSubjects] = useState | null>( - null - ); + const [allSubjects, setAllSubjects] = useState(null); const [allLicenses, setAllLicenses] = useState | null>( null ); @@ -404,21 +459,36 @@ export function JSONMorphologySchemaForm({ mtype_id: string; }> | null>(null); const [brainRegionName, setBrainRegionName] = useState(null); + const [selectedSubjectData, setSelectedSubjectData] = useState(null); useEffect(() => { const errors = getRequiredFieldErrors(state, schema); setValidationErrors(errors); }, [state, schema]); + useEffect(() => { + if (state.subject_id && allSubjects) { + const selected = allSubjects.find((s) => s.id === state.subject_id); + setSelectedSubjectData(selected || null); + if (selected?.species?.id) { + setState((prev) => ({ ...prev, species_id: selected.species.id })); + } else { + setState((prev) => ({ ...prev, species_id: undefined })); + } + } + }, [state.subject_id, allSubjects, setState]); + useEffect(() => { const fetchData = async () => { const session = await getSessionWithCheck(); if (!session) return; - const [speciesData, agentsData, rolesData, subjectsData, licensesData, mtypesData] = + const [speciesData, agentsData, organizationData, consortiumData, rolesData, subjectsData, licensesData, mtypesData] = await Promise.all([ processData(session.accessToken), fetchAgents(session.accessToken), + fetchOrganization(session.accessToken), + fetchConsortium(session.accessToken), fetchRoles(session.accessToken), fetchSubjects(session.accessToken), fetchLicenses(session.accessToken), @@ -437,6 +507,12 @@ export function JSONMorphologySchemaForm({ if (agentsData) { setAllAgents(agentsData); } + if (organizationData) { + setAllOrganizations(organizationData); + } + if (consortiumData) { + setAllConsortia(consortiumData); + } if (rolesData) { setAllRoles(rolesData); } @@ -459,6 +535,13 @@ export function JSONMorphologySchemaForm({ fetchData(); }, [nodeId, state.license_id, setState]); + useEffect(() => { + if (allSpeciesStrains && !state.species_id) { + const defaultSpeciesId = 'b7ad4cca-4ac2-4095-9781-37fb68fe9ca1'; + setState((prev) => ({ ...prev, species_id: defaultSpeciesId })); + } + }, [allSpeciesStrains, state.species_id, setState]); + const markFieldTouched = (field: string) => { setTouchedFields((prev) => new Set([...prev, field])); }; @@ -517,11 +600,11 @@ export function JSONMorphologySchemaForm({ return (
+ markFieldTouched(k)} onChange={(newV) => { setState((prev) => ({ ...prev, [k]: newV })); + const selected = allSubjects.find((s) => s.id === newV); + setSelectedSubjectData(selected || null); markFieldTouched(k); }} value={state[k]} @@ -720,15 +827,22 @@ export function JSONMorphologySchemaForm({ } if (isAgentIdField) { - if (!allAgents) { + const agentData = + agentType === 'Organization' + ? allOrganizations + : agentType === 'Consortium' + ? allConsortia + : allAgents; + + if (!agentData) { return (
- +
); } - const options = Object.entries(allAgents).map(([label, value]) => ({ + const options = Object.entries(agentData).map(([label, value]) => ({ label, value, })); @@ -745,7 +859,7 @@ export function JSONMorphologySchemaForm({ }} value={state[k]} options={options} - placeholder="Select an agent" + placeholder={`Select a ${agentType.toLowerCase()}`} allowClear /> {fieldError &&
{fieldError}
} @@ -835,10 +949,18 @@ export function JSONMorphologySchemaForm({ return 'ROLE'; if (normalizedKey === 'agentid' || normalizedKey === 'agent_id' || normalizedKey === 'agent') return 'AGENT'; + if (normalizedKey === 'agenttype') return 'AGENT TYPE'; return v.title || k; } + const isContributionSchema = schema.title === 'Contribution'; + const agentTypeOptions = [ + { label: 'Person', value: 'Person' }, + { label: 'Organization', value: 'Organization' }, + { label: 'Consortium', value: 'Consortium' }, + ]; + return (
{schema.title}
@@ -858,11 +980,32 @@ export function JSONMorphologySchemaForm({ )}
+ {isContributionSchema && ( +
+
+
AGENT TYPE
+
+ +
+ markFieldTouched(k)} onChange={(newV) => { setState((prev) => ({ ...prev, [k]: newV, strain_id: undefined })); // Reset strain_id when species changes @@ -636,10 +645,12 @@ export function JSONMorphologySchemaForm({
markFieldTouched(k)} onChange={(newV) => { setState((prev) => ({ ...prev, [k]: newV })); @@ -690,7 +701,7 @@ export function JSONMorphologySchemaForm({
markFieldTouched(k)} onChange={(newV) => { setState((prev) => ({ ...prev, [k]: newV })); @@ -773,7 +792,7 @@ export function JSONMorphologySchemaForm({
markFieldTouched(k)} onChange={(newV) => { setState((prev) => ({ ...prev, [k]: newV })); @@ -827,12 +846,14 @@ export function JSONMorphologySchemaForm({ } if (isAgentIdField) { - const agentData = - agentType === 'Organization' - ? allOrganizations - : agentType === 'Consortium' - ? allConsortia - : allAgents; + let agentData = null; + if (agentType === 'Organization') { + agentData = allOrganizations; + } else if (agentType === 'Consortium') { + agentData = allConsortia; + } else { + agentData = allAgents; + } if (!agentData) { return ( @@ -851,7 +872,7 @@ export function JSONMorphologySchemaForm({
markFieldTouched(k)} value={typeof state[k] === 'string' ? state[k] : ''} onChange={(e) => { @@ -910,7 +931,7 @@ export function JSONMorphologySchemaForm({
markFieldTouched(k)} value={typeof state[k] === 'string' ? state[k] : ''} onChange={(e) => { @@ -983,7 +1004,7 @@ export function JSONMorphologySchemaForm({ {isContributionSchema && (
-
AGENT TYPE
+
AGENT TYPE
@@ -1054,19 +1075,21 @@ export function Tab({ extraClass?: string; disabled?: boolean; }) { + const tabClass = + tab === selectedTab + ? 'bg-gradient-to-r from-[#003A8C] to-[#001026] text-white' + : 'text-primary-8 bg-white'; + + const buttonStyles = disabled + ? { background: '#d1d5db', cursor: 'default', color: '#9ca3af' } + : {}; + return ( @@ -1093,4 +1116,4 @@ export function Chevron({ rotate }: { rotate?: number }) { /> ); -} \ No newline at end of file +} diff --git a/src/features/contribute/morphology/_components/section.tsx b/src/features/contribute/morphology/_components/section.tsx index 48fefb8f7..fddf918dd 100644 --- a/src/features/contribute/morphology/_components/section.tsx +++ b/src/features/contribute/morphology/_components/section.tsx @@ -9,43 +9,39 @@ import { classNames } from '@/util/utils'; type Props = { k: string; sectionSchema: JSONMorphologySchema | undefined; - schema: JSONMorphologySchema; - config: Config; - errors: ErrorObject, unknown>[]; // Fixed to avoid no-explicit-any + _schema: JSONMorphologySchema; // Changed from schema to _schema + _config: Config; + _errors: ErrorObject, unknown>[]; atomsMap: AtomsMap; setAtomsMap: Dispatch>; - configTab: string; + _configTab: string; setConfigTab: (tab: string) => void; setSelectedItemIdx: (idx: number | null) => void; setEditing: (editing: boolean) => void; setSelectedCategory: (category: string) => void; - campaignId: string; - loading: boolean; - selectedItemIdx: number | null; + _campaignId: string; + _loading: boolean; + _selectedItemIdx: number | null; + isSelected: boolean; }; export function Section({ k, sectionSchema, - // eslint-disable-next-line @typescript-eslint/no-unused-vars - schema, - // eslint-disable-next-line @typescript-eslint/no-unused-vars - config, - // eslint-disable-next-line @typescript-eslint/no-unused-vars - errors, + _schema, // Changed from schema to _schema + _config, + _errors, atomsMap, setAtomsMap, - configTab, + _configTab, setConfigTab, setSelectedItemIdx, setEditing, setSelectedCategory, - // eslint-disable-next-line @typescript-eslint/no-unused-vars - campaignId, - // eslint-disable-next-line @typescript-eslint/no-unused-vars - loading, - // eslint-disable-next-line @typescript-eslint/no-unused-vars - selectedItemIdx, + _campaignId, + _loading, + _selectedItemIdx, + isSelected, }: Props) { const fallbackSchema: JSONMorphologySchema = { type: 'object', @@ -83,23 +79,19 @@ export function Section({
- - + {buttonText}
- +
); diff --git a/src/features/contribute/morphology/index.tsx b/src/features/contribute/morphology/index.tsx index 7a9ad0384..3e2680a2b 100755 --- a/src/features/contribute/morphology/index.tsx +++ b/src/features/contribute/morphology/index.tsx @@ -256,19 +256,19 @@ export default function ContributeMorphologyConfiguration({ key={k} k={k} sectionSchema={v} - schema={schema} - config={config} - errors={errors} + _schema={schema} + _config={config} + _errors={errors} atomsMap={atomsMap} setAtomsMap={setAtomsMap} - configTab={configTab} + _configTab={configTab} setConfigTab={setConfigTab} setSelectedItemIdx={setSelectedItemIdx} setEditing={setEditing} setSelectedCategory={setSelectedCategory} - campaignId={campaignId} - loading={loading} - selectedItemIdx={selectedItemIdx} + _campaignId={campaignId} + _loading={loading} + _selectedItemIdx={selectedItemIdx} isSelected={configTab === k} /> ))} @@ -676,4 +676,4 @@ export default function ContributeMorphologyConfiguration({
); -} \ No newline at end of file +} From 14a3edc136f1a209d88b386d3762bf30462a454e Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Wed, 17 Sep 2025 10:01:18 +0200 Subject: [PATCH 41/44] added morphology verification --- .../morphology/_components/hooks/schema.ts | 4 +- src/features/contribute/morphology/index.tsx | 87 +++++++++++++++++-- 2 files changed, 83 insertions(+), 8 deletions(-) diff --git a/src/features/contribute/morphology/_components/hooks/schema.ts b/src/features/contribute/morphology/_components/hooks/schema.ts index 3e2c68d25..60ec5ba41 100644 --- a/src/features/contribute/morphology/_components/hooks/schema.ts +++ b/src/features/contribute/morphology/_components/hooks/schema.ts @@ -36,7 +36,9 @@ export function useObioneJsonSchema( React.useEffect(() => { async function fetchSpec() { try { - const res = await fetch(`${process.env.NEXT_PUBLIC_OBI_ONE_URL}/openapi.json`); + //const res = await fetch(`${process.env.NEXT_PUBLIC_OBI_ONE_URL}/openapi.json`); + const res = await fetch(`http://127.0.0.1:8100/openapi.json`); + const json = await res.json(); const dereferenced = (await $RefParser.dereference(json)) as OpenAPISchema; const theSchema = dereferenced.components?.schemas?.[schemaName]; diff --git a/src/features/contribute/morphology/index.tsx b/src/features/contribute/morphology/index.tsx index 3e2680a2b..a45b89fb8 100755 --- a/src/features/contribute/morphology/index.tsx +++ b/src/features/contribute/morphology/index.tsx @@ -24,6 +24,54 @@ import { useAppNotification } from '@/components/notification'; import { classNames } from '@/util/utils'; import styles from './small-microcircuit.module.css'; +// File validation function +async function checkFileIsValid(file) { + if (!file || !(file instanceof File)) { + return false; + } + const validExtensions = ['.swc', '.asc', '.h5']; + const extension = file.name.slice(file.name.lastIndexOf('.')).toLowerCase(); + if (!validExtensions.includes(extension)) { + return false; + } + if (!file.name || file.size === 0) { + return false; + } + + try { + const formData = new FormData(); + formData.append('file', file, file.name); + + const headers = { + accept: 'application/json', + // Note: Content-Type is not set explicitly for FormData; browser sets it with boundary + }; + + // Use this for direct requests (requires CORS configuration on server): + const response = await authFetch('http://127.0.0.1:8100/declared/upload-neuron-file', { + method: 'POST', + headers, + body: formData, + }); + + const responseText = await response.text(); + let responseJson = null; + try { + responseJson = JSON.parse(responseText); + } catch (e) { + pass + } + + if (!response.ok) { + return false; + } + + return true; + } catch (error) { + return false; + } +} + export default function ContributeMorphologyConfiguration({ virtualLabId, projectId, @@ -43,7 +91,7 @@ export default function ContributeMorphologyConfiguration({ dataKey: resolveDataKey({ section: 'explore', projectId }), }); - const [configTab, setConfigTab] = useState('morphology'); + const [configTab, setConfigTab] = useState('assets'); const [editing, setEditing] = useState(true); const [schema, setSchema] = useState(null); const [selectedCategory, setSelectedCategory] = useState('ReconstructionMorphology'); @@ -522,12 +570,30 @@ export default function ContributeMorphologyConfiguration({ accept=".swc,.asc,.h5" className="hidden" disabled={loading || readOnly} - onChange={(e) => { + onChange={async (e) => { const file = e.target.files?.[0]; - if (file) { - setSelectedFile(file); - setFileStatus({ message: `File selected: ${file.name}` }); + const isValid = await checkFileIsValid(file); + if (isValid) { + setSelectedFile(file); + setFileStatus({ message: `File selected: ${file.name}` }); + } else { + let errorDescription = `The file ${file.name} is not valid.`; + if (!file.name || file.size === 0) { + errorDescription = `The file ${file.name} is empty or has no name.`; + } else if (!['.swc', '.asc', '.h5'].includes(file.name.slice(file.name.lastIndexOf('.')).toLowerCase())) { + errorDescription = `The file ${file.name} has an invalid extension. Please select a .swc, .asc, or .h5 file.`; + } else { + errorDescription = `The file ${file.name} could not be validated by the server. Please ensure it is a valid .swc, .asc, or .h5 file or check your server configuration.`; + } + notification.error({ + message: 'Invalid File', + description: errorDescription, + }); + setSelectedFile(null); + setFileStatus({ message: `Invalid file selected: ${file.name}` }); + e.target.value = ''; + } } else { setSelectedFile(null); setFileStatus({}); @@ -536,7 +602,14 @@ export default function ContributeMorphologyConfiguration({ /> {fileStatus?.message && ( - {fileStatus.message} + + {fileStatus.message} + )}
@@ -676,4 +749,4 @@ export default function ContributeMorphologyConfiguration({
); -} +} \ No newline at end of file From 11457b2e18174874ec87320d14642865f51e38a2 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Wed, 17 Sep 2025 10:16:34 +0200 Subject: [PATCH 42/44] using staging obi-one --- .../contribute/morphology/_components/hooks/schema.ts | 4 ++-- src/features/contribute/morphology/index.tsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/features/contribute/morphology/_components/hooks/schema.ts b/src/features/contribute/morphology/_components/hooks/schema.ts index 60ec5ba41..e4619f7ce 100644 --- a/src/features/contribute/morphology/_components/hooks/schema.ts +++ b/src/features/contribute/morphology/_components/hooks/schema.ts @@ -36,8 +36,8 @@ export function useObioneJsonSchema( React.useEffect(() => { async function fetchSpec() { try { - //const res = await fetch(`${process.env.NEXT_PUBLIC_OBI_ONE_URL}/openapi.json`); - const res = await fetch(`http://127.0.0.1:8100/openapi.json`); + const res = await fetch(`${process.env.NEXT_PUBLIC_OBI_ONE_URL}/openapi.json`); + //const res = await fetch(`http://127.0.0.1:8100/openapi.json`); const json = await res.json(); const dereferenced = (await $RefParser.dereference(json)) as OpenAPISchema; diff --git a/src/features/contribute/morphology/index.tsx b/src/features/contribute/morphology/index.tsx index a45b89fb8..ce196d06d 100755 --- a/src/features/contribute/morphology/index.tsx +++ b/src/features/contribute/morphology/index.tsx @@ -48,7 +48,7 @@ async function checkFileIsValid(file) { }; // Use this for direct requests (requires CORS configuration on server): - const response = await authFetch('http://127.0.0.1:8100/declared/upload-neuron-file', { + const response = await authFetch(`${process.env.NEXT_PUBLIC_OBI_ONE_URL}/declared/upload-neuron-file', { method: 'POST', headers, body: formData, From c36f6d711c38cc6d617bbdb80e092aebb9d4a426 Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Wed, 17 Sep 2025 10:27:52 +0200 Subject: [PATCH 43/44] using staging obi-one --- .../morphology/_components/components.tsx | 1 - src/features/contribute/morphology/index.tsx | 33 ++++++++++--------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/features/contribute/morphology/_components/components.tsx b/src/features/contribute/morphology/_components/components.tsx index ca8b24f52..31959660d 100644 --- a/src/features/contribute/morphology/_components/components.tsx +++ b/src/features/contribute/morphology/_components/components.tsx @@ -971,7 +971,6 @@ export function JSONMorphologySchemaForm({ if (normalizedKey === 'agentid' || normalizedKey === 'agent_id' || normalizedKey === 'agent') return 'AGENT'; if (normalizedKey === 'agenttype') return 'AGENT TYPE'; - return v.title || k; } diff --git a/src/features/contribute/morphology/index.tsx b/src/features/contribute/morphology/index.tsx index ce196d06d..f49aa21bc 100755 --- a/src/features/contribute/morphology/index.tsx +++ b/src/features/contribute/morphology/index.tsx @@ -25,7 +25,7 @@ import { classNames } from '@/util/utils'; import styles from './small-microcircuit.module.css'; // File validation function -async function checkFileIsValid(file) { +async function checkFileIsValid(file: File | null): Promise { if (!file || !(file instanceof File)) { return false; } @@ -47,19 +47,20 @@ async function checkFileIsValid(file) { // Note: Content-Type is not set explicitly for FormData; browser sets it with boundary }; - // Use this for direct requests (requires CORS configuration on server): - const response = await authFetch(`${process.env.NEXT_PUBLIC_OBI_ONE_URL}/declared/upload-neuron-file', { - method: 'POST', - headers, - body: formData, - }); + const response = await authFetch( + `${process.env.NEXT_PUBLIC_OBI_ONE_URL}/declared/upload-neuron-file`, + { + method: 'POST', + headers, + body: formData, + } + ); const responseText = await response.text(); - let responseJson = null; try { - responseJson = JSON.parse(responseText); + JSON.parse(responseText); } catch (e) { - pass + // Ignore parsing errors for now } if (!response.ok) { @@ -84,7 +85,7 @@ export default function ContributeMorphologyConfiguration({ initialConfig?: Config; }) { if (!!initialCampaignId !== !!initialConfig) { - throw new Error('Both or none of initialCampaignId, initialConfigId should be passed'); + throw new Error('Both or none of initialCampaignId, initialConfig should be passed'); } const { node } = useBrainRegionHierarchy({ @@ -437,7 +438,6 @@ export default function ContributeMorphologyConfiguration({ ); const fileResponseText = await fileResponse.text(); - if (!fileResponse.ok) { throw new ApiError(`Failed to upload file: ${fileResponseText}`, { status: fileResponse.status, @@ -464,7 +464,6 @@ export default function ContributeMorphologyConfiguration({ } ); const fileResponseMtypeText = await fileResponseMtype.text(); - if (!fileResponseMtype.ok) { throw new ApiError(`Failed to upload file: ${fileResponseMtypeText}`, { status: fileResponseMtype.status, @@ -581,7 +580,11 @@ export default function ContributeMorphologyConfiguration({ let errorDescription = `The file ${file.name} is not valid.`; if (!file.name || file.size === 0) { errorDescription = `The file ${file.name} is empty or has no name.`; - } else if (!['.swc', '.asc', '.h5'].includes(file.name.slice(file.name.lastIndexOf('.')).toLowerCase())) { + } else if ( + !['.swc', '.asc', '.h5'].includes( + file.name.slice(file.name.lastIndexOf('.')).toLowerCase() + ) + ) { errorDescription = `The file ${file.name} has an invalid extension. Please select a .swc, .asc, or .h5 file.`; } else { errorDescription = `The file ${file.name} could not be validated by the server. Please ensure it is a valid .swc, .asc, or .h5 file or check your server configuration.`; @@ -749,4 +752,4 @@ export default function ContributeMorphologyConfiguration({
); -} \ No newline at end of file +} From e821b0e488bb76a491b597aabac47cd4f29e8dbc Mon Sep 17 00:00:00 2001 From: Daniel Keller Date: Fri, 19 Sep 2025 21:05:19 +0200 Subject: [PATCH 44/44] added conversion of morphologies --- src/features/contribute/morphology/index.tsx | 209 +++++++++++-------- 1 file changed, 125 insertions(+), 84 deletions(-) diff --git a/src/features/contribute/morphology/index.tsx b/src/features/contribute/morphology/index.tsx index f49aa21bc..cbaf51213 100755 --- a/src/features/contribute/morphology/index.tsx +++ b/src/features/contribute/morphology/index.tsx @@ -10,6 +10,7 @@ import { import Ajv, { AnySchema } from 'ajv'; import { atom, useAtom, PrimitiveAtom } from 'jotai'; import { Fragment, useMemo, useRef, useState, KeyboardEvent, useEffect } from 'react'; +import JSZip from 'jszip'; // This library would need to be installed as a dependency import { Config, ConfigValue, JSONMorphologySchemaForm } from './_components/components'; import { useConfigAtom } from './_components/hooks/config-atom'; import { isRootCategory, resolveKey, useObioneJsonSchema } from './_components/hooks/schema'; @@ -24,6 +25,9 @@ import { useAppNotification } from '@/components/notification'; import { classNames } from '@/util/utils'; import styles from './small-microcircuit.module.css'; +// Add a new variable to store the response as an ArrayBuffer +let neuronFileResponse: ArrayBuffer | null = null; + // File validation function async function checkFileIsValid(file: File | null): Promise { if (!file || !(file instanceof File)) { @@ -47,21 +51,14 @@ async function checkFileIsValid(file: File | null): Promise { // Note: Content-Type is not set explicitly for FormData; browser sets it with boundary }; - const response = await authFetch( - `${process.env.NEXT_PUBLIC_OBI_ONE_URL}/declared/upload-neuron-file`, - { - method: 'POST', - headers, - body: formData, - } - ); + const response = await authFetch(`http://127.0.0.1:8100/declared/test-neuron-file`, { + method: 'POST', + headers, + body: formData, + }); - const responseText = await response.text(); - try { - JSON.parse(responseText); - } catch (e) { - // Ignore parsing errors for now - } + // Store the response as an ArrayBuffer, which is suitable for JSZip + neuronFileResponse = await response.arrayBuffer(); if (!response.ok) { return false; @@ -69,6 +66,8 @@ async function checkFileIsValid(file: File | null): Promise { return true; } catch (error) { + // Clear the stored response on error + neuronFileResponse = null; return false; } } @@ -405,106 +404,148 @@ export default function ContributeMorphologyConfiguration({ const newEntityId = jsonResponseData.id; setEntityId(newEntityId); + const filesToUpload: File[] = []; + if (selectedFile) { - const formData = new FormData(); + // Corrected original file handling let mimeType = 'application/octet-stream'; const fileName = selectedFile.name; if (fileName.endsWith('.swc')) { mimeType = 'application/swc'; } else if (fileName.endsWith('.asc')) { - mimeType = 'text/plain'; + mimeType = 'application/asc'; } else if (fileName.endsWith('.h5')) { mimeType = 'application/x-hdf5'; } - const fileWithMimeType = new File([selectedFile], selectedFile.name, { type: mimeType, }); - formData.append('file', fileWithMimeType); - formData.append('label', 'morphology'); + filesToUpload.push(fileWithMimeType); + } - const fileUploadHeaders = { - 'virtual-lab-id': headers['virtual-lab-id'], - 'project-id': headers['project-id'], - }; + if (neuronFileResponse) { + const zip = new JSZip(); + const unzippedData = await zip.loadAsync(neuronFileResponse); + + unzippedData.forEach((relativePath, zipEntry) => { + if (!zipEntry.dir) { + const fileName = relativePath; + let mimeType = 'application/octet-stream'; + if (fileName.endsWith('.swc')) { + mimeType = 'application/swc'; + } else if (fileName.endsWith('.asc')) { + mimeType = 'application/asc'; + } else if (fileName.endsWith('.h5')) { + mimeType = 'application/x-hdf5'; + } - const fileResponse = await authFetch( - `https://staging.openbraininstitute.org/api/entitycore/reconstruction-morphology/${newEntityId}/assets`, - { - method: 'POST', - headers: fileUploadHeaders, - body: formData, + zipEntry.async('blob').then((fileBlob) => { + filesToUpload.push(new File([fileBlob], fileName, { type: mimeType })); + }); } - ); - - const fileResponseText = await fileResponse.text(); - if (!fileResponse.ok) { - throw new ApiError(`Failed to upload file: ${fileResponseText}`, { - status: fileResponse.status, - }); - } + }); - const mtypeRequestBody = { - authorized_public: true, - entity_id: newEntityId, - mtype_class_id: mtypeConfig?.mtype_class_id ?? undefined, - }; + // Wait for all files to be unzipped before proceeding + await Promise.all( + Object.values(unzippedData.files) + .filter((zipEntry) => !zipEntry.dir) + .map((zipEntry) => zipEntry.async('blob')) + ); + } - const fileUploadMtypeHeaders = { + if (filesToUpload.length > 0) { + const fileUploadHeaders = { 'virtual-lab-id': headers['virtual-lab-id'], 'project-id': headers['project-id'], - 'Content-Type': 'application/json', }; - const fileResponseMtype = await authFetch( - `https://staging.openbraininstitute.org/api/entitycore/mtype-classification`, - { - method: 'POST', - headers: fileUploadMtypeHeaders, - body: JSON.stringify(mtypeRequestBody), - } - ); - const fileResponseMtypeText = await fileResponseMtype.text(); - if (!fileResponseMtype.ok) { - throw new ApiError(`Failed to upload file: ${fileResponseMtypeText}`, { - status: fileResponseMtype.status, - }); - } - const contributionRequestBody = { - entity_id: newEntityId, - agent_id: contributionConfig?.agent_id ?? undefined, - role_id: contributionConfig?.role_id ?? undefined, - }; + for (const file of filesToUpload) { - const fileUploadContributionHeaders = { - 'virtual-lab-id': headers['virtual-lab-id'], - 'project-id': headers['project-id'], - 'Content-Type': 'application/json', - }; - const fileResponseContribution = await authFetch( - `https://staging.openbraininstitute.org/api/entitycore/contribution`, - { - method: 'POST', - headers: fileUploadContributionHeaders, - body: JSON.stringify(contributionRequestBody), - } - ); - const fileResponseContributionText = await fileResponseContribution.text(); - if (!fileResponseContribution.ok) { - throw new ApiError( - `Failed to upload file: ${fileResponseContributionText}`, + const formData = new FormData(); + formData.append('file', file, file.name); + formData.append('label', 'morphology'); + + const fileResponse = await authFetch( + `https://staging.openbraininstitute.org/api/entitycore/reconstruction-morphology/${newEntityId}/assets`, { - status: fileResponseContribution.status, + method: 'POST', + headers: fileUploadHeaders, + body: formData, } ); - } - setIsSuccess(true); + const fileResponseText = await fileResponse.text(); + if (!fileResponse.ok) { + throw new ApiError( + `Failed to upload file ${file.name}: ${fileResponseText}`, + { + status: fileResponse.status, + } + ); + } + notification.success({ + message: `Successfully uploaded file: ${file.name}`, + }); + } } else { notification.success({ - message: 'Record submitted successfully, no file uploaded', + message: 'Record submitted successfully, no files to upload', + }); + } + + const mtypeRequestBody = { + authorized_public: true, + entity_id: newEntityId, + mtype_class_id: mtypeConfig?.mtype_class_id ?? undefined, + }; + + const fileUploadMtypeHeaders = { + 'virtual-lab-id': headers['virtual-lab-id'], + 'project-id': headers['project-id'], + 'Content-Type': 'application/json', + }; + const fileResponseMtype = await authFetch( + `https://staging.openbraininstitute.org/api/entitycore/mtype-classification`, + { + method: 'POST', + headers: fileUploadMtypeHeaders, + body: JSON.stringify(mtypeRequestBody), + } + ); + const fileResponseMtypeText = await fileResponseMtype.text(); + if (!fileResponseMtype.ok) { + throw new ApiError(`Failed to upload file: ${fileResponseMtypeText}`, { + status: fileResponseMtype.status, }); } + + const contributionRequestBody = { + entity_id: newEntityId, + agent_id: contributionConfig?.agent_id ?? undefined, + role_id: contributionConfig?.role_id ?? undefined, + }; + + const fileUploadContributionHeaders = { + 'virtual-lab-id': headers['virtual-lab-id'], + 'project-id': headers['project-id'], + 'Content-Type': 'application/json', + }; + const fileResponseContribution = await authFetch( + `https://staging.openbraininstitute.org/api/entitycore/contribution`, + { + method: 'POST', + headers: fileUploadContributionHeaders, + body: JSON.stringify(contributionRequestBody), + } + ); + const fileResponseContributionText = await fileResponseContribution.text(); + if (!fileResponseContribution.ok) { + throw new ApiError(`Failed to upload file: ${fileResponseContributionText}`, { + status: fileResponseContribution.status, + }); + } + + setIsSuccess(true); } catch (error) { notification.error({ message: 'Failed to submit record',