From afba15a03c5f711b3d88744e792400af40ab8730 Mon Sep 17 00:00:00 2001 From: Colin Date: Mon, 6 Nov 2023 08:45:22 -0500 Subject: [PATCH] Volatile-ize spreadsheet view Remove [skip ci] Volatile [skip ci] Parse out INFO field [skip ci] Misc Misc Restyling Refactoring More misc Misc Misc Misc Misc New Refname renaming fix for breakpoint split view Breakpoint split view Misc [skip ci] Refactors Use 7.0.0 Updates Misc Misc --- packages/core/ui/ResizeHandle.tsx | 7 +- .../bed/src/BigBedAdapter/BigBedAdapter.ts | 3 +- .../BreakpointSplitView.ts | 15 +- .../components/AlignmentConnections.tsx | 13 +- .../components/Breakends.tsx | 23 +- .../components/Translocations.tsx | 13 +- .../src/BreakpointSplitView/util.ts | 15 +- .../svgcomponents/SVGLinearSyntenyView.tsx | 7 +- .../src/LaunchSpreadsheetView/index.ts | 9 +- .../SpreadsheetView/components/CellData.tsx | 35 - .../components/ColumnFilterControls.tsx | 84 - .../SpreadsheetView/components/ColumnMenu.tsx | 169 - .../SpreadsheetView/components/DataRow.tsx | 126 - .../SpreadsheetView/components/DataTable.tsx | 91 - .../components/DataTableHeader.tsx | 122 - .../components/GlobalFilterControls.tsx | 70 - .../components/ImportWizard.tsx | 152 +- .../components/NumberEditor.tsx | 52 - .../components/RowCountMessage.tsx | 45 - .../SpreadsheetView/components/RowMenu.tsx | 65 - .../components/SortIndicator.tsx | 36 - .../components/Spreadsheet.test.ts | 17 - .../components/Spreadsheet.tsx | 46 - .../components/SpreadsheetDataGrid.tsx | 34 + .../components/SpreadsheetView.tsx | 124 +- .../SpreadsheetView/components/StatusBar.tsx | 75 - .../src/SpreadsheetView/components/util.ts | 60 +- .../importAdapters/BedImport.test.ts | 14 - .../importAdapters/BedImport.ts | 225 +- .../importAdapters/BedpeImport.ts | 97 + .../importAdapters/ImportUtils.test.ts | 25 - .../importAdapters/ImportUtils.ts | 152 - .../importAdapters/STARFusionImport.test.ts | 27 - .../importAdapters/STARFusionImport.ts | 85 +- .../importAdapters/VcfImport.test.ts | 42 - .../importAdapters/VcfImport.ts | 164 +- .../importAdapters/components/FeatureMenu.tsx | 35 + .../importAdapters/components/LocString.tsx | 31 + .../SpreadsheetView/importAdapters/util.ts | 135 + .../src/SpreadsheetView/index.ts | 4 +- .../models/ColumnDataTypes/LocEnd.ts | 21 - .../models/ColumnDataTypes/LocRef.ts | 21 - .../models/ColumnDataTypes/LocStart.ts | 21 - .../models/ColumnDataTypes/LocString.tsx | 328 -- .../MakeSpreadsheetColumnType.tsx | 38 - .../models/ColumnDataTypes/Number.tsx | 177 - .../models/ColumnDataTypes/Text.tsx | 173 - .../models/ColumnDataTypes/index.ts | 34 - .../SpreadsheetView/models/FilterControls.ts | 95 - .../SpreadsheetView/models/ImportWizard.ts | 347 +- .../src/SpreadsheetView/models/Row.ts | 46 - .../src/SpreadsheetView/models/Spreadsheet.ts | 208 - .../SpreadsheetView/models/Spreadsheet.tsx | 148 + .../models/SpreadsheetView.test.ts | 8 - .../SpreadsheetView/models/SpreadsheetView.ts | 360 +- .../SpreadsheetView/models/StaticRowSet.ts | 65 - .../src/LaunchSvInspectorView/index.ts | 9 +- .../components/SvInspectorView.tsx | 61 +- .../sv-inspector/src/SvInspectorView/index.ts | 9 +- .../SvInspectorView/models/SvInspectorView.ts | 315 +- .../models/adhocFeatureUtils.js | 152 - .../models/breakpointSplitViewFromTableRow.js | 84 - .../models/breakpointSplitViewFromTableRow.ts | 88 + .../src/LinearVariantDisplay/configSchema.ts | 9 +- .../src/LinearVariantDisplay/model.ts | 3 +- yarn.lock | 4087 +++++++++-------- 66 files changed, 3456 insertions(+), 5995 deletions(-) delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/components/CellData.tsx delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/components/ColumnFilterControls.tsx delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/components/ColumnMenu.tsx delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/components/DataRow.tsx delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/components/DataTable.tsx delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/components/DataTableHeader.tsx delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/components/GlobalFilterControls.tsx delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/components/NumberEditor.tsx delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/components/RowCountMessage.tsx delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/components/RowMenu.tsx delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/components/SortIndicator.tsx delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/components/Spreadsheet.test.ts delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/components/Spreadsheet.tsx create mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/components/SpreadsheetDataGrid.tsx delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/components/StatusBar.tsx delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/BedImport.test.ts create mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/BedpeImport.ts delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/ImportUtils.test.ts delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/ImportUtils.ts delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/STARFusionImport.test.ts delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/VcfImport.test.ts create mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/components/FeatureMenu.tsx create mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/components/LocString.tsx create mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/util.ts delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/LocEnd.ts delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/LocRef.ts delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/LocStart.ts delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/LocString.tsx delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/MakeSpreadsheetColumnType.tsx delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/Number.tsx delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/Text.tsx delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/index.ts delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/models/FilterControls.ts delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/models/Row.ts delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/models/Spreadsheet.ts create mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/models/Spreadsheet.tsx delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/models/SpreadsheetView.test.ts delete mode 100644 plugins/spreadsheet-view/src/SpreadsheetView/models/StaticRowSet.ts delete mode 100644 plugins/sv-inspector/src/SvInspectorView/models/adhocFeatureUtils.js delete mode 100644 plugins/sv-inspector/src/SvInspectorView/models/breakpointSplitViewFromTableRow.js create mode 100644 plugins/sv-inspector/src/SvInspectorView/models/breakpointSplitViewFromTableRow.ts diff --git a/packages/core/ui/ResizeHandle.tsx b/packages/core/ui/ResizeHandle.tsx index 3584800e13..40e66cf4a6 100644 --- a/packages/core/ui/ResizeHandle.tsx +++ b/packages/core/ui/ResizeHandle.tsx @@ -12,11 +12,14 @@ const useStyles = makeStyles()({ }, flexbox_verticalHandle: { cursor: 'col-resize', - alignSelf: 'stretch', // the height: 100% is actually unable to function inside flexbox + alignSelf: 'stretch', + // uses alignSelf:stretch with flexbox as the height: 100% is actually + // unable to function inside flexbox }, flexbox_horizontalHandle: { cursor: 'row-resize', - alignSelf: 'stretch', // similar to above + alignSelf: 'stretch', + // similar to above }, }) diff --git a/plugins/bed/src/BigBedAdapter/BigBedAdapter.ts b/plugins/bed/src/BigBedAdapter/BigBedAdapter.ts index 7995312957..c7b2242ef1 100644 --- a/plugins/bed/src/BigBedAdapter/BigBedAdapter.ts +++ b/plugins/bed/src/BigBedAdapter/BigBedAdapter.ts @@ -4,10 +4,9 @@ import { BaseFeatureDataAdapter, BaseOptions, } from '@jbrowse/core/data_adapters/BaseAdapter' -import { Region } from '@jbrowse/core/util/types' import { openLocation } from '@jbrowse/core/util/io' import { ObservableCreate } from '@jbrowse/core/util/rxjs' -import SimpleFeature, { Feature } from '@jbrowse/core/util/simpleFeature' +import { SimpleFeature, Feature, Region } from '@jbrowse/core/util' import { map, mergeAll } from 'rxjs/operators' // locals diff --git a/plugins/breakpoint-split-view/src/BreakpointSplitView/BreakpointSplitView.ts b/plugins/breakpoint-split-view/src/BreakpointSplitView/BreakpointSplitView.ts index 0988e3f57e..97425bbe1e 100644 --- a/plugins/breakpoint-split-view/src/BreakpointSplitView/BreakpointSplitView.ts +++ b/plugins/breakpoint-split-view/src/BreakpointSplitView/BreakpointSplitView.ts @@ -1,23 +1,20 @@ -import { getSession, Feature, Region } from '@jbrowse/core/util' +import { Feature, AbstractSessionModel } from '@jbrowse/core/util' import ViewType from '@jbrowse/core/pluggableElementTypes/ViewType' import { parseBreakend } from '@gmod/vcf' -import { IStateTreeNode } from 'mobx-state-tree' export default class BreakpointSplitViewType extends ViewType { - snapshotFromBreakendFeature( + async snapshotFromBreakendFeature( feature: Feature, - view: { displayedRegions: Region[] } & IStateTreeNode, + assemblyName: string, + session: AbstractSessionModel, ) { const alt = feature.get('ALT')?.[0] const bnd = alt ? parseBreakend(alt) : undefined const startPos = feature.get('start') let endPos const bpPerPx = 10 - - // TODO: Figure this out for multiple assembly names - const { assemblyName } = view.displayedRegions[0] - const { assemblyManager } = getSession(view) - const assembly = assemblyManager.get(assemblyName) + const { assemblyManager } = session + const assembly = await assemblyManager.waitForAssembly(assemblyName) if (!assembly) { throw new Error(`assembly ${assemblyName} not found`) diff --git a/plugins/breakpoint-split-view/src/BreakpointSplitView/components/AlignmentConnections.tsx b/plugins/breakpoint-split-view/src/BreakpointSplitView/components/AlignmentConnections.tsx index b8fb50dd29..1873942f28 100644 --- a/plugins/breakpoint-split-view/src/BreakpointSplitView/components/AlignmentConnections.tsx +++ b/plugins/breakpoint-split-view/src/BreakpointSplitView/components/AlignmentConnections.tsx @@ -81,20 +81,15 @@ const AlignmentConnections = observer(function ({ if (!showIntraviewLinks && level1 === level2) { return null } - const f1ref = assembly.getCanonicalRefName(f1.get('refName')) - const f2ref = assembly.getCanonicalRefName(f2.get('refName')) - - if (!f1ref || !f2ref) { - throw new Error(`unable to find ref for ${f1ref || f2ref}`) - } - + const f1ref = f1.get('refName') + const f2ref = f2.get('refName') const s1 = f1.get('strand') const s2 = f2.get('strand') const p1 = c1[s1 === -1 ? LEFT : RIGHT] const sn1 = s2 === -1 const p2 = hasPaired ? c2[sn1 ? LEFT : RIGHT] : c2[sn1 ? RIGHT : LEFT] - const x1 = getPxFromCoordinate(views[level1], f1ref, p1) - const x2 = getPxFromCoordinate(views[level2], f2ref, p2) + const x1 = getPxFromCoordinate(views[level1], f1ref, p1, assembly) + const x2 = getPxFromCoordinate(views[level2], f2ref, p2, assembly) const reversed1 = views[level1].pxToBp(x1).reversed const reversed2 = views[level2].pxToBp(x2).reversed const tracks = views.map(v => v.getTrack(trackId)) diff --git a/plugins/breakpoint-split-view/src/BreakpointSplitView/components/Breakends.tsx b/plugins/breakpoint-split-view/src/BreakpointSplitView/components/Breakends.tsx index 59096317cf..84ec3ba7d3 100644 --- a/plugins/breakpoint-split-view/src/BreakpointSplitView/components/Breakends.tsx +++ b/plugins/breakpoint-split-view/src/BreakpointSplitView/components/Breakends.tsx @@ -37,11 +37,7 @@ const Breakends = observer(function ({ const [mouseoverElt, setMouseoverElt] = useState() const snap = getSnapshot(model) useNextFrame(snap) - const assembly = assemblyManager.get(views[0].assemblyNames[0]) - - if (!assembly) { - return null - } + const asm = assemblyManager.get(views[0].assemblyNames[0]) let yoff = 0 if (ref.current) { @@ -49,7 +45,7 @@ const Breakends = observer(function ({ yoff = rect.top } - return ( + return asm ? ( - ) + ) : null }) export default Breakends diff --git a/plugins/breakpoint-split-view/src/BreakpointSplitView/components/Translocations.tsx b/plugins/breakpoint-split-view/src/BreakpointSplitView/components/Translocations.tsx index 0b6e46ec17..2c47f8b5ec 100644 --- a/plugins/breakpoint-split-view/src/BreakpointSplitView/components/Translocations.tsx +++ b/plugins/breakpoint-split-view/src/BreakpointSplitView/components/Translocations.tsx @@ -50,10 +50,6 @@ const Translocations = observer(function ({ useNextFrame(snap) const assembly = assemblyManager.get(views[0].assemblyNames[0]) - if (!assembly) { - return null - } - let yOffset = 0 if (ref.current) { const rect = ref.current.getBoundingClientRect() @@ -64,10 +60,8 @@ const Translocations = observer(function ({ // just return null here note: would need to do processing of the INFO // CHR2/END and see which view could contain those coordinates to really do // it properly - if (views.length < 2) { - return null - } - return ( + + return !assembly || views.length < 2 ? null : ( - view.tracks.map(t => - measureText(getTrackName(t.configuration, session), fontSize), - ), + view.tracks + .map(track => getTrackName(track.configuration, session)) + .map(label => measureText(label, fontSize)), ), 0, ) + 40 diff --git a/plugins/spreadsheet-view/src/LaunchSpreadsheetView/index.ts b/plugins/spreadsheet-view/src/LaunchSpreadsheetView/index.ts index b85b02c942..1b159d77b6 100644 --- a/plugins/spreadsheet-view/src/LaunchSpreadsheetView/index.ts +++ b/plugins/spreadsheet-view/src/LaunchSpreadsheetView/index.ts @@ -22,19 +22,12 @@ export default function LaunchSpreadsheetViewF(pluginManager: PluginManager) { if (!view) { throw new Error('Failed to initialize view') } - const exts = uri.split('.') - let ext = exts?.pop()?.toUpperCase() - if (ext === 'GZ') { - ext = exts?.pop()?.toUpperCase() - } - view.importWizard.setFileType(fileType || ext || '') view.importWizard.setSelectedAssemblyName(assembly) - view.importWizard.setFileSource({ + view.importWizard.setSpreadsheetFilehandle({ uri, locationType: 'UriLocation', }) - await view.importWizard.import(assembly) }, ) } diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/components/CellData.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/components/CellData.tsx deleted file mode 100644 index 5ba738c083..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/components/CellData.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import React from 'react' -import { observer } from 'mobx-react' -import { Instance } from 'mobx-state-tree' - -// locals -import SpreadsheetStateModel from '../models/Spreadsheet' - -type SpreadsheetModel = Instance - -const CellData = observer(function ({ - cell, - spreadsheetModel, - columnNumber, -}: { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - cell: any - spreadsheetModel: SpreadsheetModel - columnNumber: number -}) { - const column = spreadsheetModel.columns[columnNumber] - return column && - 'dataType' in column && - column.dataType.DataCellReactComponent ? ( - - ) : ( - cell.text - ) -}) - -export default CellData diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/components/ColumnFilterControls.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/components/ColumnFilterControls.tsx deleted file mode 100644 index e903bf7c94..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/components/ColumnFilterControls.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import React from 'react' -import { Grid, IconButton, Typography } from '@mui/material' -import { observer } from 'mobx-react' -import { getParent } from 'mobx-state-tree' -import { makeStyles } from 'tss-react/mui' - -// icons -import FilterIcon from '@mui/icons-material/FilterList' -import CloseIcon from '@mui/icons-material/Close' - -const useStyles = makeStyles()(theme => ({ - columnName: { - verticalAlign: 'middle', - paddingRight: '0.3em', - }, - columnFilter: { - overflow: 'hidden', - whiteSpace: 'nowrap', - boxSizing: 'border-box', - width: '100%', - position: 'relative', - }, - filterIcon: { - position: 'relative', - top: '12px', - }, - filterIconBg: { - background: theme.palette.tertiary.main, - color: 'white', - padding: theme.spacing(1.5), - }, -})) - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -function FilterOperations({ filterModel }: { filterModel: any }) { - if (filterModel) { - return - } - return null -} - -const ColumnFilterControls = observer(function ({ - viewModel, - filterModel, - columnNumber, - height, -}: // eslint-disable-next-line @typescript-eslint/no-explicit-any -any) { - const { classes } = useStyles() - - const columnDefinition = viewModel.spreadsheet.columns[columnNumber] - if (!columnDefinition) { - throw new Error('no column definition! filters are probably out of date') - } - return ( - - - - - - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - getParent(filterModel, 2).removeColumnFilter(filterModel) - } - title="remove filter" - > - - - - {columnDefinition.name} - {' '} - - - - ) -}) - -export default ColumnFilterControls diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/components/ColumnMenu.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/components/ColumnMenu.tsx deleted file mode 100644 index 5b4bd51b59..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/components/ColumnMenu.tsx +++ /dev/null @@ -1,169 +0,0 @@ -import React from 'react' -import { observer } from 'mobx-react' -import { iterMap } from '@jbrowse/core/util' -import { Menu } from '@jbrowse/core/ui' -import { MenuItem } from '@jbrowse/core/ui/Menu' -import { SpreadsheetModel } from '../models/Spreadsheet' -import { SpreadsheetViewModel } from '../models/SpreadsheetView' - -// icons -import CheckIcon from '@mui/icons-material/Check' -import FilterListIcon from '@mui/icons-material/FilterList' -import PermDataSettingIcon from '@mui/icons-material/PermDataSetting' -import SortIcon from '@mui/icons-material/Sort' - -const ColumnMenu = observer(function ({ - viewModel, - spreadsheetModel, - currentColumnMenu, - setColumnMenu, -}: { - spreadsheetModel: SpreadsheetModel - viewModel: SpreadsheetViewModel - currentColumnMenu?: { colNumber: number; anchorEl: HTMLElement } - setColumnMenu: (arg?: { anchorEl: HTMLElement; colNumber: number }) => void -}) { - const columnMenuClose = () => setColumnMenu(undefined) - const columnNumber = currentColumnMenu?.colNumber || 0 - const sortMenuClick = (descending: boolean) => { - spreadsheetModel.setSortColumns([ - { - columnNumber, - descending, - }, - ]) - } - - const { dataTypeChoices } = spreadsheetModel - - // make a Map of categoryName => [entry...] - type Record = (typeof dataTypeChoices)[0] - interface RecordGroup { - isCategory: boolean - subMenuItems: Record[] - } - const dataTypeTopLevelMenu = new Map() - dataTypeChoices.forEach(dataTypeRecord => { - const { displayName, categoryName } = dataTypeRecord - if (categoryName) { - let entry = dataTypeTopLevelMenu.get(categoryName) as RecordGroup - if (!entry) { - entry = { - isCategory: true, - subMenuItems: [], - } - dataTypeTopLevelMenu.set(categoryName, entry) - } - entry.subMenuItems.push(dataTypeRecord) - } else { - dataTypeTopLevelMenu.set(displayName, dataTypeRecord) - } - }) - - const { columns, sortColumns } = spreadsheetModel - const dataType = currentColumnMenu && columns[columnNumber].dataType - const dataTypeName = dataType?.type || '' - const dataTypeDisplayName = - (currentColumnMenu && columns[columnNumber].dataType.displayName) || '' - - const isSortingAscending = - !!currentColumnMenu && - sortColumns.some( - c => c.columnNumber === currentColumnMenu.colNumber && !c.descending, - ) - const isSortingDescending = - !!currentColumnMenu && - sortColumns.some( - c => c.columnNumber === currentColumnMenu.colNumber && c.descending, - ) - - const menuItems = [ - // top-level column menu - { - label: 'Sort ascending', - icon: SortIcon, - type: 'radio', - checked: isSortingAscending, - onClick: () => sortMenuClick(false), - }, - { - label: 'Sort descending', - icon: SortIcon, - type: 'radio', - checked: isSortingDescending, - onClick: () => sortMenuClick(true), - }, - { - label: 'No sort', - icon: SortIcon, - type: 'radio', - checked: !isSortingDescending && !isSortingAscending, - onClick: () => spreadsheetModel.setSortColumns([]), - }, - // data type menu - { - label: `Type: ${dataTypeDisplayName}`, - icon: PermDataSettingIcon, - subMenu: iterMap( - dataTypeTopLevelMenu.entries(), - ([displayName, record]) => { - if ('typeName' in record && record.typeName) { - const { typeName } = record - return { - label: displayName || typeName, - icon: dataTypeName === typeName ? CheckIcon : undefined, - onClick: () => - spreadsheetModel.setColumnType(columnNumber, typeName), - } - } else if ('subMenuItems' in record && record.subMenuItems) { - const { subMenuItems } = record - return { - label: displayName, - icon: subMenuItems.some(i => i.typeName === dataTypeName) - ? CheckIcon - : undefined, - subMenu: subMenuItems.map(({ typeName, displayName }) => ({ - label: displayName, - icon: typeName === dataTypeName ? CheckIcon : undefined, - onClick: () => - spreadsheetModel.setColumnType(columnNumber, typeName), - })), - } - } else { - return null - } - }, - ).filter(Boolean), - }, - ] as MenuItem[] - - // don't display the filter item if this data type doesn't have filtering - // implemented - if (dataType?.hasFilter) { - menuItems.push({ - label: 'Create filter', - icon: FilterListIcon, - onClick: () => - viewModel.filterControls.addBlankColumnFilter(columnNumber), - }) - } - - return ( - { - callback() - columnMenuClose() - }} - onClose={columnMenuClose} - menuItems={menuItems} - anchorOrigin={{ - vertical: 'bottom', - horizontal: 'right', - }} - /> - ) -}) - -export default ColumnMenu diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/components/DataRow.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/components/DataRow.tsx deleted file mode 100644 index 5ea3c1703b..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/components/DataRow.tsx +++ /dev/null @@ -1,126 +0,0 @@ -import React from 'react' -import { Checkbox, IconButton, FormControlLabel } from '@mui/material' -import { observer } from 'mobx-react' -import { Instance } from 'mobx-state-tree' -import { indigo } from '@mui/material/colors' -import { makeStyles } from 'tss-react/mui' - -// icons -import ArrowDropDown from '@mui/icons-material/ArrowDropDown' - -// locals -import SpreadsheetStateModel from '../models/Spreadsheet' -import RowStateModel from '../models/Row' -import CellData from './CellData' - -type SpreadsheetModel = Instance -type RowModel = Instance - -const useStyles = makeStyles()(theme => ({ - rowNumCell: { - textAlign: 'left', - border: `1px solid ${theme.palette.action.disabledBackground}`, - position: 'relative', - padding: '0 2px 0 0', - whiteSpace: 'nowrap', - userSelect: 'none', - }, - rowNumber: { - fontWeight: 'normal', - display: 'inline-block', - flex: 'none', - paddingRight: '20px', - margin: 0, - whiteSpace: 'nowrap', - }, - rowMenuButton: { - padding: 0, - margin: 0, - position: 'absolute', - right: 0, - display: 'inline-block', - whiteSpace: 'nowrap', - flex: 'none', - }, - rowMenuButtonIcon: {}, - rowSelector: { - position: 'relative', - top: '-2px', - margin: 0, - padding: '0 0.2rem', - }, - - dataRowSelected: { - background: indigo[100], - '& th': { - background: indigo[100], - }, - }, -})) - -const DataRow = observer(function ({ - rowModel, - rowNumber, - spreadsheetModel, -}: { - rowModel: RowModel - rowNumber: string - spreadsheetModel: SpreadsheetModel -}) { - const { classes } = useStyles() - const { hideRowSelection, columnDisplayOrder } = spreadsheetModel - let rowClass = '' - if (rowModel.isSelected) { - rowClass += `${classes.dataRowSelected}` - } - - function labelClick(evt: React.MouseEvent) { - rowModel.toggleSelect() - evt.stopPropagation() - evt.preventDefault() - } - - return ( - - - {hideRowSelection ? ( - - } - label={rowModel.id} - /> - ) : null} - { - spreadsheetModel.setRowMenuPosition({ - anchorEl: event.currentTarget, - rowNumber, - }) - event.preventDefault() - event.stopPropagation() - }} - > - - - - {columnDisplayOrder.map(colNumber => ( - - - - ))} - - ) -}) - -export default DataRow diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/components/DataTable.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/components/DataTable.tsx deleted file mode 100644 index 34c083cbce..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/components/DataTable.tsx +++ /dev/null @@ -1,91 +0,0 @@ -import React from 'react' -import { observer } from 'mobx-react' -import { getParent, Instance } from 'mobx-state-tree' -import { makeStyles } from 'tss-react/mui' - -// locals -import SpreadsheetStateModel from '../models/Spreadsheet' -import RowStateModel from '../models/Row' -import RowMenu from './RowMenu' -import DataRow from './DataRow' -import DataTableHeader from './DataTableHeader' - -type SpreadsheetModel = Instance -type RowModel = Instance - -const useStyles = makeStyles()(theme => ({ - dataTable: { - borderCollapse: 'collapse', - '& td': { - border: `1px solid ${theme.palette.action.disabledBackground}`, - padding: '0.2rem', - maxWidth: '50em', - overflow: 'hidden', - textOverflow: 'ellipsis', - }, - }, - - emptyMessage: { - captionSide: 'bottom', - }, -})) - -const DataTableBody = observer(function ({ - rows, - spreadsheetModel, - page, - rowsPerPage, -}: { - rows: RowModel[] - spreadsheetModel: SpreadsheetModel - page: number - rowsPerPage: number -}) { - return ( - - {rows.slice(rowsPerPage * page, rowsPerPage * (page + 1)).map(row => ( - - ))} - - ) -}) - -const DataTable = observer(function ({ - model, - page, - rowsPerPage, -}: { - model: SpreadsheetModel - page: number - rowsPerPage: number -}) { - const { rowSet } = model - const { classes } = useStyles() - const rows = rowSet.sortedFilteredRows - return ( - <> - - - - - {!rows.length ? ( - - ) : null} -
- {rowSet.count ? 'no rows match criteria' : 'no rows present'} -
- - ) -}) - -export default DataTable diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/components/DataTableHeader.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/components/DataTableHeader.tsx deleted file mode 100644 index a0aca2f6e1..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/components/DataTableHeader.tsx +++ /dev/null @@ -1,122 +0,0 @@ -import React, { useState } from 'react' -import { IconButton, Tooltip } from '@mui/material' -import { observer } from 'mobx-react' -import { getParent } from 'mobx-state-tree' -import { makeStyles } from 'tss-react/mui' - -// icons -import CropFreeIcon from '@mui/icons-material/CropFree' -import ArrowDropDown from '@mui/icons-material/ArrowDropDown' - -// locals -import { SpreadsheetModel } from '../models/Spreadsheet' -import ColumnMenu from './ColumnMenu' -import SortIndicator from './SortIndicator' -import { numToColName } from './util' - -interface ColMenu { - colNumber: number - anchorEl: HTMLElement -} - -const useStyles = makeStyles()(theme => ({ - columnHead: { - fontWeight: 'normal', - background: theme.palette.mode === 'dark' ? '#333' : '#eee', - position: 'sticky', - top: 0, - zIndex: 2, - whiteSpace: 'nowrap', - }, - - columnButtonContainer: { - display: 'none', - position: 'absolute', - right: 0, - top: 0, - background: theme.palette.background.paper, - height: '100%', - }, - - topLeftCorner: { - background: theme.palette.mode === 'dark' ? '#333' : '#eee', - zIndex: 2, - position: 'sticky', - top: 0, - minWidth: theme.spacing(2), - textAlign: 'left', - }, -})) - -const DataTableHeader = observer(function ({ - model, -}: { - model: SpreadsheetModel -}) { - const { classes } = useStyles() - const { columnDisplayOrder, columns, hasColumnNames, rowSet } = model - const [currentColumnMenu, setColumnMenu] = useState() - const [currentHoveredColumn, setHoveredColumn] = useState() - - return ( - <> - - - - - - model.unselectAll()} - disabled={!rowSet.selectedCount} - > - - - - - - {columnDisplayOrder.map(colNumber => ( - setHoveredColumn(colNumber)} - onMouseOut={() => setHoveredColumn(undefined)} - > - - {(hasColumnNames && columns[colNumber]?.name) || - numToColName(colNumber)} -
- { - setColumnMenu({ - colNumber, - anchorEl: evt.currentTarget, - }) - }} - > - - -
- - ))} - - - - - ) -}) - -export default DataTableHeader diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/components/GlobalFilterControls.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/components/GlobalFilterControls.tsx deleted file mode 100644 index 1dc44e13fa..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/components/GlobalFilterControls.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import React, { useState, useEffect } from 'react' - -import { IconButton, InputAdornment, TextField } from '@mui/material' -import ClearIcon from '@mui/icons-material/Clear' -import FilterIcon from '@mui/icons-material/FilterList' - -import { observer } from 'mobx-react' -import { makeStyles } from 'tss-react/mui' -import { useDebounce } from '@jbrowse/core/util' - -const useStyles = makeStyles()({ - textFilterControlEndAdornment: { - marginRight: '-18px', - }, -}) - -const TextFilter = observer(function ({ - textFilter, -}: { - textFilter: { stringToFind: string; setString: (arg: string) => void } -}) { - const { classes } = useStyles() - // this paragraph is silliness to debounce the text filter input - const [textFilterValue, setTextFilterValue] = useState( - textFilter.stringToFind, - ) - const debouncedTextFilter = useDebounce(textFilterValue, 500) - useEffect(() => { - textFilter.setString(debouncedTextFilter) - }, [debouncedTextFilter, textFilter]) - - return ( -
- setTextFilterValue(evt.target.value)} - variant="outlined" - InputProps={{ - startAdornment: ( - - - - ), - endAdornment: ( - - setTextFilterValue('')} - > - - - - ), - }} - /> -
- ) -}) - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -const GlobalFilterControls = observer(({ model }: { model: any }) => { - const textFilter = model.filterControls.rowFullText - return -}) - -export default GlobalFilterControls diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/components/ImportWizard.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/components/ImportWizard.tsx index e53d8a230d..fdd2f081a0 100644 --- a/plugins/spreadsheet-view/src/SpreadsheetView/components/ImportWizard.tsx +++ b/plugins/spreadsheet-view/src/SpreadsheetView/components/ImportWizard.tsx @@ -1,7 +1,6 @@ -import React, { useState } from 'react' +import React, { useEffect, useState } from 'react' import { Button, - Checkbox, FormControl, FormGroup, FormLabel, @@ -11,13 +10,18 @@ import { } from '@mui/material' import { observer } from 'mobx-react' import { getRoot } from 'mobx-state-tree' -import { AbstractRootModel, getSession } from '@jbrowse/core/util' -import { FileSelector, ErrorMessage, AssemblySelector } from '@jbrowse/core/ui' +import { makeStyles } from 'tss-react/mui' +import { AbstractRootModel, FileLocation, getSession } from '@jbrowse/core/util' +import { + FileSelector, + ErrorMessage, + AssemblySelector, + LoadingEllipses, +} from '@jbrowse/core/ui' // locals import { ImportWizardModel } from '../models/ImportWizard' -import NumberEditor from './NumberEditor' -import { makeStyles } from 'tss-react/mui' +import { getFileType } from './util' const useStyles = makeStyles()({ container: { @@ -27,80 +31,57 @@ const useStyles = makeStyles()({ }, }) +function FormControl2({ children }: { children: React.ReactNode }) { + return ( +
+ {children} +
+ ) +} + const ImportWizard = observer(({ model }: { model: ImportWizardModel }) => { const session = getSession(model) const { classes } = useStyles() const { assemblyNames, assemblyManager } = session - const { - fileType, - canCancel, - fileSource, - isReadyToOpen, - fileTypes, - hasColumnNameLine, - error, - } = model + const { fileTypes, error, loading } = model const [selected, setSelected] = useState(assemblyNames[0]) const err = assemblyManager.get(selected)?.error || error - const showRowControls = fileType === 'CSV' || fileType === 'TSV' - const rootModel = getRoot(model) + const rootModel = getRoot(model) + const [tmp, setTmp] = useState() + const [fileType, setFileType] = useState(getFileType(tmp)) + useEffect(() => { + setFileType(getFileType(tmp)) + }, [tmp]) return (
{err ? : null} -
- - Tabular file - - model.setFileSource(arg)} - rootModel={rootModel as AbstractRootModel} - /> - - -
-
- - File Type - - {fileTypes.map(fileTypeName => ( - model.setFileType(fileTypeName)} - control={} - label={fileTypeName} - /> - ))} - - -
- {showRowControls ? ( -
- - Column Names + {loading ? : null} + + File + + setTmp(arg)} + rootModel={rootModel} + /> + + + + File type + + {fileTypes.map(fileTypeName => ( model.toggleHasColumnNameLine()} - /> - } + key={fileTypeName} + checked={fileType === fileTypeName} + value={fileTypeName} + onClick={() => setFileType(fileTypeName)} + control={} + label={fileTypeName} /> - - -
- ) : null} + ))} + +
{ onChange={val => setSelected(val)} />
-
- {canCancel ? ( - - ) : null}{' '} - -
+
) }) diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/components/NumberEditor.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/components/NumberEditor.tsx deleted file mode 100644 index 73cab60dbf..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/components/NumberEditor.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import React, { useState, useEffect } from 'react' -import { TextField } from '@mui/material' -import { makeStyles } from 'tss-react/mui' -import { observer } from 'mobx-react' - -// locals -import { ImportWizardModel } from '../models/ImportWizard' - -const useStyles = makeStyles()({ - textField: { - width: '2rem', - verticalAlign: 'baseline', - }, -}) - -const NumberEditor = observer(function ({ - model, - disabled, - modelPropName, - modelSetterName, -}: { - model: ImportWizardModel - disabled: boolean - modelPropName: string - modelSetterName: string -}) { - // @ts-expect-error - const [val, setVal] = useState(model[modelPropName]) - const { classes } = useStyles() - useEffect(() => { - const num = Number.parseInt(val, 10) - if (!Number.isNaN(num)) { - if (num > 0) { - // @ts-expect-error - model[modelSetterName](num) - } else { - setVal(1) - } - } - }, [model, modelSetterName, val]) - return ( - setVal(evt.target.value)} - className={classes.textField} - /> - ) -}) - -export default NumberEditor diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/components/RowCountMessage.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/components/RowCountMessage.tsx deleted file mode 100644 index 701adb5c33..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/components/RowCountMessage.tsx +++ /dev/null @@ -1,45 +0,0 @@ -// eslint-disable-next-line @typescript-eslint/no-unused-vars -import React from 'react' -import { observer } from 'mobx-react' -import { Instance } from 'mobx-state-tree' - -// locals -import SpreadsheetStateModel from '../models/Spreadsheet' - -type SpreadsheetModel = Instance - -const RowCountMessage = observer(function ({ - spreadsheet, -}: { - spreadsheet: SpreadsheetModel -}) { - if (spreadsheet.rowSet.isLoaded) { - const { - passingFiltersCount, - count, - selectedCount, - selectedAndPassingFiltersCount, - } = spreadsheet.rowSet - - let rowMessage - if (passingFiltersCount !== count) { - rowMessage = `${spreadsheet.rowSet.passingFiltersCount} rows of ${spreadsheet.rowSet.count} total` - if (selectedCount) { - rowMessage += `, ${selectedAndPassingFiltersCount} selected` - const selectedAndNotPassingFiltersCount = - selectedCount - selectedAndPassingFiltersCount - if (selectedAndNotPassingFiltersCount) { - rowMessage += ` (${selectedAndNotPassingFiltersCount} selected rows do not pass filters)` - } - } - } else { - rowMessage = `${spreadsheet.rowSet.count} rows` - if (selectedCount) { - rowMessage += `, ${selectedCount} selected` - } - } - return rowMessage - } - return null -}) -export default RowCountMessage diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/components/RowMenu.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/components/RowMenu.tsx deleted file mode 100644 index 928605b455..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/components/RowMenu.tsx +++ /dev/null @@ -1,65 +0,0 @@ -import React from 'react' -import { observer } from 'mobx-react' -import { Menu, MenuItem } from '@jbrowse/core/ui' -import { Instance } from 'mobx-state-tree' - -// locals -import SpreadsheetModel from '../models/Spreadsheet' -import ViewModel from '../models/SpreadsheetView' - -const RowMenu = observer(function ({ - viewModel, - spreadsheetModel, -}: { - viewModel: Instance - spreadsheetModel: Instance -}) { - const currentRowMenu = spreadsheetModel.rowMenuPosition - const { setRowMenuPosition } = spreadsheetModel - - const rowMenuClose = () => { - setRowMenuPosition(null) - } - - const rowNumber = spreadsheetModel.rowMenuPosition?.rowNumber - if (rowNumber === undefined) { - return null - } - - const row = spreadsheetModel.rowSet.rows[+rowNumber - 1] - - function handleMenuItemClick(_event: unknown, callback: Function) { - callback(viewModel, spreadsheetModel, rowNumber, row) - rowMenuClose() - } - - // got through and evaluate all the `disabled` callbacks of the menu items - const menuItems: MenuItem[] = viewModel.rowMenuItems.map(item => { - if (typeof item.disabled === 'function') { - const disabled = item.disabled( - viewModel, - spreadsheetModel, - +rowNumber, - row, - ) - return { ...item, disabled } - } - return item - }) - - return ( - - ) -}) - -export default RowMenu diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/components/SortIndicator.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/components/SortIndicator.tsx deleted file mode 100644 index 95259aca1b..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/components/SortIndicator.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import React from 'react' -import { makeStyles } from 'tss-react/mui' - -// icons -import KeyboardArrowUpIcon from '@mui/icons-material/KeyboardArrowUp' -import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown' -import { SpreadsheetModel } from '../models/Spreadsheet' - -const useStyles = makeStyles()({ - sortIndicator: { - position: 'relative', - top: '0.2rem', - fontSize: '1rem', - }, -}) - -export default function SortIndicator({ - model, - columnNumber, -}: { - model: SpreadsheetModel - columnNumber: number -}) { - const { classes } = useStyles() - const sortSpec = model.sortColumns.find(c => c.columnNumber === columnNumber) - - if (sortSpec) { - const { descending } = sortSpec - return descending ? ( - - ) : ( - - ) - } - return null -} diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/components/Spreadsheet.test.ts b/plugins/spreadsheet-view/src/SpreadsheetView/components/Spreadsheet.test.ts deleted file mode 100644 index 567f09aa73..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/components/Spreadsheet.test.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { numToColName } from './util' - -describe('num to col name', () => { - const cases = [ - [10, 'K'], - [26, 'AA'], - [0, 'A'], - [25, 'Z'], - [27 * 26 - 1, 'ZZ'], - ] as const - - cases.forEach(([input, output]) => { - test(`${input} -> ${output}`, () => { - expect(numToColName(input)).toBe(output) - }) - }) -}) diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/components/Spreadsheet.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/components/Spreadsheet.tsx deleted file mode 100644 index 97eb2490d3..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/components/Spreadsheet.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import React from 'react' -import { observer } from 'mobx-react' -import { Instance } from 'mobx-state-tree' -import { makeStyles } from 'tss-react/mui' - -// locals -import SpreadsheetStateModel from '../models/Spreadsheet' -import { LoadingEllipses } from '@jbrowse/core/ui' -import DataTable from './DataTable' - -type SpreadsheetModel = Instance - -const useStyles = makeStyles()(theme => ({ - root: { - position: 'relative', - marginBottom: theme.spacing(1), - background: theme.palette.background.paper, - overflow: 'auto', - }, -})) - -const Spreadsheet = observer(function ({ - model, - height, - page, - rowsPerPage, -}: { - model: SpreadsheetModel - height: number - page: number - rowsPerPage: number -}) { - const { classes } = useStyles() - - return ( -
- {model?.rowSet?.isLoaded && model.initialized ? ( - - ) : ( - - )} -
- ) -}) - -export default Spreadsheet diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/components/SpreadsheetDataGrid.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/components/SpreadsheetDataGrid.tsx new file mode 100644 index 0000000000..f3550a35a2 --- /dev/null +++ b/plugins/spreadsheet-view/src/SpreadsheetView/components/SpreadsheetDataGrid.tsx @@ -0,0 +1,34 @@ +import React from 'react' +import { observer } from 'mobx-react' +import { DataGrid, GridToolbar } from '@mui/x-data-grid' + +// locals +import { SpreadsheetModel } from '../models/Spreadsheet' + +const SpreadsheetDataGrid = observer(function ({ + model, +}: { + model: SpreadsheetModel +}) { + const { rows, visibleColumns, columns } = model + + return ( + model.setVisibleColumns(n)} + rowHeight={25} + hideFooter={rows.length < 100} + slots={{ toolbar: GridToolbar }} + slotProps={{ + toolbar: { + showQuickFilter: true, + }, + }} + rows={rows} + columns={columns} + /> + ) +}) + +export default SpreadsheetDataGrid diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/components/SpreadsheetView.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/components/SpreadsheetView.tsx index 1a6c8f0b19..429571eba7 100644 --- a/plugins/spreadsheet-view/src/SpreadsheetView/components/SpreadsheetView.tsx +++ b/plugins/spreadsheet-view/src/SpreadsheetView/components/SpreadsheetView.tsx @@ -1,39 +1,25 @@ -import React, { useState } from 'react' -import { Grid } from '@mui/material' +import React, { Suspense, lazy, useState } from 'react' import { makeStyles } from 'tss-react/mui' import { observer } from 'mobx-react' import { ResizeHandle } from '@jbrowse/core/ui' // locals -import ImportWizard from './ImportWizard' -import Spreadsheet from './Spreadsheet' -import GlobalFilterControls from './GlobalFilterControls' -import ColumnFilterControls from './ColumnFilterControls' import { SpreadsheetViewModel } from '../models/SpreadsheetView' -import StatusBar from './StatusBar' +import SpreadsheetDataGrid from './SpreadsheetDataGrid' -const headerHeight = 52 -const colFilterHeight = 46 -const statusBarHeight = 40 +const ImportWizard = lazy(() => import('./ImportWizard')) const useStyles = makeStyles()(theme => ({ - header: { - overflow: 'hidden', - whiteSpace: 'nowrap', - boxSizing: 'border-box', - height: headerHeight, - paddingLeft: theme.spacing(1), - }, contentArea: { overflow: 'auto', + position: 'relative', + marginBottom: theme.spacing(1), + background: theme.palette.background.paper, }, resizeHandle: { - height: 3, - position: 'absolute', - bottom: 0, - left: 0, - background: theme.palette.action.disabled, + height: 5, boxSizing: 'border-box', + background: theme.palette.action.disabled, borderTop: '1px solid #fafafa', }, })) @@ -43,83 +29,37 @@ const SpreadsheetView = observer(function ({ }: { model: SpreadsheetViewModel }) { + const [initialHeight, setInitialHeight] = useState(0) const { classes } = useStyles() - const { - spreadsheet, - filterControls, - hideFilterControls, - hideVerticalResizeHandle, - mode, - height, - } = model - const [page, setPage] = useState(0) - const [rowsPerPage, setRowsPerPage] = useState(100) - + const { spreadsheet, hideVerticalResizeHandle, height } = model return ( -
- {mode !== 'display' || hideFilterControls ? null : ( - <> - - - - - - {filterControls.columnFilters.map((f, i) => ( - - ))} - - )} - - {mode === 'import' ? ( - - ) : ( -
-
- {spreadsheet ? ( - - ) : null} -
-
- )} - {spreadsheet ? ( - - ) : null} + <> +
+ +
{hideVerticalResizeHandle ? null : ( setInitialHeight(height)} + onDrag={(_, dist) => model.setHeight(initialHeight - dist)} className={classes.resizeHandle} /> )} -
+ + ) +}) + +const SpreadsheetContainer = observer(function ({ + model, +}: { + model: SpreadsheetViewModel +}) { + return !model.initialized ? ( + + + + ) : ( + ) }) -export default SpreadsheetView +export default SpreadsheetContainer diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/components/StatusBar.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/components/StatusBar.tsx deleted file mode 100644 index d24b5b1b4e..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/components/StatusBar.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import React from 'react' -import { FormGroup, TablePagination } from '@mui/material' -import { makeStyles } from 'tss-react/mui' - -// locals -import RowCountMessage from './RowCountMessage' -import { SpreadsheetModel } from '../models/Spreadsheet' -import { observer } from 'mobx-react' - -const statusBarHeight = 40 - -const useStyles = makeStyles()(theme => ({ - statusBar: { - height: statusBarHeight, - boxSizing: 'border-box', - borderTop: '1px outset #b1b1b1', - paddingLeft: theme.spacing(1), - }, - verticallyCenter: { - display: 'flex', - justifyContent: 'center', - flexDirection: 'column', - }, - spacer: { - flexGrow: 1, - }, -})) - -const StatusBar = observer(function StatusBar({ - page, - rowsPerPage, - setPage, - setRowsPerPage, - spreadsheet, - mode, -}: { - page: number - mode: string - spreadsheet: SpreadsheetModel - rowsPerPage: number - setPage: (arg: number) => void - setRowsPerPage: (arg: number) => void -}) { - const { classes } = useStyles() - return ( -
- {spreadsheet ? ( - -
- -
-
- setPage(newPage)} - onRowsPerPageChange={event => { - setRowsPerPage(+event.target.value) - setPage(0) - }} - /> -
- - ) : null} -
- ) -}) - -export default StatusBar diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/components/util.ts b/plugins/spreadsheet-view/src/SpreadsheetView/components/util.ts index fc1bafa1a4..20aff34410 100644 --- a/plugins/spreadsheet-view/src/SpreadsheetView/components/util.ts +++ b/plugins/spreadsheet-view/src/SpreadsheetView/components/util.ts @@ -1,16 +1,54 @@ -function letterFor(n: number) { - return String.fromCharCode(n + 65) +import { FileLocation, getSession } from '@jbrowse/core/util' +import { getParent } from 'mobx-state-tree' +import { LinearGenomeViewModel } from '@jbrowse/plugin-linear-genome-view' + +type LGV = LinearGenomeViewModel +type MaybeLGV = LinearGenomeViewModel | undefined + +export function locationLinkClick( + spreadsheet: { assemblyName?: string }, + locString: string, +) { + const session = getSession(spreadsheet) + const { assemblyName } = spreadsheet + const { id } = getParent<{ id: string }>(spreadsheet) + + const newViewId = `${id}_${assemblyName}` + let view = session.views.find(v => v.id === newViewId) as MaybeLGV + if (!view) { + view = session.addView('LinearGenomeView', { id: newViewId }) as LGV + } + return view.navToLocString(locString, assemblyName) } -export function numToColName(num: number) { - if (num >= 0) { - if (num < 26) { - return letterFor(num) - } - if (num < 27 * 26) { - return letterFor(Math.floor(num / 26 - 1)) + letterFor(num % 26) +export const fileTypes = ['VCF', 'BED', 'BEDPE', 'STAR-Fusion'] + +export const fileTypesRegexp = new RegExp( + `\\.(${fileTypes.join('|')})(\\.gz)?$`, + 'i', +) + +export function getFilename(file?: FileLocation) { + return file + ? // @ts-expect-error + file.uri || + // @ts-expect-error + file.localPath || + // @ts-expect-error + (file.blobId && file.name) + : undefined +} + +export function getFileType(file?: FileLocation) { + const name = getFilename(file) + + if (name) { + const firstMatch = fileTypesRegexp.exec(name)?.[1] + if (firstMatch) { + return firstMatch === 'tsv' && name.includes('star-fusion') + ? 'STAR-Fusion' + : firstMatch.toUpperCase() } } - - throw new RangeError('column number out of range') + return 'VCF' } diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/BedImport.test.ts b/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/BedImport.test.ts deleted file mode 100644 index f20f9126be..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/BedImport.test.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { promises as fsPromises } from 'fs' -import path from 'path' - -import { removeBedHeaders } from './BedImport' - -test('bed header trimming', async () => { - const filepath = path.join(__dirname, '..', 'test_data', 'foo.bed') - const buf = await fsPromises.readFile(filepath) - expect(buf[0]).toEqual(98) - expect(buf[1]).toEqual(114) - const trimmedBuffer = removeBedHeaders(buf) - expect(trimmedBuffer[0]).toEqual(99) - expect(trimmedBuffer.length).toBe(275) -}) diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/BedImport.ts b/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/BedImport.ts index 07c4a0a70a..2a7871dd15 100644 --- a/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/BedImport.ts +++ b/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/BedImport.ts @@ -1,155 +1,94 @@ -import { ParseOptions, parseTsvBuffer } from './ImportUtils' +import { assembleLocString } from '@jbrowse/core/util' +import { parseStrand } from './util' +import LocString from './components/LocString' -const browserBytes = 'browser '.split('').map(c => c.charCodeAt(0)) -const trackBytes = 'track '.split('').map(c => c.charCodeAt(0)) -const commentBytes = '#'.split('').map(c => c.charCodeAt(0)) +const MAX_SET_SCAN = 100 +const MAX_BED_COL = 6 -function bytesAreFoundAt(position: number, buffer: Buffer, bytes: number[]) { +export async function parseBedBuffer(buffer: Buffer) { + const data = new TextDecoder('utf8', { fatal: true }).decode(buffer) + const lines = data.split(/\n|\r\n|\r/).filter(f => !!f) + const headerLines = [] let i = 0 - for (; i < bytes.length; i += 1) { - if (buffer[position + i] !== bytes[i]) { - return false - } + for ( + ; + i < lines.length && + (lines[i].startsWith('#') || + lines[i].startsWith('browser') || + lines[i].startsWith('track')); + i++ + ) { + headerLines.push(lines[i]) } - return true -} -export function removeBedHeaders(buffer: Buffer) { - // slice off the first lines of the buffer if it starts with one or more - // header lines - let i = 0 - for (; i < buffer.length; i += 1) { - if ( - bytesAreFoundAt(i, buffer, browserBytes) || - bytesAreFoundAt(i, buffer, trackBytes) || - bytesAreFoundAt(i, buffer, commentBytes) - ) { - // consume up to the next newline - do { - i += 1 - } while (buffer[i] !== 10) - } else { - // end of headers, return - break - } + const header = headerLines.join('\n') + const lastHeaderLine = headerLines.at(-1) + let names = [] as string[] + if (lastHeaderLine?.startsWith('#')) { + names = lastHeaderLine + .slice(1) + .split('\t') + .map(f => f.trim()) } - if (i) { - return buffer.slice(i) - } - return buffer -} -export async function parseBedBuffer(buffer: Buffer, options: ParseOptions) { - const b = removeBedHeaders(buffer) - const data = await parseTsvBuffer(b) - const bedColumns = [ - { name: 'chrom', dataType: { type: 'LocRef' } }, - { name: 'chromStart', dataType: { type: 'LocStart' } }, - { name: 'chromEnd', dataType: { type: 'LocEnd' } }, - { name: 'name', dataType: { type: 'Text' } }, - { name: 'score', dataType: { type: 'Number' } }, - { name: 'strand', dataType: { type: 'Text' } }, - ] - data.columns.forEach((col, colNumber) => { - const bedColumn = bedColumns[colNumber] - if (bedColumn) { - col.name = bedColumn.name - col.dataType = bedColumn.dataType - } - }) - data.hasColumnNames = true - data.assemblyName = options.selectedAssemblyName + const columns = new Set([ + 'refName', + 'start', + 'end', + 'mate.refName', + 'mate.start', + 'mate.end', + 'name', + 'score', + 'strand', + 'mate.strand', + ...names.slice(9), + ]) + const rows = [] + for (let j = 0; i < lines.length; i++, j++) { + const line = lines[i] + const l = line.split('\t') + const refName = l[0] + const start = +l[1] + const end = +l[2] + const name = l[3] + const score = +l[4] + const strand = parseStrand(l[5]) - data.columnDisplayOrder.push(data.columnDisplayOrder.length) - data.columns.unshift({ - name: 'Location', - dataType: { type: 'LocString' }, - isDerived: true, - derivationFunctionText: `jexl:{text:row.cells[0].text+':'+row.cells[1].text+'..'+row.cells[2].text,\n - extendedData: {refName: row.cells.ref.text, start: parseInt(row.cells.start.text,10), end: parseInt(row.cells.end.text,10)}}`, - }) - return data -} - -export async function parseBedPEBuffer(buffer: Buffer, options: ParseOptions) { - const b = removeBedHeaders(buffer) - const data = await parseTsvBuffer(b) - interface BedColumn { - name: string - dataType: { - type: string - } - featureField: string[] - } - const bedColumns: BedColumn[] = [ - { name: 'chrom1', dataType: { type: 'Text' }, featureField: ['refName'] }, - { name: 'start1', dataType: { type: 'Number' }, featureField: ['start'] }, - { name: 'end1', dataType: { type: 'Number' }, featureField: ['end'] }, - { - name: 'chrom2', - dataType: { type: 'Text' }, - featureField: ['mate', 'refName'], - }, - { - name: 'start2', - dataType: { type: 'Number' }, - featureField: ['mate', 'start'], - }, - { - name: 'end2', - dataType: { type: 'Number' }, - featureField: ['mate', 'end'], - }, - { name: 'name', dataType: { type: 'Text' }, featureField: ['name'] }, - { name: 'score', dataType: { type: 'Number' }, featureField: ['score'] }, - { name: 'strand1', dataType: { type: 'Text' }, featureField: ['strand'] }, - { - name: 'strand2', - dataType: { type: 'Text' }, - featureField: ['mate', 'strand'], - }, - ] - data.columns.forEach((col, colNumber) => { - const bedColumn = bedColumns[colNumber] - if (bedColumn) { - col.name = bedColumn.name - col.dataType = bedColumn.dataType - } - }) - data.hasColumnNames = true + const extra = l.slice(MAX_BED_COL) + const rest = Object.fromEntries( + extra.map((e, idx) => { + const key = names[idx + MAX_BED_COL] || `extra_${idx}` - // decorate each row with a feature object in its extendedData - data.rowSet.rows.forEach((row, rowNumber) => { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const featureData: Record = {} - row.cells.forEach(({ text }, columnNumber) => { - const bedColumn = bedColumns[columnNumber] - const val = - bedColumn && bedColumn.dataType.type === 'Number' && text - ? parseFloat(text) - : text - if (bedColumn) { - // a predefined column - if (bedColumn.featureField.length === 2) { - if (!featureData[bedColumn.featureField[0]]) { - featureData[bedColumn.featureField[0]] = {} - } - featureData[bedColumn.featureField[0]][bedColumn.featureField[1]] = - val - } else { - featureData[bedColumn.featureField[0]] = val + if (j < MAX_SET_SCAN) { + columns.add(key) } - } else { - // some other column - featureData[`column${columnNumber + 1}`] = val - } - }) - featureData.uniqueId = `bedpe-${rowNumber}` - row.extendedData = { - feature: featureData, - } - }) + return [key, e] + }), + ) - data.assemblyName = options.selectedAssemblyName + rows.push({ + ...rest, + loc: assembleLocString({ + refName, + start, + end, + }), + id: `row_${i}`, + start, + end, + refName, + strand, + name, + score, + }) + } - return data + return { + header, + rows, + columns: [...columns], + customComponents: { + loc: LocString, + }, + } } diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/BedpeImport.ts b/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/BedpeImport.ts new file mode 100644 index 0000000000..5751953b6c --- /dev/null +++ b/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/BedpeImport.ts @@ -0,0 +1,97 @@ +import { parseStrand } from './util' + +const MAX_SET_SCAN = 100 +const MAX_BEDPE_COL = 10 + +export async function parseBedPEBuffer(buffer: Buffer) { + const data = new TextDecoder('utf8', { fatal: true }).decode(buffer) + const lines = data.split(/\n|\r\n|\r/).filter(f => !!f) + const headerLines = [] + let i = 0 + for ( + ; + i < lines.length && + (lines[i].startsWith('#') || + lines[i].startsWith('browser') || + lines[i].startsWith('track')); + i++ + ) { + headerLines.push(lines[i]) + } + const header = headerLines.join('\n') + const lastHeaderLine = headerLines.at(-1) + let names = [] as string[] + if (lastHeaderLine?.startsWith('#')) { + names = lastHeaderLine + .slice(1) + .split('\t') + .map(f => f.trim()) + } + + const columns = new Set([ + 'refName', + 'start', + 'end', + 'mate.refName', + 'mate.start', + 'mate.end', + 'name', + 'score', + 'strand', + 'mate.strand', + ...names.slice(9), + ]) + const rows = [] + for (let j = 0; i < lines.length; i++, j++) { + const line = lines[i] + const l = line.split('\t') + const ref1 = l[0] + const start1 = +l[1] + const end1 = +l[2] + const ref2 = l[3] + const start2 = +l[4] + const end2 = +l[5] + const name = l[6] + const score = +l[7] + const strand1 = parseStrand(l[8]) + const strand2 = parseStrand(l[9]) + + let extra = l.slice(MAX_BEDPE_COL) + let ALT + if (['DUP', 'TRA', 'INV', 'CNV', 'DEL'].includes(extra[0])) { + ALT = `<${extra[0]}>` + if (j < MAX_SET_SCAN) { + columns.add('ALT') + } + extra = extra.slice(1) + } + const rest = Object.fromEntries( + extra.map((e, idx) => { + const key = names[idx + MAX_BEDPE_COL] || `extra_${idx}` + + if (j < MAX_SET_SCAN) { + columns.add(key) + } + return [key, e] + }), + ) + + rows.push({ + ...rest, + id: `row_${i}`, + start: start1, + end: end1, + refName: ref1, + strand: strand1, + name, + ALT, + score, + 'mate.refName': ref2, + 'mate.start': start2, + 'mate.end': end2, + 'mate.strand': strand2, + }) + } + + return { header, rows, columns: [...columns] } +} diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/ImportUtils.test.ts b/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/ImportUtils.test.ts deleted file mode 100644 index 3347ef3d77..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/ImportUtils.test.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { promises as fsPromises } from 'fs' -import path from 'path' - -// locals -import { parseCsvBuffer } from './ImportUtils' -import SpreadsheetModel from '../models/Spreadsheet' - -test('csv to spreadsheet snapshot', async () => { - const filepath = path.join( - __dirname, - '..', - 'test_data', - 'breast_cancer.subset.csv', - ) - const buf = await fsPromises.readFile(filepath) - const spreadsheetSnap = await parseCsvBuffer(buf, { - hasColumnNameLine: true, - columnNameLineNumber: 1, - isValidRefName: () => true, - }) - expect(spreadsheetSnap).toMatchSnapshot() - // @ts-expect-error - const spreadsheet = SpreadsheetModel.create(spreadsheetSnap) - expect(spreadsheet.rowSet.rows.length).toBe(49) -}) diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/ImportUtils.ts b/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/ImportUtils.ts deleted file mode 100644 index d0a1b16833..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/ImportUtils.ts +++ /dev/null @@ -1,152 +0,0 @@ -import { parseLocString } from '@jbrowse/core/util' - -export function bufferToString(buffer: Buffer) { - return new TextDecoder('utf8', { fatal: true }).decode(buffer) -} - -async function parseWith(buffer: Buffer, options = {}) { - const csv = await import('csvtojson').then(module => module.default) - return csv({ noheader: true, output: 'csv', ...options }).fromString( - bufferToString(buffer), - ) -} - -export interface Row { - id: string - // eslint-disable-next-line @typescript-eslint/no-explicit-any - extendedData?: any - cells: { - text: string - // eslint-disable-next-line @typescript-eslint/no-explicit-any - extendedData?: any - }[] -} - -export interface RowSet { - isLoaded: boolean - rows: Row[] -} - -export interface ParseOptions { - hasColumnNameLine?: boolean - columnNameLineNumber?: number - selectedAssemblyName?: string - isValidRefName?: (refName: string, assemblyName?: string) => boolean -} - -export interface Column { - name: string - dataType: { type: string } - isDerived?: boolean - derivationFunctionText?: string -} - -function guessColumnType( - rowSet: RowSet, - columnNumber: number, - isValidRefName: (refName: string, assemblyName?: string) => boolean, -) { - const text = rowSet.rows[0].cells[columnNumber].text || '' - - let guessedType = 'Text' - - let parsedLoc - try { - parsedLoc = parseLocString(text, isValidRefName) - } catch (error) { - // - } - if (parsedLoc?.refName && typeof parsedLoc.start === 'number') { - guessedType = 'LocString' - } else if (/^\d+(\.\d+)?$/.test(text)) { - guessedType = 'Number' - } - - // MAYBE TODO: iterate over the rest of the rows to confirm - // the type for all the rows - - return guessedType -} - -function dataToSpreadsheetSnapshot( - rows: string[][], - options: ParseOptions = {}, -) { - const { - hasColumnNameLine = false, - columnNameLineNumber = 1, - isValidRefName = () => false, - selectedAssemblyName, - } = options - // rows is an array of row objects and columnNames - // is an array of column names (in import order) - let maxCols = 0 - const rowSet: RowSet = { - isLoaded: true, - rows: rows.map((row, rowNumber) => { - const id = rowNumber + (hasColumnNameLine ? 0 : 1) - if (row.length > maxCols) { - maxCols = row.length - } - return { - id: String(id), - cells: row.map((text, columnNumber) => { - return { columnNumber, text } - }), - } - }), - } - - // process the column names row if present - const columnNames: Record = {} - if (hasColumnNameLine && columnNameLineNumber !== undefined) { - const [colNamesRow] = rowSet.rows.splice(columnNameLineNumber - 1, 1) - - if (colNamesRow) { - colNamesRow.cells.forEach((cell, columnNumber) => { - columnNames[columnNumber] = cell.text || '' - }) - } - } - - // make our column definitions - const columns: Column[] = [] - const columnDisplayOrder = [] - for (let columnNumber = 0; columnNumber < maxCols; columnNumber += 1) { - columnDisplayOrder.push(columnNumber) - const guessedType = guessColumnType(rowSet, columnNumber, isValidRefName) - - // store extendeddata for LocString column - if (guessedType === 'LocString') { - for (const row of rowSet.rows) { - const cell = row.cells[columnNumber] - cell.extendedData = parseLocString(cell.text, isValidRefName) - } - } - - columns[columnNumber] = { - name: columnNames[columnNumber], - dataType: { - type: guessedType, - }, - } - } - - return { - rowSet, - columnDisplayOrder, - hasColumnNames: !!hasColumnNameLine, - columns, - assemblyName: selectedAssemblyName, - } -} - -export async function parseCsvBuffer(buffer: Buffer, options?: ParseOptions) { - const rows = await parseWith(buffer) - return dataToSpreadsheetSnapshot(rows, options) -} - -export async function parseTsvBuffer(buffer: Buffer, options?: ParseOptions) { - const rows = await parseWith(buffer, { delimiter: '\t' }) - return dataToSpreadsheetSnapshot(rows, options) -} diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/STARFusionImport.test.ts b/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/STARFusionImport.test.ts deleted file mode 100644 index 22a31768be..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/STARFusionImport.test.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { promises as fsPromises } from 'fs' -import path from 'path' - -// locals -import { parseSTARFusionBuffer } from './STARFusionImport' -import SpreadsheetModel from '../models/Spreadsheet' - -test('starfusion import', async () => { - const filepath = path.join( - __dirname, - '..', - 'test_data', - 'starfusion_example.fusion_predictions.tsv', - ) - const buf = await fsPromises.readFile(filepath) - const spreadsheetSnap = await parseSTARFusionBuffer(buf, { - selectedAssemblyName: 'fogbat', - isValidRefName() { - return true - }, - }) - expect(spreadsheetSnap).toMatchSnapshot() - - // @ts-expect-error - const spreadsheet = SpreadsheetModel.create(spreadsheetSnap) - expect(spreadsheet.rowSet.rows.length).toBe(24) -}) diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/STARFusionImport.ts b/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/STARFusionImport.ts index 4cfd7444ca..ca8c7f4583 100644 --- a/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/STARFusionImport.ts +++ b/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/STARFusionImport.ts @@ -1,74 +1,13 @@ -import { parseTsvBuffer, ParseOptions } from './ImportUtils' - -function parseSTARFusionBreakpointString(str: string) { - const fields = str.split(':') - const refName = fields[0] - const pos = Number.parseInt(fields[1], 10) - const strand = fields[2] === '-' ? -1 : 1 - return { refName, pos, strand } -} - -const numericColumns: Record = { - SpanningFragCount: true, - FFPM: true, - LeftBreakEntropy: true, - RightBreakEntropy: true, - JunctionReadCount: true, -} - -export async function parseSTARFusionBuffer( - buffer: Buffer, - options: ParseOptions, -) { - const data = await parseTsvBuffer(buffer, { - hasColumnNameLine: true, - columnNameLineNumber: 1, - selectedAssemblyName: options.selectedAssemblyName, - isValidRefName: () => false, - }) - - // remove the # in #FusionName - data.columns[0].name = data.columns[0].name.replace('#', '') - // set some columns to be numeric - data.columns.forEach(col => { - if (numericColumns[col.name]) { - col.dataType = { type: 'Number' } - } - }) - - // decorate each row with a feature object in its extendedData - data.rowSet.rows.forEach((row, rowNumber) => { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const featureData: Record = {} - row.cells.forEach(({ text }, columnNumber) => { - const column = data.columns[columnNumber] - if (column.name === 'LeftBreakpoint' && text) { - const { refName, pos, strand } = parseSTARFusionBreakpointString(text) - featureData.refName = refName - featureData.start = pos - featureData.end = pos - featureData.strand = strand - } else if (column.name === 'RightBreakpoint' && text) { - const { refName, pos, strand } = parseSTARFusionBreakpointString(text) - featureData.mate = { - refName, - start: pos, - end: pos, - strand, - } - } else if (text && numericColumns[column.name]) { - // some other column, numeric - featureData[column.name] = parseFloat(text) - } else { - // some other column, text - featureData[column.name] = text - } - }) - featureData.uniqueId = `sf-${rowNumber + 1}` - row.extendedData = { - feature: featureData, - } - }) - - return data +export function parseSTARFusionBuffer(buffer: Buffer) { + const str = new TextDecoder('utf8').decode(buffer) + const lines = str.split(/\n|\r\n/) + const header = lines[0].slice(1).split('\t') + return { + rows: lines + .slice(1) + .map(row => + Object.fromEntries(row.split('\t').map((c, i) => [header[i], c])), + ), + columns: header, + } } diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/VcfImport.test.ts b/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/VcfImport.test.ts deleted file mode 100644 index eb5f934ed9..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/VcfImport.test.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { promises as fsPromises } from 'fs' -import path from 'path' -import { parseVcfBuffer, splitVcfFileHeaderAndBody } from './VcfImport' -import SpreadsheetModel from '../models/Spreadsheet' - -describe('vcf file splitter', () => { - const cases: [string, {}][] = [ - [ - '##fileformat=VCFv4.3\nfogbat\n', - { header: '##fileformat=VCFv4.3\n', body: 'fogbat\n' }, - ], - [ - '##fileformat=VCFv4.3\n##zonker\n##deek\n##donk\nfogbat\n', - { - header: '##fileformat=VCFv4.3\n##zonker\n##deek\n##donk\n', - body: 'fogbat\n', - }, - ], - ] - - cases.forEach(([input, output], caseNumber) => { - test(`case ${caseNumber}`, () => { - expect(splitVcfFileHeaderAndBody(input)).toEqual(output) - }) - }) -}) - -test('vcf file import', async () => { - const filepath = path.join( - __dirname, - '..', - 'test_data', - '1801160099-N32519_26611_S51_56704.hard-filtered.vcf', - ) - const buf = await fsPromises.readFile(filepath) - const spreadsheetSnap = parseVcfBuffer(buf) - expect(spreadsheetSnap).toMatchSnapshot() - - // @ts-expect-error - const spreadsheet = SpreadsheetModel.create(spreadsheetSnap) - expect(spreadsheet.rowSet.rows.length).toBe(101) -}) diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/VcfImport.ts b/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/VcfImport.ts index 0e7abc2d6b..89a61c027a 100644 --- a/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/VcfImport.ts +++ b/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/VcfImport.ts @@ -1,118 +1,70 @@ import VCF from '@gmod/vcf' import { VcfFeature } from '@jbrowse/plugin-variants' -import { - bufferToString, - Row, - RowSet, - Column, - ParseOptions, -} from './ImportUtils' -const vcfCoreColumns: { name: string; type: string }[] = [ - { name: 'CHROM', type: 'Text' }, // 0 - { name: 'POS', type: 'Number' }, // 1 - { name: 'ID', type: 'Text' }, // 2 - { name: 'REF', type: 'Text' }, // 3 - { name: 'ALT', type: 'Text' }, // 4 - { name: 'QUAL', type: 'Number' }, // 5 - { name: 'FILTER', type: 'Text' }, // 6 - { name: 'INFO', type: 'Text' }, // 7 - { name: 'FORMAT', type: 'Text' }, // 8 -] - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -function vcfRecordToRow(vcfParser: any, line: string, lineNumber: number): Row { - const vcfVariant = vcfParser.parseLine(line) - const vcfFeature = new VcfFeature({ - variant: vcfVariant, - parser: vcfParser, - id: `vcf-${lineNumber}`, - }) - - const data = line.split('\t').map(d => (d === '.' ? '' : d)) - // no format column, add blank - if (data.length === 8) { - data.push('') - } - const row: Row = { - id: String(lineNumber + 1), - extendedData: { vcfFeature: vcfFeature.toJSON() }, - cells: data.map((text, columnNumber) => { - return { - columnNumber, - text, - } - }), - } - return row -} - -export function parseVcfBuffer(buffer: Buffer, options: ParseOptions = {}) { - const { selectedAssemblyName } = options - let { header, body } = splitVcfFileHeaderAndBody(bufferToString(buffer)) - const rows: Row[] = [] - const vcfParser = new VCF({ header }) - header = '' // garbage collect - body.split(/\n|\r\n|\r/).forEach((line: string, lineNumber) => { - if (/\S/.test(line)) { - rows.push(vcfRecordToRow(vcfParser, line, lineNumber)) +function getRows(lines: string[], vcfParser: VCF) { + const keys = new Set() + const rows = lines.map((l, id) => { + const [CHROM, POS, ID, REF, ALT, QUAL, FILTER, INFO, FORMAT] = l.split('\t') + const ret = Object.fromEntries( + INFO?.split(';') + .map(f => f.trim()) + .map(e => { + const [key, val = 'true'] = e.split('=') + const k = `INFO.${key.trim()}` + keys.add(k) + return [k, val.trim()] + }) || [], + ) + return { + CHROM, + POS, + ID, + REF, + ALT, + QUAL, + FILTER, + FORMAT, + id, + feature: new VcfFeature({ + parser: vcfParser, + variant: vcfParser.parseLine(l), + id: `${id}`, + }), + ___lineData: l, + ...ret, } }) - body = '' // garbage collect - - const rowSet: RowSet = { - isLoaded: true, - rows, - } - - const columnDisplayOrder: number[] = [] - const columns: Column[] = [] - for (let i = 0; i < vcfCoreColumns.length; i += 1) { - columnDisplayOrder.push(i) - columns[i] = { - name: vcfCoreColumns[i].name, - dataType: { type: vcfCoreColumns[i].type }, - } - } - for (let i = 0; i < vcfParser.samples.length; i += 1) { - const oi = vcfCoreColumns.length + i - columnDisplayOrder.push(oi) - columns[oi] = { name: vcfParser.samples[i], dataType: { type: 'Text' } } - } - - columnDisplayOrder.push(columnDisplayOrder.length) - columns.unshift({ - name: 'Location', - dataType: { type: 'LocString' }, - isDerived: true, - derivationFunctionText: `jexl:{text:row.extendedData.vcfFeature.refName+':'\n - +row.extendedData.vcfFeature.start+'..'+row.extendedData.vcfFeature.end, extendedData:\n - {refName:row.extendedData.vcfFeature.refName,start:row.extendedData.vcfFeature.start,end:row.extendedData.vcfFeature.end}}`, - }) - - return { - rowSet, - columnDisplayOrder, - hasColumnNames: true, - columns, - assemblyName: selectedAssemblyName, - } + return { keys, rows } } -export function splitVcfFileHeaderAndBody(wholeFile: string) { - // split into header and the rest of the file - let headerEndIndex = 0 - let prevChar - for (; headerEndIndex < wholeFile.length; headerEndIndex += 1) { - const c = wholeFile[headerEndIndex] - if (prevChar === '\n' && c !== '#') { - break - } - prevChar = c +export function parseVcfBuffer(buffer: Buffer) { + const str = new TextDecoder('utf8').decode(buffer) + const lines = str + .split(/\n|\r\n/) + .map(f => f.trim()) + .filter(f => !!f) + const headerLines = [] + let i = 0 + for (; i < lines.length && lines[i].startsWith('#'); i++) { + headerLines.push(lines[i]) } + const header = headerLines.join('\n') + const vcfParser = new VCF({ header }) + const { keys, rows } = getRows(lines.slice(i), vcfParser) return { - header: wholeFile.slice(0, Math.max(0, headerEndIndex)), - body: wholeFile.slice(headerEndIndex), + vcfParser, + rows, + columns: [ + 'CHROM', + 'POS', + 'ID', + 'REF', + 'ALT', + 'QUAL', + 'FILTER', + 'FORMAT', + ...keys, + ], } } diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/components/FeatureMenu.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/components/FeatureMenu.tsx new file mode 100644 index 0000000000..5b78864ee4 --- /dev/null +++ b/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/components/FeatureMenu.tsx @@ -0,0 +1,35 @@ +import React from 'react' +import { getSession } from '@jbrowse/core/util' +import CascadingMenuButton from '@jbrowse/core/ui/CascadingMenuButton' +// icons +import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown' +// locals +import { locationLinkClick } from '../../components/util' + +export default function FeatureMenu({ + value, + model, +}: { + value: string + model: { assemblyName?: string } +}) { + return ( + { + try { + await locationLinkClick(model, value) + } catch (e) { + console.error(e) + getSession(model).notify(`${e}`, 'error') + } + }, + }, + ]} + > + + + ) +} diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/components/LocString.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/components/LocString.tsx new file mode 100644 index 0000000000..39e3f3b71d --- /dev/null +++ b/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/components/LocString.tsx @@ -0,0 +1,31 @@ +import React from 'react' +import { Link } from '@mui/material' +import { getSession } from '@jbrowse/core/util' + +// locals +import { locationLinkClick } from '../../components/util' + +export default function LocString({ + value, + model, +}: { + value: string + model: { assemblyName?: string } +}) { + return ( + { + try { + event.preventDefault() + await locationLinkClick(model, value) + } catch (e) { + console.error(e) + getSession(model).notify(`${e}`, 'error') + } + }} + > + {value} + + ) +} diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/util.ts b/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/util.ts new file mode 100644 index 0000000000..af2f9ee16b --- /dev/null +++ b/plugins/spreadsheet-view/src/SpreadsheetView/importAdapters/util.ts @@ -0,0 +1,135 @@ +import { + Feature, + assembleLocString, + getEnv, + getSession, +} from '@jbrowse/core/util' +import { getParent } from 'mobx-state-tree' +import { VcfFeature } from '@jbrowse/plugin-variants' +import VCF, { parseBreakend } from '@gmod/vcf' + +// locals +import { locationLinkClick } from '../components/util' +import { SpreadsheetModel } from '../models/Spreadsheet' + +export function parseStrand(strand: string) { + if (strand === '+') { + return 1 + } else if (strand === '-') { + return -1 + } else if (strand === '.') { + return 0 + } else { + return undefined + } +} + +export async function launchLinearGenomeView({ + model, + value, +}: { + model: SpreadsheetModel + value: string +}) { + try { + await locationLinkClick(model, value) + } catch (e) { + console.error(e) + getSession(model).notify(`${e}`, 'error') + } +} + +export async function launchBreakpointSplitView({ + model, + row, + vcfParser, +}: { + model: SpreadsheetModel + row: Record + vcfParser: VCF +}) { + try { + const session = getSession(model) + const { pluginManager } = getEnv(model) + const { assemblyName } = model + if (!assemblyName) { + throw new Error('assemblyName not set') + } + const viewType = pluginManager.getViewType('BreakpointSplitView') + const feat = new VcfFeature({ + id: row.id as string, + // eslint-disable-next-line no-underscore-dangle + variant: vcfParser.parseLine(row.___lineData as string), + parser: vcfParser, + }) + // @ts-expect-error + const snap = await viewType.snapshotFromBreakendFeature( + feat, + assemblyName, + session, + ) + const v = getParent<{ width: number }>(model) + snap.views[0].offsetPx -= v.width / 2 + 100 + snap.views[1].offsetPx -= v.width / 2 + 100 + + session.addView('BreakpointSplitView', snap) + } catch (e) { + console.error(e) + getSession(model).notify(`${e}`, 'error') + } +} + +function getBreakpoints(feature: Feature) { + const alt = feature.get('ALT')?.[0] + + const bnd = alt ? parseBreakend(alt) : undefined + let endPos + let mateRefName: string | undefined + + // a VCF breakend feature + if (alt === '') { + const INFO = feature.get('INFO') + endPos = INFO.END[0] - 1 + mateRefName = INFO.CHR2[0] + } else if (bnd?.MatePosition) { + const matePosition = bnd.MatePosition.split(':') + endPos = +matePosition[1] - 1 + mateRefName = matePosition[0] + } else if (feature.get('mate')) { + const mate = feature.get('mate') + mateRefName = mate.refName + endPos = mate.start + } + + return [ + { + refName: feature.get('refName'), + start: feature.get('start') - 1000, + end: feature.get('end') + 1000, + }, + { + refName: mateRefName!, + start: endPos - 1000, + end: endPos + 1000, + }, + ] as const +} +export async function launchLinearGenomeViewWithEndFocus({ + model, + row, +}: { + model: SpreadsheetModel + row: Record +}) { + try { + const { feature } = row + const [s1, s2] = getBreakpoints(feature as Feature) + await locationLinkClick( + model, + `${assembleLocString(s1)} ${assembleLocString(s2)}`, + ) + } catch (e) { + console.error(e) + getSession(model).notify(`${e}`, 'error') + } +} diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/index.ts b/plugins/spreadsheet-view/src/SpreadsheetView/index.ts index 9679e550b9..583c766e25 100644 --- a/plugins/spreadsheet-view/src/SpreadsheetView/index.ts +++ b/plugins/spreadsheet-view/src/SpreadsheetView/index.ts @@ -1,10 +1,12 @@ import { lazy } from 'react' import { ViewType } from '@jbrowse/core/pluggableElementTypes' import PluginManager from '@jbrowse/core/PluginManager' -import stateModel from './models/SpreadsheetView' +// locals +import stateModelFactory from './models/SpreadsheetView' export default function SpreadsheetViewF(pluginManager: PluginManager) { pluginManager.addViewType(() => { + const stateModel = stateModelFactory() return new ViewType({ name: 'SpreadsheetView', displayName: 'Spreadsheet view', diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/LocEnd.ts b/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/LocEnd.ts deleted file mode 100644 index c2ee0bbe40..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/LocEnd.ts +++ /dev/null @@ -1,21 +0,0 @@ -import MakeSpreadsheetColumnType from './MakeSpreadsheetColumnType' -import { FilterModelType as NumberFilterModel } from './Number' -import { types } from 'mobx-state-tree' - -const FilterModelType = types.compose( - NumberFilterModel, - types.model({ - type: types.literal('LocEnd'), - }), -) - -const LocEnd = MakeSpreadsheetColumnType('LocEnd', { - categoryName: 'Location', - displayName: 'End', - compare(cellA: { text: string }, cellB: { text: string }) { - return parseFloat(cellA.text) - parseFloat(cellB.text) - }, - FilterModelType, -}) - -export default LocEnd diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/LocRef.ts b/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/LocRef.ts deleted file mode 100644 index a9e57037e5..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/LocRef.ts +++ /dev/null @@ -1,21 +0,0 @@ -import MakeSpreadsheetColumnType from './MakeSpreadsheetColumnType' -import { FilterModelType as NumberFilterModel } from './Text' -import { types } from 'mobx-state-tree' - -const FilterModelType = types.compose( - NumberFilterModel, - types.model({ - type: types.literal('LocRef'), - }), -) - -const LocRef = MakeSpreadsheetColumnType('LocRef', { - categoryName: 'Location', - displayName: 'Reference seq', - compare(cellA: { text: string }, cellB: { text: string }) { - return cellA.text.localeCompare(cellB.text) - }, - FilterModelType, -}) - -export default LocRef diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/LocStart.ts b/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/LocStart.ts deleted file mode 100644 index ae204f57a7..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/LocStart.ts +++ /dev/null @@ -1,21 +0,0 @@ -import MakeSpreadsheetColumnType from './MakeSpreadsheetColumnType' -import { types } from 'mobx-state-tree' -import { FilterModelType as NumberFilterModel } from './Number' - -const FilterModelType = types.compose( - NumberFilterModel, - types.model({ - type: types.literal('LocStart'), - }), -) - -const LocStart = MakeSpreadsheetColumnType('LocStart', { - categoryName: 'Location', - displayName: 'Start', - compare(cellA: { text: string }, cellB: { text: string }) { - return parseFloat(cellA.text) - parseFloat(cellB.text) - }, - FilterModelType, -}) - -export default LocStart diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/LocString.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/LocString.tsx deleted file mode 100644 index 77d4783ee3..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/LocString.tsx +++ /dev/null @@ -1,328 +0,0 @@ -import React from 'react' -import { - IconButton, - TextField, - MenuItem, - InputAdornment, - Select, -} from '@mui/material' -import { makeStyles } from 'tss-react/mui' -import { observer } from 'mobx-react' -import { types, getParent, getPropertyMembers } from 'mobx-state-tree' - -// jbrowse imports -import { - getPropertyType, - getEnumerationValues, - getSubType, -} from '@jbrowse/core/util/mst-reflection' -import { LinearGenomeViewModel } from '@jbrowse/plugin-linear-genome-view' -import { - doesIntersect2, - isContainedWithin, - compareLocs, - getSession, - parseLocString, -} from '@jbrowse/core/util' - -// icons -import ClearIcon from '@mui/icons-material/Clear' - -// locals -import MakeSpreadsheetColumnType from './MakeSpreadsheetColumnType' - -type LGV = LinearGenomeViewModel - -const useStyles = makeStyles()({ - textFilterControlAdornment: { marginRight: '-18px' }, - textFilterControl: { - '& .MuiInput-formControl': { - marginTop: 8, - }, - '& .MuiInputLabel-formControl': { - top: '-7px', - '&.MuiInputLabel-shrink': { - top: '-3px', - }, - }, - }, -}) - -// React component for the column filter control -const FilterReactComponent = observer(function ({ - filterModel, -}: { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - filterModel: any -}) { - const { classes } = useStyles() - const operationChoices = getEnumerationValues( - getSubType(getPropertyType(getPropertyMembers(filterModel), 'operation')), - ) - return ( - <> - {' '} - filterModel.setLocString(evt.target.value)} - className={classes.textFilterControl} - InputProps={{ - endAdornment: ( - - filterModel.setLocString('')} - > - - - - ), - }} - /> - - ) -}) - -const OPERATIONS = [ - 'overlaps with', - 'contained within', - 'fully contains', - 'does not overlap', - 'not contained within', - 'does not contain', -] - -interface Loc { - start: number - end: number - refName: string -} - -// NOTE: assembly names, if present, are ignored in all of these predicates -const OPERATION_PREDICATES = { - 'overlaps with': (cellLocation, specifiedLocation) => { - return ( - cellLocation.refName === specifiedLocation.refName && - doesIntersect2( - cellLocation.start, - cellLocation.end, - specifiedLocation.start, - specifiedLocation.end, - ) - ) - }, - 'contained within': (cellLocation, specifiedLocation) => { - return ( - cellLocation.refName === specifiedLocation.refName && - isContainedWithin( - cellLocation.start, - cellLocation.end, - specifiedLocation.start, - specifiedLocation.end, - ) - ) - }, - 'fully contains': (cellLocation, specifiedLocation) => { - return ( - cellLocation.refName === specifiedLocation.refName && - isContainedWithin( - specifiedLocation.start, - specifiedLocation.end, - cellLocation.start, - cellLocation.end, - ) - ) - }, -} as Record boolean> - -OPERATION_PREDICATES['does not overlap'] = ( - cellLocation, - specifiedLocation, -) => { - return !OPERATION_PREDICATES['overlaps with'](cellLocation, specifiedLocation) -} -OPERATION_PREDICATES['not contained within'] = ( - cellLocation, - specifiedLocation, -) => { - return !OPERATION_PREDICATES['contained within']( - cellLocation, - specifiedLocation, - ) -} -OPERATION_PREDICATES['does not contain'] = ( - cellLocation, - specifiedLocation, -) => { - return !OPERATION_PREDICATES['fully contains']( - cellLocation, - specifiedLocation, - ) -} - -// MST model for the column filter control -const FilterModelType = types - .model('ColumnLocStringFilter', { - type: types.literal('LocString'), - columnNumber: types.integer, - locString: '', - operation: types.optional(types.enumeration(OPERATIONS), OPERATIONS[0]), - }) - .views(self => ({ - get locStringIsInvalid() { - if (self.locString) { - const parsed = this.parsedLocString - return ( - !parsed || - parsed.refName === '' || - typeof parsed.start !== 'number' || - typeof parsed.end !== 'number' || - parsed.start > parsed.end - ) - } - return false - }, - get parsedLocString() { - const session = getSession(self) - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const model = getParent(self, 3).spreadsheet - const { assemblyName } = model - try { - return parseLocString(self.locString, refName => - session.assemblyManager.isValidRefName(refName, assemblyName), - ) - } catch (e) { - return undefined - } - }, - })) - .views(self => ({ - // returns a function that tests the given row - get predicate() { - const { - locString, - locStringIsInvalid, - parsedLocString, - operation, - columnNumber, - } = self // avoid closing over self - if (!locString || locStringIsInvalid || !parsedLocString) { - return function alwaysTrue() { - return true - } - } - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - return function stringPredicate(_sheet: any, row: any) { - const { cellsWithDerived: cells } = row - const cell = cells[columnNumber] - - if (!cell?.text || !cell.extendedData) { - return false - } - const parsedCellText = cell.extendedData - if (!parsedCellText.refName) { - return false - } - - const predicate = OPERATION_PREDICATES[operation] - if (!predicate) { - throw new Error(`"${operation}" not implemented in location filter`) - } - - return predicate(parsedCellText, parsedLocString as Loc) - } - }, - })) - .actions(self => ({ - setLocString(s: string) { - self.locString = s - }, - setOperation(op: string) { - self.operation = op - }, - })) - .volatile(() => ({ ReactComponent: FilterReactComponent })) - -// opens a new LGV at the location described in the locString in the cell text - -async function locationLinkClick( - // eslint-disable-next-line @typescript-eslint/no-explicit-any - spreadsheet: any, - _columnNumber: number, - // eslint-disable-next-line @typescript-eslint/no-explicit-any - cell: any, -) { - const session = getSession(spreadsheet) - const { assemblyName } = spreadsheet - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const { id } = getParent(spreadsheet) - - const newViewId = `${id}_${assemblyName}` - let view = session.views.find(v => v.id === newViewId) as LGV - if (!view) { - view = session.addView('LinearGenomeView', { - id: newViewId, - }) as LGV - } - await view.navToLocString(cell.text, assemblyName) -} - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -type DataCell = any - -const DataCellReactComponent = observer(function ({ - cell, - columnNumber, - spreadsheet, -}: DataCell) { - return ( - { - evt.preventDefault() - const session = getSession(spreadsheet) - try { - await locationLinkClick(spreadsheet, columnNumber, cell) - } catch (e) { - console.error(e) - session.notifyError(`${e}`, e) - } - }} - title="open a new linear genome view here" - href="#link" - > - {cell.text} - - ) -}) - -const LocStringColumnType = MakeSpreadsheetColumnType('LocString', { - categoryName: 'Location', - displayName: 'Full location', - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - compare(cellA: { extendedData: any }, cellB: { extendedData: any }) { - return compareLocs(cellA.extendedData, cellB.extendedData) - }, - FilterModelType, - DataCellReactComponent, -}) - -export default LocStringColumnType diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/MakeSpreadsheetColumnType.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/MakeSpreadsheetColumnType.tsx deleted file mode 100644 index 6a50f04914..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/MakeSpreadsheetColumnType.tsx +++ /dev/null @@ -1,38 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import React from 'react' -import { types } from 'mobx-state-tree' - -/** utility function for assembling the MST model of a column data type */ -export default function MakeSpreadsheetColumnType( - name: string, - { - DataCellReactComponent = null, - FilterModelType = null, - compare, - displayName = undefined, - categoryName = undefined, - }: { - compare?: any - DataCellReactComponent?: React.FC | null - FilterModelType?: any - displayName?: string - categoryName?: string - }, -) { - return types - .model(`ColumnDataType${name}`, { - type: types.literal(name), - }) - .volatile(() => ({ - DataCellReactComponent, - FilterModelType: FilterModelType, - displayName: displayName || name, - categoryName, - })) - .views(() => ({ - compare, - get hasFilter() { - return !!FilterModelType - }, - })) -} diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/Number.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/Number.tsx deleted file mode 100644 index b4a8c44c29..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/Number.tsx +++ /dev/null @@ -1,177 +0,0 @@ -import React from 'react' -import { types } from 'mobx-state-tree' -import { observer } from 'mobx-react' -import { MenuItem, Select, TextField } from '@mui/material' -import { makeStyles } from 'tss-react/mui' -import MakeSpreadsheetColumnType from './MakeSpreadsheetColumnType' - -const OPERATIONS = [ - 'equals', - 'greater than', - 'less than', - 'between', - 'not between', -] - -// NOTE: assembly names, if present, are ignored in all of these predicates -const OPERATION_PREDICATES = { - equals: (numberInCell, firstNumber) => { - return numberInCell === firstNumber - }, - 'greater than': (numberInCell, firstNumber) => { - return numberInCell > firstNumber - }, - 'less than': (numberInCell, firstNumber) => { - return numberInCell < firstNumber - }, - between: (numberInCell, firstNumber, secondNumber) => { - return ( - numberInCell > firstNumber && - secondNumber !== undefined && - numberInCell < secondNumber - ) - }, -} as Record boolean> - -OPERATION_PREDICATES['not between'] = ( - numberInCell, - firstNumber, - secondNumber, -) => { - return !OPERATION_PREDICATES.between(numberInCell, firstNumber, secondNumber) -} - -const useStyles = makeStyles()({ - textFilterControlAdornment: { marginRight: '-18px' }, - textFilterControl: { - '& .MuiInput-formControl': { - marginTop: 8, - }, - '& .MuiInputLabel-formControl': { - top: '-7px', - '&.MuiInputLabel-shrink': { - top: '-3px', - }, - }, - }, -}) - -// React component for the column filter control -const FilterReactComponent = observer( - // eslint-disable-next-line @typescript-eslint/no-explicit-any - ({ filterModel }: { filterModel: any }) => { - const { classes } = useStyles() - - const operationChoices = OPERATIONS - - return ( - <> - {' '} - { - filterModel.setFirstNumber(parseFloat(evt.target.value)) - }} - className={classes.textFilterControl} - /> - {filterModel.operation !== 'between' && - filterModel.operation !== 'not between' ? null : ( - <> - {' and '} - - filterModel.setSecondNumber(parseFloat(evt.target.value)) - } - className={classes.textFilterControl} - /> - - )} - - ) - }, -) - -// MST model for the column filter control -const FilterModelType = types - .model('ColumnNumberFilter', { - type: types.literal('Number'), - columnNumber: types.integer, - firstNumber: types.maybe(types.number), - secondNumber: types.maybe(types.number), - operation: types.optional(types.enumeration(OPERATIONS), OPERATIONS[0]), - }) - .views(self => ({ - // returns a function that tests the given row - get predicate() { - if (typeof self.firstNumber !== 'number') { - return function alwaysTrue() { - return true - } - } - - const { firstNumber, secondNumber, operation, columnNumber } = self // avoid closing over self - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - return function stringPredicate(_sheet: any, row: any) { - const { cellsWithDerived } = row - const cell = cellsWithDerived[columnNumber] - - if (!cell?.text) { - return false - } - - const parsedCellText = parseFloat(cell.text) - if (typeof parsedCellText !== 'number') { - return false - } - - const predicate = OPERATION_PREDICATES[operation] - if (!predicate) { - throw new Error(`"${operation}" not implemented in location filter`) - } - - return predicate(parsedCellText, firstNumber, secondNumber) - } - }, - })) - .actions(self => ({ - setFirstNumber(n: number) { - self.firstNumber = - Number.isNaN(n) || typeof n !== 'number' ? undefined : n - }, - setSecondNumber(n: number) { - self.secondNumber = - Number.isNaN(n) || typeof n !== 'number' ? undefined : n - }, - setOperation(op: string) { - self.operation = op - }, - })) - .volatile(() => ({ ReactComponent: FilterReactComponent })) - -const NumberColumn = MakeSpreadsheetColumnType('Number', { - compare(cellA: { text: string }, cellB: { text: string }) { - return parseFloat(cellA.text) - parseFloat(cellB.text) - }, - FilterModelType, -}) - -export { NumberColumn, FilterModelType } diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/Text.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/Text.tsx deleted file mode 100644 index 4c704ca138..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/Text.tsx +++ /dev/null @@ -1,173 +0,0 @@ -import React from 'react' -import { - IconButton, - TextField, - MenuItem, - InputAdornment, - Select, -} from '@mui/material' -import { makeStyles } from 'tss-react/mui' -import MakeSpreadsheetColumnType from './MakeSpreadsheetColumnType' -import { types, getPropertyMembers } from 'mobx-state-tree' -import { observer } from 'mobx-react' -import { - getPropertyType, - getEnumerationValues, - getSubType, -} from '@jbrowse/core/util/mst-reflection' - -// icons -import ClearIcon from '@mui/icons-material/Clear' - -const OPERATIONS = [ - 'equals', - 'contains', - 'does not contain', - 'does not equal', - 'starts with', - 'ends with', -] - -// NOTE: assembly names, if present, are ignored in all of these predicates -const OPERATION_PREDICATES = { - contains: (textInCell, stringToFind) => { - return textInCell.toLowerCase().includes(stringToFind) - }, - equals: (textInCell, stringToFind) => { - return textInCell.toLowerCase() === stringToFind - }, - 'starts with': (textInCell, stringToFind) => { - return textInCell.toLowerCase().startsWith(stringToFind) - }, - 'ends with': (textInCell, stringToFind) => { - const index = textInCell.toLowerCase().indexOf(stringToFind) - if (index === -1) { - return false - } - return index === textInCell.length - stringToFind.length - }, -} as Record boolean> - -OPERATION_PREDICATES['does not contain'] = (textInCell, stringToFind) => { - return !OPERATION_PREDICATES.contains(textInCell, stringToFind) -} -OPERATION_PREDICATES['does not equal'] = (textInCell, stringToFind) => { - return !OPERATION_PREDICATES.equals(textInCell, stringToFind) -} - -const useStyles = makeStyles()({ - textFilterControlAdornment: { marginRight: '-18px' }, - textFilterControl: { - margin: 0, - '& .MuiInput-formControl': { - marginTop: 8, - }, - '& .MuiInputLabel-formControl': { - top: '-7px', - '&.MuiInputLabel-shrink': { - top: '-3px', - }, - }, - }, -}) - -// React component for the column filter control -const FilterReactComponent = observer( - // eslint-disable-next-line @typescript-eslint/no-explicit-any - ({ filterModel }: { filterModel: any }) => { - const { classes } = useStyles() - const operationChoices = getEnumerationValues( - getSubType(getPropertyType(getPropertyMembers(filterModel), 'operation')), - ) - return ( - <> - {' '} - filterModel.setString(evt.target.value)} - className={classes.textFilterControl} - InputProps={{ - endAdornment: ( - - filterModel.setString('')} - > - - - - ), - }} - /> - - ) - }, -) - -// MST model for the column filter control -const ColumnTextFilter = types - .model('ColumnTextFilter', { - type: types.literal('Text'), - columnNumber: types.integer, - stringToFind: '', - operation: types.optional(types.enumeration(OPERATIONS), OPERATIONS[0]), - }) - .views(self => ({ - // returns a function that tests the given row - get predicate() { - const { stringToFind, columnNumber, operation } = self // avoid closing over self - if (!stringToFind) { - return function alwaysTrue() { - return true - } - } - const s = stringToFind.toLowerCase() // case insensitive match - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - return function stringPredicate(_sheet: any, row: any) { - const { cellsWithDerived } = row - const cell = cellsWithDerived[columnNumber] - if (!cell?.text) { - return false - } - const predicate = OPERATION_PREDICATES[operation] - if (!predicate) { - throw new Error(`"${operation}" not implemented in location filter`) - } - return predicate(cell.text, s) - } - }, - })) - .actions(self => ({ - setString(s: string) { - self.stringToFind = s - }, - setOperation(op: string) { - self.operation = op - }, - })) - .volatile(() => ({ ReactComponent: FilterReactComponent })) - -const TextColumnType = MakeSpreadsheetColumnType('Text', { - compare(cellA: { text: string }, cellB: { text: string }) { - return cellA.text.localeCompare(cellB.text) - }, - FilterModelType: ColumnTextFilter, -}) - -export { TextColumnType as TextColumn, ColumnTextFilter as FilterModelType } diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/index.ts b/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/index.ts deleted file mode 100644 index 02eb921348..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/models/ColumnDataTypes/index.ts +++ /dev/null @@ -1,34 +0,0 @@ -import LocString from './LocString' -import LocRef from './LocRef' -import LocStart from './LocStart' -import LocEnd from './LocEnd' -import { NumberColumn as Number } from './Number' -import { TextColumn as Text } from './Text' -import { types, IAnyModelType } from 'mobx-state-tree' - -const ColumnTypes = { - Number, - Text, - LocString, - LocRef, - LocStart, - LocEnd, -} - -const allColumnTypes = Object.values(ColumnTypes) -const AnyColumnType = types.union(...allColumnTypes) -const AnyFilterModelType = types.union( - ...allColumnTypes - .map(columnType => { - // just instantiate the blank types to get their filter model types - const { FilterModelType } = columnType.create({ - // @ts-expect-error - type: columnType.properties.type.value, - }) - return FilterModelType as unknown as IAnyModelType - }) - // some column types might not have filter machinery, filter those out - .filter(t => !!t), -) - -export { ColumnTypes, AnyColumnType, AnyFilterModelType } diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/models/FilterControls.ts b/plugins/spreadsheet-view/src/SpreadsheetView/models/FilterControls.ts deleted file mode 100644 index 8438a15246..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/models/FilterControls.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { types, getParent, SnapshotIn } from 'mobx-state-tree' -import { AnyFilterModelType as AnyColumnFilter } from './ColumnDataTypes' - -// filter that finds a simple string in any of the cells of a row -const RowFullTextFilter = types - .model('RowFullTextFilter', { - type: types.literal('RowFullText'), - stringToFind: '', - }) - .views(self => ({ - // returns a function that tests the given row - get predicate() { - let s = self.stringToFind // avoid closing over self - if (!s) { - return function alwaysTrue() { - return true - } - } - s = s.toLowerCase() - return function stringPredicate( - _sheet: unknown, - row: { cellsWithDerived: { text: string }[] }, - ) { - const { cellsWithDerived } = row - for (const cell of cellsWithDerived) { - // note: case insensitive - if (cell.text?.toLowerCase().includes(s)) { - return true - } - } - return false - } - }, - })) - .actions(self => ({ - setString(s: string) { - self.stringToFind = s - }, - clear() { - self.stringToFind = '' - }, - })) - -const model = types - .model('SpreadsheetFilterControls', { - rowFullText: types.optional( - RowFullTextFilter, - () => - ({ - type: 'RowFullText', - stringToFind: '', - }) as SnapshotIn, - ), - columnFilters: types.array(AnyColumnFilter), - }) - .views(self => ({ - get filters() { - return [self.rowFullText, ...self.columnFilters].filter(f => !!f) - }, - setRowFullTextFilter(stringToFind: string) { - // @ts-expect-error - self.rowFullText = { - type: 'RowFullText', - stringToFind, - } - }, - rowPassesFilters(sheet: unknown, row: unknown) { - for (const filter of this.filters) { - if (!filter.predicate(sheet, row)) { - return false - } - } - return true - }, - })) - .actions(self => ({ - addBlankColumnFilter(columnNumber: number) { - const { dataType } = - // eslint-disable-next-line @typescript-eslint/no-explicit-any - getParent(self).spreadsheet.columns[columnNumber] - self.columnFilters.push({ - type: dataType.type, - columnNumber, - }) - }, - removeColumnFilter(filter: typeof AnyColumnFilter) { - return self.columnFilters.remove(filter) - }, - clearAllFilters() { - self.columnFilters.clear() - self.rowFullText.clear() - }, - })) - -export default model diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/models/ImportWizard.ts b/plugins/spreadsheet-view/src/SpreadsheetView/models/ImportWizard.ts index a055935e93..78e8fad130 100644 --- a/plugins/spreadsheet-view/src/SpreadsheetView/models/ImportWizard.ts +++ b/plugins/spreadsheet-view/src/SpreadsheetView/models/ImportWizard.ts @@ -1,203 +1,184 @@ -import { types, getParent, Instance } from 'mobx-state-tree' +import { types, getParent, addDisposer, Instance } from 'mobx-state-tree' import { openLocation } from '@jbrowse/core/util/io' -import { getSession, getEnv } from '@jbrowse/core/util' +import { + getSession, + getEnv, + FileLocation as FileLocationType, +} from '@jbrowse/core/util' +import { GenericFilehandle } from 'generic-filehandle' -// 30MB -const IMPORT_SIZE_LIMIT = 30_000_000 +// locals +import { SpreadsheetViewStateModel } from './SpreadsheetView' +import { autorun } from 'mobx' +import { getFileType, getFilename } from '../components/util' -const fileTypes = ['CSV', 'TSV', 'VCF', 'BED', 'BEDPE', 'STAR-Fusion'] +const IMPORT_SIZE_LIMIT = 40_000_000 + +const fileTypes = ['VCF', 'BED', 'BEDPE', 'STAR-Fusion'] const fileTypeParsers = { - CSV: () => - import('../importAdapters/ImportUtils').then(r => r.parseCsvBuffer), - TSV: () => - import('../importAdapters/ImportUtils').then(r => r.parseTsvBuffer), VCF: () => import('../importAdapters/VcfImport').then(r => r.parseVcfBuffer), BED: () => import('../importAdapters/BedImport').then(r => r.parseBedBuffer), BEDPE: () => - import('../importAdapters/BedImport').then(r => r.parseBedPEBuffer), + import('../importAdapters/BedpeImport').then(r => r.parseBedPEBuffer), 'STAR-Fusion': () => import('../importAdapters/STARFusionImport').then( r => r.parseSTARFusionBuffer, ), } -// regexp used to guess the type of a file or URL from its file extension -const fileTypesRegexp = new RegExp(`\\.(${fileTypes.join('|')})(\\.gz)?$`, 'i') +async function maybeStat(f: GenericFilehandle) { + let stat + try { + stat = await f.stat() + } catch (e) { + // not required for stat to succeed to proceed, but it is helpful + console.warn(e) + } + return stat +} /** * #stateModel SpreadsheetImportWizard - * #category view */ -function x() {} // eslint-disable-line @typescript-eslint/no-unused-vars - -const ImportWizard = types - .model('SpreadsheetImportWizard', { - /** - * #property - */ - fileType: types.optional(types.enumeration(fileTypes), 'CSV'), - /** - * #property - */ - hasColumnNameLine: true, - /** - * #property - */ - columnNameLineNumber: 1, - /** - * #property - */ - selectedAssemblyName: types.maybe(types.string), - }) - .volatile(() => ({ - fileTypes, - // eslint-disable-next-line @typescript-eslint/no-explicit-any - fileSource: undefined as any, - error: undefined as unknown, - loading: false, - })) - .views(self => ({ - get isReadyToOpen() { - return ( - !self.error && - self.fileSource && - (self.fileSource.blobId || - self.fileSource.localPath || - self.fileSource.uri) - ) - }, - get canCancel() { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - return getParent(self).readyToDisplay - }, - - get fileName() { - return ( - self.fileSource.uri || - self.fileSource.localPath || - (self.fileSource.blobId && self.fileSource.name) - ) - }, - - get requiresUnzip() { - return this.fileName.endsWith('gz') - }, - - isValidRefName(refName: string, assemblyName?: string) { - const { assemblyManager } = getSession(self) - if (!assemblyName) { - return false - } - return assemblyManager.isValidRefName(refName, assemblyName) - }, - })) - .actions(self => ({ - setSelectedAssemblyName(s: string) { - self.selectedAssemblyName = s - }, - setFileSource(newSource: unknown) { - self.fileSource = newSource - self.error = undefined - - if (self.fileSource) { - // try to autodetect the file type, ignore errors - const name = self.fileName - - if (name) { - const firstMatch = fileTypesRegexp.exec(name)?.[1] - if (firstMatch) { - self.fileType = - firstMatch === 'tsv' && name.includes('star-fusion') - ? 'STAR-Fusion' - : firstMatch.toUpperCase() - } +function stateModelFactory() { + return types + .model('SpreadsheetImportWizard', { + /** + * #property + */ + fileTypeOverride: types.maybe(types.string), + /** + * #property + */ + selectedAssemblyName: types.maybe(types.string), + /** + * #property + */ + spreadsheetFilehandle: types.frozen(), + }) + .volatile(() => ({ + fileTypes, + error: undefined as unknown, + loading: false, + })) + .views(self => ({ + /** + * #getter + */ + get fileType() { + if (self.fileTypeOverride) { + return self.fileTypeOverride + } else if (self.spreadsheetFilehandle) { + return getFileType(self.spreadsheetFilehandle) + } else { + return 'VCF' } - } - }, - - toggleHasColumnNameLine() { - self.hasColumnNameLine = !self.hasColumnNameLine - }, - - setColumnNameLineNumber(newnumber: number) { - if (newnumber > 0) { - self.columnNameLineNumber = newnumber - } - }, - - setFileType(typeName: string) { - self.fileType = typeName - }, - - setError(error: unknown) { - console.error(error) - self.loading = false - self.error = error - }, - - setLoaded() { - self.loading = false - self.error = undefined - }, - - cancelButton() { - self.error = undefined - // eslint-disable-next-line @typescript-eslint/no-explicit-any - getParent(self).setDisplayMode() - }, - - // fetch and parse the file, make a new Spreadsheet model for it, - // then set the parent to display it - async import(assemblyName: string) { - if (!self.fileSource) { - return - } - - if (self.loading) { - throw new Error('Cannot import, load already in progress') - } - - self.selectedAssemblyName = assemblyName - self.loading = true - const type = self.fileType as keyof typeof fileTypeParsers - const typeParser = await fileTypeParsers[type]() - if (!typeParser) { - throw new Error(`cannot open files of type '${self.fileType}'`) - } - - const { unzip } = await import('@gmod/bgzf-filehandle') - const { pluginManager } = getEnv(self) - const filehandle = openLocation(self.fileSource, pluginManager) - try { - const stat = await filehandle.stat() - if (stat.size > IMPORT_SIZE_LIMIT) { - throw new Error( - `File is too big. Tabular files are limited to at most ${( - IMPORT_SIZE_LIMIT / 1000 - ).toLocaleString()}kb.`, - ) - } - } catch (e) { - // not required for stat to succeed to proceed, but it is helpful - console.warn(e) - } - - try { - await filehandle - .readFile() - .then(buffer => (self.requiresUnzip ? unzip(buffer) : buffer)) - .then(buffer => typeParser(buffer, self)) - .then(spreadsheet => { - this.setLoaded() - // eslint-disable-next-line @typescript-eslint/no-explicit-any - getParent(self).displaySpreadsheet(spreadsheet) - }) - } catch (e) { - this.setError(e) - } - }, - })) + }, + + /** + * #getter + */ + get fileName(): string | undefined { + return getFilename(self.spreadsheetFilehandle) + }, + /** + * #getter + */ + get requiresUnzip() { + return this.fileName?.endsWith('gz') + }, + /** + * #method + */ + isValidRefName(refName: string, assemblyName?: string) { + const { assemblyManager } = getSession(self) + return assemblyName + ? assemblyManager.isValidRefName(refName, assemblyName) + : false + }, + })) + .actions(self => ({ + /** + * #action + */ + setSelectedAssemblyName(s: string) { + self.selectedAssemblyName = s + }, + /** + * #action + */ + setSpreadsheetFilehandle(newSource?: FileLocationType) { + self.spreadsheetFilehandle = newSource + self.error = undefined + }, + /** + * #action + */ + setFileType(typeName: string) { + self.fileTypeOverride = typeName + }, + /** + * #action + */ + setError(error: unknown) { + self.error = error + }, + /** + * #action + */ + setLoading(arg: boolean) { + self.loading = arg + }, + afterAttach() { + addDisposer( + self, + autorun(async () => { + const { spreadsheetFilehandle } = self + if (!spreadsheetFilehandle) { + return + } + + this.setLoading(true) + const typeParser = + await fileTypeParsers[ + self.fileType as keyof typeof fileTypeParsers + ]() + + if (!typeParser) { + throw new Error(`cannot open files of type '${self.fileType}'`) + } + + const { unzip } = await import('@gmod/bgzf-filehandle') + const { pluginManager } = getEnv(self) + const f = openLocation(spreadsheetFilehandle, pluginManager) + const stat = await maybeStat(f) + try { + if (stat && stat.size > IMPORT_SIZE_LIMIT) { + throw new Error( + `File is too big. Tabular files are limited to at most ${( + IMPORT_SIZE_LIMIT / 1_000_000 + ).toLocaleString()}Mb.`, + ) + } + const buffer = await f.readFile() + const buf2 = self.requiresUnzip ? await unzip(buffer) : buffer + const spreadsheet = await typeParser(buf2) + getParent(self).displaySpreadsheet( + spreadsheet, + self.selectedAssemblyName, + ) + } catch (e) { + console.error(e) + this.setError(e) + } finally { + this.setLoading(false) + } + }), + ) + }, + })) +} -export type ImportWizardStateModel = typeof ImportWizard +export type ImportWizardStateModel = ReturnType export type ImportWizardModel = Instance -export default ImportWizard +export default stateModelFactory diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/models/Row.ts b/plugins/spreadsheet-view/src/SpreadsheetView/models/Row.ts deleted file mode 100644 index 45445bb0e7..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/models/Row.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { types, getParent } from 'mobx-state-tree' - -const CellModel = types.model('SpreadsheetCell', { - text: types.string, - extendedData: types.maybe(types.frozen()), -}) - -const RowModel = types - .model('SpreadsheetRow', { - id: types.identifier, - cells: types.array(CellModel), - extendedData: types.maybe(types.frozen()), - isSelected: false, - }) - .actions(self => ({ - toggleSelect() { - self.isSelected = !self.isSelected - }, - unSelect() { - self.isSelected = false - }, - select() { - self.isSelected = true - }, - setExtendedData(data: unknown) { - self.extendedData = data - }, - })) - .views(self => ({ - get cellsWithDerived() { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const { columns } = getParent(self, 3) - let i = 0 - // eslint-disable-next-line @typescript-eslint/no-explicit-any - return columns.map((column: { isDerived: boolean; expr: any }) => { - if (column.isDerived) { - return column.expr.evalSync({ - row: self, - }) - } - return self.cells[i++] - }) - }, - })) - -export default RowModel diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/models/Spreadsheet.ts b/plugins/spreadsheet-view/src/SpreadsheetView/models/Spreadsheet.ts deleted file mode 100644 index 40a88a9dd9..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/models/Spreadsheet.ts +++ /dev/null @@ -1,208 +0,0 @@ -import { stringToJexlExpression } from '@jbrowse/core/util/jexlStrings' -import { getSession, getEnv } from '@jbrowse/core/util' -import { autorun } from 'mobx' -import { - addDisposer, - types, - getParent, - SnapshotIn, - Instance, -} from 'mobx-state-tree' - -// locals -import { ColumnTypes, AnyColumnType } from './ColumnDataTypes' -import StaticRowSetModel from './StaticRowSet' -import RowModel from './Row' - -type Row = Instance - -const ColumnDefinition = types - .model('ColumnDefinition', { - name: types.maybe(types.string), - dataType: types.optional(AnyColumnType, () => ({ - type: 'Text', - })), - // set to true if column is derived from other columns - // if the column is derived, each cell will have a - // `derivationFunction` that is called to get its value - isDerived: false, - // if this cell is derived from other cells, execute this function to get - // the value - derivationFunctionText: types.maybe(types.string), - }) - .views(self => ({ - get expr() { - if (self.isDerived) { - // compile this as a jexl expression - return stringToJexlExpression( - String(self.derivationFunctionText), - getEnv(self).pluginManager.jexl, - ) - } - return undefined - }, - })) - -type RowMenuPosition = { anchorEl: Element; rowNumber: string } | null - -/** - * #stateModel SpreadsheetViewSpreadsheet - * #category view - */ -function x() {} // eslint-disable-line @typescript-eslint/no-unused-vars - -const Spreadsheet = types - .model('Spreadsheet', { - /** - * #property - */ - rowSet: types.optional(StaticRowSetModel, () => StaticRowSetModel.create()), - /** - * #property - */ - columns: types.array(ColumnDefinition), - /** - * #property - */ - columnDisplayOrder: types.array(types.number), - /** - * #property - */ - hasColumnNames: false, - /** - * #property - */ - sortColumns: types.array( - types - .model('SortColumns', { - columnNumber: types.number, - descending: false, - }) - .actions(self => ({ - switchDirection() { - self.descending = !self.descending - }, - })), - ), - - assemblyName: types.maybe(types.string), - }) - .volatile(() => ({ - defaultDataType: ColumnTypes.Text, - rowMenuPosition: null as RowMenuPosition, - isLoaded: false, - })) - .views(self => ({ - /** - * #getter - */ - get initialized() { - const session = getSession(self) - const name = self.assemblyName - return name ? session.assemblyManager.get(name)?.initialized : false - }, - /** - * #getter - */ - get hideRowSelection() { - // just delegates to parent - // eslint-disable-next-line @typescript-eslint/no-explicit-any - return getParent(self).hideRowSelection - }, - - /** - * #getter - * list of data type names to be made available in the column - * dropdown menu - */ - get dataTypeChoices() { - const typeNames = Object.keys(ColumnTypes) as (keyof typeof ColumnTypes)[] - return typeNames.map(typeName => { - const dataType = ColumnTypes[typeName].create({ type: typeName }) - const { displayName, categoryName } = dataType - return { typeName, displayName, categoryName } - }) - }, - - /** - * #method - */ - rowSortingComparisonFunction(rowA: Row, rowB: Row) { - for (const { columnNumber, descending } of self.sortColumns) { - const { dataType } = self.columns[columnNumber] - const result = dataType.compare( - rowA.cellsWithDerived[columnNumber], - rowB.cellsWithDerived[columnNumber], - ) - if (result) { - return descending ? -result : result - } - } - return 0 - }, - })) - .actions(self => ({ - afterAttach() { - addDisposer( - self, - autorun(async () => { - const session = getSession(self) - const { assemblyManager } = session - try { - if (self.assemblyName) { - await assemblyManager.waitForAssembly(self.assemblyName) - this.setLoaded(true) - } - } catch (error) { - session.notify( - `failed to load assembly ${self.assemblyName} ${error}`, - 'error', - ) - } - }), - ) - }, - - /** - * #action - */ - setLoaded(flag: boolean) { - self.isLoaded = flag - }, - - /** - * #action - */ - setRowMenuPosition(newPosition: RowMenuPosition) { - self.rowMenuPosition = newPosition - }, - - /** - * #action - */ - setSortColumns(newSort: NonNullable>) { - if (newSort) { - // @ts-expect-error - self.sortColumns = newSort - } - }, - - /** - * #action - */ - setColumnType(columnNumber: number, newTypeName: string) { - self.columns[columnNumber].dataType = { type: newTypeName } - }, - - /** - * #action - */ - unselectAll() { - return self.rowSet.unselectAll() - }, - })) - -export type SpreadsheetStateModel = typeof Spreadsheet -export type SpreadsheetModel = Instance - -export default Spreadsheet diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/models/Spreadsheet.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/models/Spreadsheet.tsx new file mode 100644 index 0000000000..79a95dd8bf --- /dev/null +++ b/plugins/spreadsheet-view/src/SpreadsheetView/models/Spreadsheet.tsx @@ -0,0 +1,148 @@ +import React from 'react' +import { + Feature, + assembleLocString, + measureGridWidth, +} from '@jbrowse/core/util' +import { autorun } from 'mobx' +import { addDisposer, types, Instance } from 'mobx-state-tree' + +// locals +import FeatureMenu from '../importAdapters/components/FeatureMenu' +import { GridColDef } from '@mui/x-data-grid' +import LocString from '../importAdapters/components/LocString' + +interface Row { + feature: Feature + [key: string]: unknown +} + +interface ComponentRecord { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + Component: React.FC + props: Record +} + +export interface SpreadsheetData { + rows: Row[] + columns: string[] + ColumnComponentMap?: Record +} + +/** + * #stateModel SpreadsheetViewSpreadsheet + * #category view + */ +function stateModelFactory() { + return types + .model('Spreadsheet', { + /** + * #property + */ + assemblyName: types.maybe(types.string), + }) + .volatile(() => ({ + data: undefined as SpreadsheetData | undefined, + visibleColumns: {} as Record, + })) + .views(self => ({ + /** + * #getter + */ + get initialized() { + return !!self.data + }, + })) + .actions(self => ({ + /** + * #action + */ + setVisibleColumns(args: Record) { + self.visibleColumns = args + }, + /** + * #action + */ + setData(data?: SpreadsheetData, assemblyName?: string) { + self.data = data + self.assemblyName = assemblyName + }, + })) + .views(self => ({ + /** + * #getter + */ + get rows() { + return (self.data?.rows.map(r => ({ + menu: 'a', + loc: assembleLocString({ + refName: r.feature.get('refName'), + start: r.feature.get('start'), + end: r.feature.get('end'), + }), + ...r, + })) || []) as Record[] + }, + /** + * #getter + */ + get features() { + return self.data?.rows.map(r => r.feature) + }, + })) + .views(self => ({ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + get columns(): GridColDef[] { + const { data } = self + return [ + { + field: 'menu', + width: 10, + renderCell: arg => ( + + ), + }, + { + field: 'loc', + width: measureGridWidth( + self.rows.map(r => r.loc), + { minWidth: 20 }, + ), + renderCell: arg => , + }, + ...(data?.columns.map(m => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const res = data.ColumnComponentMap?.[m] as any + return { + field: m, + renderCell: res, + width: measureGridWidth( + self.rows.map(r => r[m]), + { minWidth: 20 }, + ), + } + }) || []), + ] as const + }, + })) + .actions(self => ({ + afterAttach() { + addDisposer( + self, + autorun(() => { + const { data } = self + self.setVisibleColumns({ + loc: true, + menu: true, + ...Object.fromEntries(data?.columns.map(c => [c, true]) || []), + }) + }), + ) + }, + })) +} + +export type SpreadsheetStateModel = ReturnType +export type SpreadsheetModel = Instance + +export default stateModelFactory diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/models/SpreadsheetView.test.ts b/plugins/spreadsheet-view/src/SpreadsheetView/models/SpreadsheetView.test.ts deleted file mode 100644 index 6b5b4b395a..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/models/SpreadsheetView.test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import SpreadsheetView from './SpreadsheetView' - -describe('Spreadsheet View mst model', () => { - it('can instantiate with empty args', () => { - const view = SpreadsheetView.create({ type: 'SpreadsheetView' }) - expect(view).toBeTruthy() - }) -}) diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/models/SpreadsheetView.ts b/plugins/spreadsheet-view/src/SpreadsheetView/models/SpreadsheetView.ts index 510272c4b0..49f7450630 100644 --- a/plugins/spreadsheet-view/src/SpreadsheetView/models/SpreadsheetView.ts +++ b/plugins/spreadsheet-view/src/SpreadsheetView/models/SpreadsheetView.ts @@ -1,243 +1,157 @@ -import { - types, - getParent, - getEnv, - cast, - SnapshotIn, - Instance, -} from 'mobx-state-tree' +import { types, getParent, Instance } from 'mobx-state-tree' import { BaseViewModel } from '@jbrowse/core/pluggableElementTypes/models' -import { readConfObject } from '@jbrowse/core/configuration' -import { MenuItem } from '@jbrowse/core/ui' import { getSession } from '@jbrowse/core/util' // icons -import DoneIcon from '@mui/icons-material/Done' import FolderOpenIcon from '@mui/icons-material/FolderOpen' -import SpreadsheetModel from './Spreadsheet' -import ImportWizardModel from './ImportWizard' -import FilterControlsModel from './FilterControls' +// locals +import spreadsheetModelFactory, { SpreadsheetData } from './Spreadsheet' +import importWizardFactory from './ImportWizard' -type Spreadsheet = Instance - -export type MenuItemWithDisabledCallback = MenuItem & { - disabled?: - | boolean - | (( - viewModel: unknown, - spreadsheetModel: Spreadsheet, - rowNumber: number, - row: Spreadsheet['rowSet']['rows'][0], - ) => boolean) -} - -const defaultRowMenuItems: MenuItemWithDisabledCallback[] = [ - { - label: 'Toggle select', - icon: DoneIcon, - onClick(_view: unknown, spreadsheet: Spreadsheet) { - const rowNumber = spreadsheet.rowMenuPosition?.rowNumber - if (rowNumber !== undefined) { - spreadsheet.rowSet.rows[+rowNumber - 1].toggleSelect() - } - }, - }, -] - -const minHeight = 40 const defaultHeight = 440 /** * #stateModel SpreadsheetView * #category view + * + * extends + * - [BaseViewModel](../baseviewmodel) */ function x() {} // eslint-disable-line @typescript-eslint/no-unused-vars -const model = types - .model('SpreadsheetView', { - /** - * #property - */ - type: types.literal('SpreadsheetView'), - /** - * #property - */ - offsetPx: 0, - /** - * #property - */ - height: types.optional( - types.refinement( - 'SpreadsheetViewHeight', - types.number, - n => n >= minHeight, - ), - defaultHeight, - ), - /** - * #property - */ - hideVerticalResizeHandle: false, - /** - * #property - */ - hideFilterControls: false, - /** - * #property - */ - filterControls: types.optional(FilterControlsModel, () => - FilterControlsModel.create({}), - ), - /** - * #property - * switch specifying whether we are showing the import wizard or the - * spreadsheet in our viewing area - */ - mode: types.optional( - types.enumeration('SpreadsheetViewMode', ['import', 'display']), - 'import', - ), - /** - * #property - */ - importWizard: types.optional(ImportWizardModel, () => - ImportWizardModel.create(), - ), - /** - * #property - */ - spreadsheet: types.maybe(SpreadsheetModel), - }) - .volatile(() => ({ - width: 400, - rowMenuItems: defaultRowMenuItems, - })) - .views(self => ({ - /** - * #getter - */ - get readyToDisplay() { - return !!self.spreadsheet && self.spreadsheet.isLoaded - }, - /** - * #getter - */ - get hideRowSelection() { - return !!getEnv(self).hideRowSelection - }, - /** - * #getter - */ - get outputRows() { - if (self.spreadsheet && self.spreadsheet.rowSet.isLoaded) { - const selected = self.spreadsheet.rowSet.selectedFilteredRows - if (selected.length) { - return selected - } - return self.spreadsheet.rowSet.sortedFilteredRows - } - return undefined - }, - /** - * #getter - */ - get assembly() { - const name = self.spreadsheet?.assemblyName - if (name) { - const assemblies = getSession(self).assemblies - return assemblies?.find(asm => readConfObject(asm, 'name') === name) - } - return undefined - }, - })) - .actions(self => ({ - /** - * #action - */ - setRowMenuItems(newItems: MenuItem[]) { - self.rowMenuItems = newItems - }, - /** - * #action - */ - setWidth(newWidth: number) { - self.width = newWidth - return self.width - }, - /** - * #action - */ - setHeight(newHeight: number) { - self.height = newHeight > minHeight ? newHeight : minHeight - return self.height - }, - /** - * #action - */ - resizeHeight(distance: number) { - const oldHeight = self.height - const newHeight = this.setHeight(self.height + distance) - return newHeight - oldHeight - }, - /** - * #action - */ - resizeWidth(distance: number) { - const oldWidth = self.width - const newWidth = this.setWidth(self.width + distance) - return newWidth - oldWidth - }, +function stateModelFactory() { + const ImportWizard = importWizardFactory() + const SpreadsheetModelType = spreadsheetModelFactory() + return types + .compose( + BaseViewModel, + types.model('SpreadsheetView', { + /** + * #property + */ + type: types.literal('SpreadsheetView'), + /** + * #property + */ + height: types.optional(types.number, defaultHeight), + /** + * #property + */ + hideVerticalResizeHandle: false, + /** + * #property + */ + importWizard: types.optional(ImportWizard, {}), + /** + * #property + */ + spreadsheet: types.optional(SpreadsheetModelType, {}), + }), + ) + .volatile(() => ({ + width: 400, + })) + .views(self => ({ + /** + * #getter + */ + get assemblyName() { + return self.spreadsheet.assemblyName + }, + /** + * #getter + */ + get initialized() { + return self.spreadsheet.initialized + }, + /** + * #getter + */ + get assembly() { + const name = self.spreadsheet.assemblyName + return name ? getSession(self).assemblyManager.get(name) : undefined + }, + /** + * #getter + */ + get features() { + return self.spreadsheet.features + }, + })) + .actions(self => ({ + /** + * #action + */ + setWidth(newWidth: number) { + self.width = newWidth + return self.width + }, + /** + * #action + */ + setHeight(newHeight: number) { + self.height = newHeight + return self.height + }, + /** + * #action + */ + resizeHeight(distance: number) { + const oldHeight = self.height + const newHeight = this.setHeight(self.height + distance) + return newHeight - oldHeight + }, + /** + * #action + */ + resizeWidth(distance: number) { + const oldWidth = self.width + const newWidth = this.setWidth(self.width + distance) + return newWidth - oldWidth + }, + + /** + * #action + * load a new spreadsheet and set our mode to display it + */ + displaySpreadsheet(spreadsheet?: SpreadsheetData, assemblyName?: string) { + self.spreadsheet.setData(spreadsheet, assemblyName) + }, - /** - * #action - * load a new spreadsheet and set our mode to display it - */ - displaySpreadsheet(spreadsheet: SnapshotIn) { - self.filterControls.clearAllFilters() - self.spreadsheet = cast(spreadsheet) - self.mode = 'display' - }, - /** - * #action - */ - setImportMode() { - self.mode = 'import' - }, - /** - * #action - */ - setDisplayMode() { - if (self.readyToDisplay) { - self.mode = 'display' - } - }, - /** - * #action - */ - closeView() { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - getParent(self, 2).removeView(self) - }, - })) - .views(self => ({ - /** - * #method - */ - menuItems() { - return [ - { - label: 'Return to import form', - onClick: () => self.setImportMode(), - icon: FolderOpenIcon, - }, - ] - }, - })) + /** + * #action + */ + clearData() { + self.spreadsheet.setData() + self.importWizard.setSpreadsheetFilehandle() + }, -const SpreadsheetView = types.compose(BaseViewModel, model) + /** + * #action + */ + closeView() { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + getParent(self, 2).removeView(self) + }, + })) + .views(self => ({ + /** + * #method + */ + menuItems() { + return [ + { + label: 'Return to import form', + onClick: () => self.clearData(), + icon: FolderOpenIcon, + }, + ] + }, + })) +} -export type SpreadsheetViewStateModel = typeof SpreadsheetView +export type SpreadsheetViewStateModel = ReturnType export type SpreadsheetViewModel = Instance -export default SpreadsheetView +export default stateModelFactory diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/models/StaticRowSet.ts b/plugins/spreadsheet-view/src/SpreadsheetView/models/StaticRowSet.ts deleted file mode 100644 index 0ad5ff77e7..0000000000 --- a/plugins/spreadsheet-view/src/SpreadsheetView/models/StaticRowSet.ts +++ /dev/null @@ -1,65 +0,0 @@ -import RowModel from './Row' -import { types, getParent } from 'mobx-state-tree' - -const StaticRowModel = types - .model('StaticRowSet', { - isLoaded: types.literal(true), - rows: types.array(RowModel), - }) - .views(self => ({ - get count() { - return self.rows.length - }, - - get passingFiltersCount() { - return this.sortedFilteredRows.length - }, - - get selectedCount() { - return this.selectedRows.length - }, - - get selectedAndPassingFiltersCount() { - return this.selectedFilteredRows.length - }, - - get sortedRows() { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const parent = getParent(self) - return [...self.rows].sort(parent.rowSortingComparisonFunction) - }, - - get selectedRows() { - return self.rows.filter(r => r.isSelected) - }, - - get selectedFilteredRows() { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const sheet = getParent(self) - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const view = getParent(sheet) - const { filterControls } = view - return this.selectedRows.filter(row => - filterControls.rowPassesFilters(sheet, row), - ) - }, - - // the set of all rows that pass the filters, sorted - get sortedFilteredRows() { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const sheet = getParent(self) - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const view = getParent(sheet) - const { filterControls } = view - return self.rows - .filter(row => filterControls.rowPassesFilters(sheet, row)) - .sort(sheet.rowSortingComparisonFunction) - }, - })) - .actions(self => ({ - unselectAll() { - self.rows.forEach(row => row.unSelect()) - }, - })) - -export default StaticRowModel diff --git a/plugins/sv-inspector/src/LaunchSvInspectorView/index.ts b/plugins/sv-inspector/src/LaunchSvInspectorView/index.ts index a624789a04..9111cdf05e 100644 --- a/plugins/sv-inspector/src/LaunchSvInspectorView/index.ts +++ b/plugins/sv-inspector/src/LaunchSvInspectorView/index.ts @@ -23,19 +23,12 @@ export default function LaunchSvInspectorViewF(pluginManager: PluginManager) { if (!view) { throw new Error('Failed to initialize view') } - const exts = uri.split('.') - let ext = exts?.pop()?.toUpperCase() - if (ext === 'GZ') { - ext = exts?.pop()?.toUpperCase() - } - view.spreadsheetView.importWizard.setFileType(fileType || ext || '') view.spreadsheetView.importWizard.setSelectedAssemblyName(assembly) - view.spreadsheetView.importWizard.setFileSource({ + view.spreadsheetView.importWizard.setSpreadsheetFilehandle({ uri, locationType: 'UriLocation', }) - await view.spreadsheetView.importWizard.import(assembly) }, ) } diff --git a/plugins/sv-inspector/src/SvInspectorView/components/SvInspectorView.tsx b/plugins/sv-inspector/src/SvInspectorView/components/SvInspectorView.tsx index 63c1f75bff..f31e0339dd 100644 --- a/plugins/sv-inspector/src/SvInspectorView/components/SvInspectorView.tsx +++ b/plugins/sv-inspector/src/SvInspectorView/components/SvInspectorView.tsx @@ -1,4 +1,4 @@ -import React from 'react' +import React, { useState } from 'react' import { observer } from 'mobx-react' import { makeStyles } from 'tss-react/mui' import { ResizeHandle } from '@jbrowse/core/ui' @@ -41,36 +41,39 @@ const SvInspectorView = observer(function ({ const { SpreadsheetViewReactComponent, CircularViewReactComponent, - showCircularView, + spreadsheetView, + circularView, } = model + const [initialCircWidth, setInitialCircWidth] = useState(0) + const [initialSpreadsheetWidth, setInitialSpreadsheetWidth] = useState(0) return (
- +
- {showCircularView ? ( - <> - { - const ret1 = model.circularView.resizeWidth(-distance) - return model.spreadsheetView.resizeWidth(-ret1) - }} - vertical - flexbox - className={classes.resizeHandleVert} - /> -
- - -
- - ) : null} + { + circularView.setWidth(initialCircWidth + total) + spreadsheetView.setWidth(initialSpreadsheetWidth - total) + }} + onMouseDown={() => { + setInitialSpreadsheetWidth(spreadsheetView.width) + setInitialCircWidth(circularView.width) + }} + vertical + flexbox + className={classes.resizeHandleVert} + /> +
+ + +
+ ) : ( + + ) +}) + +export default SvInspectorViewContainer diff --git a/plugins/sv-inspector/src/SvInspectorView/index.ts b/plugins/sv-inspector/src/SvInspectorView/index.ts index b911fb557c..7188ee600b 100644 --- a/plugins/sv-inspector/src/SvInspectorView/index.ts +++ b/plugins/sv-inspector/src/SvInspectorView/index.ts @@ -8,7 +8,7 @@ import { IAnyStateTreeNode } from 'mobx-state-tree' import BreakpointSplitViewType from '@jbrowse/plugin-breakpoint-split-view/src/BreakpointSplitView/BreakpointSplitView' import { CircularViewModel } from '@jbrowse/plugin-circular-view' -function defaultOnChordClick( +async function defaultOnChordClick( feature: Feature, chordTrack: IAnyStateTreeNode, pluginManager: PluginManager, @@ -19,7 +19,12 @@ function defaultOnChordClick( const viewType = pluginManager.getViewType( 'BreakpointSplitView', ) as BreakpointSplitViewType - const viewSnapshot = viewType.snapshotFromBreakendFeature(feature, view) + const [assemblyName] = view.assemblyNames + const viewSnapshot = await viewType.snapshotFromBreakendFeature( + feature, + assemblyName, + session, + ) // try to center the offsetPx viewSnapshot.views[0].offsetPx -= view.width / 2 + 100 diff --git a/plugins/sv-inspector/src/SvInspectorView/models/SvInspectorView.ts b/plugins/sv-inspector/src/SvInspectorView/models/SvInspectorView.ts index 7f557ff2c7..357c04f5a7 100644 --- a/plugins/sv-inspector/src/SvInspectorView/models/SvInspectorView.ts +++ b/plugins/sv-inspector/src/SvInspectorView/models/SvInspectorView.ts @@ -1,25 +1,24 @@ import clone from 'clone' -import { autorun, reaction } from 'mobx' +import { autorun } from 'mobx' import { types, getParent, addDisposer, Instance } from 'mobx-state-tree' import PluginManager from '@jbrowse/core/PluginManager' import { getSession, Region } from '@jbrowse/core/util' -import { readConfObject } from '@jbrowse/core/configuration' import { ElementId } from '@jbrowse/core/util/types/mst' import { BaseViewModel } from '@jbrowse/core/pluggableElementTypes/models' import { SpreadsheetViewStateModel } from '@jbrowse/plugin-spreadsheet-view' import { CircularViewStateModel } from '@jbrowse/plugin-circular-view' // icons -import OpenInNewIcon from '@mui/icons-material/OpenInNew' +// import OpenInNewIcon from '@mui/icons-material/OpenInNew' import FolderOpenIcon from '@mui/icons-material/FolderOpen' // locals -import { - canOpenBreakpointSplitViewFromTableRow, - openBreakpointSplitViewFromTableRow, - getFeatureForRow, -} from './breakpointSplitViewFromTableRow' +// import { +// canOpenBreakpointSplitViewFromTableRow, +// openBreakpointSplitViewFromTableRow, +// getFeatureForRow, +// } from './breakpointSplitViewFromTableRow' /** * #stateModel SvInspectorView @@ -41,7 +40,6 @@ function SvInspectorViewF(pluginManager: PluginManager) { const minHeight = 400 const defaultHeight = 550 - const headerHeight = 52 const circularViewOptionsBarHeight = 52 return types .compose( @@ -60,53 +58,40 @@ function SvInspectorViewF(pluginManager: PluginManager) { /** * #property */ - height: types.optional( - types.refinement( - 'SvInspectorViewHeight', - types.number, - n => n >= minHeight, - ), - defaultHeight, - ), + height: types.optional(types.number, defaultHeight), /** * #property */ onlyDisplayRelevantRegionsInCircularView: false, + /** * #property - * switch specifying whether we are showing the import wizard or the - * spreadsheet in our viewing area */ - mode: types.optional( - types.enumeration('SvInspectorViewMode', ['import', 'display']), - 'import', - ), + spreadsheetView: types.optional(SpreadsheetModel, { + hideVerticalResizeHandle: true, + type: 'SpreadsheetView', + }), /** * #property */ - spreadsheetView: types.optional(SpreadsheetModel, () => - SpreadsheetModel.create({ - type: 'SpreadsheetView', - hideVerticalResizeHandle: true, - }), - ), - /** - * #property - */ - circularView: types.optional(CircularModel, () => - CircularModel.create({ - type: 'CircularView', - hideVerticalResizeHandle: true, - hideTrackSelectorButton: true, - disableImportForm: true, - }), - ), + circularView: types.optional(CircularModel, { + type: 'CircularView', + hideVerticalResizeHandle: true, + hideTrackSelectorButton: true, + disableImportForm: true, + }), }), ) .volatile(() => ({ width: 800, })) .views(self => ({ + /** + * #getter + */ + get initialized() { + return self.spreadsheetView.initialized + }, /** * #getter */ @@ -118,43 +103,43 @@ function SvInspectorViewF(pluginManager: PluginManager) { * #getter */ get assemblyName() { - const { assembly } = self.spreadsheetView - return assembly ? readConfObject(assembly, 'name') : undefined + return self.spreadsheetView.assemblyName }, /** * #getter */ get showCircularView() { - return self.spreadsheetView.mode === 'display' + return self.spreadsheetView.initialized }, /** * #getter */ get features() { - const session = getSession(self) - const { spreadsheetView } = self - const { outputRows = [] } = spreadsheetView - return outputRows - .map((r, i) => getFeatureForRow(session, spreadsheetView, r, i)) - .filter(f => !!f) + return self.spreadsheetView.features }, /** * #getter */ get featuresAdapterConfigSnapshot() { + console.log(this.features?.map(f => f.toJSON()) || []) return { type: 'FromConfigAdapter', - features: this.features, + features: this.features?.map(f => f.toJSON()) || [], } }, /** * #getter */ get featureRefNames() { - const refs = this.features.map(r => r.refName) - const CHR2 = this.features.flatMap(r => r.INFO?.CHR2).filter(f => !!f) - return [...refs, ...CHR2] + if (this.features) { + const refs = this.features.map(r => r.get('refName') as string) + const CHR2 = this.features + .flatMap(r => r.get('INFO')?.CHR2 as string) + .filter(f => !!f) + return [...refs, ...CHR2] + } + return undefined }, /** * #getter @@ -171,7 +156,9 @@ function SvInspectorViewF(pluginManager: PluginManager) { type: 'ChordVariantDisplay', displayId: `sv-inspector-variant-track-chord-display-${self.id}`, onChordClick: `jexl:defaultOnChordClick(feature, track, pluginManager)`, - renderer: { type: 'StructuralVariantChordRenderer' }, + renderer: { + type: 'StructuralVariantChordRenderer', + }, }, ], } @@ -196,18 +183,6 @@ function SvInspectorViewF(pluginManager: PluginManager) { self.height = newHeight > minHeight ? newHeight : minHeight return self.height }, - /** - * #action - */ - setImportMode() { - self.spreadsheetView.setImportMode() - }, - /** - * #action - */ - setDisplayMode() { - self.spreadsheetView.setDisplayMode() - }, /** * #action */ @@ -225,7 +200,7 @@ function SvInspectorViewF(pluginManager: PluginManager) { * #action */ setOnlyDisplayRelevantRegionsInCircularView(val: boolean) { - self.onlyDisplayRelevantRegionsInCircularView = Boolean(val) + self.onlyDisplayRelevantRegionsInCircularView = val }, })) .views(self => ({ @@ -236,7 +211,9 @@ function SvInspectorViewF(pluginManager: PluginManager) { return [ { label: 'Return to import form', - onClick: () => self.setImportMode(), + onClick: () => { + self.spreadsheetView.spreadsheet.setData(undefined) + }, icon: FolderOpenIcon, }, ] @@ -255,151 +232,125 @@ function SvInspectorViewF(pluginManager: PluginManager) { // synchronize subview widths addDisposer( self, - autorun( - () => { - const borderWidth = 1 - if (self.showCircularView) { - const spreadsheetWidth = Math.round(self.width * 0.66) - const circularViewWidth = self.width - spreadsheetWidth - self.spreadsheetView.setWidth(spreadsheetWidth - borderWidth) - self.circularView.setWidth(circularViewWidth) - } else { - self.spreadsheetView.setWidth(self.width) - } - }, - { name: 'SvInspectorView width binding' }, - ), + autorun(() => { + const borderWidth = 1 + if (self.showCircularView) { + const spreadsheetWidth = Math.round(self.width * 0.66) + const circularViewWidth = self.width - spreadsheetWidth + self.spreadsheetView.setWidth(spreadsheetWidth - borderWidth) + self.circularView.setWidth(circularViewWidth) + } else { + self.spreadsheetView.setWidth(self.width) + } + }), ) // synchronize subview heights addDisposer( self, - autorun( - () => { - self.spreadsheetView.setHeight(self.height - headerHeight) - self.circularView.setHeight( - self.height - headerHeight - circularViewOptionsBarHeight, - ) - }, - { name: 'SvInspectorView height binding' }, - ), + autorun(() => { + const { height } = self + self.spreadsheetView.setHeight(height) + self.circularView.setHeight(height - circularViewOptionsBarHeight) + }), ) - // bind circularview displayedRegions to spreadsheet assembly, mediated // by the onlyRelevantRegions toggle addDisposer( self, - autorun( - async () => { - const { - assemblyName, - onlyDisplayRelevantRegionsInCircularView, - circularView, - featureRefNames, - } = self + autorun(async () => { + const { + assemblyName, + onlyDisplayRelevantRegionsInCircularView, + circularView, + featureRefNames, + } = self + console.log({ featureRefNames }) + try { + if (!circularView.initialized) { + return + } const { tracks } = circularView const { assemblyManager } = getSession(self) if (!assemblyName) { return } - const asm = await assemblyManager.waitForAssembly(assemblyName) + const asm = assemblyManager.get(assemblyName) if (!asm) { return } - - const { getCanonicalRefName, regions = [] } = asm + const { regions = [] } = asm if (onlyDisplayRelevantRegionsInCircularView) { if (tracks.length === 1) { - try { - // canonicalize the store's ref names if necessary - const refSet = new Set( - featureRefNames.map(r => getCanonicalRefName(r) || r), - ) - - circularView.setDisplayedRegions( - clone(regions.filter(r => refSet.has(r.refName))), - ) - } catch (e) { - circularView.setError(e) - } + // canonicalize the store's ref names if necessary + const refSet = new Set( + featureRefNames?.map( + r => asm.getCanonicalRefName(r) || r, + ) || [], + ) + circularView.setDisplayedRegions( + clone(regions.filter(r => refSet.has(r.refName))), + ) } } else { circularView.setDisplayedRegions(regions) } - }, - { name: 'SvInspectorView displayed regions bind' }, - ), + } catch (e) { + console.error(e) + circularView.setError(e) + } + }), ) - // bind circularview tracks to our track snapshot view addDisposer( self, - reaction( - () => ({ - generatedTrackConf: self?.featuresCircularTrackConfiguration, - assemblyName: self?.assemblyName, - }), - data => { - if (!data) { - return - } - const { assemblyName, generatedTrackConf } = data - const { circularView } = self - // hide any visible tracks - circularView.tracks.forEach(t => - circularView.hideTrack(t.configuration.trackId), - ) - - // put our track in as the only track - if (assemblyName && generatedTrackConf) { - // @ts-expect-error - circularView.addTrackConf(generatedTrackConf, { - assemblyName, - }) - } - }, - { - name: 'SvInspectorView track configuration binding', - fireImmediately: true, - }, - ), + autorun(() => { + const { assemblyName, featuresCircularTrackConfiguration } = self + const { circularView } = self + // hide any visible tracks + circularView.tracks.forEach(t => + circularView.hideTrack(t.configuration.trackId), + ) + // put our track in as the only track + if (assemblyName && featuresCircularTrackConfiguration) { + circularView.addTrackConf(featuresCircularTrackConfiguration) + } + }), ) - - // bind spreadsheetView row menu actions to us + // // bind spreadsheetView row menu actions to us addDisposer( self, autorun(() => { - self.spreadsheetView.setRowMenuItems( - // these are the MenuItem entries for the row menu actions in the - // spreadsheet view. these are installed into the child - // SpreadsheetView using an autorun below - [ - { - label: 'Open split detail view', - icon: OpenInNewIcon, - // @ts-expect-error - disabled(spreadsheetView, spreadsheet, rowNumber, row) { - return !canOpenBreakpointSplitViewFromTableRow( - self, - spreadsheetView, - spreadsheet, - row, - rowNumber, - ) - }, - - // @ts-expect-error - onClick(spreadsheetView, spreadsheet, rowNumber, row) { - openBreakpointSplitViewFromTableRow( - self, - spreadsheetView, - spreadsheet, - row, - rowNumber, - ) - }, - }, - ], - ) + // self.spreadsheetView.setRowMenuItems( + // // these are the MenuItem entries for the row menu actions in the + // // spreadsheet view. these are installed into the child + // // SpreadsheetView using an autorun below + // [ + // { + // label: 'Open split detail view', + // icon: OpenInNewIcon, + // // @ts-expect-error + // disabled(spreadsheetView, spreadsheet, rowNumber, row) { + // return !canOpenBreakpointSplitViewFromTableRow( + // self, + // spreadsheetView, + // spreadsheet, + // row, + // rowNumber, + // ) + // }, + // // @ts-expect-error + // onClick(spreadsheetView, spreadsheet, rowNumber, row) { + // openBreakpointSplitViewFromTableRow( + // self, + // spreadsheetView, + // spreadsheet, + // row, + // rowNumber, + // ) + // }, + // }, + // ], + // ) }), ) }, diff --git a/plugins/sv-inspector/src/SvInspectorView/models/adhocFeatureUtils.js b/plugins/sv-inspector/src/SvInspectorView/models/adhocFeatureUtils.js deleted file mode 100644 index 8a7baf1420..0000000000 --- a/plugins/sv-inspector/src/SvInspectorView/models/adhocFeatureUtils.js +++ /dev/null @@ -1,152 +0,0 @@ -// this file contains the rather verbose functions for -// creating features from CSV/TSV lines -import { parseLocString } from '@jbrowse/core/util' - -export function makeAdHocFeature( - columns, - columnsAlreadyUsedInLocations, - row, - loc1, - loc2, - rowNumber, -) { - // load all the other data in the row into an `otherData` object - const otherData = {} - columns.forEach((column, columnNumber) => { - if (columnsAlreadyUsedInLocations.includes(columnNumber)) { - return - } - let { text } = row.cells[columnNumber] - if (column.dataType.type === 'Number') { - text = parseFloat(text) - } - otherData[column.name] = text - }) - - // make the final feature data out of otherData + the parsed locations - return { - ...otherData, - uniqueId: `sv-inspector-adhoc-${rowNumber}`, - refName: loc1.refName, - start: loc1.start, - end: loc1.end, - mate: { - refName: loc2.refName, - start: loc2.start, - end: loc2.end, - }, - } -} - -export function makeAdHocSvFeatureFromTwoLocations( - columns, - locationColumnNumbers, - row, - rowNumber, - isValidRefName, -) { - // use the first two locations we found (first according to *displayed* order) - const loc1 = parseLocString( - row.cells[locationColumnNumbers[0]].text, - isValidRefName, - ) - const loc2 = parseLocString( - row.cells[locationColumnNumbers[1]].text, - isValidRefName, - ) - - const columnsAlreadyUsedInLocations = [ - locationColumnNumbers[0], - locationColumnNumbers[1], - ] - - return makeAdHocFeature( - columns, - columnsAlreadyUsedInLocations, - row, - loc1, - loc2, - rowNumber, - ) -} - -export function makeAdHocSvFeatureFromTwoRefStartEndSets( - columns, - locRefColumnNumbers, - locStartColumnNumbers, - locEndColumnNumbers, - row, - rowNumber, -) { - const textOf = colno => row.cells[colno].text - const loc1 = { - refName: textOf(locRefColumnNumbers[0]), - start: parseInt(textOf(locStartColumnNumbers[0]), 10) - 1, - end: parseInt(textOf(locEndColumnNumbers[0]), 10), - } - const loc2 = { - refName: textOf(locRefColumnNumbers[1]), - start: parseInt(textOf(locStartColumnNumbers[1]), 10) - 1, - end: parseInt(textOf(locEndColumnNumbers[1]), 10), - } - const columnsAlreadyUsedInLocations = [ - locRefColumnNumbers[0], - locStartColumnNumbers[0], - locEndColumnNumbers[0], - locRefColumnNumbers[1], - locStartColumnNumbers[1], - locEndColumnNumbers[1], - ] - return makeAdHocFeature( - columns, - columnsAlreadyUsedInLocations, - row, - loc1, - loc2, - rowNumber, - ) -} - -// makes a feature data object (passed as `data` to a SimpleFeature constructor) -// out of table row if the row has 2 location columns. undefined if not -export function makeAdHocSvFeature(sheet, rowNumber, row, isValidRefName) { - const { columns, columnDisplayOrder } = sheet - const columnTypes = {} - columnDisplayOrder.forEach(columnNumber => { - const columnDefinition = columns[columnNumber] - if (!columnTypes[columnDefinition.dataType.type]) { - columnTypes[columnDefinition.dataType.type] = [] - } - columnTypes[columnDefinition.dataType.type].push(columnNumber) - }) - const locationColumnNumbers = columnTypes.LocString || [] - const locStartColumnNumbers = columnTypes.LocStart || [] - const locEndColumnNumbers = columnTypes.LocEnd || [] - const locRefColumnNumbers = columnTypes.LocRef || [] - - // if we have 2 or more columns of type location, make a feature from them - if (locationColumnNumbers.length >= 2) { - return makeAdHocSvFeatureFromTwoLocations( - columns, - locationColumnNumbers, - row, - rowNumber, - isValidRefName, - ) - } - if ( - locRefColumnNumbers.length >= 2 && - locStartColumnNumbers.length >= 2 && - locEndColumnNumbers.length >= 2 - ) { - return makeAdHocSvFeatureFromTwoRefStartEndSets( - columns, - locRefColumnNumbers, - locStartColumnNumbers, - locEndColumnNumbers, - row, - rowNumber, - ) - } - return undefined -} diff --git a/plugins/sv-inspector/src/SvInspectorView/models/breakpointSplitViewFromTableRow.js b/plugins/sv-inspector/src/SvInspectorView/models/breakpointSplitViewFromTableRow.js deleted file mode 100644 index 0b0eb8d429..0000000000 --- a/plugins/sv-inspector/src/SvInspectorView/models/breakpointSplitViewFromTableRow.js +++ /dev/null @@ -1,84 +0,0 @@ -import { SimpleFeature, getEnv, getSession } from '@jbrowse/core/util' -import { makeAdHocSvFeature } from './adhocFeatureUtils' - -export function getFeatureForRow(session, spreadsheetView, row, rowNumber) { - return ( - row.extendedData?.vcfFeature || - row.extendedData?.feature || - makeAdHocSvFeature( - spreadsheetView.spreadsheet, - rowNumber, - row, - session.assemblyManager.isValidRefName, - ) - ) -} - -export function breakpointSplitViewSnapshotFromTableRow( - svInspectorView, - spreadsheetView, - spreadsheet, - row, - rowNumber, -) { - const { pluginManager } = getEnv(svInspectorView) - const session = getSession(spreadsheetView) - const featureData = getFeatureForRow(session, spreadsheet, row, rowNumber) - - if (featureData) { - const feature = new SimpleFeature(featureData) - session.setSelection(feature) - return pluginManager - .getViewType('BreakpointSplitView') - .snapshotFromBreakendFeature(feature, svInspectorView.circularView) - } - return undefined -} - -export function openBreakpointSplitViewFromTableRow( - svInspectorView, - spreadsheetView, - spreadsheet, - row, - rowNumber, -) { - const viewSnapshot = breakpointSplitViewSnapshotFromTableRow( - svInspectorView, - spreadsheetView, - spreadsheet, - row, - rowNumber, - ) - if (viewSnapshot) { - // try to center the offsetPx - const { circularView } = svInspectorView - viewSnapshot.views[0].offsetPx -= circularView.width / 2 + 100 - viewSnapshot.views[1].offsetPx -= circularView.width / 2 + 100 - - const session = getSession(spreadsheetView) - session.addView('BreakpointSplitView', viewSnapshot) - } -} - -export function canOpenBreakpointSplitViewFromTableRow( - svInspectorView, - spreadsheetView, - spreadsheet, - row, - rowNumber, -) { - try { - return Boolean( - breakpointSplitViewSnapshotFromTableRow( - svInspectorView, - spreadsheetView, - spreadsheet, - row, - rowNumber, - ), - ) - } catch (e) { - console.error('Unable to open breakpoint split view from table row', e) - return false - } -} diff --git a/plugins/sv-inspector/src/SvInspectorView/models/breakpointSplitViewFromTableRow.ts b/plugins/sv-inspector/src/SvInspectorView/models/breakpointSplitViewFromTableRow.ts new file mode 100644 index 0000000000..f5eaba0a1b --- /dev/null +++ b/plugins/sv-inspector/src/SvInspectorView/models/breakpointSplitViewFromTableRow.ts @@ -0,0 +1,88 @@ +// import { SimpleFeature, getEnv, getSession } from '@jbrowse/core/util' +// import { makeAdHocSvFeature } from './adhocFeatureUtils' +// import BreakpointSplitViewType from '@jbrowse/plugin-breakpoint-split-view/src/BreakpointSplitView/BreakpointSplitView' + +// export function getFeatureForRow(session, spreadsheetView, row, rowNumber) { +// return ( +// row.extendedData?.vcfFeature || +// row.extendedData?.feature || +// makeAdHocSvFeature( +// spreadsheetView.spreadsheet, +// rowNumber, +// row, +// session.assemblyManager.isValidRefName, +// ) +// ) +// } + +// export async function breakpointSplitViewSnapshotFromTableRow( +// svInspectorView, +// spreadsheetView, +// spreadsheet, +// row, +// rowNumber, +// ) { +// const { pluginManager } = getEnv(svInspectorView) +// const session = getSession(spreadsheetView) +// const featureData = getFeatureForRow(session, spreadsheet, row, rowNumber) + +// if (featureData) { +// const feature = new SimpleFeature(featureData) +// session.setSelection(feature) +// const { assemblyName } = spreadsheetView +// const viewType = pluginManager.getViewType( +// 'BreakpointSplitView', +// ) as BreakpointSplitViewType + +// return viewType.snapshotFromBreakendFeature(feature, assemblyName, session) +// } +// return undefined +// } + +// export function openBreakpointSplitViewFromTableRow( +// svInspectorView, +// spreadsheetView, +// spreadsheet, +// row, +// rowNumber, +// ) { +// const viewSnapshot = breakpointSplitViewSnapshotFromTableRow( +// svInspectorView, +// spreadsheetView, +// spreadsheet, +// row, +// rowNumber, +// ) +// if (viewSnapshot) { +// // try to center the offsetPx +// const { circularView } = svInspectorView +// viewSnapshot.views[0].offsetPx -= circularView.width / 2 + 100 +// viewSnapshot.views[1].offsetPx -= circularView.width / 2 + 100 + +// const session = getSession(spreadsheetView) +// session.addView('BreakpointSplitView', viewSnapshot) +// } +// } + +// export function canOpenBreakpointSplitViewFromTableRow( +// svInspectorView, +// spreadsheetView, +// spreadsheet, +// row, +// rowNumber, +// ) { +// try { +// return Boolean( +// breakpointSplitViewSnapshotFromTableRow( +// svInspectorView, +// spreadsheetView, +// spreadsheet, +// row, +// rowNumber, +// ), +// ) +// } catch (e) { +// console.error('Unable to open breakpoint split view from table row', e) +// return false +// } +// } diff --git a/plugins/variants/src/LinearVariantDisplay/configSchema.ts b/plugins/variants/src/LinearVariantDisplay/configSchema.ts index 2a80ada3a0..ade30430e1 100644 --- a/plugins/variants/src/LinearVariantDisplay/configSchema.ts +++ b/plugins/variants/src/LinearVariantDisplay/configSchema.ts @@ -5,9 +5,12 @@ import { linearBasicDisplayConfigSchemaFactory } from '@jbrowse/plugin-linear-ge /** * #config LinearVariantDisplay - * mostly empty, this display type is very much - * like a `FeatureTrack` with a `LinearBasicDisplay` except it has a custom - * feature details widget + * + * mostly empty, this display type is very much like a `FeatureTrack` with a + * `LinearBasicDisplay` except it has a custom feature details widget + * + * extends + * - [LinearBasicDisplay](../linearbasicdisplay) */ function x() {} // eslint-disable-line @typescript-eslint/no-unused-vars diff --git a/plugins/variants/src/LinearVariantDisplay/model.ts b/plugins/variants/src/LinearVariantDisplay/model.ts index fc1ea0aab7..f55121a911 100644 --- a/plugins/variants/src/LinearVariantDisplay/model.ts +++ b/plugins/variants/src/LinearVariantDisplay/model.ts @@ -14,9 +14,8 @@ import { AnyConfigurationSchemaType } from '@jbrowse/core/configuration' /** * #stateModel LinearVariantDisplay - * similar to basic display, but provides custom widget on feature click - * extends * + * extends * - [LinearBasicDisplay](../linearbasicdisplay) */ export default function stateModelFactory( diff --git a/yarn.lock b/yarn.lock index c1f384934a..0f970bad77 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,10 +7,10 @@ resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.2.0.tgz#7a03314684dd6572b7dfa89e68ce31d60286854d" integrity sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A== -"@adobe/css-tools@^4.4.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.4.0.tgz#728c484f4e10df03d5a3acd0d8adcbbebff8ad63" - integrity sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ== +"@adobe/css-tools@^4.3.2": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.3.tgz#90749bde8b89cd41764224f5aac29cd4138f75ff" + integrity sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ== "@ampproject/remapping@^2.2.0": version "2.3.0" @@ -27,595 +27,604 @@ dependencies: default-browser-id "3.0.0" -"@aws-crypto/crc32@5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-5.2.0.tgz#cfcc22570949c98c6689cfcbd2d693d36cdae2e1" - integrity sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg== +"@aws-crypto/crc32@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-3.0.0.tgz#07300eca214409c33e3ff769cd5697b57fdd38fa" + integrity sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA== dependencies: - "@aws-crypto/util" "^5.2.0" + "@aws-crypto/util" "^3.0.0" "@aws-sdk/types" "^3.222.0" - tslib "^2.6.2" + tslib "^1.11.1" -"@aws-crypto/crc32c@5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/crc32c/-/crc32c-5.2.0.tgz#4e34aab7f419307821509a98b9b08e84e0c1917e" - integrity sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag== +"@aws-crypto/crc32c@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32c/-/crc32c-3.0.0.tgz#016c92da559ef638a84a245eecb75c3e97cb664f" + integrity sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w== dependencies: - "@aws-crypto/util" "^5.2.0" + "@aws-crypto/util" "^3.0.0" "@aws-sdk/types" "^3.222.0" - tslib "^2.6.2" + tslib "^1.11.1" -"@aws-crypto/sha1-browser@5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz#b0ee2d2821d3861f017e965ef3b4cb38e3b6a0f4" - integrity sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg== +"@aws-crypto/ie11-detection@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz#640ae66b4ec3395cee6a8e94ebcd9f80c24cd688" + integrity sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q== dependencies: - "@aws-crypto/supports-web-crypto" "^5.2.0" - "@aws-crypto/util" "^5.2.0" + tslib "^1.11.1" + +"@aws-crypto/sha1-browser@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha1-browser/-/sha1-browser-3.0.0.tgz#f9083c00782b24714f528b1a1fef2174002266a3" + integrity sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw== + dependencies: + "@aws-crypto/ie11-detection" "^3.0.0" + "@aws-crypto/supports-web-crypto" "^3.0.0" + "@aws-crypto/util" "^3.0.0" "@aws-sdk/types" "^3.222.0" "@aws-sdk/util-locate-window" "^3.0.0" - "@smithy/util-utf8" "^2.0.0" - tslib "^2.6.2" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" -"@aws-crypto/sha256-browser@5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz#153895ef1dba6f9fce38af550e0ef58988eb649e" - integrity sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw== +"@aws-crypto/sha256-browser@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz#05f160138ab893f1c6ba5be57cfd108f05827766" + integrity sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ== dependencies: - "@aws-crypto/sha256-js" "^5.2.0" - "@aws-crypto/supports-web-crypto" "^5.2.0" - "@aws-crypto/util" "^5.2.0" + "@aws-crypto/ie11-detection" "^3.0.0" + "@aws-crypto/sha256-js" "^3.0.0" + "@aws-crypto/supports-web-crypto" "^3.0.0" + "@aws-crypto/util" "^3.0.0" "@aws-sdk/types" "^3.222.0" "@aws-sdk/util-locate-window" "^3.0.0" - "@smithy/util-utf8" "^2.0.0" - tslib "^2.6.2" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" -"@aws-crypto/sha256-js@5.2.0", "@aws-crypto/sha256-js@^5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz#c4fdb773fdbed9a664fc1a95724e206cf3860042" - integrity sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA== +"@aws-crypto/sha256-js@3.0.0", "@aws-crypto/sha256-js@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz#f06b84d550d25521e60d2a0e2a90139341e007c2" + integrity sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ== dependencies: - "@aws-crypto/util" "^5.2.0" + "@aws-crypto/util" "^3.0.0" "@aws-sdk/types" "^3.222.0" - tslib "^2.6.2" + tslib "^1.11.1" -"@aws-crypto/supports-web-crypto@^5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz#a1e399af29269be08e695109aa15da0a07b5b5fb" - integrity sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg== +"@aws-crypto/supports-web-crypto@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz#5d1bf825afa8072af2717c3e455f35cda0103ec2" + integrity sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg== dependencies: - tslib "^2.6.2" + tslib "^1.11.1" -"@aws-crypto/util@^5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-5.2.0.tgz#71284c9cffe7927ddadac793c14f14886d3876da" - integrity sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ== +"@aws-crypto/util@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-3.0.0.tgz#1c7ca90c29293f0883468ad48117937f0fe5bfb0" + integrity sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w== dependencies: "@aws-sdk/types" "^3.222.0" - "@smithy/util-utf8" "^2.0.0" - tslib "^2.6.2" - -"@aws-sdk/client-cloudfront@^3.592.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudfront/-/client-cloudfront-3.598.0.tgz#a6dd4aba7b44315a253c635cdf92862f377f93bf" - integrity sha512-bkAVZ0VjrvPsRkoVQEAEBH7jbHLBqmVfdGRNsJkHRK4pvelM0wNfMbrMpXXRMu2DvjHdKp8akEratldlavN9Pw== - dependencies: - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.598.0" - "@aws-sdk/client-sts" "3.598.0" - "@aws-sdk/core" "3.598.0" - "@aws-sdk/credential-provider-node" "3.598.0" - "@aws-sdk/middleware-host-header" "3.598.0" - "@aws-sdk/middleware-logger" "3.598.0" - "@aws-sdk/middleware-recursion-detection" "3.598.0" - "@aws-sdk/middleware-user-agent" "3.598.0" - "@aws-sdk/region-config-resolver" "3.598.0" - "@aws-sdk/types" "3.598.0" - "@aws-sdk/util-endpoints" "3.598.0" - "@aws-sdk/util-user-agent-browser" "3.598.0" - "@aws-sdk/util-user-agent-node" "3.598.0" - "@aws-sdk/xml-builder" "3.598.0" - "@smithy/config-resolver" "^3.0.2" - "@smithy/core" "^2.2.1" - "@smithy/fetch-http-handler" "^3.0.2" - "@smithy/hash-node" "^3.0.1" - "@smithy/invalid-dependency" "^3.0.1" - "@smithy/middleware-content-length" "^3.0.1" - "@smithy/middleware-endpoint" "^3.0.2" - "@smithy/middleware-retry" "^3.0.4" - "@smithy/middleware-serde" "^3.0.1" - "@smithy/middleware-stack" "^3.0.1" - "@smithy/node-config-provider" "^3.1.1" - "@smithy/node-http-handler" "^3.0.1" - "@smithy/protocol-http" "^4.0.1" - "@smithy/smithy-client" "^3.1.2" - "@smithy/types" "^3.1.0" - "@smithy/url-parser" "^3.0.1" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-sdk/client-cloudfront@^3.574.0": + version "3.588.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudfront/-/client-cloudfront-3.588.0.tgz#fb379f14dca42cdb29c7346b205c464aa1922e4d" + integrity sha512-C9qik7uz1jfjXwhLzwSO2uy5Ze/IkuuMuqcFyjXNnRgpXv1TC0Buv2r1JyYYxnpxV4YvLWk/+kG5UCv1p2jjxw== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sso-oidc" "3.588.0" + "@aws-sdk/client-sts" "3.588.0" + "@aws-sdk/core" "3.588.0" + "@aws-sdk/credential-provider-node" "3.588.0" + "@aws-sdk/middleware-host-header" "3.577.0" + "@aws-sdk/middleware-logger" "3.577.0" + "@aws-sdk/middleware-recursion-detection" "3.577.0" + "@aws-sdk/middleware-user-agent" "3.587.0" + "@aws-sdk/region-config-resolver" "3.587.0" + "@aws-sdk/types" "3.577.0" + "@aws-sdk/util-endpoints" "3.587.0" + "@aws-sdk/util-user-agent-browser" "3.577.0" + "@aws-sdk/util-user-agent-node" "3.587.0" + "@aws-sdk/xml-builder" "3.575.0" + "@smithy/config-resolver" "^3.0.1" + "@smithy/core" "^2.1.1" + "@smithy/fetch-http-handler" "^3.0.1" + "@smithy/hash-node" "^3.0.0" + "@smithy/invalid-dependency" "^3.0.0" + "@smithy/middleware-content-length" "^3.0.0" + "@smithy/middleware-endpoint" "^3.0.1" + "@smithy/middleware-retry" "^3.0.3" + "@smithy/middleware-serde" "^3.0.0" + "@smithy/middleware-stack" "^3.0.0" + "@smithy/node-config-provider" "^3.1.0" + "@smithy/node-http-handler" "^3.0.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/smithy-client" "^3.1.1" + "@smithy/types" "^3.0.0" + "@smithy/url-parser" "^3.0.0" "@smithy/util-base64" "^3.0.0" "@smithy/util-body-length-browser" "^3.0.0" "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.4" - "@smithy/util-defaults-mode-node" "^3.0.4" - "@smithy/util-endpoints" "^2.0.2" - "@smithy/util-middleware" "^3.0.1" - "@smithy/util-retry" "^3.0.1" - "@smithy/util-stream" "^3.0.2" + "@smithy/util-defaults-mode-browser" "^3.0.3" + "@smithy/util-defaults-mode-node" "^3.0.3" + "@smithy/util-endpoints" "^2.0.1" + "@smithy/util-middleware" "^3.0.0" + "@smithy/util-retry" "^3.0.0" + "@smithy/util-stream" "^3.0.1" "@smithy/util-utf8" "^3.0.0" - "@smithy/util-waiter" "^3.0.1" + "@smithy/util-waiter" "^3.0.0" tslib "^2.6.2" "@aws-sdk/client-s3@^3.583.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.598.0.tgz#04f594cb7e36b3551898c656715f94785ca8acf0" - integrity sha512-UMxftsgF6j1vzm4Qd9vQJHs2he1NQCWWV8esZfmNFq23OpUC2BPMxkqi13ZQ9tnTAZUNs7yFT/x4Zsi/wpRZEw== - dependencies: - "@aws-crypto/sha1-browser" "5.2.0" - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.598.0" - "@aws-sdk/client-sts" "3.598.0" - "@aws-sdk/core" "3.598.0" - "@aws-sdk/credential-provider-node" "3.598.0" - "@aws-sdk/middleware-bucket-endpoint" "3.598.0" - "@aws-sdk/middleware-expect-continue" "3.598.0" - "@aws-sdk/middleware-flexible-checksums" "3.598.0" - "@aws-sdk/middleware-host-header" "3.598.0" - "@aws-sdk/middleware-location-constraint" "3.598.0" - "@aws-sdk/middleware-logger" "3.598.0" - "@aws-sdk/middleware-recursion-detection" "3.598.0" - "@aws-sdk/middleware-sdk-s3" "3.598.0" - "@aws-sdk/middleware-signing" "3.598.0" - "@aws-sdk/middleware-ssec" "3.598.0" - "@aws-sdk/middleware-user-agent" "3.598.0" - "@aws-sdk/region-config-resolver" "3.598.0" - "@aws-sdk/signature-v4-multi-region" "3.598.0" - "@aws-sdk/types" "3.598.0" - "@aws-sdk/util-endpoints" "3.598.0" - "@aws-sdk/util-user-agent-browser" "3.598.0" - "@aws-sdk/util-user-agent-node" "3.598.0" - "@aws-sdk/xml-builder" "3.598.0" - "@smithy/config-resolver" "^3.0.2" - "@smithy/core" "^2.2.1" - "@smithy/eventstream-serde-browser" "^3.0.2" - "@smithy/eventstream-serde-config-resolver" "^3.0.1" - "@smithy/eventstream-serde-node" "^3.0.2" - "@smithy/fetch-http-handler" "^3.0.2" - "@smithy/hash-blob-browser" "^3.1.0" - "@smithy/hash-node" "^3.0.1" - "@smithy/hash-stream-node" "^3.1.0" - "@smithy/invalid-dependency" "^3.0.1" - "@smithy/md5-js" "^3.0.1" - "@smithy/middleware-content-length" "^3.0.1" - "@smithy/middleware-endpoint" "^3.0.2" - "@smithy/middleware-retry" "^3.0.4" - "@smithy/middleware-serde" "^3.0.1" - "@smithy/middleware-stack" "^3.0.1" - "@smithy/node-config-provider" "^3.1.1" - "@smithy/node-http-handler" "^3.0.1" - "@smithy/protocol-http" "^4.0.1" - "@smithy/smithy-client" "^3.1.2" - "@smithy/types" "^3.1.0" - "@smithy/url-parser" "^3.0.1" + version "3.588.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.588.0.tgz#c3750e49176b57c714b5073eaed73029cff3506d" + integrity sha512-MyJs3sbgRtVOdT2xxdg/CmLk+t+dMg26nfEZucBFeJKFAHfTA74sjef9y+GQ2xFUNq+kqG1CnP8JGMiGx2ht0w== + dependencies: + "@aws-crypto/sha1-browser" "3.0.0" + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sso-oidc" "3.588.0" + "@aws-sdk/client-sts" "3.588.0" + "@aws-sdk/core" "3.588.0" + "@aws-sdk/credential-provider-node" "3.588.0" + "@aws-sdk/middleware-bucket-endpoint" "3.587.0" + "@aws-sdk/middleware-expect-continue" "3.577.0" + "@aws-sdk/middleware-flexible-checksums" "3.587.0" + "@aws-sdk/middleware-host-header" "3.577.0" + "@aws-sdk/middleware-location-constraint" "3.577.0" + "@aws-sdk/middleware-logger" "3.577.0" + "@aws-sdk/middleware-recursion-detection" "3.577.0" + "@aws-sdk/middleware-sdk-s3" "3.587.0" + "@aws-sdk/middleware-signing" "3.587.0" + "@aws-sdk/middleware-ssec" "3.577.0" + "@aws-sdk/middleware-user-agent" "3.587.0" + "@aws-sdk/region-config-resolver" "3.587.0" + "@aws-sdk/signature-v4-multi-region" "3.587.0" + "@aws-sdk/types" "3.577.0" + "@aws-sdk/util-endpoints" "3.587.0" + "@aws-sdk/util-user-agent-browser" "3.577.0" + "@aws-sdk/util-user-agent-node" "3.587.0" + "@aws-sdk/xml-builder" "3.575.0" + "@smithy/config-resolver" "^3.0.1" + "@smithy/core" "^2.1.1" + "@smithy/eventstream-serde-browser" "^3.0.0" + "@smithy/eventstream-serde-config-resolver" "^3.0.0" + "@smithy/eventstream-serde-node" "^3.0.0" + "@smithy/fetch-http-handler" "^3.0.1" + "@smithy/hash-blob-browser" "^3.0.0" + "@smithy/hash-node" "^3.0.0" + "@smithy/hash-stream-node" "^3.0.0" + "@smithy/invalid-dependency" "^3.0.0" + "@smithy/md5-js" "^3.0.0" + "@smithy/middleware-content-length" "^3.0.0" + "@smithy/middleware-endpoint" "^3.0.1" + "@smithy/middleware-retry" "^3.0.3" + "@smithy/middleware-serde" "^3.0.0" + "@smithy/middleware-stack" "^3.0.0" + "@smithy/node-config-provider" "^3.1.0" + "@smithy/node-http-handler" "^3.0.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/smithy-client" "^3.1.1" + "@smithy/types" "^3.0.0" + "@smithy/url-parser" "^3.0.0" "@smithy/util-base64" "^3.0.0" "@smithy/util-body-length-browser" "^3.0.0" "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.4" - "@smithy/util-defaults-mode-node" "^3.0.4" - "@smithy/util-endpoints" "^2.0.2" - "@smithy/util-retry" "^3.0.1" - "@smithy/util-stream" "^3.0.2" + "@smithy/util-defaults-mode-browser" "^3.0.3" + "@smithy/util-defaults-mode-node" "^3.0.3" + "@smithy/util-endpoints" "^2.0.1" + "@smithy/util-retry" "^3.0.0" + "@smithy/util-stream" "^3.0.1" "@smithy/util-utf8" "^3.0.0" - "@smithy/util-waiter" "^3.0.1" + "@smithy/util-waiter" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/client-sso-oidc@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.598.0.tgz#17ad1acd1c616ccbd36cda2db1ee80d63ad0aff5" - integrity sha512-jfdH1pAO9Tt8Nkta/JJLoUnwl7jaRdxToQTJfUtE+o3+0JP5sA4LfC2rBkJSWcU5BdAA+kyOs5Lv776DlN04Vg== - dependencies: - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sts" "3.598.0" - "@aws-sdk/core" "3.598.0" - "@aws-sdk/credential-provider-node" "3.598.0" - "@aws-sdk/middleware-host-header" "3.598.0" - "@aws-sdk/middleware-logger" "3.598.0" - "@aws-sdk/middleware-recursion-detection" "3.598.0" - "@aws-sdk/middleware-user-agent" "3.598.0" - "@aws-sdk/region-config-resolver" "3.598.0" - "@aws-sdk/types" "3.598.0" - "@aws-sdk/util-endpoints" "3.598.0" - "@aws-sdk/util-user-agent-browser" "3.598.0" - "@aws-sdk/util-user-agent-node" "3.598.0" - "@smithy/config-resolver" "^3.0.2" - "@smithy/core" "^2.2.1" - "@smithy/fetch-http-handler" "^3.0.2" - "@smithy/hash-node" "^3.0.1" - "@smithy/invalid-dependency" "^3.0.1" - "@smithy/middleware-content-length" "^3.0.1" - "@smithy/middleware-endpoint" "^3.0.2" - "@smithy/middleware-retry" "^3.0.4" - "@smithy/middleware-serde" "^3.0.1" - "@smithy/middleware-stack" "^3.0.1" - "@smithy/node-config-provider" "^3.1.1" - "@smithy/node-http-handler" "^3.0.1" - "@smithy/protocol-http" "^4.0.1" - "@smithy/smithy-client" "^3.1.2" - "@smithy/types" "^3.1.0" - "@smithy/url-parser" "^3.0.1" +"@aws-sdk/client-sso-oidc@3.588.0": + version "3.588.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.588.0.tgz#85bfee176042bd68338fcf47099e0bb702804413" + integrity sha512-CTbgtLSg0y2jIOtESuQKkRIqRe/FQmKuyzFWc+Qy6yGcbk1Pyusfz2BC+GGwpYU+1BlBBSNnLQHpx3XY87+aSA== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.588.0" + "@aws-sdk/core" "3.588.0" + "@aws-sdk/credential-provider-node" "3.588.0" + "@aws-sdk/middleware-host-header" "3.577.0" + "@aws-sdk/middleware-logger" "3.577.0" + "@aws-sdk/middleware-recursion-detection" "3.577.0" + "@aws-sdk/middleware-user-agent" "3.587.0" + "@aws-sdk/region-config-resolver" "3.587.0" + "@aws-sdk/types" "3.577.0" + "@aws-sdk/util-endpoints" "3.587.0" + "@aws-sdk/util-user-agent-browser" "3.577.0" + "@aws-sdk/util-user-agent-node" "3.587.0" + "@smithy/config-resolver" "^3.0.1" + "@smithy/core" "^2.1.1" + "@smithy/fetch-http-handler" "^3.0.1" + "@smithy/hash-node" "^3.0.0" + "@smithy/invalid-dependency" "^3.0.0" + "@smithy/middleware-content-length" "^3.0.0" + "@smithy/middleware-endpoint" "^3.0.1" + "@smithy/middleware-retry" "^3.0.3" + "@smithy/middleware-serde" "^3.0.0" + "@smithy/middleware-stack" "^3.0.0" + "@smithy/node-config-provider" "^3.1.0" + "@smithy/node-http-handler" "^3.0.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/smithy-client" "^3.1.1" + "@smithy/types" "^3.0.0" + "@smithy/url-parser" "^3.0.0" "@smithy/util-base64" "^3.0.0" "@smithy/util-body-length-browser" "^3.0.0" "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.4" - "@smithy/util-defaults-mode-node" "^3.0.4" - "@smithy/util-endpoints" "^2.0.2" - "@smithy/util-middleware" "^3.0.1" - "@smithy/util-retry" "^3.0.1" + "@smithy/util-defaults-mode-browser" "^3.0.3" + "@smithy/util-defaults-mode-node" "^3.0.3" + "@smithy/util-endpoints" "^2.0.1" + "@smithy/util-middleware" "^3.0.0" + "@smithy/util-retry" "^3.0.0" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/client-sso@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.598.0.tgz#aef58e198e504d3b3d1ba345355650a67d21facb" - integrity sha512-nOI5lqPYa+YZlrrzwAJywJSw3MKVjvu6Ge2fCqQUNYMfxFB0NAaDFnl0EPjXi+sEbtCuz/uWE77poHbqiZ+7Iw== - dependencies: - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.598.0" - "@aws-sdk/middleware-host-header" "3.598.0" - "@aws-sdk/middleware-logger" "3.598.0" - "@aws-sdk/middleware-recursion-detection" "3.598.0" - "@aws-sdk/middleware-user-agent" "3.598.0" - "@aws-sdk/region-config-resolver" "3.598.0" - "@aws-sdk/types" "3.598.0" - "@aws-sdk/util-endpoints" "3.598.0" - "@aws-sdk/util-user-agent-browser" "3.598.0" - "@aws-sdk/util-user-agent-node" "3.598.0" - "@smithy/config-resolver" "^3.0.2" - "@smithy/core" "^2.2.1" - "@smithy/fetch-http-handler" "^3.0.2" - "@smithy/hash-node" "^3.0.1" - "@smithy/invalid-dependency" "^3.0.1" - "@smithy/middleware-content-length" "^3.0.1" - "@smithy/middleware-endpoint" "^3.0.2" - "@smithy/middleware-retry" "^3.0.4" - "@smithy/middleware-serde" "^3.0.1" - "@smithy/middleware-stack" "^3.0.1" - "@smithy/node-config-provider" "^3.1.1" - "@smithy/node-http-handler" "^3.0.1" - "@smithy/protocol-http" "^4.0.1" - "@smithy/smithy-client" "^3.1.2" - "@smithy/types" "^3.1.0" - "@smithy/url-parser" "^3.0.1" +"@aws-sdk/client-sso@3.588.0": + version "3.588.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.588.0.tgz#ca03c76b98ede4a862982da1121e6e5ff09a8d98" + integrity sha512-zKS+xUkBLfwjbh77ZjtRUoG/vR/fyDteSE6rOAzwlmHQL8p+QUX+zNUNvCInvPi62zGBhEwXOvzs8zvnT4NzfQ== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.588.0" + "@aws-sdk/middleware-host-header" "3.577.0" + "@aws-sdk/middleware-logger" "3.577.0" + "@aws-sdk/middleware-recursion-detection" "3.577.0" + "@aws-sdk/middleware-user-agent" "3.587.0" + "@aws-sdk/region-config-resolver" "3.587.0" + "@aws-sdk/types" "3.577.0" + "@aws-sdk/util-endpoints" "3.587.0" + "@aws-sdk/util-user-agent-browser" "3.577.0" + "@aws-sdk/util-user-agent-node" "3.587.0" + "@smithy/config-resolver" "^3.0.1" + "@smithy/core" "^2.1.1" + "@smithy/fetch-http-handler" "^3.0.1" + "@smithy/hash-node" "^3.0.0" + "@smithy/invalid-dependency" "^3.0.0" + "@smithy/middleware-content-length" "^3.0.0" + "@smithy/middleware-endpoint" "^3.0.1" + "@smithy/middleware-retry" "^3.0.3" + "@smithy/middleware-serde" "^3.0.0" + "@smithy/middleware-stack" "^3.0.0" + "@smithy/node-config-provider" "^3.1.0" + "@smithy/node-http-handler" "^3.0.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/smithy-client" "^3.1.1" + "@smithy/types" "^3.0.0" + "@smithy/url-parser" "^3.0.0" "@smithy/util-base64" "^3.0.0" "@smithy/util-body-length-browser" "^3.0.0" "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.4" - "@smithy/util-defaults-mode-node" "^3.0.4" - "@smithy/util-endpoints" "^2.0.2" - "@smithy/util-middleware" "^3.0.1" - "@smithy/util-retry" "^3.0.1" + "@smithy/util-defaults-mode-browser" "^3.0.3" + "@smithy/util-defaults-mode-node" "^3.0.3" + "@smithy/util-endpoints" "^2.0.1" + "@smithy/util-middleware" "^3.0.0" + "@smithy/util-retry" "^3.0.0" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/client-sts@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.598.0.tgz#5b3c082ac14b3f0b7a4c964eb4ba2b320988e1e4" - integrity sha512-bXhz/cHL0iB9UH9IFtMaJJf4F8mV+HzncETCRFzZ9SyUMt5rP9j8A7VZknqGYSx/6mI8SsB1XJQkWSbhn6FiSQ== - dependencies: - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.598.0" - "@aws-sdk/core" "3.598.0" - "@aws-sdk/credential-provider-node" "3.598.0" - "@aws-sdk/middleware-host-header" "3.598.0" - "@aws-sdk/middleware-logger" "3.598.0" - "@aws-sdk/middleware-recursion-detection" "3.598.0" - "@aws-sdk/middleware-user-agent" "3.598.0" - "@aws-sdk/region-config-resolver" "3.598.0" - "@aws-sdk/types" "3.598.0" - "@aws-sdk/util-endpoints" "3.598.0" - "@aws-sdk/util-user-agent-browser" "3.598.0" - "@aws-sdk/util-user-agent-node" "3.598.0" - "@smithy/config-resolver" "^3.0.2" - "@smithy/core" "^2.2.1" - "@smithy/fetch-http-handler" "^3.0.2" - "@smithy/hash-node" "^3.0.1" - "@smithy/invalid-dependency" "^3.0.1" - "@smithy/middleware-content-length" "^3.0.1" - "@smithy/middleware-endpoint" "^3.0.2" - "@smithy/middleware-retry" "^3.0.4" - "@smithy/middleware-serde" "^3.0.1" - "@smithy/middleware-stack" "^3.0.1" - "@smithy/node-config-provider" "^3.1.1" - "@smithy/node-http-handler" "^3.0.1" - "@smithy/protocol-http" "^4.0.1" - "@smithy/smithy-client" "^3.1.2" - "@smithy/types" "^3.1.0" - "@smithy/url-parser" "^3.0.1" +"@aws-sdk/client-sts@3.588.0": + version "3.588.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.588.0.tgz#04b722c7d6119c24f6c5b4410d47aba46dfbe9fd" + integrity sha512-UIMjcUikgG9NIENQxSyJNTHMD8TaTfK6Jjf1iuZSyQRyTrcGy0/xcDxrmwZQFAPkOPUf6w9KqydLkMLcYOBdPQ== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sso-oidc" "3.588.0" + "@aws-sdk/core" "3.588.0" + "@aws-sdk/credential-provider-node" "3.588.0" + "@aws-sdk/middleware-host-header" "3.577.0" + "@aws-sdk/middleware-logger" "3.577.0" + "@aws-sdk/middleware-recursion-detection" "3.577.0" + "@aws-sdk/middleware-user-agent" "3.587.0" + "@aws-sdk/region-config-resolver" "3.587.0" + "@aws-sdk/types" "3.577.0" + "@aws-sdk/util-endpoints" "3.587.0" + "@aws-sdk/util-user-agent-browser" "3.577.0" + "@aws-sdk/util-user-agent-node" "3.587.0" + "@smithy/config-resolver" "^3.0.1" + "@smithy/core" "^2.1.1" + "@smithy/fetch-http-handler" "^3.0.1" + "@smithy/hash-node" "^3.0.0" + "@smithy/invalid-dependency" "^3.0.0" + "@smithy/middleware-content-length" "^3.0.0" + "@smithy/middleware-endpoint" "^3.0.1" + "@smithy/middleware-retry" "^3.0.3" + "@smithy/middleware-serde" "^3.0.0" + "@smithy/middleware-stack" "^3.0.0" + "@smithy/node-config-provider" "^3.1.0" + "@smithy/node-http-handler" "^3.0.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/smithy-client" "^3.1.1" + "@smithy/types" "^3.0.0" + "@smithy/url-parser" "^3.0.0" "@smithy/util-base64" "^3.0.0" "@smithy/util-body-length-browser" "^3.0.0" "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.4" - "@smithy/util-defaults-mode-node" "^3.0.4" - "@smithy/util-endpoints" "^2.0.2" - "@smithy/util-middleware" "^3.0.1" - "@smithy/util-retry" "^3.0.1" + "@smithy/util-defaults-mode-browser" "^3.0.3" + "@smithy/util-defaults-mode-node" "^3.0.3" + "@smithy/util-endpoints" "^2.0.1" + "@smithy/util-middleware" "^3.0.0" + "@smithy/util-retry" "^3.0.0" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/core@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.598.0.tgz#82a069d703be0cafe3ddeacb1de51981ee4faa25" - integrity sha512-HaSjt7puO5Cc7cOlrXFCW0rtA0BM9lvzjl56x0A20Pt+0wxXGeTOZZOkXQIepbrFkV2e/HYukuT9e99vXDm59g== +"@aws-sdk/core@3.588.0": + version "3.588.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.588.0.tgz#44c6659372bdaa61a7c8872ff5af39e0fa71e812" + integrity sha512-O1c2+9ce46Z+iiid+W3iC1IvPbfIo5ev9CBi54GdNB9SaI8/3+f8MJcux0D6c9toCF0ArMersN/gp8ek57e9uQ== dependencies: - "@smithy/core" "^2.2.1" - "@smithy/protocol-http" "^4.0.1" - "@smithy/signature-v4" "^3.1.0" - "@smithy/smithy-client" "^3.1.2" - "@smithy/types" "^3.1.0" + "@smithy/core" "^2.1.1" + "@smithy/protocol-http" "^4.0.0" + "@smithy/signature-v4" "^3.0.0" + "@smithy/smithy-client" "^3.1.1" + "@smithy/types" "^3.0.0" fast-xml-parser "4.2.5" tslib "^2.6.2" -"@aws-sdk/credential-provider-env@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.598.0.tgz#ea1f30cfc9948017dd0608518868d3f50074164f" - integrity sha512-vi1khgn7yXzLCcgSIzQrrtd2ilUM0dWodxj3PQ6BLfP0O+q1imO3hG1nq7DVyJtq7rFHs6+9N8G4mYvTkxby2w== +"@aws-sdk/credential-provider-env@3.587.0": + version "3.587.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.587.0.tgz#40435be331773e4b1b665a1f4963518d4647505c" + integrity sha512-Hyg/5KFECIk2k5o8wnVEiniV86yVkhn5kzITUydmNGCkXdBFHMHRx6hleQ1bqwJHbBskyu8nbYamzcwymmGwmw== dependencies: - "@aws-sdk/types" "3.598.0" - "@smithy/property-provider" "^3.1.1" - "@smithy/types" "^3.1.0" + "@aws-sdk/types" "3.577.0" + "@smithy/property-provider" "^3.1.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-http@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.598.0.tgz#58144440e698aef63b5cb459780325817c0acf10" - integrity sha512-N7cIafi4HVlQvEgvZSo1G4T9qb/JMLGMdBsDCT5XkeJrF0aptQWzTFH0jIdZcLrMYvzPcuEyO3yCBe6cy/ba0g== - dependencies: - "@aws-sdk/types" "3.598.0" - "@smithy/fetch-http-handler" "^3.0.2" - "@smithy/node-http-handler" "^3.0.1" - "@smithy/property-provider" "^3.1.1" - "@smithy/protocol-http" "^4.0.1" - "@smithy/smithy-client" "^3.1.2" - "@smithy/types" "^3.1.0" - "@smithy/util-stream" "^3.0.2" +"@aws-sdk/credential-provider-http@3.587.0": + version "3.587.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.587.0.tgz#dc23c6d6708bc67baea54bfab0f256c5fe4df023" + integrity sha512-Su1SRWVRCuR1e32oxX3C1V4c5hpPN20WYcRfdcr2wXwHqSvys5DrnmuCC+JoEnS/zt3adUJhPliTqpfKgSdMrA== + dependencies: + "@aws-sdk/types" "3.577.0" + "@smithy/fetch-http-handler" "^3.0.1" + "@smithy/node-http-handler" "^3.0.0" + "@smithy/property-provider" "^3.1.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/smithy-client" "^3.1.1" + "@smithy/types" "^3.0.0" + "@smithy/util-stream" "^3.0.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-ini@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.598.0.tgz#fd0ba8ab5c3701e05567d1c6f7752cfd9f4ba111" - integrity sha512-/ppcIVUbRwDIwJDoYfp90X3+AuJo2mvE52Y1t2VSrvUovYn6N4v95/vXj6LS8CNDhz2jvEJYmu+0cTMHdhI6eA== - dependencies: - "@aws-sdk/credential-provider-env" "3.598.0" - "@aws-sdk/credential-provider-http" "3.598.0" - "@aws-sdk/credential-provider-process" "3.598.0" - "@aws-sdk/credential-provider-sso" "3.598.0" - "@aws-sdk/credential-provider-web-identity" "3.598.0" - "@aws-sdk/types" "3.598.0" - "@smithy/credential-provider-imds" "^3.1.1" - "@smithy/property-provider" "^3.1.1" - "@smithy/shared-ini-file-loader" "^3.1.1" - "@smithy/types" "^3.1.0" +"@aws-sdk/credential-provider-ini@3.588.0": + version "3.588.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.588.0.tgz#9c809ea172d9b2124ac9cdcdeb517180b6813b73" + integrity sha512-tP/YmEKvYpmp7pCR2OuhoOhAOtm6BbZ1hbeG9Sw9RFZi55dbGPHqMmfvvzHFAGsJ20z4/oDS+UnHaWVhRnV82w== + dependencies: + "@aws-sdk/credential-provider-env" "3.587.0" + "@aws-sdk/credential-provider-http" "3.587.0" + "@aws-sdk/credential-provider-process" "3.587.0" + "@aws-sdk/credential-provider-sso" "3.588.0" + "@aws-sdk/credential-provider-web-identity" "3.587.0" + "@aws-sdk/types" "3.577.0" + "@smithy/credential-provider-imds" "^3.1.0" + "@smithy/property-provider" "^3.1.0" + "@smithy/shared-ini-file-loader" "^3.1.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-node@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.598.0.tgz#b24173cf9ae33718c6273c9bac996791c73d9359" - integrity sha512-sXTlqL5I/awlF9Dg2MQ17SfrEaABVnsj2mf4jF5qQrIRhfbvQOIYdEqdy8Rn1AWlJMz/N450SGzc0XJ5owxxqw== - dependencies: - "@aws-sdk/credential-provider-env" "3.598.0" - "@aws-sdk/credential-provider-http" "3.598.0" - "@aws-sdk/credential-provider-ini" "3.598.0" - "@aws-sdk/credential-provider-process" "3.598.0" - "@aws-sdk/credential-provider-sso" "3.598.0" - "@aws-sdk/credential-provider-web-identity" "3.598.0" - "@aws-sdk/types" "3.598.0" - "@smithy/credential-provider-imds" "^3.1.1" - "@smithy/property-provider" "^3.1.1" - "@smithy/shared-ini-file-loader" "^3.1.1" - "@smithy/types" "^3.1.0" +"@aws-sdk/credential-provider-node@3.588.0": + version "3.588.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.588.0.tgz#f96496f79f450fbd4e519859a5465e25e7335454" + integrity sha512-8s4Ruo6q1YIrj8AZKBiUQG42051ytochDMSqdVOEZGxskfvmt2XALyi5SsWd0Ve3zR95zi+EtRBNPn2EU8sQpA== + dependencies: + "@aws-sdk/credential-provider-env" "3.587.0" + "@aws-sdk/credential-provider-http" "3.587.0" + "@aws-sdk/credential-provider-ini" "3.588.0" + "@aws-sdk/credential-provider-process" "3.587.0" + "@aws-sdk/credential-provider-sso" "3.588.0" + "@aws-sdk/credential-provider-web-identity" "3.587.0" + "@aws-sdk/types" "3.577.0" + "@smithy/credential-provider-imds" "^3.1.0" + "@smithy/property-provider" "^3.1.0" + "@smithy/shared-ini-file-loader" "^3.1.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-process@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.598.0.tgz#f48ff6f964cd6726499b207f45bfecda4be922ce" - integrity sha512-rM707XbLW8huMk722AgjVyxu2tMZee++fNA8TJVNgs1Ma02Wx6bBrfIvlyK0rCcIRb0WdQYP6fe3Xhiu4e8IBA== +"@aws-sdk/credential-provider-process@3.587.0": + version "3.587.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.587.0.tgz#1e5cc562a68438a77f464adc0493b02e04dd3ea1" + integrity sha512-V4xT3iCqkF8uL6QC4gqBJg/2asd/damswP1h9HCfqTllmPWzImS+8WD3VjgTLw5b0KbTy+ZdUhKc0wDnyzkzxg== dependencies: - "@aws-sdk/types" "3.598.0" - "@smithy/property-provider" "^3.1.1" - "@smithy/shared-ini-file-loader" "^3.1.1" - "@smithy/types" "^3.1.0" + "@aws-sdk/types" "3.577.0" + "@smithy/property-provider" "^3.1.0" + "@smithy/shared-ini-file-loader" "^3.1.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-sso@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.598.0.tgz#52781e2b60b1f61752829c44a5e0b9fedd0694d6" - integrity sha512-5InwUmrAuqQdOOgxTccRayMMkSmekdLk6s+az9tmikq0QFAHUCtofI+/fllMXSR9iL6JbGYi1940+EUmS4pHJA== - dependencies: - "@aws-sdk/client-sso" "3.598.0" - "@aws-sdk/token-providers" "3.598.0" - "@aws-sdk/types" "3.598.0" - "@smithy/property-provider" "^3.1.1" - "@smithy/shared-ini-file-loader" "^3.1.1" - "@smithy/types" "^3.1.0" +"@aws-sdk/credential-provider-sso@3.588.0": + version "3.588.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.588.0.tgz#9f11886a215ec703f927e19ce7406c98d861b85c" + integrity sha512-1GstMCyFzenVeppK7hWazMvo3P1DXKP70XkXAjH8H2ELBVg5X8Zt043cnQ7CMt4XjCV+ettHAtc9kz/gJTkDNQ== + dependencies: + "@aws-sdk/client-sso" "3.588.0" + "@aws-sdk/token-providers" "3.587.0" + "@aws-sdk/types" "3.577.0" + "@smithy/property-provider" "^3.1.0" + "@smithy/shared-ini-file-loader" "^3.1.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-web-identity@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.598.0.tgz#d737e9c2b7c4460b8e31a55b4979bf4d88913900" - integrity sha512-GV5GdiMbz5Tz9JO4NJtRoFXjW0GPEujA0j+5J/B723rTN+REHthJu48HdBKouHGhdzkDWkkh1bu52V02Wprw8w== +"@aws-sdk/credential-provider-web-identity@3.587.0": + version "3.587.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.587.0.tgz#daa41e3cc9309594327056e431b8065145c5297a" + integrity sha512-XqIx/I2PG7kyuw3WjAP9wKlxy8IvFJwB8asOFT1xPFoVfZYKIogjG9oLP5YiRtfvDkWIztHmg5MlVv3HdJDGRw== dependencies: - "@aws-sdk/types" "3.598.0" - "@smithy/property-provider" "^3.1.1" - "@smithy/types" "^3.1.0" + "@aws-sdk/types" "3.577.0" + "@smithy/property-provider" "^3.1.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-bucket-endpoint@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.598.0.tgz#033b08921f9f284483a7337ed165743ee0dc598d" - integrity sha512-PM7BcFfGUSkmkT6+LU9TyJiB4S8yI7dfuKQDwK5ZR3P7MKaK4Uj4yyDiv0oe5xvkF6+O2+rShj+eh8YuWkOZ/Q== +"@aws-sdk/middleware-bucket-endpoint@3.587.0": + version "3.587.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.587.0.tgz#def5edbadf53bdfe765aa9acf12f119eb208b22f" + integrity sha512-HkFXLPl8pr6BH/Q0JpOESqEKL0ZK3sk7aSZ1S6GE4RXET7H5R94THULXqQFZzD48gZcyFooO/yNKZTqrZFaWKg== dependencies: - "@aws-sdk/types" "3.598.0" + "@aws-sdk/types" "3.577.0" "@aws-sdk/util-arn-parser" "3.568.0" - "@smithy/node-config-provider" "^3.1.1" - "@smithy/protocol-http" "^4.0.1" - "@smithy/types" "^3.1.0" + "@smithy/node-config-provider" "^3.1.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/types" "^3.0.0" "@smithy/util-config-provider" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-expect-continue@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.598.0.tgz#5b08b8cae70d1e7cc082d3627b31856f6ba20d17" - integrity sha512-ZuHW18kaeHR8TQyhEOYMr8VwiIh0bMvF7J1OTqXHxDteQIavJWA3CbfZ9sgS4XGtrBZDyHJhjZKeCfLhN2rq3w== +"@aws-sdk/middleware-expect-continue@3.577.0": + version "3.577.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.577.0.tgz#47add47f17873a6044cb140f17033cb6e1d02744" + integrity sha512-6dPp8Tv4F0of4un5IAyG6q++GrRrNQQ4P2NAMB1W0VO4JoEu1C8GievbbDLi88TFIFmtKpnHB0ODCzwnoe8JsA== dependencies: - "@aws-sdk/types" "3.598.0" - "@smithy/protocol-http" "^4.0.1" - "@smithy/types" "^3.1.0" + "@aws-sdk/types" "3.577.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-flexible-checksums@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.598.0.tgz#8e40734d5fb1b116816f885885f16db9b5e39032" - integrity sha512-xukAzds0GQXvMEY9G6qt+CzwVzTx8NyKKh04O2Q+nOch6QQ8Rs+2kTRy3Z4wQmXq2pK9hlOWb5nXA7HWpmz6Ng== +"@aws-sdk/middleware-flexible-checksums@3.587.0": + version "3.587.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.587.0.tgz#74afe7bd3088adf05b2ed843ad41386e793e0397" + integrity sha512-URMwp/budDvKhIvZ4a6zIBfFTun/iDlPWXqsGKYjEtHt8jz27OSjCZtDtIeqW4WTBdKL8KZgQcl+DdaE5M1qiQ== dependencies: - "@aws-crypto/crc32" "5.2.0" - "@aws-crypto/crc32c" "5.2.0" - "@aws-sdk/types" "3.598.0" + "@aws-crypto/crc32" "3.0.0" + "@aws-crypto/crc32c" "3.0.0" + "@aws-sdk/types" "3.577.0" "@smithy/is-array-buffer" "^3.0.0" - "@smithy/protocol-http" "^4.0.1" - "@smithy/types" "^3.1.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/types" "^3.0.0" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-host-header@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.598.0.tgz#0a7c4d5a95657bea2d7c4e29b9a8b379952d09b1" - integrity sha512-WiaG059YBQwQraNejLIi0gMNkX7dfPZ8hDIhvMr5aVPRbaHH8AYF3iNSsXYCHvA2Cfa1O9haYXsuMF9flXnCmA== +"@aws-sdk/middleware-host-header@3.577.0": + version "3.577.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.577.0.tgz#a3fc626d409ec850296740478c64ef5806d8b878" + integrity sha512-9ca5MJz455CODIVXs0/sWmJm7t3QO4EUa1zf8pE8grLpzf0J94bz/skDWm37Pli13T3WaAQBHCTiH2gUVfCsWg== dependencies: - "@aws-sdk/types" "3.598.0" - "@smithy/protocol-http" "^4.0.1" - "@smithy/types" "^3.1.0" + "@aws-sdk/types" "3.577.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-location-constraint@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.598.0.tgz#45564d5119468e3ac97949431c249e8b6e00ec09" - integrity sha512-8oybQxN3F1ISOMULk7JKJz5DuAm5hCUcxMW9noWShbxTJuStNvuHf/WLUzXrf8oSITyYzIHPtf8VPlKR7I3orQ== +"@aws-sdk/middleware-location-constraint@3.577.0": + version "3.577.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.577.0.tgz#9372441a4ac5747b3176ac6378d92866a51de815" + integrity sha512-DKPTD2D2s+t2QUo/IXYtVa/6Un8GZ+phSTBkyBNx2kfZz4Kwavhl/JJzSqTV3GfCXkVdFu7CrjoX7BZ6qWeTUA== dependencies: - "@aws-sdk/types" "3.598.0" - "@smithy/types" "^3.1.0" + "@aws-sdk/types" "3.577.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-logger@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.598.0.tgz#0c0692d2f4f9007c915734ab319db377ca9a3b1b" - integrity sha512-bxBjf/VYiu3zfu8SYM2S9dQQc3tz5uBAOcPz/Bt8DyyK3GgOpjhschH/2XuUErsoUO1gDJqZSdGOmuHGZQn00Q== +"@aws-sdk/middleware-logger@3.577.0": + version "3.577.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.577.0.tgz#6da3b13ae284fb3930961f0fc8e20b1f6cf8be30" + integrity sha512-aPFGpGjTZcJYk+24bg7jT4XdIp42mFXSuPt49lw5KygefLyJM/sB0bKKqPYYivW0rcuZ9brQ58eZUNthrzYAvg== dependencies: - "@aws-sdk/types" "3.598.0" - "@smithy/types" "^3.1.0" + "@aws-sdk/types" "3.577.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-recursion-detection@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.598.0.tgz#94015d41f8174bd41298fd13f8fb0a8c4576d7c8" - integrity sha512-vjT9BeFY9FeN0f8hm2l6F53tI0N5bUq6RcDkQXKNabXBnQxKptJRad6oP2X5y3FoVfBLOuDkQgiC2940GIPxtQ== +"@aws-sdk/middleware-recursion-detection@3.577.0": + version "3.577.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.577.0.tgz#fff76abc6d4521636f9e654ce5bf2c4c79249417" + integrity sha512-pn3ZVEd2iobKJlR3H+bDilHjgRnNrQ6HMmK9ZzZw89Ckn3Dcbv48xOv4RJvu0aU8SDLl/SNCxppKjeLDTPGBNA== dependencies: - "@aws-sdk/types" "3.598.0" - "@smithy/protocol-http" "^4.0.1" - "@smithy/types" "^3.1.0" + "@aws-sdk/types" "3.577.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-sdk-s3@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.598.0.tgz#308604f8a38959ad65ec5674c643c7032d678f43" - integrity sha512-5AGtLAh9wyK6ANPYfaKTqJY1IFJyePIxsEbxa7zS6REheAqyVmgJFaGu3oQ5XlxfGr5Uq59tFTRkyx26G1HkHA== +"@aws-sdk/middleware-sdk-s3@3.587.0": + version "3.587.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.587.0.tgz#720620ccdc2eb6ecab0f3a6adbd28fc27fdc70ce" + integrity sha512-vtXTGEiw1E9Fax4LmcU2Z208gbrC8ShrdsSLmGcRPpu5NPOGBFBSDG5sy5EDNClrFxIl/Le8coQnD0EDBtx+uQ== dependencies: - "@aws-sdk/types" "3.598.0" + "@aws-sdk/types" "3.577.0" "@aws-sdk/util-arn-parser" "3.568.0" - "@smithy/node-config-provider" "^3.1.1" - "@smithy/protocol-http" "^4.0.1" - "@smithy/signature-v4" "^3.1.0" - "@smithy/smithy-client" "^3.1.2" - "@smithy/types" "^3.1.0" + "@smithy/node-config-provider" "^3.1.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/signature-v4" "^3.0.0" + "@smithy/smithy-client" "^3.1.1" + "@smithy/types" "^3.0.0" "@smithy/util-config-provider" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-signing@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.598.0.tgz#b90eef6a9fe3f76777c9cd4890dcae8e1febd249" - integrity sha512-XKb05DYx/aBPqz6iCapsCbIl8aD8EihTuPCs51p75QsVfbQoVr4TlFfIl5AooMSITzojdAQqxt021YtvxjtxIQ== - dependencies: - "@aws-sdk/types" "3.598.0" - "@smithy/property-provider" "^3.1.1" - "@smithy/protocol-http" "^4.0.1" - "@smithy/signature-v4" "^3.1.0" - "@smithy/types" "^3.1.0" - "@smithy/util-middleware" "^3.0.1" +"@aws-sdk/middleware-signing@3.587.0": + version "3.587.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.587.0.tgz#593c418c09c51c0bc55f23a7a6b0fda8502a8103" + integrity sha512-tiZaTDj4RvhXGRAlncFn7CSEfL3iNPO67WSaxAq+Ls5j1VgczPhu5262cWONNoMgth3nXR1hhLC4ITSl/a6AzA== + dependencies: + "@aws-sdk/types" "3.577.0" + "@smithy/property-provider" "^3.1.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/signature-v4" "^3.0.0" + "@smithy/types" "^3.0.0" + "@smithy/util-middleware" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-ssec@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.598.0.tgz#d6a3c64ce77bd7379653b46b58ded32a7b0fe6f4" - integrity sha512-f0p2xP8IC1uJ5e/tND1l81QxRtRFywEdnbtKCE0H6RSn4UIt2W3Dohe1qQDbnh27okF0PkNW6BJGdSAz3p7qbA== +"@aws-sdk/middleware-ssec@3.577.0": + version "3.577.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.577.0.tgz#9fcd74e8bf2c277b4349c537cbeceba279166f32" + integrity sha512-i2BPJR+rp8xmRVIGc0h1kDRFcM2J9GnClqqpc+NLSjmYadlcg4mPklisz9HzwFVcRPJ5XcGf3U4BYs5G8+iTyg== dependencies: - "@aws-sdk/types" "3.598.0" - "@smithy/types" "^3.1.0" + "@aws-sdk/types" "3.577.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-user-agent@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.598.0.tgz#6fa26849d256434ca4884c42c1c4755aa2f1556e" - integrity sha512-4tjESlHG5B5MdjUaLK7tQs/miUtHbb6deauQx8ryqSBYOhfHVgb1ZnzvQR0bTrhpqUg0WlybSkDaZAICf9xctg== +"@aws-sdk/middleware-user-agent@3.587.0": + version "3.587.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.587.0.tgz#2a68900cfb29afbae2952d901de4fcb91850bd3d" + integrity sha512-SyDomN+IOrygLucziG7/nOHkjUXES5oH5T7p8AboO8oakMQJdnudNXiYWTicQWO52R51U6CR27rcMPTGeMedYA== dependencies: - "@aws-sdk/types" "3.598.0" - "@aws-sdk/util-endpoints" "3.598.0" - "@smithy/protocol-http" "^4.0.1" - "@smithy/types" "^3.1.0" + "@aws-sdk/types" "3.577.0" + "@aws-sdk/util-endpoints" "3.587.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/region-config-resolver@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.598.0.tgz#fd8fd6b7bc11b5f81def4db0db9e835d40a8f86e" - integrity sha512-oYXhmTokSav4ytmWleCr3rs/1nyvZW/S0tdi6X7u+dLNL5Jee+uMxWGzgOrWK6wrQOzucLVjS4E/wA11Kv2GTw== +"@aws-sdk/region-config-resolver@3.587.0": + version "3.587.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.587.0.tgz#ad1c15494f44dfc4c7a7bce389f8b128dace923f" + integrity sha512-93I7IPZtulZQoRK+O20IJ4a1syWwYPzoO2gc3v+/GNZflZPV3QJXuVbIm0pxBsu0n/mzKGUKqSOLPIaN098HcQ== dependencies: - "@aws-sdk/types" "3.598.0" - "@smithy/node-config-provider" "^3.1.1" - "@smithy/types" "^3.1.0" + "@aws-sdk/types" "3.577.0" + "@smithy/node-config-provider" "^3.1.0" + "@smithy/types" "^3.0.0" "@smithy/util-config-provider" "^3.0.0" - "@smithy/util-middleware" "^3.0.1" + "@smithy/util-middleware" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/signature-v4-multi-region@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.598.0.tgz#1716022e31dcbc5821aeca85204718f523a1ddbf" - integrity sha512-1r/EyTrO1gSa1FirnR8V7mabr7gk+l+HkyTI0fcTSr8ucB7gmYyW6WjkY8JCz13VYHFK62usCEDS7yoJoJOzTA== +"@aws-sdk/signature-v4-multi-region@3.587.0": + version "3.587.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.587.0.tgz#f8bb6de9135f3fafab04b9220409cd0d0549b7d8" + integrity sha512-TR9+ZSjdXvXUz54ayHcCihhcvxI9W7102J1OK6MrLgBlPE7uRhAx42BR9L5lLJ86Xj3LuqPWf//o9d/zR9WVIg== dependencies: - "@aws-sdk/middleware-sdk-s3" "3.598.0" - "@aws-sdk/types" "3.598.0" - "@smithy/protocol-http" "^4.0.1" - "@smithy/signature-v4" "^3.1.0" - "@smithy/types" "^3.1.0" + "@aws-sdk/middleware-sdk-s3" "3.587.0" + "@aws-sdk/types" "3.577.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/signature-v4" "^3.0.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/token-providers@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.598.0.tgz#49a94c14ce2e392bb0e84b69986c33ecfad5b804" - integrity sha512-TKY1EVdHVBnZqpyxyTHdpZpa1tUpb6nxVeRNn1zWG8QB5MvH4ALLd/jR+gtmWDNQbIG4cVuBOZFVL8hIYicKTA== +"@aws-sdk/token-providers@3.587.0": + version "3.587.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.587.0.tgz#f9fd2ddfc554c1370f8d0f467c76a4c8cb904ae6" + integrity sha512-ULqhbnLy1hmJNRcukANBWJmum3BbjXnurLPSFXoGdV0llXYlG55SzIla2VYqdveQEEjmsBuTZdFvXAtNpmS5Zg== dependencies: - "@aws-sdk/types" "3.598.0" - "@smithy/property-provider" "^3.1.1" - "@smithy/shared-ini-file-loader" "^3.1.1" - "@smithy/types" "^3.1.0" + "@aws-sdk/types" "3.577.0" + "@smithy/property-provider" "^3.1.0" + "@smithy/shared-ini-file-loader" "^3.1.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/types@3.598.0", "@aws-sdk/types@^3.222.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.598.0.tgz#b840d2446dee19a2a4731e6166f2327915d846db" - integrity sha512-742uRl6z7u0LFmZwDrFP6r1wlZcgVPw+/TilluDJmCAR8BgRw3IR+743kUXKBGd8QZDRW2n6v/PYsi/AWCDDMQ== +"@aws-sdk/types@3.577.0", "@aws-sdk/types@^3.222.0": + version "3.577.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.577.0.tgz#7700784d368ce386745f8c340d9d68cea4716f90" + integrity sha512-FT2JZES3wBKN/alfmhlo+3ZOq/XJ0C7QOZcDNrpKjB0kqYoKjhVKZ/Hx6ArR0czkKfHzBBEs6y40ebIHx2nSmA== dependencies: - "@smithy/types" "^3.1.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" "@aws-sdk/util-arn-parser@3.568.0": @@ -625,14 +634,14 @@ dependencies: tslib "^2.6.2" -"@aws-sdk/util-endpoints@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.598.0.tgz#7f78d68524babac7fdacf381590470353d45b959" - integrity sha512-Qo9UoiVVZxcOEdiOMZg3xb1mzkTxrhd4qSlg5QQrfWPJVx/QOg+Iy0NtGxPtHtVZNHZxohYwDwV/tfsnDSE2gQ== +"@aws-sdk/util-endpoints@3.587.0": + version "3.587.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.587.0.tgz#781e0822a95dba15f7ac8f22a6f6d7f0c8819818" + integrity sha512-8I1HG6Em8wQWqKcRW6m358mqebRVNpL8XrrEoT4In7xqkKkmYtHRNVYP6lcmiQh5pZ/c/FXu8dSchuFIWyEtqQ== dependencies: - "@aws-sdk/types" "3.598.0" - "@smithy/types" "^3.1.0" - "@smithy/util-endpoints" "^2.0.2" + "@aws-sdk/types" "3.577.0" + "@smithy/types" "^3.0.0" + "@smithy/util-endpoints" "^2.0.1" tslib "^2.6.2" "@aws-sdk/util-locate-window@^3.0.0": @@ -642,125 +651,131 @@ dependencies: tslib "^2.6.2" -"@aws-sdk/util-user-agent-browser@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.598.0.tgz#5039d0335f8a06af5be73c960df85009dda59090" - integrity sha512-36Sxo6F+ykElaL1mWzWjlg+1epMpSe8obwhCN1yGE7Js9ywy5U6k6l+A3q3YM9YRbm740sNxncbwLklMvuhTKw== +"@aws-sdk/util-user-agent-browser@3.577.0": + version "3.577.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.577.0.tgz#d4d2cdb3a2b3d1c8b35f239ee9f7b2c87bee66ea" + integrity sha512-zEAzHgR6HWpZOH7xFgeJLc6/CzMcx4nxeQolZxVZoB5pPaJd3CjyRhZN0xXeZB0XIRCWmb4yJBgyiugXLNMkLA== dependencies: - "@aws-sdk/types" "3.598.0" - "@smithy/types" "^3.1.0" + "@aws-sdk/types" "3.577.0" + "@smithy/types" "^3.0.0" bowser "^2.11.0" tslib "^2.6.2" -"@aws-sdk/util-user-agent-node@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.598.0.tgz#f9bdf1b7cc3a40787c379f7c2ff028de2612c177" - integrity sha512-oyWGcOlfTdzkC6SVplyr0AGh54IMrDxbhg5RxJ5P+V4BKfcDoDcZV9xenUk9NsOi9MuUjxMumb9UJGkDhM1m0A== +"@aws-sdk/util-user-agent-node@3.587.0": + version "3.587.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.587.0.tgz#a6bf422f307a68e16a6c19ee5d731fcc32696fb9" + integrity sha512-Pnl+DUe/bvnbEEDHP3iVJrOtE3HbFJBPgsD6vJ+ml/+IYk1Eq49jEG+EHZdNTPz3SDG0kbp2+7u41MKYJHR/iQ== dependencies: - "@aws-sdk/types" "3.598.0" - "@smithy/node-config-provider" "^3.1.1" - "@smithy/types" "^3.1.0" + "@aws-sdk/types" "3.577.0" + "@smithy/node-config-provider" "^3.1.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/xml-builder@3.598.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.598.0.tgz#ee591c5d80a34d9c5bc14326f1a62e9a0649c587" - integrity sha512-ZIa2RK7CHFTZ4gwK77WRtsZ6vF7xwRXxJ8KQIxK2duhoTVcn0xYxpFLdW9WZZZvdP9GIF3Loqvf8DRdeU5Jc7Q== +"@aws-sdk/util-utf8-browser@^3.0.0": + version "3.259.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz#3275a6f5eb334f96ca76635b961d3c50259fd9ff" + integrity sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw== dependencies: - "@smithy/types" "^3.1.0" + tslib "^2.3.1" + +"@aws-sdk/xml-builder@3.575.0": + version "3.575.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.575.0.tgz#233b2aae422dd789a078073032da1bc60317aa1d" + integrity sha512-cWgAwmbFYNCFzPwxL705+lWps0F3ZvOckufd2KKoEZUmtpVw9/txUXNrPySUXSmRTSRhoatIMABNfStWR043bQ== + dependencies: + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.24.7", "@babel/code-frame@^7.8.3": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" - integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.24.6", "@babel/code-frame@^7.8.3": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.6.tgz#ab88da19344445c3d8889af2216606d3329f3ef2" + integrity sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA== dependencies: - "@babel/highlight" "^7.24.7" + "@babel/highlight" "^7.24.6" picocolors "^1.0.0" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.7.tgz#d23bbea508c3883ba8251fb4164982c36ea577ed" - integrity sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw== +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.6.tgz#b3600217688cabb26e25f8e467019e66d71b7ae2" + integrity sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ== "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.18.9", "@babel/core@^7.23.0", "@babel/core@^7.23.9", "@babel/core@^7.24.4", "@babel/core@^7.3.4": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.7.tgz#b676450141e0b52a3d43bc91da86aa608f950ac4" - integrity sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g== + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.6.tgz#8650e0e4b03589ebe886c4e4a60398db0a7ec787" + integrity sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.24.7" - "@babel/generator" "^7.24.7" - "@babel/helper-compilation-targets" "^7.24.7" - "@babel/helper-module-transforms" "^7.24.7" - "@babel/helpers" "^7.24.7" - "@babel/parser" "^7.24.7" - "@babel/template" "^7.24.7" - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" + "@babel/code-frame" "^7.24.6" + "@babel/generator" "^7.24.6" + "@babel/helper-compilation-targets" "^7.24.6" + "@babel/helper-module-transforms" "^7.24.6" + "@babel/helpers" "^7.24.6" + "@babel/parser" "^7.24.6" + "@babel/template" "^7.24.6" + "@babel/traverse" "^7.24.6" + "@babel/types" "^7.24.6" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.24.4", "@babel/generator@^7.24.7", "@babel/generator@^7.7.2": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.7.tgz#1654d01de20ad66b4b4d99c135471bc654c55e6d" - integrity sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA== +"@babel/generator@^7.24.4", "@babel/generator@^7.24.6", "@babel/generator@^7.7.2": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.6.tgz#dfac82a228582a9d30c959fe50ad28951d4737a7" + integrity sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg== dependencies: - "@babel/types" "^7.24.7" + "@babel/types" "^7.24.6" "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.25" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz#5373c7bc8366b12a033b4be1ac13a206c6656aab" - integrity sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg== +"@babel/helper-annotate-as-pure@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.6.tgz#517af93abc77924f9b2514c407bbef527fb8938d" + integrity sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg== dependencies: - "@babel/types" "^7.24.7" + "@babel/types" "^7.24.6" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz#37d66feb012024f2422b762b9b2a7cfe27c7fba3" - integrity sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.6.tgz#19e9089ee87b0d0928012c83961a8deef4b0223f" + integrity sha512-+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw== dependencies: - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" + "@babel/types" "^7.24.6" -"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz#4eb6c4a80d6ffeac25ab8cd9a21b5dfa48d503a9" - integrity sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg== +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz#4a51d681f7680043d38e212715e2a7b1ad29cb51" + integrity sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg== dependencies: - "@babel/compat-data" "^7.24.7" - "@babel/helper-validator-option" "^7.24.7" + "@babel/compat-data" "^7.24.6" + "@babel/helper-validator-option" "^7.24.6" browserslist "^4.22.2" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz#2eaed36b3a1c11c53bdf80d53838b293c52f5b3b" - integrity sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.24.7" - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-function-name" "^7.24.7" - "@babel/helper-member-expression-to-functions" "^7.24.7" - "@babel/helper-optimise-call-expression" "^7.24.7" - "@babel/helper-replace-supers" "^7.24.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" - "@babel/helper-split-export-declaration" "^7.24.7" +"@babel/helper-create-class-features-plugin@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.6.tgz#c50b86fa1c4ca9b7a890dc21884f097b6c4b5286" + integrity sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.6" + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-function-name" "^7.24.6" + "@babel/helper-member-expression-to-functions" "^7.24.6" + "@babel/helper-optimise-call-expression" "^7.24.6" + "@babel/helper-replace-supers" "^7.24.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.6" + "@babel/helper-split-export-declaration" "^7.24.6" semver "^6.3.1" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz#be4f435a80dc2b053c76eeb4b7d16dd22cfc89da" - integrity sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA== +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.6.tgz#47d382dec0d49e74ca1b6f7f3b81f5968022a3c8" + integrity sha512-C875lFBIWWwyv6MHZUG9HmRrlTDgOsLWZfYR0nW69gaKJNe0/Mpxx5r0EID2ZdHQkdUmQo2t0uNckTL08/1BgA== dependencies: - "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-annotate-as-pure" "^7.24.6" regexpu-core "^5.3.1" semver "^6.3.1" @@ -775,187 +790,180 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" -"@babel/helper-environment-visitor@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz#4b31ba9551d1f90781ba83491dd59cf9b269f7d9" - integrity sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ== +"@babel/helper-environment-visitor@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz#ac7ad5517821641550f6698dd5468f8cef78620d" + integrity sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g== + +"@babel/helper-function-name@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz#cebdd063386fdb95d511d84b117e51fc68fec0c8" + integrity sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w== dependencies: - "@babel/types" "^7.24.7" + "@babel/template" "^7.24.6" + "@babel/types" "^7.24.6" -"@babel/helper-function-name@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz#75f1e1725742f39ac6584ee0b16d94513da38dd2" - integrity sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA== +"@babel/helper-hoist-variables@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz#8a7ece8c26756826b6ffcdd0e3cf65de275af7f9" + integrity sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA== dependencies: - "@babel/template" "^7.24.7" - "@babel/types" "^7.24.7" - -"@babel/helper-hoist-variables@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz#b4ede1cde2fd89436397f30dc9376ee06b0f25ee" - integrity sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ== - dependencies: - "@babel/types" "^7.24.7" + "@babel/types" "^7.24.6" -"@babel/helper-member-expression-to-functions@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz#67613d068615a70e4ed5101099affc7a41c5225f" - integrity sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w== - dependencies: - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" - -"@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz#f2f980392de5b84c3328fc71d38bd81bbb83042b" - integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== - dependencies: - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" - -"@babel/helper-module-transforms@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz#31b6c9a2930679498db65b685b1698bfd6c7daf8" - integrity sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ== - dependencies: - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-module-imports" "^7.24.7" - "@babel/helper-simple-access" "^7.24.7" - "@babel/helper-split-export-declaration" "^7.24.7" - "@babel/helper-validator-identifier" "^7.24.7" - -"@babel/helper-optimise-call-expression@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz#8b0a0456c92f6b323d27cfd00d1d664e76692a0f" - integrity sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A== - dependencies: - "@babel/types" "^7.24.7" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz#98c84fe6fe3d0d3ae7bfc3a5e166a46844feb2a0" - integrity sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg== - -"@babel/helper-remap-async-to-generator@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz#b3f0f203628522713849d49403f1a414468be4c7" - integrity sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.24.7" - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-wrap-function" "^7.24.7" - -"@babel/helper-replace-supers@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz#f933b7eed81a1c0265740edc91491ce51250f765" - integrity sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg== - dependencies: - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-member-expression-to-functions" "^7.24.7" - "@babel/helper-optimise-call-expression" "^7.24.7" - -"@babel/helper-simple-access@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz#bcade8da3aec8ed16b9c4953b74e506b51b5edb3" - integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== - dependencies: - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" - -"@babel/helper-skip-transparent-expression-wrappers@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz#5f8fa83b69ed5c27adc56044f8be2b3ea96669d9" - integrity sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ== - dependencies: - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" - -"@babel/helper-split-export-declaration@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz#83949436890e07fa3d6873c61a96e3bbf692d856" - integrity sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA== - dependencies: - "@babel/types" "^7.24.7" - -"@babel/helper-string-parser@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz#4d2d0f14820ede3b9807ea5fc36dfc8cd7da07f2" - integrity sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg== - -"@babel/helper-validator-identifier@^7.24.5", "@babel/helper-validator-identifier@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" - integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== - -"@babel/helper-validator-option@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz#24c3bb77c7a425d1742eec8fb433b5a1b38e62f6" - integrity sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw== - -"@babel/helper-wrap-function@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz#52d893af7e42edca7c6d2c6764549826336aae1f" - integrity sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw== - dependencies: - "@babel/helper-function-name" "^7.24.7" - "@babel/template" "^7.24.7" - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" - -"@babel/helpers@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.7.tgz#aa2ccda29f62185acb5d42fb4a3a1b1082107416" - integrity sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg== - dependencies: - "@babel/template" "^7.24.7" - "@babel/types" "^7.24.7" - -"@babel/highlight@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" - integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== - dependencies: - "@babel/helper-validator-identifier" "^7.24.7" +"@babel/helper-member-expression-to-functions@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.6.tgz#86084f3e0e4e2169a134754df3870bc7784db71e" + integrity sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.6.tgz#65e54ffceed6a268dc4ce11f0433b82cfff57852" + integrity sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-module-transforms@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz#22346ed9df44ce84dee850d7433c5b73fab1fe4e" + integrity sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA== + dependencies: + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-module-imports" "^7.24.6" + "@babel/helper-simple-access" "^7.24.6" + "@babel/helper-split-export-declaration" "^7.24.6" + "@babel/helper-validator-identifier" "^7.24.6" + +"@babel/helper-optimise-call-expression@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.6.tgz#f7836e3ccca3dfa02f15d2bc8b794efe75a5256e" + integrity sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.6", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.6.tgz#fa02a32410a15a6e8f8185bcbf608f10528d2a24" + integrity sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg== + +"@babel/helper-remap-async-to-generator@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.6.tgz#c96ceb9846e877d806ce82a1521230ea7e0fc354" + integrity sha512-1Qursq9ArRZPAMOZf/nuzVW8HgJLkTB9y9LfP4lW2MVp4e9WkLJDovfKBxoDcCk6VuzIxyqWHyBoaCtSRP10yg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.6" + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-wrap-function" "^7.24.6" + +"@babel/helper-replace-supers@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.24.6.tgz#3ea87405a2986a49ab052d10e540fe036d747c71" + integrity sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ== + dependencies: + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-member-expression-to-functions" "^7.24.6" + "@babel/helper-optimise-call-expression" "^7.24.6" + +"@babel/helper-simple-access@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz#1d6e04d468bba4fc963b4906f6dac6286cfedff1" + integrity sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-skip-transparent-expression-wrappers@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.6.tgz#c47e9b33b7ea50d1073e125ebc26661717cb7040" + integrity sha512-jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-split-export-declaration@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz#e830068f7ba8861c53b7421c284da30ae656d7a3" + integrity sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-string-parser@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz#28583c28b15f2a3339cfafafeaad42f9a0e828df" + integrity sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q== + +"@babel/helper-validator-identifier@^7.24.5", "@babel/helper-validator-identifier@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz#08bb6612b11bdec78f3feed3db196da682454a5e" + integrity sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw== + +"@babel/helper-validator-option@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz#59d8e81c40b7d9109ab7e74457393442177f460a" + integrity sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ== + +"@babel/helper-wrap-function@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.24.6.tgz#c27af1006e310683fdc76b668a0a1f6003e36217" + integrity sha512-f1JLrlw/jbiNfxvdrfBgio/gRBk3yTAEJWirpAkiJG2Hb22E7cEYKHWo0dFPTv/niPovzIdPdEDetrv6tC6gPQ== + dependencies: + "@babel/helper-function-name" "^7.24.6" + "@babel/template" "^7.24.6" + "@babel/types" "^7.24.6" + +"@babel/helpers@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.6.tgz#cd124245299e494bd4e00edda0e4ea3545c2c176" + integrity sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA== + dependencies: + "@babel/template" "^7.24.6" + "@babel/types" "^7.24.6" + +"@babel/highlight@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.6.tgz#6d610c1ebd2c6e061cade0153bf69b0590b7b3df" + integrity sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ== + dependencies: + "@babel/helper-validator-identifier" "^7.24.6" chalk "^2.4.2" js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.0", "@babel/parser@^7.23.9", "@babel/parser@^7.24.4", "@babel/parser@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.7.tgz#9a5226f92f0c5c8ead550b750f5608e766c8ce85" - integrity sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.0", "@babel/parser@^7.23.9", "@babel/parser@^7.24.4", "@babel/parser@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.6.tgz#5e030f440c3c6c78d195528c3b688b101a365328" + integrity sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q== -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz#fd059fd27b184ea2b4c7e646868a9a381bbc3055" - integrity sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ== +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.6.tgz#283a74ef365b1e954cda6b2724c678a978215e88" + integrity sha512-bYndrJ6Ph6Ar+GaB5VAc0JPoP80bQCm4qon6JEzXfRl5QZyQ8Ur1K6k7htxWmPA5z+k7JQvaMUrtXlqclWYzKw== dependencies: - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.7.tgz#468096ca44bbcbe8fcc570574e12eb1950e18107" - integrity sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.6.tgz#f9f5ae4d6fb72f5950262cb6f0b2482c3bc684ef" + integrity sha512-iVuhb6poq5ikqRq2XWU6OQ+R5o9wF+r/or9CeUyovgptz0UlnK4/seOQ1Istu/XybYjAhQv1FRSSfHHufIku5Q== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz#e4eabdd5109acc399b38d7999b2ef66fc2022f89" - integrity sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.6.tgz#ab9be6edfffa127bd5ec4317c76c5af0f8fc7e6c" + integrity sha512-c8TER5xMDYzzFcGqOEp9l4hvB7dcbhcGjcLVwxWfe4P5DOafdwjsBJZKsmv+o3aXh7NhopvayQIovHrh2zSRUQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" - "@babel/plugin-transform-optional-chaining" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.6" + "@babel/plugin-transform-optional-chaining" "^7.24.6" -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz#71b21bb0286d5810e63a1538aa901c58e87375ec" - integrity sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.6.tgz#0faf879249ec622d7f1c42eaebf7d11197401b2c" + integrity sha512-z8zEjYmwBUHN/pCF3NuWBhHQjJCrd33qAi8MgANfMrAvn72k2cImT8VjK9LJFu4ysOLJqhfkYYb3MvwANRUNZQ== dependencies: - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": version "7.21.0-placeholder-for-preset-env.2" @@ -1004,26 +1012,26 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.7.tgz#d1759e84dd4b437cf9fae69b4c06c41d7625bfb7" - integrity sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw== +"@babel/plugin-syntax-flow@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.6.tgz#1102a710771326b8e2f0c85ac2aecb6f52eb601e" + integrity sha512-gNkksSdV8RbsCoHF9sjVYrHfYACMl/8U32UfUhJ9+84/ASXw8dlx+eHyyF0m6ncQJ9IBSxfuCkB36GJqYdXTOA== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-syntax-import-assertions@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz#2a0b406b5871a20a841240586b1300ce2088a778" - integrity sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg== +"@babel/plugin-syntax-import-assertions@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.6.tgz#52521c1c1698fc2dd9cf88f7a4dd86d4d041b9e1" + integrity sha512-BE6o2BogJKJImTmGpkmOic4V0hlRRxVtzqxiSPa8TIFxyhi4EFjHm08nq1M4STK4RytuLMgnSz0/wfflvGFNOg== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-syntax-import-attributes@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz#b4f9ea95a79e6912480c4b626739f86a076624ca" - integrity sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A== +"@babel/plugin-syntax-import-attributes@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.6.tgz#12aba325534129584672920274fefa4dc2d5f68e" + integrity sha512-D+CfsVZousPXIdudSII7RGy52+dYRtbyKAZcvtQKq/NpsivyMVduepzcLqG5pMBugtMdedxdC8Ramdpcne9ZWQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" "@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" @@ -1039,12 +1047,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.24.7", "@babel/plugin-syntax-jsx@^7.7.2": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz#39a1fa4a7e3d3d7f34e2acc6be585b718d30e02d" - integrity sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ== +"@babel/plugin-syntax-jsx@^7.24.6", "@babel/plugin-syntax-jsx@^7.7.2": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.6.tgz#bcca2964150437f88f65e3679e3d68762287b9c8" + integrity sha512-lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" @@ -1102,12 +1110,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.24.7", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz#58d458271b4d3b6bb27ee6ac9525acbb259bad1c" - integrity sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA== +"@babel/plugin-syntax-typescript@^7.24.6", "@babel/plugin-syntax-typescript@^7.7.2": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.6.tgz#769daf2982d60308bc83d8936eaecb7582463c87" + integrity sha512-TzCtxGgVTEJWWwcYwQhCIQ6WaKlo80/B+Onsk4RRCcYqpYGFcG9etPW94VToGte5AAcxRrhjPUFvUS3Y2qKi4A== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" @@ -1117,465 +1125,465 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz#4f6886c11e423bd69f3ce51dbf42424a5f275514" - integrity sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ== +"@babel/plugin-transform-arrow-functions@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.6.tgz#93607d1ef5b81c70af174aff3532d57216367492" + integrity sha512-jSSSDt4ZidNMggcLx8SaKsbGNEfIl0PHx/4mFEulorE7bpYLbN0d3pDW3eJ7Y5Z3yPhy3L3NaPCYyTUY7TuugQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-async-generator-functions@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz#7330a5c50e05181ca52351b8fd01642000c96cfd" - integrity sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g== +"@babel/plugin-transform-async-generator-functions@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.6.tgz#fa4a9e5c3a7f60f697ba36587b6c41b04f507d84" + integrity sha512-VEP2o4iR2DqQU6KPgizTW2mnMx6BG5b5O9iQdrW9HesLkv8GIA8x2daXBQxw1MrsIkFQGA/iJ204CKoQ8UcnAA== dependencies: - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-remap-async-to-generator" "^7.24.7" + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-remap-async-to-generator" "^7.24.6" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-transform-async-to-generator@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz#72a3af6c451d575842a7e9b5a02863414355bdcc" - integrity sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA== +"@babel/plugin-transform-async-to-generator@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.6.tgz#eb11434b11d73d8c0cf9f71a6f4f1e6ba441df35" + integrity sha512-NTBA2SioI3OsHeIn6sQmhvXleSl9T70YY/hostQLveWs0ic+qvbA3fa0kwAwQ0OA/XGaAerNZRQGJyRfhbJK4g== dependencies: - "@babel/helper-module-imports" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-remap-async-to-generator" "^7.24.7" + "@babel/helper-module-imports" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-remap-async-to-generator" "^7.24.6" -"@babel/plugin-transform-block-scoped-functions@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz#a4251d98ea0c0f399dafe1a35801eaba455bbf1f" - integrity sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ== +"@babel/plugin-transform-block-scoped-functions@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.6.tgz#975555b5bfa9870b1218da536d1528735f1f8c56" + integrity sha512-XNW7jolYHW9CwORrZgA/97tL/k05qe/HL0z/qqJq1mdWhwwCM6D4BJBV7wAz9HgFziN5dTOG31znkVIzwxv+vw== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-block-scoping@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz#42063e4deb850c7bd7c55e626bf4e7ab48e6ce02" - integrity sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ== +"@babel/plugin-transform-block-scoping@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.6.tgz#a03ec8a4591c2b43cf7798bc633e698293fda179" + integrity sha512-S/t1Xh4ehW7sGA7c1j/hiOBLnEYCp/c2sEG4ZkL8kI1xX9tW2pqJTCHKtdhe/jHKt8nG0pFCrDHUXd4DvjHS9w== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-class-properties@^7.22.5", "@babel/plugin-transform-class-properties@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz#256879467b57b0b68c7ddfc5b76584f398cd6834" - integrity sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w== +"@babel/plugin-transform-class-properties@^7.22.5", "@babel/plugin-transform-class-properties@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.6.tgz#d9f394e97e88ef905d5a1e5e7a16238621b7982e" + integrity sha512-j6dZ0Z2Z2slWLR3kt9aOmSIrBvnntWjMDN/TVcMPxhXMLmJVqX605CBRlcGI4b32GMbfifTEsdEjGjiE+j/c3A== dependencies: - "@babel/helper-create-class-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-class-static-block@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz#c82027ebb7010bc33c116d4b5044fbbf8c05484d" - integrity sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ== +"@babel/plugin-transform-class-static-block@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.6.tgz#f43f29286f6f0dca33d18fd5033b817d6c3fa816" + integrity sha512-1QSRfoPI9RoLRa8Mnakc6v3e0gJxiZQTYrMfLn+mD0sz5+ndSzwymp2hDcYJTyT0MOn0yuWzj8phlIvO72gTHA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz#4ae6ef43a12492134138c1e45913f7c46c41b4bf" - integrity sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.24.7" - "@babel/helper-compilation-targets" "^7.24.7" - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-function-name" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-replace-supers" "^7.24.7" - "@babel/helper-split-export-declaration" "^7.24.7" +"@babel/plugin-transform-classes@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.6.tgz#0cc198c02720d4eeb091004843477659c6b37977" + integrity sha512-+fN+NO2gh8JtRmDSOB6gaCVo36ha8kfCW1nMq2Gc0DABln0VcHN4PrALDvF5/diLzIRKptC7z/d7Lp64zk92Fg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.6" + "@babel/helper-compilation-targets" "^7.24.6" + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-function-name" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-replace-supers" "^7.24.6" + "@babel/helper-split-export-declaration" "^7.24.6" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz#4cab3214e80bc71fae3853238d13d097b004c707" - integrity sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ== +"@babel/plugin-transform-computed-properties@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.6.tgz#7a1765c01cdfe59c320d2d0f37a4dc4aecd14df1" + integrity sha512-cRzPobcfRP0ZtuIEkA8QzghoUpSB3X3qSH5W2+FzG+VjWbJXExtx0nbRqwumdBN1x/ot2SlTNQLfBCnPdzp6kg== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/template" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/template" "^7.24.6" -"@babel/plugin-transform-destructuring@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz#a097f25292defb6e6cc16d6333a4cfc1e3c72d9e" - integrity sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw== +"@babel/plugin-transform-destructuring@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.6.tgz#bdd1a6c90ffb2bfd13b6007b13316eeafc97cb53" + integrity sha512-YLW6AE5LQpk5npNXL7i/O+U9CE4XsBCuRPgyjl1EICZYKmcitV+ayuuUGMJm2lC1WWjXYszeTnIxF/dq/GhIZQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-dotall-regex@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz#5f8bf8a680f2116a7207e16288a5f974ad47a7a0" - integrity sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw== +"@babel/plugin-transform-dotall-regex@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.6.tgz#5a6b3148ec5f4f274ff48cebea90565087cad126" + integrity sha512-rCXPnSEKvkm/EjzOtLoGvKseK+dS4kZwx1HexO3BtRtgL0fQ34awHn34aeSHuXtZY2F8a1X8xqBBPRtOxDVmcA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-create-regexp-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-duplicate-keys@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz#dd20102897c9a2324e5adfffb67ff3610359a8ee" - integrity sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw== +"@babel/plugin-transform-duplicate-keys@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.6.tgz#2716301227cf7cd4fdadcbe4353ce191f8b3dc8a" + integrity sha512-/8Odwp/aVkZwPFJMllSbawhDAO3UJi65foB00HYnK/uXvvCPm0TAXSByjz1mpRmp0q6oX2SIxpkUOpPFHk7FLA== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-dynamic-import@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz#4d8b95e3bae2b037673091aa09cd33fecd6419f4" - integrity sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg== +"@babel/plugin-transform-dynamic-import@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.6.tgz#b477177761d56b15a4ba42a83be31cf72d757acf" + integrity sha512-vpq8SSLRTBLOHUZHSnBqVo0AKX3PBaoPs2vVzYVWslXDTDIpwAcCDtfhUcHSQQoYoUvcFPTdC8TZYXu9ZnLT/w== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-transform-exponentiation-operator@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz#b629ee22645f412024297d5245bce425c31f9b0d" - integrity sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ== +"@babel/plugin-transform-exponentiation-operator@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.6.tgz#011e9e1a429f91b024af572530873ca571f9ef06" + integrity sha512-EemYpHtmz0lHE7hxxxYEuTYOOBZ43WkDgZ4arQ4r+VX9QHuNZC+WH3wUWmRNvR8ECpTRne29aZV6XO22qpOtdA== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-export-namespace-from@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz#176d52d8d8ed516aeae7013ee9556d540c53f197" - integrity sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA== +"@babel/plugin-transform-export-namespace-from@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.6.tgz#b64ded74d9afb3db5d47d93996c4df69f15ac97c" + integrity sha512-inXaTM1SVrIxCkIJ5gqWiozHfFMStuGbGJAxZFBoHcRRdDP0ySLb3jH6JOwmfiinPwyMZqMBX+7NBDCO4z0NSA== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-transform-flow-strip-types@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.24.7.tgz#ae454e62219288fbb734541ab00389bfb13c063e" - integrity sha512-cjRKJ7FobOH2eakx7Ja+KpJRj8+y+/SiB3ooYm/n2UJfxu0oEaOoxOinitkJcPqv9KxS0kxTGPUaR7L2XcXDXA== +"@babel/plugin-transform-flow-strip-types@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.24.6.tgz#dfd9d1c90e74335bc68d82f41ad9224960a4de84" + integrity sha512-1l8b24NoCpaQ13Vi6FtLG1nv6kNoi8PWvQb1AYO7GHZDpFfBYc3lbXArx1lP2KRt8b4pej1eWc/zrRmsQTfOdQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/plugin-syntax-flow" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-flow" "^7.24.6" -"@babel/plugin-transform-for-of@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz#f25b33f72df1d8be76399e1b8f3f9d366eb5bc70" - integrity sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g== +"@babel/plugin-transform-for-of@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.6.tgz#7f31780bd0c582b546372c0c0da9d9d56731e0a2" + integrity sha512-n3Sf72TnqK4nw/jziSqEl1qaWPbCRw2CziHH+jdRYvw4J6yeCzsj4jdw8hIntOEeDGTmHVe2w4MVL44PN0GMzg== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.6" -"@babel/plugin-transform-function-name@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz#6d8601fbffe665c894440ab4470bc721dd9131d6" - integrity sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w== +"@babel/plugin-transform-function-name@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.6.tgz#60d1de3f6fd816a3e3bf9538578a64527e1b9c97" + integrity sha512-sOajCu6V0P1KPljWHKiDq6ymgqB+vfo3isUS4McqW1DZtvSVU2v/wuMhmRmkg3sFoq6GMaUUf8W4WtoSLkOV/Q== dependencies: - "@babel/helper-compilation-targets" "^7.24.7" - "@babel/helper-function-name" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-compilation-targets" "^7.24.6" + "@babel/helper-function-name" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-json-strings@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz#f3e9c37c0a373fee86e36880d45b3664cedaf73a" - integrity sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw== +"@babel/plugin-transform-json-strings@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.6.tgz#a84639180ea1f9001bb5e6dc01921235ab05ad8b" + integrity sha512-Uvgd9p2gUnzYJxVdBLcU0KurF8aVhkmVyMKW4MIY1/BByvs3EBpv45q01o7pRTVmTvtQq5zDlytP3dcUgm7v9w== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-transform-literals@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz#36b505c1e655151a9d7607799a9988fc5467d06c" - integrity sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ== +"@babel/plugin-transform-literals@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.6.tgz#7f44f2871d7a4456030b0540858046f0b7bc6b18" + integrity sha512-f2wHfR2HF6yMj+y+/y07+SLqnOSwRp8KYLpQKOzS58XLVlULhXbiYcygfXQxJlMbhII9+yXDwOUFLf60/TL5tw== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-logical-assignment-operators@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz#a58fb6eda16c9dc8f9ff1c7b1ba6deb7f4694cb0" - integrity sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw== +"@babel/plugin-transform-logical-assignment-operators@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.6.tgz#9cc7baa5629866566562c159dc1eae7569810f33" + integrity sha512-EKaWvnezBCMkRIHxMJSIIylzhqK09YpiJtDbr2wsXTwnO0TxyjMUkaw4RlFIZMIS0iDj0KyIg7H7XCguHu/YDA== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz#3b4454fb0e302e18ba4945ba3246acb1248315df" - integrity sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw== +"@babel/plugin-transform-member-expression-literals@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.6.tgz#5d3681ca201ac6909419cc51ac082a6ba4c5c756" + integrity sha512-9g8iV146szUo5GWgXpRbq/GALTnY+WnNuRTuRHWWFfWGbP9ukRL0aO/jpu9dmOPikclkxnNsjY8/gsWl6bmZJQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-modules-amd@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz#65090ed493c4a834976a3ca1cde776e6ccff32d7" - integrity sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg== +"@babel/plugin-transform-modules-amd@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.6.tgz#09aeac7acb7913496aaaafdc64f40683e0db7e41" + integrity sha512-eAGogjZgcwqAxhyFgqghvoHRr+EYRQPFjUXrTYKBRb5qPnAVxOOglaxc4/byHqjvq/bqO2F3/CGwTHsgKJYHhQ== dependencies: - "@babel/helper-module-transforms" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-module-transforms" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-modules-commonjs@^7.23.0", "@babel/plugin-transform-modules-commonjs@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz#9fd5f7fdadee9085886b183f1ad13d1ab260f4ab" - integrity sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ== +"@babel/plugin-transform-modules-commonjs@^7.23.0", "@babel/plugin-transform-modules-commonjs@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.6.tgz#1b8269902f25bd91ca6427230d4735ddd1e1283e" + integrity sha512-JEV8l3MHdmmdb7S7Cmx6rbNEjRCgTQMZxllveHO0mx6uiclB0NflCawlQQ6+o5ZrwjUBYPzHm2XoK4wqGVUFuw== dependencies: - "@babel/helper-module-transforms" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-simple-access" "^7.24.7" + "@babel/helper-module-transforms" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-simple-access" "^7.24.6" -"@babel/plugin-transform-modules-systemjs@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz#f8012316c5098f6e8dee6ecd58e2bc6f003d0ce7" - integrity sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw== +"@babel/plugin-transform-modules-systemjs@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.6.tgz#c54eb53fe16f9b82d320abd76762d0320e3f9393" + integrity sha512-xg1Z0J5JVYxtpX954XqaaAT6NpAY6LtZXvYFCJmGFJWwtlz2EmJoR8LycFRGNE8dBKizGWkGQZGegtkV8y8s+w== dependencies: - "@babel/helper-hoist-variables" "^7.24.7" - "@babel/helper-module-transforms" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-validator-identifier" "^7.24.7" + "@babel/helper-hoist-variables" "^7.24.6" + "@babel/helper-module-transforms" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-validator-identifier" "^7.24.6" -"@babel/plugin-transform-modules-umd@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz#edd9f43ec549099620df7df24e7ba13b5c76efc8" - integrity sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A== +"@babel/plugin-transform-modules-umd@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.6.tgz#c4ef8b6d4da230b8dc87e81cd66986728952f89b" + integrity sha512-esRCC/KsSEUvrSjv5rFYnjZI6qv4R1e/iHQrqwbZIoRJqk7xCvEUiN7L1XrmW5QSmQe3n1XD88wbgDTWLbVSyg== dependencies: - "@babel/helper-module-transforms" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-module-transforms" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-named-capturing-groups-regex@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz#9042e9b856bc6b3688c0c2e4060e9e10b1460923" - integrity sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g== +"@babel/plugin-transform-named-capturing-groups-regex@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.6.tgz#352ee2861ab8705320029f80238cf26a92ba65d5" + integrity sha512-6DneiCiu91wm3YiNIGDWZsl6GfTTbspuj/toTEqLh9d4cx50UIzSdg+T96p8DuT7aJOBRhFyaE9ZvTHkXrXr6Q== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-create-regexp-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-new-target@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz#31ff54c4e0555cc549d5816e4ab39241dfb6ab00" - integrity sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA== +"@babel/plugin-transform-new-target@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.6.tgz#fc024294714705113720d5e3dc0f9ad7abdbc289" + integrity sha512-f8liz9JG2Va8A4J5ZBuaSdwfPqN6axfWRK+y66fjKYbwf9VBLuq4WxtinhJhvp1w6lamKUwLG0slK2RxqFgvHA== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-nullish-coalescing-operator@^7.22.11", "@babel/plugin-transform-nullish-coalescing-operator@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz#1de4534c590af9596f53d67f52a92f12db984120" - integrity sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ== +"@babel/plugin-transform-nullish-coalescing-operator@^7.22.11", "@babel/plugin-transform-nullish-coalescing-operator@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.6.tgz#12b83b3cdfd1cd2066350e36e4fb912ab194545e" + integrity sha512-+QlAiZBMsBK5NqrBWFXCYeXyiU1y7BQ/OYaiPAcQJMomn5Tyg+r5WuVtyEuvTbpV7L25ZSLfE+2E9ywj4FD48A== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-transform-numeric-separator@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz#bea62b538c80605d8a0fac9b40f48e97efa7de63" - integrity sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA== +"@babel/plugin-transform-numeric-separator@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.6.tgz#d9115669cc85aa91fbfb15f88f2226332cf4946a" + integrity sha512-6voawq8T25Jvvnc4/rXcWZQKKxUNZcKMS8ZNrjxQqoRFernJJKjE3s18Qo6VFaatG5aiX5JV1oPD7DbJhn0a4Q== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-object-rest-spread@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz#d13a2b93435aeb8a197e115221cab266ba6e55d6" - integrity sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q== +"@babel/plugin-transform-object-rest-spread@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.6.tgz#68d763f69955f9e599c405c6c876f5be46b47d8a" + integrity sha512-OKmi5wiMoRW5Smttne7BwHM8s/fb5JFs+bVGNSeHWzwZkWXWValR1M30jyXo1s/RaqgwwhEC62u4rFH/FBcBPg== dependencies: - "@babel/helper-compilation-targets" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-compilation-targets" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.24.7" + "@babel/plugin-transform-parameters" "^7.24.6" -"@babel/plugin-transform-object-super@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz#66eeaff7830bba945dd8989b632a40c04ed625be" - integrity sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg== +"@babel/plugin-transform-object-super@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.6.tgz#9cbe6f995bed343a7ab8daf0416dac057a9c3e27" + integrity sha512-N/C76ihFKlZgKfdkEYKtaRUtXZAgK7sOY4h2qrbVbVTXPrKGIi8aww5WGe/+Wmg8onn8sr2ut6FXlsbu/j6JHg== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-replace-supers" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-replace-supers" "^7.24.6" -"@babel/plugin-transform-optional-catch-binding@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz#00eabd883d0dd6a60c1c557548785919b6e717b4" - integrity sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA== +"@babel/plugin-transform-optional-catch-binding@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.6.tgz#c81e90a971aad898e56f2b75a358e6c4855aeba3" + integrity sha512-L5pZ+b3O1mSzJ71HmxSCmTVd03VOT2GXOigug6vDYJzE5awLI7P1g0wFcdmGuwSDSrQ0L2rDOe/hHws8J1rv3w== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-chaining@^7.23.0", "@babel/plugin-transform-optional-chaining@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.7.tgz#b8f6848a80cf2da98a8a204429bec04756c6d454" - integrity sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ== +"@babel/plugin-transform-optional-chaining@^7.23.0", "@babel/plugin-transform-optional-chaining@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.6.tgz#3d636b3ed8b5a506f93e4d4675fc95754d7594f5" + integrity sha512-cHbqF6l1QP11OkYTYQ+hhVx1E017O5ZcSPXk9oODpqhcAD1htsWG2NpHrrhthEO2qZomLK0FXS+u7NfrkF5aOQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.6" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-transform-parameters@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz#5881f0ae21018400e320fc7eb817e529d1254b68" - integrity sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA== +"@babel/plugin-transform-parameters@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.6.tgz#7aee86dfedd2fc0136fecbe6f7649fc02d86ab22" + integrity sha512-ST7guE8vLV+vI70wmAxuZpIKzVjvFX9Qs8bl5w6tN/6gOypPWUmMQL2p7LJz5E63vEGrDhAiYetniJFyBH1RkA== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-private-methods@^7.22.5", "@babel/plugin-transform-private-methods@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz#e6318746b2ae70a59d023d5cc1344a2ba7a75f5e" - integrity sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ== +"@babel/plugin-transform-private-methods@^7.22.5", "@babel/plugin-transform-private-methods@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.6.tgz#258e1f859a52ff7b30ad556598224c192defcda7" + integrity sha512-T9LtDI0BgwXOzyXrvgLTT8DFjCC/XgWLjflczTLXyvxbnSR/gpv0hbmzlHE/kmh9nOvlygbamLKRo6Op4yB6aw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-private-property-in-object@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz#4eec6bc701288c1fab5f72e6a4bbc9d67faca061" - integrity sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA== +"@babel/plugin-transform-private-property-in-object@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.6.tgz#59ff09a099f62213112cf348e96b6b11957d1f28" + integrity sha512-Qu/ypFxCY5NkAnEhCF86Mvg3NSabKsh/TPpBVswEdkGl7+FbsYHy1ziRqJpwGH4thBdQHh8zx+z7vMYmcJ7iaQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.24.7" - "@babel/helper-create-class-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-annotate-as-pure" "^7.24.6" + "@babel/helper-create-class-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-transform-property-literals@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz#f0d2ed8380dfbed949c42d4d790266525d63bbdc" - integrity sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA== +"@babel/plugin-transform-property-literals@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.6.tgz#243c4faabe811c405e9443059a58e834bf95dfd1" + integrity sha512-oARaglxhRsN18OYsnPTpb8TcKQWDYNsPNmTnx5++WOAsUJ0cSC/FZVlIJCKvPbU4yn/UXsS0551CFKJhN0CaMw== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-react-display-name@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz#9caff79836803bc666bcfe210aeb6626230c293b" - integrity sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg== +"@babel/plugin-transform-react-display-name@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.6.tgz#2a10c732c2c87a8f06e4413fb4a14e76e6c67a99" + integrity sha512-/3iiEEHDsJuj9QU09gbyWGSUxDboFcD7Nj6dnHIlboWSodxXAoaY/zlNMHeYAC0WsERMqgO9a7UaM77CsYgWcg== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-react-jsx-development@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz#eaee12f15a93f6496d852509a850085e6361470b" - integrity sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ== +"@babel/plugin-transform-react-jsx-development@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.6.tgz#e662058e8795b5fccd24c5bdd2b328728aef3305" + integrity sha512-F7EsNp5StNDouSSdYyDSxh4J+xvj/JqG+Cb6s2fA+jCyHOzigG5vTwgH8tU2U8Voyiu5zCG9bAK49wTr/wPH0w== dependencies: - "@babel/plugin-transform-react-jsx" "^7.24.7" + "@babel/plugin-transform-react-jsx" "^7.24.6" -"@babel/plugin-transform-react-jsx@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz#17cd06b75a9f0e2bd076503400e7c4b99beedac4" - integrity sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA== +"@babel/plugin-transform-react-jsx@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.6.tgz#4ca3660ca663d20095455571615d6263986cdfe4" + integrity sha512-pCtPHhpRZHfwdA5G1Gpk5mIzMA99hv0R8S/Ket50Rw+S+8hkt3wBWqdqHaPw0CuUYxdshUgsPiLQ5fAs4ASMhw== dependencies: - "@babel/helper-annotate-as-pure" "^7.24.7" - "@babel/helper-module-imports" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/plugin-syntax-jsx" "^7.24.7" - "@babel/types" "^7.24.7" + "@babel/helper-annotate-as-pure" "^7.24.6" + "@babel/helper-module-imports" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-jsx" "^7.24.6" + "@babel/types" "^7.24.6" -"@babel/plugin-transform-react-pure-annotations@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz#bdd9d140d1c318b4f28b29a00fb94f97ecab1595" - integrity sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA== +"@babel/plugin-transform-react-pure-annotations@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.6.tgz#d2bad8d70c3635cb63a69ee66c9c891f9392435c" + integrity sha512-0HoDQlFJJkXRyV2N+xOpUETbKHcouSwijRQbKWVtxsPoq5bbB30qZag9/pSc5xcWVYjTHlLsBsY+hZDnzQTPNw== dependencies: - "@babel/helper-annotate-as-pure" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-annotate-as-pure" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-regenerator@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz#021562de4534d8b4b1851759fd7af4e05d2c47f8" - integrity sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA== +"@babel/plugin-transform-regenerator@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.6.tgz#ed10cf0c13619365e15459f88d1b915ac57ffc24" + integrity sha512-SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" regenerator-transform "^0.15.2" -"@babel/plugin-transform-reserved-words@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz#80037fe4fbf031fc1125022178ff3938bb3743a4" - integrity sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ== +"@babel/plugin-transform-reserved-words@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.6.tgz#9eb16cbf339fcea0a46677716c775afb5ef14245" + integrity sha512-DcrgFXRRlK64dGE0ZFBPD5egM2uM8mgfrvTMOSB2yKzOtjpGegVYkzh3s1zZg1bBck3nkXiaOamJUqK3Syk+4A== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-shorthand-properties@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz#85448c6b996e122fa9e289746140aaa99da64e73" - integrity sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA== +"@babel/plugin-transform-shorthand-properties@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.6.tgz#ef734ebccc428d2174c7bb36015d0800faf5381e" + integrity sha512-xnEUvHSMr9eOWS5Al2YPfc32ten7CXdH7Zwyyk7IqITg4nX61oHj+GxpNvl+y5JHjfN3KXE2IV55wAWowBYMVw== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-spread@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz#e8a38c0fde7882e0fb8f160378f74bd885cc7bb3" - integrity sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng== +"@babel/plugin-transform-spread@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.6.tgz#a56cecbd8617675531d1b79f5b755b7613aa0822" + integrity sha512-h/2j7oIUDjS+ULsIrNZ6/TKG97FgmEk1PXryk/HQq6op4XUUUwif2f69fJrzK0wza2zjCS1xhXmouACaWV5uPA== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.6" -"@babel/plugin-transform-sticky-regex@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz#96ae80d7a7e5251f657b5cf18f1ea6bf926f5feb" - integrity sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g== +"@babel/plugin-transform-sticky-regex@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.6.tgz#1a78127731fea87d954bed193840986a38f04327" + integrity sha512-fN8OcTLfGmYv7FnDrsjodYBo1DhPL3Pze/9mIIE2MGCT1KgADYIOD7rEglpLHZj8PZlC/JFX5WcD+85FLAQusw== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-template-literals@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz#a05debb4a9072ae8f985bcf77f3f215434c8f8c8" - integrity sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw== +"@babel/plugin-transform-template-literals@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.6.tgz#aaf2ae157acd0e5c9265dba8ac0a439f8d2a6303" + integrity sha512-BJbEqJIcKwrqUP+KfUIkxz3q8VzXe2R8Wv8TaNgO1cx+nNavxn/2+H8kp9tgFSOL6wYPPEgFvU6IKS4qoGqhmg== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-typeof-symbol@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz#f074be466580d47d6e6b27473a840c9f9ca08fb0" - integrity sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg== +"@babel/plugin-transform-typeof-symbol@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.6.tgz#3d02da23ebcc8f1982ddcd1f2581cf3ee4e58762" + integrity sha512-IshCXQ+G9JIFJI7bUpxTE/oA2lgVLAIK8q1KdJNoPXOpvRaNjMySGuvLfBw/Xi2/1lLo953uE8hyYSDW3TSYig== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-typescript@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.7.tgz#b006b3e0094bf0813d505e0c5485679eeaf4a881" - integrity sha512-iLD3UNkgx2n/HrjBesVbYX6j0yqn/sJktvbtKKgcaLIQ4bTTQ8obAypc1VpyHPD2y4Phh9zHOaAt8e/L14wCpw== +"@babel/plugin-transform-typescript@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.6.tgz#339c6127a783c32e28a5b591e6c666f899b57db0" + integrity sha512-H0i+hDLmaYYSt6KU9cZE0gb3Cbssa/oxWis7PX4ofQzbvsfix9Lbh8SRk7LCPDlLWJHUiFeHU0qRRpF/4Zv7mQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.24.7" - "@babel/helper-create-class-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/plugin-syntax-typescript" "^7.24.7" + "@babel/helper-annotate-as-pure" "^7.24.6" + "@babel/helper-create-class-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-typescript" "^7.24.6" -"@babel/plugin-transform-unicode-escapes@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz#2023a82ced1fb4971630a2e079764502c4148e0e" - integrity sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw== +"@babel/plugin-transform-unicode-escapes@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.6.tgz#c8ddca8fd5bacece837a4e27bd3b7ed64580d1a8" + integrity sha512-bKl3xxcPbkQQo5eX9LjjDpU2xYHeEeNQbOhj0iPvetSzA+Tu9q/o5lujF4Sek60CM6MgYvOS/DJuwGbiEYAnLw== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-unicode-property-regex@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz#9073a4cd13b86ea71c3264659590ac086605bbcd" - integrity sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w== +"@babel/plugin-transform-unicode-property-regex@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.6.tgz#e66297d5d452db0b0be56515e3d0e10b7d33fb32" + integrity sha512-8EIgImzVUxy15cZiPii9GvLZwsy7Vxc+8meSlR3cXFmBIl5W5Tn9LGBf7CDKkHj4uVfNXCJB8RsVfnmY61iedA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-create-regexp-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-unicode-regex@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz#dfc3d4a51127108099b19817c0963be6a2adf19f" - integrity sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg== +"@babel/plugin-transform-unicode-regex@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.6.tgz#2001e7d87ed709eea145e0b65fb5f93c3c0e225b" + integrity sha512-pssN6ExsvxaKU638qcWb81RrvvgZom3jDgU/r5xFZ7TONkZGFf4MhI2ltMb8OcQWhHyxgIavEU+hgqtbKOmsPA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-create-regexp-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" -"@babel/plugin-transform-unicode-sets-regex@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz#d40705d67523803a576e29c63cef6e516b858ed9" - integrity sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg== +"@babel/plugin-transform-unicode-sets-regex@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.6.tgz#f18b7292222aee85c155258ceb345a146a070a46" + integrity sha512-quiMsb28oXWIDK0gXLALOJRXLgICLiulqdZGOaPPd0vRT7fQp74NtdADAVu+D8s00C+0Xs0MxVP0VKF/sZEUgw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-create-regexp-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" "@babel/preset-env@^7.16.4", "@babel/preset-env@^7.24.4": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.24.7.tgz#ff067b4e30ba4a72f225f12f123173e77b987f37" - integrity sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ== - dependencies: - "@babel/compat-data" "^7.24.7" - "@babel/helper-compilation-targets" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-validator-option" "^7.24.7" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.24.7" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.24.7" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.7" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.24.7" + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.24.6.tgz#a5a55bc70e5ff1ed7f872067e2a9d65ff917ad6f" + integrity sha512-CrxEAvN7VxfjOG8JNF2Y/eMqMJbZPZ185amwGUBp8D9USK90xQmv7dLdFSa+VbD7fdIqcy/Mfv7WtzG8+/qxKg== + dependencies: + "@babel/compat-data" "^7.24.6" + "@babel/helper-compilation-targets" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-validator-option" "^7.24.6" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.24.6" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.24.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.6" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.24.6" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.24.7" - "@babel/plugin-syntax-import-attributes" "^7.24.7" + "@babel/plugin-syntax-import-assertions" "^7.24.6" + "@babel/plugin-syntax-import-attributes" "^7.24.6" "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" @@ -1587,54 +1595,54 @@ "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" - "@babel/plugin-transform-arrow-functions" "^7.24.7" - "@babel/plugin-transform-async-generator-functions" "^7.24.7" - "@babel/plugin-transform-async-to-generator" "^7.24.7" - "@babel/plugin-transform-block-scoped-functions" "^7.24.7" - "@babel/plugin-transform-block-scoping" "^7.24.7" - "@babel/plugin-transform-class-properties" "^7.24.7" - "@babel/plugin-transform-class-static-block" "^7.24.7" - "@babel/plugin-transform-classes" "^7.24.7" - "@babel/plugin-transform-computed-properties" "^7.24.7" - "@babel/plugin-transform-destructuring" "^7.24.7" - "@babel/plugin-transform-dotall-regex" "^7.24.7" - "@babel/plugin-transform-duplicate-keys" "^7.24.7" - "@babel/plugin-transform-dynamic-import" "^7.24.7" - "@babel/plugin-transform-exponentiation-operator" "^7.24.7" - "@babel/plugin-transform-export-namespace-from" "^7.24.7" - "@babel/plugin-transform-for-of" "^7.24.7" - "@babel/plugin-transform-function-name" "^7.24.7" - "@babel/plugin-transform-json-strings" "^7.24.7" - "@babel/plugin-transform-literals" "^7.24.7" - "@babel/plugin-transform-logical-assignment-operators" "^7.24.7" - "@babel/plugin-transform-member-expression-literals" "^7.24.7" - "@babel/plugin-transform-modules-amd" "^7.24.7" - "@babel/plugin-transform-modules-commonjs" "^7.24.7" - "@babel/plugin-transform-modules-systemjs" "^7.24.7" - "@babel/plugin-transform-modules-umd" "^7.24.7" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.24.7" - "@babel/plugin-transform-new-target" "^7.24.7" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.7" - "@babel/plugin-transform-numeric-separator" "^7.24.7" - "@babel/plugin-transform-object-rest-spread" "^7.24.7" - "@babel/plugin-transform-object-super" "^7.24.7" - "@babel/plugin-transform-optional-catch-binding" "^7.24.7" - "@babel/plugin-transform-optional-chaining" "^7.24.7" - "@babel/plugin-transform-parameters" "^7.24.7" - "@babel/plugin-transform-private-methods" "^7.24.7" - "@babel/plugin-transform-private-property-in-object" "^7.24.7" - "@babel/plugin-transform-property-literals" "^7.24.7" - "@babel/plugin-transform-regenerator" "^7.24.7" - "@babel/plugin-transform-reserved-words" "^7.24.7" - "@babel/plugin-transform-shorthand-properties" "^7.24.7" - "@babel/plugin-transform-spread" "^7.24.7" - "@babel/plugin-transform-sticky-regex" "^7.24.7" - "@babel/plugin-transform-template-literals" "^7.24.7" - "@babel/plugin-transform-typeof-symbol" "^7.24.7" - "@babel/plugin-transform-unicode-escapes" "^7.24.7" - "@babel/plugin-transform-unicode-property-regex" "^7.24.7" - "@babel/plugin-transform-unicode-regex" "^7.24.7" - "@babel/plugin-transform-unicode-sets-regex" "^7.24.7" + "@babel/plugin-transform-arrow-functions" "^7.24.6" + "@babel/plugin-transform-async-generator-functions" "^7.24.6" + "@babel/plugin-transform-async-to-generator" "^7.24.6" + "@babel/plugin-transform-block-scoped-functions" "^7.24.6" + "@babel/plugin-transform-block-scoping" "^7.24.6" + "@babel/plugin-transform-class-properties" "^7.24.6" + "@babel/plugin-transform-class-static-block" "^7.24.6" + "@babel/plugin-transform-classes" "^7.24.6" + "@babel/plugin-transform-computed-properties" "^7.24.6" + "@babel/plugin-transform-destructuring" "^7.24.6" + "@babel/plugin-transform-dotall-regex" "^7.24.6" + "@babel/plugin-transform-duplicate-keys" "^7.24.6" + "@babel/plugin-transform-dynamic-import" "^7.24.6" + "@babel/plugin-transform-exponentiation-operator" "^7.24.6" + "@babel/plugin-transform-export-namespace-from" "^7.24.6" + "@babel/plugin-transform-for-of" "^7.24.6" + "@babel/plugin-transform-function-name" "^7.24.6" + "@babel/plugin-transform-json-strings" "^7.24.6" + "@babel/plugin-transform-literals" "^7.24.6" + "@babel/plugin-transform-logical-assignment-operators" "^7.24.6" + "@babel/plugin-transform-member-expression-literals" "^7.24.6" + "@babel/plugin-transform-modules-amd" "^7.24.6" + "@babel/plugin-transform-modules-commonjs" "^7.24.6" + "@babel/plugin-transform-modules-systemjs" "^7.24.6" + "@babel/plugin-transform-modules-umd" "^7.24.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.24.6" + "@babel/plugin-transform-new-target" "^7.24.6" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.6" + "@babel/plugin-transform-numeric-separator" "^7.24.6" + "@babel/plugin-transform-object-rest-spread" "^7.24.6" + "@babel/plugin-transform-object-super" "^7.24.6" + "@babel/plugin-transform-optional-catch-binding" "^7.24.6" + "@babel/plugin-transform-optional-chaining" "^7.24.6" + "@babel/plugin-transform-parameters" "^7.24.6" + "@babel/plugin-transform-private-methods" "^7.24.6" + "@babel/plugin-transform-private-property-in-object" "^7.24.6" + "@babel/plugin-transform-property-literals" "^7.24.6" + "@babel/plugin-transform-regenerator" "^7.24.6" + "@babel/plugin-transform-reserved-words" "^7.24.6" + "@babel/plugin-transform-shorthand-properties" "^7.24.6" + "@babel/plugin-transform-spread" "^7.24.6" + "@babel/plugin-transform-sticky-regex" "^7.24.6" + "@babel/plugin-transform-template-literals" "^7.24.6" + "@babel/plugin-transform-typeof-symbol" "^7.24.6" + "@babel/plugin-transform-unicode-escapes" "^7.24.6" + "@babel/plugin-transform-unicode-property-regex" "^7.24.6" + "@babel/plugin-transform-unicode-regex" "^7.24.6" + "@babel/plugin-transform-unicode-sets-regex" "^7.24.6" "@babel/preset-modules" "0.1.6-no-external-plugins" babel-plugin-polyfill-corejs2 "^0.4.10" babel-plugin-polyfill-corejs3 "^0.10.4" @@ -1643,13 +1651,13 @@ semver "^6.3.1" "@babel/preset-flow@^7.22.15": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.24.7.tgz#eef5cb8e05e97a448fc50c16826f5612fe512c06" - integrity sha512-NL3Lo0NorCU607zU3NwRyJbpaB6E3t0xtd3LfAQKDfkeX4/ggcDXvkmkW42QWT5owUeW/jAe4hn+2qvkV1IbfQ== + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.24.6.tgz#df09ee46558577bea49bc71d597604c03c9bf7a6" + integrity sha512-huoe0T1Qs9fQhMWbmqE/NHUeZbqmHDsN6n/jYvPcUUHfuKiPV32C9i8tDhMbQ1DEKTjbBP7Rjm3nSLwlB2X05g== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-validator-option" "^7.24.7" - "@babel/plugin-transform-flow-strip-types" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-validator-option" "^7.24.6" + "@babel/plugin-transform-flow-strip-types" "^7.24.6" "@babel/preset-modules@0.1.6-no-external-plugins": version "0.1.6-no-external-plugins" @@ -1661,27 +1669,27 @@ esutils "^2.0.2" "@babel/preset-react@^7.0.0": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.24.7.tgz#480aeb389b2a798880bf1f889199e3641cbb22dc" - integrity sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag== + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.24.6.tgz#92eace66dce577e5263113eb82235a0d45096cae" + integrity sha512-8mpzh1bWvmINmwM3xpz6ahu57mNaWavMm+wBNjQ4AFu1nghKBiIRET7l/Wmj4drXany/BBGjJZngICcD98F1iw== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-validator-option" "^7.24.7" - "@babel/plugin-transform-react-display-name" "^7.24.7" - "@babel/plugin-transform-react-jsx" "^7.24.7" - "@babel/plugin-transform-react-jsx-development" "^7.24.7" - "@babel/plugin-transform-react-pure-annotations" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-validator-option" "^7.24.6" + "@babel/plugin-transform-react-display-name" "^7.24.6" + "@babel/plugin-transform-react-jsx" "^7.24.6" + "@babel/plugin-transform-react-jsx-development" "^7.24.6" + "@babel/plugin-transform-react-pure-annotations" "^7.24.6" "@babel/preset-typescript@^7.23.0", "@babel/preset-typescript@^7.3.3": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz#66cd86ea8f8c014855671d5ea9a737139cbbfef1" - integrity sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ== + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.24.6.tgz#27057470fb981c31338bdb897fc3d9aa0cb7dab2" + integrity sha512-U10aHPDnokCFRXgyT/MaIRTivUu2K/mu0vJlwRS9LxJmJet+PFQNKpggPyFCUtC6zWSBPjvxjnpNkAn3Uw2m5w== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-validator-option" "^7.24.7" - "@babel/plugin-syntax-jsx" "^7.24.7" - "@babel/plugin-transform-modules-commonjs" "^7.24.7" - "@babel/plugin-transform-typescript" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-validator-option" "^7.24.6" + "@babel/plugin-syntax-jsx" "^7.24.6" + "@babel/plugin-transform-modules-commonjs" "^7.24.6" + "@babel/plugin-transform-typescript" "^7.24.6" "@babel/register@^7.22.15": version "7.24.6" @@ -1699,45 +1707,45 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.8", "@babel/runtime@^7.17.9", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.6", "@babel/runtime@^7.23.9", "@babel/runtime@^7.24.7", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.7.tgz#f4f0d5530e8dbdf59b3451b9b3e594b6ba082e12" - integrity sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw== +"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.8", "@babel/runtime@^7.17.9", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.6", "@babel/runtime@^7.23.9", "@babel/runtime@^7.24.6", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.6.tgz#5b76eb89ad45e2e4a0a8db54c456251469a3358e" + integrity sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw== dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.24.7", "@babel/template@^7.3.3": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.7.tgz#02efcee317d0609d2c07117cb70ef8fb17ab7315" - integrity sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig== - dependencies: - "@babel/code-frame" "^7.24.7" - "@babel/parser" "^7.24.7" - "@babel/types" "^7.24.7" - -"@babel/traverse@^7.18.9", "@babel/traverse@^7.24.1", "@babel/traverse@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.7.tgz#de2b900163fa741721ba382163fe46a936c40cf5" - integrity sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA== - dependencies: - "@babel/code-frame" "^7.24.7" - "@babel/generator" "^7.24.7" - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-function-name" "^7.24.7" - "@babel/helper-hoist-variables" "^7.24.7" - "@babel/helper-split-export-declaration" "^7.24.7" - "@babel/parser" "^7.24.7" - "@babel/types" "^7.24.7" +"@babel/template@^7.24.6", "@babel/template@^7.3.3": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.6.tgz#048c347b2787a6072b24c723664c8d02b67a44f9" + integrity sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw== + dependencies: + "@babel/code-frame" "^7.24.6" + "@babel/parser" "^7.24.6" + "@babel/types" "^7.24.6" + +"@babel/traverse@^7.18.9", "@babel/traverse@^7.24.1", "@babel/traverse@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.6.tgz#0941ec50cdeaeacad0911eb67ae227a4f8424edc" + integrity sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw== + dependencies: + "@babel/code-frame" "^7.24.6" + "@babel/generator" "^7.24.6" + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-function-name" "^7.24.6" + "@babel/helper-hoist-variables" "^7.24.6" + "@babel/helper-split-export-declaration" "^7.24.6" + "@babel/parser" "^7.24.6" + "@babel/types" "^7.24.6" debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.9", "@babel/types@^7.20.7", "@babel/types@^7.24.0", "@babel/types@^7.24.7", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.7.tgz#6027fe12bc1aa724cd32ab113fb7f1988f1f66f2" - integrity sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q== +"@babel/types@^7.0.0", "@babel/types@^7.18.9", "@babel/types@^7.20.7", "@babel/types@^7.24.0", "@babel/types@^7.24.6", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.6.tgz#ba4e1f59870c10dc2fa95a274ac4feec23b21912" + integrity sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ== dependencies: - "@babel/helper-string-parser" "^7.24.7" - "@babel/helper-validator-identifier" "^7.24.7" + "@babel/helper-string-parser" "^7.24.6" + "@babel/helper-validator-identifier" "^7.24.6" to-fast-properties "^2.0.0" "@base2/pretty-print-object@1.0.1": @@ -2144,9 +2152,9 @@ "@floating-ui/dom" "^1.0.0" "@floating-ui/react@^0.26.3": - version "0.26.17" - resolved "https://registry.yarnpkg.com/@floating-ui/react/-/react-0.26.17.tgz#efa2e1a0dea3d9d308965c5ccd49756bb64a883d" - integrity sha512-ESD+jYWwqwVzaIgIhExrArdsCL1rOAzryG/Sjlu8yaD3Mtqi3uVyhbE2V7jD58Mo52qbzKz2eUY/Xgh5I86FCQ== + version "0.26.16" + resolved "https://registry.yarnpkg.com/@floating-ui/react/-/react-0.26.16.tgz#3415a087f452165161c2d313d1d57e8142894679" + integrity sha512-HEf43zxZNAI/E781QIVpYSF3K2VH4TTYZpqecjdsFkjsaU1EbaWcM++kw0HXFffj7gDUcBFevX8s0rQGQpxkow== dependencies: "@floating-ui/react-dom" "^2.1.0" "@floating-ui/utils" "^0.2.0" @@ -2817,29 +2825,29 @@ clsx "^2.1.0" prop-types "^15.8.1" -"@mui/core-downloads-tracker@^5.15.20": - version "5.15.20" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.20.tgz#6ede705770797c32f5a4fc0d3002ad0b758d23e8" - integrity sha512-DoL2ppgldL16utL8nNyj/P12f8mCNdx/Hb/AJnX9rLY4b52hCMIx1kH83pbXQ6uMy6n54M3StmEbvSGoj2OFuA== +"@mui/core-downloads-tracker@^5.15.19": + version "5.15.19" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.19.tgz#7af0025c871f126367a55219486681954e4821d7" + integrity sha512-tCHSi/Tomez9ERynFhZRvFO6n9ATyrPs+2N80DMDzp6xDVirbBjEwhPcE+x7Lj+nwYw0SqFkOxyvMP0irnm55w== "@mui/icons-material@^5.0.0", "@mui/icons-material@^5.0.1", "@mui/icons-material@^5.0.2": - version "5.15.20" - resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.15.20.tgz#dbd45d635d82b034fb10dadb5c258c26e3311618" - integrity sha512-oGcKmCuHaYbAAoLN67WKSXtHmEgyWcJToT1uRtmPyxMj9N5uqwc/mRtEnst4Wj/eGr+zYH2FiZQ79v9k7kSk1Q== + version "5.15.19" + resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.15.19.tgz#0602da80d814af662812659eab891e435ec0d5c0" + integrity sha512-RsEiRxA5azN9b8gI7JRqekkgvxQUlitoBOtZglflb8cUDyP12/cP4gRwhb44Ea1/zwwGGjAj66ZJpGHhKfibNA== dependencies: "@babel/runtime" "^7.23.9" "@mui/material@^5.10.17": - version "5.15.20" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.15.20.tgz#87737404603ca2802a8e074b059f8329e013e615" - integrity sha512-tVq3l4qoXx/NxUgIx/x3lZiPn/5xDbdTE8VrLczNpfblLYZzlrbxA7kb9mI8NoBF6+w9WE9IrxWnKK5KlPI2bg== + version "5.15.19" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.15.19.tgz#a5bd50b6e68cee4ed39ea91dbecede5a020aaa97" + integrity sha512-lp5xQBbcRuxNtjpWU0BWZgIrv2XLUz4RJ0RqFXBdESIsKoGCQZ6P3wwU5ZPuj5TjssNiKv9AlM+vHopRxZhvVQ== dependencies: "@babel/runtime" "^7.23.9" "@mui/base" "5.0.0-beta.40" - "@mui/core-downloads-tracker" "^5.15.20" - "@mui/system" "^5.15.20" + "@mui/core-downloads-tracker" "^5.15.19" + "@mui/system" "^5.15.15" "@mui/types" "^7.2.14" - "@mui/utils" "^5.15.20" + "@mui/utils" "^5.15.14" "@types/react-transition-group" "^4.4.10" clsx "^2.1.0" csstype "^3.1.3" @@ -2847,13 +2855,13 @@ react-is "^18.2.0" react-transition-group "^4.4.5" -"@mui/private-theming@^5.15.20": - version "5.15.20" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.15.20.tgz#028c4e3c717a13691ac2c8c98e29aa819d89001a" - integrity sha512-BK8F94AIqSrnaPYXf2KAOjGZJgWfvqAVQ2gVR3EryvQFtuBnG6RwodxrCvd3B48VuMy6Wsk897+lQMUxJyk+6g== +"@mui/private-theming@^5.15.14": + version "5.15.14" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.15.14.tgz#edd9a82948ed01586a01c842eb89f0e3f68970ee" + integrity sha512-UH0EiZckOWcxiXLX3Jbb0K7rC8mxTr9L9l6QhOZxYc4r8FHUkefltV9VDGLrzCaWh30SQiJvAEd7djX3XXY6Xw== dependencies: "@babel/runtime" "^7.23.9" - "@mui/utils" "^5.15.20" + "@mui/utils" "^5.15.14" prop-types "^15.8.1" "@mui/styled-engine@^5.15.14": @@ -2866,16 +2874,16 @@ csstype "^3.1.3" prop-types "^15.8.1" -"@mui/system@^5.14.4", "@mui/system@^5.15.15", "@mui/system@^5.15.20": - version "5.15.20" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.15.20.tgz#f1933aabc4c10f8580c7a951ca3b88542ef0f76b" - integrity sha512-LoMq4IlAAhxzL2VNUDBTQxAb4chnBe8JvRINVNDiMtHE2PiPOoHlhOPutSxEbaL5mkECPVWSv6p8JEV+uykwIA== +"@mui/system@^5.14.4", "@mui/system@^5.15.15": + version "5.15.15" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.15.15.tgz#658771b200ce3c4a0f28e58169f02e5e718d1c53" + integrity sha512-aulox6N1dnu5PABsfxVGOZffDVmlxPOVgj56HrUnJE8MCSh8lOvvkd47cebIVQQYAjpwieXQXiDPj5pwM40jTQ== dependencies: "@babel/runtime" "^7.23.9" - "@mui/private-theming" "^5.15.20" + "@mui/private-theming" "^5.15.14" "@mui/styled-engine" "^5.15.14" "@mui/types" "^7.2.14" - "@mui/utils" "^5.15.20" + "@mui/utils" "^5.15.14" clsx "^2.1.0" csstype "^3.1.3" prop-types "^15.8.1" @@ -2885,10 +2893,10 @@ resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.14.tgz#8a02ac129b70f3d82f2f9b76ded2c8d48e3fc8c9" integrity sha512-MZsBZ4q4HfzBsywtXgM1Ksj6HDThtiwmOKUXH1pKYISI9gAVXCNHNpo7TlGoGrBaYWZTdNoirIN7JsQcQUjmQQ== -"@mui/utils@^5.15.14", "@mui/utils@^5.15.20": - version "5.15.20" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.15.20.tgz#92778d749ce5ded1598639b4e684aaedb1146e08" - integrity sha512-mAbYx0sovrnpAu1zHc3MDIhPqL8RPVC5W5xcO1b7PiSCJPtckIZmBkp8hefamAvUiAV8gpfMOM6Zb+eSisbI2A== +"@mui/utils@^5.15.14": + version "5.15.14" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.15.14.tgz#e414d7efd5db00bfdc875273a40c0a89112ade3a" + integrity sha512-0lF/7Hh/ezDv5X7Pry6enMsbYyGKjADzvHyo3Qrc/SSlTsQ1VkbDMbH0m2t3OR5iIVLwMoxwM7yGd+6FCMtTFA== dependencies: "@babel/runtime" "^7.23.9" "@types/prop-types" "^15.7.11" @@ -2896,11 +2904,11 @@ react-is "^18.2.0" "@mui/x-data-grid@^7.0.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-7.7.0.tgz#4b417de6f85e888b953d5d4f4bb7abfabed62717" - integrity sha512-s3Oii9EKcYPnL7M4g5evNley/J0slLL6xWRi0VwYqTHPGntBAMntUktMZ63bD/xko99f5ZcFoRBYTc55+mJ+AQ== + version "7.6.1" + resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-7.6.1.tgz#f40cbcf61e05253691c6e8ac1aa14ce51b9fafb9" + integrity sha512-ZUQqSvmJgNQAgwLqVp/XUgNgKFb3zdsBQTbYCagjAK7Saq3iPDJkTb7FNSyT8UN0G6Kqogxgd9fKJW4L4ku1zQ== dependencies: - "@babel/runtime" "^7.24.7" + "@babel/runtime" "^7.24.6" "@mui/system" "^5.15.15" "@mui/utils" "^5.15.14" clsx "^2.1.1" @@ -3066,27 +3074,27 @@ node-gyp "^10.0.0" which "^4.0.0" -"@nrwl/devkit@19.3.0": - version "19.3.0" - resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-19.3.0.tgz#7520d658218df89d33792813e5d03546b72b8a12" - integrity sha512-WRcph/7U37HkTLIRzQ2oburZVfEFkPHJUn7vmo46gCq+N2cAKy3qwONO0RbthhjFIsG94YPXqFWFlV6k4nXpxA== +"@nrwl/devkit@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-19.1.2.tgz#0a3b0c6c89182e09e14bf61e2249fbab951417e3" + integrity sha512-vWI+OrTICE9Yw6C/jIwxybnvavI9dnQJ7tpzFbLcSVfFAGdFtYJGCLVe40IkWcvUfELoVmzpXtKP/sPy0D7J9w== dependencies: - "@nx/devkit" "19.3.0" + "@nx/devkit" "19.1.2" -"@nrwl/tao@19.3.0": - version "19.3.0" - resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-19.3.0.tgz#3acd1f957af975655fbea7ecfc5ade8409e97e15" - integrity sha512-MyGYeHbh9O4Tv9xmz3Du+/leY5sKUHaPy4ancfNyShHgYi21hemX0/YYjzzoYHi44D8GzSc1XG2rAuwba7Kilw== +"@nrwl/tao@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-19.1.2.tgz#320c414f16b6dbc4e612fca73a732b6d462a3f30" + integrity sha512-OseWzHXNwOmZinUjHCD+edinvNJq5ngGrn/yKO81Zm/FDxkcYjud20dMsXi8zYfgDjvQv22eDtk5v1BTlSx57A== dependencies: - nx "19.3.0" + nx "19.1.2" tslib "^2.3.0" -"@nx/devkit@19.3.0", "@nx/devkit@>=17.1.2 < 20": - version "19.3.0" - resolved "https://registry.yarnpkg.com/@nx/devkit/-/devkit-19.3.0.tgz#d26abf0ff4a875cfdfdd6292e9a7abad3c57066b" - integrity sha512-Natya5nzvHH0qTOIL1w/EZtwMgDx87Dgz0LgeY7te2fULaNFcj5fVrP+mUKEJZR+NccO7GPumT2RPhuEl9rPnQ== +"@nx/devkit@19.1.2", "@nx/devkit@>=17.1.2 < 20": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@nx/devkit/-/devkit-19.1.2.tgz#08a8f346a523d8a8a9421ad95cdea027b7e73fb6" + integrity sha512-oHYZzfmvogPh7z8pf1RjW7eJaS05VZ1Ts/axlWerzQauWT7aoeyCaxa0D9q3ThnUuDt1PqKjwJi5jmCihBT2Sw== dependencies: - "@nrwl/devkit" "19.3.0" + "@nrwl/devkit" "19.1.2" ejs "^3.1.7" enquirer "~2.3.6" ignore "^5.0.4" @@ -3096,57 +3104,57 @@ tslib "^2.3.0" yargs-parser "21.1.1" -"@nx/nx-darwin-arm64@19.3.0": - version "19.3.0" - resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.3.0.tgz#1bebc5c820af797768cd38dd859f3adab73d763a" - integrity sha512-TMTxjrN7Y/UsKFjmz0YfhVItLTGWqvud8cmQchw5NEjdNakfjXk0mREufO5/5PwoiRIsen6MbThoTprLpjOUiQ== - -"@nx/nx-darwin-x64@19.3.0": - version "19.3.0" - resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-19.3.0.tgz#fb5773076633bb9767686eeb63c31b5fa935e8dd" - integrity sha512-GH2L6ftnzdIs7JEdv7ZPCdbpAdB5sW6NijK07riYZSONzq5fEruD1yDWDkyZbYBb8RTxsparUWJnq8q1qxEPHQ== - -"@nx/nx-freebsd-x64@19.3.0": - version "19.3.0" - resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.3.0.tgz#16b9a12a3cf31c3496d336fbd30ba809c26885a3" - integrity sha512-1ow7Xku1yyjHviCKsWiuHCAnTd3fD+5O5c+e4DXHVthT8wnadKSotvBIWf38DMbMthl7na82e72OzxcdSbrVqQ== - -"@nx/nx-linux-arm-gnueabihf@19.3.0": - version "19.3.0" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.3.0.tgz#387defff2e730512934ff318db1a35870d40650f" - integrity sha512-mYQMIUvNr2gww8vbg766uk/C1RxoC1fwioeP87bmV5NRUKSzJ8WEJVxAsqc9RGhAOUaNXOgEuKYrMcVhKyIKJQ== - -"@nx/nx-linux-arm64-gnu@19.3.0": - version "19.3.0" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.3.0.tgz#5a3c23cbfc622d31bececfc56025e1ced14a7bfb" - integrity sha512-rHL3eQ0RHkeAXnhHHu/NIyouN/ykiXvgyNU3TuCd50+2MZcAbjB+Xq3mwL0MwiP+BQuptiE+snTuxFUJp4ZH6A== - -"@nx/nx-linux-arm64-musl@19.3.0": - version "19.3.0" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.3.0.tgz#a3cd9bc62a234875738298923ae63e78defc7c52" - integrity sha512-im0+OgOD6ShpTkI9ZRz7BjzxhQ/Lk3xjYmmCu+PFGmaybEnkNNDFwsgS0iEVKMdWZ/EQoQvJrqOYsX125iIBuQ== - -"@nx/nx-linux-x64-gnu@19.3.0": - version "19.3.0" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.3.0.tgz#75f8760fd9ee2330bbb92a16517fb04a12b22b07" - integrity sha512-k8q/d6WBSXOeUpBq6Mw69yMKL4n9LaX3o4LBNwBkVCEZ8p6s0njwKefLtjwnKlai0g/k5f0NcilU2zTwP/Ex8g== - -"@nx/nx-linux-x64-musl@19.3.0": - version "19.3.0" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.3.0.tgz#dafa78ec12101d83fb16fd4c5cb24c4d80e06a18" - integrity sha512-sahEV99glBlpGKG1TIQ5PkJ0QvpHp69wWsBFK2DKtCETxOtsWqwvIjemxTCXRirTqeHiP7BiR6VWsf2YqqqBdw== - -"@nx/nx-win32-arm64-msvc@19.3.0": - version "19.3.0" - resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.3.0.tgz#e9fe3306e917a40634ca2908536a318eb1132483" - integrity sha512-w03gFwLijStmhUji70QJHYo/U16ovybNczxGO7+5TT330X8/y+ihw9FCGHiIcujAjTAE88h0DKGn05WlNqRmfg== - -"@nx/nx-win32-x64-msvc@19.3.0": - version "19.3.0" - resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.3.0.tgz#f451ba810a52d26c020e73d1d02d9110aef7e847" - integrity sha512-M7e2zXGfTjH8NLiwqKLdWC9VlfMSQDYlI4/SM4OSpPqhUTfPlRPa+wNKNTG7perKfDXxE9ei8yjocujknXJk/A== - -"@oclif/core@^4", "@oclif/core@^4.0.0", "@oclif/core@^4.0.6": +"@nx/nx-darwin-arm64@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.1.2.tgz#d0c570b33378c3fb08f23eea07aab9577bb69b63" + integrity sha512-YeT/u+r0iZSokbVFsuiFpF/eFAZmR1p6gkpHo6cVIb0KTkH6Sd1n3s1cjfOKEZg+M0emf9Q8QQ6tw41wGrUm4Q== + +"@nx/nx-darwin-x64@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-19.1.2.tgz#72c498d9014458903498db3f4c1c16d223fa822a" + integrity sha512-nmbz/4tgvXwYmxIQptny7Cij0OTAxIdB2l+qmI4tkBnN2mT5UVqdG9t8ziSyZHJbWQjIHTkbgAbg5ar6vK/srA== + +"@nx/nx-freebsd-x64@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.1.2.tgz#c893d7ced7488b4a227a541dcb20d18379a704bf" + integrity sha512-0wcBAr+IYOWBXNDdWHahjW1nCyFTP0O+dSsQa5ab5OBEo0UTvt1k/s27cUyaz2Ll070RTpzl54KD3O1i/1/X0Q== + +"@nx/nx-linux-arm-gnueabihf@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.1.2.tgz#14ad38d8560971b4fa1cff14c409d86a07157c43" + integrity sha512-A1L7T/Y8nOq7tc84WuaWMEeZ2uTjhqHJDNEfgZhnwYfQ3S94B0O2EkyEp29n9E4eN9XZmvYJzDt1tBz2ziZ6iA== + +"@nx/nx-linux-arm64-gnu@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.1.2.tgz#5436b713f16f7ea416d0d0cad8bcb1cfadf8aa4f" + integrity sha512-ze7FtI0hGMs6ap9Z8vo80nXMvuJGJP7CDcL8q2op/l9c23Qex+oG4khyZowJzq+fJPigqldAL3Fm+rHBzT4jhA== + +"@nx/nx-linux-arm64-musl@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.1.2.tgz#5c4107d7f3f3e829d0dc2b451ef945318b96876f" + integrity sha512-JMiSRLe3K83GQw26jGgJYCLDww7K4z5rVDlWHpQEMyiQSukJBZ5OMYxotkDcPDAMmmrUERXjabOsCi0xnyqUlA== + +"@nx/nx-linux-x64-gnu@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.1.2.tgz#e276e6343ef5faeebad03eed5539275365833d6a" + integrity sha512-0XZSz37nrbABUxw2wOMsUP2djsYRxXn1+jbh/kcOH6PnlwiTPOJ6LwDENUh9lZ4PKflED5Tj0w6wx23/AH4z3g== + +"@nx/nx-linux-x64-musl@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.1.2.tgz#b45988b53c530fe20bd337f5c527fdbe0fe9b3b2" + integrity sha512-tID0nKIUQZ5b1woFh3dtl7XK1Mv71kkwxxppMsOb0FVTigC8Yy7Zpu/ykKidnJ+VbHGSYhZ03BZXgAk/on9LXw== + +"@nx/nx-win32-arm64-msvc@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.1.2.tgz#4f5641ba8241947c8dc44e0b6b4c739d7f422cb5" + integrity sha512-AXEwOk0lhbWdy4OZmde0iC1sP/AAUMrw5a8Ah7S0QOXBj8X9wK1zyThviQnY1NpUzYGBbMkv3UgPDTArTdAeKA== + +"@nx/nx-win32-x64-msvc@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.1.2.tgz#4c29a15143e1270720fc6d1411fd1585bbc953e7" + integrity sha512-H8ldXwXnVff2A9tDU8AD7QE/uZV06D0gHBdbnrzbg74NOrkKvvUPXky0D6BMlooljkU9QXu7M46CWRNIoPSzQw== + +"@oclif/core@^4.0.0", "@oclif/core@^4.0.6": version "4.0.6" resolved "https://registry.yarnpkg.com/@oclif/core/-/core-4.0.6.tgz#05958a928591567b7fe90638e0ee8df9e07eb3ff" integrity sha512-z/4YUVQsf2pHsXRze5etbmvAYDhoUhIzpM6oJGEdsdWfvQJ6YQBogH7TdX/ItuGda6+vpfXg/4U1CtPexSF+bA== @@ -3169,29 +3177,52 @@ wordwrap "^1.0.0" wrap-ansi "^7.0.0" -"@oclif/plugin-help@^6.0.15", "@oclif/plugin-help@^6.2.2": - version "6.2.3" - resolved "https://registry.yarnpkg.com/@oclif/plugin-help/-/plugin-help-6.2.3.tgz#09e54a1816fe7c2ef02c8a40c59afc7754a6eaca" - integrity sha512-ogaCD2i6dmEgrrIKG8iV42o/s45EG53Q+dW/zeEhL8It9UdVDooXjXkZLPSyRS+CyrbK3it8Mwh08DrJxjZiqQ== +"@oclif/core@^4.0.0-beta.12", "@oclif/core@^4.0.0-beta.13", "@oclif/core@^4.0.0-beta.14": + version "4.0.0-beta.15" + resolved "https://registry.yarnpkg.com/@oclif/core/-/core-4.0.0-beta.15.tgz#6dc7d36e302c4ea0fa44cf6ee94c8742985f719f" + integrity sha512-pmtZk8IR4xqPrlmUpjZcg/dxI2OtMXpZERd9rmPUGsS9eta7gFBKFUXqxfL5Ey/0jL8sJmsbmHsSADml0ntMOg== dependencies: - "@oclif/core" "^4" + ansi-escapes "^4.3.2" + ansis "^3.1.1" + clean-stack "^3.0.1" + cli-spinners "^2.9.2" + cosmiconfig "^9.0.0" + debug "^4.3.4" + ejs "^3.1.10" + get-package-type "^0.1.0" + globby "^11.1.0" + indent-string "^4.0.0" + is-wsl "^2.2.0" + minimatch "^9.0.4" + string-width "^4.2.3" + supports-color "^8" + widest-line "^3.1.0" + wordwrap "^1.0.0" + wrap-ansi "^7.0.0" -"@oclif/plugin-not-found@^3.2.3": - version "3.2.5" - resolved "https://registry.yarnpkg.com/@oclif/plugin-not-found/-/plugin-not-found-3.2.5.tgz#f7db68c2684294f4261bdc9b12eee464b4597945" - integrity sha512-C3YgT46dQpVs0DkXECTVrlg8KeOzLAOXFpmCYMPQQU3siptliep2eESjXrFm9VL+jZijGJjyckwQgn/X5zq1LQ== +"@oclif/plugin-help@^6.0.15", "@oclif/plugin-help@^6.0.21": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@oclif/plugin-help/-/plugin-help-6.1.0.tgz#70271276c02a8224fb69234676f0079dbc836ff0" + integrity sha512-U+LNKKaZBroHqoSGIpYbQmkTl8aW0NJcO9tr091LJOZ74iqEDiupfBTCMuklW9uTZdWFYApqTmshDuB/I41jxQ== + dependencies: + "@oclif/core" "^4.0.0-beta.13" + +"@oclif/plugin-not-found@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@oclif/plugin-not-found/-/plugin-not-found-3.2.1.tgz#59664f68ef7a67899e2a48ed7379126a44411dad" + integrity sha512-Y2FyWLEziTrgdQwd4LtZcYv3VOMeDhW0pW6hbE0u3fJdxs8f3JLfOHJPd8FPorVt2ldsaj4zcXUWA6vMQKeKbQ== dependencies: "@inquirer/confirm" "^3.1.9" - "@oclif/core" "^4" + "@oclif/core" "^4.0.0-beta.13" ansis "^3.2.0" fast-levenshtein "^3.0.0" "@oclif/plugin-warn-if-update-available@^3.0.19": - version "3.1.6" - resolved "https://registry.yarnpkg.com/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-3.1.6.tgz#354e04e43fdcb4abad733b979dc2a7e44e91d312" - integrity sha512-K/hKDUD1HOXJa89arqpzB5bqLO1+abiOgvQ3nIGnbO3yyVPsieBRD3yuv+ti7r/nUIroZnPYBlyNESL6W0/NaA== + version "3.1.3" + resolved "https://registry.yarnpkg.com/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-3.1.3.tgz#a3ddd5646e554fce6139010791ffedcd2c396109" + integrity sha512-xdnGWWYIhzZkkXh3sIeX8b0dwc83A7N95GvtiLdiY5veXgwNRXLf+3dNn8p/kAFKlhdh0pIQGeD7jmRYu74Q6Q== dependencies: - "@oclif/core" "^4" + "@oclif/core" "^4.0.0-beta.14" ansis "^3.2.0" debug "^4.3.5" http-call "^5.2.2" @@ -3612,12 +3643,12 @@ dependencies: "@sinonjs/commons" "^3.0.0" -"@smithy/abort-controller@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-3.0.1.tgz#bb8debe1c23ca62a61b33a9ee2918f5a79d81928" - integrity sha512-Jb7jg4E+C+uvrUQi+h9kbILY6ts6fglKZzseMCHlH9ayq+1f5QdpYf8MV/xppuiN6DAMJAmwGz53GwP3213dmA== +"@smithy/abort-controller@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-3.0.0.tgz#5815f5d4618e14bf8d031bb98a99adabbb831168" + integrity sha512-p6GlFGBt9K4MYLu72YuJ523NVR4A8oHlC5M2JO6OmQqN8kAc/uh1JqLE+FizTokrSJGg0CSvC+BrsmGzKtsZKA== dependencies: - "@smithy/types" "^3.1.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" "@smithy/chunked-blob-reader-native@^3.0.0": @@ -3635,140 +3666,133 @@ dependencies: tslib "^2.6.2" -"@smithy/config-resolver@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-3.0.2.tgz#ad19331d48d9a6e67bdd43a0099e1d8af1b82a82" - integrity sha512-wUyG6ezpp2sWAvfqmSYTROwFUmJqKV78GLf55WODrosBcT0BAMd9bOLO4HRhynWBgAobPml2cF9ZOdgCe00r+g== +"@smithy/config-resolver@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-3.0.1.tgz#4e0917e5a02139ef978a1ed470543ab41dd3626b" + integrity sha512-hbkYJc20SBDz2qqLzttjI/EqXemtmWk0ooRznLsiXp3066KQRTvuKHa7U4jCZCJq6Dozqvy0R1/vNESC9inPJg== dependencies: - "@smithy/node-config-provider" "^3.1.1" - "@smithy/types" "^3.1.0" + "@smithy/node-config-provider" "^3.1.0" + "@smithy/types" "^3.0.0" "@smithy/util-config-provider" "^3.0.0" - "@smithy/util-middleware" "^3.0.1" + "@smithy/util-middleware" "^3.0.0" tslib "^2.6.2" -"@smithy/core@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.2.1.tgz#92ed71eb96ef16d5ac8b23dbdf913bcb225ab875" - integrity sha512-R8Pzrr2v2oGUoj4CTZtKPr87lVtBsz7IUBGhSwS1kc6Cj0yPwNdYbkzhFsxhoDE9+BPl09VN/6rFsW9GJzWnBA== - dependencies: - "@smithy/middleware-endpoint" "^3.0.2" - "@smithy/middleware-retry" "^3.0.4" - "@smithy/middleware-serde" "^3.0.1" - "@smithy/protocol-http" "^4.0.1" - "@smithy/smithy-client" "^3.1.2" - "@smithy/types" "^3.1.0" - "@smithy/util-middleware" "^3.0.1" +"@smithy/core@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.1.1.tgz#c5e50785f9f61cad85fbefafa402b1a87eff095a" + integrity sha512-0vbIwwUcg0FMhTVJgMhbsRSAFL0rwduy/OQz7Xq1pJXJOyaGv+PGjj1iGawRlzBUPA5BkJv7S6q+YU2U8gk/WA== + dependencies: + "@smithy/middleware-endpoint" "^3.0.1" + "@smithy/middleware-retry" "^3.0.3" + "@smithy/middleware-serde" "^3.0.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/smithy-client" "^3.1.1" + "@smithy/types" "^3.0.0" + "@smithy/util-middleware" "^3.0.0" tslib "^2.6.2" -"@smithy/credential-provider-imds@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.1.1.tgz#8b2b3c9e7e67fd9e3e436a5e1db6652ab339af7b" - integrity sha512-htndP0LwHdE3R3Nam9ZyVWhwPYOmD4xCL79kqvNxy8u/bv0huuy574CSiRY4cvEICgimv8jlVfLeZ7zZqbnB2g== +"@smithy/credential-provider-imds@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.1.0.tgz#7e58b78aa8de13dd04e94829241cd1cbde59b6d3" + integrity sha512-q4A4d38v8pYYmseu/jTS3Z5I3zXlEOe5Obi+EJreVKgSVyWUHOd7/yaVCinC60QG4MRyCs98tcxBH1IMC0bu7Q== dependencies: - "@smithy/node-config-provider" "^3.1.1" - "@smithy/property-provider" "^3.1.1" - "@smithy/types" "^3.1.0" - "@smithy/url-parser" "^3.0.1" + "@smithy/node-config-provider" "^3.1.0" + "@smithy/property-provider" "^3.1.0" + "@smithy/types" "^3.0.0" + "@smithy/url-parser" "^3.0.0" tslib "^2.6.2" -"@smithy/eventstream-codec@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-3.1.0.tgz#74138287be7e1edd6a72400bb5181f5e1a7b44dd" - integrity sha512-XFDl70ZY+FabSnTX3oQGGYvdbEaC8vPEFkCEOoBkumqaZIwR1WjjJCDu2VMXlHbKWKshefWXdT0NYteL5v6uFw== +"@smithy/eventstream-codec@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-3.0.0.tgz#81d30391220f73d41f432f65384b606d67673e46" + integrity sha512-PUtyEA0Oik50SaEFCZ0WPVtF9tz/teze2fDptW6WRXl+RrEenH8UbEjudOz8iakiMl3lE3lCVqYf2Y+znL8QFQ== dependencies: - "@aws-crypto/crc32" "5.2.0" - "@smithy/types" "^3.1.0" + "@aws-crypto/crc32" "3.0.0" + "@smithy/types" "^3.0.0" "@smithy/util-hex-encoding" "^3.0.0" tslib "^2.6.2" -"@smithy/eventstream-serde-browser@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.2.tgz#342fbdbdf99f8fb7c247024716c5236bffae043e" - integrity sha512-6147vdedQGaWn3Nt4P1KV0LuV8IH4len1SAeycyko0p8oRLWFyYyx0L8JHGclePDSphkjxZqBHtyIfyupCaTGg== +"@smithy/eventstream-serde-browser@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.0.tgz#94721b01f01d8b7eb1db5814275a774ed4d38190" + integrity sha512-NB7AFiPN4NxP/YCAnrvYR18z2/ZsiHiF7VtG30gshO9GbFrIb1rC8ep4NGpJSWrz6P64uhPXeo4M0UsCLnZKqw== dependencies: - "@smithy/eventstream-serde-universal" "^3.0.2" - "@smithy/types" "^3.1.0" + "@smithy/eventstream-serde-universal" "^3.0.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@smithy/eventstream-serde-config-resolver@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.1.tgz#74e9cb3992edc03319ffa05eb6008aacaaca4f71" - integrity sha512-6+B8P+5Q1mll4u7IoI7mpmYOSW3/c2r3WQoYLdqOjbIKMixJFGmN79ZjJiNMy4X2GZ4We9kQ6LfnFuczSlhcyw== +"@smithy/eventstream-serde-config-resolver@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.0.tgz#420447d1d284d41f7f070a5d92fc3686cc922581" + integrity sha512-RUQG3vQ3LX7peqqHAbmayhgrF5aTilPnazinaSGF1P0+tgM3vvIRWPHmlLIz2qFqB9LqFIxditxc8O2Z6psrRw== dependencies: - "@smithy/types" "^3.1.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@smithy/eventstream-serde-node@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.2.tgz#fff9e92983c97f07174c1bbcf7f1af47fc478a6e" - integrity sha512-DLtmGAfqxZAql8rB+HqyPlUne22u3EEVj+hxlUjgXk0hXt+SfLGK0ljzRFmiWQ3qGpHu1NdJpJA9e5JE/dJxFw== +"@smithy/eventstream-serde-node@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.0.tgz#6519523fbb429307be29b151b8ba35bcca2b6e64" + integrity sha512-baRPdMBDMBExZXIUAoPGm/hntixjt/VFpU6+VmCyiYJYzRHRxoaI1MN+5XE+hIS8AJ2GCHLMFEIOLzq9xx1EgQ== dependencies: - "@smithy/eventstream-serde-universal" "^3.0.2" - "@smithy/types" "^3.1.0" + "@smithy/eventstream-serde-universal" "^3.0.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@smithy/eventstream-serde-universal@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.2.tgz#d1704c14b0a691d0d8b4f68def68adaa20bb96d8" - integrity sha512-d3SgAIQ/s4EbU8HAHJ8m2MMJPAL30nqJktyVgvqZWNznA8PJl61gJw5gj/yjIt/Fvs3d4fU8FmPPAhdp2yr/7A== +"@smithy/eventstream-serde-universal@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.0.tgz#cb8441a73fbde4cbaa68e4a21236f658d914a073" + integrity sha512-HNFfShmotWGeAoW4ujP8meV9BZavcpmerDbPIjkJbxKbN8RsUcpRQ/2OyIxWNxXNH2GWCAxuSB7ynmIGJlQ3Dw== dependencies: - "@smithy/eventstream-codec" "^3.1.0" - "@smithy/types" "^3.1.0" + "@smithy/eventstream-codec" "^3.0.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@smithy/fetch-http-handler@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.0.2.tgz#eff4056e819b3591d1c5d472ee58c2981886920a" - integrity sha512-0nW6tLK0b7EqSsfKvnOmZCgJqnodBAnvqcrlC5dotKfklLedPTRGsQamSVbVDWyuU/QGg+YbZDJUQ0CUufJXZQ== +"@smithy/fetch-http-handler@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.0.1.tgz#dacfdf6e70d639fac4a0f57c42ce13f0ed14ff22" + integrity sha512-uaH74i5BDj+rBwoQaXioKpI0SHBJFtOVwzrCpxZxphOW0ki5jhj7dXvDMYM2IJem8TpdFvS2iC08sjOblfFGFg== dependencies: - "@smithy/protocol-http" "^4.0.1" - "@smithy/querystring-builder" "^3.0.1" - "@smithy/types" "^3.1.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/querystring-builder" "^3.0.0" + "@smithy/types" "^3.0.0" "@smithy/util-base64" "^3.0.0" tslib "^2.6.2" -"@smithy/hash-blob-browser@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.0.tgz#0002113c3214e1d4fef2c489ac7b15d0b141d2af" - integrity sha512-lKEHDN6bLzYdx5cFmdMHfYVmmTZTmjphwPBSumgkaniEYwRAXnbDEGETeuzfquS9Py1aH6cmqzXWxxkD7mV3sA== +"@smithy/hash-blob-browser@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-3.0.0.tgz#63ef4c98f74c53cbcad8ec73387c68ec4708f55b" + integrity sha512-/Wbpdg+bwJvW7lxR/zpWAc1/x/YkcqguuF2bAzkJrvXriZu1vm8r+PUdE4syiVwQg7PPR2dXpi3CLBb9qRDaVQ== dependencies: "@smithy/chunked-blob-reader" "^3.0.0" "@smithy/chunked-blob-reader-native" "^3.0.0" - "@smithy/types" "^3.1.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@smithy/hash-node@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-3.0.1.tgz#52924bcbd6a02c7f7e2d9c332f59d5adc09688a3" - integrity sha512-w2ncjgk2EYO2+WhAsSQA8owzoOSY7IL1qVytlwpnL1pFGWTjIoIh5nROkEKXY51unB63bMGZqDiVoXaFbyKDlg== +"@smithy/hash-node@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-3.0.0.tgz#f44b5fff193e241c1cdcc957b296b60f186f0e59" + integrity sha512-84qXstNemP3XS5jcof0el6+bDfjzuvhJPQTEfro3lgtbCtKgzPm3MgiS6ehXVPjeQ5+JS0HqmTz8f/RYfzHVxw== dependencies: - "@smithy/types" "^3.1.0" + "@smithy/types" "^3.0.0" "@smithy/util-buffer-from" "^3.0.0" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/hash-stream-node@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-3.1.0.tgz#80fbd12b223869862e6ab3aecc5a8fb7064b884e" - integrity sha512-OkU9vjN17yYsXTSrouctZn2iYwG4z8WSc7F50+9ogG2crOtMopkop+22j35tX2ry2i/vLRCYgnqEmBWfvnYT2g== +"@smithy/hash-stream-node@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-3.0.0.tgz#b395a8a0d2427e4a8effc56135b37cb299339f8f" + integrity sha512-J0i7de+EgXDEGITD4fxzmMX8CyCNETTIRXlxjMiNUvvu76Xn3GJ31wQR85ynlPk2wI1lqoknAFJaD1fiNDlbIA== dependencies: - "@smithy/types" "^3.1.0" + "@smithy/types" "^3.0.0" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/invalid-dependency@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-3.0.1.tgz#921787acfbe136af7ded46ae6f4b3d81c9b7e05e" - integrity sha512-RSNF/32BKygXKKMyS7koyuAq1rcdW5p5c4EFa77QenBFze9As+JiRnV9OWBh2cB/ejGZalEZjvIrMLHwJl7aGA== - dependencies: - "@smithy/types" "^3.1.0" - tslib "^2.6.2" - -"@smithy/is-array-buffer@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111" - integrity sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA== +"@smithy/invalid-dependency@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-3.0.0.tgz#21cb6b5203ee15321bfcc751f21f7a19536d4ae8" + integrity sha512-F6wBBaEFgJzj0s4KUlliIGPmqXemwP6EavgvDqYwCH40O5Xr2iMHvS8todmGVZtuJCorBkXsYLyTu4PuizVq5g== dependencies: + "@smithy/types" "^3.0.0" tslib "^2.6.2" "@smithy/is-array-buffer@^3.0.0": @@ -3778,176 +3802,176 @@ dependencies: tslib "^2.6.2" -"@smithy/md5-js@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-3.0.1.tgz#796dca16509f66da5ba380120efdbbbfc4d1ab5d" - integrity sha512-wQa0YGsR4Zb1GQLGwOOgRAbkj22P6CFGaFzu5bKk8K4HVNIC2dBlIxqZ/baF0pLiSZySAPdDZT7CdZ7GkGXt5A== +"@smithy/md5-js@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-3.0.0.tgz#6a2d1c496f4d4476a0fc84f7724d79b234c3eb13" + integrity sha512-Tm0vrrVzjlD+6RCQTx7D3Ls58S3FUH1ZCtU1MIh/qQmaOo1H9lMN2as6CikcEwgattnA9SURSdoJJ27xMcEfMA== dependencies: - "@smithy/types" "^3.1.0" + "@smithy/types" "^3.0.0" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/middleware-content-length@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-3.0.1.tgz#90bce78dfd0db978df7920ae58e420ce9ed2f79a" - integrity sha512-6QdK/VbrCfXD5/QolE2W/ok6VqxD+SM28Ds8iSlEHXZwv4buLsvWyvoEEy0322K/g5uFgPzBmZjGqesTmPL+yQ== +"@smithy/middleware-content-length@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-3.0.0.tgz#084b3d22248967885d496eb0b105d9090e8ababd" + integrity sha512-3C4s4d/iGobgCtk2tnWW6+zSTOBg1PRAm2vtWZLdriwTroFbbWNSr3lcyzHdrQHnEXYCC5K52EbpfodaIUY8sg== dependencies: - "@smithy/protocol-http" "^4.0.1" - "@smithy/types" "^3.1.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@smithy/middleware-endpoint@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.0.2.tgz#93bb575a25bb0bd5d1d18cd77157ccb2ba15112a" - integrity sha512-gWEaGYB3Bei17Oiy/F2IlUPpBazNXImytoOdJ1xbrUOaJKAOiUhx8/4FOnYLLJHdAwa9PlvJ2ULda2f/Dnwi9w== - dependencies: - "@smithy/middleware-serde" "^3.0.1" - "@smithy/node-config-provider" "^3.1.1" - "@smithy/shared-ini-file-loader" "^3.1.1" - "@smithy/types" "^3.1.0" - "@smithy/url-parser" "^3.0.1" - "@smithy/util-middleware" "^3.0.1" +"@smithy/middleware-endpoint@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.0.1.tgz#49e8defb8e892e70417bd05f1faaf207070f32c7" + integrity sha512-lQ/UOdGD4KM5kLZiAl0q8Qy3dPbynvAXKAdXnYlrA1OpaUwr+neSsVokDZpY6ZVb5Yx8jnus29uv6XWpM9P4SQ== + dependencies: + "@smithy/middleware-serde" "^3.0.0" + "@smithy/node-config-provider" "^3.1.0" + "@smithy/shared-ini-file-loader" "^3.1.0" + "@smithy/types" "^3.0.0" + "@smithy/url-parser" "^3.0.0" + "@smithy/util-middleware" "^3.0.0" tslib "^2.6.2" -"@smithy/middleware-retry@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.4.tgz#4f1a23c218fe279659c3d88ec1c18bf19938eba6" - integrity sha512-Tu+FggbLNF5G9L6Wi8o32Mg4bhlBInWlhhaFKyytGRnkfxGopxFVXJQn7sjZdFYJyTz6RZZa06tnlvavUgtoVg== - dependencies: - "@smithy/node-config-provider" "^3.1.1" - "@smithy/protocol-http" "^4.0.1" - "@smithy/service-error-classification" "^3.0.1" - "@smithy/smithy-client" "^3.1.2" - "@smithy/types" "^3.1.0" - "@smithy/util-middleware" "^3.0.1" - "@smithy/util-retry" "^3.0.1" +"@smithy/middleware-retry@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.3.tgz#8e9af1c9db4bc8904d73126225211b42b562f961" + integrity sha512-Wve1qzJb83VEU/6q+/I0cQdAkDnuzELC6IvIBwDzUEiGpKqXgX1v10FUuZGbRS6Ov/P+HHthcAoHOJZQvZNAkA== + dependencies: + "@smithy/node-config-provider" "^3.1.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/service-error-classification" "^3.0.0" + "@smithy/smithy-client" "^3.1.1" + "@smithy/types" "^3.0.0" + "@smithy/util-middleware" "^3.0.0" + "@smithy/util-retry" "^3.0.0" tslib "^2.6.2" uuid "^9.0.1" -"@smithy/middleware-serde@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-3.0.1.tgz#566ec46ee84873108c1cea26b3f3bd2899a73249" - integrity sha512-ak6H/ZRN05r5+SR0/IUc5zOSyh2qp3HReg1KkrnaSLXmncy9lwOjNqybX4L4x55/e5mtVDn1uf/gQ6bw5neJPw== +"@smithy/middleware-serde@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-3.0.0.tgz#786da6a6bc0e5e51d669dac834c19965245dd302" + integrity sha512-I1vKG1foI+oPgG9r7IMY1S+xBnmAn1ISqployvqkwHoSb8VPsngHDTOgYGYBonuOKndaWRUGJZrKYYLB+Ane6w== dependencies: - "@smithy/types" "^3.1.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@smithy/middleware-stack@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-3.0.1.tgz#9418f1295efda318c181bf3bca65173a75d133e5" - integrity sha512-fS5uT//y1SlBdkzIvgmWQ9FufwMXrHSSbuR25ygMy1CRDIZkcBMoF4oTMYNfR9kBlVBcVzlv7joFdNrFuQirPA== +"@smithy/middleware-stack@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-3.0.0.tgz#00f112bae7af5fc3bd37d4fab95ebce0f17a7774" + integrity sha512-+H0jmyfAyHRFXm6wunskuNAqtj7yfmwFB6Fp37enytp2q047/Od9xetEaUbluyImOlGnGpaVGaVfjwawSr+i6Q== dependencies: - "@smithy/types" "^3.1.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@smithy/node-config-provider@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz#a361ab228d2229b03cc2fbdfd304055c38127614" - integrity sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA== +"@smithy/node-config-provider@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-3.1.0.tgz#e962987c4e2e2b8b50397de5f4745eb21ee7bdbb" + integrity sha512-ngfB8QItUfTFTfHMvKuc2g1W60V1urIgZHqD1JNFZC2tTWXahqf2XvKXqcBS7yZqR7GqkQQZy11y/lNOUWzq7Q== dependencies: - "@smithy/property-provider" "^3.1.1" - "@smithy/shared-ini-file-loader" "^3.1.1" - "@smithy/types" "^3.1.0" + "@smithy/property-provider" "^3.1.0" + "@smithy/shared-ini-file-loader" "^3.1.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@smithy/node-http-handler@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-3.0.1.tgz#40e1ebe00aeb628a46a3a12b14ad6cabb69b576e" - integrity sha512-hlBI6MuREA4o1wBMEt+QNhUzoDtFFvwR6ecufimlx9D79jPybE/r8kNorphXOi91PgSO9S2fxRjcKCLk7Jw8zA== +"@smithy/node-http-handler@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-3.0.0.tgz#e771ea95d03e259f04b7b37e8aece8a4fffc8cdc" + integrity sha512-3trD4r7NOMygwLbUJo4eodyQuypAWr7uvPnebNJ9a70dQhVn+US8j/lCnvoJS6BXfZeF7PkkkI0DemVJw+n+eQ== dependencies: - "@smithy/abort-controller" "^3.0.1" - "@smithy/protocol-http" "^4.0.1" - "@smithy/querystring-builder" "^3.0.1" - "@smithy/types" "^3.1.0" + "@smithy/abort-controller" "^3.0.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/querystring-builder" "^3.0.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@smithy/property-provider@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-3.1.1.tgz#4849b69b83ac97e68e80d2dc0c2b98ce5950dffe" - integrity sha512-YknOMZcQkB5on+MU0DvbToCmT2YPtTETMXW0D3+/Iln7ezT+Zm1GMHhCW1dOH/X/+LkkQD9aXEoCX/B10s4Xdw== +"@smithy/property-provider@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-3.1.0.tgz#b78d4964a1016b90331cc0c770b472160361fde7" + integrity sha512-Tj3+oVhqdZgemjCiWjFlADfhvLF4C/uKDuKo7/tlEsRQ9+3emCreR2xndj970QSRSsiCEU8hZW3/8JQu+n5w4Q== dependencies: - "@smithy/types" "^3.1.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@smithy/protocol-http@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.0.1.tgz#7b57080565816f229d2391726f537e13371c7e38" - integrity sha512-eBhm9zwcFPEazc654c0BEWtxYAzrw+OhoSf5pkwKzfftWKXRoqEhwOE2Pvn30v0iAdo7Mfsfb6pi1NnZlGCMpg== +"@smithy/protocol-http@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.0.0.tgz#04df3b5674b540323f678e7c4113e8abd8b26432" + integrity sha512-qOQZOEI2XLWRWBO9AgIYuHuqjZ2csyr8/IlgFDHDNuIgLAMRx2Bl8ck5U5D6Vh9DPdoaVpuzwWMa0xcdL4O/AQ== dependencies: - "@smithy/types" "^3.1.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@smithy/querystring-builder@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-3.0.1.tgz#8fb20e1d13154661612954c5ba448e0875be6118" - integrity sha512-vKitpnG/2KOMVlx3x1S3FkBH075EROG3wcrcDaNerQNh8yuqnSL23btCD2UyX4i4lpPzNW6VFdxbn2Z25b/g5Q== +"@smithy/querystring-builder@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-3.0.0.tgz#48a9aa7b700e8409368c21bc0adf7564e001daea" + integrity sha512-bW8Fi0NzyfkE0TmQphDXr1AmBDbK01cA4C1Z7ggwMAU5RDz5AAv/KmoRwzQAS0kxXNf/D2ALTEgwK0U2c4LtRg== dependencies: - "@smithy/types" "^3.1.0" + "@smithy/types" "^3.0.0" "@smithy/util-uri-escape" "^3.0.0" tslib "^2.6.2" -"@smithy/querystring-parser@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-3.0.1.tgz#68589196fedf280aad2c0a69a2a016f78b2137cf" - integrity sha512-Qt8DMC05lVS8NcQx94lfVbZSX+2Ym7032b/JR8AlboAa/D669kPzqb35dkjkvAG6+NWmUchef3ENtrD6F+5n8Q== +"@smithy/querystring-parser@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-3.0.0.tgz#fa1ed0cee408cd4d622070fa874bc50ac1a379b7" + integrity sha512-UzHwthk0UEccV4dHzPySnBy34AWw3V9lIqUTxmozQ+wPDAO9csCWMfOLe7V9A2agNYy7xE+Pb0S6K/J23JSzfQ== dependencies: - "@smithy/types" "^3.1.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@smithy/service-error-classification@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-3.0.1.tgz#23db475d3cef726e8bf3435229e6e04e4de92430" - integrity sha512-ubFUvIePjDCyIzZ+pLETqNC6KXJ/fc6g+/baqel7Zf6kJI/kZKgjwkCI7zbUhoUuOZ/4eA/87YasVu40b/B4bA== +"@smithy/service-error-classification@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-3.0.0.tgz#06a45cb91b15b8b0d5f3b1df2b3743d2ca42f5c4" + integrity sha512-3BsBtOUt2Gsnc3X23ew+r2M71WwtpHfEDGhHYHSDg6q1t8FrWh15jT25DLajFV1H+PpxAJ6gqe9yYeRUsmSdFA== dependencies: - "@smithy/types" "^3.1.0" + "@smithy/types" "^3.0.0" -"@smithy/shared-ini-file-loader@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz#752ecd8962a660ded75d25341a48feb94f145a6f" - integrity sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g== +"@smithy/shared-ini-file-loader@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.0.tgz#a4cb9304c3be1c232ec661132ca88d177ac7a5b1" + integrity sha512-dAM7wSX0NR3qTNyGVN/nwwpEDzfV9T/3AN2eABExWmda5VqZKSsjlINqomO5hjQWGv+IIkoXfs3u2vGSNz8+Rg== dependencies: - "@smithy/types" "^3.1.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@smithy/signature-v4@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-3.1.0.tgz#cc819568c4fcbadce107901680a96e662bccc86a" - integrity sha512-m0/6LW3IQ3/JBcdhqjpkpABPTPhcejqeAn0U877zxBdNLiWAnG2WmCe5MfkUyVuvpFTPQnQwCo/0ZBR4uF5kxg== +"@smithy/signature-v4@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-3.0.0.tgz#f536d0abebfeeca8e9aab846a4042658ca07d3b7" + integrity sha512-kXFOkNX+BQHe2qnLxpMEaCRGap9J6tUGLzc3A9jdn+nD4JdMwCKTJ+zFwQ20GkY+mAXGatyTw3HcoUlR39HwmA== dependencies: "@smithy/is-array-buffer" "^3.0.0" - "@smithy/types" "^3.1.0" + "@smithy/types" "^3.0.0" "@smithy/util-hex-encoding" "^3.0.0" - "@smithy/util-middleware" "^3.0.1" + "@smithy/util-middleware" "^3.0.0" "@smithy/util-uri-escape" "^3.0.0" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/smithy-client@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.1.2.tgz#1c27ab4910bbfd6c0bc04ddd8412494e7a7daba7" - integrity sha512-f3eQpczBOFUtdT/ptw2WpUKu1qH1K7xrssrSiHYtd9TuLXkvFqb88l9mz9FHeUVNSUxSnkW1anJnw6rLwUKzQQ== - dependencies: - "@smithy/middleware-endpoint" "^3.0.2" - "@smithy/middleware-stack" "^3.0.1" - "@smithy/protocol-http" "^4.0.1" - "@smithy/types" "^3.1.0" - "@smithy/util-stream" "^3.0.2" +"@smithy/smithy-client@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.1.1.tgz#9aa770edd9b6277dc4124c924c617a436cdb670e" + integrity sha512-tj4Ku7MpzZR8cmVuPcSbrLFVxmptWktmJMwST/uIEq4sarabEdF8CbmQdYB7uJ/X51Qq2EYwnRsoS7hdR4B7rA== + dependencies: + "@smithy/middleware-endpoint" "^3.0.1" + "@smithy/middleware-stack" "^3.0.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/types" "^3.0.0" + "@smithy/util-stream" "^3.0.1" tslib "^2.6.2" -"@smithy/types@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.1.0.tgz#e2eb2e2130026a8a0631b2605c17df1975aa99d6" - integrity sha512-qi4SeCVOUPjhSSZrxxB/mB8DrmuSFUcJnD9KXjuP+7C3LV/KFV4kpuUSH3OHDZgQB9TEH/1sO/Fq/5HyaK9MPw== +"@smithy/types@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.0.0.tgz#00231052945159c64ffd8b91e8909d8d3006cb7e" + integrity sha512-VvWuQk2RKFuOr98gFhjca7fkBS+xLLURT8bUjk5XQoV0ZLm7WPwWPPY3/AwzTLuUBDeoKDCthfe1AsTUWaSEhw== dependencies: tslib "^2.6.2" -"@smithy/url-parser@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-3.0.1.tgz#5451fc7034e9eda112696d1a9508746a7f8b0521" - integrity sha512-G140IlNFlzYWVCedC4E2d6NycM1dCUbe5CnsGW1hmGt4hYKiGOw0v7lVru9WAn5T2w09QEjl4fOESWjGmCvVmg== +"@smithy/url-parser@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-3.0.0.tgz#5fdc77cd22051c1aac6531be0315bfcba0fa705d" + integrity sha512-2XLazFgUu+YOGHtWihB3FSLAfCUajVfNBXGGYjOaVKjLAuAxx3pSBY3hBgLzIgB17haf59gOG3imKqTy8mcrjw== dependencies: - "@smithy/querystring-parser" "^3.0.1" - "@smithy/types" "^3.1.0" + "@smithy/querystring-parser" "^3.0.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" "@smithy/util-base64@^3.0.0": @@ -3973,14 +3997,6 @@ dependencies: tslib "^2.6.2" -"@smithy/util-buffer-from@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz#6fc88585165ec73f8681d426d96de5d402021e4b" - integrity sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA== - dependencies: - "@smithy/is-array-buffer" "^2.2.0" - tslib "^2.6.2" - "@smithy/util-buffer-from@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz#559fc1c86138a89b2edaefc1e6677780c24594e3" @@ -3996,37 +4012,37 @@ dependencies: tslib "^2.6.2" -"@smithy/util-defaults-mode-browser@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.4.tgz#4392db3d96aa08ae161bb987ecfedc094d84b88d" - integrity sha512-sXtin3Mue3A3xo4+XkozpgPptgmRwvNPOqTvb3ANGTCzzoQgAPBNjpE+aXCINaeSMXwHmv7E2oEn2vWdID+SAQ== +"@smithy/util-defaults-mode-browser@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.3.tgz#6fff11a6c407ca1d5a1dc009768bd09271b199c2" + integrity sha512-3DFON2bvXJAukJe+qFgPV/rorG7ZD3m4gjCXHD1V5z/tgKQp5MCTCLntrd686tX6tj8Uli3lefWXJudNg5WmCA== dependencies: - "@smithy/property-provider" "^3.1.1" - "@smithy/smithy-client" "^3.1.2" - "@smithy/types" "^3.1.0" + "@smithy/property-provider" "^3.1.0" + "@smithy/smithy-client" "^3.1.1" + "@smithy/types" "^3.0.0" bowser "^2.11.0" tslib "^2.6.2" -"@smithy/util-defaults-mode-node@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.4.tgz#794b8bb3facb5f6581af8d02fcf1b42b34c103e5" - integrity sha512-CUF6TyxLh3CgBRVYgZNOPDfzHQjeQr0vyALR6/DkQkOm7rNfGEzW1BRFi88C73pndmfvoiIT7ochuT76OPz9Dw== - dependencies: - "@smithy/config-resolver" "^3.0.2" - "@smithy/credential-provider-imds" "^3.1.1" - "@smithy/node-config-provider" "^3.1.1" - "@smithy/property-provider" "^3.1.1" - "@smithy/smithy-client" "^3.1.2" - "@smithy/types" "^3.1.0" +"@smithy/util-defaults-mode-node@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.3.tgz#0b52ba9cb1138ee9076feba9a733462b2e2e6093" + integrity sha512-D0b8GJXecT00baoSQ3Iieu3k3mZ7GY8w1zmg8pdogYrGvWJeLcIclqk2gbkG4K0DaBGWrO6v6r20iwIFfDYrmA== + dependencies: + "@smithy/config-resolver" "^3.0.1" + "@smithy/credential-provider-imds" "^3.1.0" + "@smithy/node-config-provider" "^3.1.0" + "@smithy/property-provider" "^3.1.0" + "@smithy/smithy-client" "^3.1.1" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@smithy/util-endpoints@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-2.0.2.tgz#f995cca553569af43bef82f59d63b4969516df95" - integrity sha512-4zFOcBFQvifd2LSD4a1dKvfIWWwh4sWNtS3oZ7mpob/qPPmJseqKB148iT+hWCDsG//TmI+8vjYPgZdvnkYlTg== +"@smithy/util-endpoints@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-2.0.1.tgz#4ea8069bfbf3ebbcbe106b5156ff59a7a627b7dd" + integrity sha512-ZRT0VCOnKlVohfoABMc8lWeQo/JEFuPWctfNRXgTHbyOVssMOLYFUNWukxxiHRGVAhV+n3c0kPW+zUqckjVPEA== dependencies: - "@smithy/node-config-provider" "^3.1.1" - "@smithy/types" "^3.1.0" + "@smithy/node-config-provider" "^3.1.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" "@smithy/util-hex-encoding@^3.0.0": @@ -4036,31 +4052,31 @@ dependencies: tslib "^2.6.2" -"@smithy/util-middleware@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-3.0.1.tgz#3e0eabaf936e62651a0b9a7c7c3bbe43d3971c91" - integrity sha512-WRODCQtUsO7vIvfrdxS8RFPeLKcewYtaCglZsBsedIKSUGIIvMlZT5oh+pCe72I+1L+OjnZuqRNpN2LKhWA4KQ== +"@smithy/util-middleware@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-3.0.0.tgz#64d775628b99a495ca83ce982f5c83aa45f1e894" + integrity sha512-q5ITdOnV2pXHSVDnKWrwgSNTDBAMHLptFE07ua/5Ty5WJ11bvr0vk2a7agu7qRhrCFRQlno5u3CneU5EELK+DQ== dependencies: - "@smithy/types" "^3.1.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@smithy/util-retry@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-3.0.1.tgz#24037ff87a314a1ac99f80da43f579ae2352fe18" - integrity sha512-5lRtYm+8fNFEUTdqZXg5M4ppVp40rMIJfR1TpbHAhKQgPIDpWT+iYMaqgnwEbtpi9U1smyUOPv5Sg+M1neOBgw== +"@smithy/util-retry@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-3.0.0.tgz#8a0c47496aab74e1dfde4905d462ad636a8824bb" + integrity sha512-nK99bvJiziGv/UOKJlDvFF45F00WgPLKVIGUfAK+mDhzVN2hb/S33uW2Tlhg5PVBoqY7tDVqL0zmu4OxAHgo9g== dependencies: - "@smithy/service-error-classification" "^3.0.1" - "@smithy/types" "^3.1.0" + "@smithy/service-error-classification" "^3.0.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@smithy/util-stream@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-3.0.2.tgz#ed1377bfe824d8acfc105ab2d17ec4f376382cb2" - integrity sha512-n5Obp5AnlI6qHo8sbupwrcpBe6vFp4qkl0SRNuExKPNrH3ABAMG2ZszRTIUIv2b4AsFrCO+qiy4uH1Q3z1dxTA== +"@smithy/util-stream@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-3.0.1.tgz#3cf527bcd3fec82c231c38d47dd75f3364747edb" + integrity sha512-7F7VNNhAsfMRA8I986YdOY5fE0/T1/ZjFF6OLsqkvQVNP3vZ/szYDfGCyphb7ioA09r32K/0qbSFfNFU68aSzA== dependencies: - "@smithy/fetch-http-handler" "^3.0.2" - "@smithy/node-http-handler" "^3.0.1" - "@smithy/types" "^3.1.0" + "@smithy/fetch-http-handler" "^3.0.1" + "@smithy/node-http-handler" "^3.0.0" + "@smithy/types" "^3.0.0" "@smithy/util-base64" "^3.0.0" "@smithy/util-buffer-from" "^3.0.0" "@smithy/util-hex-encoding" "^3.0.0" @@ -4074,14 +4090,6 @@ dependencies: tslib "^2.6.2" -"@smithy/util-utf8@^2.0.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.3.0.tgz#dd96d7640363259924a214313c3cf16e7dd329c5" - integrity sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A== - dependencies: - "@smithy/util-buffer-from" "^2.2.0" - tslib "^2.6.2" - "@smithy/util-utf8@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-3.0.0.tgz#1a6a823d47cbec1fd6933e5fc87df975286d9d6a" @@ -4090,64 +4098,64 @@ "@smithy/util-buffer-from" "^3.0.0" tslib "^2.6.2" -"@smithy/util-waiter@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-3.0.1.tgz#62d8ff58374032aa8c7e573b1ca4234407c605bd" - integrity sha512-wwnrVQdjQxvWGOAiLmqlEhENGCcDIN+XJ/+usPOgSZObAslrCXgKlkX7rNVwIWW2RhPguTKthvF+4AoO0Z6KpA== +"@smithy/util-waiter@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-3.0.0.tgz#26bcc5bbbf1de9360a7aeb3b3919926fc6afa2bc" + integrity sha512-+fEXJxGDLCoqRKVSmo0auGxaqbiCo+8oph+4auefYjaNxjOLKSY2MxVQfRzo65PaZv4fr+5lWg+au7vSuJJ/zw== dependencies: - "@smithy/abort-controller" "^3.0.1" - "@smithy/types" "^3.1.0" + "@smithy/abort-controller" "^3.0.0" + "@smithy/types" "^3.0.0" tslib "^2.6.2" -"@storybook/addon-actions@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-8.1.9.tgz#a2c90061fc5d13e5fd0b876da0c7c4c360ce9b76" - integrity sha512-7ZefE9AER42htn4McqMXcL2RDnflesIf4SxY7pCHpL7rUoldxfZ1DGGRgyKen00H6vx1LGzLRBN9fhBUf9XqCA== +"@storybook/addon-actions@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-8.1.5.tgz#c89d2027cbac0e6b4391db23a79e20a407b949d7" + integrity sha512-XbCUGGXQ4XX/zTRgUsR1l1yZJQIWR33P/M1OEAn0HbsfwS+P87GqfApkj4N7QrMfLkUkoLtdfprp5BZul98AKA== dependencies: - "@storybook/core-events" "8.1.9" + "@storybook/core-events" "8.1.5" "@storybook/global" "^5.0.0" "@types/uuid" "^9.0.1" dequal "^2.0.2" polished "^4.2.2" uuid "^9.0.0" -"@storybook/addon-backgrounds@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-8.1.9.tgz#468c88d5456074f26dc8d0e953ab7460020f15f2" - integrity sha512-k2s7PNwy1ND7eJ7N2DnG508fztuXNH5Jq6Vbk8aoXPPRXfwybel299WRb4WJl7ZvZKcGtBoZ+mciopPkho3Lpg== +"@storybook/addon-backgrounds@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-8.1.5.tgz#dd77d8fac2df534bab2d8550fd3adf0892807e88" + integrity sha512-osAM4U8DCcKe/JGBBHoFYQi0oorNzFPwcETTy4SAc8LVqsv73SN7CyNnqCrN9Kjom9klJqB/tngvjdJ1XLu4WQ== dependencies: "@storybook/global" "^5.0.0" memoizerific "^1.11.3" ts-dedent "^2.0.0" -"@storybook/addon-controls@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-8.1.9.tgz#13deb8a220a71f2518d40f012b2339fd1044c588" - integrity sha512-B5+UFAnlu82QHX8bOHj022f3zi9rbqGxBqgLnx54ebl6ZgMEe9IGaOnGWyHjpFofy9yBX2Ti5+7ClvFhmyjAig== +"@storybook/addon-controls@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-8.1.5.tgz#c0b7272e9aaaab9db299e73a2053c04f1694cd43" + integrity sha512-O0796G3+772kohYOsR98puROgkEakNXZ9n3FXVsQQ57Ww/CIP7gFRv5VM5z+Jw0a+HQI5be6504hDeAOHrd8qQ== dependencies: - "@storybook/blocks" "8.1.9" + "@storybook/blocks" "8.1.5" dequal "^2.0.2" lodash "^4.17.21" ts-dedent "^2.0.0" -"@storybook/addon-docs@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-8.1.9.tgz#5a50f16d3527d547b1017e2069dc101a8428ab74" - integrity sha512-dRSG54gSVn4qQc6u9ROYeDu4B0wJkr+fpS2AGwav2+KAM5kNw2ecsyhyreUhc4e/AwhAhGc49d7iQ3rjOHR//A== +"@storybook/addon-docs@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-8.1.5.tgz#c837283b5e7bf782d2c7fa7cce5d6344e3f91ee7" + integrity sha512-D3kDWjOGAthbwQOnouauOmywiTnuvI4KS0E9TDBYspcufimoNve5nOlr/oo9SLS1O2Psmhi6MDJephaDDo+5Dw== dependencies: "@babel/core" "^7.24.4" "@mdx-js/react" "^3.0.0" - "@storybook/blocks" "8.1.9" - "@storybook/client-logger" "8.1.9" - "@storybook/components" "8.1.9" - "@storybook/csf-plugin" "8.1.9" - "@storybook/csf-tools" "8.1.9" + "@storybook/blocks" "8.1.5" + "@storybook/client-logger" "8.1.5" + "@storybook/components" "8.1.5" + "@storybook/csf-plugin" "8.1.5" + "@storybook/csf-tools" "8.1.5" "@storybook/global" "^5.0.0" - "@storybook/node-logger" "8.1.9" - "@storybook/preview-api" "8.1.9" - "@storybook/react-dom-shim" "8.1.9" - "@storybook/theming" "8.1.9" - "@storybook/types" "8.1.9" + "@storybook/node-logger" "8.1.5" + "@storybook/preview-api" "8.1.5" + "@storybook/react-dom-shim" "8.1.5" + "@storybook/theming" "8.1.5" + "@storybook/types" "8.1.5" "@types/react" "^16.8.0 || ^17.0.0 || ^18.0.0" fs-extra "^11.1.0" react "^16.8.0 || ^17.0.0 || ^18.0.0" @@ -4157,77 +4165,77 @@ ts-dedent "^2.0.0" "@storybook/addon-essentials@^8.0.0": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-8.1.9.tgz#6788e3fedb046b1fbdcd56e10f49af5d3f655297" - integrity sha512-VpEG+qmj7vKPMUSPKsGFwZgbm4QVM2bTqZEbW9zvPOFIbTKtrGaq/n/O0LhMramPkoQZKYKs/0i7OsEoZaOybQ== - dependencies: - "@storybook/addon-actions" "8.1.9" - "@storybook/addon-backgrounds" "8.1.9" - "@storybook/addon-controls" "8.1.9" - "@storybook/addon-docs" "8.1.9" - "@storybook/addon-highlight" "8.1.9" - "@storybook/addon-measure" "8.1.9" - "@storybook/addon-outline" "8.1.9" - "@storybook/addon-toolbars" "8.1.9" - "@storybook/addon-viewport" "8.1.9" - "@storybook/core-common" "8.1.9" - "@storybook/manager-api" "8.1.9" - "@storybook/node-logger" "8.1.9" - "@storybook/preview-api" "8.1.9" + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-8.1.5.tgz#978bc9c60c80d8f3708f0a384341bc6c966d1334" + integrity sha512-0k2D5+j2N6hso3y+rSqTlQECZ/Z/Q85eit0exx2/Rk/TI5F5HceLveA1YXyC0J291nexdF9RvjP7aCtee3WSYg== + dependencies: + "@storybook/addon-actions" "8.1.5" + "@storybook/addon-backgrounds" "8.1.5" + "@storybook/addon-controls" "8.1.5" + "@storybook/addon-docs" "8.1.5" + "@storybook/addon-highlight" "8.1.5" + "@storybook/addon-measure" "8.1.5" + "@storybook/addon-outline" "8.1.5" + "@storybook/addon-toolbars" "8.1.5" + "@storybook/addon-viewport" "8.1.5" + "@storybook/core-common" "8.1.5" + "@storybook/manager-api" "8.1.5" + "@storybook/node-logger" "8.1.5" + "@storybook/preview-api" "8.1.5" ts-dedent "^2.0.0" -"@storybook/addon-highlight@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/addon-highlight/-/addon-highlight-8.1.9.tgz#e50b65029b71e2e515877c01ecc0f54e9cfa0eba" - integrity sha512-7jcjepeP/Z6XhKXKIfMqrM72tsTwo3wAaytuVWG9mHeNTTphepqO0YXZphaEh5EhupaT0DOYWT6jVxOkiw+xpA== +"@storybook/addon-highlight@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/addon-highlight/-/addon-highlight-8.1.5.tgz#40c067b87327e7e5c0b592e783442a04481748bd" + integrity sha512-E31yrV7lmE82T57tLSm8mg50BX3lBbA4qozaVKyWohw0NrZPcrS3Z6Iyjl0dp7heoUFpE3rljHwMxADRA25HkQ== dependencies: "@storybook/global" "^5.0.0" -"@storybook/addon-measure@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/addon-measure/-/addon-measure-8.1.9.tgz#fd72c24a2a254d632e6c24cc603874e63b09b83c" - integrity sha512-YHU4XQkpA1WxAOLeqnHdX9g0ubuHHDIqLkVjixt/BHejDwLcLzfSyKiX6o4xy+0MUilFDQD2Q/psiDHkLrvnVQ== +"@storybook/addon-measure@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/addon-measure/-/addon-measure-8.1.5.tgz#d197498bcd74837ea0ef32fda08ee9839cac0844" + integrity sha512-kHiv2qq9Ws0lGQ8p7FfMKFtXO4hrRiYStG8CCp9i1IfPzLpY8S9Kl9bwnoyVyI5bwqZP1wjFQVw8sjumV6FMFw== dependencies: "@storybook/global" "^5.0.0" tiny-invariant "^1.3.1" -"@storybook/addon-outline@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/addon-outline/-/addon-outline-8.1.9.tgz#e68ef6aca5d9cb2815aa24b1ca95bd2525f75cd1" - integrity sha512-Y1jgsVtW87qBQfKFMFk8vinsjQq7/yOGygtj2PHIgZO4foOaqwVDq7ioHCogmrdOycfpeByCtT3nUFAXxZxMsw== +"@storybook/addon-outline@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/addon-outline/-/addon-outline-8.1.5.tgz#dc3452824d9c3a8189b7aa1667f8416b7876fbd0" + integrity sha512-eCXnGN24ewfvUKKpzTJP7HtPJkAexIBnQdJCw9R9Jk8IyHh7xPWsrz+haY1FQHTXZGAevoBcI4/tpG2XOumBlw== dependencies: "@storybook/global" "^5.0.0" ts-dedent "^2.0.0" -"@storybook/addon-toolbars@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-8.1.9.tgz#b9b6be1d242559ec4526fde8f78d1d16bb6cad38" - integrity sha512-aW+HsuC0iWjPSbJtxdbdGdCLXzV0dxPp8e4TPugT084ImTp+i+77xXUTl+PCylld8a51ulEssOxARewGN/QMsw== +"@storybook/addon-toolbars@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-8.1.5.tgz#1ca4e87c347a150596f29de36e1dfb165c4999cd" + integrity sha512-UxEtb4ii0FORqUuPgLycPQ0MQ4Bq2YWBft6yT00xMjUuwkld27BlrvnpaBlx+disgWwOKGKVd02f/4dbZr2s1g== -"@storybook/addon-viewport@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-8.1.9.tgz#43456235e707ea429c13dc2372b872522ec1f991" - integrity sha512-ZCoqzNWp2w9TLJL8RC0fjv1RQcuGhwI64jjlGvszZm7TxP82C1SS71X/jbx5LWc2Dyl5xMt1/yOGFXvkAB2SUg== +"@storybook/addon-viewport@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-8.1.5.tgz#86bba48b62d5bc3a9dd8cfaa0ef3c11eeeaff557" + integrity sha512-kHaYdaAiv7107GSi4TsS1wEDN4I7cdYWSaCBBSvJlvvYvULKFVMkhsDJlSioskICx6OchkIKY5LJgLZ72fxdVA== dependencies: memoizerific "^1.11.3" -"@storybook/blocks@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/blocks/-/blocks-8.1.9.tgz#51130bf7241399b91a6894f63c699ad021fe7c64" - integrity sha512-AB7icCijK2rft5kmzFF7bHuTdVIf6u5r26r4auqYxxVsHV87+k12kLvC8AyEssVIKMo+2vzImmdlhIScpCjrdQ== +"@storybook/blocks@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/blocks/-/blocks-8.1.5.tgz#a491e6f88b908f08906733a537949cc54256d909" + integrity sha512-rq8Ej5feS2BlfXOpNLDwdASkIIZJtKzLy9cUpuGftTiu06HiWAk3wpNpnn/kuunDYlZUa+qHEOSiIkTrdduwYw== dependencies: - "@storybook/channels" "8.1.9" - "@storybook/client-logger" "8.1.9" - "@storybook/components" "8.1.9" - "@storybook/core-events" "8.1.9" + "@storybook/channels" "8.1.5" + "@storybook/client-logger" "8.1.5" + "@storybook/components" "8.1.5" + "@storybook/core-events" "8.1.5" "@storybook/csf" "^0.1.7" - "@storybook/docs-tools" "8.1.9" + "@storybook/docs-tools" "8.1.5" "@storybook/global" "^5.0.0" "@storybook/icons" "^1.2.5" - "@storybook/manager-api" "8.1.9" - "@storybook/preview-api" "8.1.9" - "@storybook/theming" "8.1.9" - "@storybook/types" "8.1.9" + "@storybook/manager-api" "8.1.5" + "@storybook/preview-api" "8.1.5" + "@storybook/theming" "8.1.5" + "@storybook/types" "8.1.5" "@types/lodash" "^4.14.167" color-convert "^2.0.1" dequal "^2.0.2" @@ -4241,15 +4249,15 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/builder-manager@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/builder-manager/-/builder-manager-8.1.9.tgz#228800adaac4af2fae6e4dfb377fca6ce151e646" - integrity sha512-CmDXVrx3moUde6VWmdb49eCYHNu4e2wxeANKSsW1yEC0OLysQ9N6W9B5CuVWeoV3axVX/tKDqC83YY/008/4Qg== +"@storybook/builder-manager@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/builder-manager/-/builder-manager-8.1.5.tgz#fa72bed0bf92ebe11a2e433f810c8d1dbb0fab1a" + integrity sha512-wDiHLV+UPaUN+765WwXkocVRB2QnJ61CjLHbpWaLiJvryFJt+JQ6nAvgSalCRnZxI046ztbS9T6okhpFI011IA== dependencies: "@fal-works/esbuild-plugin-global-externals" "^2.1.2" - "@storybook/core-common" "8.1.9" - "@storybook/manager" "8.1.9" - "@storybook/node-logger" "8.1.9" + "@storybook/core-common" "8.1.5" + "@storybook/manager" "8.1.5" + "@storybook/node-logger" "8.1.5" "@types/ejs" "^3.1.1" "@yarnpkg/esbuild-plugin-pnp" "^3.0.0-rc.10" browser-assert "^1.2.1" @@ -4261,19 +4269,19 @@ process "^0.11.10" util "^0.12.4" -"@storybook/builder-webpack5@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-8.1.9.tgz#80cb185babfb9ff0176f1426970a0bf1665798d8" - integrity sha512-YiKRFXvs0A+viutkpU8ovDkDn37AulNSG2c4B/KU061m6pmXP5fewNEz9yqOPwqrASVVFdP2UensmEX/iZuCDQ== - dependencies: - "@storybook/channels" "8.1.9" - "@storybook/client-logger" "8.1.9" - "@storybook/core-common" "8.1.9" - "@storybook/core-events" "8.1.9" - "@storybook/core-webpack" "8.1.9" - "@storybook/node-logger" "8.1.9" - "@storybook/preview" "8.1.9" - "@storybook/preview-api" "8.1.9" +"@storybook/builder-webpack5@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-8.1.5.tgz#ffa8914d63589d3dd848e8fa3ea5459c288ec80a" + integrity sha512-gGVlApa0JVu0q7Ws37Kubh9e8wDKoJh23DXGIeK3EHVloL2XU9+wgP2NcUoiySvTIKPtDB7Zljg1/BXgqeOJ4w== + dependencies: + "@storybook/channels" "8.1.5" + "@storybook/client-logger" "8.1.5" + "@storybook/core-common" "8.1.5" + "@storybook/core-events" "8.1.5" + "@storybook/core-webpack" "8.1.5" + "@storybook/node-logger" "8.1.5" + "@storybook/preview" "8.1.5" + "@storybook/preview-api" "8.1.5" "@types/node" "^18.0.0" "@types/semver" "^7.3.4" browser-assert "^1.2.1" @@ -4301,33 +4309,33 @@ webpack-hot-middleware "^2.25.1" webpack-virtual-modules "^0.5.0" -"@storybook/channels@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-8.1.9.tgz#fc9a1e4753119df359284e635bcca56e2e2f9006" - integrity sha512-7dvzoHBJQDvG1PMJVLnsPw3xuQ6KMZBSOgzVrkFWi4f3j6zXjs7ADVo/uqIoLq8inziupz2himWFnUtl5moIUw== +"@storybook/channels@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-8.1.5.tgz#d00d033d318cf202ece1de728e55e85f82242e74" + integrity sha512-R+puP4tWYzQUbpIp8sX6U5oI+ZUevVOaFxXGaAN3PRXjIRC38oKTVWzj/G6GdziVFzN6rDn+JsYPmiRMYo1sYg== dependencies: - "@storybook/client-logger" "8.1.9" - "@storybook/core-events" "8.1.9" + "@storybook/client-logger" "8.1.5" + "@storybook/core-events" "8.1.5" "@storybook/global" "^5.0.0" telejson "^7.2.0" tiny-invariant "^1.3.1" -"@storybook/cli@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/cli/-/cli-8.1.9.tgz#82338208df16eeffc341b9f3a1ccb09a2334adf5" - integrity sha512-+4DQJf5yrdmKrAs8sx0WvKu/ja49oOLQU2MxRPKhXW3bxDFjkTYvWuCKwSbMwUa7Npt96CK3bwAPP53jz/+mXA== +"@storybook/cli@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/cli/-/cli-8.1.5.tgz#17bc7014100b1bb227433ecec71137115c5937ff" + integrity sha512-VEYluZEMleNEnD5wTD90KTh03pwjvQwEEmzHAJQJdLbWTAcgBxZ3Gb45nbUPauSqBL+HdJx0QXF8Ielk+iBttw== dependencies: "@babel/core" "^7.24.4" "@babel/types" "^7.24.0" "@ndelangen/get-tarball" "^3.0.7" - "@storybook/codemod" "8.1.9" - "@storybook/core-common" "8.1.9" - "@storybook/core-events" "8.1.9" - "@storybook/core-server" "8.1.9" - "@storybook/csf-tools" "8.1.9" - "@storybook/node-logger" "8.1.9" - "@storybook/telemetry" "8.1.9" - "@storybook/types" "8.1.9" + "@storybook/codemod" "8.1.5" + "@storybook/core-common" "8.1.5" + "@storybook/core-events" "8.1.5" + "@storybook/core-server" "8.1.5" + "@storybook/csf-tools" "8.1.5" + "@storybook/node-logger" "8.1.5" + "@storybook/telemetry" "8.1.5" + "@storybook/types" "8.1.5" "@types/semver" "^7.3.4" "@yarnpkg/fslib" "2.10.3" "@yarnpkg/libzip" "2.3.0" @@ -4354,25 +4362,25 @@ tiny-invariant "^1.3.1" ts-dedent "^2.0.0" -"@storybook/client-logger@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-8.1.9.tgz#269ba7f27dd80fedfc8730caa945e663a2d80b1e" - integrity sha512-sHX0UhAquhVCtbRtDNN5Ura8hUxRjZWKgQKt8NWQIt9hOSSurGJE3+93OzNAYDp54kh77QKY3qdZCgAJZuWZPw== +"@storybook/client-logger@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-8.1.5.tgz#aa4a6ce4ca46fdfe12539e571f9059a479c8ae43" + integrity sha512-zd+aENXnOHsxBATppELmhw/UywLzCxQjz/8i/xkUjeTRB4Ggp0hJlOUdJUEdIJz631ydyytfvM70ktBj9gMl1w== dependencies: "@storybook/global" "^5.0.0" -"@storybook/codemod@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/codemod/-/codemod-8.1.9.tgz#e3f8642cfaf902e35e4da91a115c6019fc0026c8" - integrity sha512-thTdwiAO/eUUyiCzgkyGjA4fE3BAdXqf3WdTRjH4Vqk4yby9EalwcBitkj/M6bCDGjdoxU2q2ByUDD9opwyMiw== +"@storybook/codemod@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/codemod/-/codemod-8.1.5.tgz#ee8e69834ec9cf3f543f5ba0ed5afdd9c26b57dc" + integrity sha512-eGoYozT2XPfsIFrzm4cJo9tRTX0yuK1y4uTYmKvnomezHu5kiY8qo2fUzQa5DHxiAzRDTpGlQTzb0PsxHOxYoA== dependencies: "@babel/core" "^7.24.4" "@babel/preset-env" "^7.24.4" "@babel/types" "^7.24.0" "@storybook/csf" "^0.1.7" - "@storybook/csf-tools" "8.1.9" - "@storybook/node-logger" "8.1.9" - "@storybook/types" "8.1.9" + "@storybook/csf-tools" "8.1.5" + "@storybook/node-logger" "8.1.5" + "@storybook/types" "8.1.5" "@types/cross-spawn" "^6.0.2" cross-spawn "^7.0.3" globby "^14.0.1" @@ -4382,31 +4390,31 @@ recast "^0.23.5" tiny-invariant "^1.3.1" -"@storybook/components@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-8.1.9.tgz#dd71d7fa4ad19411533b9fdc1d01c1f50bb1fe00" - integrity sha512-YGDYTJfobtNDBJrvXNgmExX3LGnb9jGPGdroS4uHewLFaqEI3Fqu3RiFLaJf40TlZ27uWLprysdLRol8j+wYEw== +"@storybook/components@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-8.1.5.tgz#43504e04525b94ed750bf941016b5c68d5a12c9e" + integrity sha512-IxoT2pH7V98gF0zDAMUuq9sUZPg0vvQ9Y+A13HeYHvaY25XdesXVMbdzEd6SpeLYmfPykMPIAEcADfqeM6eXfA== dependencies: "@radix-ui/react-dialog" "^1.0.5" "@radix-ui/react-slot" "^1.0.2" - "@storybook/client-logger" "8.1.9" + "@storybook/client-logger" "8.1.5" "@storybook/csf" "^0.1.7" "@storybook/global" "^5.0.0" "@storybook/icons" "^1.2.5" - "@storybook/theming" "8.1.9" - "@storybook/types" "8.1.9" + "@storybook/theming" "8.1.5" + "@storybook/types" "8.1.5" memoizerific "^1.11.3" util-deprecate "^1.0.2" -"@storybook/core-common@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-8.1.9.tgz#1292d4ba5ed69cdeaf7fa1f0634e13f2a77f3aa5" - integrity sha512-+KReoo41FUknTxk3fbnoul995SnZdKAVSK6MuqKOQnC9PH6bh864k6i1LShVZx/wk3n25h9xorD3UgyRI6sZ0w== +"@storybook/core-common@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-8.1.5.tgz#273ad15cb35705e46f1806d0cc733a1a62d79cd5" + integrity sha512-1QDOT6KPZ9KV7Gs1yyqzvSwGBmNSUB33gckUldSBF4aqP+tZ7W5JIQ6/YTtp3V02sEokZGdL9Ud4LczQxTgy3A== dependencies: - "@storybook/core-events" "8.1.9" - "@storybook/csf-tools" "8.1.9" - "@storybook/node-logger" "8.1.9" - "@storybook/types" "8.1.9" + "@storybook/core-events" "8.1.5" + "@storybook/csf-tools" "8.1.5" + "@storybook/node-logger" "8.1.5" + "@storybook/types" "8.1.5" "@yarnpkg/fslib" "2.10.3" "@yarnpkg/libzip" "2.3.0" chalk "^4.1.0" @@ -4433,37 +4441,37 @@ ts-dedent "^2.0.0" util "^0.12.4" -"@storybook/core-events@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-8.1.9.tgz#20a7c2afc1a0fdedc09592e05249261d069b2b03" - integrity sha512-c8MnBqUtTvIBNoDBBQQrFEy8pNAagcDryh5FM+T1SPBsH6j3fRSZwXMc6vvW2BYkQxJ67kpd7xrH7uapqhNEcg== +"@storybook/core-events@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-8.1.5.tgz#d921984e12b27aaaa623499a7ac0c3eea5e96264" + integrity sha512-fgwbrHoLtSX6kfmamTGJqD+KfuEgun8cc4mWKZK094ByaqbSjhnOyeYO1sfVk8qst7QTFlOfhLAUe4cz1z149A== dependencies: "@storybook/csf" "^0.1.7" ts-dedent "^2.0.0" -"@storybook/core-server@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-8.1.9.tgz#f92d3a31e7d27deaf14e55a98f6b07c8e1fb73d5" - integrity sha512-bn3M264vr3GY9kgAdRRIUdVV4PcUqtYvttQ/h6XDVJWC1UYUQW49zQNxQLQUXSQo4KLISnvTKHmP5qgbY6BASQ== +"@storybook/core-server@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-8.1.5.tgz#24a6054149f450c795d68c23790613c13f041881" + integrity sha512-y16W2sg5KIHG6qgbd+a0nBUYHAgiUpPDFF7cdcIpbeOIoqFn+6ECp93MVefukumiSj3sQiJFU/tSm2A8apGltw== dependencies: "@aw-web-design/x-default-browser" "1.4.126" "@babel/core" "^7.24.4" "@babel/parser" "^7.24.4" "@discoveryjs/json-ext" "^0.5.3" - "@storybook/builder-manager" "8.1.9" - "@storybook/channels" "8.1.9" - "@storybook/core-common" "8.1.9" - "@storybook/core-events" "8.1.9" + "@storybook/builder-manager" "8.1.5" + "@storybook/channels" "8.1.5" + "@storybook/core-common" "8.1.5" + "@storybook/core-events" "8.1.5" "@storybook/csf" "^0.1.7" - "@storybook/csf-tools" "8.1.9" + "@storybook/csf-tools" "8.1.5" "@storybook/docs-mdx" "3.1.0-next.0" "@storybook/global" "^5.0.0" - "@storybook/manager" "8.1.9" - "@storybook/manager-api" "8.1.9" - "@storybook/node-logger" "8.1.9" - "@storybook/preview-api" "8.1.9" - "@storybook/telemetry" "8.1.9" - "@storybook/types" "8.1.9" + "@storybook/manager" "8.1.5" + "@storybook/manager-api" "8.1.5" + "@storybook/node-logger" "8.1.5" + "@storybook/preview-api" "8.1.5" + "@storybook/telemetry" "8.1.5" + "@storybook/types" "8.1.5" "@types/detect-port" "^1.3.0" "@types/diff" "^5.0.9" "@types/node" "^18.0.0" @@ -4478,6 +4486,7 @@ express "^4.17.3" fs-extra "^11.1.0" globby "^14.0.1" + ip "^2.0.1" lodash "^4.17.21" open "^8.4.0" pretty-hrtime "^1.0.3" @@ -4492,36 +4501,36 @@ watchpack "^2.2.0" ws "^8.2.3" -"@storybook/core-webpack@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/core-webpack/-/core-webpack-8.1.9.tgz#33b2f0dc0fe54fa5147d86b734395448e09689ae" - integrity sha512-BuTuotH62S7izi3x04WXtPqBFU98qBB87z+GiEEerCMk4l2+rPKyKdkZHULhhH+0vzstLE39hq2YrWdqjdfwqA== +"@storybook/core-webpack@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/core-webpack/-/core-webpack-8.1.5.tgz#2dcdb0c7d9d3549aca925ccd4aebb09aea94a2c4" + integrity sha512-yXixldqg6gGT0OGWuWd52YZycgTrqiPlVHsi91SPtQJSaj3YRS2cM/Giq+gPTE0Zb9+Izq8QEnkyr8B4MfvGbQ== dependencies: - "@storybook/core-common" "8.1.9" - "@storybook/node-logger" "8.1.9" - "@storybook/types" "8.1.9" + "@storybook/core-common" "8.1.5" + "@storybook/node-logger" "8.1.5" + "@storybook/types" "8.1.5" "@types/node" "^18.0.0" ts-dedent "^2.0.0" -"@storybook/csf-plugin@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/csf-plugin/-/csf-plugin-8.1.9.tgz#f535fe9dfd6608c0f4c1feebfd80002043d69ebe" - integrity sha512-OC3Z7lx5Tt3iNqVpfAykCKhmHyWXwjPvK0C0RubmKLRWdH66aKp2SzvqJSFppRGZySWKKJqSBGtjB/AsG/Do4Q== +"@storybook/csf-plugin@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/csf-plugin/-/csf-plugin-8.1.5.tgz#38a2a04c8010bde0eede907b1bf323e23c16f2c8" + integrity sha512-p6imdhlcm2iEeCU+3BDDR1fuw+u9sOQDlQQbTLYhBDvjy3lydp3W0erWo5aUANhQRU2uobZf4wZ52MLrENt+dQ== dependencies: - "@storybook/csf-tools" "8.1.9" + "@storybook/csf-tools" "8.1.5" unplugin "^1.3.1" -"@storybook/csf-tools@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-8.1.9.tgz#7830ccd2a374b6a32318ba6074021c7a1a8e27da" - integrity sha512-nCYGNJOoBZjAdD1blTgS8/O0HwXaZ4cwUd8G9pQbsyt/cSW65clATeEV1rTTcR+G9JHnZBQ3jLAnH2dbFY0c8w== +"@storybook/csf-tools@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-8.1.5.tgz#779a8158cf3ab40da1a68e3d1d3499cc86494ccc" + integrity sha512-jOfUo0arlaG4LlsdWaRfZCS0I1FhUnkf06ThzRBrrp8mFAPtOpf9iW16J3fYMS5vAdE/v+Z1RxuTRich4/JGdQ== dependencies: "@babel/generator" "^7.24.4" "@babel/parser" "^7.24.4" "@babel/traverse" "^7.24.1" "@babel/types" "^7.24.0" "@storybook/csf" "^0.1.7" - "@storybook/types" "8.1.9" + "@storybook/types" "8.1.5" fs-extra "^11.1.0" recast "^0.23.5" ts-dedent "^2.0.0" @@ -4538,15 +4547,15 @@ resolved "https://registry.yarnpkg.com/@storybook/docs-mdx/-/docs-mdx-3.1.0-next.0.tgz#9567c6eb621110dcf6554923a975238953d06305" integrity sha512-t4syFIeSyufieNovZbLruPt2DmRKpbwL4fERCZ1MifWDRIORCKLc4NCEHy+IqvIqd71/SJV2k4B51nF7vlJfmQ== -"@storybook/docs-tools@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/docs-tools/-/docs-tools-8.1.9.tgz#a657c233d928bb58c5bf73f05627c627d4ae0512" - integrity sha512-ZGtlldQARXG+v8KtNq5dxtAfPLsaLFuV4gJQ4MHXcspQSKtQ6fq5k2IkxhKhDg4EEQ/lhSl8vUxws+W79xWbbg== +"@storybook/docs-tools@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/docs-tools/-/docs-tools-8.1.5.tgz#fd6fa4db0aa6e08cbf60bc1d41bd4d0e74139e74" + integrity sha512-zlHv8fi1Bw8RbjkGGBJoO/RbM41bwxU1kV76TPQUyqQmzqPRsHi3zt+8bdddQLNrC6rhTF+Cj3yEdPfTZrB0aA== dependencies: - "@storybook/core-common" "8.1.9" - "@storybook/core-events" "8.1.9" - "@storybook/preview-api" "8.1.9" - "@storybook/types" "8.1.9" + "@storybook/core-common" "8.1.5" + "@storybook/core-events" "8.1.5" + "@storybook/preview-api" "8.1.5" + "@storybook/types" "8.1.5" "@types/doctrine" "^0.0.3" assert "^2.1.0" doctrine "^3.0.0" @@ -4562,20 +4571,20 @@ resolved "https://registry.yarnpkg.com/@storybook/icons/-/icons-1.2.9.tgz#bb4a51a79e186b62e2dd0e04928b8617ac573838" integrity sha512-cOmylsz25SYXaJL/gvTk/dl3pyk7yBFRfeXTsHvTA3dfhoU/LWSq0NKL9nM7WBasJyn6XPSGnLS4RtKXLw5EUg== -"@storybook/manager-api@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/manager-api/-/manager-api-8.1.9.tgz#4d40383446f72ecd308e623e23e898335c442eda" - integrity sha512-iafn/C9Bg9UHae7FoL5rNLCeQQnzvm+kKRlQzP5iVSJurnaYnajzej4baoZmF/eZJTFLdyp8klsqcl+NLJh8iA== +"@storybook/manager-api@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/manager-api/-/manager-api-8.1.5.tgz#1f1a8875cbc19fad5435f670943207158dc76551" + integrity sha512-iVP7FOKDf9L7zWCb8C2XeZjWSILS3hHeNwILvd9YSX9dg9du41kJYahsAHxDCR/jp/gv0ZM/V0vuHzi+naVPkQ== dependencies: - "@storybook/channels" "8.1.9" - "@storybook/client-logger" "8.1.9" - "@storybook/core-events" "8.1.9" + "@storybook/channels" "8.1.5" + "@storybook/client-logger" "8.1.5" + "@storybook/core-events" "8.1.5" "@storybook/csf" "^0.1.7" "@storybook/global" "^5.0.0" "@storybook/icons" "^1.2.5" - "@storybook/router" "8.1.9" - "@storybook/theming" "8.1.9" - "@storybook/types" "8.1.9" + "@storybook/router" "8.1.5" + "@storybook/theming" "8.1.5" + "@storybook/types" "8.1.5" dequal "^2.0.2" lodash "^4.17.21" memoizerific "^1.11.3" @@ -4583,25 +4592,25 @@ telejson "^7.2.0" ts-dedent "^2.0.0" -"@storybook/manager@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/manager/-/manager-8.1.9.tgz#6cea5f8d1c0462772f38ec150525d594d8da8685" - integrity sha512-sp1N7ZgOtGK5uhCgwuPQlJ4JYKr3TyNeahotwAf2FUb5n70YyXDzqoqO8q8H0y9NarX+EcP1gJ4GmpT9+qTxsQ== - -"@storybook/node-logger@8.1.9", "@storybook/node-logger@^8.0.0": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-8.1.9.tgz#6abc3fd2d37e1dc88404390b9e125ea4cc24c856" - integrity sha512-X5YGkJOui+m3TXqbf7HODzrf4VdzamtlUXlD08Qm36JJD/qJJZVhSivzkQR4uom/VW+ejChM2ETgw41SrK0vJA== - -"@storybook/preset-react-webpack@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/preset-react-webpack/-/preset-react-webpack-8.1.9.tgz#cf2a2a638922b9a92c03603ffb4f8d606acc591d" - integrity sha512-ME1wdEeWrlEV0VoU1K/pE7UpWhowCMJDQ3JZGTdsN/UuJkjD3OtRmN5Rv3OnWL2+e5oYWLdXwQ6BoEz4Biwx7Q== - dependencies: - "@storybook/core-webpack" "8.1.9" - "@storybook/docs-tools" "8.1.9" - "@storybook/node-logger" "8.1.9" - "@storybook/react" "8.1.9" +"@storybook/manager@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/manager/-/manager-8.1.5.tgz#56cf0b93485c2d12ca71d4e3c90ca9bf519d3126" + integrity sha512-qMYwD1cXW0hJ3pMmdMlbsqktVBlsjsqwMH5PBzAN4FoWiCQ/yHeAnDXRUgFFaLcORS72h9H/cQuJ+p//RdeURg== + +"@storybook/node-logger@8.1.5", "@storybook/node-logger@^8.0.0": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-8.1.5.tgz#c0c064b3ebdc0b3c97b7f449ed96ab59c484cab6" + integrity sha512-9qwPX/uGhdHaVjeVUSwJUSbKX7g9goyhGYdKVuCEyl7vHR9Kp7Zkag2sEHmVdd9ixTea3jk2GZQEbnBDNQNGnw== + +"@storybook/preset-react-webpack@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/preset-react-webpack/-/preset-react-webpack-8.1.5.tgz#25d9f65b2ef7a5217bc7994fe43f27d456c327e8" + integrity sha512-OiizVxDT5b7dORO8IYtNjQnrke+vgRgRPw/JSfIzWoYakDCFgui86BZ4Zx/1eecztXtQOem4bOfc7GLep5VkpA== + dependencies: + "@storybook/core-webpack" "8.1.5" + "@storybook/docs-tools" "8.1.5" + "@storybook/node-logger" "8.1.5" + "@storybook/react" "8.1.5" "@storybook/react-docgen-typescript-plugin" "1.0.6--canary.9.0c3f3b7.0" "@types/node" "^18.0.0" "@types/semver" "^7.3.4" @@ -4614,17 +4623,17 @@ tsconfig-paths "^4.2.0" webpack "5" -"@storybook/preview-api@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/preview-api/-/preview-api-8.1.9.tgz#215577cc2a3d496d2770fa452351b870ba811d87" - integrity sha512-deZoKsTHMbpzGOhboVdT/MHhafPKQyxo2tj1Zrb0GFfpabAUnJzVXRr93P5qCOKCuPQEwQyZx0ScW5qzY2JTrQ== +"@storybook/preview-api@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/preview-api/-/preview-api-8.1.5.tgz#2577f95022922dd3e9a75445756d21591e58de5f" + integrity sha512-pv0aT5WbnSYR7KWQgy3jLfuBM0ocYG6GTcmZLREW5554oiBPHhzNFv+ZrBI47RzbrbFxq1h5dj4v8lkEcKIrbA== dependencies: - "@storybook/channels" "8.1.9" - "@storybook/client-logger" "8.1.9" - "@storybook/core-events" "8.1.9" + "@storybook/channels" "8.1.5" + "@storybook/client-logger" "8.1.5" + "@storybook/core-events" "8.1.5" "@storybook/csf" "^0.1.7" "@storybook/global" "^5.0.0" - "@storybook/types" "8.1.9" + "@storybook/types" "8.1.5" "@types/qs" "^6.9.5" dequal "^2.0.2" lodash "^4.17.21" @@ -4634,10 +4643,10 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/preview@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/preview/-/preview-8.1.9.tgz#1b3d9fe498e4f4637d31af5853b06593580e91b0" - integrity sha512-yLwe9RJRlF+h9D73pyo4fUXFxN/krTgLKT08IoyWwq7/onzVlujYdDl56EsM+Aw5OktBuwAvTiaw0WCdiFP4sA== +"@storybook/preview@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/preview/-/preview-8.1.5.tgz#3d1e91d3596b0e0736da80ba6f8a5ffb323f7d18" + integrity sha512-8qNzK/5fCjfWcup5w3UxJXMAUp4+iOdh+vO+vDIJWSbPXRPtuarSM/tv/12N7hz/zvCpGLGBql0BE+oyC0bmhw== "@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0": version "1.0.6--canary.9.0c3f3b7.0" @@ -4652,33 +4661,33 @@ react-docgen-typescript "^2.2.2" tslib "^2.0.0" -"@storybook/react-dom-shim@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/react-dom-shim/-/react-dom-shim-8.1.9.tgz#c93ab656568171b2c5e4d5f139ce3397b2ba1bee" - integrity sha512-nRpw1SxkSCf8+MrsgL37lpihcr0fwtG0tHShW6F2+Lrx0nlzaOTH/VOvAwZJLNYpqddqln6vQ6Yk7Wxvw2IIkw== +"@storybook/react-dom-shim@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/react-dom-shim/-/react-dom-shim-8.1.5.tgz#5f97c0b278d784c4eb736dc463425b81c7e75bb8" + integrity sha512-eyHSngIBHeFT4vVkQTN2+c/mSKCPrb8uPpWbrc3ihGBKvL/656erWNmiUVnY3zuQvCBPz2q2Vy3v2Pr+nvfOTw== "@storybook/react-webpack5@^8.0.0": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/react-webpack5/-/react-webpack5-8.1.9.tgz#0f5319e9ff8c0dcc05093ef43e87638ce7c7b8a3" - integrity sha512-vVTO2ZciIdUr6hfC1hmwWhb/0xyU/jguNVudjRdv4Qr33aUYrhcBYQybSzGl/WBunJ5Qc8pP2GhffpoI92+BZg== - dependencies: - "@storybook/builder-webpack5" "8.1.9" - "@storybook/preset-react-webpack" "8.1.9" - "@storybook/react" "8.1.9" - "@storybook/types" "8.1.9" + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/react-webpack5/-/react-webpack5-8.1.5.tgz#2dc4fe138aa7bc476a76b24527af3d352d68796d" + integrity sha512-XWHfSco08KmwjBbxFxi1WuG5bMipPkdJEUGyJqqqcVAP6BPFeYsO0PPai9CRJHlFSdQ3MGyUdY/Wy42JmRUocg== + dependencies: + "@storybook/builder-webpack5" "8.1.5" + "@storybook/preset-react-webpack" "8.1.5" + "@storybook/react" "8.1.5" + "@storybook/types" "8.1.5" "@types/node" "^18.0.0" -"@storybook/react@8.1.9", "@storybook/react@^8.0.0": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/react/-/react-8.1.9.tgz#5490423b59f846674591e2bf49180802717a7870" - integrity sha512-linHAtKslwcZaJDsVzH+tayX1cJtdPfh6bJlEaKxolO9xZ3vSiyK4D3u2DWLeiETx+9qyoS/qmWL/z7I8ijvfg== +"@storybook/react@8.1.5", "@storybook/react@^8.0.0": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/react/-/react-8.1.5.tgz#fb852039f5eb732e479912fe8bb01655d83a0a5e" + integrity sha512-Yr0Z1FQPKFnc3jI7UbNYyi5K6zoFRZlac7xzBMT4q+bUtl0g3fmYTDFisCwK8I30qE6r01EjzNvaTU75PqXkMw== dependencies: - "@storybook/client-logger" "8.1.9" - "@storybook/docs-tools" "8.1.9" + "@storybook/client-logger" "8.1.5" + "@storybook/docs-tools" "8.1.5" "@storybook/global" "^5.0.0" - "@storybook/preview-api" "8.1.9" - "@storybook/react-dom-shim" "8.1.9" - "@storybook/types" "8.1.9" + "@storybook/preview-api" "8.1.5" + "@storybook/react-dom-shim" "8.1.5" + "@storybook/types" "8.1.5" "@types/escodegen" "^0.0.6" "@types/estree" "^0.0.51" "@types/node" "^18.0.0" @@ -4695,45 +4704,45 @@ type-fest "~2.19" util-deprecate "^1.0.2" -"@storybook/router@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/router/-/router-8.1.9.tgz#0f91c64f72bbceb6aec3a69703dd21300d1232e1" - integrity sha512-b7e/pnqfYLD3oxdStnAZI+Gxp0Bodk3q5Jo9FUoiSNZaa3Pu8conq+jsyyXT19uDZtWwOursBKVvDM2/dtHGLg== +"@storybook/router@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/router/-/router-8.1.5.tgz#e1dd831136e874df833286fd76554958af6132fa" + integrity sha512-DCwvAswlbLhQu6REPV04XNRhtPvsrRqHjMHKzjlfs+qYJWY7Egkofy05qlegqjkMDve33czfnRGBm0C16IydkA== dependencies: - "@storybook/client-logger" "8.1.9" + "@storybook/client-logger" "8.1.5" memoizerific "^1.11.3" qs "^6.10.0" -"@storybook/telemetry@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/telemetry/-/telemetry-8.1.9.tgz#4eb79307a03c94536634c3dfc1ea8722e427263a" - integrity sha512-ayNt4g6MKIQCj5fPmB2WhYbEEH+AMVswUOedFp2DtPojeDnVJMp38lSFykTbjaq+/HrDpnoZn6fG4pd+05N+dg== +"@storybook/telemetry@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/telemetry/-/telemetry-8.1.5.tgz#5fa3dae7f85a5749733928acc1e7deab5e3ca1cf" + integrity sha512-QbB1Ox7oBaCvIF2TacFjPLi1XYeHxSPeZUuFXeE+tSMdvvWZzYLnXfj/oISmV6Q+X5VZfyJVMrZ2LfeW9CuFNg== dependencies: - "@storybook/client-logger" "8.1.9" - "@storybook/core-common" "8.1.9" - "@storybook/csf-tools" "8.1.9" + "@storybook/client-logger" "8.1.5" + "@storybook/core-common" "8.1.5" + "@storybook/csf-tools" "8.1.5" chalk "^4.1.0" detect-package-manager "^2.0.1" fetch-retry "^5.0.2" fs-extra "^11.1.0" read-pkg-up "^7.0.1" -"@storybook/theming@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-8.1.9.tgz#4b9ab1b4d0963fb43a7ccf07525cbd1ebcfbaef8" - integrity sha512-CVM3F4Fa9cIFL4u/BhbANWytShBFeFBZeCFwvcJizJUL+nSgVlxeYilxwQB/1AxyJn/+OprW3nCw5aSbui/EEA== +"@storybook/theming@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-8.1.5.tgz#8eb0718907ec443cfca1b73491f5e99df65930af" + integrity sha512-E4z1t49fMbVvd/t2MSL0Ecp5zbqsU/QfWBX/eorJ+m+Xc9skkwwG5qf/FnP9x4RZ9KaX8U8+862t0eafVvf4Tw== dependencies: "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1" - "@storybook/client-logger" "8.1.9" + "@storybook/client-logger" "8.1.5" "@storybook/global" "^5.0.0" memoizerific "^1.11.3" -"@storybook/types@8.1.9": - version "8.1.9" - resolved "https://registry.yarnpkg.com/@storybook/types/-/types-8.1.9.tgz#da363c3ef6252e165a4ab886088edd22ac1ac7c4" - integrity sha512-temr7cNoBwu/+EF0jZ7aIfHtqwMqyevPLRfl/emkZM2t751NxbTkP1kxvfk9I0L8wF7mvVHXWn2iIM3QBqzWDw== +"@storybook/types@8.1.5": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@storybook/types/-/types-8.1.5.tgz#627cac55e8034deed4b763327ff938c84c541a05" + integrity sha512-/PfAZh1xtXN2MvAZZKpiL/nPkC3bZj8BQ7P7z5a/aQarP+y7qdXuoitYQ6oOH3rkaiYywmkWzA/y4iW70KXLKg== dependencies: - "@storybook/channels" "8.1.9" + "@storybook/channels" "8.1.5" "@types/express" "^4.7.0" file-system-cache "2.3.0" @@ -4766,11 +4775,11 @@ pretty-format "^27.0.2" "@testing-library/jest-dom@^6.0.0": - version "6.4.6" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.4.6.tgz#ec1df8108651bed5475534955565bed88c6732ce" - integrity sha512-8qpnGVincVDLEcQXWaHOf6zmlbwTKc6Us6PPu4CRnPXCzo2OGBS5cwgMMOWdxDpEz1mkbvXHpEy99M5Yvt682w== + version "6.4.5" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.4.5.tgz#badb40296477149136dabef32b572ddd3b56adf1" + integrity sha512-AguB9yvTXmCnySBP1lWjfNNUwpbElsaQ567lt2VdGqAdHtpieLgjmcVyv1q7PMIvLbgpDdkWV5Ydv3FEejyp2A== dependencies: - "@adobe/css-tools" "^4.4.0" + "@adobe/css-tools" "^4.3.2" "@babel/runtime" "^7.9.2" aria-query "^5.0.0" chalk "^3.0.0" @@ -5241,9 +5250,9 @@ "@types/lodash" "*" "@types/lodash@*", "@types/lodash@^4.14.167": - version "4.17.5" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.5.tgz#e6c29b58e66995d57cd170ce3e2a61926d55ee04" - integrity sha512-MBIOHVZqVqgfro1euRDWX7OO0fBVUUMrN6Pwm8LQsz8cWhEpihlvR70ENj3f40j58TNxZaWv2ndSkInykNBBJw== + version "4.17.4" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.4.tgz#0303b64958ee070059e3a7184048a55159fe20b7" + integrity sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ== "@types/mdx@^2.0.0": version "2.0.13" @@ -5293,9 +5302,9 @@ "@types/node" "*" "@types/node@*", "@types/node@^20.0.0", "@types/node@^20.12.13", "@types/node@^20.9.0": - version "20.14.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.2.tgz#a5f4d2bcb4b6a87bffcaa717718c5a0f208f4a18" - integrity sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q== + version "20.14.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.1.tgz#2434dbcb1f039e31f2c0e9969da93f52cf6348f3" + integrity sha512-T2MzSGEu+ysB/FkWfqmhV3PLyQlowdptmmgD20C6QxsS8Fmv5SjpZ1ayXaEC0S21/h5UJ9iA6W/5vSNU5l00OA== dependencies: undici-types "~5.26.4" @@ -5537,61 +5546,61 @@ "@types/node" "*" "@typescript-eslint/eslint-plugin@^7.0.1": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.13.0.tgz#3cdeb5d44d051b21a9567535dd90702b2a42c6ff" - integrity sha512-FX1X6AF0w8MdVFLSdqwqN/me2hyhuQg4ykN6ZpVhh1ij/80pTvDKclX1sZB9iqex8SjQfVhwMKs3JtnnMLzG9w== + version "7.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.12.0.tgz#f87a32e8972b8a60024f2f8f12205e7c8108bc41" + integrity sha512-7F91fcbuDf/d3S8o21+r3ZncGIke/+eWk0EpO21LXhDfLahriZF9CGj4fbAetEjlaBdjdSm9a6VeXbpbT6Z40Q== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "7.13.0" - "@typescript-eslint/type-utils" "7.13.0" - "@typescript-eslint/utils" "7.13.0" - "@typescript-eslint/visitor-keys" "7.13.0" + "@typescript-eslint/scope-manager" "7.12.0" + "@typescript-eslint/type-utils" "7.12.0" + "@typescript-eslint/utils" "7.12.0" + "@typescript-eslint/visitor-keys" "7.12.0" graphemer "^1.4.0" ignore "^5.3.1" natural-compare "^1.4.0" ts-api-utils "^1.3.0" "@typescript-eslint/parser@^7.0.1": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.13.0.tgz#9489098d68d57ad392f507495f2b82ce8b8f0a6b" - integrity sha512-EjMfl69KOS9awXXe83iRN7oIEXy9yYdqWfqdrFAYAAr6syP8eLEFI7ZE4939antx2mNgPRW/o1ybm2SFYkbTVA== - dependencies: - "@typescript-eslint/scope-manager" "7.13.0" - "@typescript-eslint/types" "7.13.0" - "@typescript-eslint/typescript-estree" "7.13.0" - "@typescript-eslint/visitor-keys" "7.13.0" + version "7.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.12.0.tgz#8761df3345528b35049353db80010b385719b1c3" + integrity sha512-dm/J2UDY3oV3TKius2OUZIFHsomQmpHtsV0FTh1WO8EKgHLQ1QCADUqscPgTpU+ih1e21FQSRjXckHn3txn6kQ== + dependencies: + "@typescript-eslint/scope-manager" "7.12.0" + "@typescript-eslint/types" "7.12.0" + "@typescript-eslint/typescript-estree" "7.12.0" + "@typescript-eslint/visitor-keys" "7.12.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.13.0.tgz#6927d6451537ce648c6af67a2327378d4cc18462" - integrity sha512-ZrMCe1R6a01T94ilV13egvcnvVJ1pxShkE0+NDjDzH4nvG1wXpwsVI5bZCvE7AEDH1mXEx5tJSVR68bLgG7Dng== +"@typescript-eslint/scope-manager@7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.12.0.tgz#259c014362de72dd34f995efe6bd8dda486adf58" + integrity sha512-itF1pTnN6F3unPak+kutH9raIkL3lhH1YRPGgt7QQOh43DQKVJXmWkpb+vpc/TiDHs6RSd9CTbDsc/Y+Ygq7kg== dependencies: - "@typescript-eslint/types" "7.13.0" - "@typescript-eslint/visitor-keys" "7.13.0" + "@typescript-eslint/types" "7.12.0" + "@typescript-eslint/visitor-keys" "7.12.0" -"@typescript-eslint/type-utils@7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.13.0.tgz#4587282b5227a23753ea8b233805ecafc3924c76" - integrity sha512-xMEtMzxq9eRkZy48XuxlBFzpVMDurUAfDu5Rz16GouAtXm0TaAoTFzqWUFPPuQYXI/CDaH/Bgx/fk/84t/Bc9A== +"@typescript-eslint/type-utils@7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.12.0.tgz#9dfaaa1972952f395ec5be4f5bbfc4d3cdc63908" + integrity sha512-lib96tyRtMhLxwauDWUp/uW3FMhLA6D0rJ8T7HmH7x23Gk1Gwwu8UZ94NMXBvOELn6flSPiBrCKlehkiXyaqwA== dependencies: - "@typescript-eslint/typescript-estree" "7.13.0" - "@typescript-eslint/utils" "7.13.0" + "@typescript-eslint/typescript-estree" "7.12.0" + "@typescript-eslint/utils" "7.12.0" debug "^4.3.4" ts-api-utils "^1.3.0" -"@typescript-eslint/types@7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.13.0.tgz#0cca95edf1f1fdb0cfe1bb875e121b49617477c5" - integrity sha512-QWuwm9wcGMAuTsxP+qz6LBBd3Uq8I5Nv8xb0mk54jmNoCyDspnMvVsOxI6IsMmway5d1S9Su2+sCKv1st2l6eA== +"@typescript-eslint/types@7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.12.0.tgz#bf208f971a8da1e7524a5d9ae2b5f15192a37981" + integrity sha512-o+0Te6eWp2ppKY3mLCU+YA9pVJxhUJE15FV7kxuD9jgwIAa+w/ycGJBMrYDTpVGUM/tgpa9SeMOugSabWFq7bg== -"@typescript-eslint/typescript-estree@7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.13.0.tgz#4cc24fc155088ebf3b3adbad62c7e60f72c6de1c" - integrity sha512-cAvBvUoobaoIcoqox1YatXOnSl3gx92rCZoMRPzMNisDiM12siGilSM4+dJAekuuHTibI2hVC2fYK79iSFvWjw== +"@typescript-eslint/typescript-estree@7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.12.0.tgz#e6c1074f248b3db6573ab6a7c47a39c4cd498ff9" + integrity sha512-5bwqLsWBULv1h6pn7cMW5dXX/Y2amRqLaKqsASVwbBHMZSnHqE/HN4vT4fE0aFsiwxYvr98kqOWh1a8ZKXalCQ== dependencies: - "@typescript-eslint/types" "7.13.0" - "@typescript-eslint/visitor-keys" "7.13.0" + "@typescript-eslint/types" "7.12.0" + "@typescript-eslint/visitor-keys" "7.12.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" @@ -5599,22 +5608,22 @@ semver "^7.6.0" ts-api-utils "^1.3.0" -"@typescript-eslint/utils@7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.13.0.tgz#f84e7e8aeceae945a9a3f40d077fd95915308004" - integrity sha512-jceD8RgdKORVnB4Y6BqasfIkFhl4pajB1wVxrF4akxD2QPM8GNYjgGwEzYS+437ewlqqrg7Dw+6dhdpjMpeBFQ== +"@typescript-eslint/utils@7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.12.0.tgz#c6e58fd7f724cdccc848f71e388ad80cbdb95dd0" + integrity sha512-Y6hhwxwDx41HNpjuYswYp6gDbkiZ8Hin9Bf5aJQn1bpTs3afYY4GX+MPYxma8jtoIV2GRwTM/UJm/2uGCVv+DQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "7.13.0" - "@typescript-eslint/types" "7.13.0" - "@typescript-eslint/typescript-estree" "7.13.0" + "@typescript-eslint/scope-manager" "7.12.0" + "@typescript-eslint/types" "7.12.0" + "@typescript-eslint/typescript-estree" "7.12.0" -"@typescript-eslint/visitor-keys@7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.13.0.tgz#2eb7ce8eb38c2b0d4a494d1fe1908e7071a1a353" - integrity sha512-nxn+dozQx+MK61nn/JP+M4eCkHDSxSLDpgE3WcQo0+fkjEolnaB5jswvIKC4K56By8MMgIho7f1PVxERHEo8rw== +"@typescript-eslint/visitor-keys@7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.12.0.tgz#c053b55a996679528beeedd8e565710ce1ae1ad3" + integrity sha512-uZk7DevrQLL3vSnfFl5bj4sL75qC9D6EdjemIdbtkuUmIheWpuiiylSY01JxJE7+zGrOWDZrp1WxOuDntvKrHQ== dependencies: - "@typescript-eslint/types" "7.13.0" + "@typescript-eslint/types" "7.12.0" eslint-visitor-keys "^3.4.3" "@ungap/structured-clone@^1.0.0", "@ungap/structured-clone@^1.2.0": @@ -5872,10 +5881,10 @@ acorn-globals@^7.0.0: acorn "^8.1.0" acorn-walk "^8.0.2" -acorn-import-attributes@^1.9.5: - version "1.9.5" - resolved "https://registry.yarnpkg.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz#7eb1557b1ba05ef18b5ed0ec67591bfab04688ef" - integrity sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ== +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== acorn-jsx@^5.3.1, acorn-jsx@^5.3.2: version "5.3.2" @@ -5888,21 +5897,19 @@ acorn-walk@^7.2.0: integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== acorn-walk@^8.0.2, acorn-walk@^8.1.1: - version "8.3.3" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.3.tgz#9caeac29eefaa0c41e3d4c65137de4d6f34df43e" - integrity sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw== - dependencies: - acorn "^8.11.0" + version "8.3.2" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" + integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== acorn@^7.4.1: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.1.0, acorn@^8.11.0, acorn@^8.11.3, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2, acorn@^8.9.0: - version "8.12.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.0.tgz#1627bfa2e058148036133b8d9b51a700663c294c" - integrity sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw== +acorn@^8.1.0, acorn@^8.11.3, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2, acorn@^8.9.0: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== add-stream@^1.0.0: version "1.0.0" @@ -5973,14 +5980,14 @@ ajv@^6.10.0, ajv@^6.12.0, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: uri-js "^4.2.2" ajv@^8.0.0, ajv@^8.9.0: - version "8.16.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.16.0.tgz#22e2a92b94f005f7e0f9c9d39652ef0b8f6f0cb4" - integrity sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw== + version "8.15.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.15.0.tgz#d918c661e3e820bbbc65a320e182ee56a1aa978a" + integrity sha512-15BTtQUOsSrmHCy+B4VnAiJAJxJ8IFgu6fcjFQF3jQYZ78nLSQthlFg4ehp+NLIyfvFgOlxNsjKIEhydtFPVHQ== dependencies: fast-deep-equal "^3.1.3" + fast-uri "^2.3.0" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" - uri-js "^4.4.1" ajv@~8.12.0: version "8.12.0" @@ -6647,14 +6654,14 @@ browserify-zlib@^0.1.4: pako "~0.2.0" browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.22.2, browserslist@^4.23.0: - version "4.23.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.1.tgz#ce4af0534b3d37db5c1a4ca98b9080f985041e96" - integrity sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw== + version "4.23.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== dependencies: - caniuse-lite "^1.0.30001629" - electron-to-chromium "^1.4.796" + caniuse-lite "^1.0.30001587" + electron-to-chromium "^1.4.668" node-releases "^2.0.14" - update-browserslist-db "^1.0.16" + update-browserslist-db "^1.0.13" bser@2.1.1: version "2.1.1" @@ -6932,10 +6939,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001629: - version "1.0.30001634" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001634.tgz#aa563c8e7aeaf552f7ead60371bc8d803425deaa" - integrity sha512-fbBYXQ9q3+yp1q1gBk86tOFs4pyn/yxFm5ZNP18OXJDfA3txImOY9PhfxVggZ4vRHDqoU8NrKU81eN0OtzOgRA== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001587: + version "1.0.30001627" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001627.tgz#8071c42d468e06ed2fb2c545efe79a663fd326ab" + integrity sha512-4zgNiB8nTyV/tHhwZrFs88ryjls/lHiqFhrxCW4qSTeuRByBVnPYpDInchOIySWknznucaf31Z4KYqjfbrecVw== canvas-sequencer@^3.1.0: version "3.1.0" @@ -7619,6 +7626,16 @@ cosmiconfig@^8.2.0: parse-json "^5.2.0" path-type "^4.0.0" +cosmiconfig@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d" + integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== + dependencies: + env-paths "^2.2.1" + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + crc@^3.8.0: version "3.8.0" resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" @@ -8602,10 +8619,10 @@ electron-publish@24.13.1: lazy-val "^1.0.5" mime "^2.5.2" -electron-to-chromium@^1.4.796: - version "1.4.803" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.803.tgz#cf55808a5ee12e2a2778bbe8cdc941ef87c2093b" - integrity sha512-61H9mLzGOCLLVsnLiRzCbc63uldP0AniRYPV3hbGVtONA1pI7qSGILdbofR7A8TMbOypDocEAjH/e+9k1QIe3g== +electron-to-chromium@^1.4.668: + version "1.4.789" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.789.tgz#fec941cb753ee139da562a5a8ff31fc3e828b411" + integrity sha512-0VbyiaXoT++Fi2vHGo2ThOeS6X3vgRCWrjPeO2FeIAWL6ItiSJ9BqlH8LfCXe3X1IdcG+S0iLoNaxQWhfZoGzQ== electron-updater@^6.1.1: version "6.2.1" @@ -8686,10 +8703,10 @@ endent@^2.0.1: fast-json-parse "^1.0.3" objectorarray "^1.0.5" -enhanced-resolve@^5.17.0: - version "5.17.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz#d037603789dd9555b89aaec7eb78845c49089bc5" - integrity sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA== +enhanced-resolve@^5.16.0: + version "5.16.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.16.1.tgz#e8bc63d51b826d6f1cbc0a150ecb5a8b0c62e567" + integrity sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -8711,7 +8728,7 @@ entities@^4.2.0, entities@^4.4.0: resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== -env-paths@^2.2.0: +env-paths@^2.2.0, env-paths@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== @@ -9362,6 +9379,11 @@ fast-sort@^2.0.1: resolved "https://registry.yarnpkg.com/fast-sort/-/fast-sort-2.2.0.tgz#20903763531fbcbb41c9df5ab1bf5f2cefc8476a" integrity sha512-W7zqnn2zsYoQA87FKmYtgOsbJohOrh7XrtZrCVHN5XZKqTBTv5UG+rSS3+iWbg/nepRQUOu+wnas8BwtK8kiCg== +fast-uri@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-2.3.0.tgz#bdae493942483d299e7285dcb4627767d42e2793" + integrity sha512-eel5UKGn369gGEWOqBShmFJWfq/xSJvsgDzgLYC845GneayWvXBf0lJCBn5qTABfewy1ZDPoaR5OZCP+kssfuw== + fast-xml-parser@4.2.5: version "4.2.5" resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz#a6747a09296a6cb34f2ae634019bf1738f3b421f" @@ -9592,9 +9614,9 @@ flatted@^3.2.9: integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== flow-parser@0.*: - version "0.238.0" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.238.0.tgz#b465753c2630a38f459413a745c69ec11a0b5291" - integrity sha512-VE7XSv1epljsIN2YeBnxCmGJihpNIAnLLu/pPOdA+Gkso7qDltJwUi6vfHjgxdBbjSdAuPGnhuOHJUQG+yYwIg== + version "0.237.2" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.237.2.tgz#f3e86ab582db57e4437796e7048632646a21a46f" + integrity sha512-mvI/kdfr3l1waaPbThPA8dJa77nHXrfZIun+SWvFwSwDjmeByU7mGJGRmv1+7guU6ccyLV8e1lqZA1lD4iMGnQ== follow-redirects@^1.0.0, follow-redirects@^1.15.6: version "1.15.6" @@ -9609,9 +9631,9 @@ for-each@^0.3.3: is-callable "^1.1.3" foreground-child@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.2.1.tgz#767004ccf3a5b30df39bed90718bab43fe0a59f7" - integrity sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== dependencies: cross-spawn "^7.0.0" signal-exit "^4.0.1" @@ -9677,13 +9699,6 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== -front-matter@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/front-matter/-/front-matter-4.0.2.tgz#b14e54dc745cfd7293484f3210d15ea4edd7f4d5" - integrity sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg== - dependencies: - js-yaml "^3.13.1" - fs-constants@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" @@ -10793,6 +10808,11 @@ ip-address@^9.0.5: jsbn "1.1.0" sprintf-js "^1.1.3" +ip@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.1.tgz#e8f3595d33a3ea66490204234b77636965307105" + integrity sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ== + ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" @@ -11307,9 +11327,9 @@ ixixx@^2.0.1: tmp "^0.2.1" jackspeak@^3.1.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.0.tgz#a75763ff36ad778ede6a156d8ee8b124de445b4a" - integrity sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw== + version "3.2.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.2.3.tgz#33e8c44f7858d199fc5684f4ab62d1fd873eb10d" + integrity sha512-htOzIMPbpLid/Gq9/zaz9SfExABxqRe1sSCdxntlO/aMD6u0issZQiY25n2GKQUtJ02j7z5sfptlAOMpWWOmvw== dependencies: "@isaacs/cliui" "^8.0.2" optionalDependencies: @@ -11974,9 +11994,9 @@ kleur@^3.0.3: integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== launch-editor@^2.6.1: - version "2.7.0" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.7.0.tgz#53ba12b3eb131edefee99acaef7850c40272273f" - integrity sha512-KAc66u6LxWL8MifQ94oG3YGKYWDwz/Gi0T15lN//GaQoZe08vQGFJxrXkPAeu50UXgvJPPaRKVGuP1TRUm/aHQ== + version "2.6.1" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.1.tgz#f259c9ef95cbc9425620bbbd14b468fcdb4ffe3c" + integrity sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw== dependencies: picocolors "^1.0.0" shell-quote "^1.8.1" @@ -12131,7 +12151,12 @@ librpc-web-mod@^1.0.0, librpc-web-mod@^1.1.5: dependencies: serialize-error "^8.1.0" -lilconfig@^3.1.1, lilconfig@^3.1.2: +lilconfig@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.1.tgz#9d8a246fa753106cfc205fd2d77042faca56e5e3" + integrity sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ== + +lilconfig@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.2.tgz#e4a7c3cb549e3a606c8dcc32e5ae1005e62c05cb" integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow== @@ -12186,9 +12211,9 @@ loader-utils@^2.0.0, loader-utils@^2.0.4: json5 "^2.1.2" loader-utils@^3.2.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.3.1.tgz#735b9a19fd63648ca7adbd31c2327dfe281304e5" - integrity sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg== + version "3.2.2" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.2.2.tgz#dc154c005c65974dab413195c16cd246f545aecb" + integrity sha512-vjJi4vQDasD8t0kMpxe+9URAcgbSuASqoj/Wuk3MawTk97LYa2KfdHreAkd1G/pmPLMvzZEw7/OsydADNemerQ== locate-path@^2.0.0: version "2.0.0" @@ -12512,13 +12537,13 @@ memfs@^3.1.2, memfs@^3.4.1, memfs@^3.4.12: fs-monkey "^1.0.4" memfs@^4.6.0: - version "4.9.3" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.9.3.tgz#41a3218065fe3911d9eba836250c8f4e43f816bc" - integrity sha512-bsYSSnirtYTWi1+OPMFb0M048evMKyUYe0EbtuGQgq6BVQM1g1W8/KIUJCCvjgI/El0j6Q4WsmMiBwLUBSw8LA== + version "4.9.2" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.9.2.tgz#42e7b48207268dad8c9c48ea5d4952c5d3840433" + integrity sha512-f16coDZlTG1jskq3mxarwB+fGRrd0uXWt+o1WIhRfOwbXQZqUDsTVxQBFK9JjRQHblg8eAG2JSbprDXKjc7ijQ== dependencies: "@jsonjoy.com/json-pack" "^1.0.3" "@jsonjoy.com/util" "^1.1.2" - tree-dump "^1.0.1" + sonic-forest "^1.0.0" tslib "^2.0.0" "memoize-one@>=3.1.1 <6": @@ -12841,9 +12866,9 @@ mobx-state-tree@^5.0.0, mobx-state-tree@^5.1.7: integrity sha512-SGXAh2KCBQbWVcxeQbZEr5pchTgcfNZmGVRL2a2Me+pSMH98bZWXD6EOuuijbTGbc0hOoOsbab3JdwJyr+fW7Q== mobx@^6.0.0, mobx@^6.6.0: - version "6.12.4" - resolved "https://registry.yarnpkg.com/mobx/-/mobx-6.12.4.tgz#a1e176cd173bf45d3e5eb825eaff2c736c0a90cb" - integrity sha512-uIymg89x+HmItX1p3MG+d09irn2k63J6biftZ5Ok+UpNojS1I3NJPLfcmJT9ANnUltNlHi+HQqrVyxiAN8ISYg== + version "6.12.3" + resolved "https://registry.yarnpkg.com/mobx/-/mobx-6.12.3.tgz#b6a0fde4268116be602d50bffb32f1b90a8fb077" + integrity sha512-c8NKkO4R2lShkSXZ2Ongj1ycjugjzFFo/UswHBnS62y07DMcTc9Rvo03/3nRyszIvwPNljlkd4S828zIBv/piw== modify-values@^1.0.1: version "1.0.1" @@ -12904,9 +12929,9 @@ mz@^2.4.0: thenify-all "^1.0.0" nan@^2.17.0: - version "2.20.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.20.0.tgz#08c5ea813dd54ed16e5bd6505bf42af4f7838ca3" - integrity sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw== + version "2.19.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.19.0.tgz#bb58122ad55a6c5bc973303908d5b16cfdd5a8c0" + integrity sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw== nanoid@^3.3.7: version "3.3.7" @@ -13266,12 +13291,12 @@ nwsapi@^2.2.10, nwsapi@^2.2.2: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.10.tgz#0b77a68e21a0b483db70b11fad055906e867cda8" integrity sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ== -nx@19.3.0, "nx@>=17.1.2 < 20": - version "19.3.0" - resolved "https://registry.yarnpkg.com/nx/-/nx-19.3.0.tgz#b26d0b1b62baaa8e9623226df97f23753e94c625" - integrity sha512-WILWiROUkZWwuPJ12tP24Z0NULPEhxFN9i55/fECuVXYaFtkg6FvEne9C4d4bRqhZPcbrz6WhHnzE3NhdjH7XQ== +nx@19.1.2, "nx@>=17.1.2 < 20": + version "19.1.2" + resolved "https://registry.yarnpkg.com/nx/-/nx-19.1.2.tgz#09224be540ff722d21b35cef25b4c3a14bf988c2" + integrity sha512-hqD0HglmZCqgPLGcEfLq79El9iBUlinoncmsk6wsPHJM1IrASxHkemJZiehYilQx55QACd1MGBjC2nySZmgyLA== dependencies: - "@nrwl/tao" "19.3.0" + "@nrwl/tao" "19.1.2" "@yarnpkg/lockfile" "^1.1.0" "@yarnpkg/parsers" "3.0.0-rc.46" "@zkochan/js-yaml" "0.0.7" @@ -13285,7 +13310,6 @@ nx@19.3.0, "nx@>=17.1.2 < 20": enquirer "~2.3.6" figures "3.2.0" flat "^5.0.2" - front-matter "^4.0.2" fs-extra "^11.1.0" ignore "^5.0.4" jest-diff "^29.4.1" @@ -13306,16 +13330,16 @@ nx@19.3.0, "nx@>=17.1.2 < 20": yargs "^17.6.2" yargs-parser "21.1.1" optionalDependencies: - "@nx/nx-darwin-arm64" "19.3.0" - "@nx/nx-darwin-x64" "19.3.0" - "@nx/nx-freebsd-x64" "19.3.0" - "@nx/nx-linux-arm-gnueabihf" "19.3.0" - "@nx/nx-linux-arm64-gnu" "19.3.0" - "@nx/nx-linux-arm64-musl" "19.3.0" - "@nx/nx-linux-x64-gnu" "19.3.0" - "@nx/nx-linux-x64-musl" "19.3.0" - "@nx/nx-win32-arm64-msvc" "19.3.0" - "@nx/nx-win32-x64-msvc" "19.3.0" + "@nx/nx-darwin-arm64" "19.1.2" + "@nx/nx-darwin-x64" "19.1.2" + "@nx/nx-freebsd-x64" "19.1.2" + "@nx/nx-linux-arm-gnueabihf" "19.1.2" + "@nx/nx-linux-arm64-gnu" "19.1.2" + "@nx/nx-linux-arm64-musl" "19.1.2" + "@nx/nx-linux-x64-gnu" "19.1.2" + "@nx/nx-linux-x64-musl" "19.1.2" + "@nx/nx-win32-arm64-msvc" "19.1.2" + "@nx/nx-win32-x64-msvc" "19.1.2" nypm@^0.3.8: version "0.3.8" @@ -13409,18 +13433,18 @@ obuf@^1.0.0, obuf@^1.1.2: integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== oclif@^4.0.0: - version "4.13.7" - resolved "https://registry.yarnpkg.com/oclif/-/oclif-4.13.7.tgz#8d6b3f9068c4c0288ad0b45aa62e1936478b44b3" - integrity sha512-wK+5w8KTg5oxMA7QjSpeBAIAJuKcpK+74pD5exG6CHNKGFZ2kbFSp6kKiGcplIRM1V6KtM8T78jpfPVgpZQaLA== + version "4.12.3" + resolved "https://registry.yarnpkg.com/oclif/-/oclif-4.12.3.tgz#26d0de9bdea9f710745f5cecc10cfeef6d88ad52" + integrity sha512-o4j5/n0LbI/OOasTiKSO4R2H+8NiG2Cn3nwVbp9GoSPfCZW7Tuup+xXNlh2/lURAYVD69Vx5XUs1PIY9QLgS5Q== dependencies: - "@aws-sdk/client-cloudfront" "^3.592.0" + "@aws-sdk/client-cloudfront" "^3.574.0" "@aws-sdk/client-s3" "^3.583.0" "@inquirer/confirm" "^3.1.6" "@inquirer/input" "^2.1.9" "@inquirer/select" "^2.3.5" - "@oclif/core" "^4" - "@oclif/plugin-help" "^6.2.2" - "@oclif/plugin-not-found" "^3.2.3" + "@oclif/core" "^4.0.0-beta.12" + "@oclif/plugin-help" "^6.0.21" + "@oclif/plugin-not-found" "^3.2.1" "@oclif/plugin-warn-if-update-available" "^3.0.19" async-retry "^1.3.3" chalk "^4" @@ -14296,9 +14320,9 @@ prelude-ls@^1.2.1: integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== "prettier-fallback@npm:prettier@^3": - version "3.3.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.2.tgz#03ff86dc7c835f2d2559ee76876a3914cec4a90a" - integrity sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA== + version "3.3.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.0.tgz#d173ea0524a691d4c0b1181752f2b46724328cdf" + integrity sha512-J9odKxERhCQ10OC2yb93583f6UnYutOeiV5i0zEDS7UGTdUt0u+y8erxl3lBKvwo/JHyyoEdXjwp4dke9oyZ/g== prettier-linter-helpers@^1.0.0: version "1.0.0" @@ -14308,9 +14332,9 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier@^3.1.1, prettier@^3.2.5: - version "3.3.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.2.tgz#03ff86dc7c835f2d2559ee76876a3914cec4a90a" - integrity sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA== + version "3.3.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.0.tgz#d173ea0524a691d4c0b1181752f2b46724328cdf" + integrity sha512-J9odKxERhCQ10OC2yb93583f6UnYutOeiV5i0zEDS7UGTdUt0u+y8erxl3lBKvwo/JHyyoEdXjwp4dke9oyZ/g== pretty-error@^4.0.0: version "4.0.0" @@ -15188,9 +15212,9 @@ rrweb-cssom@^0.6.0: integrity sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw== rrweb-cssom@^0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz#c73451a484b86dd7cfb1e0b2898df4b703183e4b" - integrity sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg== + version "0.7.0" + resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.7.0.tgz#51cc1e7f4c20dd81218545b5092939bc6fd81bcd" + integrity sha512-KlSv0pm9kgQSRxXEMgtivPJ4h826YHsuob8pSHcfSZsSXGtvpEAie8S0AnXuObEJ7nhikOb4ahwxDm0H2yW17g== run-applescript@^7.0.0: version "7.0.0" @@ -15657,6 +15681,13 @@ socks@^2.6.2, socks@^2.7.1: ip-address "^9.0.5" smart-buffer "^4.2.0" +sonic-forest@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sonic-forest/-/sonic-forest-1.0.3.tgz#81363af60017daba39b794fce24627dc412563cb" + integrity sha512-dtwajos6IWMEWXdEbW1IkEkyL2gztCAgDplRIX+OT5aRKnEd5e7r7YCxRgXZdhRP1FBdOBf8axeTPhzDv8T4wQ== + dependencies: + tree-dump "^1.0.0" + sort-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" @@ -15874,11 +15905,11 @@ store2@^2.14.2: integrity sha512-4QcZ+yx7nzEFiV4BMLnr/pRa5HYzNITX2ri0Zh6sT9EyQHbBHacC6YigllUPU9X3D0f/22QCgfokpKs52YRrUg== storybook@^8.0.0: - version "8.1.9" - resolved "https://registry.yarnpkg.com/storybook/-/storybook-8.1.9.tgz#2111de7efaf695a18b1febad83691752ef1f4df2" - integrity sha512-Jymrfn299+MJBIZVDYPJlIGJMZM33udFCjbeRdOHIXF2BfpqOSS2FoEfmlp3zya3gwyZDq/BE7uiBc7HIVZa4g== + version "8.1.5" + resolved "https://registry.yarnpkg.com/storybook/-/storybook-8.1.5.tgz#079248bdb099b4edb8cde94246b62bec448a1e21" + integrity sha512-v4o8AfTvxWpdGa9Pa9x8EAmqbN5yJc+2fW8b6ZaCsDOTh2t5Y3EUHbIzdtvX+1Gb6ALsOs5e2Q9GlCAzjz+WNQ== dependencies: - "@storybook/cli" "8.1.9" + "@storybook/cli" "8.1.5" stream-browserify@^3.0.0: version "3.0.0" @@ -16293,9 +16324,9 @@ terser-webpack-plugin@^5.2.5, terser-webpack-plugin@^5.3.1, terser-webpack-plugi terser "^5.26.0" terser@^5.10.0, terser@^5.26.0: - version "5.31.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.1.tgz#735de3c987dd671e95190e6b98cfe2f07f3cf0d4" - integrity sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg== + version "5.31.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.0.tgz#06eef86f17007dbad4593f11a574c7f5eb02c6a1" + integrity sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -16458,7 +16489,7 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -tree-dump@^1.0.1: +tree-dump@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/tree-dump/-/tree-dump-1.0.1.tgz#b448758da7495580e6b7830d6b7834fca4c45b96" integrity sha512-WCkcRBVPSlHHq1dc/px9iOfqklvzCbdRwvlNfxGZsrHqf6aZttfPrd7DJTt6oR10dwUfpFFQeVTkPbBIZxX/YA== @@ -16513,15 +16544,15 @@ tsconfig-paths@^4.1.2, tsconfig-paths@^4.2.0: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^1.13.0: +tslib@^1.11.1, tslib@^1.13.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" - integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== tss-react@^4.0.0, tss-react@^4.4.1: version "4.9.10" @@ -16682,9 +16713,9 @@ ufo@^1.4.0: integrity sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw== uglify-js@^3.1.4: - version "3.18.0" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.18.0.tgz#73b576a7e8fda63d2831e293aeead73e0a270deb" - integrity sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A== + version "3.17.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== unbox-primitive@^1.0.2: version "1.0.2" @@ -16841,7 +16872,7 @@ upath@2.0.1: resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== -update-browserslist-db@^1.0.16: +update-browserslist-db@^1.0.13: version "1.0.16" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz#f6d489ed90fb2f07d67784eb3f53d7891f736356" integrity sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ== @@ -16863,7 +16894,7 @@ upper-case@^2.0.2: dependencies: tslib "^2.0.3" -uri-js@^4.2.2, uri-js@^4.4.1: +uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== @@ -17194,14 +17225,14 @@ webpack-virtual-modules@^0.5.0: integrity sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw== webpack-virtual-modules@^0.6.1: - version "0.6.2" - resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz#057faa9065c8acf48f24cb57ac0e77739ab9a7e8" - integrity sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ== + version "0.6.1" + resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz#ac6fdb9c5adb8caecd82ec241c9631b7a3681b6f" + integrity sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg== webpack@5, webpack@^5.64.4, webpack@^5.72.0: - version "5.92.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.92.0.tgz#cc114c71e6851d220b1feaae90159ed52c876bdf" - integrity sha512-Bsw2X39MYIgxouNATyVpCNVWBCuUwDgWtN78g6lSdPJRLaQ/PUVm/oXcaRAyY/sMFoKFQrsPeqvTizWtq7QPCA== + version "5.91.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.91.0.tgz#ffa92c1c618d18c878f06892bbdc3373c71a01d9" + integrity sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw== dependencies: "@types/eslint-scope" "^3.7.3" "@types/estree" "^1.0.5" @@ -17209,10 +17240,10 @@ webpack@5, webpack@^5.64.4, webpack@^5.72.0: "@webassemblyjs/wasm-edit" "^1.12.1" "@webassemblyjs/wasm-parser" "^1.12.1" acorn "^8.7.1" - acorn-import-attributes "^1.9.5" + acorn-import-assertions "^1.9.0" browserslist "^4.21.10" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.17.0" + enhanced-resolve "^5.16.0" es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" @@ -17508,9 +17539,9 @@ xtend@^4.0.0, xtend@~4.0.1: integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== xz-decompress@^0.2.1: - version "0.2.2" - resolved "https://registry.yarnpkg.com/xz-decompress/-/xz-decompress-0.2.2.tgz#ec81efacc770aa130abccee79937449a874f440d" - integrity sha512-DSOnX+ZLVTrsW+CtjZPwjrMWvuRkzCcEpwLsY2faZyVgLH/ZHpTg3h3+KyN16mGuduMgO+/pc9rSEG735oGN0g== + version "0.2.1" + resolved "https://registry.yarnpkg.com/xz-decompress/-/xz-decompress-0.2.1.tgz#0b1518a3faacf2d983abdb79a4aacb1d8f557c9d" + integrity sha512-vgpc2zPchALa6D2lc+IFRrcAB3L4I40KmgUcPV7G70CfeMWzVdmlfDpyEczvsE435WgtH6WYYT/11Um57u7s6A== y18n@^5.0.5: version "5.0.8"