From 613919c30ccf98626a96d72f6c5d1d2354b87bc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andra=CC=81s=20Pozsgai?= Date: Thu, 2 Apr 2026 16:16:17 +0200 Subject: [PATCH 01/23] chore: common RundownStatusBar component between screens --- .../src/client/styles/countdown/director.scss | 83 +++------------- .../client/styles/countdown/presenter.scss | 94 +------------------ packages/webui/src/client/styles/main.scss | 2 + .../webui/src/client/styles/prompter.scss | 12 +++ .../src/client/styles/rundownStatusBar.scss | 73 ++++++++++++++ .../src/client/styles/tTimerDisplay.scss | 69 ++++++++++++++ .../DirectorScreen/DirectorScreen.tsx | 16 ++-- .../client/ui/ClockView/PresenterScreen.tsx | 23 +---- .../client/ui/ClockView/RundownStatusBar.tsx | 54 +++++++++++ .../src/client/ui/ClockView/TTimerDisplay.tsx | 2 +- .../src/client/ui/Prompter/PrompterView.tsx | 8 ++ 11 files changed, 241 insertions(+), 195 deletions(-) create mode 100644 packages/webui/src/client/styles/rundownStatusBar.scss create mode 100644 packages/webui/src/client/styles/tTimerDisplay.scss create mode 100644 packages/webui/src/client/ui/ClockView/RundownStatusBar.tsx diff --git a/packages/webui/src/client/styles/countdown/director.scss b/packages/webui/src/client/styles/countdown/director.scss index 0c034624ee1..d17850fee6d 100644 --- a/packages/webui/src/client/styles/countdown/director.scss +++ b/packages/webui/src/client/styles/countdown/director.scss @@ -208,14 +208,14 @@ $hold-status-color: $liveline-timecode-color; text-align: center; width: 100vw; margin-left: -13vw; - + .director-screen__body__part__timeto-name { color: #888; font-size: 9.63em; text-transform: uppercase; margin-top: -2vh; } - + .director-screen__body__part__timeto-countdown { margin-top: 4vh; grid-row: inherit; @@ -480,75 +480,14 @@ $hold-status-color: $liveline-timecode-color; .clocks-counter-heavy { font-weight: 600; } - - .director-screen__body__t-timer { - position: absolute; - bottom: 0; - right: 0; - text-align: right; - font-size: 5vh; - z-index: 10; - line-height: 1; - - .t-timer-display { - display: flex; - align-items: stretch; - justify-content: flex-end; - font-weight: 500; - background: #333; - border-radius: 0; - overflow: hidden; - - &__label { - display: flex; - align-items: center; - color: #fff; - padding-left: 0.4em; - padding-right: 0.2em; - font-size: 1em; - text-transform: uppercase; - letter-spacing: 0.05em; - font-stretch: condensed; - } - - &__value { - display: flex; - align-items: center; - color: #fff; - font-variant-numeric: tabular-nums; - padding: 0 0.2em; - font-size: 1em; - - .t-timer-display__part { - &--dimmed { - color: #aaa; - } - } - } - - &__over-under { - display: flex; - align-items: center; - justify-content: center; - margin: 0 0 0 0.2em; - font-size: 1em; - font-variant-numeric: tabular-nums; - padding: 0 0.4em; - line-height: 1.1; - min-width: 3.5em; - border-radius: 1em; - - &--over { - background-color: $general-late-color; - color: #fff; - } - - &--under { - background-color: #ffe900; - color: #000; - } - } - } - } } } + +.director-screen__bottom-bar { + position: fixed; + left: 0; + right: 0; + bottom: 0; + z-index: 20; + font-size: 4.1667vh; +} diff --git a/packages/webui/src/client/styles/countdown/presenter.scss b/packages/webui/src/client/styles/countdown/presenter.scss index df9a20d66a0..c6ee85323c3 100644 --- a/packages/webui/src/client/styles/countdown/presenter.scss +++ b/packages/webui/src/client/styles/countdown/presenter.scss @@ -162,99 +162,6 @@ $hold-status-color: $liveline-timecode-color; } .presenter-screen__rundown-status-bar { - display: grid; - grid-template-columns: auto fit-content(20em) fit-content(5em); - grid-template-rows: fit-content(1em); - font-size: 6em; - color: #888; - padding: 0 0.2em; - - .presenter-screen__rundown-status-bar__rundown-name { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - line-height: 1.44em; - } - - .presenter-screen__rundown-status-bar__t-timer { - margin-right: 1em; - font-size: 0.8em; - align-self: center; - justify-self: end; - - .t-timer-display { - display: flex; - align-items: stretch; - justify-content: flex-end; - font-weight: 500; - background: #333; - border-radius: 0; - overflow: hidden; - - &__label { - display: flex; - align-items: center; - color: #fff; - padding-left: 0.4em; - padding-right: 0.2em; - font-size: 1em; - text-transform: uppercase; - letter-spacing: 0.05em; - font-stretch: condensed; - } - - &__value { - display: flex; - align-items: center; - color: #fff; - font-variant-numeric: tabular-nums; - padding: 0 0.2em; - font-size: 1em; - - .t-timer-display__part { - &--dimmed { - color: #aaa; - } - } - } - - &__over-under { - display: flex; - align-items: center; - justify-content: center; - margin: 0 0 0 0.2em; - font-size: 1em; - font-variant-numeric: tabular-nums; - padding: 0 0.4em; - line-height: 1.1; - min-width: 3.5em; - border-radius: 1em; - - &--over { - background-color: $general-late-color; - color: #fff; - } - - &--under { - background-color: #ffe900; - color: #000; - } - } - } - } - - .presenter-screen__rundown-status-bar__countdown { - white-space: nowrap; - - color: $general-countdown-to-next-color; - - font-weight: 600; - font-size: 1.2em; - - &.over { - color: $general-late-color; - } - } } .presenter-screen__part + .presenter-screen__part { @@ -412,3 +319,4 @@ $hold-status-color: $liveline-timecode-color; } } } + diff --git a/packages/webui/src/client/styles/main.scss b/packages/webui/src/client/styles/main.scss index 254f12efbec..05a421722f9 100644 --- a/packages/webui/src/client/styles/main.scss +++ b/packages/webui/src/client/styles/main.scss @@ -38,6 +38,8 @@ input { @import 'overflowingContainer'; @import 'pieceStatusIcon'; @import 'prompter'; +@import 'tTimerDisplay'; +@import 'rundownStatusBar'; @import 'rundownList'; @import 'rundownSystemStatus'; @import 'settings'; diff --git a/packages/webui/src/client/styles/prompter.scss b/packages/webui/src/client/styles/prompter.scss index c3ca335957f..50d9c3c3eea 100644 --- a/packages/webui/src/client/styles/prompter.scss +++ b/packages/webui/src/client/styles/prompter.scss @@ -309,6 +309,18 @@ body.prompter-scrollbar { } } +.prompter-rundown-status-bar { + position: fixed; + left: 0; + right: 0; + bottom: 0; + z-index: 1100; +} + +.prompter-rundown-status-bar.presenter-screen__rundown-status-bar { + font-size: 6vh; +} + .script-text-formatted { --background-color: #000; --foreground-color: #fff; diff --git a/packages/webui/src/client/styles/rundownStatusBar.scss b/packages/webui/src/client/styles/rundownStatusBar.scss new file mode 100644 index 00000000000..ab4164f1378 --- /dev/null +++ b/packages/webui/src/client/styles/rundownStatusBar.scss @@ -0,0 +1,73 @@ +/** + * Styling for `ui/ClockView/RundownStatusBar.tsx`. + * + * View-level styles (Presenter/Prompter) should only handle placement and scaling. + */ +@import 'colorScheme'; + +.presenter-screen__rundown-status-bar { + display: grid; + grid-template-columns: auto fit-content(1em); + grid-template-rows: fit-content(1em); + font-size: 6em; + color: #888; + padding: 0 0 0 0.2em; + background: rgba(0, 0, 0, 0.75); + + .presenter-screen__rundown-status-bar__rundown-name { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + line-height: 1.44em; + } + + .presenter-screen__rundown-status-bar__right { + display: flex; + align-items: center; + justify-content: flex-end; + justify-self: end; + // Match the exact background of `.t-timer-display` + background: #333; + } + + .presenter-screen__rundown-status-bar__t-timer { + font-size: 1.2em; + display: flex; + align-items: center; + } + + .presenter-screen__rundown-status-bar__countdown { + white-space: nowrap; + + font-weight: 600; + font-size: 1.2em; + align-self: center; + + &.heavy-light { + display: inline-block; + border-radius: 1em; + padding: 0 0.2em 0 0.1em; + + &.light { + // Match `.prompter-timing-clock.heavy-light.light` + background-color: #ffe900; + color: #000; + } + + &.heavy { + // Match `.prompter-timing-clock.heavy-light.heavy` + background-color: $general-fast-color; + color: #fff; + text-shadow: + 1px 1px 0px #000, + 1px -1px 0px #000, + -1px -1px 0px #000, + -1px 1px 0px #000; + } + } + } + + &.presenter-screen__rundown-status-bar--no-title { + background: transparent; + } +} diff --git a/packages/webui/src/client/styles/tTimerDisplay.scss b/packages/webui/src/client/styles/tTimerDisplay.scss new file mode 100644 index 00000000000..fa8ceeeb90e --- /dev/null +++ b/packages/webui/src/client/styles/tTimerDisplay.scss @@ -0,0 +1,69 @@ +@import 'colorScheme'; + +/** + * Default styling for `ui/ClockView/TTimerDisplay.tsx`. + * + * Layout/positioning/font-size should be applied by the embedding view + * (eg. status bar, director screen), but the core look of the timer itself + * is defined here. + */ +.t-timer-display { + font-family: Roboto Flex; + display: flex; + align-items: stretch; + justify-content: flex-end; + font-weight: 500; + background: #333; + border-radius: 0; + overflow: hidden; + + &__label { + display: flex; + align-items: center; + color: #fff; + padding-right: 0.2em; + font-weight: inherit; + font-size: 1em; + text-transform: uppercase; + letter-spacing: 0.05em; + font-stretch: condensed; + } + + &__value { + display: flex; + align-items: center; + color: #fff; + font-variant-numeric: tabular-nums; + padding: 0 0.2em; + font-size: 1em; + + .t-timer-display__part { + &--dimmed { + color: #aaa; + } + } + } + + &__over-under { + display: flex; + align-items: center; + justify-content: center; + margin: 0 0 0 0.2em; + font-size: 1em; + font-variant-numeric: tabular-nums; + padding: 0 0.4em; + line-height: 1.1; + min-width: 3.5em; + border-radius: 1em; + + &--over { + background-color: $general-late-color; + color: #fff; + } + + &--under { + background-color: #ffe900; + color: #000; + } + } +} diff --git a/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreen.tsx b/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreen.tsx index 0887c899a50..d715a3a6782 100644 --- a/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreen.tsx +++ b/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreen.tsx @@ -44,13 +44,12 @@ import { AdjustLabelFit } from '../../util/AdjustLabelFit.js' import { AutoNextStatus } from '../../RundownView/RundownTiming/AutoNextStatus.js' import { useTranslation } from 'react-i18next' import { DBShowStyleBase, UIShowStyleBase } from '@sofie-automation/corelib/dist/dataModel/ShowStyleBase' -import { TTimerDisplay } from '../TTimerDisplay.js' -import { getDefaultTTimer } from '../../../lib/tTimerUtils.js' import { PieceInstance } from '@sofie-automation/corelib/dist/dataModel/PieceInstance.js' import { DirectorScreenTop } from './DirectorScreenTop.js' import { useTiming } from '../../RundownView/RundownTiming/withTiming.js' import { UIStudio } from '@sofie-automation/corelib/src/dataModel/Studio.js' import { PartInstance } from '@sofie-automation/corelib/src/dataModel/PartInstance.js' +import { RundownStatusBar } from '../RundownStatusBar.js' interface SegmentUi extends DBSegment { items: Array @@ -574,8 +573,6 @@ function DirectorScreenRender({ } } - const activeTTimer = getDefaultTTimer(playlist.tTimers) - return (
@@ -761,12 +758,13 @@ function DirectorScreenRender({ ) : null}
- {!!activeTTimer && ( -
- -
- )} + ) } diff --git a/packages/webui/src/client/ui/ClockView/PresenterScreen.tsx b/packages/webui/src/client/ui/ClockView/PresenterScreen.tsx index d8932727be9..af377e24b26 100644 --- a/packages/webui/src/client/ui/ClockView/PresenterScreen.tsx +++ b/packages/webui/src/client/ui/ClockView/PresenterScreen.tsx @@ -35,7 +35,7 @@ import { RundownLayoutsAPI } from '../../lib/rundownLayouts.js' import { ShelfDashboardLayout } from '../Shelf/ShelfDashboardLayout.js' import { parse as queryStringParse } from 'query-string' import { calculatePartInstanceExpectedDurationWithTransition } from '@sofie-automation/corelib/dist/playout/timings' -import { getPlaylistTimingDiff, RundownTimingContext } from '../../lib/rundownTiming.js' +import { RundownTimingContext } from '../../lib/rundownTiming.js' import { UIShowStyleBases, UIStudios } from '../Collections.js' import { PieceInstances, @@ -50,8 +50,7 @@ import { useSetDocumentClass, useSetDocumentDarkTheme } from '../util/useSetDocu import { useRundownAndShowStyleIdsForPlaylist } from '../util/useRundownAndShowStyleIdsForPlaylist.js' import { RundownPlaylistClientUtil } from '../../lib/rundownPlaylistUtil.js' import { CurrentPartOrSegmentRemaining } from '../RundownView/RundownHeader/CurrentPartOrSegmentRemaining.js' -import { TTimerDisplay } from './TTimerDisplay.js' -import { getDefaultTTimer } from '../../lib/tTimerUtils.js' +import { RundownStatusBar } from './RundownStatusBar.js' import { UIShowStyleBase } from '@sofie-automation/corelib/src/dataModel/ShowStyleBase.js' import { UIStudio } from '@sofie-automation/corelib/src/dataModel/Studio.js' import { PartInstance } from '@sofie-automation/corelib/src/dataModel/PartInstance.js' @@ -496,8 +495,6 @@ function PresenterScreenContentDefaultLayout({ timingDurations.remainingBudgetOnCurrentSegment ?? timingDurations.remainingTimeOnCurrentPart ?? 0 const expectedStart = PlaylistTiming.getExpectedStart(playlist.timing) - const overUnderClock = getPlaylistTimingDiff(playlist, timingDurations) ?? 0 - const activeTTimer = getDefaultTTimer(playlist.tTimers) return (
@@ -599,21 +596,7 @@ function PresenterScreenContentDefaultLayout({ ) : null}
-
-
- {playlist ? playlist.name : 'UNKNOWN'} -
-
- {!!activeTTimer && } -
-
= 0, - })} - > - {RundownUtils.formatDiffToTimecode(overUnderClock, true, false, true, true, true, undefined, true, true)} -
-
+ ) } diff --git a/packages/webui/src/client/ui/ClockView/RundownStatusBar.tsx b/packages/webui/src/client/ui/ClockView/RundownStatusBar.tsx new file mode 100644 index 00000000000..8b0f8c34ca8 --- /dev/null +++ b/packages/webui/src/client/ui/ClockView/RundownStatusBar.tsx @@ -0,0 +1,54 @@ +import ClassNames from 'classnames' +import { DBRundownPlaylist } from '@sofie-automation/corelib/dist/dataModel/RundownPlaylist' +import { RundownUtils } from '../../lib/rundown.js' +import { getPlaylistTimingDiff } from '../../lib/rundownTiming.js' +import { getDefaultTTimer } from '../../lib/tTimerUtils.js' +import { useTiming } from '../RundownView/RundownTiming/withTiming.js' +import { TTimerDisplay } from './TTimerDisplay.js' + +interface RundownStatusBarProps { + playlist?: DBRundownPlaylist + className?: string + showPlaylistName?: boolean + showDiff?: boolean +} + +export function RundownStatusBar({ + playlist, + className, + showPlaylistName = true, + showDiff = true, +}: Readonly): JSX.Element { + const timingDurations = useTiming() + + const overUnderClock = playlist ? (getPlaylistTimingDiff(playlist, timingDurations) ?? 0) : 0 + const activeTTimer = playlist ? getDefaultTTimer(playlist.tTimers) : undefined + + return ( +
+ {showPlaylistName && ( +
{playlist ? playlist.name : 'UNKNOWN'}
+ )} +
+
+ {!!activeTTimer && } +
+ {showDiff && ( +
= 0, + light: Math.floor(overUnderClock / 1000) < 0, + })} + > + {RundownUtils.formatDiffToTimecode(overUnderClock, true, false, true, true, true, undefined, true, true)} +
+ )} +
+
+ ) +} diff --git a/packages/webui/src/client/ui/ClockView/TTimerDisplay.tsx b/packages/webui/src/client/ui/ClockView/TTimerDisplay.tsx index 0f05043ed44..1059fc80058 100644 --- a/packages/webui/src/client/ui/ClockView/TTimerDisplay.tsx +++ b/packages/webui/src/client/ui/ClockView/TTimerDisplay.tsx @@ -24,7 +24,7 @@ export function TTimerDisplay({ timer }: Readonly): JSX.Elem return (
- {timer.label} + {timer.label ? {timer.label} : null} {timerSign} {timerParts.map((p, i) => ( diff --git a/packages/webui/src/client/ui/Prompter/PrompterView.tsx b/packages/webui/src/client/ui/Prompter/PrompterView.tsx index d8cde5358e9..173807da6d3 100644 --- a/packages/webui/src/client/ui/Prompter/PrompterView.tsx +++ b/packages/webui/src/client/ui/Prompter/PrompterView.tsx @@ -32,6 +32,7 @@ import { RundownTimingProvider } from '../RundownView/RundownTiming/RundownTimin import { StudioScreenSaver } from '../StudioScreenSaver/StudioScreenSaver.js' import { PrompterControlManager } from './controller/manager.js' import { OverUnderTimer } from './OverUnderTimer.js' +import { RundownStatusBar } from '../ClockView/RundownStatusBar.js' import { PrompterAPI, PrompterData, PrompterDataPart, PrompterDataPiece } from './prompter.js' import { doUserAction, UserAction } from '../../lib/clientUserAction.js' import { MeteorCall } from '../../lib/meteorApi.js' @@ -76,6 +77,7 @@ interface PrompterConfig { showScroll: boolean debug: boolean showOverUnder: boolean + showPlaylistName: boolean addBlankLine: boolean } @@ -220,6 +222,7 @@ export class PrompterViewContent extends React.Component )} + {this.configOptions.debug ? (
Date: Thu, 2 Apr 2026 16:51:35 +0200 Subject: [PATCH 02/23] chore: remove legacy timing clock --- .../webui/src/client/styles/tTimerDisplay.scss | 1 + .../src/client/ui/ClockView/RundownStatusBar.tsx | 14 -------------- 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/packages/webui/src/client/styles/tTimerDisplay.scss b/packages/webui/src/client/styles/tTimerDisplay.scss index fa8ceeeb90e..3ef2a711252 100644 --- a/packages/webui/src/client/styles/tTimerDisplay.scss +++ b/packages/webui/src/client/styles/tTimerDisplay.scss @@ -21,6 +21,7 @@ display: flex; align-items: center; color: #fff; + padding-left: 0.2em; padding-right: 0.2em; font-weight: inherit; font-size: 1em; diff --git a/packages/webui/src/client/ui/ClockView/RundownStatusBar.tsx b/packages/webui/src/client/ui/ClockView/RundownStatusBar.tsx index 8b0f8c34ca8..61a8b07717e 100644 --- a/packages/webui/src/client/ui/ClockView/RundownStatusBar.tsx +++ b/packages/webui/src/client/ui/ClockView/RundownStatusBar.tsx @@ -19,9 +19,6 @@ export function RundownStatusBar({ showPlaylistName = true, showDiff = true, }: Readonly): JSX.Element { - const timingDurations = useTiming() - - const overUnderClock = playlist ? (getPlaylistTimingDiff(playlist, timingDurations) ?? 0) : 0 const activeTTimer = playlist ? getDefaultTTimer(playlist.tTimers) : undefined return ( @@ -37,17 +34,6 @@ export function RundownStatusBar({
{!!activeTTimer && }
- {showDiff && ( -
= 0, - light: Math.floor(overUnderClock / 1000) < 0, - })} - > - {RundownUtils.formatDiffToTimecode(overUnderClock, true, false, true, true, true, undefined, true, true)} -
- )}
) From 5f71143756bda05152b87b8aa29c58435a36a2ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andra=CC=81s=20Pozsgai?= Date: Thu, 2 Apr 2026 17:12:15 +0200 Subject: [PATCH 03/23] feat: reusable counter component --- packages/webui/src/client/collections/lib.ts | 17 +++- .../webui/src/client/styles/_colorScheme.scss | 1 + .../client/styles/countdown/presenter.scss | 38 ++++++--- .../src/client/styles/counterComponents.scss | 4 +- .../src/client/styles/defaultColors.scss | 1 + .../webui/src/client/styles/prompter.scss | 32 +++++--- .../src/client/styles/rundownStatusBar.scss | 11 +-- .../src/client/styles/tTimerDisplay.scss | 80 ++++++++++++------- .../DirectorScreen/DirectorScreenTop.tsx | 10 +-- .../client/ui/ClockView/PresenterScreen.tsx | 35 ++++++++ .../client/ui/ClockView/RundownStatusBar.tsx | 4 - .../src/client/ui/ClockView/TTimerDisplay.tsx | 18 +---- .../src/client/ui/Prompter/OverUnderTimer.tsx | 73 +++++++++++++---- .../src/client/ui/Prompter/PrompterView.tsx | 8 +- 14 files changed, 230 insertions(+), 102 deletions(-) diff --git a/packages/webui/src/client/collections/lib.ts b/packages/webui/src/client/collections/lib.ts index 0b0aa7d8ef6..49d1053f6df 100644 --- a/packages/webui/src/client/collections/lib.ts +++ b/packages/webui/src/client/collections/lib.ts @@ -10,7 +10,7 @@ import { PeripheralDevicePubSubCollections, PeripheralDevicePubSubCollectionsNames, } from '@sofie-automation/shared-lib/dist/pubsub/peripheralDevice' -import { +import type { MongoCollection, MongoReadOnlyCollection, MongoCursor, @@ -22,7 +22,20 @@ import { import { CustomCollectionName as CustomCorelibCollectionName } from '@sofie-automation/corelib/dist/dataModel/Collections' import { CorelibPubSubCustomCollections } from '@sofie-automation/corelib/dist/pubsub' -export * from '@sofie-automation/meteor-lib/dist/collections/lib' +export type { + FieldNames, + FindOneOptions, + FindOptions, + IndexSpecifier, + MongoCollection, + MongoCursor, + MongoLiveQueryHandle, + MongoReadOnlyCollection, + ObserveCallbacks, + ObserveChangesCallbacks, + UpdateOptions, + UpsertOptions, +} from '@sofie-automation/meteor-lib/dist/collections/lib' export const ClientCollections = new Map | WrappedMongoReadOnlyCollection>() function registerClientCollection( diff --git a/packages/webui/src/client/styles/_colorScheme.scss b/packages/webui/src/client/styles/_colorScheme.scss index eea945a755c..603a0dd3bc3 100644 --- a/packages/webui/src/client/styles/_colorScheme.scss +++ b/packages/webui/src/client/styles/_colorScheme.scss @@ -19,6 +19,7 @@ $general-live-remote-color: var(--general-live-remote-color); $general-live-guest-color: var(--general-live-guest-color); $general-late-color: var(--general-late-color); +$over-under-over-color: var(--over-under-over-color); $general-fast-color: var(--general-fast-color); $general-fast-color--shadow: var(--general-fast-color--shadow); $general-countdown-to-next-color: var(--general-countdown-to-next-color); diff --git a/packages/webui/src/client/styles/countdown/presenter.scss b/packages/webui/src/client/styles/countdown/presenter.scss index c6ee85323c3..19da73e17e8 100644 --- a/packages/webui/src/client/styles/countdown/presenter.scss +++ b/packages/webui/src/client/styles/countdown/presenter.scss @@ -15,10 +15,7 @@ $hold-status-color: $liveline-timecode-color; .presenter-screen { position: fixed; - top: 0; - bottom: 0; - left: 0; - right: 0; + inset: 0; font-size: 1vh; @@ -28,6 +25,22 @@ $hold-status-color: $liveline-timecode-color; overflow: hidden; white-space: nowrap; + // Over/under timer (reuses `screen-timing-clock` class from prompter view), + // but presenter view has a tiny base font-size (1vh), so we need explicit sizing + layering. + .screen-timing-clock { + position: fixed; + left: auto; + font-size: 9.8vmin; + + z-index: 2000; + + padding: 0 0.3em; + border-radius: 1em; + box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.5); + + margin: 0; + } + .presenter-screen__part { display: grid; grid-template: @@ -47,9 +60,17 @@ $hold-status-color: $liveline-timecode-color; font-weight: bold; &.live { - background: $general-live-color; + // Layer the director-style gradient over the live color + background: + linear-gradient( + 90deg, + rgba(223, 0, 0, 0) 0%, + rgba(223, 0, 0, 0) 50%, + rgba(116, 0, 0, 0.808) 69%, + rgba(0, 0, 0, 0.8) 74% + ), + $general-live-color; color: #fff; - border-top: 0.1em solid #fff; -webkit-text-stroke: black; -webkit-text-stroke-width: 0.025em; text-shadow: 0px 0px 20px #00000044; @@ -58,7 +79,6 @@ $hold-status-color: $liveline-timecode-color; &.next { background: $general-next-color; color: #000; - border-top: 0.1em solid #fff; } } @@ -161,9 +181,6 @@ $hold-status-color: $liveline-timecode-color; } } - .presenter-screen__rundown-status-bar { - } - .presenter-screen__part + .presenter-screen__part { border-top: solid 0.8em #454545; } @@ -319,4 +336,3 @@ $hold-status-color: $liveline-timecode-color; } } } - diff --git a/packages/webui/src/client/styles/counterComponents.scss b/packages/webui/src/client/styles/counterComponents.scss index 36b206f604b..585b19054c8 100644 --- a/packages/webui/src/client/styles/counterComponents.scss +++ b/packages/webui/src/client/styles/counterComponents.scss @@ -62,7 +62,7 @@ display: inline-block; } .over { - background-color: #ff5218; + background-color: $over-under-over-color; border-radius: 139px; align-self: stretch; gap: 10px; @@ -124,7 +124,7 @@ } .counter-component__time-since-planned-end { - color: #ff5218; + color: $over-under-over-color; text-align: right; margin-left: 1.2vw; diff --git a/packages/webui/src/client/styles/defaultColors.scss b/packages/webui/src/client/styles/defaultColors.scss index 41be88ec005..86612b5e352 100644 --- a/packages/webui/src/client/styles/defaultColors.scss +++ b/packages/webui/src/client/styles/defaultColors.scss @@ -22,6 +22,7 @@ --general-live-guest-color: #008a92; --general-late-color: #ff0000; + --over-under-over-color: #ff5218; --general-fast-color: #ff0000; --general-countdown-to-next-color: #ffff00; --general-freeze-color: #00bfff; diff --git a/packages/webui/src/client/styles/prompter.scss b/packages/webui/src/client/styles/prompter.scss index 50d9c3c3eea..dd9722c251d 100644 --- a/packages/webui/src/client/styles/prompter.scss +++ b/packages/webui/src/client/styles/prompter.scss @@ -90,7 +90,8 @@ body.prompter-scrollbar { .prompter-part { text-align: center; letter-spacing: 0.1em; - font-size: 50%; + font-size: 63%; + height: 12.2vh; } .overlay-fix { pointer-events: none; @@ -129,7 +130,16 @@ body.prompter-scrollbar { &.live { //border-bottom: 0.2em solid #f55; - background: $general-live-color; + // Layer the director-style gradient over the live color + background: + linear-gradient( + 90deg, + rgba(223, 0, 0, 0) 0%, + rgba(223, 0, 0, 0) 50%, + rgba(116, 0, 0, 0.808) 68%, + rgba(0, 0, 0, 0.8) 73% + ), + $general-live-color; color: #fff; -webkit-text-stroke: black; -webkit-text-stroke-width: 0.025em; @@ -277,16 +287,19 @@ body.prompter-scrollbar { } } -.prompter-timing-clock { +.screen-timing-clock { + font-family: Roboto Flex; position: fixed; display: block; top: 0; right: 0; left: auto; - font-size: 75%; + font-size: 9.8vmin; padding: 0.05em 0.3em; border-radius: 1em; box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.5); + line-height: 1; + margin: 0; &.heavy-light { font-weight: 600; @@ -298,13 +311,12 @@ body.prompter-scrollbar { } &.heavy { - background-color: $general-fast-color; - color: #fff; + color: black; text-shadow: - 1px 1px 0px #000, - 1px -1px 0px #000, - -1px -1px 0px #000, - -1px 1px 0px #000; + 0.02em 1px 0px #000, + 0.02em -1px 0px #000, + -0.02em -1px 0px #000, + -0.02em 1px 0px #000; } } } diff --git a/packages/webui/src/client/styles/rundownStatusBar.scss b/packages/webui/src/client/styles/rundownStatusBar.scss index ab4164f1378..6a9cd3a549a 100644 --- a/packages/webui/src/client/styles/rundownStatusBar.scss +++ b/packages/webui/src/client/styles/rundownStatusBar.scss @@ -49,20 +49,15 @@ padding: 0 0.2em 0 0.1em; &.light { - // Match `.prompter-timing-clock.heavy-light.light` + // Match `.screen-timing-clock.heavy-light.light` background-color: #ffe900; color: #000; } &.heavy { - // Match `.prompter-timing-clock.heavy-light.heavy` + // Match `.screen-timing-clock.heavy-light.heavy` background-color: $general-fast-color; - color: #fff; - text-shadow: - 1px 1px 0px #000, - 1px -1px 0px #000, - -1px -1px 0px #000, - -1px 1px 0px #000; + color: #000; } } } diff --git a/packages/webui/src/client/styles/tTimerDisplay.scss b/packages/webui/src/client/styles/tTimerDisplay.scss index 3ef2a711252..d9200ed84f8 100644 --- a/packages/webui/src/client/styles/tTimerDisplay.scss +++ b/packages/webui/src/client/styles/tTimerDisplay.scss @@ -8,35 +8,41 @@ * is defined here. */ .t-timer-display { - font-family: Roboto Flex; display: flex; align-items: stretch; justify-content: flex-end; - font-weight: 500; + background: #333; border-radius: 0; overflow: hidden; + font-family: Roboto Flex; + font-weight: bold; + font-size: 1.2em; + letter-spacing: -0.01em; + line-height: 1; + &__label { display: flex; align-items: center; + + padding-left: 0.1em; + padding-right: 0.1em; + color: #fff; - padding-left: 0.2em; - padding-right: 0.2em; font-weight: inherit; - font-size: 1em; text-transform: uppercase; - letter-spacing: 0.05em; font-stretch: condensed; } &__value { display: flex; align-items: center; + padding: 0 0.1em 0 0.2em; + color: #fff; font-variant-numeric: tabular-nums; - padding: 0 0.2em; - font-size: 1em; + letter-spacing: -0.04em; .t-timer-display__part { &--dimmed { @@ -44,27 +50,47 @@ } } } +} - &__over-under { - display: flex; - align-items: center; - justify-content: center; - margin: 0 0 0 0.2em; - font-size: 1em; - font-variant-numeric: tabular-nums; - padding: 0 0.4em; - line-height: 1.1; - min-width: 3.5em; - border-radius: 1em; +/** + * Shared over/under pill styling (used by `OverUnderTimer` in multiple screens). + * + * View-level placement/scaling should be applied by the embedding view (eg. prompter/presenter/director), + * but the core look of the pill itself is defined here. + */ +.over-under-timer { + display: flex; + align-items: center; + justify-content: center; - &--over { - background-color: $general-late-color; - color: #fff; - } + min-width: 3.5em; + border-radius: 1em; + margin: 0 0 0 0.2em; + padding: 0 0.25em; - &--under { - background-color: #ffe900; - color: #000; - } + font-variant-numeric: tabular-nums; + text-shadow: + 0.003em 0.5px 0px #000, + 0.003em -0.5px 0px #000, + -0.003em -0.5px 0px #000, + -0.003em 0.5px 0px #000; + + &--over { + background-color: $over-under-over-color; + color: black; } + + &--under { + background-color: #ffe900; + color: #000; + } +} + +/** + * When the over/under pill is used as a standalone screen overlay (eg. prompter/presenter), + * don't apply the spacing/min-width that the inline `TTimerDisplay` layout expects. + */ +.screen-timing-clock.over-under-timer { + min-width: auto; + margin: 0; } diff --git a/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreenTop.tsx b/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreenTop.tsx index b1748a01285..82ff4172677 100644 --- a/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreenTop.tsx +++ b/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreenTop.tsx @@ -1,16 +1,16 @@ import { - OverUnderClockComponent, PlannedEndComponent, TimeSincePlannedEndComponent, TimeToPlannedEndComponent, } from '../../../lib/Components/CounterComponents' -import { useTiming } from '../../RundownView/RundownTiming/withTiming' -import { getPlaylistTimingDiff } from '../../../lib/rundownTiming' +import { useTiming } from '../../RundownView/RundownTiming/withTiming.js' +import { getPlaylistTimingDiff } from '../../../lib/rundownTiming.js' import { DBRundownPlaylist } from '@sofie-automation/corelib/dist/dataModel/RundownPlaylist/RundownPlaylist' -import { getCurrentTime } from '../../../lib/systemTime' +import { getCurrentTime } from '../../../lib/systemTime.js' import { useTranslation } from 'react-i18next' import { PlaylistTiming } from '@sofie-automation/corelib/dist/playout/rundownTiming' import { PartInstance } from '@sofie-automation/corelib/src/dataModel/PartInstance' +import { OverUnderTimer } from '../../Prompter/OverUnderTimer.js' export interface DirectorScreenTopProps { playlist: DBRundownPlaylist @@ -77,7 +77,7 @@ export function DirectorScreenTop({ )}
- +
{t('Over/Under')}
diff --git a/packages/webui/src/client/ui/ClockView/PresenterScreen.tsx b/packages/webui/src/client/ui/ClockView/PresenterScreen.tsx index af377e24b26..629502261a6 100644 --- a/packages/webui/src/client/ui/ClockView/PresenterScreen.tsx +++ b/packages/webui/src/client/ui/ClockView/PresenterScreen.tsx @@ -3,6 +3,7 @@ import { DBSegment } from '@sofie-automation/corelib/dist/dataModel/Segment' import { PartUi } from '../SegmentTimeline/SegmentTimelineContainer.js' import { DBRundownPlaylist } from '@sofie-automation/corelib/dist/dataModel/RundownPlaylist/RundownPlaylist' import { Rundown } from '@sofie-automation/corelib/dist/dataModel/Rundown' +import type { CSSProperties } from 'react' import { useTiming } from '../RundownView/RundownTiming/withTiming.js' import { useSubscription, @@ -54,6 +55,7 @@ import { RundownStatusBar } from './RundownStatusBar.js' import { UIShowStyleBase } from '@sofie-automation/corelib/src/dataModel/ShowStyleBase.js' import { UIStudio } from '@sofie-automation/corelib/src/dataModel/Studio.js' import { PartInstance } from '@sofie-automation/corelib/src/dataModel/PartInstance.js' +import { OverUnderTimer } from '../Prompter/OverUnderTimer.js' // TODO: We have another definition of this in the Director screen, and there is also another SegmentUI type. We should look into clearing this up. interface SegmentUi extends DBSegment { @@ -87,6 +89,8 @@ export interface PresenterScreenTrackedProps { rundownIds: RundownId[] rundownLayouts?: Array presenterLayoutId: RundownLayoutId | undefined + margin: number | undefined + fontSize: number | undefined } function getShowStyleBaseIdSegmentPartUi( @@ -217,6 +221,18 @@ export const getPresenterScreenReactive = ( const params = queryStringParse(location.search) const presenterLayoutId = protectString((params['presenterLayout'] as string) || '') + const margin = (() => { + // Support both `margin` (PrompterView) and `margins` / `m` (legacy/typos in URLs) + const raw = (params['margin'] ?? params['margins'] ?? params['m']) as string + const val = Number.parseInt(raw, 10) + return Number.isNaN(val) ? undefined : val + })() + const fontSize = (() => { + // Support both `fontsize` (PrompterView) and `fontSize` (camelCase URLs) + const raw = (params['fontsize'] ?? params['fontSize']) as string + const val = Number.parseInt(raw, 10) + return Number.isNaN(val) ? undefined : val + })() if (playlist) { rundowns = RundownPlaylistCollectionUtil.getRundownsOrdered(playlist) @@ -300,6 +316,8 @@ export const getPresenterScreenReactive = ( rundownLayouts: rundowns.length > 0 ? RundownLayouts.find({ showStyleBaseId: rundowns[0].showStyleBaseId }).fetch() : undefined, presenterLayoutId, + margin, + fontSize, } } @@ -378,6 +396,8 @@ export function PresenterScreen({ playlistId, studioId }: PresenterScreenProps): rundowns={presenterScreenProps?.rundowns ?? []} segments={presenterScreenProps?.segments ?? []} showStyleBaseIds={presenterScreenProps?.showStyleBaseIds ?? []} + margin={presenterScreenProps?.margin} + fontSize={presenterScreenProps?.fontSize} studio={presenterScreenProps?.studio} studioId={studioId} timingDurations={timing} @@ -489,8 +509,18 @@ function PresenterScreenContentDefaultLayout({ nextPartInstance, nextSegment, rundownIds, + margin, + fontSize, }: Readonly) { if (playlist && playlistId && segments) { + const overUnderStyle: CSSProperties = { + marginTop: margin ? `${margin}vh` : undefined, + marginBottom: margin ? `${margin}vh` : undefined, + marginRight: margin ? `${margin}vw` : undefined, + marginLeft: margin ? `${margin}vw` : undefined, + fontSize: (fontSize ?? 0) > 12 ? `12vmin` : undefined, + } + const currentPartOrSegmentCountdown = timingDurations.remainingBudgetOnCurrentSegment ?? timingDurations.remainingTimeOnCurrentPart ?? 0 @@ -499,6 +529,11 @@ function PresenterScreenContentDefaultLayout({ return (
+
): JSX.Element { const activeTTimer = playlist ? getDefaultTTimer(playlist.tTimers) : undefined diff --git a/packages/webui/src/client/ui/ClockView/TTimerDisplay.tsx b/packages/webui/src/client/ui/ClockView/TTimerDisplay.tsx index 1059fc80058..f36eb0efa24 100644 --- a/packages/webui/src/client/ui/ClockView/TTimerDisplay.tsx +++ b/packages/webui/src/client/ui/ClockView/TTimerDisplay.tsx @@ -1,8 +1,9 @@ import { RundownTTimer } from '@sofie-automation/corelib/dist/dataModel/RundownPlaylist/TTimers' import { RundownUtils } from '../../lib/rundown.js' -import { calculateTTimerDiff, calculateTTimerOverUnder } from '../../lib/tTimerUtils' -import { useTiming } from '../RundownView/RundownTiming/withTiming' +import { calculateTTimerDiff, calculateTTimerOverUnder } from '../../lib/tTimerUtils.js' +import { useTiming } from '../RundownView/RundownTiming/withTiming.js' import classNames from 'classnames' +import { OverUnderTimer } from '../Prompter/OverUnderTimer.js' interface TTimerDisplayProps { timer: RundownTTimer @@ -17,7 +18,6 @@ export function TTimerDisplay({ timer }: Readonly): JSX.Elem const diff = calculateTTimerDiff(timer, now) const overUnder = calculateTTimerOverUnder(timer, now) - const timerStr = RundownUtils.formatDiffToTimecode(Math.abs(diff), false, true, true, false, true) const timerParts = timerStr.split(':') const timerSign = diff >= 0 ? '' : '-' @@ -39,17 +39,7 @@ export function TTimerDisplay({ timer }: Readonly): JSX.Elem ))} - {overUnder !== undefined && ( - 0, - 't-timer-display__over-under--under': overUnder <= 0, - })} - > - {overUnder > 0 ? '+' : '\u2013'} - {RundownUtils.formatDiffToTimecode(Math.abs(overUnder), false, true, true, false, true)} - - )} +
) } diff --git a/packages/webui/src/client/ui/Prompter/OverUnderTimer.tsx b/packages/webui/src/client/ui/Prompter/OverUnderTimer.tsx index ff7323b499f..7b1a23e1b55 100644 --- a/packages/webui/src/client/ui/Prompter/OverUnderTimer.tsx +++ b/packages/webui/src/client/ui/Prompter/OverUnderTimer.tsx @@ -1,32 +1,71 @@ -import * as React from 'react' -import { useTiming } from '../RundownView/RundownTiming/withTiming.js' -import { DBRundownPlaylist } from '@sofie-automation/corelib/dist/dataModel/RundownPlaylist/RundownPlaylist' +import React from 'react' +import classNames from 'classnames' +import { DBRundownPlaylist } from '@sofie-automation/corelib/dist/dataModel/RundownPlaylist' import { RundownUtils } from '../../lib/rundown.js' -import ClassNames from 'classnames' +import { useTiming } from '../RundownView/RundownTiming/withTiming.js' import { getPlaylistTimingDiff } from '../../lib/rundownTiming.js' -interface IProps { - rundownPlaylist: DBRundownPlaylist - style?: React.CSSProperties | undefined +type OverUnderTimerBaseProps = { + /** Optional wrapper around the badge, useful for screens that style via container font-size (eg. director). */ + containerClassName?: string + className?: string + style?: React.CSSProperties } +type OverUnderTimerValueProps = + | { + valueMs: number | undefined + rundownPlaylist?: never + } + | { + valueMs?: never + rundownPlaylist: DBRundownPlaylist + } + +type OverUnderTimerInnerProps = OverUnderTimerBaseProps & { valueMs: number | undefined } + /** - * Shows an over/under timer for the rundownPlaylist. Requires a RundownTimingContext from the RundownTimingProvider + * Over/under "pill" timer. + * Can either take a direct `valueMs` or a `rundownPlaylist` (requires RundownTiming context). */ -export function OverUnderTimer({ rundownPlaylist, style }: IProps): JSX.Element { +export function OverUnderTimer(props: Readonly): JSX.Element | null { + if ('valueMs' in props) { + return + } else { + return + } +} + +function OverUnderTimerFromPlaylist( + props: Readonly +): JSX.Element | null { const timingDurations = useTiming() + const valueMs = getPlaylistTimingDiff(props.rundownPlaylist, timingDurations) ?? 0 + return +} - const overUnderClock = getPlaylistTimingDiff(rundownPlaylist, timingDurations) ?? 0 +function OverUnderTimerInner(props: Readonly): JSX.Element | null { + const valueMs = props.valueMs + if (valueMs === undefined) return null - return ( + const isOver = valueMs > 0 + + const badge = ( = 0, - })} + style={props.style} + className={classNames( + 'over-under-timer', + { + 'over-under-timer--over': isOver, + 'over-under-timer--under': !isOver, + }, + props.className + )} > - {RundownUtils.formatDiffToTimecode(overUnderClock, true, false, true, true, true, undefined, true, true)} + {isOver ? '+' : '\u2013'} + {RundownUtils.formatDiffToTimecode(Math.abs(valueMs), false, true, true, false, true)} ) + + return props.containerClassName ?
{badge}
: badge } diff --git a/packages/webui/src/client/ui/Prompter/PrompterView.tsx b/packages/webui/src/client/ui/Prompter/PrompterView.tsx index 173807da6d3..611267c648c 100644 --- a/packages/webui/src/client/ui/Prompter/PrompterView.tsx +++ b/packages/webui/src/client/ui/Prompter/PrompterView.tsx @@ -31,13 +31,13 @@ import { UIStudios } from '../Collections.js' import { RundownTimingProvider } from '../RundownView/RundownTiming/RundownTimingProvider.js' import { StudioScreenSaver } from '../StudioScreenSaver/StudioScreenSaver.js' import { PrompterControlManager } from './controller/manager.js' -import { OverUnderTimer } from './OverUnderTimer.js' import { RundownStatusBar } from '../ClockView/RundownStatusBar.js' import { PrompterAPI, PrompterData, PrompterDataPart, PrompterDataPiece } from './prompter.js' import { doUserAction, UserAction } from '../../lib/clientUserAction.js' import { MeteorCall } from '../../lib/meteorApi.js' import { MdDisplay } from './Formatted/MdDisplay.js' import { UIStudio } from '@sofie-automation/corelib/src/dataModel/Studio.js' +import { OverUnderTimer } from './OverUnderTimer.js' const DEFAULT_UPDATE_THROTTLE = 250 //ms const PIECE_MISSING_UPDATE_THROTTLE = 2000 //ms @@ -613,7 +613,11 @@ export class PrompterViewContent extends React.Component {this.configOptions.showOverUnder && ( - + )} Date: Thu, 9 Apr 2026 12:31:54 +0200 Subject: [PATCH 04/23] fix: director screen rehearsal counter --- .../src/client/styles/countdown/director.scss | 23 ++++--- .../DirectorScreen/DirectorScreenTop.tsx | 68 +++++++++---------- 2 files changed, 45 insertions(+), 46 deletions(-) diff --git a/packages/webui/src/client/styles/countdown/director.scss b/packages/webui/src/client/styles/countdown/director.scss index d17850fee6d..af29abd8b96 100644 --- a/packages/webui/src/client/styles/countdown/director.scss +++ b/packages/webui/src/client/styles/countdown/director.scss @@ -17,6 +17,12 @@ $hold-status-color: $liveline-timecode-color; font-family: Roboto Flex; font-style: normal; + // Over/under timer overlay (reuses `screen-timing-clock` from prompter view) + // Ensure it layers above the fixed top bar. + .screen-timing-clock { + z-index: 2000; + } + .director-screen__top { position: fixed; top: 0; @@ -35,24 +41,19 @@ $hold-status-color: $liveline-timecode-color; padding: 0 0.2em; text-transform: uppercase; - .director-screen__top__planned-end { - text-align: left; + .director-screen__top__spacer { + flex-grow: 4; } - .director-screen__top__time-to { - text-align: center; + .director-screen__top__planned-end { + flex-grow: 2; + text-align: left; } + .director-screen__top__center, .director-screen__top__planned-to { text-align: center; } - .director-screen__top__planned-since { - margin-left: -50px; - } - - .director-screen__top__over-under { - margin-left: 5vw; - } } .director-screen__body { diff --git a/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreenTop.tsx b/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreenTop.tsx index 82ff4172677..488ede9a7b0 100644 --- a/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreenTop.tsx +++ b/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreenTop.tsx @@ -41,46 +41,44 @@ export function DirectorScreenTop({ const { t } = useTranslation() return ( -
- {expectedEnd ? ( -
-
- + <> +
+ {expectedEnd ? ( +
+
+ +
+ {t('Planned End')}
- {t('Planned End')} -
- ) : null} - {expectedEnd && expectedEnd > now ? ( -
-
- + ) : null} + {expectedEnd && expectedEnd > now ? ( +
+
+ +
+ + {rehearsalInProgress ? t('Time to rehearsal end') : t('Time to planned end')} +
- - {rehearsalInProgress ? t('Time to rehearsal end') : t('Time to planned end')} - -
- ) : ( -
-
- - + ) : ( +
+
+ +
+ {rehearsalInProgress ? t('Time since rehearsal end') : t('Time since planned end')}
-
- )} -
-
- -
- {t('Over/Under')} + )} +
-
+ + ) } From ff7b79b017f754d26e4a7decea960c607daf62a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andra=CC=81s=20Pozsgai?= Date: Tue, 14 Apr 2026 14:41:01 +0200 Subject: [PATCH 05/23] chore: fix broken import --- packages/webui/src/client/ui/ClockView/RundownStatusBar.tsx | 2 +- packages/webui/src/client/ui/Prompter/OverUnderTimer.tsx | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/webui/src/client/ui/ClockView/RundownStatusBar.tsx b/packages/webui/src/client/ui/ClockView/RundownStatusBar.tsx index b35cfe6abf1..0952600453f 100644 --- a/packages/webui/src/client/ui/ClockView/RundownStatusBar.tsx +++ b/packages/webui/src/client/ui/ClockView/RundownStatusBar.tsx @@ -1,7 +1,7 @@ import ClassNames from 'classnames' -import { DBRundownPlaylist } from '@sofie-automation/corelib/dist/dataModel/RundownPlaylist' import { getDefaultTTimer } from '../../lib/tTimerUtils.js' import { TTimerDisplay } from './TTimerDisplay.js' +import { DBRundownPlaylist } from '@sofie-automation/corelib/src/dataModel/RundownPlaylist/RundownPlaylist.js' interface RundownStatusBarProps { playlist?: DBRundownPlaylist diff --git a/packages/webui/src/client/ui/Prompter/OverUnderTimer.tsx b/packages/webui/src/client/ui/Prompter/OverUnderTimer.tsx index 7b1a23e1b55..c2253282c29 100644 --- a/packages/webui/src/client/ui/Prompter/OverUnderTimer.tsx +++ b/packages/webui/src/client/ui/Prompter/OverUnderTimer.tsx @@ -1,9 +1,9 @@ import React from 'react' import classNames from 'classnames' -import { DBRundownPlaylist } from '@sofie-automation/corelib/dist/dataModel/RundownPlaylist' import { RundownUtils } from '../../lib/rundown.js' import { useTiming } from '../RundownView/RundownTiming/withTiming.js' import { getPlaylistTimingDiff } from '../../lib/rundownTiming.js' +import { DBRundownPlaylist } from '@sofie-automation/corelib/src/dataModel/RundownPlaylist/RundownPlaylist.js' type OverUnderTimerBaseProps = { /** Optional wrapper around the badge, useful for screens that style via container font-size (eg. director). */ @@ -28,7 +28,9 @@ type OverUnderTimerInnerProps = OverUnderTimerBaseProps & { valueMs: number | un * Over/under "pill" timer. * Can either take a direct `valueMs` or a `rundownPlaylist` (requires RundownTiming context). */ -export function OverUnderTimer(props: Readonly): JSX.Element | null { +export function OverUnderTimer( + props: Readonly +): JSX.Element | null { if ('valueMs' in props) { return } else { From ddfe67af1017b70e9502a02e48ddf4d28e206954 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andra=CC=81s=20Pozsgai?= Date: Thu, 16 Apr 2026 09:43:22 +0200 Subject: [PATCH 06/23] chore: unify rundown header chips --- .../RundownHeader/RundownHeader.scss | 98 ++++++++----------- .../RundownHeaderOverUnderChip.tsx | 41 ++++++++ .../RundownHeader/RundownHeaderTimers.tsx | 11 +-- .../RundownHeaderTimingDisplay.tsx | 14 +-- 4 files changed, 87 insertions(+), 77 deletions(-) create mode 100644 packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderOverUnderChip.tsx diff --git a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeader.scss b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeader.scss index f53d2a17f7d..60a6cd288c7 100644 --- a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeader.scss +++ b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeader.scss @@ -233,12 +233,20 @@ 'YTUC' 712; } - .rundown-header__clocks-diff__chip--under { + } + + .rundown-header__over-under-chip { + display: inline-block; + border-radius: 999px; + white-space: nowrap; + letter-spacing: -0.02em; + font-variant-numeric: tabular-nums; + color: #000; + + &.rundown-header__over-under-chip--default { font-size: 1.3em; padding: 0em 0.3em; line-height: 1em; - border-radius: 999px; - letter-spacing: -0.02em; font-variation-settings: 'wdth' 25, 'wght' 500, @@ -254,18 +262,19 @@ 'YTDE' -203, 'YTUC' 712; } - .rundown-header__clocks-diff__chip--over { - font-size: 1.3em; - padding: 0em 0.3em; - line-height: 1em; - border-radius: 999px; - letter-spacing: -0.02em; + + &.rundown-header__over-under-chip--compact { + font-size: 0.75em; + padding: 0.05em 0.25em; + margin-left: 0.25em; + margin-top: 0em; + line-height: 1; font-variation-settings: 'wdth' 25, - 'wght' 700, + 'wght' 600, 'slnt' 0, 'GRAD' 0, - 'opsz' 25, + 'opsz' 14, 'XOPQ' 96, 'XTRA' 468, 'YOPQ' 79, @@ -276,18 +285,29 @@ 'YTUC' 712; } - &.rundown-header__clocks-diff--under { - .rundown-header__clocks-diff__chip--under { - background-color: #ff0; // Should probably be changed to $general-fast-color; - color: #000; - } + &.rundown-header__over-under-chip--over { + background-color: $general-late-color; } - &.rundown-header__clocks-diff--over { - .rundown-header__clocks-diff__chip--over { - background-color: $general-late-color; - color: #000000; - } + &.rundown-header__over-under-chip--under { + background-color: #ff0; // Should probably be changed to $general-fast-color; + } + + &.rundown-header__over-under-chip--default.rundown-header__over-under-chip--over { + font-variation-settings: + 'wdth' 25, + 'wght' 700, + 'slnt' 0, + 'GRAD' 0, + 'opsz' 25, + 'XOPQ' 96, + 'XTRA' 468, + 'YOPQ' 79, + 'YTAS' 750, + 'YTFI' 738, + 'YTLC' 548, + 'YTDE' -203, + 'YTUC' 712; } } @@ -336,42 +356,6 @@ color: #fff; margin-right: 0em; } - - .rundown-header__clocks-timers__timer__over-under { - display: inline-block; - font-size: 0.75em; - padding: 0.05em 0.25em; - border-radius: 999px; - white-space: nowrap; - letter-spacing: -0.02em; - margin-left: 0.25em; - margin-top: 0em; - font-variant-numeric: tabular-nums; - font-variation-settings: - 'wdth' 25, - 'wght' 600, - 'slnt' 0, - 'GRAD' 0, - 'opsz' 14, - 'XOPQ' 96, - 'XTRA' 468, - 'YOPQ' 79, - 'YTAS' 750, - 'YTFI' 738, - 'YTLC' 548, - 'YTDE' -203, - 'YTUC' 712; - - &.rundown-header__clocks-timers__timer__over-under--over { - background-color: $general-late-color; - color: #000; - } - - &.rundown-header__clocks-timers__timer__over-under--under { - background-color: #ff0; - color: #000; - } - } } } diff --git a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderOverUnderChip.tsx b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderOverUnderChip.tsx new file mode 100644 index 00000000000..70c9f3d77b2 --- /dev/null +++ b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderOverUnderChip.tsx @@ -0,0 +1,41 @@ +import React from 'react' +import classNames from 'classnames' +import { RundownUtils } from '../../../lib/rundown.js' + +export type RundownHeaderOverUnderChipVariant = 'default' | 'compact' +export type RundownHeaderOverUnderChipFormat = 'playlistDiff' | 'timerPostfix' + +export interface IRundownHeaderOverUnderChipProps { + valueMs: number + variant?: RundownHeaderOverUnderChipVariant + format?: RundownHeaderOverUnderChipFormat + className?: string +} + +export function RundownHeaderOverUnderChip({ + valueMs, + variant = 'default', + format = 'playlistDiff', + className, +}: Readonly): JSX.Element { + const isUnder = valueMs <= 0 + const timeStr = + format === 'timerPostfix' + ? RundownUtils.formatDiffToTimecode(Math.abs(valueMs), false, false, true, false, true) + : RundownUtils.formatDiffToTimecode(Math.abs(valueMs), false, false, true, true, true) + + return ( + + {isUnder ? '−' : '+'} + {timeStr} + + ) +} + diff --git a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimers.tsx b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimers.tsx index c0c44556fad..84e39158364 100644 --- a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimers.tsx +++ b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimers.tsx @@ -6,6 +6,7 @@ import { calculateTTimerDiff, calculateTTimerOverUnder } from '../../../lib/tTim import classNames from 'classnames' import { getCurrentTime } from '../../../lib/systemTime' import { Countdown } from './Countdown' +import { RundownHeaderOverUnderChip } from './RundownHeaderOverUnderChip' interface IProps { tTimers: [RundownTTimer, RundownTTimer, RundownTTimer] @@ -61,15 +62,7 @@ function SingleTimer({ timer }: Readonly) { ms={mode.type === 'timeOfDay' ? undefined : diff} postfix={ overUnder ? ( - 0, - 'rundown-header__clocks-timers__timer__over-under--under': overUnder < 0, - })} - > - {overUnder > 0 ? '+' : '−'} - {RundownUtils.formatDiffToTimecode(Math.abs(overUnder), false, false, true, false, true)} - + ) : undefined } > diff --git a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimingDisplay.tsx b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimingDisplay.tsx index 28c5c89c4b9..21540ba5b8e 100644 --- a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimingDisplay.tsx +++ b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimingDisplay.tsx @@ -3,7 +3,7 @@ import { PlaylistTiming } from '@sofie-automation/corelib/dist/playout/rundownTi import { useTranslation } from 'react-i18next' import { useTiming } from '../RundownTiming/withTiming' import { getPlaylistTimingDiff } from '../../../lib/rundownTiming' -import { RundownUtils } from '../../../lib/rundown.js' +import { RundownHeaderOverUnderChip } from './RundownHeaderOverUnderChip' export interface IRundownHeaderTimingDisplayProps { playlist: DBRundownPlaylist @@ -26,21 +26,13 @@ export function RundownHeaderTimingDisplay({ playlist }: IRundownHeaderTimingDis return null } - const timeStr = RundownUtils.formatDiffToTimecode(Math.abs(overUnderClock), false, false, true, true, true) const isUnder = overUnderClock <= 0 return (
- + {isUnder ? t('Under') : t('Over')} - - {isUnder ? '−' : '+'} - {timeStr} - +
) From 9bd57eba1df4eb4a775a89d184cb3374728019c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andra=CC=81s=20Pozsgai?= Date: Thu, 16 Apr 2026 09:57:13 +0200 Subject: [PATCH 07/23] chore: simplify css --- .../RundownHeader/RundownHeader.scss | 101 ++++++++---------- .../RundownHeaderOverUnderChip.tsx | 9 +- .../RundownHeader/RundownHeaderTimers.tsx | 2 +- .../RundownHeaderTimingDisplay.tsx | 2 +- 4 files changed, 49 insertions(+), 65 deletions(-) diff --git a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeader.scss b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeader.scss index 60a6cd288c7..4ac1e84202b 100644 --- a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeader.scss +++ b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeader.scss @@ -214,6 +214,16 @@ font-variant-numeric: tabular-nums; white-space: nowrap; + // Over/under chip defaults for the playlist diff context + .rundown-header__over-under-chip { + font-size: 1.3em; + --rhChipPaddingY: 0em; + --rhChipPaddingX: 0.3em; + --rhChipLineHeight: 1em; + --rhChipOpsz: 25; + --rhChipWdth: 25; + } + .rundown-header__clocks-diff__label { @extend %hoverable-label; font-size: 0.75em; @@ -242,73 +252,36 @@ letter-spacing: -0.02em; font-variant-numeric: tabular-nums; color: #000; + padding: var(--rhChipPaddingY, 0.05em) var(--rhChipPaddingX, 0.25em); + margin-left: var(--rhChipMarginLeft, 0em); + margin-top: var(--rhChipMarginTop, 0em); + line-height: var(--rhChipLineHeight, 1); + font-size: 1em; - &.rundown-header__over-under-chip--default { - font-size: 1.3em; - padding: 0em 0.3em; - line-height: 1em; - font-variation-settings: - 'wdth' 25, - 'wght' 500, - 'slnt' 0, - 'GRAD' 0, - 'opsz' 25, - 'XOPQ' 96, - 'XTRA' 468, - 'YOPQ' 79, - 'YTAS' 750, - 'YTFI' 738, - 'YTLC' 548, - 'YTDE' -203, - 'YTUC' 712; - } - - &.rundown-header__over-under-chip--compact { - font-size: 0.75em; - padding: 0.05em 0.25em; - margin-left: 0.25em; - margin-top: 0em; - line-height: 1; - font-variation-settings: - 'wdth' 25, - 'wght' 600, - 'slnt' 0, - 'GRAD' 0, - 'opsz' 14, - 'XOPQ' 96, - 'XTRA' 468, - 'YOPQ' 79, - 'YTAS' 750, - 'YTFI' 738, - 'YTLC' 548, - 'YTDE' -203, - 'YTUC' 712; - } + font-variation-settings: + 'wdth' var(--rhChipWdth, 25), + 'wght' var(--rhChipWght, 600), + 'slnt' var(--rhChipSlnt, 0), + 'GRAD' var(--rhChipGrad, 0), + 'opsz' var(--rhChipOpsz, 14), + 'XOPQ' var(--rhChipXopq, 96), + 'XTRA' var(--rhChipXtra, 468), + 'YOPQ' var(--rhChipYopq, 79), + 'YTAS' var(--rhChipYtas, 750), + 'YTFI' var(--rhChipYtfi, 738), + 'YTLC' var(--rhChipYtlc, 548), + 'YTDE' var(--rhChipYtde, -203), + 'YTUC' var(--rhChipYtuc, 712); &.rundown-header__over-under-chip--over { + --rhChipWght: 700; background-color: $general-late-color; } &.rundown-header__over-under-chip--under { + --rhChipWght: 500; background-color: #ff0; // Should probably be changed to $general-fast-color; } - - &.rundown-header__over-under-chip--default.rundown-header__over-under-chip--over { - font-variation-settings: - 'wdth' 25, - 'wght' 700, - 'slnt' 0, - 'GRAD' 0, - 'opsz' 25, - 'XOPQ' 96, - 'XTRA' 468, - 'YOPQ' 79, - 'YTAS' 750, - 'YTFI' 738, - 'YTLC' 548, - 'YTDE' -203, - 'YTUC' 712; - } } .rundown-header__clocks-timers { @@ -329,6 +302,18 @@ white-space: nowrap; line-height: 1.25; + // Over/under chip defaults for the timer postfix context + .rundown-header__over-under-chip { + font-size: 0.75em; + --rhChipPaddingY: 0.05em; + --rhChipPaddingX: 0.25em; + --rhChipMarginLeft: 0.25em; + --rhChipMarginTop: 0em; + --rhChipLineHeight: 1; + --rhChipOpsz: 14; + --rhChipWdth: 25; + } + .countdown__label { @extend %hoverable-label; margin-left: 0; diff --git a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderOverUnderChip.tsx b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderOverUnderChip.tsx index 70c9f3d77b2..766329f1ef6 100644 --- a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderOverUnderChip.tsx +++ b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderOverUnderChip.tsx @@ -1,22 +1,21 @@ -import React from 'react' +import React, { type CSSProperties } from 'react' import classNames from 'classnames' import { RundownUtils } from '../../../lib/rundown.js' -export type RundownHeaderOverUnderChipVariant = 'default' | 'compact' export type RundownHeaderOverUnderChipFormat = 'playlistDiff' | 'timerPostfix' export interface IRundownHeaderOverUnderChipProps { valueMs: number - variant?: RundownHeaderOverUnderChipVariant format?: RundownHeaderOverUnderChipFormat className?: string + style?: CSSProperties } export function RundownHeaderOverUnderChip({ valueMs, - variant = 'default', format = 'playlistDiff', className, + style, }: Readonly): JSX.Element { const isUnder = valueMs <= 0 const timeStr = @@ -28,10 +27,10 @@ export function RundownHeaderOverUnderChip({ {isUnder ? '−' : '+'} {timeStr} diff --git a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimers.tsx b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimers.tsx index 84e39158364..8404dcbe0c8 100644 --- a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimers.tsx +++ b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimers.tsx @@ -62,7 +62,7 @@ function SingleTimer({ timer }: Readonly) { ms={mode.type === 'timeOfDay' ? undefined : diff} postfix={ overUnder ? ( - + ) : undefined } > diff --git a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimingDisplay.tsx b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimingDisplay.tsx index 21540ba5b8e..075fd36585e 100644 --- a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimingDisplay.tsx +++ b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimingDisplay.tsx @@ -32,7 +32,7 @@ export function RundownHeaderTimingDisplay({ playlist }: IRundownHeaderTimingDis
{isUnder ? t('Under') : t('Over')} - +
) From 99a4a0bfb7b4f0a529f0847e7cfcd74dfa1f0985 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andra=CC=81s=20Pozsgai?= Date: Thu, 16 Apr 2026 10:25:29 +0200 Subject: [PATCH 08/23] chore: extract rundown header chip into generic component --- .../client/lib/Components/OverUnderChip.scss | 42 ++++++++++++ .../Components/OverUnderChip.tsx} | 19 +++--- .../RundownHeader/RundownHeader.scss | 67 ++++--------------- .../RundownHeader/RundownHeaderTimers.tsx | 4 +- .../RundownHeaderTimingDisplay.tsx | 4 +- 5 files changed, 68 insertions(+), 68 deletions(-) create mode 100644 packages/webui/src/client/lib/Components/OverUnderChip.scss rename packages/webui/src/client/{ui/RundownView/RundownHeader/RundownHeaderOverUnderChip.tsx => lib/Components/OverUnderChip.tsx} (51%) diff --git a/packages/webui/src/client/lib/Components/OverUnderChip.scss b/packages/webui/src/client/lib/Components/OverUnderChip.scss new file mode 100644 index 00000000000..c3f5181b7a4 --- /dev/null +++ b/packages/webui/src/client/lib/Components/OverUnderChip.scss @@ -0,0 +1,42 @@ +@import '../../styles/colorScheme'; + +.over-under-chip { + display: inline-block; + border-radius: 999px; + white-space: nowrap; + letter-spacing: -0.02em; + font-variant-numeric: tabular-nums; + color: #000; + + padding: var(--overUnderChipPaddingY, 0.05em) var(--overUnderChipPaddingX, 0.25em); + margin-left: var(--overUnderChipMarginLeft, 0em); + margin-top: var(--overUnderChipMarginTop, 0em); + line-height: var(--overUnderChipLineHeight, 1); + font-size: 1em; + + font-variation-settings: + 'wdth' var(--overUnderChipWdth, 25), + 'wght' var(--overUnderChipWght, 600), + 'slnt' var(--overUnderChipSlnt, 0), + 'GRAD' var(--overUnderChipGrad, 0), + 'opsz' var(--overUnderChipOpsz, 14), + 'XOPQ' var(--overUnderChipXopq, 96), + 'XTRA' var(--overUnderChipXtra, 468), + 'YOPQ' var(--overUnderChipYopq, 79), + 'YTAS' var(--overUnderChipYtas, 750), + 'YTFI' var(--overUnderChipYtfi, 738), + 'YTLC' var(--overUnderChipYtlc, 548), + 'YTDE' var(--overUnderChipYtde, -203), + 'YTUC' var(--overUnderChipYtuc, 712); + + &.over-under-chip--over { + --overUnderChipWght: 700; + background-color: $general-late-color; + } + + &.over-under-chip--under { + --overUnderChipWght: 500; + background-color: #ff0; // Should probably be changed to $general-fast-color; + } +} + diff --git a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderOverUnderChip.tsx b/packages/webui/src/client/lib/Components/OverUnderChip.tsx similarity index 51% rename from packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderOverUnderChip.tsx rename to packages/webui/src/client/lib/Components/OverUnderChip.tsx index 766329f1ef6..33b1247342c 100644 --- a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderOverUnderChip.tsx +++ b/packages/webui/src/client/lib/Components/OverUnderChip.tsx @@ -1,22 +1,23 @@ import React, { type CSSProperties } from 'react' import classNames from 'classnames' -import { RundownUtils } from '../../../lib/rundown.js' +import { RundownUtils } from '../rundown.js' +import './OverUnderChip.scss' -export type RundownHeaderOverUnderChipFormat = 'playlistDiff' | 'timerPostfix' +export type OverUnderChipFormat = 'playlistDiff' | 'timerPostfix' -export interface IRundownHeaderOverUnderChipProps { +export interface IOverUnderChipProps { valueMs: number - format?: RundownHeaderOverUnderChipFormat + format?: OverUnderChipFormat className?: string style?: CSSProperties } -export function RundownHeaderOverUnderChip({ +export function OverUnderChip({ valueMs, format = 'playlistDiff', className, style, -}: Readonly): JSX.Element { +}: Readonly): JSX.Element { const isUnder = valueMs <= 0 const timeStr = format === 'timerPostfix' @@ -25,11 +26,7 @@ export function RundownHeaderOverUnderChip({ return ( {isUnder ? '−' : '+'} diff --git a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeader.scss b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeader.scss index 4ac1e84202b..f729c050a8b 100644 --- a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeader.scss +++ b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeader.scss @@ -215,13 +215,13 @@ white-space: nowrap; // Over/under chip defaults for the playlist diff context - .rundown-header__over-under-chip { + .over-under-chip { font-size: 1.3em; - --rhChipPaddingY: 0em; - --rhChipPaddingX: 0.3em; - --rhChipLineHeight: 1em; - --rhChipOpsz: 25; - --rhChipWdth: 25; + --overUnderChipPaddingY: 0em; + --overUnderChipPaddingX: 0.3em; + --overUnderChipLineHeight: 1em; + --overUnderChipOpsz: 25; + --overUnderChipWdth: 25; } .rundown-header__clocks-diff__label { @@ -245,45 +245,6 @@ } - .rundown-header__over-under-chip { - display: inline-block; - border-radius: 999px; - white-space: nowrap; - letter-spacing: -0.02em; - font-variant-numeric: tabular-nums; - color: #000; - padding: var(--rhChipPaddingY, 0.05em) var(--rhChipPaddingX, 0.25em); - margin-left: var(--rhChipMarginLeft, 0em); - margin-top: var(--rhChipMarginTop, 0em); - line-height: var(--rhChipLineHeight, 1); - font-size: 1em; - - font-variation-settings: - 'wdth' var(--rhChipWdth, 25), - 'wght' var(--rhChipWght, 600), - 'slnt' var(--rhChipSlnt, 0), - 'GRAD' var(--rhChipGrad, 0), - 'opsz' var(--rhChipOpsz, 14), - 'XOPQ' var(--rhChipXopq, 96), - 'XTRA' var(--rhChipXtra, 468), - 'YOPQ' var(--rhChipYopq, 79), - 'YTAS' var(--rhChipYtas, 750), - 'YTFI' var(--rhChipYtfi, 738), - 'YTLC' var(--rhChipYtlc, 548), - 'YTDE' var(--rhChipYtde, -203), - 'YTUC' var(--rhChipYtuc, 712); - - &.rundown-header__over-under-chip--over { - --rhChipWght: 700; - background-color: $general-late-color; - } - - &.rundown-header__over-under-chip--under { - --rhChipWght: 500; - background-color: #ff0; // Should probably be changed to $general-fast-color; - } - } - .rundown-header__clocks-timers { margin-left: auto; display: grid; @@ -303,15 +264,15 @@ line-height: 1.25; // Over/under chip defaults for the timer postfix context - .rundown-header__over-under-chip { + .over-under-chip { font-size: 0.75em; - --rhChipPaddingY: 0.05em; - --rhChipPaddingX: 0.25em; - --rhChipMarginLeft: 0.25em; - --rhChipMarginTop: 0em; - --rhChipLineHeight: 1; - --rhChipOpsz: 14; - --rhChipWdth: 25; + --overUnderChipPaddingY: 0.05em; + --overUnderChipPaddingX: 0.25em; + --overUnderChipMarginLeft: 0.25em; + --overUnderChipMarginTop: 0em; + --overUnderChipLineHeight: 1; + --overUnderChipOpsz: 14; + --overUnderChipWdth: 25; } .countdown__label { diff --git a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimers.tsx b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimers.tsx index 8404dcbe0c8..5453d2032f2 100644 --- a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimers.tsx +++ b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimers.tsx @@ -6,7 +6,7 @@ import { calculateTTimerDiff, calculateTTimerOverUnder } from '../../../lib/tTim import classNames from 'classnames' import { getCurrentTime } from '../../../lib/systemTime' import { Countdown } from './Countdown' -import { RundownHeaderOverUnderChip } from './RundownHeaderOverUnderChip' +import { OverUnderChip } from '../../../lib/Components/OverUnderChip' interface IProps { tTimers: [RundownTTimer, RundownTTimer, RundownTTimer] @@ -62,7 +62,7 @@ function SingleTimer({ timer }: Readonly) { ms={mode.type === 'timeOfDay' ? undefined : diff} postfix={ overUnder ? ( - + ) : undefined } > diff --git a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimingDisplay.tsx b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimingDisplay.tsx index 075fd36585e..14462d966a2 100644 --- a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimingDisplay.tsx +++ b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeaderTimingDisplay.tsx @@ -3,7 +3,7 @@ import { PlaylistTiming } from '@sofie-automation/corelib/dist/playout/rundownTi import { useTranslation } from 'react-i18next' import { useTiming } from '../RundownTiming/withTiming' import { getPlaylistTimingDiff } from '../../../lib/rundownTiming' -import { RundownHeaderOverUnderChip } from './RundownHeaderOverUnderChip' +import { OverUnderChip } from '../../../lib/Components/OverUnderChip' export interface IRundownHeaderTimingDisplayProps { playlist: DBRundownPlaylist @@ -32,7 +32,7 @@ export function RundownHeaderTimingDisplay({ playlist }: IRundownHeaderTimingDis
{isUnder ? t('Under') : t('Over')} - +
) From 061b562dfbc96f941489289854bf0ee84886a443 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andra=CC=81s=20Pozsgai?= Date: Thu, 16 Apr 2026 10:43:37 +0200 Subject: [PATCH 09/23] chore: use the global component on the director screen --- packages/webui/src/client/styles/countdown/director.scss | 3 +++ .../client/ui/ClockView/DirectorScreen/DirectorScreenTop.tsx | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/webui/src/client/styles/countdown/director.scss b/packages/webui/src/client/styles/countdown/director.scss index af29abd8b96..91d43931234 100644 --- a/packages/webui/src/client/styles/countdown/director.scss +++ b/packages/webui/src/client/styles/countdown/director.scss @@ -21,6 +21,9 @@ $hold-status-color: $liveline-timecode-color; // Ensure it layers above the fixed top bar. .screen-timing-clock { z-index: 2000; + font-size: 9.8vmin; + --overUnderChipPaddingY: 0em; + --overUnderChipPaddingX: 0.2em; } .director-screen__top { diff --git a/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreenTop.tsx b/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreenTop.tsx index 488ede9a7b0..04f7d3c491d 100644 --- a/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreenTop.tsx +++ b/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreenTop.tsx @@ -11,6 +11,7 @@ import { useTranslation } from 'react-i18next' import { PlaylistTiming } from '@sofie-automation/corelib/dist/playout/rundownTiming' import { PartInstance } from '@sofie-automation/corelib/src/dataModel/PartInstance' import { OverUnderTimer } from '../../Prompter/OverUnderTimer.js' +import { OverUnderChip } from '../../../lib/Components/OverUnderChip.js' export interface DirectorScreenTopProps { playlist: DBRundownPlaylist @@ -78,7 +79,7 @@ export function DirectorScreenTop({ )}
- + ) } From a25342ca8d580a61c2e7ce77df1361a00c935dcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andra=CC=81s=20Pozsgai?= Date: Thu, 16 Apr 2026 11:26:17 +0200 Subject: [PATCH 10/23] chore: use global component on the presenter and prompter screens --- .../client/lib/Components/OverUnderChip.scss | 3 +- .../client/lib/Components/OverUnderChip.tsx | 67 +++++++++++++++---- .../src/client/styles/countdown/director.scss | 2 +- .../client/styles/countdown/presenter.scss | 6 +- .../webui/src/client/styles/prompter.scss | 28 +------- .../DirectorScreen/DirectorScreenTop.tsx | 1 - .../client/ui/ClockView/PresenterScreen.tsx | 18 +---- .../src/client/ui/Prompter/PrompterView.tsx | 7 +- 8 files changed, 61 insertions(+), 71 deletions(-) diff --git a/packages/webui/src/client/lib/Components/OverUnderChip.scss b/packages/webui/src/client/lib/Components/OverUnderChip.scss index c3f5181b7a4..ff273a5c02a 100644 --- a/packages/webui/src/client/lib/Components/OverUnderChip.scss +++ b/packages/webui/src/client/lib/Components/OverUnderChip.scss @@ -1,6 +1,7 @@ @import '../../styles/colorScheme'; .over-under-chip { + font-family: Roboto Flex; display: inline-block; border-radius: 999px; white-space: nowrap; @@ -12,7 +13,6 @@ margin-left: var(--overUnderChipMarginLeft, 0em); margin-top: var(--overUnderChipMarginTop, 0em); line-height: var(--overUnderChipLineHeight, 1); - font-size: 1em; font-variation-settings: 'wdth' var(--overUnderChipWdth, 25), @@ -39,4 +39,3 @@ background-color: #ff0; // Should probably be changed to $general-fast-color; } } - diff --git a/packages/webui/src/client/lib/Components/OverUnderChip.tsx b/packages/webui/src/client/lib/Components/OverUnderChip.tsx index 33b1247342c..5e6b52d30b1 100644 --- a/packages/webui/src/client/lib/Components/OverUnderChip.tsx +++ b/packages/webui/src/client/lib/Components/OverUnderChip.tsx @@ -2,27 +2,66 @@ import React, { type CSSProperties } from 'react' import classNames from 'classnames' import { RundownUtils } from '../rundown.js' import './OverUnderChip.scss' +import { useTiming } from '../../ui/RundownView/RundownTiming/withTiming.js' +import { getPlaylistTimingDiff } from '../rundownTiming.js' +import { DBRundownPlaylist } from '@sofie-automation/corelib/src/dataModel/RundownPlaylist/RundownPlaylist.js' -export type OverUnderChipFormat = 'playlistDiff' | 'timerPostfix' +export type OverUnderChipFormat = 'playlistDiff' | 'timerPostfix' | 'screenOverlay' -export interface IOverUnderChipProps { - valueMs: number - format?: OverUnderChipFormat +type OverUnderChipBaseProps = { className?: string style?: CSSProperties + format?: OverUnderChipFormat } -export function OverUnderChip({ - valueMs, - format = 'playlistDiff', - className, - style, -}: Readonly): JSX.Element { +type OverUnderChipValueProps = + | { + valueMs: number | undefined + rundownPlaylist?: never + } + | { + valueMs?: never + rundownPlaylist: DBRundownPlaylist + } + +type OverUnderChipInnerProps = OverUnderChipBaseProps & { valueMs: number | undefined } + +/** + * Over/under "chip" display. + * Can either take a direct `valueMs` or a `rundownPlaylist` (requires RundownTiming context). + */ +export function OverUnderChip(props: Readonly): JSX.Element | null { + if ('valueMs' in props) { + return + } else { + return + } +} + +function OverUnderChipFromPlaylist( + props: Readonly +): JSX.Element | null { + const timingDurations = useTiming() + const valueMs = getPlaylistTimingDiff(props.rundownPlaylist, timingDurations) ?? 0 + return +} + +function OverUnderChipInner({ valueMs, format = 'playlistDiff', className, style }: Readonly) { + if (valueMs === undefined) return null + const isUnder = valueMs <= 0 - const timeStr = - format === 'timerPostfix' - ? RundownUtils.formatDiffToTimecode(Math.abs(valueMs), false, false, true, false, true) - : RundownUtils.formatDiffToTimecode(Math.abs(valueMs), false, false, true, true, true) + const timeStr = (() => { + switch (format) { + case 'timerPostfix': + return RundownUtils.formatDiffToTimecode(Math.abs(valueMs), false, false, true, false, true) + case 'screenOverlay': + // Match legacy `OverUnderTimer` formatting used by prompter/presenter/director overlays + return RundownUtils.formatDiffToTimecode(Math.abs(valueMs), false, true, true, false, true) + case 'playlistDiff': + default: + return RundownUtils.formatDiffToTimecode(Math.abs(valueMs), false, false, true, true, true) + } + })() return ( ) { if (playlist && playlistId && segments) { - const overUnderStyle: CSSProperties = { - marginTop: margin ? `${margin}vh` : undefined, - marginBottom: margin ? `${margin}vh` : undefined, - marginRight: margin ? `${margin}vw` : undefined, - marginLeft: margin ? `${margin}vw` : undefined, - fontSize: (fontSize ?? 0) > 12 ? `12vmin` : undefined, - } - const currentPartOrSegmentCountdown = timingDurations.remainingBudgetOnCurrentSegment ?? timingDurations.remainingTimeOnCurrentPart ?? 0 @@ -529,11 +519,7 @@ function PresenterScreenContentDefaultLayout({ return (
- +
{this.configOptions.showOverUnder && ( - + )} Date: Thu, 16 Apr 2026 13:05:37 +0200 Subject: [PATCH 11/23] chore: use global component in the status bar --- .../src/client/styles/countdown/director.scss | 2 +- .../client/styles/countdown/presenter.scss | 3 ++ .../src/client/styles/tTimerDisplay.scss | 46 +------------------ .../src/client/ui/ClockView/TTimerDisplay.tsx | 4 +- .../src/client/ui/Prompter/PrompterView.tsx | 9 ---- 5 files changed, 7 insertions(+), 57 deletions(-) diff --git a/packages/webui/src/client/styles/countdown/director.scss b/packages/webui/src/client/styles/countdown/director.scss index c506f7a8d7b..1714e502e61 100644 --- a/packages/webui/src/client/styles/countdown/director.scss +++ b/packages/webui/src/client/styles/countdown/director.scss @@ -493,5 +493,5 @@ $hold-status-color: $liveline-timecode-color; right: 0; bottom: 0; z-index: 20; - font-size: 4.1667vh; + font-size: 4.95vh; } diff --git a/packages/webui/src/client/styles/countdown/presenter.scss b/packages/webui/src/client/styles/countdown/presenter.scss index 3a2b123c99b..3e397b454f2 100644 --- a/packages/webui/src/client/styles/countdown/presenter.scss +++ b/packages/webui/src/client/styles/countdown/presenter.scss @@ -331,4 +331,7 @@ $hold-status-color: $liveline-timecode-color; } } } + .presenter-screen__rundown-status-bar { + font-size: 7.5vmin; + } } diff --git a/packages/webui/src/client/styles/tTimerDisplay.scss b/packages/webui/src/client/styles/tTimerDisplay.scss index d9200ed84f8..5ee8428bd61 100644 --- a/packages/webui/src/client/styles/tTimerDisplay.scss +++ b/packages/webui/src/client/styles/tTimerDisplay.scss @@ -17,8 +17,7 @@ overflow: hidden; font-family: Roboto Flex; - font-weight: bold; - font-size: 1.2em; + font-size: 1em; letter-spacing: -0.01em; line-height: 1; @@ -51,46 +50,3 @@ } } } - -/** - * Shared over/under pill styling (used by `OverUnderTimer` in multiple screens). - * - * View-level placement/scaling should be applied by the embedding view (eg. prompter/presenter/director), - * but the core look of the pill itself is defined here. - */ -.over-under-timer { - display: flex; - align-items: center; - justify-content: center; - - min-width: 3.5em; - border-radius: 1em; - margin: 0 0 0 0.2em; - padding: 0 0.25em; - - font-variant-numeric: tabular-nums; - text-shadow: - 0.003em 0.5px 0px #000, - 0.003em -0.5px 0px #000, - -0.003em -0.5px 0px #000, - -0.003em 0.5px 0px #000; - - &--over { - background-color: $over-under-over-color; - color: black; - } - - &--under { - background-color: #ffe900; - color: #000; - } -} - -/** - * When the over/under pill is used as a standalone screen overlay (eg. prompter/presenter), - * don't apply the spacing/min-width that the inline `TTimerDisplay` layout expects. - */ -.screen-timing-clock.over-under-timer { - min-width: auto; - margin: 0; -} diff --git a/packages/webui/src/client/ui/ClockView/TTimerDisplay.tsx b/packages/webui/src/client/ui/ClockView/TTimerDisplay.tsx index f36eb0efa24..95e667df3fa 100644 --- a/packages/webui/src/client/ui/ClockView/TTimerDisplay.tsx +++ b/packages/webui/src/client/ui/ClockView/TTimerDisplay.tsx @@ -3,7 +3,7 @@ import { RundownUtils } from '../../lib/rundown.js' import { calculateTTimerDiff, calculateTTimerOverUnder } from '../../lib/tTimerUtils.js' import { useTiming } from '../RundownView/RundownTiming/withTiming.js' import classNames from 'classnames' -import { OverUnderTimer } from '../Prompter/OverUnderTimer.js' +import { OverUnderChip } from '../../lib/Components/OverUnderChip.js' interface TTimerDisplayProps { timer: RundownTTimer @@ -39,7 +39,7 @@ export function TTimerDisplay({ timer }: Readonly): JSX.Elem ))} - +
) } diff --git a/packages/webui/src/client/ui/Prompter/PrompterView.tsx b/packages/webui/src/client/ui/Prompter/PrompterView.tsx index 24b41f81d05..d010aa2c045 100644 --- a/packages/webui/src/client/ui/Prompter/PrompterView.tsx +++ b/packages/webui/src/client/ui/Prompter/PrompterView.tsx @@ -37,7 +37,6 @@ import { doUserAction, UserAction } from '../../lib/clientUserAction.js' import { MeteorCall } from '../../lib/meteorApi.js' import { MdDisplay } from './Formatted/MdDisplay.js' import { UIStudio } from '@sofie-automation/corelib/src/dataModel/Studio.js' -import { OverUnderTimer } from './OverUnderTimer.js' import { OverUnderChip } from '../../lib/Components/OverUnderChip.js' const DEFAULT_UPDATE_THROTTLE = 250 //ms @@ -591,14 +590,6 @@ export class PrompterViewContent extends React.Component 12 ? `12vmin` : undefined, - } - return ( {!this.props.subsReady ? ( From f23633c976e35f986a5799b93ad754229ec0838b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andra=CC=81s=20Pozsgai?= Date: Thu, 16 Apr 2026 16:35:38 +0200 Subject: [PATCH 12/23] chore: use global countdown component for TTimerDisplay --- .../client/lib/Components/OverUnderChip.scss | 7 ++ .../client/lib/Components/OverUnderChip.tsx | 6 +- .../src/client/styles/countdown/director.scss | 19 +++-- .../client/styles/countdown/presenter.scss | 4 +- .../webui/src/client/styles/prompter.scss | 4 +- .../src/client/styles/rundownStatusBar.scss | 16 ++--- .../src/client/styles/tTimerDisplay.scss | 69 +++++++++++++------ .../client/ui/ClockView/PresenterScreen.tsx | 1 - .../client/ui/ClockView/RundownStatusBar.tsx | 12 ++-- .../src/client/ui/ClockView/TTimerDisplay.tsx | 29 +++----- 10 files changed, 88 insertions(+), 79 deletions(-) diff --git a/packages/webui/src/client/lib/Components/OverUnderChip.scss b/packages/webui/src/client/lib/Components/OverUnderChip.scss index ff273a5c02a..913c0e2642f 100644 --- a/packages/webui/src/client/lib/Components/OverUnderChip.scss +++ b/packages/webui/src/client/lib/Components/OverUnderChip.scss @@ -29,6 +29,13 @@ 'YTDE' var(--overUnderChipYtde, -203), 'YTUC' var(--overUnderChipYtuc, 712); + &.screen-timing-clock { + --overUnderChipWght: 700; + --overUnderChipOpsz: 20; + --overUnderChipYopq: 92; + --overUnderChipYtlc: 514; + } + &.over-under-chip--over { --overUnderChipWght: 700; background-color: $general-late-color; diff --git a/packages/webui/src/client/lib/Components/OverUnderChip.tsx b/packages/webui/src/client/lib/Components/OverUnderChip.tsx index 5e6b52d30b1..98b0446756c 100644 --- a/packages/webui/src/client/lib/Components/OverUnderChip.tsx +++ b/packages/webui/src/client/lib/Components/OverUnderChip.tsx @@ -1,4 +1,4 @@ -import React, { type CSSProperties } from 'react' +import { type CSSProperties } from 'react' import classNames from 'classnames' import { RundownUtils } from '../rundown.js' import './OverUnderChip.scss' @@ -54,9 +54,6 @@ function OverUnderChipInner({ valueMs, format = 'playlistDiff', className, style switch (format) { case 'timerPostfix': return RundownUtils.formatDiffToTimecode(Math.abs(valueMs), false, false, true, false, true) - case 'screenOverlay': - // Match legacy `OverUnderTimer` formatting used by prompter/presenter/director overlays - return RundownUtils.formatDiffToTimecode(Math.abs(valueMs), false, true, true, false, true) case 'playlistDiff': default: return RundownUtils.formatDiffToTimecode(Math.abs(valueMs), false, false, true, true, true) @@ -73,4 +70,3 @@ function OverUnderChipInner({ valueMs, format = 'playlistDiff', className, style ) } - diff --git a/packages/webui/src/client/styles/countdown/director.scss b/packages/webui/src/client/styles/countdown/director.scss index 1714e502e61..8de4093591a 100644 --- a/packages/webui/src/client/styles/countdown/director.scss +++ b/packages/webui/src/client/styles/countdown/director.scss @@ -22,8 +22,6 @@ $hold-status-color: $liveline-timecode-color; .screen-timing-clock { z-index: 2000; font-size: 9vmin; - --overUnderChipPaddingY: 0em; - --overUnderChipPaddingX: 0.2em; } .director-screen__top { @@ -485,13 +483,12 @@ $hold-status-color: $liveline-timecode-color; font-weight: 600; } } -} - -.director-screen__bottom-bar { - position: fixed; - left: 0; - right: 0; - bottom: 0; - z-index: 20; - font-size: 4.95vh; + .director-screen__bottom-bar { + position: fixed; + left: 0; + right: 0; + bottom: 0; + z-index: 20; + font-size: 4.58vh; + } } diff --git a/packages/webui/src/client/styles/countdown/presenter.scss b/packages/webui/src/client/styles/countdown/presenter.scss index 3e397b454f2..82ee8a483c7 100644 --- a/packages/webui/src/client/styles/countdown/presenter.scss +++ b/packages/webui/src/client/styles/countdown/presenter.scss @@ -331,7 +331,7 @@ $hold-status-color: $liveline-timecode-color; } } } - .presenter-screen__rundown-status-bar { - font-size: 7.5vmin; + .rundown-status-bar { + font-size: 6.95vmin; } } diff --git a/packages/webui/src/client/styles/prompter.scss b/packages/webui/src/client/styles/prompter.scss index 562b2e839ee..c9a281e6383 100644 --- a/packages/webui/src/client/styles/prompter.scss +++ b/packages/webui/src/client/styles/prompter.scss @@ -303,8 +303,8 @@ body.prompter-scrollbar { z-index: 1100; } -.prompter-rundown-status-bar.presenter-screen__rundown-status-bar { - font-size: 6vh; +.prompter-rundown-status-bar.rundown-status-bar { + font-size: 6.95vmin; } .script-text-formatted { diff --git a/packages/webui/src/client/styles/rundownStatusBar.scss b/packages/webui/src/client/styles/rundownStatusBar.scss index 6a9cd3a549a..27a772772eb 100644 --- a/packages/webui/src/client/styles/rundownStatusBar.scss +++ b/packages/webui/src/client/styles/rundownStatusBar.scss @@ -5,7 +5,7 @@ */ @import 'colorScheme'; -.presenter-screen__rundown-status-bar { +.rundown-status-bar { display: grid; grid-template-columns: auto fit-content(1em); grid-template-rows: fit-content(1em); @@ -14,14 +14,14 @@ padding: 0 0 0 0.2em; background: rgba(0, 0, 0, 0.75); - .presenter-screen__rundown-status-bar__rundown-name { + .rundown-status-bar__rundown-name { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; line-height: 1.44em; } - .presenter-screen__rundown-status-bar__right { + .rundown-status-bar__right { display: flex; align-items: center; justify-content: flex-end; @@ -30,13 +30,7 @@ background: #333; } - .presenter-screen__rundown-status-bar__t-timer { - font-size: 1.2em; - display: flex; - align-items: center; - } - - .presenter-screen__rundown-status-bar__countdown { + .rundown-status-bar__countdown { white-space: nowrap; font-weight: 600; @@ -62,7 +56,7 @@ } } - &.presenter-screen__rundown-status-bar--no-title { + &.rundown-status-bar--no-title { background: transparent; } } diff --git a/packages/webui/src/client/styles/tTimerDisplay.scss b/packages/webui/src/client/styles/tTimerDisplay.scss index 5ee8428bd61..1e59a61f4eb 100644 --- a/packages/webui/src/client/styles/tTimerDisplay.scss +++ b/packages/webui/src/client/styles/tTimerDisplay.scss @@ -18,34 +18,61 @@ font-family: Roboto Flex; font-size: 1em; - letter-spacing: -0.01em; line-height: 1; - &__label { - display: flex; - align-items: center; - - padding-left: 0.1em; - padding-right: 0.1em; + height: 1.46em; - color: #fff; - font-weight: inherit; - text-transform: uppercase; - font-stretch: condensed; - } - - &__value { + &__countdown { display: flex; align-items: center; - padding: 0 0.1em 0 0.2em; + justify-content: flex-end; + gap: 0; - color: #fff; - font-variant-numeric: tabular-nums; - letter-spacing: -0.04em; + .countdown__label { + font-variation-settings: + 'wdth' 25, + 'wght' 400, + 'slnt' 0, + 'GRAD' 0, + 'opsz' 30, + 'XOPQ' 96, + 'XTRA' 468, + 'YOPQ' 79, + 'YTAS' 750, + 'YTFI' 738, + 'YTLC' 548, + 'YTDE' -203, + 'YTUC' 712; + letter-spacing: 0.0001em; + font-size: 1.3em; + padding-left: 0.125em; + color: #fff; + } - .t-timer-display__part { - &--dimmed { - color: #aaa; + .countdown__counter { + display: flex; + align-items: center; + font-variation-settings: + 'wdth' 25, + 'wght' 500, + 'slnt' 0, + 'GRAD' 0, + 'opsz' 20, + 'XOPQ' 96, + 'XTRA' 468, + 'YOPQ' 79, + 'YTAS' 750, + 'YTFI' 738, + 'YTLC' 548, + 'YTDE' -203, + 'YTUC' 712; + padding: 0 0.1em; + .over-under-chip { + position: relative; + left: 0.1em; + --overUnderChipOpsz: 20; + --overUnderChipYtlc: 514; + --overUnderChipMarginLeft: 0.15em; } } } diff --git a/packages/webui/src/client/ui/ClockView/PresenterScreen.tsx b/packages/webui/src/client/ui/ClockView/PresenterScreen.tsx index f2bac7d889e..c7e82edbd15 100644 --- a/packages/webui/src/client/ui/ClockView/PresenterScreen.tsx +++ b/packages/webui/src/client/ui/ClockView/PresenterScreen.tsx @@ -3,7 +3,6 @@ import { DBSegment } from '@sofie-automation/corelib/dist/dataModel/Segment' import { PartUi } from '../SegmentTimeline/SegmentTimelineContainer.js' import { DBRundownPlaylist } from '@sofie-automation/corelib/dist/dataModel/RundownPlaylist/RundownPlaylist' import { Rundown } from '@sofie-automation/corelib/dist/dataModel/Rundown' -import type { CSSProperties } from 'react' import { useTiming } from '../RundownView/RundownTiming/withTiming.js' import { useSubscription, diff --git a/packages/webui/src/client/ui/ClockView/RundownStatusBar.tsx b/packages/webui/src/client/ui/ClockView/RundownStatusBar.tsx index 0952600453f..78022aa5027 100644 --- a/packages/webui/src/client/ui/ClockView/RundownStatusBar.tsx +++ b/packages/webui/src/client/ui/ClockView/RundownStatusBar.tsx @@ -19,17 +19,15 @@ export function RundownStatusBar({ return (
{showPlaylistName && ( -
{playlist ? playlist.name : 'UNKNOWN'}
+
{playlist ? playlist.name : 'UNKNOWN'}
)} -
-
- {!!activeTTimer && } -
+
+
{!!activeTTimer && }
) diff --git a/packages/webui/src/client/ui/ClockView/TTimerDisplay.tsx b/packages/webui/src/client/ui/ClockView/TTimerDisplay.tsx index 95e667df3fa..817ea3eb739 100644 --- a/packages/webui/src/client/ui/ClockView/TTimerDisplay.tsx +++ b/packages/webui/src/client/ui/ClockView/TTimerDisplay.tsx @@ -2,8 +2,8 @@ import { RundownTTimer } from '@sofie-automation/corelib/dist/dataModel/RundownP import { RundownUtils } from '../../lib/rundown.js' import { calculateTTimerDiff, calculateTTimerOverUnder } from '../../lib/tTimerUtils.js' import { useTiming } from '../RundownView/RundownTiming/withTiming.js' -import classNames from 'classnames' import { OverUnderChip } from '../../lib/Components/OverUnderChip.js' +import { Countdown } from '../RundownView/RundownHeader/Countdown' interface TTimerDisplayProps { timer: RundownTTimer @@ -18,28 +18,19 @@ export function TTimerDisplay({ timer }: Readonly): JSX.Elem const diff = calculateTTimerDiff(timer, now) const overUnder = calculateTTimerOverUnder(timer, now) - const timerStr = RundownUtils.formatDiffToTimecode(Math.abs(diff), false, true, true, false, true) - const timerParts = timerStr.split(':') + const timeStr = RundownUtils.formatDiffToTimecode(Math.abs(diff), false, true, true, false, true) const timerSign = diff >= 0 ? '' : '-' return (
- {timer.label ? {timer.label} : null} - - {timerSign} - {timerParts.map((p, i) => ( - - {p} - {i < timerParts.length - 1 && :} - - ))} - - + } + > + {`${timerSign}${timeStr}`} +
) } From b5e52f0fa59d87688f061f49d3989d8053cb273b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andra=CC=81s=20Pozsgai?= Date: Thu, 16 Apr 2026 17:05:24 +0200 Subject: [PATCH 13/23] chore: clean up --- .../client/lib/Components/OverUnderChip.scss | 15 ++-- .../client/lib/Components/OverUnderChip.tsx | 2 +- .../src/client/styles/rundownStatusBar.scss | 26 +------ .../DirectorScreen/DirectorScreenTop.tsx | 2 +- .../client/ui/ClockView/PresenterScreen.tsx | 2 +- .../src/client/ui/Prompter/OverUnderTimer.tsx | 73 ------------------- .../src/client/ui/Prompter/PrompterView.tsx | 5 +- .../RundownHeader/RundownHeaderTimers.tsx | 6 +- 8 files changed, 19 insertions(+), 112 deletions(-) delete mode 100644 packages/webui/src/client/ui/Prompter/OverUnderTimer.tsx diff --git a/packages/webui/src/client/lib/Components/OverUnderChip.scss b/packages/webui/src/client/lib/Components/OverUnderChip.scss index 913c0e2642f..33302864636 100644 --- a/packages/webui/src/client/lib/Components/OverUnderChip.scss +++ b/packages/webui/src/client/lib/Components/OverUnderChip.scss @@ -29,13 +29,6 @@ 'YTDE' var(--overUnderChipYtde, -203), 'YTUC' var(--overUnderChipYtuc, 712); - &.screen-timing-clock { - --overUnderChipWght: 700; - --overUnderChipOpsz: 20; - --overUnderChipYopq: 92; - --overUnderChipYtlc: 514; - } - &.over-under-chip--over { --overUnderChipWght: 700; background-color: $general-late-color; @@ -46,3 +39,11 @@ background-color: #ff0; // Should probably be changed to $general-fast-color; } } + +// Optional preset for when the chip is used as a large screen overlay. +.over-under-chip--overlay { + --overUnderChipWght: 700; + --overUnderChipOpsz: 20; + --overUnderChipYopq: 92; + --overUnderChipYtlc: 514; +} diff --git a/packages/webui/src/client/lib/Components/OverUnderChip.tsx b/packages/webui/src/client/lib/Components/OverUnderChip.tsx index 98b0446756c..5f57cdc34d6 100644 --- a/packages/webui/src/client/lib/Components/OverUnderChip.tsx +++ b/packages/webui/src/client/lib/Components/OverUnderChip.tsx @@ -6,7 +6,7 @@ import { useTiming } from '../../ui/RundownView/RundownTiming/withTiming.js' import { getPlaylistTimingDiff } from '../rundownTiming.js' import { DBRundownPlaylist } from '@sofie-automation/corelib/src/dataModel/RundownPlaylist/RundownPlaylist.js' -export type OverUnderChipFormat = 'playlistDiff' | 'timerPostfix' | 'screenOverlay' +export type OverUnderChipFormat = 'playlistDiff' | 'timerPostfix' type OverUnderChipBaseProps = { className?: string diff --git a/packages/webui/src/client/styles/rundownStatusBar.scss b/packages/webui/src/client/styles/rundownStatusBar.scss index 27a772772eb..d3445d4dd95 100644 --- a/packages/webui/src/client/styles/rundownStatusBar.scss +++ b/packages/webui/src/client/styles/rundownStatusBar.scss @@ -30,30 +30,10 @@ background: #333; } - .rundown-status-bar__countdown { + .rundown-status-bar__t-timer { + display: flex; + align-items: center; white-space: nowrap; - - font-weight: 600; - font-size: 1.2em; - align-self: center; - - &.heavy-light { - display: inline-block; - border-radius: 1em; - padding: 0 0.2em 0 0.1em; - - &.light { - // Match `.screen-timing-clock.heavy-light.light` - background-color: #ffe900; - color: #000; - } - - &.heavy { - // Match `.screen-timing-clock.heavy-light.heavy` - background-color: $general-fast-color; - color: #000; - } - } } &.rundown-status-bar--no-title { diff --git a/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreenTop.tsx b/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreenTop.tsx index ea77f07f5a1..1aead9fd627 100644 --- a/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreenTop.tsx +++ b/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreenTop.tsx @@ -78,7 +78,7 @@ export function DirectorScreenTop({ )}
- + ) } diff --git a/packages/webui/src/client/ui/ClockView/PresenterScreen.tsx b/packages/webui/src/client/ui/ClockView/PresenterScreen.tsx index c7e82edbd15..6784c923967 100644 --- a/packages/webui/src/client/ui/ClockView/PresenterScreen.tsx +++ b/packages/webui/src/client/ui/ClockView/PresenterScreen.tsx @@ -518,7 +518,7 @@ function PresenterScreenContentDefaultLayout({ return (
- +
-): JSX.Element | null { - if ('valueMs' in props) { - return - } else { - return - } -} - -function OverUnderTimerFromPlaylist( - props: Readonly -): JSX.Element | null { - const timingDurations = useTiming() - const valueMs = getPlaylistTimingDiff(props.rundownPlaylist, timingDurations) ?? 0 - return -} - -function OverUnderTimerInner(props: Readonly): JSX.Element | null { - const valueMs = props.valueMs - if (valueMs === undefined) return null - - const isOver = valueMs > 0 - - const badge = ( - - {isOver ? '+' : '\u2013'} - {RundownUtils.formatDiffToTimecode(Math.abs(valueMs), false, true, true, false, true)} - - ) - - return props.containerClassName ?
{badge}
: badge -} diff --git a/packages/webui/src/client/ui/Prompter/PrompterView.tsx b/packages/webui/src/client/ui/Prompter/PrompterView.tsx index d010aa2c045..1e6feba518f 100644 --- a/packages/webui/src/client/ui/Prompter/PrompterView.tsx +++ b/packages/webui/src/client/ui/Prompter/PrompterView.tsx @@ -605,7 +605,10 @@ export class PrompterViewContent extends React.Component {this.configOptions.showOverUnder && ( - + )} ) { mode.type === 'countdown' && timer.state !== null && diff >= 0, })} ms={mode.type === 'timeOfDay' ? undefined : diff} - postfix={ - overUnder ? ( - - ) : undefined - } + postfix={overUnder ? : undefined} > {timeStr} From 5d707164785810ed46958d4180284ccc8c3af386 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andra=CC=81s=20Pozsgai?= Date: Fri, 17 Apr 2026 15:31:50 +0200 Subject: [PATCH 14/23] chore: address PR feedback --- .../webui/src/client/lib/Components/OverUnderChip.tsx | 2 +- .../webui/src/client/styles/countdown/presenter.scss | 2 -- .../ui/ClockView/DirectorScreen/DirectorScreen.tsx | 7 +------ .../ui/ClockView/DirectorScreen/DirectorScreenTop.tsx | 2 +- .../src/client/ui/ClockView/RundownStatusBar.tsx | 11 ++++++----- .../webui/src/client/ui/ClockView/TTimerDisplay.tsx | 2 +- 6 files changed, 10 insertions(+), 16 deletions(-) diff --git a/packages/webui/src/client/lib/Components/OverUnderChip.tsx b/packages/webui/src/client/lib/Components/OverUnderChip.tsx index 5f57cdc34d6..6315f5e27a2 100644 --- a/packages/webui/src/client/lib/Components/OverUnderChip.tsx +++ b/packages/webui/src/client/lib/Components/OverUnderChip.tsx @@ -42,7 +42,7 @@ function OverUnderChipFromPlaylist( props: Readonly ): JSX.Element | null { const timingDurations = useTiming() - const valueMs = getPlaylistTimingDiff(props.rundownPlaylist, timingDurations) ?? 0 + const valueMs = getPlaylistTimingDiff(props.rundownPlaylist, timingDurations) return } diff --git a/packages/webui/src/client/styles/countdown/presenter.scss b/packages/webui/src/client/styles/countdown/presenter.scss index 82ee8a483c7..ca63508c54a 100644 --- a/packages/webui/src/client/styles/countdown/presenter.scss +++ b/packages/webui/src/client/styles/countdown/presenter.scss @@ -31,9 +31,7 @@ $hold-status-color: $liveline-timecode-color; position: fixed; left: auto; font-size: 9vmin; - z-index: 2000; - box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.5); } diff --git a/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreen.tsx b/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreen.tsx index d715a3a6782..e10711ec93a 100644 --- a/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreen.tsx +++ b/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreen.tsx @@ -759,12 +759,7 @@ function DirectorScreenRender({ ) : null}
- +
) } diff --git a/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreenTop.tsx b/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreenTop.tsx index 1aead9fd627..045105edbbd 100644 --- a/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreenTop.tsx +++ b/packages/webui/src/client/ui/ClockView/DirectorScreen/DirectorScreenTop.tsx @@ -67,7 +67,7 @@ export function DirectorScreenTop({ value={ rehearsalInProgress ? (partInstanceToCountTimeFrom?.timings?.take || 0) + expectedDuration - now - : getCurrentTime() - (expectedStart + expectedDuration) + : now - (expectedStart + expectedDuration) } />
diff --git a/packages/webui/src/client/ui/ClockView/RundownStatusBar.tsx b/packages/webui/src/client/ui/ClockView/RundownStatusBar.tsx index 78022aa5027..c4ef375d2e5 100644 --- a/packages/webui/src/client/ui/ClockView/RundownStatusBar.tsx +++ b/packages/webui/src/client/ui/ClockView/RundownStatusBar.tsx @@ -1,13 +1,13 @@ import ClassNames from 'classnames' import { getDefaultTTimer } from '../../lib/tTimerUtils.js' import { TTimerDisplay } from './TTimerDisplay.js' -import { DBRundownPlaylist } from '@sofie-automation/corelib/src/dataModel/RundownPlaylist/RundownPlaylist.js' +import { DBRundownPlaylist } from '@sofie-automation/corelib/dist/dataModel/RundownPlaylist/RundownPlaylist.js' +import { useTranslation } from 'react-i18next' interface RundownStatusBarProps { playlist?: DBRundownPlaylist className?: string showPlaylistName?: boolean - showDiff?: boolean } export function RundownStatusBar({ @@ -16,6 +16,9 @@ export function RundownStatusBar({ showPlaylistName = true, }: Readonly): JSX.Element { const activeTTimer = playlist ? getDefaultTTimer(playlist.tTimers) : undefined + const { t } = useTranslation() + + const playlistName = playlist?.name ?? t('Unknown') return (
- {showPlaylistName && ( -
{playlist ? playlist.name : 'UNKNOWN'}
- )} + {showPlaylistName &&
{playlistName}
}
{!!activeTTimer && }
diff --git a/packages/webui/src/client/ui/ClockView/TTimerDisplay.tsx b/packages/webui/src/client/ui/ClockView/TTimerDisplay.tsx index 817ea3eb739..c05f0144502 100644 --- a/packages/webui/src/client/ui/ClockView/TTimerDisplay.tsx +++ b/packages/webui/src/client/ui/ClockView/TTimerDisplay.tsx @@ -3,7 +3,7 @@ import { RundownUtils } from '../../lib/rundown.js' import { calculateTTimerDiff, calculateTTimerOverUnder } from '../../lib/tTimerUtils.js' import { useTiming } from '../RundownView/RundownTiming/withTiming.js' import { OverUnderChip } from '../../lib/Components/OverUnderChip.js' -import { Countdown } from '../RundownView/RundownHeader/Countdown' +import { Countdown } from '../RundownView/RundownHeader/Countdown.js' interface TTimerDisplayProps { timer: RundownTTimer From bacbcc9714b4401819d189c7164a677c6a521493 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Apr 2026 08:40:42 +0100 Subject: [PATCH 15/23] chore(deps): bump actions/upload-pages-artifact from 4 to 5 (#1719) Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 4 to 5. - [Release notes](https://github.com/actions/upload-pages-artifact/releases) - [Commits](https://github.com/actions/upload-pages-artifact/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/upload-pages-artifact dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index 26c9b324dc4..9e9aa831907 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -64,7 +64,7 @@ jobs: CI: true - name: Upload Build Artifact - uses: actions/upload-pages-artifact@v4 + uses: actions/upload-pages-artifact@v5 with: path: packages/documentation/build From 0e8086359306af779b74877d2b938f61f7bfd3ec Mon Sep 17 00:00:00 2001 From: Julian Waller Date: Tue, 14 Apr 2026 13:12:26 +0100 Subject: [PATCH 16/23] chore: update libs within semver range --- .yarnrc.yml | 6 +- meteor/package.json | 40 +- meteor/yarn.lock | 1498 ++++++------ package.json | 6 +- packages/blueprints-integration/package.json | 2 +- packages/corelib/package.json | 4 +- packages/documentation/package.json | 10 +- packages/job-worker/package.json | 10 +- packages/live-status-gateway-api/package.json | 8 +- packages/live-status-gateway/package.json | 4 +- packages/meteor-lib/package.json | 6 +- packages/mos-gateway/package.json | 4 +- packages/openapi/package.json | 8 +- packages/package.json | 26 +- packages/playout-gateway/package.json | 4 +- packages/server-core-integration/package.json | 14 +- packages/shared-lib/package.json | 2 +- packages/webui/package.json | 36 +- packages/yarn.lock | 2174 ++++++++--------- yarn.lock | 266 +- 20 files changed, 1950 insertions(+), 2178 deletions(-) diff --git a/.yarnrc.yml b/.yarnrc.yml index 3bdf82f7357..882e7b6a209 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -14,6 +14,6 @@ npmMinimalAgeGate: 7 npmPreapprovedPackages: - "@sofie-automation/*" - "@mos-connection/*" - - "timeline-state-resolver" - - "timeline-state-resolver-types" - - "timeline-state-resolver-api" \ No newline at end of file + - timeline-state-resolver + - timeline-state-resolver-types + - timeline-state-resolver-api diff --git a/meteor/package.json b/meteor/package.json index 32c69ae4ee4..16f63c41388 100644 --- a/meteor/package.json +++ b/meteor/package.json @@ -35,11 +35,11 @@ "validate:dev-dependencies": "yarn npm audit --environment development --severity moderate" }, "dependencies": { - "@babel/runtime": "^7.28.6", + "@babel/runtime": "^7.29.2", "@koa/cors": "^5.0.0", - "@koa/router": "^15.3.0", + "@koa/router": "^15.4.0", "@mos-connection/helper": "^5.0.0-alpha.0", - "@slack/webhook": "^7.0.6", + "@slack/webhook": "^7.0.9", "@sofie-automation/blueprints-integration": "portal:../packages/blueprints-integration", "@sofie-automation/corelib": "portal:../packages/corelib", "@sofie-automation/job-worker": "portal:../packages/job-worker", @@ -52,54 +52,54 @@ "elastic-apm-node": "^4.15.0", "i18next": "^21.10.0", "indexof": "0.0.1", - "koa": "^3.1.1", + "koa": "^3.2.0", "koa-bodyparser": "^4.4.1", "koa-mount": "^4.2.0", "koa-static": "^5.0.0", - "meteor-node-stubs": "^1.2.25", + "meteor-node-stubs": "^1.2.27", "moment": "^2.30.1", "nanoid": "^3.3.11", "ntp-client": "^0.5.3", "object-path": "^0.11.8", "p-lazy": "^3.1.0", - "semver": "^7.7.3", + "semver": "^7.7.4", "superfly-timeline": "9.2.0", - "threadedclass": "^1.3.0", + "threadedclass": "^1.4.0", "timecode": "0.0.4", "type-fest": "^4.41.0", - "underscore": "^1.13.7", + "underscore": "^1.13.8", "winston": "^3.19.0" }, "devDependencies": { "@babel/core": "^7.29.0", "@babel/plugin-transform-modules-commonjs": "^7.28.6", "@shopify/jest-koa-mocks": "^5.3.1", - "@sofie-automation/code-standard-preset": "^3.0.0", + "@sofie-automation/code-standard-preset": "^3.2.2", "@types/body-parser": "^1.19.6", "@types/deep-extend": "^0.6.2", "@types/jest": "^30.0.0", - "@types/koa": "^3.0.1", + "@types/koa": "^3.0.2", "@types/koa-bodyparser": "^4.3.13", "@types/koa-mount": "^4.0.5", "@types/koa-static": "^4.0.4", "@types/koa__cors": "^5.0.1", - "@types/node": "^22.19.8", + "@types/node": "^22.19.17", "@types/semver": "^7.7.1", "@types/underscore": "^1.13.0", - "babel-jest": "^30.2.0", - "commit-and-tag-version": "^12.6.1", + "babel-jest": "^30.3.0", + "commit-and-tag-version": "^12.7.1", "ejson": "^2.2.3", - "eslint": "^9.39.2", + "eslint": "^9.39.4", "fast-clone": "^1.5.13", - "glob": "^13.0.1", + "glob": "^13.0.6", "i18next-conv": "^10.2.0", "i18next-scanner": "^4.6.0", - "jest": "^30.2.0", - "jest-util": "^30.2.0", + "jest": "^30.3.0", + "jest-util": "^30.3.0", "legally": "^3.5.10", "open-cli": "^8.0.0", - "prettier": "^3.8.1", - "ts-jest": "^29.4.6", + "prettier": "^3.8.3", + "ts-jest": "^29.4.9", "typescript": "~5.7.3", "yargs": "^17.7.2" }, @@ -129,5 +129,5 @@ "@sofie-automation/job-worker": "portal:../packages/job-worker", "@sofie-automation/shared-lib": "portal:../packages/shared-lib" }, - "packageManager": "yarn@4.12.0" + "packageManager": "yarn@4.14.1" } diff --git a/meteor/yarn.lock b/meteor/yarn.lock index 4385df6d3a9..3d817c2136a 100644 --- a/meteor/yarn.lock +++ b/meteor/yarn.lock @@ -2,7 +2,7 @@ # Manual changes might be lost - proceed with caution! __metadata: - version: 8 + version: 9 cacheKey: 10 "@aashutoshrathi/word-wrap@npm:^1.2.3": @@ -368,10 +368,10 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.17.2, @babel/runtime@npm:^7.22.5, @babel/runtime@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/runtime@npm:7.28.6" - checksum: 10/fbcd439cb74d4a681958eb064c509829e3f46d8a4bfaaf441baa81bb6733d1e680bccc676c813883d7741bcaada1d0d04b15aa320ef280b5734e2192b50decf9 +"@babel/runtime@npm:^7.17.2, @babel/runtime@npm:^7.22.5, @babel/runtime@npm:^7.29.2": + version: 7.29.2 + resolution: "@babel/runtime@npm:7.29.2" + checksum: 10/f55ba4052aa0255055b34371a145fbe69c29b37b49eaea14805b095bfb4153701486416e89392fd27ec8abafa53868be86e960b9f8f959fff91f2c8ac2a14b02 languageName: node linkType: hard @@ -480,7 +480,7 @@ __metadata: languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.4.0, @eslint-community/eslint-utils@npm:^4.4.1, @eslint-community/eslint-utils@npm:^4.8.0": +"@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.5.0, @eslint-community/eslint-utils@npm:^4.8.0, @eslint-community/eslint-utils@npm:^4.9.1": version: 4.9.1 resolution: "@eslint-community/eslint-utils@npm:4.9.1" dependencies: @@ -491,21 +491,21 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.11.0, @eslint-community/regexpp@npm:^4.12.1": - version: 4.12.1 - resolution: "@eslint-community/regexpp@npm:4.12.1" - checksum: 10/c08f1dd7dd18fbb60bdd0d85820656d1374dd898af9be7f82cb00451313402a22d5e30569c150315b4385907cdbca78c22389b2a72ab78883b3173be317620cc +"@eslint-community/regexpp@npm:^4.11.0, @eslint-community/regexpp@npm:^4.12.1, @eslint-community/regexpp@npm:^4.12.2": + version: 4.12.2 + resolution: "@eslint-community/regexpp@npm:4.12.2" + checksum: 10/049b280fddf71dd325514e0a520024969431dc3a8b02fa77476e6820e9122f28ab4c9168c11821f91a27982d2453bcd7a66193356ea84e84fb7c8d793be1ba0c languageName: node linkType: hard -"@eslint/config-array@npm:^0.21.1": - version: 0.21.1 - resolution: "@eslint/config-array@npm:0.21.1" +"@eslint/config-array@npm:^0.21.2": + version: 0.21.2 + resolution: "@eslint/config-array@npm:0.21.2" dependencies: "@eslint/object-schema": "npm:^2.1.7" debug: "npm:^4.3.1" - minimatch: "npm:^3.1.2" - checksum: 10/6eaa0435972f735ce52d581f355a0b616e50a9b8a73304a7015398096e252798b9b3b968a67b524eefb0fdeacc57c4d960f0ec6432abe1c1e24be815b88c5d18 + minimatch: "npm:^3.1.5" + checksum: 10/148477ba995cf57fc725601916d5a7914aa249112d8bec2c3ac9122e2b2f540e6ef013ff4f6785346a4b565f09b20db127fa6f7322f5ffbdb3f1f8d2078a531c languageName: node linkType: hard @@ -527,27 +527,27 @@ __metadata: languageName: node linkType: hard -"@eslint/eslintrc@npm:^3.3.1": - version: 3.3.3 - resolution: "@eslint/eslintrc@npm:3.3.3" +"@eslint/eslintrc@npm:^3.3.5": + version: 3.3.5 + resolution: "@eslint/eslintrc@npm:3.3.5" dependencies: - ajv: "npm:^6.12.4" + ajv: "npm:^6.14.0" debug: "npm:^4.3.2" espree: "npm:^10.0.1" globals: "npm:^14.0.0" ignore: "npm:^5.2.0" import-fresh: "npm:^3.2.1" js-yaml: "npm:^4.1.1" - minimatch: "npm:^3.1.2" + minimatch: "npm:^3.1.5" strip-json-comments: "npm:^3.1.1" - checksum: 10/b586a364ff15ce1b68993aefc051ca330b1fece15fb5baf4a708d00113f9a14895cffd84a5f24c5a97bd4b4321130ab2314f90aa462a250f6b859c2da2cba1f3 + checksum: 10/edabb65693d82a88cac3b2cf932a0f825e986b5e0a21ef08782d07e3a61ad87d39db67cfd5aeb146fd5053e5e24e389dbe5649ab22936a71d633c7b32a7e6d86 languageName: node linkType: hard -"@eslint/js@npm:9.39.2": - version: 9.39.2 - resolution: "@eslint/js@npm:9.39.2" - checksum: 10/6b7f676746f3111b5d1b23715319212ab9297868a0fa9980d483c3da8965d5841673aada2d5653e85a3f7156edee0893a7ae7035211b4efdcb2848154bb947f2 +"@eslint/js@npm:9.39.4": + version: 9.39.4 + resolution: "@eslint/js@npm:9.39.4" + checksum: 10/0a7ab4c4108cf2cadf66849ebd20f5957cc53052b88d8807d0b54e489dbf6ffcaf741e144e7f9b187c395499ce2e6ddc565dbfa4f60c6df455cf2b30bcbdc5a3 languageName: node linkType: hard @@ -665,110 +665,109 @@ __metadata: languageName: node linkType: hard -"@jest/console@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/console@npm:30.2.0" +"@jest/console@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/console@npm:30.3.0" dependencies: - "@jest/types": "npm:30.2.0" + "@jest/types": "npm:30.3.0" "@types/node": "npm:*" chalk: "npm:^4.1.2" - jest-message-util: "npm:30.2.0" - jest-util: "npm:30.2.0" + jest-message-util: "npm:30.3.0" + jest-util: "npm:30.3.0" slash: "npm:^3.0.0" - checksum: 10/7cda9793962afa5c7fcfdde0ff5012694683b17941ee3c6a55ea9fd9a02f1c51ec4b4c767b867e1226f85a26af1d0f0d72c6a344e34c5bc4300312ebffd6e50b + checksum: 10/aa23c9d77975b7c547190394272454e3563fbf0f99e7170f8b3f8128d83aaa62ad2d07291633e0ec1d4aee7e256dcf0b254bd391cdcd039d0ce6eac6ca835b24 languageName: node linkType: hard -"@jest/core@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/core@npm:30.2.0" +"@jest/core@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/core@npm:30.3.0" dependencies: - "@jest/console": "npm:30.2.0" + "@jest/console": "npm:30.3.0" "@jest/pattern": "npm:30.0.1" - "@jest/reporters": "npm:30.2.0" - "@jest/test-result": "npm:30.2.0" - "@jest/transform": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/reporters": "npm:30.3.0" + "@jest/test-result": "npm:30.3.0" + "@jest/transform": "npm:30.3.0" + "@jest/types": "npm:30.3.0" "@types/node": "npm:*" ansi-escapes: "npm:^4.3.2" chalk: "npm:^4.1.2" ci-info: "npm:^4.2.0" exit-x: "npm:^0.2.2" graceful-fs: "npm:^4.2.11" - jest-changed-files: "npm:30.2.0" - jest-config: "npm:30.2.0" - jest-haste-map: "npm:30.2.0" - jest-message-util: "npm:30.2.0" + jest-changed-files: "npm:30.3.0" + jest-config: "npm:30.3.0" + jest-haste-map: "npm:30.3.0" + jest-message-util: "npm:30.3.0" jest-regex-util: "npm:30.0.1" - jest-resolve: "npm:30.2.0" - jest-resolve-dependencies: "npm:30.2.0" - jest-runner: "npm:30.2.0" - jest-runtime: "npm:30.2.0" - jest-snapshot: "npm:30.2.0" - jest-util: "npm:30.2.0" - jest-validate: "npm:30.2.0" - jest-watcher: "npm:30.2.0" - micromatch: "npm:^4.0.8" - pretty-format: "npm:30.2.0" + jest-resolve: "npm:30.3.0" + jest-resolve-dependencies: "npm:30.3.0" + jest-runner: "npm:30.3.0" + jest-runtime: "npm:30.3.0" + jest-snapshot: "npm:30.3.0" + jest-util: "npm:30.3.0" + jest-validate: "npm:30.3.0" + jest-watcher: "npm:30.3.0" + pretty-format: "npm:30.3.0" slash: "npm:^3.0.0" peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: node-notifier: optional: true - checksum: 10/6763bb1efd937778f009821cd94c3705d3c31a156258a224b8745c1e0887976683f5413745ffb361b526f0fa2692e36aaa963aa197cc77ba932cff9d6d28af9d + checksum: 10/76f8561686e3bbaf2fcdc9c2391d47fef403e5fe0a936a48762ca60bcaf18692b5d2f8e5e26610cc43e965a6b120458dc9a7484e7e8ffb459118b61a90c2063d languageName: node linkType: hard -"@jest/diff-sequences@npm:30.0.1": - version: 30.0.1 - resolution: "@jest/diff-sequences@npm:30.0.1" - checksum: 10/0ddb7c7ba92d6057a2ee51a9cfc2155b77cca707fe959167466ea02dcb0687018cc3c22b9622f25f3a417d6ad370e2d4dcfedf9f1410dc9c02954a7484423cc7 +"@jest/diff-sequences@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/diff-sequences@npm:30.3.0" + checksum: 10/0d5b6e1599c5e0bb702f0804e7f93bbe4911b5929c40fd6a77c06105711eae24d709c8964e8d623cc70c34b7dc7262d76a115a6eb05f1576336cdb6c46593e7c languageName: node linkType: hard -"@jest/environment@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/environment@npm:30.2.0" +"@jest/environment@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/environment@npm:30.3.0" dependencies: - "@jest/fake-timers": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/fake-timers": "npm:30.3.0" + "@jest/types": "npm:30.3.0" "@types/node": "npm:*" - jest-mock: "npm:30.2.0" - checksum: 10/e168a4ff328980eb9fde5e43aea80807fd0b2dbd4579ae8f68a03415a1e58adf5661db298054fa2351c7cb2b5a74bf67b8ab996656cf5927d0b0d0b6e2c2966b + jest-mock: "npm:30.3.0" + checksum: 10/9b64add2e5430411ca997aed23cd34786d0e87562f5930ad0d4160df51435ae061809fcaa6bbc6c0ff9f0ba5f1241a5ce9a32ec772fa1d7c6b022f0169b622a4 languageName: node linkType: hard -"@jest/expect-utils@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/expect-utils@npm:30.2.0" +"@jest/expect-utils@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/expect-utils@npm:30.3.0" dependencies: "@jest/get-type": "npm:30.1.0" - checksum: 10/f2442f1bceb3411240d0f16fd0074377211b4373d3b8b2dc28929e861b6527a6deb403a362c25afa511d933cda4dfbdc98d4a08eeb51ee4968f7cb0299562349 + checksum: 10/766fd24f527a13004c542c2642b68b9142270801ab20bd448a559d9c2f40af079d0eb9ec9520a47f97b4d6c7d0837ba46e86284f53c939f11d9fcbda73a11e19 languageName: node linkType: hard -"@jest/expect@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/expect@npm:30.2.0" +"@jest/expect@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/expect@npm:30.3.0" dependencies: - expect: "npm:30.2.0" - jest-snapshot: "npm:30.2.0" - checksum: 10/d950d95a64d5c6a39d56171dabb8dbe59423096231bb4f21d8ee0019878e6626701ac9d782803dc2589e2799ed39704031f818533f8a3e571b57032eafa85d12 + expect: "npm:30.3.0" + jest-snapshot: "npm:30.3.0" + checksum: 10/74832945a2b18c7b962b27e0ca4d25d19a29d1c3ca6fe4a9c23946025b4146799e62a81d50060ac7bcaf7036fb477aa350ddf300e215333b42d013a3d9f8ba2b languageName: node linkType: hard -"@jest/fake-timers@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/fake-timers@npm:30.2.0" +"@jest/fake-timers@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/fake-timers@npm:30.3.0" dependencies: - "@jest/types": "npm:30.2.0" - "@sinonjs/fake-timers": "npm:^13.0.0" + "@jest/types": "npm:30.3.0" + "@sinonjs/fake-timers": "npm:^15.0.0" "@types/node": "npm:*" - jest-message-util: "npm:30.2.0" - jest-mock: "npm:30.2.0" - jest-util: "npm:30.2.0" - checksum: 10/c2df66576ba8049b07d5f239777243e21fcdaa09a446be1e55fac709d6273e2a926c1562e0372c3013142557ed9d386381624023549267a667b6e1b656e37fe6 + jest-message-util: "npm:30.3.0" + jest-mock: "npm:30.3.0" + jest-util: "npm:30.3.0" + checksum: 10/e39d30b61ae85485bfa0b1d86d62d866d33964bf0b95b8b4f45d2f1f1baa94fd7e134c7729370a58cb67b58d2b860fb396290b5c271782ed4d3728341027549b languageName: node linkType: hard @@ -779,15 +778,15 @@ __metadata: languageName: node linkType: hard -"@jest/globals@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/globals@npm:30.2.0" +"@jest/globals@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/globals@npm:30.3.0" dependencies: - "@jest/environment": "npm:30.2.0" - "@jest/expect": "npm:30.2.0" - "@jest/types": "npm:30.2.0" - jest-mock: "npm:30.2.0" - checksum: 10/d4a331d3847cebb3acefe120350d8a6bb5517c1403de7cd2b4dc67be425f37ba0511beee77d6837b4da2d93a25a06d6f829ad7837da365fae45e1da57523525c + "@jest/environment": "npm:30.3.0" + "@jest/expect": "npm:30.3.0" + "@jest/types": "npm:30.3.0" + jest-mock: "npm:30.3.0" + checksum: 10/485bdc0f35faf3e76cb451b75e16892d87f7ab5757e290b1a9e849a3af0ef81c47abddb188fbc0442a4689514cf0551e34d13970c9cf03610a269c39f800ff46 languageName: node linkType: hard @@ -801,30 +800,30 @@ __metadata: languageName: node linkType: hard -"@jest/reporters@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/reporters@npm:30.2.0" +"@jest/reporters@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/reporters@npm:30.3.0" dependencies: "@bcoe/v8-coverage": "npm:^0.2.3" - "@jest/console": "npm:30.2.0" - "@jest/test-result": "npm:30.2.0" - "@jest/transform": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/console": "npm:30.3.0" + "@jest/test-result": "npm:30.3.0" + "@jest/transform": "npm:30.3.0" + "@jest/types": "npm:30.3.0" "@jridgewell/trace-mapping": "npm:^0.3.25" "@types/node": "npm:*" chalk: "npm:^4.1.2" collect-v8-coverage: "npm:^1.0.2" exit-x: "npm:^0.2.2" - glob: "npm:^10.3.10" + glob: "npm:^10.5.0" graceful-fs: "npm:^4.2.11" istanbul-lib-coverage: "npm:^3.0.0" istanbul-lib-instrument: "npm:^6.0.0" istanbul-lib-report: "npm:^3.0.0" istanbul-lib-source-maps: "npm:^5.0.0" istanbul-reports: "npm:^3.1.3" - jest-message-util: "npm:30.2.0" - jest-util: "npm:30.2.0" - jest-worker: "npm:30.2.0" + jest-message-util: "npm:30.3.0" + jest-util: "npm:30.3.0" + jest-worker: "npm:30.3.0" slash: "npm:^3.0.0" string-length: "npm:^4.0.2" v8-to-istanbul: "npm:^9.0.1" @@ -833,7 +832,7 @@ __metadata: peerDependenciesMeta: node-notifier: optional: true - checksum: 10/3848b59bf740c10c4e5c234dcc41c54adbd74932bf05d1d1582d09d86e9baa86ddaf3c43903505fd042ba1203c2889a732137d08058ce9dc0069ba33b5d5373d + checksum: 10/50cc20d9e908239352c5c6bc594c2880e30e16db6f8c0657513d1a46e3a761ed20464afa604af35bc72cbca0eac6cd34829c075513ecf725af03161a7662097e languageName: node linkType: hard @@ -846,15 +845,15 @@ __metadata: languageName: node linkType: hard -"@jest/snapshot-utils@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/snapshot-utils@npm:30.2.0" +"@jest/snapshot-utils@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/snapshot-utils@npm:30.3.0" dependencies: - "@jest/types": "npm:30.2.0" + "@jest/types": "npm:30.3.0" chalk: "npm:^4.1.2" graceful-fs: "npm:^4.2.11" natural-compare: "npm:^1.4.0" - checksum: 10/6b30ab2b0682117e3ce775e70b5be1eb01e1ea53a74f12ac7090cd1a5f37e9b795cd8de83853afa7b4b799c96b1c482499aa993ca2034ea0679525d32b7f9625 + checksum: 10/2214d4f0f33d2363a0785c0ba75066bf4ed4beefd5b2d2a5c3124d66ab92f91163f03696be625223bdb0527f1e6360c4b306ba9ae421aeb966d4a57d6d972099 languageName: node linkType: hard @@ -869,56 +868,55 @@ __metadata: languageName: node linkType: hard -"@jest/test-result@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/test-result@npm:30.2.0" +"@jest/test-result@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/test-result@npm:30.3.0" dependencies: - "@jest/console": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/console": "npm:30.3.0" + "@jest/types": "npm:30.3.0" "@types/istanbul-lib-coverage": "npm:^2.0.6" collect-v8-coverage: "npm:^1.0.2" - checksum: 10/f58f79c3c3ba6dd15325e05b0b5a300777cd8cc38327f622608b6fe849b1073ee9633e33d1e5d7ef5b97a1ce71543d0ad92674b7a279f53033143e8dd7c22959 + checksum: 10/89bed2adc8077e592deb74e4a9bd6c1d937c1ae18805b3b4e799d00276ab91a4974b7dc1f38dc12a5da7712ef0ba2e63c69245696e63f4a7b292fc79bb3981b7 languageName: node linkType: hard -"@jest/test-sequencer@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/test-sequencer@npm:30.2.0" +"@jest/test-sequencer@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/test-sequencer@npm:30.3.0" dependencies: - "@jest/test-result": "npm:30.2.0" + "@jest/test-result": "npm:30.3.0" graceful-fs: "npm:^4.2.11" - jest-haste-map: "npm:30.2.0" + jest-haste-map: "npm:30.3.0" slash: "npm:^3.0.0" - checksum: 10/7923964b27048b2233858b32aa1b34d4dd9e404311626d944a706bcdcaa0b1585f43f2ffa3fa893ecbf133566f31ba2b79ab5eaaaf674b8558c6c7029ecbea5e + checksum: 10/d2a593733b029bae5e1a60249fb8ced2fa701e2b336b69de4cd0a1e0008f4373ab1329422f819e209d1d95a29959bd0cc131c7f94c9ad8f3831833f79a08f997 languageName: node linkType: hard -"@jest/transform@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/transform@npm:30.2.0" +"@jest/transform@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/transform@npm:30.3.0" dependencies: "@babel/core": "npm:^7.27.4" - "@jest/types": "npm:30.2.0" + "@jest/types": "npm:30.3.0" "@jridgewell/trace-mapping": "npm:^0.3.25" babel-plugin-istanbul: "npm:^7.0.1" chalk: "npm:^4.1.2" convert-source-map: "npm:^2.0.0" fast-json-stable-stringify: "npm:^2.1.0" graceful-fs: "npm:^4.2.11" - jest-haste-map: "npm:30.2.0" + jest-haste-map: "npm:30.3.0" jest-regex-util: "npm:30.0.1" - jest-util: "npm:30.2.0" - micromatch: "npm:^4.0.8" + jest-util: "npm:30.3.0" pirates: "npm:^4.0.7" slash: "npm:^3.0.0" write-file-atomic: "npm:^5.0.1" - checksum: 10/c75d72d524c2a50ea6c05778a9b76a6e48bc228a3390896a6edd4416f7b4954ee0a07e229ed7b4949ce8889324b70034c784751e3fc455a25648bd8dcad17d0d + checksum: 10/279b6b73f59c274d7011febcbc0a1fa8939e8f677801a0a9bd95b9cf49244957267f3769c8cd541ae8026d8176089cd5e55f0f8d5361ec7788970978f4f394b4 languageName: node linkType: hard -"@jest/types@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/types@npm:30.2.0" +"@jest/types@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/types@npm:30.3.0" dependencies: "@jest/pattern": "npm:30.0.1" "@jest/schemas": "npm:30.0.5" @@ -927,7 +925,7 @@ __metadata: "@types/node": "npm:*" "@types/yargs": "npm:^17.0.33" chalk: "npm:^4.1.2" - checksum: 10/f50fcaea56f873a51d19254ab16762f2ea8ca88e3e08da2e496af5da2b67c322915a4fcd0153803cc05063ffe87ebef2ab4330e0a1b06ab984a26c916cbfc26b + checksum: 10/d6943cc270f07c7bc1ee6f3bb9ad1263ce7897d1a282221bf1d27499d77f2a68cfa6625ca73c193d3f81fe22a8e00635cd7acb5e73a546965c172219c81ec12c languageName: node linkType: hard @@ -984,9 +982,9 @@ __metadata: languageName: node linkType: hard -"@koa/router@npm:^15.3.0": - version: 15.3.0 - resolution: "@koa/router@npm:15.3.0" +"@koa/router@npm:^15.4.0": + version: 15.4.0 + resolution: "@koa/router@npm:15.4.0" dependencies: debug: "npm:^4.4.3" http-errors: "npm:^2.0.1" @@ -997,7 +995,7 @@ __metadata: peerDependenciesMeta: koa: optional: false - checksum: 10/5f2679916514c28a1694ec3c0eac1b869c21d5527a4fdc4b248b3f4c595010389973401eadf6ff3f5c26d24ee84a391325880de51320f1965f917a21120d2899 + checksum: 10/03332e1700ef812a5b89e941b3050b027bc71cfbaee3240f63d3763f93d3a6c740f81f09a19a1c45decaac4b477fecf146773168819e1537a22ade198324c702 languageName: node linkType: hard @@ -1098,33 +1096,6 @@ __metadata: languageName: node linkType: hard -"@nodelib/fs.scandir@npm:2.1.5": - version: 2.1.5 - resolution: "@nodelib/fs.scandir@npm:2.1.5" - dependencies: - "@nodelib/fs.stat": "npm:2.0.5" - run-parallel: "npm:^1.1.9" - checksum: 10/6ab2a9b8a1d67b067922c36f259e3b3dfd6b97b219c540877a4944549a4d49ea5ceba5663905ab5289682f1f3c15ff441d02f0447f620a42e1cb5e1937174d4b - languageName: node - linkType: hard - -"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": - version: 2.0.5 - resolution: "@nodelib/fs.stat@npm:2.0.5" - checksum: 10/012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 - languageName: node - linkType: hard - -"@nodelib/fs.walk@npm:^1.2.3": - version: 1.2.8 - resolution: "@nodelib/fs.walk@npm:1.2.8" - dependencies: - "@nodelib/fs.scandir": "npm:2.1.5" - fastq: "npm:^1.6.0" - checksum: 10/40033e33e96e97d77fba5a238e4bba4487b8284678906a9f616b5579ddaf868a18874c0054a75402c9fbaaa033a25ceae093af58c9c30278e35c23c9479e79b0 - languageName: node - linkType: hard - "@npmcli/agent@npm:^4.0.0": version: 4.0.0 resolution: "@npmcli/agent@npm:4.0.0" @@ -1204,13 +1175,6 @@ __metadata: languageName: node linkType: hard -"@pkgr/core@npm:^0.1.0": - version: 0.1.1 - resolution: "@pkgr/core@npm:0.1.1" - checksum: 10/6f25fd2e3008f259c77207ac9915b02f1628420403b2630c92a07ff963129238c9262afc9e84344c7a23b5cc1f3965e2cd17e3798219f5fd78a63d144d3cceba - languageName: node - linkType: hard - "@pkgr/core@npm:^0.2.9": version: 0.2.9 resolution: "@pkgr/core@npm:0.2.9" @@ -1244,30 +1208,30 @@ __metadata: languageName: node linkType: hard -"@sinonjs/fake-timers@npm:^13.0.0": - version: 13.0.5 - resolution: "@sinonjs/fake-timers@npm:13.0.5" +"@sinonjs/fake-timers@npm:^15.0.0": + version: 15.3.2 + resolution: "@sinonjs/fake-timers@npm:15.3.2" dependencies: "@sinonjs/commons": "npm:^3.0.1" - checksum: 10/11ee417968fc4dce1896ab332ac13f353866075a9d2a88ed1f6258f17cc4f7d93e66031b51fcddb8c203aa4d53fd980b0ae18aba06269f4682164878a992ec3f + checksum: 10/270a0f440bbcee2ad3fbe50b3c3cf311afd82e3cfcdff9572485fc17948b66c2cdfc5c906d64884ec623eced97ceb23c7639c3066ad4696976acf9f63a93c4c8 languageName: node linkType: hard -"@slack/types@npm:^2.9.0": - version: 2.14.0 - resolution: "@slack/types@npm:2.14.0" - checksum: 10/fa24a113b88e087f899078504c2ba50ab9795f7c2dd1a2d95b28217a3af20e554494f9cc3b8c8ce173120990d98e19400c95369f9067cecfcc46c08b59d2a46f +"@slack/types@npm:^2.20.1": + version: 2.20.1 + resolution: "@slack/types@npm:2.20.1" + checksum: 10/5d13017df8c8468f34e4d24579a26f5ada934a6b7139e88d894c7d1d14f47da826a20c08e2537c6ab74d7624a4b193dc2b34458bae6466173fad1fd5c053b6f6 languageName: node linkType: hard -"@slack/webhook@npm:^7.0.6": - version: 7.0.6 - resolution: "@slack/webhook@npm:7.0.6" +"@slack/webhook@npm:^7.0.9": + version: 7.0.9 + resolution: "@slack/webhook@npm:7.0.9" dependencies: - "@slack/types": "npm:^2.9.0" - "@types/node": "npm:>=18.0.0" - axios: "npm:^1.11.0" - checksum: 10/8f8083f9654e590f04731985b337f576842b2034a9261010f85d813c4e262f69d856c142b0dcf2022bfe69c22c2e97cc7d877a79989cd0f7a0cf2554ae0754ed + "@slack/types": "npm:^2.20.1" + "@types/node": "npm:>=18" + axios: "npm:^1.15.0" + checksum: 10/bf579ddc3c8bfb9937c86b9a66aeafcad6bd8b27b257eb2285c690724ede92ebba4f2dff8a39033fddbabc78ad26ab0472ec9b5775d9cc5e0b605a0945fb4d5a languageName: node linkType: hard @@ -1291,21 +1255,22 @@ __metadata: languageName: node linkType: soft -"@sofie-automation/code-standard-preset@npm:^3.0.0": - version: 3.0.0 - resolution: "@sofie-automation/code-standard-preset@npm:3.0.0" +"@sofie-automation/code-standard-preset@npm:^3.2.2": + version: 3.2.2 + resolution: "@sofie-automation/code-standard-preset@npm:3.2.2" dependencies: - "@sofie-automation/eslint-plugin": "npm:0.2.0" + "@sofie-automation/eslint-plugin": "npm:0.2.1" + "@vitest/eslint-plugin": "npm:^1.6.6" date-fns: "npm:^4.1.0" - eslint-config-prettier: "npm:^10.0.1" - eslint-plugin-jest: "npm:^28.11.0" - eslint-plugin-n: "npm:^17.15.1" - eslint-plugin-prettier: "npm:^5.2.3" + eslint-config-prettier: "npm:^10.1.8" + eslint-plugin-jest: "npm:^28.14.0" + eslint-plugin-n: "npm:^17.23.2" + eslint-plugin-prettier: "npm:^5.5.5" license-checker: "npm:^25.0.1" meow: "npm:^13.2.0" read-package-up: "npm:^11.0.0" - semver: "npm:^7.6.3" - typescript-eslint: "npm:^8.21.0" + semver: "npm:^7.7.3" + typescript-eslint: "npm:^8.54.0" peerDependencies: eslint: ^9 prettier: ^3 @@ -1313,7 +1278,7 @@ __metadata: bin: sofie-licensecheck: ./bin/checkLicenses.mjs sofie-version: ./bin/updateVersion.mjs - checksum: 10/fa61dc1f90377ad2196f2e6c33dea9988bbe9cfd6eb8b277a083ae1147c00e83e526b7520bb5548d4935fb91b7f9f1d8f9b701db419da760488c318ea42a243f + checksum: 10/e930ea2e5dfb6502f121cf25d157c57450d1c96be5c65c4d3b3695ec3251683d1373c1cd189d47daff2b4dc7b7f6854d3fb92e38a21fc03418886707324bcd92 languageName: node linkType: hard @@ -1332,20 +1297,21 @@ __metadata: timecode: "npm:0.0.4" tslib: "npm:^2.8.1" type-fest: "npm:^4.41.0" - underscore: "npm:^1.13.7" + underscore: "npm:^1.13.8" peerDependencies: mongodb: ^6.12.0 languageName: node linkType: soft -"@sofie-automation/eslint-plugin@npm:0.2.0": - version: 0.2.0 - resolution: "@sofie-automation/eslint-plugin@npm:0.2.0" +"@sofie-automation/eslint-plugin@npm:0.2.1": + version: 0.2.1 + resolution: "@sofie-automation/eslint-plugin@npm:0.2.1" dependencies: "@typescript-eslint/utils": "npm:^8.21.0" + tslib: "npm:^2.8.1" peerDependencies: eslint: ^9 - checksum: 10/7d2898cab2d89fcab727597a7a8ff49dacb030166f390d4b20ec27fbb53f8e330a2a034090484611f1cb0fe98bd4a1bc961e0cc6e77236d5c84065ae830fa1ad + checksum: 10/650cd6f075d531a9f88012aff314d3a9d5a0e9414f2062a13ba49ba955ad6140255ec863ee69ea2b112c31228341de7ad4f42ecf3ebd39cfdea1fba5be62da0b languageName: node linkType: hard @@ -1353,7 +1319,7 @@ __metadata: version: 0.0.0-use.local resolution: "@sofie-automation/job-worker@portal:../packages/job-worker::locator=automation-core%40workspace%3A." dependencies: - "@slack/webhook": "npm:^7.0.6" + "@slack/webhook": "npm:^7.0.9" "@sofie-automation/blueprints-integration": "npm:26.3.0-2" "@sofie-automation/corelib": "npm:26.3.0-2" "@sofie-automation/shared-lib": "npm:26.3.0-2" @@ -1365,10 +1331,10 @@ __metadata: p-lazy: "npm:^3.1.0" p-timeout: "npm:^4.1.0" superfly-timeline: "npm:9.2.0" - threadedclass: "npm:^1.3.0" + threadedclass: "npm:^1.4.0" tslib: "npm:^2.8.1" type-fest: "npm:^4.41.0" - underscore: "npm:^1.13.7" + underscore: "npm:^1.13.8" languageName: node linkType: soft @@ -1381,9 +1347,9 @@ __metadata: "@sofie-automation/corelib": "npm:26.3.0-2" "@sofie-automation/shared-lib": "npm:26.3.0-2" deep-extend: "npm:0.6.0" - semver: "npm:^7.7.3" + semver: "npm:^7.7.4" type-fest: "npm:^4.41.0" - underscore: "npm:^1.13.7" + underscore: "npm:^1.13.8" peerDependencies: i18next: ^21.10.0 mongodb: ^6.12.0 @@ -1653,9 +1619,9 @@ __metadata: languageName: node linkType: hard -"@types/koa@npm:*, @types/koa@npm:^3.0.1": - version: 3.0.1 - resolution: "@types/koa@npm:3.0.1" +"@types/koa@npm:*, @types/koa@npm:^3.0.2": + version: 3.0.2 + resolution: "@types/koa@npm:3.0.2" dependencies: "@types/accepts": "npm:*" "@types/content-disposition": "npm:*" @@ -1665,7 +1631,7 @@ __metadata: "@types/keygrip": "npm:*" "@types/koa-compose": "npm:*" "@types/node": "npm:*" - checksum: 10/b1581d31d562bb5d9f61bc0148652abffc701c39930eb77a57b7d1f43aaad56ffa1970f6f3d4d6a0a56395a6832e2711a3278850dcc5a6c986ba6ed2cd0f4f1f + checksum: 10/1522fa11ec3520275232b4e054424142a3cdb19e7991673d6371b6cdcb5587d56858098dc196a9580b98174a66326545fc64be98d88652915b21bdebc2905dcf languageName: node linkType: hard @@ -1699,12 +1665,21 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:>=18.0.0, @types/node@npm:^22.19.8": - version: 22.19.8 - resolution: "@types/node@npm:22.19.8" +"@types/node@npm:*, @types/node@npm:>=18": + version: 25.6.0 + resolution: "@types/node@npm:25.6.0" + dependencies: + undici-types: "npm:~7.19.0" + checksum: 10/99b18690a4be55904cbf8f6a6ac8eed5ec5b8d791fdd8ee2ae598b46c0fa9b83cda7b70dd7f00dbfb18189dcfc67648fdc7fdd3fcced2619a5a6453d9aec107d + languageName: node + linkType: hard + +"@types/node@npm:^22.19.17": + version: 22.19.17 + resolution: "@types/node@npm:22.19.17" dependencies: undici-types: "npm:~6.21.0" - checksum: 10/a61c68d434871d4a13496e3607502b2ff8e2ff69dca7e09228de5bea3bc95eb627d09243a8cff8e0bf9ff1fa13baaf0178531748f59ae81f0569c7a2f053bfa5 + checksum: 10/8adcf9c2e9e7c524196efdd5ee60ebeda980b4ec9b5b8650e2341a2cabe46d368f3a4e4c0050b3bf26eb9cf383453ea2193ec5604079cdf9493a11a742f62018 languageName: node linkType: hard @@ -1810,115 +1785,138 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:8.23.0": - version: 8.23.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.23.0" +"@typescript-eslint/eslint-plugin@npm:8.58.2": + version: 8.58.2 + resolution: "@typescript-eslint/eslint-plugin@npm:8.58.2" dependencies: - "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.23.0" - "@typescript-eslint/type-utils": "npm:8.23.0" - "@typescript-eslint/utils": "npm:8.23.0" - "@typescript-eslint/visitor-keys": "npm:8.23.0" - graphemer: "npm:^1.4.0" - ignore: "npm:^5.3.1" + "@eslint-community/regexpp": "npm:^4.12.2" + "@typescript-eslint/scope-manager": "npm:8.58.2" + "@typescript-eslint/type-utils": "npm:8.58.2" + "@typescript-eslint/utils": "npm:8.58.2" + "@typescript-eslint/visitor-keys": "npm:8.58.2" + ignore: "npm:^7.0.5" natural-compare: "npm:^1.4.0" - ts-api-utils: "npm:^2.0.1" + ts-api-utils: "npm:^2.5.0" peerDependencies: - "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: ">=4.8.4 <5.8.0" - checksum: 10/3900a86f6edf9fee496e8814ed4c8d405f9331808174f4bca0d3af2541a947e872c9f7519a2549644ba5aae1dc06a63308bda9d8da00ef7c62f685be05502d5e + "@typescript-eslint/parser": ^8.58.2 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: ">=4.8.4 <6.1.0" + checksum: 10/e17da9302a66c405d6f7ca33409b177535933b96b9548825c0c66368813b21aeff9550348234ea1b882427fbdc246e5032fbe655cea6bc71aa688417f988c934 languageName: node linkType: hard -"@typescript-eslint/parser@npm:8.23.0": - version: 8.23.0 - resolution: "@typescript-eslint/parser@npm:8.23.0" +"@typescript-eslint/parser@npm:8.58.2": + version: 8.58.2 + resolution: "@typescript-eslint/parser@npm:8.58.2" dependencies: - "@typescript-eslint/scope-manager": "npm:8.23.0" - "@typescript-eslint/types": "npm:8.23.0" - "@typescript-eslint/typescript-estree": "npm:8.23.0" - "@typescript-eslint/visitor-keys": "npm:8.23.0" - debug: "npm:^4.3.4" + "@typescript-eslint/scope-manager": "npm:8.58.2" + "@typescript-eslint/types": "npm:8.58.2" + "@typescript-eslint/typescript-estree": "npm:8.58.2" + "@typescript-eslint/visitor-keys": "npm:8.58.2" + debug: "npm:^4.4.3" peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: ">=4.8.4 <5.8.0" - checksum: 10/7c3ae38665effc7a730d455657ca535c1553ab154d3b983ed4df2bc5b87291b69f4b90245356d8fc5a414d6dca36b34780d9408a45ac272d4bc390b8f03bda4d + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: ">=4.8.4 <6.1.0" + checksum: 10/276da6985cd531615d99a1875d87e2d619adbc6377577849c4f3abc4402a7101dea35b7666019c0e83f3346cace002448668e4a4ebe35734d504d48689a7e836 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.23.0": - version: 8.23.0 - resolution: "@typescript-eslint/scope-manager@npm:8.23.0" +"@typescript-eslint/project-service@npm:8.58.2": + version: 8.58.2 + resolution: "@typescript-eslint/project-service@npm:8.58.2" dependencies: - "@typescript-eslint/types": "npm:8.23.0" - "@typescript-eslint/visitor-keys": "npm:8.23.0" - checksum: 10/eb4624ccd907c21ca49c4600dec0c447349d7e987cda21181c008dc5ce855590e311efabe73b79b15da0948ce5f63ce0c33613ab4a39ea95578b099b724392e3 + "@typescript-eslint/tsconfig-utils": "npm:^8.58.2" + "@typescript-eslint/types": "npm:^8.58.2" + debug: "npm:^4.4.3" + peerDependencies: + typescript: ">=4.8.4 <6.1.0" + checksum: 10/fcaf2b17aa0476164a53626b2754ab01ca595e913828699276972dcafe6369dd31cb7ce73cd32b8f4dd9209a7bf480c51b87266d0c434adb27a462e24e7940af languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.23.0": - version: 8.23.0 - resolution: "@typescript-eslint/type-utils@npm:8.23.0" +"@typescript-eslint/scope-manager@npm:8.58.2, @typescript-eslint/scope-manager@npm:^8.58.0": + version: 8.58.2 + resolution: "@typescript-eslint/scope-manager@npm:8.58.2" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.23.0" - "@typescript-eslint/utils": "npm:8.23.0" - debug: "npm:^4.3.4" - ts-api-utils: "npm:^2.0.1" + "@typescript-eslint/types": "npm:8.58.2" + "@typescript-eslint/visitor-keys": "npm:8.58.2" + checksum: 10/d38da7a1d6e9d8ec87eb0d5115e3978ebe33fa5cb0f5b9b1c202ab314ebf352d33c66b0070ab3244ff79beec8fff19ec9e4063c36288ec0bc66fd24508d2b264 + languageName: node + linkType: hard + +"@typescript-eslint/tsconfig-utils@npm:8.58.2, @typescript-eslint/tsconfig-utils@npm:^8.58.2": + version: 8.58.2 + resolution: "@typescript-eslint/tsconfig-utils@npm:8.58.2" peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: ">=4.8.4 <5.8.0" - checksum: 10/b036a48c5eacef10ed42aef02c859011b11b52938eab4857cfa267730820b90fd29d978a28d43174605b6b7966f095c813d9107e9f0995b92231b53983b12092 + typescript: ">=4.8.4 <6.1.0" + checksum: 10/68d40f96150dba33ccb9aa5a1531cc0fb4c413ed6665a3d2b1651437ea162d1a3c9dc0c3dc8208e48f9eddcf51f35fa9880b18f9a03397bbafcbec8dae9391c9 languageName: node linkType: hard -"@typescript-eslint/types@npm:8.23.0": - version: 8.23.0 - resolution: "@typescript-eslint/types@npm:8.23.0" - checksum: 10/e2a68bc6e89226e47e495a91e0614aa5c3c4580b11f7fd99ac6728c1fce92f10755b0d7ade3cf6d3eb1209cd9cd0f29bd742f8dddc394b28bcead7025394eaa2 +"@typescript-eslint/type-utils@npm:8.58.2": + version: 8.58.2 + resolution: "@typescript-eslint/type-utils@npm:8.58.2" + dependencies: + "@typescript-eslint/types": "npm:8.58.2" + "@typescript-eslint/typescript-estree": "npm:8.58.2" + "@typescript-eslint/utils": "npm:8.58.2" + debug: "npm:^4.4.3" + ts-api-utils: "npm:^2.5.0" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: ">=4.8.4 <6.1.0" + checksum: 10/82eefae7f5d15cd6545deeb702ba36214903e833e58b6f460880fb3f606e1adc5eee90f55c7f0e9cb50575d17dd7c96a92e8d3e796893dd373908d8604623774 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.23.0": - version: 8.23.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.23.0" +"@typescript-eslint/types@npm:8.58.2, @typescript-eslint/types@npm:^8.58.2": + version: 8.58.2 + resolution: "@typescript-eslint/types@npm:8.58.2" + checksum: 10/9ffbe0542c91442c9841e157b85bc7bdc7e9a3f5ad5e6ef32f8d98556bc947f9b4151e54dec414c2c6d68eb436483259e74decd8fe56330689298980949ba5cc + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:8.58.2": + version: 8.58.2 + resolution: "@typescript-eslint/typescript-estree@npm:8.58.2" dependencies: - "@typescript-eslint/types": "npm:8.23.0" - "@typescript-eslint/visitor-keys": "npm:8.23.0" - debug: "npm:^4.3.4" - fast-glob: "npm:^3.3.2" - is-glob: "npm:^4.0.3" - minimatch: "npm:^9.0.4" - semver: "npm:^7.6.0" - ts-api-utils: "npm:^2.0.1" + "@typescript-eslint/project-service": "npm:8.58.2" + "@typescript-eslint/tsconfig-utils": "npm:8.58.2" + "@typescript-eslint/types": "npm:8.58.2" + "@typescript-eslint/visitor-keys": "npm:8.58.2" + debug: "npm:^4.4.3" + minimatch: "npm:^10.2.2" + semver: "npm:^7.7.3" + tinyglobby: "npm:^0.2.15" + ts-api-utils: "npm:^2.5.0" peerDependencies: - typescript: ">=4.8.4 <5.8.0" - checksum: 10/ddc9790d460bea065eeed3760759c034aef307e72c51b5ec7d869fdc77f18c28354c9e35841b44eebbdc54241bab4154809ae8213d33593a9bff20dc3b247fc3 + typescript: ">=4.8.4 <6.1.0" + checksum: 10/e34bfcd426045d75f91b951ed35f3f880b209434d3574c44d3aac210a16e84e4489e43d4c7b8b552b7cd44862bd58c2f411ede7b40efa5f14ede835bb3e6d3c9 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.23.0, @typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0, @typescript-eslint/utils@npm:^8.21.0": - version: 8.23.0 - resolution: "@typescript-eslint/utils@npm:8.23.0" +"@typescript-eslint/utils@npm:8.58.2, @typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0, @typescript-eslint/utils@npm:^8.21.0, @typescript-eslint/utils@npm:^8.58.0": + version: 8.58.2 + resolution: "@typescript-eslint/utils@npm:8.58.2" dependencies: - "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.23.0" - "@typescript-eslint/types": "npm:8.23.0" - "@typescript-eslint/typescript-estree": "npm:8.23.0" + "@eslint-community/eslint-utils": "npm:^4.9.1" + "@typescript-eslint/scope-manager": "npm:8.58.2" + "@typescript-eslint/types": "npm:8.58.2" + "@typescript-eslint/typescript-estree": "npm:8.58.2" peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: ">=4.8.4 <5.8.0" - checksum: 10/72588d617ee5b1fa1020d008a7ff714a4a1e0fc1167aa9ff4b8ae71a37b25f43b2d40bca3380c56bb84d4092b6cac8d5d14d74e290e80217175ccf8237faf22a + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: ">=4.8.4 <6.1.0" + checksum: 10/b46e6cddf2de96618b98c2635836512c7dc63217b874698b2ed079a41762b1c3c8edae4b15690e0b0c7b896e81d39617835a19bfbe03fe4176ddded49cf813d3 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.23.0": - version: 8.23.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.23.0" +"@typescript-eslint/visitor-keys@npm:8.58.2": + version: 8.58.2 + resolution: "@typescript-eslint/visitor-keys@npm:8.58.2" dependencies: - "@typescript-eslint/types": "npm:8.23.0" - eslint-visitor-keys: "npm:^4.2.0" - checksum: 10/fd473849b85e564e31aec64feb3417a4e16e48bf21f1959fbab56258e19c21ef47bbdb523c64a8921cdc82a5083735418890b6f74b564fd1ece305c977a0f7a6 + "@typescript-eslint/types": "npm:8.58.2" + eslint-visitor-keys: "npm:^5.0.0" + checksum: 10/051dd3d3507d4b36b5ead6acd3a00813b0775405cb074ad8fb4eb951b6c7a007a6f45c57b90ffab7755b8b7636e6f9a23b787221880db174584eca0739a0a9ab languageName: node linkType: hard @@ -2064,6 +2062,28 @@ __metadata: languageName: node linkType: hard +"@vitest/eslint-plugin@npm:^1.6.6": + version: 1.6.15 + resolution: "@vitest/eslint-plugin@npm:1.6.15" + dependencies: + "@typescript-eslint/scope-manager": "npm:^8.58.0" + "@typescript-eslint/utils": "npm:^8.58.0" + peerDependencies: + "@typescript-eslint/eslint-plugin": "*" + eslint: ">=8.57.0" + typescript: ">=5.0.0" + vitest: "*" + peerDependenciesMeta: + "@typescript-eslint/eslint-plugin": + optional: true + typescript: + optional: true + vitest: + optional: true + checksum: 10/665b8164abc8b83a5a459048cb616af4bad94c0472f7c80de34f26a21a437144390d5986e6e6ddb1746ae635b12afbaae8a2c054f426c66519429e85760b9c3a + languageName: node + linkType: hard + "JSONStream@npm:^1.3.5": version: 1.3.5 resolution: "JSONStream@npm:1.3.5" @@ -2228,7 +2248,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.12.4": +"ajv@npm:^6.14.0": version: 6.14.0 resolution: "ajv@npm:6.14.0" dependencies: @@ -2473,14 +2493,14 @@ __metadata: dependencies: "@babel/core": "npm:^7.29.0" "@babel/plugin-transform-modules-commonjs": "npm:^7.28.6" - "@babel/runtime": "npm:^7.28.6" + "@babel/runtime": "npm:^7.29.2" "@koa/cors": "npm:^5.0.0" - "@koa/router": "npm:^15.3.0" + "@koa/router": "npm:^15.4.0" "@mos-connection/helper": "npm:^5.0.0-alpha.0" "@shopify/jest-koa-mocks": "npm:^5.3.1" - "@slack/webhook": "npm:^7.0.6" + "@slack/webhook": "npm:^7.0.9" "@sofie-automation/blueprints-integration": "portal:../packages/blueprints-integration" - "@sofie-automation/code-standard-preset": "npm:^3.0.0" + "@sofie-automation/code-standard-preset": "npm:^3.2.2" "@sofie-automation/corelib": "portal:../packages/corelib" "@sofie-automation/job-worker": "portal:../packages/job-worker" "@sofie-automation/meteor-lib": "portal:../packages/meteor-lib" @@ -2488,52 +2508,52 @@ __metadata: "@types/body-parser": "npm:^1.19.6" "@types/deep-extend": "npm:^0.6.2" "@types/jest": "npm:^30.0.0" - "@types/koa": "npm:^3.0.1" + "@types/koa": "npm:^3.0.2" "@types/koa-bodyparser": "npm:^4.3.13" "@types/koa-mount": "npm:^4.0.5" "@types/koa-static": "npm:^4.0.4" "@types/koa__cors": "npm:^5.0.1" - "@types/node": "npm:^22.19.8" + "@types/node": "npm:^22.19.17" "@types/semver": "npm:^7.7.1" "@types/underscore": "npm:^1.13.0" - babel-jest: "npm:^30.2.0" + babel-jest: "npm:^30.3.0" bcrypt: "npm:^6.0.0" body-parser: "npm:^1.20.4" - commit-and-tag-version: "npm:^12.6.1" + commit-and-tag-version: "npm:^12.7.1" deep-extend: "npm:0.6.0" deepmerge: "npm:^4.3.1" ejson: "npm:^2.2.3" elastic-apm-node: "npm:^4.15.0" - eslint: "npm:^9.39.2" + eslint: "npm:^9.39.4" fast-clone: "npm:^1.5.13" - glob: "npm:^13.0.1" + glob: "npm:^13.0.6" i18next: "npm:^21.10.0" i18next-conv: "npm:^10.2.0" i18next-scanner: "npm:^4.6.0" indexof: "npm:0.0.1" - jest: "npm:^30.2.0" - jest-util: "npm:^30.2.0" - koa: "npm:^3.1.1" + jest: "npm:^30.3.0" + jest-util: "npm:^30.3.0" + koa: "npm:^3.2.0" koa-bodyparser: "npm:^4.4.1" koa-mount: "npm:^4.2.0" koa-static: "npm:^5.0.0" legally: "npm:^3.5.10" - meteor-node-stubs: "npm:^1.2.25" + meteor-node-stubs: "npm:^1.2.27" moment: "npm:^2.30.1" nanoid: "npm:^3.3.11" ntp-client: "npm:^0.5.3" object-path: "npm:^0.11.8" open-cli: "npm:^8.0.0" p-lazy: "npm:^3.1.0" - prettier: "npm:^3.8.1" - semver: "npm:^7.7.3" + prettier: "npm:^3.8.3" + semver: "npm:^7.7.4" superfly-timeline: "npm:9.2.0" - threadedclass: "npm:^1.3.0" + threadedclass: "npm:^1.4.0" timecode: "npm:0.0.4" - ts-jest: "npm:^29.4.6" + ts-jest: "npm:^29.4.9" type-fest: "npm:^4.41.0" typescript: "npm:~5.7.3" - underscore: "npm:^1.13.7" + underscore: "npm:^1.13.8" winston: "npm:^3.19.0" yargs: "npm:^17.7.2" languageName: unknown @@ -2548,31 +2568,31 @@ __metadata: languageName: node linkType: hard -"axios@npm:^1.11.0": - version: 1.13.6 - resolution: "axios@npm:1.13.6" +"axios@npm:^1.15.0": + version: 1.15.0 + resolution: "axios@npm:1.15.0" dependencies: follow-redirects: "npm:^1.15.11" form-data: "npm:^4.0.5" - proxy-from-env: "npm:^1.1.0" - checksum: 10/a7ed83c2af3ef21d64609df0f85e76893a915a864c5934df69241001d0578082d6521a0c730bf37518ee458821b5695957cb10db9fc705f2a8996c8686ea7a89 + proxy-from-env: "npm:^2.1.0" + checksum: 10/d39a2c0ebc7ff4739401b282e726cc2673377949d6c46d60eb619458f8d7a2f7eadbcada7097f4dbc7d5c59abb4d3bf6fac33d474412bc3415d3f5aa7ed45530 languageName: node linkType: hard -"babel-jest@npm:30.2.0, babel-jest@npm:^30.2.0": - version: 30.2.0 - resolution: "babel-jest@npm:30.2.0" +"babel-jest@npm:30.3.0, babel-jest@npm:^30.3.0": + version: 30.3.0 + resolution: "babel-jest@npm:30.3.0" dependencies: - "@jest/transform": "npm:30.2.0" + "@jest/transform": "npm:30.3.0" "@types/babel__core": "npm:^7.20.5" babel-plugin-istanbul: "npm:^7.0.1" - babel-preset-jest: "npm:30.2.0" + babel-preset-jest: "npm:30.3.0" chalk: "npm:^4.1.2" graceful-fs: "npm:^4.2.11" slash: "npm:^3.0.0" peerDependencies: "@babel/core": ^7.11.0 || ^8.0.0-0 - checksum: 10/4c7351a366cf8ac2b8a2e4e438867693eb9d83ed24c29c648da4576f700767aaf72a5d14337fc3f92c50b069f5025b26c7b89e3b7b867914b7cf8997fc15f095 + checksum: 10/7c78f083b11430e69e719ddacd4089db3c055437e06b2d7b382d797a675c7a114268f0044ce98c9a32091638cb9ada53e278d46a7079a74ff845d1aa4a2b0678 languageName: node linkType: hard @@ -2589,12 +2609,12 @@ __metadata: languageName: node linkType: hard -"babel-plugin-jest-hoist@npm:30.2.0": - version: 30.2.0 - resolution: "babel-plugin-jest-hoist@npm:30.2.0" +"babel-plugin-jest-hoist@npm:30.3.0": + version: 30.3.0 + resolution: "babel-plugin-jest-hoist@npm:30.3.0" dependencies: "@types/babel__core": "npm:^7.20.5" - checksum: 10/360e87a9aa35f4cf208a10ba79e1821ea906f9e3399db2a9762cbc5076fd59f808e571d88b5b1106738d22e23f9ddefbb8137b2780b2abd401c8573b85c8a2f5 + checksum: 10/1444d633a8ad2505d5e15e458718f1bc5929a074f14179a38f53542c32d3c5158a6f7cab82f7fa6b334b0a45982252639bd7642bb0bc843c6566e44cb083925e languageName: node linkType: hard @@ -2623,15 +2643,15 @@ __metadata: languageName: node linkType: hard -"babel-preset-jest@npm:30.2.0": - version: 30.2.0 - resolution: "babel-preset-jest@npm:30.2.0" +"babel-preset-jest@npm:30.3.0": + version: 30.3.0 + resolution: "babel-preset-jest@npm:30.3.0" dependencies: - babel-plugin-jest-hoist: "npm:30.2.0" + babel-plugin-jest-hoist: "npm:30.3.0" babel-preset-current-node-syntax: "npm:^1.2.0" peerDependencies: "@babel/core": ^7.11.0 || ^8.0.0-beta.1 - checksum: 10/f75e155a8cf63ea1c5ca942bf757b934427630a1eeafdf861e9117879b3367931fc521da3c41fd52f8d59d705d1093ffb46c9474b3fd4d765d194bea5659d7d9 + checksum: 10/fd29c8ff5967c047006bde152cf5ac99ce2e1d573f6f044828cb4d06eab95b65549a38554ea97174bbe508006d2a7cb1370581d87aa73f6b3c2134f2d49aaf85 languageName: node linkType: hard @@ -2770,15 +2790,6 @@ __metadata: languageName: node linkType: hard -"braces@npm:^3.0.3": - version: 3.0.3 - resolution: "braces@npm:3.0.3" - dependencies: - fill-range: "npm:^7.1.1" - checksum: 10/fad11a0d4697a27162840b02b1fad249c1683cbc510cd5bf1a471f2f8085c046d41094308c577a50a03a579dd99d5a6b3724c4b5e8b14df2c4443844cfcda2c6 - languageName: node - linkType: hard - "breadth-filter@npm:^2.0.0": version: 2.0.0 resolution: "breadth-filter@npm:2.0.0" @@ -3292,9 +3303,9 @@ __metadata: languageName: node linkType: hard -"commit-and-tag-version@npm:^12.6.1": - version: 12.6.1 - resolution: "commit-and-tag-version@npm:12.6.1" +"commit-and-tag-version@npm:^12.7.1": + version: 12.7.1 + resolution: "commit-and-tag-version@npm:12.7.1" dependencies: chalk: "npm:^2.4.2" conventional-changelog: "npm:4.0.0" @@ -3304,7 +3315,7 @@ __metadata: detect-indent: "npm:^6.1.0" detect-newline: "npm:^3.1.0" dotgitignore: "npm:^2.1.0" - fast-xml-parser: "npm:^5.2.5" + fast-xml-parser: "npm:^5.5.6" figures: "npm:^3.2.0" find-up: "npm:^5.0.0" git-semver-tags: "npm:^5.0.1" @@ -3313,7 +3324,7 @@ __metadata: yargs: "npm:^17.7.2" bin: commit-and-tag-version: bin/cli.js - checksum: 10/a7fc46f4e9b50a9071986ea7743839af7a73609bcecbb73ba3a2de15dd2d89f10174a05e8e1af2ffa1a435acf11093589d338e73408def6705278a6f8d7c91b3 + checksum: 10/6458ba7468afb684bc50717f97a240efc3c827b06e19531e0b924e74794bc9dcda6f02a88bce40ecba7806e195ca7dc046a8856da3f0895b85d1bb96d18d2fc8 languageName: node linkType: hard @@ -4274,14 +4285,14 @@ __metadata: languageName: node linkType: hard -"eslint-config-prettier@npm:^10.0.1": - version: 10.0.1 - resolution: "eslint-config-prettier@npm:10.0.1" +"eslint-config-prettier@npm:^10.1.8": + version: 10.1.8 + resolution: "eslint-config-prettier@npm:10.1.8" peerDependencies: eslint: ">=7.0.0" bin: - eslint-config-prettier: build/bin/cli.js - checksum: 10/ba6875df0fc4fd3c7c6e2ec9c2e6a224462f7afc662f4cf849775c598a3571c1be136a9b683b12971653b3dcf3f31472aaede3076524b46ec9a77582630158e5 + eslint-config-prettier: bin/cli.js + checksum: 10/03f8e6ea1a6a9b8f9eeaf7c8c52a96499ec4b275b9ded33331a6cc738ed1d56de734097dbd0091f136f0e84bc197388bd8ec22a52a4658105883f8c8b7d8921a languageName: node linkType: hard @@ -4298,9 +4309,9 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jest@npm:^28.11.0": - version: 28.11.0 - resolution: "eslint-plugin-jest@npm:28.11.0" +"eslint-plugin-jest@npm:^28.14.0": + version: 28.14.0 + resolution: "eslint-plugin-jest@npm:28.14.0" dependencies: "@typescript-eslint/utils": "npm:^6.0.0 || ^7.0.0 || ^8.0.0" peerDependencies: @@ -4312,45 +4323,46 @@ __metadata: optional: true jest: optional: true - checksum: 10/7f3896ec2dc03110688bb9f359a7aa1ba1a6d9a60ffbc3642361c4aaf55afcba9ce36b6609b20b1507028c2170ffe29b0f3e9cc9b7fe12fdd233740a2f9ce0a1 + checksum: 10/6032497bd97d6dd010450d5fdf535b8613a2789f4f83764ae04361c48d06d92f3d9b2e4350914b8fd857b6e611ba2b5282a1133ab8ec51b3e7053f9d336058e6 languageName: node linkType: hard -"eslint-plugin-n@npm:^17.15.1": - version: 17.15.1 - resolution: "eslint-plugin-n@npm:17.15.1" +"eslint-plugin-n@npm:^17.23.2": + version: 17.24.0 + resolution: "eslint-plugin-n@npm:17.24.0" dependencies: - "@eslint-community/eslint-utils": "npm:^4.4.1" + "@eslint-community/eslint-utils": "npm:^4.5.0" enhanced-resolve: "npm:^5.17.1" eslint-plugin-es-x: "npm:^7.8.0" get-tsconfig: "npm:^4.8.1" globals: "npm:^15.11.0" + globrex: "npm:^0.1.2" ignore: "npm:^5.3.2" - minimatch: "npm:^9.0.5" semver: "npm:^7.6.3" + ts-declaration-location: "npm:^1.0.6" peerDependencies: eslint: ">=8.23.0" - checksum: 10/43fc161949fa0346ac7063a30580cd0db27e216b8e6a48d73d0bf4f10b88e9b65f263399843b3fe2087f766f264d16f0cbe8f2f898591516842201dc115a2d21 + checksum: 10/bbff1172f7297288d209f167febb3a31747838d5ed8050aa7d1aa2540a49b4f9932828831529f0306f2909e41ae3ae8848c145238a6990eae5a9d128a59b056c languageName: node linkType: hard -"eslint-plugin-prettier@npm:^5.2.3": - version: 5.2.3 - resolution: "eslint-plugin-prettier@npm:5.2.3" +"eslint-plugin-prettier@npm:^5.5.5": + version: 5.5.5 + resolution: "eslint-plugin-prettier@npm:5.5.5" dependencies: - prettier-linter-helpers: "npm:^1.0.0" - synckit: "npm:^0.9.1" + prettier-linter-helpers: "npm:^1.0.1" + synckit: "npm:^0.11.12" peerDependencies: "@types/eslint": ">=8.0.0" eslint: ">=8.0.0" - eslint-config-prettier: "*" + eslint-config-prettier: ">= 7.0.0 <10.0.0 || >=10.1.0" prettier: ">=3.0.0" peerDependenciesMeta: "@types/eslint": optional: true eslint-config-prettier: optional: true - checksum: 10/6444a0b89f3e2a6b38adce69761133f8539487d797f1655b3fa24f93a398be132c4f68f87041a14740b79202368d5782aa1dffd2bd7a3ea659f263d6796acf15 + checksum: 10/36c22c2fa2fd7c61ed292af1280e1d8f94dfe1671eacc5a503a249ca4b27fd226dbf6a1820457d611915926946f42729488d2dc7a5c320601e6cf1fad0d28f66 languageName: node linkType: hard @@ -4371,30 +4383,37 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^4.2.0, eslint-visitor-keys@npm:^4.2.1": +"eslint-visitor-keys@npm:^4.2.1": version: 4.2.1 resolution: "eslint-visitor-keys@npm:4.2.1" checksum: 10/3ee00fc6a7002d4b0ffd9dc99e13a6a7882c557329e6c25ab254220d71e5c9c4f89dca4695352949ea678eb1f3ba912a18ef8aac0a7fe094196fd92f441bfce2 languageName: node linkType: hard -"eslint@npm:^9.39.2": - version: 9.39.2 - resolution: "eslint@npm:9.39.2" +"eslint-visitor-keys@npm:^5.0.0": + version: 5.0.1 + resolution: "eslint-visitor-keys@npm:5.0.1" + checksum: 10/f9cc1a57b75e0ef949545cac33d01e8367e302de4c1483266ed4d8646ee5c306376660196bbb38b004e767b7043d1e661cb4336b49eff634a1bbe75c1db709ec + languageName: node + linkType: hard + +"eslint@npm:^9.39.4": + version: 9.39.4 + resolution: "eslint@npm:9.39.4" dependencies: "@eslint-community/eslint-utils": "npm:^4.8.0" "@eslint-community/regexpp": "npm:^4.12.1" - "@eslint/config-array": "npm:^0.21.1" + "@eslint/config-array": "npm:^0.21.2" "@eslint/config-helpers": "npm:^0.4.2" "@eslint/core": "npm:^0.17.0" - "@eslint/eslintrc": "npm:^3.3.1" - "@eslint/js": "npm:9.39.2" + "@eslint/eslintrc": "npm:^3.3.5" + "@eslint/js": "npm:9.39.4" "@eslint/plugin-kit": "npm:^0.4.1" "@humanfs/node": "npm:^0.16.6" "@humanwhocodes/module-importer": "npm:^1.0.1" "@humanwhocodes/retry": "npm:^0.4.2" "@types/estree": "npm:^1.0.6" - ajv: "npm:^6.12.4" + ajv: "npm:^6.14.0" chalk: "npm:^4.0.0" cross-spawn: "npm:^7.0.6" debug: "npm:^4.3.2" @@ -4413,7 +4432,7 @@ __metadata: is-glob: "npm:^4.0.0" json-stable-stringify-without-jsonify: "npm:^1.0.1" lodash.merge: "npm:^4.6.2" - minimatch: "npm:^3.1.2" + minimatch: "npm:^3.1.5" natural-compare: "npm:^1.4.0" optionator: "npm:^0.9.3" peerDependencies: @@ -4423,7 +4442,7 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: 10/53ff0e9c8264e7e8d40d50fdc0c0df0b701cfc5289beedfb686c214e3e7b199702f894bbd1bb48653727bb1ecbd1147cf5f555a4ae71e1daf35020cdc9072d9f + checksum: 10/de95093d710e62e8c7e753220d985587c40f4a05247ed4393ffb6e6cb43a60e825a47fc5b4263151bb2fc5871a206a31d563ccbabdceee1711072ae12db90adf languageName: node linkType: hard @@ -4546,17 +4565,17 @@ __metadata: languageName: node linkType: hard -"expect@npm:30.2.0, expect@npm:^30.0.0": - version: 30.2.0 - resolution: "expect@npm:30.2.0" +"expect@npm:30.3.0, expect@npm:^30.0.0": + version: 30.3.0 + resolution: "expect@npm:30.3.0" dependencies: - "@jest/expect-utils": "npm:30.2.0" + "@jest/expect-utils": "npm:30.3.0" "@jest/get-type": "npm:30.1.0" - jest-matcher-utils: "npm:30.2.0" - jest-message-util: "npm:30.2.0" - jest-mock: "npm:30.2.0" - jest-util: "npm:30.2.0" - checksum: 10/cf98ab45ab2e9f2fb9943a3ae0097f72d63a94be179a19fd2818d8fdc3b7681d31cc8ef540606eb8dd967d9c44d73fef263a614e9de260c22943ffb122ad66fd + jest-matcher-utils: "npm:30.3.0" + jest-message-util: "npm:30.3.0" + jest-mock: "npm:30.3.0" + jest-util: "npm:30.3.0" + checksum: 10/607748963fd2cf2b95ec848d59086afdff5e6b690d1ddd907f84514687f32a787896281ba49a5fda2af819238bec7fdeaf258814997d2b08eedc0968de57f3bd languageName: node linkType: hard @@ -4595,19 +4614,6 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.3.2": - version: 3.3.3 - resolution: "fast-glob@npm:3.3.3" - dependencies: - "@nodelib/fs.stat": "npm:^2.0.2" - "@nodelib/fs.walk": "npm:^1.2.3" - glob-parent: "npm:^5.1.2" - merge2: "npm:^1.3.0" - micromatch: "npm:^4.0.8" - checksum: 10/dcc6432b269762dd47381d8b8358bf964d8f4f60286ac6aa41c01ade70bda459ff2001b516690b96d5365f68a49242966112b5d5cc9cd82395fa8f9d017c90ad - languageName: node - linkType: hard - "fast-json-stable-stringify@npm:2.x, fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" @@ -4654,20 +4660,20 @@ __metadata: languageName: node linkType: hard -"fast-xml-parser@npm:^5.2.5": - version: 5.5.8 - resolution: "fast-xml-parser@npm:5.5.8" +"fast-xml-parser@npm:^5.5.6": + version: 5.5.12 + resolution: "fast-xml-parser@npm:5.5.12" dependencies: fast-xml-builder: "npm:^1.1.4" - path-expression-matcher: "npm:^1.2.0" - strnum: "npm:^2.2.0" + path-expression-matcher: "npm:^1.5.0" + strnum: "npm:^2.2.3" bin: fxparser: src/cli/cli.js - checksum: 10/888f9a5d345e65e34b70d394798a1542603a216f06c140a9671d031b80b42c01ef2e68f2a0ceea45e7703fa80549f0e06da710f5a2faafdc910d1b6b354f0fa0 + checksum: 10/302eb610c1d991721757ca20a9d113873e6288f19d1de73fbebd9925990830abc1cc8fb1e38bfb7be7841764f6455cafff19ce696c790ce82cc944a68868d37d languageName: node linkType: hard -"fastq@npm:^1.13.0, fastq@npm:^1.6.0": +"fastq@npm:^1.13.0": version: 1.15.0 resolution: "fastq@npm:1.15.0" dependencies: @@ -4733,15 +4739,6 @@ __metadata: languageName: node linkType: hard -"fill-range@npm:^7.1.1": - version: 7.1.1 - resolution: "fill-range@npm:7.1.1" - dependencies: - to-regex-range: "npm:^5.0.1" - checksum: 10/a7095cb39e5bc32fada2aa7c7249d3f6b01bd1ce461a61b0adabacccabd9198500c6fb1f68a7c851a657e273fce2233ba869638897f3d7ed2e87a2d89b4436ea - languageName: node - linkType: hard - "find-up-simple@npm:^1.0.0": version: 1.0.0 resolution: "find-up-simple@npm:1.0.0" @@ -5100,15 +5097,6 @@ __metadata: languageName: node linkType: hard -"glob-parent@npm:^5.1.2": - version: 5.1.2 - resolution: "glob-parent@npm:5.1.2" - dependencies: - is-glob: "npm:^4.0.1" - checksum: 10/32cd106ce8c0d83731966d31517adb766d02c3812de49c30cfe0675c7c0ae6630c11214c54a5ae67aca882cf738d27fd7768f21aa19118b9245950554be07247 - languageName: node - linkType: hard - "glob-parent@npm:^6.0.2": version: 6.0.2 resolution: "glob-parent@npm:6.0.2" @@ -5134,7 +5122,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.3.10": +"glob@npm:^10.5.0": version: 10.5.0 resolution: "glob@npm:10.5.0" dependencies: @@ -5150,14 +5138,14 @@ __metadata: languageName: node linkType: hard -"glob@npm:^13.0.0, glob@npm:^13.0.1": - version: 13.0.1 - resolution: "glob@npm:13.0.1" +"glob@npm:^13.0.0, glob@npm:^13.0.6": + version: 13.0.6 + resolution: "glob@npm:13.0.6" dependencies: - minimatch: "npm:^10.1.2" - minipass: "npm:^7.1.2" - path-scurry: "npm:^2.0.0" - checksum: 10/465e8cc269ab88d7415a3906cdc0f4543a2ae54df99207204af5bc28a944396d8d893822f546a8056a78ec714e608ab4f3502532c4d6b9cc5e113adf0fe5109e + minimatch: "npm:^10.2.2" + minipass: "npm:^7.1.3" + path-scurry: "npm:^2.0.2" + checksum: 10/201ad69e5f0aa74e1d8c00a481581f8b8c804b6a4fbfabeeb8541f5d756932800331daeba99b58fb9e4cd67e12ba5a7eba5b82fb476691588418060b84353214 languageName: node linkType: hard @@ -5198,6 +5186,13 @@ __metadata: languageName: node linkType: hard +"globrex@npm:^0.1.2": + version: 0.1.2 + resolution: "globrex@npm:0.1.2" + checksum: 10/81ce62ee6f800d823d6b7da7687f841676d60ee8f51f934ddd862e4057316d26665c4edc0358d4340a923ac00a514f8b67c787e28fe693aae16350f4e60d55e9 + languageName: node + linkType: hard + "gopd@npm:^1.0.1, gopd@npm:^1.2.0": version: 1.2.0 resolution: "gopd@npm:1.2.0" @@ -5212,13 +5207,6 @@ __metadata: languageName: node linkType: hard -"graphemer@npm:^1.4.0": - version: 1.4.0 - resolution: "graphemer@npm:1.4.0" - checksum: 10/6dd60dba97007b21e3a829fab3f771803cc1292977fe610e240ea72afd67e5690ac9eeaafc4a99710e78962e5936ab5a460787c2a1180f1cb0ccfac37d29f897 - languageName: node - linkType: hard - "gulp-sort@npm:^2.0.0": version: 2.0.0 resolution: "gulp-sort@npm:2.0.0" @@ -5228,7 +5216,7 @@ __metadata: languageName: node linkType: hard -"handlebars@npm:^4.7.7, handlebars@npm:^4.7.8": +"handlebars@npm:^4.7.7, handlebars@npm:^4.7.9": version: 4.7.9 resolution: "handlebars@npm:4.7.9" dependencies: @@ -5603,13 +5591,20 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.2.0, ignore@npm:^5.3.1, ignore@npm:^5.3.2": +"ignore@npm:^5.2.0, ignore@npm:^5.3.2": version: 5.3.2 resolution: "ignore@npm:5.3.2" checksum: 10/cceb6a457000f8f6a50e1196429750d782afce5680dd878aa4221bd79972d68b3a55b4b1458fc682be978f4d3c6a249046aa0880637367216444ab7b014cfc98 languageName: node linkType: hard +"ignore@npm:^7.0.5": + version: 7.0.5 + resolution: "ignore@npm:7.0.5" + checksum: 10/f134b96a4de0af419196f52c529d5c6120c4456ff8a6b5a14ceaaa399f883e15d58d2ce651c9b69b9388491d4669dda47285d307e827de9304a53a1824801bc6 + languageName: node + linkType: hard + "import-fresh@npm:^3.2.1": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" @@ -5853,7 +5848,7 @@ __metadata: languageName: node linkType: hard -"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3": +"is-glob@npm:^4.0.0, is-glob@npm:^4.0.3": version: 4.0.3 resolution: "is-glob@npm:4.0.3" dependencies: @@ -5915,13 +5910,6 @@ __metadata: languageName: node linkType: hard -"is-number@npm:^7.0.0": - version: 7.0.0 - resolution: "is-number@npm:7.0.0" - checksum: 10/6a6c3383f68afa1e05b286af866017c78f1226d43ac8cb064e115ff9ed85eb33f5c4f7216c96a71e4dfea289ef52c5da3aef5bbfade8ffe47a0465d70c0c8e86 - languageName: node - linkType: hard - "is-obj@npm:^2.0.0": version: 2.0.0 resolution: "is-obj@npm:2.0.0" @@ -6146,58 +6134,58 @@ __metadata: languageName: node linkType: hard -"jest-changed-files@npm:30.2.0": - version: 30.2.0 - resolution: "jest-changed-files@npm:30.2.0" +"jest-changed-files@npm:30.3.0": + version: 30.3.0 + resolution: "jest-changed-files@npm:30.3.0" dependencies: execa: "npm:^5.1.1" - jest-util: "npm:30.2.0" + jest-util: "npm:30.3.0" p-limit: "npm:^3.1.0" - checksum: 10/ff2275ed5839b88c12ffa66fdc5c17ba02d3e276be6b558bed92872c282d050c3fdd1a275a81187cbe35c16d6d40337b85838772836463c7a2fbd1cba9785ca0 + checksum: 10/a65834a428ec7c4512319af52a7397e5fd90088ca85e649c66cda7092fc287b0fae6c0a9d691cca99278b7dfacbbdbcce17e2bebdd81068503389089035489ce languageName: node linkType: hard -"jest-circus@npm:30.2.0": - version: 30.2.0 - resolution: "jest-circus@npm:30.2.0" +"jest-circus@npm:30.3.0": + version: 30.3.0 + resolution: "jest-circus@npm:30.3.0" dependencies: - "@jest/environment": "npm:30.2.0" - "@jest/expect": "npm:30.2.0" - "@jest/test-result": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/environment": "npm:30.3.0" + "@jest/expect": "npm:30.3.0" + "@jest/test-result": "npm:30.3.0" + "@jest/types": "npm:30.3.0" "@types/node": "npm:*" chalk: "npm:^4.1.2" co: "npm:^4.6.0" dedent: "npm:^1.6.0" is-generator-fn: "npm:^2.1.0" - jest-each: "npm:30.2.0" - jest-matcher-utils: "npm:30.2.0" - jest-message-util: "npm:30.2.0" - jest-runtime: "npm:30.2.0" - jest-snapshot: "npm:30.2.0" - jest-util: "npm:30.2.0" + jest-each: "npm:30.3.0" + jest-matcher-utils: "npm:30.3.0" + jest-message-util: "npm:30.3.0" + jest-runtime: "npm:30.3.0" + jest-snapshot: "npm:30.3.0" + jest-util: "npm:30.3.0" p-limit: "npm:^3.1.0" - pretty-format: "npm:30.2.0" + pretty-format: "npm:30.3.0" pure-rand: "npm:^7.0.0" slash: "npm:^3.0.0" stack-utils: "npm:^2.0.6" - checksum: 10/68bfc65d92385db1017643988215e4ff5af0b10bcab86fb749a063be6bb7d5eb556dc53dd21bedf833a19aa6ae1a781a8d27b2bea25562de02d294b3017435a9 + checksum: 10/6aba7c0282af3db4b03870ebe1fc417e651fbfc3cc260de8b73d95ede3ed390af0c94ef376877c5ef50cf8ab49d125ddcd25d6913543b63bf6caa0e22bfecc6f languageName: node linkType: hard -"jest-cli@npm:30.2.0": - version: 30.2.0 - resolution: "jest-cli@npm:30.2.0" +"jest-cli@npm:30.3.0": + version: 30.3.0 + resolution: "jest-cli@npm:30.3.0" dependencies: - "@jest/core": "npm:30.2.0" - "@jest/test-result": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/core": "npm:30.3.0" + "@jest/test-result": "npm:30.3.0" + "@jest/types": "npm:30.3.0" chalk: "npm:^4.1.2" exit-x: "npm:^0.2.2" import-local: "npm:^3.2.0" - jest-config: "npm:30.2.0" - jest-util: "npm:30.2.0" - jest-validate: "npm:30.2.0" + jest-config: "npm:30.3.0" + jest-util: "npm:30.3.0" + jest-validate: "npm:30.3.0" yargs: "npm:^17.7.2" peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -6206,36 +6194,35 @@ __metadata: optional: true bin: jest: ./bin/jest.js - checksum: 10/1cc8304f0e2608801c84cdecce9565a6178f668a6475aed3767a1d82cc539915f98e7404d7c387510313684011dc3095c15397d6725f73aac80fbd96c4155faa + checksum: 10/a80aa3a2eec0b0d6644c25ce196d485e178b9c2ad037c17764a645f2fe156563c7fb2dca07cb10d8b9da77dbb8e0c6bcb4b82ca9a59ee50f12700f06670093c1 languageName: node linkType: hard -"jest-config@npm:30.2.0": - version: 30.2.0 - resolution: "jest-config@npm:30.2.0" +"jest-config@npm:30.3.0": + version: 30.3.0 + resolution: "jest-config@npm:30.3.0" dependencies: "@babel/core": "npm:^7.27.4" "@jest/get-type": "npm:30.1.0" "@jest/pattern": "npm:30.0.1" - "@jest/test-sequencer": "npm:30.2.0" - "@jest/types": "npm:30.2.0" - babel-jest: "npm:30.2.0" + "@jest/test-sequencer": "npm:30.3.0" + "@jest/types": "npm:30.3.0" + babel-jest: "npm:30.3.0" chalk: "npm:^4.1.2" ci-info: "npm:^4.2.0" deepmerge: "npm:^4.3.1" - glob: "npm:^10.3.10" + glob: "npm:^10.5.0" graceful-fs: "npm:^4.2.11" - jest-circus: "npm:30.2.0" + jest-circus: "npm:30.3.0" jest-docblock: "npm:30.2.0" - jest-environment-node: "npm:30.2.0" + jest-environment-node: "npm:30.3.0" jest-regex-util: "npm:30.0.1" - jest-resolve: "npm:30.2.0" - jest-runner: "npm:30.2.0" - jest-util: "npm:30.2.0" - jest-validate: "npm:30.2.0" - micromatch: "npm:^4.0.8" + jest-resolve: "npm:30.3.0" + jest-runner: "npm:30.3.0" + jest-util: "npm:30.3.0" + jest-validate: "npm:30.3.0" parse-json: "npm:^5.2.0" - pretty-format: "npm:30.2.0" + pretty-format: "npm:30.3.0" slash: "npm:^3.0.0" strip-json-comments: "npm:^3.1.1" peerDependencies: @@ -6249,19 +6236,19 @@ __metadata: optional: true ts-node: optional: true - checksum: 10/296786b0a3d62de77e2f691f208d54ab541c1a73f87747d922eda643c6f25b89125ef3150170c07a6c8a316a30c15428e46237d499f688b0777f38de8a61ad16 + checksum: 10/89c49426e2be5ee0c7cf9d6ab0a1dd6eb5ea03f67a5cc57d991d3d2441762d7101a215da5596bcb5b39c47e209ab8fdf4682fd1365cef7a5e48903b689bf4116 languageName: node linkType: hard -"jest-diff@npm:30.2.0": - version: 30.2.0 - resolution: "jest-diff@npm:30.2.0" +"jest-diff@npm:30.3.0": + version: 30.3.0 + resolution: "jest-diff@npm:30.3.0" dependencies: - "@jest/diff-sequences": "npm:30.0.1" + "@jest/diff-sequences": "npm:30.3.0" "@jest/get-type": "npm:30.1.0" chalk: "npm:^4.1.2" - pretty-format: "npm:30.2.0" - checksum: 10/1fb9e4fb7dff81814b4f69eaa7db28e184d62306a3a8ea2447d02ca53d2cfa771e83ede513f67ec5239dffacfaac32ff2b49866d211e4c7516f51c1fc06ede42 + pretty-format: "npm:30.3.0" + checksum: 10/9f566259085e6badd525dc48ee6de3792cfae080abd66e170ac230359cf32c4334d92f0f48b577a31ad2a6aed4aefde81f5f4366ab44a96f78bcde975e5cc26e languageName: node linkType: hard @@ -6274,103 +6261,103 @@ __metadata: languageName: node linkType: hard -"jest-each@npm:30.2.0": - version: 30.2.0 - resolution: "jest-each@npm:30.2.0" +"jest-each@npm:30.3.0": + version: 30.3.0 + resolution: "jest-each@npm:30.3.0" dependencies: "@jest/get-type": "npm:30.1.0" - "@jest/types": "npm:30.2.0" + "@jest/types": "npm:30.3.0" chalk: "npm:^4.1.2" - jest-util: "npm:30.2.0" - pretty-format: "npm:30.2.0" - checksum: 10/f95e7dc1cef4b6a77899325702a214834ae25d01276cc31279654dc7e04f63c1925a37848dd16a0d16508c0fd3d182145f43c10af93952b7a689df3aeac198e9 + jest-util: "npm:30.3.0" + pretty-format: "npm:30.3.0" + checksum: 10/ece465cbb1c4fbb445c9cfacd33275489940684fd0d447f6d4bdb4ef81d63c1b0bc3b365be7400dbbffd8d5502fd5faf10e97025a61c27bcd3da1ea21c749381 languageName: node linkType: hard -"jest-environment-node@npm:30.2.0": - version: 30.2.0 - resolution: "jest-environment-node@npm:30.2.0" +"jest-environment-node@npm:30.3.0": + version: 30.3.0 + resolution: "jest-environment-node@npm:30.3.0" dependencies: - "@jest/environment": "npm:30.2.0" - "@jest/fake-timers": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/environment": "npm:30.3.0" + "@jest/fake-timers": "npm:30.3.0" + "@jest/types": "npm:30.3.0" "@types/node": "npm:*" - jest-mock: "npm:30.2.0" - jest-util: "npm:30.2.0" - jest-validate: "npm:30.2.0" - checksum: 10/7918bfea7367bd3e12dbbc4ea5afb193b5c47e480a6d1382512f051e2f028458fc9f5ef2f6260737ad41a0b1894661790ff3aaf3cbb4148a33ce2ce7aec64847 + jest-mock: "npm:30.3.0" + jest-util: "npm:30.3.0" + jest-validate: "npm:30.3.0" + checksum: 10/805732507857f283f8c5eaca78561401c16043cd9a2579fc4a3cd6139a5138c6108f4b32f7fafe5b41f9b53f2fbc63cf65eb892e15e086034b09899c9fa4fed4 languageName: node linkType: hard -"jest-haste-map@npm:30.2.0": - version: 30.2.0 - resolution: "jest-haste-map@npm:30.2.0" +"jest-haste-map@npm:30.3.0": + version: 30.3.0 + resolution: "jest-haste-map@npm:30.3.0" dependencies: - "@jest/types": "npm:30.2.0" + "@jest/types": "npm:30.3.0" "@types/node": "npm:*" anymatch: "npm:^3.1.3" fb-watchman: "npm:^2.0.2" fsevents: "npm:^2.3.3" graceful-fs: "npm:^4.2.11" jest-regex-util: "npm:30.0.1" - jest-util: "npm:30.2.0" - jest-worker: "npm:30.2.0" - micromatch: "npm:^4.0.8" + jest-util: "npm:30.3.0" + jest-worker: "npm:30.3.0" + picomatch: "npm:^4.0.3" walker: "npm:^1.0.8" dependenciesMeta: fsevents: optional: true - checksum: 10/a88be6b0b672144aa30fe2d72e630d639c8d8729ee2cef84d0f830eac2005ac021cd8354f8ed8ecd74223f6a8b281efb62f466f5c9e01ed17650e38761051f4c + checksum: 10/0e0cc449d57414ac2d1f9ece64a98ffc4b4041fe3fba7cf9aaeb71089f7101583b1752e88aa4440d6fa71f86ef50d630be4f31f922cdf404d78655cb9811493b languageName: node linkType: hard -"jest-leak-detector@npm:30.2.0": - version: 30.2.0 - resolution: "jest-leak-detector@npm:30.2.0" +"jest-leak-detector@npm:30.3.0": + version: 30.3.0 + resolution: "jest-leak-detector@npm:30.3.0" dependencies: "@jest/get-type": "npm:30.1.0" - pretty-format: "npm:30.2.0" - checksum: 10/c430d6ed7910b2174738fbdca4ea64cbfe805216414c0d143c1090148f1389fec99d0733c0a8ed0a86709c89b4a4085b4749ac3a2cbc7deaf3ca87457afd24fc + pretty-format: "npm:30.3.0" + checksum: 10/950ce3266067dd983f80231ce753fdfb9fe167d810b4507d84e674205c2cb96d37f38615ae502fa9277dde497ee52ce581656b48709aacf9502a4f0006bfab0e languageName: node linkType: hard -"jest-matcher-utils@npm:30.2.0": - version: 30.2.0 - resolution: "jest-matcher-utils@npm:30.2.0" +"jest-matcher-utils@npm:30.3.0": + version: 30.3.0 + resolution: "jest-matcher-utils@npm:30.3.0" dependencies: "@jest/get-type": "npm:30.1.0" chalk: "npm:^4.1.2" - jest-diff: "npm:30.2.0" - pretty-format: "npm:30.2.0" - checksum: 10/f3f1ecf68ca63c9d1d80a175637a8fc655edfd1ee83220f6e3f6bd464ecbe2f93148fdd440a5a5e5a2b0b2cc8ee84ddc3dcef58a6dbc66821c792f48d260c6d4 + jest-diff: "npm:30.3.0" + pretty-format: "npm:30.3.0" + checksum: 10/8aeef24fe2a21a3a22eb26a805c0a4c8ca8961aa1ebc07d680bf55b260f593814467bdfb60b271a3c239a411b2468f352c279cef466e35fd024d901ffa6cc942 languageName: node linkType: hard -"jest-message-util@npm:30.2.0": - version: 30.2.0 - resolution: "jest-message-util@npm:30.2.0" +"jest-message-util@npm:30.3.0": + version: 30.3.0 + resolution: "jest-message-util@npm:30.3.0" dependencies: "@babel/code-frame": "npm:^7.27.1" - "@jest/types": "npm:30.2.0" + "@jest/types": "npm:30.3.0" "@types/stack-utils": "npm:^2.0.3" chalk: "npm:^4.1.2" graceful-fs: "npm:^4.2.11" - micromatch: "npm:^4.0.8" - pretty-format: "npm:30.2.0" + picomatch: "npm:^4.0.3" + pretty-format: "npm:30.3.0" slash: "npm:^3.0.0" stack-utils: "npm:^2.0.6" - checksum: 10/e29ec76e8c8e4da5f5b25198be247535626ccf3a940e93fdd51fc6a6bcf70feaa2921baae3806182a090431d90b08c939eb13fb64249b171d2e9ae3a452a8fd2 + checksum: 10/886577543ec60b421d21987190c5e393ff3652f4f2f2b504776d73f932518827b026ab8e6ffdb1f21ff5142ddf160ba4794e56d96143baeb4ae6939e040a10bd languageName: node linkType: hard -"jest-mock@npm:30.2.0": - version: 30.2.0 - resolution: "jest-mock@npm:30.2.0" +"jest-mock@npm:30.3.0": + version: 30.3.0 + resolution: "jest-mock@npm:30.3.0" dependencies: - "@jest/types": "npm:30.2.0" + "@jest/types": "npm:30.3.0" "@types/node": "npm:*" - jest-util: "npm:30.2.0" - checksum: 10/cde9b56805f90bf811a9231873ee88a0fb83bf4bf50972ae76960725da65220fcb119688f2e90e1ef33fbfd662194858d7f43809d881f1c41bb55d94e62adeab + jest-util: "npm:30.3.0" + checksum: 10/9d2a9e52c2aebc486e9accaf641efa5c6589666e883b5ac1987261d0e2c105a06b885c22aeeb1cd7582e421970c95e34fe0b41bc4a8c06d7e3e4c27651e76ad1 languageName: node linkType: hard @@ -6393,186 +6380,186 @@ __metadata: languageName: node linkType: hard -"jest-resolve-dependencies@npm:30.2.0": - version: 30.2.0 - resolution: "jest-resolve-dependencies@npm:30.2.0" +"jest-resolve-dependencies@npm:30.3.0": + version: 30.3.0 + resolution: "jest-resolve-dependencies@npm:30.3.0" dependencies: jest-regex-util: "npm:30.0.1" - jest-snapshot: "npm:30.2.0" - checksum: 10/0ff1a574f8c07f2e54a4ac8ab17aea00dfe2982e99b03fbd44f4211a94b8e5a59fdc43a59f9d6c0578a10a7b56a0611ad5ab40e4893973ff3f40dd414433b194 + jest-snapshot: "npm:30.3.0" + checksum: 10/79dfbc3c8c967e7908bcb02f5116c37002f2cdc10360d179876de832c10ee87cb85cc27895b035697da477ab6ad70170f4e2907a85d35a44117646554cc72111 languageName: node linkType: hard -"jest-resolve@npm:30.2.0": - version: 30.2.0 - resolution: "jest-resolve@npm:30.2.0" +"jest-resolve@npm:30.3.0": + version: 30.3.0 + resolution: "jest-resolve@npm:30.3.0" dependencies: chalk: "npm:^4.1.2" graceful-fs: "npm:^4.2.11" - jest-haste-map: "npm:30.2.0" + jest-haste-map: "npm:30.3.0" jest-pnp-resolver: "npm:^1.2.3" - jest-util: "npm:30.2.0" - jest-validate: "npm:30.2.0" + jest-util: "npm:30.3.0" + jest-validate: "npm:30.3.0" slash: "npm:^3.0.0" unrs-resolver: "npm:^1.7.11" - checksum: 10/e1f03da6811a946f5d885ea739a973975d099cc760641f9e1f90ac9c6621408538ba1e909f789d45d6e8d2411b78fb09230f16f15669621aa407aed7511fdf01 + checksum: 10/7d88ef3f6424386e4b4e65d486ac1d3b86c142cf789f0ab945a2cd8bd830edc0314c7561a459b95062f41bc550ae7110f461dbafcc07030f61728edb00b4bcdd languageName: node linkType: hard -"jest-runner@npm:30.2.0": - version: 30.2.0 - resolution: "jest-runner@npm:30.2.0" +"jest-runner@npm:30.3.0": + version: 30.3.0 + resolution: "jest-runner@npm:30.3.0" dependencies: - "@jest/console": "npm:30.2.0" - "@jest/environment": "npm:30.2.0" - "@jest/test-result": "npm:30.2.0" - "@jest/transform": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/console": "npm:30.3.0" + "@jest/environment": "npm:30.3.0" + "@jest/test-result": "npm:30.3.0" + "@jest/transform": "npm:30.3.0" + "@jest/types": "npm:30.3.0" "@types/node": "npm:*" chalk: "npm:^4.1.2" emittery: "npm:^0.13.1" exit-x: "npm:^0.2.2" graceful-fs: "npm:^4.2.11" jest-docblock: "npm:30.2.0" - jest-environment-node: "npm:30.2.0" - jest-haste-map: "npm:30.2.0" - jest-leak-detector: "npm:30.2.0" - jest-message-util: "npm:30.2.0" - jest-resolve: "npm:30.2.0" - jest-runtime: "npm:30.2.0" - jest-util: "npm:30.2.0" - jest-watcher: "npm:30.2.0" - jest-worker: "npm:30.2.0" + jest-environment-node: "npm:30.3.0" + jest-haste-map: "npm:30.3.0" + jest-leak-detector: "npm:30.3.0" + jest-message-util: "npm:30.3.0" + jest-resolve: "npm:30.3.0" + jest-runtime: "npm:30.3.0" + jest-util: "npm:30.3.0" + jest-watcher: "npm:30.3.0" + jest-worker: "npm:30.3.0" p-limit: "npm:^3.1.0" source-map-support: "npm:0.5.13" - checksum: 10/d3706aa70e64a7ef8b38360d34ea6c261ba4d0b42136d7fb603c4fa71c24fa81f22c39ed2e39ee0db2363a42827810291f3ceb6a299e5996b41d701ad9b24184 + checksum: 10/f467591d2ff95f7b3138dc7c8631e751000d1fcabfdb9a94623fce3fd7b538a45628e9a1e8e8758c4d7a0c3757c393a3ef034ba986d7565e3f1b597ab7a73748 languageName: node linkType: hard -"jest-runtime@npm:30.2.0": - version: 30.2.0 - resolution: "jest-runtime@npm:30.2.0" +"jest-runtime@npm:30.3.0": + version: 30.3.0 + resolution: "jest-runtime@npm:30.3.0" dependencies: - "@jest/environment": "npm:30.2.0" - "@jest/fake-timers": "npm:30.2.0" - "@jest/globals": "npm:30.2.0" + "@jest/environment": "npm:30.3.0" + "@jest/fake-timers": "npm:30.3.0" + "@jest/globals": "npm:30.3.0" "@jest/source-map": "npm:30.0.1" - "@jest/test-result": "npm:30.2.0" - "@jest/transform": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/test-result": "npm:30.3.0" + "@jest/transform": "npm:30.3.0" + "@jest/types": "npm:30.3.0" "@types/node": "npm:*" chalk: "npm:^4.1.2" cjs-module-lexer: "npm:^2.1.0" collect-v8-coverage: "npm:^1.0.2" - glob: "npm:^10.3.10" + glob: "npm:^10.5.0" graceful-fs: "npm:^4.2.11" - jest-haste-map: "npm:30.2.0" - jest-message-util: "npm:30.2.0" - jest-mock: "npm:30.2.0" + jest-haste-map: "npm:30.3.0" + jest-message-util: "npm:30.3.0" + jest-mock: "npm:30.3.0" jest-regex-util: "npm:30.0.1" - jest-resolve: "npm:30.2.0" - jest-snapshot: "npm:30.2.0" - jest-util: "npm:30.2.0" + jest-resolve: "npm:30.3.0" + jest-snapshot: "npm:30.3.0" + jest-util: "npm:30.3.0" slash: "npm:^3.0.0" strip-bom: "npm:^4.0.0" - checksum: 10/81a3a9951420863f001e74c510bf35b85ae983f636f43ee1ffa1618b5a8ddafb681bc2810f71814bc8c8373e9593c89576b2325daf3c765e50057e48d5941df3 + checksum: 10/a9335405ca46e8d77c8400887566b5cf2a3544e1b067eb3b187e86ea5c74f1b8b16ecf1de3a589bfb32be95e77452a01913f187d66a41c5a4595a30d7dc1daf0 languageName: node linkType: hard -"jest-snapshot@npm:30.2.0": - version: 30.2.0 - resolution: "jest-snapshot@npm:30.2.0" +"jest-snapshot@npm:30.3.0": + version: 30.3.0 + resolution: "jest-snapshot@npm:30.3.0" dependencies: "@babel/core": "npm:^7.27.4" "@babel/generator": "npm:^7.27.5" "@babel/plugin-syntax-jsx": "npm:^7.27.1" "@babel/plugin-syntax-typescript": "npm:^7.27.1" "@babel/types": "npm:^7.27.3" - "@jest/expect-utils": "npm:30.2.0" + "@jest/expect-utils": "npm:30.3.0" "@jest/get-type": "npm:30.1.0" - "@jest/snapshot-utils": "npm:30.2.0" - "@jest/transform": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/snapshot-utils": "npm:30.3.0" + "@jest/transform": "npm:30.3.0" + "@jest/types": "npm:30.3.0" babel-preset-current-node-syntax: "npm:^1.2.0" chalk: "npm:^4.1.2" - expect: "npm:30.2.0" + expect: "npm:30.3.0" graceful-fs: "npm:^4.2.11" - jest-diff: "npm:30.2.0" - jest-matcher-utils: "npm:30.2.0" - jest-message-util: "npm:30.2.0" - jest-util: "npm:30.2.0" - pretty-format: "npm:30.2.0" + jest-diff: "npm:30.3.0" + jest-matcher-utils: "npm:30.3.0" + jest-message-util: "npm:30.3.0" + jest-util: "npm:30.3.0" + pretty-format: "npm:30.3.0" semver: "npm:^7.7.2" synckit: "npm:^0.11.8" - checksum: 10/119390b49f397ed622ba7c375fc15f97af67c4fc49a34cf829c86ee732be2b06ad3c7171c76bb842a0e84a234783f1a4c721909aa316fbe00c6abc7c5962dfbc + checksum: 10/d9f75c436587410cc8170a710d53a632e148a648ec82476ef9e618d8067246e48af7c460773304ad53eecf748b118619a6afd87212f86d680d3439787b4fec39 languageName: node linkType: hard -"jest-util@npm:30.2.0, jest-util@npm:^30.2.0": - version: 30.2.0 - resolution: "jest-util@npm:30.2.0" +"jest-util@npm:30.3.0, jest-util@npm:^30.3.0": + version: 30.3.0 + resolution: "jest-util@npm:30.3.0" dependencies: - "@jest/types": "npm:30.2.0" + "@jest/types": "npm:30.3.0" "@types/node": "npm:*" chalk: "npm:^4.1.2" ci-info: "npm:^4.2.0" graceful-fs: "npm:^4.2.11" - picomatch: "npm:^4.0.2" - checksum: 10/cf2f2fb83417ea69f9992121561c95cf4e9aad7946819b771b8b52addf78811101b33b51d0a39fa0c305f2751dab262feed7699de052659ff03d51827c8862f5 + picomatch: "npm:^4.0.3" + checksum: 10/4b016004637f6a53d6f54c993dc8904a4d6abe93acb8dd70622dc2ca80290a03692e834af1068969b486426e87d411144705edd4d772bb715a826d7e15b5a4b3 languageName: node linkType: hard -"jest-validate@npm:30.2.0": - version: 30.2.0 - resolution: "jest-validate@npm:30.2.0" +"jest-validate@npm:30.3.0": + version: 30.3.0 + resolution: "jest-validate@npm:30.3.0" dependencies: "@jest/get-type": "npm:30.1.0" - "@jest/types": "npm:30.2.0" + "@jest/types": "npm:30.3.0" camelcase: "npm:^6.3.0" chalk: "npm:^4.1.2" leven: "npm:^3.1.0" - pretty-format: "npm:30.2.0" - checksum: 10/61e66c6df29a1e181f8de063678dd2096bb52cc8a8ead3c9a3f853d54eca458ad04c7fb81931d9274affb67d0504a91a2a520456a139a26665810c3bf039b677 + pretty-format: "npm:30.3.0" + checksum: 10/b26e32602c65f93d4fa9ca24efa661df24b8919c5c4cb88b87852178310833df3a7fdb757afb9d769cfe13f6636385626d8ac8a2ad7af47365d309a548cd0e06 languageName: node linkType: hard -"jest-watcher@npm:30.2.0": - version: 30.2.0 - resolution: "jest-watcher@npm:30.2.0" +"jest-watcher@npm:30.3.0": + version: 30.3.0 + resolution: "jest-watcher@npm:30.3.0" dependencies: - "@jest/test-result": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/test-result": "npm:30.3.0" + "@jest/types": "npm:30.3.0" "@types/node": "npm:*" ansi-escapes: "npm:^4.3.2" chalk: "npm:^4.1.2" emittery: "npm:^0.13.1" - jest-util: "npm:30.2.0" + jest-util: "npm:30.3.0" string-length: "npm:^4.0.2" - checksum: 10/fa38d06dcc59dbbd6a9ff22dea499d3c81ed376d9993b82d01797a99bf466d48641a99b9f3670a4b5480ca31144c5e017b96b7059e4d7541358fb48cf517a2db + checksum: 10/b3a284869be1c69a8084c1129fcc08b719b8556d3af93b6cd587f9e2f948e5ce5084cb0ec62a166e3161d1d8b6dc580a88ba02abc05a0948809c65b27bd60f3a languageName: node linkType: hard -"jest-worker@npm:30.2.0": - version: 30.2.0 - resolution: "jest-worker@npm:30.2.0" +"jest-worker@npm:30.3.0": + version: 30.3.0 + resolution: "jest-worker@npm:30.3.0" dependencies: "@types/node": "npm:*" "@ungap/structured-clone": "npm:^1.3.0" - jest-util: "npm:30.2.0" + jest-util: "npm:30.3.0" merge-stream: "npm:^2.0.0" supports-color: "npm:^8.1.1" - checksum: 10/9354b0c71c80173f673da6bbc0ddaad26e4395b06532f7332e0c1e93e855b873b10139b040e01eda77f3dc5a0b67613e2bd7c56c4947ee771acfc3611de2ca29 + checksum: 10/6198e7462617e8f544b1ba593970fb7656e990aa87a2259f693edde106b5aecf63bae692e8d6adc4313efcaba283b15fc25f6834cacca12cf241da0ece722060 languageName: node linkType: hard -"jest@npm:^30.2.0": - version: 30.2.0 - resolution: "jest@npm:30.2.0" +"jest@npm:^30.3.0": + version: 30.3.0 + resolution: "jest@npm:30.3.0" dependencies: - "@jest/core": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/core": "npm:30.3.0" + "@jest/types": "npm:30.3.0" import-local: "npm:^3.2.0" - jest-cli: "npm:30.2.0" + jest-cli: "npm:30.3.0" peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: @@ -6580,7 +6567,7 @@ __metadata: optional: true bin: jest: ./bin/jest.js - checksum: 10/61c9d100750e4354cd7305d1f3ba253ffde4deaf12cb4be4d42d54f2dd5986e383a39c4a8691dbdc3839c69094a52413ed36f1886540ac37b71914a990b810d0 + checksum: 10/e8485ede8456c71915e94a7ab4fe66c983043263109d61e0665a17cb7f8e843a5a30abca4d932b0ea7aa90326aa10d4acb31d8f3cd2b3158a89c1e5ee3b92856 languageName: node linkType: hard @@ -6814,7 +6801,7 @@ __metadata: languageName: node linkType: hard -"koa@npm:^3.1.1": +"koa@npm:^3.2.0": version: 3.2.0 resolution: "koa@npm:3.2.0" dependencies: @@ -7225,16 +7212,9 @@ __metadata: languageName: node linkType: hard -"merge2@npm:^1.3.0": - version: 1.4.1 - resolution: "merge2@npm:1.4.1" - checksum: 10/7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 - languageName: node - linkType: hard - -"meteor-node-stubs@npm:^1.2.25": - version: 1.2.25 - resolution: "meteor-node-stubs@npm:1.2.25" +"meteor-node-stubs@npm:^1.2.27": + version: 1.2.27 + resolution: "meteor-node-stubs@npm:1.2.27" dependencies: "@meteorjs/crypto-browserify": "npm:^3.12.1" assert: "npm:^2.1.0" @@ -7260,7 +7240,7 @@ __metadata: url: "npm:^0.11.4" util: "npm:^0.12.5" vm-browserify: "npm:^1.1.2" - checksum: 10/57390ff99f2fa775f8b46b0faabbbfbcab9f193d264f3cb1c2e250e24cfd211c3437ad3c7646d7c3965531155fc698383e5bd5d8f1504d93a4b1cc9cbc007b0f + checksum: 10/f6499c4dd0056320247ce38a06e666a90d74f7c09b891467738af70b600415a681727ed81a159ba6c9e2d3c3ca122d6bc789675aeb4805756f3cc1eae93c5a74 languageName: node linkType: hard @@ -7271,16 +7251,6 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.8": - version: 4.0.8 - resolution: "micromatch@npm:4.0.8" - dependencies: - braces: "npm:^3.0.3" - picomatch: "npm:^2.3.1" - checksum: 10/6bf2a01672e7965eb9941d1f02044fad2bd12486b5553dc1116ff24c09a8723157601dc992e74c911d896175918448762df3b3fd0a6b61037dd1a9766ddfbf58 - languageName: node - linkType: hard - "miller-rabin@npm:^4.0.0": version: 4.0.1 resolution: "miller-rabin@npm:4.0.1" @@ -7362,7 +7332,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^10.1.2": +"minimatch@npm:^10.2.2": version: 10.2.5 resolution: "minimatch@npm:10.2.5" dependencies: @@ -7371,7 +7341,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": +"minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.5": version: 3.1.5 resolution: "minimatch@npm:3.1.5" dependencies: @@ -7380,7 +7350,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^9.0.4, minimatch@npm:^9.0.5": +"minimatch@npm:^9.0.4": version: 9.0.9 resolution: "minimatch@npm:9.0.9" dependencies: @@ -7467,10 +7437,10 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2": - version: 7.1.2 - resolution: "minipass@npm:7.1.2" - checksum: 10/c25f0ee8196d8e6036661104bacd743785b2599a21de5c516b32b3fa2b83113ac89a2358465bc04956baab37ffb956ae43be679b2262bf7be15fce467ccd7950 +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2, minipass@npm:^7.1.3": + version: 7.1.3 + resolution: "minipass@npm:7.1.3" + checksum: 10/175e4d5e20980c3cd316ae82d2c031c42f6c746467d8b1905b51060a0ba4461441a0c25bb67c025fd9617f9a3873e152c7b543c6b5ac83a1846be8ade80dffd6 languageName: node linkType: hard @@ -8233,10 +8203,10 @@ __metadata: languageName: node linkType: hard -"path-expression-matcher@npm:^1.1.3, path-expression-matcher@npm:^1.2.0": - version: 1.2.0 - resolution: "path-expression-matcher@npm:1.2.0" - checksum: 10/eab23babd9a97d6cf4841a99825c3e990b70b2b29ea6529df9fb6a1f3953befbc68e9e282a373d7a75aff5dc6542d05a09ee2df036ff9bfddf5e1627b769875b +"path-expression-matcher@npm:^1.1.3, path-expression-matcher@npm:^1.5.0": + version: 1.5.0 + resolution: "path-expression-matcher@npm:1.5.0" + checksum: 10/28303bb9ee6831e6df14c10cd3f3f7b2d7c8d7f788d8bdb7440136fd696064c82a3e264999a0764d28e39f698275fc03a5493bec93c57ef4a22566280367dd64 languageName: node linkType: hard @@ -8271,13 +8241,13 @@ __metadata: languageName: node linkType: hard -"path-scurry@npm:^2.0.0": - version: 2.0.0 - resolution: "path-scurry@npm:2.0.0" +"path-scurry@npm:^2.0.2": + version: 2.0.2 + resolution: "path-scurry@npm:2.0.2" dependencies: lru-cache: "npm:^11.0.0" minipass: "npm:^7.1.2" - checksum: 10/285ae0c2d6c34ae91dc1d5378ede21981c9a2f6de1ea9ca5a88b5a270ce9763b83dbadc7a324d512211d8d36b0c540427d3d0817030849d97a60fa840a2c59ec + checksum: 10/2b4257422bcb870a4c2d205b3acdbb213a72f5e2250f61c80f79c9d014d010f82bdf8584441612c8e1fa4eb098678f5704a66fa8377d72646bad4be38e57a2c3 languageName: node linkType: hard @@ -8325,14 +8295,14 @@ __metadata: languageName: node linkType: hard -"picomatch@npm:^2.0.4, picomatch@npm:^2.3.1": +"picomatch@npm:^2.0.4": version: 2.3.2 resolution: "picomatch@npm:2.3.2" checksum: 10/b788ef8148a2415b9dec12f0bb350ae6a5830f8f1950e472abc2f5225494debf7d1b75eb031df0ceaea9e8ec3e7bad599e8dbf3c60d61b42be429ba41bff4426 languageName: node linkType: hard -"picomatch@npm:^4.0.2, picomatch@npm:^4.0.3": +"picomatch@npm:^4.0.2, picomatch@npm:^4.0.3, picomatch@npm:^4.0.4": version: 4.0.4 resolution: "picomatch@npm:4.0.4" checksum: 10/f6ef80a3590827ce20378ae110ac78209cc4f74d39236370f1780f957b7ee41c12acde0e4651b90f39983506fd2f5e449994716f516db2e9752924aff8de93ce @@ -8421,32 +8391,32 @@ __metadata: languageName: node linkType: hard -"prettier-linter-helpers@npm:^1.0.0": - version: 1.0.0 - resolution: "prettier-linter-helpers@npm:1.0.0" +"prettier-linter-helpers@npm:^1.0.1": + version: 1.0.1 + resolution: "prettier-linter-helpers@npm:1.0.1" dependencies: fast-diff: "npm:^1.1.2" - checksum: 10/00ce8011cf6430158d27f9c92cfea0a7699405633f7f1d4a45f07e21bf78e99895911cbcdc3853db3a824201a7c745bd49bfea8abd5fb9883e765a90f74f8392 + checksum: 10/2dc35f5036a35f4c4f5e645887edda1436acb63687a7f12b2383e0a6f3c1f76b8a0a4709fe4d82e19157210feb5984b159bb714d43290022911ab53d606474ec languageName: node linkType: hard -"prettier@npm:^3.8.1": - version: 3.8.1 - resolution: "prettier@npm:3.8.1" +"prettier@npm:^3.8.3": + version: 3.8.3 + resolution: "prettier@npm:3.8.3" bin: prettier: bin/prettier.cjs - checksum: 10/3da1cf8c1ef9bea828aa618553696c312e951f810bee368f6887109b203f18ee869fe88f66e65f9cf60b7cb1f2eae859892c860a300c062ff8ec69c381fc8dbd + checksum: 10/4b3b12cbb29e4c96bed936e5d070167552500c18d37676fb3e0caae6199c42860662608e4dc116230698f6e2bb0267ef2548158224c92d40f188d309d72fdd6f languageName: node linkType: hard -"pretty-format@npm:30.2.0, pretty-format@npm:^30.0.0": - version: 30.2.0 - resolution: "pretty-format@npm:30.2.0" +"pretty-format@npm:30.3.0, pretty-format@npm:^30.0.0": + version: 30.3.0 + resolution: "pretty-format@npm:30.3.0" dependencies: "@jest/schemas": "npm:30.0.5" ansi-styles: "npm:^5.2.0" react-is: "npm:^18.3.1" - checksum: 10/725890d648e3400575eebc99a334a4cd1498e0d36746313913706bbeea20ada27e17c184a3cd45c50f705c16111afa829f3450233fc0fda5eed293c69757e926 + checksum: 10/b288db630841f2464554c5cfa7d7faf519ad7b5c05c3818e764c7cb486bcf59f240ea5576c748f8ca6625623c5856a8906642255bbe89d6cfa1a9090b0fbc6b9 languageName: node linkType: hard @@ -8498,10 +8468,10 @@ __metadata: languageName: node linkType: hard -"proxy-from-env@npm:^1.1.0": - version: 1.1.0 - resolution: "proxy-from-env@npm:1.1.0" - checksum: 10/f0bb4a87cfd18f77bc2fba23ae49c3b378fb35143af16cc478171c623eebe181678f09439707ad80081d340d1593cd54a33a0113f3ccb3f4bc9451488780ee23 +"proxy-from-env@npm:^2.1.0": + version: 2.1.0 + resolution: "proxy-from-env@npm:2.1.0" + checksum: 10/fbbaf4dab2a6231dc9e394903a5f66f20475e36b734335790b46feb9da07c37d6b32e2c02e3e2ea4d4b23774c53d8562e5b7cc73282cb43f4a597b7eacaee2ee languageName: node linkType: hard @@ -8563,13 +8533,6 @@ __metadata: languageName: node linkType: hard -"queue-microtask@npm:^1.2.2": - version: 1.2.3 - resolution: "queue-microtask@npm:1.2.3" - checksum: 10/72900df0616e473e824202113c3df6abae59150dfb73ed13273503127235320e9c8ca4aaaaccfd58cf417c6ca92a6e68ee9a5c3182886ae949a768639b388a7b - languageName: node - linkType: hard - "queue-tick@npm:^1.0.1": version: 1.0.1 resolution: "queue-tick@npm:1.0.1" @@ -8973,15 +8936,6 @@ __metadata: languageName: node linkType: hard -"run-parallel@npm:^1.1.9": - version: 1.2.0 - resolution: "run-parallel@npm:1.2.0" - dependencies: - queue-microtask: "npm:^1.2.2" - checksum: 10/cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d - languageName: node - linkType: hard - "safe-array-concat@npm:^1.0.1": version: 1.0.1 resolution: "safe-array-concat@npm:1.0.1" @@ -9058,12 +9012,12 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.0.0, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3, semver@npm:^7.7.2, semver@npm:^7.7.3": - version: 7.7.3 - resolution: "semver@npm:7.7.3" +"semver@npm:^7.0.0, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.3, semver@npm:^7.7.2, semver@npm:^7.7.3, semver@npm:^7.7.4": + version: 7.7.4 + resolution: "semver@npm:7.7.4" bin: semver: bin/semver.js - checksum: 10/8dbc3168e057a38fc322af909c7f5617483c50caddba135439ff09a754b20bdd6482a5123ff543dad4affa488ecf46ec5fb56d61312ad20bb140199b88dfaea9 + checksum: 10/26bdc6d58b29528f4142d29afb8526bc335f4fc04c4a10f2b98b217f277a031c66736bf82d3d3bb354a2f6a3ae50f18fd62b053c4ac3f294a3d10a61f5075b75 languageName: node linkType: hard @@ -9649,10 +9603,10 @@ __metadata: languageName: node linkType: hard -"strnum@npm:^2.2.0": - version: 2.2.2 - resolution: "strnum@npm:2.2.2" - checksum: 10/c55813cfded750dc84556b4881ffc7cee91382ff15a48f1fba0ff7a678e1640ed96ca40806fbd55724940fd7d51cf752469b2d862e196e4adefb6c7d5d9cd73b +"strnum@npm:^2.2.3": + version: 2.2.3 + resolution: "strnum@npm:2.2.3" + checksum: 10/fb70206301858c319f59ed34fecedf90ac3b821692c2accd403d9d4a3384223a09df8fd92b130bbd4e885b67b7790715c003405ce5f959d9cabbf07d41d62aa8 languageName: node linkType: hard @@ -9709,7 +9663,7 @@ __metadata: languageName: node linkType: hard -"synckit@npm:^0.11.8": +"synckit@npm:^0.11.12, synckit@npm:^0.11.8": version: 0.11.12 resolution: "synckit@npm:0.11.12" dependencies: @@ -9718,16 +9672,6 @@ __metadata: languageName: node linkType: hard -"synckit@npm:^0.9.1": - version: 0.9.2 - resolution: "synckit@npm:0.9.2" - dependencies: - "@pkgr/core": "npm:^0.1.0" - tslib: "npm:^2.6.2" - checksum: 10/d45c4288be9c0232343650643892a7edafb79152c0c08d7ae5d33ca2c296b67a0e15f8cb5c9153969612c4ea5cd5686297542384aab977db23cfa6653fe02027 - languageName: node - linkType: hard - "tapable@npm:^2.2.0": version: 2.2.1 resolution: "tapable@npm:2.2.1" @@ -9819,15 +9763,15 @@ __metadata: languageName: node linkType: hard -"threadedclass@npm:^1.3.0": - version: 1.3.0 - resolution: "threadedclass@npm:1.3.0" +"threadedclass@npm:^1.4.0": + version: 1.4.0 + resolution: "threadedclass@npm:1.4.0" dependencies: callsites: "npm:^3.1.0" eventemitter3: "npm:^4.0.4" is-running: "npm:^2.1.0" tslib: "npm:^1.13.0" - checksum: 10/9e048e82ee745ee2009dabb0015330fa9d4f4d83629c799c6059f77a6a1c6a8b0392e6e8c2a28834a88532be6b86ac276cf1f0133a855ea867b0217021350043 + checksum: 10/f99d94cbc41a5118e705a1a4ad0a5c5f2a91c7d3635fa45a04bc5e7d37749240f5034fe29b31025dcaa358be26e21a01f7a1bd13877a1435f015b05debd7bd5c languageName: node linkType: hard @@ -9883,13 +9827,13 @@ __metadata: languageName: node linkType: hard -"tinyglobby@npm:^0.2.12": - version: 0.2.15 - resolution: "tinyglobby@npm:0.2.15" +"tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.15": + version: 0.2.16 + resolution: "tinyglobby@npm:0.2.16" dependencies: fdir: "npm:^6.5.0" - picomatch: "npm:^4.0.3" - checksum: 10/d72bd826a8b0fa5fa3929e7fe5ba48fceb2ae495df3a231b6c5408cd7d8c00b58ab5a9c2a76ba56a62ee9b5e083626f1f33599734bed1ffc4b792406408f0ca2 + picomatch: "npm:^4.0.4" + checksum: 10/5c2c41b572ada38449e7c86a5fe034f204a1dbba577225a761a14f29f48dc3f2fc0d81a6c56fcc67c5a742cc3aa9fb5e2ca18dbf22b610b0bc0e549b34d5a0f8 languageName: node linkType: hard @@ -9911,15 +9855,6 @@ __metadata: languageName: node linkType: hard -"to-regex-range@npm:^5.0.1": - version: 5.0.1 - resolution: "to-regex-range@npm:5.0.1" - dependencies: - is-number: "npm:^7.0.0" - checksum: 10/10dda13571e1f5ad37546827e9b6d4252d2e0bc176c24a101252153ef435d83696e2557fe128c4678e4e78f5f01e83711c703eef9814eb12dab028580d45980a - languageName: node - linkType: hard - "to-through@npm:^3.0.0": version: 3.0.0 resolution: "to-through@npm:3.0.0" @@ -9985,26 +9920,37 @@ __metadata: languageName: node linkType: hard -"ts-api-utils@npm:^2.0.1": - version: 2.0.1 - resolution: "ts-api-utils@npm:2.0.1" +"ts-api-utils@npm:^2.5.0": + version: 2.5.0 + resolution: "ts-api-utils@npm:2.5.0" peerDependencies: typescript: ">=4.8.4" - checksum: 10/2e68938cd5acad6b5157744215ce10cd097f9f667fd36b5fdd5efdd4b0c51063e855459d835f94f6777bb8a0f334916b6eb5c1eedab8c325feb34baa39238898 + checksum: 10/d5f1936f5618c6ab6942a97b78802217540ced00e7501862ae1f578d9a3aa189fc06050e64cb8951d21f7088e5fd35f53d2bf0d0370a883861c7b05e993ebc44 + languageName: node + linkType: hard + +"ts-declaration-location@npm:^1.0.6": + version: 1.0.7 + resolution: "ts-declaration-location@npm:1.0.7" + dependencies: + picomatch: "npm:^4.0.2" + peerDependencies: + typescript: ">=4.0.0" + checksum: 10/a7932fc75d41f10c16089f8f5a5c1ea49d6afca30f09c91c1df14d0a8510f72bcb9f8a395c04f060b66b855b6bd7ea4df81b335fb9d21bef402969a672a4afa7 languageName: node linkType: hard -"ts-jest@npm:^29.4.6": - version: 29.4.6 - resolution: "ts-jest@npm:29.4.6" +"ts-jest@npm:^29.4.9": + version: 29.4.9 + resolution: "ts-jest@npm:29.4.9" dependencies: bs-logger: "npm:^0.2.6" fast-json-stable-stringify: "npm:^2.1.0" - handlebars: "npm:^4.7.8" + handlebars: "npm:^4.7.9" json5: "npm:^2.2.3" lodash.memoize: "npm:^4.1.2" make-error: "npm:^1.3.6" - semver: "npm:^7.7.3" + semver: "npm:^7.7.4" type-fest: "npm:^4.41.0" yargs-parser: "npm:^21.1.1" peerDependencies: @@ -10014,7 +9960,7 @@ __metadata: babel-jest: ^29.0.0 || ^30.0.0 jest: ^29.0.0 || ^30.0.0 jest-util: ^29.0.0 || ^30.0.0 - typescript: ">=4.3 <6" + typescript: ">=4.3 <7" peerDependenciesMeta: "@babel/core": optional: true @@ -10030,7 +9976,7 @@ __metadata: optional: true bin: ts-jest: cli.js - checksum: 10/e0ff9e13f684166d5331808b288043b8054f49a1c2970480a92ba3caec8d0ff20edd092f2a4e7a3ad8fcb9ba4d674bee10ec7ee75046d8066bbe43a7d16cf72e + checksum: 10/f5e81b1e13fff08da5b92d5a72f984f3393f40df73a1ae54473a780436b95dddb1452c78256e6d70a701c09ea427449657a5fbb3d142dc7e7a82eb192e80c3db languageName: node linkType: hard @@ -10041,7 +9987,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.4.0, tslib@npm:^2.6.0, tslib@npm:^2.6.2, tslib@npm:^2.8.1": +"tslib@npm:^2.4.0, tslib@npm:^2.6.0, tslib@npm:^2.8.1": version: 2.8.1 resolution: "tslib@npm:2.8.1" checksum: 10/3e2e043d5c2316461cb54e5c7fe02c30ef6dccb3384717ca22ae5c6b5bc95232a6241df19c622d9c73b809bea33b187f6dbc73030963e29950c2141bc32a79f7 @@ -10202,17 +10148,18 @@ __metadata: languageName: node linkType: hard -"typescript-eslint@npm:^8.21.0": - version: 8.23.0 - resolution: "typescript-eslint@npm:8.23.0" +"typescript-eslint@npm:^8.54.0": + version: 8.58.2 + resolution: "typescript-eslint@npm:8.58.2" dependencies: - "@typescript-eslint/eslint-plugin": "npm:8.23.0" - "@typescript-eslint/parser": "npm:8.23.0" - "@typescript-eslint/utils": "npm:8.23.0" + "@typescript-eslint/eslint-plugin": "npm:8.58.2" + "@typescript-eslint/parser": "npm:8.58.2" + "@typescript-eslint/typescript-estree": "npm:8.58.2" + "@typescript-eslint/utils": "npm:8.58.2" peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: ">=4.8.4 <5.8.0" - checksum: 10/c7a8b95129e944dd54a3f9312c14fbd9f589d863c30f45c8f3cf6001bb98398cf6ff41b5d51aa84d413853021d35ae703e8d0c067b409afa5acdc6bfc8bb1982 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: ">=4.8.4 <6.1.0" + checksum: 10/fd8b67208f6af32b78df004402e6de1324a64ec1429b707edf295a0257a1ca6ddab452c18494958461d0d86a74a81336ae7229fe430bd1092c0d2ceb00a9f61d languageName: node linkType: hard @@ -10257,7 +10204,7 @@ __metadata: languageName: node linkType: hard -"underscore@npm:^1.13.7": +"underscore@npm:^1.13.8": version: 1.13.8 resolution: "underscore@npm:1.13.8" checksum: 10/b50ac5806d059cc180b1bd9adea6f7ed500021f4dc782dfc75d66a90337f6f0506623c1b37863f4a9bf64ffbeb5769b638a54b7f2f5966816189955815953139 @@ -10271,6 +10218,13 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~7.19.0": + version: 7.19.2 + resolution: "undici-types@npm:7.19.2" + checksum: 10/05c34c63444c8caca7137f122b29ed50c1d7d05d1e0b2337f423575d3264054c4a0139e47e82e65723d09b97fcad6d8b0223b3550430a9006cc00e72a1e035bf + languageName: node + linkType: hard + "unicode-byte-truncate@npm:^1.0.0": version: 1.0.0 resolution: "unicode-byte-truncate@npm:1.0.0" diff --git a/package.json b/package.json index f929601411d..db3144fe83b 100644 --- a/package.json +++ b/package.json @@ -39,10 +39,10 @@ "devDependencies": { "concurrently": "^9.2.1", "husky": "^9.1.7", - "lint-staged": "^15.5.2", + "lint-staged": "^16.4.0", "rimraf": "^6.1.3", "semver": "^7.7.4", - "snyk-nodejs-lockfile-parser": "^2.6.0" + "snyk-nodejs-lockfile-parser": "^2.7.0" }, - "packageManager": "yarn@4.12.0" + "packageManager": "yarn@4.14.1" } diff --git a/packages/blueprints-integration/package.json b/packages/blueprints-integration/package.json index 06172465c6b..3b3db766303 100644 --- a/packages/blueprints-integration/package.json +++ b/packages/blueprints-integration/package.json @@ -42,5 +42,5 @@ "publishConfig": { "access": "public" }, - "packageManager": "yarn@4.12.0" + "packageManager": "yarn@4.14.1" } diff --git a/packages/corelib/package.json b/packages/corelib/package.json index 8dfba527482..62adc5700ca 100644 --- a/packages/corelib/package.json +++ b/packages/corelib/package.json @@ -47,11 +47,11 @@ "timecode": "0.0.4", "tslib": "^2.8.1", "type-fest": "^4.41.0", - "underscore": "^1.13.7" + "underscore": "^1.13.8" }, "peerDependencies": { "mongodb": "^6.12.0" }, "prettier": "@sofie-automation/code-standard-preset/.prettierrc.json", - "packageManager": "yarn@4.12.0" + "packageManager": "yarn@4.14.1" } diff --git a/packages/documentation/package.json b/packages/documentation/package.json index 5bcc19685cd..c77926093c0 100644 --- a/packages/documentation/package.json +++ b/packages/documentation/package.json @@ -18,11 +18,11 @@ "node": ">=22.20.0" }, "devDependencies": { - "@docusaurus/core": "3.9.2", - "@docusaurus/module-type-aliases": "3.9.2", - "@docusaurus/preset-classic": "3.9.2", - "@docusaurus/theme-mermaid": "^3.9.2", - "@docusaurus/types": "3.9.2", + "@docusaurus/core": "3.10.0", + "@docusaurus/module-type-aliases": "3.10.0", + "@docusaurus/preset-classic": "3.10.0", + "@docusaurus/theme-mermaid": "^3.10.0", + "@docusaurus/types": "3.10.0", "@mdx-js/react": "^3.1.1", "@svgr/webpack": "^8.1.0", "clsx": "^2.1.1", diff --git a/packages/job-worker/package.json b/packages/job-worker/package.json index 5dd185767e6..091664c0676 100644 --- a/packages/job-worker/package.json +++ b/packages/job-worker/package.json @@ -35,7 +35,7 @@ "/LICENSE" ], "dependencies": { - "@slack/webhook": "^7.0.6", + "@slack/webhook": "^7.0.9", "@sofie-automation/blueprints-integration": "26.3.0-2", "@sofie-automation/corelib": "26.3.0-2", "@sofie-automation/shared-lib": "26.3.0-2", @@ -47,15 +47,15 @@ "p-lazy": "^3.1.0", "p-timeout": "^4.1.0", "superfly-timeline": "9.2.0", - "threadedclass": "^1.3.0", + "threadedclass": "^1.4.0", "tslib": "^2.8.1", "type-fest": "^4.41.0", - "underscore": "^1.13.7" + "underscore": "^1.13.8" }, "prettier": "@sofie-automation/code-standard-preset/.prettierrc.json", - "packageManager": "yarn@4.12.0", + "packageManager": "yarn@4.14.1", "devDependencies": { - "jest": "^30.2.0", + "jest": "^30.3.0", "jest-mock-extended": "^4.0.0", "typescript": "~5.7.3" } diff --git a/packages/live-status-gateway-api/package.json b/packages/live-status-gateway-api/package.json index d77ed143443..0f2ab4acf3b 100644 --- a/packages/live-status-gateway-api/package.json +++ b/packages/live-status-gateway-api/package.json @@ -44,14 +44,14 @@ "tslib": "^2.8.1" }, "devDependencies": { - "@apidevtools/json-schema-ref-parser": "^15.2.2", + "@apidevtools/json-schema-ref-parser": "^15.3.5", "@asyncapi/generator": "^2.11.0", - "@asyncapi/html-template": "^3.5.4", + "@asyncapi/html-template": "^3.5.6", "@asyncapi/modelina": "^5.10.1", "@asyncapi/nodejs-ws-template": "^0.10.0", "@asyncapi/parser": "^3.6.0", - "yaml": "^2.8.2" + "yaml": "^2.8.3" }, "prettier": "@sofie-automation/code-standard-preset/.prettierrc.json", - "packageManager": "yarn@4.12.0" + "packageManager": "yarn@4.14.1" } diff --git a/packages/live-status-gateway/package.json b/packages/live-status-gateway/package.json index 6b7b6ec140c..2ec7bd15ab8 100644 --- a/packages/live-status-gateway/package.json +++ b/packages/live-status-gateway/package.json @@ -55,9 +55,9 @@ "fast-clone": "^1.5.13", "influx": "^5.12.0", "tslib": "^2.8.1", - "underscore": "^1.13.7", + "underscore": "^1.13.8", "winston": "^3.19.0", - "ws": "^8.19.0" + "ws": "^8.20.0" }, "devDependencies": { "type-fest": "^4.41.0" diff --git a/packages/meteor-lib/package.json b/packages/meteor-lib/package.json index 45f975e4a33..abf1a9fc2e4 100644 --- a/packages/meteor-lib/package.json +++ b/packages/meteor-lib/package.json @@ -41,9 +41,9 @@ "@sofie-automation/corelib": "26.3.0-2", "@sofie-automation/shared-lib": "26.3.0-2", "deep-extend": "0.6.0", - "semver": "^7.7.3", + "semver": "^7.7.4", "type-fest": "^4.41.0", - "underscore": "^1.13.7" + "underscore": "^1.13.8" }, "devDependencies": { "@types/deep-extend": "^0.6.2", @@ -55,5 +55,5 @@ "mongodb": "^6.12.0" }, "prettier": "@sofie-automation/code-standard-preset/.prettierrc.json", - "packageManager": "yarn@4.12.0" + "packageManager": "yarn@4.14.1" } diff --git a/packages/mos-gateway/package.json b/packages/mos-gateway/package.json index a4a4b198d34..22d37992b73 100644 --- a/packages/mos-gateway/package.json +++ b/packages/mos-gateway/package.json @@ -65,9 +65,9 @@ "@sofie-automation/shared-lib": "26.3.0-2", "tslib": "^2.8.1", "type-fest": "^4.41.0", - "underscore": "^1.13.7", + "underscore": "^1.13.8", "winston": "^3.19.0" }, "prettier": "@sofie-automation/code-standard-preset/.prettierrc.json", - "packageManager": "yarn@4.12.0" + "packageManager": "yarn@4.14.1" } diff --git a/packages/openapi/package.json b/packages/openapi/package.json index a5dc5fb2f5a..07d84527090 100644 --- a/packages/openapi/package.json +++ b/packages/openapi/package.json @@ -38,14 +38,14 @@ "tslib": "^2.8.1" }, "devDependencies": { - "@apidevtools/json-schema-ref-parser": "^15.2.2", - "@openapitools/openapi-generator-cli": "^2.28.0", - "eslint": "^9.39.2", + "@apidevtools/json-schema-ref-parser": "^15.3.5", + "@openapitools/openapi-generator-cli": "^2.31.1", + "eslint": "^9.39.4", "js-yaml": "^4.1.1", "wget-improved": "^3.4.0" }, "publishConfig": { "access": "public" }, - "packageManager": "yarn@4.12.0" + "packageManager": "yarn@4.14.1" } diff --git a/packages/package.json b/packages/package.json index 2c95e03c59f..947f707ab1a 100644 --- a/packages/package.json +++ b/packages/package.json @@ -43,36 +43,36 @@ "devDependencies": { "@babel/core": "^7.29.0", "@babel/plugin-transform-modules-commonjs": "^7.28.6", - "@sofie-automation/code-standard-preset": "^3.2.1", + "@sofie-automation/code-standard-preset": "^3.2.2", "@types/amqplib": "0.10.6", - "@types/debug": "^4.1.12", + "@types/debug": "^4.1.13", "@types/ejson": "^2.2.2", "@types/jest": "^30.0.0", - "@types/node": "^22.19.8", + "@types/node": "^22.19.17", "@types/object-path": "^0.11.4", "@types/underscore": "^1.13.0", - "babel-jest": "^30.2.0", - "eslint": "^9.39.2", + "babel-jest": "^30.3.0", + "eslint": "^9.39.4", "eslint-plugin-react": "^7.37.5", - "eslint-plugin-yml": "^3.1.2", - "jest": "^30.2.0", - "jest-environment-jsdom": "^30.2.0", + "eslint-plugin-yml": "^3.3.1", + "jest": "^30.3.0", + "jest-environment-jsdom": "^30.3.0", "jest-mock-extended": "^4.0.0", "json-schema-to-typescript": "^15.0.4", "lerna": "^9.0.7", "nodemon": "^3.1.14", "open-cli": "^8.0.0", "pinst": "^3.0.0", - "prettier": "^3.8.1", - "rimraf": "^6.1.2", - "semver": "^7.7.3", - "ts-jest": "^29.4.6", + "prettier": "^3.8.3", + "rimraf": "^6.1.3", + "semver": "^7.7.4", + "ts-jest": "^29.4.9", "ts-node": "^10.9.2", "typedoc": "^0.27.9", "typescript": "~5.7.3" }, "name": "packages", - "packageManager": "yarn@4.12.0", + "packageManager": "yarn@4.14.1", "resolutions": { "timecode@0.0.4": "patch:timecode@npm%3A0.0.4#./.yarn/patches/timecode-npm-0.0.4-82bde9e6fe.patch", "@hyperjump/json-schema-core@^0.28.0": "patch:@hyperjump/json-schema-core@npm%3A0.28.5#./.yarn/patches/@hyperjump-json-schema-core-npm-0.28.5-e8b590eb0d.patch", diff --git a/packages/playout-gateway/package.json b/packages/playout-gateway/package.json index 06da3bf11ce..393893307de 100644 --- a/packages/playout-gateway/package.json +++ b/packages/playout-gateway/package.json @@ -57,8 +57,8 @@ "influx": "^5.12.0", "timeline-state-resolver": "10.0.0-nightly-main-20260415-093148-f35c4cadc.0", "tslib": "^2.8.1", - "underscore": "^1.13.7", + "underscore": "^1.13.8", "winston": "^3.19.0" }, - "packageManager": "yarn@4.12.0" + "packageManager": "yarn@4.14.1" } diff --git a/packages/server-core-integration/package.json b/packages/server-core-integration/package.json index 835854ad6af..13f97e9ea18 100644 --- a/packages/server-core-integration/package.json +++ b/packages/server-core-integration/package.json @@ -66,20 +66,20 @@ "production" ], "devDependencies": { - "@types/koa": "^3.0.1", - "@types/ws": "^8.5.10" + "@types/koa": "^3.0.2", + "@types/ws": "^8.18.1" }, "dependencies": { - "@koa/router": "^15.3.0", + "@koa/router": "^15.4.0", "@sofie-automation/shared-lib": "26.3.0-2", "ejson": "^2.2.3", - "koa": "^3.1.1", + "koa": "^3.2.0", "tslib": "^2.8.1", - "underscore": "^1.13.7", - "ws": "^8.18.0" + "underscore": "^1.13.8", + "ws": "^8.20.0" }, "publishConfig": { "access": "public" }, - "packageManager": "yarn@4.12.0" + "packageManager": "yarn@4.14.1" } diff --git a/packages/shared-lib/package.json b/packages/shared-lib/package.json index 554abd9ae14..60c583c8db5 100644 --- a/packages/shared-lib/package.json +++ b/packages/shared-lib/package.json @@ -45,5 +45,5 @@ "publishConfig": { "access": "public" }, - "packageManager": "yarn@4.12.0" + "packageManager": "yarn@4.14.1" } diff --git a/packages/webui/package.json b/packages/webui/package.json index 575bf57f441..16b8bb3ea00 100644 --- a/packages/webui/package.json +++ b/packages/webui/package.json @@ -30,10 +30,10 @@ "license-validate": "run -T sofie-licensecheck" }, "dependencies": { - "@fortawesome/fontawesome-free": "^7.1.0", - "@fortawesome/fontawesome-svg-core": "^7.1.0", - "@fortawesome/free-solid-svg-icons": "^7.1.0", - "@fortawesome/react-fontawesome": "^3.1.1", + "@fortawesome/fontawesome-free": "^7.2.0", + "@fortawesome/fontawesome-svg-core": "^7.2.0", + "@fortawesome/free-solid-svg-icons": "^7.2.0", + "@fortawesome/react-fontawesome": "^3.3.1", "@jstarpl/react-contextmenu": "^2.15.3", "@popperjs/core": "^2.11.8", "@sofie-automation/blueprints-integration": "26.3.0-2", @@ -48,12 +48,12 @@ "deep-extend": "0.6.0", "ejson": "^2.2.3", "i18next": "^21.10.0", - "i18next-browser-languagedetector": "^8.2.0", - "i18next-http-backend": "^3.0.2", + "i18next-browser-languagedetector": "^8.2.1", + "i18next-http-backend": "^3.0.5", "immutability-helper": "^3.1.1", "lottie-react": "^2.4.1", "moment": "^2.30.1", - "motion": "^12.31.0", + "motion": "^12.38.0", "promise.allsettled": "^1.0.7", "query-string": "^6.14.1", "rc-tooltip": "^6.4.0", @@ -67,41 +67,41 @@ "react-hotkeys": "^2.0.0", "react-i18next": "^11.18.6", "react-intersection-observer": "^9.16.0", - "react-moment": "^1.2.1", + "react-moment": "^1.2.2", "react-popper": "^2.3.0", "react-router-bootstrap": "^0.25.0", "react-router-dom": "^5.3.4", - "semver": "^7.7.3", + "semver": "^7.7.4", "sha.js": "^2.4.12", "shuttle-webhid": "^0.1.3", "type-fest": "^4.41.0", - "underscore": "^1.13.7", + "underscore": "^1.13.8", "webmidi": "^2.5.3", "xmlbuilder": "^15.1.1" }, "devDependencies": { - "@babel/preset-env": "^7.29.0", + "@babel/preset-env": "^7.29.2", "@testing-library/dom": "^10.4.1", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", "@types/bootstrap": "^5.2.10", "@types/classnames": "^2.3.4", "@types/deep-extend": "^0.6.2", - "@types/react": "^18.3.27", + "@types/react": "^18.3.28", "@types/react-dom": "^18.3.7", "@types/react-router": "^5.1.20", "@types/react-router-bootstrap": "^0.26.8", "@types/react-router-dom": "^5.3.3", "@types/sha.js": "^2.4.4", "@types/xml2js": "^0.4.14", - "@vitejs/plugin-react": "^5.1.3", + "@vitejs/plugin-react": "^5.2.0", "@welldone-software/why-did-you-render": "^4.3.2", - "@xmldom/xmldom": "^0.8.11", - "babel-jest": "^30.2.0", - "globals": "^17.3.0", - "sass-embedded": "^1.97.3", + "@xmldom/xmldom": "^0.9.10", + "babel-jest": "^30.3.0", + "globals": "^17.5.0", + "sass-embedded": "^1.99.0", "typescript": "~5.7.3", - "vite": "^7.3.1", + "vite": "^7.3.2", "vite-plugin-node-polyfills": "^0.25.0", "vite-tsconfig-paths": "^5.1.4", "xml2js": "^0.6.2" diff --git a/packages/yarn.lock b/packages/yarn.lock index c22a4790c94..c2187f0e05d 100644 --- a/packages/yarn.lock +++ b/packages/yarn.lock @@ -2,7 +2,7 @@ # Manual changes might be lost - proceed with caution! __metadata: - version: 8 + version: 9 cacheKey: 10 "@aashutoshrathi/word-wrap@npm:^1.2.3": @@ -30,59 +30,6 @@ __metadata: languageName: node linkType: hard -"@ai-sdk/gateway@npm:2.0.9": - version: 2.0.9 - resolution: "@ai-sdk/gateway@npm:2.0.9" - dependencies: - "@ai-sdk/provider": "npm:2.0.0" - "@ai-sdk/provider-utils": "npm:3.0.17" - "@vercel/oidc": "npm:3.0.3" - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - checksum: 10/fd833fe28d9237d3cd35c268e9000742c9f4e52aa0c5d39c86548293bc849ae6ac473fa285b345ec766bd16873ae536e16bb905d6c43d76db863a35acc8a2c89 - languageName: node - linkType: hard - -"@ai-sdk/provider-utils@npm:3.0.17": - version: 3.0.17 - resolution: "@ai-sdk/provider-utils@npm:3.0.17" - dependencies: - "@ai-sdk/provider": "npm:2.0.0" - "@standard-schema/spec": "npm:^1.0.0" - eventsource-parser: "npm:^3.0.6" - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - checksum: 10/59bdaf16434d319f74bdd620d34e5a6f125807b588062d5c25945aa7c1eeafd71466ef5e4ef1a807c7989126e986a4c9da2035ad968420385799bdc14ba023a4 - languageName: node - linkType: hard - -"@ai-sdk/provider@npm:2.0.0": - version: 2.0.0 - resolution: "@ai-sdk/provider@npm:2.0.0" - dependencies: - json-schema: "npm:^0.4.0" - checksum: 10/e6d5460f0c52e64033ccc5d20787ab9ff5251646e6263daa76a006367fda8ad527dadc959110113c42796d293d4e669c3ae911062086574cd46f0707357dedb5 - languageName: node - linkType: hard - -"@ai-sdk/react@npm:^2.0.30": - version: 2.0.93 - resolution: "@ai-sdk/react@npm:2.0.93" - dependencies: - "@ai-sdk/provider-utils": "npm:3.0.17" - ai: "npm:5.0.93" - swr: "npm:^2.2.5" - throttleit: "npm:2.1.0" - peerDependencies: - react: ^18 || ^19 || ^19.0.0-rc - zod: ^3.25.76 || ^4.1.8 - peerDependenciesMeta: - zod: - optional: true - checksum: 10/a6771102aa92054619b40b2d400b4b830c7bcb9d6bc16961f63c9d262bf5f9b6fe47c4e7465baeb287baa118c68993df3f80b0d087e40ec0c4b90b3dcd013bd3 - languageName: node - linkType: hard - "@algolia/abtesting@npm:1.10.0": version: 1.10.0 resolution: "@algolia/abtesting@npm:1.10.0" @@ -105,6 +52,16 @@ __metadata: languageName: node linkType: hard +"@algolia/autocomplete-core@npm:^1.19.2": + version: 1.19.8 + resolution: "@algolia/autocomplete-core@npm:1.19.8" + dependencies: + "@algolia/autocomplete-plugin-algolia-insights": "npm:1.19.8" + "@algolia/autocomplete-shared": "npm:1.19.8" + checksum: 10/adb5f90a03269b0eb2d17ee745fcd808f36561d9921b5a6aee723ef1d45d2b52c2758b1a2c7bac97a3a949268906e006fbc9b84e4584abe8e578b3b0d42bad9a + languageName: node + linkType: hard + "@algolia/autocomplete-plugin-algolia-insights@npm:1.19.2": version: 1.19.2 resolution: "@algolia/autocomplete-plugin-algolia-insights@npm:1.19.2" @@ -116,6 +73,17 @@ __metadata: languageName: node linkType: hard +"@algolia/autocomplete-plugin-algolia-insights@npm:1.19.8": + version: 1.19.8 + resolution: "@algolia/autocomplete-plugin-algolia-insights@npm:1.19.8" + dependencies: + "@algolia/autocomplete-shared": "npm:1.19.8" + peerDependencies: + search-insights: ">= 1 < 3" + checksum: 10/dd8b8c483472fe58ea1d0fd7c9acd52f9dfa794eaaab2782c696b3855de56dfe00a5226f073eab5e3b3d445cd17cf062b0c8463ee05ae90a26cc086e73d330f4 + languageName: node + linkType: hard + "@algolia/autocomplete-shared@npm:1.19.2": version: 1.19.2 resolution: "@algolia/autocomplete-shared@npm:1.19.2" @@ -126,6 +94,16 @@ __metadata: languageName: node linkType: hard +"@algolia/autocomplete-shared@npm:1.19.8": + version: 1.19.8 + resolution: "@algolia/autocomplete-shared@npm:1.19.8" + peerDependencies: + "@algolia/client-search": ">= 4.9.1 < 6" + algoliasearch: ">= 4.9.1 < 6" + checksum: 10/45f7bcd8b75258462698914f0995b60df91ea217c731a964bebcea050e83fb898110ae7f227b55886012d7fb6678304f36831649abb363e6ebac86f030be0baf + languageName: node + linkType: hard + "@algolia/client-abtesting@npm:5.44.0": version: 5.44.0 resolution: "@algolia/client-abtesting@npm:5.44.0" @@ -307,14 +285,14 @@ __metadata: languageName: node linkType: hard -"@apidevtools/json-schema-ref-parser@npm:^15.2.2": - version: 15.2.2 - resolution: "@apidevtools/json-schema-ref-parser@npm:15.2.2" +"@apidevtools/json-schema-ref-parser@npm:^15.3.5": + version: 15.3.5 + resolution: "@apidevtools/json-schema-ref-parser@npm:15.3.5" dependencies: js-yaml: "npm:^4.1.1" peerDependencies: "@types/json-schema": ^7.0.15 - checksum: 10/9ed13cda5bd7cd5cc71b7e1cfcc8a7f4fa5f064ff03ba2d884cb0d2262b630690f50e7e7839f121795160049038e66b6c2da409b0a3e55c319a5f9924a084831 + checksum: 10/dd597e7cfd3ae57121b29f6489e39502199a96dce072788497dd30fab3296ed4f6dd95da1ddd26ae3461594a75f1d563c0b894bf70cd43e690b08ed9af78aa83 languageName: node linkType: hard @@ -468,20 +446,20 @@ __metadata: languageName: node linkType: hard -"@asyncapi/html-template@npm:^3.5.4": - version: 3.5.4 - resolution: "@asyncapi/html-template@npm:3.5.4" +"@asyncapi/html-template@npm:^3.5.6": + version: 3.5.6 + resolution: "@asyncapi/html-template@npm:3.5.6" dependencies: "@asyncapi/generator-react-sdk": "npm:^1.1.2" "@asyncapi/parser": "npm:^3.6.0" - "@asyncapi/react-component": "npm:^3.0.1" + "@asyncapi/react-component": "npm:^3.0.3" highlight.js: "npm:10.7.3" puppeteer: "npm:^24.4.0" react: "npm:^18.3.1" react-dom: "npm:^18.3.1" rimraf: "npm:^3.0.2" sync-fetch: "npm:^0.5.2" - checksum: 10/a6168ff6534c62aea6dbe1b6e3d798500248c355f9c330e53846fa4e9cc1a8f465186a29c5f3ab4bdfb4ab0a2f92d9f8ca0a9a1dc911daa932b4ea2ccf30eddc + checksum: 10/f867b53adcf6b3ada41dd302f151d6e1944149e45a4cfa784109e81f0c988707c476b88bff6814677cb7fb17804785eefe6bf5da984b7bdd8d0a991d9152368a languageName: node linkType: hard @@ -619,9 +597,9 @@ __metadata: languageName: node linkType: hard -"@asyncapi/react-component@npm:^3.0.1": - version: 3.0.1 - resolution: "@asyncapi/react-component@npm:3.0.1" +"@asyncapi/react-component@npm:^3.0.3": + version: 3.1.0 + resolution: "@asyncapi/react-component@npm:3.1.0" dependencies: "@asyncapi/avro-schema-parser": "npm:^3.0.24" "@asyncapi/openapi-schema-parser": "npm:^3.0.24" @@ -636,7 +614,7 @@ __metadata: peerDependencies: react: ">=18.0.0" react-dom: ">=18.0.0" - checksum: 10/d74c2264134801be020dadd2e226e0d9ce7531848551c532129bae9a73ebefef8da7045cc2130bf57e141e5966353bd23df666b7271f5b44c30af5bcf1e78d6f + checksum: 10/de755f8bad1959c7531b5e4f341ac15ef9d7e2f2348a02e8009f3e1d2bb74156f01ba768dc98db9c9fe05790b6e46a392818acbfbd91a5b9828879b7cb1084bb languageName: node linkType: hard @@ -1951,9 +1929,9 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:^7.12.7, @babel/preset-env@npm:^7.20.2, @babel/preset-env@npm:^7.25.9, @babel/preset-env@npm:^7.29.0": - version: 7.29.0 - resolution: "@babel/preset-env@npm:7.29.0" +"@babel/preset-env@npm:^7.12.7, @babel/preset-env@npm:^7.20.2, @babel/preset-env@npm:^7.25.9, @babel/preset-env@npm:^7.29.2": + version: 7.29.2 + resolution: "@babel/preset-env@npm:7.29.2" dependencies: "@babel/compat-data": "npm:^7.29.0" "@babel/helper-compilation-targets": "npm:^7.28.6" @@ -2027,7 +2005,7 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10/211b33ec8644636275f61aa273071d8cbc2a6bb28d82ad246e3831a6aa7d96c610a55b5140bcd21be7f71fb04c3aa4a10eb08665fb5505e153cfdd8dbc8c1c1c + checksum: 10/25a2dd82483d0f5bc781a939cebf502b80415d057806c87073f00f9a943c440b9862a265ca445ea1cba1fa79ee6361d05485465cdfc7797a0ec6d6493cf5d95b languageName: node linkType: hard @@ -2075,15 +2053,6 @@ __metadata: languageName: node linkType: hard -"@babel/runtime-corejs3@npm:^7.25.9": - version: 7.29.0 - resolution: "@babel/runtime-corejs3@npm:7.29.0" - dependencies: - core-js-pure: "npm:^3.48.0" - checksum: 10/59b3b614a8b4c5cf94d1f271f36eb96def0f0be0b6fa93da2ff7a87996bc3806f83690e7517f2e675078ff645e4e953f8bf3c6fc1a59cc5327e45f04bc0dd105 - languageName: node - linkType: hard - "@babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.3, @babel/runtime@npm:^7.11.1, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.14.5, @babel/runtime@npm:^7.17.2, @babel/runtime@npm:^7.18.0, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.24.7, @babel/runtime@npm:^7.25.9, @babel/runtime@npm:^7.26.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.3, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": version: 7.28.6 resolution: "@babel/runtime@npm:7.28.6" @@ -2788,9 +2757,9 @@ __metadata: languageName: node linkType: hard -"@docsearch/core@npm:4.3.1": - version: 4.3.1 - resolution: "@docsearch/core@npm:4.3.1" +"@docsearch/core@npm:4.6.2": + version: 4.6.2 + resolution: "@docsearch/core@npm:4.6.2" peerDependencies: "@types/react": ">= 16.8.0 < 20.0.0" react: ">= 16.8.0 < 20.0.0" @@ -2802,29 +2771,24 @@ __metadata: optional: true react-dom: optional: true - checksum: 10/5098acad9d6e537f24c7ac67fbd0540df686a034851da974e573194862e95c714e99de53cd6a610f6b00ae7f3acaae396696a13b55e585dc3b20b9e29e383044 + checksum: 10/0a130c1830f142e3e2058b0252bfe6ea3c3b7cb1225c7f593b7ad4236d218b4a04622ac4e34181dec6efe6119d5d2c0f7e4dc32f47974d48ea16848ee11e4e0b languageName: node linkType: hard -"@docsearch/css@npm:4.3.2": - version: 4.3.2 - resolution: "@docsearch/css@npm:4.3.2" - checksum: 10/f9ac7692db4f39dd51be8021b75544911fe04d796a3fcd887e852d2a221a59be5e4a1ad0c13fd6ca65fa602d9f1b70dd16a0c10e382142c8e8370ad8d5d82be0 +"@docsearch/css@npm:4.6.2": + version: 4.6.2 + resolution: "@docsearch/css@npm:4.6.2" + checksum: 10/d73ef1c79accf90082e0e3aca8ba5732a3f81ce40bacb6802e74d316e3f022badf1d34962f4e82fc17e5a537169ec48348e3f78bad74b49bc952375aa89b486d languageName: node linkType: hard -"@docsearch/react@npm:^3.9.0 || ^4.1.0": - version: 4.3.2 - resolution: "@docsearch/react@npm:4.3.2" +"@docsearch/react@npm:^3.9.0 || ^4.3.2": + version: 4.6.2 + resolution: "@docsearch/react@npm:4.6.2" dependencies: - "@ai-sdk/react": "npm:^2.0.30" "@algolia/autocomplete-core": "npm:1.19.2" - "@docsearch/core": "npm:4.3.1" - "@docsearch/css": "npm:4.3.2" - ai: "npm:^5.0.30" - algoliasearch: "npm:^5.28.0" - marked: "npm:^16.3.0" - zod: "npm:^4.1.8" + "@docsearch/core": "npm:4.6.2" + "@docsearch/css": "npm:4.6.2" peerDependencies: "@types/react": ">= 16.8.0 < 20.0.0" react: ">= 16.8.0 < 20.0.0" @@ -2839,13 +2803,13 @@ __metadata: optional: true search-insights: optional: true - checksum: 10/43d73c97ea091335194f11addba04a622d7b01e8b7177e4e1f1b45687b5cb4f778c7db2752ede83d7840204c644cadd211dd4a8f6e608a3ae04b7afd8025381e + checksum: 10/dc8afc9b52ee4571d9ac4138d324a69842797104f77579c431fedbdf68610a05a5e88e88c5196310f32a74fddfde394d1ff85654515fe1a06b08470a4a67b5b6 languageName: node linkType: hard -"@docusaurus/babel@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/babel@npm:3.9.2" +"@docusaurus/babel@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/babel@npm:3.10.0" dependencies: "@babel/core": "npm:^7.25.9" "@babel/generator": "npm:^7.25.9" @@ -2855,27 +2819,26 @@ __metadata: "@babel/preset-react": "npm:^7.25.9" "@babel/preset-typescript": "npm:^7.25.9" "@babel/runtime": "npm:^7.25.9" - "@babel/runtime-corejs3": "npm:^7.25.9" "@babel/traverse": "npm:^7.25.9" - "@docusaurus/logger": "npm:3.9.2" - "@docusaurus/utils": "npm:3.9.2" + "@docusaurus/logger": "npm:3.10.0" + "@docusaurus/utils": "npm:3.10.0" babel-plugin-dynamic-import-node: "npm:^2.3.3" fs-extra: "npm:^11.1.1" tslib: "npm:^2.6.0" - checksum: 10/ff1806ee5899e61c37930046faf4e485368ebb5412a42b65666c0a9dd15f330acf3136cbccb8d8ff98f9d1403b407b698fbffab4b23c08815607152c1dda1c2a + checksum: 10/f7595a33e7492ddf959560d58bd0750137ce85689c2a194fce8036032305c4f96ce9df942f6b25f672ec6ffa2ddd75b243363150632e679760db620ad1e5d916 languageName: node linkType: hard -"@docusaurus/bundler@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/bundler@npm:3.9.2" +"@docusaurus/bundler@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/bundler@npm:3.10.0" dependencies: "@babel/core": "npm:^7.25.9" - "@docusaurus/babel": "npm:3.9.2" - "@docusaurus/cssnano-preset": "npm:3.9.2" - "@docusaurus/logger": "npm:3.9.2" - "@docusaurus/types": "npm:3.9.2" - "@docusaurus/utils": "npm:3.9.2" + "@docusaurus/babel": "npm:3.10.0" + "@docusaurus/cssnano-preset": "npm:3.10.0" + "@docusaurus/logger": "npm:3.10.0" + "@docusaurus/types": "npm:3.10.0" + "@docusaurus/utils": "npm:3.10.0" babel-loader: "npm:^9.2.1" clean-css: "npm:^5.3.3" copy-webpack-plugin: "npm:^11.0.0" @@ -2899,21 +2862,21 @@ __metadata: peerDependenciesMeta: "@docusaurus/faster": optional: true - checksum: 10/767c3554305b7e7ab6d5b4bf36ab00bad3d257a9936f7b3698fe9d8275e10a16098ad84d4492a469ddde4dcf098e75df8cca82443fbeb634719fdf6d7fe2c4be + checksum: 10/5f8ec2f9618d6f54c01317138f399fec07c652e8aa5c93e2bca4b77e4b180bfc4b52d9009b0986c45bc4a418b1a646ad479eaaf8db582c0216706c3975dd0e41 languageName: node linkType: hard -"@docusaurus/core@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/core@npm:3.9.2" - dependencies: - "@docusaurus/babel": "npm:3.9.2" - "@docusaurus/bundler": "npm:3.9.2" - "@docusaurus/logger": "npm:3.9.2" - "@docusaurus/mdx-loader": "npm:3.9.2" - "@docusaurus/utils": "npm:3.9.2" - "@docusaurus/utils-common": "npm:3.9.2" - "@docusaurus/utils-validation": "npm:3.9.2" +"@docusaurus/core@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/core@npm:3.10.0" + dependencies: + "@docusaurus/babel": "npm:3.10.0" + "@docusaurus/bundler": "npm:3.10.0" + "@docusaurus/logger": "npm:3.10.0" + "@docusaurus/mdx-loader": "npm:3.10.0" + "@docusaurus/utils": "npm:3.10.0" + "@docusaurus/utils-common": "npm:3.10.0" + "@docusaurus/utils-validation": "npm:3.10.0" boxen: "npm:^6.2.1" chalk: "npm:^4.1.2" chokidar: "npm:^3.5.3" @@ -2925,7 +2888,7 @@ __metadata: escape-html: "npm:^1.0.3" eta: "npm:^2.2.0" eval: "npm:^0.1.8" - execa: "npm:5.1.1" + execa: "npm:^5.1.1" fs-extra: "npm:^11.1.1" html-tags: "npm:^3.3.1" html-webpack-plugin: "npm:^5.6.0" @@ -2936,12 +2899,12 @@ __metadata: prompts: "npm:^2.4.2" react-helmet-async: "npm:@slorber/react-helmet-async@1.3.0" react-loadable: "npm:@docusaurus/react-loadable@6.0.0" - react-loadable-ssr-addon-v5-slorber: "npm:^1.0.1" + react-loadable-ssr-addon-v5-slorber: "npm:^1.0.3" react-router: "npm:^5.3.4" react-router-config: "npm:^5.1.1" react-router-dom: "npm:^5.3.4" semver: "npm:^7.5.4" - serve-handler: "npm:^6.1.6" + serve-handler: "npm:^6.1.7" tinypool: "npm:^1.0.2" tslib: "npm:^2.6.0" update-notifier: "npm:^6.0.2" @@ -2950,44 +2913,48 @@ __metadata: webpack-dev-server: "npm:^5.2.2" webpack-merge: "npm:^6.0.1" peerDependencies: + "@docusaurus/faster": "*" "@mdx-js/react": ^3.0.0 react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@docusaurus/faster": + optional: true bin: docusaurus: bin/docusaurus.mjs - checksum: 10/3d6e1219648fdf8f32c3a53c06c79df512715edb054a524f1874d81f7a95f9bd599ca803ae9decbec3917ec648aa10606643f2b9c36b12ef349b4cbe3a4abf23 + checksum: 10/b381a15e6f0863bccf70ff509b1df57b0877effe9330aaa5840750ea61b04fc6e3f2ddc92ec86993397d709866cb3f7b5b7cb936432eddbecbfd81d2a4257ec3 languageName: node linkType: hard -"@docusaurus/cssnano-preset@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/cssnano-preset@npm:3.9.2" +"@docusaurus/cssnano-preset@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/cssnano-preset@npm:3.10.0" dependencies: cssnano-preset-advanced: "npm:^6.1.2" postcss: "npm:^8.5.4" postcss-sort-media-queries: "npm:^5.2.0" tslib: "npm:^2.6.0" - checksum: 10/21b9b787042ab00db945969c45fdd6fb489cd0811ad256e482b44db3d6846b4f9c54a5b360e76f7160736e2866602d690bbe29d3cb9b08577d7087b38720566f + checksum: 10/33f135f1514f8ccf6fc3aab90e43e980aa69c51f344418e8156dbc19913cb79a6c013e6512b074e277a7f1e2b716efad185f064abb3b864d78dcfda08404e833 languageName: node linkType: hard -"@docusaurus/logger@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/logger@npm:3.9.2" +"@docusaurus/logger@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/logger@npm:3.10.0" dependencies: chalk: "npm:^4.1.2" tslib: "npm:^2.6.0" - checksum: 10/4d7b1bccc90fa108d7c8ffd1cd071ce2e179e0af9989f4c76acfe021789b186a15e4e56db55360df15de3e41f1d69c4e851a73cdf594fa02bb6fb219eaf48e57 + checksum: 10/9a591b9329efa0a7ea4d0d9cbc8c4f073a6ce4eec9ff77282061de0807130a03cbed962741323405df7eab94c47f28411d428999f5bd8de671f738d14a9f8a56 languageName: node linkType: hard -"@docusaurus/mdx-loader@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/mdx-loader@npm:3.9.2" +"@docusaurus/mdx-loader@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/mdx-loader@npm:3.10.0" dependencies: - "@docusaurus/logger": "npm:3.9.2" - "@docusaurus/utils": "npm:3.9.2" - "@docusaurus/utils-validation": "npm:3.9.2" + "@docusaurus/logger": "npm:3.10.0" + "@docusaurus/utils": "npm:3.10.0" + "@docusaurus/utils-validation": "npm:3.10.0" "@mdx-js/mdx": "npm:^3.0.0" "@slorber/remark-comment": "npm:^1.0.0" escape-html: "npm:^1.0.3" @@ -3012,15 +2979,15 @@ __metadata: peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - checksum: 10/00777730141774c9f465ee9b35a61c414e694f43995377c0f1a6a3fa07cca177eea45614be72a8ed40b094cdcc5fd2ba3762b68a4ad410071d2ea018a502d76e + checksum: 10/a5583b7221d25856750eafbd1134e09ec1e22d1260a9809c910e230cf8f1b60e6e9090af4f227c60d9e0221f6886a13badfc84829682a7027d6edef076ba9221 languageName: node linkType: hard -"@docusaurus/module-type-aliases@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/module-type-aliases@npm:3.9.2" +"@docusaurus/module-type-aliases@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/module-type-aliases@npm:3.10.0" dependencies: - "@docusaurus/types": "npm:3.9.2" + "@docusaurus/types": "npm:3.10.0" "@types/history": "npm:^4.7.11" "@types/react": "npm:*" "@types/react-router-config": "npm:*" @@ -3030,23 +2997,24 @@ __metadata: peerDependencies: react: "*" react-dom: "*" - checksum: 10/6b47ea9f31871e7200ca8c76016496a524fa0b0458ab9bdd582afbd79a9c1756c1ad8414c1cf8ff942b94b2505d1a50492963d8d59294cafc5f7b894e82f3d5f + checksum: 10/0c5355fa87e76b5f633a59b7b11b465f131cd1dadc3bf0f6a677cab9d05459dae559dcd21bf9c90751f540bf7707967a23b1e163a24b2bdd127f6126b546a878 languageName: node linkType: hard -"@docusaurus/plugin-content-blog@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/plugin-content-blog@npm:3.9.2" - dependencies: - "@docusaurus/core": "npm:3.9.2" - "@docusaurus/logger": "npm:3.9.2" - "@docusaurus/mdx-loader": "npm:3.9.2" - "@docusaurus/theme-common": "npm:3.9.2" - "@docusaurus/types": "npm:3.9.2" - "@docusaurus/utils": "npm:3.9.2" - "@docusaurus/utils-common": "npm:3.9.2" - "@docusaurus/utils-validation": "npm:3.9.2" +"@docusaurus/plugin-content-blog@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/plugin-content-blog@npm:3.10.0" + dependencies: + "@docusaurus/core": "npm:3.10.0" + "@docusaurus/logger": "npm:3.10.0" + "@docusaurus/mdx-loader": "npm:3.10.0" + "@docusaurus/theme-common": "npm:3.10.0" + "@docusaurus/types": "npm:3.10.0" + "@docusaurus/utils": "npm:3.10.0" + "@docusaurus/utils-common": "npm:3.10.0" + "@docusaurus/utils-validation": "npm:3.10.0" cheerio: "npm:1.0.0-rc.12" + combine-promises: "npm:^1.1.0" feed: "npm:^4.2.2" fs-extra: "npm:^11.1.1" lodash: "npm:^4.17.21" @@ -3060,23 +3028,23 @@ __metadata: "@docusaurus/plugin-content-docs": "*" react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - checksum: 10/86680042f4b36acf22a7f83cd432eebca31d2770027595e48151b21e081bc50bf18f4e090549a69dd2d4da49cec83953bfb40c71c1a3a91d36ddd0f84351a659 + checksum: 10/ecd2ff3c1206b4ffc3171c78c9d60555de9f08fc9cd9105bc9336b5a1dab005f9aa9639f38b62e481f11c1cc9b48616b72f252ea9b6d4cb1f1ca113c10b4a3b9 languageName: node linkType: hard -"@docusaurus/plugin-content-docs@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/plugin-content-docs@npm:3.9.2" - dependencies: - "@docusaurus/core": "npm:3.9.2" - "@docusaurus/logger": "npm:3.9.2" - "@docusaurus/mdx-loader": "npm:3.9.2" - "@docusaurus/module-type-aliases": "npm:3.9.2" - "@docusaurus/theme-common": "npm:3.9.2" - "@docusaurus/types": "npm:3.9.2" - "@docusaurus/utils": "npm:3.9.2" - "@docusaurus/utils-common": "npm:3.9.2" - "@docusaurus/utils-validation": "npm:3.9.2" +"@docusaurus/plugin-content-docs@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/plugin-content-docs@npm:3.10.0" + dependencies: + "@docusaurus/core": "npm:3.10.0" + "@docusaurus/logger": "npm:3.10.0" + "@docusaurus/mdx-loader": "npm:3.10.0" + "@docusaurus/module-type-aliases": "npm:3.10.0" + "@docusaurus/theme-common": "npm:3.10.0" + "@docusaurus/types": "npm:3.10.0" + "@docusaurus/utils": "npm:3.10.0" + "@docusaurus/utils-common": "npm:3.10.0" + "@docusaurus/utils-validation": "npm:3.10.0" "@types/react-router-config": "npm:^5.0.7" combine-promises: "npm:^1.1.0" fs-extra: "npm:^11.1.1" @@ -3089,133 +3057,133 @@ __metadata: peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - checksum: 10/5a3fb39a1add1f5db8aabd03b56f65e988a776d5983def89b6b4f17ab0c78dd4de255aab080a082aa8e7e7915da1705277148789fada56d9c6d9ad8f468e784e + checksum: 10/83a45c0df18023cfd1eb60b32d7d2bfc8a3824a0c0c6aeed13a09989da56ecded944f99c981656065c462a152e5dff2321dafae55e5a10aba8503131a846b1fc languageName: node linkType: hard -"@docusaurus/plugin-content-pages@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/plugin-content-pages@npm:3.9.2" +"@docusaurus/plugin-content-pages@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/plugin-content-pages@npm:3.10.0" dependencies: - "@docusaurus/core": "npm:3.9.2" - "@docusaurus/mdx-loader": "npm:3.9.2" - "@docusaurus/types": "npm:3.9.2" - "@docusaurus/utils": "npm:3.9.2" - "@docusaurus/utils-validation": "npm:3.9.2" + "@docusaurus/core": "npm:3.10.0" + "@docusaurus/mdx-loader": "npm:3.10.0" + "@docusaurus/types": "npm:3.10.0" + "@docusaurus/utils": "npm:3.10.0" + "@docusaurus/utils-validation": "npm:3.10.0" fs-extra: "npm:^11.1.1" tslib: "npm:^2.6.0" webpack: "npm:^5.88.1" peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - checksum: 10/341b5ac4d4e55fcb8f72cad3977f548e19061d4bb19392f5dea194cdb7f7d260640ed656a793145809fc8c0ca5fb15cac6e9b6c73545a83dfcd0463cad3f60a2 + checksum: 10/0f2f80a6686b8d76cdffa6182be2bcc60130d616bbab99af2353bf7824bcd89a0ec67b2ef5923ad83b5d385a2096def016ffc55542d682154a68d232ec8dea31 languageName: node linkType: hard -"@docusaurus/plugin-css-cascade-layers@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/plugin-css-cascade-layers@npm:3.9.2" +"@docusaurus/plugin-css-cascade-layers@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/plugin-css-cascade-layers@npm:3.10.0" dependencies: - "@docusaurus/core": "npm:3.9.2" - "@docusaurus/types": "npm:3.9.2" - "@docusaurus/utils": "npm:3.9.2" - "@docusaurus/utils-validation": "npm:3.9.2" + "@docusaurus/core": "npm:3.10.0" + "@docusaurus/types": "npm:3.10.0" + "@docusaurus/utils": "npm:3.10.0" + "@docusaurus/utils-validation": "npm:3.10.0" tslib: "npm:^2.6.0" - checksum: 10/039debb4e3764b9ecb6aafa2b7ca1d59f2cf52bb4f4e71390394d554149b0bc9a7aa355f2ea72a92c2e2fbdd5b7ed7843cd8100d1b8d0f62187588253ff8d6d5 + checksum: 10/a896b09efbe2909a6fca3440bb3d7943760bbade8a8b79ede0b755bdaae09bf7557825ed9d9b6434b9d1c5e9133cf5042cf25dd9f631dde256864a1cad29bd57 languageName: node linkType: hard -"@docusaurus/plugin-debug@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/plugin-debug@npm:3.9.2" +"@docusaurus/plugin-debug@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/plugin-debug@npm:3.10.0" dependencies: - "@docusaurus/core": "npm:3.9.2" - "@docusaurus/types": "npm:3.9.2" - "@docusaurus/utils": "npm:3.9.2" + "@docusaurus/core": "npm:3.10.0" + "@docusaurus/types": "npm:3.10.0" + "@docusaurus/utils": "npm:3.10.0" fs-extra: "npm:^11.1.1" react-json-view-lite: "npm:^2.3.0" tslib: "npm:^2.6.0" peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - checksum: 10/8974d17143f3b379c977441011f6c9daa8d38eb484c33726b9e9a63012553e66847a1a18e7e86ed52bc5321d2833ee8e934a1619afcdd669b255089ffd23a506 + checksum: 10/3102312bea7aaafd88de52f7850bd4a1b6045e20b712f8cf1bff26a7200df8473576c166637857680509dedacfadf9c22f40ee913c62e0a0e9bdc11c848b620a languageName: node linkType: hard -"@docusaurus/plugin-google-analytics@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/plugin-google-analytics@npm:3.9.2" +"@docusaurus/plugin-google-analytics@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/plugin-google-analytics@npm:3.10.0" dependencies: - "@docusaurus/core": "npm:3.9.2" - "@docusaurus/types": "npm:3.9.2" - "@docusaurus/utils-validation": "npm:3.9.2" + "@docusaurus/core": "npm:3.10.0" + "@docusaurus/types": "npm:3.10.0" + "@docusaurus/utils-validation": "npm:3.10.0" tslib: "npm:^2.6.0" peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - checksum: 10/026ffe26b4e47adf509f3de79a9a4b095e0374e4db0ce73041f9d28933df1e7697069bce7a0be1744eeca2b2d5ed057f023f4f2e98aff838b33cc2c2d1eed882 + checksum: 10/f924e1a43cc6033d538b820ac184c8c9b886fbe88883c1c11cc8da318cc34b8b600c6cb7775b35588362adc90bce99a6c71470e4ce4fc7993c3c7162d846428b languageName: node linkType: hard -"@docusaurus/plugin-google-gtag@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/plugin-google-gtag@npm:3.9.2" +"@docusaurus/plugin-google-gtag@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/plugin-google-gtag@npm:3.10.0" dependencies: - "@docusaurus/core": "npm:3.9.2" - "@docusaurus/types": "npm:3.9.2" - "@docusaurus/utils-validation": "npm:3.9.2" - "@types/gtag.js": "npm:^0.0.12" + "@docusaurus/core": "npm:3.10.0" + "@docusaurus/types": "npm:3.10.0" + "@docusaurus/utils-validation": "npm:3.10.0" + "@types/gtag.js": "npm:^0.0.20" tslib: "npm:^2.6.0" peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - checksum: 10/ee596c5a1d1a71d947c390274326b46a9aeb56c3d0c0c0b672629e890e783f6f6947505dc66ee0abe4d70fe61f743ff9df0a4b4cdc4fe3994eefbb1a4386769b + checksum: 10/9ccf7eedae66daf43c07a3bd1f2033f42c2baa148d134182c00b13f643713dd7199c43fcb3812b2ec0845aa82ece5309f80f4ddd78d8f2066001a00e0b8ec276 languageName: node linkType: hard -"@docusaurus/plugin-google-tag-manager@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/plugin-google-tag-manager@npm:3.9.2" +"@docusaurus/plugin-google-tag-manager@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/plugin-google-tag-manager@npm:3.10.0" dependencies: - "@docusaurus/core": "npm:3.9.2" - "@docusaurus/types": "npm:3.9.2" - "@docusaurus/utils-validation": "npm:3.9.2" + "@docusaurus/core": "npm:3.10.0" + "@docusaurus/types": "npm:3.10.0" + "@docusaurus/utils-validation": "npm:3.10.0" tslib: "npm:^2.6.0" peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - checksum: 10/0c4ee07b5ee2cdf252b53aa52b54f42ae591441df5e289e2a1614bcabe1852f973ec65a1086c7682f7e5a5e65a50c0597ed9c393505c2902f1a52569798ef6c0 + checksum: 10/14fa4a697605ea8099705fe28bf5fbee56377d95dd7a8b04ba94dd70fa7a502b4ce2fc05d02bf3f93ce10d3d5ecd4510e96f0c8d7ae715a854c9be103c3f27b7 languageName: node linkType: hard -"@docusaurus/plugin-sitemap@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/plugin-sitemap@npm:3.9.2" - dependencies: - "@docusaurus/core": "npm:3.9.2" - "@docusaurus/logger": "npm:3.9.2" - "@docusaurus/types": "npm:3.9.2" - "@docusaurus/utils": "npm:3.9.2" - "@docusaurus/utils-common": "npm:3.9.2" - "@docusaurus/utils-validation": "npm:3.9.2" +"@docusaurus/plugin-sitemap@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/plugin-sitemap@npm:3.10.0" + dependencies: + "@docusaurus/core": "npm:3.10.0" + "@docusaurus/logger": "npm:3.10.0" + "@docusaurus/types": "npm:3.10.0" + "@docusaurus/utils": "npm:3.10.0" + "@docusaurus/utils-common": "npm:3.10.0" + "@docusaurus/utils-validation": "npm:3.10.0" fs-extra: "npm:^11.1.1" sitemap: "npm:^7.1.1" tslib: "npm:^2.6.0" peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - checksum: 10/adba37c28fadf7901b6d12253093b92c90856a00f98f9830b039fdcb92c2472cdb43a0f939a9d3012db0e003571fd77e6cb58972c375b70b7bae748be2a6f263 + checksum: 10/5aed6baec8eb693da69225bd890afcd2a5c602cc6509ea36943aa3e387bd7fc229537d4127e5b57da41da4bfdfd78e5ec1ed16ff4a38397e7b85315352d8d1a4 languageName: node linkType: hard -"@docusaurus/plugin-svgr@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/plugin-svgr@npm:3.9.2" +"@docusaurus/plugin-svgr@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/plugin-svgr@npm:3.10.0" dependencies: - "@docusaurus/core": "npm:3.9.2" - "@docusaurus/types": "npm:3.9.2" - "@docusaurus/utils": "npm:3.9.2" - "@docusaurus/utils-validation": "npm:3.9.2" + "@docusaurus/core": "npm:3.10.0" + "@docusaurus/types": "npm:3.10.0" + "@docusaurus/utils": "npm:3.10.0" + "@docusaurus/utils-validation": "npm:3.10.0" "@svgr/core": "npm:8.1.0" "@svgr/webpack": "npm:^8.1.0" tslib: "npm:^2.6.0" @@ -3223,55 +3191,56 @@ __metadata: peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - checksum: 10/5e5b7789a34c1d013d248e41ea8704dc22174aaff4fdd77336886021f5ae38e435bb8109b97f122ba2ecbcba87a8d0cd0705987e2fc014162d567ea38cc1ee04 - languageName: node - linkType: hard - -"@docusaurus/preset-classic@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/preset-classic@npm:3.9.2" - dependencies: - "@docusaurus/core": "npm:3.9.2" - "@docusaurus/plugin-content-blog": "npm:3.9.2" - "@docusaurus/plugin-content-docs": "npm:3.9.2" - "@docusaurus/plugin-content-pages": "npm:3.9.2" - "@docusaurus/plugin-css-cascade-layers": "npm:3.9.2" - "@docusaurus/plugin-debug": "npm:3.9.2" - "@docusaurus/plugin-google-analytics": "npm:3.9.2" - "@docusaurus/plugin-google-gtag": "npm:3.9.2" - "@docusaurus/plugin-google-tag-manager": "npm:3.9.2" - "@docusaurus/plugin-sitemap": "npm:3.9.2" - "@docusaurus/plugin-svgr": "npm:3.9.2" - "@docusaurus/theme-classic": "npm:3.9.2" - "@docusaurus/theme-common": "npm:3.9.2" - "@docusaurus/theme-search-algolia": "npm:3.9.2" - "@docusaurus/types": "npm:3.9.2" + checksum: 10/87aa7b2b618023b5eb16512a4dac712e91b0afb250b11fb935eefaf58d3a974ca09563e940b3295de272b90af9cb7e3b04d5ac4d3f2e5e629a99624e6919c740 + languageName: node + linkType: hard + +"@docusaurus/preset-classic@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/preset-classic@npm:3.10.0" + dependencies: + "@docusaurus/core": "npm:3.10.0" + "@docusaurus/plugin-content-blog": "npm:3.10.0" + "@docusaurus/plugin-content-docs": "npm:3.10.0" + "@docusaurus/plugin-content-pages": "npm:3.10.0" + "@docusaurus/plugin-css-cascade-layers": "npm:3.10.0" + "@docusaurus/plugin-debug": "npm:3.10.0" + "@docusaurus/plugin-google-analytics": "npm:3.10.0" + "@docusaurus/plugin-google-gtag": "npm:3.10.0" + "@docusaurus/plugin-google-tag-manager": "npm:3.10.0" + "@docusaurus/plugin-sitemap": "npm:3.10.0" + "@docusaurus/plugin-svgr": "npm:3.10.0" + "@docusaurus/theme-classic": "npm:3.10.0" + "@docusaurus/theme-common": "npm:3.10.0" + "@docusaurus/theme-search-algolia": "npm:3.10.0" + "@docusaurus/types": "npm:3.10.0" peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - checksum: 10/ae8328253111429e9ca219273d5ae8c39f26a98c2422b25a8d233e3a0f2737e453dd1dbcc29e4c9a601b936d0217b3e91dce218d12f9f33793ae3120ed629c1c - languageName: node - linkType: hard - -"@docusaurus/theme-classic@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/theme-classic@npm:3.9.2" - dependencies: - "@docusaurus/core": "npm:3.9.2" - "@docusaurus/logger": "npm:3.9.2" - "@docusaurus/mdx-loader": "npm:3.9.2" - "@docusaurus/module-type-aliases": "npm:3.9.2" - "@docusaurus/plugin-content-blog": "npm:3.9.2" - "@docusaurus/plugin-content-docs": "npm:3.9.2" - "@docusaurus/plugin-content-pages": "npm:3.9.2" - "@docusaurus/theme-common": "npm:3.9.2" - "@docusaurus/theme-translations": "npm:3.9.2" - "@docusaurus/types": "npm:3.9.2" - "@docusaurus/utils": "npm:3.9.2" - "@docusaurus/utils-common": "npm:3.9.2" - "@docusaurus/utils-validation": "npm:3.9.2" + checksum: 10/86460f00296a5b99dbb970ba922e9695f0ab7450e17ac7b76b3d029408f4456d2b9ac4554cf75671b6f677cef9ad3d95da7705458147297ecb3d54796c16d308 + languageName: node + linkType: hard + +"@docusaurus/theme-classic@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/theme-classic@npm:3.10.0" + dependencies: + "@docusaurus/core": "npm:3.10.0" + "@docusaurus/logger": "npm:3.10.0" + "@docusaurus/mdx-loader": "npm:3.10.0" + "@docusaurus/module-type-aliases": "npm:3.10.0" + "@docusaurus/plugin-content-blog": "npm:3.10.0" + "@docusaurus/plugin-content-docs": "npm:3.10.0" + "@docusaurus/plugin-content-pages": "npm:3.10.0" + "@docusaurus/theme-common": "npm:3.10.0" + "@docusaurus/theme-translations": "npm:3.10.0" + "@docusaurus/types": "npm:3.10.0" + "@docusaurus/utils": "npm:3.10.0" + "@docusaurus/utils-common": "npm:3.10.0" + "@docusaurus/utils-validation": "npm:3.10.0" "@mdx-js/react": "npm:^3.0.0" clsx: "npm:^2.0.0" + copy-text-to-clipboard: "npm:^3.2.0" infima: "npm:0.2.0-alpha.45" lodash: "npm:^4.17.21" nprogress: "npm:^0.2.0" @@ -3285,18 +3254,18 @@ __metadata: peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - checksum: 10/aeb889cf6d0d4b8836d4684d775b70098f675f3d53cf24cca773784d7ed9ffa33c6240ea87bcd33b9abb6a66ba6a4c3c1d16c004da1e6ad4167af5600f3131d6 + checksum: 10/d9f11b0d1e0ff4c333ec04879aae71548056a7ef1d49528533cfbbe463c15ab5f65f00c8bc44bb7a5766bdb06d16fb94528446e922ff6b11625c6e93a555e798 languageName: node linkType: hard -"@docusaurus/theme-common@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/theme-common@npm:3.9.2" +"@docusaurus/theme-common@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/theme-common@npm:3.10.0" dependencies: - "@docusaurus/mdx-loader": "npm:3.9.2" - "@docusaurus/module-type-aliases": "npm:3.9.2" - "@docusaurus/utils": "npm:3.9.2" - "@docusaurus/utils-common": "npm:3.9.2" + "@docusaurus/mdx-loader": "npm:3.10.0" + "@docusaurus/module-type-aliases": "npm:3.10.0" + "@docusaurus/utils": "npm:3.10.0" + "@docusaurus/utils-common": "npm:3.10.0" "@types/history": "npm:^4.7.11" "@types/react": "npm:*" "@types/react-router-config": "npm:*" @@ -3309,19 +3278,19 @@ __metadata: "@docusaurus/plugin-content-docs": "*" react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - checksum: 10/697a23f4bcad3ec49af6386e939f5d10c04c7160daaee11e78c021b385a18d6d040f6c7a86f8f8d0e076fc2d2abd4eea71d51849bebc8c409af5d73a7b2c6738 + checksum: 10/d658beec02be44c7572de7670c7b9bf80430124a1e2b44456dd86fb769e7c2544f845a7ca3d1b82ceb04d734472a227add1dedbe31d9f12051fab343f6aece25 languageName: node linkType: hard -"@docusaurus/theme-mermaid@npm:^3.9.2": - version: 3.9.2 - resolution: "@docusaurus/theme-mermaid@npm:3.9.2" +"@docusaurus/theme-mermaid@npm:^3.10.0": + version: 3.10.0 + resolution: "@docusaurus/theme-mermaid@npm:3.10.0" dependencies: - "@docusaurus/core": "npm:3.9.2" - "@docusaurus/module-type-aliases": "npm:3.9.2" - "@docusaurus/theme-common": "npm:3.9.2" - "@docusaurus/types": "npm:3.9.2" - "@docusaurus/utils-validation": "npm:3.9.2" + "@docusaurus/core": "npm:3.10.0" + "@docusaurus/module-type-aliases": "npm:3.10.0" + "@docusaurus/theme-common": "npm:3.10.0" + "@docusaurus/types": "npm:3.10.0" + "@docusaurus/utils-validation": "npm:3.10.0" mermaid: "npm:>=11.6.0" tslib: "npm:^2.6.0" peerDependencies: @@ -3331,22 +3300,23 @@ __metadata: peerDependenciesMeta: "@mermaid-js/layout-elk": optional: true - checksum: 10/053084493633335d8378081cab60e5111a56e47069e8302ec5c2e1b34419b750d69016f09b9f5dfd4e3cc4302d8b4db2c2af3f82ca2a4a55ee904d2adba94343 + checksum: 10/bb38fb5b792a6cf0aef6db10f61064bfb9f6649bd854047ca865ade0fc71d0f44d313240178aa59e7ccff23dbcbc4a306efaa9f873033943235e988e5a8cc7f1 languageName: node linkType: hard -"@docusaurus/theme-search-algolia@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/theme-search-algolia@npm:3.9.2" - dependencies: - "@docsearch/react": "npm:^3.9.0 || ^4.1.0" - "@docusaurus/core": "npm:3.9.2" - "@docusaurus/logger": "npm:3.9.2" - "@docusaurus/plugin-content-docs": "npm:3.9.2" - "@docusaurus/theme-common": "npm:3.9.2" - "@docusaurus/theme-translations": "npm:3.9.2" - "@docusaurus/utils": "npm:3.9.2" - "@docusaurus/utils-validation": "npm:3.9.2" +"@docusaurus/theme-search-algolia@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/theme-search-algolia@npm:3.10.0" + dependencies: + "@algolia/autocomplete-core": "npm:^1.19.2" + "@docsearch/react": "npm:^3.9.0 || ^4.3.2" + "@docusaurus/core": "npm:3.10.0" + "@docusaurus/logger": "npm:3.10.0" + "@docusaurus/plugin-content-docs": "npm:3.10.0" + "@docusaurus/theme-common": "npm:3.10.0" + "@docusaurus/theme-translations": "npm:3.10.0" + "@docusaurus/utils": "npm:3.10.0" + "@docusaurus/utils-validation": "npm:3.10.0" algoliasearch: "npm:^5.37.0" algoliasearch-helper: "npm:^3.26.0" clsx: "npm:^2.0.0" @@ -3358,23 +3328,23 @@ __metadata: peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - checksum: 10/e2623c11c69a40eaec8cbf76e4b19444c0929ee47a899882dc0b5e314153e64aa1ed64b7a0ea0b182bdf418e616191a147e5ff5ff9679efec761e0757d7a0825 + checksum: 10/d7e1afb3459d14c16fc3c66f4bc617fa7c9dc0e4ca5ada269c153cf08c91a66526c23b7e5ea607fc44f9f5f31549e109bd8f74b197020cf9ce5a5bc58e6c7773 languageName: node linkType: hard -"@docusaurus/theme-translations@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/theme-translations@npm:3.9.2" +"@docusaurus/theme-translations@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/theme-translations@npm:3.10.0" dependencies: fs-extra: "npm:^11.1.1" tslib: "npm:^2.6.0" - checksum: 10/a98b5a7b1d7f123b5609caadea4000b4ee956426396d4a62ce675bd1e0fe7fd65be3bba2ef97b2ec3f84bafd65fd53d1d55d3a35c585ddc7288ebca199c5a865 + checksum: 10/3181469e799574995d90343b4c29549d6050b06ae7b8d7246da07d4eecd0edac22526883e333298b323b046c87606e7ff696acd9a696e755d77a5789b6ca71d6 languageName: node linkType: hard -"@docusaurus/types@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/types@npm:3.9.2" +"@docusaurus/types@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/types@npm:3.10.0" dependencies: "@mdx-js/mdx": "npm:^3.0.0" "@types/history": "npm:^4.7.11" @@ -3389,45 +3359,45 @@ __metadata: peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - checksum: 10/bc91d05a206de008bfb301873877dd531b361d64a40d1301106a6952901bb3662d349e0e0c9af9e40ff1b6c7764741cc86e15e4d116c1b7d7f065dde0e8e38e1 + checksum: 10/93bca66d61e53b61aefd096e0cc3bb473469b65fe0d7cda7a0a0478bf08f4fd690c2b5c840cd21ac73864b7fec54a012d8d4ab5243543c56d8aedd346d462396 languageName: node linkType: hard -"@docusaurus/utils-common@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/utils-common@npm:3.9.2" +"@docusaurus/utils-common@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/utils-common@npm:3.10.0" dependencies: - "@docusaurus/types": "npm:3.9.2" + "@docusaurus/types": "npm:3.10.0" tslib: "npm:^2.6.0" - checksum: 10/77e01da05ebbf202343b3131ffaba7132c764ccc0ab48dd4421535c75a59e2d4a1dcaf8471cde257b5394528ada52f79da6398f6f2eb9fde79904be736f19275 + checksum: 10/9ac7f6eff02b38d8eedafc9c5ec94ac6e449aa6a39649ad85b573a442d64c54bb88b7a204c05858fffc6ad51ebc6899c56584f4b2a9030e0470c00e6da90a10f languageName: node linkType: hard -"@docusaurus/utils-validation@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/utils-validation@npm:3.9.2" +"@docusaurus/utils-validation@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/utils-validation@npm:3.10.0" dependencies: - "@docusaurus/logger": "npm:3.9.2" - "@docusaurus/utils": "npm:3.9.2" - "@docusaurus/utils-common": "npm:3.9.2" + "@docusaurus/logger": "npm:3.10.0" + "@docusaurus/utils": "npm:3.10.0" + "@docusaurus/utils-common": "npm:3.10.0" fs-extra: "npm:^11.2.0" joi: "npm:^17.9.2" js-yaml: "npm:^4.1.0" lodash: "npm:^4.17.21" tslib: "npm:^2.6.0" - checksum: 10/d8a853d7e79efd986be4dd3eb575ac287b58aa2363086742856671bace480f3ee35920634057d661fba2bda5992c7d45ac5dc021d77e5882e356d735e428e60f + checksum: 10/0b51f881fbacd56982945f1209caafbc827e0da096f2fcc1afd67dd81baf81b4f337a3cad2fcc6c80525e057fcb75e27e87e92fdedc96b008f39b7ae81d458d7 languageName: node linkType: hard -"@docusaurus/utils@npm:3.9.2": - version: 3.9.2 - resolution: "@docusaurus/utils@npm:3.9.2" +"@docusaurus/utils@npm:3.10.0": + version: 3.10.0 + resolution: "@docusaurus/utils@npm:3.10.0" dependencies: - "@docusaurus/logger": "npm:3.9.2" - "@docusaurus/types": "npm:3.9.2" - "@docusaurus/utils-common": "npm:3.9.2" + "@docusaurus/logger": "npm:3.10.0" + "@docusaurus/types": "npm:3.10.0" + "@docusaurus/utils-common": "npm:3.10.0" escape-string-regexp: "npm:^4.0.0" - execa: "npm:5.1.1" + execa: "npm:^5.1.1" file-loader: "npm:^6.2.0" fs-extra: "npm:^11.1.1" github-slugger: "npm:^1.5.0" @@ -3444,7 +3414,7 @@ __metadata: url-loader: "npm:^4.1.1" utility-types: "npm:^3.10.0" webpack: "npm:^5.88.1" - checksum: 10/bb4f24acd4fb2d998186d4bd315c5bb481e6afa3a1dfaa549bb52e2b0d4cb94bc9f635bd897690838cc812a0cff3a30cf3ab713b2d74221902b58c2214ce5268 + checksum: 10/04f0dbbf7b1239e4a47fc16a668395941b5744adc4728959c9cdddef5b6134e02502957e9f443933329e3fd9b5abcf8aff0c2599522048aff6b9be4dd18d6057 languageName: node linkType: hard @@ -3692,14 +3662,14 @@ __metadata: languageName: node linkType: hard -"@eslint/config-array@npm:^0.21.1": - version: 0.21.1 - resolution: "@eslint/config-array@npm:0.21.1" +"@eslint/config-array@npm:^0.21.2": + version: 0.21.2 + resolution: "@eslint/config-array@npm:0.21.2" dependencies: "@eslint/object-schema": "npm:^2.1.7" debug: "npm:^4.3.1" - minimatch: "npm:^3.1.2" - checksum: 10/6eaa0435972f735ce52d581f355a0b616e50a9b8a73304a7015398096e252798b9b3b968a67b524eefb0fdeacc57c4d960f0ec6432abe1c1e24be815b88c5d18 + minimatch: "npm:^3.1.5" + checksum: 10/148477ba995cf57fc725601916d5a7914aa249112d8bec2c3ac9122e2b2f540e6ef013ff4f6785346a4b565f09b20db127fa6f7322f5ffbdb3f1f8d2078a531c languageName: node linkType: hard @@ -3730,27 +3700,27 @@ __metadata: languageName: node linkType: hard -"@eslint/eslintrc@npm:^3.3.1": - version: 3.3.3 - resolution: "@eslint/eslintrc@npm:3.3.3" +"@eslint/eslintrc@npm:^3.3.5": + version: 3.3.5 + resolution: "@eslint/eslintrc@npm:3.3.5" dependencies: - ajv: "npm:^6.12.4" + ajv: "npm:^6.14.0" debug: "npm:^4.3.2" espree: "npm:^10.0.1" globals: "npm:^14.0.0" ignore: "npm:^5.2.0" import-fresh: "npm:^3.2.1" js-yaml: "npm:^4.1.1" - minimatch: "npm:^3.1.2" + minimatch: "npm:^3.1.5" strip-json-comments: "npm:^3.1.1" - checksum: 10/b586a364ff15ce1b68993aefc051ca330b1fece15fb5baf4a708d00113f9a14895cffd84a5f24c5a97bd4b4321130ab2314f90aa462a250f6b859c2da2cba1f3 + checksum: 10/edabb65693d82a88cac3b2cf932a0f825e986b5e0a21ef08782d07e3a61ad87d39db67cfd5aeb146fd5053e5e24e389dbe5649ab22936a71d633c7b32a7e6d86 languageName: node linkType: hard -"@eslint/js@npm:9.39.2": - version: 9.39.2 - resolution: "@eslint/js@npm:9.39.2" - checksum: 10/6b7f676746f3111b5d1b23715319212ab9297868a0fa9980d483c3da8965d5841673aada2d5653e85a3f7156edee0893a7ae7035211b4efdcb2848154bb947f2 +"@eslint/js@npm:9.39.4": + version: 9.39.4 + resolution: "@eslint/js@npm:9.39.4" + checksum: 10/0a7ab4c4108cf2cadf66849ebd20f5957cc53052b88d8807d0b54e489dbf6ffcaf741e144e7f9b187c395499ce2e6ddc565dbfa4f60c6df455cf2b30bcbdc5a3 languageName: node linkType: hard @@ -3833,45 +3803,45 @@ __metadata: languageName: node linkType: hard -"@fortawesome/fontawesome-common-types@npm:7.1.0": - version: 7.1.0 - resolution: "@fortawesome/fontawesome-common-types@npm:7.1.0" - checksum: 10/cf13595f54a7cb3e1e123032a2b34b939bacac300db25faa972da391b1bba7129beb1f929d6866a4b2aa28ac75b20a10a2b1a04e977c0948eceb5ff4c888663e +"@fortawesome/fontawesome-common-types@npm:7.2.0": + version: 7.2.0 + resolution: "@fortawesome/fontawesome-common-types@npm:7.2.0" + checksum: 10/db10ca0b4ceed3226a477a7d424ae1ccb2d65cf0dd868bdc767978a6234b2d30b85197b1f4665e8b6333bdc05a204ed6d154844261e071679c5af6b1d2ebbf06 languageName: node linkType: hard -"@fortawesome/fontawesome-free@npm:^7.1.0": - version: 7.1.0 - resolution: "@fortawesome/fontawesome-free@npm:7.1.0" - checksum: 10/7a7bbb470b2de4e2764b4f9cc91703c5e1d5f430c834353035ef7aecba278cc9b5e2917ddaa7f1c28445530216543b3aa37598f56bb16576395fa060cbb33323 +"@fortawesome/fontawesome-free@npm:^7.2.0": + version: 7.2.0 + resolution: "@fortawesome/fontawesome-free@npm:7.2.0" + checksum: 10/a5c1aedc57017d57f7d836ab453b797c8423a11db4f06eae892f84544fa2a9c1efe322e47d49f83113552d4ddb104cab831bfaa8dc41ea782f8346553fa4c83f languageName: node linkType: hard -"@fortawesome/fontawesome-svg-core@npm:^7.1.0": - version: 7.1.0 - resolution: "@fortawesome/fontawesome-svg-core@npm:7.1.0" +"@fortawesome/fontawesome-svg-core@npm:^7.2.0": + version: 7.2.0 + resolution: "@fortawesome/fontawesome-svg-core@npm:7.2.0" dependencies: - "@fortawesome/fontawesome-common-types": "npm:7.1.0" - checksum: 10/a6137c120d2009df445e72e07e1b9fba923847fc7a3d2429a216fb09ee444aaf7904d9e89c90a1aea47876381437041e42837bb2c4f5a1c758f1424218157bb8 + "@fortawesome/fontawesome-common-types": "npm:7.2.0" + checksum: 10/2f02236e58ca8506a18eb6ff26be8e9ad74e3cd4621db26d89dbc268e7a5245dbc269ca35ac81b92af6442eaef6b9ab44ee837f819fe94ea95462539ad02037c languageName: node linkType: hard -"@fortawesome/free-solid-svg-icons@npm:^7.1.0": - version: 7.1.0 - resolution: "@fortawesome/free-solid-svg-icons@npm:7.1.0" +"@fortawesome/free-solid-svg-icons@npm:^7.2.0": + version: 7.2.0 + resolution: "@fortawesome/free-solid-svg-icons@npm:7.2.0" dependencies: - "@fortawesome/fontawesome-common-types": "npm:7.1.0" - checksum: 10/302548ff3fd45272eb927c87c26d555cebfecdbd0744177f24a47b1743eb73f10c6e8017fc9e2eab560851e4a396a2a2be07b1e75e8c7fe7215c1d7629133f02 + "@fortawesome/fontawesome-common-types": "npm:7.2.0" + checksum: 10/640f690e04f40e14c37a2602a3c88793b7b63a250951b591a356aa143ce65d30b16449e4dbd33a50e6c90d2538958360cde0ebd657396f99f0b3ae34df496cfe languageName: node linkType: hard -"@fortawesome/react-fontawesome@npm:^3.1.1": - version: 3.1.1 - resolution: "@fortawesome/react-fontawesome@npm:3.1.1" +"@fortawesome/react-fontawesome@npm:^3.3.1": + version: 3.3.1 + resolution: "@fortawesome/react-fontawesome@npm:3.3.1" peerDependencies: "@fortawesome/fontawesome-svg-core": ~6 || ~7 react: ^18.0.0 || ^19.0.0 - checksum: 10/23f39153719933b58010d52b1c3bc91bf1bb4b925a6c62f97c94fb08b33dba18f1203aabca287b14bf6f35b78bfb3264ff29ae9e79b35e4ae5390a15ea02d0a7 + checksum: 10/e099a5721099f1cf59d61fa21ce0ad6473be782470781574aa3c21136263f44d067e15dae4a4e273876ca3b3f16df6a099f93a4ed9c0a717223dffa66bb57da7 languageName: node linkType: hard @@ -4450,131 +4420,130 @@ __metadata: languageName: node linkType: hard -"@jest/console@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/console@npm:30.2.0" +"@jest/console@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/console@npm:30.3.0" dependencies: - "@jest/types": "npm:30.2.0" + "@jest/types": "npm:30.3.0" "@types/node": "npm:*" chalk: "npm:^4.1.2" - jest-message-util: "npm:30.2.0" - jest-util: "npm:30.2.0" + jest-message-util: "npm:30.3.0" + jest-util: "npm:30.3.0" slash: "npm:^3.0.0" - checksum: 10/7cda9793962afa5c7fcfdde0ff5012694683b17941ee3c6a55ea9fd9a02f1c51ec4b4c767b867e1226f85a26af1d0f0d72c6a344e34c5bc4300312ebffd6e50b + checksum: 10/aa23c9d77975b7c547190394272454e3563fbf0f99e7170f8b3f8128d83aaa62ad2d07291633e0ec1d4aee7e256dcf0b254bd391cdcd039d0ce6eac6ca835b24 languageName: node linkType: hard -"@jest/core@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/core@npm:30.2.0" +"@jest/core@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/core@npm:30.3.0" dependencies: - "@jest/console": "npm:30.2.0" + "@jest/console": "npm:30.3.0" "@jest/pattern": "npm:30.0.1" - "@jest/reporters": "npm:30.2.0" - "@jest/test-result": "npm:30.2.0" - "@jest/transform": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/reporters": "npm:30.3.0" + "@jest/test-result": "npm:30.3.0" + "@jest/transform": "npm:30.3.0" + "@jest/types": "npm:30.3.0" "@types/node": "npm:*" ansi-escapes: "npm:^4.3.2" chalk: "npm:^4.1.2" ci-info: "npm:^4.2.0" exit-x: "npm:^0.2.2" graceful-fs: "npm:^4.2.11" - jest-changed-files: "npm:30.2.0" - jest-config: "npm:30.2.0" - jest-haste-map: "npm:30.2.0" - jest-message-util: "npm:30.2.0" + jest-changed-files: "npm:30.3.0" + jest-config: "npm:30.3.0" + jest-haste-map: "npm:30.3.0" + jest-message-util: "npm:30.3.0" jest-regex-util: "npm:30.0.1" - jest-resolve: "npm:30.2.0" - jest-resolve-dependencies: "npm:30.2.0" - jest-runner: "npm:30.2.0" - jest-runtime: "npm:30.2.0" - jest-snapshot: "npm:30.2.0" - jest-util: "npm:30.2.0" - jest-validate: "npm:30.2.0" - jest-watcher: "npm:30.2.0" - micromatch: "npm:^4.0.8" - pretty-format: "npm:30.2.0" + jest-resolve: "npm:30.3.0" + jest-resolve-dependencies: "npm:30.3.0" + jest-runner: "npm:30.3.0" + jest-runtime: "npm:30.3.0" + jest-snapshot: "npm:30.3.0" + jest-util: "npm:30.3.0" + jest-validate: "npm:30.3.0" + jest-watcher: "npm:30.3.0" + pretty-format: "npm:30.3.0" slash: "npm:^3.0.0" peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: node-notifier: optional: true - checksum: 10/6763bb1efd937778f009821cd94c3705d3c31a156258a224b8745c1e0887976683f5413745ffb361b526f0fa2692e36aaa963aa197cc77ba932cff9d6d28af9d + checksum: 10/76f8561686e3bbaf2fcdc9c2391d47fef403e5fe0a936a48762ca60bcaf18692b5d2f8e5e26610cc43e965a6b120458dc9a7484e7e8ffb459118b61a90c2063d languageName: node linkType: hard -"@jest/diff-sequences@npm:30.0.1": - version: 30.0.1 - resolution: "@jest/diff-sequences@npm:30.0.1" - checksum: 10/0ddb7c7ba92d6057a2ee51a9cfc2155b77cca707fe959167466ea02dcb0687018cc3c22b9622f25f3a417d6ad370e2d4dcfedf9f1410dc9c02954a7484423cc7 +"@jest/diff-sequences@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/diff-sequences@npm:30.3.0" + checksum: 10/0d5b6e1599c5e0bb702f0804e7f93bbe4911b5929c40fd6a77c06105711eae24d709c8964e8d623cc70c34b7dc7262d76a115a6eb05f1576336cdb6c46593e7c languageName: node linkType: hard -"@jest/environment-jsdom-abstract@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/environment-jsdom-abstract@npm:30.2.0" +"@jest/environment-jsdom-abstract@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/environment-jsdom-abstract@npm:30.3.0" dependencies: - "@jest/environment": "npm:30.2.0" - "@jest/fake-timers": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/environment": "npm:30.3.0" + "@jest/fake-timers": "npm:30.3.0" + "@jest/types": "npm:30.3.0" "@types/jsdom": "npm:^21.1.7" "@types/node": "npm:*" - jest-mock: "npm:30.2.0" - jest-util: "npm:30.2.0" + jest-mock: "npm:30.3.0" + jest-util: "npm:30.3.0" peerDependencies: canvas: ^3.0.0 jsdom: "*" peerDependenciesMeta: canvas: optional: true - checksum: 10/65a9c8504f213f4d125956383ffe6c4e566cfb0ff2fe67783adf9ebde33f772339e61fdd98ddc2bbae3029e3356d2386abedb9d101aa95d6fd51fabac38bebe0 + checksum: 10/e6f7f36bd3054990b6fe98cb3b837df2bc8057c8db72d0776edae18b89711646f11d81c9f8863ce8bc3e539155002875fe5a8de3bd9aeebf6b099239d0479264 languageName: node linkType: hard -"@jest/environment@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/environment@npm:30.2.0" +"@jest/environment@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/environment@npm:30.3.0" dependencies: - "@jest/fake-timers": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/fake-timers": "npm:30.3.0" + "@jest/types": "npm:30.3.0" "@types/node": "npm:*" - jest-mock: "npm:30.2.0" - checksum: 10/e168a4ff328980eb9fde5e43aea80807fd0b2dbd4579ae8f68a03415a1e58adf5661db298054fa2351c7cb2b5a74bf67b8ab996656cf5927d0b0d0b6e2c2966b + jest-mock: "npm:30.3.0" + checksum: 10/9b64add2e5430411ca997aed23cd34786d0e87562f5930ad0d4160df51435ae061809fcaa6bbc6c0ff9f0ba5f1241a5ce9a32ec772fa1d7c6b022f0169b622a4 languageName: node linkType: hard -"@jest/expect-utils@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/expect-utils@npm:30.2.0" +"@jest/expect-utils@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/expect-utils@npm:30.3.0" dependencies: "@jest/get-type": "npm:30.1.0" - checksum: 10/f2442f1bceb3411240d0f16fd0074377211b4373d3b8b2dc28929e861b6527a6deb403a362c25afa511d933cda4dfbdc98d4a08eeb51ee4968f7cb0299562349 + checksum: 10/766fd24f527a13004c542c2642b68b9142270801ab20bd448a559d9c2f40af079d0eb9ec9520a47f97b4d6c7d0837ba46e86284f53c939f11d9fcbda73a11e19 languageName: node linkType: hard -"@jest/expect@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/expect@npm:30.2.0" +"@jest/expect@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/expect@npm:30.3.0" dependencies: - expect: "npm:30.2.0" - jest-snapshot: "npm:30.2.0" - checksum: 10/d950d95a64d5c6a39d56171dabb8dbe59423096231bb4f21d8ee0019878e6626701ac9d782803dc2589e2799ed39704031f818533f8a3e571b57032eafa85d12 + expect: "npm:30.3.0" + jest-snapshot: "npm:30.3.0" + checksum: 10/74832945a2b18c7b962b27e0ca4d25d19a29d1c3ca6fe4a9c23946025b4146799e62a81d50060ac7bcaf7036fb477aa350ddf300e215333b42d013a3d9f8ba2b languageName: node linkType: hard -"@jest/fake-timers@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/fake-timers@npm:30.2.0" +"@jest/fake-timers@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/fake-timers@npm:30.3.0" dependencies: - "@jest/types": "npm:30.2.0" - "@sinonjs/fake-timers": "npm:^13.0.0" + "@jest/types": "npm:30.3.0" + "@sinonjs/fake-timers": "npm:^15.0.0" "@types/node": "npm:*" - jest-message-util: "npm:30.2.0" - jest-mock: "npm:30.2.0" - jest-util: "npm:30.2.0" - checksum: 10/c2df66576ba8049b07d5f239777243e21fcdaa09a446be1e55fac709d6273e2a926c1562e0372c3013142557ed9d386381624023549267a667b6e1b656e37fe6 + jest-message-util: "npm:30.3.0" + jest-mock: "npm:30.3.0" + jest-util: "npm:30.3.0" + checksum: 10/e39d30b61ae85485bfa0b1d86d62d866d33964bf0b95b8b4f45d2f1f1baa94fd7e134c7729370a58cb67b58d2b860fb396290b5c271782ed4d3728341027549b languageName: node linkType: hard @@ -4585,15 +4554,15 @@ __metadata: languageName: node linkType: hard -"@jest/globals@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/globals@npm:30.2.0" +"@jest/globals@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/globals@npm:30.3.0" dependencies: - "@jest/environment": "npm:30.2.0" - "@jest/expect": "npm:30.2.0" - "@jest/types": "npm:30.2.0" - jest-mock: "npm:30.2.0" - checksum: 10/d4a331d3847cebb3acefe120350d8a6bb5517c1403de7cd2b4dc67be425f37ba0511beee77d6837b4da2d93a25a06d6f829ad7837da365fae45e1da57523525c + "@jest/environment": "npm:30.3.0" + "@jest/expect": "npm:30.3.0" + "@jest/types": "npm:30.3.0" + jest-mock: "npm:30.3.0" + checksum: 10/485bdc0f35faf3e76cb451b75e16892d87f7ab5757e290b1a9e849a3af0ef81c47abddb188fbc0442a4689514cf0551e34d13970c9cf03610a269c39f800ff46 languageName: node linkType: hard @@ -4607,30 +4576,30 @@ __metadata: languageName: node linkType: hard -"@jest/reporters@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/reporters@npm:30.2.0" +"@jest/reporters@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/reporters@npm:30.3.0" dependencies: "@bcoe/v8-coverage": "npm:^0.2.3" - "@jest/console": "npm:30.2.0" - "@jest/test-result": "npm:30.2.0" - "@jest/transform": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/console": "npm:30.3.0" + "@jest/test-result": "npm:30.3.0" + "@jest/transform": "npm:30.3.0" + "@jest/types": "npm:30.3.0" "@jridgewell/trace-mapping": "npm:^0.3.25" "@types/node": "npm:*" chalk: "npm:^4.1.2" collect-v8-coverage: "npm:^1.0.2" exit-x: "npm:^0.2.2" - glob: "npm:^10.3.10" + glob: "npm:^10.5.0" graceful-fs: "npm:^4.2.11" istanbul-lib-coverage: "npm:^3.0.0" istanbul-lib-instrument: "npm:^6.0.0" istanbul-lib-report: "npm:^3.0.0" istanbul-lib-source-maps: "npm:^5.0.0" istanbul-reports: "npm:^3.1.3" - jest-message-util: "npm:30.2.0" - jest-util: "npm:30.2.0" - jest-worker: "npm:30.2.0" + jest-message-util: "npm:30.3.0" + jest-util: "npm:30.3.0" + jest-worker: "npm:30.3.0" slash: "npm:^3.0.0" string-length: "npm:^4.0.2" v8-to-istanbul: "npm:^9.0.1" @@ -4639,7 +4608,7 @@ __metadata: peerDependenciesMeta: node-notifier: optional: true - checksum: 10/3848b59bf740c10c4e5c234dcc41c54adbd74932bf05d1d1582d09d86e9baa86ddaf3c43903505fd042ba1203c2889a732137d08058ce9dc0069ba33b5d5373d + checksum: 10/50cc20d9e908239352c5c6bc594c2880e30e16db6f8c0657513d1a46e3a761ed20464afa604af35bc72cbca0eac6cd34829c075513ecf725af03161a7662097e languageName: node linkType: hard @@ -4661,15 +4630,15 @@ __metadata: languageName: node linkType: hard -"@jest/snapshot-utils@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/snapshot-utils@npm:30.2.0" +"@jest/snapshot-utils@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/snapshot-utils@npm:30.3.0" dependencies: - "@jest/types": "npm:30.2.0" + "@jest/types": "npm:30.3.0" chalk: "npm:^4.1.2" graceful-fs: "npm:^4.2.11" natural-compare: "npm:^1.4.0" - checksum: 10/6b30ab2b0682117e3ce775e70b5be1eb01e1ea53a74f12ac7090cd1a5f37e9b795cd8de83853afa7b4b799c96b1c482499aa993ca2034ea0679525d32b7f9625 + checksum: 10/2214d4f0f33d2363a0785c0ba75066bf4ed4beefd5b2d2a5c3124d66ab92f91163f03696be625223bdb0527f1e6360c4b306ba9ae421aeb966d4a57d6d972099 languageName: node linkType: hard @@ -4684,56 +4653,55 @@ __metadata: languageName: node linkType: hard -"@jest/test-result@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/test-result@npm:30.2.0" +"@jest/test-result@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/test-result@npm:30.3.0" dependencies: - "@jest/console": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/console": "npm:30.3.0" + "@jest/types": "npm:30.3.0" "@types/istanbul-lib-coverage": "npm:^2.0.6" collect-v8-coverage: "npm:^1.0.2" - checksum: 10/f58f79c3c3ba6dd15325e05b0b5a300777cd8cc38327f622608b6fe849b1073ee9633e33d1e5d7ef5b97a1ce71543d0ad92674b7a279f53033143e8dd7c22959 + checksum: 10/89bed2adc8077e592deb74e4a9bd6c1d937c1ae18805b3b4e799d00276ab91a4974b7dc1f38dc12a5da7712ef0ba2e63c69245696e63f4a7b292fc79bb3981b7 languageName: node linkType: hard -"@jest/test-sequencer@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/test-sequencer@npm:30.2.0" +"@jest/test-sequencer@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/test-sequencer@npm:30.3.0" dependencies: - "@jest/test-result": "npm:30.2.0" + "@jest/test-result": "npm:30.3.0" graceful-fs: "npm:^4.2.11" - jest-haste-map: "npm:30.2.0" + jest-haste-map: "npm:30.3.0" slash: "npm:^3.0.0" - checksum: 10/7923964b27048b2233858b32aa1b34d4dd9e404311626d944a706bcdcaa0b1585f43f2ffa3fa893ecbf133566f31ba2b79ab5eaaaf674b8558c6c7029ecbea5e + checksum: 10/d2a593733b029bae5e1a60249fb8ced2fa701e2b336b69de4cd0a1e0008f4373ab1329422f819e209d1d95a29959bd0cc131c7f94c9ad8f3831833f79a08f997 languageName: node linkType: hard -"@jest/transform@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/transform@npm:30.2.0" +"@jest/transform@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/transform@npm:30.3.0" dependencies: "@babel/core": "npm:^7.27.4" - "@jest/types": "npm:30.2.0" + "@jest/types": "npm:30.3.0" "@jridgewell/trace-mapping": "npm:^0.3.25" babel-plugin-istanbul: "npm:^7.0.1" chalk: "npm:^4.1.2" convert-source-map: "npm:^2.0.0" fast-json-stable-stringify: "npm:^2.1.0" graceful-fs: "npm:^4.2.11" - jest-haste-map: "npm:30.2.0" + jest-haste-map: "npm:30.3.0" jest-regex-util: "npm:30.0.1" - jest-util: "npm:30.2.0" - micromatch: "npm:^4.0.8" + jest-util: "npm:30.3.0" pirates: "npm:^4.0.7" slash: "npm:^3.0.0" write-file-atomic: "npm:^5.0.1" - checksum: 10/c75d72d524c2a50ea6c05778a9b76a6e48bc228a3390896a6edd4416f7b4954ee0a07e229ed7b4949ce8889324b70034c784751e3fc455a25648bd8dcad17d0d + checksum: 10/279b6b73f59c274d7011febcbc0a1fa8939e8f677801a0a9bd95b9cf49244957267f3769c8cd541ae8026d8176089cd5e55f0f8d5361ec7788970978f4f394b4 languageName: node linkType: hard -"@jest/types@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/types@npm:30.2.0" +"@jest/types@npm:30.3.0": + version: 30.3.0 + resolution: "@jest/types@npm:30.3.0" dependencies: "@jest/pattern": "npm:30.0.1" "@jest/schemas": "npm:30.0.5" @@ -4742,7 +4710,7 @@ __metadata: "@types/node": "npm:*" "@types/yargs": "npm:^17.0.33" chalk: "npm:^4.1.2" - checksum: 10/f50fcaea56f873a51d19254ab16762f2ea8ca88e3e08da2e496af5da2b67c322915a4fcd0153803cc05063ffe87ebef2ab4330e0a1b06ab984a26c916cbfc26b + checksum: 10/d6943cc270f07c7bc1ee6f3bb9ad1263ce7897d1a282221bf1d27499d77f2a68cfa6625ca73c193d3f81fe22a8e00635cd7acb5e73a546965c172219c81ec12c languageName: node linkType: hard @@ -4959,9 +4927,9 @@ __metadata: languageName: node linkType: hard -"@koa/router@npm:^15.3.0": - version: 15.3.0 - resolution: "@koa/router@npm:15.3.0" +"@koa/router@npm:^15.4.0": + version: 15.4.0 + resolution: "@koa/router@npm:15.4.0" dependencies: debug: "npm:^4.4.3" http-errors: "npm:^2.0.1" @@ -4972,7 +4940,7 @@ __metadata: peerDependenciesMeta: koa: optional: false - checksum: 10/5f2679916514c28a1694ec3c0eac1b869c21d5527a4fdc4b248b3f4c595010389973401eadf6ff3f5c26d24ee84a391325880de51320f1965f917a21120d2899 + checksum: 10/03332e1700ef812a5b89e941b3050b027bc71cfbaee3240f63d3763f93d3a6c740f81f09a19a1c45decaac4b477fecf146773168819e1537a22ade198324c702 languageName: node linkType: hard @@ -5165,14 +5133,14 @@ __metadata: languageName: node linkType: hard -"@nestjs/core@npm:11.1.17": - version: 11.1.17 - resolution: "@nestjs/core@npm:11.1.17" +"@nestjs/core@npm:11.1.18": + version: 11.1.18 + resolution: "@nestjs/core@npm:11.1.18" dependencies: "@nuxt/opencollective": "npm:0.4.1" fast-safe-stringify: "npm:2.1.1" iterare: "npm:1.2.1" - path-to-regexp: "npm:8.3.0" + path-to-regexp: "npm:8.4.2" tslib: "npm:2.8.1" uid: "npm:2.0.2" peerDependencies: @@ -5189,7 +5157,7 @@ __metadata: optional: true "@nestjs/websockets": optional: true - checksum: 10/287e14b4d4a662071c9ad41d8f864010561108241da4c2b9df2f7d41962a0a9e5be6e5bcdf9b04087955ef62b7ff56f4c892da25827566dbe5bd06a921c39f8a + checksum: 10/522775660e9111df51294d82ac1ab63ea6b7ebc1edbb45a79c6471cdf33205bd1bb4f6058d284c5ab7b480e25c4da71763a89595112cb6d958786f6f76c87a1e languageName: node linkType: hard @@ -5970,16 +5938,16 @@ __metadata: languageName: node linkType: hard -"@openapitools/openapi-generator-cli@npm:^2.28.0": - version: 2.31.0 - resolution: "@openapitools/openapi-generator-cli@npm:2.31.0" +"@openapitools/openapi-generator-cli@npm:^2.31.1": + version: 2.31.1 + resolution: "@openapitools/openapi-generator-cli@npm:2.31.1" dependencies: "@inquirer/select": "npm:1.3.3" "@nestjs/axios": "npm:4.0.1" "@nestjs/common": "npm:11.1.17" - "@nestjs/core": "npm:11.1.17" + "@nestjs/core": "npm:11.1.18" "@nuxtjs/opencollective": "npm:0.3.2" - axios: "npm:^1.13.6" + axios: "npm:^1.14.0" chalk: "npm:4.1.2" commander: "npm:8.3.0" compare-versions: "npm:6.1.1" @@ -5993,11 +5961,11 @@ __metadata: tslib: "npm:2.8.1" bin: openapi-generator-cli: main.js - checksum: 10/8b09cd463eaf748f65a8a5cd93b07f507e945e1389192f5f169db8e42baf5a207e6f3cfa47593dc2c77b2af3981370744261b757b95edbe19f16e5e619946b82 + checksum: 10/4876d7792bec23aa7ebdf9be0ba639a153098b5d93ef97a0aa7aadef13dfe93eecf80757be669253d6d4ebfb47b772fc7c9d3b2b2f788cf064d9bc3f77f65030 languageName: node linkType: hard -"@opentelemetry/api@npm:1.9.0, @opentelemetry/api@npm:^1.4.0, @opentelemetry/api@npm:^1.4.1": +"@opentelemetry/api@npm:^1.4.0, @opentelemetry/api@npm:^1.4.1": version: 1.9.0 resolution: "@opentelemetry/api@npm:1.9.0" checksum: 10/a607f0eef971893c4f2ee2a4c2069aade6ec3e84e2a1f5c2aac19f65c5d9eeea41aa72db917c1029faafdd71789a1a040bdc18f40d63690e22ccae5d7070f194 @@ -6047,6 +6015,13 @@ __metadata: languageName: node linkType: hard +"@ota-meshi/ast-token-store@npm:^0.3.0": + version: 0.3.0 + resolution: "@ota-meshi/ast-token-store@npm:0.3.0" + checksum: 10/665a16eb4ecb0595a88a07301e702336250cd1150fdd02516986fd6853524a36814a04a7934a41025d71c372556d372780dccfbfe56617cedf6b540584965533 + languageName: node + linkType: hard + "@parcel/watcher-android-arm64@npm:2.5.1": version: 2.5.1 resolution: "@parcel/watcher-android-arm64@npm:2.5.1" @@ -6441,10 +6416,10 @@ __metadata: languageName: node linkType: hard -"@rolldown/pluginutils@npm:1.0.0-rc.2": - version: 1.0.0-rc.2 - resolution: "@rolldown/pluginutils@npm:1.0.0-rc.2" - checksum: 10/8dba3626ca26f49ed83d4db4a9eaacfcc6715cc8544f2969419489c90a2bb000025976049e0f6c5c2880817bff753fb04bec8fb57df9423f07958ce8da97035e +"@rolldown/pluginutils@npm:1.0.0-rc.3": + version: 1.0.0-rc.3 + resolution: "@rolldown/pluginutils@npm:1.0.0-rc.3" + checksum: 10/b181a693b70e0e5de736458d46b31f72862cd7f36f955656f61ccbf4de11d9206bc3b55404317a65e5714559490444e9fdd83b4097706496e96b082fb584d049 languageName: node linkType: hard @@ -6969,30 +6944,30 @@ __metadata: languageName: node linkType: hard -"@sinonjs/fake-timers@npm:^13.0.0": - version: 13.0.5 - resolution: "@sinonjs/fake-timers@npm:13.0.5" +"@sinonjs/fake-timers@npm:^15.0.0": + version: 15.3.2 + resolution: "@sinonjs/fake-timers@npm:15.3.2" dependencies: "@sinonjs/commons": "npm:^3.0.1" - checksum: 10/11ee417968fc4dce1896ab332ac13f353866075a9d2a88ed1f6258f17cc4f7d93e66031b51fcddb8c203aa4d53fd980b0ae18aba06269f4682164878a992ec3f + checksum: 10/270a0f440bbcee2ad3fbe50b3c3cf311afd82e3cfcdff9572485fc17948b66c2cdfc5c906d64884ec623eced97ceb23c7639c3066ad4696976acf9f63a93c4c8 languageName: node linkType: hard -"@slack/types@npm:^2.9.0": - version: 2.14.0 - resolution: "@slack/types@npm:2.14.0" - checksum: 10/fa24a113b88e087f899078504c2ba50ab9795f7c2dd1a2d95b28217a3af20e554494f9cc3b8c8ce173120990d98e19400c95369f9067cecfcc46c08b59d2a46f +"@slack/types@npm:^2.20.1": + version: 2.20.1 + resolution: "@slack/types@npm:2.20.1" + checksum: 10/5d13017df8c8468f34e4d24579a26f5ada934a6b7139e88d894c7d1d14f47da826a20c08e2537c6ab74d7624a4b193dc2b34458bae6466173fad1fd5c053b6f6 languageName: node linkType: hard -"@slack/webhook@npm:^7.0.6": - version: 7.0.6 - resolution: "@slack/webhook@npm:7.0.6" +"@slack/webhook@npm:^7.0.9": + version: 7.0.9 + resolution: "@slack/webhook@npm:7.0.9" dependencies: - "@slack/types": "npm:^2.9.0" - "@types/node": "npm:>=18.0.0" - axios: "npm:^1.11.0" - checksum: 10/8f8083f9654e590f04731985b337f576842b2034a9261010f85d813c4e262f69d856c142b0dcf2022bfe69c22c2e97cc7d877a79989cd0f7a0cf2554ae0754ed + "@slack/types": "npm:^2.20.1" + "@types/node": "npm:>=18" + axios: "npm:^1.15.0" + checksum: 10/bf579ddc3c8bfb9937c86b9a66aeafcad6bd8b27b257eb2285c690724ede92ebba4f2dff8a39033fddbabc78ad26ab0472ec9b5775d9cc5e0b605a0945fb4d5a languageName: node linkType: hard @@ -7027,9 +7002,9 @@ __metadata: languageName: unknown linkType: soft -"@sofie-automation/code-standard-preset@npm:^3.2.1": - version: 3.2.1 - resolution: "@sofie-automation/code-standard-preset@npm:3.2.1" +"@sofie-automation/code-standard-preset@npm:^3.2.2": + version: 3.2.2 + resolution: "@sofie-automation/code-standard-preset@npm:3.2.2" dependencies: "@sofie-automation/eslint-plugin": "npm:0.2.1" "@vitest/eslint-plugin": "npm:^1.6.6" @@ -7050,7 +7025,7 @@ __metadata: bin: sofie-licensecheck: ./bin/checkLicenses.mjs sofie-version: ./bin/updateVersion.mjs - checksum: 10/db31f2aa51b504c86b8a4e4cca9cd6a8a80769d4ed020f84ec2780abb0735a14e465693f8de907fbc9e668e07e04141a95c14caeea0e61916546a576671f34aa + checksum: 10/e930ea2e5dfb6502f121cf25d157c57450d1c96be5c65c4d3b3695ec3251683d1373c1cd189d47daff2b4dc7b7f6854d3fb92e38a21fc03418886707324bcd92 languageName: node linkType: hard @@ -7069,7 +7044,7 @@ __metadata: timecode: "npm:0.0.4" tslib: "npm:^2.8.1" type-fest: "npm:^4.41.0" - underscore: "npm:^1.13.7" + underscore: "npm:^1.13.8" peerDependencies: mongodb: ^6.12.0 languageName: unknown @@ -7091,7 +7066,7 @@ __metadata: version: 0.0.0-use.local resolution: "@sofie-automation/job-worker@workspace:job-worker" dependencies: - "@slack/webhook": "npm:^7.0.6" + "@slack/webhook": "npm:^7.0.9" "@sofie-automation/blueprints-integration": "npm:26.3.0-2" "@sofie-automation/corelib": "npm:26.3.0-2" "@sofie-automation/shared-lib": "npm:26.3.0-2" @@ -7099,17 +7074,17 @@ __metadata: chrono-node: "npm:^2.9.0" deepmerge: "npm:^4.3.1" elastic-apm-node: "npm:^4.15.0" - jest: "npm:^30.2.0" + jest: "npm:^30.3.0" jest-mock-extended: "npm:^4.0.0" mongodb: "npm:^6.21.0" p-lazy: "npm:^3.1.0" p-timeout: "npm:^4.1.0" superfly-timeline: "npm:9.2.0" - threadedclass: "npm:^1.3.0" + threadedclass: "npm:^1.4.0" tslib: "npm:^2.8.1" type-fest: "npm:^4.41.0" typescript: "npm:~5.7.3" - underscore: "npm:^1.13.7" + underscore: "npm:^1.13.8" languageName: unknown linkType: soft @@ -7117,14 +7092,14 @@ __metadata: version: 0.0.0-use.local resolution: "@sofie-automation/live-status-gateway-api@workspace:live-status-gateway-api" dependencies: - "@apidevtools/json-schema-ref-parser": "npm:^15.2.2" + "@apidevtools/json-schema-ref-parser": "npm:^15.3.5" "@asyncapi/generator": "npm:^2.11.0" - "@asyncapi/html-template": "npm:^3.5.4" + "@asyncapi/html-template": "npm:^3.5.6" "@asyncapi/modelina": "npm:^5.10.1" "@asyncapi/nodejs-ws-template": "npm:^0.10.0" "@asyncapi/parser": "npm:^3.6.0" tslib: "npm:^2.8.1" - yaml: "npm:^2.8.2" + yaml: "npm:^2.8.3" languageName: unknown linkType: soft @@ -7140,9 +7115,9 @@ __metadata: "@types/semver": "npm:^7.7.1" "@types/underscore": "npm:^1.13.0" deep-extend: "npm:0.6.0" - semver: "npm:^7.7.3" + semver: "npm:^7.7.4" type-fest: "npm:^4.41.0" - underscore: "npm:^1.13.7" + underscore: "npm:^1.13.8" peerDependencies: i18next: ^21.10.0 mongodb: ^6.12.0 @@ -7153,9 +7128,9 @@ __metadata: version: 0.0.0-use.local resolution: "@sofie-automation/openapi@workspace:openapi" dependencies: - "@apidevtools/json-schema-ref-parser": "npm:^15.2.2" - "@openapitools/openapi-generator-cli": "npm:^2.28.0" - eslint: "npm:^9.39.2" + "@apidevtools/json-schema-ref-parser": "npm:^15.3.5" + "@openapitools/openapi-generator-cli": "npm:^2.31.1" + eslint: "npm:^9.39.4" js-yaml: "npm:^4.1.1" tslib: "npm:^2.8.1" wget-improved: "npm:^3.4.0" @@ -7166,15 +7141,15 @@ __metadata: version: 0.0.0-use.local resolution: "@sofie-automation/server-core-integration@workspace:server-core-integration" dependencies: - "@koa/router": "npm:^15.3.0" + "@koa/router": "npm:^15.4.0" "@sofie-automation/shared-lib": "npm:26.3.0-2" - "@types/koa": "npm:^3.0.1" - "@types/ws": "npm:^8.5.10" + "@types/koa": "npm:^3.0.2" + "@types/ws": "npm:^8.18.1" ejson: "npm:^2.2.3" - koa: "npm:^3.1.1" + koa: "npm:^3.2.0" tslib: "npm:^2.8.1" - underscore: "npm:^1.13.7" - ws: "npm:^8.18.0" + underscore: "npm:^1.13.8" + ws: "npm:^8.20.0" languageName: unknown linkType: soft @@ -7201,11 +7176,11 @@ __metadata: version: 0.0.0-use.local resolution: "@sofie-automation/webui@workspace:webui" dependencies: - "@babel/preset-env": "npm:^7.29.0" - "@fortawesome/fontawesome-free": "npm:^7.1.0" - "@fortawesome/fontawesome-svg-core": "npm:^7.1.0" - "@fortawesome/free-solid-svg-icons": "npm:^7.1.0" - "@fortawesome/react-fontawesome": "npm:^3.1.1" + "@babel/preset-env": "npm:^7.29.2" + "@fortawesome/fontawesome-free": "npm:^7.2.0" + "@fortawesome/fontawesome-svg-core": "npm:^7.2.0" + "@fortawesome/free-solid-svg-icons": "npm:^7.2.0" + "@fortawesome/react-fontawesome": "npm:^3.3.1" "@jstarpl/react-contextmenu": "npm:^2.15.3" "@popperjs/core": "npm:^2.11.8" "@sofie-automation/blueprints-integration": "npm:26.3.0-2" @@ -7220,30 +7195,30 @@ __metadata: "@types/bootstrap": "npm:^5.2.10" "@types/classnames": "npm:^2.3.4" "@types/deep-extend": "npm:^0.6.2" - "@types/react": "npm:^18.3.27" + "@types/react": "npm:^18.3.28" "@types/react-dom": "npm:^18.3.7" "@types/react-router": "npm:^5.1.20" "@types/react-router-bootstrap": "npm:^0.26.8" "@types/react-router-dom": "npm:^5.3.3" "@types/sha.js": "npm:^2.4.4" "@types/xml2js": "npm:^0.4.14" - "@vitejs/plugin-react": "npm:^5.1.3" + "@vitejs/plugin-react": "npm:^5.2.0" "@welldone-software/why-did-you-render": "npm:^4.3.2" - "@xmldom/xmldom": "npm:^0.8.11" - babel-jest: "npm:^30.2.0" + "@xmldom/xmldom": "npm:^0.9.10" + babel-jest: "npm:^30.3.0" bootstrap: "npm:^5.3.8" classnames: "npm:^2.5.1" cubic-spline: "npm:^3.0.3" deep-extend: "npm:0.6.0" ejson: "npm:^2.2.3" - globals: "npm:^17.3.0" + globals: "npm:^17.5.0" i18next: "npm:^21.10.0" - i18next-browser-languagedetector: "npm:^8.2.0" - i18next-http-backend: "npm:^3.0.2" + i18next-browser-languagedetector: "npm:^8.2.1" + i18next-http-backend: "npm:^3.0.5" immutability-helper: "npm:^3.1.1" lottie-react: "npm:^2.4.1" moment: "npm:^2.30.1" - motion: "npm:^12.31.0" + motion: "npm:^12.38.0" promise.allsettled: "npm:^1.0.7" query-string: "npm:^6.14.1" rc-tooltip: "npm:^6.4.0" @@ -7257,18 +7232,18 @@ __metadata: react-hotkeys: "npm:^2.0.0" react-i18next: "npm:^11.18.6" react-intersection-observer: "npm:^9.16.0" - react-moment: "npm:^1.2.1" + react-moment: "npm:^1.2.2" react-popper: "npm:^2.3.0" react-router-bootstrap: "npm:^0.25.0" react-router-dom: "npm:^5.3.4" - sass-embedded: "npm:^1.97.3" - semver: "npm:^7.7.3" + sass-embedded: "npm:^1.99.0" + semver: "npm:^7.7.4" sha.js: "npm:^2.4.12" shuttle-webhid: "npm:^0.1.3" type-fest: "npm:^4.41.0" typescript: "npm:~5.7.3" - underscore: "npm:^1.13.7" - vite: "npm:^7.3.1" + underscore: "npm:^1.13.8" + vite: "npm:^7.3.2" vite-plugin-node-polyfills: "npm:^0.25.0" vite-tsconfig-paths: "npm:^5.1.4" webmidi: "npm:^2.5.3" @@ -7277,13 +7252,6 @@ __metadata: languageName: unknown linkType: soft -"@standard-schema/spec@npm:^1.0.0": - version: 1.0.0 - resolution: "@standard-schema/spec@npm:1.0.0" - checksum: 10/aee780cc1431888ca4b9aba9b24ffc8f3073fc083acc105e3951481478a2f4dc957796931b2da9e2d8329584cf211e4542275f188296c1cdff3ed44fd93a8bc8 - languageName: node - linkType: hard - "@stoplight/better-ajv-errors@npm:1.0.3": version: 1.0.3 resolution: "@stoplight/better-ajv-errors@npm:1.0.3" @@ -8283,12 +8251,12 @@ __metadata: languageName: node linkType: hard -"@types/debug@npm:^4.0.0, @types/debug@npm:^4.1.12": - version: 4.1.12 - resolution: "@types/debug@npm:4.1.12" +"@types/debug@npm:^4.0.0, @types/debug@npm:^4.1.13": + version: 4.1.13 + resolution: "@types/debug@npm:4.1.13" dependencies: "@types/ms": "npm:*" - checksum: 10/47876a852de8240bfdaf7481357af2b88cb660d30c72e73789abf00c499d6bc7cd5e52f41c915d1b9cd8ec9fef5b05688d7b7aef17f7f272c2d04679508d1053 + checksum: 10/5091d4ebda85236e6f4a6ecea552860e521e11d1d388d3f6255b40726f5a4a7cf1baa0d09f60853838e4cac6c12a13b14114d5f422ccecaee4d1d07dab349900 languageName: node linkType: hard @@ -8389,10 +8357,10 @@ __metadata: languageName: node linkType: hard -"@types/gtag.js@npm:^0.0.12": - version: 0.0.12 - resolution: "@types/gtag.js@npm:0.0.12" - checksum: 10/f78217dd0485aa6c34f1e74e21a8fed1f58e1dcaeed7841df12ab2df2438d6015910424307945a886f101176bc95078da859b101666bfbd9437e75b63883fd36 +"@types/gtag.js@npm:^0.0.20": + version: 0.0.20 + resolution: "@types/gtag.js@npm:0.0.20" + checksum: 10/5582c540adaec49e0fdf308e0d9921397257c34371b2d0d5acb00e3775aa1aa44e2b19b2ede4cd8ca1eba1df2e3f54aee56eb82ab147846036d6460e4993c8db languageName: node linkType: hard @@ -8527,9 +8495,9 @@ __metadata: languageName: node linkType: hard -"@types/koa@npm:*, @types/koa@npm:^3.0.1": - version: 3.0.1 - resolution: "@types/koa@npm:3.0.1" +"@types/koa@npm:*, @types/koa@npm:^3.0.2": + version: 3.0.2 + resolution: "@types/koa@npm:3.0.2" dependencies: "@types/accepts": "npm:*" "@types/content-disposition": "npm:*" @@ -8539,7 +8507,7 @@ __metadata: "@types/keygrip": "npm:*" "@types/koa-compose": "npm:*" "@types/node": "npm:*" - checksum: 10/b1581d31d562bb5d9f61bc0148652abffc701c39930eb77a57b7d1f43aaad56ffa1970f6f3d4d6a0a56395a6832e2711a3278850dcc5a6c986ba6ed2cd0f4f1f + checksum: 10/1522fa11ec3520275232b4e054424142a3cdb19e7991673d6371b6cdcb5587d56858098dc196a9580b98174a66326545fc64be98d88652915b21bdebc2905dcf languageName: node linkType: hard @@ -8605,12 +8573,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:>=13.7.0, @types/node@npm:>=18.0.0, @types/node@npm:^22.19.8": - version: 22.19.8 - resolution: "@types/node@npm:22.19.8" +"@types/node@npm:*, @types/node@npm:>=13.7.0, @types/node@npm:>=18": + version: 25.6.0 + resolution: "@types/node@npm:25.6.0" dependencies: - undici-types: "npm:~6.21.0" - checksum: 10/a61c68d434871d4a13496e3607502b2ff8e2ff69dca7e09228de5bea3bc95eb627d09243a8cff8e0bf9ff1fa13baaf0178531748f59ae81f0569c7a2f053bfa5 + undici-types: "npm:~7.19.0" + checksum: 10/99b18690a4be55904cbf8f6a6ac8eed5ec5b8d791fdd8ee2ae598b46c0fa9b83cda7b70dd7f00dbfb18189dcfc67648fdc7fdd3fcced2619a5a6453d9aec107d languageName: node linkType: hard @@ -8637,6 +8605,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^22.19.17": + version: 22.19.17 + resolution: "@types/node@npm:22.19.17" + dependencies: + undici-types: "npm:~6.21.0" + checksum: 10/8adcf9c2e9e7c524196efdd5ee60ebeda980b4ec9b5b8650e2341a2cabe46d368f3a4e4c0050b3bf26eb9cf383453ea2193ec5604079cdf9493a11a742f62018 + languageName: node + linkType: hard + "@types/node@npm:^7.0.4": version: 7.10.14 resolution: "@types/node@npm:7.10.14" @@ -8754,13 +8731,13 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:*, @types/react@npm:>=16.9.11, @types/react@npm:^18.3.27": - version: 18.3.27 - resolution: "@types/react@npm:18.3.27" +"@types/react@npm:*, @types/react@npm:>=16.9.11, @types/react@npm:^18.3.28": + version: 18.3.28 + resolution: "@types/react@npm:18.3.28" dependencies: "@types/prop-types": "npm:*" csstype: "npm:^3.2.2" - checksum: 10/90155820a2af315cad1ff47df695f3f2f568c12ad641a7805746a6a9a9aa6c40b1374e819e50d39afe0e375a6b9160a73176cbdb4e09807262bc6fcdc06e67db + checksum: 10/6db7bb7f19957ee9f530baa7d143527f8befedad1585b064eb80777be0d84621157de75aba4f499ff429b10c5ef0c7d13e89be6bca3296ef71c80472894ff0eb languageName: node linkType: hard @@ -8946,7 +8923,7 @@ __metadata: languageName: node linkType: hard -"@types/ws@npm:^8.5.10": +"@types/ws@npm:^8.18.1, @types/ws@npm:^8.5.10": version: 8.18.1 resolution: "@types/ws@npm:8.18.1" dependencies: @@ -9281,26 +9258,19 @@ __metadata: languageName: node linkType: hard -"@vercel/oidc@npm:3.0.3": - version: 3.0.3 - resolution: "@vercel/oidc@npm:3.0.3" - checksum: 10/2713aba666a8dd45c099f22936a25f1ab5cba357f41239fcec5ad1b65b57db2d47f322f136937c29428d8c0c9ec745aa25eafebed9fe45def94c5a4b75ca777f - languageName: node - linkType: hard - -"@vitejs/plugin-react@npm:^5.1.3": - version: 5.1.3 - resolution: "@vitejs/plugin-react@npm:5.1.3" +"@vitejs/plugin-react@npm:^5.2.0": + version: 5.2.0 + resolution: "@vitejs/plugin-react@npm:5.2.0" dependencies: "@babel/core": "npm:^7.29.0" "@babel/plugin-transform-react-jsx-self": "npm:^7.27.1" "@babel/plugin-transform-react-jsx-source": "npm:^7.27.1" - "@rolldown/pluginutils": "npm:1.0.0-rc.2" + "@rolldown/pluginutils": "npm:1.0.0-rc.3" "@types/babel__core": "npm:^7.20.5" react-refresh: "npm:^0.18.0" peerDependencies: - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 - checksum: 10/e431b2ea5b33f96e670ccf1c7e597bda46581f9eef5033249cf9fd74f4c3d9927a402d143568befaa22c6f98af571478c6cae84c5212e3f2a124d922d5c04f6d + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 10/f4c98e084d053227fae80358fc33641e4a143daa9528c8f821ac7ce7eabe27329616c3a9efbe5b1a87ea131a5ad21e26a0ab355685727ec7bb65d244266250ee languageName: node linkType: hard @@ -9485,10 +9455,10 @@ __metadata: languageName: node linkType: hard -"@xmldom/xmldom@npm:^0.8.11": - version: 0.8.12 - resolution: "@xmldom/xmldom@npm:0.8.12" - checksum: 10/0fc20bc72a057a939ed17afc3fb35d6be2eb19e42aa9ba3c78aa8bdf471da0b4b17c2710581ce6a2cd68ce3995c2ee7d689593a70a26df1273c0c9c29dfca257 +"@xmldom/xmldom@npm:^0.9.10": + version: 0.9.10 + resolution: "@xmldom/xmldom@npm:0.9.10" + checksum: 10/8d39ed498baf33dc8bbc82ec575e7448ddf08a0d6874bcc30a70c001b7519e6df6564f98d13c03836fa8be099c6d74cbc4078cfcfcbcf005681d4e67f1363412 languageName: node linkType: hard @@ -9701,20 +9671,6 @@ __metadata: languageName: node linkType: hard -"ai@npm:5.0.93, ai@npm:^5.0.30": - version: 5.0.93 - resolution: "ai@npm:5.0.93" - dependencies: - "@ai-sdk/gateway": "npm:2.0.9" - "@ai-sdk/provider": "npm:2.0.0" - "@ai-sdk/provider-utils": "npm:3.0.17" - "@opentelemetry/api": "npm:1.9.0" - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - checksum: 10/00723ab7afebcf40311591c1efa882da33b368d86e224a34c356e50cfc925135537eee4e6bca09f092303fcec3535f12fcccc7240ece87a454d9267e2b7b6250 - languageName: node - linkType: hard - "ajv-draft-04@npm:^1.0.0, ajv-draft-04@npm:~1.0.0": version: 1.0.0 resolution: "ajv-draft-04@npm:1.0.0" @@ -9794,7 +9750,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.12.4, ajv@npm:^6.12.5": +"ajv@npm:^6.12.5, ajv@npm:^6.14.0": version: 6.14.0 resolution: "ajv@npm:6.14.0" dependencies: @@ -9836,7 +9792,7 @@ __metadata: languageName: node linkType: hard -"algoliasearch@npm:^5.28.0, algoliasearch@npm:^5.37.0": +"algoliasearch@npm:^5.37.0": version: 5.44.0 resolution: "algoliasearch@npm:5.44.0" dependencies: @@ -10350,14 +10306,14 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"axios@npm:^1.11.0, axios@npm:^1.12.0, axios@npm:^1.13.6": - version: 1.14.0 - resolution: "axios@npm:1.14.0" +"axios@npm:^1.12.0, axios@npm:^1.14.0, axios@npm:^1.15.0": + version: 1.15.0 + resolution: "axios@npm:1.15.0" dependencies: follow-redirects: "npm:^1.15.11" form-data: "npm:^4.0.5" proxy-from-env: "npm:^2.1.0" - checksum: 10/c3444e9e3da1714916e4ddd7cda05bb41a5d5d80e3e27b099a116439684c63f2280c88503d1acd65841698b63af0b542b4d5780454e28fd0aed2d783ef90943e + checksum: 10/d39a2c0ebc7ff4739401b282e726cc2673377949d6c46d60eb619458f8d7a2f7eadbcada7097f4dbc7d5c59abb4d3bf6fac33d474412bc3415d3f5aa7ed45530 languageName: node linkType: hard @@ -10373,20 +10329,20 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"babel-jest@npm:30.2.0, babel-jest@npm:^30.2.0": - version: 30.2.0 - resolution: "babel-jest@npm:30.2.0" +"babel-jest@npm:30.3.0, babel-jest@npm:^30.3.0": + version: 30.3.0 + resolution: "babel-jest@npm:30.3.0" dependencies: - "@jest/transform": "npm:30.2.0" + "@jest/transform": "npm:30.3.0" "@types/babel__core": "npm:^7.20.5" babel-plugin-istanbul: "npm:^7.0.1" - babel-preset-jest: "npm:30.2.0" + babel-preset-jest: "npm:30.3.0" chalk: "npm:^4.1.2" graceful-fs: "npm:^4.2.11" slash: "npm:^3.0.0" peerDependencies: "@babel/core": ^7.11.0 || ^8.0.0-0 - checksum: 10/4c7351a366cf8ac2b8a2e4e438867693eb9d83ed24c29c648da4576f700767aaf72a5d14337fc3f92c50b069f5025b26c7b89e3b7b867914b7cf8997fc15f095 + checksum: 10/7c78f083b11430e69e719ddacd4089db3c055437e06b2d7b382d797a675c7a114268f0044ce98c9a32091638cb9ada53e278d46a7079a74ff845d1aa4a2b0678 languageName: node linkType: hard @@ -10425,12 +10381,12 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"babel-plugin-jest-hoist@npm:30.2.0": - version: 30.2.0 - resolution: "babel-plugin-jest-hoist@npm:30.2.0" +"babel-plugin-jest-hoist@npm:30.3.0": + version: 30.3.0 + resolution: "babel-plugin-jest-hoist@npm:30.3.0" dependencies: "@types/babel__core": "npm:^7.20.5" - checksum: 10/360e87a9aa35f4cf208a10ba79e1821ea906f9e3399db2a9762cbc5076fd59f808e571d88b5b1106738d22e23f9ddefbb8137b2780b2abd401c8573b85c8a2f5 + checksum: 10/1444d633a8ad2505d5e15e458718f1bc5929a074f14179a38f53542c32d3c5158a6f7cab82f7fa6b334b0a45982252639bd7642bb0bc843c6566e44cb083925e languageName: node linkType: hard @@ -10516,15 +10472,15 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"babel-preset-jest@npm:30.2.0": - version: 30.2.0 - resolution: "babel-preset-jest@npm:30.2.0" +"babel-preset-jest@npm:30.3.0": + version: 30.3.0 + resolution: "babel-preset-jest@npm:30.3.0" dependencies: - babel-plugin-jest-hoist: "npm:30.2.0" + babel-plugin-jest-hoist: "npm:30.3.0" babel-preset-current-node-syntax: "npm:^1.2.0" peerDependencies: "@babel/core": ^7.11.0 || ^8.0.0-beta.1 - checksum: 10/f75e155a8cf63ea1c5ca942bf757b934427630a1eeafdf861e9117879b3367931fc521da3c41fd52f8d59d705d1093ffb46c9474b3fd4d765d194bea5659d7d9 + checksum: 10/fd29c8ff5967c047006bde152cf5ac99ce2e1d573f6f044828cb4d06eab95b65549a38554ea97174bbe508006d2a7cb1370581d87aa73f6b3c2134f2d49aaf85 languageName: node linkType: hard @@ -12349,6 +12305,13 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard +"copy-text-to-clipboard@npm:^3.2.0": + version: 3.2.2 + resolution: "copy-text-to-clipboard@npm:3.2.2" + checksum: 10/ae512de746632eb0cc3fe78ba16022b46134f835aa411d372798ee76c93baae8faa6b2cf5052ebd132ec6a2016124dc19786b231e5c0d333999c5d448e7a2e42 + languageName: node + linkType: hard + "copy-webpack-plugin@npm:^11.0.0": version: 11.0.0 resolution: "copy-webpack-plugin@npm:11.0.0" @@ -12374,13 +12337,6 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"core-js-pure@npm:^3.48.0": - version: 3.48.0 - resolution: "core-js-pure@npm:3.48.0" - checksum: 10/7c624d5551252ad166b9a7df4daca354540b71bb2ce9c8df2a9ef7acb6335a7a56557bcbe2bd78e20e3a4eeeee2922ff37a22a67e978b293a2b4e5b9a7a04d9b - languageName: node - linkType: hard - "core-js@npm:^3.31.1": version: 3.37.0 resolution: "core-js@npm:3.37.0" @@ -12491,12 +12447,12 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"cross-fetch@npm:4.0.0": - version: 4.0.0 - resolution: "cross-fetch@npm:4.0.0" +"cross-fetch@npm:4.1.0": + version: 4.1.0 + resolution: "cross-fetch@npm:4.1.0" dependencies: - node-fetch: "npm:^2.6.12" - checksum: 10/e231a71926644ef122d334a3a4e73d9ba3ba4b480a8a277fb9badc434c1ba905b3d60c8034e18b348361a09afbec40ba9371036801ba2b675a7b84588f9f55d8 + node-fetch: "npm:^2.7.0" + checksum: 10/07624940607b64777d27ec9c668ddb6649e8c59ee0a5a10e63a51ce857e2bbb1294a45854a31c10eccb91b65909a5b199fcb0217339b44156f85900a7384f489 languageName: node linkType: hard @@ -14681,12 +14637,13 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"eslint-plugin-yml@npm:^3.1.2": - version: 3.1.2 - resolution: "eslint-plugin-yml@npm:3.1.2" +"eslint-plugin-yml@npm:^3.3.1": + version: 3.3.1 + resolution: "eslint-plugin-yml@npm:3.3.1" dependencies: "@eslint/core": "npm:^1.0.1" "@eslint/plugin-kit": "npm:^0.6.0" + "@ota-meshi/ast-token-store": "npm:^0.3.0" debug: "npm:^4.3.2" diff-sequences: "npm:^29.0.0" escape-string-regexp: "npm:5.0.0" @@ -14694,7 +14651,7 @@ asn1@evs-broadcast/node-asn1: yaml-eslint-parser: "npm:^2.0.0" peerDependencies: eslint: ">=9.38.0" - checksum: 10/8be6d3353c21b7e276b76430fcff1ab83f2fcca491e58b4ba399738c3ce7196e82f55c98f88dc73061aa462cc6f868008dc294445524f2a2cb58457c6ddf0489 + checksum: 10/d0862a92d6842cd401760fd1f42043bd4cb47e78b7f1a257acd1dc113fb653ee97b194c2fe5fdf487fa62e714326da2b67f09326b59cef92eb789c0a890a8670 languageName: node linkType: hard @@ -14739,23 +14696,23 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"eslint@npm:^9.39.2": - version: 9.39.2 - resolution: "eslint@npm:9.39.2" +"eslint@npm:^9.39.4": + version: 9.39.4 + resolution: "eslint@npm:9.39.4" dependencies: "@eslint-community/eslint-utils": "npm:^4.8.0" "@eslint-community/regexpp": "npm:^4.12.1" - "@eslint/config-array": "npm:^0.21.1" + "@eslint/config-array": "npm:^0.21.2" "@eslint/config-helpers": "npm:^0.4.2" "@eslint/core": "npm:^0.17.0" - "@eslint/eslintrc": "npm:^3.3.1" - "@eslint/js": "npm:9.39.2" + "@eslint/eslintrc": "npm:^3.3.5" + "@eslint/js": "npm:9.39.4" "@eslint/plugin-kit": "npm:^0.4.1" "@humanfs/node": "npm:^0.16.6" "@humanwhocodes/module-importer": "npm:^1.0.1" "@humanwhocodes/retry": "npm:^0.4.2" "@types/estree": "npm:^1.0.6" - ajv: "npm:^6.12.4" + ajv: "npm:^6.14.0" chalk: "npm:^4.0.0" cross-spawn: "npm:^7.0.6" debug: "npm:^4.3.2" @@ -14774,7 +14731,7 @@ asn1@evs-broadcast/node-asn1: is-glob: "npm:^4.0.0" json-stable-stringify-without-jsonify: "npm:^1.0.1" lodash.merge: "npm:^4.6.2" - minimatch: "npm:^3.1.2" + minimatch: "npm:^3.1.5" natural-compare: "npm:^1.4.0" optionator: "npm:^0.9.3" peerDependencies: @@ -14784,7 +14741,7 @@ asn1@evs-broadcast/node-asn1: optional: true bin: eslint: bin/eslint.js - checksum: 10/53ff0e9c8264e7e8d40d50fdc0c0df0b701cfc5289beedfb686c214e3e7b199702f894bbd1bb48653727bb1ecbd1147cf5f555a4ae71e1daf35020cdc9072d9f + checksum: 10/de95093d710e62e8c7e753220d985587c40f4a05247ed4393ffb6e6cb43a60e825a47fc5b4263151bb2fc5871a206a31d563ccbabdceee1711072ae12db90adf languageName: node linkType: hard @@ -14990,13 +14947,6 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"eventsource-parser@npm:^3.0.6": - version: 3.0.6 - resolution: "eventsource-parser@npm:3.0.6" - checksum: 10/febf7058b9c2168ecbb33e92711a1646e06bd1568f60b6eb6a01a8bf9f8fcd29cc8320d57247059cacf657a296280159f21306d2e3ff33309a9552b2ef889387 - languageName: node - linkType: hard - "evp_bytestokey@npm:^1.0.0, evp_bytestokey@npm:^1.0.3": version: 1.0.3 resolution: "evp_bytestokey@npm:1.0.3" @@ -15025,7 +14975,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"execa@npm:5.1.1, execa@npm:^5.1.1": +"execa@npm:^5.1.1": version: 5.1.1 resolution: "execa@npm:5.1.1" dependencies: @@ -15056,17 +15006,17 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"expect@npm:30.2.0, expect@npm:^30.0.0": - version: 30.2.0 - resolution: "expect@npm:30.2.0" +"expect@npm:30.3.0, expect@npm:^30.0.0": + version: 30.3.0 + resolution: "expect@npm:30.3.0" dependencies: - "@jest/expect-utils": "npm:30.2.0" + "@jest/expect-utils": "npm:30.3.0" "@jest/get-type": "npm:30.1.0" - jest-matcher-utils: "npm:30.2.0" - jest-message-util: "npm:30.2.0" - jest-mock: "npm:30.2.0" - jest-util: "npm:30.2.0" - checksum: 10/cf98ab45ab2e9f2fb9943a3ae0097f72d63a94be179a19fd2818d8fdc3b7681d31cc8ef540606eb8dd967d9c44d73fef263a614e9de260c22943ffb122ad66fd + jest-matcher-utils: "npm:30.3.0" + jest-message-util: "npm:30.3.0" + jest-mock: "npm:30.3.0" + jest-util: "npm:30.3.0" + checksum: 10/607748963fd2cf2b95ec848d59086afdff5e6b690d1ddd907f84514687f32a787896281ba49a5fda2af819238bec7fdeaf258814997d2b08eedc0968de57f3bd languageName: node linkType: hard @@ -15648,12 +15598,12 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"framer-motion@npm:^12.31.0": - version: 12.31.0 - resolution: "framer-motion@npm:12.31.0" +"framer-motion@npm:^12.38.0": + version: 12.38.0 + resolution: "framer-motion@npm:12.38.0" dependencies: - motion-dom: "npm:^12.30.1" - motion-utils: "npm:^12.29.2" + motion-dom: "npm:^12.38.0" + motion-utils: "npm:^12.36.0" tslib: "npm:^2.4.0" peerDependencies: "@emotion/is-prop-valid": "*" @@ -15666,7 +15616,7 @@ asn1@evs-broadcast/node-asn1: optional: true react-dom: optional: true - checksum: 10/8cd76953b5e4e81e69b7bbec699cd5c913df87897148cd0f9fe85fa2f1c4e2768fbaeb6e40be9cf6d3f4b17a5a8024351d7e0ba93a9cdf9d8358c5031c5cdecd + checksum: 10/4d529d1648a8e31ec9859e7ff1296b7e4ef0028eb09cbc7d626068766ab53e486038b431fac33b1438a1cc076a244e6843c5a8c0f38442885832308452b4b25e languageName: node linkType: hard @@ -16061,7 +16011,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"glob@npm:13.0.6, glob@npm:^13.0.0": +"glob@npm:13.0.6, glob@npm:^13.0.0, glob@npm:^13.0.3": version: 13.0.6 resolution: "glob@npm:13.0.6" dependencies: @@ -16072,7 +16022,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"glob@npm:^10.2.2, glob@npm:^10.3.10": +"glob@npm:^10.2.2, glob@npm:^10.5.0": version: 10.5.0 resolution: "glob@npm:10.5.0" dependencies: @@ -16154,10 +16104,10 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"globals@npm:^17.3.0": - version: 17.3.0 - resolution: "globals@npm:17.3.0" - checksum: 10/44ba2b7db93eb6a2531dfba09219845e21f2e724a4f400eb59518b180b7d5bcf7f65580530e3d3023d7dc2bdbacf5d265fd87c393f567deb9a2b0472b51c9d5e +"globals@npm:^17.5.0": + version: 17.5.0 + resolution: "globals@npm:17.5.0" + checksum: 10/c405a95e1ecf14a1a17caaecd4dadbad38166b3c1b514e07924604ee224e922c043fc93ae21164d124dae5536e5a812566355469e34a689601db7d3d424dc8e7 languageName: node linkType: hard @@ -16299,7 +16249,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"handlebars@npm:^4.7.7, handlebars@npm:^4.7.8": +"handlebars@npm:^4.7.7, handlebars@npm:^4.7.9": version: 4.7.9 resolution: "handlebars@npm:4.7.9" dependencies: @@ -17021,21 +16971,21 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"i18next-browser-languagedetector@npm:^8.2.0": - version: 8.2.0 - resolution: "i18next-browser-languagedetector@npm:8.2.0" +"i18next-browser-languagedetector@npm:^8.2.1": + version: 8.2.1 + resolution: "i18next-browser-languagedetector@npm:8.2.1" dependencies: "@babel/runtime": "npm:^7.23.2" - checksum: 10/b2e78feb256e92b219cd378b38af00404b8f667473f886d64c53588df0592bce145ad29ad7d8238c75f78a9c79f02c84d400569dd5c0ab94c751ac62a4e1f8dd + checksum: 10/3410c839285f70f04546b6d5960e3fe263cbefb3098afa17e4254677af8e2149f287968d4e4fb3bcbf76a0e2300761e56e0315e41f1b5ed5c1c78a2d037cc64f languageName: node linkType: hard -"i18next-http-backend@npm:^3.0.2": - version: 3.0.2 - resolution: "i18next-http-backend@npm:3.0.2" +"i18next-http-backend@npm:^3.0.5": + version: 3.0.5 + resolution: "i18next-http-backend@npm:3.0.5" dependencies: - cross-fetch: "npm:4.0.0" - checksum: 10/fd78b755e4050b33cb0367a8542e80fa70b47eef02d856cce6730bde6faa1c77e304a5dc116b31dbe70695a62347332b873215b25f498ffb15d4ddb716f4ccd2 + cross-fetch: "npm:4.1.0" + checksum: 10/a0a9b75c05e335e1bb6dcf4ff81723e82700f1d16809b55e121054b1822068c72947d9661e29293c24294af6d1d9532999e7445518606a6964fadc7e779eb777 languageName: node linkType: hard @@ -17167,7 +17117,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"immutable@npm:^5.0.2": +"immutable@npm:^5.1.5": version: 5.1.5 resolution: "immutable@npm:5.1.5" checksum: 10/7aec2740239772ec8e92e793c991bd809203a97694f4ff3a18e50e28f9a6b02393ad033d87b458037bdf8c0ea37d4446d640e825f6171df3405cf6cf300ce028 @@ -18174,58 +18124,58 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"jest-changed-files@npm:30.2.0": - version: 30.2.0 - resolution: "jest-changed-files@npm:30.2.0" +"jest-changed-files@npm:30.3.0": + version: 30.3.0 + resolution: "jest-changed-files@npm:30.3.0" dependencies: execa: "npm:^5.1.1" - jest-util: "npm:30.2.0" + jest-util: "npm:30.3.0" p-limit: "npm:^3.1.0" - checksum: 10/ff2275ed5839b88c12ffa66fdc5c17ba02d3e276be6b558bed92872c282d050c3fdd1a275a81187cbe35c16d6d40337b85838772836463c7a2fbd1cba9785ca0 + checksum: 10/a65834a428ec7c4512319af52a7397e5fd90088ca85e649c66cda7092fc287b0fae6c0a9d691cca99278b7dfacbbdbcce17e2bebdd81068503389089035489ce languageName: node linkType: hard -"jest-circus@npm:30.2.0": - version: 30.2.0 - resolution: "jest-circus@npm:30.2.0" +"jest-circus@npm:30.3.0": + version: 30.3.0 + resolution: "jest-circus@npm:30.3.0" dependencies: - "@jest/environment": "npm:30.2.0" - "@jest/expect": "npm:30.2.0" - "@jest/test-result": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/environment": "npm:30.3.0" + "@jest/expect": "npm:30.3.0" + "@jest/test-result": "npm:30.3.0" + "@jest/types": "npm:30.3.0" "@types/node": "npm:*" chalk: "npm:^4.1.2" co: "npm:^4.6.0" dedent: "npm:^1.6.0" is-generator-fn: "npm:^2.1.0" - jest-each: "npm:30.2.0" - jest-matcher-utils: "npm:30.2.0" - jest-message-util: "npm:30.2.0" - jest-runtime: "npm:30.2.0" - jest-snapshot: "npm:30.2.0" - jest-util: "npm:30.2.0" + jest-each: "npm:30.3.0" + jest-matcher-utils: "npm:30.3.0" + jest-message-util: "npm:30.3.0" + jest-runtime: "npm:30.3.0" + jest-snapshot: "npm:30.3.0" + jest-util: "npm:30.3.0" p-limit: "npm:^3.1.0" - pretty-format: "npm:30.2.0" + pretty-format: "npm:30.3.0" pure-rand: "npm:^7.0.0" slash: "npm:^3.0.0" stack-utils: "npm:^2.0.6" - checksum: 10/68bfc65d92385db1017643988215e4ff5af0b10bcab86fb749a063be6bb7d5eb556dc53dd21bedf833a19aa6ae1a781a8d27b2bea25562de02d294b3017435a9 + checksum: 10/6aba7c0282af3db4b03870ebe1fc417e651fbfc3cc260de8b73d95ede3ed390af0c94ef376877c5ef50cf8ab49d125ddcd25d6913543b63bf6caa0e22bfecc6f languageName: node linkType: hard -"jest-cli@npm:30.2.0": - version: 30.2.0 - resolution: "jest-cli@npm:30.2.0" +"jest-cli@npm:30.3.0": + version: 30.3.0 + resolution: "jest-cli@npm:30.3.0" dependencies: - "@jest/core": "npm:30.2.0" - "@jest/test-result": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/core": "npm:30.3.0" + "@jest/test-result": "npm:30.3.0" + "@jest/types": "npm:30.3.0" chalk: "npm:^4.1.2" exit-x: "npm:^0.2.2" import-local: "npm:^3.2.0" - jest-config: "npm:30.2.0" - jest-util: "npm:30.2.0" - jest-validate: "npm:30.2.0" + jest-config: "npm:30.3.0" + jest-util: "npm:30.3.0" + jest-validate: "npm:30.3.0" yargs: "npm:^17.7.2" peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -18234,36 +18184,35 @@ asn1@evs-broadcast/node-asn1: optional: true bin: jest: ./bin/jest.js - checksum: 10/1cc8304f0e2608801c84cdecce9565a6178f668a6475aed3767a1d82cc539915f98e7404d7c387510313684011dc3095c15397d6725f73aac80fbd96c4155faa + checksum: 10/a80aa3a2eec0b0d6644c25ce196d485e178b9c2ad037c17764a645f2fe156563c7fb2dca07cb10d8b9da77dbb8e0c6bcb4b82ca9a59ee50f12700f06670093c1 languageName: node linkType: hard -"jest-config@npm:30.2.0": - version: 30.2.0 - resolution: "jest-config@npm:30.2.0" +"jest-config@npm:30.3.0": + version: 30.3.0 + resolution: "jest-config@npm:30.3.0" dependencies: "@babel/core": "npm:^7.27.4" "@jest/get-type": "npm:30.1.0" "@jest/pattern": "npm:30.0.1" - "@jest/test-sequencer": "npm:30.2.0" - "@jest/types": "npm:30.2.0" - babel-jest: "npm:30.2.0" + "@jest/test-sequencer": "npm:30.3.0" + "@jest/types": "npm:30.3.0" + babel-jest: "npm:30.3.0" chalk: "npm:^4.1.2" ci-info: "npm:^4.2.0" deepmerge: "npm:^4.3.1" - glob: "npm:^10.3.10" + glob: "npm:^10.5.0" graceful-fs: "npm:^4.2.11" - jest-circus: "npm:30.2.0" + jest-circus: "npm:30.3.0" jest-docblock: "npm:30.2.0" - jest-environment-node: "npm:30.2.0" + jest-environment-node: "npm:30.3.0" jest-regex-util: "npm:30.0.1" - jest-resolve: "npm:30.2.0" - jest-runner: "npm:30.2.0" - jest-util: "npm:30.2.0" - jest-validate: "npm:30.2.0" - micromatch: "npm:^4.0.8" + jest-resolve: "npm:30.3.0" + jest-runner: "npm:30.3.0" + jest-util: "npm:30.3.0" + jest-validate: "npm:30.3.0" parse-json: "npm:^5.2.0" - pretty-format: "npm:30.2.0" + pretty-format: "npm:30.3.0" slash: "npm:^3.0.0" strip-json-comments: "npm:^3.1.1" peerDependencies: @@ -18277,19 +18226,19 @@ asn1@evs-broadcast/node-asn1: optional: true ts-node: optional: true - checksum: 10/296786b0a3d62de77e2f691f208d54ab541c1a73f87747d922eda643c6f25b89125ef3150170c07a6c8a316a30c15428e46237d499f688b0777f38de8a61ad16 + checksum: 10/89c49426e2be5ee0c7cf9d6ab0a1dd6eb5ea03f67a5cc57d991d3d2441762d7101a215da5596bcb5b39c47e209ab8fdf4682fd1365cef7a5e48903b689bf4116 languageName: node linkType: hard -"jest-diff@npm:30.2.0, jest-diff@npm:>=30.0.0 < 31, jest-diff@npm:^30.0.2": - version: 30.2.0 - resolution: "jest-diff@npm:30.2.0" +"jest-diff@npm:30.3.0, jest-diff@npm:>=30.0.0 < 31, jest-diff@npm:^30.0.2": + version: 30.3.0 + resolution: "jest-diff@npm:30.3.0" dependencies: - "@jest/diff-sequences": "npm:30.0.1" + "@jest/diff-sequences": "npm:30.3.0" "@jest/get-type": "npm:30.1.0" chalk: "npm:^4.1.2" - pretty-format: "npm:30.2.0" - checksum: 10/1fb9e4fb7dff81814b4f69eaa7db28e184d62306a3a8ea2447d02ca53d2cfa771e83ede513f67ec5239dffacfaac32ff2b49866d211e4c7516f51c1fc06ede42 + pretty-format: "npm:30.3.0" + checksum: 10/9f566259085e6badd525dc48ee6de3792cfae080abd66e170ac230359cf32c4334d92f0f48b577a31ad2a6aed4aefde81f5f4366ab44a96f78bcde975e5cc26e languageName: node linkType: hard @@ -18302,110 +18251,108 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"jest-each@npm:30.2.0": - version: 30.2.0 - resolution: "jest-each@npm:30.2.0" +"jest-each@npm:30.3.0": + version: 30.3.0 + resolution: "jest-each@npm:30.3.0" dependencies: "@jest/get-type": "npm:30.1.0" - "@jest/types": "npm:30.2.0" + "@jest/types": "npm:30.3.0" chalk: "npm:^4.1.2" - jest-util: "npm:30.2.0" - pretty-format: "npm:30.2.0" - checksum: 10/f95e7dc1cef4b6a77899325702a214834ae25d01276cc31279654dc7e04f63c1925a37848dd16a0d16508c0fd3d182145f43c10af93952b7a689df3aeac198e9 + jest-util: "npm:30.3.0" + pretty-format: "npm:30.3.0" + checksum: 10/ece465cbb1c4fbb445c9cfacd33275489940684fd0d447f6d4bdb4ef81d63c1b0bc3b365be7400dbbffd8d5502fd5faf10e97025a61c27bcd3da1ea21c749381 languageName: node linkType: hard -"jest-environment-jsdom@npm:^30.2.0": - version: 30.2.0 - resolution: "jest-environment-jsdom@npm:30.2.0" +"jest-environment-jsdom@npm:^30.3.0": + version: 30.3.0 + resolution: "jest-environment-jsdom@npm:30.3.0" dependencies: - "@jest/environment": "npm:30.2.0" - "@jest/environment-jsdom-abstract": "npm:30.2.0" - "@types/jsdom": "npm:^21.1.7" - "@types/node": "npm:*" + "@jest/environment": "npm:30.3.0" + "@jest/environment-jsdom-abstract": "npm:30.3.0" jsdom: "npm:^26.1.0" peerDependencies: canvas: ^3.0.0 peerDependenciesMeta: canvas: optional: true - checksum: 10/bb3768b7efc2eefb81b9deb1e23898cc74e4813d6d54872ed40d830eefc08c619eb0b2817f0af5d52061e0beb16681e8384d660a2aee4919e91349195ecb2904 + checksum: 10/b5d4c9ccade6931854a174c4b6b1657cb1d9b66e519f820aebc8e349dfa6c445d94e5820bd2589d8c6b31ea37f1bd5731e6f643047b3e24c0182d4f7376aabe8 languageName: node linkType: hard -"jest-environment-node@npm:30.2.0": - version: 30.2.0 - resolution: "jest-environment-node@npm:30.2.0" +"jest-environment-node@npm:30.3.0": + version: 30.3.0 + resolution: "jest-environment-node@npm:30.3.0" dependencies: - "@jest/environment": "npm:30.2.0" - "@jest/fake-timers": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/environment": "npm:30.3.0" + "@jest/fake-timers": "npm:30.3.0" + "@jest/types": "npm:30.3.0" "@types/node": "npm:*" - jest-mock: "npm:30.2.0" - jest-util: "npm:30.2.0" - jest-validate: "npm:30.2.0" - checksum: 10/7918bfea7367bd3e12dbbc4ea5afb193b5c47e480a6d1382512f051e2f028458fc9f5ef2f6260737ad41a0b1894661790ff3aaf3cbb4148a33ce2ce7aec64847 + jest-mock: "npm:30.3.0" + jest-util: "npm:30.3.0" + jest-validate: "npm:30.3.0" + checksum: 10/805732507857f283f8c5eaca78561401c16043cd9a2579fc4a3cd6139a5138c6108f4b32f7fafe5b41f9b53f2fbc63cf65eb892e15e086034b09899c9fa4fed4 languageName: node linkType: hard -"jest-haste-map@npm:30.2.0": - version: 30.2.0 - resolution: "jest-haste-map@npm:30.2.0" +"jest-haste-map@npm:30.3.0": + version: 30.3.0 + resolution: "jest-haste-map@npm:30.3.0" dependencies: - "@jest/types": "npm:30.2.0" + "@jest/types": "npm:30.3.0" "@types/node": "npm:*" anymatch: "npm:^3.1.3" fb-watchman: "npm:^2.0.2" fsevents: "npm:^2.3.3" graceful-fs: "npm:^4.2.11" jest-regex-util: "npm:30.0.1" - jest-util: "npm:30.2.0" - jest-worker: "npm:30.2.0" - micromatch: "npm:^4.0.8" + jest-util: "npm:30.3.0" + jest-worker: "npm:30.3.0" + picomatch: "npm:^4.0.3" walker: "npm:^1.0.8" dependenciesMeta: fsevents: optional: true - checksum: 10/a88be6b0b672144aa30fe2d72e630d639c8d8729ee2cef84d0f830eac2005ac021cd8354f8ed8ecd74223f6a8b281efb62f466f5c9e01ed17650e38761051f4c + checksum: 10/0e0cc449d57414ac2d1f9ece64a98ffc4b4041fe3fba7cf9aaeb71089f7101583b1752e88aa4440d6fa71f86ef50d630be4f31f922cdf404d78655cb9811493b languageName: node linkType: hard -"jest-leak-detector@npm:30.2.0": - version: 30.2.0 - resolution: "jest-leak-detector@npm:30.2.0" +"jest-leak-detector@npm:30.3.0": + version: 30.3.0 + resolution: "jest-leak-detector@npm:30.3.0" dependencies: "@jest/get-type": "npm:30.1.0" - pretty-format: "npm:30.2.0" - checksum: 10/c430d6ed7910b2174738fbdca4ea64cbfe805216414c0d143c1090148f1389fec99d0733c0a8ed0a86709c89b4a4085b4749ac3a2cbc7deaf3ca87457afd24fc + pretty-format: "npm:30.3.0" + checksum: 10/950ce3266067dd983f80231ce753fdfb9fe167d810b4507d84e674205c2cb96d37f38615ae502fa9277dde497ee52ce581656b48709aacf9502a4f0006bfab0e languageName: node linkType: hard -"jest-matcher-utils@npm:30.2.0": - version: 30.2.0 - resolution: "jest-matcher-utils@npm:30.2.0" +"jest-matcher-utils@npm:30.3.0": + version: 30.3.0 + resolution: "jest-matcher-utils@npm:30.3.0" dependencies: "@jest/get-type": "npm:30.1.0" chalk: "npm:^4.1.2" - jest-diff: "npm:30.2.0" - pretty-format: "npm:30.2.0" - checksum: 10/f3f1ecf68ca63c9d1d80a175637a8fc655edfd1ee83220f6e3f6bd464ecbe2f93148fdd440a5a5e5a2b0b2cc8ee84ddc3dcef58a6dbc66821c792f48d260c6d4 + jest-diff: "npm:30.3.0" + pretty-format: "npm:30.3.0" + checksum: 10/8aeef24fe2a21a3a22eb26a805c0a4c8ca8961aa1ebc07d680bf55b260f593814467bdfb60b271a3c239a411b2468f352c279cef466e35fd024d901ffa6cc942 languageName: node linkType: hard -"jest-message-util@npm:30.2.0": - version: 30.2.0 - resolution: "jest-message-util@npm:30.2.0" +"jest-message-util@npm:30.3.0": + version: 30.3.0 + resolution: "jest-message-util@npm:30.3.0" dependencies: "@babel/code-frame": "npm:^7.27.1" - "@jest/types": "npm:30.2.0" + "@jest/types": "npm:30.3.0" "@types/stack-utils": "npm:^2.0.3" chalk: "npm:^4.1.2" graceful-fs: "npm:^4.2.11" - micromatch: "npm:^4.0.8" - pretty-format: "npm:30.2.0" + picomatch: "npm:^4.0.3" + pretty-format: "npm:30.3.0" slash: "npm:^3.0.0" stack-utils: "npm:^2.0.6" - checksum: 10/e29ec76e8c8e4da5f5b25198be247535626ccf3a940e93fdd51fc6a6bcf70feaa2921baae3806182a090431d90b08c939eb13fb64249b171d2e9ae3a452a8fd2 + checksum: 10/886577543ec60b421d21987190c5e393ff3652f4f2f2b504776d73f932518827b026ab8e6ffdb1f21ff5142ddf160ba4794e56d96143baeb4ae6939e040a10bd languageName: node linkType: hard @@ -18422,14 +18369,14 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"jest-mock@npm:30.2.0": - version: 30.2.0 - resolution: "jest-mock@npm:30.2.0" +"jest-mock@npm:30.3.0": + version: 30.3.0 + resolution: "jest-mock@npm:30.3.0" dependencies: - "@jest/types": "npm:30.2.0" + "@jest/types": "npm:30.3.0" "@types/node": "npm:*" - jest-util: "npm:30.2.0" - checksum: 10/cde9b56805f90bf811a9231873ee88a0fb83bf4bf50972ae76960725da65220fcb119688f2e90e1ef33fbfd662194858d7f43809d881f1c41bb55d94e62adeab + jest-util: "npm:30.3.0" + checksum: 10/9d2a9e52c2aebc486e9accaf641efa5c6589666e883b5ac1987261d0e2c105a06b885c22aeeb1cd7582e421970c95e34fe0b41bc4a8c06d7e3e4c27651e76ad1 languageName: node linkType: hard @@ -18452,132 +18399,132 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"jest-resolve-dependencies@npm:30.2.0": - version: 30.2.0 - resolution: "jest-resolve-dependencies@npm:30.2.0" +"jest-resolve-dependencies@npm:30.3.0": + version: 30.3.0 + resolution: "jest-resolve-dependencies@npm:30.3.0" dependencies: jest-regex-util: "npm:30.0.1" - jest-snapshot: "npm:30.2.0" - checksum: 10/0ff1a574f8c07f2e54a4ac8ab17aea00dfe2982e99b03fbd44f4211a94b8e5a59fdc43a59f9d6c0578a10a7b56a0611ad5ab40e4893973ff3f40dd414433b194 + jest-snapshot: "npm:30.3.0" + checksum: 10/79dfbc3c8c967e7908bcb02f5116c37002f2cdc10360d179876de832c10ee87cb85cc27895b035697da477ab6ad70170f4e2907a85d35a44117646554cc72111 languageName: node linkType: hard -"jest-resolve@npm:30.2.0": - version: 30.2.0 - resolution: "jest-resolve@npm:30.2.0" +"jest-resolve@npm:30.3.0": + version: 30.3.0 + resolution: "jest-resolve@npm:30.3.0" dependencies: chalk: "npm:^4.1.2" graceful-fs: "npm:^4.2.11" - jest-haste-map: "npm:30.2.0" + jest-haste-map: "npm:30.3.0" jest-pnp-resolver: "npm:^1.2.3" - jest-util: "npm:30.2.0" - jest-validate: "npm:30.2.0" + jest-util: "npm:30.3.0" + jest-validate: "npm:30.3.0" slash: "npm:^3.0.0" unrs-resolver: "npm:^1.7.11" - checksum: 10/e1f03da6811a946f5d885ea739a973975d099cc760641f9e1f90ac9c6621408538ba1e909f789d45d6e8d2411b78fb09230f16f15669621aa407aed7511fdf01 + checksum: 10/7d88ef3f6424386e4b4e65d486ac1d3b86c142cf789f0ab945a2cd8bd830edc0314c7561a459b95062f41bc550ae7110f461dbafcc07030f61728edb00b4bcdd languageName: node linkType: hard -"jest-runner@npm:30.2.0": - version: 30.2.0 - resolution: "jest-runner@npm:30.2.0" +"jest-runner@npm:30.3.0": + version: 30.3.0 + resolution: "jest-runner@npm:30.3.0" dependencies: - "@jest/console": "npm:30.2.0" - "@jest/environment": "npm:30.2.0" - "@jest/test-result": "npm:30.2.0" - "@jest/transform": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/console": "npm:30.3.0" + "@jest/environment": "npm:30.3.0" + "@jest/test-result": "npm:30.3.0" + "@jest/transform": "npm:30.3.0" + "@jest/types": "npm:30.3.0" "@types/node": "npm:*" chalk: "npm:^4.1.2" emittery: "npm:^0.13.1" exit-x: "npm:^0.2.2" graceful-fs: "npm:^4.2.11" jest-docblock: "npm:30.2.0" - jest-environment-node: "npm:30.2.0" - jest-haste-map: "npm:30.2.0" - jest-leak-detector: "npm:30.2.0" - jest-message-util: "npm:30.2.0" - jest-resolve: "npm:30.2.0" - jest-runtime: "npm:30.2.0" - jest-util: "npm:30.2.0" - jest-watcher: "npm:30.2.0" - jest-worker: "npm:30.2.0" + jest-environment-node: "npm:30.3.0" + jest-haste-map: "npm:30.3.0" + jest-leak-detector: "npm:30.3.0" + jest-message-util: "npm:30.3.0" + jest-resolve: "npm:30.3.0" + jest-runtime: "npm:30.3.0" + jest-util: "npm:30.3.0" + jest-watcher: "npm:30.3.0" + jest-worker: "npm:30.3.0" p-limit: "npm:^3.1.0" source-map-support: "npm:0.5.13" - checksum: 10/d3706aa70e64a7ef8b38360d34ea6c261ba4d0b42136d7fb603c4fa71c24fa81f22c39ed2e39ee0db2363a42827810291f3ceb6a299e5996b41d701ad9b24184 + checksum: 10/f467591d2ff95f7b3138dc7c8631e751000d1fcabfdb9a94623fce3fd7b538a45628e9a1e8e8758c4d7a0c3757c393a3ef034ba986d7565e3f1b597ab7a73748 languageName: node linkType: hard -"jest-runtime@npm:30.2.0": - version: 30.2.0 - resolution: "jest-runtime@npm:30.2.0" +"jest-runtime@npm:30.3.0": + version: 30.3.0 + resolution: "jest-runtime@npm:30.3.0" dependencies: - "@jest/environment": "npm:30.2.0" - "@jest/fake-timers": "npm:30.2.0" - "@jest/globals": "npm:30.2.0" + "@jest/environment": "npm:30.3.0" + "@jest/fake-timers": "npm:30.3.0" + "@jest/globals": "npm:30.3.0" "@jest/source-map": "npm:30.0.1" - "@jest/test-result": "npm:30.2.0" - "@jest/transform": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/test-result": "npm:30.3.0" + "@jest/transform": "npm:30.3.0" + "@jest/types": "npm:30.3.0" "@types/node": "npm:*" chalk: "npm:^4.1.2" cjs-module-lexer: "npm:^2.1.0" collect-v8-coverage: "npm:^1.0.2" - glob: "npm:^10.3.10" + glob: "npm:^10.5.0" graceful-fs: "npm:^4.2.11" - jest-haste-map: "npm:30.2.0" - jest-message-util: "npm:30.2.0" - jest-mock: "npm:30.2.0" + jest-haste-map: "npm:30.3.0" + jest-message-util: "npm:30.3.0" + jest-mock: "npm:30.3.0" jest-regex-util: "npm:30.0.1" - jest-resolve: "npm:30.2.0" - jest-snapshot: "npm:30.2.0" - jest-util: "npm:30.2.0" + jest-resolve: "npm:30.3.0" + jest-snapshot: "npm:30.3.0" + jest-util: "npm:30.3.0" slash: "npm:^3.0.0" strip-bom: "npm:^4.0.0" - checksum: 10/81a3a9951420863f001e74c510bf35b85ae983f636f43ee1ffa1618b5a8ddafb681bc2810f71814bc8c8373e9593c89576b2325daf3c765e50057e48d5941df3 + checksum: 10/a9335405ca46e8d77c8400887566b5cf2a3544e1b067eb3b187e86ea5c74f1b8b16ecf1de3a589bfb32be95e77452a01913f187d66a41c5a4595a30d7dc1daf0 languageName: node linkType: hard -"jest-snapshot@npm:30.2.0": - version: 30.2.0 - resolution: "jest-snapshot@npm:30.2.0" +"jest-snapshot@npm:30.3.0": + version: 30.3.0 + resolution: "jest-snapshot@npm:30.3.0" dependencies: "@babel/core": "npm:^7.27.4" "@babel/generator": "npm:^7.27.5" "@babel/plugin-syntax-jsx": "npm:^7.27.1" "@babel/plugin-syntax-typescript": "npm:^7.27.1" "@babel/types": "npm:^7.27.3" - "@jest/expect-utils": "npm:30.2.0" + "@jest/expect-utils": "npm:30.3.0" "@jest/get-type": "npm:30.1.0" - "@jest/snapshot-utils": "npm:30.2.0" - "@jest/transform": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/snapshot-utils": "npm:30.3.0" + "@jest/transform": "npm:30.3.0" + "@jest/types": "npm:30.3.0" babel-preset-current-node-syntax: "npm:^1.2.0" chalk: "npm:^4.1.2" - expect: "npm:30.2.0" + expect: "npm:30.3.0" graceful-fs: "npm:^4.2.11" - jest-diff: "npm:30.2.0" - jest-matcher-utils: "npm:30.2.0" - jest-message-util: "npm:30.2.0" - jest-util: "npm:30.2.0" - pretty-format: "npm:30.2.0" + jest-diff: "npm:30.3.0" + jest-matcher-utils: "npm:30.3.0" + jest-message-util: "npm:30.3.0" + jest-util: "npm:30.3.0" + pretty-format: "npm:30.3.0" semver: "npm:^7.7.2" synckit: "npm:^0.11.8" - checksum: 10/119390b49f397ed622ba7c375fc15f97af67c4fc49a34cf829c86ee732be2b06ad3c7171c76bb842a0e84a234783f1a4c721909aa316fbe00c6abc7c5962dfbc + checksum: 10/d9f75c436587410cc8170a710d53a632e148a648ec82476ef9e618d8067246e48af7c460773304ad53eecf748b118619a6afd87212f86d680d3439787b4fec39 languageName: node linkType: hard -"jest-util@npm:30.2.0": - version: 30.2.0 - resolution: "jest-util@npm:30.2.0" +"jest-util@npm:30.3.0": + version: 30.3.0 + resolution: "jest-util@npm:30.3.0" dependencies: - "@jest/types": "npm:30.2.0" + "@jest/types": "npm:30.3.0" "@types/node": "npm:*" chalk: "npm:^4.1.2" ci-info: "npm:^4.2.0" graceful-fs: "npm:^4.2.11" - picomatch: "npm:^4.0.2" - checksum: 10/cf2f2fb83417ea69f9992121561c95cf4e9aad7946819b771b8b52addf78811101b33b51d0a39fa0c305f2751dab262feed7699de052659ff03d51827c8862f5 + picomatch: "npm:^4.0.3" + checksum: 10/4b016004637f6a53d6f54c993dc8904a4d6abe93acb8dd70622dc2ca80290a03692e834af1068969b486426e87d411144705edd4d772bb715a826d7e15b5a4b3 languageName: node linkType: hard @@ -18595,46 +18542,46 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"jest-validate@npm:30.2.0": - version: 30.2.0 - resolution: "jest-validate@npm:30.2.0" +"jest-validate@npm:30.3.0": + version: 30.3.0 + resolution: "jest-validate@npm:30.3.0" dependencies: "@jest/get-type": "npm:30.1.0" - "@jest/types": "npm:30.2.0" + "@jest/types": "npm:30.3.0" camelcase: "npm:^6.3.0" chalk: "npm:^4.1.2" leven: "npm:^3.1.0" - pretty-format: "npm:30.2.0" - checksum: 10/61e66c6df29a1e181f8de063678dd2096bb52cc8a8ead3c9a3f853d54eca458ad04c7fb81931d9274affb67d0504a91a2a520456a139a26665810c3bf039b677 + pretty-format: "npm:30.3.0" + checksum: 10/b26e32602c65f93d4fa9ca24efa661df24b8919c5c4cb88b87852178310833df3a7fdb757afb9d769cfe13f6636385626d8ac8a2ad7af47365d309a548cd0e06 languageName: node linkType: hard -"jest-watcher@npm:30.2.0": - version: 30.2.0 - resolution: "jest-watcher@npm:30.2.0" +"jest-watcher@npm:30.3.0": + version: 30.3.0 + resolution: "jest-watcher@npm:30.3.0" dependencies: - "@jest/test-result": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/test-result": "npm:30.3.0" + "@jest/types": "npm:30.3.0" "@types/node": "npm:*" ansi-escapes: "npm:^4.3.2" chalk: "npm:^4.1.2" emittery: "npm:^0.13.1" - jest-util: "npm:30.2.0" + jest-util: "npm:30.3.0" string-length: "npm:^4.0.2" - checksum: 10/fa38d06dcc59dbbd6a9ff22dea499d3c81ed376d9993b82d01797a99bf466d48641a99b9f3670a4b5480ca31144c5e017b96b7059e4d7541358fb48cf517a2db + checksum: 10/b3a284869be1c69a8084c1129fcc08b719b8556d3af93b6cd587f9e2f948e5ce5084cb0ec62a166e3161d1d8b6dc580a88ba02abc05a0948809c65b27bd60f3a languageName: node linkType: hard -"jest-worker@npm:30.2.0": - version: 30.2.0 - resolution: "jest-worker@npm:30.2.0" +"jest-worker@npm:30.3.0": + version: 30.3.0 + resolution: "jest-worker@npm:30.3.0" dependencies: "@types/node": "npm:*" "@ungap/structured-clone": "npm:^1.3.0" - jest-util: "npm:30.2.0" + jest-util: "npm:30.3.0" merge-stream: "npm:^2.0.0" supports-color: "npm:^8.1.1" - checksum: 10/9354b0c71c80173f673da6bbc0ddaad26e4395b06532f7332e0c1e93e855b873b10139b040e01eda77f3dc5a0b67613e2bd7c56c4947ee771acfc3611de2ca29 + checksum: 10/6198e7462617e8f544b1ba593970fb7656e990aa87a2259f693edde106b5aecf63bae692e8d6adc4313efcaba283b15fc25f6834cacca12cf241da0ece722060 languageName: node linkType: hard @@ -18661,14 +18608,14 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"jest@npm:^30.2.0": - version: 30.2.0 - resolution: "jest@npm:30.2.0" +"jest@npm:^30.3.0": + version: 30.3.0 + resolution: "jest@npm:30.3.0" dependencies: - "@jest/core": "npm:30.2.0" - "@jest/types": "npm:30.2.0" + "@jest/core": "npm:30.3.0" + "@jest/types": "npm:30.3.0" import-local: "npm:^3.2.0" - jest-cli: "npm:30.2.0" + jest-cli: "npm:30.3.0" peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: @@ -18676,7 +18623,7 @@ asn1@evs-broadcast/node-asn1: optional: true bin: jest: ./bin/jest.js - checksum: 10/61c9d100750e4354cd7305d1f3ba253ffde4deaf12cb4be4d42d54f2dd5986e383a39c4a8691dbdc3839c69094a52413ed36f1886540ac37b71914a990b810d0 + checksum: 10/e8485ede8456c71915e94a7ab4fe66c983043263109d61e0665a17cb7f8e843a5a30abca4d932b0ea7aa90326aa10d4acb31d8f3cd2b3158a89c1e5ee3b92856 languageName: node linkType: hard @@ -18913,13 +18860,6 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"json-schema@npm:^0.4.0": - version: 0.4.0 - resolution: "json-schema@npm:0.4.0" - checksum: 10/8b3b64eff4a807dc2a3045b104ed1b9335cd8d57aa74c58718f07f0f48b8baa3293b00af4dcfbdc9144c3aafea1e97982cc27cc8e150fc5d93c540649507a458 - languageName: node - linkType: hard - "json-stable-stringify-without-jsonify@npm:^1.0.1": version: 1.0.1 resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" @@ -19149,7 +19089,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"koa@npm:^3.1.1": +"koa@npm:^3.2.0": version: 3.2.0 resolution: "koa@npm:3.2.0" dependencies: @@ -19438,9 +19378,9 @@ asn1@evs-broadcast/node-asn1: influx: "npm:^5.12.0" tslib: "npm:^2.8.1" type-fest: "npm:^4.41.0" - underscore: "npm:^1.13.7" + underscore: "npm:^1.13.8" winston: "npm:^3.19.0" - ws: "npm:^8.19.0" + ws: "npm:^8.20.0" languageName: unknown linkType: soft @@ -21086,7 +21026,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"minimatch@npm:3.1.5, minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": +"minimatch@npm:3.1.5, minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2, minimatch@npm:^3.1.5": version: 3.1.5 resolution: "minimatch@npm:3.1.5" dependencies: @@ -21434,32 +21374,32 @@ asn1@evs-broadcast/node-asn1: "@sofie-automation/shared-lib": "npm:26.3.0-2" tslib: "npm:^2.8.1" type-fest: "npm:^4.41.0" - underscore: "npm:^1.13.7" + underscore: "npm:^1.13.8" winston: "npm:^3.19.0" languageName: unknown linkType: soft -"motion-dom@npm:^12.30.1": - version: 12.30.1 - resolution: "motion-dom@npm:12.30.1" +"motion-dom@npm:^12.38.0": + version: 12.38.0 + resolution: "motion-dom@npm:12.38.0" dependencies: - motion-utils: "npm:^12.29.2" - checksum: 10/22af7e074b388485b8f383bc9a8a3d03dec51f2e7112a3b50b9fde7076531ec0fccbeb61c669a439eb0a535992b121a48e612901b79f139538697755c291400e + motion-utils: "npm:^12.36.0" + checksum: 10/78c040b46d93273932cf80c70e39845be5a442dcaf18d4345b45a9193de9dfa87c885b609943cb652115e4eac5d46ef40b452185073dd43fc328b134f9975e90 languageName: node linkType: hard -"motion-utils@npm:^12.29.2": - version: 12.29.2 - resolution: "motion-utils@npm:12.29.2" - checksum: 10/ae5f9be58c07939af72334894ed1a18653d724946182a718dc3d11268ef26e63804c3f16dee5a6110596d4406b539c4513822b74f86adebef9488601c34b18b7 +"motion-utils@npm:^12.36.0": + version: 12.36.0 + resolution: "motion-utils@npm:12.36.0" + checksum: 10/c4a2a7ffac48ca44082d6d31b115f245025060a7e69d70dac062646d8f96c39e5662a7c8a51f255566fdf8e719ef1269a8e9aa3a04fc263bb65b5a7b61331901 languageName: node linkType: hard -"motion@npm:^12.31.0": - version: 12.31.0 - resolution: "motion@npm:12.31.0" +"motion@npm:^12.38.0": + version: 12.38.0 + resolution: "motion@npm:12.38.0" dependencies: - framer-motion: "npm:^12.31.0" + framer-motion: "npm:^12.38.0" tslib: "npm:^2.4.0" peerDependencies: "@emotion/is-prop-valid": "*" @@ -21472,7 +21412,7 @@ asn1@evs-broadcast/node-asn1: optional: true react-dom: optional: true - checksum: 10/abb2253b2e679f3d153e472f63e29fa0f3d9d4dd6bb2f2b0c9026897dd069a2371ddc2374bf70debdd480351ad5311e830ebf98e5ea7a44588e44099381e950b + checksum: 10/d7ae2ba3cc112c4467822956b92065239640b9c62204d3bee1780da9fc0147185373534138d39975e82bf73b5f1b28d3fb3581031e4e7e0cfb230472767bd10d languageName: node linkType: hard @@ -21702,7 +21642,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.12, node-fetch@npm:^2.6.5, node-fetch@npm:^2.6.7": +"node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.5, node-fetch@npm:^2.6.7, node-fetch@npm:^2.7.0": version: 2.7.0 resolution: "node-fetch@npm:2.7.0" dependencies: @@ -23043,30 +22983,30 @@ asn1@evs-broadcast/node-asn1: dependencies: "@babel/core": "npm:^7.29.0" "@babel/plugin-transform-modules-commonjs": "npm:^7.28.6" - "@sofie-automation/code-standard-preset": "npm:^3.2.1" + "@sofie-automation/code-standard-preset": "npm:^3.2.2" "@types/amqplib": "npm:0.10.6" - "@types/debug": "npm:^4.1.12" + "@types/debug": "npm:^4.1.13" "@types/ejson": "npm:^2.2.2" "@types/jest": "npm:^30.0.0" - "@types/node": "npm:^22.19.8" + "@types/node": "npm:^22.19.17" "@types/object-path": "npm:^0.11.4" "@types/underscore": "npm:^1.13.0" - babel-jest: "npm:^30.2.0" - eslint: "npm:^9.39.2" + babel-jest: "npm:^30.3.0" + eslint: "npm:^9.39.4" eslint-plugin-react: "npm:^7.37.5" - eslint-plugin-yml: "npm:^3.1.2" - jest: "npm:^30.2.0" - jest-environment-jsdom: "npm:^30.2.0" + eslint-plugin-yml: "npm:^3.3.1" + jest: "npm:^30.3.0" + jest-environment-jsdom: "npm:^30.3.0" jest-mock-extended: "npm:^4.0.0" json-schema-to-typescript: "npm:^15.0.4" lerna: "npm:^9.0.7" nodemon: "npm:^3.1.14" open-cli: "npm:^8.0.0" pinst: "npm:^3.0.0" - prettier: "npm:^3.8.1" - rimraf: "npm:^6.1.2" - semver: "npm:^7.7.3" - ts-jest: "npm:^29.4.6" + prettier: "npm:^3.8.3" + rimraf: "npm:^6.1.3" + semver: "npm:^7.7.4" + ts-jest: "npm:^29.4.9" ts-node: "npm:^10.9.2" typedoc: "npm:^0.27.9" typescript: "npm:~5.7.3" @@ -23500,10 +23440,10 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"path-to-regexp@npm:8.3.0, path-to-regexp@npm:^8.3.0": - version: 8.3.0 - resolution: "path-to-regexp@npm:8.3.0" - checksum: 10/568f148fc64f5fd1ecebf44d531383b28df924214eabf5f2570dce9587a228e36c37882805ff02d71c6209b080ea3ee6a4d2b712b5df09741b67f1f3cf91e55a +"path-to-regexp@npm:8.4.2, path-to-regexp@npm:^8.3.0": + version: 8.4.2 + resolution: "path-to-regexp@npm:8.4.2" + checksum: 10/70fd2cbce0b962cbcf4d312af07818bfce2bae11c09cf3bd86be99c0e30168238a1a7b02b18b452e73f075897df04597d30d63e56da7be41eecfc37998693389 languageName: node linkType: hard @@ -23734,7 +23674,7 @@ asn1@evs-broadcast/node-asn1: influx: "npm:^5.12.0" timeline-state-resolver: "npm:10.0.0-nightly-main-20260415-093148-f35c4cadc.0" tslib: "npm:^2.8.1" - underscore: "npm:^1.13.7" + underscore: "npm:^1.13.8" winston: "npm:^3.19.0" languageName: unknown linkType: soft @@ -24607,12 +24547,12 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"prettier@npm:^3.2.5, prettier@npm:^3.8.1": - version: 3.8.1 - resolution: "prettier@npm:3.8.1" +"prettier@npm:^3.2.5, prettier@npm:^3.8.3": + version: 3.8.3 + resolution: "prettier@npm:3.8.3" bin: prettier: bin/prettier.cjs - checksum: 10/3da1cf8c1ef9bea828aa618553696c312e951f810bee368f6887109b203f18ee869fe88f66e65f9cf60b7cb1f2eae859892c860a300c062ff8ec69c381fc8dbd + checksum: 10/4b3b12cbb29e4c96bed936e5d070167552500c18d37676fb3e0caae6199c42860662608e4dc116230698f6e2bb0267ef2548158224c92d40f188d309d72fdd6f languageName: node linkType: hard @@ -24626,14 +24566,14 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"pretty-format@npm:30.2.0, pretty-format@npm:^30.0.0": - version: 30.2.0 - resolution: "pretty-format@npm:30.2.0" +"pretty-format@npm:30.3.0, pretty-format@npm:^30.0.0": + version: 30.3.0 + resolution: "pretty-format@npm:30.3.0" dependencies: "@jest/schemas": "npm:30.0.5" ansi-styles: "npm:^5.2.0" react-is: "npm:^18.3.1" - checksum: 10/725890d648e3400575eebc99a334a4cd1498e0d36746313913706bbeea20ada27e17c184a3cd45c50f705c16111afa829f3450233fc0fda5eed293c69757e926 + checksum: 10/b288db630841f2464554c5cfa7d7faf519ad7b5c05c3818e764c7cb486bcf59f240ea5576c748f8ca6625623c5856a8906642255bbe89d6cfa1a9090b0fbc6b9 languageName: node linkType: hard @@ -25437,15 +25377,15 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"react-loadable-ssr-addon-v5-slorber@npm:^1.0.1": - version: 1.0.1 - resolution: "react-loadable-ssr-addon-v5-slorber@npm:1.0.1" +"react-loadable-ssr-addon-v5-slorber@npm:^1.0.3": + version: 1.0.3 + resolution: "react-loadable-ssr-addon-v5-slorber@npm:1.0.3" dependencies: "@babel/runtime": "npm:^7.10.3" peerDependencies: react-loadable: "*" webpack: ">=4.41.1 || 5.x" - checksum: 10/d419ff4085ed38e6433e86a2a4c2b58c3b8df6b5d890f5fd5d768fdd3729bd50af31a47e39a40a55c6f508f71c273deb2d964e3ee1362f981cfae9a72ad188cc + checksum: 10/9730c08c87e028819dfa20b5118b68c75bcfd5573b0d36e703edc4a0d4b2674eff6595c17538656e07b70ec612982be50316f49879dd3d226ef558d10a44a5c9 languageName: node linkType: hard @@ -25460,14 +25400,14 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"react-moment@npm:^1.2.1": - version: 1.2.1 - resolution: "react-moment@npm:1.2.1" +"react-moment@npm:^1.2.2": + version: 1.2.2 + resolution: "react-moment@npm:1.2.2" peerDependencies: moment: ^2.29.0 prop-types: ^15.7.0 react: ^16.0 || ^17.0.0 || ^18.0.0 - checksum: 10/c225ee586a8d0ea4c271787ca2af137a51977efad21bbbbd1c9649a953b5fb20a307f76c8f0be2af2f263536f34b328c00ebb75b1647db0dc1110b9d995dca65 + checksum: 10/27bcf9070b043ce5d46530608b3722c1f00697cdcaaba3b10ea2d26d54e47bfb2bb3bfe261f62e310cf9de31cf777958e6f1cc78ed32117e5faf27fe6f1240e8 languageName: node linkType: hard @@ -26346,15 +26286,15 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"rimraf@npm:^6.1.2": - version: 6.1.2 - resolution: "rimraf@npm:6.1.2" +"rimraf@npm:^6.1.3": + version: 6.1.3 + resolution: "rimraf@npm:6.1.3" dependencies: - glob: "npm:^13.0.0" + glob: "npm:^13.0.3" package-json-from-dist: "npm:^1.0.1" bin: rimraf: dist/esm/bin.mjs - checksum: 10/add8e566fe903f59d7b55c6c2382320c48302778640d1951baf247b3b451af496c2dee7195c204a8c646fd6327feadd1f5b61ce68c1362d4898075a726d83cc6 + checksum: 10/dd98ec2ad7cd2cccae1c7110754d472eac8edb2bab8a8b057dce04edfe1433dab246a889b3fd85a66c78ca81caa1429caa0e736c7647f6832b04fd5d4dfb8ab8 languageName: node linkType: hard @@ -26636,162 +26576,162 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"sass-embedded-all-unknown@npm:1.97.3": - version: 1.97.3 - resolution: "sass-embedded-all-unknown@npm:1.97.3" +"sass-embedded-all-unknown@npm:1.99.0": + version: 1.99.0 + resolution: "sass-embedded-all-unknown@npm:1.99.0" dependencies: - sass: "npm:1.97.3" + sass: "npm:1.99.0" conditions: (!cpu=arm | !cpu=arm64 | !cpu=riscv64 | !cpu=x64) languageName: node linkType: hard -"sass-embedded-android-arm64@npm:1.97.3": - version: 1.97.3 - resolution: "sass-embedded-android-arm64@npm:1.97.3" +"sass-embedded-android-arm64@npm:1.99.0": + version: 1.99.0 + resolution: "sass-embedded-android-arm64@npm:1.99.0" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"sass-embedded-android-arm@npm:1.97.3": - version: 1.97.3 - resolution: "sass-embedded-android-arm@npm:1.97.3" +"sass-embedded-android-arm@npm:1.99.0": + version: 1.99.0 + resolution: "sass-embedded-android-arm@npm:1.99.0" conditions: os=android & cpu=arm languageName: node linkType: hard -"sass-embedded-android-riscv64@npm:1.97.3": - version: 1.97.3 - resolution: "sass-embedded-android-riscv64@npm:1.97.3" +"sass-embedded-android-riscv64@npm:1.99.0": + version: 1.99.0 + resolution: "sass-embedded-android-riscv64@npm:1.99.0" conditions: os=android & cpu=riscv64 languageName: node linkType: hard -"sass-embedded-android-x64@npm:1.97.3": - version: 1.97.3 - resolution: "sass-embedded-android-x64@npm:1.97.3" +"sass-embedded-android-x64@npm:1.99.0": + version: 1.99.0 + resolution: "sass-embedded-android-x64@npm:1.99.0" conditions: os=android & cpu=x64 languageName: node linkType: hard -"sass-embedded-darwin-arm64@npm:1.97.3": - version: 1.97.3 - resolution: "sass-embedded-darwin-arm64@npm:1.97.3" +"sass-embedded-darwin-arm64@npm:1.99.0": + version: 1.99.0 + resolution: "sass-embedded-darwin-arm64@npm:1.99.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"sass-embedded-darwin-x64@npm:1.97.3": - version: 1.97.3 - resolution: "sass-embedded-darwin-x64@npm:1.97.3" +"sass-embedded-darwin-x64@npm:1.99.0": + version: 1.99.0 + resolution: "sass-embedded-darwin-x64@npm:1.99.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"sass-embedded-linux-arm64@npm:1.97.3": - version: 1.97.3 - resolution: "sass-embedded-linux-arm64@npm:1.97.3" +"sass-embedded-linux-arm64@npm:1.99.0": + version: 1.99.0 + resolution: "sass-embedded-linux-arm64@npm:1.99.0" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"sass-embedded-linux-arm@npm:1.97.3": - version: 1.97.3 - resolution: "sass-embedded-linux-arm@npm:1.97.3" +"sass-embedded-linux-arm@npm:1.99.0": + version: 1.99.0 + resolution: "sass-embedded-linux-arm@npm:1.99.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"sass-embedded-linux-musl-arm64@npm:1.97.3": - version: 1.97.3 - resolution: "sass-embedded-linux-musl-arm64@npm:1.97.3" +"sass-embedded-linux-musl-arm64@npm:1.99.0": + version: 1.99.0 + resolution: "sass-embedded-linux-musl-arm64@npm:1.99.0" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"sass-embedded-linux-musl-arm@npm:1.97.3": - version: 1.97.3 - resolution: "sass-embedded-linux-musl-arm@npm:1.97.3" +"sass-embedded-linux-musl-arm@npm:1.99.0": + version: 1.99.0 + resolution: "sass-embedded-linux-musl-arm@npm:1.99.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"sass-embedded-linux-musl-riscv64@npm:1.97.3": - version: 1.97.3 - resolution: "sass-embedded-linux-musl-riscv64@npm:1.97.3" +"sass-embedded-linux-musl-riscv64@npm:1.99.0": + version: 1.99.0 + resolution: "sass-embedded-linux-musl-riscv64@npm:1.99.0" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"sass-embedded-linux-musl-x64@npm:1.97.3": - version: 1.97.3 - resolution: "sass-embedded-linux-musl-x64@npm:1.97.3" +"sass-embedded-linux-musl-x64@npm:1.99.0": + version: 1.99.0 + resolution: "sass-embedded-linux-musl-x64@npm:1.99.0" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"sass-embedded-linux-riscv64@npm:1.97.3": - version: 1.97.3 - resolution: "sass-embedded-linux-riscv64@npm:1.97.3" +"sass-embedded-linux-riscv64@npm:1.99.0": + version: 1.99.0 + resolution: "sass-embedded-linux-riscv64@npm:1.99.0" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"sass-embedded-linux-x64@npm:1.97.3": - version: 1.97.3 - resolution: "sass-embedded-linux-x64@npm:1.97.3" +"sass-embedded-linux-x64@npm:1.99.0": + version: 1.99.0 + resolution: "sass-embedded-linux-x64@npm:1.99.0" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"sass-embedded-unknown-all@npm:1.97.3": - version: 1.97.3 - resolution: "sass-embedded-unknown-all@npm:1.97.3" +"sass-embedded-unknown-all@npm:1.99.0": + version: 1.99.0 + resolution: "sass-embedded-unknown-all@npm:1.99.0" dependencies: - sass: "npm:1.97.3" + sass: "npm:1.99.0" conditions: (!os=android | !os=darwin | !os=linux | !os=win32) languageName: node linkType: hard -"sass-embedded-win32-arm64@npm:1.97.3": - version: 1.97.3 - resolution: "sass-embedded-win32-arm64@npm:1.97.3" +"sass-embedded-win32-arm64@npm:1.99.0": + version: 1.99.0 + resolution: "sass-embedded-win32-arm64@npm:1.99.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"sass-embedded-win32-x64@npm:1.97.3": - version: 1.97.3 - resolution: "sass-embedded-win32-x64@npm:1.97.3" +"sass-embedded-win32-x64@npm:1.99.0": + version: 1.99.0 + resolution: "sass-embedded-win32-x64@npm:1.99.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"sass-embedded@npm:^1.97.3": - version: 1.97.3 - resolution: "sass-embedded@npm:1.97.3" +"sass-embedded@npm:^1.99.0": + version: 1.99.0 + resolution: "sass-embedded@npm:1.99.0" dependencies: "@bufbuild/protobuf": "npm:^2.5.0" colorjs.io: "npm:^0.5.0" - immutable: "npm:^5.0.2" + immutable: "npm:^5.1.5" rxjs: "npm:^7.4.0" - sass-embedded-all-unknown: "npm:1.97.3" - sass-embedded-android-arm: "npm:1.97.3" - sass-embedded-android-arm64: "npm:1.97.3" - sass-embedded-android-riscv64: "npm:1.97.3" - sass-embedded-android-x64: "npm:1.97.3" - sass-embedded-darwin-arm64: "npm:1.97.3" - sass-embedded-darwin-x64: "npm:1.97.3" - sass-embedded-linux-arm: "npm:1.97.3" - sass-embedded-linux-arm64: "npm:1.97.3" - sass-embedded-linux-musl-arm: "npm:1.97.3" - sass-embedded-linux-musl-arm64: "npm:1.97.3" - sass-embedded-linux-musl-riscv64: "npm:1.97.3" - sass-embedded-linux-musl-x64: "npm:1.97.3" - sass-embedded-linux-riscv64: "npm:1.97.3" - sass-embedded-linux-x64: "npm:1.97.3" - sass-embedded-unknown-all: "npm:1.97.3" - sass-embedded-win32-arm64: "npm:1.97.3" - sass-embedded-win32-x64: "npm:1.97.3" + sass-embedded-all-unknown: "npm:1.99.0" + sass-embedded-android-arm: "npm:1.99.0" + sass-embedded-android-arm64: "npm:1.99.0" + sass-embedded-android-riscv64: "npm:1.99.0" + sass-embedded-android-x64: "npm:1.99.0" + sass-embedded-darwin-arm64: "npm:1.99.0" + sass-embedded-darwin-x64: "npm:1.99.0" + sass-embedded-linux-arm: "npm:1.99.0" + sass-embedded-linux-arm64: "npm:1.99.0" + sass-embedded-linux-musl-arm: "npm:1.99.0" + sass-embedded-linux-musl-arm64: "npm:1.99.0" + sass-embedded-linux-musl-riscv64: "npm:1.99.0" + sass-embedded-linux-musl-x64: "npm:1.99.0" + sass-embedded-linux-riscv64: "npm:1.99.0" + sass-embedded-linux-x64: "npm:1.99.0" + sass-embedded-unknown-all: "npm:1.99.0" + sass-embedded-win32-arm64: "npm:1.99.0" + sass-embedded-win32-x64: "npm:1.99.0" supports-color: "npm:^8.1.1" sync-child-process: "npm:^1.0.2" varint: "npm:^6.0.0" @@ -26834,24 +26774,24 @@ asn1@evs-broadcast/node-asn1: optional: true bin: sass: dist/bin/sass.js - checksum: 10/4f15e28b1e0b67da63a1b13b15d0daab3746a266ab1bb0708523a4dd9b3e9fb8d7293547197a6446cbeee0ccb303b26a27a97bbdeed5a5b34bff90c7298ba899 + checksum: 10/c53360f7cf8c1924e78efacf049a99c5082087bfc9f23471b9cc1cd0167644f4b0848f2c6a6b1b59e8273e4fa6e0827b51305c0caefed9ea8418f73514d0f2e0 languageName: node linkType: hard -"sass@npm:1.97.3": - version: 1.97.3 - resolution: "sass@npm:1.97.3" +"sass@npm:1.99.0": + version: 1.99.0 + resolution: "sass@npm:1.99.0" dependencies: "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" - immutable: "npm:^5.0.2" + immutable: "npm:^5.1.5" source-map-js: "npm:>=0.6.2 <2.0.0" dependenciesMeta: "@parcel/watcher": optional: true bin: sass: sass.js - checksum: 10/707ef8e525ed32d375e737346140d4b675f44de208df996c2df3407f5e62f3f38226ea1faf41a9fd4b068201e67b3a7e152b9e9c3b098daa847dd480c735f038 + checksum: 10/93f9d5c3b3e4659fb68a8e90d9637818581b0152dfb543ac159d57bb1e384f6b2009b7ac35ef88883f441cddfabd248fdcbba3fe814f4f23e3bfe58c917787a6 languageName: node linkType: hard @@ -26973,7 +26913,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.3, semver@npm:^7.7.2, semver@npm:^7.7.3": +"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.3, semver@npm:^7.7.2, semver@npm:^7.7.3, semver@npm:^7.7.4": version: 7.7.4 resolution: "semver@npm:7.7.4" bin: @@ -27045,7 +26985,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"serve-handler@npm:^6.1.6": +"serve-handler@npm:^6.1.7": version: 6.1.7 resolution: "serve-handler@npm:6.1.7" dependencies: @@ -27481,11 +27421,11 @@ asn1@evs-broadcast/node-asn1: version: 0.0.0-use.local resolution: "sofie-documentation@workspace:documentation" dependencies: - "@docusaurus/core": "npm:3.9.2" - "@docusaurus/module-type-aliases": "npm:3.9.2" - "@docusaurus/preset-classic": "npm:3.9.2" - "@docusaurus/theme-mermaid": "npm:^3.9.2" - "@docusaurus/types": "npm:3.9.2" + "@docusaurus/core": "npm:3.10.0" + "@docusaurus/module-type-aliases": "npm:3.10.0" + "@docusaurus/preset-classic": "npm:3.10.0" + "@docusaurus/theme-mermaid": "npm:^3.10.0" + "@docusaurus/types": "npm:3.10.0" "@mdx-js/react": "npm:^3.1.1" "@svgr/webpack": "npm:^8.1.0" clsx: "npm:^2.1.1" @@ -28222,18 +28162,6 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"swr@npm:^2.2.5": - version: 2.3.6 - resolution: "swr@npm:2.3.6" - dependencies: - dequal: "npm:^2.0.3" - use-sync-external-store: "npm:^1.4.0" - peerDependencies: - react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - checksum: 10/9948b2d92827c6118b6a66d067fbfd311950d6456180fa7be8ec59aab58634da3d2ba117535ca793c801cf0d676a392c5e48c46f5baf7050b813943d93344388 - languageName: node - linkType: hard - "symbol-tree@npm:^3.2.4": version: 3.2.4 resolution: "symbol-tree@npm:3.2.4" @@ -28485,7 +28413,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"threadedclass@npm:^1.2.1, threadedclass@npm:^1.3.0, threadedclass@npm:^1.4.0": +"threadedclass@npm:^1.2.1, threadedclass@npm:^1.4.0": version: 1.4.0 resolution: "threadedclass@npm:1.4.0" dependencies: @@ -28497,13 +28425,6 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"throttleit@npm:2.1.0": - version: 2.1.0 - resolution: "throttleit@npm:2.1.0" - checksum: 10/a2003947aafc721c4a17e6f07db72dc88a64fa9bba0f9c659f7997d30f9590b3af22dadd6a41851e0e8497d539c33b2935c2c7919cf4255922509af6913c619b - languageName: node - linkType: hard - "through2@npm:^2.0.0": version: 2.0.5 resolution: "through2@npm:2.0.5" @@ -28907,17 +28828,17 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"ts-jest@npm:^29.4.6": - version: 29.4.6 - resolution: "ts-jest@npm:29.4.6" +"ts-jest@npm:^29.4.9": + version: 29.4.9 + resolution: "ts-jest@npm:29.4.9" dependencies: bs-logger: "npm:^0.2.6" fast-json-stable-stringify: "npm:^2.1.0" - handlebars: "npm:^4.7.8" + handlebars: "npm:^4.7.9" json5: "npm:^2.2.3" lodash.memoize: "npm:^4.1.2" make-error: "npm:^1.3.6" - semver: "npm:^7.7.3" + semver: "npm:^7.7.4" type-fest: "npm:^4.41.0" yargs-parser: "npm:^21.1.1" peerDependencies: @@ -28927,7 +28848,7 @@ asn1@evs-broadcast/node-asn1: babel-jest: ^29.0.0 || ^30.0.0 jest: ^29.0.0 || ^30.0.0 jest-util: ^29.0.0 || ^30.0.0 - typescript: ">=4.3 <6" + typescript: ">=4.3 <7" peerDependenciesMeta: "@babel/core": optional: true @@ -28943,7 +28864,7 @@ asn1@evs-broadcast/node-asn1: optional: true bin: ts-jest: cli.js - checksum: 10/e0ff9e13f684166d5331808b288043b8054f49a1c2970480a92ba3caec8d0ff20edd092f2a4e7a3ad8fcb9ba4d674bee10ec7ee75046d8066bbe43a7d16cf72e + checksum: 10/f5e81b1e13fff08da5b92d5a72f984f3393f40df73a1ae54473a780436b95dddb1452c78256e6d70a701c09ea427449657a5fbb3d142dc7e7a82eb192e80c3db languageName: node linkType: hard @@ -29428,7 +29349,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"underscore@npm:^1.13.7, underscore@npm:^1.13.8": +"underscore@npm:^1.13.8": version: 1.13.8 resolution: "underscore@npm:1.13.8" checksum: 10/b50ac5806d059cc180b1bd9adea6f7ed500021f4dc782dfc75d66a90337f6f0506623c1b37863f4a9bf64ffbeb5769b638a54b7f2f5966816189955815953139 @@ -29442,6 +29363,13 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard +"undici-types@npm:~7.19.0": + version: 7.19.2 + resolution: "undici-types@npm:7.19.2" + checksum: 10/05c34c63444c8caca7137f122b29ed50c1d7d05d1e0b2337f423575d3264054c4a0139e47e82e65723d09b97fcad6d8b0223b3550430a9006cc00e72a1e035bf + languageName: node + linkType: hard + "unicode-byte-truncate@npm:^1.0.0": version: 1.0.0 resolution: "unicode-byte-truncate@npm:1.0.0" @@ -29863,15 +29791,6 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"use-sync-external-store@npm:^1.4.0": - version: 1.6.0 - resolution: "use-sync-external-store@npm:1.6.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - checksum: 10/b40ad2847ba220695bff2d4ba4f4d60391c0fb4fb012faa7a4c18eb38b69181936f5edc55a522c4d20a788d1a879b73c3810952c9d0fd128d01cb3f22042c09e - languageName: node - linkType: hard - "utf-8-validate@npm:^6.0.6": version: 6.0.6 resolution: "utf-8-validate@npm:6.0.6" @@ -30086,9 +30005,9 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"vite@npm:^7.3.1": - version: 7.3.1 - resolution: "vite@npm:7.3.1" +"vite@npm:^7.3.2": + version: 7.3.2 + resolution: "vite@npm:7.3.2" dependencies: esbuild: "npm:^0.27.0" fdir: "npm:^6.5.0" @@ -30137,7 +30056,7 @@ asn1@evs-broadcast/node-asn1: optional: true bin: vite: bin/vite.js - checksum: 10/62e48ffa4283b688f0049005405a004447ad38ffc99a0efea4c3aa9b7eed739f7402b43f00668c0ee5a895b684dc953d62f0722d8a92c5b2f6c95f051bceb208 + checksum: 10/c5f7a9a60011c41c836cedf31c8ee7624102aff9b6a7f3aab2ff47639721bba0916f81994c3a3ea6577a16c4f0dfee1e7dbd244e0da8edd5954e3c6d48daaaa2 languageName: node linkType: hard @@ -30888,9 +30807,9 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"ws@npm:^8.13.0, ws@npm:^8.18.0, ws@npm:^8.19.0": - version: 8.19.0 - resolution: "ws@npm:8.19.0" +"ws@npm:^8.13.0, ws@npm:^8.18.0, ws@npm:^8.19.0, ws@npm:^8.20.0": + version: 8.20.0 + resolution: "ws@npm:8.20.0" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -30899,7 +30818,7 @@ asn1@evs-broadcast/node-asn1: optional: true utf-8-validate: optional: true - checksum: 10/26e4901e93abaf73af9f26a93707c95b4845e91a7a347ec8c569e6e9be7f9df066f6c2b817b2d685544e208207898a750b78461e6e8d810c11a370771450c31b + checksum: 10/b7ab934b21ffdea9f25a5af5097e8c1ec7625db553bca026c5a23e35b7c236f3fb89782f2b57fab9da553864512f9aa7d245827ef998d26ffa1b2187a19a6d10 languageName: node linkType: hard @@ -31013,7 +30932,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"yaml@npm:^2.0.0, yaml@npm:^2.6.0, yaml@npm:^2.6.1, yaml@npm:^2.8.2": +"yaml@npm:^2.0.0, yaml@npm:^2.6.0, yaml@npm:^2.6.1, yaml@npm:^2.8.3": version: 2.8.3 resolution: "yaml@npm:2.8.3" bin: @@ -31111,13 +31030,6 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"zod@npm:^4.1.8": - version: 4.1.12 - resolution: "zod@npm:4.1.12" - checksum: 10/c5f04e6ac306515c4db6ef73cf7705f521c7a2107c8c8912416a0658d689f361db9bee829b0bf01ef4a22492f1065c5cbcdb523ce532606ac6792fd714f3c326 - languageName: node - linkType: hard - "zwitch@npm:^2.0.0": version: 2.0.4 resolution: "zwitch@npm:2.0.4" diff --git a/yarn.lock b/yarn.lock index c592785b2b7..004032002b1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,7 +2,7 @@ # Manual changes might be lost - proceed with caution! __metadata: - version: 8 + version: 9 cacheKey: 10 "@arcanis/slice-ansi@npm:^1.1.1": @@ -326,10 +326,10 @@ __metadata: languageName: node linkType: hard -"ansi-regex@npm:^6.0.1": - version: 6.0.1 - resolution: "ansi-regex@npm:6.0.1" - checksum: 10/1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 +"ansi-regex@npm:^6.2.2": + version: 6.2.2 + resolution: "ansi-regex@npm:6.2.2" + checksum: 10/9b17ce2c6daecc75bcd5966b9ad672c23b184dc3ed9bf3c98a0702f0d2f736c15c10d461913568f2cf527a5e64291c7473358885dd493305c84a1cfed66ba94f languageName: node linkType: hard @@ -342,10 +342,10 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.2.1": - version: 6.2.1 - resolution: "ansi-styles@npm:6.2.1" - checksum: 10/70fdf883b704d17a5dfc9cde206e698c16bcd74e7f196ab821511651aee4f9f76c9514bdfa6ca3a27b5e49138b89cb222a28caf3afe4567570139577f991df32 +"ansi-styles@npm:^6.2.1, ansi-styles@npm:^6.2.3": + version: 6.2.3 + resolution: "ansi-styles@npm:6.2.3" + checksum: 10/c49dad7639f3e48859bd51824c93b9eb0db628afc243c51c3dd2410c4a15ede1a83881c6c7341aa2b159c4f90c11befb38f2ba848c07c66c9f9de4bcd7cb9f30 languageName: node linkType: hard @@ -378,10 +378,10 @@ __metadata: dependencies: concurrently: "npm:^9.2.1" husky: "npm:^9.1.7" - lint-staged: "npm:^15.5.2" + lint-staged: "npm:^16.4.0" rimraf: "npm:^6.1.3" semver: "npm:^7.7.4" - snyk-nodejs-lockfile-parser: "npm:^2.6.0" + snyk-nodejs-lockfile-parser: "npm:^2.7.0" languageName: unknown linkType: soft @@ -449,13 +449,6 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^5.4.1": - version: 5.4.1 - resolution: "chalk@npm:5.4.1" - checksum: 10/29df3ffcdf25656fed6e95962e2ef86d14dfe03cd50e7074b06bad9ffbbf6089adbb40f75c00744d843685c8d008adaf3aed31476780312553caf07fa86e5bc7 - languageName: node - linkType: hard - "chownr@npm:^3.0.0": version: 3.0.0 resolution: "chownr@npm:3.0.0" @@ -486,13 +479,13 @@ __metadata: languageName: node linkType: hard -"cli-truncate@npm:^4.0.0": - version: 4.0.0 - resolution: "cli-truncate@npm:4.0.0" +"cli-truncate@npm:^5.0.0": + version: 5.2.0 + resolution: "cli-truncate@npm:5.2.0" dependencies: - slice-ansi: "npm:^5.0.0" - string-width: "npm:^7.0.0" - checksum: 10/d5149175fd25ca985731bdeec46a55ec237475cf74c1a5e103baea696aceb45e372ac4acbaabf1316f06bd62e348123060f8191ffadfeedebd2a70a2a7fb199d + slice-ansi: "npm:^8.0.0" + string-width: "npm:^8.2.0" + checksum: 10/b789b6c2caff1560259aedeb6aaafcf41167d478df418d718a8c92edd6bc5a0ece272b8fb7e7911fbd31cef7b1ac8a30f2b21d90c3174b55a018fe3f2604a137 languageName: node linkType: hard @@ -550,10 +543,10 @@ __metadata: languageName: node linkType: hard -"commander@npm:^13.1.0": - version: 13.1.0 - resolution: "commander@npm:13.1.0" - checksum: 10/d3b4b79e6be8471ddadacbb8cd441fe82154d7da7393b50e76165a9e29ccdb74fa911a186437b9a211d0fc071db6051915c94fb8ef16d77511d898e9dbabc6af +"commander@npm:^14.0.3": + version: 14.0.3 + resolution: "commander@npm:14.0.3" + checksum: 10/dfa9ebe2a433d277de5cb0252d23b10a543d245d892db858d23b516336a835c50fd4f52bee4cd13c705cc8acb6f03dc632c73dd806f7d06d3353eb09953dd17a languageName: node linkType: hard @@ -585,7 +578,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:^4.3.4, debug@npm:^4.4.0": +"debug@npm:^4.3.4": version: 4.4.0 resolution: "debug@npm:4.4.0" dependencies: @@ -723,23 +716,6 @@ __metadata: languageName: node linkType: hard -"execa@npm:^8.0.1": - version: 8.0.1 - resolution: "execa@npm:8.0.1" - dependencies: - cross-spawn: "npm:^7.0.3" - get-stream: "npm:^8.0.1" - human-signals: "npm:^5.0.0" - is-stream: "npm:^3.0.0" - merge-stream: "npm:^2.0.0" - npm-run-path: "npm:^5.1.0" - onetime: "npm:^6.0.0" - signal-exit: "npm:^4.1.0" - strip-final-newline: "npm:^3.0.0" - checksum: 10/d2ab5fe1e2bb92b9788864d0713f1fce9a07c4594e272c0c97bc18c90569897ab262e4ea58d27a694d288227a2e24f16f5e2575b44224ad9983b799dc7f1098d - languageName: node - linkType: hard - "fast-glob@npm:^3.2.2": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" @@ -778,10 +754,10 @@ __metadata: languageName: node linkType: hard -"get-east-asian-width@npm:^1.0.0": - version: 1.3.0 - resolution: "get-east-asian-width@npm:1.3.0" - checksum: 10/8e8e779eb28701db7fdb1c8cab879e39e6ae23f52dadd89c8aed05869671cee611a65d4f8557b83e981428623247d8bc5d0c7a4ef3ea7a41d826e73600112ad8 +"get-east-asian-width@npm:^1.0.0, get-east-asian-width@npm:^1.3.1, get-east-asian-width@npm:^1.5.0": + version: 1.5.0 + resolution: "get-east-asian-width@npm:1.5.0" + checksum: 10/60bc34cd1e975055ab99f0f177e31bed3e516ff7cee9c536474383954a976abaa6b94a51d99ad158ef1e372790fa096cab7d07f166bb0778f6587954c0fbe946 languageName: node linkType: hard @@ -794,13 +770,6 @@ __metadata: languageName: node linkType: hard -"get-stream@npm:^8.0.1": - version: 8.0.1 - resolution: "get-stream@npm:8.0.1" - checksum: 10/dde5511e2e65a48e9af80fea64aff11b4921b14b6e874c6f8294c50975095af08f41bfb0b680c887f28b566dd6ec2cb2f960f9d36a323359be324ce98b766e9e - languageName: node - linkType: hard - "glob-parent@npm:^5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2" @@ -878,13 +847,6 @@ __metadata: languageName: node linkType: hard -"human-signals@npm:^5.0.0": - version: 5.0.0 - resolution: "human-signals@npm:5.0.0" - checksum: 10/30f8870d831cdcd2d6ec0486a7d35d49384996742052cee792854273fa9dd9e7d5db06bb7985d4953e337e10714e994e0302e90dc6848069171b05ec836d65b0 - languageName: node - linkType: hard - "husky@npm:^9.1.7": version: 9.1.7 resolution: "husky@npm:9.1.7" @@ -915,19 +877,12 @@ __metadata: languageName: node linkType: hard -"is-fullwidth-code-point@npm:^4.0.0": - version: 4.0.0 - resolution: "is-fullwidth-code-point@npm:4.0.0" - checksum: 10/8ae89bf5057bdf4f57b346fb6c55e9c3dd2549983d54191d722d5c739397a903012cc41a04ee3403fd872e811243ef91a7c5196da7b5841dc6b6aae31a264a8d - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^5.0.0": - version: 5.0.0 - resolution: "is-fullwidth-code-point@npm:5.0.0" +"is-fullwidth-code-point@npm:^5.0.0, is-fullwidth-code-point@npm:^5.1.0": + version: 5.1.0 + resolution: "is-fullwidth-code-point@npm:5.1.0" dependencies: - get-east-asian-width: "npm:^1.0.0" - checksum: 10/8dfb2d2831b9e87983c136f5c335cd9d14c1402973e357a8ff057904612ed84b8cba196319fabedf9aefe4639e14fe3afe9d9966d1d006ebeb40fe1fed4babe5 + get-east-asian-width: "npm:^1.3.1" + checksum: 10/4700d8a82cb71bd2a2955587b2823c36dc4660eadd4047bfbd070821ddbce8504fc5f9b28725567ecddf405b1e06c6692c9b719f65df6af9ec5262bc11393a6a languageName: node linkType: hard @@ -947,13 +902,6 @@ __metadata: languageName: node linkType: hard -"is-stream@npm:^3.0.0": - version: 3.0.0 - resolution: "is-stream@npm:3.0.0" - checksum: 10/172093fe99119ffd07611ab6d1bcccfe8bc4aa80d864b15f43e63e54b7abc71e779acd69afdb854c4e2a67fdc16ae710e370eda40088d1cfc956a50ed82d8f16 - languageName: node - linkType: hard - "isexe@npm:^2.0.0": version: 2.0.0 resolution: "isexe@npm:2.0.0" @@ -1000,44 +948,33 @@ __metadata: languageName: node linkType: hard -"lilconfig@npm:^3.1.3": - version: 3.1.3 - resolution: "lilconfig@npm:3.1.3" - checksum: 10/b932ce1af94985f0efbe8896e57b1f814a48c8dbd7fc0ef8469785c6303ed29d0090af3ccad7e36b626bfca3a4dc56cc262697e9a8dd867623cf09a39d54e4c3 - languageName: node - linkType: hard - -"lint-staged@npm:^15.5.2": - version: 15.5.2 - resolution: "lint-staged@npm:15.5.2" +"lint-staged@npm:^16.4.0": + version: 16.4.0 + resolution: "lint-staged@npm:16.4.0" dependencies: - chalk: "npm:^5.4.1" - commander: "npm:^13.1.0" - debug: "npm:^4.4.0" - execa: "npm:^8.0.1" - lilconfig: "npm:^3.1.3" - listr2: "npm:^8.2.5" - micromatch: "npm:^4.0.8" - pidtree: "npm:^0.6.0" + commander: "npm:^14.0.3" + listr2: "npm:^9.0.5" + picomatch: "npm:^4.0.3" string-argv: "npm:^0.3.2" - yaml: "npm:^2.7.0" + tinyexec: "npm:^1.0.4" + yaml: "npm:^2.8.2" bin: lint-staged: bin/lint-staged.js - checksum: 10/523c332d6cb6e34972a6530a7a2487307555e784df9466c82f2b8d17c8090a3db561a6362065ae6b63048c25fcb85c9e32057cd0bfb756bf7ab185bea1dbb89c + checksum: 10/eb7aa0d43e321bbf282ce0c693a3db762aa9b8e5bf29419a49c8877a247cd3a14cf8d519f914f8c8dcd2aea73ac83c0bb44fadb97a30004219e060a780dda74e languageName: node linkType: hard -"listr2@npm:^8.2.5": - version: 8.2.5 - resolution: "listr2@npm:8.2.5" +"listr2@npm:^9.0.5": + version: 9.0.5 + resolution: "listr2@npm:9.0.5" dependencies: - cli-truncate: "npm:^4.0.0" + cli-truncate: "npm:^5.0.0" colorette: "npm:^2.0.20" eventemitter3: "npm:^5.0.1" log-update: "npm:^6.1.0" rfdc: "npm:^1.4.1" wrap-ansi: "npm:^9.0.0" - checksum: 10/c76542f18306195e464fe10203ee679a7beafa9bf0dc679ebacb416387cca8f5307c1d8ba35483d26ba611dc2fac5a1529733dce28f2660556082fb7eebb79f9 + checksum: 10/b78ffd60443aed9a8e0fc9162eb941ea4d63210700d61a895eb29348f23fc668327e26bbca87a9e6a6208e7fa96c475fe1f1c6c19b46f376f547e0cba3b935ae languageName: node linkType: hard @@ -1227,13 +1164,6 @@ __metadata: languageName: node linkType: hard -"merge-stream@npm:^2.0.0": - version: 2.0.0 - resolution: "merge-stream@npm:2.0.0" - checksum: 10/6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 - languageName: node - linkType: hard - "merge2@npm:^1.3.0": version: 1.4.1 resolution: "merge2@npm:1.4.1" @@ -1258,13 +1188,6 @@ __metadata: languageName: node linkType: hard -"mimic-fn@npm:^4.0.0": - version: 4.0.0 - resolution: "mimic-fn@npm:4.0.0" - checksum: 10/995dcece15ee29aa16e188de6633d43a3db4611bcf93620e7e62109ec41c79c0f34277165b8ce5e361205049766e371851264c21ac64ca35499acb5421c2ba56 - languageName: node - linkType: hard - "mimic-function@npm:^5.0.0": version: 5.0.1 resolution: "mimic-function@npm:5.0.1" @@ -1332,15 +1255,6 @@ __metadata: languageName: node linkType: hard -"npm-run-path@npm:^5.1.0": - version: 5.3.0 - resolution: "npm-run-path@npm:5.3.0" - dependencies: - path-key: "npm:^4.0.0" - checksum: 10/ae8e7a89da9594fb9c308f6555c73f618152340dcaae423e5fb3620026fefbec463618a8b761920382d666fa7a2d8d240b6fe320e8a6cdd54dc3687e2b659d25 - languageName: node - linkType: hard - "object-hash@npm:^3.0.0": version: 3.0.0 resolution: "object-hash@npm:3.0.0" @@ -1357,15 +1271,6 @@ __metadata: languageName: node linkType: hard -"onetime@npm:^6.0.0": - version: 6.0.0 - resolution: "onetime@npm:6.0.0" - dependencies: - mimic-fn: "npm:^4.0.0" - checksum: 10/0846ce78e440841335d4e9182ef69d5762e9f38aa7499b19f42ea1c4cd40f0b4446094c455c713f9adac3f4ae86f613bb5e30c99e52652764d06a89f709b3788 - languageName: node - linkType: hard - "onetime@npm:^7.0.0": version: 7.0.0 resolution: "onetime@npm:7.0.0" @@ -1435,13 +1340,6 @@ __metadata: languageName: node linkType: hard -"path-key@npm:^4.0.0": - version: 4.0.0 - resolution: "path-key@npm:4.0.0" - checksum: 10/8e6c314ae6d16b83e93032c61020129f6f4484590a777eed709c4a01b50e498822b00f76ceaf94bc64dbd90b327df56ceadce27da3d83393790f1219e07721d7 - languageName: node - linkType: hard - "path-scurry@npm:^2.0.2": version: 2.0.2 resolution: "path-scurry@npm:2.0.2" @@ -1459,12 +1357,10 @@ __metadata: languageName: node linkType: hard -"pidtree@npm:^0.6.0": - version: 0.6.0 - resolution: "pidtree@npm:0.6.0" - bin: - pidtree: bin/pidtree.js - checksum: 10/ea67fb3159e170fd069020e0108ba7712df9f0fd13c8db9b2286762856ddce414fb33932e08df4bfe36e91fe860b51852aee49a6f56eb4714b69634343add5df +"picomatch@npm:^4.0.3": + version: 4.0.4 + resolution: "picomatch@npm:4.0.4" + checksum: 10/f6ef80a3590827ce20378ae110ac78209cc4f74d39236370f1780f957b7ee41c12acde0e4651b90f39983506fd2f5e449994716f516db2e9752924aff8de93ce languageName: node linkType: hard @@ -1615,16 +1511,6 @@ __metadata: languageName: node linkType: hard -"slice-ansi@npm:^5.0.0": - version: 5.0.0 - resolution: "slice-ansi@npm:5.0.0" - dependencies: - ansi-styles: "npm:^6.0.0" - is-fullwidth-code-point: "npm:^4.0.0" - checksum: 10/7e600a2a55e333a21ef5214b987c8358fe28bfb03c2867ff2cbf919d62143d1812ac27b4297a077fdaf27a03da3678e49551c93e35f9498a3d90221908a1180e - languageName: node - linkType: hard - "slice-ansi@npm:^7.1.0": version: 7.1.0 resolution: "slice-ansi@npm:7.1.0" @@ -1635,6 +1521,16 @@ __metadata: languageName: node linkType: hard +"slice-ansi@npm:^8.0.0": + version: 8.0.0 + resolution: "slice-ansi@npm:8.0.0" + dependencies: + ansi-styles: "npm:^6.2.3" + is-fullwidth-code-point: "npm:^5.1.0" + checksum: 10/6a7e146852047e26dd5857b35c767e52906549c580cce0ad2287cc32f54f5a582494f674817fc9ac21b2e4ac1ddeaa85b3dee409782681b465330278890c73a8 + languageName: node + linkType: hard + "snyk-config@npm:^5.2.0": version: 5.3.0 resolution: "snyk-config@npm:5.3.0" @@ -1647,9 +1543,9 @@ __metadata: languageName: node linkType: hard -"snyk-nodejs-lockfile-parser@npm:^2.6.0": - version: 2.6.0 - resolution: "snyk-nodejs-lockfile-parser@npm:2.6.0" +"snyk-nodejs-lockfile-parser@npm:^2.7.0": + version: 2.7.0 + resolution: "snyk-nodejs-lockfile-parser@npm:2.7.0" dependencies: "@snyk/dep-graph": "npm:^2.12.0" "@snyk/error-catalog-nodejs-public": "npm:^5.16.0" @@ -1671,7 +1567,7 @@ __metadata: uuid: "npm:^8.3.0" bin: parse-nodejs-lockfile: bin/index.js - checksum: 10/26541be907bea65136c3bb8513b82d3569b1a0d0dc0c9b4a0f9c20a7d923467a0a26a638cfa7a07e11ebf910e259876d448a2104802130d661f8a2b38867664c + checksum: 10/7ec5c9f7247047945dab4b137f85f26f0cce9ed923544e5acdf6f67e0a24391886090dcfaba894dac2fd293f4d72a7ffc03ec8b578f7e701e7aa98c180a578ba languageName: node linkType: hard @@ -1711,6 +1607,16 @@ __metadata: languageName: node linkType: hard +"string-width@npm:^8.2.0": + version: 8.2.0 + resolution: "string-width@npm:8.2.0" + dependencies: + get-east-asian-width: "npm:^1.5.0" + strip-ansi: "npm:^7.1.2" + checksum: 10/c4f62877ec08fca155e84a260eb4f58f473cfe5169bd1c1e21ffb563d8e0b7f6d705cc3d250f2ed6bb4f30ee9732ad026f54afaac77aa487e3d1dc1b1969e51b + languageName: node + linkType: hard + "strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": version: 6.0.1 resolution: "strip-ansi@npm:6.0.1" @@ -1720,19 +1626,12 @@ __metadata: languageName: node linkType: hard -"strip-ansi@npm:^7.1.0": - version: 7.1.0 - resolution: "strip-ansi@npm:7.1.0" +"strip-ansi@npm:^7.1.0, strip-ansi@npm:^7.1.2": + version: 7.2.0 + resolution: "strip-ansi@npm:7.2.0" dependencies: - ansi-regex: "npm:^6.0.1" - checksum: 10/475f53e9c44375d6e72807284024ac5d668ee1d06010740dec0b9744f2ddf47de8d7151f80e5f6190fc8f384e802fdf9504b76a7e9020c9faee7103623338be2 - languageName: node - linkType: hard - -"strip-final-newline@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-final-newline@npm:3.0.0" - checksum: 10/23ee263adfa2070cd0f23d1ac14e2ed2f000c9b44229aec9c799f1367ec001478469560abefd00c5c99ee6f0b31c137d53ec6029c53e9f32a93804e18c201050 + ansi-regex: "npm:^6.2.2" + checksum: 10/96da3bc6d73cfba1218625a3d66cf7d37a69bf0920d8735b28f9eeaafcdb6c1fe8440e1ae9eb1ba0ca355dbe8702da872e105e2e939fa93e7851b3cb5dd7d316 languageName: node linkType: hard @@ -1767,6 +1666,13 @@ __metadata: languageName: node linkType: hard +"tinyexec@npm:^1.0.4": + version: 1.1.1 + resolution: "tinyexec@npm:1.1.1" + checksum: 10/480bbd7b0cdd73652e1a03ed82cec29cbde7d75e68094b65d289eb31578d467954d81af41f3a6de0bc805f6c22c89a36d24986a6c4c0349fa230dfb3924530a7 + languageName: node + linkType: hard + "tinylogic@npm:^2.0.0": version: 2.0.0 resolution: "tinylogic@npm:2.0.0" @@ -1899,7 +1805,7 @@ __metadata: languageName: node linkType: hard -"yaml@npm:^2.7.0": +"yaml@npm:^2.8.2": version: 2.8.3 resolution: "yaml@npm:2.8.3" bin: From d406b082ad15033949f878f3460cb1709adb5a69 Mon Sep 17 00:00:00 2001 From: Julian Waller Date: Tue, 14 Apr 2026 13:20:36 +0100 Subject: [PATCH 17/23] chore: update more libs --- meteor/package.json | 4 +- meteor/yarn.lock | 305 +++++++++--------- packages/job-worker/package.json | 2 +- .../job-worker/src/__mocks__/collection.ts | 6 +- packages/job-worker/src/db/collection.ts | 4 +- packages/job-worker/src/db/collections.ts | 4 +- packages/package.json | 2 +- packages/yarn.lock | 205 ++++++------ 8 files changed, 257 insertions(+), 275 deletions(-) diff --git a/meteor/package.json b/meteor/package.json index 16f63c41388..e702d91f5ca 100644 --- a/meteor/package.json +++ b/meteor/package.json @@ -46,7 +46,6 @@ "@sofie-automation/meteor-lib": "portal:../packages/meteor-lib", "@sofie-automation/shared-lib": "portal:../packages/shared-lib", "bcrypt": "^6.0.0", - "body-parser": "^1.20.4", "deep-extend": "0.6.0", "deepmerge": "^4.3.1", "elastic-apm-node": "^4.15.0", @@ -75,7 +74,6 @@ "@babel/plugin-transform-modules-commonjs": "^7.28.6", "@shopify/jest-koa-mocks": "^5.3.1", "@sofie-automation/code-standard-preset": "^3.2.2", - "@types/body-parser": "^1.19.6", "@types/deep-extend": "^0.6.2", "@types/jest": "^30.0.0", "@types/koa": "^3.0.2", @@ -97,7 +95,7 @@ "jest": "^30.3.0", "jest-util": "^30.3.0", "legally": "^3.5.10", - "open-cli": "^8.0.0", + "open-cli": "^9.0.0", "prettier": "^3.8.3", "ts-jest": "^29.4.9", "typescript": "~5.7.3", diff --git a/meteor/yarn.lock b/meteor/yarn.lock index 3d817c2136a..bdf83baa95f 100644 --- a/meteor/yarn.lock +++ b/meteor/yarn.lock @@ -418,6 +418,13 @@ __metadata: languageName: node linkType: hard +"@borewit/text-codec@npm:^0.2.1": + version: 0.2.2 + resolution: "@borewit/text-codec@npm:0.2.2" + checksum: 10/c971790a72d9e766286db71f68613d1bac3b8bd9eaba52fbf18a8b17903c095968ed5369efdba378751926440aab93f3dd17c89242ef20525808ddced22d49b8 + languageName: node + linkType: hard + "@colors/colors@npm:1.6.0, @colors/colors@npm:^1.6.0": version: 1.6.0 resolution: "@colors/colors@npm:1.6.0" @@ -1327,7 +1334,7 @@ __metadata: chrono-node: "npm:^2.9.0" deepmerge: "npm:^4.3.1" elastic-apm-node: "npm:^4.15.0" - mongodb: "npm:^6.21.0" + mongodb: "npm:^7.1.1" p-lazy: "npm:^3.1.0" p-timeout: "npm:^4.1.0" superfly-timeline: "npm:9.2.0" @@ -1368,6 +1375,16 @@ __metadata: languageName: node linkType: soft +"@tokenizer/inflate@npm:^0.4.1": + version: 0.4.1 + resolution: "@tokenizer/inflate@npm:0.4.1" + dependencies: + debug: "npm:^4.4.3" + token-types: "npm:^6.1.1" + checksum: 10/27d58757e1a6c004e86f8a5f1a40fe47cb48aa6891864d03de6eab27d42fafc1456f396bc8bc300e16913b0a85f42034d011db0213d17e544ed201a7fc24244e + languageName: node + linkType: hard + "@tokenizer/token@npm:^0.3.0": version: 0.3.0 resolution: "@tokenizer/token@npm:0.3.0" @@ -1434,7 +1451,7 @@ __metadata: languageName: node linkType: hard -"@types/body-parser@npm:*, @types/body-parser@npm:^1.19.6": +"@types/body-parser@npm:*": version: 1.19.6 resolution: "@types/body-parser@npm:1.19.6" dependencies: @@ -1760,12 +1777,12 @@ __metadata: languageName: node linkType: hard -"@types/whatwg-url@npm:^11.0.2": - version: 11.0.5 - resolution: "@types/whatwg-url@npm:11.0.5" +"@types/whatwg-url@npm:^13.0.0": + version: 13.0.0 + resolution: "@types/whatwg-url@npm:13.0.0" dependencies: "@types/webidl-conversions": "npm:*" - checksum: 10/23a0c45aff51817807b473a6adb181d6e3bb0d27dde54e84883d5d5bc93358e95204d2188e7ff7fdc2cdaf157e97e1188ef0a22ec79228da300fc30d4a05b56a + checksum: 10/82018c7dc057dd4b5ee6137e54a659d2d043146eaade8afc2dda472773cc66f2abad73525020a2bf399a09b1bf448504f9e519d6b2d7495e6e781bb5de686753 languageName: node linkType: hard @@ -2505,7 +2522,6 @@ __metadata: "@sofie-automation/job-worker": "portal:../packages/job-worker" "@sofie-automation/meteor-lib": "portal:../packages/meteor-lib" "@sofie-automation/shared-lib": "portal:../packages/shared-lib" - "@types/body-parser": "npm:^1.19.6" "@types/deep-extend": "npm:^0.6.2" "@types/jest": "npm:^30.0.0" "@types/koa": "npm:^3.0.2" @@ -2518,7 +2534,6 @@ __metadata: "@types/underscore": "npm:^1.13.0" babel-jest: "npm:^30.3.0" bcrypt: "npm:^6.0.0" - body-parser: "npm:^1.20.4" commit-and-tag-version: "npm:^12.7.1" deep-extend: "npm:0.6.0" deepmerge: "npm:^4.3.1" @@ -2543,7 +2558,7 @@ __metadata: nanoid: "npm:^3.3.11" ntp-client: "npm:^0.5.3" object-path: "npm:^0.11.8" - open-cli: "npm:^8.0.0" + open-cli: "npm:^9.0.0" p-lazy: "npm:^3.1.0" prettier: "npm:^3.8.3" semver: "npm:^7.7.4" @@ -2742,26 +2757,6 @@ __metadata: languageName: node linkType: hard -"body-parser@npm:^1.20.4": - version: 1.20.4 - resolution: "body-parser@npm:1.20.4" - dependencies: - bytes: "npm:~3.1.2" - content-type: "npm:~1.0.5" - debug: "npm:2.6.9" - depd: "npm:2.0.0" - destroy: "npm:~1.2.0" - http-errors: "npm:~2.0.1" - iconv-lite: "npm:~0.4.24" - on-finished: "npm:~2.4.1" - qs: "npm:~6.14.0" - raw-body: "npm:~2.5.3" - type-is: "npm:~1.6.18" - unpipe: "npm:~1.0.0" - checksum: 10/ff67e28d3f426707be8697a75fdf8d564dc50c341b41f054264d8ab6e2924e519c7ce8acc9d0de05328fdc41e1d9f3f200aec9c1cfb1867d6b676a410d97c689 - languageName: node - linkType: hard - "brace-expansion@npm:^1.1.7": version: 1.1.13 resolution: "brace-expansion@npm:1.1.13" @@ -2895,10 +2890,10 @@ __metadata: languageName: node linkType: hard -"bson@npm:^6.10.4": - version: 6.10.4 - resolution: "bson@npm:6.10.4" - checksum: 10/8a79a452219a13898358a5abc93e32bc3805236334f962661da121ce15bd5cade27718ba3310ee2a143ff508489b08467eed172ecb2a658cb8d2e94fdb76b215 +"bson@npm:^7.1.1": + version: 7.2.0 + resolution: "bson@npm:7.2.0" + checksum: 10/a768e55d328a5961aa1bda0f1d1ea619e8bab911fb72018ca5c779000ae538cfc0cc8082fe75d4e941cb8ee928b6a7377b10bc0eb75872f36cdfaac8380512c6 languageName: node linkType: hard @@ -3394,7 +3389,7 @@ __metadata: languageName: node linkType: hard -"content-type@npm:^1.0.4, content-type@npm:^1.0.5, content-type@npm:~1.0.5": +"content-type@npm:^1.0.4, content-type@npm:^1.0.5": version: 1.0.5 resolution: "content-type@npm:1.0.5" checksum: 10/585847d98dc7fb8035c02ae2cb76c7a9bd7b25f84c447e5ed55c45c2175e83617c8813871b4ee22f368126af6b2b167df655829007b21aa10302873ea9c62662 @@ -3693,15 +3688,6 @@ __metadata: languageName: node linkType: hard -"debug@npm:2.6.9": - version: 2.6.9 - resolution: "debug@npm:2.6.9" - dependencies: - ms: "npm:2.0.0" - checksum: 10/e07005f2b40e04f1bd14a3dd20520e9c4f25f60224cb006ce9d6781732c917964e9ec029fc7f1a151083cd929025ad5133814d4dc624a9aaf020effe4914ed14 - languageName: node - linkType: hard - "debug@npm:4, debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:^4.4.3": version: 4.4.3 resolution: "debug@npm:4.4.3" @@ -3794,13 +3780,13 @@ __metadata: languageName: node linkType: hard -"default-browser@npm:^5.2.1": - version: 5.2.1 - resolution: "default-browser@npm:5.2.1" +"default-browser@npm:^5.4.0": + version: 5.5.0 + resolution: "default-browser@npm:5.5.0" dependencies: bundle-name: "npm:^4.1.0" default-browser-id: "npm:^5.0.0" - checksum: 10/afab7eff7b7f5f7a94d9114d1ec67273d3fbc539edf8c0f80019879d53aa71e867303c6f6d7cffeb10a6f3cfb59d4f963dba3f9c96830b4540cc7339a1bf9840 + checksum: 10/c5c5d84a4abd82850e98f06798a55dee87fc1064538bea00cc14c0fb2dccccbff5e9e07eeea80385fa653202d5d92509838b4239d610ddfa1c76a04a1f65e767 languageName: node linkType: hard @@ -3847,13 +3833,6 @@ __metadata: languageName: node linkType: hard -"depd@npm:2.0.0, depd@npm:^2.0.0, depd@npm:~2.0.0": - version: 2.0.0 - resolution: "depd@npm:2.0.0" - checksum: 10/c0c8ff36079ce5ada64f46cc9d6fd47ebcf38241105b6e0c98f412e8ad91f084bcf906ff644cc3a4bd876ca27a62accb8b0fff72ea6ed1a414b89d8506f4a5ca - languageName: node - linkType: hard - "depd@npm:^1.1.0, depd@npm:~1.1.2": version: 1.1.2 resolution: "depd@npm:1.1.2" @@ -3861,6 +3840,13 @@ __metadata: languageName: node linkType: hard +"depd@npm:^2.0.0, depd@npm:~2.0.0": + version: 2.0.0 + resolution: "depd@npm:2.0.0" + checksum: 10/c0c8ff36079ce5ada64f46cc9d6fd47ebcf38241105b6e0c98f412e8ad91f084bcf906ff644cc3a4bd876ca27a62accb8b0fff72ea6ed1a414b89d8506f4a5ca + languageName: node + linkType: hard + "des.js@npm:^1.0.0": version: 1.1.0 resolution: "des.js@npm:1.1.0" @@ -3871,7 +3857,7 @@ __metadata: languageName: node linkType: hard -"destroy@npm:^1.0.4, destroy@npm:^1.2.0, destroy@npm:~1.2.0": +"destroy@npm:^1.0.4, destroy@npm:^1.2.0": version: 1.2.0 resolution: "destroy@npm:1.2.0" checksum: 10/0acb300b7478a08b92d810ab229d5afe0d2f4399272045ab22affa0d99dbaf12637659411530a6fcd597a9bdac718fc94373a61a95b4651bbc7b83684a565e38 @@ -4728,14 +4714,15 @@ __metadata: languageName: node linkType: hard -"file-type@npm:^18.7.0": - version: 18.7.0 - resolution: "file-type@npm:18.7.0" +"file-type@npm:^21.3.4": + version: 21.3.4 + resolution: "file-type@npm:21.3.4" dependencies: - readable-web-to-node-stream: "npm:^3.0.2" - strtok3: "npm:^7.0.0" - token-types: "npm:^5.0.1" - checksum: 10/95b70313d697484bb9613dd822a29554e9754b49f4d62f17e399649c981a12556776b4ee83b0a62b752fc9048ac79f6cf79ad13b2a750d89afa170902c7b0029 + "@tokenizer/inflate": "npm:^0.4.1" + strtok3: "npm:^10.3.4" + token-types: "npm:^6.1.1" + uint8array-extras: "npm:^1.4.0" + checksum: 10/42d5cf6aafb998fb2f0357e96ea7c48bcce5249f899523a3a5a4c297f4fe2346cc0aff9cf04243ada5c54b6457183550b2a04902b6533cd5e64aaa344d78e0eb languageName: node linkType: hard @@ -5008,13 +4995,6 @@ __metadata: languageName: node linkType: hard -"get-stdin@npm:^9.0.0": - version: 9.0.0 - resolution: "get-stdin@npm:9.0.0" - checksum: 10/5972bc34d05932b45512c8e2d67b040f1c1ca8afb95c56cbc480985f2d761b7e37fe90dc8abd22527f062cc5639a6930ff346e9952ae4c11a2d4275869459594 - languageName: node - linkType: hard - "get-stream@npm:^6.0.0": version: 6.0.1 resolution: "get-stream@npm:6.0.1" @@ -5857,6 +5837,13 @@ __metadata: languageName: node linkType: hard +"is-in-ssh@npm:^1.0.0": + version: 1.0.0 + resolution: "is-in-ssh@npm:1.0.0" + checksum: 10/d55cb39afdbca0cdc94cd493da7819c00d35048ea04fc1624aabde6e0c86aa6b91ddb38b2baf73c4b5d53cc8fbf1a8dfbf2e315594a808474b751ffb6b0d3e58 + languageName: node + linkType: hard + "is-inside-container@npm:^1.0.0": version: 1.0.0 resolution: "is-inside-container@npm:1.0.0" @@ -7165,13 +7152,6 @@ __metadata: languageName: node linkType: hard -"meow@npm:^12.1.1": - version: 12.1.1 - resolution: "meow@npm:12.1.1" - checksum: 10/8594c319f4671a562c1fef584422902f1bbbad09ea49cdf9bb26dc92f730fa33398dd28a8cf34fcf14167f1d1148d05a867e50911fc4286751a4fb662fdd2dc2 - languageName: node - linkType: hard - "meow@npm:^13.2.0": version: 13.2.0 resolution: "meow@npm:13.2.0" @@ -7179,6 +7159,13 @@ __metadata: languageName: node linkType: hard +"meow@npm:^14.1.0": + version: 14.1.0 + resolution: "meow@npm:14.1.0" + checksum: 10/c6a22b3912a6bc849dee0d6475cd8bb63b9307e26919ca3ace28dc1aaf3d30257071de32bba496f7b5eec3e62b03a6b7731e3d04d18efb3c3103b829aad52ca5 + languageName: node + linkType: hard + "meow@npm:^8.1.2": version: 8.1.2 resolution: "meow@npm:8.1.2" @@ -7494,31 +7481,31 @@ __metadata: languageName: node linkType: hard -"mongodb-connection-string-url@npm:^3.0.2": - version: 3.0.2 - resolution: "mongodb-connection-string-url@npm:3.0.2" +"mongodb-connection-string-url@npm:^7.0.0": + version: 7.0.1 + resolution: "mongodb-connection-string-url@npm:7.0.1" dependencies: - "@types/whatwg-url": "npm:^11.0.2" - whatwg-url: "npm:^14.1.0 || ^13.0.0" - checksum: 10/99ac939a67cc963b90cfe70a8e45250a8386c531be7d22ffa5d1f3e5dd2406b149fb823b91ac161e4a4a29dfac754b49bca8f6dd786cfc66ae0ca80db5f5f23d + "@types/whatwg-url": "npm:^13.0.0" + whatwg-url: "npm:^14.1.0" + checksum: 10/6b48e3d0674d375163613617bdecbc18860bfaa8635873cef8a2eb41cb04a317b5f541b8f732664d03c098f9937c02c3eb013289e124f6473a44ed3aa6daceee languageName: node linkType: hard -"mongodb@npm:^6.21.0": - version: 6.21.0 - resolution: "mongodb@npm:6.21.0" +"mongodb@npm:^7.1.1": + version: 7.1.1 + resolution: "mongodb@npm:7.1.1" dependencies: "@mongodb-js/saslprep": "npm:^1.3.0" - bson: "npm:^6.10.4" - mongodb-connection-string-url: "npm:^3.0.2" + bson: "npm:^7.1.1" + mongodb-connection-string-url: "npm:^7.0.0" peerDependencies: - "@aws-sdk/credential-providers": ^3.188.0 - "@mongodb-js/zstd": ^1.1.0 || ^2.0.0 - gcp-metadata: ^5.2.0 - kerberos: ^2.0.1 - mongodb-client-encryption: ">=6.0.0 <7" + "@aws-sdk/credential-providers": ^3.806.0 + "@mongodb-js/zstd": ^7.0.0 + gcp-metadata: ^7.0.1 + kerberos: ^7.0.0 + mongodb-client-encryption: ">=7.0.0 <7.1.0" snappy: ^7.3.2 - socks: ^2.7.1 + socks: ^2.8.6 peerDependenciesMeta: "@aws-sdk/credential-providers": optional: true @@ -7534,7 +7521,7 @@ __metadata: optional: true socks: optional: true - checksum: 10/28d2cab1c55c4cf58e410529ac6ae4c79a233adeb2147ba872d912819a0b496ee2dc5b9819ccbf0527618ced3b841e733b221fd1c627901e8e87ae60a8dc0553 + checksum: 10/e6085e2815d70e86aca235f0445b63bcdb5a29584244bffdda1be96642982a044d15ab95874d514409f6097cc8f790f5aad75009c6c315bd382e81ec06d71c01 languageName: node linkType: hard @@ -7545,13 +7532,6 @@ __metadata: languageName: node linkType: hard -"ms@npm:2.0.0": - version: 2.0.0 - resolution: "ms@npm:2.0.0" - checksum: 10/0e6a22b8b746d2e0b65a430519934fefd41b6db0682e3477c10f60c76e947c4c0ad06f63ffdf1d78d335f83edee8c0aa928aa66a36c7cd95b69b26f468d527f4 - languageName: node - linkType: hard - "ms@npm:^2.0.0, ms@npm:^2.1.1, ms@npm:^2.1.3": version: 2.1.3 resolution: "ms@npm:2.1.3" @@ -7869,7 +7849,7 @@ __metadata: languageName: node linkType: hard -"on-finished@npm:^2.3.0, on-finished@npm:^2.4.1, on-finished@npm:~2.4.1": +"on-finished@npm:^2.3.0, on-finished@npm:^2.4.1": version: 2.4.1 resolution: "on-finished@npm:2.4.1" dependencies: @@ -7912,30 +7892,31 @@ __metadata: languageName: node linkType: hard -"open-cli@npm:^8.0.0": - version: 8.0.0 - resolution: "open-cli@npm:8.0.0" +"open-cli@npm:^9.0.0": + version: 9.0.0 + resolution: "open-cli@npm:9.0.0" dependencies: - file-type: "npm:^18.7.0" - get-stdin: "npm:^9.0.0" - meow: "npm:^12.1.1" - open: "npm:^10.0.0" - tempy: "npm:^3.1.0" + file-type: "npm:^21.3.4" + meow: "npm:^14.1.0" + open: "npm:^11.0.0" + tempy: "npm:^3.2.0" bin: open-cli: cli.js - checksum: 10/2206724f05975c0a271c20e20de77877bc247cde89791a08e2bcc805766ae23a6eccf384dad7de20a44b285a164005decf4b16e3f9b91433be74d711ad207f7c + checksum: 10/a4b79287f20c87bdaf24d0add83c3a63d287cd157b7c5265e7d25be79bb448f341605bed9230e50df87ec4eb783ec1e2f756e4889a03e0dd19bb5ed5d221497b languageName: node linkType: hard -"open@npm:^10.0.0": - version: 10.1.0 - resolution: "open@npm:10.1.0" +"open@npm:^11.0.0": + version: 11.0.0 + resolution: "open@npm:11.0.0" dependencies: - default-browser: "npm:^5.2.1" + default-browser: "npm:^5.4.0" define-lazy-prop: "npm:^3.0.0" + is-in-ssh: "npm:^1.0.0" is-inside-container: "npm:^1.0.0" - is-wsl: "npm:^3.1.0" - checksum: 10/a9c4105243a1b3c5312bf2aeb678f78d31f00618b5100088ee01eed2769963ea1f2dd464ac8d93cef51bba2d911e1a9c0c34a753ec7b91d6b22795903ea6647a + powershell-utils: "npm:^0.1.0" + wsl-utils: "npm:^0.3.0" + checksum: 10/d4572cd0c1f40fe1713edce9e3812367acbfaac0e909a68be0ee0b5acf4ee0a567d01d432dc2d708a55aab684002ab47fe13c679213fb749fe096b77a5d8e51b languageName: node linkType: hard @@ -8281,13 +8262,6 @@ __metadata: languageName: node linkType: hard -"peek-readable@npm:^5.0.0": - version: 5.0.0 - resolution: "peek-readable@npm:5.0.0" - checksum: 10/d342f02dd0c8a6b4bd0e7519a93d545b2b19375200e79a7431f0f1ec3f91e22b2217fa3a15cde95f6ab388ce6fce8aae75794d84b9b39c5836eb7c5f55e7ee9e - languageName: node - linkType: hard - "picocolors@npm:^1.1.1": version: 1.1.1 resolution: "picocolors@npm:1.1.1" @@ -8384,6 +8358,13 @@ __metadata: languageName: node linkType: hard +"powershell-utils@npm:^0.1.0": + version: 0.1.0 + resolution: "powershell-utils@npm:0.1.0" + checksum: 10/4cc0846bc903ef9c8ac8cc9d178185d5972160a6c8776d44cf4c27ce31c0b614fc7cd20a53e8fcaf7f5296cdb34087a5d4396bdd863492972c84f76f3cadef67 + languageName: node + linkType: hard + "prelude-ls@npm:^1.2.1": version: 1.2.1 resolution: "prelude-ls@npm:1.2.1" @@ -8510,7 +8491,7 @@ __metadata: languageName: node linkType: hard -"qs@npm:^6.12.3, qs@npm:^6.5.2, qs@npm:~6.14.0": +"qs@npm:^6.12.3, qs@npm:^6.5.2": version: 6.14.2 resolution: "qs@npm:6.14.2" dependencies: @@ -8580,7 +8561,7 @@ __metadata: languageName: node linkType: hard -"raw-body@npm:^2.3.3, raw-body@npm:~2.5.3": +"raw-body@npm:^2.3.3": version: 2.5.3 resolution: "raw-body@npm:2.5.3" dependencies: @@ -8736,15 +8717,6 @@ __metadata: languageName: node linkType: hard -"readable-web-to-node-stream@npm:^3.0.2": - version: 3.0.2 - resolution: "readable-web-to-node-stream@npm:3.0.2" - dependencies: - readable-stream: "npm:^3.6.0" - checksum: 10/d3a5bf9d707c01183d546a64864aa63df4d9cb835dfd2bf89ac8305e17389feef2170c4c14415a10d38f9b9bfddf829a57aaef7c53c8b40f11d499844bf8f1a4 - languageName: node - linkType: hard - "readdir-scoped-modules@npm:^1.0.0": version: 1.1.0 resolution: "readdir-scoped-modules@npm:1.1.0" @@ -9610,13 +9582,12 @@ __metadata: languageName: node linkType: hard -"strtok3@npm:^7.0.0": - version: 7.0.0 - resolution: "strtok3@npm:7.0.0" +"strtok3@npm:^10.3.4": + version: 10.3.5 + resolution: "strtok3@npm:10.3.5" dependencies: "@tokenizer/token": "npm:^0.3.0" - peek-readable: "npm:^5.0.0" - checksum: 10/4f2269679fcfce1e9fe0600eff361ea4c687ae0a0e8d9dab6703811071cd92545cbcb32d4ace3d3aa591f777cec1a3e8aeecd5efd71ae216fd2962a7a238b4ab + checksum: 10/7279dc97a7207a5664ea07cf5304b94968db4f02d64d2732be8e7a3a31a876375126749cd36a00d0bd54c891875f3e47175f8194d40c64118f3265dbc241aaca languageName: node linkType: hard @@ -9717,15 +9688,15 @@ __metadata: languageName: node linkType: hard -"tempy@npm:^3.1.0": - version: 3.1.0 - resolution: "tempy@npm:3.1.0" +"tempy@npm:^3.2.0": + version: 3.2.0 + resolution: "tempy@npm:3.2.0" dependencies: is-stream: "npm:^3.0.0" temp-dir: "npm:^3.0.0" type-fest: "npm:^2.12.2" unique-string: "npm:^3.0.0" - checksum: 10/f5540bc24dcd9d41ab0b31e9eed73c3ef825080f1c8b1e854e4b73059155c889f72f5f7c15e8cd462d59aa10c9726e423c81d6a365d614b538c6cc78a1209cc6 + checksum: 10/02ed53acb75719924c83bdd04e99ceb5bbae009b68ab24934750f5bcf26d8da251d4ee19f24cea749206af4051a0fd1cab060f63264f384dc0aaae150bf72bf4 languageName: node linkType: hard @@ -9871,13 +9842,14 @@ __metadata: languageName: node linkType: hard -"token-types@npm:^5.0.1": - version: 5.0.1 - resolution: "token-types@npm:5.0.1" +"token-types@npm:^6.1.1": + version: 6.1.2 + resolution: "token-types@npm:6.1.2" dependencies: + "@borewit/text-codec": "npm:^0.2.1" "@tokenizer/token": "npm:^0.3.0" ieee754: "npm:^1.2.1" - checksum: 10/0985369bbea9f53a5ccd79bb9899717b41401a813deb2c7fb1add5d0baf2f702aaf6da78f6e0ccf346d5a9f7acaa7cb5efed7d092d89d8c1e6962959e9509bc0 + checksum: 10/0c7811a2da5a0ca474c795d883d871a184d1d54f67058d66084110f0b246fff66151885dbcb91d66533e776478bf57f3b4fac69ce03b805a0e1060def87947de languageName: node linkType: hard @@ -9890,12 +9862,12 @@ __metadata: languageName: node linkType: hard -"tr46@npm:^5.0.0": - version: 5.0.0 - resolution: "tr46@npm:5.0.0" +"tr46@npm:^5.1.0": + version: 5.1.1 + resolution: "tr46@npm:5.1.1" dependencies: punycode: "npm:^2.3.1" - checksum: 10/29155adb167d048d3c95d181f7cb5ac71948b4e8f3070ec455986e1f34634acae50ae02a3c8d448121c3afe35b76951cd46ed4c128fd80264280ca9502237a3e + checksum: 10/833a0e1044574da5790148fd17866d4ddaea89e022de50279967bcd6b28b4ce0d30d59eb3acf9702b60918975b3bad481400337e3a2e6326cffa5c77b874753d languageName: node linkType: hard @@ -10073,7 +10045,7 @@ __metadata: languageName: node linkType: hard -"type-is@npm:^1.6.16, type-is@npm:^1.6.18, type-is@npm:~1.6.18": +"type-is@npm:^1.6.16, type-is@npm:^1.6.18": version: 1.6.18 resolution: "type-is@npm:1.6.18" dependencies: @@ -10192,6 +10164,13 @@ __metadata: languageName: node linkType: hard +"uint8array-extras@npm:^1.4.0": + version: 1.5.0 + resolution: "uint8array-extras@npm:1.5.0" + checksum: 10/94fd56a2dda6a7445f5176f301f491814c87757d38e4b3c932299ab54d69ec504830e5d5c18ffa20cf694a69a210315be8b4a2c9952c6334da817ea2d2e1dce0 + languageName: node + linkType: hard + "unbox-primitive@npm:^1.0.2": version: 1.0.2 resolution: "unbox-primitive@npm:1.0.2" @@ -10544,13 +10523,13 @@ __metadata: languageName: node linkType: hard -"whatwg-url@npm:^14.1.0 || ^13.0.0": - version: 14.1.0 - resolution: "whatwg-url@npm:14.1.0" +"whatwg-url@npm:^14.1.0": + version: 14.2.0 + resolution: "whatwg-url@npm:14.2.0" dependencies: - tr46: "npm:^5.0.0" + tr46: "npm:^5.1.0" webidl-conversions: "npm:^7.0.0" - checksum: 10/3afd325de6cf3a367820ce7c3566a1f78eb1409c4f27b1867c74c76dab096d26acedf49a8b9b71db53df7d806ec2e9ae9ed96990b2f7d1abe6ecf1fe753af6eb + checksum: 10/f0a95b0601c64f417c471536a2d828b4c16fe37c13662483a32f02f183ed0f441616609b0663fb791e524e8cd56d9a86dd7366b1fc5356048ccb09b576495e7c languageName: node linkType: hard @@ -10691,6 +10670,16 @@ __metadata: languageName: node linkType: hard +"wsl-utils@npm:^0.3.0": + version: 0.3.1 + resolution: "wsl-utils@npm:0.3.1" + dependencies: + is-wsl: "npm:^3.1.0" + powershell-utils: "npm:^0.1.0" + checksum: 10/46800b92fa4974f2a846a93f0b8c409a455c35897d001a7599b5524766b603c8fb0945d2b21ad6ad27d4b0ae7e72ca2e58d832ccfcaabf659399921c6448b1d0 + languageName: node + linkType: hard + "xml-js@npm:^1.6.11": version: 1.6.11 resolution: "xml-js@npm:1.6.11" diff --git a/packages/job-worker/package.json b/packages/job-worker/package.json index 091664c0676..8bcadf6162b 100644 --- a/packages/job-worker/package.json +++ b/packages/job-worker/package.json @@ -43,7 +43,7 @@ "chrono-node": "^2.9.0", "deepmerge": "^4.3.1", "elastic-apm-node": "^4.15.0", - "mongodb": "^6.21.0", + "mongodb": "^7.1.1", "p-lazy": "^3.1.0", "p-timeout": "^4.1.0", "superfly-timeline": "9.2.0", diff --git a/packages/job-worker/src/__mocks__/collection.ts b/packages/job-worker/src/__mocks__/collection.ts index f1f31853c4f..d8a0b086ef6 100644 --- a/packages/job-worker/src/__mocks__/collection.ts +++ b/packages/job-worker/src/__mocks__/collection.ts @@ -87,13 +87,13 @@ export class MockMongoCollection }> imp this.#ops.length = 0 } - async findFetch(selector?: MongoQuery, options?: FindOptions): Promise { + async findFetch(selector?: MongoQuery, options?: FindOptions): Promise { this.#ops.push({ type: 'findFetch', args: [selector, options] }) return this.findFetchInner(selector, options) } - private async findFetchInner(selector?: MongoQuery, options?: FindOptions): Promise { + private async findFetchInner(selector?: MongoQuery, options?: FindOptions): Promise { if (typeof selector === 'string') selector = { _id: selector } selector = selector ?? {} @@ -153,7 +153,7 @@ export class MockMongoCollection }> imp return clone(matchedDocs) } - async findOne(selector?: MongoQuery | TDoc['_id'], options?: FindOptions): Promise { + async findOne(selector?: MongoQuery | TDoc['_id'], options?: FindOptions): Promise { this.#ops.push({ type: 'findOne', args: [selector, options] }) const docs = await this.findFetchInner(selector, { diff --git a/packages/job-worker/src/db/collection.ts b/packages/job-worker/src/db/collection.ts index 54925c82eee..913d8ce9fc2 100644 --- a/packages/job-worker/src/db/collection.ts +++ b/packages/job-worker/src/db/collection.ts @@ -28,7 +28,7 @@ class WrappedCollection }> implements I return this.#collection } - async findFetch(selector: MongoQuery, options?: FindOptions): Promise> { + async findFetch(selector: MongoQuery, options?: FindOptions): Promise> { const span = startSpanManual('WrappedCollection.findFetch') if (span) { span.addLabels({ @@ -41,7 +41,7 @@ class WrappedCollection }> implements I return res as any } - async findOne(selector: MongoQuery | TDoc['_id'], options?: FindOptions): Promise { + async findOne(selector: MongoQuery | TDoc['_id'], options?: FindOptions): Promise { const span = startSpanManual('WrappedCollection.findOne') if (span) { span.addLabels({ diff --git a/packages/job-worker/src/db/collections.ts b/packages/job-worker/src/db/collections.ts index 23b54ebaee2..b531a80a6b4 100644 --- a/packages/job-worker/src/db/collections.ts +++ b/packages/job-worker/src/db/collections.ts @@ -53,8 +53,8 @@ export interface IReadOnlyCollection }> readonly rawCollection: MongoCollection - findFetch(selector?: MongoQuery, options?: FindOptions): Promise> - findOne(selector?: MongoQuery | TDoc['_id'], options?: FindOptions): Promise + findFetch(selector?: MongoQuery, options?: FindOptions): Promise> + findOne(selector?: MongoQuery | TDoc['_id'], options?: FindOptions): Promise count(selector?: MongoQuery | TDoc['_id'], options?: CountOptions): Promise /** diff --git a/packages/package.json b/packages/package.json index 947f707ab1a..ba0433a1c74 100644 --- a/packages/package.json +++ b/packages/package.json @@ -61,7 +61,7 @@ "json-schema-to-typescript": "^15.0.4", "lerna": "^9.0.7", "nodemon": "^3.1.14", - "open-cli": "^8.0.0", + "open-cli": "^9.0.0", "pinst": "^3.0.0", "prettier": "^3.8.3", "rimraf": "^6.1.3", diff --git a/packages/yarn.lock b/packages/yarn.lock index c2187f0e05d..ced01509e70 100644 --- a/packages/yarn.lock +++ b/packages/yarn.lock @@ -7076,7 +7076,7 @@ __metadata: elastic-apm-node: "npm:^4.15.0" jest: "npm:^30.3.0" jest-mock-extended: "npm:^4.0.0" - mongodb: "npm:^6.21.0" + mongodb: "npm:^7.1.1" p-lazy: "npm:^3.1.0" p-timeout: "npm:^4.1.0" superfly-timeline: "npm:9.2.0" @@ -8907,12 +8907,12 @@ __metadata: languageName: node linkType: hard -"@types/whatwg-url@npm:^11.0.2": - version: 11.0.5 - resolution: "@types/whatwg-url@npm:11.0.5" +"@types/whatwg-url@npm:^13.0.0": + version: 13.0.0 + resolution: "@types/whatwg-url@npm:13.0.0" dependencies: "@types/webidl-conversions": "npm:*" - checksum: 10/23a0c45aff51817807b473a6adb181d6e3bb0d27dde54e84883d5d5bc93358e95204d2188e7ff7fdc2cdaf157e97e1188ef0a22ec79228da300fc30d4a05b56a + checksum: 10/82018c7dc057dd4b5ee6137e54a659d2d043146eaade8afc2dda472773cc66f2abad73525020a2bf399a09b1bf448504f9e519d6b2d7495e6e781bb5de686753 languageName: node linkType: hard @@ -10971,10 +10971,10 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"bson@npm:^6.10.4": - version: 6.10.4 - resolution: "bson@npm:6.10.4" - checksum: 10/8a79a452219a13898358a5abc93e32bc3805236334f962661da121ce15bd5cade27718ba3310ee2a143ff508489b08467eed172ecb2a658cb8d2e94fdb76b215 +"bson@npm:^7.1.1": + version: 7.2.0 + resolution: "bson@npm:7.2.0" + checksum: 10/a768e55d328a5961aa1bda0f1d1ea619e8bab911fb72018ca5c779000ae538cfc0cc8082fe75d4e941cb8ee928b6a7377b10bc0eb75872f36cdfaac8380512c6 languageName: node linkType: hard @@ -13419,13 +13419,13 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"default-browser@npm:^5.2.1": - version: 5.2.1 - resolution: "default-browser@npm:5.2.1" +"default-browser@npm:^5.2.1, default-browser@npm:^5.4.0": + version: 5.5.0 + resolution: "default-browser@npm:5.5.0" dependencies: bundle-name: "npm:^4.1.0" default-browser-id: "npm:^5.0.0" - checksum: 10/afab7eff7b7f5f7a94d9114d1ec67273d3fbc539edf8c0f80019879d53aa71e867303c6f6d7cffeb10a6f3cfb59d4f963dba3f9c96830b4540cc7339a1bf9840 + checksum: 10/c5c5d84a4abd82850e98f06798a55dee87fc1064538bea00cc14c0fb2dccccbff5e9e07eeea80385fa653202d5d92509838b4239d610ddfa1c76a04a1f65e767 languageName: node linkType: hard @@ -15349,14 +15349,15 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"file-type@npm:^18.7.0": - version: 18.7.0 - resolution: "file-type@npm:18.7.0" +"file-type@npm:^21.3.4": + version: 21.3.4 + resolution: "file-type@npm:21.3.4" dependencies: - readable-web-to-node-stream: "npm:^3.0.2" - strtok3: "npm:^7.0.0" - token-types: "npm:^5.0.1" - checksum: 10/95b70313d697484bb9613dd822a29554e9754b49f4d62f17e399649c981a12556776b4ee83b0a62b752fc9048ac79f6cf79ad13b2a750d89afa170902c7b0029 + "@tokenizer/inflate": "npm:^0.4.1" + strtok3: "npm:^10.3.4" + token-types: "npm:^6.1.1" + uint8array-extras: "npm:^1.4.0" + checksum: 10/42d5cf6aafb998fb2f0357e96ea7c48bcce5249f899523a3a5a4c297f4fe2346cc0aff9cf04243ada5c54b6457183550b2a04902b6533cd5e64aaa344d78e0eb languageName: node linkType: hard @@ -15845,13 +15846,6 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"get-stdin@npm:^9.0.0": - version: 9.0.0 - resolution: "get-stdin@npm:9.0.0" - checksum: 10/5972bc34d05932b45512c8e2d67b040f1c1ca8afb95c56cbc480985f2d761b7e37fe90dc8abd22527f062cc5639a6930ff346e9952ae4c11a2d4275869459594 - languageName: node - linkType: hard - "get-stream@npm:6.0.0": version: 6.0.0 resolution: "get-stream@npm:6.0.0" @@ -17602,6 +17596,13 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard +"is-in-ssh@npm:^1.0.0": + version: 1.0.0 + resolution: "is-in-ssh@npm:1.0.0" + checksum: 10/d55cb39afdbca0cdc94cd493da7819c00d35048ea04fc1624aabde6e0c86aa6b91ddb38b2baf73c4b5d53cc8fbf1a8dfbf2e315594a808474b751ffb6b0d3e58 + languageName: node + linkType: hard + "is-inside-container@npm:^1.0.0": version: 1.0.0 resolution: "is-inside-container@npm:1.0.0" @@ -20271,13 +20272,6 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"meow@npm:^12.1.1": - version: 12.1.1 - resolution: "meow@npm:12.1.1" - checksum: 10/8594c319f4671a562c1fef584422902f1bbbad09ea49cdf9bb26dc92f730fa33398dd28a8cf34fcf14167f1d1148d05a867e50911fc4286751a4fb662fdd2dc2 - languageName: node - linkType: hard - "meow@npm:^13.2.0": version: 13.2.0 resolution: "meow@npm:13.2.0" @@ -20285,6 +20279,13 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard +"meow@npm:^14.1.0": + version: 14.1.0 + resolution: "meow@npm:14.1.0" + checksum: 10/c6a22b3912a6bc849dee0d6475cd8bb63b9307e26919ca3ace28dc1aaf3d30257071de32bba496f7b5eec3e62b03a6b7731e3d04d18efb3c3103b829aad52ca5 + languageName: node + linkType: hard + "meow@npm:^8.1.2": version: 8.1.2 resolution: "meow@npm:8.1.2" @@ -21307,31 +21308,31 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"mongodb-connection-string-url@npm:^3.0.2": - version: 3.0.2 - resolution: "mongodb-connection-string-url@npm:3.0.2" +"mongodb-connection-string-url@npm:^7.0.0": + version: 7.0.1 + resolution: "mongodb-connection-string-url@npm:7.0.1" dependencies: - "@types/whatwg-url": "npm:^11.0.2" - whatwg-url: "npm:^14.1.0 || ^13.0.0" - checksum: 10/99ac939a67cc963b90cfe70a8e45250a8386c531be7d22ffa5d1f3e5dd2406b149fb823b91ac161e4a4a29dfac754b49bca8f6dd786cfc66ae0ca80db5f5f23d + "@types/whatwg-url": "npm:^13.0.0" + whatwg-url: "npm:^14.1.0" + checksum: 10/6b48e3d0674d375163613617bdecbc18860bfaa8635873cef8a2eb41cb04a317b5f541b8f732664d03c098f9937c02c3eb013289e124f6473a44ed3aa6daceee languageName: node linkType: hard -"mongodb@npm:^6.21.0": - version: 6.21.0 - resolution: "mongodb@npm:6.21.0" +"mongodb@npm:^7.1.1": + version: 7.1.1 + resolution: "mongodb@npm:7.1.1" dependencies: "@mongodb-js/saslprep": "npm:^1.3.0" - bson: "npm:^6.10.4" - mongodb-connection-string-url: "npm:^3.0.2" - peerDependencies: - "@aws-sdk/credential-providers": ^3.188.0 - "@mongodb-js/zstd": ^1.1.0 || ^2.0.0 - gcp-metadata: ^5.2.0 - kerberos: ^2.0.1 - mongodb-client-encryption: ">=6.0.0 <7" + bson: "npm:^7.1.1" + mongodb-connection-string-url: "npm:^7.0.0" + peerDependencies: + "@aws-sdk/credential-providers": ^3.806.0 + "@mongodb-js/zstd": ^7.0.0 + gcp-metadata: ^7.0.1 + kerberos: ^7.0.0 + mongodb-client-encryption: ">=7.0.0 <7.1.0" snappy: ^7.3.2 - socks: ^2.7.1 + socks: ^2.8.6 peerDependenciesMeta: "@aws-sdk/credential-providers": optional: true @@ -21347,7 +21348,7 @@ asn1@evs-broadcast/node-asn1: optional: true socks: optional: true - checksum: 10/28d2cab1c55c4cf58e410529ac6ae4c79a233adeb2147ba872d912819a0b496ee2dc5b9819ccbf0527618ced3b841e733b221fd1c627901e8e87ae60a8dc0553 + checksum: 10/e6085e2815d70e86aca235f0445b63bcdb5a29584244bffdda1be96642982a044d15ab95874d514409f6097cc8f790f5aad75009c6c315bd382e81ec06d71c01 languageName: node linkType: hard @@ -22542,22 +22543,21 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"open-cli@npm:^8.0.0": - version: 8.0.0 - resolution: "open-cli@npm:8.0.0" +"open-cli@npm:^9.0.0": + version: 9.0.0 + resolution: "open-cli@npm:9.0.0" dependencies: - file-type: "npm:^18.7.0" - get-stdin: "npm:^9.0.0" - meow: "npm:^12.1.1" - open: "npm:^10.0.0" - tempy: "npm:^3.1.0" + file-type: "npm:^21.3.4" + meow: "npm:^14.1.0" + open: "npm:^11.0.0" + tempy: "npm:^3.2.0" bin: open-cli: cli.js - checksum: 10/2206724f05975c0a271c20e20de77877bc247cde89791a08e2bcc805766ae23a6eccf384dad7de20a44b285a164005decf4b16e3f9b91433be74d711ad207f7c + checksum: 10/a4b79287f20c87bdaf24d0add83c3a63d287cd157b7c5265e7d25be79bb448f341605bed9230e50df87ec4eb783ec1e2f756e4889a03e0dd19bb5ed5d221497b languageName: node linkType: hard -"open@npm:^10.0.0, open@npm:^10.0.3": +"open@npm:^10.0.3": version: 10.2.0 resolution: "open@npm:10.2.0" dependencies: @@ -22569,6 +22569,20 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard +"open@npm:^11.0.0": + version: 11.0.0 + resolution: "open@npm:11.0.0" + dependencies: + default-browser: "npm:^5.4.0" + define-lazy-prop: "npm:^3.0.0" + is-in-ssh: "npm:^1.0.0" + is-inside-container: "npm:^1.0.0" + powershell-utils: "npm:^0.1.0" + wsl-utils: "npm:^0.3.0" + checksum: 10/d4572cd0c1f40fe1713edce9e3812367acbfaac0e909a68be0ee0b5acf4ee0a567d01d432dc2d708a55aab684002ab47fe13c679213fb749fe096b77a5d8e51b + languageName: node + linkType: hard + "open@npm:^8.4.0": version: 8.4.2 resolution: "open@npm:8.4.2" @@ -23001,7 +23015,7 @@ asn1@evs-broadcast/node-asn1: json-schema-to-typescript: "npm:^15.0.4" lerna: "npm:^9.0.7" nodemon: "npm:^3.1.14" - open-cli: "npm:^8.0.0" + open-cli: "npm:^9.0.0" pinst: "npm:^3.0.0" prettier: "npm:^3.8.3" rimraf: "npm:^6.1.3" @@ -23500,13 +23514,6 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"peek-readable@npm:^5.0.0": - version: 5.0.0 - resolution: "peek-readable@npm:5.0.0" - checksum: 10/d342f02dd0c8a6b4bd0e7519a93d545b2b19375200e79a7431f0f1ec3f91e22b2217fa3a15cde95f6ab388ce6fce8aae75794d84b9b39c5836eb7c5f55e7ee9e - languageName: node - linkType: hard - "pend@npm:~1.2.0": version: 1.2.0 resolution: "pend@npm:1.2.0" @@ -24531,6 +24538,13 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard +"powershell-utils@npm:^0.1.0": + version: 0.1.0 + resolution: "powershell-utils@npm:0.1.0" + checksum: 10/4cc0846bc903ef9c8ac8cc9d178185d5972160a6c8776d44cf4c27ce31c0b614fc7cd20a53e8fcaf7f5296cdb34087a5d4396bdd863492972c84f76f3cadef67 + languageName: node + linkType: hard + "prelude-ls@npm:^1.2.1": version: 1.2.1 resolution: "prelude-ls@npm:1.2.1" @@ -25725,15 +25739,6 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"readable-web-to-node-stream@npm:^3.0.2": - version: 3.0.2 - resolution: "readable-web-to-node-stream@npm:3.0.2" - dependencies: - readable-stream: "npm:^3.6.0" - checksum: 10/d3a5bf9d707c01183d546a64864aa63df4d9cb835dfd2bf89ac8305e17389feef2170c4c14415a10d38f9b9bfddf829a57aaef7c53c8b40f11d499844bf8f1a4 - languageName: node - linkType: hard - "readdir-scoped-modules@npm:^1.0.0, readdir-scoped-modules@npm:^1.1.0": version: 1.1.0 resolution: "readdir-scoped-modules@npm:1.1.0" @@ -28048,16 +28053,6 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"strtok3@npm:^7.0.0": - version: 7.0.0 - resolution: "strtok3@npm:7.0.0" - dependencies: - "@tokenizer/token": "npm:^0.3.0" - peek-readable: "npm:^5.0.0" - checksum: 10/4f2269679fcfce1e9fe0600eff361ea4c687ae0a0e8d9dab6703811071cd92545cbcb32d4ace3d3aa591f777cec1a3e8aeecd5efd71ae216fd2962a7a238b4ab - languageName: node - linkType: hard - "style-to-object@npm:^0.4.0": version: 0.4.4 resolution: "style-to-object@npm:0.4.4" @@ -28314,15 +28309,15 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"tempy@npm:^3.1.0": - version: 3.1.0 - resolution: "tempy@npm:3.1.0" +"tempy@npm:^3.2.0": + version: 3.2.0 + resolution: "tempy@npm:3.2.0" dependencies: is-stream: "npm:^3.0.0" temp-dir: "npm:^3.0.0" type-fest: "npm:^2.12.2" unique-string: "npm:^3.0.0" - checksum: 10/f5540bc24dcd9d41ab0b31e9eed73c3ef825080f1c8b1e854e4b73059155c889f72f5f7c15e8cd462d59aa10c9726e423c81d6a365d614b538c6cc78a1209cc6 + checksum: 10/02ed53acb75719924c83bdd04e99ceb5bbae009b68ab24934750f5bcf26d8da251d4ee19f24cea749206af4051a0fd1cab060f63264f384dc0aaae150bf72bf4 languageName: node linkType: hard @@ -28640,16 +28635,6 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"token-types@npm:^5.0.1": - version: 5.0.1 - resolution: "token-types@npm:5.0.1" - dependencies: - "@tokenizer/token": "npm:^0.3.0" - ieee754: "npm:^1.2.1" - checksum: 10/0985369bbea9f53a5ccd79bb9899717b41401a813deb2c7fb1add5d0baf2f702aaf6da78f6e0ccf346d5a9f7acaa7cb5efed7d092d89d8c1e6962959e9509bc0 - languageName: node - linkType: hard - "token-types@npm:^6.1.1": version: 6.1.2 resolution: "token-types@npm:6.1.2" @@ -30491,7 +30476,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"whatwg-url@npm:^14.0.0, whatwg-url@npm:^14.1.0 || ^13.0.0, whatwg-url@npm:^14.1.1": +"whatwg-url@npm:^14.0.0, whatwg-url@npm:^14.1.0, whatwg-url@npm:^14.1.1": version: 14.2.0 resolution: "whatwg-url@npm:14.2.0" dependencies: @@ -30831,6 +30816,16 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard +"wsl-utils@npm:^0.3.0": + version: 0.3.1 + resolution: "wsl-utils@npm:0.3.1" + dependencies: + is-wsl: "npm:^3.1.0" + powershell-utils: "npm:^0.1.0" + checksum: 10/46800b92fa4974f2a846a93f0b8c409a455c35897d001a7599b5524766b603c8fb0945d2b21ad6ad27d4b0ae7e72ca2e58d832ccfcaabf659399921c6448b1d0 + languageName: node + linkType: hard + "xdg-basedir@npm:^5.0.1, xdg-basedir@npm:^5.1.0": version: 5.1.0 resolution: "xdg-basedir@npm:5.1.0" From e379d61b67322fe5c71db6bffbd1523b3343af08 Mon Sep 17 00:00:00 2001 From: Julian Waller Date: Tue, 14 Apr 2026 13:38:40 +0100 Subject: [PATCH 18/23] chore: peerdeps --- meteor/yarn.lock | 4 ++-- packages/corelib/package.json | 2 +- packages/meteor-lib/package.json | 2 +- packages/yarn.lock | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/meteor/yarn.lock b/meteor/yarn.lock index bdf83baa95f..5fb50cdaea3 100644 --- a/meteor/yarn.lock +++ b/meteor/yarn.lock @@ -1306,7 +1306,7 @@ __metadata: type-fest: "npm:^4.41.0" underscore: "npm:^1.13.8" peerDependencies: - mongodb: ^6.12.0 + mongodb: ^7.1.1 languageName: node linkType: soft @@ -1359,7 +1359,7 @@ __metadata: underscore: "npm:^1.13.8" peerDependencies: i18next: ^21.10.0 - mongodb: ^6.12.0 + mongodb: ^7.1.1 languageName: node linkType: soft diff --git a/packages/corelib/package.json b/packages/corelib/package.json index 62adc5700ca..d87177cc05c 100644 --- a/packages/corelib/package.json +++ b/packages/corelib/package.json @@ -50,7 +50,7 @@ "underscore": "^1.13.8" }, "peerDependencies": { - "mongodb": "^6.12.0" + "mongodb": "^7.1.1" }, "prettier": "@sofie-automation/code-standard-preset/.prettierrc.json", "packageManager": "yarn@4.14.1" diff --git a/packages/meteor-lib/package.json b/packages/meteor-lib/package.json index abf1a9fc2e4..7bf9c19740d 100644 --- a/packages/meteor-lib/package.json +++ b/packages/meteor-lib/package.json @@ -52,7 +52,7 @@ }, "peerDependencies": { "i18next": "^21.10.0", - "mongodb": "^6.12.0" + "mongodb": "^7.1.1" }, "prettier": "@sofie-automation/code-standard-preset/.prettierrc.json", "packageManager": "yarn@4.14.1" diff --git a/packages/yarn.lock b/packages/yarn.lock index ced01509e70..8e63d1180f6 100644 --- a/packages/yarn.lock +++ b/packages/yarn.lock @@ -7046,7 +7046,7 @@ __metadata: type-fest: "npm:^4.41.0" underscore: "npm:^1.13.8" peerDependencies: - mongodb: ^6.12.0 + mongodb: ^7.1.1 languageName: unknown linkType: soft @@ -7120,7 +7120,7 @@ __metadata: underscore: "npm:^1.13.8" peerDependencies: i18next: ^21.10.0 - mongodb: ^6.12.0 + mongodb: ^7.1.1 languageName: unknown linkType: soft From 0efeb9f6ca0402000925b0bafc5230fd32f2dc20 Mon Sep 17 00:00:00 2001 From: Julian Waller Date: Tue, 14 Apr 2026 13:52:50 +0100 Subject: [PATCH 19/23] chore: remove promise.allSettled polyfill This was for CasparCG 2.1, and is not a problem with 2.3+, which is all that Sofie supports now --- packages/webui/package.json | 1 - .../src/client/lib/polyfill/polyfills.ts | 1 - .../client/lib/polyfill/promise.allSettled.ts | 11 --- packages/yarn.lock | 89 ++----------------- 4 files changed, 5 insertions(+), 97 deletions(-) delete mode 100644 packages/webui/src/client/lib/polyfill/promise.allSettled.ts diff --git a/packages/webui/package.json b/packages/webui/package.json index 16b8bb3ea00..311244924ab 100644 --- a/packages/webui/package.json +++ b/packages/webui/package.json @@ -54,7 +54,6 @@ "lottie-react": "^2.4.1", "moment": "^2.30.1", "motion": "^12.38.0", - "promise.allsettled": "^1.0.7", "query-string": "^6.14.1", "rc-tooltip": "^6.4.0", "react": "^18.3.1", diff --git a/packages/webui/src/client/lib/polyfill/polyfills.ts b/packages/webui/src/client/lib/polyfill/polyfills.ts index a83003fcb29..a04781839bb 100644 --- a/packages/webui/src/client/lib/polyfill/polyfills.ts +++ b/packages/webui/src/client/lib/polyfill/polyfills.ts @@ -1,3 +1,2 @@ import './requestIdleCallback.js' import './vibrate.js' -import './promise.allSettled.js' diff --git a/packages/webui/src/client/lib/polyfill/promise.allSettled.ts b/packages/webui/src/client/lib/polyfill/promise.allSettled.ts deleted file mode 100644 index 0828766d02c..00000000000 --- a/packages/webui/src/client/lib/polyfill/promise.allSettled.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** - * CasparCG HTML renderer in 2.1.12 uses an old version of Chromium that doesn't support Promise.allSettled and as a - * result causes views rendered using it to crash. Promise.allSettled is used as a part of the i18next integration. - * This polyfill can be removed once CasparCG HTML renderer is updated to Chromium >= 76. - * -- 2021/02/22, Jan Starzak - */ -// @ts-expect-error No types available -import allSettled from 'promise.allsettled' - -// will be a no-op if not needed -allSettled.shim() diff --git a/packages/yarn.lock b/packages/yarn.lock index 8e63d1180f6..5002abad63d 100644 --- a/packages/yarn.lock +++ b/packages/yarn.lock @@ -7219,7 +7219,6 @@ __metadata: lottie-react: "npm:^2.4.1" moment: "npm:^2.30.1" motion: "npm:^12.38.0" - promise.allsettled: "npm:^1.0.7" query-string: "npm:^6.14.1" rc-tooltip: "npm:^6.4.0" react: "npm:^18.3.1" @@ -10082,20 +10081,6 @@ __metadata: languageName: node linkType: hard -"array.prototype.map@npm:^1.0.5": - version: 1.0.7 - resolution: "array.prototype.map@npm:1.0.7" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.2" - es-array-method-boxes-properly: "npm:^1.0.0" - es-object-atoms: "npm:^1.0.0" - is-string: "npm:^1.0.7" - checksum: 10/152b9a1ff8c8f6148495e6d5b2dea198220844191dc98a1d9d5a4d3efb3e79181198479a2a8814bd55b552a3c44feea04657c1ef979ac91583c19982aa27d19a - languageName: node - linkType: hard - "array.prototype.tosorted@npm:^1.1.4": version: 1.1.4 resolution: "array.prototype.tosorted@npm:1.1.4" @@ -14251,13 +14236,6 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"es-array-method-boxes-properly@npm:^1.0.0": - version: 1.0.0 - resolution: "es-array-method-boxes-properly@npm:1.0.0" - checksum: 10/27a8a21acf20f3f51f69dce8e643f151e380bffe569e95dc933b9ded9fcd89a765ee21b5229c93f9206c93f87395c6b75f80be8ac8c08a7ceb8771e1822ff1fb - languageName: node - linkType: hard - "es-define-property@npm:^1.0.0, es-define-property@npm:^1.0.1": version: 1.0.1 resolution: "es-define-property@npm:1.0.1" @@ -14272,23 +14250,6 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"es-get-iterator@npm:^1.0.2": - version: 1.1.3 - resolution: "es-get-iterator@npm:1.1.3" - dependencies: - call-bind: "npm:^1.0.2" - get-intrinsic: "npm:^1.1.3" - has-symbols: "npm:^1.0.3" - is-arguments: "npm:^1.1.1" - is-map: "npm:^2.0.2" - is-set: "npm:^2.0.2" - is-string: "npm:^1.0.7" - isarray: "npm:^2.0.5" - stop-iteration-iterator: "npm:^1.0.0" - checksum: 10/bc2194befbe55725f9489098626479deee3c801eda7e83ce0dff2eb266a28dc808edb9b623ff01d31ebc1328f09d661333d86b601036692c2e3c1a6942319433 - languageName: node - linkType: hard - "es-iterator-helpers@npm:^1.2.1": version: 1.2.1 resolution: "es-iterator-helpers@npm:1.2.1" @@ -15787,7 +15748,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.2.7, get-intrinsic@npm:^1.3.0": +"get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.2.7, get-intrinsic@npm:^1.3.0": version: 1.3.1 resolution: "get-intrinsic@npm:1.3.1" dependencies: @@ -17314,7 +17275,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"internal-slot@npm:^1.0.4, internal-slot@npm:^1.1.0": +"internal-slot@npm:^1.1.0": version: 1.1.0 resolution: "internal-slot@npm:1.1.0" dependencies: @@ -17389,7 +17350,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"is-arguments@npm:^1.0.4, is-arguments@npm:^1.1.1": +"is-arguments@npm:^1.0.4": version: 1.1.1 resolution: "is-arguments@npm:1.1.1" dependencies: @@ -17647,7 +17608,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"is-map@npm:^2.0.2, is-map@npm:^2.0.3": +"is-map@npm:^2.0.3": version: 2.0.3 resolution: "is-map@npm:2.0.3" checksum: 10/8de7b41715b08bcb0e5edb0fb9384b80d2d5bcd10e142188f33247d19ff078abaf8e9b6f858e2302d8d05376a26a55cd23a3c9f8ab93292b02fcd2cc9e4e92bb @@ -17788,7 +17749,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"is-set@npm:^2.0.2, is-set@npm:^2.0.3": +"is-set@npm:^2.0.3": version: 2.0.3 resolution: "is-set@npm:2.0.3" checksum: 10/5685df33f0a4a6098a98c72d94d67cad81b2bc72f1fb2091f3d9283c4a1c582123cd709145b02a9745f0ce6b41e3e43f1c944496d1d74d4ea43358be61308669 @@ -18058,23 +18019,6 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"iterate-iterator@npm:^1.0.1": - version: 1.0.2 - resolution: "iterate-iterator@npm:1.0.2" - checksum: 10/3528a3668eb9c146bcda4f616166cfa8e49e01e8302ffcfc7b4c923f9862a20d9dc4e3336c8517695bea22036686fde98a43718718ce188d1fead4dc1603a94f - languageName: node - linkType: hard - -"iterate-value@npm:^1.0.2": - version: 1.0.2 - resolution: "iterate-value@npm:1.0.2" - dependencies: - es-get-iterator: "npm:^1.0.2" - iterate-iterator: "npm:^1.0.1" - checksum: 10/fc426ba672e8ef9bec471fb1990a0914c9c3640d64bfc365068ea17ec537388058942b896adc29c9151d8c99e745dcfe2c5e3161475c040d5228dd2c6856a24d - languageName: node - linkType: hard - "iterator.prototype@npm:^1.1.4": version: 1.1.5 resolution: "iterator.prototype@npm:1.1.5" @@ -24739,20 +24683,6 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"promise.allsettled@npm:^1.0.7": - version: 1.0.7 - resolution: "promise.allsettled@npm:1.0.7" - dependencies: - array.prototype.map: "npm:^1.0.5" - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - get-intrinsic: "npm:^1.2.1" - iterate-value: "npm:^1.0.2" - checksum: 10/8d2ddf495543e4d184db3842a7251a812e4e1907688475c9a545ae9ae922b59c0dc83d97af9a084d99cc2ab20ee3254ee0b37803e0c39bca681fb633133d6bd8 - languageName: node - linkType: hard - "prompts@npm:^2.4.2": version: 2.4.2 resolution: "prompts@npm:2.4.2" @@ -27761,15 +27691,6 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"stop-iteration-iterator@npm:^1.0.0": - version: 1.0.0 - resolution: "stop-iteration-iterator@npm:1.0.0" - dependencies: - internal-slot: "npm:^1.0.4" - checksum: 10/2a23a36f4f6bfa63f46ae2d53a3f80fe8276110b95a55345d8ed3d92125413494033bc8697eb774e8f7aeb5725f70e3d69753caa2ecacdac6258c16fa8aa8b0f - languageName: node - linkType: hard - "stream-browserify@npm:^3.0.0": version: 3.0.0 resolution: "stream-browserify@npm:3.0.0" From 7ea126da8a945b752e6dc482469ae4461f965c49 Mon Sep 17 00:00:00 2001 From: Julian Waller Date: Tue, 14 Apr 2026 14:58:49 +0100 Subject: [PATCH 20/23] chore: lint --- meteor/server/api/buckets.ts | 2 +- meteor/server/publications/lib/lib.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/meteor/server/api/buckets.ts b/meteor/server/api/buckets.ts index 39516601d03..e82e65c9f58 100644 --- a/meteor/server/api/buckets.ts +++ b/meteor/server/api/buckets.ts @@ -230,7 +230,7 @@ export namespace BucketsAPI { await Promise.all([ Buckets.removeAsync(bucket._id), - await runIngestOperation(bucket.studioId, IngestJobs.BucketEmpty, { + runIngestOperation(bucket.studioId, IngestJobs.BucketEmpty, { bucketId: bucket._id, }), ]) diff --git a/meteor/server/publications/lib/lib.ts b/meteor/server/publications/lib/lib.ts index 69a06ae2d71..62bb2aa2e42 100644 --- a/meteor/server/publications/lib/lib.ts +++ b/meteor/server/publications/lib/lib.ts @@ -72,7 +72,7 @@ export async function waitForAllObserversReady( ): Promise { // Wait for all the promises to complete // Future: could this fail faster by aborting the rest once the first fails? - const results = await Promise.allSettled(observers) + const results = await Promise.allSettled(observers as Array>) const allSuccessfull = results.filter( (r): r is PromiseFulfilledResult => r.status === 'fulfilled' ) From ffcb722c69be8554d1e0886d5a6d85c536212eac Mon Sep 17 00:00:00 2001 From: Julian Waller Date: Mon, 20 Apr 2026 09:53:06 +0100 Subject: [PATCH 21/23] chore: dependabot --- meteor/yarn.lock | 12 +- packages/yarn.lock | 395 ++++++++++++++++++++------------------------- 2 files changed, 177 insertions(+), 230 deletions(-) diff --git a/meteor/yarn.lock b/meteor/yarn.lock index 5fb50cdaea3..2f7bc9ee22c 100644 --- a/meteor/yarn.lock +++ b/meteor/yarn.lock @@ -4796,12 +4796,12 @@ __metadata: linkType: hard "follow-redirects@npm:^1.15.11": - version: 1.15.11 - resolution: "follow-redirects@npm:1.15.11" + version: 1.16.0 + resolution: "follow-redirects@npm:1.16.0" peerDependenciesMeta: debug: optional: true - checksum: 10/07372fd74b98c78cf4d417d68d41fdaa0be4dcacafffb9e67b1e3cf090bc4771515e65020651528faab238f10f9b9c0d9707d6c1574a6c0387c5de1042cde9ba + checksum: 10/3fbe3d80b3b544c22705d837aa5d4a0d07a740d913534a2620b0a004c610af4148e3b58723536dd099aaa1c9d3a155964bde9665d6e5cb331460809a1fc572fd languageName: node linkType: hard @@ -6967,9 +6967,9 @@ __metadata: linkType: hard "lodash@npm:^4.0.0": - version: 4.17.23 - resolution: "lodash@npm:4.17.23" - checksum: 10/82504c88250f58da7a5a4289f57a4f759c44946c005dd232821c7688b5fcfbf4a6268f6a6cdde4b792c91edd2f3b5398c1d2a0998274432cff76def48735e233 + version: 4.18.1 + resolution: "lodash@npm:4.18.1" + checksum: 10/306fea53dfd39dad1f03d45ba654a2405aebd35797b673077f401edb7df2543623dc44b9effbb98f69b32152295fff725a4cec99c684098947430600c6af0c3f languageName: node linkType: hard diff --git a/packages/yarn.lock b/packages/yarn.lock index 5002abad63d..1c17100f10a 100644 --- a/packages/yarn.lock +++ b/packages/yarn.lock @@ -2124,45 +2124,43 @@ __metadata: languageName: node linkType: hard -"@chevrotain/cst-dts-gen@npm:11.1.2": - version: 11.1.2 - resolution: "@chevrotain/cst-dts-gen@npm:11.1.2" +"@chevrotain/cst-dts-gen@npm:12.0.0": + version: 12.0.0 + resolution: "@chevrotain/cst-dts-gen@npm:12.0.0" dependencies: - "@chevrotain/gast": "npm:11.1.2" - "@chevrotain/types": "npm:11.1.2" - lodash-es: "npm:4.17.23" - checksum: 10/04a84285fd4d26129f44f8e20b99fd6ab51cb1ee4c7eb104baa4842413b9e18bb171046a665583b94ff29e2c06a2e1a65205940a75cda848aa2a5e847b99bbb6 + "@chevrotain/gast": "npm:12.0.0" + "@chevrotain/types": "npm:12.0.0" + checksum: 10/d5af4f2580613501eb02cd68ceb93463e47c5d2103226d698efb6bd1c01864543fff729984961b403ce7627e2268352abec76d854122aa3731432baef5f6ceec languageName: node linkType: hard -"@chevrotain/gast@npm:11.1.2": - version: 11.1.2 - resolution: "@chevrotain/gast@npm:11.1.2" +"@chevrotain/gast@npm:12.0.0": + version: 12.0.0 + resolution: "@chevrotain/gast@npm:12.0.0" dependencies: - "@chevrotain/types": "npm:11.1.2" - lodash-es: "npm:4.17.23" - checksum: 10/8733cbadfcb982f5afe0e1825446ad8e82de3044c9ae22a69771ec20292facce25e459da23c16061c894ef49ca381ad53c0796171fa0dfce08fc25305850eeca + "@chevrotain/types": "npm:12.0.0" + checksum: 10/113dd2830b7fa738da56913102e52f682604675a22e88798e16e892fa0f4838fd17260090d225c332e513ec4e4caa6da0161e44f3ee8a7d7eb6dbfee4af6196b languageName: node linkType: hard -"@chevrotain/regexp-to-ast@npm:11.1.2": - version: 11.1.2 - resolution: "@chevrotain/regexp-to-ast@npm:11.1.2" - checksum: 10/9ba399b2c23ae1a86f1bcb1db4b07fd3191d0f491b63303b824850ef5f8b455f8f8a39c4d7876271c23ca06f7e03b7273b07014cd9c8ccb2328bff5dc6c9df00 +"@chevrotain/regexp-to-ast@npm:12.0.0, @chevrotain/regexp-to-ast@npm:~12.0.0": + version: 12.0.0 + resolution: "@chevrotain/regexp-to-ast@npm:12.0.0" + checksum: 10/61cbd3a064c71b5deb1d53bc652db5cfb6f7c162720874e28919edf07ac52f097bcd68982d9acd24a45bcb49f0217b5472876cd2abeb3c1ad40997d765ad08b1 languageName: node linkType: hard -"@chevrotain/types@npm:11.1.2": - version: 11.1.2 - resolution: "@chevrotain/types@npm:11.1.2" - checksum: 10/ad39d7651a20b05ead9b4374f98afc39915118dda29678c2b623571aa3da3018a0f3fb799d1809605cafcae59cba637d640855ea0f97b9b01d0900d77d6781fe +"@chevrotain/types@npm:12.0.0": + version: 12.0.0 + resolution: "@chevrotain/types@npm:12.0.0" + checksum: 10/a2033266ef6cef121a4787b7bc9b62c653527b91061539458249bea1574a4a752d31c270d4d78af292eb9e4b939cec35600f6729adb3c923b369a87c6ac2b994 languageName: node linkType: hard -"@chevrotain/utils@npm:11.1.2": - version: 11.1.2 - resolution: "@chevrotain/utils@npm:11.1.2" - checksum: 10/a5ba5886547665726e6680bdc6e1c939e643c8c606d8eb3806ed178ebb2c3a8a1a581db558412374f230babfe9d8c1c37f2c3edf260c63729dbe6ff9ca4f0223 +"@chevrotain/utils@npm:12.0.0": + version: 12.0.0 + resolution: "@chevrotain/utils@npm:12.0.0" + checksum: 10/c72ba1e953df4a9196af374966f67588e585b4700b5dfea661eae4cb3730d78e97690b48ab4d9e8db7478c74fd4f0deaa71eb5a0b9767483db9a2f7e02230a31 languageName: node linkType: hard @@ -4354,22 +4352,6 @@ __metadata: languageName: node linkType: hard -"@isaacs/balanced-match@npm:^4.0.1": - version: 4.0.1 - resolution: "@isaacs/balanced-match@npm:4.0.1" - checksum: 10/102fbc6d2c0d5edf8f6dbf2b3feb21695a21bc850f11bc47c4f06aa83bd8884fde3fe9d6d797d619901d96865fdcb4569ac2a54c937992c48885c5e3d9967fe8 - languageName: node - linkType: hard - -"@isaacs/brace-expansion@npm:^5.0.0": - version: 5.0.1 - resolution: "@isaacs/brace-expansion@npm:5.0.1" - dependencies: - "@isaacs/balanced-match": "npm:^4.0.1" - checksum: 10/aec226065bc4285436a27379e08cc35bf94ef59f5098ac1c026495c9ba4ab33d851964082d3648d56d63eb90f2642867bd15a3e1b810b98beb1a8c14efce6a94 - languageName: node - linkType: hard - "@isaacs/cliui@npm:^8.0.2": version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" @@ -5711,88 +5693,88 @@ __metadata: linkType: hard "@nx/devkit@npm:>=21.5.2 < 23.0.0": - version: 22.4.1 - resolution: "@nx/devkit@npm:22.4.1" + version: 22.6.5 + resolution: "@nx/devkit@npm:22.6.5" dependencies: "@zkochan/js-yaml": "npm:0.0.7" - ejs: "npm:^3.1.7" + ejs: "npm:5.0.1" enquirer: "npm:~2.3.6" - minimatch: "npm:10.1.1" + minimatch: "npm:10.2.4" semver: "npm:^7.6.3" tslib: "npm:^2.3.0" yargs-parser: "npm:21.1.1" peerDependencies: nx: ">= 21 <= 23 || ^22.0.0-0" - checksum: 10/fc3096e314965a30cc038f8f5eb6a61eaf71290d45c313cc033d3e0979c8cbb7bd1db7105d65bcbc09255fd9bbfb2ce2c4e533706cbdb82a30e285c1dd874de4 + checksum: 10/07e6d9e7af0360ea6b07ce38caa041ad95a099405b6182f4c8abd116bee2f87e8e1a829482a4162b392fa33c315ec544d1719daa8fe23cf599ff885f4bef814d languageName: node linkType: hard -"@nx/nx-darwin-arm64@npm:22.4.1": - version: 22.4.1 - resolution: "@nx/nx-darwin-arm64@npm:22.4.1" +"@nx/nx-darwin-arm64@npm:22.6.5": + version: 22.6.5 + resolution: "@nx/nx-darwin-arm64@npm:22.6.5" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@nx/nx-darwin-x64@npm:22.4.1": - version: 22.4.1 - resolution: "@nx/nx-darwin-x64@npm:22.4.1" +"@nx/nx-darwin-x64@npm:22.6.5": + version: 22.6.5 + resolution: "@nx/nx-darwin-x64@npm:22.6.5" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@nx/nx-freebsd-x64@npm:22.4.1": - version: 22.4.1 - resolution: "@nx/nx-freebsd-x64@npm:22.4.1" +"@nx/nx-freebsd-x64@npm:22.6.5": + version: 22.6.5 + resolution: "@nx/nx-freebsd-x64@npm:22.6.5" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@nx/nx-linux-arm-gnueabihf@npm:22.4.1": - version: 22.4.1 - resolution: "@nx/nx-linux-arm-gnueabihf@npm:22.4.1" +"@nx/nx-linux-arm-gnueabihf@npm:22.6.5": + version: 22.6.5 + resolution: "@nx/nx-linux-arm-gnueabihf@npm:22.6.5" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@nx/nx-linux-arm64-gnu@npm:22.4.1": - version: 22.4.1 - resolution: "@nx/nx-linux-arm64-gnu@npm:22.4.1" +"@nx/nx-linux-arm64-gnu@npm:22.6.5": + version: 22.6.5 + resolution: "@nx/nx-linux-arm64-gnu@npm:22.6.5" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@nx/nx-linux-arm64-musl@npm:22.4.1": - version: 22.4.1 - resolution: "@nx/nx-linux-arm64-musl@npm:22.4.1" +"@nx/nx-linux-arm64-musl@npm:22.6.5": + version: 22.6.5 + resolution: "@nx/nx-linux-arm64-musl@npm:22.6.5" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@nx/nx-linux-x64-gnu@npm:22.4.1": - version: 22.4.1 - resolution: "@nx/nx-linux-x64-gnu@npm:22.4.1" +"@nx/nx-linux-x64-gnu@npm:22.6.5": + version: 22.6.5 + resolution: "@nx/nx-linux-x64-gnu@npm:22.6.5" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@nx/nx-linux-x64-musl@npm:22.4.1": - version: 22.4.1 - resolution: "@nx/nx-linux-x64-musl@npm:22.4.1" +"@nx/nx-linux-x64-musl@npm:22.6.5": + version: 22.6.5 + resolution: "@nx/nx-linux-x64-musl@npm:22.6.5" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@nx/nx-win32-arm64-msvc@npm:22.4.1": - version: 22.4.1 - resolution: "@nx/nx-win32-arm64-msvc@npm:22.4.1" +"@nx/nx-win32-arm64-msvc@npm:22.6.5": + version: 22.6.5 + resolution: "@nx/nx-win32-arm64-msvc@npm:22.6.5" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@nx/nx-win32-x64-msvc@npm:22.4.1": - version: 22.4.1 - resolution: "@nx/nx-win32-x64-msvc@npm:22.4.1" +"@nx/nx-win32-x64-msvc@npm:22.6.5": + version: 22.6.5 + resolution: "@nx/nx-win32-x64-msvc@npm:22.6.5" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -7319,9 +7301,9 @@ __metadata: languageName: node linkType: hard -"@stoplight/spectral-core@npm:^1.16.1, @stoplight/spectral-core@npm:^1.18.3, @stoplight/spectral-core@npm:^1.7.0, @stoplight/spectral-core@npm:^1.8.0": - version: 1.21.0 - resolution: "@stoplight/spectral-core@npm:1.21.0" +"@stoplight/spectral-core@npm:^1.16.1, @stoplight/spectral-core@npm:^1.18.3, @stoplight/spectral-core@npm:^1.19.2, @stoplight/spectral-core@npm:^1.19.4": + version: 1.22.0 + resolution: "@stoplight/spectral-core@npm:1.22.0" dependencies: "@stoplight/better-ajv-errors": "npm:1.0.3" "@stoplight/json": "npm:~3.21.0" @@ -7332,50 +7314,50 @@ __metadata: "@stoplight/types": "npm:~13.6.0" "@types/es-aggregate-error": "npm:^1.0.2" "@types/json-schema": "npm:^7.0.11" - ajv: "npm:^8.17.1" + ajv: "npm:^8.18.0" ajv-errors: "npm:~3.0.0" ajv-formats: "npm:~2.1.1" es-aggregate-error: "npm:^1.0.7" + expr-eval-fork: "npm:^3.0.1" jsonpath-plus: "npm:^10.3.0" - lodash: "npm:~4.17.23" + lodash: "npm:^4.18.1" lodash.topath: "npm:^4.5.2" - minimatch: "npm:3.1.2" + minimatch: "npm:^3.1.4" nimma: "npm:0.2.3" pony-cause: "npm:^1.1.1" - simple-eval: "npm:1.0.1" tslib: "npm:^2.8.1" - checksum: 10/1ee71d19c810e716ada542c4e838bbc8b20e7bdc46518739c16c2edbc446a34fcf4e977d79b89d68d1a41e295ef9abee6449e2260cbf5ed1c2ae486229e3bdfb + checksum: 10/a1881009ff3dd934d144030ad40b7698c5861cfa95f52ec41219a9156ada865a3347aed08f965a242b27e01c1f6f63e2c8ac46d55ee0a23eb78165ffef15aa2c languageName: node linkType: hard -"@stoplight/spectral-formats@npm:^1.0.0": - version: 1.5.0 - resolution: "@stoplight/spectral-formats@npm:1.5.0" +"@stoplight/spectral-formats@npm:^1.8.1": + version: 1.8.2 + resolution: "@stoplight/spectral-formats@npm:1.8.2" dependencies: "@stoplight/json": "npm:^3.17.0" - "@stoplight/spectral-core": "npm:^1.8.0" + "@stoplight/spectral-core": "npm:^1.19.2" "@types/json-schema": "npm:^7.0.7" - tslib: "npm:^2.3.1" - checksum: 10/d5e26ea4d67bd63fe877aed0277039cb57f21cf06d44cfc5c899fbe2e7e3e02e8e7ba18c72f41b8722cc9fbad4cd9ae64c4457cdf44468f8a0d345f88722b72c + tslib: "npm:^2.8.1" + checksum: 10/cc48755bcc6148fbb8101c75cb9509ff17630880fabdeb2196b79802409f26121f9c2f9f9e2e864ad8e210087a3cbd97646f85d7ab80d99daed9a999dbf468c3 languageName: node linkType: hard "@stoplight/spectral-functions@npm:^1.7.2": - version: 1.7.2 - resolution: "@stoplight/spectral-functions@npm:1.7.2" + version: 1.10.2 + resolution: "@stoplight/spectral-functions@npm:1.10.2" dependencies: "@stoplight/better-ajv-errors": "npm:1.0.3" "@stoplight/json": "npm:^3.17.1" - "@stoplight/spectral-core": "npm:^1.7.0" - "@stoplight/spectral-formats": "npm:^1.0.0" - "@stoplight/spectral-runtime": "npm:^1.1.0" - ajv: "npm:^8.6.3" + "@stoplight/spectral-core": "npm:^1.19.4" + "@stoplight/spectral-formats": "npm:^1.8.1" + "@stoplight/spectral-runtime": "npm:^1.1.2" + ajv: "npm:^8.18.0" ajv-draft-04: "npm:~1.0.0" ajv-errors: "npm:~3.0.0" - ajv-formats: "npm:~2.1.0" - lodash: "npm:~4.17.21" - tslib: "npm:^2.3.0" - checksum: 10/d30cfc7d1dd05b186dcdcd345ef9c159ccedf1600098b085f670243d4fa4cdd7338267a2c1b9021b60f3987da0dc5e1aab09ff220d64d96acd8df3e1322d9a9c + ajv-formats: "npm:~2.1.1" + lodash: "npm:^4.18.1" + tslib: "npm:^2.8.1" + checksum: 10/5021911856083c1d4b4aab2b2f6fdb56cc51e9e5893982ec1e33cbbb9a77f662e6d563f1acdcfd1bdada1676ea17d2d19fea17816b034820d8f4115fde5d0d88 languageName: node linkType: hard @@ -7404,7 +7386,7 @@ __metadata: languageName: node linkType: hard -"@stoplight/spectral-runtime@npm:^1.1.0, @stoplight/spectral-runtime@npm:^1.1.2": +"@stoplight/spectral-runtime@npm:^1.1.2": version: 1.1.2 resolution: "@stoplight/spectral-runtime@npm:1.1.2" dependencies: @@ -9691,7 +9673,7 @@ __metadata: languageName: node linkType: hard -"ajv-formats@npm:^2.1.1, ajv-formats@npm:~2.1.0, ajv-formats@npm:~2.1.1": +"ajv-formats@npm:^2.1.1, ajv-formats@npm:~2.1.1": version: 2.1.1 resolution: "ajv-formats@npm:2.1.1" dependencies: @@ -9761,7 +9743,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^8.0.0, ajv@npm:^8.11.0, ajv@npm:^8.12.0, ajv@npm:^8.17.1, ajv@npm:^8.6.3, ajv@npm:^8.9.0": +"ajv@npm:^8.0.0, ajv@npm:^8.11.0, ajv@npm:^8.12.0, ajv@npm:^8.17.1, ajv@npm:^8.18.0, ajv@npm:^8.6.3, ajv@npm:^8.9.0": version: 8.18.0 resolution: "ajv@npm:8.18.0" dependencies: @@ -10291,7 +10273,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"axios@npm:^1.12.0, axios@npm:^1.14.0, axios@npm:^1.15.0": +"axios@npm:1.15.0, axios@npm:^1.14.0, axios@npm:^1.15.0": version: 1.15.0 resolution: "axios@npm:1.15.0" dependencies: @@ -10595,9 +10577,9 @@ asn1@evs-broadcast/node-asn1: linkType: hard "basic-ftp@npm:^5.0.2": - version: 5.2.0 - resolution: "basic-ftp@npm:5.2.0" - checksum: 10/f5a15d789aa98859af4da9e976154b2aeae19052e1762dc68d259d2bce631dafa40c667aa06d7346cd630aa6f9cc9a26f515b468e0bd24243fbae2149c7d01ad + version: 5.3.0 + resolution: "basic-ftp@npm:5.3.0" + checksum: 10/08eef717642f32d92936e02f516ab6426ecc61084e4a75b542cd202dd84dddff2520dda321db1be34b7e49860cf1b2aed67ab275dc3e53b185949df311241396 languageName: node linkType: hard @@ -10806,7 +10788,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"brace-expansion@npm:^5.0.5": +"brace-expansion@npm:^5.0.2, brace-expansion@npm:^5.0.5": version: 5.0.5 resolution: "brace-expansion@npm:5.0.5" dependencies: @@ -11336,7 +11318,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0, chalk@npm:^4.1.2": +"chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.2": version: 4.1.2 resolution: "chalk@npm:4.1.2" dependencies: @@ -11455,28 +11437,27 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"chevrotain-allstar@npm:~0.3.1": - version: 0.3.1 - resolution: "chevrotain-allstar@npm:0.3.1" +"chevrotain-allstar@npm:~0.4.1": + version: 0.4.1 + resolution: "chevrotain-allstar@npm:0.4.1" dependencies: lodash-es: "npm:^4.17.21" peerDependencies: - chevrotain: ^11.0.0 - checksum: 10/a12c0e408c17920b5f8fc095b7981d15609a63b3795946005fdfc77a5bbc692bbdb196ea29ad4655f55bfa7c93bbcbe7fe2e5782475bf65761b33f13a4aa1a77 + chevrotain: ^12.0.0 + checksum: 10/7a59b46ba03c859182a0187cd4066de4c16b68e7f667bdaf119e4eabbe5432bae83e882030944c97b4c8287ae0a6f6aedfffa8c4ee258e3da520c7662720926c languageName: node linkType: hard -"chevrotain@npm:~11.1.1": - version: 11.1.2 - resolution: "chevrotain@npm:11.1.2" +"chevrotain@npm:~12.0.0": + version: 12.0.0 + resolution: "chevrotain@npm:12.0.0" dependencies: - "@chevrotain/cst-dts-gen": "npm:11.1.2" - "@chevrotain/gast": "npm:11.1.2" - "@chevrotain/regexp-to-ast": "npm:11.1.2" - "@chevrotain/types": "npm:11.1.2" - "@chevrotain/utils": "npm:11.1.2" - lodash-es: "npm:4.17.23" - checksum: 10/67caa47a3d38eeb4a584960bbf5fdc83894a1419a6428f7dcf8a07f5937c1bda4c8e1acf628fe80d3be8f4c1a84426942c0a8f6bcf44a5958f1df0cf4225bc4d + "@chevrotain/cst-dts-gen": "npm:12.0.0" + "@chevrotain/gast": "npm:12.0.0" + "@chevrotain/regexp-to-ast": "npm:12.0.0" + "@chevrotain/types": "npm:12.0.0" + "@chevrotain/utils": "npm:12.0.0" + checksum: 10/6100982d3e0278ef62b5322a38ade4e99226e025a9d203c1e7dd53ad73974b18f190000f222a721db2cb4879e869eb25979cd28ca05756f4f3bbf00ffab57049 languageName: node linkType: hard @@ -13886,14 +13867,12 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"ejs@npm:^3.1.7": - version: 3.1.10 - resolution: "ejs@npm:3.1.10" - dependencies: - jake: "npm:^10.8.5" +"ejs@npm:5.0.1": + version: 5.0.1 + resolution: "ejs@npm:5.0.1" bin: ejs: bin/cli.js - checksum: 10/a9cb7d7cd13b7b1cd0be5c4788e44dd10d92f7285d2f65b942f33e127230c054f99a42db4d99f766d8dbc6c57e94799593ee66a14efd7c8dd70c4812bf6aa384 + checksum: 10/72b0476020930ba11446f24b5f5ecb282b2419b2fbefc5be03b8b29e4618a0d4bfbf1a9daf2f58eb5319d7e51b6c914d74c7a44bf3a121ed093ada99b231407a languageName: node linkType: hard @@ -14988,6 +14967,13 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard +"expr-eval-fork@npm:^3.0.1": + version: 3.0.3 + resolution: "expr-eval-fork@npm:3.0.3" + checksum: 10/372eb17485f9e37fb3ae01a3cd597532edaa3529c9606c2d2927ce032e36ba8d31352efaa947ce1d26a9a7e8285e6258a4f18fb007619d46ebd4d0587d7c9323 + languageName: node + linkType: hard + "express@npm:^4.21.2": version: 4.22.1 resolution: "express@npm:4.22.1" @@ -15322,15 +15308,6 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"filelist@npm:^1.0.4": - version: 1.0.4 - resolution: "filelist@npm:1.0.4" - dependencies: - minimatch: "npm:^5.0.1" - checksum: 10/4b436fa944b1508b95cffdfc8176ae6947b92825483639ef1b9a89b27d82f3f8aa22b21eed471993f92709b431670d4e015b39c087d435a61e1bb04564cf51de - languageName: node - linkType: hard - "filename-reserved-regex@npm:^2.0.0": version: 2.0.0 resolution: "filename-reserved-regex@npm:2.0.0" @@ -15470,12 +15447,12 @@ asn1@evs-broadcast/node-asn1: linkType: hard "follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.15.11": - version: 1.15.11 - resolution: "follow-redirects@npm:1.15.11" + version: 1.16.0 + resolution: "follow-redirects@npm:1.16.0" peerDependenciesMeta: debug: optional: true - checksum: 10/07372fd74b98c78cf4d417d68d41fdaa0be4dcacafffb9e67b1e3cf090bc4771515e65020651528faab238f10f9b9c0d9707d6c1574a6c0387c5de1042cde9ba + checksum: 10/3fbe3d80b3b544c22705d837aa5d4a0d07a740d913534a2620b0a004c610af4148e3b58723536dd099aaa1c9d3a155964bde9665d6e5cb331460809a1fc572fd languageName: node linkType: hard @@ -18055,20 +18032,6 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"jake@npm:^10.8.5": - version: 10.8.7 - resolution: "jake@npm:10.8.7" - dependencies: - async: "npm:^3.2.3" - chalk: "npm:^4.0.2" - filelist: "npm:^1.0.4" - minimatch: "npm:^3.1.2" - bin: - jake: bin/cli.js - checksum: 10/ad1cfe398836df4e6962954e5095597c21c5af1ea5a4182f6adf0869df8aca467a2eeca7869bf44f47120f4dd4ea52589d16050d295c87a5906c0d744775acc3 - languageName: node - linkType: hard - "jest-changed-files@npm:30.3.0": version: 30.3.0 resolution: "jest-changed-files@npm:30.3.0" @@ -18671,7 +18634,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"jsep@npm:^1.2.0, jsep@npm:^1.3.6, jsep@npm:^1.4.0": +"jsep@npm:^1.2.0, jsep@npm:^1.4.0": version: 1.4.0 resolution: "jsep@npm:1.4.0" checksum: 10/935824fe6ac28fcff3cd13878f508f99f6c13e7f0f53ec9fca0d3db465e6dd15f8af030bcdc75a38b07c78359c656647435923a26aceb91607027021f00c17f2 @@ -19068,15 +19031,16 @@ asn1@evs-broadcast/node-asn1: linkType: hard "langium@npm:^4.0.0": - version: 4.2.1 - resolution: "langium@npm:4.2.1" + version: 4.2.2 + resolution: "langium@npm:4.2.2" dependencies: - chevrotain: "npm:~11.1.1" - chevrotain-allstar: "npm:~0.3.1" + "@chevrotain/regexp-to-ast": "npm:~12.0.0" + chevrotain: "npm:~12.0.0" + chevrotain-allstar: "npm:~0.4.1" vscode-languageserver: "npm:~9.0.1" vscode-languageserver-textdocument: "npm:~1.0.11" vscode-uri: "npm:~3.1.0" - checksum: 10/9fd9208762ae9b551ec1deea25b6633605b06b59505a1ce6bf5b6c639779378bab35f813ffe549db57af95a5b71f9dcf61e553273a5d9d6ad2a3a99c5b7bfcc2 + checksum: 10/adb5b7dde073a3215ecebe56077c12b6ea22bbdeebd4845b33db13c919f02c94aa95a0d13a674e66221301bf1fa664d57a89c763df2ef09f370fe05dc453005a languageName: node linkType: hard @@ -19415,10 +19379,10 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"lodash-es@npm:4.17.23, lodash-es@npm:^4.17.21, lodash-es@npm:^4.17.23": - version: 4.17.23 - resolution: "lodash-es@npm:4.17.23" - checksum: 10/1feae200df22eb0bd93ca86d485e77784b8a9fb1d13e91b66e9baa7a7e5e04be088c12a7e20c2250fc0bd3db1bc0ef0affc7d9e3810b6af2455a3c6bf6dde59e +"lodash-es@npm:^4.17.21, lodash-es@npm:^4.17.23": + version: 4.18.1 + resolution: "lodash-es@npm:4.18.1" + checksum: 10/8bfad225ef09ef42b04283cdaf7830efcc2ba29ae41b56501c74422155ee1ccaa1f0f6e8319def3451a1fe54dec501c8e4bee622bae2b2d98ac993731e0a5cce languageName: node linkType: hard @@ -19471,10 +19435,10 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"lodash@npm:^4, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:~4.17.21, lodash@npm:~4.17.23": - version: 4.17.23 - resolution: "lodash@npm:4.17.23" - checksum: 10/82504c88250f58da7a5a4289f57a4f759c44946c005dd232821c7688b5fcfbf4a6268f6a6cdde4b792c91edd2f3b5398c1d2a0998274432cff76def48735e233 +"lodash@npm:^4, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.18.1": + version: 4.18.1 + resolution: "lodash@npm:4.18.1" + checksum: 10/306fea53dfd39dad1f03d45ba654a2405aebd35797b673077f401edb7df2543623dc44b9effbb98f69b32152295fff725a4cec99c684098947430600c6af0c3f languageName: node linkType: hard @@ -20944,21 +20908,12 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"minimatch@npm:10.1.1": - version: 10.1.1 - resolution: "minimatch@npm:10.1.1" +"minimatch@npm:10.2.4": + version: 10.2.4 + resolution: "minimatch@npm:10.2.4" dependencies: - "@isaacs/brace-expansion": "npm:^5.0.0" - checksum: 10/110f38921ea527022e90f7a5f43721838ac740d0a0c26881c03b57c261354fb9a0430e40b2c56dfcea2ef3c773768f27210d1106f1f2be19cde3eea93f26f45e - languageName: node - linkType: hard - -"minimatch@npm:3.1.2": - version: 3.1.2 - resolution: "minimatch@npm:3.1.2" - dependencies: - brace-expansion: "npm:^1.1.7" - checksum: 10/e0b25b04cd4ec6732830344e5739b13f8690f8a012d73445a4a19fbc623f5dd481ef7a5827fde25954cd6026fede7574cc54dc4643c99d6c6b653d6203f94634 + brace-expansion: "npm:^5.0.2" + checksum: 10/aea4874e521c55bb60744685bbffe3d152e5460f84efac3ea936e6bbe2ceba7deb93345fec3f9bb17f7b6946776073a64d40ae32bf5f298ad690308121068a1f languageName: node linkType: hard @@ -20971,7 +20926,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"minimatch@npm:3.1.5, minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2, minimatch@npm:^3.1.5": +"minimatch@npm:3.1.5, minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2, minimatch@npm:^3.1.4, minimatch@npm:^3.1.5": version: 3.1.5 resolution: "minimatch@npm:3.1.5" dependencies: @@ -21678,13 +21633,6 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"node-machine-id@npm:1.1.12": - version: 1.1.12 - resolution: "node-machine-id@npm:1.1.12" - checksum: 10/46bf3d4fab8d0e63b24c42bcec2b6975c7ec5bc16e53d7a589d095668d0fdf0bfcbcdc28246dd1ef74cf95a37fbd774cd4b17b41f518d79dfad7fdc99f995903 - languageName: node - linkType: hard - "node-releases@npm:^2.0.27": version: 2.0.27 resolution: "node-releases@npm:2.0.27" @@ -22213,30 +22161,30 @@ asn1@evs-broadcast/node-asn1: linkType: hard "nx@npm:>=21.5.3 < 23.0.0": - version: 22.4.1 - resolution: "nx@npm:22.4.1" + version: 22.6.5 + resolution: "nx@npm:22.6.5" dependencies: "@napi-rs/wasm-runtime": "npm:0.2.4" - "@nx/nx-darwin-arm64": "npm:22.4.1" - "@nx/nx-darwin-x64": "npm:22.4.1" - "@nx/nx-freebsd-x64": "npm:22.4.1" - "@nx/nx-linux-arm-gnueabihf": "npm:22.4.1" - "@nx/nx-linux-arm64-gnu": "npm:22.4.1" - "@nx/nx-linux-arm64-musl": "npm:22.4.1" - "@nx/nx-linux-x64-gnu": "npm:22.4.1" - "@nx/nx-linux-x64-musl": "npm:22.4.1" - "@nx/nx-win32-arm64-msvc": "npm:22.4.1" - "@nx/nx-win32-x64-msvc": "npm:22.4.1" + "@nx/nx-darwin-arm64": "npm:22.6.5" + "@nx/nx-darwin-x64": "npm:22.6.5" + "@nx/nx-freebsd-x64": "npm:22.6.5" + "@nx/nx-linux-arm-gnueabihf": "npm:22.6.5" + "@nx/nx-linux-arm64-gnu": "npm:22.6.5" + "@nx/nx-linux-arm64-musl": "npm:22.6.5" + "@nx/nx-linux-x64-gnu": "npm:22.6.5" + "@nx/nx-linux-x64-musl": "npm:22.6.5" + "@nx/nx-win32-arm64-msvc": "npm:22.6.5" + "@nx/nx-win32-x64-msvc": "npm:22.6.5" "@yarnpkg/lockfile": "npm:^1.1.0" "@yarnpkg/parsers": "npm:3.0.2" "@zkochan/js-yaml": "npm:0.0.7" - axios: "npm:^1.12.0" - chalk: "npm:^4.1.0" + axios: "npm:1.15.0" cli-cursor: "npm:3.1.0" cli-spinners: "npm:2.6.1" cliui: "npm:^8.0.1" dotenv: "npm:~16.4.5" dotenv-expand: "npm:~11.0.6" + ejs: "npm:5.0.1" enquirer: "npm:~2.3.6" figures: "npm:3.2.0" flat: "npm:^5.0.2" @@ -22245,13 +22193,14 @@ asn1@evs-broadcast/node-asn1: jest-diff: "npm:^30.0.2" jsonc-parser: "npm:3.2.0" lines-and-columns: "npm:2.0.3" - minimatch: "npm:10.1.1" - node-machine-id: "npm:1.1.12" + minimatch: "npm:10.2.4" npm-run-path: "npm:^4.0.1" open: "npm:^8.4.0" ora: "npm:5.3.0" + picocolors: "npm:^1.1.0" resolve.exports: "npm:2.0.3" semver: "npm:^7.6.3" + smol-toml: "npm:1.6.1" string-width: "npm:^4.2.3" tar-stream: "npm:~2.2.0" tmp: "npm:~0.2.1" @@ -22262,8 +22211,8 @@ asn1@evs-broadcast/node-asn1: yargs: "npm:^17.6.2" yargs-parser: "npm:21.1.1" peerDependencies: - "@swc-node/register": ^1.8.0 - "@swc/core": ^1.3.85 + "@swc-node/register": ^1.11.1 + "@swc/core": ^1.15.8 dependenciesMeta: "@nx/nx-darwin-arm64": optional: true @@ -22293,7 +22242,7 @@ asn1@evs-broadcast/node-asn1: bin: nx: bin/nx.js nx-cloud: bin/nx-cloud.js - checksum: 10/ece77e9cab5fd4c710b4379b5a19ffbcb13b27e3782e89b1259b3a4a9e68b10ee578c723af449a47ffb6420e39eea6f978b42267703f75a7c362d12c7e27e138 + checksum: 10/9d9436e623aed840e6bb707d6f83b49868f31d3f26658e91997c98fa35751a1d0a5a5f282d36b65e4fce9c2bc11913ec19abb15455968efb34a5676ffa45ce17 languageName: node linkType: hard @@ -23476,7 +23425,7 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"picocolors@npm:1.1.1, picocolors@npm:^1.0.0, picocolors@npm:^1.1.1": +"picocolors@npm:1.1.1, picocolors@npm:^1.0.0, picocolors@npm:^1.1.0, picocolors@npm:^1.1.1": version: 1.1.1 resolution: "picocolors@npm:1.1.1" checksum: 10/e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045 @@ -24740,8 +24689,8 @@ asn1@evs-broadcast/node-asn1: linkType: hard "protobufjs@npm:^7.4.0": - version: 7.4.0 - resolution: "protobufjs@npm:7.4.0" + version: 7.5.5 + resolution: "protobufjs@npm:7.5.5" dependencies: "@protobufjs/aspromise": "npm:^1.1.2" "@protobufjs/base64": "npm:^1.1.2" @@ -24755,7 +24704,7 @@ asn1@evs-broadcast/node-asn1: "@protobufjs/utf8": "npm:^1.1.0" "@types/node": "npm:>=13.7.0" long: "npm:^5.0.0" - checksum: 10/408423506610f70858d7593632f4a6aa4f05796c90fd632be9b9252457c795acc71aa6d3b54bb7f48a890141728fee4ca3906723ccea6c202ad71f21b3879b8b + checksum: 10/048898023a38d22f5fc9a1bcf0dcce5cfbcd37fb00753bd72283720eee7e2cb6055b23957542e5bcdc136379af66203a2ddb8d8c39d11f73169bacf07885fedd languageName: node linkType: hard @@ -27173,15 +27122,6 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard -"simple-eval@npm:1.0.1": - version: 1.0.1 - resolution: "simple-eval@npm:1.0.1" - dependencies: - jsep: "npm:^1.3.6" - checksum: 10/280207cfe4538c500f6b41e4d88576cf250337b0042bec8f9f5cf025b3a70e07974e522edd01e69d378767dd73068765d4f46ad55db5c94943c8f3585bff95af - languageName: node - linkType: hard - "simple-git@npm:^3.3.0": version: 3.33.0 resolution: "simple-git@npm:3.33.0" @@ -27299,6 +27239,13 @@ asn1@evs-broadcast/node-asn1: languageName: node linkType: hard +"smol-toml@npm:1.6.1": + version: 1.6.1 + resolution: "smol-toml@npm:1.6.1" + checksum: 10/9a0d86cc7f8abef429c915b373b9a1f369fe57a87efbbec46b967fb41dc28af753a2fa62c9c4848907c3b47c282be15c8854aa4e2942ef1fa86ff95a76d13856 + languageName: node + linkType: hard + "snake-case@npm:^3.0.4": version: 3.0.4 resolution: "snake-case@npm:3.0.4" From 1d3c321da72507adbb9cfc666f59d87373ebe228 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andra=CC=81s=20Pozsgai?= Date: Mon, 20 Apr 2026 12:12:21 +0200 Subject: [PATCH 22/23] chore: readability tweaks --- .../webui/src/client/styles/countdown/presenter.scss | 6 +++--- packages/webui/src/client/styles/prompter.scss | 11 ++--------- packages/webui/src/client/styles/tTimerDisplay.scss | 3 ++- 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/packages/webui/src/client/styles/countdown/presenter.scss b/packages/webui/src/client/styles/countdown/presenter.scss index ca63508c54a..498d58d4701 100644 --- a/packages/webui/src/client/styles/countdown/presenter.scss +++ b/packages/webui/src/client/styles/countdown/presenter.scss @@ -59,9 +59,9 @@ $hold-status-color: $liveline-timecode-color; linear-gradient( 90deg, rgba(223, 0, 0, 0) 0%, - rgba(223, 0, 0, 0) 50%, - rgba(116, 0, 0, 0.808) 69%, - rgba(0, 0, 0, 0.8) 74% + rgba(223, 0, 0, 0) 60%, + rgba(116, 0, 0, 0.808) 70%, + rgba(0, 0, 0, 0.8) 75% ), $general-live-color; color: #fff; diff --git a/packages/webui/src/client/styles/prompter.scss b/packages/webui/src/client/styles/prompter.scss index c9a281e6383..fcf67b7ff22 100644 --- a/packages/webui/src/client/styles/prompter.scss +++ b/packages/webui/src/client/styles/prompter.scss @@ -131,15 +131,7 @@ body.prompter-scrollbar { &.live { //border-bottom: 0.2em solid #f55; // Layer the director-style gradient over the live color - background: - linear-gradient( - 90deg, - rgba(223, 0, 0, 0) 0%, - rgba(223, 0, 0, 0) 50%, - rgba(116, 0, 0, 0.808) 68%, - rgba(0, 0, 0, 0.8) 73% - ), - $general-live-color; + background: $general-live-color; color: #fff; -webkit-text-stroke: black; -webkit-text-stroke-width: 0.025em; @@ -293,6 +285,7 @@ body.prompter-scrollbar { top: 0; right: 0; font-size: 9vmin; + box-shadow: 0px 0px 3px 3px rgba(0, 0, 0, 0.5); } .prompter-rundown-status-bar { diff --git a/packages/webui/src/client/styles/tTimerDisplay.scss b/packages/webui/src/client/styles/tTimerDisplay.scss index 1e59a61f4eb..05c71cb1806 100644 --- a/packages/webui/src/client/styles/tTimerDisplay.scss +++ b/packages/webui/src/client/styles/tTimerDisplay.scss @@ -43,7 +43,8 @@ 'YTLC' 548, 'YTDE' -203, 'YTUC' 712; - letter-spacing: 0.0001em; + letter-spacing: 0.005em; + text-transform: none; font-size: 1.3em; padding-left: 0.125em; color: #fff; From e1cb55d0c51d98ed7cf2c03a18f274813ca0976f Mon Sep 17 00:00:00 2001 From: Julian Waller Date: Tue, 31 Mar 2026 16:46:19 +0100 Subject: [PATCH 23/23] feat: add /metrics endpoint to gateways SOFIE-456 --- packages/live-status-gateway/src/config.ts | 8 ++- packages/live-status-gateway/src/connector.ts | 30 ++++++--- .../live-status-gateway/src/coreHandler.ts | 34 +++++------ .../src/liveStatusServer.ts | 3 + .../live-status-gateway/src/topics/root.ts | 14 +++++ packages/live-status-gateway/src/wsHandler.ts | 5 ++ packages/live-status-gateway/src/wsMetrics.ts | 17 ++++++ .../mos-gateway/src/CoreMosDeviceHandler.ts | 26 ++++++++ packages/mos-gateway/src/coreHandler.ts | 7 ++- packages/mos-gateway/src/mosHandler.ts | 3 + packages/mos-gateway/src/mosMetrics.ts | 51 ++++++++++++++++ packages/mos-gateway/src/mosStatus/handler.ts | 20 +++++- packages/playout-gateway/src/coreHandler.ts | 6 +- .../playout-gateway/src/playoutMetrics.ts | 57 +++++++++++++++++ packages/playout-gateway/src/tsrHandler.ts | 61 ++++++++++++++++++- packages/server-core-integration/package.json | 1 + .../src/lib/coreConnection.ts | 6 +- .../server-core-integration/src/lib/health.ts | 23 ++++++- .../src/lib/prometheus.ts | 34 +++++++++++ packages/yarn.lock | 1 + 20 files changed, 367 insertions(+), 40 deletions(-) create mode 100644 packages/live-status-gateway/src/wsMetrics.ts create mode 100644 packages/mos-gateway/src/mosMetrics.ts create mode 100644 packages/playout-gateway/src/playoutMetrics.ts create mode 100644 packages/server-core-integration/src/lib/prometheus.ts diff --git a/packages/live-status-gateway/src/config.ts b/packages/live-status-gateway/src/config.ts index 95366edebda..ef71d6892b6 100644 --- a/packages/live-status-gateway/src/config.ts +++ b/packages/live-status-gateway/src/config.ts @@ -11,6 +11,7 @@ let deviceToken: string = process.env.DEVICE_TOKEN || '' let disableWatchdog: boolean = process.env.DISABLE_WATCHDOG === '1' || false let unsafeSSL: boolean = process.env.UNSAFE_SSL === '1' || false const certs: string[] = (process.env.CERTIFICATES || '').split(';') || [] +let healthPort: number | undefined = parseInt(process.env.HEALTH_PORT + '') || undefined let prevProcessArg = '' process.argv.forEach((val) => { @@ -37,12 +38,14 @@ process.argv.forEach((val) => { } else if (val.match(/-unsafeSSL/i)) { // Will cause the Node applocation to blindly accept all certificates. Not recommenced unless in local, controlled networks. unsafeSSL = true + } else if (prevProcessArg.match(/-healthPort/i)) { + healthPort = parseInt(val) } prevProcessArg = nextPrevProcessArg + '' }) const config: Config = { - process: { + certificates: { unsafeSSL: unsafeSSL, certificates: certs.filter((c) => c !== undefined && c !== null && c.length !== 0), }, @@ -55,6 +58,9 @@ const config: Config = { port: port, watchdog: !disableWatchdog, }, + health: { + port: healthPort, + }, } export { config, logPath, logLevel, disableWatchdog } diff --git a/packages/live-status-gateway/src/connector.ts b/packages/live-status-gateway/src/connector.ts index af320a6c9d5..2ad5e973200 100644 --- a/packages/live-status-gateway/src/connector.ts +++ b/packages/live-status-gateway/src/connector.ts @@ -1,25 +1,31 @@ import { CoreHandler, CoreConfig } from './coreHandler.js' import { Logger } from 'winston' -import { loadDDPTLSOptions } from '@sofie-automation/server-core-integration' import { PeripheralDeviceId } from '@sofie-automation/shared-lib/dist/core/model/Ids' import { LiveStatusServer } from './liveStatusServer.js' +import { + CertificatesConfig, + HealthConfig, + HealthEndpoints, + IConnector, + loadDDPTLSOptions, + stringifyError, +} from '@sofie-automation/server-core-integration' export interface Config { - process: ProcessConfig + certificates: CertificatesConfig device: DeviceConfig core: CoreConfig + health: HealthConfig } -export interface ProcessConfig { - /** Will cause the Node applocation to blindly accept all certificates. Not recommenced unless in local, controlled networks. */ - unsafeSSL: boolean - /** Paths to certificates to load, for SSL-connections */ - certificates: string[] -} + export interface DeviceConfig { deviceId: PeripheralDeviceId deviceToken: string } -export class Connector { +export class Connector implements IConnector { + public initialized = false + public initializedError: string | undefined = undefined + private coreHandler: CoreHandler | undefined private _logger: Logger private _liveStatusServer: LiveStatusServer | undefined @@ -31,11 +37,13 @@ export class Connector { public async init(config: Config): Promise { try { this._logger.info('Initializing Process...') - const tlsOptions = loadDDPTLSOptions(this._logger, config.process) + const tlsOptions = loadDDPTLSOptions(this._logger, config.certificates) this._logger.info('Process initialized') this._logger.info('Initializing Core...') this.coreHandler = new CoreHandler(this._logger, config.device) + new HealthEndpoints(this, this.coreHandler, config.health) + await this.coreHandler.init(config.core, tlsOptions) this._logger.info('Core initialized') @@ -51,6 +59,8 @@ export class Connector { this._logger.error(e) this._logger.error(e.stack) + this.initializedError = stringifyError(e) + try { if (this.coreHandler) { this.coreHandler.destroy().catch(this._logger.error) diff --git a/packages/live-status-gateway/src/coreHandler.ts b/packages/live-status-gateway/src/coreHandler.ts index 762c551fa8a..c9eb657625e 100644 --- a/packages/live-status-gateway/src/coreHandler.ts +++ b/packages/live-status-gateway/src/coreHandler.ts @@ -4,6 +4,7 @@ import { CoreOptions, DDPConnectorOptions, DDPTLSOptions, + ICoreHandler, Observer, PeripheralDevicePubSub, PeripheralDevicePubSubCollections, @@ -36,7 +37,7 @@ export interface CoreConfig { /** * Represents a connection between the Gateway and Core */ -export class CoreHandler { +export class CoreHandler implements ICoreHandler { core!: CoreConnection< CorelibPubSubTypes & PeripheralDevicePubSubTypes, CorelibPubSubCollections & PeripheralDevicePubSubCollections @@ -45,12 +46,7 @@ export class CoreHandler { public _observers: Array = [] public deviceSettings: LiveStatusGatewayConfig = {} - public errorReporting = false - public multithreading = false - public reportAllCommands = false - private _deviceOptions: DeviceConfig - private _onConnected?: () => any private _executedFunctions = new Set() private _coreConfig?: CoreConfig @@ -59,6 +55,10 @@ export class CoreHandler { private _statusInitialized = false private _statusDestroyed = false + public get connectedToCore(): boolean { + return this.core && this.core.connected + } + constructor(logger: Logger, deviceOptions: DeviceConfig) { this.logger = logger this._deviceOptions = deviceOptions @@ -77,7 +77,6 @@ export class CoreHandler { this.setupObserversAndSubscriptions().catch((e) => { this.logger.error('Core Error during setupObserversAndSubscriptions:', e) }) - if (this._onConnected) this._onConnected() }) this.core.onDisconnected(() => { this.logger.warn('Core Disconnected!') @@ -97,7 +96,6 @@ export class CoreHandler { this.logger.info('Core id: ' + this.core.deviceId) await this.setupObserversAndSubscriptions() - if (this._onConnected) this._onConnected() this._statusInitialized = true await this.updateCoreStatus() @@ -180,9 +178,6 @@ export class CoreHandler { return options } - onConnected(fcn: () => any): void { - this._onConnected = fcn - } onDeviceChanged(): void { const col = this.core.getCollection(PeripheralDevicePubSubCollectionsNames.peripheralDeviceForDevice) @@ -319,7 +314,10 @@ export class CoreHandler { this.logger.info('getDevicesInfo') return [] } - async updateCoreStatus(): Promise { + getCoreStatus(): { + statusCode: StatusCode + messages: string[] + } { let statusCode = StatusCode.GOOD const messages: Array = [] @@ -331,11 +329,13 @@ export class CoreHandler { statusCode = StatusCode.BAD messages.push('Shut down') } - - return this.core.setStatus({ - statusCode: statusCode, - messages: messages, - }) + return { + statusCode, + messages, + } + } + async updateCoreStatus(): Promise { + return this.core.setStatus(this.getCoreStatus()) } private _getVersions() { const versions: { [packageName: string]: string } = {} diff --git a/packages/live-status-gateway/src/liveStatusServer.ts b/packages/live-status-gateway/src/liveStatusServer.ts index 00baa68feaa..f36afb9195e 100644 --- a/packages/live-status-gateway/src/liveStatusServer.ts +++ b/packages/live-status-gateway/src/liveStatusServer.ts @@ -34,6 +34,7 @@ import { NotificationsHandler } from './collections/notifications/notificationsH import { NotificationsTopic } from './topics/notificationsTopic.js' import { PlaylistNotificationsHandler } from './collections/notifications/playlistNotificationsHandler.js' import { RundownNotificationsHandler } from './collections/notifications/rundownNotificationsHandler.js' +import { wsConnectionsGauge } from './wsMetrics.js' export interface CollectionHandlers { studioHandler: StudioHandler @@ -153,8 +154,10 @@ export class LiveStatusServer { this._logger.info(`Closing websocket`) rootChannel.removeSubscriber(ws) this._clients.delete(ws) + wsConnectionsGauge.set(this._clients.size) }) this._clients.add(ws) + wsConnectionsGauge.set(this._clients.size) if (typeof request.url === 'string' && request.url === '/') { rootChannel.addSubscriber(ws) diff --git a/packages/live-status-gateway/src/topics/root.ts b/packages/live-status-gateway/src/topics/root.ts index 807af7ad1cf..5215ba6031b 100644 --- a/packages/live-status-gateway/src/topics/root.ts +++ b/packages/live-status-gateway/src/topics/root.ts @@ -10,6 +10,7 @@ import { SubscriptionStatus, SubscriptionName, } from '@sofie-automation/live-status-gateway-api' +import { activeSubscriptionsGauge, subscriptionSubscribersGauge } from '../wsMetrics.js' enum PublishMsg { ping = 'ping', @@ -41,6 +42,7 @@ export class RootChannel extends WebSocketTopicBase implements WebSocketTopic { removeSubscriber(ws: WebSocket): void { super.removeSubscriber(ws) this._topics.forEach((h) => h.removeSubscriber(ws)) + this._updateSubscriptionMetrics() } processMessage(ws: WebSocket, msg: object): void { @@ -74,6 +76,16 @@ export class RootChannel extends WebSocketTopicBase implements WebSocketTopic { if (Object.values(SubscriptionName).includes(channel)) this._topics.set(channel, topic) } + private _updateSubscriptionMetrics(): void { + let total = 0 + for (const [name, topic] of this._topics) { + const count = topic.subscriberCount + subscriptionSubscribersGauge.set({ subscription: name }, count) + total += count + } + activeSubscriptionsGauge.set(total) + } + subscribe(ws: WebSocket, name: SubscriptionName, reqid: number): void { const topic = this._topics.get(name) const curUnsubscribed = @@ -91,6 +103,7 @@ export class RootChannel extends WebSocketTopicBase implements WebSocketTopic { }) ) topic.addSubscriber(ws) + this._updateSubscriptionMetrics() } else { this.sendMessage( ws, @@ -112,6 +125,7 @@ export class RootChannel extends WebSocketTopicBase implements WebSocketTopic { const curSubscribed = topic && topic.hasSubscriber(ws) && Object.values(SubscriptionName).includes(name) if (curSubscribed) { topic.removeSubscriber(ws) + this._updateSubscriptionMetrics() this.sendMessage( ws, literal({ diff --git a/packages/live-status-gateway/src/wsHandler.ts b/packages/live-status-gateway/src/wsHandler.ts index b3d7f36b761..fef08aa3c3c 100644 --- a/packages/live-status-gateway/src/wsHandler.ts +++ b/packages/live-status-gateway/src/wsHandler.ts @@ -23,6 +23,10 @@ export abstract class WebSocketTopicBase { : this.sendStatusToAll } + get subscriberCount(): number { + return this._subscribers.size + } + addSubscriber(ws: WebSocket): void { this._logger.info(`${this._name} adding a websocket subscriber`) this._subscribers.add(ws) @@ -77,6 +81,7 @@ export abstract class WebSocketTopicBase { } export interface WebSocketTopic { + subscriberCount: number addSubscriber(ws: WebSocket): void hasSubscriber(ws: WebSocket): boolean removeSubscriber(ws: WebSocket): void diff --git a/packages/live-status-gateway/src/wsMetrics.ts b/packages/live-status-gateway/src/wsMetrics.ts new file mode 100644 index 00000000000..d9ce8983cd8 --- /dev/null +++ b/packages/live-status-gateway/src/wsMetrics.ts @@ -0,0 +1,17 @@ +import { MetricsGauge } from '@sofie-automation/server-core-integration/dist/lib/prometheus' + +export const wsConnectionsGauge = new MetricsGauge({ + name: 'sofie_lsg_websocket_connections', + help: 'Number of open WebSocket connections', +}) + +export const activeSubscriptionsGauge = new MetricsGauge({ + name: 'sofie_lsg_active_subscriptions_total', + help: 'Total number of active subscriptions across all topics', +}) + +export const subscriptionSubscribersGauge = new MetricsGauge({ + name: 'sofie_lsg_subscription_subscribers', + help: 'Number of subscribers per subscription', + labelNames: ['subscription'] as const, +}) diff --git a/packages/mos-gateway/src/CoreMosDeviceHandler.ts b/packages/mos-gateway/src/CoreMosDeviceHandler.ts index faff9a50a79..d9a5dfaa92e 100644 --- a/packages/mos-gateway/src/CoreMosDeviceHandler.ts +++ b/packages/mos-gateway/src/CoreMosDeviceHandler.ts @@ -35,6 +35,12 @@ import { PartialDeep } from 'type-fest' import type { CoreHandler } from './coreHandler.js' import { CoreConnectionChild } from '@sofie-automation/server-core-integration/dist/lib/CoreConnectionChild' import { Queue } from '@sofie-automation/server-core-integration/dist/lib/queue' +import { + mosDeviceConnectedGauge, + mosMessagesFailedCounter, + mosMessagesReceivedCounter, + mosQueueDepthGauge, +} from './mosMetrics.js' function deepMatch(object: any, attrs: any, deep: boolean): boolean { const keys = Object.keys(attrs) @@ -197,6 +203,18 @@ export class CoreMosDeviceHandler { messages: messages, }) .catch((e) => this._coreParentHandler.logger.warn('Error when setting status:' + e)) + + const deviceId = this._mosDevice.idPrimary + mosDeviceConnectedGauge.set( + { device_id: deviceId, connection: 'primary' }, + connectionStatus.PrimaryConnected ? 1 : 0 + ) + if (this._mosDevice.idSecondary) { + mosDeviceConnectedGauge.set( + { device_id: deviceId, connection: 'secondary' }, + connectionStatus.SecondaryConnected ? 1 : 0 + ) + } } async getMachineInfo(): Promise { const info: IMOSListMachInfo = { @@ -456,8 +474,15 @@ export class CoreMosDeviceHandler { return this.fixMosData(attr) }) as any + const deviceId = this._mosDevice.idPrimary + const commandName = methodName as string + mosMessagesReceivedCounter.inc({ device_id: deviceId, command: commandName }) + mosQueueDepthGauge.inc({ device_id: deviceId }) + // Make the commands be sent sequantially: return this._messageQueue.putOnQueue(async () => { + mosQueueDepthGauge.dec({ device_id: deviceId }) + // Log info about the sent command: let msg = 'Command: ' + methodName const attr0 = attrs[0] as any | undefined @@ -476,6 +501,7 @@ export class CoreMosDeviceHandler { const res = (this.core.coreMethods[methodName] as any)(...attrs) return res.catch((e: any) => { this._coreParentHandler.logger.info('MOS command rejected: ' + ((e && JSON.stringify(e)) || e)) + mosMessagesFailedCounter.inc({ device_id: deviceId, command: commandName }) throw e }) }) diff --git a/packages/mos-gateway/src/coreHandler.ts b/packages/mos-gateway/src/coreHandler.ts index 4ef8573c30f..e136e0cb55c 100644 --- a/packages/mos-gateway/src/coreHandler.ts +++ b/packages/mos-gateway/src/coreHandler.ts @@ -35,7 +35,6 @@ export class CoreHandler implements ICoreHandler { core: CoreConnection | undefined logger: Winston.Logger public _observers: Array> = [] - public connectedToCore = false private _deviceOptions: DeviceConfig private _coreMosHandlers: Array = [] private _onConnected?: () => any @@ -44,6 +43,10 @@ export class CoreHandler implements ICoreHandler { private _executedFunctions = new Set() private _coreConfig?: CoreConfig + public get connectedToCore(): boolean { + return !!this.core && this.core.connected + } + public static async create( logger: Winston.Logger, config: CoreConfig, @@ -67,12 +70,10 @@ export class CoreHandler implements ICoreHandler { this.core.onConnected(() => { this.logger.info('Core Connected!') - this.connectedToCore = true if (this._isInitialized) this.onConnectionRestored() }) this.core.onDisconnected(() => { this.logger.info('Core Disconnected!') - this.connectedToCore = false }) this.core.onError((err) => { this.logger.error('Core Error: ' + (typeof err === 'string' ? err : err.message || err.toString())) diff --git a/packages/mos-gateway/src/mosHandler.ts b/packages/mos-gateway/src/mosHandler.ts index c6337a072b2..b2ac62abac3 100644 --- a/packages/mos-gateway/src/mosHandler.ts +++ b/packages/mos-gateway/src/mosHandler.ts @@ -40,6 +40,7 @@ import { PeripheralDeviceForDevice } from '@sofie-automation/server-core-integra import _ from 'underscore' import { MosStatusHandler } from './mosStatus/handler.js' import { isPromise } from 'util/types' +import { mosDevicesTotalGauge } from './mosMetrics.js' export interface MosConfig { self: IConnectionConfig @@ -539,6 +540,7 @@ export class MosHandler { mosDevice: mosDevice, deviceOptions, }) + mosDevicesTotalGauge.set(this._allMosDevices.size) await this.setupMosDevice(mosDevice) @@ -592,6 +594,7 @@ export class MosHandler { private async _removeDevice(deviceId: string): Promise { const deviceEntry = this._allMosDevices.get(deviceId) this._allMosDevices.delete(deviceId) + mosDevicesTotalGauge.set(this._allMosDevices.size) if (deviceEntry) { const mosDevice = deviceEntry.mosDevice diff --git a/packages/mos-gateway/src/mosMetrics.ts b/packages/mos-gateway/src/mosMetrics.ts new file mode 100644 index 00000000000..60992a4e736 --- /dev/null +++ b/packages/mos-gateway/src/mosMetrics.ts @@ -0,0 +1,51 @@ +import { + MetricsCounter, + MetricsGauge, +} from '@sofie-automation/server-core-integration/dist/lib/prometheus' + +export const mosDevicesTotalGauge = new MetricsGauge({ + name: 'sofie_mos_gateway_devices_total', + help: 'Number of configured MOS sub-devices', +}) + +export const mosDeviceConnectedGauge = new MetricsGauge({ + name: 'sofie_mos_gateway_device_connected', + help: 'Connection status of a MOS device (1 = connected, 0 = disconnected)', + labelNames: ['device_id', 'connection'] as const, +}) + +export const mosMessagesReceivedCounter = new MetricsCounter({ + name: 'sofie_mos_gateway_messages_received_total', + help: 'Total number of MOS commands received from the NRCS', + labelNames: ['device_id', 'command'] as const, +}) + +export const mosMessagesFailedCounter = new MetricsCounter({ + name: 'sofie_mos_gateway_messages_failed_total', + help: 'Total number of MOS commands that failed when forwarding to Core', + labelNames: ['device_id', 'command'] as const, +}) + +export const mosQueueDepthGauge = new MetricsGauge({ + name: 'sofie_mos_gateway_queue_depth', + help: 'Number of MOS commands currently waiting in the Core-forwarding queue', + labelNames: ['device_id'] as const, +}) + +export const mosStatusSentCounter = new MetricsCounter({ + name: 'sofie_mos_gateway_status_sent_total', + help: 'Total number of story/item status messages sent back to the NRCS', + labelNames: ['device_id', 'status_type', 'mos_status'] as const, +}) + +export const mosStatusSkippedCounter = new MetricsCounter({ + name: 'sofie_mos_gateway_status_skipped_total', + help: 'Total number of story/item status updates that were skipped', + labelNames: ['device_id', 'reason'] as const, +}) + +export const mosStatusQueueDepthGauge = new MetricsGauge({ + name: 'sofie_mos_gateway_status_queue_depth', + help: 'Number of status write-back operations currently waiting in the queue', + labelNames: ['device_id'] as const, +}) diff --git a/packages/mos-gateway/src/mosStatus/handler.ts b/packages/mos-gateway/src/mosStatus/handler.ts index 38b89616d93..bdc6feb6a95 100644 --- a/packages/mos-gateway/src/mosStatus/handler.ts +++ b/packages/mos-gateway/src/mosStatus/handler.ts @@ -21,6 +21,7 @@ import type { RundownId } from '@sofie-automation/shared-lib/dist/core/model/Ids import type * as winston from 'winston' import { Queue } from '@sofie-automation/server-core-integration/dist/lib/queue' import { diffStatuses } from './diff.js' +import { mosStatusQueueDepthGauge, mosStatusSentCounter, mosStatusSkippedCounter } from '../mosMetrics.js' export class MosStatusHandler { readonly #logger: winston.Logger @@ -98,10 +99,15 @@ export class MosStatusHandler { // New implementation 2022 only sends PLAY, never stop, after getting advice from AP // Reason 1: NRK ENPS "sendt tid" (elapsed time) stopped working in ENPS 8/9 when doing STOP prior to PLAY // Reason 2: there's a delay between the STOP (yellow line disappears) and PLAY (yellow line re-appears), which annoys the users - if (this.#config.onlySendPlay && status.mosStatus !== IMOSObjectStatus.PLAY) continue + if (this.#config.onlySendPlay && status.mosStatus !== IMOSObjectStatus.PLAY) { + mosStatusSkippedCounter.inc({ device_id: this.#mosDevice.idPrimary, reason: 'only_send_play' }) + continue + } + mosStatusQueueDepthGauge.inc({ device_id: this.#mosDevice.idPrimary }) this.#messageQueue .putOnQueue(async () => { + mosStatusQueueDepthGauge.dec({ device_id: this.#mosDevice.idPrimary }) if (this.#isDeviceConnected()) { if (status.type === 'item') { const newStatus: IMOSItemStatus = { @@ -115,6 +121,11 @@ export class MosStatusHandler { // Send status await this.#mosDevice.sendItemStatus(newStatus) + mosStatusSentCounter.inc({ + device_id: this.#mosDevice.idPrimary, + status_type: 'item', + mos_status: String(status.mosStatus), + }) } else if (status.type === 'story') { const newStatus: IMOSStoryStatus = { RunningOrderId: this.#mosTypes.mosString128.create(status.rundownExternalId), @@ -126,6 +137,11 @@ export class MosStatusHandler { // Send status await this.#mosDevice.sendStoryStatus(newStatus) + mosStatusSentCounter.inc({ + device_id: this.#mosDevice.idPrimary, + status_type: 'story', + mos_status: String(status.mosStatus), + }) } else { this.#logger.debug(`Discarding unknown queued status: ${JSON.stringify(status)}`) assertNever(status) @@ -133,8 +149,10 @@ export class MosStatusHandler { } else if (this.#config.onlySendPlay) { // No need to do anything. this.#logger.info(`Not connected, skipping play status: ${JSON.stringify(status)}`) + mosStatusSkippedCounter.inc({ device_id: this.#mosDevice.idPrimary, reason: 'not_connected' }) } else { this.#logger.info(`Not connected, discarding status: ${JSON.stringify(status)}`) + mosStatusSkippedCounter.inc({ device_id: this.#mosDevice.idPrimary, reason: 'not_connected' }) } }) .catch((e) => { diff --git a/packages/playout-gateway/src/coreHandler.ts b/packages/playout-gateway/src/coreHandler.ts index aae42573fca..4b6d41b0025 100644 --- a/packages/playout-gateway/src/coreHandler.ts +++ b/packages/playout-gateway/src/coreHandler.ts @@ -60,7 +60,9 @@ export class CoreHandler implements ICoreHandler { private _statusInitialized = false private _statusDestroyed = false - public connectedToCore = false + public get connectedToCore(): boolean { + return this.core && this.core.connected + } constructor(logger: Logger, deviceOptions: DeviceConfig) { this.logger = logger @@ -75,13 +77,11 @@ export class CoreHandler implements ICoreHandler { this.core.onConnected(() => { this.logger.info('Core Connected!') - this.connectedToCore = true if (this._onConnected) this._onConnected() }) this.core.onDisconnected(() => { this.logger.warn('Core Disconnected!') - this.connectedToCore = false }) this.core.onError((err: any) => { this.logger.error('Core Error: ' + (typeof err === 'string' ? err : err.message || err.toString() || err)) diff --git a/packages/playout-gateway/src/playoutMetrics.ts b/packages/playout-gateway/src/playoutMetrics.ts new file mode 100644 index 00000000000..271f135996e --- /dev/null +++ b/packages/playout-gateway/src/playoutMetrics.ts @@ -0,0 +1,57 @@ +import { + MetricsCounter, + MetricsGauge, + MetricsHistogram, +} from '@sofie-automation/server-core-integration/dist/lib/prometheus' + +export const playoutDevicesTotalGauge = new MetricsGauge({ + name: 'sofie_playout_gateway_devices_total', + help: 'Total number of TSR devices under management', +}) + +export const playoutDeviceConnectedGauge = new MetricsGauge({ + name: 'sofie_playout_gateway_device_connected', + help: 'Whether a TSR device is connected (1) or not (0)', + labelNames: ['device_id', 'device_type'] as const, +}) + +export const playoutResolveDurationHistogram = new MetricsHistogram({ + name: 'sofie_playout_gateway_resolve_duration_seconds', + help: 'Time spent resolving the timeline, in seconds', + buckets: [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10], +}) + +export const playoutTimelineAgeGauge = new MetricsGauge({ + name: 'sofie_playout_gateway_timeline_age_seconds', + help: 'Age of the timeline at the moment it finished resolving, measured from when Sofie Core generated it', +}) + +export const playoutSlowSentCommandsCounter = new MetricsCounter({ + name: 'sofie_playout_gateway_slow_sent_commands_total', + help: 'Number of commands that were slow to be sent', + labelNames: ['device_id', 'device_type'] as const, +}) + +export const playoutSlowFulfilledCommandsCounter = new MetricsCounter({ + name: 'sofie_playout_gateway_slow_fulfilled_commands_total', + help: 'Number of commands that were slow to be fulfilled by the device', + labelNames: ['device_id', 'device_type'] as const, +}) + +export const playoutCommandErrorsCounter = new MetricsCounter({ + name: 'sofie_playout_gateway_command_errors_total', + help: 'Number of commands that resulted in an error', + labelNames: ['device_id', 'device_type'] as const, +}) + +export const playoutCommandsSentCounter = new MetricsCounter({ + name: 'sofie_playout_gateway_commands_sent_total', + help: 'Number of commands sent to devices (only increments when reportAllCommands is enabled per device)', + labelNames: ['device_id', 'device_type'] as const, +}) + +export const playoutPlaybackCallbacksCounter = new MetricsCounter({ + name: 'sofie_playout_gateway_playback_callbacks_total', + help: 'Number of playback timeline callbacks received from TSR', + labelNames: ['type'] as const, +}) diff --git a/packages/playout-gateway/src/tsrHandler.ts b/packages/playout-gateway/src/tsrHandler.ts index 617f3c96b66..7fcd6fb3569 100644 --- a/packages/playout-gateway/src/tsrHandler.ts +++ b/packages/playout-gateway/src/tsrHandler.ts @@ -48,6 +48,17 @@ import { } from '@sofie-automation/server-core-integration' import { BaseRemoteDeviceIntegration } from 'timeline-state-resolver/dist/service/remoteDeviceInstance' import { TSRDeviceRegistry } from './tsrDeviceRegistry.js' +import { + playoutDevicesTotalGauge, + playoutDeviceConnectedGauge, + playoutResolveDurationHistogram, + playoutTimelineAgeGauge, + playoutSlowSentCommandsCounter, + playoutSlowFulfilledCommandsCounter, + playoutCommandErrorsCounter, + playoutCommandsSentCounter, + playoutPlaybackCallbacksCounter, +} from './playoutMetrics.js' const debug = Debug('playout-gateway') @@ -85,6 +96,7 @@ export class TSRHandler { private _triggerUpdateDevicesTimeout: NodeJS.Timeout | undefined private _debugStates: Map = new Map() + private _pendingTimelineGeneratedAt: Map = new Map() constructor(logger: Logger) { this.logger = logger @@ -165,6 +177,13 @@ export class TSRHandler { this.handleTSRTimelineCallback(time, objId, callbackName, data) }) this.tsr.on('resolveDone', (timelineHash: string, resolveDuration: number) => { + playoutResolveDurationHistogram.observe(resolveDuration / 1000) + const generatedAt = this._pendingTimelineGeneratedAt.get(timelineHash) + if (generatedAt !== undefined) { + playoutTimelineAgeGauge.set((Date.now() - generatedAt) / 1000) + this._pendingTimelineGeneratedAt.delete(timelineHash) + } + // Make sure we only report back once, per update timeline if (this._lastReportedObjHashes.includes(timelineHash)) return @@ -216,6 +235,7 @@ export class TSRHandler { this.tsr.connectionManager.on('connectionAdded', (id, container) => { const coreTsrHandler = new CoreTSRDeviceHandler(this._coreHandler, Promise.resolve(container), id) this._coreTsrHandlers[id] = coreTsrHandler + playoutDevicesTotalGauge.set(Object.keys(this._coreTsrHandlers).length) // set the status to uninitialized for now: coreTsrHandler.statusChanged( @@ -248,10 +268,16 @@ export class TSRHandler { return } + const removedDeviceType = coreTsrHandler._device?.deviceType + const removedDeviceTypeName = + removedDeviceType !== undefined ? (DeviceType[removedDeviceType] ?? 'unknown') : 'unknown' + coreTsrHandler.dispose('removeSubDevice').catch((e) => { this.logger.error('Failed to dispose of coreTsrHandler for ' + id + ': ' + e) }) delete this._coreTsrHandlers[id] + playoutDevicesTotalGauge.set(Object.keys(this._coreTsrHandlers).length) + playoutDeviceConnectedGauge.set({ device_id: id, device_type: removedDeviceTypeName }, 0) }) const fixLog = (id: string, e: string): string => { @@ -286,6 +312,13 @@ export class TSRHandler { if (!coreTsrHandler) return if (!coreTsrHandler._device) return // Not initialized yet + const changedDeviceType = coreTsrHandler._device.deviceType + const changedDeviceTypeName = DeviceType[changedDeviceType] ?? 'unknown' + playoutDeviceConnectedGauge.set( + { device_id: id, device_type: changedDeviceTypeName }, + status.statusCode <= StatusCode.WARNING_MAJOR ? 1 : 0 + ) + coreTsrHandler.statusChanged(status) if (!coreTsrHandler._device) return @@ -315,6 +348,12 @@ export class TSRHandler { } }) this.tsr.connectionManager.on('connectionEvent:slowSentCommand', (id, info) => { + const deviceType0 = this._coreTsrHandlers[id]?._device?.deviceType + playoutSlowSentCommandsCounter.inc({ + device_id: id, + device_type: deviceType0 !== undefined ? (DeviceType[deviceType0] ?? 'unknown') : 'unknown', + }) + // If the internalDelay is too large, it should be logged as an error, // since something took too long internally. @@ -331,6 +370,12 @@ export class TSRHandler { } }) this.tsr.connectionManager.on('connectionEvent:slowFulfilledCommand', (id, info) => { + const deviceType1 = this._coreTsrHandlers[id]?._device?.deviceType + playoutSlowFulfilledCommandsCounter.inc({ + device_id: id, + device_type: deviceType1 !== undefined ? (DeviceType[deviceType1] ?? 'unknown') : 'unknown', + }) + // Note: we don't emit slow fulfilled commands as error, since // the fulfillment of them lies on the device being controlled, not on us. @@ -340,10 +385,22 @@ export class TSRHandler { }) }) this.tsr.connectionManager.on('connectionEvent:commandError', (id, error, context) => { + const deviceType2 = this._coreTsrHandlers[id]?._device?.deviceType + playoutCommandErrorsCounter.inc({ + device_id: id, + device_type: deviceType2 !== undefined ? (DeviceType[deviceType2] ?? 'unknown') : 'unknown', + }) + // todo: handle this better this.logger.error(fixError(id, error), { context }) }) - this.tsr.connectionManager.on('connectionEvent:commandReport', (_id, commandReport) => { + this.tsr.connectionManager.on('connectionEvent:commandReport', (id, commandReport) => { + const deviceType3 = this._coreTsrHandlers[id]?._device?.deviceType + playoutCommandsSentCounter.inc({ + device_id: id, + device_type: deviceType3 !== undefined ? (DeviceType[deviceType3] ?? 'unknown') : 'unknown', + }) + if (this._reportAllCommands) { // Todo: send these to Core this.logger.info('commandReport', { @@ -589,6 +646,7 @@ export class TSRHandler { } const transformedTimeline = this._transformTimeline(deserializeTimelineBlob(timeline.timelineBlob)) + this._pendingTimelineGeneratedAt.set(unprotectString(timeline.timelineHash), timeline.generated) this.tsr.timelineHash = unprotectString(timeline.timelineHash) this.tsr.setTimelineAndMappings(transformedTimeline, unprotectObject(mappingsObject.mappings)) } @@ -882,6 +940,7 @@ export class TSRHandler { return } const callbackName = callbackName0 as PeripheralDeviceAPI.PlayoutChangedType + playoutPlaybackCallbacksCounter.inc({ type: callbackName }) // debounce if (this.changedResults && this.changedResults.rundownPlaylistId !== data.rundownPlaylistId) { // The playlistId changed. Send what we have right away and reset: diff --git a/packages/server-core-integration/package.json b/packages/server-core-integration/package.json index 13f97e9ea18..0cbfc32ce4b 100644 --- a/packages/server-core-integration/package.json +++ b/packages/server-core-integration/package.json @@ -74,6 +74,7 @@ "@sofie-automation/shared-lib": "26.3.0-2", "ejson": "^2.2.3", "koa": "^3.2.0", + "prom-client": "^15.1.3", "tslib": "^2.8.1", "underscore": "^1.13.8", "ws": "^8.20.0" diff --git a/packages/server-core-integration/src/lib/coreConnection.ts b/packages/server-core-integration/src/lib/coreConnection.ts index c5f59ab703a..ec832f29205 100644 --- a/packages/server-core-integration/src/lib/coreConnection.ts +++ b/packages/server-core-integration/src/lib/coreConnection.ts @@ -148,11 +148,11 @@ export class CoreConnection< }) this._ddp.on('connected', () => { // this.emit('connected') - if (this._watchDog) this._watchDog.addCheck(async () => this._watchDogCheck()) + if (this._watchDog) this._watchDog.addCheck(this._watchDogCheck) }) this._ddp.on('disconnected', () => { // this.emit('disconnected') - if (this._watchDog) this._watchDog.removeCheck(async () => this._watchDogCheck()) + if (this._watchDog) this._watchDog.removeCheck(this._watchDogCheck) }) this._ddp.on('message', () => { if (this._watchDog) this._watchDog.receivedData() @@ -434,7 +434,7 @@ export class CoreConnection< return this.coreMethods.initialize(options) } - private async _watchDogCheck() { + private _watchDogCheck = async () => { /* Randomize a message and send it to Core. Core should then reply with triggering executeFunction with the "pingResponse" method. diff --git a/packages/server-core-integration/src/lib/health.ts b/packages/server-core-integration/src/lib/health.ts index 05c2e6c9c92..62e46cb8b61 100644 --- a/packages/server-core-integration/src/lib/health.ts +++ b/packages/server-core-integration/src/lib/health.ts @@ -3,6 +3,7 @@ import Router from '@koa/router' import { StatusCode } from '@sofie-automation/shared-lib/dist/lib/status' import { assertNever } from '@sofie-automation/shared-lib/dist/lib/lib' import { IConnector, ICoreHandler } from './gateway-types.js' +import { getPrometheusMetricsString, PrometheusHTTPContentType, setupPrometheusMetrics } from './prometheus.js' export interface HealthConfig { /** If set, exposes health HTTP endpoints on the given port */ @@ -18,10 +19,14 @@ export class HealthEndpoints { constructor( private connector: IConnector, private coreHandler: ICoreHandler, - private config: HealthConfig + private config: HealthConfig, + private customMetrics?: () => Promise ) { if (!config.port) return // disabled + // Setup default prometheus metrics when endpoints are enabled + setupPrometheusMetrics() + const router = new Router() router.get('/healthz', async (ctx) => { @@ -64,6 +69,22 @@ export class HealthEndpoints { ctx.body = 'READY' }) + router.get('/metrics', async (ctx) => { + try { + ctx.response.type = PrometheusHTTPContentType + + const [meteorMetrics, workerMetrics] = await Promise.all([ + getPrometheusMetricsString(), + this.customMetrics?.(), + ]) + + ctx.body = [meteorMetrics, ...(workerMetrics || [])].join('\n\n') + } catch (ex) { + ctx.response.status = 500 + ctx.body = ex + '' + } + }) + this.app.use(router.routes()).use(router.allowedMethods()) this.app.listen(this.config.port) } diff --git a/packages/server-core-integration/src/lib/prometheus.ts b/packages/server-core-integration/src/lib/prometheus.ts new file mode 100644 index 00000000000..4d20a535c51 --- /dev/null +++ b/packages/server-core-integration/src/lib/prometheus.ts @@ -0,0 +1,34 @@ +import { register, collectDefaultMetrics } from 'prom-client' + +// Re-export types, to ensure the correct 'instance' of 'prom-client' is used +export { + Gauge as MetricsGauge, + Counter as MetricsCounter, + Histogram as MetricsHistogram, + Summary as MetricsSummary, +} from 'prom-client' + +/** + * HTTP Content-type header for the metrics + */ +export const PrometheusHTTPContentType = register.contentType + +/** + * Stringified metrics for serving over HTTP + */ +export async function getPrometheusMetricsString(): Promise { + return register.metrics() +} + +/** + * Setup metric reporting for this app + */ +export function setupPrometheusMetrics(): void { + // Label all metrics with the source 'thread' + // register.setDefaultLabels({ + // threadName: threadName, + // }) + + // Collect the default metrics nodejs metrics + collectDefaultMetrics() +} diff --git a/packages/yarn.lock b/packages/yarn.lock index 1c17100f10a..0870d42c359 100644 --- a/packages/yarn.lock +++ b/packages/yarn.lock @@ -7129,6 +7129,7 @@ __metadata: "@types/ws": "npm:^8.18.1" ejson: "npm:^2.2.3" koa: "npm:^3.2.0" + prom-client: "npm:^15.1.3" tslib: "npm:^2.8.1" underscore: "npm:^1.13.8" ws: "npm:^8.20.0"