diff --git a/CHANGELOG.md b/CHANGELOG.md index aae20f2fca..90e053108c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,46 @@ +yarn run v1.22.22 $ lerna-changelog --silent --silent --next-version 2.16.1 + +## 2.16.1 (2024-11-03) + +#### :rocket: Enhancement + +- `app-core`, `core`, `product-core`, `text-indexing` + - [#4624](https://github.com/GMOD/jbrowse-components/pull/4624) Add utility + links to synteny feature details to allow centering a view on a feature + ([@cmdcolin](https://github.com/cmdcolin)) +- Other + - [#4628](https://github.com/GMOD/jbrowse-components/pull/4628) Allow + configuring Hi-C normalization and default resolution multiplier + ([@cmdcolin](https://github.com/cmdcolin)) + - [#4619](https://github.com/GMOD/jbrowse-components/pull/4619) Add + resolutionMultiplier config slot to BigWigAdapter + ([@cmdcolin](https://github.com/cmdcolin)) + +#### :bug: Bug Fix + +- [#4634](https://github.com/GMOD/jbrowse-components/pull/4634) Fix opening + local files in the multi-wiggle add track selector + ([@cmdcolin](https://github.com/cmdcolin)) +- [#4633](https://github.com/GMOD/jbrowse-components/pull/4633) Fix "Add track" + select box not going away after selecting element + ([@cmdcolin](https://github.com/cmdcolin)) +- [#4632](https://github.com/GMOD/jbrowse-components/pull/4632) Standardize + modification colors between alignments track coverage and pileup subtracks + ([@cmdcolin](https://github.com/cmdcolin)) +- [#4631](https://github.com/GMOD/jbrowse-components/pull/4631) Fix config + description of assembly name ordering for synteny data adapters + ([@cmdcolin](https://github.com/cmdcolin)) +- [#4630](https://github.com/GMOD/jbrowse-components/pull/4630) Fix MM tag + modifications from particular BAM file failing to render on the negative + strand ([@cmdcolin](https://github.com/cmdcolin)) +- [#4626](https://github.com/GMOD/jbrowse-components/pull/4626) Fix dark redraw + on selected features after vertical resize of the synteny canvas + ([@cmdcolin](https://github.com/cmdcolin)) + +#### Committers: 1 + +- Colin Diesh ([@cmdcolin](https://github.com/cmdcolin)) Done in 1.20s. + yarn run v1.22.22 $ lerna-changelog --silent --silent --next-version 2.16.0 ## 2.16.0 (2024-10-23) diff --git a/lerna.json b/lerna.json index bd3fefa861..b03141ea35 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.16.0", + "version": "2.16.1", "npmClient": "yarn", "$schema": "node_modules/lerna/schemas/lerna-schema.json" } diff --git a/package.json b/package.json index 1b61fe42b3..cbac328f70 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,8 @@ "configdocs": "rm -rf website/docs/config && mkdir website/docs/config && yarn tsx docs/generateConfigDocs.ts", "statedocs": "rm -rf website/docs/models && mkdir website/docs/models && yarn tsx docs/generateStateModelDocs.ts", "autogen": "yarn statedocs && yarn configdocs && yarn prettier --write website", - "releasenotes": "npx prettier --prose-wrap never website/blog/$(ls -Art website/blog/ | tail -n 1)|sed -e '/## Downloads/,+7d'|tail -n +7" + "releasenotes": "yarn prettier --prose-wrap never website/blog/$(ls -Art website/blog/ | tail -n 1)|sed -e '/## Downloads/,+7d'|tail -n +7", + "copynotes": "yarn --silent releasenotes | xclip -selection clipboard" }, "devDependencies": { "@babel/core": "^7.3.4", @@ -100,7 +101,7 @@ "dependency-graph": "^1.0.0", "dotenv": "^16.3.1", "dotenv-expand": "^11.0.3", - "electron": "32.1.0", + "electron": "33.0.2", "electron-builder": "^25.1.6", "electron-mock-ipc": "^0.3.8", "eslint": "^9.0.0", diff --git a/packages/app-core/package.json b/packages/app-core/package.json index 4a72a8b5ee..cd8ec69f01 100644 --- a/packages/app-core/package.json +++ b/packages/app-core/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/app-core", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 code shared between the 'full featured' apps e.g. jbrowse-web and jbrowse-desktop", "keywords": [ "jbrowse", @@ -42,7 +42,7 @@ }, "dependencies": { "@babel/runtime": "^7.16.3", - "@jbrowse/product-core": "^2.16.0", + "@jbrowse/product-core": "^2.16.1", "@mui/icons-material": "^6.0.0", "@mui/material": "^6.0.0", "copy-to-clipboard": "^3.3.1" diff --git a/packages/app-core/src/ui/App/ViewMenu.tsx b/packages/app-core/src/ui/App/ViewMenu.tsx index 77c71d8349..500be928e7 100644 --- a/packages/app-core/src/ui/App/ViewMenu.tsx +++ b/packages/app-core/src/ui/App/ViewMenu.tsx @@ -69,13 +69,17 @@ const ViewMenu = observer(function ({ label: 'View order', type: 'subMenu' as const, subMenu: [ - { - label: 'Move view to top', - icon: KeyboardDoubleArrowUpIcon, - onClick: () => { - session.moveViewToTop(model.id) - }, - }, + ...(session.views.length > 2 + ? [ + { + label: 'Move view to top', + icon: KeyboardDoubleArrowUpIcon, + onClick: () => { + session.moveViewToTop(model.id) + }, + }, + ] + : []), { label: 'Move view up', icon: KeyboardArrowUpIcon, @@ -90,13 +94,17 @@ const ViewMenu = observer(function ({ session.moveViewDown(model.id) }, }, - { - label: 'Move view to bottom', - icon: KeyboardDoubleArrowDownIcon, - onClick: () => { - session.moveViewToBottom(model.id) - }, - }, + ...(session.views.length > 2 + ? [ + { + label: 'Move view to bottom', + icon: KeyboardDoubleArrowDownIcon, + onClick: () => { + session.moveViewToBottom(model.id) + }, + }, + ] + : []), ], }, ] diff --git a/packages/core/BaseFeatureWidget/BaseFeatureDetail/BaseCard.tsx b/packages/core/BaseFeatureWidget/BaseFeatureDetail/BaseCard.tsx new file mode 100644 index 0000000000..52017c713e --- /dev/null +++ b/packages/core/BaseFeatureWidget/BaseFeatureDetail/BaseCard.tsx @@ -0,0 +1,41 @@ +import React from 'react' +import { + Accordion, + AccordionDetails, + AccordionSummary, + Typography, +} from '@mui/material' +import { makeStyles } from 'tss-react/mui' + +// icons +import ExpandMore from '@mui/icons-material/ExpandMore' + +import { BaseCardProps } from '../types' + +const useStyles = makeStyles()(theme => ({ + expansionPanelDetails: { + display: 'block', + padding: theme.spacing(1), + }, + icon: { + color: theme.palette.tertiary.contrastText || '#fff', + }, +})) + +export default function BaseCard({ + children, + title, + defaultExpanded = true, +}: BaseCardProps) { + const { classes } = useStyles() + return ( + + }> + {title} + + + {children} + + + ) +} diff --git a/packages/core/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.tsx b/packages/core/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.tsx new file mode 100644 index 0000000000..86feba2bac --- /dev/null +++ b/packages/core/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.tsx @@ -0,0 +1,53 @@ +import React from 'react' +// locals +import { toLocale, SimpleFeatureSerialized } from '../../util' +import { BaseProps } from '../types' +import SimpleField from './SimpleField' +import Position from './Position' + +export default function CoreDetails(props: BaseProps) { + const { feature } = props + const obj = feature as SimpleFeatureSerialized & { + start: number + end: number + assemblyName?: string + strand: number + refName: string + __jbrowsefmt: { + start?: number + assemblyName?: string + end?: number + refName?: string + name?: string + } + } + + const formattedFeat = { ...obj, ...obj.__jbrowsefmt } + const { start, end } = formattedFeat + + const displayedDetails: Record = { + ...formattedFeat, + length: toLocale(end - start), + } + + const coreRenderedDetails = { + description: 'Description', + name: 'Name', + length: 'Length', + type: 'Type', + } + return ( + <> + } + /> + {Object.entries(coreRenderedDetails) + .map(([key, name]) => [name, displayedDetails[key]]) + .filter(([, value]) => value != null) + .map(([name, value]) => ( + + ))} + + ) +} diff --git a/packages/core/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.tsx b/packages/core/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.tsx new file mode 100644 index 0000000000..51be58022b --- /dev/null +++ b/packages/core/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.tsx @@ -0,0 +1,111 @@ +import React from 'react' +import { ErrorBoundary } from '@jbrowse/core/ui/ErrorBoundary' +import { Divider, Typography } from '@mui/material' +import { IAnyStateTreeNode } from 'mobx-state-tree' + +// locals +import { getEnv, getSession, SimpleFeatureSerialized } from '../../util' +import { ErrorMessage } from '../../ui' +import { generateTitle } from './util' +import SequenceFeatureDetails from '../SequenceFeatureDetails' +import Attributes from './Attributes' +import BaseCard from './BaseCard' +import CoreDetails from './CoreDetails' + +// coreDetails are omitted in some circumstances +const coreDetails = [ + 'name', + 'start', + 'end', + 'strand', + 'refName', + 'description', + 'type', +] + +interface PanelDescriptor { + name: string + Component: React.FC +} + +export default function FeatureDetails(props: { + model: IAnyStateTreeNode + feature: SimpleFeatureSerialized + depth?: number + omit?: string[] + descriptions?: Record + formatter?: (val: unknown, key: string) => React.ReactNode +}) { + const { omit = [], model, feature, depth = 0 } = props + const { maxDepth } = model + const { mate, name = '', id = '', type = '', subfeatures, uniqueId } = feature + const pm = getEnv(model).pluginManager + const session = getSession(model) + + const ExtraPanel = pm.evaluateExtensionPoint('Core-extraFeaturePanel', null, { + session, + feature, + model, + }) as PanelDescriptor | undefined + const m = mate as { start: number; end: number; refName: string } | undefined + return ( + + Core details + + {m ? ( + <> + + Mate details + + + ) : null} + + + Attributes + + + }> + + + + {ExtraPanel ? ( + <> + + + + + + ) : null} + + {depth < maxDepth && subfeatures?.length ? ( + + {subfeatures.map((sub, idx) => ( + + ))} + + ) : null} + + ) +} diff --git a/packages/core/BaseFeatureWidget/BaseFeatureDetail/Position.tsx b/packages/core/BaseFeatureWidget/BaseFeatureDetail/Position.tsx new file mode 100644 index 0000000000..89292e3499 --- /dev/null +++ b/packages/core/BaseFeatureWidget/BaseFeatureDetail/Position.tsx @@ -0,0 +1,16 @@ +import React from 'react' +import { assembleLocString } from '../../util' +import { BaseProps } from '../types' + +export default function Position(props: BaseProps) { + const { feature } = props + const strand = feature.strand as number + const strandMap: Record = { + '-1': '-', + '0': '', + '1': '+', + } + const str = strandMap[strand] ? `(${strandMap[strand]})` : '' + const loc = assembleLocString(feature) + return <>{`${loc} ${str}`} +} diff --git a/packages/core/BaseFeatureWidget/BaseFeatureDetail/index.tsx b/packages/core/BaseFeatureWidget/BaseFeatureDetail/index.tsx index 2fa77967b0..81ea0fa034 100644 --- a/packages/core/BaseFeatureWidget/BaseFeatureDetail/index.tsx +++ b/packages/core/BaseFeatureWidget/BaseFeatureDetail/index.tsx @@ -1,132 +1,17 @@ import React from 'react' -import { ErrorBoundary } from '@jbrowse/core/ui/ErrorBoundary' -import { - Accordion, - AccordionDetails, - AccordionSummary, - Divider, - Typography, -} from '@mui/material' -import { makeStyles } from 'tss-react/mui' import { observer } from 'mobx-react' -import { IAnyStateTreeNode } from 'mobx-state-tree' -// icons -import ExpandMore from '@mui/icons-material/ExpandMore' - -// locals -import { - getEnv, - getSession, - assembleLocString, - toLocale, - SimpleFeatureSerialized, -} from '../../util' +// utils import { ErrorMessage } from '../../ui' -import SequenceFeatureDetails from '../SequenceFeatureDetails' import { BaseCardProps, BaseProps } from '../types' -import SimpleField from './SimpleField' -import Attributes from './Attributes' -import { generateTitle, isEmpty } from './util' - -// coreDetails are omitted in some circumstances -const coreDetails = [ - 'name', - 'start', - 'end', - 'strand', - 'refName', - 'description', - 'type', -] - -const useStyles = makeStyles()(theme => ({ - expansionPanelDetails: { - display: 'block', - padding: theme.spacing(1), - }, - icon: { - color: theme.palette.tertiary.contrastText || '#fff', - }, -})) - -export function BaseCard({ - children, - title, - defaultExpanded = true, -}: BaseCardProps) { - const { classes } = useStyles() - return ( - - }> - {title} - - - {children} - - - ) -} - -function Position(props: BaseProps) { - const { feature } = props - const strand = feature.strand as number - const strandMap: Record = { - '-1': '-', - '0': '', - '1': '+', - } - const str = strandMap[strand] ? `(${strandMap[strand]})` : '' - const loc = assembleLocString(feature) - return <>{`${loc} ${str}`} -} - -function CoreDetails(props: BaseProps) { - const { feature } = props - const obj = feature as SimpleFeatureSerialized & { - start: number - end: number - assemblyName?: string - strand: number - refName: string - __jbrowsefmt: { - start?: number - assemblyName?: string - end?: number - refName?: string - name?: string - } - } - - const formattedFeat = { ...obj, ...obj.__jbrowsefmt } - const { start, end } = formattedFeat +import { isEmpty } from './util' +import { replaceUndefinedWithNull } from '../util' - const displayedDetails: Record = { - ...formattedFeat, - length: toLocale(end - start), - } - - const coreRenderedDetails = { - description: 'Description', - name: 'Name', - length: 'Length', - type: 'Type', - } - return ( - <> - } - /> - {Object.entries(coreRenderedDetails) - .map(([key, name]) => [name, displayedDetails[key]]) - .filter(([, value]) => value != null) - .map(([name, value]) => ( - - ))} - - ) -} +// locals +import Attributes from './Attributes' +import BaseCard from './BaseCard' +import CoreDetails from './CoreDetails' +import FeatureDetails from './FeatureDetails' export const BaseCoreDetails = (props: BaseProps) => { const { title = 'Primary data' } = props @@ -153,113 +38,26 @@ export interface BaseInputProps extends BaseCardProps { formatter?: (val: unknown, key: string) => React.ReactNode } -interface PanelDescriptor { - name: string - Component: React.FC -} - -export function FeatureDetails(props: { - model: IAnyStateTreeNode - feature: SimpleFeatureSerialized - depth?: number - omit?: string[] - descriptions?: Record - formatter?: (val: unknown, key: string) => React.ReactNode -}) { - const { omit = [], model, feature, depth = 0 } = props - const { maxDepth } = model - const { mate, name = '', id = '', type = '', subfeatures, uniqueId } = feature - const pm = getEnv(model).pluginManager - const session = getSession(model) - - const ExtraPanel = pm.evaluateExtensionPoint('Core-extraFeaturePanel', null, { - session, - feature, - model, - }) as PanelDescriptor | undefined - const m = mate as { start: number; end: number; refName: string } | undefined - return ( - - Core details - - {m ? ( - <> - - Mate details - - - ) : null} - - - Attributes - - - }> - - - - {ExtraPanel ? ( - <> - - - - - - ) : null} - - {depth < maxDepth && subfeatures?.length ? ( - - {subfeatures.map((sub, idx) => ( - - ))} - - ) : null} - - ) -} - const BaseFeatureDetail = observer(function ({ model }: BaseInputProps) { const { error, featureData } = model if (error) { return - } - if (!featureData) { + } else if (!featureData) { return null + } else { + // replacing undefined with null helps with allowing fields to be hidden, + // setting null is not allowed by jexl so we set it to undefined to hide. + // see config guide. this replacement happens both here and when + // snapshotting the featureData + const featureData2 = replaceUndefinedWithNull(featureData) + return isEmpty(featureData2) ? null : ( + + ) } - - // replacing undefined with null helps with allowing fields to be hidden, - // setting null is not allowed by jexl so we set it to undefined to hide. see - // config guide. this replacement happens both here and when snapshotting the - // featureData - const g = JSON.parse( - JSON.stringify(featureData, (_, v) => (v === undefined ? null : v)), - ) - return isEmpty(g) ? null : }) export default BaseFeatureDetail -export { default as Attributes } from './Attributes' +export { default as BaseCard } from './BaseCard' +export { default as FeatureDetails } from './FeatureDetails' diff --git a/packages/core/BaseFeatureWidget/stateModelFactory.ts b/packages/core/BaseFeatureWidget/stateModelFactory.ts index 59c1c96d4b..9e5d8f314e 100644 --- a/packages/core/BaseFeatureWidget/stateModelFactory.ts +++ b/packages/core/BaseFeatureWidget/stateModelFactory.ts @@ -8,6 +8,7 @@ import { getConf } from '../configuration' import { getSession } from '../util' import { ElementId } from '../util/types/mst' import { SequenceFeatureDetailsF } from './SequenceFeatureDetails/model' +import { replaceUndefinedWithNull } from './util' interface Feat { subfeatures?: Record[] @@ -90,6 +91,9 @@ export function stateModelFactory(pluginManager: PluginManager) { sequenceFeatureDetails: types.optional(SequenceFeatureDetailsF(), {}), }) .volatile(() => ({ + /** + * #volatile + */ error: undefined as unknown, })) @@ -197,9 +201,7 @@ export function stateModelFactory(pluginManager: PluginManager) { // hidden, setting null is not allowed by jexl so we set it to // undefined to hide. see config guide. this replacement happens both // here and when displaying the featureData in base feature widget - finalizedFeatureData: JSON.parse( - JSON.stringify(featureData, (_, v) => (v === undefined ? null : v)), - ), + finalizedFeatureData: replaceUndefinedWithNull(featureData), ...rest, } }) diff --git a/packages/core/BaseFeatureWidget/util.tsx b/packages/core/BaseFeatureWidget/util.tsx index 5f20659e54..fe93484fd5 100644 --- a/packages/core/BaseFeatureWidget/util.tsx +++ b/packages/core/BaseFeatureWidget/util.tsx @@ -104,3 +104,7 @@ export function calculateUTRs2(cds: Feat[], parentFeat: Feat) { export function ellipses(slug: string) { return slug.length > 20 ? `${slug.slice(0, 20)}...` : slug } + +export function replaceUndefinedWithNull(obj: Record) { + return JSON.parse(JSON.stringify(obj, (_, v) => (v === undefined ? null : v))) +} diff --git a/packages/core/ReExports/Attributes.tsx b/packages/core/ReExports/Attributes.tsx deleted file mode 100644 index 7e03f6ae7a..0000000000 --- a/packages/core/ReExports/Attributes.tsx +++ /dev/null @@ -1,3 +0,0 @@ -// convert named export to default for lazy react - -export { Attributes as default } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail' diff --git a/packages/core/ReExports/BaseCard.tsx b/packages/core/ReExports/BaseCard.tsx deleted file mode 100644 index 44fea328b3..0000000000 --- a/packages/core/ReExports/BaseCard.tsx +++ /dev/null @@ -1,3 +0,0 @@ -// convert named export to default for lazy react - -export { BaseCard as default } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail' diff --git a/packages/core/ReExports/FeatureDetails.tsx b/packages/core/ReExports/FeatureDetails.tsx deleted file mode 100644 index 1fbdcf295d..0000000000 --- a/packages/core/ReExports/FeatureDetails.tsx +++ /dev/null @@ -1,3 +0,0 @@ -// convert named export to default for lazy react - -export { FeatureDetails as default } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail' diff --git a/packages/core/ReExports/modules.tsx b/packages/core/ReExports/modules.tsx index 7331e4a4f4..f875f97f84 100644 --- a/packages/core/ReExports/modules.tsx +++ b/packages/core/ReExports/modules.tsx @@ -189,9 +189,15 @@ const MuiPrefixMUI = Object.fromEntries( ]), ) -const Attributes = lazy(() => import('./Attributes')) -const FeatureDetails = lazy(() => import('./FeatureDetails')) -const BaseCard = lazy(() => import('./BaseCard')) +const Attributes = lazy( + () => import('../BaseFeatureWidget/BaseFeatureDetail/Attributes'), +) +const FeatureDetails = lazy( + () => import('../BaseFeatureWidget/BaseFeatureDetail/FeatureDetails'), +) +const BaseCard = lazy( + () => import('../BaseFeatureWidget/BaseFeatureDetail/BaseCard'), +) const DataGridEntries: Record> = { DataGrid: lazy(() => diff --git a/packages/core/package.json b/packages/core/package.json index f275b9d515..de511578dd 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/core", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 core libraries used by plugins", "keywords": [ "jbrowse", diff --git a/packages/embedded-core/package.json b/packages/embedded-core/package.json index aa0eacb411..f05863e3de 100644 --- a/packages/embedded-core/package.json +++ b/packages/embedded-core/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/embedded-core", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 code shared between embedded products", "keywords": [ "jbrowse", @@ -42,8 +42,8 @@ }, "dependencies": { "@babel/runtime": "^7.16.3", - "@jbrowse/core": "^2.16.0", - "@jbrowse/product-core": "^2.16.0", + "@jbrowse/core": "^2.16.1", + "@jbrowse/product-core": "^2.16.1", "@mui/icons-material": "^6.0.0", "@mui/material": "^6.0.0", "copy-to-clipboard": "^3.3.1" diff --git a/packages/product-core/package.json b/packages/product-core/package.json index bd28ed70d9..f5e064740b 100644 --- a/packages/product-core/package.json +++ b/packages/product-core/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/product-core", - "version": "2.16.0", + "version": "2.16.1", "sideEffects": false, "description": "JBrowse 2 code shared between products but not used by plugins", "keywords": [ @@ -43,7 +43,7 @@ }, "dependencies": { "@babel/runtime": "^7.16.3", - "@jbrowse/core": "^2.16.0", + "@jbrowse/core": "^2.16.1", "@mui/icons-material": "^6.0.0", "@mui/material": "^6.0.0", "copy-to-clipboard": "^3.3.1", diff --git a/packages/product-core/src/ui/AboutDialogContents.tsx b/packages/product-core/src/ui/AboutDialogContents.tsx index 6596648c04..847701b6be 100644 --- a/packages/product-core/src/ui/AboutDialogContents.tsx +++ b/packages/product-core/src/ui/AboutDialogContents.tsx @@ -10,10 +10,10 @@ import { AnyConfigurationModel, } from '@jbrowse/core/configuration' import { getSession, getEnv } from '@jbrowse/core/util' -import { - BaseCard, - Attributes, -} from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail' +import Attributes from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/Attributes' +import BaseCard from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/BaseCard' + +// locals import FileInfoPanel from './FileInfoPanel' import RefNameInfoDialog from './RefNameInfoDialog' diff --git a/packages/product-core/src/ui/FileInfoPanel.tsx b/packages/product-core/src/ui/FileInfoPanel.tsx index 365e6ecedd..bc7959fcc4 100644 --- a/packages/product-core/src/ui/FileInfoPanel.tsx +++ b/packages/product-core/src/ui/FileInfoPanel.tsx @@ -4,10 +4,8 @@ import { AnyConfigurationModel, } from '@jbrowse/core/configuration' import { getSession } from '@jbrowse/core/util' -import { - BaseCard, - Attributes, -} from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail' +import Attributes from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/Attributes' +import BaseCard from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/BaseCard' import { ErrorMessage, LoadingEllipses } from '@jbrowse/core/ui' type FileInfo = Record | string diff --git a/packages/sv-core/package.json b/packages/sv-core/package.json index 9b5b9e3723..3f1fd429f9 100644 --- a/packages/sv-core/package.json +++ b/packages/sv-core/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/sv-core", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 code shared between sv type code", "keywords": [ "jbrowse", @@ -41,7 +41,7 @@ "useSrc": "node ../../scripts/useSrc.js" }, "dependencies": { - "@jbrowse/plugin-linear-genome-view": "^2.16.0", + "@jbrowse/plugin-linear-genome-view": "^2.16.1", "@mui/icons-material": "^6.0.0", "@mui/material": "^6.0.0" }, diff --git a/packages/text-indexing/package.json b/packages/text-indexing/package.json index 6524e12898..41c32f0b4a 100644 --- a/packages/text-indexing/package.json +++ b/packages/text-indexing/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/text-indexing", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 text indexing for desktop", "keywords": [ "jbrowse", @@ -42,7 +42,7 @@ }, "dependencies": { "@babel/runtime": "^7.16.3", - "@jbrowse/core": "^2.16.0", + "@jbrowse/core": "^2.16.1", "ixixx": "^2.0.1", "node-fetch": "^2.6.0", "sanitize-filename": "^1.6.3" diff --git a/packages/text-indexing/src/types/common.ts b/packages/text-indexing/src/types/common.ts index 1fdfb3b38e..f8b57c0a1d 100644 --- a/packages/text-indexing/src/types/common.ts +++ b/packages/text-indexing/src/types/common.ts @@ -29,19 +29,35 @@ export function isURL(FileName: string) { return url.protocol === 'http:' || url.protocol === 'https:' } -export async function getLocalOrRemoteStream(uri: string, out: string) { - if (isURL(uri)) { - const result = await createRemoteStream(uri) - return { - totalBytes: +(result.headers.get('Content-Length') || 0), - stream: result.body, - } +export async function getLocalOrRemoteStream({ + file, + out, + onBytesReceived, + onTotalBytes, +}: { + file: string + out: string + onBytesReceived: (totalBytesReceived: number) => void + onTotalBytes: (totalBytes: number) => void +}) { + let receivedBytes = 0 + if (isURL(file)) { + const result = await createRemoteStream(file) + result.body.on('data', chunk => { + receivedBytes += chunk.length + onBytesReceived(receivedBytes) + }) + onTotalBytes(+(result.headers.get('Content-Length') || 0)) + return result.body } else { - const filename = path.isAbsolute(uri) ? uri : path.join(out, uri) - return { - totalBytes: fs.statSync(filename).size, - stream: fs.createReadStream(filename), - } + const filename = path.isAbsolute(file) ? file : path.join(out, file) + const stream = fs.createReadStream(filename) + stream.on('data', chunk => { + receivedBytes += chunk.length + onBytesReceived(receivedBytes) + }) + onTotalBytes(fs.statSync(filename).size) + return stream } } diff --git a/packages/text-indexing/src/types/gff3Adapter.ts b/packages/text-indexing/src/types/gff3Adapter.ts index a9030457b8..c8383ab671 100644 --- a/packages/text-indexing/src/types/gff3Adapter.ts +++ b/packages/text-indexing/src/types/gff3Adapter.ts @@ -23,17 +23,11 @@ export async function* indexGff3({ onUpdate: (progressBytes: number) => void }) { const { trackId } = config - - let receivedBytes = 0 - const { totalBytes, stream } = await getLocalOrRemoteStream( - inLocation, - outDir, - ) - onStart(totalBytes) - - stream.on('data', chunk => { - receivedBytes += chunk.length - onUpdate(receivedBytes) + const stream = await getLocalOrRemoteStream({ + file: inLocation, + out: outDir, + onTotalBytes: onStart, + onBytesReceived: onUpdate, }) const rl = readline.createInterface({ diff --git a/packages/text-indexing/src/types/vcfAdapter.ts b/packages/text-indexing/src/types/vcfAdapter.ts index 3864c6290c..4767757251 100644 --- a/packages/text-indexing/src/types/vcfAdapter.ts +++ b/packages/text-indexing/src/types/vcfAdapter.ts @@ -21,17 +21,11 @@ export async function* indexVcf({ onUpdate: (progressBytes: number) => void }) { const { trackId } = config - let receivedBytes = 0 - const { totalBytes, stream } = await getLocalOrRemoteStream( - inLocation, - outDir, - ) - - onStart(totalBytes) - - stream.on('data', chunk => { - receivedBytes += chunk.length - onUpdate(receivedBytes) + const stream = await getLocalOrRemoteStream({ + file: inLocation, + out: outDir, + onTotalBytes: onStart, + onBytesReceived: onUpdate, }) const gzStream = /.b?gz$/.exec(inLocation) diff --git a/packages/web-core/package.json b/packages/web-core/package.json index 3a68530040..bb81e8e410 100644 --- a/packages/web-core/package.json +++ b/packages/web-core/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/web-core", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 code shared between web-app type products", "keywords": [ "jbrowse", @@ -42,8 +42,8 @@ }, "dependencies": { "@babel/runtime": "^7.16.3", - "@jbrowse/app-core": "^2.16.0", - "@jbrowse/product-core": "^2.16.0", + "@jbrowse/app-core": "^2.16.1", + "@jbrowse/product-core": "^2.16.1", "@mui/icons-material": "^6.0.0", "@mui/material": "^6.0.0", "clone": "^2.0.0", diff --git a/plugins/alignments/package.json b/plugins/alignments/package.json index 7343e0aa39..67f7c6137a 100644 --- a/plugins/alignments/package.json +++ b/plugins/alignments/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-alignments", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 alignments adapters, tracks, etc.", "keywords": [ "jbrowse", @@ -38,7 +38,7 @@ "dependencies": { "@gmod/bam": "^2.0.0", "@gmod/cram": "^3.0.3", - "@jbrowse/sv-core": "^2.16.0", + "@jbrowse/sv-core": "^2.16.1", "@mui/icons-material": "^6.0.0", "canvas2svg": "^1.0.16", "clone": "^2.1.2", diff --git a/plugins/alignments/src/AlignmentsFeatureDetail/AlignmentsFeatureDetail.tsx b/plugins/alignments/src/AlignmentsFeatureDetail/AlignmentsFeatureDetail.tsx index b7150f2f6d..450ac41419 100644 --- a/plugins/alignments/src/AlignmentsFeatureDetail/AlignmentsFeatureDetail.tsx +++ b/plugins/alignments/src/AlignmentsFeatureDetail/AlignmentsFeatureDetail.tsx @@ -2,7 +2,7 @@ import React, { lazy } from 'react' import { Paper } from '@mui/material' import { observer } from 'mobx-react' import clone from 'clone' -import { FeatureDetails } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail' +import FeatureDetails from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails' // locals import { getTag } from './util' diff --git a/plugins/alignments/src/AlignmentsFeatureDetail/Flags.tsx b/plugins/alignments/src/AlignmentsFeatureDetail/Flags.tsx index e38d572e30..5239368c7a 100644 --- a/plugins/alignments/src/AlignmentsFeatureDetail/Flags.tsx +++ b/plugins/alignments/src/AlignmentsFeatureDetail/Flags.tsx @@ -1,7 +1,7 @@ import React from 'react' import { Checkbox, FormControlLabel, FormGroup } from '@mui/material' import { makeStyles } from 'tss-react/mui' -import { BaseCard } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail' +import BaseCard from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/BaseCard' import SimpleField from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/SimpleField' const useStyles = makeStyles()({ diff --git a/plugins/alignments/src/AlignmentsFeatureDetail/LinkedPairedAlignments.tsx b/plugins/alignments/src/AlignmentsFeatureDetail/LinkedPairedAlignments.tsx index 2afcc7f1c1..1427ca9198 100644 --- a/plugins/alignments/src/AlignmentsFeatureDetail/LinkedPairedAlignments.tsx +++ b/plugins/alignments/src/AlignmentsFeatureDetail/LinkedPairedAlignments.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { BaseCard } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail' +import BaseCard from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/BaseCard' import { SimpleFeatureSerialized, getEnv, getSession } from '@jbrowse/core/util' import { ViewType } from '@jbrowse/core/pluggableElementTypes' diff --git a/plugins/alignments/src/AlignmentsFeatureDetail/SupplementaryAlignments.tsx b/plugins/alignments/src/AlignmentsFeatureDetail/SupplementaryAlignments.tsx index 948a88d726..bbb446f4a5 100644 --- a/plugins/alignments/src/AlignmentsFeatureDetail/SupplementaryAlignments.tsx +++ b/plugins/alignments/src/AlignmentsFeatureDetail/SupplementaryAlignments.tsx @@ -1,7 +1,7 @@ import React from 'react' -import { BaseCard } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail' import { SimpleFeatureSerialized, getEnv, getSession } from '@jbrowse/core/util' import { ViewType } from '@jbrowse/core/pluggableElementTypes' +import BaseCard from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/BaseCard' // locals import { AlignmentFeatureWidgetModel } from './stateModelFactory' diff --git a/plugins/alignments/src/LinearPileupDisplay/model.ts b/plugins/alignments/src/LinearPileupDisplay/model.ts index caa6da578e..51c5c2f5cd 100644 --- a/plugins/alignments/src/LinearPileupDisplay/model.ts +++ b/plugins/alignments/src/LinearPileupDisplay/model.ts @@ -96,7 +96,7 @@ function stateModelFactory(configSchema: AnyConfigurationSchemaType) { if (!self.modificationTagMap.has(value)) { self.modificationTagMap.set( value, - modificationColors[value] || randomColor(), + modificationColors[value] || randomColor(value), ) } }) diff --git a/plugins/alignments/src/LinearSNPCoverageDisplay/models/model.ts b/plugins/alignments/src/LinearSNPCoverageDisplay/models/model.ts index b8e2b1917c..6da467f996 100644 --- a/plugins/alignments/src/LinearSNPCoverageDisplay/models/model.ts +++ b/plugins/alignments/src/LinearSNPCoverageDisplay/models/model.ts @@ -115,7 +115,7 @@ function stateModelFactory( if (!self.modificationTagMap.has(value)) { self.modificationTagMap.set( value, - modificationColors[value] || randomColor(), + modificationColors[value] || randomColor(value), ) } }) diff --git a/plugins/alignments/src/MismatchParser/index.ts b/plugins/alignments/src/MismatchParser/index.ts index cd7d61f405..4573515930 100644 --- a/plugins/alignments/src/MismatchParser/index.ts +++ b/plugins/alignments/src/MismatchParser/index.ts @@ -351,13 +351,18 @@ export function getModificationPositions( } i++ } while (delta >= 0 && i < seq.length) - - const temp = i - 1 - positions.push(fstrand === -1 ? seq.length - 1 - temp : temp) - } - if (fstrand === -1) { - positions.sort((a, b) => a - b) + if (fstrand === -1) { + const pos = seq.length - i + if (pos >= 0) { + // avoid negative-number-positions in array, seen in #4629 cause + // unknown, could warrant some further investigation + positions.unshift(pos) + } + } else { + positions.push(i - 1) + } } + result.push({ type, positions, diff --git a/plugins/alignments/src/util.ts b/plugins/alignments/src/util.ts index aa23ccd51b..8313836e7b 100644 --- a/plugins/alignments/src/util.ts +++ b/plugins/alignments/src/util.ts @@ -127,6 +127,7 @@ export const modificationColors = { g: 'rgb(255, 160, 86)', e: 'rgb(141, 221, 208)', b: 'rgb(202, 71, 47)', + a: 'hsl(136, 50%, 50%)', } as Record type DisplayModel = IAnyStateTreeNode & { setError: (arg: unknown) => void } @@ -149,6 +150,12 @@ export function createAutorun( }, opts), ) } -export function randomColor() { - return `hsl(${Math.random() * 200}, 50%, 50%)` + +export function randomColor(str: string) { + let sum = 0 + + for (let i = 0; i < str.length; i++) { + sum += str.charCodeAt(i) + } + return `hsl(${sum * 10}, 20%, 50%)` } diff --git a/plugins/arc/package.json b/plugins/arc/package.json index d68f54a117..6b96604bb0 100644 --- a/plugins/arc/package.json +++ b/plugins/arc/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-arc", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 arc adapters, tracks, etc.", "keywords": [ "jbrowse", diff --git a/plugins/authentication/package.json b/plugins/authentication/package.json index d47b775933..c016d89a41 100644 --- a/plugins/authentication/package.json +++ b/plugins/authentication/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-authentication", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 Authentication", "keywords": [ "jbrowse", diff --git a/plugins/bed/package.json b/plugins/bed/package.json index d911ea9413..66446f11f9 100644 --- a/plugins/bed/package.json +++ b/plugins/bed/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-bed", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 bed adapters, tracks, etc.", "keywords": [ "jbrowse", diff --git a/plugins/breakpoint-split-view/package.json b/plugins/breakpoint-split-view/package.json index a047fc0de4..18794f04f8 100644 --- a/plugins/breakpoint-split-view/package.json +++ b/plugins/breakpoint-split-view/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-breakpoint-split-view", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 breakpoint detail split view", "keywords": [ "jbrowse", diff --git a/plugins/canvas/package.json b/plugins/canvas/package.json index 1c5b278a32..2aa7e11577 100644 --- a/plugins/canvas/package.json +++ b/plugins/canvas/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-canvas", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 plugin for canvas features", "keywords": [ "jbrowse", diff --git a/plugins/canvas/src/CanvasFeatureRenderer/index.ts b/plugins/canvas/src/CanvasFeatureRenderer/index.ts index ab53629135..386d532391 100644 --- a/plugins/canvas/src/CanvasFeatureRenderer/index.ts +++ b/plugins/canvas/src/CanvasFeatureRenderer/index.ts @@ -1,7 +1,4 @@ - - export { default as ReactComponent } from './components/CanvasFeatureRendering' export { default as configSchema } from './configSchema' - -export {default} from './CanvasFeatureRenderer' \ No newline at end of file +export { default } from './CanvasFeatureRenderer' diff --git a/plugins/canvas/src/index.ts b/plugins/canvas/src/index.ts index 5632fd7dd7..0d9af50e83 100644 --- a/plugins/canvas/src/index.ts +++ b/plugins/canvas/src/index.ts @@ -21,6 +21,7 @@ export default class CanvasPlugin extends Plugin { } } - - -export {configSchema as canvasFeatureRendererConfigSchema, ReactComponent as CanvasFeatureRendererReactComponent} from './CanvasFeatureRenderer' \ No newline at end of file +export { + configSchema as canvasFeatureRendererConfigSchema, + ReactComponent as CanvasFeatureRendererReactComponent, +} from './CanvasFeatureRenderer' diff --git a/plugins/circular-view/package.json b/plugins/circular-view/package.json index 009255b9d6..f4ef5afd8f 100644 --- a/plugins/circular-view/package.json +++ b/plugins/circular-view/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-circular-view", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 circular view", "keywords": [ "jbrowse", diff --git a/plugins/comparative-adapters/package.json b/plugins/comparative-adapters/package.json index d88b9c0a83..e9ba006a03 100644 --- a/plugins/comparative-adapters/package.json +++ b/plugins/comparative-adapters/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-comparative-adapters", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 comparative adapters", "keywords": [ "jbrowse", diff --git a/plugins/comparative-adapters/src/ChainAdapter/configSchema.ts b/plugins/comparative-adapters/src/ChainAdapter/configSchema.ts index 82bda25fe0..42caf12d76 100644 --- a/plugins/comparative-adapters/src/ChainAdapter/configSchema.ts +++ b/plugins/comparative-adapters/src/ChainAdapter/configSchema.ts @@ -16,7 +16,7 @@ const ChainAdapter = ConfigurationSchema( type: 'stringArray', defaultValue: [], description: - 'Target is the first value in the array, query is the second', + 'Array of assembly names to use for this file. The query assembly name is the first value in the array, target assembly name is the second', }, /** * #slot diff --git a/plugins/comparative-adapters/src/DeltaAdapter/configSchema.ts b/plugins/comparative-adapters/src/DeltaAdapter/configSchema.ts index ff299a2a59..94a24ff012 100644 --- a/plugins/comparative-adapters/src/DeltaAdapter/configSchema.ts +++ b/plugins/comparative-adapters/src/DeltaAdapter/configSchema.ts @@ -16,7 +16,7 @@ const DeltaAdapter = ConfigurationSchema( type: 'stringArray', defaultValue: [], description: - 'Array of assembly names to use for this file. The target assembly name is the first value in the array, query assembly name is the second', + 'Array of assembly names to use for this file. The query assembly name is the first value in the array, target assembly name is the second', }, /** * #slot @@ -41,7 +41,10 @@ const DeltaAdapter = ConfigurationSchema( */ deltaLocation: { type: 'fileLocation', - defaultValue: { uri: '/path/to/file.delta', locationType: 'UriLocation' }, + defaultValue: { + uri: '/path/to/file.delta', + locationType: 'UriLocation', + }, }, }, { explicitlyTyped: true }, diff --git a/plugins/comparative-adapters/src/MashMapAdapter/configSchema.ts b/plugins/comparative-adapters/src/MashMapAdapter/configSchema.ts index cc53fa158b..9aa98e8c3a 100644 --- a/plugins/comparative-adapters/src/MashMapAdapter/configSchema.ts +++ b/plugins/comparative-adapters/src/MashMapAdapter/configSchema.ts @@ -15,7 +15,7 @@ const MashMapAdapter = ConfigurationSchema( type: 'stringArray', defaultValue: [], description: - 'Target is the first value in the array, query is the second', + 'Array of assembly names to use for this file. The query assembly name is the first value in the array, target assembly name is the second', }, /** diff --git a/plugins/comparative-adapters/src/PAFAdapter/configSchema.ts b/plugins/comparative-adapters/src/PAFAdapter/configSchema.ts index 91f305a591..bfcae985e1 100644 --- a/plugins/comparative-adapters/src/PAFAdapter/configSchema.ts +++ b/plugins/comparative-adapters/src/PAFAdapter/configSchema.ts @@ -15,7 +15,7 @@ const PAFAdapter = ConfigurationSchema( type: 'stringArray', defaultValue: [], description: - 'Array of assembly names to use for this file. The target assembly name is the first value in the array, query assembly name is the second', + 'Array of assembly names to use for this file. The query assembly name is the first value in the array, target assembly name is the second', }, /** * #slot diff --git a/plugins/comparative-adapters/src/PairwiseIndexedPAFAdapter/configSchema.ts b/plugins/comparative-adapters/src/PairwiseIndexedPAFAdapter/configSchema.ts index 6c9009291d..ca6aef705d 100644 --- a/plugins/comparative-adapters/src/PairwiseIndexedPAFAdapter/configSchema.ts +++ b/plugins/comparative-adapters/src/PairwiseIndexedPAFAdapter/configSchema.ts @@ -16,7 +16,7 @@ const PairwiseIndexedPAFAdapter = ConfigurationSchema( type: 'stringArray', defaultValue: [], description: - 'Array of assembly names to use for this file. The target assembly name is the first value in the array, query assembly name is the second', + 'Array of assembly names to use for this file. The query assembly name is the first value in the array, target assembly name is the second', }, /** * #slot diff --git a/plugins/config/package.json b/plugins/config/package.json index 4633fb052d..f1ee5a42e6 100644 --- a/plugins/config/package.json +++ b/plugins/config/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-config", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 config utilities", "keywords": [ "jbrowse", diff --git a/plugins/data-management/package.json b/plugins/data-management/package.json index 8eb89f2183..be3b160ae1 100644 --- a/plugins/data-management/package.json +++ b/plugins/data-management/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-data-management", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 linear genome view", "keywords": [ "jbrowse", diff --git a/plugins/data-management/src/AddTrackWidget/components/AddTrackWidget.tsx b/plugins/data-management/src/AddTrackWidget/components/AddTrackWidget.tsx index 8e1136e5aa..f2c5f552d7 100644 --- a/plugins/data-management/src/AddTrackWidget/components/AddTrackWidget.tsx +++ b/plugins/data-management/src/AddTrackWidget/components/AddTrackWidget.tsx @@ -1,4 +1,4 @@ -import React, { useState } from 'react' +import React, { Suspense, useState } from 'react' import { observer } from 'mobx-react' import { FormControl, FormHelperText, Select, MenuItem } from '@mui/material' import { getEnv } from '@jbrowse/core/util' @@ -14,12 +14,14 @@ const AddTrackSelector = observer(function ({ model: AddTrackModel }) { const [val, setVal] = useState('Default add track workflow') - const { pluginManager } = getEnv(model) - const widgets = pluginManager.getAddTrackWorkflowElements() const ComponentMap = { 'Default add track workflow': DefaultAddTrackWorkflow, 'Add track JSON': PasteConfigWorkflow, - ...Object.fromEntries(widgets.map(w => [w.name, w.ReactComponent])), + ...Object.fromEntries( + getEnv(model) + .pluginManager.getAddTrackWorkflowElements() + .map(w => [w.name, w.ReactComponent]), + ), } as Record> // make sure the selected value is in the list @@ -43,8 +45,9 @@ const AddTrackSelector = observer(function ({ Type of add track workflow -
- + + + ) }) diff --git a/plugins/dotplot-view/package.json b/plugins/dotplot-view/package.json index 129bc17142..8e6275f149 100644 --- a/plugins/dotplot-view/package.json +++ b/plugins/dotplot-view/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-dotplot-view", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 dotplot view", "keywords": [ "jbrowse", diff --git a/plugins/gccontent/package.json b/plugins/gccontent/package.json index 3bb59d51af..fefec029a0 100644 --- a/plugins/gccontent/package.json +++ b/plugins/gccontent/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-gccontent", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 gccontent concepts", "keywords": [ "jbrowse", diff --git a/plugins/gff3/package.json b/plugins/gff3/package.json index 95b01d1120..afe1d349d5 100644 --- a/plugins/gff3/package.json +++ b/plugins/gff3/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-gff3", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 gff3.", "keywords": [ "jbrowse", diff --git a/plugins/grid-bookmark/package.json b/plugins/grid-bookmark/package.json index 00a78938ad..3fcd60ee1e 100644 --- a/plugins/grid-bookmark/package.json +++ b/plugins/grid-bookmark/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-grid-bookmark", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 grid bookmark widget", "keywords": [ "jbrowse", diff --git a/plugins/gtf/package.json b/plugins/gtf/package.json index 0672c0efd5..b4dbaab5c1 100644 --- a/plugins/gtf/package.json +++ b/plugins/gtf/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-gtf", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 gtf feature adapter", "keywords": [ "jbrowse", diff --git a/plugins/hic/package.json b/plugins/hic/package.json index b541c43ce9..db766ea7f8 100644 --- a/plugins/hic/package.json +++ b/plugins/hic/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-hic", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 hic adapters, tracks, etc.", "keywords": [ "jbrowse", diff --git a/plugins/hic/src/HicAdapter/HicAdapter.ts b/plugins/hic/src/HicAdapter/HicAdapter.ts index aea060b40c..9ba3437b0e 100644 --- a/plugins/hic/src/HicAdapter/HicAdapter.ts +++ b/plugins/hic/src/HicAdapter/HicAdapter.ts @@ -2,15 +2,16 @@ import { BaseFeatureDataAdapter, BaseOptions, } from '@jbrowse/core/data_adapters/BaseAdapter' -import { Region, FileLocation } from '@jbrowse/core/util/types' +import { Region } from '@jbrowse/core/util/types' import { ObservableCreate } from '@jbrowse/core/util/rxjs' -import { openLocation } from '@jbrowse/core/util/io' -import type { GenericFilehandle } from 'generic-filehandle' import HicStraw from 'hic-straw' import PluginManager from '@jbrowse/core/PluginManager' import { getSubAdapterType } from '@jbrowse/core/data_adapters/dataAdapterCache' import { AnyConfigurationModel } from '@jbrowse/core/configuration' -import { Buffer } from 'buffer' +import { updateStatus } from '@jbrowse/core/util' + +// locals +import { openHicFilehandle } from './HicFilehandle' interface ContactRecord { bin1: number @@ -35,32 +36,7 @@ interface Ref { interface HicOptions extends BaseOptions { resolution?: number bpPerPx?: number -} - -// wraps generic-filehandle so the read function only takes a position and -// length in some ways, generic-filehandle wishes it was just this but it has -// to adapt to the node.js fs promises API -class GenericFilehandleWrapper { - constructor(private filehandle: GenericFilehandle) {} - - async read(position: number, length: number) { - const { buffer } = await this.filehandle.read( - Buffer.alloc(length), - 0, - length, - position, - ) - return buffer.buffer.slice( - buffer.byteOffset, - buffer.byteOffset + buffer.byteLength, - ) - } -} -export function openFilehandleWrapper( - location: FileLocation, - pluginManager?: PluginManager, -) { - return new GenericFilehandleWrapper(openLocation(location, pluginManager)) + normalization?: string } interface HicParser { @@ -83,24 +59,23 @@ export default class HicAdapter extends BaseFeatureDataAdapter { pluginManager?: PluginManager, ) { super(config, getSubAdapter, pluginManager) - const hicLocation = this.getConf('hicLocation') this.hic = new HicStraw({ - file: openFilehandleWrapper(hicLocation, this.pluginManager), + file: openHicFilehandle(this.getConf('hicLocation'), this.pluginManager), }) } private async setup(opts?: BaseOptions) { const { statusCallback = () => {} } = opts || {} - statusCallback('Downloading .hic header') - const result = await this.hic.getMetaData() - statusCallback('') - return result + return updateStatus('Downloading .hic header', statusCallback, () => + this.hic.getMetaData(), + ) } public async getHeader(opts?: BaseOptions) { - const ret = await this.setup(opts) - const { chromosomes, ...rest } = ret - return rest + const { chromosomes, ...rest } = await this.setup(opts) + // @ts-expect-error + const norms = await this.hic.getNormalizationOptions() + return { ...rest, norms } } async getRefNames(opts?: BaseOptions) { @@ -108,14 +83,13 @@ export default class HicAdapter extends BaseFeatureDataAdapter { return metadata.chromosomes.map(chr => chr.name) } - async getResolution(bpPerPx: number, opts?: BaseOptions) { + async getResolution(res: number, opts?: BaseOptions) { const { resolutions } = await this.setup(opts) - + const resolutionMultiplier = this.getConf('resolutionMultiplier') let chosenResolution = resolutions.at(-1)! - for (let i = resolutions.length - 1; i >= 0; i -= 1) { const r = resolutions[i]! - if (r <= 2 * bpPerPx) { + if (r <= 2 * res * resolutionMultiplier) { chosenResolution = r } } @@ -125,28 +99,35 @@ export default class HicAdapter extends BaseFeatureDataAdapter { getFeatures(region: Region, opts: HicOptions = {}) { return ObservableCreate(async observer => { const { refName: chr, start, end } = region - const { resolution, bpPerPx = 1, statusCallback = () => {} } = opts + const { + resolution, + normalization = 'KR', + bpPerPx = 1, + statusCallback = () => {}, + } = opts const res = await this.getResolution(bpPerPx / (resolution || 1000), opts) - statusCallback('Downloading .hic data') - const records = await this.hic.getContactRecords( - 'KR', - { start, chr, end }, - { start, chr, end }, - 'BP', - res, - ) - for (const record of records) { - observer.next(record) - } - statusCallback('') + await updateStatus('Downloading .hic data', statusCallback, async () => { + const records = await this.hic.getContactRecords( + normalization, + { start, chr, end }, + { start, chr, end }, + 'BP', + res, + ) + for (const record of records) { + observer.next(record) + } + }) observer.complete() }, opts.signal) as any } // don't do feature stats estimation, similar to bigwigadapter async getMultiRegionFeatureDensityStats(_regions: Region[]) { - return { featureDensity: 0 } + return { + featureDensity: 0, + } } freeResources(/* { region } */): void {} diff --git a/plugins/hic/src/HicAdapter/HicFilehandle.ts b/plugins/hic/src/HicAdapter/HicFilehandle.ts new file mode 100644 index 0000000000..a55f52ff58 --- /dev/null +++ b/plugins/hic/src/HicAdapter/HicFilehandle.ts @@ -0,0 +1,35 @@ +import { FileLocation } from '@jbrowse/core/util' +import { openLocation } from '@jbrowse/core/util/io' +import type { GenericFilehandle } from 'generic-filehandle' + +import { Buffer } from 'buffer' +import PluginManager from '@jbrowse/core/PluginManager' + +// wraps generic-filehandle so the read function only takes a position and +// length +// +// in some ways, generic-filehandle wishes it was just this but it has +// to adapt to the node.js fs promises API +class HicFilehandle { + constructor(private filehandle: GenericFilehandle) {} + + async read(position: number, length: number) { + const { buffer } = await this.filehandle.read( + Buffer.alloc(length), + 0, + length, + position, + ) + return buffer.buffer.slice( + buffer.byteOffset, + buffer.byteOffset + buffer.byteLength, + ) + } +} + +export function openHicFilehandle( + location: FileLocation, + pluginManager?: PluginManager, +) { + return new HicFilehandle(openLocation(location, pluginManager)) +} diff --git a/plugins/hic/src/HicAdapter/configSchema.ts b/plugins/hic/src/HicAdapter/configSchema.ts index a139482fac..a58c4d870b 100644 --- a/plugins/hic/src/HicAdapter/configSchema.ts +++ b/plugins/hic/src/HicAdapter/configSchema.ts @@ -19,6 +19,14 @@ const HicAdapter = ConfigurationSchema( locationType: 'UriLocation', }, }, + /** + * #slot + */ + resolutionMultiplier: { + type: 'number', + defaultValue: 1, + description: 'Initial resolution multiplier', + }, }, { explicitlyTyped: true }, ) diff --git a/plugins/hic/src/HicRenderer/HicRenderer.tsx b/plugins/hic/src/HicRenderer/HicRenderer.tsx index d064eea21d..9b955c4c79 100644 --- a/plugins/hic/src/HicRenderer/HicRenderer.tsx +++ b/plugins/hic/src/HicRenderer/HicRenderer.tsx @@ -101,7 +101,7 @@ export default class HicRenderer extends ServerSideRendererType { } } -export { - type RenderArgsSerialized, - type RenderResults, +export type { + RenderArgsSerialized, + RenderResults, } from '@jbrowse/core/pluggableElementTypes/renderers/ServerSideRendererType' diff --git a/plugins/hic/src/LinearHicDisplay/model.ts b/plugins/hic/src/LinearHicDisplay/model.ts index b9e8e7065b..03e5b3035f 100644 --- a/plugins/hic/src/LinearHicDisplay/model.ts +++ b/plugins/hic/src/LinearHicDisplay/model.ts @@ -1,7 +1,9 @@ import { ConfigurationReference, getConf } from '@jbrowse/core/configuration' import { BaseLinearDisplay } from '@jbrowse/plugin-linear-genome-view' -import { types, getEnv } from 'mobx-state-tree' +import { types, getEnv, addDisposer } from 'mobx-state-tree' import { AnyConfigurationSchemaType } from '@jbrowse/core/configuration' +import { autorun } from 'mobx' +import { getContainingTrack, getSession } from '@jbrowse/core/util' /** * #stateModel LinearHicDisplay @@ -38,8 +40,18 @@ export default function stateModelFactory( * #property */ colorScheme: types.maybe(types.string), + /** + * #property + */ + activeNormalization: 'KR', }), ) + .volatile(() => ({ + /** + * #volatile + */ + availableNormalizations: undefined as string[] | undefined, + })) .views(self => { const { renderProps: superRenderProps } = self return { @@ -74,6 +86,7 @@ export default function stateModelFactory( return { ...superRenderProps(), config, + normalization: self.activeNormalization, rpcDriverName: self.rpcDriverName, displayModel: self, resolution: self.resolution, @@ -102,6 +115,18 @@ export default function stateModelFactory( setColorScheme(f?: string) { self.colorScheme = f }, + /** + * #action + */ + setActiveNormalization(f: string) { + self.activeNormalization = f + }, + /** + * #action + */ + setAvailableNormalizations(f: string[]) { + self.availableNormalizations = f + }, })) .views(self => { const { trackMenuItems: superTrackMenuItems } = self @@ -167,8 +192,50 @@ export default function stateModelFactory( }, ], }, + ...(self.availableNormalizations + ? [ + { + label: 'Normalization scheme', + subMenu: self.availableNormalizations.map(norm => ({ + label: norm, + type: 'checkbox', + checked: norm === self.activeNormalization, + onClick: () => { + self.setActiveNormalization(norm) + }, + })), + }, + ] + : []), ] }, } }) + .actions(self => ({ + afterAttach() { + addDisposer( + self, + autorun(async () => { + try { + const { rpcManager } = getSession(self) + const track = getContainingTrack(self) + const adapterConfig = getConf(track, 'adapter') + const { norms } = (await rpcManager.call( + getConf(track, 'trackId'), + 'CoreGetInfo', + { + adapterConfig, + }, + )) as { norms?: string[] } + if (norms) { + self.setAvailableNormalizations(norms) + } + } catch (e) { + console.error(e) + getSession(self).notifyError(`${e}`, e) + } + }), + ) + }, + })) } diff --git a/plugins/jobs-management/package.json b/plugins/jobs-management/package.json index 3d0df6378c..9ba007e158 100644 --- a/plugins/jobs-management/package.json +++ b/plugins/jobs-management/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-jobs-management", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 jobs management", "keywords": [ "jbrowse", @@ -36,7 +36,7 @@ "clean": "rimraf dist esm *.tsbuildinfo" }, "dependencies": { - "@jbrowse/text-indexing": "^2.16.0", + "@jbrowse/text-indexing": "^2.16.1", "@mui/icons-material": "^6.0.0" }, "peerDependencies": { diff --git a/plugins/legacy-jbrowse/package.json b/plugins/legacy-jbrowse/package.json index a4d55b9f61..b7946ad678 100644 --- a/plugins/legacy-jbrowse/package.json +++ b/plugins/legacy-jbrowse/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-legacy-jbrowse", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 plugin for connecting to and reading JBrowse 1 data", "keywords": [ "jbrowse", diff --git a/plugins/linear-comparative-view/package.json b/plugins/linear-comparative-view/package.json index 95ce1bdec8..34b768c951 100644 --- a/plugins/linear-comparative-view/package.json +++ b/plugins/linear-comparative-view/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-linear-comparative-view", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 linear comparative view", "keywords": [ "jbrowse", @@ -16,8 +16,8 @@ }, "author": "JBrowse Team", "distMain": "dist/index.js", - "srcMain": "src/index.tsx", - "main": "src/index.tsx", + "srcMain": "src/index.ts", + "main": "src/index.ts", "files": [ "dist", "esm" diff --git a/plugins/linear-comparative-view/src/LGVSyntenyDisplay/components/LaunchSyntenyViewDialog.tsx b/plugins/linear-comparative-view/src/LGVSyntenyDisplay/components/LaunchSyntenyViewDialog.tsx index c99d1878cd..20c8387b0d 100644 --- a/plugins/linear-comparative-view/src/LGVSyntenyDisplay/components/LaunchSyntenyViewDialog.tsx +++ b/plugins/linear-comparative-view/src/LGVSyntenyDisplay/components/LaunchSyntenyViewDialog.tsx @@ -9,8 +9,9 @@ import { FormControlLabel, TextField, } from '@mui/material' -import { navToSynteny } from './util' import { makeStyles } from 'tss-react/mui' +// locals +import { navToSynteny } from './util' const useStyles = makeStyles()({ padding: { @@ -22,10 +23,12 @@ const useStyles = makeStyles()({ export default function LaunchSyntenyViewDialog({ model, feature, + trackId, handleClose, }: { model: unknown feature: Feature + trackId: string handleClose: () => void }) { const { classes } = useStyles() @@ -70,6 +73,7 @@ export default function LaunchSyntenyViewDialog({ feature, windowSize: +windowSize, horizontallyFlip, + trackId, model, }) } catch (e) { diff --git a/plugins/linear-comparative-view/src/LGVSyntenyDisplay/components/util.ts b/plugins/linear-comparative-view/src/LGVSyntenyDisplay/components/util.ts index 14d57a5008..57d05d1e12 100644 --- a/plugins/linear-comparative-view/src/LGVSyntenyDisplay/components/util.ts +++ b/plugins/linear-comparative-view/src/LGVSyntenyDisplay/components/util.ts @@ -1,9 +1,4 @@ -import { - getSession, - getContainingTrack, - getContainingView, - Feature, -} from '@jbrowse/core/util' +import { getSession, Feature } from '@jbrowse/core/util' import { MismatchParser } from '@jbrowse/plugin-alignments' import { IAnyStateTreeNode } from 'mobx-state-tree' import { LinearGenomeViewModel } from '@jbrowse/plugin-linear-genome-view' @@ -45,24 +40,24 @@ export async function navToSynteny({ feature, windowSize: ws, model, + trackId, + view, horizontallyFlip, }: { windowSize: number + trackId: string horizontallyFlip: boolean feature: Feature + view?: LinearGenomeViewModel model: IAnyStateTreeNode }) { const session = getSession(model) - const track = getContainingTrack(model) - const view = getContainingView(model) as LinearGenomeViewModel - const reg = view.dynamicBlocks.contentBlocks[0] - if (!reg) { - throw new Error('no visible region') - } + const reg = view?.dynamicBlocks.contentBlocks[0] const cigar = feature.get('CIGAR') const strand = feature.get('strand') - const regStart = reg.start - const regEnd = reg.end + + const featRef = feature.get('refName') + const featAsm = feature.get('assemblyName') const featStart = feature.get('start') const featEnd = feature.get('end') const mate = feature.get('mate') @@ -70,15 +65,15 @@ export async function navToSynteny({ const mateEnd = mate.end const mateAsm = mate.assemblyName const mateRef = mate.refName - const featAsm = reg.assemblyName - const featRef = reg.refName let rMateStart: number let rMateEnd: number let rFeatStart: number let rFeatEnd: number - if (cigar) { + if (reg && cigar) { + const regStart = reg.start + const regEnd = reg.end const p = parseCigar(cigar) const [fStartX, mStartX] = findPosInCigar(p, regStart - featStart) const [fEndX, mEndX] = findPosInCigar(p, regEnd - featStart) @@ -95,18 +90,15 @@ export async function navToSynteny({ rMateStart = mateStart rMateEnd = mateEnd } - const trackId = track.configuration.trackId const view2 = session.addView('LinearSyntenyView', { type: 'LinearSyntenyView', views: [ { - id: `${Math.random()}`, type: 'LinearGenomeView', hideHeader: true, }, { - id: `${Math.random()}`, type: 'LinearGenomeView', hideHeader: true, }, diff --git a/plugins/linear-comparative-view/src/LGVSyntenyDisplay/model.ts b/plugins/linear-comparative-view/src/LGVSyntenyDisplay/model.ts index 04a03b5c3d..ed9994da20 100644 --- a/plugins/linear-comparative-view/src/LGVSyntenyDisplay/model.ts +++ b/plugins/linear-comparative-view/src/LGVSyntenyDisplay/model.ts @@ -2,8 +2,15 @@ import { lazy } from 'react' import { ConfigurationReference, AnyConfigurationSchemaType, + getConf, } from '@jbrowse/core/configuration' -import { getSession } from '@jbrowse/core/util' +import { + Feature, + getContainingTrack, + getContainingView, + getSession, + isSessionModelWithWidgets, +} from '@jbrowse/core/util' import { SharedLinearPileupDisplayMixin } from '@jbrowse/plugin-alignments' import { types } from 'mobx-state-tree' @@ -48,12 +55,13 @@ function stateModelFactory(schema: AnyConfigurationSchemaType) { ...(feature ? [ { - label: 'Open synteny view for this position', + label: 'Launch synteny view for this position', onClick: () => { getSession(self).queueDialog(handleClose => [ LaunchSyntenyViewDialog, { model: self, + trackId: getConf(getContainingTrack(self), 'trackId'), handleClose, feature, }, @@ -87,6 +95,30 @@ function stateModelFactory(schema: AnyConfigurationSchemaType) { } }) .actions(self => ({ + /** + * #action + */ + selectFeature(feature: Feature) { + const session = getSession(self) + if (isSessionModelWithWidgets(session)) { + const r2 = getContainingView(self) + let r3 = r2 + try { + r3 = getContainingView(r3) + } catch (e) {} + const featureWidget = session.addWidget( + 'SyntenyFeatureWidget', + 'syntenyFeature', + { + featureData: feature.toJSON(), + view: r3, + track: getContainingTrack(self), + }, + ) + session.showWidget(featureWidget) + } + session.setSelection(feature) + }, afterCreate() { // use color by stand to help indicate inversions better on first load, // otherwise use selected orientation diff --git a/plugins/linear-comparative-view/src/LinearComparativeDisplay/stateModelFactory.ts b/plugins/linear-comparative-view/src/LinearComparativeDisplay/stateModelFactory.ts index 3023c9bb75..210ed400aa 100644 --- a/plugins/linear-comparative-view/src/LinearComparativeDisplay/stateModelFactory.ts +++ b/plugins/linear-comparative-view/src/LinearComparativeDisplay/stateModelFactory.ts @@ -42,6 +42,18 @@ function stateModelFactory(configSchema: AnyConfigurationSchemaType) { message: undefined as string | undefined, })) .views(self => ({ + /** + * #getter + */ + get level() { + return getParent<{ height: number; level: number }>(self, 4).level + }, + /** + * #getter + */ + get height() { + return getParent<{ height: number; level: number }>(self, 4).height + }, /** * #getter */ @@ -166,7 +178,7 @@ function renderBlockData(self: LinearComparativeDisplay) { // serverSideRenderedBlock readConfObject(self.configuration) - const { adapterConfig } = self + const { level, adapterConfig } = self const parent = getContainingView(self) as LinearComparativeViewModel const sessionId = getRpcSessionId(self) getSnapshot(parent) @@ -175,8 +187,7 @@ function renderBlockData(self: LinearComparativeDisplay) { rpcManager, renderProps: { ...display.renderProps(), - // @ts-expect-error - level: getParent(self, 4).level as number, + level, view: parent, adapterConfig, sessionId, diff --git a/plugins/linear-comparative-view/src/LinearSyntenyDisplay/afterAttach.ts b/plugins/linear-comparative-view/src/LinearSyntenyDisplay/afterAttach.ts index d41449edc8..8696c56485 100644 --- a/plugins/linear-comparative-view/src/LinearSyntenyDisplay/afterAttach.ts +++ b/plugins/linear-comparative-view/src/LinearSyntenyDisplay/afterAttach.ts @@ -1,9 +1,8 @@ -import { addDisposer, getParent, getSnapshot } from 'mobx-state-tree' - +import { reaction, autorun } from 'mobx' +import { addDisposer, getSnapshot } from 'mobx-state-tree' import { Feature, getContainingView, getSession } from '@jbrowse/core/util' import { bpToPx } from '@jbrowse/core/util/Base1DUtils' import { MismatchParser } from '@jbrowse/plugin-alignments' -import { reaction, autorun } from 'mobx' // locals import { LinearSyntenyViewModel } from '../LinearSyntenyView/model' @@ -84,10 +83,9 @@ export function doAfterAttach(self: LinearSyntenyDisplayModel) { if (!initialized) { return } + const { level } = self const { assemblyManager } = getSession(self) const view = getContainingView(self) as LSV - // @ts-expect-error - const level = getParent(self, 4).level const viewSnaps = view.views.map(view => ({ ...getSnapshot(view), width: view.width, diff --git a/plugins/linear-comparative-view/src/LinearSyntenyDisplay/components/LinearSyntenyRendering.tsx b/plugins/linear-comparative-view/src/LinearSyntenyDisplay/components/LinearSyntenyRendering.tsx index 6ecceb84a9..1a586f2513 100644 --- a/plugins/linear-comparative-view/src/LinearSyntenyDisplay/components/LinearSyntenyRendering.tsx +++ b/plugins/linear-comparative-view/src/LinearSyntenyDisplay/components/LinearSyntenyRendering.tsx @@ -26,6 +26,7 @@ const useStyles = makeStyles()({ position: 'relative', }, mouseoverCanvas: { + imageRendering: 'pixelated', position: 'absolute', pointEvents: 'none', }, @@ -40,11 +41,11 @@ const LinearSyntenyRendering = observer(function ({ model: LinearSyntenyDisplayModel }) { const { classes } = useStyles() + const { mouseoverId, height } = model const xOffset = useRef(0) const view = getContainingView(model) as LinearSyntenyViewModel const width = view.width const delta = useRef(0) - const scheduled = useRef(false) const timeout = useRef() const [anchorEl, setAnchorEl] = useState() @@ -53,13 +54,12 @@ const LinearSyntenyRendering = observer(function ({ const [mouseCurrDownX, setMouseCurrDownX] = useState() const [mouseInitialDownX, setMouseInitialDownX] = useState() const [currY, setCurrY] = useState() - const { mouseoverId, height } = model - const k2p = useRef() + const mainSyntenyCanvasRefp = useRef() // these useCallbacks avoid new refs from being created on any mouseover, // etc. // biome-ignore lint/correctness/useExhaustiveDependencies: - const k1 = useCallback( + const mouseoverDetectionCanvasRef = useCallback( (ref: HTMLCanvasElement | null) => { model.setMouseoverCanvasRef(ref) }, @@ -68,10 +68,10 @@ const LinearSyntenyRendering = observer(function ({ ) // biome-ignore lint/correctness/useExhaustiveDependencies: - const k2 = useCallback( + const mainSyntenyCanvasRef = useCallback( (ref: HTMLCanvasElement | null) => { model.setMainCanvasRef(ref) - k2p.current = ref // this ref is additionally used in useEffect below + mainSyntenyCanvasRefp.current = ref // this ref is additionally used in useEffect below }, // eslint-disable-next-line react-hooks/exhaustive-deps [model, height, width], @@ -97,7 +97,9 @@ const LinearSyntenyRendering = observer(function ({ delta.current > 0 ? v.bpPerPx * (1 + delta.current) : v.bpPerPx / (1 - delta.current), - event.clientX - (k2p.current?.getBoundingClientRect().left || 0), + event.clientX - + (mainSyntenyCanvasRefp.current?.getBoundingClientRect().left || + 0), ) } delta.current = 0 @@ -120,15 +122,15 @@ const LinearSyntenyRendering = observer(function ({ } } } - k2p.current?.addEventListener('wheel', onWheel) + mainSyntenyCanvasRefp.current?.addEventListener('wheel', onWheel) return () => { - k2p.current?.removeEventListener('wheel', onWheel) + mainSyntenyCanvasRefp.current?.removeEventListener('wheel', onWheel) } // eslint-disable-next-line react-hooks/exhaustive-deps }, [model, height, width]) // biome-ignore lint/correctness/useExhaustiveDependencies: - const k3 = useCallback( + const clickMapCanvasRef = useCallback( (ref: HTMLCanvasElement | null) => { model.setClickMapCanvasRef(ref) }, @@ -136,7 +138,7 @@ const LinearSyntenyRendering = observer(function ({ [model, height, width], ) // biome-ignore lint/correctness/useExhaustiveDependencies: - const k4 = useCallback( + const cigarClickMapCanvasRef = useCallback( (ref: HTMLCanvasElement | null) => { model.setCigarClickMapCanvasRef(ref) }, @@ -147,13 +149,13 @@ const LinearSyntenyRendering = observer(function ({ return (
{ if (mouseCurrDownX !== undefined) { xOffset.current += mouseCurrDownX - event.clientX @@ -198,7 +200,13 @@ const LinearSyntenyRendering = observer(function ({ const { f, cigar } = model.featPositions[id] const unitMultiplier2 = Math.floor(MAX_COLOR_RANGE / cigar.length) const cigarIdx = getId(r2!, g2!, b2!, unitMultiplier2) - setTooltip(getTooltip(f, cigar[cigarIdx], cigar[cigarIdx + 1])) + setTooltip( + getTooltip({ + feature: f, + cigarOp: cigar[cigarIdx], + cigarOpLen: cigar[cigarIdx + 1], + }), + ) } } }} @@ -228,8 +236,18 @@ const LinearSyntenyRendering = observer(function ({ width={width} height={height} /> - - + + {mouseoverId && tooltip && currX && currY ? ( ) : null} diff --git a/plugins/linear-comparative-view/src/LinearSyntenyDisplay/components/SyntenyContextMenu.tsx b/plugins/linear-comparative-view/src/LinearSyntenyDisplay/components/SyntenyContextMenu.tsx index 9df93e7adf..27107aa049 100644 --- a/plugins/linear-comparative-view/src/LinearSyntenyDisplay/components/SyntenyContextMenu.tsx +++ b/plugins/linear-comparative-view/src/LinearSyntenyDisplay/components/SyntenyContextMenu.tsx @@ -1,7 +1,6 @@ import React from 'react' import { getContainingView, getSession, Feature } from '@jbrowse/core/util' import { Menu } from '@jbrowse/core/ui' -import { getParent } from 'mobx-state-tree' // locals import { LinearSyntenyDisplayModel } from '../model' @@ -55,14 +54,13 @@ export default function SyntenyContextMenu({ label: 'Center on feature', onClick: () => { const { f } = feature - const track = getParent<{ level: number }>(model, 4) const start = f.get('start') const end = f.get('end') const refName = f.get('refName') const mate = f.get('mate') - const l1 = view.views[track.level]! - const l2 = view.views[track.level + 1]! + const l1 = view.views[model.level]! + const l2 = view.views[model.level + 1]! l1.navToLocString(`${refName}:${start}-${end}`).catch( (e: unknown) => { const err = `${l1.assemblyNames[0]}:${e}` diff --git a/plugins/linear-comparative-view/src/LinearSyntenyDisplay/components/util.ts b/plugins/linear-comparative-view/src/LinearSyntenyDisplay/components/util.ts index c626d74300..a4f21d45f9 100644 --- a/plugins/linear-comparative-view/src/LinearSyntenyDisplay/components/util.ts +++ b/plugins/linear-comparative-view/src/LinearSyntenyDisplay/components/util.ts @@ -128,7 +128,6 @@ export function drawBox( ctx.lineTo(x3, y2) ctx.lineTo(x4, y2) ctx.closePath() - ctx.fill() } export function drawBezierBox( @@ -159,7 +158,6 @@ export function drawBezierBox( ctx.lineTo(x4, y2) ctx.bezierCurveTo(x4, mid, x1, mid, x1, y1) ctx.closePath() - ctx.fill() } export function onSynClick( @@ -168,8 +166,13 @@ export function onSynClick( ) { const view = getContainingView(model) const track = getContainingTrack(model) - const ref1 = model.clickMapCanvas - const ref2 = model.cigarClickMapCanvas + const { + featPositions, + numFeats, + clickMapCanvas: ref1, + cigarClickMapCanvas: ref2, + level, + } = model if (!ref1 || !ref2) { return } @@ -182,19 +185,20 @@ export function onSynClick( const x = event.clientX - rect.left const y = event.clientY - rect.top const [r1, g1, b1] = ctx1.getImageData(x, y, 1, 1).data - const unitMultiplier = Math.floor(MAX_COLOR_RANGE / model.numFeats) + const unitMultiplier = Math.floor(MAX_COLOR_RANGE / numFeats) const id = getId(r1!, g1!, b1!, unitMultiplier) - const feat = model.featPositions[id] + const feat = featPositions[id] if (feat) { const { f } = feat model.setClickId(f.id()) const session = getSession(model) if (isSessionModelWithWidgets(session)) { session.showWidget( - session.addWidget('BaseFeatureWidget', 'baseFeature', { + session.addWidget('SyntenyFeatureWidget', 'syntenyFeature', { view, track, featureData: f.toJSON(), + level, }), ) } @@ -232,9 +236,17 @@ export function onSynContextClick( } } -export function getTooltip(f: Feature, cigarOp?: string, cigarOpLen?: string) { +export function getTooltip({ + feature, + cigarOp, + cigarOpLen, +}: { + feature: Feature + cigarOp?: string + cigarOpLen?: string +}) { // @ts-expect-error - const f1 = f.toJSON() as { + const f1 = feature.toJSON() as { refName: string start: number end: number diff --git a/plugins/linear-comparative-view/src/LinearSyntenyDisplay/drawSynteny.ts b/plugins/linear-comparative-view/src/LinearSyntenyDisplay/drawSynteny.ts index 759896da7c..46f75d0eef 100644 --- a/plugins/linear-comparative-view/src/LinearSyntenyDisplay/drawSynteny.ts +++ b/plugins/linear-comparative-view/src/LinearSyntenyDisplay/drawSynteny.ts @@ -3,7 +3,6 @@ import { doesIntersect2, getContainingView } from '@jbrowse/core/util' import { LinearSyntenyViewModel } from '../LinearSyntenyView/model' import { LinearSyntenyDisplayModel } from './model' import { draw, drawMatchSimple } from './components/util' -import { getParent } from 'mobx-state-tree' export const MAX_COLOR_RANGE = 255 * 255 * 255 // max color range @@ -37,11 +36,9 @@ export function drawRef( ctx3?: CanvasRenderingContext2D, ) { const view = getContainingView(model) as LinearSyntenyViewModel - // @ts-expect-error - const level = getParent(model, 4).level const drawCurves = view.drawCurves const drawCIGAR = view.drawCIGAR - const { height, featPositions } = model + const { level, height, featPositions } = model const width = view.width const bpPerPxs = view.views.map(v => v.bpPerPx) @@ -179,15 +176,18 @@ export function drawRef( continuingFlag = false draw(ctx1, px1, cx1, y1, cx2, px2, y2, mid, drawCurves) + ctx1.fill() if (ctx3) { ctx3.fillStyle = makeColor(idx) draw(ctx3, px1, cx1, y1, cx2, px2, y2, mid, drawCurves) + ctx3.fill() } } } } } else { draw(ctx1, x11, x12, y1, x22, x21, y2, mid, drawCurves) + ctx1.fill() } } } @@ -223,7 +223,7 @@ export function drawRef( } export function drawMouseoverSynteny(model: LinearSyntenyDisplayModel) { - const { clickId, mouseoverId } = model + const { level, clickId, mouseoverId } = model const highResolutionScaling = 1 const view = getContainingView(model) as LinearSyntenyViewModel const drawCurves = view.drawCurves @@ -231,8 +231,6 @@ export function drawMouseoverSynteny(model: LinearSyntenyDisplayModel) { const width = view.width const ctx = model.mouseoverCanvas?.getContext('2d') const offsets = view.views.map(v => v.offsetPx) - // @ts-expect-error - const level = getParent(model, 4).level if (!ctx) { return @@ -240,9 +238,10 @@ export function drawMouseoverSynteny(model: LinearSyntenyDisplayModel) { ctx.resetTransform() ctx.scale(highResolutionScaling, highResolutionScaling) ctx.clearRect(0, 0, width, height) + ctx.strokeStyle = 'rgba(0, 0, 0, 0.9)' + ctx.fillStyle = 'rgba(0, 0, 0, 0.1)' const feature1 = model.featMap[mouseoverId || ''] if (feature1) { - ctx.fillStyle = 'rgb(0,0,0,0.1)' drawMatchSimple({ cb: ctx => { ctx.fill() @@ -259,8 +258,6 @@ export function drawMouseoverSynteny(model: LinearSyntenyDisplayModel) { } const feature2 = model.featMap[clickId || ''] if (feature2) { - ctx.strokeStyle = 'rgb(0, 0, 0, 0.9)' - drawMatchSimple({ cb: ctx => { ctx.stroke() diff --git a/plugins/linear-comparative-view/src/LinearSyntenyDisplay/model.ts b/plugins/linear-comparative-view/src/LinearSyntenyDisplay/model.ts index a95d5fdc8c..4e8260e352 100644 --- a/plugins/linear-comparative-view/src/LinearSyntenyDisplay/model.ts +++ b/plugins/linear-comparative-view/src/LinearSyntenyDisplay/model.ts @@ -1,4 +1,4 @@ -import { types, Instance, getParent } from 'mobx-state-tree' +import { types, Instance } from 'mobx-state-tree' import { getConf, ConfigurationReference, @@ -44,35 +44,58 @@ function stateModelFactory(configSchema: AnyConfigurationSchemaType) { }), ) .volatile(() => ({ - // canvas used for drawing visible screen + /** + * #volatile + * canvas used for drawing visible screen + */ mainCanvas: null as HTMLCanvasElement | null, - // canvas used for drawing click map with feature ids - // this renders a unique color per alignment, so that it can be re-traced - // after a feature click with getImageData at that pixel + /** + * #volatile + * canvas used for drawing click map with feature ids this renders a + * unique color per alignment, so that it can be re-traced after a + * feature click with getImageData at that pixel + */ clickMapCanvas: null as HTMLCanvasElement | null, - // canvas used for drawing click map with cigar data - // this can show if you are mousing over a insertion/deletion. it is similar - // in purpose to the clickMapRef but was not feasible to pack this into the - // clickMapRef + /** + * #volatile + * canvas used for drawing click map with cigar data this can show if you + * are mousing over a insertion/deletion. it is similar in purpose to the + * clickMapRef but was not feasible to pack this into the clickMapRef + */ cigarClickMapCanvas: null as HTMLCanvasElement | null, - // canvas for drawing mouseover shading - // this is separate from the other code for speed: don't have to redraw - // entire canvas to do a feature's mouseover shading + /** + * #volatile + * canvas for drawing mouseover shading this is separate from the other + * code for speed: don't have to redraw entire canvas to do a feature's + * mouseover shading + */ mouseoverCanvas: null as HTMLCanvasElement | null, - // assigned by reaction + /** + * #volatile + * assigned by reaction + */ featPositions: [] as FeatPos[], - // currently mouse'd over feature + /** + * #volatile + * currently mouse'd over feature + */ mouseoverId: undefined as string | undefined, - // currently click'd over feature + /** + * #volatile + * currently click'd over feature + */ clickId: undefined as string | undefined, - // currently mouseover'd CIGAR subfeature + /** + * #volatile + * currently mouseover'd CIGAR subfeature + */ cigarMouseoverId: -1, })) .actions(self => ({ @@ -137,25 +160,21 @@ function stateModelFactory(configSchema: AnyConfigurationSchemaType) { ...getConf(self.parentTrack, 'adapter'), } }, + /** * #getter */ get trackIds() { return getConf(self, 'trackIds') as string[] }, - /** - * #getter - */ - get height() { - // @ts-expect-error - return getParent(self, 4).height as number - }, + /** * #getter */ get numFeats() { return self.featPositions.length }, + /** * #getter * used for synteny svg rendering diff --git a/plugins/linear-comparative-view/src/SyntenyFeatureDetail/SyntenyFeatureDetail.tsx b/plugins/linear-comparative-view/src/SyntenyFeatureDetail/SyntenyFeatureDetail.tsx new file mode 100644 index 0000000000..0358823855 --- /dev/null +++ b/plugins/linear-comparative-view/src/SyntenyFeatureDetail/SyntenyFeatureDetail.tsx @@ -0,0 +1,126 @@ +import React, { lazy } from 'react' +import { Link, Paper } from '@mui/material' +import { observer } from 'mobx-react' + +// locals +import BaseCard from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/BaseCard' +import BaseFeatureDetail from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail' +import { + assembleLocString, + getSession, + SimpleFeature, + SimpleFeatureSerialized, +} from '@jbrowse/core/util' +import { LinearSyntenyViewModel } from '../LinearSyntenyView/model' + +// lazies +const LaunchSyntenyViewDialog = lazy( + () => import('../LGVSyntenyDisplay/components/LaunchSyntenyViewDialog'), +) + +interface SyntenyFeatureDetailModel { + trackId: string + featureData: SimpleFeatureSerialized + level?: number + view: { + type: string + } +} + +const CustomLinker = observer(function ({ + model, +}: { + model: SyntenyFeatureDetailModel +}) { + const { featureData, view, level, trackId } = model + return ( +
    + {view.type === 'LinearSyntenyView' ? ( +
  • + { + event.preventDefault() + const { views } = view as LinearSyntenyViewModel + if (level !== undefined) { + // level is "pre-known", and stored in the SyntenyFeatureWidget + // model state e.g. when clicking on a feature from a + // LinearSyntenyRendering + views[level]?.navTo(featureData) + views[level + 1]?.navTo( + featureData.mate as SimpleFeatureSerialized, + ) + } else { + // best effort to find the right level. this is triggered for + // example if a user clicks on a feature in a LGVSyntenyDisplay + // in an existing LinearSyntenyView, there is no real proper + // level "pre-known" to this situation + const f1 = featureData + const f2 = featureData.mate as SimpleFeatureSerialized + const r1 = f1.assemblyName as string + const r2 = f2.assemblyName as string + const v1 = views.find(view => view.assemblyNames[0] === r1) + const v2 = views.find(view => view.assemblyNames[0] === r2) + if (!v1 || !v2) { + getSession(model).notify( + [ + v1 + ? `Unable to find ${assembleLocString(f1)} in synteny view` + : '', + v2 + ? `Unable to find ${assembleLocString(f2)} in synteny view` + : '', + ].join(' ... '), + ) + } + v1?.navTo(f1) + v2?.navTo(f2) + } + }} + > + Center view on this feature + +
  • + ) : null} +
  • + { + event.preventDefault() + + const session = getSession(model) + const feature = new SimpleFeature(featureData) + session.queueDialog(handleClose => [ + LaunchSyntenyViewDialog, + { + model, + feature, + trackId, + handleClose, + }, + ]) + }} + > + Launch new linear synteny view on this feature + +
  • +
+ ) +}) + +const SyntenyFeatureDetail = observer(function ({ + model, +}: { + model: SyntenyFeatureDetailModel +}) { + return ( + + + + + + + ) +}) + +export default SyntenyFeatureDetail diff --git a/plugins/linear-comparative-view/src/SyntenyFeatureDetail/index.ts b/plugins/linear-comparative-view/src/SyntenyFeatureDetail/index.ts new file mode 100644 index 0000000000..b7cbb8d739 --- /dev/null +++ b/plugins/linear-comparative-view/src/SyntenyFeatureDetail/index.ts @@ -0,0 +1,37 @@ +import { lazy } from 'react' +import { ConfigurationSchema } from '@jbrowse/core/configuration' +import WidgetType from '@jbrowse/core/pluggableElementTypes/WidgetType' +import PluginManager from '@jbrowse/core/PluginManager' +import { types } from 'mobx-state-tree' +import { stateModelFactory as BaseFeatureWidgetStateModelF } from '@jbrowse/core/BaseFeatureWidget' + +const configSchema = ConfigurationSchema('SyntenyFeatureWidget', {}) + +function stateModelF(pluginManager: PluginManager) { + return types.compose( + BaseFeatureWidgetStateModelF(pluginManager), + types.model('SyntenyFeatureWidget', { + /** + * #property + */ + type: types.literal('SyntenyFeatureWidget'), + /** + * #property + */ + level: types.maybe(types.number), + }), + ) +} + +export default function SyntenyFeatureWidgetF(pluginManager: PluginManager) { + pluginManager.addWidgetType( + () => + new WidgetType({ + name: 'SyntenyFeatureWidget', + heading: 'Synteny feature details', + configSchema, + stateModel: stateModelF(pluginManager), + ReactComponent: lazy(() => import('./SyntenyFeatureDetail')), + }), + ) +} diff --git a/plugins/linear-comparative-view/src/index.tsx b/plugins/linear-comparative-view/src/index.ts similarity index 94% rename from plugins/linear-comparative-view/src/index.tsx rename to plugins/linear-comparative-view/src/index.ts index b1502789cd..1ffa87d204 100644 --- a/plugins/linear-comparative-view/src/index.tsx +++ b/plugins/linear-comparative-view/src/index.ts @@ -12,6 +12,7 @@ import LinearSyntenyViewHelperF from './LinearSyntenyViewHelper' import LaunchLinearSyntenyViewF from './LaunchLinearSyntenyView' import SyntenyTrackF from './SyntenyTrack' import LinearReadVsRefMenuItemF from './LinearReadVsRef' +import SyntenyFeatureWidgetF from './SyntenyFeatureDetail' export default class LinearComparativeViewPlugin extends Plugin { name = 'LinearComparativeViewPlugin' @@ -22,6 +23,7 @@ export default class LinearComparativeViewPlugin extends Plugin { LinearSyntenyViewF(pluginManager) LinearComparativeDisplayF(pluginManager) LinearSyntenyDisplayF(pluginManager) + SyntenyFeatureWidgetF(pluginManager) LGVSyntenyDisplayF(pluginManager) LaunchLinearSyntenyViewF(pluginManager) SyntenyTrackF(pluginManager) diff --git a/plugins/linear-genome-view/package.json b/plugins/linear-genome-view/package.json index ef0a9ad997..54eda6be7c 100644 --- a/plugins/linear-genome-view/package.json +++ b/plugins/linear-genome-view/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-linear-genome-view", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 linear genome view", "keywords": [ "jbrowse", diff --git a/plugins/linear-genome-view/src/LinearGenomeView/components/Rubberband.tsx b/plugins/linear-genome-view/src/LinearGenomeView/components/Rubberband.tsx index 65b2c46338..b46f7cbeb2 100644 --- a/plugins/linear-genome-view/src/LinearGenomeView/components/Rubberband.tsx +++ b/plugins/linear-genome-view/src/LinearGenomeView/components/Rubberband.tsx @@ -6,7 +6,8 @@ import { Menu } from '@jbrowse/core/ui' // locals import VerticalGuide from './VerticalGuide' import RubberbandSpan from './RubberbandSpan' -import { useRangeSelect } from './hooks' +// hooks +import { useRangeSelect } from './useRangeSelect' import { LinearGenomeViewModel } from '..' type LGV = LinearGenomeViewModel @@ -38,8 +39,8 @@ const Rubberband = observer(function ({ width, left, anchorPosition, - handleMenuItemClick, open, + handleMenuItemClick, handleClose, mouseMove, mouseDown, diff --git a/plugins/linear-genome-view/src/LinearGenomeView/components/TrackLabel.tsx b/plugins/linear-genome-view/src/LinearGenomeView/components/TrackLabel.tsx index 9d5898612a..7efe400d0d 100644 --- a/plugins/linear-genome-view/src/LinearGenomeView/components/TrackLabel.tsx +++ b/plugins/linear-genome-view/src/LinearGenomeView/components/TrackLabel.tsx @@ -69,13 +69,17 @@ const TrackLabel = observer( track.setMinimized(!minimized) }, }, - { - label: 'Move track to top', - icon: KeyboardDoubleArrowUpIcon, - onClick: () => { - view.moveTrackToTop(track.id) - }, - }, + ...(view.tracks.length > 2 + ? [ + { + label: 'Move track to top', + icon: KeyboardDoubleArrowUpIcon, + onClick: () => { + view.moveTrackToTop(track.id) + }, + }, + ] + : []), { label: 'Move track up', @@ -91,13 +95,17 @@ const TrackLabel = observer( view.moveTrackDown(track.id) }, }, - { - label: 'Move track to bottom', - icon: KeyboardDoubleArrowDownIcon, - onClick: () => { - view.moveTrackToBottom(track.id) - }, - }, + ...(view.tracks.length > 2 + ? [ + { + label: 'Move track to bottom', + icon: KeyboardDoubleArrowDownIcon, + onClick: () => { + view.moveTrackToBottom(track.id) + }, + }, + ] + : []), ], }, ...(session.getTrackActionMenuItems?.(trackConf) || []), diff --git a/plugins/linear-genome-view/src/LinearGenomeView/components/TracksContainer.tsx b/plugins/linear-genome-view/src/LinearGenomeView/components/TracksContainer.tsx index 29151f3a2f..800ed52bc0 100644 --- a/plugins/linear-genome-view/src/LinearGenomeView/components/TracksContainer.tsx +++ b/plugins/linear-genome-view/src/LinearGenomeView/components/TracksContainer.tsx @@ -6,7 +6,6 @@ import { getEnv } from '@jbrowse/core/util' // local utils import { LinearGenomeViewModel } from '..' -import { useSideScroll, useRangeSelect, useWheelScroll } from './hooks' // local components import Rubberband from './Rubberband' @@ -18,6 +17,11 @@ import RubberbandSpan from './RubberbandSpan' import HighlightGroup from './Highlight' import { SCALE_BAR_HEIGHT } from '../consts' +// hooks +import { useSideScroll } from './useSideScroll' +import { useWheelScroll } from './useWheelScroll' +import { useRangeSelect } from './useRangeSelect' + const useStyles = makeStyles()({ tracksContainer: { position: 'relative', @@ -37,6 +41,7 @@ const TracksContainer = observer(function TracksContainer({ const { classes } = useStyles() const { pluginManager } = getEnv(model) const { mouseDown: mouseDown1, mouseUp } = useSideScroll(model) + const { showGridlines, showCenterLine } = model const ref = useRef(null) const { guideX, @@ -73,8 +78,8 @@ const TracksContainer = observer(function TracksContainer({ onMouseMove={mouseMove} onMouseUp={mouseUp} > - {model.showGridlines ? : null} - {model.showCenterLine ? : null} + {showGridlines ? : null} + {showCenterLine ? : null} {guideX !== undefined ? ( ) : rubberbandOn ? ( diff --git a/plugins/linear-genome-view/src/LinearGenomeView/components/hooks.ts b/plugins/linear-genome-view/src/LinearGenomeView/components/hooks.ts deleted file mode 100644 index 1f36223700..0000000000 --- a/plugins/linear-genome-view/src/LinearGenomeView/components/hooks.ts +++ /dev/null @@ -1,303 +0,0 @@ -import React, { useRef, useEffect, useState } from 'react' - -// locals -import { LinearGenomeViewModel } from '..' -import { getRelativeX } from './util' - -type LGV = LinearGenomeViewModel -type Timer = ReturnType - -export function useSideScroll(model: LGV) { - const [mouseDragging, setMouseDragging] = useState(false) - // refs are to store these variables to avoid repeated rerenders associated - // with useState/setState - const scheduled = useRef(false) - - const prevX = useRef(0) - - useEffect(() => { - let cleanup = () => {} - - function globalMouseMove(event: MouseEvent) { - event.preventDefault() - const currX = event.clientX - const distance = currX - prevX.current - if (distance) { - // use rAF to make it so multiple event handlers aren't fired per-frame - // see https://calendar.perfplanet.com/2013/the-runtime-performance-checklist/ - if (!scheduled.current) { - scheduled.current = true - window.requestAnimationFrame(() => { - model.horizontalScroll(-distance) - scheduled.current = false - prevX.current = event.clientX - }) - } - } - } - - function globalMouseUp() { - prevX.current = 0 - if (mouseDragging) { - setMouseDragging(false) - } - } - - if (mouseDragging) { - window.addEventListener('mousemove', globalMouseMove, true) - window.addEventListener('mouseup', globalMouseUp, true) - cleanup = () => { - window.removeEventListener('mousemove', globalMouseMove, true) - window.removeEventListener('mouseup', globalMouseUp, true) - } - } - return cleanup - }, [model, mouseDragging]) - - function mouseDown(event: React.MouseEvent) { - if (event.shiftKey) { - return - } - // check if clicking a draggable element or a resize handle - const target = event.target as HTMLElement - if (target.draggable || target.dataset.resizer) { - return - } - - // otherwise do click and drag scroll - if (event.button === 0) { - prevX.current = event.clientX - setMouseDragging(true) - } - } - - // this local mouseup is used in addition to the global because sometimes - // the global add/remove are not called in time, resulting in issue #533 - function mouseUp(event: React.MouseEvent) { - event.preventDefault() - setMouseDragging(false) - } - return { mouseDown, mouseUp } -} - -interface AnchorPosition { - offsetX: number - clientX: number - clientY: number -} - -export function useRangeSelect( - ref: React.RefObject, - model: LGV, - shiftOnly?: boolean, -) { - const [startX, setStartX] = useState() - const [currentX, setCurrentX] = useState() - - // clientX and clientY used for anchorPosition for menu - // offsetX used for calculations about width of selection - const [anchorPosition, setAnchorPosition] = useState() - const [guideX, setGuideX] = useState() - const mouseDragging = startX !== undefined && anchorPosition === undefined - - useEffect(() => { - function computeOffsets(offsetX: number) { - if (startX === undefined) { - return - } - const leftPx = Math.min(startX, offsetX) - const rightPx = Math.max(startX, offsetX) - return { - leftOffset: model.pxToBp(leftPx), - rightOffset: model.pxToBp(rightPx), - } - } - - function globalMouseMove(event: MouseEvent) { - if (ref.current && mouseDragging) { - const relativeX = getRelativeX(event, ref.current) - setCurrentX(relativeX) - } - } - - function globalMouseUp(event: MouseEvent) { - if (startX !== undefined && ref.current) { - const { clientX, clientY } = event - const offsetX = getRelativeX(event, ref.current) - // as stated above, store both clientX/Y and offsetX for different - // purposes - setAnchorPosition({ - offsetX, - clientX, - clientY, - }) - const args = computeOffsets(offsetX) - if (args) { - model.setOffsets(args.leftOffset, args.rightOffset) - } - setGuideX(undefined) - } - } - if (mouseDragging) { - window.addEventListener('mousemove', globalMouseMove) - window.addEventListener('mouseup', globalMouseUp) - return () => { - window.removeEventListener('mousemove', globalMouseMove) - window.removeEventListener('mouseup', globalMouseUp) - } - } - return () => {} - }, [startX, mouseDragging, model, ref]) - - useEffect(() => { - if ( - !mouseDragging && - currentX !== undefined && - startX !== undefined && - Math.abs(currentX - startX) <= 3 - ) { - handleClose() - } - }, [mouseDragging, currentX, startX]) - - function mouseDown(event: React.MouseEvent) { - if (shiftOnly && !event.shiftKey) { - return - } - - event.preventDefault() - event.stopPropagation() - const relativeX = getRelativeX(event, ref.current) - setStartX(relativeX) - setCurrentX(relativeX) - } - - function mouseMove(event: React.MouseEvent) { - if (shiftOnly) { - if (event.shiftKey) { - setGuideX(getRelativeX(event, ref.current)) - } else { - setGuideX(undefined) - } - } else { - setGuideX(getRelativeX(event, ref.current)) - } - } - - function mouseOut() { - setGuideX(undefined) - model.setOffsets(undefined, undefined) - } - - function handleClose() { - setAnchorPosition(undefined) - setStartX(undefined) - setCurrentX(undefined) - } - - function handleMenuItemClick(_: unknown, callback: () => void) { - callback() - handleClose() - } - - const open = Boolean(anchorPosition) - if (startX === undefined) { - return { - open, - guideX, - mouseDown, - mouseMove, - mouseOut, - handleMenuItemClick, - } - } - const right = anchorPosition ? anchorPosition.offsetX : currentX || 0 - const left = Math.min(right, startX) - const width = Math.abs(right - startX) - const leftBpOffset = model.pxToBp(left) - const rightBpOffset = model.pxToBp(left + width) - const numOfBpSelected = Math.ceil(width * model.bpPerPx) - - return { - open, - rubberbandOn: true, - mouseDown, - mouseMove, - mouseOut, - handleClose, - handleMenuItemClick, - leftBpOffset, - rightBpOffset, - anchorPosition, - numOfBpSelected, - width, - left, - } -} - -export function useWheelScroll( - ref: React.RefObject, - model: { - bpPerPx: number - zoomTo: (arg: number, arg2?: number) => void - setScaleFactor: (arg: number) => void - horizontalScroll: (arg: number) => void - }, -) { - const delta = useRef(0) - const timeout = useRef() - const scheduled = useRef(false) - useEffect(() => { - const curr = ref.current - - // if ctrl is held down, zoom in with y-scroll - // else scroll horizontally with x-scroll - function onWheel(event: WheelEvent) { - if (event.ctrlKey) { - event.preventDefault() - delta.current += event.deltaY / 500 - model.setScaleFactor( - delta.current < 0 ? 1 - delta.current : 1 / (1 + delta.current), - ) - if (timeout.current) { - clearTimeout(timeout.current) - } - timeout.current = setTimeout(() => { - model.setScaleFactor(1) - model.zoomTo( - delta.current > 0 - ? model.bpPerPx * (1 + delta.current) - : model.bpPerPx / (1 - delta.current), - event.clientX - (curr?.getBoundingClientRect().left || 0), - ) - delta.current = 0 - }, 300) - } else { - // this is needed to stop the event from triggering "back button - // action" on MacOSX etc. but is a heuristic to avoid preventing the - // inner-track scroll behavior - if (Math.abs(event.deltaX) > Math.abs(2 * event.deltaY)) { - event.preventDefault() - } - delta.current += event.deltaX - if (!scheduled.current) { - // use rAF to make it so multiple event handlers aren't fired per-frame - // see https://calendar.perfplanet.com/2013/the-runtime-performance-checklist/ - scheduled.current = true - window.requestAnimationFrame(() => { - model.horizontalScroll(delta.current) - delta.current = 0 - scheduled.current = false - }) - } - } - } - if (curr) { - curr.addEventListener('wheel', onWheel) - return () => { - curr.removeEventListener('wheel', onWheel) - } - } - return () => {} - }, [model, ref]) -} diff --git a/plugins/linear-genome-view/src/LinearGenomeView/components/useRangeSelect.ts b/plugins/linear-genome-view/src/LinearGenomeView/components/useRangeSelect.ts new file mode 100644 index 0000000000..17465df8c6 --- /dev/null +++ b/plugins/linear-genome-view/src/LinearGenomeView/components/useRangeSelect.ts @@ -0,0 +1,160 @@ +import React, { useEffect, useState } from 'react' + +// locals +import { LinearGenomeViewModel } from '..' +import { getRelativeX } from './util' + +interface AnchorPosition { + offsetX: number + clientX: number + clientY: number +} + +export function useRangeSelect( + ref: React.RefObject, + model: LinearGenomeViewModel, + shiftOnly?: boolean, +) { + const [startX, setStartX] = useState() + const [currentX, setCurrentX] = useState() + + // clientX and clientY used for anchorPosition for menu + // offsetX used for calculations about width of selection + const [anchorPosition, setAnchorPosition] = useState() + const [guideX, setGuideX] = useState() + const mouseDragging = startX !== undefined && anchorPosition === undefined + + useEffect(() => { + function computeOffsets(offsetX: number) { + if (startX === undefined) { + return + } + const leftPx = Math.min(startX, offsetX) + const rightPx = Math.max(startX, offsetX) + return { + leftOffset: model.pxToBp(leftPx), + rightOffset: model.pxToBp(rightPx), + } + } + + function globalMouseMove(event: MouseEvent) { + if (ref.current && mouseDragging) { + const relativeX = getRelativeX(event, ref.current) + setCurrentX(relativeX) + } + } + + function globalMouseUp(event: MouseEvent) { + if (startX !== undefined && ref.current) { + const { clientX, clientY } = event + const offsetX = getRelativeX(event, ref.current) + // as stated above, store both clientX/Y and offsetX for different + // purposes + setAnchorPosition({ + offsetX, + clientX, + clientY, + }) + const args = computeOffsets(offsetX) + if (args) { + model.setOffsets(args.leftOffset, args.rightOffset) + } + setGuideX(undefined) + } + } + if (mouseDragging) { + window.addEventListener('mousemove', globalMouseMove) + window.addEventListener('mouseup', globalMouseUp) + return () => { + window.removeEventListener('mousemove', globalMouseMove) + window.removeEventListener('mouseup', globalMouseUp) + } + } + return () => {} + }, [startX, mouseDragging, model, ref]) + + useEffect(() => { + if ( + !mouseDragging && + currentX !== undefined && + startX !== undefined && + Math.abs(currentX - startX) <= 3 + ) { + handleClose() + } + }, [mouseDragging, currentX, startX]) + + function mouseDown(event: React.MouseEvent) { + if (shiftOnly && !event.shiftKey) { + return + } + + event.preventDefault() + event.stopPropagation() + const relativeX = getRelativeX(event, ref.current) + setStartX(relativeX) + setCurrentX(relativeX) + } + + function mouseMove(event: React.MouseEvent) { + if (shiftOnly) { + if (event.shiftKey) { + setGuideX(getRelativeX(event, ref.current)) + } else { + setGuideX(undefined) + } + } else { + setGuideX(getRelativeX(event, ref.current)) + } + } + + function mouseOut() { + setGuideX(undefined) + model.setOffsets(undefined, undefined) + } + + function handleClose() { + setAnchorPosition(undefined) + setStartX(undefined) + setCurrentX(undefined) + } + + function handleMenuItemClick(_: unknown, callback: () => void) { + callback() + handleClose() + } + + const open = Boolean(anchorPosition) + if (startX === undefined) { + return { + open, + guideX, + mouseDown, + mouseMove, + mouseOut, + handleMenuItemClick, + } + } + const right = anchorPosition ? anchorPosition.offsetX : currentX || 0 + const left = Math.min(right, startX) + const width = Math.abs(right - startX) + const leftBpOffset = model.pxToBp(left) + const rightBpOffset = model.pxToBp(left + width) + const numOfBpSelected = Math.ceil(width * model.bpPerPx) + + return { + open, + rubberbandOn: true, + mouseDown, + mouseMove, + mouseOut, + handleClose, + handleMenuItemClick, + leftBpOffset, + rightBpOffset, + anchorPosition, + numOfBpSelected, + width, + left, + } +} diff --git a/plugins/linear-genome-view/src/LinearGenomeView/components/useSideScroll.ts b/plugins/linear-genome-view/src/LinearGenomeView/components/useSideScroll.ts new file mode 100644 index 0000000000..b83858dca2 --- /dev/null +++ b/plugins/linear-genome-view/src/LinearGenomeView/components/useSideScroll.ts @@ -0,0 +1,77 @@ +import React, { useRef, useEffect, useState } from 'react' + +// locals +import { LinearGenomeViewModel } from '..' + +export function useSideScroll(model: LinearGenomeViewModel) { + const [mouseDragging, setMouseDragging] = useState(false) + // refs are to store these variables to avoid repeated rerenders associated + // with useState/setState + const scheduled = useRef(false) + + const prevX = useRef(0) + + useEffect(() => { + let cleanup = () => {} + + function globalMouseMove(event: MouseEvent) { + event.preventDefault() + const currX = event.clientX + const distance = currX - prevX.current + if (distance) { + // use rAF to make it so multiple event handlers aren't fired per-frame + // see https://calendar.perfplanet.com/2013/the-runtime-performance-checklist/ + if (!scheduled.current) { + scheduled.current = true + window.requestAnimationFrame(() => { + model.horizontalScroll(-distance) + scheduled.current = false + prevX.current = event.clientX + }) + } + } + } + + function globalMouseUp() { + prevX.current = 0 + if (mouseDragging) { + setMouseDragging(false) + } + } + + if (mouseDragging) { + window.addEventListener('mousemove', globalMouseMove, true) + window.addEventListener('mouseup', globalMouseUp, true) + cleanup = () => { + window.removeEventListener('mousemove', globalMouseMove, true) + window.removeEventListener('mouseup', globalMouseUp, true) + } + } + return cleanup + }, [model, mouseDragging]) + + function mouseDown(event: React.MouseEvent) { + if (event.shiftKey) { + return + } + // check if clicking a draggable element or a resize handle + const target = event.target as HTMLElement + if (target.draggable || target.dataset.resizer) { + return + } + + // otherwise do click and drag scroll + if (event.button === 0) { + prevX.current = event.clientX + setMouseDragging(true) + } + } + + // this local mouseup is used in addition to the global because sometimes + // the global add/remove are not called in time, resulting in issue #533 + function mouseUp(event: React.MouseEvent) { + event.preventDefault() + setMouseDragging(false) + } + return { mouseDown, mouseUp } +} diff --git a/plugins/linear-genome-view/src/LinearGenomeView/components/useWheelScroll.ts b/plugins/linear-genome-view/src/LinearGenomeView/components/useWheelScroll.ts new file mode 100644 index 0000000000..0474be52b0 --- /dev/null +++ b/plugins/linear-genome-view/src/LinearGenomeView/components/useWheelScroll.ts @@ -0,0 +1,70 @@ +import React, { useRef, useEffect } from 'react' + +type Timer = ReturnType + +export function useWheelScroll( + ref: React.RefObject, + model: { + bpPerPx: number + zoomTo: (arg: number, arg2?: number) => void + setScaleFactor: (arg: number) => void + horizontalScroll: (arg: number) => void + }, +) { + const delta = useRef(0) + const timeout = useRef() + const scheduled = useRef(false) + useEffect(() => { + const curr = ref.current + + // if ctrl is held down, zoom in with y-scroll, else scroll horizontally + // with x-scroll + function onWheel(event: WheelEvent) { + if (event.ctrlKey) { + event.preventDefault() + delta.current += event.deltaY / 500 + model.setScaleFactor( + delta.current < 0 ? 1 - delta.current : 1 / (1 + delta.current), + ) + if (timeout.current) { + clearTimeout(timeout.current) + } + timeout.current = setTimeout(() => { + model.setScaleFactor(1) + model.zoomTo( + delta.current > 0 + ? model.bpPerPx * (1 + delta.current) + : model.bpPerPx / (1 - delta.current), + event.clientX - (curr?.getBoundingClientRect().left || 0), + ) + delta.current = 0 + }, 300) + } else { + // this is needed to stop the event from triggering "back button + // action" on MacOSX etc. but is a heuristic to avoid preventing the + // inner-track scroll behavior + if (Math.abs(event.deltaX) > Math.abs(2 * event.deltaY)) { + event.preventDefault() + } + delta.current += event.deltaX + if (!scheduled.current) { + // use rAF to make it so multiple event handlers aren't fired per-frame + // see https://calendar.perfplanet.com/2013/the-runtime-performance-checklist/ + scheduled.current = true + window.requestAnimationFrame(() => { + model.horizontalScroll(delta.current) + delta.current = 0 + scheduled.current = false + }) + } + } + } + if (curr) { + curr.addEventListener('wheel', onWheel) + return () => { + curr.removeEventListener('wheel', onWheel) + } + } + return () => {} + }, [model, ref]) +} diff --git a/plugins/lollipop/package.json b/plugins/lollipop/package.json index 53f73bbad2..0bb35b16d4 100644 --- a/plugins/lollipop/package.json +++ b/plugins/lollipop/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-lollipop", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 plugin for lollipops", "keywords": [ "jbrowse", diff --git a/plugins/menus/package.json b/plugins/menus/package.json index b0b32618e6..be5cc9645c 100644 --- a/plugins/menus/package.json +++ b/plugins/menus/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-menus", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 basic menus", "keywords": [ "jbrowse", diff --git a/plugins/rdf/package.json b/plugins/rdf/package.json index 974451fd48..895528a1ea 100644 --- a/plugins/rdf/package.json +++ b/plugins/rdf/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-rdf", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 RDF resources", "keywords": [ "jbrowse", diff --git a/plugins/sequence/package.json b/plugins/sequence/package.json index 4d6d7d7c5a..d45b51023c 100644 --- a/plugins/sequence/package.json +++ b/plugins/sequence/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-sequence", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 sequence adapters, tracks, etc.", "keywords": [ "jbrowse", diff --git a/plugins/spreadsheet-view/package.json b/plugins/spreadsheet-view/package.json index 81f035bcc9..06a5925ec5 100644 --- a/plugins/spreadsheet-view/package.json +++ b/plugins/spreadsheet-view/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-spreadsheet-view", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 spreadsheet view", "keywords": [ "jbrowse", @@ -38,7 +38,7 @@ "dependencies": { "@gmod/bgzf-filehandle": "^1.4.3", "@gmod/vcf": "^5.0.9", - "@jbrowse/plugin-variants": "^2.16.0", + "@jbrowse/plugin-variants": "^2.16.1", "@mui/icons-material": "^6.0.0", "csvtojson": "^2.0.10" }, diff --git a/plugins/sv-inspector/package.json b/plugins/sv-inspector/package.json index 8f81e476e4..0c963ef695 100644 --- a/plugins/sv-inspector/package.json +++ b/plugins/sv-inspector/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-sv-inspector", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 SV inspector view", "keywords": [ "jbrowse", diff --git a/plugins/svg/package.json b/plugins/svg/package.json index 76d773793c..3cafc8320f 100644 --- a/plugins/svg/package.json +++ b/plugins/svg/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-svg", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 plugin for svg features", "keywords": [ "jbrowse", diff --git a/plugins/text-indexing/package.json b/plugins/text-indexing/package.json index f0a53d60e1..290bf96bcb 100644 --- a/plugins/text-indexing/package.json +++ b/plugins/text-indexing/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-text-indexing", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 text indexing rpc method", "keywords": [ "jbrowse", @@ -36,7 +36,7 @@ "clean": "rimraf dist esm *.tsbuildinfo" }, "dependencies": { - "@jbrowse/text-indexing": "^2.16.0" + "@jbrowse/text-indexing": "^2.16.1" }, "peerDependencies": { "@jbrowse/core": "^2.0.0", diff --git a/plugins/trix/package.json b/plugins/trix/package.json index 30afa8b655..486fc8711c 100644 --- a/plugins/trix/package.json +++ b/plugins/trix/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-trix", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 trix text search adapter", "keywords": [ "jbrowse", diff --git a/plugins/variants/package.json b/plugins/variants/package.json index 95742f1992..9d1e935d76 100644 --- a/plugins/variants/package.json +++ b/plugins/variants/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-variants", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 variant adapters, tracks, etc.", "keywords": [ "jbrowse", @@ -40,7 +40,7 @@ "@gmod/bgzf-filehandle": "^1.4.3", "@gmod/tabix": "^1.5.6", "@gmod/vcf": "^5.0.9", - "@jbrowse/sv-core": "^2.16.0", + "@jbrowse/sv-core": "^2.16.1", "@mui/icons-material": "^6.0.0", "@mui/x-data-grid": "^7.0.0", "generic-filehandle": "^3.0.0" diff --git a/plugins/variants/src/VariantFeatureWidget/LaunchBreakendPanel.tsx b/plugins/variants/src/VariantFeatureWidget/LaunchBreakendPanel.tsx index 26c0c8da1c..e35e7e361d 100644 --- a/plugins/variants/src/VariantFeatureWidget/LaunchBreakendPanel.tsx +++ b/plugins/variants/src/VariantFeatureWidget/LaunchBreakendPanel.tsx @@ -6,7 +6,7 @@ import { SimpleFeature, SimpleFeatureSerialized, } from '@jbrowse/core/util' -import { BaseCard } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail' +import BaseCard from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/BaseCard' import { ViewType } from '@jbrowse/core/pluggableElementTypes' // locals diff --git a/plugins/variants/src/VariantFeatureWidget/VariantAnnotationTable.tsx b/plugins/variants/src/VariantFeatureWidget/VariantAnnotationTable.tsx index eff8c7d93d..007632930d 100644 --- a/plugins/variants/src/VariantFeatureWidget/VariantAnnotationTable.tsx +++ b/plugins/variants/src/VariantFeatureWidget/VariantAnnotationTable.tsx @@ -1,6 +1,6 @@ import React from 'react' -import { BaseCard } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail' import AnnotGrid from './AnnotGrid' +import BaseCard from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/BaseCard' export default function VariantAnnotationTable({ data, diff --git a/plugins/variants/src/VariantFeatureWidget/VariantFeatureWidget.tsx b/plugins/variants/src/VariantFeatureWidget/VariantFeatureWidget.tsx index b069c451db..d7d57c6d94 100644 --- a/plugins/variants/src/VariantFeatureWidget/VariantFeatureWidget.tsx +++ b/plugins/variants/src/VariantFeatureWidget/VariantFeatureWidget.tsx @@ -1,7 +1,7 @@ import React, { lazy, Suspense } from 'react' import { observer } from 'mobx-react' import { Paper } from '@mui/material' -import { FeatureDetails } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail' +import FeatureDetails from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails' import { parseBreakend } from '@gmod/vcf' // locals diff --git a/plugins/variants/src/VariantFeatureWidget/VariantSampleGrid.tsx b/plugins/variants/src/VariantFeatureWidget/VariantSampleGrid.tsx index 8bb4f21e9e..4648b40601 100644 --- a/plugins/variants/src/VariantFeatureWidget/VariantSampleGrid.tsx +++ b/plugins/variants/src/VariantFeatureWidget/VariantSampleGrid.tsx @@ -8,8 +8,8 @@ import { } from '@mui/material' import { DataGrid, GridToolbar } from '@mui/x-data-grid' -import { BaseCard } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail' import { measureGridWidth, SimpleFeatureSerialized } from '@jbrowse/core/util' +import BaseCard from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/BaseCard' interface Entry { sample: string @@ -92,8 +92,8 @@ export default function VariantSamples(props: { error = e } - const keys = ['sample', ...Object.keys(preFilteredRows[0]?.[1] || {})] const [checked, setChecked] = useState(false) + const keys = ['sample', ...Object.keys(preFilteredRows[0]?.[1] || {})] const widths = keys.map(e => measureGridWidth(rows.map(r => r[e]))) const columns = keys.map((field, index) => ({ field, diff --git a/plugins/wiggle/package.json b/plugins/wiggle/package.json index 7d60db90a3..adb51e2e6e 100644 --- a/plugins/wiggle/package.json +++ b/plugins/wiggle/package.json @@ -1,6 +1,6 @@ { "name": "@jbrowse/plugin-wiggle", - "version": "2.16.0", + "version": "2.16.1", "description": "JBrowse 2 wiggle adapters, tracks, etc.", "keywords": [ "jbrowse", diff --git a/plugins/wiggle/src/BigWigAdapter/BigWigAdapter.ts b/plugins/wiggle/src/BigWigAdapter/BigWigAdapter.ts index 307f400144..59a6b3f389 100644 --- a/plugins/wiggle/src/BigWigAdapter/BigWigAdapter.ts +++ b/plugins/wiggle/src/BigWigAdapter/BigWigAdapter.ts @@ -78,10 +78,11 @@ export default class BigWigAdapter extends BaseFeatureDataAdapter { return ObservableCreate(async observer => { statusCallback('Downloading bigwig data') const source = this.getConf('source') + const resolutionMultiplier = this.getConf('resolutionMultiplier') const { bigwig } = await this.setup(opts) const feats = await bigwig.getFeatures(refName, start, end, { ...opts, - basesPerSpan: bpPerPx / resolution, + basesPerSpan: (bpPerPx / resolution) * resolutionMultiplier, }) for (const data of feats) { diff --git a/plugins/wiggle/src/BigWigAdapter/configSchema.ts b/plugins/wiggle/src/BigWigAdapter/configSchema.ts index 7e85296ecf..1337051c3a 100644 --- a/plugins/wiggle/src/BigWigAdapter/configSchema.ts +++ b/plugins/wiggle/src/BigWigAdapter/configSchema.ts @@ -27,6 +27,15 @@ const BigWigAdapter = ConfigurationSchema( defaultValue: '', description: 'Used for multiwiggle', }, + + /** + * #slot + */ + resolutionMultiplier: { + type: 'number', + defaultValue: 1, + description: 'Initial resolution multiplier', + }, }, { explicitlyTyped: true }, ) diff --git a/plugins/wiggle/src/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.tsx b/plugins/wiggle/src/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.tsx index 7706f27dbc..d7e68d3ab0 100644 --- a/plugins/wiggle/src/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.tsx +++ b/plugins/wiggle/src/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.tsx @@ -11,9 +11,6 @@ import { storeBlobLocation } from '@jbrowse/core/util/tracks' import { AddTrackModel } from '@jbrowse/plugin-data-management' const useStyles = makeStyles()(theme => ({ - textbox: { - width: '100%', - }, paper: { margin: theme.spacing(), padding: theme.spacing(), @@ -25,6 +22,17 @@ const useStyles = makeStyles()(theme => ({ }, })) +// on electron, use path to LocalFileLocation, on web, use the BlobLocation +function makeFileLocation(file: File) { + const { webUtils } = window.require('electron') + return isElectron + ? { + localPath: webUtils.getPathForFile(file), + locationType: 'LocalPathLocation', + } + : storeBlobLocation({ blob: file }) +} + export default function MultiWiggleWidget({ model }: { model: AddTrackModel }) { const { classes } = useStyles() const [val, setVal] = useState('') @@ -41,14 +49,14 @@ export default function MultiWiggleWidget({ model }: { model: AddTrackModel }) { { setVal(event.target.value) }} - placeholder={'Paste list of URLs here, or use file selector below'} - variant="outlined" - className={classes.textbox} /> { setTrackName(event.target.value) }} - helperText="Track name" /> @@ -371,7 +381,7 @@ function LocalFileChooser(props: { }) { const { classes } = useStyles() const { location, setLocation, setName } = props - const [filename, setFilename] = useState(``) + const [filename, setFilename] = useState('') const needToReload = location && isBlobLocation(location) && !getBlob(location.blobId) @@ -390,17 +400,19 @@ function LocalFileChooser(props: { const file = target && target.files && target.files[0] if (file) { if (isElectron) { + const { webUtils } = window.require('electron') + const path = webUtils.getPathForFile(file) // here we are setting the location information for the file selected // these features are necessary for the VcfTabixAdapter setLocation({ - localPath: (file as File & { path: string }).path, + localPath: path, locationType: 'LocalPathLocation', }) } else { setLocation(storeBlobLocation({ blob: file })) } // these set ui elements - setFilename((file as File & { path: string }).path) + setFilename(file.name) setName(file.name) } }} diff --git a/website/docusaurus.config.json b/website/docusaurus.config.json index 7e3a8e460b..e08f61fbec 100644 --- a/website/docusaurus.config.json +++ b/website/docusaurus.config.json @@ -9,6 +9,6 @@ "organizationName": "GMOD", "projectName": "jbrowse-components", "customFields": { - "currentVersion": "v2.16.0" + "currentVersion": "v2.16.1" } } diff --git a/website/release_announcement_drafts/v2.16.1.md b/website/release_announcement_drafts/v2.16.1.md new file mode 100644 index 0000000000..81f60b4c92 --- /dev/null +++ b/website/release_announcement_drafts/v2.16.1.md @@ -0,0 +1,3 @@ +Hi all, + +This is a bugfix release! See notes below diff --git a/yarn.lock b/yarn.lock index ad3f88d3db..4c97ba3ca9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -88,27 +88,27 @@ "@smithy/util-utf8" "^2.0.0" tslib "^2.6.2" -"@aws-sdk/client-cloudfront@^3.675.0": - version "3.677.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudfront/-/client-cloudfront-3.677.0.tgz#bce261352d0e9a8c0dbcdc1e1327e4612aa6f830" - integrity sha512-0g1e2HGg8qKDkWiq1ugWyWMJqMBXkD0vszRaFBgCwaSktxXNRv2QG7NxoVgPbjbd1rGhnRHvJsAdSNDvJfp79w== +"@aws-sdk/client-cloudfront@^3.679.0": + version "3.682.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudfront/-/client-cloudfront-3.682.0.tgz#bc7a0b298492407c6f515459fa8f5accbe3782b2" + integrity sha512-K4RXR+6mlQe4XEp+tBj0nkoiQ5yDPdef0StEfcJQ9NbwwJb2Vdm8ImeEkJjisPcc0h3D6NhaZHumYwWAKb3BpA== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.677.0" - "@aws-sdk/client-sts" "3.677.0" - "@aws-sdk/core" "3.677.0" - "@aws-sdk/credential-provider-node" "3.677.0" - "@aws-sdk/middleware-host-header" "3.667.0" - "@aws-sdk/middleware-logger" "3.667.0" - "@aws-sdk/middleware-recursion-detection" "3.667.0" - "@aws-sdk/middleware-user-agent" "3.677.0" - "@aws-sdk/region-config-resolver" "3.667.0" - "@aws-sdk/types" "3.667.0" - "@aws-sdk/util-endpoints" "3.667.0" - "@aws-sdk/util-user-agent-browser" "3.675.0" - "@aws-sdk/util-user-agent-node" "3.677.0" - "@aws-sdk/xml-builder" "3.662.0" + "@aws-sdk/client-sso-oidc" "3.682.0" + "@aws-sdk/client-sts" "3.682.0" + "@aws-sdk/core" "3.679.0" + "@aws-sdk/credential-provider-node" "3.682.0" + "@aws-sdk/middleware-host-header" "3.679.0" + "@aws-sdk/middleware-logger" "3.679.0" + "@aws-sdk/middleware-recursion-detection" "3.679.0" + "@aws-sdk/middleware-user-agent" "3.682.0" + "@aws-sdk/region-config-resolver" "3.679.0" + "@aws-sdk/types" "3.679.0" + "@aws-sdk/util-endpoints" "3.679.0" + "@aws-sdk/util-user-agent-browser" "3.679.0" + "@aws-sdk/util-user-agent-node" "3.682.0" + "@aws-sdk/xml-builder" "3.679.0" "@smithy/config-resolver" "^3.0.9" "@smithy/core" "^2.4.8" "@smithy/fetch-http-handler" "^3.2.9" @@ -138,35 +138,35 @@ "@smithy/util-waiter" "^3.1.6" tslib "^2.6.2" -"@aws-sdk/client-s3@^3.676.0": - version "3.677.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.677.0.tgz#b6218ff19bdf83102cad5bfae8f3da5c685cf404" - integrity sha512-TrfT7hyjs0FRh5MosduFZsskHhjvBKL451Wo5f80IcnxvNL8YZouh6kblUSiHKUxuc32WSiAKbXJJaPWdXs75Q== +"@aws-sdk/client-s3@^3.685.0": + version "3.685.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.685.0.tgz#bf2fd9fe310a2d20fdaf3585755e9a8416d08c2b" + integrity sha512-ClvMeQHbLhWkpxnVymo4qWS5/yZcPXjorDbSday3joCWYWCSHTO409nWd+jx6eA4MKT/EY/uJ6ZBJRFfByKLuA== 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.677.0" - "@aws-sdk/client-sts" "3.677.0" - "@aws-sdk/core" "3.677.0" - "@aws-sdk/credential-provider-node" "3.677.0" - "@aws-sdk/middleware-bucket-endpoint" "3.667.0" - "@aws-sdk/middleware-expect-continue" "3.667.0" - "@aws-sdk/middleware-flexible-checksums" "3.677.0" - "@aws-sdk/middleware-host-header" "3.667.0" - "@aws-sdk/middleware-location-constraint" "3.667.0" - "@aws-sdk/middleware-logger" "3.667.0" - "@aws-sdk/middleware-recursion-detection" "3.667.0" - "@aws-sdk/middleware-sdk-s3" "3.677.0" - "@aws-sdk/middleware-ssec" "3.667.0" - "@aws-sdk/middleware-user-agent" "3.677.0" - "@aws-sdk/region-config-resolver" "3.667.0" - "@aws-sdk/signature-v4-multi-region" "3.677.0" - "@aws-sdk/types" "3.667.0" - "@aws-sdk/util-endpoints" "3.667.0" - "@aws-sdk/util-user-agent-browser" "3.675.0" - "@aws-sdk/util-user-agent-node" "3.677.0" - "@aws-sdk/xml-builder" "3.662.0" + "@aws-sdk/client-sso-oidc" "3.682.0" + "@aws-sdk/client-sts" "3.682.0" + "@aws-sdk/core" "3.679.0" + "@aws-sdk/credential-provider-node" "3.682.0" + "@aws-sdk/middleware-bucket-endpoint" "3.679.0" + "@aws-sdk/middleware-expect-continue" "3.679.0" + "@aws-sdk/middleware-flexible-checksums" "3.682.0" + "@aws-sdk/middleware-host-header" "3.679.0" + "@aws-sdk/middleware-location-constraint" "3.679.0" + "@aws-sdk/middleware-logger" "3.679.0" + "@aws-sdk/middleware-recursion-detection" "3.679.0" + "@aws-sdk/middleware-sdk-s3" "3.685.0" + "@aws-sdk/middleware-ssec" "3.679.0" + "@aws-sdk/middleware-user-agent" "3.682.0" + "@aws-sdk/region-config-resolver" "3.679.0" + "@aws-sdk/signature-v4-multi-region" "3.685.0" + "@aws-sdk/types" "3.679.0" + "@aws-sdk/util-endpoints" "3.679.0" + "@aws-sdk/util-user-agent-browser" "3.679.0" + "@aws-sdk/util-user-agent-node" "3.682.0" + "@aws-sdk/xml-builder" "3.679.0" "@smithy/config-resolver" "^3.0.9" "@smithy/core" "^2.4.8" "@smithy/eventstream-serde-browser" "^3.0.10" @@ -202,24 +202,24 @@ "@smithy/util-waiter" "^3.1.6" tslib "^2.6.2" -"@aws-sdk/client-sso-oidc@3.677.0": - version "3.677.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.677.0.tgz#5557cb45ded0ebe0d25cf62611507f36d4b45afd" - integrity sha512-2zgZkRIU7DsnUVOy+9bjfJ0IYMzi9ONWXQt/WqMa7HOnj4RfenfpipyhHYxGZR5kmehgv53EI79yvUu+SAfGNg== +"@aws-sdk/client-sso-oidc@3.682.0": + version "3.682.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.682.0.tgz#423d6b3179fe560a515e3b286689414590f3263b" + integrity sha512-ZPZ7Y/r/w3nx/xpPzGSqSQsB090Xk5aZZOH+WBhTDn/pBEuim09BYXCLzvvxb7R7NnuoQdrTJiwimdJAhHl7ZQ== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.677.0" - "@aws-sdk/credential-provider-node" "3.677.0" - "@aws-sdk/middleware-host-header" "3.667.0" - "@aws-sdk/middleware-logger" "3.667.0" - "@aws-sdk/middleware-recursion-detection" "3.667.0" - "@aws-sdk/middleware-user-agent" "3.677.0" - "@aws-sdk/region-config-resolver" "3.667.0" - "@aws-sdk/types" "3.667.0" - "@aws-sdk/util-endpoints" "3.667.0" - "@aws-sdk/util-user-agent-browser" "3.675.0" - "@aws-sdk/util-user-agent-node" "3.677.0" + "@aws-sdk/core" "3.679.0" + "@aws-sdk/credential-provider-node" "3.682.0" + "@aws-sdk/middleware-host-header" "3.679.0" + "@aws-sdk/middleware-logger" "3.679.0" + "@aws-sdk/middleware-recursion-detection" "3.679.0" + "@aws-sdk/middleware-user-agent" "3.682.0" + "@aws-sdk/region-config-resolver" "3.679.0" + "@aws-sdk/types" "3.679.0" + "@aws-sdk/util-endpoints" "3.679.0" + "@aws-sdk/util-user-agent-browser" "3.679.0" + "@aws-sdk/util-user-agent-node" "3.682.0" "@smithy/config-resolver" "^3.0.9" "@smithy/core" "^2.4.8" "@smithy/fetch-http-handler" "^3.2.9" @@ -247,23 +247,23 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/client-sso@3.677.0": - version "3.677.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.677.0.tgz#a099a0e39b807cd93f3ead5ddf52bcd27a6f6338" - integrity sha512-/y6EskFhOa2w9VwXaXoyOrGeBjnOj/72wsxDOslS908qH+nf7m40pBK6e/iBelg04vlx0gqhlbfK8hLbaT6KHA== +"@aws-sdk/client-sso@3.682.0": + version "3.682.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.682.0.tgz#7533f677456d5f79cfcceed44a3481bcd86b560e" + integrity sha512-PYH9RFUMYLFl66HSBq4tIx6fHViMLkhJHTYJoJONpBs+Td+NwVJ895AdLtDsBIhMS0YseCbPpuyjUCJgsUrwUw== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.677.0" - "@aws-sdk/middleware-host-header" "3.667.0" - "@aws-sdk/middleware-logger" "3.667.0" - "@aws-sdk/middleware-recursion-detection" "3.667.0" - "@aws-sdk/middleware-user-agent" "3.677.0" - "@aws-sdk/region-config-resolver" "3.667.0" - "@aws-sdk/types" "3.667.0" - "@aws-sdk/util-endpoints" "3.667.0" - "@aws-sdk/util-user-agent-browser" "3.675.0" - "@aws-sdk/util-user-agent-node" "3.677.0" + "@aws-sdk/core" "3.679.0" + "@aws-sdk/middleware-host-header" "3.679.0" + "@aws-sdk/middleware-logger" "3.679.0" + "@aws-sdk/middleware-recursion-detection" "3.679.0" + "@aws-sdk/middleware-user-agent" "3.682.0" + "@aws-sdk/region-config-resolver" "3.679.0" + "@aws-sdk/types" "3.679.0" + "@aws-sdk/util-endpoints" "3.679.0" + "@aws-sdk/util-user-agent-browser" "3.679.0" + "@aws-sdk/util-user-agent-node" "3.682.0" "@smithy/config-resolver" "^3.0.9" "@smithy/core" "^2.4.8" "@smithy/fetch-http-handler" "^3.2.9" @@ -291,25 +291,25 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/client-sts@3.677.0": - version "3.677.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.677.0.tgz#70f57f2fc6bb709b854d384e825e408109af589d" - integrity sha512-N5fs1GLSthnwrs44b4IJI//dcShuIT42g4pM8FCUJZwbrWn9Sp9F876R1mvb8A9TAy2S4qCXi7TkHS0REnuicQ== +"@aws-sdk/client-sts@3.682.0": + version "3.682.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.682.0.tgz#97ff70ca141aa6ef48a22f14ef9727bd6ae17b03" + integrity sha512-xKuo4HksZ+F8m9DOfx/ZuWNhaPuqZFPwwy0xqcBT6sWH7OAuBjv/fnpOTzyQhpVTWddlf+ECtMAMrxjxuOExGQ== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.677.0" - "@aws-sdk/core" "3.677.0" - "@aws-sdk/credential-provider-node" "3.677.0" - "@aws-sdk/middleware-host-header" "3.667.0" - "@aws-sdk/middleware-logger" "3.667.0" - "@aws-sdk/middleware-recursion-detection" "3.667.0" - "@aws-sdk/middleware-user-agent" "3.677.0" - "@aws-sdk/region-config-resolver" "3.667.0" - "@aws-sdk/types" "3.667.0" - "@aws-sdk/util-endpoints" "3.667.0" - "@aws-sdk/util-user-agent-browser" "3.675.0" - "@aws-sdk/util-user-agent-node" "3.677.0" + "@aws-sdk/client-sso-oidc" "3.682.0" + "@aws-sdk/core" "3.679.0" + "@aws-sdk/credential-provider-node" "3.682.0" + "@aws-sdk/middleware-host-header" "3.679.0" + "@aws-sdk/middleware-logger" "3.679.0" + "@aws-sdk/middleware-recursion-detection" "3.679.0" + "@aws-sdk/middleware-user-agent" "3.682.0" + "@aws-sdk/region-config-resolver" "3.679.0" + "@aws-sdk/types" "3.679.0" + "@aws-sdk/util-endpoints" "3.679.0" + "@aws-sdk/util-user-agent-browser" "3.679.0" + "@aws-sdk/util-user-agent-node" "3.682.0" "@smithy/config-resolver" "^3.0.9" "@smithy/core" "^2.4.8" "@smithy/fetch-http-handler" "^3.2.9" @@ -337,12 +337,12 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/core@3.677.0": - version "3.677.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.677.0.tgz#4782cc573b28407e892db111cd730a5183a207ec" - integrity sha512-5auvc1wmXmd7u9Y9nM95Ia+VX7J2FiZLuADitHqE4mHPH9riDgOY+uK/yM+UKr+lfq4zKiZQG7i8cfabZlCY8g== +"@aws-sdk/core@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.679.0.tgz#102aa1d19db5bdcabefc2dcd044f2fb5d0771568" + integrity sha512-CS6PWGX8l4v/xyvX8RtXnBisdCa5+URzKd0L6GvHChype9qKUVxO/Gg6N/y43Hvg7MNWJt9FBPNWIxUB+byJwg== dependencies: - "@aws-sdk/types" "3.667.0" + "@aws-sdk/types" "3.679.0" "@smithy/core" "^2.4.8" "@smithy/node-config-provider" "^3.1.8" "@smithy/property-provider" "^3.1.7" @@ -354,24 +354,24 @@ fast-xml-parser "4.4.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-env@3.677.0": - version "3.677.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.677.0.tgz#ee5b6a7fb30fad6363f57d9df88779cda5981930" - integrity sha512-0ctcqKzclr9TiNIkB8I+YRogjWH/4mLWQGv/bgb8ElHqph+rPy4pOubj1Ax01sbs7XdwDaImjBYV5xXE+BEsYw== +"@aws-sdk/credential-provider-env@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.679.0.tgz#abf297714b77197a9da0d3d95a0f5687ae28e5b3" + integrity sha512-EdlTYbzMm3G7VUNAMxr9S1nC1qUNqhKlAxFU8E7cKsAe8Bp29CD5HAs3POc56AVo9GC4yRIS+/mtlZSmrckzUA== dependencies: - "@aws-sdk/core" "3.677.0" - "@aws-sdk/types" "3.667.0" + "@aws-sdk/core" "3.679.0" + "@aws-sdk/types" "3.679.0" "@smithy/property-provider" "^3.1.7" "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-http@3.677.0": - version "3.677.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.677.0.tgz#d0b3ad71409f8ac80d70c19cd2d96d5f22d760c2" - integrity sha512-c4TnShdzk37dhL1HGGzZ2PDKIIEmo1IbT/4y5hSRdNc8Z8fu6spE5GoeVsv6p/HdSGPS7XTy6aOFCMCk4AeIzQ== +"@aws-sdk/credential-provider-http@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.679.0.tgz#9fc29f4ec7ab52ecf394288c05295823e818d812" + integrity sha512-ZoKLubW5DqqV1/2a3TSn+9sSKg0T8SsYMt1JeirnuLJF0mCoYFUaWMyvxxKuxPoqvUsaycxKru4GkpJ10ltNBw== dependencies: - "@aws-sdk/core" "3.677.0" - "@aws-sdk/types" "3.667.0" + "@aws-sdk/core" "3.679.0" + "@aws-sdk/types" "3.679.0" "@smithy/fetch-http-handler" "^3.2.9" "@smithy/node-http-handler" "^3.2.4" "@smithy/property-provider" "^3.1.7" @@ -381,111 +381,111 @@ "@smithy/util-stream" "^3.1.9" tslib "^2.6.2" -"@aws-sdk/credential-provider-ini@3.677.0": - version "3.677.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.677.0.tgz#0010b22444d2ed69c9dc55283dbd4e73c4fff83d" - integrity sha512-hW+oHj5zplPLzTk74LG+gZVOKQnmBPyRIbwg3uZWr23xfOxh/Osu9Wq8qwgu2+UyFHr+6/DRFjZJ6avNA2jpKw== - dependencies: - "@aws-sdk/core" "3.677.0" - "@aws-sdk/credential-provider-env" "3.677.0" - "@aws-sdk/credential-provider-http" "3.677.0" - "@aws-sdk/credential-provider-process" "3.677.0" - "@aws-sdk/credential-provider-sso" "3.677.0" - "@aws-sdk/credential-provider-web-identity" "3.677.0" - "@aws-sdk/types" "3.667.0" +"@aws-sdk/credential-provider-ini@3.682.0": + version "3.682.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.682.0.tgz#36a68cd8d0ec3b14acf413166dce72a201fcc2bd" + integrity sha512-6eqWeHdK6EegAxqDdiCi215nT3QZPwukgWAYuVxNfJ/5m0/P7fAzF+D5kKVgByUvGJEbq/FEL8Fw7OBe64AA+g== + dependencies: + "@aws-sdk/core" "3.679.0" + "@aws-sdk/credential-provider-env" "3.679.0" + "@aws-sdk/credential-provider-http" "3.679.0" + "@aws-sdk/credential-provider-process" "3.679.0" + "@aws-sdk/credential-provider-sso" "3.682.0" + "@aws-sdk/credential-provider-web-identity" "3.679.0" + "@aws-sdk/types" "3.679.0" "@smithy/credential-provider-imds" "^3.2.4" "@smithy/property-provider" "^3.1.7" "@smithy/shared-ini-file-loader" "^3.1.8" "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-node@3.677.0": - version "3.677.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.677.0.tgz#9a0fbe5846cc6088576b7a682128e9b8979754e1" - integrity sha512-DwFriiDx2SSdj7VhRv/0fm8UIK7isy+WZAlqUdZ9xDsX4x1AD5KwMv9AwGhJrMuTjnPSxRSwjt23S7ZXwUfhdw== - dependencies: - "@aws-sdk/credential-provider-env" "3.677.0" - "@aws-sdk/credential-provider-http" "3.677.0" - "@aws-sdk/credential-provider-ini" "3.677.0" - "@aws-sdk/credential-provider-process" "3.677.0" - "@aws-sdk/credential-provider-sso" "3.677.0" - "@aws-sdk/credential-provider-web-identity" "3.677.0" - "@aws-sdk/types" "3.667.0" +"@aws-sdk/credential-provider-node@3.682.0": + version "3.682.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.682.0.tgz#4ec1ebd00dcacb46ae76747b23ebf7bda04808bd" + integrity sha512-HSmDqZcBVZrTctHCT9m++vdlDfJ1ARI218qmZa+TZzzOFNpKWy6QyHMEra45GB9GnkkMmV6unoDSPMuN0AqcMg== + dependencies: + "@aws-sdk/credential-provider-env" "3.679.0" + "@aws-sdk/credential-provider-http" "3.679.0" + "@aws-sdk/credential-provider-ini" "3.682.0" + "@aws-sdk/credential-provider-process" "3.679.0" + "@aws-sdk/credential-provider-sso" "3.682.0" + "@aws-sdk/credential-provider-web-identity" "3.679.0" + "@aws-sdk/types" "3.679.0" "@smithy/credential-provider-imds" "^3.2.4" "@smithy/property-provider" "^3.1.7" "@smithy/shared-ini-file-loader" "^3.1.8" "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-process@3.677.0": - version "3.677.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.677.0.tgz#38b29c89355fb22a1417573832a1684e5b3c6f19" - integrity sha512-pBqHjIFvHBJb2NOsVqdIHWcOzXDoNXBokxTvMggb3WYML6ixwrH7kpd1CAzegeQlvZD4SCcRoy3ahv5rbuR+og== +"@aws-sdk/credential-provider-process@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.679.0.tgz#a06b5193cdad2c14382708bcd44d487af52b11dc" + integrity sha512-u/p4TV8kQ0zJWDdZD4+vdQFTMhkDEJFws040Gm113VHa/Xo1SYOjbpvqeuFoz6VmM0bLvoOWjxB9MxnSQbwKpQ== dependencies: - "@aws-sdk/core" "3.677.0" - "@aws-sdk/types" "3.667.0" + "@aws-sdk/core" "3.679.0" + "@aws-sdk/types" "3.679.0" "@smithy/property-provider" "^3.1.7" "@smithy/shared-ini-file-loader" "^3.1.8" "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-sso@3.677.0": - version "3.677.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.677.0.tgz#9f57dd4067cd5d321c8977197f67f878e368c805" - integrity sha512-OkRP3z8yI22t9LS9At5fYr6RN7zKSDiGgeyjEnrqiGHOWGPMJN2GKa8IAFC4dgXt4Nm/EfmEW7UweiqzEKJKOA== +"@aws-sdk/credential-provider-sso@3.682.0": + version "3.682.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.682.0.tgz#aa7e3ffdac82bfc14fc0cf136cec3152f863a63a" + integrity sha512-h7IH1VsWgV6YAJSWWV6y8uaRjGqLY3iBpGZlXuTH/c236NMLaNv+WqCBLeBxkFGUb2WeQ+FUPEJDCD69rgLIkg== dependencies: - "@aws-sdk/client-sso" "3.677.0" - "@aws-sdk/core" "3.677.0" - "@aws-sdk/token-providers" "3.667.0" - "@aws-sdk/types" "3.667.0" + "@aws-sdk/client-sso" "3.682.0" + "@aws-sdk/core" "3.679.0" + "@aws-sdk/token-providers" "3.679.0" + "@aws-sdk/types" "3.679.0" "@smithy/property-provider" "^3.1.7" "@smithy/shared-ini-file-loader" "^3.1.8" "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-web-identity@3.677.0": - version "3.677.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.677.0.tgz#dcc66ee9a9e1bb09a38c5a52b4dff4bc84f77d8f" - integrity sha512-yjuI6hSt1rLFqBQiNKx/nF75Ao72xR8ybqKztzebtFNCrYl8oXVkRiigg5XKNCDmelsx1lcU9IcSiuPHzlGtUQ== +"@aws-sdk/credential-provider-web-identity@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.679.0.tgz#5871c44e5846e7c93810fd033224c00493db65a3" + integrity sha512-a74tLccVznXCaBefWPSysUcLXYJiSkeUmQGtalNgJ1vGkE36W5l/8czFiiowdWdKWz7+x6xf0w+Kjkjlj42Ung== dependencies: - "@aws-sdk/core" "3.677.0" - "@aws-sdk/types" "3.667.0" + "@aws-sdk/core" "3.679.0" + "@aws-sdk/types" "3.679.0" "@smithy/property-provider" "^3.1.7" "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-bucket-endpoint@3.667.0": - version "3.667.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.667.0.tgz#bd0a0a24f71d3709debf6e48f4e503547398e7eb" - integrity sha512-XGz4jMAkDoTyFdtLz7ZF+C05IAhCTC1PllpvTBaj821z/L0ilhbqVhrT/f2Buw8Id/K5A390csGXgusXyrFFjA== +"@aws-sdk/middleware-bucket-endpoint@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.679.0.tgz#cc5acad018d3b1646340fa2d0d0d412436b95e04" + integrity sha512-5EpiPhhGgnF+uJR4DzWUk6Lx3pOn9oM6JGXxeHsiynfoBfq7vHMleq+uABHHSQS+y7XzbyZ7x8tXNQlliMwOsg== dependencies: - "@aws-sdk/types" "3.667.0" - "@aws-sdk/util-arn-parser" "3.568.0" + "@aws-sdk/types" "3.679.0" + "@aws-sdk/util-arn-parser" "3.679.0" "@smithy/node-config-provider" "^3.1.8" "@smithy/protocol-http" "^4.1.4" "@smithy/types" "^3.5.0" "@smithy/util-config-provider" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-expect-continue@3.667.0": - version "3.667.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.667.0.tgz#d1b9e4871c8bde3402bdd0f73e740f5f5bf190d7" - integrity sha512-0TiSL9S5DSG95NHGIz6qTMuV7GDKVn8tvvGSrSSZu/wXO3JaYSH0AElVpYfc4PtPRqVpEyNA7nnc7W56mMCLWQ== +"@aws-sdk/middleware-expect-continue@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.679.0.tgz#6b22403fa6d7a7b9b0312c4453cfef69da66334b" + integrity sha512-nYsh9PdWrF4EahTRdXHGlNud82RPc508CNGdh1lAGfPU3tNveGfMBX3PcGBtPOse3p9ebNKRWVmUc9eXSjGvHA== dependencies: - "@aws-sdk/types" "3.667.0" + "@aws-sdk/types" "3.679.0" "@smithy/protocol-http" "^4.1.4" "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-flexible-checksums@3.677.0": - version "3.677.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.677.0.tgz#95d91cc98227e81d1122e897fc1310e146f0b84a" - integrity sha512-mTv3zRH+3/hW8hY0K855UrBmzW4pLb7n8MjlyL2dR8+wfXXw6DsSxGmEb4Jq13OjLTwSxyZs00JdpKtzgiIieA== +"@aws-sdk/middleware-flexible-checksums@3.682.0": + version "3.682.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.682.0.tgz#1370919775140dfda2a860892792bf560914c93a" + integrity sha512-5u1STth6iZUtAvPDO0NJVYKUX2EYKU7v84MYYaZ3O27HphRjFqDos0keL2KTnHn/KmMD68rM3yiUareWR8hnAQ== dependencies: "@aws-crypto/crc32" "5.2.0" "@aws-crypto/crc32c" "5.2.0" - "@aws-sdk/core" "3.677.0" - "@aws-sdk/types" "3.667.0" + "@aws-sdk/core" "3.679.0" + "@aws-sdk/types" "3.679.0" "@smithy/is-array-buffer" "^3.0.0" "@smithy/node-config-provider" "^3.1.8" "@smithy/protocol-http" "^4.1.4" @@ -494,52 +494,52 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-host-header@3.667.0": - version "3.667.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.667.0.tgz#d255aa6e73aec9a2d1a241de737679b6d2723c3f" - integrity sha512-Z7fIAMQnPegs7JjAQvlOeWXwpMRfegh5eCoIP6VLJIeR6DLfYKbP35JBtt98R6DXslrN2RsbTogjbxPEDQfw1w== +"@aws-sdk/middleware-host-header@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.679.0.tgz#1eabe42250c57a9e28742dd04786781573faad1a" + integrity sha512-y176HuQ8JRY3hGX8rQzHDSbCl9P5Ny9l16z4xmaiLo+Qfte7ee4Yr3yaAKd7GFoJ3/Mhud2XZ37fR015MfYl2w== dependencies: - "@aws-sdk/types" "3.667.0" + "@aws-sdk/types" "3.679.0" "@smithy/protocol-http" "^4.1.4" "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-location-constraint@3.667.0": - version "3.667.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.667.0.tgz#e5da0580656a1a385fd5783bb93ea320b4baeb1b" - integrity sha512-ob85H3HhT3/u5O+x0o557xGZ78vSNeSSwMaSitxdsfs2hOuoUl1uk+OeLpi1hkuJnL41FPpokV7TVII2XrFfmg== +"@aws-sdk/middleware-location-constraint@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.679.0.tgz#99ed75f1bf5ec005656af1c9efdb35aa2ddc7216" + integrity sha512-SA1C1D3XgoKTGxyNsOqd016ONpk46xJLWDgJUd00Zb21Ox5wYCoY6aDRKiaMRW+1VfCJdezs1Do3XLyIU9KxyA== dependencies: - "@aws-sdk/types" "3.667.0" + "@aws-sdk/types" "3.679.0" "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-logger@3.667.0": - version "3.667.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.667.0.tgz#bf072a1aa5b03239e20d75f9b525d8a990caf29f" - integrity sha512-PtTRNpNm/5c746jRgZCNg4X9xEJIwggkGJrF0GP9AB1ANg4pc/sF2Fvn1NtqPe9wtQ2stunJprnm5WkCHN7QiA== +"@aws-sdk/middleware-logger@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.679.0.tgz#cb0f205ddb5341d8327fc9ca1897bf06526c1896" + integrity sha512-0vet8InEj7nvIvGKk+ch7bEF5SyZ7Us9U7YTEgXPrBNStKeRUsgwRm0ijPWWd0a3oz2okaEwXsFl7G/vI0XiEA== dependencies: - "@aws-sdk/types" "3.667.0" + "@aws-sdk/types" "3.679.0" "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-recursion-detection@3.667.0": - version "3.667.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.667.0.tgz#e3f158d5b5ea1b1d73ab280c0cbe5ef077ed3fdc" - integrity sha512-U5glWD3ehFohzpUpopLtmqAlDurGWo2wRGPNgi4SwhWU7UDt6LS7E/UvJjqC0CUrjlzOw+my2A+Ncf+fisMhxQ== +"@aws-sdk/middleware-recursion-detection@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.679.0.tgz#3542de5baa466abffbfe5ee485fd87f60d5f917e" + integrity sha512-sQoAZFsQiW/LL3DfKMYwBoGjYDEnMbA9WslWN8xneCmBAwKo6IcSksvYs23PP8XMIoBGe2I2J9BSr654XWygTQ== dependencies: - "@aws-sdk/types" "3.667.0" + "@aws-sdk/types" "3.679.0" "@smithy/protocol-http" "^4.1.4" "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-sdk-s3@3.677.0": - version "3.677.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.677.0.tgz#1201c21ee39deec72581f42c05f79bdfb481cf52" - integrity sha512-3U8FHgWuxhAl97HMdaFs/SJlhpb5+i//FHv0JWYm2oAPZflIRFeJn1bgVtD7ka1NY2iJjpnqX8hHJPS547MnFQ== +"@aws-sdk/middleware-sdk-s3@3.685.0": + version "3.685.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.685.0.tgz#9e198973cc8d7ead142e5b5ba38694a957cf462b" + integrity sha512-C4w92b3A99NbghrA2Ssw6y1RbDF3I3Bgzi2Izh0pXgyIoDiX0xs9bUs/FGYLK4uepYr78DAZY8DwEpzjWIXkSA== dependencies: - "@aws-sdk/core" "3.677.0" - "@aws-sdk/types" "3.667.0" - "@aws-sdk/util-arn-parser" "3.568.0" + "@aws-sdk/core" "3.679.0" + "@aws-sdk/types" "3.679.0" + "@aws-sdk/util-arn-parser" "3.679.0" "@smithy/core" "^2.4.8" "@smithy/node-config-provider" "^3.1.8" "@smithy/protocol-http" "^4.1.4" @@ -552,172 +552,166 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-ssec@3.667.0": - version "3.667.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.667.0.tgz#19d510e4882c170eff33a5ced558781eee0ee716" - integrity sha512-1wuAUZIkmZIvOmGg5qNQU821CGFHhkuKioxXgNh0DpUxZ9+AeiV7yorJr+bqkb2KBFv1i1TnzGRecvKf/KvZIQ== +"@aws-sdk/middleware-ssec@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.679.0.tgz#72c68c46073d1e93654b9b47be61cbcf852d7804" + integrity sha512-4GNUxXbs1M71uFHRiCAZtN0/g23ogI9YjMe5isAuYMHXwDB3MhqF7usKf954mBP6tplvN44vYlbJ84faaLrTtg== dependencies: - "@aws-sdk/types" "3.667.0" + "@aws-sdk/types" "3.679.0" "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-user-agent@3.677.0": - version "3.677.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.677.0.tgz#0fcc6a0d17fa6338729c8c527e53844c2ae199fc" - integrity sha512-A3gzUsTsvyv/JCmD0p2fkbiOyp+tpAiAADDwzi+eYeyzH4xzqnrzSkGk5KSb58uUQo27eeBzRXHd46d0u+sMrQ== +"@aws-sdk/middleware-user-agent@3.682.0": + version "3.682.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.682.0.tgz#07d75723bce31e65a29ad0934347537e50e3536e" + integrity sha512-7TyvYR9HdGH1/Nq0eeApUTM4izB6rExiw87khVYuJwZHr6FmvIL1FsOVFro/4WlXa0lg4LiYOm/8H8dHv+fXTg== dependencies: - "@aws-sdk/core" "3.677.0" - "@aws-sdk/types" "3.667.0" - "@aws-sdk/util-endpoints" "3.667.0" + "@aws-sdk/core" "3.679.0" + "@aws-sdk/types" "3.679.0" + "@aws-sdk/util-endpoints" "3.679.0" "@smithy/core" "^2.4.8" "@smithy/protocol-http" "^4.1.4" "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/region-config-resolver@3.667.0": - version "3.667.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.667.0.tgz#1804103246e6b6c7586edc57d26801647d2972d8" - integrity sha512-iNr+JhhA902JMKHG9IwT9YdaEx6KGl6vjAL5BRNeOjfj4cZYMog6Lz/IlfOAltMtT0w88DAHDEFrBd2uO0l2eg== +"@aws-sdk/region-config-resolver@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.679.0.tgz#d205dbaea8385aaf05e637fb7cb095c60bc708be" + integrity sha512-Ybx54P8Tg6KKq5ck7uwdjiKif7n/8g1x+V0V9uTjBjRWqaIgiqzXwKWoPj6NCNkE7tJNtqI4JrNxp/3S3HvmRw== dependencies: - "@aws-sdk/types" "3.667.0" + "@aws-sdk/types" "3.679.0" "@smithy/node-config-provider" "^3.1.8" "@smithy/types" "^3.5.0" "@smithy/util-config-provider" "^3.0.0" "@smithy/util-middleware" "^3.0.7" tslib "^2.6.2" -"@aws-sdk/signature-v4-multi-region@3.677.0": - version "3.677.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.677.0.tgz#f1ca545e92352a88832a82bfb89f31989717236b" - integrity sha512-VJvYwPnyPMBbvKDAO58t90/y2AtdRp4epax6QR0XScZEBuS777gQ3wJb1JyHLeEAEolKj/dd6jV5Iq+/lsZIIQ== +"@aws-sdk/signature-v4-multi-region@3.685.0": + version "3.685.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.685.0.tgz#8bf6ae3d535666dd30ac255c9ba3bbde991b13df" + integrity sha512-IHLwuAZGqfUWVrNqw0ugnBa7iL8uBP4x6A7bfBDXRXWCWjUCed/1/D//0lKDHwpFkV74fGW6KoBacnWSUlXmwA== dependencies: - "@aws-sdk/middleware-sdk-s3" "3.677.0" - "@aws-sdk/types" "3.667.0" + "@aws-sdk/middleware-sdk-s3" "3.685.0" + "@aws-sdk/types" "3.679.0" "@smithy/protocol-http" "^4.1.4" "@smithy/signature-v4" "^4.2.0" "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/token-providers@3.667.0": - version "3.667.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.667.0.tgz#ea990ef364d6bd75f0ebcf19a22f9ccd0edb3c41" - integrity sha512-ZecJlG8p6D4UTYlBHwOWX6nknVtw/OBJ3yPXTSajBjhUlj9lE2xvejI8gl4rqkyLXk7z3bki+KR4tATbMaM9yg== +"@aws-sdk/token-providers@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.679.0.tgz#7ec462d93941dd3cfdc245104ad32971f6ebc4f6" + integrity sha512-1/+Zso/x2jqgutKixYFQEGli0FELTgah6bm7aB+m2FAWH4Hz7+iMUsazg6nSWm714sG9G3h5u42Dmpvi9X6/hA== dependencies: - "@aws-sdk/types" "3.667.0" + "@aws-sdk/types" "3.679.0" "@smithy/property-provider" "^3.1.7" "@smithy/shared-ini-file-loader" "^3.1.8" "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/types@3.667.0": - version "3.667.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.667.0.tgz#1b307c5af5a029ea1893f799fcfa122988f9d025" - integrity sha512-gYq0xCsqFfQaSL/yT1Gl1vIUjtsg7d7RhnUfsXaHt8xTxOKRTdH9GjbesBjXOzgOvB0W0vfssfreSNGFlOOMJg== +"@aws-sdk/types@3.679.0", "@aws-sdk/types@^3.222.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.679.0.tgz#3737bb0f190add9e788b838a24cd5d8106dbed4f" + integrity sha512-NwVq8YvInxQdJ47+zz4fH3BRRLC6lL+WLkvr242PVBbUOLRyK/lkwHlfiKUoeVIMyK5NF+up6TRg71t/8Bny6Q== dependencies: "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/types@^3.222.0": - version "3.664.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.664.0.tgz#e6de1c0a2cdfe4f1e43271223dc0b55e613ced58" - integrity sha512-+GtXktvVgpreM2b+NJL9OqZGsOzHwlCUrO8jgQUvH/yA6Kd8QO2YFhQCp0C9sSzTteZJVqGBu8E0CQurxJHPbw== +"@aws-sdk/util-arn-parser@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.679.0.tgz#1b7793c8ae31305ca6c6f7497066f3e74ad69716" + integrity sha512-CwzEbU8R8rq9bqUFryO50RFBlkfufV9UfMArHPWlo+lmsC+NlSluHQALoj6Jkq3zf5ppn1CN0c1DDLrEqdQUXg== dependencies: - "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/util-arn-parser@3.568.0": - version "3.568.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.568.0.tgz#6a19a8c6bbaa520b6be1c278b2b8c17875b91527" - integrity sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w== +"@aws-sdk/util-endpoints@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.679.0.tgz#b249ad8b4289e634cb5dfb3873a70b7aecbf323f" + integrity sha512-YL6s4Y/1zC45OvddvgE139fjeWSKKPgLlnfrvhVL7alNyY9n7beR4uhoDpNrt5mI6sn9qiBF17790o+xLAXjjg== dependencies: - tslib "^2.6.2" - -"@aws-sdk/util-endpoints@3.667.0": - version "3.667.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.667.0.tgz#c880fbc3bda5a11eec81e4ac5f95a256f8dbb24e" - integrity sha512-X22SYDAuQJWnkF1/q17pkX3nGw5XMD9YEUbmt87vUnRq7iyJ3JOpl6UKOBeUBaL838wA5yzdbinmCITJ/VZ1QA== - dependencies: - "@aws-sdk/types" "3.667.0" + "@aws-sdk/types" "3.679.0" "@smithy/types" "^3.5.0" "@smithy/util-endpoints" "^2.1.3" tslib "^2.6.2" "@aws-sdk/util-locate-window@^3.0.0": - version "3.568.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz#2acc4b2236af0d7494f7e517401ba6b3c4af11ff" - integrity sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig== + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.679.0.tgz#8d5898624691e12ccbad839e103562002bbec85e" + integrity sha512-zKTd48/ZWrCplkXpYDABI74rQlbR0DNHs8nH95htfSLj9/mWRSwaGptoxwcihaq/77vi/fl2X3y0a1Bo8bt7RA== dependencies: tslib "^2.6.2" -"@aws-sdk/util-user-agent-browser@3.675.0": - version "3.675.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.675.0.tgz#ad5371e0d4f68733e3dd04d455d99ee99609dbd9" - integrity sha512-HW4vGfRiX54RLcsYjLuAhcBBJ6lRVEZd7njfGpAwBB9s7BH8t48vrpYbyA5XbbqbTvXfYBnugQCUw9HWjEa1ww== +"@aws-sdk/util-user-agent-browser@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.679.0.tgz#bbaa5a8771c8a16388cd3cd934bb84a641ce907d" + integrity sha512-CusSm2bTBG1kFypcsqU8COhnYc6zltobsqs3nRrvYqYaOqtMnuE46K4XTWpnzKgwDejgZGOE+WYyprtAxrPvmQ== dependencies: - "@aws-sdk/types" "3.667.0" + "@aws-sdk/types" "3.679.0" "@smithy/types" "^3.5.0" bowser "^2.11.0" tslib "^2.6.2" -"@aws-sdk/util-user-agent-node@3.677.0": - version "3.677.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.677.0.tgz#260f0418bc8a5b542a82beb6bd67091b544ef86f" - integrity sha512-gFhL0zVY/um0Eu2aWil82pjWaZL4yBmOnjz0+RDz18okFBHaz1Om8o/H+1Vvj+xsnuDYV4ezVMyAaXVtTcYOnw== +"@aws-sdk/util-user-agent-node@3.682.0": + version "3.682.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.682.0.tgz#a493d2afb160c5cd4ab0520f929e9b7a2b36f74e" + integrity sha512-so5s+j0gPoTS0HM4HPL+G0ajk0T6cQAg8JXzRgvyiQAxqie+zGCZAV3VuVeMNWMVbzsgZl0pYZaatPFTLG/AxA== dependencies: - "@aws-sdk/middleware-user-agent" "3.677.0" - "@aws-sdk/types" "3.667.0" + "@aws-sdk/middleware-user-agent" "3.682.0" + "@aws-sdk/types" "3.679.0" "@smithy/node-config-provider" "^3.1.8" "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/xml-builder@3.662.0": - version "3.662.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.662.0.tgz#6cbe5aea6205fd2280ec043189985240628d1cb2" - integrity sha512-ikLkXn0igUpnJu2mCZjklvmcDGWT9OaLRv3JyC/cRkTaaSrblPjPM7KKsltxdMTLQ+v7fjCN0TsJpxphMfaOPA== +"@aws-sdk/xml-builder@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.679.0.tgz#96ccb7a4a4d4faa881d1fec5fc0554dc726843b5" + integrity sha512-nPmhVZb39ty5bcQ7mAwtjezBcsBqTYZ9A2D9v/lE92KCLdu5RhSkPH7O71ZqbZx1mUSg9fAOxHPiG79U5VlpLQ== dependencies: "@smithy/types" "^3.5.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.25.9", "@babel/code-frame@^7.8.3": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.25.9.tgz#895b6c7e04a7271a0cbfd575d2e8131751914cc7" - integrity sha512-z88xeGxnzehn2sqZ8UdGQEvYErF1odv2CftxInpSYJt6uHuPe9YjahKZITGs3l5LeI9d2ROG+obuDAoSlqbNfQ== +"@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.25.9", "@babel/code-frame@^7.26.0", "@babel/code-frame@^7.8.3": + version "7.26.2" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" + integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== dependencies: - "@babel/highlight" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.9.tgz#24b01c5db6a3ebf85661b4fb4a946a9bccc72ac8" - integrity sha512-yD+hEuJ/+wAJ4Ox2/rpNv5HIuPG82x3ZlQvYVn8iYCprdxzE7P1udpGF1jyjQVBU4dgznN+k2h103vxZ7NdPyw== +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.9", "@babel/compat-data@^7.26.0": + version "7.26.2" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.2.tgz#278b6b13664557de95b8f35b90d96785850bb56e" + integrity sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg== "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.18.9", "@babel/core@^7.23.9", "@babel/core@^7.3.4": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.9.tgz#855a4cddcec4158f3f7afadacdab2a7de8af7434" - integrity sha512-WYvQviPw+Qyib0v92AwNIrdLISTp7RfDkM7bPqBvpbnhY4wq8HvHBZREVdYDXk98C8BkOIVnHAY3yvj7AVISxQ== + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.0.tgz#d78b6023cc8f3114ccf049eb219613f74a747b40" + integrity sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.25.9" - "@babel/generator" "^7.25.9" + "@babel/code-frame" "^7.26.0" + "@babel/generator" "^7.26.0" "@babel/helper-compilation-targets" "^7.25.9" - "@babel/helper-module-transforms" "^7.25.9" - "@babel/helpers" "^7.25.9" - "@babel/parser" "^7.25.9" + "@babel/helper-module-transforms" "^7.26.0" + "@babel/helpers" "^7.26.0" + "@babel/parser" "^7.26.0" "@babel/template" "^7.25.9" "@babel/traverse" "^7.25.9" - "@babel/types" "^7.25.9" + "@babel/types" "^7.26.0" 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.25.9", "@babel/generator@^7.7.2": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.9.tgz#c7e828ebe0c2baba103b712924699c9e8a6e32f0" - integrity sha512-omlUGkr5EaoIJrhLf9CJ0TvjBRpd9+AXRG//0GEQ9THSo8wPiTlbpy1/Ow8ZTrbXpjd9FHXfbFQx32I04ht0FA== +"@babel/generator@^7.25.9", "@babel/generator@^7.26.0", "@babel/generator@^7.7.2": + version "7.26.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.2.tgz#87b75813bec87916210e5e01939a4c823d6bb74f" + integrity sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw== dependencies: - "@babel/types" "^7.25.9" + "@babel/parser" "^7.26.2" + "@babel/types" "^7.26.0" "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.25" jsesc "^3.0.2" @@ -797,13 +791,12 @@ "@babel/traverse" "^7.25.9" "@babel/types" "^7.25.9" -"@babel/helper-module-transforms@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.9.tgz#12e4fb2969197ef6d78ea8a2f24375ce85b425fb" - integrity sha512-TvLZY/F3+GvdRYFZFyxMvnsKi+4oJdgZzU3BoGN9Uc2d9C6zfNwJcKKhjqLAhK8i46mv93jsO74fDh3ih6rpHA== +"@babel/helper-module-transforms@^7.25.9", "@babel/helper-module-transforms@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz#8ce54ec9d592695e58d84cd884b7b5c6a2fdeeae" + integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw== dependencies: "@babel/helper-module-imports" "^7.25.9" - "@babel/helper-simple-access" "^7.25.9" "@babel/helper-validator-identifier" "^7.25.9" "@babel/traverse" "^7.25.9" @@ -877,30 +870,20 @@ "@babel/traverse" "^7.25.9" "@babel/types" "^7.25.9" -"@babel/helpers@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.25.9.tgz#9e26aa6fbefdbca4f8c8a1d66dc6f1c00ddadb0a" - integrity sha512-oKWp3+usOJSzDZOucZUAMayhPz/xVjzymyDzUN8dk0Wd3RWMlGLXi07UCQ/CgQVb8LvXx3XBajJH4XGgkt7H7g== +"@babel/helpers@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.0.tgz#30e621f1eba5aa45fe6f4868d2e9154d884119a4" + integrity sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw== dependencies: "@babel/template" "^7.25.9" - "@babel/types" "^7.25.9" - -"@babel/highlight@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.25.9.tgz#8141ce68fc73757946f983b343f1231f4691acc6" - integrity sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw== - dependencies: - "@babel/helper-validator-identifier" "^7.25.9" - chalk "^2.4.2" - js-tokens "^4.0.0" - picocolors "^1.0.0" + "@babel/types" "^7.26.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.9.tgz#8fcaa079ac7458facfddc5cd705cc8005e4d3817" - integrity sha512-aI3jjAAO1fh7vY/pBGsn1i9LDbRP43+asrRlkPuTXW5yHXtd1NgTEMudbBoDDxrf1daEEfPJqR+JBMakzrR4Dg== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.9", "@babel/parser@^7.26.0", "@babel/parser@^7.26.2": + version "7.26.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.2.tgz#fd7b6f487cfea09889557ef5d4eeb9ff9a5abd11" + integrity sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ== dependencies: - "@babel/types" "^7.25.9" + "@babel/types" "^7.26.0" "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.9": version "7.25.9" @@ -974,17 +957,17 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-import-assertions@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.9.tgz#631686872fac3d4d1f1ae9a406a8fd1c482c7b2a" - integrity sha512-4GHX5uzr5QMOOuzV0an9MFju4hKlm0OyePl/lHhcsTVae5t/IKVHnb8W67Vr6FuLlk5lPqLB7n7O+K5R46emYg== +"@babel/plugin-syntax-import-assertions@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz#620412405058efa56e4a564903b79355020f445f" + integrity sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg== dependencies: "@babel/helper-plugin-utils" "^7.25.9" -"@babel/plugin-syntax-import-attributes@^7.24.7", "@babel/plugin-syntax-import-attributes@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.9.tgz#29c9643445deea4533c05e6ac6c39d15424bbe78" - integrity sha512-u3EN9ub8LyYvgTnrgp8gboElouayiwPdnM7x5tcnW3iSt09/lQYPwMNK40I9IUxo7QOZhAsPHCmmuO7EPdruqg== +"@babel/plugin-syntax-import-attributes@^7.24.7", "@babel/plugin-syntax-import-attributes@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz#3b1412847699eea739b4f2602c74ce36f6b0b0f7" + integrity sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A== dependencies: "@babel/helper-plugin-utils" "^7.25.9" @@ -1127,10 +1110,10 @@ "@babel/helper-create-class-features-plugin" "^7.25.9" "@babel/helper-plugin-utils" "^7.25.9" -"@babel/plugin-transform-class-static-block@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.25.9.tgz#1cab37c4278a563409d74c1e4f08fb77de5d7a5c" - integrity sha512-UIf+72C7YJ+PJ685/PpATbCz00XqiFEzHX5iysRwfvNT0Ko+FaXSvRgLytFSp8xUItrG9pFM/KoBBZDrY/cYyg== +"@babel/plugin-transform-class-static-block@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz#6c8da219f4eb15cae9834ec4348ff8e9e09664a0" + integrity sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ== dependencies: "@babel/helper-create-class-features-plugin" "^7.25.9" "@babel/helper-plugin-utils" "^7.25.9" @@ -1420,6 +1403,14 @@ "@babel/helper-plugin-utils" "^7.25.9" regenerator-transform "^0.15.2" +"@babel/plugin-transform-regexp-modifiers@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz#2f5837a5b5cd3842a919d8147e9903cc7455b850" + integrity sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/plugin-transform-reserved-words@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz#0398aed2f1f10ba3f78a93db219b27ef417fb9ce" @@ -1506,11 +1497,11 @@ "@babel/helper-plugin-utils" "^7.25.9" "@babel/preset-env@^7.16.4": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.25.9.tgz#fc8a68705e02553cdeeeb5477bf241e12b9c3cd9" - integrity sha512-XqDEt+hfsQukahSX9JOBDHhpUHDhj2zGSxoqWQFCMajOSBnbhBdgON/bU/5PkBA1yX5tqW6tTzuIPVsZTQ7h5Q== + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.26.0.tgz#30e5c6bc1bcc54865bff0c5a30f6d4ccdc7fa8b1" + integrity sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw== dependencies: - "@babel/compat-data" "^7.25.9" + "@babel/compat-data" "^7.26.0" "@babel/helper-compilation-targets" "^7.25.9" "@babel/helper-plugin-utils" "^7.25.9" "@babel/helper-validator-option" "^7.25.9" @@ -1520,8 +1511,8 @@ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.25.9" "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.9" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-import-assertions" "^7.25.9" - "@babel/plugin-syntax-import-attributes" "^7.25.9" + "@babel/plugin-syntax-import-assertions" "^7.26.0" + "@babel/plugin-syntax-import-attributes" "^7.26.0" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.25.9" "@babel/plugin-transform-async-generator-functions" "^7.25.9" @@ -1529,7 +1520,7 @@ "@babel/plugin-transform-block-scoped-functions" "^7.25.9" "@babel/plugin-transform-block-scoping" "^7.25.9" "@babel/plugin-transform-class-properties" "^7.25.9" - "@babel/plugin-transform-class-static-block" "^7.25.9" + "@babel/plugin-transform-class-static-block" "^7.26.0" "@babel/plugin-transform-classes" "^7.25.9" "@babel/plugin-transform-computed-properties" "^7.25.9" "@babel/plugin-transform-destructuring" "^7.25.9" @@ -1562,6 +1553,7 @@ "@babel/plugin-transform-private-property-in-object" "^7.25.9" "@babel/plugin-transform-property-literals" "^7.25.9" "@babel/plugin-transform-regenerator" "^7.25.9" + "@babel/plugin-transform-regexp-modifiers" "^7.26.0" "@babel/plugin-transform-reserved-words" "^7.25.9" "@babel/plugin-transform-shorthand-properties" "^7.25.9" "@babel/plugin-transform-spread" "^7.25.9" @@ -1601,9 +1593,9 @@ "@babel/plugin-transform-react-pure-annotations" "^7.25.9" "@babel/preset-typescript@^7.3.3": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.25.9.tgz#bb82f26cda46dc2eb1ee10bf72fa994e759a08ba" - integrity sha512-XWxw1AcKk36kgxf4C//fl0ikjLeqGUWn062/Fd8GtpTfDJOX6Ud95FK+4JlDA36BX4bNGndXi3a6Vr4Jo5/61A== + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz#4a570f1b8d104a242d923957ffa1eaff142a106d" + integrity sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/helper-validator-option" "^7.25.9" @@ -1611,10 +1603,10 @@ "@babel/plugin-transform-modules-commonjs" "^7.25.9" "@babel/plugin-transform-typescript" "^7.25.9" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.0", "@babel/runtime@^7.12.5", "@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.25.7", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.9.tgz#65884fd6dc255a775402cc1d9811082918f4bf00" - integrity sha512-4zpTHZ9Cm6L9L+uIqghQX8ZXg8HKFcjYO3qHoO8zTmRm6HQUJ8SSJ+KRvbMBZn0EGVlT4DRYeQ/6hjlyXBh+Kg== +"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.0", "@babel/runtime@^7.12.5", "@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.25.7", "@babel/runtime@^7.26.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1" + integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== dependencies: regenerator-runtime "^0.14.0" @@ -1640,19 +1632,14 @@ 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.25.9", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.9.tgz#620f35ea1f4233df529ec9a2668d2db26574deee" - integrity sha512-OwS2CM5KocvQ/k7dFJa8i5bNGJP0hXWfVCfDkqRFP1IreH1JDC7wG6eCYCi0+McbfT8OR/kNqsI0UU0xP9H6PQ== +"@babel/types@^7.0.0", "@babel/types@^7.18.9", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.0.tgz#deabd08d6b753bc8e0f198f8709fb575e31774ff" + integrity sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA== dependencies: "@babel/helper-string-parser" "^7.25.9" "@babel/helper-validator-identifier" "^7.25.9" -"@base2/pretty-print-object@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz#371ba8be66d556812dc7fb169ebc3c08378f69d4" - integrity sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA== - "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -1679,11 +1666,10 @@ integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== "@electron/asar@^3.2.7": - version "3.2.13" - resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.2.13.tgz#56565ea423ead184465adfa72663b2c70d9835f2" - integrity sha512-pY5z2qQSwbFzJsBdgfJIzXf5ElHTVMutC2dxh0FD60njknMu3n1NnTABOcQwbb5/v5soqE79m9UjaJryBf3epg== + version "3.2.15" + resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.2.15.tgz#b75ee015db4de446d498f83e05c22640ac62ea18" + integrity sha512-AerUbRZpkDVRs58WP32t4U2bx85sfwRkQI8RMIEi6s2NBE++sgjsgAAMtXvnfTISKUkXo386pxFW7sa7WtMCrw== dependencies: - "@types/glob" "^7.1.0" commander "^5.0.0" glob "^7.1.6" minimatch "^3.0.4" @@ -1891,132 +1877,252 @@ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz#51299374de171dbd80bb7d838e1cfce9af36f353" integrity sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ== +"@esbuild/aix-ppc64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz#b57697945b50e99007b4c2521507dc613d4a648c" + integrity sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw== + "@esbuild/android-arm64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz#58565291a1fe548638adb9c584237449e5e14018" integrity sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw== +"@esbuild/android-arm64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz#1add7e0af67acefd556e407f8497e81fddad79c0" + integrity sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w== + "@esbuild/android-arm@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.23.1.tgz#5eb8c652d4c82a2421e3395b808e6d9c42c862ee" integrity sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ== +"@esbuild/android-arm@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.24.0.tgz#ab7263045fa8e090833a8e3c393b60d59a789810" + integrity sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew== + "@esbuild/android-x64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.23.1.tgz#ae19d665d2f06f0f48a6ac9a224b3f672e65d517" integrity sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg== +"@esbuild/android-x64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.24.0.tgz#e8f8b196cfdfdd5aeaebbdb0110983460440e705" + integrity sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ== + "@esbuild/darwin-arm64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz#05b17f91a87e557b468a9c75e9d85ab10c121b16" integrity sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q== +"@esbuild/darwin-arm64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz#2d0d9414f2acbffd2d86e98253914fca603a53dd" + integrity sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw== + "@esbuild/darwin-x64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz#c58353b982f4e04f0d022284b8ba2733f5ff0931" integrity sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw== +"@esbuild/darwin-x64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz#33087aab31a1eb64c89daf3d2cf8ce1775656107" + integrity sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA== + "@esbuild/freebsd-arm64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz#f9220dc65f80f03635e1ef96cfad5da1f446f3bc" integrity sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA== +"@esbuild/freebsd-arm64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz#bb76e5ea9e97fa3c753472f19421075d3a33e8a7" + integrity sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA== + "@esbuild/freebsd-x64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz#69bd8511fa013b59f0226d1609ac43f7ce489730" integrity sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g== +"@esbuild/freebsd-x64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz#e0e2ce9249fdf6ee29e5dc3d420c7007fa579b93" + integrity sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ== + "@esbuild/linux-arm64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz#8050af6d51ddb388c75653ef9871f5ccd8f12383" integrity sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g== +"@esbuild/linux-arm64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz#d1b2aa58085f73ecf45533c07c82d81235388e75" + integrity sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g== + "@esbuild/linux-arm@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz#ecaabd1c23b701070484990db9a82f382f99e771" integrity sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ== +"@esbuild/linux-arm@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz#8e4915df8ea3e12b690a057e77a47b1d5935ef6d" + integrity sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw== + "@esbuild/linux-ia32@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz#3ed2273214178109741c09bd0687098a0243b333" integrity sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ== +"@esbuild/linux-ia32@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz#8200b1110666c39ab316572324b7af63d82013fb" + integrity sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA== + "@esbuild/linux-loong64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz#a0fdf440b5485c81b0fbb316b08933d217f5d3ac" integrity sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw== +"@esbuild/linux-loong64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz#6ff0c99cf647504df321d0640f0d32e557da745c" + integrity sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g== + "@esbuild/linux-mips64el@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz#e11a2806346db8375b18f5e104c5a9d4e81807f6" integrity sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q== +"@esbuild/linux-mips64el@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz#3f720ccd4d59bfeb4c2ce276a46b77ad380fa1f3" + integrity sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA== + "@esbuild/linux-ppc64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz#06a2744c5eaf562b1a90937855b4d6cf7c75ec96" integrity sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw== +"@esbuild/linux-ppc64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz#9d6b188b15c25afd2e213474bf5f31e42e3aa09e" + integrity sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ== + "@esbuild/linux-riscv64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz#65b46a2892fc0d1af4ba342af3fe0fa4a8fe08e7" integrity sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA== +"@esbuild/linux-riscv64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz#f989fdc9752dfda286c9cd87c46248e4dfecbc25" + integrity sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw== + "@esbuild/linux-s390x@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz#e71ea18c70c3f604e241d16e4e5ab193a9785d6f" integrity sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw== +"@esbuild/linux-s390x@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz#29ebf87e4132ea659c1489fce63cd8509d1c7319" + integrity sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g== + "@esbuild/linux-x64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz#d47f97391e80690d4dfe811a2e7d6927ad9eed24" integrity sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ== +"@esbuild/linux-x64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz#4af48c5c0479569b1f359ffbce22d15f261c0cef" + integrity sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA== + "@esbuild/netbsd-x64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz#44e743c9778d57a8ace4b72f3c6b839a3b74a653" integrity sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA== +"@esbuild/netbsd-x64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz#1ae73d23cc044a0ebd4f198334416fb26c31366c" + integrity sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg== + "@esbuild/openbsd-arm64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz#05c5a1faf67b9881834758c69f3e51b7dee015d7" integrity sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q== +"@esbuild/openbsd-arm64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz#5d904a4f5158c89859fd902c427f96d6a9e632e2" + integrity sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg== + "@esbuild/openbsd-x64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz#2e58ae511bacf67d19f9f2dcd9e8c5a93f00c273" integrity sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA== +"@esbuild/openbsd-x64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz#4c8aa88c49187c601bae2971e71c6dc5e0ad1cdf" + integrity sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q== + "@esbuild/sunos-x64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz#adb022b959d18d3389ac70769cef5a03d3abd403" integrity sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA== +"@esbuild/sunos-x64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz#8ddc35a0ea38575fa44eda30a5ee01ae2fa54dd4" + integrity sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA== + "@esbuild/win32-arm64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz#84906f50c212b72ec360f48461d43202f4c8b9a2" integrity sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A== +"@esbuild/win32-arm64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz#6e79c8543f282c4539db684a207ae0e174a9007b" + integrity sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA== + "@esbuild/win32-ia32@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz#5e3eacc515820ff729e90d0cb463183128e82fac" integrity sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ== +"@esbuild/win32-ia32@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz#057af345da256b7192d18b676a02e95d0fa39103" + integrity sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw== + "@esbuild/win32-x64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz#81fd50d11e2c32b2d6241470e3185b70c7b30699" integrity sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg== +"@esbuild/win32-x64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz#168ab1c7e1c318b922637fad8f339d48b01e1244" + integrity sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA== + "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + version "4.4.1" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56" + integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA== dependencies: - eslint-visitor-keys "^3.3.0" + eslint-visitor-keys "^3.4.3" -"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.11.0": - version "4.11.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.1.tgz#a547badfc719eb3e5f4b556325e542fbe9d7a18f" - integrity sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q== +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.12.1": + version "4.12.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" + integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== "@eslint/config-array@^0.18.0": version "0.18.0" @@ -2047,10 +2153,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.13.0": - version "9.13.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.13.0.tgz#c5f89bcd57eb54d5d4fa8b77693e9c28dc97e547" - integrity sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA== +"@eslint/js@9.14.0": + version "9.14.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.14.0.tgz#2347a871042ebd11a00fd8c2d3d56a265ee6857e" + integrity sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg== "@eslint/object-schema@^2.1.4": version "2.1.4" @@ -2058,9 +2164,9 @@ integrity sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ== "@eslint/plugin-kit@^0.2.0": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.1.tgz#cd14fe2db79fa639839dfef4105e83bad1814482" - integrity sha512-HFZ4Mp26nbWk9d/BpvP0YNL6W4UoZF0VFcTw/aPPA8RpOxeFQgK+ClABGgAUXs9Y/RGX/l1vOmrqz1MQt9MNuw== + version "0.2.2" + resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.2.tgz#5eff371953bc13e3f4d88150e2c53959f64f74f6" + integrity sha512-CXtq5nR4Su+2I47WPOlWud98Y5Lv8Kyxp2ukhgFx/eW6Blm18VXJO5WuQylPugRo8nbluoi6GvvxBLqHcvqUUw== dependencies: levn "^0.4.1" @@ -2077,9 +2183,9 @@ "@floating-ui/utils" "^0.2.8" "@floating-ui/dom@^1.0.0": - version "1.6.11" - resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.11.tgz#8631857838d34ee5712339eb7cbdfb8ad34da723" - integrity sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ== + version "1.6.12" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.12.tgz#6333dcb5a8ead3b2bf82f33d6bc410e95f54e556" + integrity sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w== dependencies: "@floating-ui/core" "^1.6.0" "@floating-ui/utils" "^0.2.8" @@ -2092,9 +2198,9 @@ "@floating-ui/dom" "^1.0.0" "@floating-ui/react@^0.26.3": - version "0.26.25" - resolved "https://registry.yarnpkg.com/@floating-ui/react/-/react-0.26.25.tgz#cf4c8a2b89fab1a71712d15e6551df3bfbd2ea1d" - integrity sha512-hZOmgN0NTOzOuZxI1oIrDu3Gcl8WViIkvPMpB4xdd4QD6xAMtwgwr3VPoiyH/bLtRcS1cDnhxLSD1NsMJmwh/A== + version "0.26.27" + resolved "https://registry.yarnpkg.com/@floating-ui/react/-/react-0.26.27.tgz#402f7b4b2702650662705fe9cbe0f1d5607846a1" + integrity sha512-jLP72x0Kr2CgY6eTYi/ra3VA9LOkTo4C+DUTrbFgFOExKy3omYVmwMjNKqxAHdsnyLS96BIDLcO2SlnsNf8KUQ== dependencies: "@floating-ui/react-dom" "^2.1.2" "@floating-ui/utils" "^0.2.8" @@ -2238,17 +2344,17 @@ resolved "https://registry.yarnpkg.com/@gmod/vcf/-/vcf-5.0.10.tgz#6c2d7952b15f61642454be90119ea89fd3c227de" integrity sha512-o7QuPcOeXlJpzwQaFmgojhNvJE4yB9fhrfVEDKpkDjV27pAqwMy89367vtXu4JfBFE9t4zZ6sQRkqYaJ+cIheg== -"@humanfs/core@^0.19.0": - version "0.19.0" - resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.0.tgz#08db7a8c73bb07673d9ebd925f2dad746411fcec" - integrity sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw== +"@humanfs/core@^0.19.1": + version "0.19.1" + resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.1.tgz#17c55ca7d426733fe3c561906b8173c336b40a77" + integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA== -"@humanfs/node@^0.16.5": - version "0.16.5" - resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.5.tgz#a9febb7e7ad2aff65890fdc630938f8d20aa84ba" - integrity sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg== +"@humanfs/node@^0.16.6": + version "0.16.6" + resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.6.tgz#ee2a10eaabd1131987bf0488fd9b820174cd765e" + integrity sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw== dependencies: - "@humanfs/core" "^0.19.0" + "@humanfs/core" "^0.19.1" "@humanwhocodes/retry" "^0.3.0" "@humanwhocodes/module-importer@^1.0.1": @@ -2256,17 +2362,33 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/retry@^0.3.0", "@humanwhocodes/retry@^0.3.1": +"@humanwhocodes/retry@^0.3.0": version "0.3.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.1.tgz#c72a5c76a9fbaf3488e231b13dc52c0da7bab42a" integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== +"@humanwhocodes/retry@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.0.tgz#b57438cab2a2381b4b597b0ab17339be381bd755" + integrity sha512-xnRgu9DxZbkWak/te3fcytNyp8MTbuiZIaueg2rgEvBuN55n04nwLYLU9TX/VVlusc9L2ZNXi99nUFNkHXtr5g== + "@hutson/parse-repository-url@^3.0.0": version "3.0.2" resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== -"@inquirer/confirm@^3.1.22", "@inquirer/confirm@^3.2.0": +"@inquirer/checkbox@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-4.0.1.tgz#adf127d4fe161a939a1d8cafee25e50d878d1184" + integrity sha512-ehJjmNPdguajc1hStvjN7DJNVjwG5LC1mgGMGFjCmdkn2fxB2GtULftMnlaqNmvMdPpqdaSoOFpl86VkLtG4pQ== + dependencies: + "@inquirer/core" "^10.0.1" + "@inquirer/figures" "^1.0.7" + "@inquirer/type" "^3.0.0" + ansi-escapes "^4.3.2" + yoctocolors-cjs "^2.1.2" + +"@inquirer/confirm@^3.1.22": version "3.2.0" resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-3.2.0.tgz#6af1284670ea7c7d95e3f1253684cfbd7228ad6a" integrity sha512-oOIwPs0Dvq5220Z8lGL/6LHRTEr9TgLHmiI99Rj1PJ1p1czTys+olrgBqZk4E2qC0YTzeHprxSQmoHioVdJ7Lw== @@ -2274,6 +2396,29 @@ "@inquirer/core" "^9.1.0" "@inquirer/type" "^1.5.3" +"@inquirer/confirm@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-5.0.1.tgz#35e0aa0f9fdaadee3acb1c42024e707af308fced" + integrity sha512-6ycMm7k7NUApiMGfVc32yIPp28iPKxhGRMqoNDiUjq2RyTAkbs5Fx0TdzBqhabcKvniDdAAvHCmsRjnNfTsogw== + dependencies: + "@inquirer/core" "^10.0.1" + "@inquirer/type" "^3.0.0" + +"@inquirer/core@^10.0.1": + version "10.0.1" + resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-10.0.1.tgz#22068da87d8f6317452172dfd521e811ccbcb90e" + integrity sha512-KKTgjViBQUi3AAssqjUFMnMO3CM3qwCHvePV9EW+zTKGKafFGFF01sc1yOIYjLJ7QU52G/FbzKc+c01WLzXmVQ== + dependencies: + "@inquirer/figures" "^1.0.7" + "@inquirer/type" "^3.0.0" + ansi-escapes "^4.3.2" + cli-width "^4.1.0" + mute-stream "^2.0.0" + signal-exit "^4.1.0" + strip-ansi "^6.0.1" + wrap-ansi "^6.2.0" + yoctocolors-cjs "^2.1.2" + "@inquirer/core@^9.1.0": version "9.2.1" resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-9.2.1.tgz#677c49dee399c9063f31e0c93f0f37bddc67add1" @@ -2292,7 +2437,25 @@ wrap-ansi "^6.2.0" yoctocolors-cjs "^2.1.2" -"@inquirer/figures@^1.0.5", "@inquirer/figures@^1.0.6": +"@inquirer/editor@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-4.0.1.tgz#5db61ad3f1ce1b468b4b353d661787dcfa52a3a3" + integrity sha512-qAHHJ6hs343eNtCKgV2wV5CImFxYG8J1pl/YCeI5w9VoW7QpulRUU26+4NsMhjR6zDRjKBsH/rRjCIcaAOHsrg== + dependencies: + "@inquirer/core" "^10.0.1" + "@inquirer/type" "^3.0.0" + external-editor "^3.1.0" + +"@inquirer/expand@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-4.0.1.tgz#e699d53c62312f097333208bb6ad777036438536" + integrity sha512-9anjpdc802YInXekwePsa5LWySzVMHbhVS6v6n5IJxrl8w09mODOeP69wZ1d0WrOvot2buQSmYp4lW/pq8y+zQ== + dependencies: + "@inquirer/core" "^10.0.1" + "@inquirer/type" "^3.0.0" + yoctocolors-cjs "^2.1.2" + +"@inquirer/figures@^1.0.5", "@inquirer/figures@^1.0.6", "@inquirer/figures@^1.0.7": version "1.0.7" resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.7.tgz#d050ccc0eabfacc0248c4ff647a9dfba1b01594b" integrity sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw== @@ -2305,6 +2468,66 @@ "@inquirer/core" "^9.1.0" "@inquirer/type" "^1.5.3" +"@inquirer/input@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-4.0.1.tgz#7b676aad726e8a3baf3793cf1e9cec665a815a2b" + integrity sha512-m+SliZ2m43cDRIpAdQxfv5QOeAQCuhS8TGLvtzEP1An4IH1kBES4RLMRgE/fC+z29aN8qYG8Tq/eXQQKTYwqAg== + dependencies: + "@inquirer/core" "^10.0.1" + "@inquirer/type" "^3.0.0" + +"@inquirer/number@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-3.0.1.tgz#21666eff686c9f97396d23ae58f62d244d6338d6" + integrity sha512-gF3erqfm0snpwBjbyKXUUe17QJ7ebm49btXApajrM0rgCCoYX0o9W5NCuYNae87iPxaIJVjtuoQ42DX32IdbMA== + dependencies: + "@inquirer/core" "^10.0.1" + "@inquirer/type" "^3.0.0" + +"@inquirer/password@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-4.0.1.tgz#22f47e9a40255c2244eb57aeeeee76b6642759c5" + integrity sha512-D7zUuX4l4ZpL3D7/SWu9ibijP09jigwHi/gfUHLx5GMS5oXzuMfPV2xPMG1tskco4enTx70HA0VtMXecerpvbg== + dependencies: + "@inquirer/core" "^10.0.1" + "@inquirer/type" "^3.0.0" + ansi-escapes "^4.3.2" + +"@inquirer/prompts@^7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-7.0.1.tgz#089dbb83b34a6f68a515d77ad7f9f0a42b4ba758" + integrity sha512-cu2CpGC2hz7WTt2VBvdkzahDvYice6vYA/8Dm7Fy3tRNzKuQTF2EY3CV4H2GamveWE6tA2XzyXtbWX8+t4WMQg== + dependencies: + "@inquirer/checkbox" "^4.0.1" + "@inquirer/confirm" "^5.0.1" + "@inquirer/editor" "^4.0.1" + "@inquirer/expand" "^4.0.1" + "@inquirer/input" "^4.0.1" + "@inquirer/number" "^3.0.1" + "@inquirer/password" "^4.0.1" + "@inquirer/rawlist" "^4.0.1" + "@inquirer/search" "^3.0.1" + "@inquirer/select" "^4.0.1" + +"@inquirer/rawlist@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-4.0.1.tgz#3f3a46881c0b50dc8361ec9add14b38568bc34c8" + integrity sha512-0LuMOgaWs7W8JNcbiKkoFwyWFDEeCmLqDCygF0hidQUVa6J5grFVRZxrpompiWDFM49Km2rf7WoZwRo1uf1yWQ== + dependencies: + "@inquirer/core" "^10.0.1" + "@inquirer/type" "^3.0.0" + yoctocolors-cjs "^2.1.2" + +"@inquirer/search@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-3.0.1.tgz#68a4d23f6fca5a8eb99a61a72f74dc6b193be20a" + integrity sha512-ehMqjiO0pAf+KtdONKeCLVy4i3fy3feyRRhDrvzWhiwB8JccgKn7eHFr39l+Nx/FaZAhr0YxIJvkK5NuNvG+Ww== + dependencies: + "@inquirer/core" "^10.0.1" + "@inquirer/figures" "^1.0.7" + "@inquirer/type" "^3.0.0" + yoctocolors-cjs "^2.1.2" + "@inquirer/select@^2.5.0": version "2.5.0" resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-2.5.0.tgz#345c6908ecfaeef3d84ddd2f9feb2f487c558efb" @@ -2316,6 +2539,17 @@ ansi-escapes "^4.3.2" yoctocolors-cjs "^2.1.2" +"@inquirer/select@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-4.0.1.tgz#fb651f0e0fb7da1256cc75a399dc2ac72a7f7df4" + integrity sha512-tVRatFRGU49bxFCKi/3P+C0E13KZduNFbWuHWRx0L2+jbiyKRpXgHp9qiRHWRk/KarhYBXzH/di6w3VQ5aJd5w== + dependencies: + "@inquirer/core" "^10.0.1" + "@inquirer/figures" "^1.0.7" + "@inquirer/type" "^3.0.0" + ansi-escapes "^4.3.2" + yoctocolors-cjs "^2.1.2" + "@inquirer/type@^1.5.3": version "1.5.5" resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-1.5.5.tgz#303ea04ce7ad2e585b921b662b3be36ef7b4f09b" @@ -2330,6 +2564,11 @@ dependencies: mute-stream "^1.0.0" +"@inquirer/type@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-3.0.0.tgz#1762ebe667ec1d838012b20bf0cf90b841ba68bc" + integrity sha512-YYykfbw/lefC7yKj7nanzQXILM7r3suIvyFlCcMskc99axmsSewXWkAfXKwMbgxL76iAFVmRwmYdwNZNc8gjog== + "@isaacs/cliui@^8.0.2": version "8.0.2" resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" @@ -2633,15 +2872,15 @@ resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== -"@lerna/create@8.1.8": - version "8.1.8" - resolved "https://registry.yarnpkg.com/@lerna/create/-/create-8.1.8.tgz#be70d620f1d6b71e9d6b9d20049b784168b6ca19" - integrity sha512-wi72R01tgjBjzG2kjRyTHl4yCTKDfDMIXRyKz9E/FBa9SkFvUOAE4bdyY9MhEsRZmSWL7+CYE8Flv/HScRpBbA== +"@lerna/create@8.1.9": + version "8.1.9" + resolved "https://registry.yarnpkg.com/@lerna/create/-/create-8.1.9.tgz#6ab7b8514a9a200a4bacb7fa6cf6f01d82d3a154" + integrity sha512-DPnl5lPX4v49eVxEbJnAizrpMdMTBz1qykZrAbBul9rfgk531v8oAt+Pm6O/rpAleRombNM7FJb5rYGzBJatOQ== dependencies: "@npmcli/arborist" "7.5.4" "@npmcli/package-json" "5.2.0" "@npmcli/run-script" "8.1.0" - "@nx/devkit" ">=17.1.2 < 20" + "@nx/devkit" ">=17.1.2 < 21" "@octokit/plugin-enterprise-rest" "6.0.1" "@octokit/rest" "19.0.11" aproba "2.0.0" @@ -2654,7 +2893,7 @@ console-control-strings "^1.1.0" conventional-changelog-core "5.0.1" conventional-recommended-bump "7.0.1" - cosmiconfig "^8.2.0" + cosmiconfig "9.0.0" dedent "1.5.3" execa "5.0.0" fs-extra "^11.2.0" @@ -2680,7 +2919,7 @@ npm-package-arg "11.0.2" npm-packlist "8.0.2" npm-registry-fetch "^17.1.0" - nx ">=17.1.2 < 20" + nx ">=17.1.2 < 21" p-map "4.0.0" p-map-series "2.1.0" p-queue "6.6.2" @@ -2764,28 +3003,28 @@ resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.15.0.tgz#f29a55df17cb6e87cfbabce33ff6a14a9f85076d" integrity sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA== -"@mui/core-downloads-tracker@^6.1.5": - version "6.1.5" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-6.1.5.tgz#96fe5068d55fba27d90421b8265b965c203d09e2" - integrity sha512-3J96098GrC95XsLw/TpGNMxhUOnoG9NZ/17Pfk1CrJj+4rcuolsF2RdF3XAFTu/3a/A+5ouxlSIykzYz6Ee87g== +"@mui/core-downloads-tracker@^6.1.6": + version "6.1.6" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-6.1.6.tgz#73d96e75689b2af922a989123149a3497c8a96fa" + integrity sha512-nz1SlR9TdBYYPz4qKoNasMPRiGb4PaIHFkzLzhju0YVYS5QSuFF2+n7CsiHMIDcHv3piPu/xDWI53ruhOqvZwQ== "@mui/icons-material@^6.0.0": - version "6.1.5" - resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-6.1.5.tgz#5b5a4237796956e208d480ebd68350a78d81d202" - integrity sha512-SbxFtO5I4cXfvhjAMgGib/t2lQUzcEzcDFYiRHRufZUeMMeXuoKaGsptfwAHTepYkv0VqcCwvxtvtWbpZLAbjQ== + version "6.1.6" + resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-6.1.6.tgz#bfaf32874a9f9ec88c07d1ca132d1a0671e9ed7c" + integrity sha512-5r9urIL2lxXb/sPN3LFfFYEibsXJUb986HhhIeu1gOcte460pwdSiEhBSxkAuyT8Dj7jvu9MjqSBmSumQELo8A== dependencies: - "@babel/runtime" "^7.25.7" + "@babel/runtime" "^7.26.0" "@mui/material@^6.0.0": - version "6.1.5" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-6.1.5.tgz#1ba8deda18564b277f37d957d523a9d2624b4b9a" - integrity sha512-rhaxC7LnlOG8zIVYv7BycNbWkC5dlm9A/tcDUp0CuwA7Zf9B9JP6M3rr50cNKxI7Z0GIUesAT86ceVm44quwnQ== - dependencies: - "@babel/runtime" "^7.25.7" - "@mui/core-downloads-tracker" "^6.1.5" - "@mui/system" "^6.1.5" - "@mui/types" "^7.2.18" - "@mui/utils" "^6.1.5" + version "6.1.6" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-6.1.6.tgz#505d7300401f6af38426006d7fb3b8707dc10fbc" + integrity sha512-1yvejiQ/601l5AK3uIdUlAVElyCxoqKnl7QA+2oFB/2qYPWfRwDgavW/MoywS5Y2gZEslcJKhe0s2F3IthgFgw== + dependencies: + "@babel/runtime" "^7.26.0" + "@mui/core-downloads-tracker" "^6.1.6" + "@mui/system" "^6.1.6" + "@mui/types" "^7.2.19" + "@mui/utils" "^6.1.6" "@popperjs/core" "^2.11.8" "@types/react-transition-group" "^4.4.11" clsx "^2.1.1" @@ -2794,53 +3033,53 @@ react-is "^18.3.1" react-transition-group "^4.4.5" -"@mui/private-theming@^6.1.5": - version "6.1.5" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-6.1.5.tgz#634166d5793f6635ee2f815fb30f03342ff4df41" - integrity sha512-FJqweqEXk0KdtTho9C2h6JEKXsOT7MAVH2Uj3N5oIqs6YKxnwBn2/zL2QuYYEtj5OJ87rEUnCfFic6ldClvzJw== +"@mui/private-theming@^6.1.6": + version "6.1.6" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-6.1.6.tgz#9966bf2eca3d626cddd6e173752f46d344c7d7d1" + integrity sha512-ioAiFckaD/fJSnTrUMWgjl9HYBWt7ixCh7zZw7gDZ+Tae7NuprNV6QJK95EidDT7K0GetR2rU3kAeIR61Myttw== dependencies: - "@babel/runtime" "^7.25.7" - "@mui/utils" "^6.1.5" + "@babel/runtime" "^7.26.0" + "@mui/utils" "^6.1.6" prop-types "^15.8.1" -"@mui/styled-engine@^6.1.5": - version "6.1.5" - resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-6.1.5.tgz#a21a75799f84446e3553ab191a891ca2192933cc" - integrity sha512-tiyWzMkHeWlOoE6AqomWvYvdml8Nv5k5T+LDwOiwHEawx8P9Lyja6ZwWPU6xljwPXYYPT2KBp1XvMly7dsK46A== +"@mui/styled-engine@^6.1.6": + version "6.1.6" + resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-6.1.6.tgz#61996621a0297aac16061e1739a738a899613fd6" + integrity sha512-I+yS1cSuSvHnZDBO7e7VHxTWpj+R7XlSZvTC4lS/OIbUNJOMMSd3UDP6V2sfwzAdmdDNBi7NGCRv2SZ6O9hGDA== dependencies: - "@babel/runtime" "^7.25.7" + "@babel/runtime" "^7.26.0" "@emotion/cache" "^11.13.1" "@emotion/serialize" "^1.3.2" "@emotion/sheet" "^1.4.0" csstype "^3.1.3" prop-types "^15.8.1" -"@mui/system@^6.0.0", "@mui/system@^6.1.5": - version "6.1.5" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-6.1.5.tgz#2124f43be98a7393e08edf89ae0fbc8678607e11" - integrity sha512-vPM9ocQ8qquRDByTG3XF/wfYTL7IWL/20EiiKqByLDps8wOmbrDG9rVznSE3ZbcjFCFfMRMhtxvN92bwe/63SA== +"@mui/system@^6.0.0", "@mui/system@^6.1.6": + version "6.1.6" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-6.1.6.tgz#d335d6952092f3c758c8b78c2d993aa13ef58175" + integrity sha512-qOf1VUE9wK8syiB0BBCp82oNBAVPYdj4Trh+G1s+L+ImYiKlubWhhqlnvWt3xqMevR+D2h1CXzA1vhX2FvA+VQ== dependencies: - "@babel/runtime" "^7.25.7" - "@mui/private-theming" "^6.1.5" - "@mui/styled-engine" "^6.1.5" - "@mui/types" "^7.2.18" - "@mui/utils" "^6.1.5" + "@babel/runtime" "^7.26.0" + "@mui/private-theming" "^6.1.6" + "@mui/styled-engine" "^6.1.6" + "@mui/types" "^7.2.19" + "@mui/utils" "^6.1.6" clsx "^2.1.1" csstype "^3.1.3" prop-types "^15.8.1" -"@mui/types@^7.2.18": - version "7.2.18" - resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.18.tgz#4b6385ed2f7828ef344113cdc339d6fdf8e4bc23" - integrity sha512-uvK9dWeyCJl/3ocVnTOS6nlji/Knj8/tVqVX03UVTpdmTJYu/s4jtDd9Kvv0nRGE0CUSNW1UYAci7PYypjealg== +"@mui/types@^7.2.19": + version "7.2.19" + resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.19.tgz#c941954dd24393fdce5f07830d44440cf4ab6c80" + integrity sha512-6XpZEM/Q3epK9RN8ENoXuygnqUQxE+siN/6rGRi2iwJPgBUR25mphYQ9ZI87plGh58YoZ5pp40bFvKYOCDJ3tA== -"@mui/utils@^5.16.6 || ^6.0.0", "@mui/utils@^6.1.5": - version "6.1.5" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-6.1.5.tgz#a5c75ac48f9913340670ebeba2907568a6ee8c49" - integrity sha512-vp2WfNDY+IbKUIGg+eqX1Ry4t/BilMjzp6p9xO1rfqpYjH1mj8coQxxDfKxcQLzBQkmBJjymjoGOak5VUYwXug== +"@mui/utils@^5.16.6 || ^6.0.0", "@mui/utils@^6.1.6": + version "6.1.6" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-6.1.6.tgz#4b9fd34da3a1dd4700fe506a20ca7da3933ba48e" + integrity sha512-sBS6D9mJECtELASLM+18WUcXF6RH3zNxBRFeyCRg8wad6NbyNrdxLuwK+Ikvc38sTZwBzAz691HmSofLqHd9sQ== dependencies: - "@babel/runtime" "^7.25.7" - "@mui/types" "^7.2.18" + "@babel/runtime" "^7.26.0" + "@mui/types" "^7.2.19" "@types/prop-types" "^15.7.13" clsx "^2.1.1" prop-types "^15.8.1" @@ -2868,9 +3107,9 @@ robust-predicates "^3.0.2" "@mui/x-data-grid@^7.0.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-7.21.0.tgz#e1b7308e66a04ccf0d3a5a3a729c52b549b0eecd" - integrity sha512-0JAiwb2yRuVAd4idzfA64Bs1yn6KfC8VPBH7Njba0ySQB0+Ix+hvkzWQySD96hl7tK5heXbvbJ48pYLvhqS4Vw== + version "7.22.1" + resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-7.22.1.tgz#de1b711cf314fedadacfeb30ce5ec049c12355f4" + integrity sha512-YHF96MEv7ACG/VuiycZjEAPH7cZLNuV2+bi/MyR1t/e6E6LTolYFykvjSFq+Imz1mYbW4+9mEvrHZsIKL5KKIQ== dependencies: "@babel/runtime" "^7.25.7" "@mui/utils" "^5.16.6 || ^6.0.0" @@ -3140,27 +3379,11 @@ proc-log "^4.0.0" which "^4.0.0" -"@nrwl/devkit@19.8.6": - version "19.8.6" - resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-19.8.6.tgz#1910190afd7d0e4464161813b27960e4349d7d8f" - integrity sha512-F6+4Lv2hSS+02H7aqa+jYIHzbmip7082DF9/NkNtUAEqLUi8STsbung0nchaR1Tjg20E+BZujEsZgTC3GJegLQ== +"@nx/devkit@>=17.1.2 < 21": + version "20.0.7" + resolved "https://registry.yarnpkg.com/@nx/devkit/-/devkit-20.0.7.tgz#c610eb5171bc8cc7681d45eda22ad21cb5409f1a" + integrity sha512-h+B5S+tkHObtKj2pQYUkbiaiYdcim95iS27CaZgasq7FiIXQOoupQ6jrIKduQJKx+GfYbuCCd60zrAYbkyvxiA== dependencies: - "@nx/devkit" "19.8.6" - -"@nrwl/tao@19.8.6": - version "19.8.6" - resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-19.8.6.tgz#b3e606d5eca7ea76c6333543ea02456c1e54781f" - integrity sha512-ibxGL7aDpNARgPegXQ8HAocemZ1WvZE5+NHkXDs7jSmnSt9qaXIKE1dXotDTqp3TqCirlje1/RMMTqzCl2oExQ== - dependencies: - nx "19.8.6" - tslib "^2.3.0" - -"@nx/devkit@19.8.6", "@nx/devkit@>=17.1.2 < 20": - version "19.8.6" - resolved "https://registry.yarnpkg.com/@nx/devkit/-/devkit-19.8.6.tgz#c426e0134a5ec796eb363dc277ec77b86a8d3c96" - integrity sha512-8NAdnqwzki3srj2sAImWQ9cQiq79NqwqVqx/XOdg0XHR6siugn+sAAXWpM3xJVdv4uRbcyz7BO1GWYxMW0AOYA== - dependencies: - "@nrwl/devkit" "19.8.6" ejs "^3.1.7" enquirer "~2.3.6" ignore "^5.0.4" @@ -3170,55 +3393,55 @@ tslib "^2.3.0" yargs-parser "21.1.1" -"@nx/nx-darwin-arm64@19.8.6": - version "19.8.6" - resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.8.6.tgz#e1e5611e6ede8bcdcbaa8847599c25f0cf402fb1" - integrity sha512-lzFV07gUgvy07lPtRFJFhlQdcR0qNTPPq7/ZB+3alwUIDdAn706ZVzf6apCJWOBIgNFKbAQiy/du0zmuKPSzXA== - -"@nx/nx-darwin-x64@19.8.6": - version "19.8.6" - resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-19.8.6.tgz#b16e26fc9c1637d09d6a100d27c60c74d312fc17" - integrity sha512-1ZmOXwJva14jCcTHM8jmsEBp33CCLng/tXK8/554ACwL3Kk4kbtdLfUjM/VEMZ3v3c1D7cJWxyYfTav5meumxg== - -"@nx/nx-freebsd-x64@19.8.6": - version "19.8.6" - resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.8.6.tgz#7ab548a6a82bd7a169cdd0d5ae9d2f108ebdeec6" - integrity sha512-1a681ZqSS05H1pC6JG3ae0BLhnxGtISkCigl9R6W5NeyFLBgP+Y4BLh+H9cCAlKzzLwiKWWRmhbxvjpnlhzB+w== - -"@nx/nx-linux-arm-gnueabihf@19.8.6": - version "19.8.6" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.8.6.tgz#55de11d6eb19769a9989bc2b37e1bd871a28a3fe" - integrity sha512-qGztEgbEjMsFr9IjedQXJNmXLHCpSldW/sEtXoVZ8tXIzGr86GXbv+mLdZSZHrlJaNOq0y2K6XpVd2UH4ndwnQ== - -"@nx/nx-linux-arm64-gnu@19.8.6": - version "19.8.6" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.8.6.tgz#10237b5a0ee722c49b45f01bb99e58bca7ea591f" - integrity sha512-rSwsEISx5odXkg1kjXBZ6kjXCnM3fnAA+8YU1muRr7PmhUfM/zuCnNYcwmjtCRc7rRYBKzxmyE3T95fGK/NOIg== - -"@nx/nx-linux-arm64-musl@19.8.6": - version "19.8.6" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.8.6.tgz#f5182bed44717ca0420ab5046882f5fbb0148efc" - integrity sha512-7rW21+uFj5KJx3z/HXhl6PUcp8+mQ8r/nUGbS59HjmMdVMZDd7PZKUVJF9Tu1ESproOCYSeJbOVk4WGiHtbF9Q== - -"@nx/nx-linux-x64-gnu@19.8.6": - version "19.8.6" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.8.6.tgz#8aafaab742b8c2c923aef62ddb6a2df35656a670" - integrity sha512-2/5WDr2wwWyvbqlB//ICWS5q3rRF4GyNX2NOp/tVkmh1RfDhH0ZAVZ/oJ7QvE1mKLQh0AM7bQBHsF5ikmMhUXw== - -"@nx/nx-linux-x64-musl@19.8.6": - version "19.8.6" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.8.6.tgz#e222bd6372032da1f77d3545fc3bf43cd1897426" - integrity sha512-G3UIMk+C090WR/btOaJCrBgRa7gjTj6ZBHinFceO7rii8r3D1SiN5cW1Njd1pV2K7IjJaSTuRtd9c1eLcIj9rQ== - -"@nx/nx-win32-arm64-msvc@19.8.6": - version "19.8.6" - resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.8.6.tgz#9119d82337b07bb1b4b2522817028b623ce9b414" - integrity sha512-8dfUstJkN2ChbIcj3TfcHgWyJy0b9za+3gU9IvZm82P9EeDCjEGoE/ld9VALGa+2UnX2Ve5BqlWGTD8BqYTeCA== - -"@nx/nx-win32-x64-msvc@19.8.6": - version "19.8.6" - resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.8.6.tgz#10faa8b170f7acdd5d93d2d881e9c1df8e88a618" - integrity sha512-kbWDZGD9kwP60UykTnfMR1hOUMDK0evXb5EnF4MAf4o18+b5KSzHyaL2TyNl+3s6lYdtZ2kYC679R+eJErKG8w== +"@nx/nx-darwin-arm64@20.0.7": + version "20.0.7" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-20.0.7.tgz#535f3539a59daf52b1e7415b5d54f8ed732a4e6f" + integrity sha512-QLD0DlyT343okCMHNg4EyM1s9HWU55RGiD36OxopaAmDcJ45j4p7IgmYlwbWCC5TyjIXSnLnZyIAs5DrqaKwrg== + +"@nx/nx-darwin-x64@20.0.7": + version "20.0.7" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-20.0.7.tgz#a6f552aadd5d2abd2d775e39558a4f4ea5f4a20e" + integrity sha512-Sc2h+eAunGKiqpumvjVrrt0LRtk/l6Fev/633WP55svSNuY9muB/MPcP9v/oLyAD1flDnzvIWeUT6eEw6oqvZw== + +"@nx/nx-freebsd-x64@20.0.7": + version "20.0.7" + resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-20.0.7.tgz#9f04c8c420bbfc1e14be2844668969a11c89b23f" + integrity sha512-Sp0pMVGj4LuPaO6oL9R5gsIPjIm8Xt3IyP9f+5uwtqjipiPriw0IdD2uV9bDjPPs0QQc15ncz+eSk30p836qpA== + +"@nx/nx-linux-arm-gnueabihf@20.0.7": + version "20.0.7" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-20.0.7.tgz#69cabaaf655dc228859537dcfed4cb7492feb64b" + integrity sha512-hs15RudLvFkfBtUL20M9Hr0wn8FLije3EGn1j9iPmo8EiZBZn4mDAywwPZXmDiAuxKTU8LKBLT/xJczNe8gzbQ== + +"@nx/nx-linux-arm64-gnu@20.0.7": + version "20.0.7" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-20.0.7.tgz#e1fb2fb67b4feffd4b6725c1258ff59914e8dd9c" + integrity sha512-t1NSxBvWpyjb9VnbxAN2Oka3JXEKtbQv//aLOer8++8Y+e6INDOHmRADyyp5BcLwBpsaP/lWLKcDa6vlsMzXTg== + +"@nx/nx-linux-arm64-musl@20.0.7": + version "20.0.7" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-20.0.7.tgz#296758182aa55ecea75b8cc065b78b0f67ffe419" + integrity sha512-lLAzyxQeeALMKM2uBA9728gZ0bihy6rfhMe+fracV1xjGLfcHEa/hNmhXNMp9Vf80sZJ50EUeW6mUPluLROBNQ== + +"@nx/nx-linux-x64-gnu@20.0.7": + version "20.0.7" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-20.0.7.tgz#34b00d193aa71da6bf8800bb2813d65c8dd74602" + integrity sha512-H9LfEoHEa0ZHnfifseY24RPErtGaXSoWTuW9JAPylUXeYOy66i/FwxwbjsG5BMFJCnL1LGXPN9Oirh442lcsbQ== + +"@nx/nx-linux-x64-musl@20.0.7": + version "20.0.7" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-20.0.7.tgz#25eab105c05b3bdb31917cca18658994aa9a671d" + integrity sha512-2VsTSLZZVGHmN2BkSaLoOp/Byj9j20so/Ne/TZg4Lo/HBp0iDSOmUtbPAnkJOS6UiAPvQtb9zqzRKPphhDhnzg== + +"@nx/nx-win32-arm64-msvc@20.0.7": + version "20.0.7" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-20.0.7.tgz#d0e92f2003c8fb9f065a25a10c115a561cf6077a" + integrity sha512-lmH7xTPHJe2q/P2tnHEjOTdwzNxnFV08Kp2z6sUU0lAfJ79mye2nydGBDtFq9CeFF1Q6vfCSDTRu5fbxAZ9/Xg== + +"@nx/nx-win32-x64-msvc@20.0.7": + version "20.0.7" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-20.0.7.tgz#45e4ba4304e3118cb111ad36a1dc87b0efe28051" + integrity sha512-U8LY1O3XA1yD8FoCM0ozT0DpFJdei2NNSrp/5lBXn5KHb2nkZ8DQ1zh7RKvMhEMwDNfNGbM7JsaBTr+fP6eYJg== "@oclif/core@4.0.19": version "4.0.19" @@ -3243,10 +3466,10 @@ wordwrap "^1.0.0" wrap-ansi "^7.0.0" -"@oclif/core@^4", "@oclif/core@^4.0.29": - version "4.0.30" - resolved "https://registry.yarnpkg.com/@oclif/core/-/core-4.0.30.tgz#65672282756bf19fde3830cab6d8031bf6236064" - integrity sha512-Ak3OUdOcoovIRWZOT6oC5JhZgyJD90uWX/7HjSofn+C4LEmHxxfiyu04a73dwnezfzqDu9jEXfd2mQOOC54KZw== +"@oclif/core@^4", "@oclif/core@^4.0.31": + version "4.0.31" + resolved "https://registry.yarnpkg.com/@oclif/core/-/core-4.0.31.tgz#3f7ac806f27de6a87a7ee7caab8826687ce50412" + integrity sha512-7oyIZv/C1TP+fPc2tSzVPYqG1zU+nel1QvJxjAWyVhud0J8B5SpKZnryedxs3nlSVPJ6K1MT31C9esupCBYgZw== dependencies: ansi-escapes "^4.3.2" ansis "^3.3.2" @@ -3257,7 +3480,7 @@ get-package-type "^0.1.0" globby "^11.1.0" indent-string "^4.0.0" - is-wsl "^3" + is-wsl "^2.2.0" lilconfig "^3.1.2" minimatch "^9.0.5" semver "^7.6.3" @@ -3267,27 +3490,27 @@ wordwrap "^1.0.0" wrap-ansi "^7.0.0" -"@oclif/plugin-help@^6.0.15", "@oclif/plugin-help@^6.2.14": +"@oclif/plugin-help@^6.0.15", "@oclif/plugin-help@^6.2.16": version "6.2.16" resolved "https://registry.yarnpkg.com/@oclif/plugin-help/-/plugin-help-6.2.16.tgz#3cb6c068739bc934159dc430d4f8ca7f9effa22a" integrity sha512-1x/Bm0LebDouDOfsjkOz+6AXqY6gIZ6JmmU/KuF/GnUmowDvj5i3MFlP9uBTiN8UsOUeT9cdLwnc1kmitHWFTg== dependencies: "@oclif/core" "^4" -"@oclif/plugin-not-found@^3.2.21": - version "3.2.22" - resolved "https://registry.yarnpkg.com/@oclif/plugin-not-found/-/plugin-not-found-3.2.22.tgz#f217622cfc61ae047c53059fa7990d982d1e6aff" - integrity sha512-snd/gmYjTYIa8vr5rPLNus0ymKhhITRTFWLlYCJvAZTs2kX+vUMMdpKId9pEPSzoVGmyddNVshWSCJ2FSgR0mg== +"@oclif/plugin-not-found@^3.2.24": + version "3.2.25" + resolved "https://registry.yarnpkg.com/@oclif/plugin-not-found/-/plugin-not-found-3.2.25.tgz#70e9200e08c5999f69769dc65efa9711d5ddccf1" + integrity sha512-Hm07ouLZq8I9/V46F2BqWEzFexdjaxGHFbwckxXu3YlVq4/xp6lOJXlF5olu4dbTUaJs532Hth4Uh0OIsp9CSw== dependencies: - "@inquirer/confirm" "^3.2.0" + "@inquirer/prompts" "^7.0.1" "@oclif/core" "^4" ansis "^3.3.1" fast-levenshtein "^3.0.0" -"@oclif/plugin-warn-if-update-available@^3.1.11": - version "3.1.20" - resolved "https://registry.yarnpkg.com/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-3.1.20.tgz#2ac90286a0b59860c66956c37a74b27f2a4e78d0" - integrity sha512-gvovUQXwWkQZzHG7WknLq+yoSe61Cbv45rEUooKbzo7tfRDChFnCyLQ+OCCldQOsSYvS/KTsiawyyCetSaCR1g== +"@oclif/plugin-warn-if-update-available@^3.1.20": + version "3.1.21" + resolved "https://registry.yarnpkg.com/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-3.1.21.tgz#2c86e4cdeb7dac3293e6c67094c4e6f9a3d3e62b" + integrity sha512-yG03rR6Z795lSlkuS+6A9JBSq/VQZ40XspTsKdXa/PUJl52RTeZeOHlaecuv4TddAE6T8VsPdWvry68q5TPE4w== dependencies: "@oclif/core" "^4" ansis "^3.3.1" @@ -4052,10 +4275,10 @@ "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@storybook/addon-actions@8.3.6": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-8.3.6.tgz#80c5dbfc2278d72dc461a954bb729165ee1dfecb" - integrity sha512-nOqgl0WoZK2KwjaABaXMoIgrIHOQl9inOzJvqQau0HOtsvnXGXYfJXYnpjZenoZDoZXKbUDl0U2haDFx2a2fJw== +"@storybook/addon-actions@8.4.1": + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-8.4.1.tgz#1e0470c5c8fd53aacc7f976bbecfb2f610d9a195" + integrity sha512-D6KohTIA4JCHNol1X7Whp4LpOVU4cS5FfyOorwYo/WIzpHrUYc4Pw/+ex6DOmU/kgrk14mr8d9obVehKW7iNtA== dependencies: "@storybook/global" "^5.0.0" "@types/uuid" "^9.0.1" @@ -4063,120 +4286,103 @@ polished "^4.2.2" uuid "^9.0.0" -"@storybook/addon-backgrounds@8.3.6": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-8.3.6.tgz#81a92ca45e05858f3cee54ce33766de397abb324" - integrity sha512-yBn+a8i5OJzJaX6Bx5MAkfei7c2nvq+RRmvuyvxw11rtDGR6Nz4OBBe56reWxo868wVUggpRTPJCMVe5tDYgVg== +"@storybook/addon-backgrounds@8.4.1": + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-8.4.1.tgz#daf01a4e59097ad53355e72b61075aa7d5a2cc0e" + integrity sha512-DIT1E9R9Sds8KTC+0m2X5cVa8hTNcKY1XKYTI9QdzQvdZzOt+K93AJqq2x8k5glingqUVpB6v2fSDmCUXp4+4g== dependencies: "@storybook/global" "^5.0.0" memoizerific "^1.11.3" ts-dedent "^2.0.0" -"@storybook/addon-controls@8.3.6": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-8.3.6.tgz#a61449e50077e9f90d2e15d2594b2bcffb4c03b3" - integrity sha512-9IMLHgtWPuFoRCt3hDsIk1FbkK5SlCMDW1DDwtTBIeWYYZLvptS42+vGVTeQ8v5SejmVzZkzuUdzu3p4sb3IcA== +"@storybook/addon-controls@8.4.1": + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-8.4.1.tgz#1c051b0b3c20273717f9f581725fd98ca81660aa" + integrity sha512-3ahbYdDx7iFUd4X1KelMSuPqVnladc0bH4m6DQZyN+wkRxdRlOD6iOGuOe2qi1Gv0b2VuVAt253i75tK/TPNLw== dependencies: "@storybook/global" "^5.0.0" dequal "^2.0.2" - lodash "^4.17.21" ts-dedent "^2.0.0" -"@storybook/addon-docs@8.3.6": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-8.3.6.tgz#b03ad160475b7920ef03833bd2674ea62f872d23" - integrity sha512-31Rk1TOhDIzGM2wNCUIB1xKuWtArW0D2Puua9warEXlQ3FtvwmxnPrwbIzw6ufYZDWPwl9phDYTcRh8WqZIoGg== +"@storybook/addon-docs@8.4.1": + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-8.4.1.tgz#a53b32dd6482a8196038330ff06d0b9bcdef0019" + integrity sha512-yPD/NssJf7pMJzaKvma02C6yX8ykPVnEjhRbNYcBNM8s8g/cT5JkROvIB+FOb4T81yhdfbGg9bGkpAXGX270IQ== dependencies: "@mdx-js/react" "^3.0.0" - "@storybook/blocks" "8.3.6" - "@storybook/csf-plugin" "8.3.6" - "@storybook/global" "^5.0.0" - "@storybook/react-dom-shim" "8.3.6" - "@types/react" "^16.8.0 || ^17.0.0 || ^18.0.0" - fs-extra "^11.1.0" + "@storybook/blocks" "8.4.1" + "@storybook/csf-plugin" "8.4.1" + "@storybook/react-dom-shim" "8.4.1" react "^16.8.0 || ^17.0.0 || ^18.0.0" react-dom "^16.8.0 || ^17.0.0 || ^18.0.0" - rehype-external-links "^3.0.0" - rehype-slug "^6.0.0" ts-dedent "^2.0.0" "@storybook/addon-essentials@^8.0.0": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-8.3.6.tgz#b8a0bbcad10ecd26cddddb517b4a864e4b65de37" - integrity sha512-MQPFvThlGU7wlda1xhBPQCmDh90cSSZ31OsVs1uC5kJh0aLbY2gYXPurq1G54kzrYo8SMfBxsXrCplz8Ir6UTg== - dependencies: - "@storybook/addon-actions" "8.3.6" - "@storybook/addon-backgrounds" "8.3.6" - "@storybook/addon-controls" "8.3.6" - "@storybook/addon-docs" "8.3.6" - "@storybook/addon-highlight" "8.3.6" - "@storybook/addon-measure" "8.3.6" - "@storybook/addon-outline" "8.3.6" - "@storybook/addon-toolbars" "8.3.6" - "@storybook/addon-viewport" "8.3.6" + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-8.4.1.tgz#98329606098c4b7fcb22a3968acba5fc539c821a" + integrity sha512-Hmb5fpVzQgyCacDtHeE7HJqIfolzeOnedsLyJVYVpKns/uOWXqpDuU8Fc0s3yTjr1QPIRKtbqV1STxoyXj2how== + dependencies: + "@storybook/addon-actions" "8.4.1" + "@storybook/addon-backgrounds" "8.4.1" + "@storybook/addon-controls" "8.4.1" + "@storybook/addon-docs" "8.4.1" + "@storybook/addon-highlight" "8.4.1" + "@storybook/addon-measure" "8.4.1" + "@storybook/addon-outline" "8.4.1" + "@storybook/addon-toolbars" "8.4.1" + "@storybook/addon-viewport" "8.4.1" ts-dedent "^2.0.0" -"@storybook/addon-highlight@8.3.6": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/addon-highlight/-/addon-highlight-8.3.6.tgz#34c28e8ee0f71b2dad579ab11bf66962d5393bf9" - integrity sha512-A7uU+1OPVXGpkklEUJjSl2VEEDLCSNvmffUJlvW1GjajsNFIHOW2CSD+KnfFlQyPxyVbnWAYLqUP4XJxoqrvDw== +"@storybook/addon-highlight@8.4.1": + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/addon-highlight/-/addon-highlight-8.4.1.tgz#89aa1b2dba43a351355f98930274f8828f6d6a75" + integrity sha512-BBkUd6+i7lUEWZwoJDlUIwrs7EXkk+EoREUi27iiA1Lilw+NNhoC3kcBmj3+MccjRyeMeIWAgYyXF5qeB2s/JQ== dependencies: "@storybook/global" "^5.0.0" -"@storybook/addon-measure@8.3.6": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/addon-measure/-/addon-measure-8.3.6.tgz#874939b2b6aafb29aed23cd74ee7db3c7f338f33" - integrity sha512-VHWeGgYjhzhwb2WAqYW/qyEPqg5pwKR/XqFfd+3tEirUs/64olL1l3lzLwZ8Cm07cJ81T8Z4myywb9kObZfQlw== +"@storybook/addon-measure@8.4.1": + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/addon-measure/-/addon-measure-8.4.1.tgz#18a8f1286bb1c2f50eed64790d6ee09ef0a15f9d" + integrity sha512-Pg1ROj29hKt7grL/HmbIJ10WrkZf1Unx35SsP373bkPQ1ggYi9oxGqtfNchTF2zCb1xUpIikLYSJgkwdjqWxhA== dependencies: "@storybook/global" "^5.0.0" tiny-invariant "^1.3.1" -"@storybook/addon-outline@8.3.6": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/addon-outline/-/addon-outline-8.3.6.tgz#0c68a26b54a9294ecf6369473c70132c8d1c23a4" - integrity sha512-+VXpM8SIHX2cn30qLlMvER9/6iioFRSn2sAfLniqy4RrcQmcMP+qgE7ZzbzExt7cneJh3VFsYqBS/HElu14Vgg== +"@storybook/addon-outline@8.4.1": + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/addon-outline/-/addon-outline-8.4.1.tgz#fecde4f8a03bf70f416d7e8caa01d3fb4ca26023" + integrity sha512-LPZ0gGHfbru66Lkw1whnc3F/r1hfnoORBoF98Hp+cjH34gR4t8te6xq5qSiupRUULGdSLdBRs/4EGRBeELfVjQ== dependencies: "@storybook/global" "^5.0.0" ts-dedent "^2.0.0" -"@storybook/addon-toolbars@8.3.6": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-8.3.6.tgz#d06068c96f5a80da2040f15f521c0927e8b0c2d4" - integrity sha512-FJH+lRoZXENfpMR/G09ZqB0TmL/k6bv07GN1ysoVs420tKRgjfz6uXaZz5COrhcdISr5mTNmG+mw9x7xXTfX3Q== +"@storybook/addon-toolbars@8.4.1": + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-8.4.1.tgz#a8dd4e57e071916984c6fb19cd37be47cddffd7c" + integrity sha512-yrzX6BFeJM5KFY0+ZAYfRax2QgWi2e5vF6yPz+MGIPr4nhHay0wTkOHhkBhIPBjQO9x0vqc7MS2EBDydCBWqlg== -"@storybook/addon-viewport@8.3.6": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-8.3.6.tgz#3b95fc33335f75010f0ba6fd552ada388ab64add" - integrity sha512-bL51v837W1cng/+0pypkoLsWKWmvux96zLOzqLCpcWAQ4OSMhW3foIWpCiFwMG/KY+GanoOocTx6i7j5hLtuTA== +"@storybook/addon-viewport@8.4.1": + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-8.4.1.tgz#f46e52d92a10ca880ff751401b1c0c5f8830a378" + integrity sha512-O6DcuUfXQTytjl7mj4ld4ZX9x2pUUWKUx1TxiuMuH0EKb612RyYcdpXpDQQwsIzLV/f2BOetk9jmO2/MymfbWQ== dependencies: memoizerific "^1.11.3" -"@storybook/blocks@8.3.6": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/blocks/-/blocks-8.3.6.tgz#ac2e4f07a4df23004b3361c592c2cffe6b95464a" - integrity sha512-Oc5jU6EzfsENjrd91KcKyEKBh60RT+8uyLi1RIrymC2C/mzZMTEoNIrbnQt0eIqbjlHxn6y9JMJxHu4NJ4EmZg== +"@storybook/blocks@8.4.1": + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/blocks/-/blocks-8.4.1.tgz#6683ec554f92be5cc2990c0cff870c60d888c515" + integrity sha512-C4w5T5fhg0iONXozHQ1bh9im2Lr1BiY7Bj/9XoFjkc5YeCzxlMpujFA6Nmo4ToUFW90QbvKN7/QVhbrtY9O1Jg== dependencies: "@storybook/csf" "^0.1.11" - "@storybook/global" "^5.0.0" - "@storybook/icons" "^1.2.10" - "@types/lodash" "^4.14.167" - color-convert "^2.0.1" - dequal "^2.0.2" - lodash "^4.17.21" - markdown-to-jsx "^7.4.5" - memoizerific "^1.11.3" - polished "^4.2.2" - react-colorful "^5.1.2" - telejson "^7.2.0" + "@storybook/icons" "^1.2.12" ts-dedent "^2.0.0" - util-deprecate "^1.0.2" -"@storybook/builder-webpack5@8.3.6": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-8.3.6.tgz#dbe5ddd9db2f760d60036ea4fb8a674658ca5006" - integrity sha512-Eqn2k8aA9f0o6IMQNAxGAMfSDeTP3YYCQAtOL5Gt5lgrqLV5JMTbZOfmaRBZ82ej/BBSAopnQKIJjQBBFx6kAQ== +"@storybook/builder-webpack5@8.4.1": + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-8.4.1.tgz#5406600591b4838cacc046fbbdc33b46f2d92be0" + integrity sha512-rqSJcxcYiQyceNFSrT9qnI6hrW4/petb1n+oN8nG5HrRsl0zxOVzamMVyNzZxrAMKvq+VMJtLe1rQi8FnJNunw== dependencies: - "@storybook/core-webpack" "8.3.6" + "@storybook/core-webpack" "8.4.1" "@types/node" "^22.0.0" "@types/semver" "^7.3.4" browser-assert "^1.2.1" @@ -4185,9 +4391,7 @@ constants-browserify "^1.0.0" css-loader "^6.7.1" es-module-lexer "^1.5.0" - express "^4.19.2" fork-ts-checker-webpack-plugin "^8.0.0" - fs-extra "^11.1.0" html-webpack-plugin "^5.5.0" magic-string "^0.30.5" path-browserify "^1.0.1" @@ -4204,31 +4408,29 @@ webpack-hot-middleware "^2.25.1" webpack-virtual-modules "^0.6.0" -"@storybook/components@^8.3.6": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-8.3.6.tgz#2f5e9a755a964c94f0bab3cd400cc7a71d0489d2" - integrity sha512-TXuoGZY7X3iixF45lXkYOFk8k2q9OHcqHyHyem1gATLLQXgyOvDgzm+VB7uKBNzssRQPEE+La70nfG8bq/viRw== +"@storybook/components@8.4.1": + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-8.4.1.tgz#90b92e2a187af2e51bf6e8ad7e1c8b9c718a57ad" + integrity sha512-bMPclbBhrWxhFlwqrC/h4fPLl05ouoi5D8SkQTHjeVxWN9eDnMVi76xM0YDct302Z3f0x5S3plIulp+4XRxrvg== -"@storybook/core-webpack@8.3.6": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/core-webpack/-/core-webpack-8.3.6.tgz#4e4d78e52fe88e8f325c7be21b05e7e42cbea730" - integrity sha512-ks306CFKD7FePQzRYyTjddiLsSriceblzv4rI+IjVtftkJvcEbxub2yWkV27kPP/e9kSd4Li3M34bX5mkiwkZA== +"@storybook/core-webpack@8.4.1": + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/core-webpack/-/core-webpack-8.4.1.tgz#28682704e33545874991bf5a1d84b644aa14153a" + integrity sha512-TptbDGaj9a8wJMF4g+C8t02CXl4BSd0BA/qGWBvzn3j4FJqeQ/m8elOXLYZrPbQKI6PjP0J4ayHkXdX2h0/tUw== dependencies: "@types/node" "^22.0.0" ts-dedent "^2.0.0" -"@storybook/core@8.3.6": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/core/-/core-8.3.6.tgz#fb439d4edc0722e3bf6fdaff0469bb21566edab1" - integrity sha512-frwfgf0EJ7QL29DWZ5bla/g0eOOWqJGd14t+VUBlpP920zB6sdDfo7+p9JoCjD9u08lGeFDqbPNKayUk+0qDag== +"@storybook/core@8.4.1": + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/core/-/core-8.4.1.tgz#e6094f3c7cc2f0c81d1c1195c91a7230641ba9eb" + integrity sha512-q3Q4OFBj7MHHbIFYk/Beejlqv5j7CC3+VWhGcr0TK3SGvdCIZ7EliYuc5JIOgDlEPsnTIk+lkgWI4LAA9mLzSw== dependencies: "@storybook/csf" "^0.1.11" - "@types/express" "^4.17.21" better-opn "^3.0.2" browser-assert "^1.2.1" - esbuild "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0" + esbuild "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0" esbuild-register "^3.5.0" - express "^4.19.2" jsdoc-type-pratt-parser "^4.0.0" process "^0.11.10" recast "^0.23.5" @@ -4236,10 +4438,10 @@ util "^0.12.5" ws "^8.2.3" -"@storybook/csf-plugin@8.3.6": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/csf-plugin/-/csf-plugin-8.3.6.tgz#8e6fd04f1dd4662f85f6c1e8fa56d4331f3be4c7" - integrity sha512-TJyJPFejO6Gyr3+bXqE/+LomQbivvfHEbee/GwtlRj0XF4KQlqnvuEdEdcK25JbD0NXT8AbyncEUmjoxE7ojQw== +"@storybook/csf-plugin@8.4.1": + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/csf-plugin/-/csf-plugin-8.4.1.tgz#09b40718a752af3252e3ecced267445d9bdc110b" + integrity sha512-MdQkyq6mJ31lBsWCG9VNtx8O0oLSc5h4kvWDPyIP6Dn58K0Hv2z9qvxxSvtFjXA7ES9X+ivjorTke1kearifhg== dependencies: unplugin "^1.3.1" @@ -4255,33 +4457,32 @@ resolved "https://registry.yarnpkg.com/@storybook/global/-/global-5.0.0.tgz#b793d34b94f572c1d7d9e0f44fac4e0dbc9572ed" integrity sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ== -"@storybook/icons@^1.2.10": +"@storybook/icons@^1.2.12": version "1.2.12" resolved "https://registry.yarnpkg.com/@storybook/icons/-/icons-1.2.12.tgz#3e4c939113b67df7ab17b78f805dbb57f4acf0db" integrity sha512-UxgyK5W3/UV4VrI3dl6ajGfHM4aOqMAkFLWe2KibeQudLf6NJpDrDMSHwZj+3iKC4jFU7dkKbbtH2h/al4sW3Q== -"@storybook/manager-api@^8.3.6": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/manager-api/-/manager-api-8.3.6.tgz#6dfb268a5f1f8228d0bac69fd6e63f6bd2620c2d" - integrity sha512-Xt5VFZcL+G/9uzaHjzWFhxRNrP+4rPhSRKEvCZorAbC9+Hv+ZDs1JSZS5wMb4WKpXBZ0rwDVOLwngqbVtfRHuQ== +"@storybook/manager-api@8.4.1": + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/manager-api/-/manager-api-8.4.1.tgz#7f625d3eef1dfb35102ee1d73e334aacda2a09fe" + integrity sha512-7hb2k4zsp6lREGZbQ85QOlsC8EIMZXuY9Pg12VUgaZd+LmLjLuaqtrxRz3SwIgIWsRpFun9AHO0X37DmYNGTSw== "@storybook/node-logger@^8.0.0": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-8.3.6.tgz#f286f8ef57f98e3adf2a52d620db316f14541125" - integrity sha512-pRQyS+yHadp1lJIRE1fB/Oqq6AHk+/g56i79eXMTGgvrjz27S8aoh1ZPMW8ZGYPvYrzbkcm0sVCofh7Vfw8fug== + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-8.4.1.tgz#0bc4cf4060adc85b07bb98ab69c0777464546498" + integrity sha512-RXD2Vgp3HBbdGIf9I2ShvQSP3pMNxGk0cInazT8iQZArgwfO0NXFzpWJphqEjNOLg6yrMUJfAflyoua0Z6WU5A== -"@storybook/preset-react-webpack@8.3.6": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/preset-react-webpack/-/preset-react-webpack-8.3.6.tgz#f1fd392ecfe9462b597d2d9cb5e5fadd69e61f5a" - integrity sha512-Ar0vhJITXa4xsXT3RdgYZ2mhXxE3jfUisQzsITey5a2RVgnSBIENggmRZ/6j1oVgEXFthbarNEsebGiA+2vDZg== +"@storybook/preset-react-webpack@8.4.1": + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/preset-react-webpack/-/preset-react-webpack-8.4.1.tgz#b5409acf42ae9acfa00eece104de0937ce281d61" + integrity sha512-Cm+u3/avHdoneEFHnvFRMPAElWtxyyOkcVsWHkM0rVhj7bxkzOyrBrenm1GiB8NamRosumsEnhREYFo2lthU2A== dependencies: - "@storybook/core-webpack" "8.3.6" - "@storybook/react" "8.3.6" + "@storybook/core-webpack" "8.4.1" + "@storybook/react" "8.4.1" "@storybook/react-docgen-typescript-plugin" "1.0.6--canary.9.0c3f3b7.0" "@types/node" "^22.0.0" "@types/semver" "^7.3.4" find-up "^5.0.0" - fs-extra "^11.1.0" magic-string "^0.30.5" react-docgen "^7.0.0" resolve "^1.22.8" @@ -4289,10 +4490,10 @@ tsconfig-paths "^4.2.0" webpack "5" -"@storybook/preview-api@^8.3.6": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/preview-api/-/preview-api-8.3.6.tgz#7891b0d9f86bfb49c98eb34487c432354710b468" - integrity sha512-/Wxvb7wbI2O2iH63arRQQyyojA630vibdshkFjuC/u1nYdptEV1jkxa0OYmbZbKCn4/ze6uH4hfsKOpDPV9SWg== +"@storybook/preview-api@8.4.1": + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/preview-api/-/preview-api-8.4.1.tgz#473db167a0c1b00a85a73c8ee04163cd3a6d7e2b" + integrity sha512-VdnESYfXCUasNtMd5s1Q8DPqMnAUdpROn8mE8UAD79Cy7DSNesI1q0SATuJqh5iYCT/+3Tpjfghsr2zC/mOh8w== "@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0": version "1.0.6--canary.9.0c3f3b7.0" @@ -4307,51 +4508,37 @@ react-docgen-typescript "^2.2.2" tslib "^2.0.0" -"@storybook/react-dom-shim@8.3.6": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/react-dom-shim/-/react-dom-shim-8.3.6.tgz#40ce82a4e6559a617c4a7288b532652fefcd271e" - integrity sha512-9BO6VXIdli4GHSfiP/Z0gwAf7oQig3D/yWK2U1+91UWDV8nIAgnNBAi76U4ORC6MiK5MdkDfIikIxnLLeLnahA== +"@storybook/react-dom-shim@8.4.1": + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/react-dom-shim/-/react-dom-shim-8.4.1.tgz#aa6d4bddd5517748865b6575a70435ed35669ff5" + integrity sha512-XhvuqkpqtcUjDA8XE4osq140SCddX3VHMdj+IwlrMdoSl32CAya01TH5YDDx6YMy6hM/QQbyVKaemG7RB/oU4Q== "@storybook/react-webpack5@^8.0.0": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/react-webpack5/-/react-webpack5-8.3.6.tgz#5f8aa77bdd66a7d6774ec25ef208fd5639f14c36" - integrity sha512-8HBnBab6kPJuX0gQGIl6voZXLRdvyXxd5wmHXc0db0T9Ozq5iuNbo9sUEk9QCwJpuQc7lDDmuOkXHVq1WjSibw== + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/react-webpack5/-/react-webpack5-8.4.1.tgz#bf15bc60d8b84635a9f99e3f3cc45efc9c49a3b8" + integrity sha512-P4ZedIAx5SmkyKwTH5zbwG+en+DeeQfOT1nw0sL0aybVPGcwV+swyzcCnJFnmn0UIhSxuZ1InjN36nDZ6821mw== dependencies: - "@storybook/builder-webpack5" "8.3.6" - "@storybook/preset-react-webpack" "8.3.6" - "@storybook/react" "8.3.6" + "@storybook/builder-webpack5" "8.4.1" + "@storybook/preset-react-webpack" "8.4.1" + "@storybook/react" "8.4.1" "@types/node" "^22.0.0" -"@storybook/react@8.3.6", "@storybook/react@^8.0.0": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/react/-/react-8.3.6.tgz#da7dedf28c9985476409ab118142337db1bd03d0" - integrity sha512-s3COryqIOYK7urgZaCPb77zlxGjPKr6dIsYmblQJcsFY2ZlG2x0Ysm8b5oRgD8Pv71hCJ0PKYA4RzDgBVYJS9A== +"@storybook/react@8.4.1", "@storybook/react@^8.0.0": + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/react/-/react-8.4.1.tgz#f75130b2bbed157f91de5f66b381ee063227c1a6" + integrity sha512-ZwszrzV47nWQEZ0X4LyNgv5OFq4iy/7LpmxW6IncIO7PWm70OWG2BVtKFNsNQx0LY+hOtllWZbvg06mPQzahFA== dependencies: - "@storybook/components" "^8.3.6" + "@storybook/components" "8.4.1" "@storybook/global" "^5.0.0" - "@storybook/manager-api" "^8.3.6" - "@storybook/preview-api" "^8.3.6" - "@storybook/react-dom-shim" "8.3.6" - "@storybook/theming" "^8.3.6" - "@types/escodegen" "^0.0.6" - "@types/estree" "^0.0.51" - "@types/node" "^22.0.0" - acorn "^7.4.1" - acorn-jsx "^5.3.1" - acorn-walk "^7.2.0" - escodegen "^2.1.0" - html-tags "^3.1.0" - prop-types "^15.7.2" - react-element-to-jsx-string "^15.0.0" - semver "^7.3.7" - ts-dedent "^2.0.0" - type-fest "~2.19" - util-deprecate "^1.0.2" + "@storybook/manager-api" "8.4.1" + "@storybook/preview-api" "8.4.1" + "@storybook/react-dom-shim" "8.4.1" + "@storybook/theming" "8.4.1" -"@storybook/theming@^8.3.6": - version "8.3.6" - resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-8.3.6.tgz#57c5789903e50b84844aa8e7ce0e1f031e98a948" - integrity sha512-LQjUk6GXRW9ELkoBKuqzQKFUW+ajfGPfVELcfs3/VQX61VhthJ4olov4bGPc04wsmmFMgN/qODxT485IwOHfPQ== +"@storybook/theming@8.4.1": + version "8.4.1" + resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-8.4.1.tgz#483497e4853497555c233b7a0b4a92181f7aeb98" + integrity sha512-Sz24isryVFZaVahXkjgnCsMAQqQeeKg41AtLsldlYdesIo6fr5tc6/SkTUy+CYadK4Dkhqp+vVRDnwToYYRGhA== "@szmarczak/http-timer@^4.0.5": version "4.0.6" @@ -4382,9 +4569,9 @@ pretty-format "^27.0.2" "@testing-library/jest-dom@^6.0.0": - version "6.6.2" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.6.2.tgz#8186aa9a07263adef9cc5a59a4772db8c31f4a5b" - integrity sha512-P6GJD4yqc9jZLbe98j/EkyQDTPgqftohZF5FBkHY5BUERZmcf4HeO2k0XaefEg329ux2p21i1A1DmyQ1kKw2Jw== + version "6.6.3" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.6.3.tgz#26ba906cf928c0f8172e182c6fe214eb4f9f2bd2" + integrity sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA== dependencies: "@adobe/css-tools" "^4.4.0" aria-query "^5.0.0" @@ -4662,17 +4849,23 @@ resolved "https://registry.yarnpkg.com/@types/escape-html/-/escape-html-1.0.4.tgz#dc7c166b76c7b03b27e32f80edf01d91eb5d9af2" integrity sha512-qZ72SFTgUAZ5a7Tj6kf2SHLetiH5S6f8G5frB2SPQ3EyF02kxdyBFf4Tz4banE3xCgGnKgWLt//a6VuYHKYJTg== -"@types/escodegen@^0.0.6": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@types/escodegen/-/escodegen-0.0.6.tgz#5230a9ce796e042cda6f086dbf19f22ea330659c" - integrity sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig== +"@types/eslint-scope@^3.7.7": + version "3.7.7" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" -"@types/estree@^0.0.51": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== +"@types/eslint@*": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.1.tgz#d5795ad732ce81715f27f75da913004a56751584" + integrity sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" -"@types/estree@^1.0.5", "@types/estree@^1.0.6": +"@types/estree@*", "@types/estree@^1.0.6": version "1.0.6" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== @@ -4686,9 +4879,9 @@ "@types/oauth2-server" "*" "@types/express-serve-static-core@*", "@types/express-serve-static-core@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.0.0.tgz#91f06cda1049e8f17eeab364798ed79c97488a1c" - integrity sha512-AbXMTZGt40T+KON9/Fdxx0B2WK5hsgxcfXJLr5bFpZ7b4JCex2WyQPTEKdXqfHiY5nKKBScZ7yCoO6Pvgxfvnw== + version "5.0.1" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.0.1.tgz#3c9997ae9d00bc236e45c6374e84f2596458d9db" + integrity sha512-CRICJIl0N5cXDONAdlTv5ShATZ4HEwk6kDDIW2/w9qOWKg+NU/5F8wYRWCrONad0/UKkloNSmmyN/wX4rtpbVA== dependencies: "@types/node" "*" "@types/qs" "*" @@ -4742,14 +4935,6 @@ resolved "https://registry.yarnpkg.com/@types/get-value/-/get-value-3.0.5.tgz#4ea0e0b0a31c256636b3e7e0026c2ad38baea6f6" integrity sha512-+o8nw0TId5cDwtdVrhlc8rvzaxbCU+JksFeu8ZunY9vUaODxngXiNceTFj2gkSwGWNRpe3PtaSWt1y0VB71PvA== -"@types/glob@^7.1.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - "@types/graceful-fs@^4.1.3": version "4.1.9" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" @@ -4757,13 +4942,6 @@ dependencies: "@types/node" "*" -"@types/hast@^3.0.0": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa" - integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== - dependencies: - "@types/unist" "*" - "@types/html-minifier-terser@^6.0.0": version "6.1.0" resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" @@ -4846,7 +5024,7 @@ resolved "https://registry.yarnpkg.com/@types/json-parse-better-errors/-/json-parse-better-errors-1.0.3.tgz#3f03464a47aa116a54683efdfd1f8c1f46855a31" integrity sha512-wbwigqXeGQq+liQIqxYNylOV4c3ilUqB9czasOS26TSy21Ti1l2Q8c8TEjmaTnc0CgdJDBhIMFJssIbY1FanYA== -"@types/json-schema@^7.0.15", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -4865,10 +5043,10 @@ dependencies: "@types/lodash" "*" -"@types/lodash@*", "@types/lodash@^4.14.167": - version "4.17.12" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.12.tgz#25d71312bf66512105d71e55d42e22c36bcfc689" - integrity sha512-sviUmCE8AYdaF/KIHLDJBQgeYzPBI0vf/17NaYehBJfYD1j6/L95Slh07NlyK2iNyBNaEkb3En2jRt+a8y3xZQ== +"@types/lodash@*": + version "4.17.13" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.13.tgz#786e2d67cfd95e32862143abe7463a7f90c300eb" + integrity sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg== "@types/mdx@^2.0.0": version "2.0.13" @@ -4880,11 +5058,6 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== -"@types/minimatch@*": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" - integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== - "@types/minimatch@^3.0.3": version "3.0.5" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" @@ -4923,16 +5096,16 @@ "@types/node" "*" "@types/node@*", "@types/node@^22.0.0", "@types/node@^22.5.5": - version "22.7.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.7.9.tgz#2bf2797b5e84702d8262ea2cf843c3c3c880d0e9" - integrity sha512-jrTfRC7FM6nChvU7X2KqcrgquofrWLFDeYC1hKfwNWomVvrn7JIksqf344WN2X/y8xrgqBd2dJATZV4GbatBfg== + version "22.8.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.8.7.tgz#04ab7a073d95b4a6ee899f235d43f3c320a976f4" + integrity sha512-LidcG+2UeYIWcMuMUpBKOnryBWG/rnmOHQR5apjn8myTQcx3rinFRn7DcIFhMnS0PPFSC6OafdIKEad0lj6U0Q== dependencies: - undici-types "~6.19.2" + undici-types "~6.19.8" "@types/node@^20.0.0", "@types/node@^20.9.0": - version "20.17.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.17.0.tgz#d0620ba0fe4cf2a0f12351c7bdd805fc4e1f036b" - integrity sha512-a7zRo0f0eLo9K5X9Wp5cAqTUNGzuFLDG2R7C4HY2BhcMAsxgSPuRvAC1ZB6QkuUQXf0YZAgfOX2ZyrBa2n4nHQ== + version "20.17.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.17.6.tgz#6e4073230c180d3579e8c60141f99efdf5df0081" + integrity sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ== dependencies: undici-types "~6.19.2" @@ -5024,7 +5197,7 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^16.8.0 || ^17.0.0 || ^18.0.0", "@types/react@^18.0.26": +"@types/react@*", "@types/react@^18.0.26": version "18.3.12" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.12.tgz#99419f182ccd69151813b7ee24b792fe08774f60" integrity sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw== @@ -5115,11 +5288,6 @@ resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== -"@types/unist@*", "@types/unist@^3.0.0": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.3.tgz#acaab0f919ce69cce629c2d4ed2eb4adc1b6c20c" - integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q== - "@types/uuid@^9.0.1": version "9.0.8" resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.8.tgz#7545ba4fc3c003d6c756f651f3bf163d8f0f29ba" @@ -5136,9 +5304,9 @@ integrity sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g== "@types/ws@^8.5.10": - version "8.5.12" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.12.tgz#619475fe98f35ccca2a2f6c137702d85ec247b7e" - integrity sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ== + version "8.5.13" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.13.tgz#6414c280875e2691d0d1e080b05addbf5cb91e20" + integrity sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA== dependencies: "@types/node" "*" @@ -5161,62 +5329,62 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@8.11.0", "@typescript-eslint/eslint-plugin@^8.0.0": - version "8.11.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.11.0.tgz#c3f087d20715fa94310b30666c08b3349e0ab084" - integrity sha512-KhGn2LjW1PJT2A/GfDpiyOfS4a8xHQv2myUagTM5+zsormOmBlYsnQ6pobJ8XxJmh6hnHwa2Mbe3fPrDJoDhbA== +"@typescript-eslint/eslint-plugin@8.12.2", "@typescript-eslint/eslint-plugin@^8.0.0": + version "8.12.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.12.2.tgz#c2ef660bb83fd1432368319312a2581fc92ccac1" + integrity sha512-gQxbxM8mcxBwaEmWdtLCIGLfixBMHhQjBqR8sVWNTPpcj45WlYL2IObS/DNMLH1DBP0n8qz+aiiLTGfopPEebw== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.11.0" - "@typescript-eslint/type-utils" "8.11.0" - "@typescript-eslint/utils" "8.11.0" - "@typescript-eslint/visitor-keys" "8.11.0" + "@typescript-eslint/scope-manager" "8.12.2" + "@typescript-eslint/type-utils" "8.12.2" + "@typescript-eslint/utils" "8.12.2" + "@typescript-eslint/visitor-keys" "8.12.2" graphemer "^1.4.0" ignore "^5.3.1" natural-compare "^1.4.0" ts-api-utils "^1.3.0" -"@typescript-eslint/parser@8.11.0", "@typescript-eslint/parser@^8.0.0": - version "8.11.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.11.0.tgz#2ad1481388dc1c937f50b2d138c9ca57cc6c5cce" - integrity sha512-lmt73NeHdy1Q/2ul295Qy3uninSqi6wQI18XwSpm8w0ZbQXUpjCAWP1Vlv/obudoBiIjJVjlztjQ+d/Md98Yxg== +"@typescript-eslint/parser@8.12.2", "@typescript-eslint/parser@^8.0.0": + version "8.12.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.12.2.tgz#2e8173b34e1685e918b2d571c16c906d3747bad2" + integrity sha512-MrvlXNfGPLH3Z+r7Tk+Z5moZAc0dzdVjTgUgwsdGweH7lydysQsnSww3nAmsq8blFuRD5VRlAr9YdEFw3e6PBw== dependencies: - "@typescript-eslint/scope-manager" "8.11.0" - "@typescript-eslint/types" "8.11.0" - "@typescript-eslint/typescript-estree" "8.11.0" - "@typescript-eslint/visitor-keys" "8.11.0" + "@typescript-eslint/scope-manager" "8.12.2" + "@typescript-eslint/types" "8.12.2" + "@typescript-eslint/typescript-estree" "8.12.2" + "@typescript-eslint/visitor-keys" "8.12.2" debug "^4.3.4" -"@typescript-eslint/scope-manager@8.11.0": - version "8.11.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.11.0.tgz#9d399ce624118966732824878bc9a83593a30405" - integrity sha512-Uholz7tWhXmA4r6epo+vaeV7yjdKy5QFCERMjs1kMVsLRKIrSdM6o21W2He9ftp5PP6aWOVpD5zvrvuHZC0bMQ== +"@typescript-eslint/scope-manager@8.12.2": + version "8.12.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.12.2.tgz#6db0213745e6392c8e90fe9af5915e6da32eb94a" + integrity sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ== dependencies: - "@typescript-eslint/types" "8.11.0" - "@typescript-eslint/visitor-keys" "8.11.0" + "@typescript-eslint/types" "8.12.2" + "@typescript-eslint/visitor-keys" "8.12.2" -"@typescript-eslint/type-utils@8.11.0": - version "8.11.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.11.0.tgz#b7f9e6120c1ddee8a1a07615646642ad85fc91b5" - integrity sha512-ItiMfJS6pQU0NIKAaybBKkuVzo6IdnAhPFZA/2Mba/uBjuPQPet/8+zh5GtLHwmuFRShZx+8lhIs7/QeDHflOg== +"@typescript-eslint/type-utils@8.12.2": + version "8.12.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.12.2.tgz#132b0c52d45f6814e6f2e32416c7951ed480b016" + integrity sha512-bwuU4TAogPI+1q/IJSKuD4shBLc/d2vGcRT588q+jzayQyjVK2X6v/fbR4InY2U2sgf8MEvVCqEWUzYzgBNcGQ== dependencies: - "@typescript-eslint/typescript-estree" "8.11.0" - "@typescript-eslint/utils" "8.11.0" + "@typescript-eslint/typescript-estree" "8.12.2" + "@typescript-eslint/utils" "8.12.2" debug "^4.3.4" ts-api-utils "^1.3.0" -"@typescript-eslint/types@8.11.0": - version "8.11.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.11.0.tgz#7c766250502097f49bbc2e651132e6bf489e20b8" - integrity sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw== +"@typescript-eslint/types@8.12.2": + version "8.12.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.12.2.tgz#8d70098c0e90442495b53d0296acdca6d0f3f73c" + integrity sha512-VwDwMF1SZ7wPBUZwmMdnDJ6sIFk4K4s+ALKLP6aIQsISkPv8jhiw65sAK6SuWODN/ix+m+HgbYDkH+zLjrzvOA== -"@typescript-eslint/typescript-estree@8.11.0": - version "8.11.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.11.0.tgz#35fe5d3636fc5727c52429393415412e552e222b" - integrity sha512-yHC3s1z1RCHoCz5t06gf7jH24rr3vns08XXhfEqzYpd6Hll3z/3g23JRi0jM8A47UFKNc3u/y5KIMx8Ynbjohg== +"@typescript-eslint/typescript-estree@8.12.2": + version "8.12.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.12.2.tgz#206df9b1cbff212aaa9401985ef99f04daa84da5" + integrity sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow== dependencies: - "@typescript-eslint/types" "8.11.0" - "@typescript-eslint/visitor-keys" "8.11.0" + "@typescript-eslint/types" "8.12.2" + "@typescript-eslint/visitor-keys" "8.12.2" debug "^4.3.4" fast-glob "^3.3.2" is-glob "^4.0.3" @@ -5224,29 +5392,24 @@ semver "^7.6.0" ts-api-utils "^1.3.0" -"@typescript-eslint/utils@8.11.0": - version "8.11.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.11.0.tgz#4480d1e9f2bb18ea3510c79f870a1aefc118103d" - integrity sha512-CYiX6WZcbXNJV7UNB4PLDIBtSdRmRI/nb0FMyqHPTQD1rMjA0foPLaPUV39C/MxkTd/QKSeX+Gb34PPsDVC35g== +"@typescript-eslint/utils@8.12.2": + version "8.12.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.12.2.tgz#726cc9f49f5866605bd15bbc1768ffc15637930e" + integrity sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "8.11.0" - "@typescript-eslint/types" "8.11.0" - "@typescript-eslint/typescript-estree" "8.11.0" + "@typescript-eslint/scope-manager" "8.12.2" + "@typescript-eslint/types" "8.12.2" + "@typescript-eslint/typescript-estree" "8.12.2" -"@typescript-eslint/visitor-keys@8.11.0": - version "8.11.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.11.0.tgz#273de1cbffe63d9f9cd7dfc20b5a5af66310cb92" - integrity sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw== +"@typescript-eslint/visitor-keys@8.12.2": + version "8.12.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.12.2.tgz#94d7410f78eb6d134b9fcabaf1eeedb910ba8c38" + integrity sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA== dependencies: - "@typescript-eslint/types" "8.11.0" + "@typescript-eslint/types" "8.12.2" eslint-visitor-keys "^3.4.3" -"@ungap/structured-clone@^1.0.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" - integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== - "@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": version "1.12.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb" @@ -5441,7 +5604,7 @@ abbrev@^2.0.0: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf" integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ== -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: +accepts@~1.3.4, accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== @@ -5457,21 +5620,11 @@ 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-jsx@^5.3.1, acorn-jsx@^5.3.2: +acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-walk@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - acorn-walk@^8.0.2, acorn-walk@^8.1.1: version "8.3.4" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" @@ -5479,15 +5632,10 @@ acorn-walk@^8.0.2, acorn-walk@^8.1.1: dependencies: acorn "^8.11.0" -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.12.0, acorn@^8.12.1, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2: - version "8.13.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.13.0.tgz#2a30d670818ad16ddd6a35d3842dacec9e5d7ca3" - integrity sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w== +acorn@^8.1.0, acorn@^8.11.0, acorn@^8.14.0, acorn@^8.4.1, acorn@^8.8.1, acorn@^8.8.2: + version "8.14.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" + integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== add-stream@^1.0.0: version "1.0.0" @@ -5902,7 +6050,7 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -attr-accept@^2.2.2: +attr-accept@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/attr-accept/-/attr-accept-2.2.4.tgz#e28749d5975732586aea03c8912e2d0f1d1d77e7" integrity sha512-2pA6xFIbdTUDCAwjN8nQwI+842VwzbDUXO2IYlpPXQIORgKnavorcr4Ce3rwh+zsNg9zK7QPsdvDj3Lum4WX4w== @@ -6192,7 +6340,7 @@ browser-assert@^1.2.1: resolved "https://registry.yarnpkg.com/browser-assert/-/browser-assert-1.2.1.tgz#9aaa5a2a8c74685c2ae05bfe46efd606f068c200" integrity sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ== -browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.23.0, browserslist@^4.23.3, browserslist@^4.24.0: +browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.23.0, browserslist@^4.24.0, browserslist@^4.24.2: version "4.24.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.2.tgz#f5845bc91069dbd55ee89faf9822e1d885d16580" integrity sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg== @@ -6300,11 +6448,6 @@ byte-size@8.1.1: resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-8.1.1.tgz#3424608c62d59de5bfda05d31e0313c6174842ae" integrity sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg== -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== - bytes@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" @@ -6471,9 +6614,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001669: - version "1.0.30001669" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz#fda8f1d29a8bfdc42de0c170d7f34a9cf19ed7a3" - integrity sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w== + version "1.0.30001677" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001677.tgz#27c2e2c637e007cfa864a16f7dfe7cde66b38b5f" + integrity sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog== canvas-sequencer@^3.1.0: version "3.1.0" @@ -6516,7 +6659,7 @@ chalk@4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.4.1: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -6890,7 +7033,7 @@ compare-version@^0.1.2: resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080" integrity sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A== -compressible@~2.0.16: +compressible@~2.0.18: version "2.0.18" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== @@ -6898,16 +7041,16 @@ compressible@~2.0.16: mime-db ">= 1.43.0 < 2" compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + version "1.7.5" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.5.tgz#fdd256c0a642e39e314c478f6c2cd654edd74c93" + integrity sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q== dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" + bytes "3.1.2" + compressible "~2.0.18" debug "2.6.9" + negotiator "~0.6.4" on-headers "~1.0.2" - safe-buffer "5.1.2" + safe-buffer "5.2.1" vary "~1.1.2" concat-map@0.0.1: @@ -7078,16 +7221,16 @@ copy-to-clipboard@^3.3.1: toggle-selection "^1.0.6" core-js-compat@^3.38.0, core-js-compat@^3.38.1: - version "3.38.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.38.1.tgz#2bc7a298746ca5a7bcb9c164bcb120f2ebc09a09" - integrity sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw== + version "3.39.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.39.0.tgz#b12dccb495f2601dc860bdbe7b4e3ffa8ba63f61" + integrity sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw== dependencies: - browserslist "^4.23.3" + browserslist "^4.24.2" core-js-pure@^3.23.3: - version "3.38.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.38.1.tgz#e8534062a54b7221344884ba9b52474be495ada3" - integrity sha512-BY8Etc1FZqdw1glX0XNOq2FDwfrg/VGqoZOZCdaL+UmdaqDwQwYXkMJT4t6In+zfEfOJDcM9T0KdbBeJg8KKCQ== + version "3.39.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.39.0.tgz#aa0d54d70a15bdc13e7c853db87c10abc30d68f3" + integrity sha512-7fEcWwKI4rJinnK+wLTezeg2smbFFdSBP6E2kQZNbnzM2s1rpKQ6aaRteZSSg7FLU3P0HGGVo/gbpfanU36urg== core-util-is@1.0.2: version "1.0.2" @@ -7107,6 +7250,16 @@ cors@^2.8.5: object-assign "^4" vary "^1" +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" + cosmiconfig@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" @@ -7129,16 +7282,6 @@ cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: path-type "^4.0.0" yaml "^1.10.0" -cosmiconfig@^8.2.0: - version "8.3.6" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" - integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== - dependencies: - import-fresh "^3.3.0" - js-yaml "^4.1.0" - parse-json "^5.2.0" - path-type "^4.0.0" - crc@^3.8.0: version "3.8.0" resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" @@ -8053,9 +8196,9 @@ electron-publish@25.1.7: mime "^2.5.2" electron-to-chromium@^1.5.41: - version "1.5.43" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.43.tgz#d9e69fc709ddebd521416de9d17cdef81d2d4718" - integrity sha512-NxnmFBHDl5Sachd2P46O7UJiMaMHMLSofoIWVJq3mj8NJgG0umiSeljAVP9lGzjI0UDLJJ5jjoGjcrB8RSbjLQ== + version "1.5.50" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.50.tgz#d9ba818da7b2b5ef1f3dd32bce7046feb7e93234" + integrity sha512-eMVObiUQ2LdgeO1F/ySTXsvqvxb6ZH2zPGaMYsWzRDdOddUa77tdmI0ltg+L16UpbWdhPmuF3wIQYyQq65WfZw== electron-updater@^6.1.1: version "6.3.9" @@ -8079,10 +8222,10 @@ electron-window-state@^5.0.3: jsonfile "^4.0.0" mkdirp "^0.5.1" -electron@32.1.0: - version "32.1.0" - resolved "https://registry.yarnpkg.com/electron/-/electron-32.1.0.tgz#e736cb6f25a1ba15fffbd25e92a847485dc0ed8b" - integrity sha512-4etE3K6vPUkHihf7nvawngbB5+jLuUJgZh31f9ki1Gfveo0qwNDkLv/doabw+4zFFWKUXI+uFUpyOpL5+RwS+Q== +electron@33.0.2: + version "33.0.2" + resolved "https://registry.yarnpkg.com/electron/-/electron-33.0.2.tgz#db31b105bf0edd7c8600dfb70c2dfc214e3789f1" + integrity sha512-C2WksfP0COsMHbYXSJG68j6S3TjuGDrw/YT42B526yXalIlNQZ2GeAYKryg6AEMkIp3p8TUfDRD0+HyiyCt/nw== dependencies: "@electron/get" "^2.0.0" "@types/node" "^20.9.0" @@ -8166,7 +8309,7 @@ entities@^4.2.0, entities@^4.5.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== @@ -8343,7 +8486,37 @@ esbuild-register@^3.5.0: dependencies: debug "^4.3.4" -"esbuild@^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0", esbuild@~0.23.0: +"esbuild@^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.24.0.tgz#f2d470596885fcb2e91c21eb3da3b3c89c0b55e7" + integrity sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ== + optionalDependencies: + "@esbuild/aix-ppc64" "0.24.0" + "@esbuild/android-arm" "0.24.0" + "@esbuild/android-arm64" "0.24.0" + "@esbuild/android-x64" "0.24.0" + "@esbuild/darwin-arm64" "0.24.0" + "@esbuild/darwin-x64" "0.24.0" + "@esbuild/freebsd-arm64" "0.24.0" + "@esbuild/freebsd-x64" "0.24.0" + "@esbuild/linux-arm" "0.24.0" + "@esbuild/linux-arm64" "0.24.0" + "@esbuild/linux-ia32" "0.24.0" + "@esbuild/linux-loong64" "0.24.0" + "@esbuild/linux-mips64el" "0.24.0" + "@esbuild/linux-ppc64" "0.24.0" + "@esbuild/linux-riscv64" "0.24.0" + "@esbuild/linux-s390x" "0.24.0" + "@esbuild/linux-x64" "0.24.0" + "@esbuild/netbsd-x64" "0.24.0" + "@esbuild/openbsd-arm64" "0.24.0" + "@esbuild/openbsd-x64" "0.24.0" + "@esbuild/sunos-x64" "0.24.0" + "@esbuild/win32-arm64" "0.24.0" + "@esbuild/win32-ia32" "0.24.0" + "@esbuild/win32-x64" "0.24.0" + +esbuild@~0.23.0: version "0.23.1" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.23.1.tgz#40fdc3f9265ec0beae6f59824ade1bd3d3d2dab8" integrity sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg== @@ -8398,7 +8571,7 @@ escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escodegen@^2.0.0, escodegen@^2.1.0: +escodegen@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== @@ -8415,9 +8588,9 @@ eslint-plugin-react-hooks@^5.0.0: integrity sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw== eslint-plugin-react-refresh@^0.4.3: - version "0.4.13" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.13.tgz#ed7330da09b6192e6fa9b1b217ad979afbc898bf" - integrity sha512-f1EppwrpJRWmqDTyvAyomFVDYRtrS7iTEqv3nokETnMiMzs2SSTmKRTACce4O2p4jYyowiSMvpdwC/RLcMFhuQ== + version "0.4.14" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.14.tgz#e3c611ead69bbf7436d01295c853d4abb8c59f68" + integrity sha512-aXvzCTK7ZBv1e7fahFuR3Z/fyQQSIQ711yPgYRj+Oj64tyTgO4iQIDmYXDBqvSWQ/FA4OSCsXOStlF+noU0/NA== eslint-plugin-react@^7.33.2: version "7.37.2" @@ -8481,39 +8654,39 @@ eslint-scope@5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.1.0.tgz#70214a174d4cbffbc3e8a26911d8bf51b9ae9d30" - integrity sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw== +eslint-scope@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.2.0.tgz#377aa6f1cb5dc7592cfd0b7f892fd0cf352ce442" + integrity sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.3: +eslint-visitor-keys@^3.4.3: version "3.4.3" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint-visitor-keys@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz#1f785cc5e81eb7534523d85922248232077d2f8c" - integrity sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg== +eslint-visitor-keys@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45" + integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== eslint@^9.0.0: - version "9.13.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.13.0.tgz#7659014b7dda1ff876ecbd990f726e11c61596e6" - integrity sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA== + version "9.14.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.14.0.tgz#534180a97c00af08bcf2b60b0ebf0c4d6c1b2c95" + integrity sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g== dependencies: "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.11.0" + "@eslint-community/regexpp" "^4.12.1" "@eslint/config-array" "^0.18.0" "@eslint/core" "^0.7.0" "@eslint/eslintrc" "^3.1.0" - "@eslint/js" "9.13.0" + "@eslint/js" "9.14.0" "@eslint/plugin-kit" "^0.2.0" - "@humanfs/node" "^0.16.5" + "@humanfs/node" "^0.16.6" "@humanwhocodes/module-importer" "^1.0.1" - "@humanwhocodes/retry" "^0.3.1" + "@humanwhocodes/retry" "^0.4.0" "@types/estree" "^1.0.6" "@types/json-schema" "^7.0.15" ajv "^6.12.4" @@ -8521,9 +8694,9 @@ eslint@^9.0.0: cross-spawn "^7.0.2" debug "^4.3.2" escape-string-regexp "^4.0.0" - eslint-scope "^8.1.0" - eslint-visitor-keys "^4.1.0" - espree "^10.2.0" + eslint-scope "^8.2.0" + eslint-visitor-keys "^4.2.0" + espree "^10.3.0" esquery "^1.5.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -8540,14 +8713,14 @@ eslint@^9.0.0: optionator "^0.9.3" text-table "^0.2.0" -espree@^10.0.1, espree@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-10.2.0.tgz#f4bcead9e05b0615c968e85f83816bc386a45df6" - integrity sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g== +espree@^10.0.1, espree@^10.3.0: + version "10.3.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-10.3.0.tgz#29267cf5b0cb98735b65e64ba07e0ed49d1eed8a" + integrity sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg== dependencies: - acorn "^8.12.0" + acorn "^8.14.0" acorn-jsx "^5.3.2" - eslint-visitor-keys "^4.1.0" + eslint-visitor-keys "^4.2.0" esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: version "4.0.1" @@ -8693,7 +8866,7 @@ express@^4.0.0, express@^4.17.1, express@^4.19.2: utils-merge "1.0.1" vary "~1.1.2" -external-editor@^3.0.3: +external-editor@^3.0.3, external-editor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== @@ -8832,12 +9005,12 @@ file-saver@^2.0.0: resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-2.0.5.tgz#d61cfe2ce059f414d899e9dd6d4107ee25670c38" integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA== -file-selector@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/file-selector/-/file-selector-0.6.0.tgz#fa0a8d9007b829504db4d07dd4de0310b65287dc" - integrity sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw== +file-selector@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/file-selector/-/file-selector-2.1.0.tgz#beb164ca5ce48af8a48d3e632c94750bc573581a" + integrity sha512-ZuXAqGePcSPz4JuerOY06Dzzq0hrmQ6VGoXVzGyFI1npeOfBgqGIKKpznfYWRkSLJlXutkqVC5WvGZtkFVhu9Q== dependencies: - tslib "^2.4.0" + tslib "^2.7.0" file-type@^3.8.0: version "3.9.0" @@ -9082,7 +9255,7 @@ fs-extra@^10.0.0, fs-extra@^10.1.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^11.1.0, fs-extra@^11.1.1, fs-extra@^11.2.0: +fs-extra@^11.1.1, fs-extra@^11.2.0: version "11.2.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== @@ -9351,7 +9524,7 @@ gitconfiglocal@^1.0.0: dependencies: ini "^1.3.2" -github-slugger@^2, github-slugger@^2.0.0: +github-slugger@^2: version "2.0.0" resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-2.0.0.tgz#52cf2f9279a21eb6c59dd385b410f0c0adda8f1a" integrity sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw== @@ -9640,27 +9813,6 @@ hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: dependencies: function-bind "^1.1.2" -hast-util-heading-rank@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/hast-util-heading-rank/-/hast-util-heading-rank-3.0.0.tgz#2d5c6f2807a7af5c45f74e623498dd6054d2aba8" - integrity sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA== - dependencies: - "@types/hast" "^3.0.0" - -hast-util-is-element@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz#6e31a6532c217e5b533848c7e52c9d9369ca0932" - integrity sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g== - dependencies: - "@types/hast" "^3.0.0" - -hast-util-to-string@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz#a4f15e682849326dd211c97129c94b0c3e76527c" - integrity sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A== - dependencies: - "@types/hast" "^3.0.0" - he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" @@ -9757,11 +9909,6 @@ html-minifier-terser@^6.0.2: relateurl "^0.2.7" terser "^5.10.0" -html-tags@^3.1.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" - integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== - html-webpack-plugin@^5.5.0: version "5.6.3" resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz#a31145f0fee4184d53a794f9513147df1e653685" @@ -10118,11 +10265,6 @@ ipaddr.js@^2.1.0: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== -is-absolute-url@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-4.0.1.tgz#16e4d487d4fded05cfe0685e53ec86804a5e94dc" - integrity sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A== - is-arguments@^1.0.4: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" @@ -10338,11 +10480,6 @@ is-plain-obj@^4.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== -is-plain-object@5.0.0, is-plain-object@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" - integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== - is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -10350,6 +10487,11 @@ is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + is-potential-custom-element-name@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" @@ -10477,7 +10619,7 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" -is-wsl@^3, is-wsl@^3.1.0: +is-wsl@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.0.tgz#e1c657e39c10090afcbedec61720f6b924c3cbd2" integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== @@ -11282,15 +11424,15 @@ lerna-changelog@^2.2.0: yargs "^17.1.0" lerna@^8.0.0: - version "8.1.8" - resolved "https://registry.yarnpkg.com/lerna/-/lerna-8.1.8.tgz#9edc9ce4fb4b6c7e22c994e9ef91d4e0370595b2" - integrity sha512-Rmo5ShMx73xM2CUcRixjmpZIXB7ZFlWEul1YvJyx/rH4onAwDHtUGD7Rx4NZYL8QSRiQHroglM2Oyq+WqA4BYg== + version "8.1.9" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-8.1.9.tgz#1233c3cfacca3b85b23c292235e246d79de3de32" + integrity sha512-ZRFlRUBB2obm+GkbTR7EbgTMuAdni6iwtTQTMy7LIrQ4UInG44LyfRepljtgUxh4HA0ltzsvWfPkd5J1DKGCeQ== dependencies: - "@lerna/create" "8.1.8" + "@lerna/create" "8.1.9" "@npmcli/arborist" "7.5.4" "@npmcli/package-json" "5.2.0" "@npmcli/run-script" "8.1.0" - "@nx/devkit" ">=17.1.2 < 20" + "@nx/devkit" ">=17.1.2 < 21" "@octokit/plugin-enterprise-rest" "6.0.1" "@octokit/rest" "19.0.11" aproba "2.0.0" @@ -11304,7 +11446,7 @@ lerna@^8.0.0: conventional-changelog-angular "7.0.0" conventional-changelog-core "5.0.1" conventional-recommended-bump "7.0.1" - cosmiconfig "^8.2.0" + cosmiconfig "9.0.0" dedent "1.5.3" envinfo "7.13.0" execa "5.0.0" @@ -11335,7 +11477,7 @@ lerna@^8.0.0: npm-package-arg "11.0.2" npm-packlist "8.0.2" npm-registry-fetch "^17.1.0" - nx ">=17.1.2 < 20" + nx ">=17.1.2 < 21" p-map "4.0.0" p-map-series "2.1.0" p-pipe "3.1.0" @@ -11737,11 +11879,6 @@ map-or-similar@^1.5.0: resolved "https://registry.yarnpkg.com/map-or-similar/-/map-or-similar-1.5.0.tgz#6de2653174adfb5d9edc33c69d3e92a1b76faf08" integrity sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg== -markdown-to-jsx@^7.4.5: - version "7.5.0" - resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.5.0.tgz#42ece0c71e842560a7d8bd9f81e7a34515c72150" - integrity sha512-RrBNcMHiFPcz/iqIj0n3wclzHXjwS7mzjBNWecKKVhNTIxQepIix6Il/wZCn2Cg5Y1ow2Qi84+eJrryFRWBEWw== - matcher@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" @@ -11921,9 +12058,9 @@ min-indent@^1.0.0, min-indent@^1.0.1: integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== mini-css-extract-plugin@^2.4.5: - version "2.9.1" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.1.tgz#4d184f12ce90582e983ccef0f6f9db637b4be758" - integrity sha512-+Vyi+GCCOHnrJ2VPS+6aPoXN2k2jgUzDRhTFLjjTBn23qyXJXkjUWQgTL+mXpF5/A8ixLdCc6kWsoeOjKGejKQ== + version "2.9.2" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz#966031b468917a5446f4c24a80854b2947503c5b" + integrity sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w== dependencies: schema-utils "^4.0.0" tapable "^2.2.1" @@ -12174,6 +12311,11 @@ mute-stream@^1.0.0: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== +mute-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-2.0.0.tgz#a5446fc0c512b71c83c44d908d5c7b7b4c493b2b" + integrity sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA== + mz@^2.4.0: version "2.7.0" resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" @@ -12203,7 +12345,7 @@ negotiator@0.6.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -negotiator@^0.6.2, negotiator@^0.6.3: +negotiator@^0.6.2, negotiator@^0.6.3, negotiator@~0.6.4: version "0.6.4" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7" integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== @@ -12520,13 +12662,12 @@ nwsapi@^2.2.12, nwsapi@^2.2.2: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.13.tgz#e56b4e98960e7a040e5474536587e599c4ff4655" integrity sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ== -nx@19.8.6, "nx@>=17.1.2 < 20": - version "19.8.6" - resolved "https://registry.yarnpkg.com/nx/-/nx-19.8.6.tgz#979a8b6183596a69fcaa975aeb74d01c37294309" - integrity sha512-VkEbXoCil4UnSDOJP5OcIKZgI13hKsFlQNf6oKhUHCYWoEHvVqpvabMv/ZY9mGG78skvqAorzn85BS3evlt0Cw== +"nx@>=17.1.2 < 21": + version "20.0.7" + resolved "https://registry.yarnpkg.com/nx/-/nx-20.0.7.tgz#ddf2fc19b8d91f97db0256202307a29bfbeba39e" + integrity sha512-Un7eMAqTx+gRB4j6hRWafMvOso4pmFg3Ff+BmfFOgqD8XdE+xV/+Ke9mPTfi4qYD5eQiY1lO15l3dRuBH7+AJw== dependencies: "@napi-rs/wasm-runtime" "0.2.4" - "@nrwl/tao" "19.8.6" "@yarnpkg/lockfile" "^1.1.0" "@yarnpkg/parsers" "3.0.0-rc.46" "@zkochan/js-yaml" "0.0.7" @@ -12552,7 +12693,6 @@ nx@19.8.6, "nx@>=17.1.2 < 20": ora "5.3.0" semver "^7.5.3" string-width "^4.2.3" - strong-log-transformer "^2.1.0" tar-stream "~2.2.0" tmp "~0.2.1" tsconfig-paths "^4.1.2" @@ -12560,16 +12700,16 @@ nx@19.8.6, "nx@>=17.1.2 < 20": yargs "^17.6.2" yargs-parser "21.1.1" optionalDependencies: - "@nx/nx-darwin-arm64" "19.8.6" - "@nx/nx-darwin-x64" "19.8.6" - "@nx/nx-freebsd-x64" "19.8.6" - "@nx/nx-linux-arm-gnueabihf" "19.8.6" - "@nx/nx-linux-arm64-gnu" "19.8.6" - "@nx/nx-linux-arm64-musl" "19.8.6" - "@nx/nx-linux-x64-gnu" "19.8.6" - "@nx/nx-linux-x64-musl" "19.8.6" - "@nx/nx-win32-arm64-msvc" "19.8.6" - "@nx/nx-win32-x64-msvc" "19.8.6" + "@nx/nx-darwin-arm64" "20.0.7" + "@nx/nx-darwin-x64" "20.0.7" + "@nx/nx-freebsd-x64" "20.0.7" + "@nx/nx-linux-arm-gnueabihf" "20.0.7" + "@nx/nx-linux-arm64-gnu" "20.0.7" + "@nx/nx-linux-arm64-musl" "20.0.7" + "@nx/nx-linux-x64-gnu" "20.0.7" + "@nx/nx-linux-x64-musl" "20.0.7" + "@nx/nx-win32-arm64-msvc" "20.0.7" + "@nx/nx-win32-x64-msvc" "20.0.7" object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" @@ -12635,19 +12775,19 @@ obuf@^1.0.0, obuf@^1.1.2: integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== oclif@^4.0.0: - version "4.15.12" - resolved "https://registry.yarnpkg.com/oclif/-/oclif-4.15.12.tgz#3af53ffba0989741da32118585c2c4e0629147d1" - integrity sha512-L1D7dM6nEA+6QZSm+h7qfN7jLF19eOopCE8bs5V4Hmj002c2i4vw41rSL95yaUaLYM6kDlCEsJhgs+gC2wVsiA== + version "4.15.19" + resolved "https://registry.yarnpkg.com/oclif/-/oclif-4.15.19.tgz#3a3c51cb021df51cd4a14250f9e5a666dd3a6d52" + integrity sha512-FM3hIgmCtKc7YTUPCdHGILI/UgtYC7IjYlUJ0xGVCcpfhsAmwj6DieJC+HmuMczY+bhWLxfKEw5SbZDy8w4VSA== dependencies: - "@aws-sdk/client-cloudfront" "^3.675.0" - "@aws-sdk/client-s3" "^3.676.0" + "@aws-sdk/client-cloudfront" "^3.679.0" + "@aws-sdk/client-s3" "^3.685.0" "@inquirer/confirm" "^3.1.22" "@inquirer/input" "^2.2.4" "@inquirer/select" "^2.5.0" - "@oclif/core" "^4.0.29" - "@oclif/plugin-help" "^6.2.14" - "@oclif/plugin-not-found" "^3.2.21" - "@oclif/plugin-warn-if-update-available" "^3.1.11" + "@oclif/core" "^4.0.31" + "@oclif/plugin-help" "^6.2.16" + "@oclif/plugin-not-found" "^3.2.24" + "@oclif/plugin-warn-if-update-available" "^3.1.20" async-retry "^1.3.3" chalk "^4" change-case "^4" @@ -13015,9 +13155,9 @@ parse5@^6.0.1: integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== parse5@^7.0.0, parse5@^7.1.1, parse5@^7.1.2: - version "7.2.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.2.0.tgz#8a0591ce9b7c5e2027173ab737d4d3fc3d826fab" - integrity sha512-ZkDsAOcxsUMZ4Lz5fVciOehNcJ+Gb8gTzcA4yl3wnc273BAybYWrQ+Ks/OjCjSEpjvQkDSeZbybK9qj2VHHdGA== + version "7.2.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.2.1.tgz#8928f55915e6125f430cc44309765bf17556a33a" + integrity sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ== dependencies: entities "^4.5.0" @@ -13709,11 +13849,6 @@ rbush@^3.0.1: dependencies: quickselect "^2.0.0" -react-colorful@^5.1.2: - version "5.6.1" - resolved "https://registry.yarnpkg.com/react-colorful/-/react-colorful-5.6.1.tgz#7dc2aed2d7c72fac89694e834d179e32f3da563b" - integrity sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw== - react-d3-axis-mod@^0.1.9: version "0.1.9" resolved "https://registry.yarnpkg.com/react-d3-axis-mod/-/react-d3-axis-mod-0.1.9.tgz#4c38ab2e21f1135ed43604bb9fbae52a4cac0447" @@ -13787,33 +13922,19 @@ react-draggable@^4.4.5: prop-types "^15.8.1" react-dropzone@^14.2.1: - version "14.2.10" - resolved "https://registry.yarnpkg.com/react-dropzone/-/react-dropzone-14.2.10.tgz#b8d86775c616534b44a30bd9c962044d2925c1a2" - integrity sha512-Y98LOCYxGO2jOFWREeKJlL7gbrHcOlTBp+9DCM1dh9XQ8+P/8ThhZT7kFb05C+bPcTXq/rixpU+5+LzwYrFLUw== + version "14.3.3" + resolved "https://registry.yarnpkg.com/react-dropzone/-/react-dropzone-14.3.3.tgz#8f2cf46567615123c91e1ba59b07e6c815e5aef0" + integrity sha512-38yaWovqDqZdtn7LKTE5lFdqc57hYbPdS/oIxyhmaTP/yzC0yztPxnNy+poxew5HKF44gzGCNcNDBYjqlCXr6g== dependencies: - attr-accept "^2.2.2" - file-selector "^0.6.0" + attr-accept "^2.2.4" + file-selector "^2.1.0" prop-types "^15.8.1" -react-element-to-jsx-string@^15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/react-element-to-jsx-string/-/react-element-to-jsx-string-15.0.0.tgz#1cafd5b6ad41946ffc8755e254da3fc752a01ac6" - integrity sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ== - dependencies: - "@base2/pretty-print-object" "1.0.1" - is-plain-object "5.0.0" - react-is "18.1.0" - react-error-overlay@^6.0.11: version "6.0.11" resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz#92835de5841c5cf08ba00ddd2d677b6d17ff9adb" integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg== -react-is@18.1.0: - version "18.1.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.1.0.tgz#61aaed3096d30eacf2a2127118b5b41387d32a67" - integrity sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg== - react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" @@ -14086,35 +14207,12 @@ regjsparser@^0.10.0: jsesc "~0.5.0" regjsparser@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.11.1.tgz#ae55c74f646db0c8fcb922d4da635e33da405149" - integrity sha512-1DHODs4B8p/mQHU9kr+jv8+wIC9mtG4eBHxWxIq5mhjE3D5oORhCc6deRKzTjs9DcfRFmj9BHSDguZklqCGFWQ== + version "0.11.2" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.11.2.tgz#7404ad42be00226d72bcf1f003f1f441861913d8" + integrity sha512-3OGZZ4HoLJkkAZx/48mTXJNlmqTGOzc0o9OWQPuWpkOlXXPbyN6OafCcoXUnBqE2D3f/T5L+pWc1kdEmnfnRsA== dependencies: jsesc "~3.0.2" -rehype-external-links@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/rehype-external-links/-/rehype-external-links-3.0.0.tgz#2b28b5cda1932f83f045b6f80a3e1b15f168c6f6" - integrity sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw== - dependencies: - "@types/hast" "^3.0.0" - "@ungap/structured-clone" "^1.0.0" - hast-util-is-element "^3.0.0" - is-absolute-url "^4.0.0" - space-separated-tokens "^2.0.0" - unist-util-visit "^5.0.0" - -rehype-slug@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/rehype-slug/-/rehype-slug-6.0.0.tgz#1d21cf7fc8a83ef874d873c15e6adaee6344eaf1" - integrity sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A== - dependencies: - "@types/hast" "^3.0.0" - github-slugger "^2.0.0" - hast-util-heading-rank "^3.0.0" - hast-util-to-string "^3.0.0" - unist-util-visit "^5.0.0" - relateurl@^0.2.7: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" @@ -14824,11 +14922,6 @@ source-map@^0.7.3: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== -space-separated-tokens@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" - integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== - spdx-correct@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" @@ -14961,11 +15054,11 @@ statuses@2.0.1: integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== storybook@^8.0.0: - version "8.3.6" - resolved "https://registry.yarnpkg.com/storybook/-/storybook-8.3.6.tgz#c5e733504fac26c1a31c527a645c04ec7da4222f" - integrity sha512-9GVbtej6ZzPRUM7KRQ7848506FfHrUiJGqPuIQdoSJd09EmuEoLjmLAgEOmrHBQKgGYMaM7Vh9GsTLim6vwZTQ== + version "8.4.1" + resolved "https://registry.yarnpkg.com/storybook/-/storybook-8.4.1.tgz#97baa471677566d614a5677deab0cd243c0142dc" + integrity sha512-0tfFIFghjho9FtnFoiJMoxhcs2iIdvEF81GTSVnTsDVJrYA84nB+FxN3UY1fT0BcQ8BFlbf+OhSjZL7ufqqWKA== dependencies: - "@storybook/core" "8.3.6" + "@storybook/core" "8.4.1" string-length@^4.0.1: version "4.0.2" @@ -15159,7 +15252,7 @@ strnum@^1.0.5: resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== -strong-log-transformer@2.1.0, strong-log-transformer@^2.1.0: +strong-log-transformer@2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10" integrity sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA== @@ -15293,13 +15386,6 @@ tar@6.2.1, tar@^6.0.2, tar@^6.0.5, tar@^6.1.11, tar@^6.1.12, tar@^6.1.2, tar@^6. mkdirp "^1.0.3" yallist "^4.0.0" -telejson@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/telejson/-/telejson-7.2.0.tgz#3994f6c9a8f8d7f2dba9be2c7c5bbb447e876f32" - integrity sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ== - dependencies: - memoizerific "^1.11.3" - temp-dir@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" @@ -15508,9 +15594,9 @@ truncate-utf8-bytes@^1.0.0: utf8-byte-length "^1.0.1" ts-api-utils@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" - integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== + version "1.4.0" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.4.0.tgz#709c6f2076e511a81557f3d07a0cbd566ae8195c" + integrity sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ== ts-dedent@^2.0.0: version "2.2.0" @@ -15545,10 +15631,10 @@ tsconfig-paths@^4.1.2, tsconfig-paths@^4.2.0: minimist "^1.2.6" strip-bom "^3.0.0" -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.8.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.0.tgz#d124c86c3c05a40a91e6fdea4021bd31d377971b" - integrity sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA== +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, tslib@^2.7.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== tss-react@^4.0.0, tss-react@^4.4.1: version "4.9.13" @@ -15560,9 +15646,9 @@ tss-react@^4.0.0, tss-react@^4.4.1: "@emotion/utils" "*" tsx@^4.17.0: - version "4.19.1" - resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.19.1.tgz#b7bffdf4b565813e4dea14b90872af279cd0090b" - integrity sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA== + version "4.19.2" + resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.19.2.tgz#2d7814783440e0ae42354d0417d9c2989a2ae92c" + integrity sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g== dependencies: esbuild "~0.23.0" get-tsconfig "^4.7.5" @@ -15632,7 +15718,7 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -type-fest@^2.19.0, type-fest@~2.19: +type-fest@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== @@ -15695,13 +15781,13 @@ typedarray@^0.0.6: integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== typescript-eslint@^8.0.1: - version "8.11.0" - resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.11.0.tgz#74a0551972d675b4141672cec3acc5139b7399c0" - integrity sha512-cBRGnW3FSlxaYwU8KfAewxFK5uzeOAp0l2KebIlPDOT5olVi65KDG/yjBooPBG0kGW/HLkoz1c/iuBFehcS3IA== + version "8.12.2" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.12.2.tgz#e273d69af30b478b1c410f4159d675ce7925f9a7" + integrity sha512-UbuVUWSrHVR03q9CWx+JDHeO6B/Hr9p4U5lRH++5tq/EbFq1faYZe50ZSBePptgfIKLEti0aPQ3hFgnPVcd8ZQ== dependencies: - "@typescript-eslint/eslint-plugin" "8.11.0" - "@typescript-eslint/parser" "8.11.0" - "@typescript-eslint/utils" "8.11.0" + "@typescript-eslint/eslint-plugin" "8.12.2" + "@typescript-eslint/parser" "8.12.2" + "@typescript-eslint/utils" "8.12.2" "typescript@>=3 < 6", typescript@^5.1.3, typescript@^5.4.3, typescript@^5.5.0: version "5.6.3" @@ -15731,7 +15817,7 @@ unbzip2-stream@^1.0.9: buffer "^5.2.1" through "^2.3.8" -undici-types@~6.19.2: +undici-types@~6.19.2, undici-types@~6.19.8: version "6.19.8" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== @@ -15801,30 +15887,6 @@ unique-slug@^4.0.0: dependencies: imurmurhash "^0.1.4" -unist-util-is@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.0.tgz#b775956486aff107a9ded971d996c173374be424" - integrity sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw== - dependencies: - "@types/unist" "^3.0.0" - -unist-util-visit-parents@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz#4d5f85755c3b8f0dc69e21eca5d6d82d22162815" - integrity sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw== - dependencies: - "@types/unist" "^3.0.0" - unist-util-is "^6.0.0" - -unist-util-visit@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz#a7de1f31f72ffd3519ea71814cccf5fd6a9217d6" - integrity sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg== - dependencies: - "@types/unist" "^3.0.0" - unist-util-is "^6.0.0" - unist-util-visit-parents "^6.0.0" - universal-user-agent@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa" @@ -15851,11 +15913,11 @@ unpipe@1.0.0, unpipe@~1.0.0: integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== unplugin@^1.3.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.14.1.tgz#c76d6155a661e43e6a897bce6b767a1ecc344c1a" - integrity sha512-lBlHbfSFPToDYp9pjXlUEFVxYLaue9f9T1HC+4OHlmj+HnMDdz9oZY+erXfoCe/5V/7gKUSY2jpXPb9S7f0f/w== + version "1.15.0" + resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.15.0.tgz#cd1e92e537ab14a03354d6f83f29d536fac2e5a9" + integrity sha512-jTPIs63W+DUEDW207ztbaoO7cQ4p5aVaB823LSlxpsFEU3Mykwxf3ZGC/wzxFJeZlASZYgVrWeo7LgOrqJZ8RA== dependencies: - acorn "^8.12.1" + acorn "^8.14.0" webpack-virtual-modules "^0.6.2" upath@2.0.1: @@ -16186,17 +16248,17 @@ webpack-virtual-modules@^0.6.0, webpack-virtual-modules@^0.6.2: integrity sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ== webpack@5, webpack@^5.64.4, webpack@^5.72.0: - version "5.95.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.95.0.tgz#8fd8c454fa60dad186fbe36c400a55848307b4c0" - integrity sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q== + version "5.96.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.96.1.tgz#3676d1626d8312b6b10d0c18cc049fba7ac01f0c" + integrity sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA== dependencies: - "@types/estree" "^1.0.5" + "@types/eslint-scope" "^3.7.7" + "@types/estree" "^1.0.6" "@webassemblyjs/ast" "^1.12.1" "@webassemblyjs/wasm-edit" "^1.12.1" "@webassemblyjs/wasm-parser" "^1.12.1" - acorn "^8.7.1" - acorn-import-attributes "^1.9.5" - browserslist "^4.21.10" + acorn "^8.14.0" + browserslist "^4.24.0" chrome-trace-event "^1.0.2" enhanced-resolve "^5.17.1" es-module-lexer "^1.2.1"