diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml index 2e8c262ca..ec89d9563 100644 --- a/.github/ISSUE_TEMPLATE/bug.yml +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -35,7 +35,7 @@ body: label: Logs description: Provide your Homarr logs so we can investigate what's going on validations: - required: true + required: false - type: textarea id: context attributes: diff --git a/.github/workflows/docker_dev.yml b/.github/workflows/docker_dev.yml index c1ee4a2cc..5c507e327 100644 --- a/.github/workflows/docker_dev.yml +++ b/.github/workflows/docker_dev.yml @@ -153,56 +153,4 @@ jobs: - name: Build next.js app # change this if your site requires a custom build command - run: yarn turbo build - - # Here's the first place where next-bundle-analysis' own script is used - # This step pulls the raw bundle stats for the current bundle - - name: Analyze bundle - run: npx -p nextjs-bundle-analysis report - - - name: Upload bundle - uses: actions/upload-artifact@v3 - with: - name: bundle - path: .next/analyze/__bundle_analysis.json - - - name: Download base branch bundle stats - uses: dawidd6/action-download-artifact@v2 - continue-on-error: true - if: success() && github.event.number - with: - workflow: nextjs_bundle_analysis.yml - branch: ${{ github.event.pull_request.base.ref }} - path: .next/analyze/base - - # And here's the second place - this runs after we have both the current and - # base branch bundle stats, and will compare them to determine what changed. - # There are two configurable arguments that come from package.json: - # - # - budget: optional, set a budget (bytes) against which size changes are measured - # it's set to 350kb here by default, as informed by the following piece: - # https://infrequently.org/2021/03/the-performance-inequality-gap/ - # - # - red-status-percentage: sets the percent size increase where you get a red - # status indicator, defaults to 20% - # - # Either of these arguments can be changed or removed by editing the `nextBundleAnalysis` - # entry in your package.json file. - - name: Compare with base branch bundle - if: success() && github.event.number - run: ls -laR .next/analyze/base && npx -p nextjs-bundle-analysis compare - - - name: Get Comment Body - id: get-comment-body - if: success() && github.event.number - # https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings - run: | - echo "body<> $GITHUB_OUTPUT - echo "$(cat .next/analyze/__bundle_analysis_comment.txt)" >> $GITHUB_OUTPUT - echo EOF >> $GITHUB_OUTPUT - - - name: Comment - uses: marocchino/sticky-pull-request-comment@v2 - with: - header: next-touched-pages - message: ${{ steps.get-comment-body.outputs.body }} \ No newline at end of file + run: yarn turbo build \ No newline at end of file diff --git a/README.md b/README.md index 74e8569c1..dfc2ca244 100644 --- a/README.md +++ b/README.md @@ -121,3 +121,5 @@ You can also support us by helping with [translating the entire project](https:/ **Please read our [Contribution Guidelines](/CONTRIBUTING.md)** All contributions, regardless of their size or scope, are welcome and highly appreciated! Thank you ❤️ + +![Alt](https://repobeats.axiom.co/api/embed/60a6f68f193faf831f64221bdf90782adec51c93.svg "Repobeats analytics image") diff --git a/package.json b/package.json index 80607fd66..44ba2fc16 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "html-entities": "^2.3.3", "i18next": "^22.5.1", "js-file-download": "^0.4.12", - "next": "^13.4.2", + "next": "13.4.10", "next-i18next": "^13.0.0", "nzbget-api": "^0.0.3", "prismjs": "^1.29.0", @@ -76,7 +76,6 @@ "uuid": "^9.0.0", "xml-js": "^1.6.11", "xss": "^1.0.14", - "yarn": "^1.22.19", "zod": "^3.21.4", "zustand": "^4.3.7" }, @@ -87,15 +86,15 @@ "@testing-library/react": "^14.0.0", "@trivago/prettier-plugin-sort-imports": "^4.1.1", "@types/dockerode": "^3.3.9", - "@types/node": "18.16.18", + "@types/node": "18.16.19", "@types/prismjs": "^1.26.0", "@types/react": "^18.2.11", "@types/uuid": "^9.0.0", "@types/video.js": "^7.3.51", "@typescript-eslint/eslint-plugin": "^5.50.0", "@typescript-eslint/parser": "^5.30.7", - "@vitest/coverage-c8": "^0.32.0", - "@vitest/ui": "^0.32.0", + "@vitest/coverage-c8": "^0.33.0", + "@vitest/ui": "^0.33.0", "eslint": "^8.0.1", "eslint-config-next": "^13.4.5", "eslint-plugin-promise": "^6.0.0", @@ -113,10 +112,9 @@ "typescript": "^5.1.0", "video.js": "^8.0.3", "vite-tsconfig-paths": "^4.2.0", - "vitest": "^0.32.0", + "vitest": "^0.33.0", "vitest-fetch-mock": "^0.2.2" }, - "packageManager": "yarn@3.6.0", "nextBundleAnalysis": { "budget": null, "budgetPercentIncreaseRed": 20, diff --git a/public/locales/en/modules/calendar.json b/public/locales/en/modules/calendar.json index fdb3fd433..8fcfdf442 100644 --- a/public/locales/en/modules/calendar.json +++ b/public/locales/en/modules/calendar.json @@ -14,7 +14,10 @@ "label": "Radarr release type" }, "hideWeekDays": { - "label": "" + "label": "Hide week days" + }, + "fontSize": { + "label": "Font Size" } } } diff --git a/public/locales/en/settings/customization/accessibility.json b/public/locales/en/settings/customization/accessibility.json index 345ac2ef6..ce1086664 100644 --- a/public/locales/en/settings/customization/accessibility.json +++ b/public/locales/en/settings/customization/accessibility.json @@ -1,11 +1,11 @@ { "disablePulse": { - "label": "", - "description": "" + "label": "Disable ping pulse", + "description": "By default, ping indicators in Homarr will pulse. This may be irritating. This slider will deactivate the animation" }, "replaceIconsWithDots": { - "label": "", - "description": "" + "label": "Replace ping dots with icons", + "description": "For colorblind users, ping dots may be unrecognizable. This will replace indicators with icons" }, - "alert": "" + "alert": "Are you missing something? We'll gladly extend the accessibility of Homarr" } \ No newline at end of file diff --git a/public/locales/en/settings/customization/general.json b/public/locales/en/settings/customization/general.json index 33186ccdc..358b5158b 100644 --- a/public/locales/en/settings/customization/general.json +++ b/public/locales/en/settings/customization/general.json @@ -18,8 +18,8 @@ "description": "Customize the background, colors and apps appearance" }, "accessibility": { - "name": "", - "description": "" + "name": "Accessibility", + "description": "Configure Homarr for disabled and handicapped users" } } } diff --git a/src/components/Dashboard/Tiles/Apps/AppPing.tsx b/src/components/Dashboard/Tiles/Apps/AppPing.tsx index 5af4b0938..ca12c424b 100644 --- a/src/components/Dashboard/Tiles/Apps/AppPing.tsx +++ b/src/components/Dashboard/Tiles/Apps/AppPing.tsx @@ -1,10 +1,12 @@ -import { Indicator, Tooltip } from '@mantine/core'; +import { Box, Indicator, Tooltip } from '@mantine/core'; +import { IconCheck, IconCheckbox, IconDownload, IconLoader, IconX } from '@tabler/icons-react'; import Consola from 'consola'; -import { motion } from 'framer-motion'; +import { TargetAndTransition, Transition, motion } from 'framer-motion'; import { useTranslation } from 'next-i18next'; +import { api } from '~/utils/api'; + import { useConfigContext } from '../../../../config/provider'; import { AppType } from '../../../../types/app'; -import { api } from '~/utils/api'; interface AppPingProps { app: AppType; @@ -16,19 +18,53 @@ export const AppPing = ({ app }: AppPingProps) => { const active = (config?.settings.customization.layout.enabledPing && app.network.enabledStatusChecker) ?? false; - const { data, isLoading, error } = usePingQuery(app, active); - const isOnline = data?.state === 'online'; + const { data, isLoading, isFetching, isSuccess } = api.app.ping.useQuery(app.id, { + retry: false, + enabled: active, + select: (data) => { + const isOk = getIsOk(app, data.status); + Consola.info(`Ping ${app.name} (${app.url}) ${data.status} ${isOk}`); + return { + status: data.status, + state: isOk ? ('online' as const) : ('down' as const), + statusText: data.statusText, + }; + }, + }); if (!active) return null; + const isOnline = data?.state === 'online'; + + const disablePulse = config?.settings.customization.accessibility?.disablePingPulse ?? false; + const replaceDotWithIcon = + config?.settings.customization.accessibility?.replacePingDotsWithIcons ?? false; + + const scaleAnimation = isOnline ? [1, 0.7, 1] : 1; + const animate: TargetAndTransition | undefined = disablePulse + ? undefined + : { + scale: scaleAnimation, + }; + const transition: Transition | undefined = disablePulse + ? undefined + : { + repeat: Infinity, + duration: 2.5, + ease: 'easeInOut', + }; + return ( { label={ isLoading ? t('states.loading') - : isOnline - ? t('states.online', { response: data.status }) - : t('states.offline', { response: data?.status ?? error?.data?.httpStatus }) + : data?.state === 'online' + ? t('states.online', { response: data?.status ?? 'N/A' }) + : `${data?.statusText} ${data?.status}` } > - + {config?.settings.customization.accessibility?.replacePingDotsWithIcons ? ( + + + + ) : ( + + )} ); }; -const usePingQuery = (app: AppType, isEnabled: boolean) => - api.app.ping.useQuery( - { - url: app.url, - }, - { - enabled: isEnabled, - select: (data) => { - const statusCode = data.status; - const isOk = getIsOk(app, statusCode); - return { - status: statusCode, - state: isOk ? ('online' as const) : ('down' as const), - }; - }, - } - ); +const AccessibleIndicatorPing = ({ + isLoading, + isOnline, +}: { + isOnline: boolean; + isLoading: boolean; +}) => { + if (isOnline) { + return ; + } -const getIsOk = (app: AppType, status: number) => { + if (isLoading) { + return ; + } + + return ; +}; + +export const getIsOk = (app: AppType, status: number) => { if (app.network.okStatus === undefined || app.network.statusCodes.length >= 1) { Consola.log('Using new status codes'); return app.network.statusCodes.includes(status.toString()); diff --git a/src/components/Settings/Customization/Accessibility/AccessibilitySettings.tsx b/src/components/Settings/Customization/Accessibility/AccessibilitySettings.tsx new file mode 100644 index 000000000..74d28a6b0 --- /dev/null +++ b/src/components/Settings/Customization/Accessibility/AccessibilitySettings.tsx @@ -0,0 +1,80 @@ +import { Alert, Stack, Switch } from '@mantine/core'; +import { IconInfoCircle } from '@tabler/icons-react'; +import { BaseSyntheticEvent } from 'react'; +import { useConfigStore } from '../../../../config/store'; +import { useConfigContext } from '../../../../config/provider'; +import { useTranslation } from 'react-i18next'; + +export const AccessibilitySettings = () => { + const { t } = useTranslation('settings/customization/accessibility'); + const { updateConfig } = useConfigStore(); + const { config, name: configName } = useConfigContext(); + + return ( + + { + if (!configName) { + return; + } + + updateConfig( + configName, + (previousConfig) => ({ + ...previousConfig, + settings: { + ...previousConfig.settings, + customization: { + ...previousConfig.settings.customization, + accessibility: { + ...previousConfig.settings.customization.accessibility, + disablePingPulse: value.target.checked, + }, + }, + }, + }), + false, + true + ); + }} + /> + + { + if (!configName) { + return; + } + + updateConfig( + configName, + (previousConfig) => ({ + ...previousConfig, + settings: { + ...previousConfig.settings, + customization: { + ...previousConfig.settings.customization, + accessibility: { + ...previousConfig.settings.customization.accessibility, + replacePingDotsWithIcons: value.target.checked, + }, + }, + }, + }), + false, + true + ); + }} + /> + + } color="blue"> + {t('alert')} + + + ); +}; diff --git a/src/components/Settings/Customization/CustomizationAccordeon.tsx b/src/components/Settings/Customization/CustomizationAccordeon.tsx index f5d18551b..39315ee49 100644 --- a/src/components/Settings/Customization/CustomizationAccordeon.tsx +++ b/src/components/Settings/Customization/CustomizationAccordeon.tsx @@ -1,5 +1,5 @@ import { Accordion, Checkbox, Grid, Group, Stack, Text } from '@mantine/core'; -import { IconBrush, IconChartCandle, IconCode, IconDragDrop, IconLayout } from '@tabler/icons-react'; +import { IconAccessible, IconBrush, IconChartCandle, IconCode, IconDragDrop, IconLayout } from '@tabler/icons-react'; import { i18n, useTranslation } from 'next-i18next'; import { ReactNode } from 'react'; import { GridstackConfiguration } from './Layout/GridstackConfiguration'; @@ -13,6 +13,7 @@ import { ColorSelector } from './Theme/ColorSelector'; import { CustomCssChanger } from './Theme/CustomCssChanger'; import { DashboardTilesOpacitySelector } from './Theme/OpacitySelector'; import { ShadeSelector } from './Theme/ShadeSelector'; +import { AccessibilitySettings } from './Accessibility/AccessibilitySettings'; export const CustomizationSettingsAccordeon = () => { const items = getItems().map((item) => ( @@ -70,6 +71,13 @@ const getItems = () => { description: t('accordeon.gridstack.description'), content: , }, + { + id: 'accessibility', + image: , + label: t('accordeon.accessibility.name'), + description: t('accordeon.accessibility.description'), + content: , + }, { id: 'page_metadata', image: , diff --git a/src/components/Settings/Customization/Layout/LayoutSelector.tsx b/src/components/Settings/Customization/Layout/LayoutSelector.tsx index 3b05524eb..d03642dfe 100644 --- a/src/components/Settings/Customization/Layout/LayoutSelector.tsx +++ b/src/components/Settings/Customization/Layout/LayoutSelector.tsx @@ -159,7 +159,7 @@ export const LayoutSelector = () => { /> handleChange('enabledPing', ev, setPing)} /> diff --git a/src/modules/Docker/DockerModule.tsx b/src/modules/Docker/DockerModule.tsx index f11bb18b2..43917b24a 100644 --- a/src/modules/Docker/DockerModule.tsx +++ b/src/modules/Docker/DockerModule.tsx @@ -31,6 +31,8 @@ export default function DockerMenuButton(props: any) { setSelection([]); }; + if (!dockerEnabled) return null; + return ( <> { }; const processPiHole = async (app: ConfigAppType, enable: boolean) => { - const pihole = new PiHoleClient(app.url, findAppProperty(app, 'password')); + const pihole = new PiHoleClient(app.url, findAppProperty(app, 'apiKey')); if (enable) { await pihole.enable(); diff --git a/src/pages/api/modules/dns-hole/summary.spec.ts b/src/pages/api/modules/dns-hole/summary.spec.ts index e80999a3e..05470be69 100644 --- a/src/pages/api/modules/dns-hole/summary.spec.ts +++ b/src/pages/api/modules/dns-hole/summary.spec.ts @@ -28,7 +28,7 @@ describe('DNS hole', () => { type: 'pihole', properties: [ { - field: 'password', + field: 'apiKey', type: 'private', value: 'hf3829fj238g8', }, @@ -130,7 +130,7 @@ describe('DNS hole', () => { type: 'pihole', properties: [ { - field: 'password', + field: 'apiKey', type: 'private', value: 'hf3829fj238g8', }, @@ -144,7 +144,7 @@ describe('DNS hole', () => { type: 'pihole', properties: [ { - field: 'password', + field: 'apiKey', type: 'private', value: 'ayaka', }, diff --git a/src/pages/api/modules/dns-hole/summary.ts b/src/pages/api/modules/dns-hole/summary.ts index 8970f0851..2807b711b 100644 --- a/src/pages/api/modules/dns-hole/summary.ts +++ b/src/pages/api/modules/dns-hole/summary.ts @@ -32,7 +32,7 @@ export const Get = async (request: NextApiRequest, response: NextApiResponse) => try { switch (app.integration?.type) { case 'pihole': { - const piHole = new PiHoleClient(app.url, findAppProperty(app, 'password')); + const piHole = new PiHoleClient(app.url, findAppProperty(app, 'apiKey')); const summary = await piHole.getSummary(); data.domainsBeingBlocked += summary.domains_being_blocked; diff --git a/src/server/api/routers/app.ts b/src/server/api/routers/app.ts index 184e4989e..2fc3dd6c8 100644 --- a/src/server/api/routers/app.ts +++ b/src/server/api/routers/app.ts @@ -1,46 +1,58 @@ -import { z } from 'zod'; -import axios, { AxiosError } from 'axios'; -import https from 'https'; -import Consola from 'consola'; import { TRPCError } from '@trpc/server'; +import axios, { AxiosError } from 'axios'; +import Consola from 'consola'; +import { getCookie } from 'cookies-next'; +import https from 'https'; +import { z } from 'zod'; +import { getIsOk } from '~/components/Dashboard/Tiles/Apps/AppPing'; +import { getConfig } from '~/tools/config/getConfig'; +import { AppType } from '~/types/app'; + import { createTRPCRouter, publicProcedure } from '../trpc'; export const appRouter = createTRPCRouter({ - ping: publicProcedure - .input( - z.object({ - url: z.string(), - }) - ) - .query(async ({ input }) => { - const agent = new https.Agent({ rejectUnauthorized: false }); - const res = await axios - .get(input.url, { httpsAgent: agent, timeout: 2000 }) - .then((response) => ({ - status: response.status, - statusText: response.statusText, - })) - .catch((error: AxiosError) => { - if (error.response) { - Consola.warn(`Unexpected response: ${error.message}`); + ping: publicProcedure.input(z.string()).query(async ({ input }) => { + const agent = new https.Agent({ rejectUnauthorized: false }); + const configName = getCookie('config-name'); + const config = getConfig(configName?.toString() ?? 'default'); + const app = config.apps.find((app) => app.id === input); + const url = app?.url; + if (url === undefined || !app) { + throw new TRPCError({ + code: 'NOT_FOUND', + message: 'App or url not found', + }); + } + const res = await axios + .get(url, { httpsAgent: agent, timeout: 2000 }) + .then((response) => ({ + status: response.status, + statusText: response.statusText, + })) + .catch((error: AxiosError) => { + if (error.response) { + if (getIsOk(app as AppType, error.response.status)) { return { + state: 'offline', status: error.response.status, statusText: error.response.statusText, }; } - if (error.code === 'ECONNABORTED') { - throw new TRPCError({ - code: 'TIMEOUT', - message: 'Request Timeout', - }); - } - - Consola.error(`Unexpected error: ${error.message}`); + } + if (error.code === 'ECONNABORTED') { throw new TRPCError({ - code: 'INTERNAL_SERVER_ERROR', - message: 'Internal Server Error', + code: 'TIMEOUT', + message: 'Request Timeout', }); + } + + Consola.error(`Unexpected response: ${error.message}`); + throw new TRPCError({ + code: 'INTERNAL_SERVER_ERROR', + cause: app.id, + message: error.message, }); - return res; - }), + }); + return res; + }), }); diff --git a/src/server/api/routers/dns-hole.ts b/src/server/api/routers/dns-hole.ts index 13d98e962..19d903c84 100644 --- a/src/server/api/routers/dns-hole.ts +++ b/src/server/api/routers/dns-hole.ts @@ -97,7 +97,7 @@ const processAdGuard = async (app: ConfigAppType, enable: boolean) => { }; const processPiHole = async (app: ConfigAppType, enable: boolean) => { - const pihole = new PiHoleClient(app.url, findAppProperty(app, 'password')); + const pihole = new PiHoleClient(app.url, findAppProperty(app, 'apiKey')); if (enable) { await pihole.enable(); @@ -108,7 +108,7 @@ const processPiHole = async (app: ConfigAppType, enable: boolean) => { }; const collectPiHoleSummary = async (app: ConfigAppType) => { - const piHole = new PiHoleClient(app.url, findAppProperty(app, 'password')); + const piHole = new PiHoleClient(app.url, findAppProperty(app, 'apiKey')); const summary = await piHole.getSummary(); return { diff --git a/src/tools/config/getFrontendConfig.ts b/src/tools/config/getFrontendConfig.ts index 0a4003697..73b559a9f 100644 --- a/src/tools/config/getFrontendConfig.ts +++ b/src/tools/config/getFrontendConfig.ts @@ -1,11 +1,13 @@ import Consola from 'consola'; import fs from 'fs'; +import { IntegrationField } from '~/types/app'; import { BackendConfigType, ConfigType } from '../../types/config'; import { getConfig } from './getConfig'; import { fetchCity } from '~/server/api/routers/weather'; export const getFrontendConfig = async (name: string): Promise => { let config = getConfig(name); + let shouldMigrateConfig = false; const anyWeatherWidgetWithStringLocation = config.widgets.some( (widget) => widget.type === 'weather' && typeof widget.properties.location === 'string' @@ -13,6 +15,27 @@ export const getFrontendConfig = async (name: string): Promise => { if (anyWeatherWidgetWithStringLocation) { config = await migrateLocation(config); + shouldMigrateConfig = true; + } + + const anyPiholeIntegrationWithPassword = config.apps.some( + (app) => + app?.integration?.type === 'pihole' && + app?.integration?.properties.length && + app.integration.properties.some((property) => property.field === 'password') + ); + + if (anyPiholeIntegrationWithPassword) { + config = migratePiholeIntegrationField(config); + shouldMigrateConfig = true; + } + + if (shouldMigrateConfig) { + Consola.info(`Migrating config ${config.configProperties.name}`); + fs.writeFileSync( + `./data/configs/${config.configProperties.name}.json`, + JSON.stringify(config, null, 2) + ); } Consola.info(`Requested frontend content of configuration '${name}'`); @@ -54,7 +77,6 @@ export const getFrontendConfig = async (name: string): Promise => { const migrateLocation = async (config: BackendConfigType) => { Consola.log('Migrating config file to new location schema...', config.configProperties.name); - const configName = config.configProperties.name; const migratedConfig = { ...config, widgets: await Promise.all( @@ -82,7 +104,27 @@ const migrateLocation = async (config: BackendConfigType) => { ), }; - fs.writeFileSync(`./data/configs/${configName}.json`, JSON.stringify(migratedConfig, null, 2)); - return migratedConfig; }; + +const migratePiholeIntegrationField = (config: BackendConfigType) => { + Consola.log('Migrating pihole integration field to apiKey...', config.configProperties.name); + return { + ...config, + apps: config.apps.map((app) => { + if (app?.integration?.type === 'pihole' && Array.isArray(app?.integration?.properties)) { + const migratedProperties = app.integration.properties.map((property) => { + if (property.field === 'password') { + return { + ...property, + field: 'apiKey' as IntegrationField, + }; + } + return property; + }); + return { ...app, integration: { ...app.integration, properties: migratedProperties } }; + } + return app; + }), + }; +}; diff --git a/src/tools/config/migrateConfig.ts b/src/tools/config/migrateConfig.ts index b85e83e38..3411be969 100644 --- a/src/tools/config/migrateConfig.ts +++ b/src/tools/config/migrateConfig.ts @@ -44,6 +44,10 @@ export function migrateConfig(config: Config): BackendConfigType { enabledRightSidebar: false, enabledSearchbar: config.modules.search?.enabled ?? true, }, + accessibility: { + disablePingPulse: false, + replacePingDotsWithIcons: false, + }, }, }, wrappers: [ diff --git a/src/tools/server/translation-namespaces.ts b/src/tools/server/translation-namespaces.ts index b7f50623f..96f25690e 100644 --- a/src/tools/server/translation-namespaces.ts +++ b/src/tools/server/translation-namespaces.ts @@ -13,6 +13,7 @@ export const dashboardNamespaces = [ 'settings/general/internationalization', 'settings/general/search-engine', 'settings/general/widget-positions', + 'settings/customization/accessibility', 'settings/customization/general', 'settings/customization/color-selector', 'settings/customization/page-appearance', diff --git a/src/types/app.ts b/src/types/app.ts index 847ef8353..7d4f481f9 100644 --- a/src/types/app.ts +++ b/src/types/app.ts @@ -86,7 +86,7 @@ export const integrationFieldProperties: { transmission: ['username', 'password'], jellyfin: ['username', 'password'], plex: ['apiKey'], - pihole: ['password'], + pihole: ['apiKey'], adGuardHome: ['username', 'password'], }; diff --git a/src/types/settings.ts b/src/types/settings.ts index 4afa31f8b..ddf2e3a0d 100644 --- a/src/types/settings.ts +++ b/src/types/settings.ts @@ -45,6 +45,12 @@ export interface CustomizationSettingsType { colors: ColorsCustomizationSettingsType; appOpacity?: number; gridstack?: GridstackSettingsType; + accessibility: AccessibilitySettings; +} + +export interface AccessibilitySettings { + disablePingPulse: boolean; + replacePingDotsWithIcons: boolean; } export interface GridstackSettingsType { diff --git a/src/widgets/calendar/CalendarDay.tsx b/src/widgets/calendar/CalendarDay.tsx index a7e307ebd..9cd4734b5 100644 --- a/src/widgets/calendar/CalendarDay.tsx +++ b/src/widgets/calendar/CalendarDay.tsx @@ -1,18 +1,46 @@ -import { Container, Indicator, IndicatorProps, Popover } from '@mantine/core'; +import { Container, Indicator, IndicatorProps, Popover, useMantineTheme, Button } from '@mantine/core'; import { useDisclosure } from '@mantine/hooks'; import { MediaList } from './MediaList'; import { MediasType } from './type'; + interface CalendarDayProps { date: Date; medias: MediasType; + size: string; } -export const CalendarDay = ({ date, medias }: CalendarDayProps) => { +export const CalendarDay = ({ date, medias, size }: CalendarDayProps) => { const [opened, { close, open }] = useDisclosure(false); - - if (medias.totalCount === 0) { - return
{date.getDate()}
; + const { radius, fn } = useMantineTheme(); + var indicatorSize = 10; + var indicatorOffset = -4; + switch(size){ + case "xs": { + indicatorSize += 0; + indicatorOffset -= 0; + break; + } + case "sm": { + indicatorSize += 1; + indicatorOffset -= 1; + break; + } + case "md": { + indicatorSize += 2; + indicatorOffset -= 1; + break; + } + case "lg": { + indicatorSize += 3; + indicatorOffset -= 2; + break; + } + case "xl": { + indicatorSize += 4; + indicatorOffset -= 3; + break; + } } return ( @@ -29,11 +57,23 @@ export const CalendarDay = ({ date, medias }: CalendarDayProps) => { opened={opened} > - - - - - + 0 ? open : undefined} + sx={{ root: { + padding:'18% !important', + height: '100%', + width: '100%', + alignContent: 'center', + borderRadius: ['xs','sm'].includes(size) ? radius.md : radius.lg, + borderStyle: "solid", + borderWidth: "0.2rem", + borderColor: opened ? fn.primaryColor() : 'transparent', + }}} + > + + + +
{date.getDate()}
@@ -49,17 +89,19 @@ export const CalendarDay = ({ date, medias }: CalendarDayProps) => { }; interface DayIndicatorProps { + size: any; + offset: any; color: string; medias: any[]; children: JSX.Element; position: IndicatorProps['position']; } -const DayIndicator = ({ color, medias, children, position }: DayIndicatorProps) => { +const DayIndicator = ({ size, offset, color, medias, children, position }: DayIndicatorProps) => { if (medias.length === 0) return children; return ( - + {children} ); diff --git a/src/widgets/calendar/CalendarTile.tsx b/src/widgets/calendar/CalendarTile.tsx index de320e212..67e93fada 100644 --- a/src/widgets/calendar/CalendarTile.tsx +++ b/src/widgets/calendar/CalendarTile.tsx @@ -16,6 +16,10 @@ const definition = defineWidget({ id: 'calendar', icon: IconCalendarTime, options: { + hideWeekDays: { + type: 'switch', + defaultValue: true, + }, useSonarrv4: { type: 'switch', defaultValue: false, @@ -33,6 +37,17 @@ const definition = defineWidget({ { label: 'Digital', value: 'digitalRelease' }, ], }, + fontSize:{ + type: 'select', + defaultValue: 'xs', + data: [ + { label: 'Extra Small', value: 'xs' }, + { label: 'Small', value: 'sm' }, + { label: 'Medium', value: 'md' }, + { label: 'Large', value: 'lg' }, + { label: 'Extra Large', value: 'xl' }, + ] + }, }, gridstack: { minWidth: 2, @@ -50,7 +65,7 @@ interface CalendarTileProps { } function CalendarTile({ widget }: CalendarTileProps) { - const { colorScheme } = useMantineTheme(); + const { colorScheme, radius } = useMantineTheme(); const { name: configName } = useConfigContext(); const [month, setMonth] = useState(new Date()); const isEditMode = useEditModeStore((x) => x.enabled); @@ -73,17 +88,24 @@ function CalendarTile({ widget }: CalendarTileProps) { defaultDate={new Date()} onPreviousMonth={setMonth} onNextMonth={setMonth} - size="xs" + size={widget.properties.fontSize} locale={i18n?.resolvedLanguage ?? 'en'} firstDayOfWeek={widget.properties.sundayStart ? 0 : 1} - hideWeekdays - style={{ position: 'relative', top: -10 }} + hideWeekdays={widget.properties.hideWeekDays} + style={{ position: 'relative' }} date={month} maxLevel="month" hasNextLevel={false} styles={{ calendarHeader: { maxWidth: 'inherit', + marginBottom: '0.35rem !important', + }, + calendarHeaderLevel: { + height:"100%", + }, + calendarHeaderControl:{ + height:"100%", }, calendar: { height: '100%', @@ -100,15 +122,21 @@ function CalendarTile({ widget }: CalendarTileProps) { flexDirection: 'column', width: '100%', }, + monthCell:{ + textAlign:'center', + }, month: { flex: 1, }, + day:{ + borderRadius: ['xs','sm'].includes(widget.properties.fontSize) ? radius.md : radius.lg, + }, }} getDayProps={(date) => ({ bg: getBgColorByDateAndTheme(colorScheme, date), })} renderDay={(date) => ( - + )} /> ); diff --git a/src/widgets/dnshole/DnsHoleControls.tsx b/src/widgets/dnshole/DnsHoleControls.tsx index b4d1e1077..ee8190acb 100644 --- a/src/widgets/dnshole/DnsHoleControls.tsx +++ b/src/widgets/dnshole/DnsHoleControls.tsx @@ -1,4 +1,5 @@ -import { Badge, Box, Button, Card, Group, Image, Stack, Text } from '@mantine/core'; +import { Badge, Box, Button, Card, Group, Image, Stack, Text, SimpleGrid } from '@mantine/core'; +import { useElementSize } from '@mantine/hooks'; import { useTranslation } from 'next-i18next'; import { IconDeviceGamepad, IconPlayerPlay, IconPlayerStop } from '@tabler/icons-react'; import { useConfigContext } from '../../config/provider'; @@ -15,8 +16,8 @@ const definition = defineWidget({ icon: IconDeviceGamepad, options: {}, gridstack: { - minWidth: 3, - minHeight: 2, + minWidth: 2, + minHeight: 1, maxWidth: 12, maxHeight: 12, }, @@ -32,6 +33,7 @@ interface DnsHoleControlsWidgetProps { function DnsHoleControlsWidgetTile({ widget }: DnsHoleControlsWidgetProps) { const { isInitialLoading, data } = useDnsHoleSummeryQuery(); const { mutateAsync } = useDnsHoleControlMutation(); + const { width, ref } = useElementSize(); const { t } = useTranslation('common'); const { name: configName, config } = useConfigContext(); @@ -41,8 +43,8 @@ function DnsHoleControlsWidgetTile({ widget }: DnsHoleControlsWidgetProps) { } return ( - - + + 275? 2 : 1 } verticalSpacing="0.25rem" spacing="0.25rem"> @@ -68,41 +71,43 @@ function DnsHoleControlsWidgetTile({ widget }: DnsHoleControlsWidgetProps) { leftIcon={} variant="light" color="red" + h="2rem" > {t('disableAll')} - + - {data.status.map((status, index) => { - const app = config?.apps.find((x) => x.id === status.appId); + + {data.status.map((status, index) => { + const app = config?.apps.find((x) => x.id === status.appId); - if (!app) { - return null; - } + if (!app) { + return null; + } - return ( - - + return ( + ({ - backgroundColor: - theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[2], - textAlign: 'center', - padding: 5, - borderRadius: theme.radius.md, - })} - > - + sx={(theme) => ({ + backgroundColor: + theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[2], + textAlign: 'center', + padding: 5, + borderRadius: theme.radius.md, + })} + > + - {app.name} + + {app.name} + + - - - - - ); - })} + + ); + })} + ); } diff --git a/yarn.lock b/yarn.lock index 87195db6d..6551899de 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,6 +5,13 @@ __metadata: version: 6 cacheKey: 8 +"@aashutoshrathi/word-wrap@npm:^1.2.3": + version: 1.2.6 + resolution: "@aashutoshrathi/word-wrap@npm:1.2.6" + checksum: ada901b9e7c680d190f1d012c84217ce0063d8f5c5a7725bb91ec3c5ed99bb7572680eb2d2938a531ccbaec39a95422fcd8a6b4a13110c7d98dd75402f66a0cd + languageName: node + linkType: hard + "@adobe/css-tools@npm:^4.0.1": version: 4.2.0 resolution: "@adobe/css-tools@npm:4.2.0" @@ -38,7 +45,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.21.4": +"@babel/core@npm:^7.22.5": version: 7.22.5 resolution: "@babel/core@npm:7.22.5" dependencies: @@ -227,7 +234,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-self@npm:^7.21.0": +"@babel/plugin-transform-react-jsx-self@npm:^7.22.5": version: 7.22.5 resolution: "@babel/plugin-transform-react-jsx-self@npm:7.22.5" dependencies: @@ -238,7 +245,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-source@npm:^7.19.6": +"@babel/plugin-transform-react-jsx-source@npm:^7.22.5": version: 7.22.5 resolution: "@babel/plugin-transform-react-jsx-source@npm:7.22.5" dependencies: @@ -753,27 +760,27 @@ __metadata: languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.0.3": - version: 2.0.3 - resolution: "@eslint/eslintrc@npm:2.0.3" +"@eslint/eslintrc@npm:^2.1.0": + version: 2.1.0 + resolution: "@eslint/eslintrc@npm:2.1.0" dependencies: ajv: ^6.12.4 debug: ^4.3.2 - espree: ^9.5.2 + espree: ^9.6.0 globals: ^13.19.0 ignore: ^5.2.0 import-fresh: ^3.2.1 js-yaml: ^4.1.0 minimatch: ^3.1.2 strip-json-comments: ^3.1.1 - checksum: ddc51f25f8524d8231db9c9bf03177e503d941a332e8d5ce3b10b09241be4d5584a378a529a27a527586bfbccf3031ae539eb891352033c340b012b4d0c81d92 + checksum: d5ed0adbe23f6571d8c9bb0ca6edf7618dc6aed4046aa56df7139f65ae7b578874e0d9c796df784c25bda648ceb754b6320277d828c8b004876d7443b8dc018c languageName: node linkType: hard -"@eslint/js@npm:8.42.0": - version: 8.42.0 - resolution: "@eslint/js@npm:8.42.0" - checksum: 750558843ac458f7da666122083ee05306fc087ecc1e5b21e7e14e23885775af6c55bcc92283dff1862b7b0d8863ec676c0f18c7faf1219c722fe91a8ece56b6 +"@eslint/js@npm:8.44.0": + version: 8.44.0 + resolution: "@eslint/js@npm:8.44.0" + checksum: fc539583226a28f5677356e9f00d2789c34253f076643d2e32888250e509a4e13aafe0880cb2425139051de0f3a48d25bfc5afa96b7304f203b706c17340e3cf languageName: node linkType: hard @@ -940,7 +947,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13": +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.15": version: 1.4.15 resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 @@ -968,134 +975,134 @@ __metadata: linkType: hard "@mantine/core@npm:^6.0.0": - version: 6.0.13 - resolution: "@mantine/core@npm:6.0.13" + version: 6.0.16 + resolution: "@mantine/core@npm:6.0.16" dependencies: "@floating-ui/react": ^0.19.1 - "@mantine/styles": 6.0.13 - "@mantine/utils": 6.0.13 + "@mantine/styles": 6.0.16 + "@mantine/utils": 6.0.16 "@radix-ui/react-scroll-area": 1.0.2 react-remove-scroll: ^2.5.5 react-textarea-autosize: 8.3.4 peerDependencies: - "@mantine/hooks": 6.0.13 + "@mantine/hooks": 6.0.16 react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: 49e13573578f44fea695780a95b30593a647b304d070643d184ef2e2ba7a4f6eb1d9ece545e4b4d318546a174e8c7b4a30ae574f2d1e583bb43fd07ab9e98624 + checksum: 0bee88053216bb9190f78f023e6272c8333487cdb5d7f5c1abe3dde0bf5492365b87cadb4c120513f7312b3ccd7ee4adc76767b961bbd720d4e17c4f796742b6 languageName: node linkType: hard "@mantine/dates@npm:^6.0.0": - version: 6.0.13 - resolution: "@mantine/dates@npm:6.0.13" + version: 6.0.16 + resolution: "@mantine/dates@npm:6.0.16" dependencies: - "@mantine/utils": 6.0.13 + "@mantine/utils": 6.0.16 peerDependencies: - "@mantine/core": 6.0.13 - "@mantine/hooks": 6.0.13 + "@mantine/core": 6.0.16 + "@mantine/hooks": 6.0.16 dayjs: ">=1.0.0" react: ">=16.8.0" - checksum: a942a6e9ffe450a00fa216d94b2570a0861f1b5c7a3bcfb7c127ad66d69e9dff865b0495b074b51ba2d8ebf405a19adae9081da0eb0536f98bdfcaaf891e1be6 + checksum: e196f24f69eabd388c3dc1991d6571719bea86f4dfb3bb3082367890b558c8c2f6805d4a12a0a98c3e07cb4c8003ba2c666b3157f4b483a90a532d373cb066e3 languageName: node linkType: hard "@mantine/dropzone@npm:^6.0.0": - version: 6.0.13 - resolution: "@mantine/dropzone@npm:6.0.13" + version: 6.0.16 + resolution: "@mantine/dropzone@npm:6.0.16" dependencies: - "@mantine/utils": 6.0.13 + "@mantine/utils": 6.0.16 react-dropzone: 14.2.3 peerDependencies: - "@mantine/core": 6.0.13 - "@mantine/hooks": 6.0.13 + "@mantine/core": 6.0.16 + "@mantine/hooks": 6.0.16 react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: 22640d1025f7600a6ee63a58d48caf387319e1f313b9bd332b1ec9f071c479bc7dc95b20279655e22be94753c63711ec735cfa8bf5214371e8a6c1010bea79d2 + checksum: 3222b46c32a615e0502e03410ae3a5288ee7682a002f15b5d394d9fa520143052363235542d4293a8a67b2d56806835b6f6a2786c644b5c9bc237d2ac60f954c languageName: node linkType: hard "@mantine/form@npm:^6.0.0": - version: 6.0.13 - resolution: "@mantine/form@npm:6.0.13" + version: 6.0.16 + resolution: "@mantine/form@npm:6.0.16" dependencies: fast-deep-equal: ^3.1.3 klona: ^2.0.5 peerDependencies: react: ">=16.8.0" - checksum: c426e30e6f160a948548f13144edb5e98397a01d7542b9a3c2f8509a69047160eefc26ffe239a94512ba7fa4567a1429f55ecfc22aecf93483b5b16060daa037 + checksum: 0ca44d60fbedcf5f9243c6064b0663f1446bca1b8118a7eccad8729ffcf8159c182b5dfca2c4eef680d5dda83b5e6f15515094213de0fdbfc57beaa4a9fe5773 languageName: node linkType: hard "@mantine/hooks@npm:^6.0.0": - version: 6.0.13 - resolution: "@mantine/hooks@npm:6.0.13" + version: 6.0.16 + resolution: "@mantine/hooks@npm:6.0.16" peerDependencies: react: ">=16.8.0" - checksum: 3037208d21b4e7f339de9e6c4cc74486123d16fd1dcd3796da4619e691000fc9d4c665ce748f3b099d0ee1980ddff3968faeba73a429f2230e630398dfbb69a8 + checksum: 070546fd11dda57f29650af534e35a5ca95b47c38ddfc6646be9a58ed3cd8f671a376f0203be7832a7b29eaf97091cf0a7899223e5993dfacf775edf5c7325c6 languageName: node linkType: hard "@mantine/modals@npm:^6.0.0": - version: 6.0.13 - resolution: "@mantine/modals@npm:6.0.13" + version: 6.0.16 + resolution: "@mantine/modals@npm:6.0.16" dependencies: - "@mantine/utils": 6.0.13 + "@mantine/utils": 6.0.16 peerDependencies: - "@mantine/core": 6.0.13 - "@mantine/hooks": 6.0.13 + "@mantine/core": 6.0.16 + "@mantine/hooks": 6.0.16 react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: a4cddf46a4621384478c95848d09e2cef78914c27668fe7944cfbeef98a8240505e06cc884d7496236a756ba9d72bb0f85f8109a59d64e7d4843f7dd03d468e7 + checksum: 518c2d89c9bc714d37ca2ac8248bce3b1cd6fd46926e03c96f85070a801bc31a09eca6891fc60cddf6bf0f1d94d30744cf7b9f4b742bdbfe22b0e2dd3520ea5f languageName: node linkType: hard "@mantine/next@npm:^6.0.0": - version: 6.0.13 - resolution: "@mantine/next@npm:6.0.13" + version: 6.0.16 + resolution: "@mantine/next@npm:6.0.16" dependencies: - "@mantine/ssr": 6.0.13 - "@mantine/styles": 6.0.13 + "@mantine/ssr": 6.0.16 + "@mantine/styles": 6.0.16 peerDependencies: next: "*" react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: 7b51cc745a472318b3be1afde21cd073554f2a84aff79d2a1f09611fb06ec0818d5d6b5a7353c782bbbdc7cd4574dd4dc317182c72e257ccf3509788a7eb64f2 + checksum: 8349dca8e17dd3a1b93029b7367e9ec3583f5a50df10122fd4c984d995e57e452359fc45a8c72ef229750cadfb7f71df7bf8c920c6315b5607cc3cff56608eb7 languageName: node linkType: hard "@mantine/notifications@npm:^6.0.0": - version: 6.0.13 - resolution: "@mantine/notifications@npm:6.0.13" + version: 6.0.16 + resolution: "@mantine/notifications@npm:6.0.16" dependencies: - "@mantine/utils": 6.0.13 + "@mantine/utils": 6.0.16 react-transition-group: 4.4.2 peerDependencies: - "@mantine/core": 6.0.13 - "@mantine/hooks": 6.0.13 + "@mantine/core": 6.0.16 + "@mantine/hooks": 6.0.16 react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: 4cc3130326c39734be414f7b99690241f8faa8131051b04b236973976db11f32220b5d0553d4a140e01d0075e8fdd8a671446374ad5c37b74f1047c30357c0ac + checksum: 511d746879f135f35301507e88406eef0e0557b8e2427ce0c3c7c7e06940f1bce704d8f8a5296b6019208a68024d7eb78fce4a48aed068609c80c2516a8b3fd3 languageName: node linkType: hard -"@mantine/ssr@npm:6.0.13": - version: 6.0.13 - resolution: "@mantine/ssr@npm:6.0.13" +"@mantine/ssr@npm:6.0.16": + version: 6.0.16 + resolution: "@mantine/ssr@npm:6.0.16" dependencies: - "@mantine/styles": 6.0.13 + "@mantine/styles": 6.0.16 html-react-parser: 1.4.12 peerDependencies: "@emotion/react": ">=11.9.0" "@emotion/server": ">=11.4.0" react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: 92ae8f5d2d1dd571897447ea9120e5169828b57b85497ec67adf501f3bfd9c29d51b045d37dd614684875ee4208fcd2dee668738d6cab524ab4c037a51f83807 + checksum: 6ea8cae9db51bb2d7978e72c20e8b55d0fbd32f7125dd2435ff11376a0c5756e56c7f9476f9f7be7ca6b18a37d96ad5035fdcf6fe4f2d72d2173974a288279aa languageName: node linkType: hard -"@mantine/styles@npm:6.0.13": - version: 6.0.13 - resolution: "@mantine/styles@npm:6.0.13" +"@mantine/styles@npm:6.0.16": + version: 6.0.16 + resolution: "@mantine/styles@npm:6.0.16" dependencies: clsx: 1.1.1 csstype: 3.0.9 @@ -1103,103 +1110,103 @@ __metadata: "@emotion/react": ">=11.9.0" react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: 459f4ce0eb2ee75885980061ba248533b7164b2231deb6a93ad6da6bf0b720651640492b02216419422c6b0a28908d6ec488fbf7de2ac57ad1ff3fd13f7f9a02 + checksum: 587be266fe982db0716a27dc1b6e81c3051301758a167af06863b64609d6114244698739ada55d2acc5b58f700b8f6b47eb623162fa5cacc9ebd4be0f2f37f7f languageName: node linkType: hard -"@mantine/utils@npm:6.0.13": - version: 6.0.13 - resolution: "@mantine/utils@npm:6.0.13" +"@mantine/utils@npm:6.0.16": + version: 6.0.16 + resolution: "@mantine/utils@npm:6.0.16" peerDependencies: react: ">=16.8.0" - checksum: 7b59db35a7245af138b9af7b143b4ef30e9b5d0bf85e796034ab2368b1a449d67f2023d9d174c532ebd94e9e63037d2e4e0da46e259572de7397e4b0d8867ca0 + checksum: dc9e6690497fdc769cc4abaaa6152c6ed03408d0e1e8429d39ff6b084e03a525abe3b2bfcbe8a4fa69f5dd88a7e7743859b91811b8aa1808195549f6d803006d languageName: node linkType: hard "@next/bundle-analyzer@npm:^13.0.0": - version: 13.4.5 - resolution: "@next/bundle-analyzer@npm:13.4.5" + version: 13.4.10 + resolution: "@next/bundle-analyzer@npm:13.4.10" dependencies: webpack-bundle-analyzer: 4.7.0 - checksum: 7a898223080d9712b151441924ffdf5bc5faa778bc4929e58db10a029843d5dd9b074c6cf6ce605d94ceac64936358a52ab2cca654563e2ebd0d41a97feedf94 + checksum: 876474d910583c8326c6ae1c23124461783c8c58abb1c9f197185f96c36b71d0d19861cd54ebaa0db5317f6fd035d465a703a3c70a2006492c0e2aa25621fceb languageName: node linkType: hard -"@next/env@npm:13.4.5": - version: 13.4.5 - resolution: "@next/env@npm:13.4.5" - checksum: bdde73b6f1304fe2f275cbe26d8c447f66701f89afbe6b6a0c489f2dfaa8decc18a1728720c239f6c5dd3bf63a77a324e11105ff9a6cebf72c16ed478dffa9f0 +"@next/env@npm:13.4.10": + version: 13.4.10 + resolution: "@next/env@npm:13.4.10" + checksum: a3e1ca0fe2e58288a9747a279d168a5d2cdda68bd72174d4c8b6746e5172f261174401d787ec356ac424504f967f0a47bffeffcfdabd6fa73a9e2bd0ff851a73 languageName: node linkType: hard -"@next/eslint-plugin-next@npm:13.4.5, @next/eslint-plugin-next@npm:^13.4.5": - version: 13.4.5 - resolution: "@next/eslint-plugin-next@npm:13.4.5" +"@next/eslint-plugin-next@npm:13.4.10, @next/eslint-plugin-next@npm:^13.4.5": + version: 13.4.10 + resolution: "@next/eslint-plugin-next@npm:13.4.10" dependencies: glob: 7.1.7 - checksum: cf41158026c6dac8673346f9580875f0a8c77ad2d98b3f62ff66e28fa065aac8558f24276d8f2af93102375dfc2784b3731f9aa4357a817e970db154e0f16b2b + checksum: f14b99eb5d33b6ede9666ffafb596ee6be52157fc87b59d10d94e44b1e9836099ad450a67558c2aecf09c84b55f65a33c9254ab72df33f55f7cc9f4abee7b38c languageName: node linkType: hard -"@next/swc-darwin-arm64@npm:13.4.5": - version: 13.4.5 - resolution: "@next/swc-darwin-arm64@npm:13.4.5" +"@next/swc-darwin-arm64@npm:13.4.10": + version: 13.4.10 + resolution: "@next/swc-darwin-arm64@npm:13.4.10" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@next/swc-darwin-x64@npm:13.4.5": - version: 13.4.5 - resolution: "@next/swc-darwin-x64@npm:13.4.5" +"@next/swc-darwin-x64@npm:13.4.10": + version: 13.4.10 + resolution: "@next/swc-darwin-x64@npm:13.4.10" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@next/swc-linux-arm64-gnu@npm:13.4.5": - version: 13.4.5 - resolution: "@next/swc-linux-arm64-gnu@npm:13.4.5" +"@next/swc-linux-arm64-gnu@npm:13.4.10": + version: 13.4.10 + resolution: "@next/swc-linux-arm64-gnu@npm:13.4.10" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-arm64-musl@npm:13.4.5": - version: 13.4.5 - resolution: "@next/swc-linux-arm64-musl@npm:13.4.5" +"@next/swc-linux-arm64-musl@npm:13.4.10": + version: 13.4.10 + resolution: "@next/swc-linux-arm64-musl@npm:13.4.10" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@next/swc-linux-x64-gnu@npm:13.4.5": - version: 13.4.5 - resolution: "@next/swc-linux-x64-gnu@npm:13.4.5" +"@next/swc-linux-x64-gnu@npm:13.4.10": + version: 13.4.10 + resolution: "@next/swc-linux-x64-gnu@npm:13.4.10" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-x64-musl@npm:13.4.5": - version: 13.4.5 - resolution: "@next/swc-linux-x64-musl@npm:13.4.5" +"@next/swc-linux-x64-musl@npm:13.4.10": + version: 13.4.10 + resolution: "@next/swc-linux-x64-musl@npm:13.4.10" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@next/swc-win32-arm64-msvc@npm:13.4.5": - version: 13.4.5 - resolution: "@next/swc-win32-arm64-msvc@npm:13.4.5" +"@next/swc-win32-arm64-msvc@npm:13.4.10": + version: 13.4.10 + resolution: "@next/swc-win32-arm64-msvc@npm:13.4.10" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@next/swc-win32-ia32-msvc@npm:13.4.5": - version: 13.4.5 - resolution: "@next/swc-win32-ia32-msvc@npm:13.4.5" +"@next/swc-win32-ia32-msvc@npm:13.4.10": + version: 13.4.10 + resolution: "@next/swc-win32-ia32-msvc@npm:13.4.10" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@next/swc-win32-x64-msvc@npm:13.4.5": - version: 13.4.5 - resolution: "@next/swc-win32-x64-msvc@npm:13.4.5" +"@next/swc-win32-x64-msvc@npm:13.4.10": + version: 13.4.10 + resolution: "@next/swc-win32-x64-msvc@npm:13.4.10" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -1575,13 +1582,13 @@ __metadata: linkType: hard "@react-native-async-storage/async-storage@npm:^1.18.1": - version: 1.18.2 - resolution: "@react-native-async-storage/async-storage@npm:1.18.2" + version: 1.19.0 + resolution: "@react-native-async-storage/async-storage@npm:1.19.0" dependencies: merge-options: ^3.0.4 peerDependencies: react-native: ^0.0.0-0 || 0.60 - 0.72 || 1000.0.0 - checksum: bdbcd2e4785a1348657302fa48f4073d980d3b3626fc2ea1e8ec3013825d0013a49d0805a3fd1e98c0b8b12eb1273ef03fb842686ce740d25331398deb2691c4 + checksum: 669f50695838a010f6444f0c0e0618aeda072d25798901d0802f0b945aa6fbab13a68d83a23f6bef591793ae09341dbb8a88f2d40eaf9542bde159711d9deb0e languageName: node linkType: hard @@ -1708,21 +1715,21 @@ __metadata: linkType: hard "@tabler/icons-react@npm:^2.18.0": - version: 2.22.0 - resolution: "@tabler/icons-react@npm:2.22.0" + version: 2.25.0 + resolution: "@tabler/icons-react@npm:2.25.0" dependencies: - "@tabler/icons": 2.22.0 + "@tabler/icons": 2.25.0 prop-types: ^15.7.2 peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 - checksum: fe2a4c3e5483269ee178195746cdc4b8c1e150dec78aae4bbf3884f33dd819929a7ff1e53eb6ba1426b914ba710e13a30d0e70caf9e588b8df45e500f70941dd + checksum: 180c59853971059be16fb3a8128b462a2d0ff29a1939461e71f7a686ed97b483dfd8797f7f19888df4d8ff51847cfb3f8ca317b8751b1245545812a851e0a1f3 languageName: node linkType: hard -"@tabler/icons@npm:2.22.0": - version: 2.22.0 - resolution: "@tabler/icons@npm:2.22.0" - checksum: 3f0aaa801e8739d841ac5d335fbaee41399aaa9eeae03eb21c1dbe77877a29ba3664f16c225323a0635fad6548aca40212220edfb2919797454ea1029c5a5b78 +"@tabler/icons@npm:2.25.0": + version: 2.25.0 + resolution: "@tabler/icons@npm:2.25.0" + checksum: cda734940490037e3d98aef00ccfe91422df364ec0b8f4fb8a2644f71e14374bc32dc8b7b062ea761dd7a345e8aca7a41e3712644f02dafd72fed1b324fab7ab languageName: node linkType: hard @@ -1736,70 +1743,70 @@ __metadata: linkType: hard "@tanstack/query-async-storage-persister@npm:^4.27.1": - version: 4.29.11 - resolution: "@tanstack/query-async-storage-persister@npm:4.29.11" + version: 4.29.25 + resolution: "@tanstack/query-async-storage-persister@npm:4.29.25" dependencies: - "@tanstack/query-persist-client-core": 4.29.11 - checksum: 250259fd888edcc5db3625654541a8f9f3feef6f83e5b196aea9e4a2695afbebc2bba07760e6afda12d7d5a3b432510f05ede0beffb4ff3756ac207214f59a44 + "@tanstack/query-persist-client-core": 4.29.25 + checksum: 27a35caf8562e37b58921567176ed9a21864b47b0763588bdd18ea44243b021ce649449f0ad4d8be51852cae90b6668acfb20f7098f83e062d452de92fd1a037 languageName: node linkType: hard -"@tanstack/query-core@npm:4.29.11": - version: 4.29.11 - resolution: "@tanstack/query-core@npm:4.29.11" - checksum: 2a17223f34e99e17d564a15206668eb79324da72e630a47cf41690f92fb091a8669bdc89e9ab1b0d8f0e3e8f579529cfb0aa6f10b4fc58ea81cc7e5caede9229 +"@tanstack/query-core@npm:4.29.25": + version: 4.29.25 + resolution: "@tanstack/query-core@npm:4.29.25" + checksum: 5287e278cf0ef781c5bd238842243adc4430a43ffc9bee1963131726c5bdf6a67d38e122f45c3375232d05c5a335b1309026ce4252647bb3e4710b70bcebdbf5 languageName: node linkType: hard -"@tanstack/query-persist-client-core@npm:4.29.11": - version: 4.29.11 - resolution: "@tanstack/query-persist-client-core@npm:4.29.11" +"@tanstack/query-persist-client-core@npm:4.29.25": + version: 4.29.25 + resolution: "@tanstack/query-persist-client-core@npm:4.29.25" dependencies: - "@tanstack/query-core": 4.29.11 - checksum: b1ea4d56aa211c173f6cee172d09aed573fa16bb15594c120efb6acacc1985c22dddbfbabff87406aa5de2fb5805e872276681e06821f0b1545ea33cf43c4e52 + "@tanstack/query-core": 4.29.25 + checksum: 688c4eea630585fb885f048f25d8124e334a2197efea657a9f257d88e0cb7d3cdbaf6e88f9dae0aeb1a0f9b0413d2ce736f37c73f48f50064b7460b803da4bbc languageName: node linkType: hard "@tanstack/query-sync-storage-persister@npm:^4.27.1": - version: 4.29.11 - resolution: "@tanstack/query-sync-storage-persister@npm:4.29.11" + version: 4.29.25 + resolution: "@tanstack/query-sync-storage-persister@npm:4.29.25" dependencies: - "@tanstack/query-persist-client-core": 4.29.11 - checksum: 532a001ce19c134bfc11c13b4427b9c86bcfc12609c611a8f8e3d852c031849d96d704f9d541f9c6b9bf4cff808d346801caedf53cc551caa699ab1ef3681850 + "@tanstack/query-persist-client-core": 4.29.25 + checksum: d453311555e32380fc8984c3e85364174d8c361032db930bb05e4825b811b9c3f71bbbfe72a512ff453ca3a73c6e8a34ca1eb5b77ebd6e8b84f252f9d3cc45a1 languageName: node linkType: hard "@tanstack/react-query-devtools@npm:^4.24.4": - version: 4.29.13 - resolution: "@tanstack/react-query-devtools@npm:4.29.13" + version: 4.29.25 + resolution: "@tanstack/react-query-devtools@npm:4.29.25" dependencies: "@tanstack/match-sorter-utils": ^8.7.0 superjson: ^1.10.0 use-sync-external-store: ^1.2.0 peerDependencies: - "@tanstack/react-query": 4.29.13 + "@tanstack/react-query": 4.29.25 react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 13ab17fdbefb08b45eec8e1f1753e6458423cbfa134665597ab28dd63b6286987d91d2a4dee82e5aac72a7ef087716e4e8dbbe1969d98cf8788dcfb117ea4c46 + checksum: 2861f78de92a5c7595221383d9e60a70eafd0b1ed08313b624697fb221a1e6694200c14f4f5c3c2ef9ee0b1a525f7b7f04d3e0587b32b7a73cfb2d466d3e98af languageName: node linkType: hard "@tanstack/react-query-persist-client@npm:^4.28.0": - version: 4.29.13 - resolution: "@tanstack/react-query-persist-client@npm:4.29.13" + version: 4.29.25 + resolution: "@tanstack/react-query-persist-client@npm:4.29.25" dependencies: - "@tanstack/query-persist-client-core": 4.29.11 + "@tanstack/query-persist-client-core": 4.29.25 peerDependencies: - "@tanstack/react-query": 4.29.13 - checksum: 360e006a891dee4d6d76bcc65f8c3456f53d4113f248a5057d790a15181218bd707d8602004a46fa17f0f65f84ccaa5533b6d08777a2d1593ddb5f5bb2266f80 + "@tanstack/react-query": 4.29.25 + checksum: 8f19e38fd09f87646a9f25ba20c7513cbbf5ed8efc6a9fe75c696df7d159c80a807f24fda47082c4a881715f300f85ab94b6f147709e0fa9dbd04696270913fd languageName: node linkType: hard "@tanstack/react-query@npm:^4.2.1": - version: 4.29.13 - resolution: "@tanstack/react-query@npm:4.29.13" + version: 4.29.25 + resolution: "@tanstack/react-query@npm:4.29.25" dependencies: - "@tanstack/query-core": 4.29.11 + "@tanstack/query-core": 4.29.25 use-sync-external-store: ^1.2.0 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -1810,7 +1817,7 @@ __metadata: optional: true react-native: optional: true - checksum: 8cd4f945e59508dd5024390711e5ca374f4fb41f6c8ea06e8cda45a153274664ba2d0533df7101ee9014b1aafc46400811b671167ab9284f1f584e3a5d4f3645 + checksum: e0ae4cbe1d8f691d488bc1c68df3df12d1ed093796eb879842ef8d4d388d07cebbdd7ab6174481d624dc133326895a53a5442864bb27ffcc0db5f4f40d7f827f languageName: node linkType: hard @@ -1889,48 +1896,48 @@ __metadata: linkType: hard "@trpc/client@npm:^10.29.1": - version: 10.29.1 - resolution: "@trpc/client@npm:10.29.1" + version: 10.34.0 + resolution: "@trpc/client@npm:10.34.0" peerDependencies: - "@trpc/server": 10.29.1 - checksum: b617edb56e9ec7fa0665703761c666244e58b8a9da5a2fffcdef880cdde7ec8c92c20d1362ac1c836904518d94db247ec286cc17e01fc4eea41b7cafbf3479fe + "@trpc/server": 10.34.0 + checksum: 7589d575d92865091da72bf0eb7efbfc474422aecc2d4ac146be334bbe83a2a67eb185654dccb91b90e23207bfada2b9f4e4ebcc25a24c2a7e033c177f13e10c languageName: node linkType: hard "@trpc/next@npm:^10.29.1": - version: 10.29.1 - resolution: "@trpc/next@npm:10.29.1" + version: 10.34.0 + resolution: "@trpc/next@npm:10.34.0" dependencies: react-ssr-prepass: ^1.5.0 peerDependencies: "@tanstack/react-query": ^4.18.0 - "@trpc/client": 10.29.1 - "@trpc/react-query": 10.29.1 - "@trpc/server": 10.29.1 + "@trpc/client": 10.34.0 + "@trpc/react-query": 10.34.0 + "@trpc/server": 10.34.0 next: "*" react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: 6afd6d7b1702eda5a26e7e8d2d381729fceb180952a2382314f08dd945b6e3204716c532b0ac6ddef10135816879c61dbe4b27aa88bcd98100890ede8d42fb25 + checksum: aa0970f02c746b8060ccea72f685186e6c8209f5af32b35607899e8da3d1ba20832cb1506f093f70dbdbc17993db8522646a45a1f453d12f5913cf69912d7643 languageName: node linkType: hard "@trpc/react-query@npm:^10.29.1": - version: 10.29.1 - resolution: "@trpc/react-query@npm:10.29.1" + version: 10.34.0 + resolution: "@trpc/react-query@npm:10.34.0" peerDependencies: "@tanstack/react-query": ^4.18.0 - "@trpc/client": 10.29.1 - "@trpc/server": 10.29.1 + "@trpc/client": 10.34.0 + "@trpc/server": 10.34.0 react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: 3e52195eb894c0110b7fd99b0ab4fde38ade0b28d76c788d602c97789b76c66c91f678460fd68f3dc67c9b454340c7fe08363dfec69d4127982f9329bb42f503 + checksum: 5489f4041da444795d59b8b766ba0924569317f62ab5a85411ff4bfde2b37e2d30e590fb4041dc7f799f519d6e28f5e120b16fd9066ffcb1f477d17abbe216ec languageName: node linkType: hard "@trpc/server@npm:^10.29.1": - version: 10.29.1 - resolution: "@trpc/server@npm:10.29.1" - checksum: d31ac9921764aea774ef14ae3d9d4c7cb245582dde7f75facd355732043eb9d697a8584c19377dce9acdf9b21f473917f77842fda29eb77fd604484e23b42ded + version: 10.34.0 + resolution: "@trpc/server@npm:10.34.0" + checksum: 6d319c98f8a152539cd46769884ddea01bf00daaf1780067b1a1e34b45a107ab702b72e0086fa8924be44d9211b51c8f4e53ab6e85583fa53fa5893df5847c62 languageName: node linkType: hard @@ -2187,10 +2194,10 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:18.16.18": - version: 18.16.18 - resolution: "@types/node@npm:18.16.18" - checksum: d32d8a0a04cd3f5ecb361bcb42f3a07623881ac90d680e06bf626defb3c663a94860d11690babe607cfe67265eceeb8a59ba5fe40c0e49f5a1b01e0088640469 +"@types/node@npm:18.16.19": + version: 18.16.19 + resolution: "@types/node@npm:18.16.19" + checksum: 63c31f09616508aa7135380a4c79470a897b75f9ff3a70eb069e534dfabdec3f32fb0f9df5939127f1086614d980ddea0fa5e8cc29a49103c4f74cd687618aaf languageName: node linkType: hard @@ -2248,13 +2255,13 @@ __metadata: linkType: hard "@types/react@npm:*, @types/react@npm:^18.2.11": - version: 18.2.12 - resolution: "@types/react@npm:18.2.12" + version: 18.2.15 + resolution: "@types/react@npm:18.2.15" dependencies: "@types/prop-types": "*" "@types/scheduler": "*" csstype: ^3.0.2 - checksum: ad85a7eadaf1b35cfeee9f715b39311420ff46d46e0650377d918b3f888c2e47416037da4a765e1dccd3d1916abd54c105a3bee803c971ba56c955a7768ce976 + checksum: 36989f638201bfe2f4110b06c119180f6df9c0e13d7060481e82e7a745f81745a01ae543c478a25b61e0767cb52e82da2ad5b0dedacabf99339e523d06176705 languageName: node linkType: hard @@ -2337,15 +2344,15 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^5.50.0": - version: 5.59.11 - resolution: "@typescript-eslint/eslint-plugin@npm:5.59.11" + version: 5.62.0 + resolution: "@typescript-eslint/eslint-plugin@npm:5.62.0" dependencies: "@eslint-community/regexpp": ^4.4.0 - "@typescript-eslint/scope-manager": 5.59.11 - "@typescript-eslint/type-utils": 5.59.11 - "@typescript-eslint/utils": 5.59.11 + "@typescript-eslint/scope-manager": 5.62.0 + "@typescript-eslint/type-utils": 5.62.0 + "@typescript-eslint/utils": 5.62.0 debug: ^4.3.4 - grapheme-splitter: ^1.0.4 + graphemer: ^1.4.0 ignore: ^5.2.0 natural-compare-lite: ^1.4.0 semver: ^7.3.7 @@ -2356,34 +2363,24 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: ff03eaa65a9fa4415cc1a14c2d4382289b9483f11dd3e0746233c2148d941cdbef421c1693304502f42307c72e049d4c3f3b58d30ce5d2ae452f31906e394e62 + checksum: fc104b389c768f9fa7d45a48c86d5c1ad522c1d0512943e782a56b1e3096b2cbcc1eea3fcc590647bf0658eef61aac35120a9c6daf979bf629ad2956deb516a1 languageName: node linkType: hard "@typescript-eslint/parser@npm:^5.30.7, @typescript-eslint/parser@npm:^5.42.0": - version: 5.59.11 - resolution: "@typescript-eslint/parser@npm:5.59.11" + version: 5.62.0 + resolution: "@typescript-eslint/parser@npm:5.62.0" dependencies: - "@typescript-eslint/scope-manager": 5.59.11 - "@typescript-eslint/types": 5.59.11 - "@typescript-eslint/typescript-estree": 5.59.11 + "@typescript-eslint/scope-manager": 5.62.0 + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/typescript-estree": 5.62.0 debug: ^4.3.4 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 75eb6e60577690e3c9dd66fde83c9b4e9e5fd818fe9673e532052d5ba8fa21a5f7a69aad19be99e6ef5825e9f52036262b25e918e51f96e1dc26e862448d2d3a - languageName: node - linkType: hard - -"@typescript-eslint/scope-manager@npm:5.59.11": - version: 5.59.11 - resolution: "@typescript-eslint/scope-manager@npm:5.59.11" - dependencies: - "@typescript-eslint/types": 5.59.11 - "@typescript-eslint/visitor-keys": 5.59.11 - checksum: f5c4e6d26da0a983b8f0c016f3ae63b3462442fe9c04d7510ca397461e13f6c48332b09b584258a7f336399fa7cd866f3ab55eaad89c5096a411c0d05d296475 + checksum: d168f4c7f21a7a63f47002e2d319bcbb6173597af5c60c1cf2de046b46c76b4930a093619e69faf2d30214c29ab27b54dcf1efc7046a6a6bd6f37f59a990e752 languageName: node linkType: hard @@ -2397,12 +2394,22 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:5.59.11": - version: 5.59.11 - resolution: "@typescript-eslint/type-utils@npm:5.59.11" +"@typescript-eslint/scope-manager@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/scope-manager@npm:5.62.0" dependencies: - "@typescript-eslint/typescript-estree": 5.59.11 - "@typescript-eslint/utils": 5.59.11 + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/visitor-keys": 5.62.0 + checksum: 6062d6b797fe1ce4d275bb0d17204c827494af59b5eaf09d8a78cdd39dadddb31074dded4297aaf5d0f839016d601032857698b0e4516c86a41207de606e9573 + languageName: node + linkType: hard + +"@typescript-eslint/type-utils@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/type-utils@npm:5.62.0" + dependencies: + "@typescript-eslint/typescript-estree": 5.62.0 + "@typescript-eslint/utils": 5.62.0 debug: ^4.3.4 tsutils: ^3.21.0 peerDependencies: @@ -2410,14 +2417,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 3570ba21af35e7e0a916b606c1af311c00d20fe354a5837e0e937191b5e99ceb0076a5ba2924eaa028d4614e03981b20cfdd83a2be780c39e02be3b3bd365b63 - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:5.59.11": - version: 5.59.11 - resolution: "@typescript-eslint/types@npm:5.59.11" - checksum: 4bb667571a7254f8c2b0dc3e37100e7290f9be14978722cc31c7204dfababd8a346bed4125e70dcafd15d07be386fb55bb9738bd86662ac10b98a6c964716396 + checksum: fc41eece5f315dfda14320be0da78d3a971d650ea41300be7196934b9715f3fe1120a80207551eb71d39568275dbbcf359bde540d1ca1439d8be15e9885d2739 languageName: node linkType: hard @@ -2428,21 +2428,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.59.11": - version: 5.59.11 - resolution: "@typescript-eslint/typescript-estree@npm:5.59.11" - dependencies: - "@typescript-eslint/types": 5.59.11 - "@typescript-eslint/visitor-keys": 5.59.11 - debug: ^4.3.4 - globby: ^11.1.0 - is-glob: ^4.0.3 - semver: ^7.3.7 - tsutils: ^3.21.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 516a828884e6939000aac17a27208088055670b0fd9bd22d137a7b2d359a8db9ce9cd09eedffed6f498f968be90ce3c2695a91d46abbd4049f87fd3b7bb986b5 +"@typescript-eslint/types@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/types@npm:5.62.0" + checksum: 48c87117383d1864766486f24de34086155532b070f6264e09d0e6139449270f8a9559cfef3c56d16e3bcfb52d83d42105d61b36743626399c7c2b5e0ac3b670 languageName: node linkType: hard @@ -2464,21 +2453,39 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:5.59.11": - version: 5.59.11 - resolution: "@typescript-eslint/utils@npm:5.59.11" +"@typescript-eslint/typescript-estree@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" + dependencies: + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/visitor-keys": 5.62.0 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + semver: ^7.3.7 + tsutils: ^3.21.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 3624520abb5807ed8f57b1197e61c7b1ed770c56dfcaca66372d584ff50175225798bccb701f7ef129d62c5989070e1ee3a0aa2d84e56d9524dcf011a2bb1a52 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/utils@npm:5.62.0" dependencies: "@eslint-community/eslint-utils": ^4.2.0 "@types/json-schema": ^7.0.9 "@types/semver": ^7.3.12 - "@typescript-eslint/scope-manager": 5.59.11 - "@typescript-eslint/types": 5.59.11 - "@typescript-eslint/typescript-estree": 5.59.11 + "@typescript-eslint/scope-manager": 5.62.0 + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/typescript-estree": 5.62.0 eslint-scope: ^5.1.1 semver: ^7.3.7 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: a61f3e761dbdc5d0bdb6c78bca7b2e628f7a1920192286d002219cc3acb516757613c2ec2a4adc416858ba1751ecbe2784457d6ebcec6bbb109cfc2ca210572b + checksum: ee9398c8c5db6d1da09463ca7bf36ed134361e20131ea354b2da16a5fdb6df9ba70c62a388d19f6eebb421af1786dbbd79ba95ddd6ab287324fc171c3e28d931 languageName: node linkType: hard @@ -2500,16 +2507,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:5.59.11": - version: 5.59.11 - resolution: "@typescript-eslint/visitor-keys@npm:5.59.11" - dependencies: - "@typescript-eslint/types": 5.59.11 - eslint-visitor-keys: ^3.3.0 - checksum: 4894ec4b2b8da773b1f44398c836fcacb7f5a0c81f9404ecd193920e88d618091a7328659e0aa24697edda10479534db30bec7c8b0ba9fa0fce43f78222d5619 - languageName: node - linkType: hard - "@typescript-eslint/visitor-keys@npm:5.59.9": version: 5.59.9 resolution: "@typescript-eslint/visitor-keys@npm:5.59.9" @@ -2520,6 +2517,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/visitor-keys@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.62.0" + dependencies: + "@typescript-eslint/types": 5.62.0 + eslint-visitor-keys: ^3.3.0 + checksum: 976b05d103fe8335bef5c93ad3f76d781e3ce50329c0243ee0f00c0fcfb186c81df50e64bfdd34970148113f8ade90887f53e3c4938183afba830b4ba8e30a35 + languageName: node + linkType: hard + "@videojs/http-streaming@npm:3.3.1": version: 3.3.1 resolution: "@videojs/http-streaming@npm:3.3.1" @@ -2572,102 +2579,101 @@ __metadata: linkType: hard "@vitejs/plugin-react@npm:^4.0.0": - version: 4.0.0 - resolution: "@vitejs/plugin-react@npm:4.0.0" + version: 4.0.3 + resolution: "@vitejs/plugin-react@npm:4.0.3" dependencies: - "@babel/core": ^7.21.4 - "@babel/plugin-transform-react-jsx-self": ^7.21.0 - "@babel/plugin-transform-react-jsx-source": ^7.19.6 + "@babel/core": ^7.22.5 + "@babel/plugin-transform-react-jsx-self": ^7.22.5 + "@babel/plugin-transform-react-jsx-source": ^7.22.5 react-refresh: ^0.14.0 peerDependencies: vite: ^4.2.0 - checksum: 575298f66517c51348892d49b302490c48e15c9ddb0b2c5f710931804e559dceafca1be1e62cb72d0902cba5f3c98e4b1272970d328e3a62d59ecdf976e68d3d + checksum: dd9136aec8f30b0251b88f390c60b8ee5472454884c4f82720725c213f8988bf8e202cc2430e575a268d413c1dc7257a51b342ac431a43c02d923de932c5707c languageName: node linkType: hard -"@vitest/coverage-c8@npm:^0.32.0": - version: 0.32.0 - resolution: "@vitest/coverage-c8@npm:0.32.0" +"@vitest/coverage-c8@npm:^0.33.0": + version: 0.33.0 + resolution: "@vitest/coverage-c8@npm:0.33.0" dependencies: "@ampproject/remapping": ^2.2.1 - c8: ^7.13.0 - magic-string: ^0.30.0 + c8: ^7.14.0 + magic-string: ^0.30.1 picocolors: ^1.0.0 - std-env: ^3.3.2 + std-env: ^3.3.3 peerDependencies: vitest: ">=0.30.0 <1" - checksum: 8a31e08ef373f643b3823f412a3b01239b38dfc212653bcbebc56ead5fd8ee0f744232c62ebb5297604e1ddda249797d8b01fde47d96512ecac4e57c112d668a + checksum: 67573fa400995871fa8f615411d21dd9937a78fac13bc6789427a7857fa780e71188ff43a35e19bb31e6393f9334d4376456ff24b7bb0591c64357036ff6a594 languageName: node linkType: hard -"@vitest/expect@npm:0.32.0": - version: 0.32.0 - resolution: "@vitest/expect@npm:0.32.0" +"@vitest/expect@npm:0.33.0": + version: 0.33.0 + resolution: "@vitest/expect@npm:0.33.0" dependencies: - "@vitest/spy": 0.32.0 - "@vitest/utils": 0.32.0 + "@vitest/spy": 0.33.0 + "@vitest/utils": 0.33.0 chai: ^4.3.7 - checksum: 0f5740057faf1a45be00b7e06ad8dd7e5b37d9f436e29701a8577d42bdff930ce958bc9a7732eb88fb71a3ab5009a72f2ed11c02b2095a4173fa69f69897e7b4 + checksum: da6bf8e4a4f23218088b4e7dcdf6eb9f8d92e82a98a674edf8be2f333625179da6802936a948e7a60e0918da53e7ec548183d1d9d42f0e1c4e2d3f66fd63e11f languageName: node linkType: hard -"@vitest/runner@npm:0.32.0": - version: 0.32.0 - resolution: "@vitest/runner@npm:0.32.0" +"@vitest/runner@npm:0.33.0": + version: 0.33.0 + resolution: "@vitest/runner@npm:0.33.0" dependencies: - "@vitest/utils": 0.32.0 - concordance: ^5.0.4 + "@vitest/utils": 0.33.0 p-limit: ^4.0.0 - pathe: ^1.1.0 - checksum: d7a63a9a80d90a48e706fcf8bc1c2171ee0395f60241c1f0bb67854d246b68a472805d6abe33ce9a7250768c0b27af882e4beb7a5ba9eea2b3e085a54ed978e0 + pathe: ^1.1.1 + checksum: de731aa0687cf15f141e81fb11027ff52860292f6d8957678c9fcd307502e4f9fd679bcaff93b53d29eeeb694d403d6aa52d49d341f998ec2b794e7abe061572 languageName: node linkType: hard -"@vitest/snapshot@npm:0.32.0": - version: 0.32.0 - resolution: "@vitest/snapshot@npm:0.32.0" +"@vitest/snapshot@npm:0.33.0": + version: 0.33.0 + resolution: "@vitest/snapshot@npm:0.33.0" dependencies: - magic-string: ^0.30.0 - pathe: ^1.1.0 - pretty-format: ^27.5.1 - checksum: 2017d461b8492ae16b15f4f3725e1e3dc7bd18e24f1db788f151f9435af620ee711114edc4bd6ad88ba047f47dc4104b7db87d7f7b29363537272c0353ceb71d + magic-string: ^0.30.1 + pathe: ^1.1.1 + pretty-format: ^29.5.0 + checksum: ff2604d5bf09342eab45109df06f4e2e9e78698bf26b0eed1f4871d7757312e43de90ead938698be3e03e9873d4081ebeb69c94928b8065c53d1e9f28742185e languageName: node linkType: hard -"@vitest/spy@npm:0.32.0": - version: 0.32.0 - resolution: "@vitest/spy@npm:0.32.0" +"@vitest/spy@npm:0.33.0": + version: 0.33.0 + resolution: "@vitest/spy@npm:0.33.0" dependencies: - tinyspy: ^2.1.0 - checksum: 1c418f4064f4357e972e99d20e2b7b65b8cde3a8280a8e06a41fa81517efe335ca176c21a6644a6f490b565fb0ed6df0ed4ab8097813be3d0f4ec625b7fd3451 + tinyspy: ^2.1.1 + checksum: 501a704a10b411f407fbcedeaf1f469e6fcac4894af11fa89c74e6f64bf3eebbcd006cf86377ae379708c0b8c860243db504f5d4e90d382419aa666458b76800 languageName: node linkType: hard -"@vitest/ui@npm:^0.32.0": - version: 0.32.0 - resolution: "@vitest/ui@npm:0.32.0" +"@vitest/ui@npm:^0.33.0": + version: 0.33.0 + resolution: "@vitest/ui@npm:0.33.0" dependencies: - "@vitest/utils": 0.32.0 - fast-glob: ^3.2.12 - fflate: ^0.7.4 + "@vitest/utils": 0.33.0 + fast-glob: ^3.3.0 + fflate: ^0.8.0 flatted: ^3.2.7 - pathe: ^1.1.0 + pathe: ^1.1.1 picocolors: ^1.0.0 sirv: ^2.0.3 peerDependencies: vitest: ">=0.30.1 <1" - checksum: 0a0ac067ef667dfdd60e89c8a554cd2056cd5c39874940a0ed13cd4b27e04755aa2df56bbb19dcbf8eff7c458d84b7832ce9e817a5671319bb46019d3473c98d + checksum: 46e9bd9529d9cb8a7c3b9d7e1a4d56ef74a43efd35d33283305e837d411e267ef72b78481546605a605f89962271f02f6c63638941fe542177d00e9d192b1255 languageName: node linkType: hard -"@vitest/utils@npm:0.32.0": - version: 0.32.0 - resolution: "@vitest/utils@npm:0.32.0" +"@vitest/utils@npm:0.33.0": + version: 0.33.0 + resolution: "@vitest/utils@npm:0.33.0" dependencies: - concordance: ^5.0.4 + diff-sequences: ^29.4.3 loupe: ^2.3.6 - pretty-format: ^27.5.1 - checksum: f27df1e7066a310cd43a7261f2b1f668e32b7443f9b90af4a6e49575ee2d65b019192833ddbd0f51eb5690130b5b1bd2459cb83397860941308eeb122983427a + pretty-format: ^29.5.0 + checksum: 8c5b381f5599ca517bedd0e46805e91b1150564473d37b2b80ef45aa9c16cb59d296513dd34bc2171904beb28be73b89e5333056539d49a0ba9d513ae7672a0a languageName: node linkType: hard @@ -2711,7 +2717,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.0.4, acorn@npm:^8.4.1, acorn@npm:^8.8.0, acorn@npm:^8.8.2": +"acorn@npm:^8.0.4, acorn@npm:^8.4.1, acorn@npm:^8.8.2": version: 8.8.2 resolution: "acorn@npm:8.8.2" bin: @@ -2720,6 +2726,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.9.0": + version: 8.9.0 + resolution: "acorn@npm:8.9.0" + bin: + acorn: bin/acorn + checksum: 25dfb94952386ecfb847e61934de04a4e7c2dc21c2e700fc4e2ef27ce78cb717700c4c4f279cd630bb4774948633c3859fc16063ec8573bda4568e0a312e6744 + languageName: node + linkType: hard + "aes-decrypter@npm:4.0.1, aes-decrypter@npm:^4.0.1": version: 4.0.1 resolution: "aes-decrypter@npm:4.0.1" @@ -3062,13 +3077,6 @@ __metadata: languageName: node linkType: hard -"blueimp-md5@npm:^2.10.0": - version: 2.19.0 - resolution: "blueimp-md5@npm:2.19.0" - checksum: 28095dcbd2c67152a2938006e8d7c74c3406ba6556071298f872505432feb2c13241b0476644160ee0a5220383ba94cb8ccdac0053b51f68d168728f9c382530 - languageName: node - linkType: hard - "bplist-parser@npm:^0.2.0": version: 0.2.0 resolution: "bplist-parser@npm:0.2.0" @@ -3162,7 +3170,7 @@ __metadata: languageName: node linkType: hard -"c8@npm:^7.13.0": +"c8@npm:^7.14.0": version: 7.14.0 resolution: "c8@npm:7.14.0" dependencies: @@ -3497,26 +3505,10 @@ __metadata: languageName: node linkType: hard -"concordance@npm:^5.0.4": - version: 5.0.4 - resolution: "concordance@npm:5.0.4" - dependencies: - date-time: ^3.1.0 - esutils: ^2.0.3 - fast-diff: ^1.2.0 - js-string-escape: ^1.0.1 - lodash: ^4.17.15 - md5-hex: ^3.0.1 - semver: ^7.3.2 - well-known-symbols: ^2.0.0 - checksum: 749153ba711492feb7c3d2f5bb04c107157440b3e39509bd5dd19ee7b3ac751d1e4cd75796d9f702e0a713312dbc661421c68aa4a2c34d5f6d91f47e3a1c64a6 - languageName: node - linkType: hard - "consola@npm:^3.0.0": - version: 3.1.0 - resolution: "consola@npm:3.1.0" - checksum: b4b16b0ff6a0645fb1b820cf89dd56c8601b9ae0e2c472652bce2f5d99932ed5b38ef7ad2cfa77f4534cd6264d99cf5cf9c3c888e98cc25fbd3c87d31c824975 + version: 3.2.3 + resolution: "consola@npm:3.2.3" + checksum: 32ec70e177dd2385c42e38078958cc7397be91db21af90c6f9faa0b16168b49b1c61d689338604bbb2d64370b9347a35f42a9197663a913d3a405bb0ce728499 languageName: node linkType: hard @@ -3796,19 +3788,10 @@ __metadata: languageName: node linkType: hard -"date-time@npm:^3.1.0": - version: 3.1.0 - resolution: "date-time@npm:3.1.0" - dependencies: - time-zone: ^1.0.0 - checksum: f9cfcd1b15dfeabab15c0b9d18eb9e4e2d9d4371713564178d46a8f91ad577a290b5178b80050718d02d9c0cf646f8a875011e12d1ed05871e9f72c72c8a8fe6 - languageName: node - linkType: hard - "dayjs@npm:^1.11.7": - version: 1.11.8 - resolution: "dayjs@npm:1.11.8" - checksum: 4fe04b6df98ba6e5f89b49d80bba603cbf01e21a1b4a24ecb163c94c0ba5324a32ac234a139cee654f89d5277a2bcebca5347e6676c28a0a6d1a90f1d34a42b8 + version: 1.11.9 + resolution: "dayjs@npm:1.11.9" + checksum: a4844d83dc87f921348bb9b1b93af851c51e6f71fa259604809cfe1b49d1230e6b0212dab44d1cb01994c096ad3a77ea1cf18fa55154da6efcc9d3610526ac38 languageName: node linkType: hard @@ -4403,10 +4386,10 @@ __metadata: linkType: hard "eslint-config-next@npm:^13.4.5": - version: 13.4.5 - resolution: "eslint-config-next@npm:13.4.5" + version: 13.4.10 + resolution: "eslint-config-next@npm:13.4.10" dependencies: - "@next/eslint-plugin-next": 13.4.5 + "@next/eslint-plugin-next": 13.4.10 "@rushstack/eslint-patch": ^1.1.3 "@typescript-eslint/parser": ^5.42.0 eslint-import-resolver-node: ^0.3.6 @@ -4414,14 +4397,14 @@ __metadata: eslint-plugin-import: ^2.26.0 eslint-plugin-jsx-a11y: ^6.5.1 eslint-plugin-react: ^7.31.7 - eslint-plugin-react-hooks: ^4.5.0 + eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705 peerDependencies: eslint: ^7.23.0 || ^8.0.0 typescript: ">=3.3.1" peerDependenciesMeta: typescript: optional: true - checksum: 71647757dfeaa9aa67ed60c9a2a764eb323cee18966df606b37900eeca8759504a29c5b02941264a1a8f9f67293107a77a856d4253acdafd245b357ff6873b02 + checksum: d555e077e5045f045e5bdab58429b2245993a0e28d3030209766558a6d32ae165496030cafbab8e6aaf714947d895ee30d1ecdb49263abdb23b6889a333ea714 languageName: node linkType: hard @@ -4527,7 +4510,16 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-react-hooks@npm:^4.5.0, eslint-plugin-react-hooks@npm:^4.6.0": +"eslint-plugin-react-hooks@npm:5.0.0-canary-7118f5dd7-20230705": + version: 5.0.0-canary-7118f5dd7-20230705 + resolution: "eslint-plugin-react-hooks@npm:5.0.0-canary-7118f5dd7-20230705" + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + checksum: 20e334e60bf5e56cf9f760598411847525c3ff826e6ae7757c8efdc60b33d47a97ddbe1b94ce95956ea9f7bbef37995b19c716be50bd44e6a1e789cba08b6224 + languageName: node + linkType: hard + +"eslint-plugin-react-hooks@npm:^4.6.0": version: 4.6.0 resolution: "eslint-plugin-react-hooks@npm:4.6.0" peerDependencies: @@ -4633,13 +4625,13 @@ __metadata: linkType: hard "eslint@npm:^8.0.1": - version: 8.42.0 - resolution: "eslint@npm:8.42.0" + version: 8.45.0 + resolution: "eslint@npm:8.45.0" dependencies: "@eslint-community/eslint-utils": ^4.2.0 "@eslint-community/regexpp": ^4.4.0 - "@eslint/eslintrc": ^2.0.3 - "@eslint/js": 8.42.0 + "@eslint/eslintrc": ^2.1.0 + "@eslint/js": 8.44.0 "@humanwhocodes/config-array": ^0.11.10 "@humanwhocodes/module-importer": ^1.0.1 "@nodelib/fs.walk": ^1.2.8 @@ -4651,7 +4643,7 @@ __metadata: escape-string-regexp: ^4.0.0 eslint-scope: ^7.2.0 eslint-visitor-keys: ^3.4.1 - espree: ^9.5.2 + espree: ^9.6.0 esquery: ^1.4.2 esutils: ^2.0.2 fast-deep-equal: ^3.1.3 @@ -4661,7 +4653,6 @@ __metadata: globals: ^13.19.0 graphemer: ^1.4.0 ignore: ^5.2.0 - import-fresh: ^3.0.0 imurmurhash: ^0.1.4 is-glob: ^4.0.0 is-path-inside: ^3.0.3 @@ -4671,24 +4662,23 @@ __metadata: lodash.merge: ^4.6.2 minimatch: ^3.1.2 natural-compare: ^1.4.0 - optionator: ^0.9.1 + optionator: ^0.9.3 strip-ansi: ^6.0.1 - strip-json-comments: ^3.1.0 text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: 07105397b5f2ff4064b983b8971e8c379ec04b1dfcc9d918976b3e00377189000161dac991d82ba14f8759e466091b8c71146f602930ca810c290ee3fcb3faf0 + checksum: 3e6dcce5cc43c5e301662db88ee26d1d188b22c177b9f104d7eefd1191236980bd953b3670fe2fac287114b26d7c5420ab48407d7ea1c3a446d6313c000009da languageName: node linkType: hard -"espree@npm:^9.5.2": - version: 9.5.2 - resolution: "espree@npm:9.5.2" +"espree@npm:^9.6.0": + version: 9.6.0 + resolution: "espree@npm:9.6.0" dependencies: - acorn: ^8.8.0 + acorn: ^8.9.0 acorn-jsx: ^5.3.2 eslint-visitor-keys: ^3.4.1 - checksum: 6506289d6eb26471c0b383ee24fee5c8ae9d61ad540be956b3127be5ce3bf687d2ba6538ee5a86769812c7c552a9d8239e8c4d150f9ea056c6d5cbe8399c03c1 + checksum: 1287979510efb052a6a97c73067ea5d0a40701b29adde87bbe2d3eb1667e39ca55e8129e20e2517fed3da570150e7ef470585228459a8f3e3755f45007a1c662 languageName: node linkType: hard @@ -4724,7 +4714,7 @@ __metadata: languageName: node linkType: hard -"esutils@npm:^2.0.2, esutils@npm:^2.0.3": +"esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" checksum: 22b5b08f74737379a840b8ed2036a5fb35826c709ab000683b092d9054e5c2a82c27818f12604bfc2a9a76b90b6834ef081edbc1c7ae30d1627012e067c6ec87 @@ -4785,13 +4775,6 @@ __metadata: languageName: node linkType: hard -"fast-diff@npm:^1.2.0": - version: 1.3.0 - resolution: "fast-diff@npm:1.3.0" - checksum: d22d371b994fdc8cce9ff510d7b8dc4da70ac327bcba20df607dd5b9cae9f908f4d1028f5fe467650f058d1e7270235ae0b8230809a262b4df587a3b3aa216c3 - languageName: node - linkType: hard - "fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.12, fast-glob@npm:^3.2.9": version: 3.2.12 resolution: "fast-glob@npm:3.2.12" @@ -4805,6 +4788,19 @@ __metadata: languageName: node linkType: hard +"fast-glob@npm:^3.3.0": + version: 3.3.0 + resolution: "fast-glob@npm:3.3.0" + dependencies: + "@nodelib/fs.stat": ^2.0.2 + "@nodelib/fs.walk": ^1.2.3 + glob-parent: ^5.1.2 + merge2: ^1.3.0 + micromatch: ^4.0.4 + checksum: 20df62be28eb5426fe8e40e0d05601a63b1daceb7c3d87534afcad91bdcf1e4b1743cf2d5247d6e225b120b46df0b9053a032b2691ba34ee121e033acd81f547 + languageName: node + linkType: hard + "fast-json-stable-stringify@npm:^2.0.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" @@ -4828,10 +4824,10 @@ __metadata: languageName: node linkType: hard -"fflate@npm:^0.7.4": - version: 0.7.4 - resolution: "fflate@npm:0.7.4" - checksum: b812ab26047432db70ff4c73eb45ad53bd0774575b4818b9c61c2921e89ec65d1259f06ec1618f2ac55e6a2f2e29b6dc09173d213b46580bc69efae5344bf8f1 +"fflate@npm:^0.8.0": + version: 0.8.0 + resolution: "fflate@npm:0.8.0" + checksum: 6215f95ee01d620a41e459247a7de7e7117dd23e78ef017c26b64c26f2a880a90eedc77675918bbf816d18cc990f6505cd71be933c67cc48cc1e7ebbff1589ea languageName: node linkType: hard @@ -4961,8 +4957,8 @@ __metadata: linkType: hard "framer-motion@npm:^10.0.0": - version: 10.12.16 - resolution: "framer-motion@npm:10.12.16" + version: 10.12.21 + resolution: "framer-motion@npm:10.12.21" dependencies: "@emotion/is-prop-valid": ^0.8.2 tslib: ^2.4.0 @@ -4977,7 +4973,7 @@ __metadata: optional: true react-dom: optional: true - checksum: 0ba346fd6e64688ea5e64f9e353af6202b42d59e309ac32daca7fc07dc1dad9136dd2c18017a85ac76d01becb7f4683fc92dedbfce3e44831ea0c47bdc73e812 + checksum: 49efe13a2bb38329e07dd1e85397385c528a64a260d1ace01a04eb6f6b0a8bccb2c8d88cb8945f6dd8eff4b7d40a04cf4d688209bac8b643d45ae1d0c56f2afa languageName: node linkType: hard @@ -5336,13 +5332,6 @@ __metadata: languageName: node linkType: hard -"grapheme-splitter@npm:^1.0.4": - version: 1.0.4 - resolution: "grapheme-splitter@npm:1.0.4" - checksum: 0c22ec54dee1b05cd480f78cf14f732cb5b108edc073572c4ec205df4cd63f30f8db8025afc5debc8835a8ddeacf648a1c7992fe3dcd6ad38f9a476d84906620 - languageName: node - linkType: hard - "graphemer@npm:^1.4.0": version: 1.4.0 resolution: "graphemer@npm:1.4.0" @@ -5489,7 +5478,7 @@ __metadata: "@trpc/react-query": ^10.29.1 "@trpc/server": ^10.29.1 "@types/dockerode": ^3.3.9 - "@types/node": 18.16.18 + "@types/node": 18.16.19 "@types/prismjs": ^1.26.0 "@types/react": ^18.2.11 "@types/uuid": ^9.0.0 @@ -5497,8 +5486,8 @@ __metadata: "@typescript-eslint/eslint-plugin": ^5.50.0 "@typescript-eslint/parser": ^5.30.7 "@vitejs/plugin-react": ^4.0.0 - "@vitest/coverage-c8": ^0.32.0 - "@vitest/ui": ^0.32.0 + "@vitest/coverage-c8": ^0.33.0 + "@vitest/ui": ^0.33.0 axios: ^1.0.0 consola: ^3.0.0 cookies-next: ^2.1.1 @@ -5518,7 +5507,7 @@ __metadata: html-entities: ^2.3.3 i18next: ^22.5.1 js-file-download: ^0.4.12 - next: ^13.4.2 + next: 13.4.10 next-i18next: ^13.0.0 node-mocks-http: ^1.12.2 nzbget-api: ^0.0.3 @@ -5537,11 +5526,10 @@ __metadata: uuid: ^9.0.0 video.js: ^8.0.3 vite-tsconfig-paths: ^4.2.0 - vitest: ^0.32.0 + vitest: ^0.33.0 vitest-fetch-mock: ^0.2.2 xml-js: ^1.6.11 xss: ^1.0.14 - yarn: ^1.22.19 zod: ^3.21.4 zustand: ^4.3.7 languageName: unknown @@ -5558,9 +5546,9 @@ __metadata: linkType: hard "html-entities@npm:^2.3.3": - version: 2.3.6 - resolution: "html-entities@npm:2.3.6" - checksum: 559a88dc3a2059b1e8882940dcaf996ea9d8151b9a780409ff223a79dc1d42ee8bb19b3365064f241f2e2543b0f90612d63f9b8e36d14c4c7fbb73540a8f41cb + version: 2.4.0 + resolution: "html-entities@npm:2.4.0" + checksum: 25bea32642ce9ebd0eedc4d24381883ecb0335ccb8ac26379a0958b9b16652fdbaa725d70207ce54a51db24103436a698a8e454397d3ba8ad81460224751f1dc languageName: node linkType: hard @@ -5738,7 +5726,7 @@ __metadata: languageName: node linkType: hard -"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1": +"import-fresh@npm:^3.2.1": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" dependencies: @@ -6270,13 +6258,6 @@ __metadata: languageName: node linkType: hard -"js-string-escape@npm:^1.0.1": - version: 1.0.1 - resolution: "js-string-escape@npm:1.0.1" - checksum: f11e0991bf57e0c183b55c547acec85bd2445f043efc9ea5aa68b41bd2a3e7d3ce94636cb233ae0d84064ba4c1a505d32e969813c5b13f81e7d4be12c59256fe - languageName: node - linkType: hard - "js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -6534,12 +6515,12 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.30.0": - version: 0.30.0 - resolution: "magic-string@npm:0.30.0" +"magic-string@npm:^0.30.1": + version: 0.30.1 + resolution: "magic-string@npm:0.30.1" dependencies: - "@jridgewell/sourcemap-codec": ^1.4.13 - checksum: 7bdf22e27334d8a393858a16f5f840af63a7c05848c000fd714da5aa5eefa09a1bc01d8469362f25cc5c4a14ec01b46557b7fff8751365522acddf21e57c488d + "@jridgewell/sourcemap-codec": ^1.4.15 + checksum: 7bc7e4493e32a77068f3753bf8652d4ab44142122eb7fb9fa871af83bef2cd2c57518a6769701cd5d0379bd624a13bc8c72ca25ac5655b27e5a61adf1fd38db2 languageName: node linkType: hard @@ -6583,15 +6564,6 @@ __metadata: languageName: node linkType: hard -"md5-hex@npm:^3.0.1": - version: 3.0.1 - resolution: "md5-hex@npm:3.0.1" - dependencies: - blueimp-md5: ^2.10.0 - checksum: 6799a19e8bdd3e0c2861b94c1d4d858a89220488d7885c1fa236797e367d0c2e5f2b789e05309307083503f85be3603a9686a5915568a473137d6b4117419cc2 - languageName: node - linkType: hard - "media-typer@npm:0.3.0": version: 0.3.0 resolution: "media-typer@npm:0.3.0" @@ -6852,6 +6824,18 @@ __metadata: languageName: node linkType: hard +"mlly@npm:^1.4.0": + version: 1.4.0 + resolution: "mlly@npm:1.4.0" + dependencies: + acorn: ^8.9.0 + pathe: ^1.1.1 + pkg-types: ^1.0.3 + ufo: ^1.1.2 + checksum: ebf2e2b5cfb4c6e45e8d0bbe82710952247023f12626cb0997c41b1bb6e57c8b6fc113aa709228ad511382ab0b4eebaab759806be0578093b3635d3e940bd63b + languageName: node + linkType: hard + "mpd-parser@npm:^1.0.1, mpd-parser@npm:^1.1.1": version: 1.1.1 resolution: "mpd-parser@npm:1.1.1" @@ -6966,20 +6950,20 @@ __metadata: languageName: node linkType: hard -"next@npm:^13.4.2": - version: 13.4.5 - resolution: "next@npm:13.4.5" +"next@npm:13.4.10": + version: 13.4.10 + resolution: "next@npm:13.4.10" dependencies: - "@next/env": 13.4.5 - "@next/swc-darwin-arm64": 13.4.5 - "@next/swc-darwin-x64": 13.4.5 - "@next/swc-linux-arm64-gnu": 13.4.5 - "@next/swc-linux-arm64-musl": 13.4.5 - "@next/swc-linux-x64-gnu": 13.4.5 - "@next/swc-linux-x64-musl": 13.4.5 - "@next/swc-win32-arm64-msvc": 13.4.5 - "@next/swc-win32-ia32-msvc": 13.4.5 - "@next/swc-win32-x64-msvc": 13.4.5 + "@next/env": 13.4.10 + "@next/swc-darwin-arm64": 13.4.10 + "@next/swc-darwin-x64": 13.4.10 + "@next/swc-linux-arm64-gnu": 13.4.10 + "@next/swc-linux-arm64-musl": 13.4.10 + "@next/swc-linux-x64-gnu": 13.4.10 + "@next/swc-linux-x64-musl": 13.4.10 + "@next/swc-win32-arm64-msvc": 13.4.10 + "@next/swc-win32-ia32-msvc": 13.4.10 + "@next/swc-win32-x64-msvc": 13.4.10 "@swc/helpers": 0.5.1 busboy: 1.6.0 caniuse-lite: ^1.0.30001406 @@ -7021,7 +7005,7 @@ __metadata: optional: true bin: next: dist/bin/next - checksum: 428bf846dc2465be9b5dcd0788e6bfc162393ddad01a3b45c40f7baf58fd10e5004c18aa2f2eebe6aa7bd8ed8baaae08c0f6d54c6f735bb9af87b87d01f17622 + checksum: 823ec02325fc6d5cad055a596df8ba84066d9c259abf94755eeda4c8846e5b56fe244d0362d5f5a1182a29d9a62bebf1f428a2f79c338a07086a8cf3620778f7 languageName: node linkType: hard @@ -7312,17 +7296,17 @@ __metadata: languageName: node linkType: hard -"optionator@npm:^0.9.1": - version: 0.9.1 - resolution: "optionator@npm:0.9.1" +"optionator@npm:^0.9.3": + version: 0.9.3 + resolution: "optionator@npm:0.9.3" dependencies: + "@aashutoshrathi/word-wrap": ^1.2.3 deep-is: ^0.1.3 fast-levenshtein: ^2.0.6 levn: ^0.4.1 prelude-ls: ^1.2.1 type-check: ^0.4.0 - word-wrap: ^1.2.3 - checksum: dbc6fa065604b24ea57d734261914e697bd73b69eff7f18e967e8912aa2a40a19a9f599a507fa805be6c13c24c4eae8c71306c239d517d42d4c041c942f508a0 + checksum: 09281999441f2fe9c33a5eeab76700795365a061563d66b098923eb719251a42bdbe432790d35064d0816ead9296dbeb1ad51a733edf4167c96bd5d0882e428a languageName: node linkType: hard @@ -7446,7 +7430,7 @@ __metadata: languageName: node linkType: hard -"pathe@npm:^1.1.0": +"pathe@npm:^1.1.0, pathe@npm:^1.1.1": version: 1.1.1 resolution: "pathe@npm:1.1.1" checksum: 34ab3da2e5aa832ebc6a330ffe3f73d7ba8aec6e899b53b8ec4f4018de08e40742802deb12cf5add9c73b7bf719b62c0778246bd376ca62b0fb23e0dde44b759 @@ -7534,7 +7518,7 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^27.0.2, pretty-format@npm:^27.5.1": +"pretty-format@npm:^27.0.2": version: 27.5.1 resolution: "pretty-format@npm:27.5.1" dependencies: @@ -8179,15 +8163,15 @@ __metadata: linkType: hard "sass@npm:^1.56.1": - version: 1.63.4 - resolution: "sass@npm:1.63.4" + version: 1.63.6 + resolution: "sass@npm:1.63.6" dependencies: chokidar: ">=3.0.0 <4.0.0" immutable: ^4.0.0 source-map-js: ">=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 12bde5beff85a7018157d90c8b9d5aec8b56832f89fcfeca146f10936eecf97e669d22fd41f812b3407ed259bbb114d69c9ecbfc7ee9b15308211fb910cdf5eb + checksum: 3372319904658eeafaf78a09a6fcb3368a68e6d76fe3c43c2d009f4f72e475ab22b82ef483ef5c00fcda3ab00066846c0bd88c36b42771b855f6ab80c7eda541 languageName: node linkType: hard @@ -8216,7 +8200,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.3.7": +"semver@npm:^7.3.5, semver@npm:^7.3.7": version: 7.5.1 resolution: "semver@npm:7.5.1" dependencies: @@ -8402,7 +8386,7 @@ __metadata: languageName: node linkType: hard -"std-env@npm:^3.3.2": +"std-env@npm:^3.3.3": version: 3.3.3 resolution: "std-env@npm:3.3.3" checksum: 6665f6d8bd63aae432d3eb9abbd7322847ad0d902603e6dce1e8051b4f42ceeb4f7f96a4faf70bb05ce65ceee2dc982502b701575c8a58b1bfad29f3dbb19f81 @@ -8549,7 +8533,7 @@ __metadata: languageName: node linkType: hard -"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": +"strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 @@ -8738,13 +8722,6 @@ __metadata: languageName: node linkType: hard -"time-zone@npm:^1.0.0": - version: 1.0.0 - resolution: "time-zone@npm:1.0.0" - checksum: e46f5a69b8c236dcd8e91e29d40d4e7a3495ed4f59888c3f84ce1d9678e20461421a6ba41233509d47dd94bc18f1a4377764838b21b584663f942b3426dcbce8 - languageName: node - linkType: hard - "tinybench@npm:^2.5.0": version: 2.5.0 resolution: "tinybench@npm:2.5.0" @@ -8752,14 +8729,14 @@ __metadata: languageName: node linkType: hard -"tinypool@npm:^0.5.0": - version: 0.5.0 - resolution: "tinypool@npm:0.5.0" - checksum: 4e0dfd8f28666d541c1d92304222edc4613f05d74fe2243c8520d466a2cc6596011a7072c1c41a7de7522351b82fda07e8038198e8f43673d8d69401c5903f8c +"tinypool@npm:^0.6.0": + version: 0.6.0 + resolution: "tinypool@npm:0.6.0" + checksum: 996bf3a922993cec568d6b6ddc72531700b2a8aea24623ed6946a8929557b0f17629955d20defda09cb3b12fc94087159f14cb8e06570adce7d1b7d2eef00a91 languageName: node linkType: hard -"tinyspy@npm:^2.1.0": +"tinyspy@npm:^2.1.1": version: 2.1.1 resolution: "tinyspy@npm:2.1.1" checksum: cfe669803a7f11ca912742b84c18dcc4ceecaa7661c69bc5eb608a8a802d541c48aba220df8929f6c8cd09892ad37cb5ba5958ddbbb57940e91d04681d3cee73 @@ -9034,22 +9011,22 @@ __metadata: linkType: hard "typescript@npm:^5.1.0": - version: 5.1.3 - resolution: "typescript@npm:5.1.3" + version: 5.1.6 + resolution: "typescript@npm:5.1.6" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: d9d51862d98efa46534f2800a1071a613751b1585dc78884807d0c179bcd93d6e9d4012a508e276742f5f33c480adefc52ffcafaf9e0e00ab641a14cde9a31c7 + checksum: b2f2c35096035fe1f5facd1e38922ccb8558996331405eb00a5111cc948b2e733163cc22fab5db46992aba7dd520fff637f2c1df4996ff0e134e77d3249a7350 languageName: node linkType: hard "typescript@patch:typescript@^5.1.0#~builtin": - version: 5.1.3 - resolution: "typescript@patch:typescript@npm%3A5.1.3#~builtin::version=5.1.3&hash=5da071" + version: 5.1.6 + resolution: "typescript@patch:typescript@npm%3A5.1.6#~builtin::version=5.1.6&hash=5da071" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 6f0a9dca6bf4ce9dcaf4e282aade55ef4c56ecb5fb98d0a4a5c0113398815aea66d871b5611e83353e5953a19ed9ef103cf5a76ac0f276d550d1e7cd5344f61e + checksum: f53bfe97f7c8b2b6d23cf572750d4e7d1e0c5fff1c36d859d0ec84556a827b8785077bc27676bf7e71fae538e517c3ecc0f37e7f593be913d884805d931bc8be languageName: node linkType: hard @@ -9302,19 +9279,19 @@ __metadata: languageName: node linkType: hard -"vite-node@npm:0.32.0": - version: 0.32.0 - resolution: "vite-node@npm:0.32.0" +"vite-node@npm:0.33.0": + version: 0.33.0 + resolution: "vite-node@npm:0.33.0" dependencies: cac: ^6.7.14 debug: ^4.3.4 - mlly: ^1.2.0 - pathe: ^1.1.0 + mlly: ^1.4.0 + pathe: ^1.1.1 picocolors: ^1.0.0 vite: ^3.0.0 || ^4.0.0 bin: vite-node: vite-node.mjs - checksum: ce1c45e7d903afc001a08b3bc3159d268e8422e28ec7ffa8e4a4f99d18c9f4e447db989a6e0a8e168d3a4f4e6eb0b954f2b51ef1a85f29cc3f7f561045ff0bbe + checksum: 7c37911251d3e318fe4ad6b4093207498336ce190a58afb43a9ae701eee7f110ef80920b79061710cf6abcc6335ce58f6ca412ee6b268f25fe10f278c94cc264 languageName: node linkType: hard @@ -9382,34 +9359,33 @@ __metadata: languageName: node linkType: hard -"vitest@npm:^0.32.0": - version: 0.32.0 - resolution: "vitest@npm:0.32.0" +"vitest@npm:^0.33.0": + version: 0.33.0 + resolution: "vitest@npm:0.33.0" dependencies: "@types/chai": ^4.3.5 "@types/chai-subset": ^1.3.3 "@types/node": "*" - "@vitest/expect": 0.32.0 - "@vitest/runner": 0.32.0 - "@vitest/snapshot": 0.32.0 - "@vitest/spy": 0.32.0 - "@vitest/utils": 0.32.0 - acorn: ^8.8.2 + "@vitest/expect": 0.33.0 + "@vitest/runner": 0.33.0 + "@vitest/snapshot": 0.33.0 + "@vitest/spy": 0.33.0 + "@vitest/utils": 0.33.0 + acorn: ^8.9.0 acorn-walk: ^8.2.0 cac: ^6.7.14 chai: ^4.3.7 - concordance: ^5.0.4 debug: ^4.3.4 local-pkg: ^0.4.3 - magic-string: ^0.30.0 - pathe: ^1.1.0 + magic-string: ^0.30.1 + pathe: ^1.1.1 picocolors: ^1.0.0 - std-env: ^3.3.2 + std-env: ^3.3.3 strip-literal: ^1.0.1 tinybench: ^2.5.0 - tinypool: ^0.5.0 + tinypool: ^0.6.0 vite: ^3.0.0 || ^4.0.0 - vite-node: 0.32.0 + vite-node: 0.33.0 why-is-node-running: ^2.2.2 peerDependencies: "@edge-runtime/vm": "*" @@ -9439,7 +9415,7 @@ __metadata: optional: true bin: vitest: vitest.mjs - checksum: a752f7a2290e08cc4033936b1b9e1fe6adcb156bccff6404d4950b4f913c01a8015768f8dbd35267752331311dc55e218d56c5271c56e5ca9c848a36a5dc5b55 + checksum: c1884b2a1a41af81ee54c86a986a32b6a4c69ec3b3f7d2322f92c8fad5532d6a12160e7efb7927e4c53d95806ef4ede9549bdd82c66604e281c71056212f56e7 languageName: node linkType: hard @@ -9500,13 +9476,6 @@ __metadata: languageName: node linkType: hard -"well-known-symbols@npm:^2.0.0": - version: 2.0.0 - resolution: "well-known-symbols@npm:2.0.0" - checksum: 4f54bbc3012371cb4d228f436891b8e7536d34ac61a57541890257e96788608e096231e0121ac24d08ef2f908b3eb2dc0adba35023eaeb2a7df655da91415402 - languageName: node - linkType: hard - "whatwg-encoding@npm:^2.0.0": version: 2.0.0 resolution: "whatwg-encoding@npm:2.0.0" @@ -9604,13 +9573,6 @@ __metadata: languageName: node linkType: hard -"word-wrap@npm:^1.2.3": - version: 1.2.3 - resolution: "word-wrap@npm:1.2.3" - checksum: 30b48f91fcf12106ed3186ae4fa86a6a1842416df425be7b60485de14bec665a54a68e4b5156647dec3a70f25e84d270ca8bc8cd23182ed095f5c7206a938c1f - languageName: node - linkType: hard - "wrap-ansi@npm:^7.0.0": version: 7.0.0 resolution: "wrap-ansi@npm:7.0.0" @@ -9750,16 +9712,6 @@ __metadata: languageName: node linkType: hard -"yarn@npm:^1.22.19": - version: 1.22.19 - resolution: "yarn@npm:1.22.19" - bin: - yarn: bin/yarn.js - yarnpkg: bin/yarn.js - checksum: b43d2cc5fee7e933beb12a8aee7dfceca9e9ef2dd17c5d04d15a12ab7bec5f5744ea34a07b86e013da7f291a18c4e1ad8f70e150f5ed2f4666e6723c7f0a8452 - languageName: node - linkType: hard - "yn@npm:3.1.1": version: 3.1.1 resolution: "yn@npm:3.1.1" @@ -9789,8 +9741,8 @@ __metadata: linkType: hard "zustand@npm:^4.3.7": - version: 4.3.8 - resolution: "zustand@npm:4.3.8" + version: 4.3.9 + resolution: "zustand@npm:4.3.9" dependencies: use-sync-external-store: 1.2.0 peerDependencies: @@ -9801,6 +9753,6 @@ __metadata: optional: true react: optional: true - checksum: 24db6bf063ce1fc8b2ee238f13211a88f43236541a716e5f6f706f613c671a45332465f9ed06d694f8c353da3d24c53ea668e5712a86aceda9ad74f6c433e8c0 + checksum: fc83d653913fa537c354ba8b95d3a4fdebe62d2ebd3d9f5aeff2edf062811c0f5af48e02ab4da32b666752fd4f3e78c2b44624e445254f48503595435d4a7d70 languageName: node linkType: hard