diff --git a/.gitignore b/.gitignore
index 91c18132f..bdc55c860 100644
--- a/.gitignore
+++ b/.gitignore
@@ -56,6 +56,7 @@ yarn-error.log*
apps/tasks/tasks.cjs
apps/websocket/wssServer.cjs
apps/nextjs/.million/
+packages/cli/cli.cjs
#personal backgrounds
diff --git a/.nvmrc b/.nvmrc
index 3516580bb..2a393af59 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-20.17.0
+20.18.0
diff --git a/Dockerfile b/Dockerfile
index 4257ae086..7ae43e72f 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM node:20.17.0-alpine AS base
+FROM node:20.18.0-alpine AS base
FROM base AS builder
RUN apk add --no-cache libc6-compat
@@ -46,6 +46,7 @@ COPY --from=builder /app/cli-out/full/ .
# Copy static data as it is not part of the build
COPY static-data ./static-data
ARG SKIP_ENV_VALIDATION='true'
+ARG CI='true'
ARG DISABLE_REDIS_LOGS='true'
RUN corepack enable pnpm && pnpm build
@@ -58,6 +59,8 @@ RUN mkdir /appdata
RUN mkdir /appdata/db
RUN mkdir /appdata/redis
VOLUME /appdata
+RUN mkdir /secrets
+VOLUME /secrets
@@ -71,6 +74,7 @@ RUN chmod +x /usr/bin/homarr
# Don't run production as root
RUN chown -R nextjs:nodejs /appdata
+RUN chown -R nextjs:nodejs /secrets
RUN mkdir -p /var/cache/nginx && chown -R nextjs:nodejs /var/cache/nginx && \
mkdir -p /var/log/nginx && chown -R nextjs:nodejs /var/log/nginx && \
mkdir -p /var/lib/nginx && chown -R nextjs:nodejs /var/lib/nginx && \
@@ -93,6 +97,7 @@ COPY --from=installer --chown=nextjs:nodejs /app/apps/nextjs/.next/standalone ./
COPY --from=installer --chown=nextjs:nodejs /app/apps/nextjs/.next/static ./apps/nextjs/.next/static
COPY --from=installer --chown=nextjs:nodejs /app/apps/nextjs/public ./apps/nextjs/public
COPY --chown=nextjs:nodejs scripts/run.sh ./run.sh
+COPY --chown=nextjs:nodejs scripts/generateEncryptionKey.js ./generateEncryptionKey.js
COPY --chown=nextjs:nodejs packages/redis/redis.conf /app/redis.conf
COPY --chown=nextjs:nodejs nginx.conf /etc/nginx/templates/nginx.conf
diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json
index 52981dbe6..9a8c7ec6c 100644
--- a/apps/nextjs/package.json
+++ b/apps/nextjs/package.json
@@ -30,23 +30,24 @@
"@homarr/modals-collection": "workspace:^0.1.0",
"@homarr/notifications": "workspace:^0.1.0",
"@homarr/old-schema": "workspace:^0.1.0",
+ "@homarr/redis": "workspace:^0.1.0",
"@homarr/server-settings": "workspace:^0.1.0",
"@homarr/spotlight": "workspace:^0.1.0",
"@homarr/translation": "workspace:^0.1.0",
"@homarr/ui": "workspace:^0.1.0",
"@homarr/validation": "workspace:^0.1.0",
"@homarr/widgets": "workspace:^0.1.0",
- "@mantine/colors-generator": "^7.13.0",
- "@mantine/core": "^7.13.0",
- "@mantine/hooks": "^7.13.0",
- "@mantine/modals": "^7.13.0",
- "@mantine/tiptap": "^7.13.0",
- "@million/lint": "1.0.0-rc.84",
+ "@mantine/colors-generator": "^7.13.2",
+ "@mantine/core": "^7.13.2",
+ "@mantine/hooks": "^7.13.2",
+ "@mantine/modals": "^7.13.2",
+ "@mantine/tiptap": "^7.13.2",
+ "@million/lint": "1.0.8",
"@t3-oss/env-nextjs": "^0.11.1",
- "@tabler/icons-react": "^3.18.0",
- "@tanstack/react-query": "^5.56.2",
- "@tanstack/react-query-devtools": "^5.58.0",
- "@tanstack/react-query-next-experimental": "5.56.2",
+ "@tabler/icons-react": "^3.19.0",
+ "@tanstack/react-query": "^5.59.0",
+ "@tanstack/react-query-devtools": "^5.59.0",
+ "@tanstack/react-query-next-experimental": "5.59.0",
"@trpc/client": "next",
"@trpc/next": "next",
"@trpc/react-query": "next",
@@ -62,14 +63,14 @@
"glob": "^11.0.0",
"jotai": "^2.10.0",
"mantine-react-table": "2.0.0-beta.6",
- "next": "^14.2.13",
+ "next": "^14.2.14",
"postcss-preset-mantine": "^1.17.0",
"prismjs": "^1.29.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-error-boundary": "^4.0.13",
"react-simple-code-editor": "^0.14.1",
- "sass": "^1.79.3",
+ "sass": "^1.79.4",
"superjson": "2.2.1",
"swagger-ui-react": "^5.17.14",
"use-deep-compare-effect": "^1.8.1"
@@ -81,7 +82,7 @@
"@types/chroma-js": "2.4.4",
"@types/node": "^20.16.10",
"@types/prismjs": "^1.26.4",
- "@types/react": "^18.3.10",
+ "@types/react": "^18.3.11",
"@types/react-dom": "^18.3.0",
"@types/swagger-ui-react": "^4.18.3",
"concurrently": "^9.0.1",
diff --git a/apps/nextjs/src/app/[locale]/manage/apps/page.tsx b/apps/nextjs/src/app/[locale]/manage/apps/page.tsx
index 7ddf2816a..11aa2e8eb 100644
--- a/apps/nextjs/src/app/[locale]/manage/apps/page.tsx
+++ b/apps/nextjs/src/app/[locale]/manage/apps/page.tsx
@@ -105,7 +105,7 @@ const AppNoResults = async () => {
{t("app.page.list.noResults.title")}
- {t("app.page.list.noResults.description")}
+ {t("app.page.list.noResults.action")}
);
diff --git a/apps/nextjs/src/app/[locale]/manage/layout.tsx b/apps/nextjs/src/app/[locale]/manage/layout.tsx
index 58314d65a..b4d1564c4 100644
--- a/apps/nextjs/src/app/[locale]/manage/layout.tsx
+++ b/apps/nextjs/src/app/[locale]/manage/layout.tsx
@@ -15,6 +15,7 @@ import {
IconPlug,
IconQuestionMark,
IconReport,
+ IconSearch,
IconSettings,
IconTool,
IconUser,
@@ -53,6 +54,11 @@ export default async function ManageLayout({ children }: PropsWithChildren) {
href: "/manage/integrations",
label: t("items.integrations"),
},
+ {
+ icon: IconSearch,
+ href: "/manage/search-engines",
+ label: t("items.searchEngies"),
+ },
{
icon: IconUser,
label: t("items.users.label"),
diff --git a/apps/nextjs/src/app/[locale]/manage/search-engines/_form.tsx b/apps/nextjs/src/app/[locale]/manage/search-engines/_form.tsx
new file mode 100644
index 000000000..e937cf503
--- /dev/null
+++ b/apps/nextjs/src/app/[locale]/manage/search-engines/_form.tsx
@@ -0,0 +1,73 @@
+"use client";
+
+import Link from "next/link";
+import { Button, Grid, Group, Stack, Textarea, TextInput } from "@mantine/core";
+
+import { useZodForm } from "@homarr/form";
+import type { TranslationFunction } from "@homarr/translation";
+import { useI18n } from "@homarr/translation/client";
+import type { z } from "@homarr/validation";
+import { validation } from "@homarr/validation";
+
+import { IconPicker } from "~/components/icons/picker/icon-picker";
+
+type FormType = z.infer;
+
+interface SearchEngineFormProps {
+ submitButtonTranslation: (t: TranslationFunction) => string;
+ initialValues?: FormType;
+ handleSubmit: (values: FormType) => void;
+ isPending: boolean;
+ disableShort?: boolean;
+}
+
+export const SearchEngineForm = (props: SearchEngineFormProps) => {
+ const { submitButtonTranslation, handleSubmit, initialValues, isPending, disableShort } = props;
+ const t = useI18n();
+
+ const form = useZodForm(validation.searchEngine.manage, {
+ initialValues: initialValues ?? {
+ name: "",
+ short: "",
+ iconUrl: "",
+ urlTemplate: "",
+ description: "",
+ },
+ });
+
+ return (
+
+ );
+};
diff --git a/apps/nextjs/src/app/[locale]/manage/search-engines/_search-engine-delete-button.tsx b/apps/nextjs/src/app/[locale]/manage/search-engines/_search-engine-delete-button.tsx
new file mode 100644
index 000000000..b8df69619
--- /dev/null
+++ b/apps/nextjs/src/app/[locale]/manage/search-engines/_search-engine-delete-button.tsx
@@ -0,0 +1,55 @@
+"use client";
+
+import { useCallback } from "react";
+import { ActionIcon } from "@mantine/core";
+import { IconTrash } from "@tabler/icons-react";
+
+import type { RouterOutputs } from "@homarr/api";
+import { clientApi } from "@homarr/api/client";
+import { revalidatePathActionAsync } from "@homarr/common/client";
+import { useConfirmModal } from "@homarr/modals";
+import { showErrorNotification, showSuccessNotification } from "@homarr/notifications";
+import { useScopedI18n } from "@homarr/translation/client";
+
+interface SearchEngineDeleteButtonProps {
+ searchEngine: RouterOutputs["searchEngine"]["getPaginated"]["items"][number];
+}
+
+export const SearchEngineDeleteButton = ({ searchEngine }: SearchEngineDeleteButtonProps) => {
+ const t = useScopedI18n("search.engine.page.delete");
+ const { openConfirmModal } = useConfirmModal();
+ const { mutate, isPending } = clientApi.searchEngine.delete.useMutation();
+
+ const onClick = useCallback(() => {
+ openConfirmModal({
+ title: t("title"),
+ children: t("message", searchEngine),
+ onConfirm: () => {
+ mutate(
+ { id: searchEngine.id },
+ {
+ onSuccess: () => {
+ showSuccessNotification({
+ title: t("notification.success.title"),
+ message: t("notification.success.message"),
+ });
+ void revalidatePathActionAsync("/manage/search-engines");
+ },
+ onError: () => {
+ showErrorNotification({
+ title: t("notification.error.title"),
+ message: t("notification.error.message"),
+ });
+ },
+ },
+ );
+ },
+ });
+ }, [searchEngine, mutate, t, openConfirmModal]);
+
+ return (
+
+
+
+ );
+};
diff --git a/apps/nextjs/src/app/[locale]/manage/search-engines/edit/[id]/_search-engine-edit-form.tsx b/apps/nextjs/src/app/[locale]/manage/search-engines/edit/[id]/_search-engine-edit-form.tsx
new file mode 100644
index 000000000..93782e597
--- /dev/null
+++ b/apps/nextjs/src/app/[locale]/manage/search-engines/edit/[id]/_search-engine-edit-form.tsx
@@ -0,0 +1,63 @@
+"use client";
+
+import { useCallback } from "react";
+import { useRouter } from "next/navigation";
+
+import type { RouterOutputs } from "@homarr/api";
+import { clientApi } from "@homarr/api/client";
+import { revalidatePathActionAsync } from "@homarr/common/client";
+import { showErrorNotification, showSuccessNotification } from "@homarr/notifications";
+import type { TranslationFunction } from "@homarr/translation";
+import { useScopedI18n } from "@homarr/translation/client";
+import type { validation, z } from "@homarr/validation";
+
+import { SearchEngineForm } from "../../_form";
+
+interface SearchEngineEditFormProps {
+ searchEngine: RouterOutputs["searchEngine"]["byId"];
+}
+
+export const SearchEngineEditForm = ({ searchEngine }: SearchEngineEditFormProps) => {
+ const t = useScopedI18n("search.engine.page.edit.notification");
+ const router = useRouter();
+
+ const { mutate, isPending } = clientApi.searchEngine.update.useMutation({
+ onSuccess: () => {
+ showSuccessNotification({
+ title: t("success.title"),
+ message: t("success.message"),
+ });
+ void revalidatePathActionAsync("/manage/search-engines").then(() => {
+ router.push("/manage/search-engines");
+ });
+ },
+ onError: () => {
+ showErrorNotification({
+ title: t("error.title"),
+ message: t("error.message"),
+ });
+ },
+ });
+
+ const handleSubmit = useCallback(
+ (values: z.infer) => {
+ mutate({
+ id: searchEngine.id,
+ ...values,
+ });
+ },
+ [mutate, searchEngine.id],
+ );
+
+ const submitButtonTranslation = useCallback((t: TranslationFunction) => t("common.action.save"), []);
+
+ return (
+
+ );
+};
diff --git a/apps/nextjs/src/app/[locale]/manage/search-engines/edit/[id]/page.tsx b/apps/nextjs/src/app/[locale]/manage/search-engines/edit/[id]/page.tsx
new file mode 100644
index 000000000..a130fb4fa
--- /dev/null
+++ b/apps/nextjs/src/app/[locale]/manage/search-engines/edit/[id]/page.tsx
@@ -0,0 +1,27 @@
+import { Stack, Title } from "@mantine/core";
+
+import { api } from "@homarr/api/server";
+import { getI18n } from "@homarr/translation/server";
+
+import { ManageContainer } from "~/components/manage/manage-container";
+import { DynamicBreadcrumb } from "~/components/navigation/dynamic-breadcrumb";
+import { SearchEngineEditForm } from "./_search-engine-edit-form";
+
+interface SearchEngineEditPageProps {
+ params: { id: string };
+}
+
+export default async function SearchEngineEditPage({ params }: SearchEngineEditPageProps) {
+ const searchEngine = await api.searchEngine.byId({ id: params.id });
+ const t = await getI18n();
+
+ return (
+
+
+
+ {t("search.engine.page.edit.title")}
+
+
+
+ );
+}
diff --git a/apps/nextjs/src/app/[locale]/manage/search-engines/new/_search-engine-new-form.tsx b/apps/nextjs/src/app/[locale]/manage/search-engines/new/_search-engine-new-form.tsx
new file mode 100644
index 000000000..59fe95ccd
--- /dev/null
+++ b/apps/nextjs/src/app/[locale]/manage/search-engines/new/_search-engine-new-form.tsx
@@ -0,0 +1,52 @@
+"use client";
+
+import { useCallback } from "react";
+import { useRouter } from "next/navigation";
+
+import { clientApi } from "@homarr/api/client";
+import { revalidatePathActionAsync } from "@homarr/common/client";
+import { showErrorNotification, showSuccessNotification } from "@homarr/notifications";
+import type { TranslationFunction } from "@homarr/translation";
+import { useScopedI18n } from "@homarr/translation/client";
+import type { validation, z } from "@homarr/validation";
+
+import { SearchEngineForm } from "../_form";
+
+export const SearchEngineNewForm = () => {
+ const t = useScopedI18n("search.engine.page.create.notification");
+ const router = useRouter();
+
+ const { mutate, isPending } = clientApi.searchEngine.create.useMutation({
+ onSuccess: async () => {
+ showSuccessNotification({
+ title: t("success.title"),
+ message: t("success.message"),
+ });
+ await revalidatePathActionAsync("/manage/search-engines");
+ router.push("/manage/search-engines");
+ },
+ onError: () => {
+ showErrorNotification({
+ title: t("error.title"),
+ message: t("error.message"),
+ });
+ },
+ });
+
+ const handleSubmit = useCallback(
+ (values: z.infer) => {
+ mutate(values);
+ },
+ [mutate],
+ );
+
+ const submitButtonTranslation = useCallback((t: TranslationFunction) => t("common.action.create"), []);
+
+ return (
+
+ );
+};
diff --git a/apps/nextjs/src/app/[locale]/manage/search-engines/new/page.tsx b/apps/nextjs/src/app/[locale]/manage/search-engines/new/page.tsx
new file mode 100644
index 000000000..fb1c51340
--- /dev/null
+++ b/apps/nextjs/src/app/[locale]/manage/search-engines/new/page.tsx
@@ -0,0 +1,21 @@
+import { Stack, Title } from "@mantine/core";
+
+import { getI18n } from "@homarr/translation/server";
+
+import { ManageContainer } from "~/components/manage/manage-container";
+import { DynamicBreadcrumb } from "~/components/navigation/dynamic-breadcrumb";
+import { SearchEngineNewForm } from "./_search-engine-new-form";
+
+export default async function SearchEngineNewPage() {
+ const t = await getI18n();
+
+ return (
+
+
+
+ {t("search.engine.page.create.title")}
+
+
+
+ );
+}
diff --git a/apps/nextjs/src/app/[locale]/manage/search-engines/page.tsx b/apps/nextjs/src/app/[locale]/manage/search-engines/page.tsx
new file mode 100644
index 000000000..2951e31a9
--- /dev/null
+++ b/apps/nextjs/src/app/[locale]/manage/search-engines/page.tsx
@@ -0,0 +1,139 @@
+import Link from "next/link";
+import { ActionIcon, ActionIconGroup, Anchor, Avatar, Card, Group, Stack, Text, Title } from "@mantine/core";
+import { IconPencil, IconSearch } from "@tabler/icons-react";
+
+import type { RouterOutputs } from "@homarr/api";
+import { api } from "@homarr/api/server";
+import { getI18n, getScopedI18n } from "@homarr/translation/server";
+import { SearchInput, TablePagination } from "@homarr/ui";
+import { z } from "@homarr/validation";
+
+import { ManageContainer } from "~/components/manage/manage-container";
+import { MobileAffixButton } from "~/components/manage/mobile-affix-button";
+import { DynamicBreadcrumb } from "~/components/navigation/dynamic-breadcrumb";
+import { SearchEngineDeleteButton } from "./_search-engine-delete-button";
+
+const searchParamsSchema = z.object({
+ search: z.string().optional(),
+ pageSize: z.string().regex(/\d+/).transform(Number).catch(10),
+ page: z.string().regex(/\d+/).transform(Number).catch(1),
+});
+
+type SearchParamsSchemaInputFromSchema> = Partial<{
+ [K in keyof TSchema]: Exclude extends unknown[] ? string[] : string;
+}>;
+
+interface SearchEnginesPageProps {
+ searchParams: SearchParamsSchemaInputFromSchema>;
+}
+
+export default async function SearchEnginesPage(props: SearchEnginesPageProps) {
+ const searchParams = searchParamsSchema.parse(props.searchParams);
+ const { items: searchEngines, totalCount } = await api.searchEngine.getPaginated(searchParams);
+
+ const t = await getI18n();
+ const tEngine = await getScopedI18n("search.engine");
+
+ return (
+
+
+
+ {tEngine("page.list.title")}
+
+
+
+ {tEngine("page.create.title")}
+
+
+ {searchEngines.length === 0 && }
+ {searchEngines.length > 0 && (
+
+ {searchEngines.map((searchEngine) => (
+
+ ))}
+
+ )}
+
+
+
+
+
+
+ );
+}
+
+interface SearchEngineCardProps {
+ searchEngine: RouterOutputs["searchEngine"]["getPaginated"]["items"][number];
+}
+
+const SearchEngineCard = async ({ searchEngine }: SearchEngineCardProps) => {
+ const t = await getScopedI18n("search.engine");
+
+ return (
+
+
+
+
+
+
+ {searchEngine.name}
+
+ {searchEngine.description && (
+
+ {searchEngine.description}
+
+ )}
+
+ {searchEngine.urlTemplate}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+const SearchEngineNoResults = async () => {
+ const t = await getI18n();
+
+ return (
+
+
+
+
+ {t("search.engine.page.list.noResults.title")}
+
+ {t("search.engine.page.list.noResults.action")}
+
+
+ );
+};
diff --git a/apps/nextjs/src/app/[locale]/manage/users/_components/user-list.tsx b/apps/nextjs/src/app/[locale]/manage/users/_components/user-list.tsx
index fd007209d..9bb51106f 100644
--- a/apps/nextjs/src/app/[locale]/manage/users/_components/user-list.tsx
+++ b/apps/nextjs/src/app/[locale]/manage/users/_components/user-list.tsx
@@ -2,7 +2,7 @@
import { useMemo } from "react";
import Link from "next/link";
-import { Anchor, Button, Group, Text, ThemeIcon, Title } from "@mantine/core";
+import { Anchor, Button, Group, Text, Title, Tooltip } from "@mantine/core";
import { IconCheck } from "@tabler/icons-react";
import type { MRT_ColumnDef } from "mantine-react-table";
import { MantineReactTable } from "mantine-react-table";
@@ -15,9 +15,10 @@ import { useTranslatedMantineReactTable } from "@homarr/ui/hooks";
interface UserListComponentProps {
initialUserList: RouterOutputs["user"]["getAll"];
+ credentialsProviderEnabled: boolean;
}
-export const UserListComponent = ({ initialUserList }: UserListComponentProps) => {
+export const UserListComponent = ({ initialUserList, credentialsProviderEnabled }: UserListComponentProps) => {
const tUserList = useScopedI18n("management.page.user.list");
const t = useI18n();
const { data, isLoading } = clientApi.user.getAll.useQuery(undefined, {
@@ -29,7 +30,7 @@ export const UserListComponent = ({ initialUserList }: UserListComponentProps) =
{
accessorKey: "name",
header: t("user.field.username.label"),
- grow: 100,
+ grow: 1,
Cell: ({ renderedCellValue, row }) => (
@@ -42,13 +43,14 @@ export const UserListComponent = ({ initialUserList }: UserListComponentProps) =
{
accessorKey: "email",
header: t("user.field.email.label"),
+ size: 300,
Cell: ({ renderedCellValue, row }) => (
-
+
{row.original.email ? renderedCellValue : -}
{row.original.emailVerified && (
-
-
-
+
+
+
)}
),
@@ -68,11 +70,12 @@ export const UserListComponent = ({ initialUserList }: UserListComponentProps) =
enableFullScreenToggle: false,
layoutMode: "grid-no-grow",
getRowId: (row) => row.id,
- renderTopToolbarCustomActions: () => (
-
- ),
+ renderTopToolbarCustomActions: () =>
+ credentialsProviderEnabled ? (
+
+ ) : null,
state: {
isLoading,
},
diff --git a/apps/nextjs/src/app/[locale]/manage/users/create/page.tsx b/apps/nextjs/src/app/[locale]/manage/users/create/page.tsx
index 730f3e426..f7a6881e2 100644
--- a/apps/nextjs/src/app/[locale]/manage/users/create/page.tsx
+++ b/apps/nextjs/src/app/[locale]/manage/users/create/page.tsx
@@ -1,3 +1,6 @@
+import { notFound } from "next/navigation";
+
+import { isProviderEnabled } from "@homarr/auth/server";
import { getScopedI18n } from "@homarr/translation/server";
import { DynamicBreadcrumb } from "~/components/navigation/dynamic-breadcrumb";
@@ -5,6 +8,8 @@ import { createMetaTitle } from "~/metadata";
import { UserCreateStepperComponent } from "./_components/create-user-stepper";
export async function generateMetadata() {
+ if (!isProviderEnabled("credentials")) return {};
+
const t = await getScopedI18n("management.page.user.create");
return {
@@ -13,6 +18,10 @@ export async function generateMetadata() {
}
export default function CreateUserPage() {
+ if (!isProviderEnabled("credentials")) {
+ notFound();
+ }
+
return (
<>
diff --git a/apps/nextjs/src/app/[locale]/manage/users/page.tsx b/apps/nextjs/src/app/[locale]/manage/users/page.tsx
index af56c3266..f77be0eeb 100644
--- a/apps/nextjs/src/app/[locale]/manage/users/page.tsx
+++ b/apps/nextjs/src/app/[locale]/manage/users/page.tsx
@@ -1,4 +1,5 @@
import { api } from "@homarr/api/server";
+import { isProviderEnabled } from "@homarr/auth/server";
import { getScopedI18n } from "@homarr/translation/server";
import { DynamicBreadcrumb } from "~/components/navigation/dynamic-breadcrumb";
@@ -15,10 +16,12 @@ export async function generateMetadata() {
export default async function UsersPage() {
const userList = await api.user.getAll();
+ const credentialsProviderEnabled = isProviderEnabled("credentials");
+
return (
<>
-
+
>
);
}
diff --git a/apps/nextjs/src/app/api/health/live/route.ts b/apps/nextjs/src/app/api/health/live/route.ts
new file mode 100644
index 000000000..57cc9b207
--- /dev/null
+++ b/apps/nextjs/src/app/api/health/live/route.ts
@@ -0,0 +1,91 @@
+import { performance } from "perf_hooks";
+
+import { db } from "@homarr/db";
+import { logger } from "@homarr/log";
+import { handshakeAsync } from "@homarr/redis";
+
+export async function GET() {
+ const timeBeforeHealthCheck = performance.now();
+ const response = await executeAndAggregateAllHealthChecksAsync();
+ logger.info(`Completed healthcheck after ${performance.now() - timeBeforeHealthCheck}ms`);
+
+ if (response.status === "healthy") {
+ return new Response(JSON.stringify(response), {
+ status: 200,
+ });
+ }
+
+ return new Response(JSON.stringify(response), {
+ status: 500,
+ });
+}
+
+const executeAndAggregateAllHealthChecksAsync = async (): Promise<{
+ healthChecks: Record;
+ status: "healthy" | "unhealthy";
+}> => {
+ const healthChecks = [
+ executeHealthCheckSafelyAsync("database", async () => {
+ // sqlite driver does not support raw query execution. this is for a heartbeat check only - it doesn't matter if data is returned or not
+ await db.query.serverSettings.findFirst();
+ return {};
+ }),
+ executeHealthCheckSafelyAsync("redis", async () => {
+ await handshakeAsync();
+ return {};
+ }),
+ ];
+
+ const healthCheckResults = await Promise.all(healthChecks);
+ const anyUnhealthy = healthCheckResults.some((healthCheck) => healthCheck.status === "unhealthy");
+
+ const healthCheckValues = healthCheckResults.reduce(
+ (acc, healthCheck) => {
+ acc[healthCheck.name] = {
+ status: healthCheck.status,
+ ...healthCheck.values,
+ };
+ return acc;
+ },
+ {} as Record,
+ );
+
+ return {
+ status: anyUnhealthy ? "unhealthy" : "healthy",
+ healthChecks: healthCheckValues,
+ };
+};
+
+const executeHealthCheckSafelyAsync = async (
+ name: string,
+ callback: () => Promise
diff --git a/packages/notifications/package.json b/packages/notifications/package.json
index f0231f186..d77538189 100644
--- a/packages/notifications/package.json
+++ b/packages/notifications/package.json
@@ -24,8 +24,8 @@
"prettier": "@homarr/prettier-config",
"dependencies": {
"@homarr/ui": "workspace:^0.1.0",
- "@mantine/notifications": "^7.13.0",
- "@tabler/icons-react": "^3.18.0"
+ "@mantine/notifications": "^7.13.2",
+ "@tabler/icons-react": "^3.19.0"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
diff --git a/packages/old-import/src/widgets/definitions/index.ts b/packages/old-import/src/widgets/definitions/index.ts
index 0ec256693..e74c5c98c 100644
--- a/packages/old-import/src/widgets/definitions/index.ts
+++ b/packages/old-import/src/widgets/definitions/index.ts
@@ -66,6 +66,7 @@ export const widgetKindMapping = {
"mediaRequests-requestList": "media-requests-list",
"mediaRequests-requestStats": "media-requests-stats",
indexerManager: "indexer-manager",
+ healthMonitoring: "health-monitoring",
} satisfies Record;
// Use null for widgets that did not exist in oldmarr
// TODO: revert assignment so that only old widgets are needed in the object,
diff --git a/packages/old-import/src/widgets/options.ts b/packages/old-import/src/widgets/options.ts
index afc89393f..cb95a7629 100644
--- a/packages/old-import/src/widgets/options.ts
+++ b/packages/old-import/src/widgets/options.ts
@@ -103,6 +103,12 @@ const optionMapping: OptionMapping = {
indexerManager: {
openIndexerSiteInNewTab: (oldOptions) => oldOptions.openIndexerSiteInNewTab,
},
+ healthMonitoring: {
+ cpu: (oldOptions) => oldOptions.cpu,
+ memory: (oldOptions) => oldOptions.memory,
+ fahrenheit: (oldOptions) => oldOptions.fahrenheit,
+ fileSystem: (oldOptions) => oldOptions.fileSystem,
+ },
app: null,
};
diff --git a/packages/redis/src/index.ts b/packages/redis/src/index.ts
index 61c3e42b9..67373769e 100644
--- a/packages/redis/src/index.ts
+++ b/packages/redis/src/index.ts
@@ -1,6 +1,6 @@
import { createListChannel, createQueueChannel, createSubPubChannel } from "./lib/channel";
-export { createCacheChannel, createItemAndIntegrationChannel, createItemChannel } from "./lib/channel";
+export { createCacheChannel, createItemAndIntegrationChannel, createItemChannel, handshakeAsync } from "./lib/channel";
export const exampleChannel = createSubPubChannel<{ message: string }>("example");
export const pingChannel = createSubPubChannel<{ url: string; statusCode: number } | { url: string; error: string }>(
diff --git a/packages/redis/src/lib/channel.ts b/packages/redis/src/lib/channel.ts
index f707e20c0..698bafb7c 100644
--- a/packages/redis/src/lib/channel.ts
+++ b/packages/redis/src/lib/channel.ts
@@ -260,3 +260,7 @@ export const createQueueChannel = (name: string) => {
},
};
};
+
+export const handshakeAsync = async () => {
+ await getSetClient.hello();
+};
diff --git a/packages/spotlight/package.json b/packages/spotlight/package.json
index e4baef7f9..5d9840b32 100644
--- a/packages/spotlight/package.json
+++ b/packages/spotlight/package.json
@@ -30,12 +30,12 @@
"@homarr/modals-collection": "workspace:^0.1.0",
"@homarr/translation": "workspace:^0.1.0",
"@homarr/ui": "workspace:^0.1.0",
- "@mantine/core": "^7.13.0",
- "@mantine/hooks": "^7.13.0",
- "@mantine/spotlight": "^7.13.0",
- "@tabler/icons-react": "^3.18.0",
+ "@mantine/core": "^7.13.2",
+ "@mantine/hooks": "^7.13.2",
+ "@mantine/spotlight": "^7.13.2",
+ "@tabler/icons-react": "^3.19.0",
"jotai": "^2.10.0",
- "next": "^14.2.13",
+ "next": "^14.2.14",
"react": "^18.3.1",
"use-deep-compare-effect": "^1.8.1"
},
diff --git a/packages/spotlight/src/components/actions/group-actions.tsx b/packages/spotlight/src/components/actions/group-actions.tsx
index ce2d8f370..1c208c491 100644
--- a/packages/spotlight/src/components/actions/group-actions.tsx
+++ b/packages/spotlight/src/components/actions/group-actions.tsx
@@ -1,4 +1,5 @@
import { Center, Loader } from "@mantine/core";
+import { useWindowEvent } from "@mantine/hooks";
import type { TranslationObject } from "@homarr/translation";
import { useI18n } from "@homarr/translation/client";
@@ -27,6 +28,11 @@ export const SpotlightGroupActions = >({
const options = useOptions(query);
const t = useI18n();
+ useWindowEvent("keydown", (event) => {
+ const optionsArray = Array.isArray(options) ? options : (options.data ?? []);
+ group.onKeyDown?.(event, optionsArray, query, { setChildrenOptions });
+ });
+
if (Array.isArray(options)) {
const filteredOptions = options
.filter((option) => ("filter" in group ? group.filter(query, option) : false))
diff --git a/packages/spotlight/src/components/actions/groups/action-group.tsx b/packages/spotlight/src/components/actions/groups/action-group.tsx
index c35fa2d35..300e0f10a 100644
--- a/packages/spotlight/src/components/actions/groups/action-group.tsx
+++ b/packages/spotlight/src/components/actions/groups/action-group.tsx
@@ -15,18 +15,13 @@ interface SpotlightActionGroupsProps {
setChildrenOptions: (options: inferSearchInteractionOptions<"children">) => void;
}
-export const SpotlightActionGroups = ({ groups, query, setMode, setChildrenOptions }: SpotlightActionGroupsProps) => {
+export const SpotlightActionGroups = ({ groups, ...others }: SpotlightActionGroupsProps) => {
const t = useI18n();
return groups.map((group) => (
{/*eslint-disable-next-line @typescript-eslint/no-explicit-any */}
-
- group={group}
- query={query}
- setMode={setMode}
- setChildrenOptions={setChildrenOptions}
- />
+ group={group} {...others} />
));
};
diff --git a/packages/spotlight/src/components/spotlight.tsx b/packages/spotlight/src/components/spotlight.tsx
index c9c9c2904..d10d4d69c 100644
--- a/packages/spotlight/src/components/spotlight.tsx
+++ b/packages/spotlight/src/components/spotlight.tsx
@@ -28,6 +28,7 @@ export const Spotlight = () => {
return (
{
setMode("help");
setChildrenOptions(null);
@@ -64,6 +65,11 @@ export const Spotlight = () => {
{activeMode.modeKey !== "help" ? {activeMode.character} : null}
}
+ styles={{
+ section: {
+ pointerEvents: "all",
+ },
+ }}
rightSection={
mode === "help" ? undefined : (
{
}}
setChildrenOptions={(options) => {
setChildrenOptions(options);
- setQuery("");
- setTimeout(() => selectAction(0, spotlightStore));
+
+ setTimeout(() => {
+ setQuery("");
+ selectAction(0, spotlightStore);
+ });
}}
query={query}
groups={activeMode.groups}
diff --git a/packages/spotlight/src/lib/group.ts b/packages/spotlight/src/lib/group.ts
index d1cfc4a44..dda1fa7a8 100644
--- a/packages/spotlight/src/lib/group.ts
+++ b/packages/spotlight/src/lib/group.ts
@@ -2,7 +2,7 @@ import type { UseTRPCQueryResult } from "@trpc/react-query/shared";
import type { stringOrTranslation } from "@homarr/translation";
-import type { inferSearchInteractionDefinition, SearchInteraction } from "./interaction";
+import type { inferSearchInteractionDefinition, inferSearchInteractionOptions, SearchInteraction } from "./interaction";
type CommonSearchGroup, TOptionProps extends Record> = {
// key path is used to define the path to a unique key in the option object
@@ -10,6 +10,14 @@ type CommonSearchGroup, TOptionProps ext
title: stringOrTranslation;
component: (option: TOption) => JSX.Element;
useInteraction: (option: TOption, query: string) => inferSearchInteractionDefinition;
+ onKeyDown?: (
+ event: KeyboardEvent,
+ options: TOption[],
+ query: string,
+ actions: {
+ setChildrenOptions: (options: inferSearchInteractionOptions<"children">) => void;
+ },
+ ) => void;
} & TOptionProps;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
diff --git a/packages/spotlight/src/modes/external/search-engines-search-group.tsx b/packages/spotlight/src/modes/external/search-engines-search-group.tsx
index 45669ba52..4c76532e9 100644
--- a/packages/spotlight/src/modes/external/search-engines-search-group.tsx
+++ b/packages/spotlight/src/modes/external/search-engines-search-group.tsx
@@ -1,82 +1,85 @@
-import { Group, Stack, Text } from "@mantine/core";
-import type { TablerIcon } from "@tabler/icons-react";
-import { IconDownload } from "@tabler/icons-react";
+import { Group, Kbd, Stack, Text } from "@mantine/core";
+import { IconSearch } from "@tabler/icons-react";
+import type { RouterOutputs } from "@homarr/api";
+import { clientApi } from "@homarr/api/client";
import { useScopedI18n } from "@homarr/translation/client";
+import { createChildrenOptions } from "../../lib/children";
import { createGroup } from "../../lib/group";
import { interaction } from "../../lib/interaction";
-// This has to be type so it can be interpreted as Record.
-// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
-type SearchEngine = {
- short: string;
- image: string | TablerIcon;
- name: string;
- description: string;
- urlTemplate: string;
-};
+type SearchEngine = RouterOutputs["searchEngine"]["search"][number];
+
+export const searchEnginesChildrenOptions = createChildrenOptions({
+ useActions: () => [
+ {
+ key: "search",
+ component: ({ name }) => {
+ const tChildren = useScopedI18n("search.mode.external.group.searchEngine.children");
+
+ return (
+
+
+ {tChildren("action.search.label", { name })}
+
+ );
+ },
+ useInteraction: interaction.link(({ urlTemplate }, query) => ({
+ href: urlTemplate.replace("%s", query),
+ })),
+ },
+ ],
+ detailComponent({ options }) {
+ const tChildren = useScopedI18n("search.mode.external.group.searchEngine.children");
+ return (
+
+ {tChildren("detail.title")}
+
+
+ {options.name}
+
+
+ );
+ },
+});
export const searchEnginesSearchGroups = createGroup({
keyPath: "short",
title: (t) => t("search.mode.external.group.searchEngine.title"),
- component: ({ image: Image, name, description }) => (
-
-
- {typeof Image === "string" ? : }
-
- {name}
-
- {description}
-
-
+ component: ({ iconUrl, name, short, description }) => {
+ return (
+
+
+
+
+ {name}
+
+ {description}
+
+
+
+
+ {short}
-
- ),
- filter: () => true,
+ );
+ },
+ onKeyDown(event, options, query, { setChildrenOptions }) {
+ if (event.code !== "Space") return;
+
+ const engine = options.find((option) => option.short === query);
+ if (!engine) return;
+
+ setChildrenOptions(searchEnginesChildrenOptions(engine));
+ },
useInteraction: interaction.link(({ urlTemplate }, query) => ({
href: urlTemplate.replace("%s", query),
newTab: true,
})),
- useOptions() {
- const tOption = useScopedI18n("search.mode.external.group.searchEngine.option");
-
- return [
- {
- short: "g",
- name: tOption("google.name"),
- image: "https://www.google.com/favicon.ico",
- description: tOption("google.description"),
- urlTemplate: "https://www.google.com/search?q=%s",
- },
- {
- short: "b",
- name: tOption("bing.name"),
- image: "https://www.bing.com/favicon.ico",
- description: tOption("bing.description"),
- urlTemplate: "https://www.bing.com/search?q=%s",
- },
- {
- short: "d",
- name: tOption("duckduckgo.name"),
- image: "https://duckduckgo.com/favicon.ico",
- description: tOption("duckduckgo.description"),
- urlTemplate: "https://duckduckgo.com/?q=%s",
- },
- {
- short: "t",
- name: tOption("torrent.name"),
- image: IconDownload,
- description: tOption("torrent.description"),
- urlTemplate: "https://www.torrentdownloads.pro/search/?search=%s",
- },
- {
- short: "y",
- name: tOption("youTube.name"),
- image: "https://www.youtube.com/favicon.ico",
- description: tOption("youTube.description"),
- urlTemplate: "https://www.youtube.com/results?search_query=%s",
- },
- ];
+ useQueryOptions(query) {
+ return clientApi.searchEngine.search.useQuery({
+ query: query.trim(),
+ limit: 5,
+ });
},
});
diff --git a/packages/spotlight/src/modes/index.tsx b/packages/spotlight/src/modes/index.tsx
index 29b0f220f..077e8fa11 100644
--- a/packages/spotlight/src/modes/index.tsx
+++ b/packages/spotlight/src/modes/index.tsx
@@ -66,7 +66,7 @@ const helpMode = {
),
filter: () => true,
- useInteraction: interaction.link(({ href }) => ({ href })),
+ useInteraction: interaction.link(({ href }) => ({ href, newTab: true })),
}),
],
} satisfies SearchMode;
diff --git a/packages/spotlight/src/modes/page/pages-search-group.tsx b/packages/spotlight/src/modes/page/pages-search-group.tsx
index d4ad2eb52..f3efe677f 100644
--- a/packages/spotlight/src/modes/page/pages-search-group.tsx
+++ b/packages/spotlight/src/modes/page/pages-search-group.tsx
@@ -9,6 +9,7 @@ import {
IconMailForward,
IconPlug,
IconReport,
+ IconSearch,
IconSettings,
IconUsers,
IconUsersGroup,
@@ -82,6 +83,12 @@ export const pagesSearchGroup = createGroup<{
name: t("manageIntegration.label"),
hidden: !session,
},
+ {
+ icon: IconSearch,
+ path: "/manage/search-engines",
+ name: t("manageSearchEngine.label"),
+ hidden: !session,
+ },
{
icon: IconUsers,
path: "/manage/users",
diff --git a/packages/translation/src/lang/en.ts b/packages/translation/src/lang/en.ts
index e1248959b..631996bc3 100644
--- a/packages/translation/src/lang/en.ts
+++ b/packages/translation/src/lang/en.ts
@@ -24,6 +24,7 @@ export default {
field: {
email: {
label: "E-Mail",
+ verified: "Verified",
},
username: {
label: "Username",
@@ -303,8 +304,8 @@ export default {
list: {
title: "Apps",
noResults: {
- title: "There aren't any apps.",
- description: "Create your first app",
+ title: "There aren't any apps",
+ action: "Create your first app",
},
},
create: {
@@ -1069,6 +1070,41 @@ export default {
internalServerError: "Failed to fetch indexers status",
},
},
+ healthMonitoring: {
+ name: "System Health Monitoring",
+ description: "Displays information showing the health and status of your system(s).",
+ option: {
+ fahrenheit: {
+ label: "CPU Temp in Fahrenheit",
+ },
+ cpu: {
+ label: "Show CPU Info",
+ },
+ memory: {
+ label: "Show Memory Info",
+ },
+ fileSystem: {
+ label: "Show Filesystem Info",
+ },
+ },
+ popover: {
+ information: "Information",
+ processor: "Processor:",
+ memory: "Memory:",
+ version: "Version:",
+ uptime: "Uptime: {days} days, {hours} hours",
+ loadAverage: "Load average:",
+ minute: "1 minute:",
+ minutes: "{count} minutes:",
+ used: "Used",
+ diskAvailable: "Available",
+ memAvailable: "Available:",
+ },
+ memory: {},
+ error: {
+ internalServerError: "Failed to fetch health status",
+ },
+ },
common: {
location: {
query: "City / Postal code",
@@ -1559,6 +1595,7 @@ export default {
boards: "Boards",
apps: "Apps",
integrations: "Integrations",
+ searchEngies: "Search engines",
users: {
label: "Users",
items: {
@@ -1842,6 +1879,9 @@ export default {
indexerManager: {
label: "Indexer Manager",
},
+ healthMonitoring: {
+ label: "Health Monitoring",
+ },
dnsHole: {
label: "DNS Hole Data",
},
@@ -2010,13 +2050,22 @@ export default {
label: "New",
},
},
+ "search-engines": {
+ label: "Search engines",
+ new: {
+ label: "New",
+ },
+ edit: {
+ label: "Edit",
+ },
+ },
apps: {
label: "Apps",
new: {
- label: "New App",
+ label: "New",
},
edit: {
- label: "Edit App",
+ label: "Edit",
},
},
users: {
@@ -2154,6 +2203,16 @@ export default {
group: {
searchEngine: {
title: "Search engines",
+ children: {
+ action: {
+ search: {
+ label: "Search with {name}",
+ },
+ },
+ detail: {
+ title: "Select an action for the search engine",
+ },
+ },
option: {
google: {
name: "Google",
@@ -2218,6 +2277,9 @@ export default {
manageIntegration: {
label: "Manage integrations",
},
+ manageSearchEngine: {
+ label: "Manage search engines",
+ },
manageUser: {
label: "Manage users",
},
@@ -2293,5 +2355,71 @@ export default {
},
},
},
+ engine: {
+ search: "Find a search engine",
+ field: {
+ name: {
+ label: "Name",
+ },
+ short: {
+ label: "Short",
+ },
+ urlTemplate: {
+ label: "URL search template",
+ },
+ description: {
+ label: "Description",
+ },
+ },
+ page: {
+ list: {
+ title: "Search engines",
+ noResults: {
+ title: "There aren't any search engines",
+ action: "Create your first search engine",
+ },
+ },
+ create: {
+ title: "New search engine",
+ notification: {
+ success: {
+ title: "Search engine created",
+ message: "The search engine was created successfully",
+ },
+ error: {
+ title: "Search engine not created",
+ message: "The search engine could not be created",
+ },
+ },
+ },
+ edit: {
+ title: "Edit search engine",
+ notification: {
+ success: {
+ title: "Changes applied successfully",
+ message: "The search engine was saved successfully",
+ },
+ error: {
+ title: "Unable to apply changes",
+ message: "The search engine could not be saved",
+ },
+ },
+ },
+ delete: {
+ title: "Delete search engine",
+ message: "Are you sure you want to delete the search engine '{name}'?",
+ notification: {
+ success: {
+ title: "Search engine deleted",
+ message: "The search engine was deleted successfully",
+ },
+ error: {
+ title: "Search engine not deleted",
+ message: "The search engine could not be deleted",
+ },
+ },
+ },
+ },
+ },
},
} as const;
diff --git a/packages/ui/package.json b/packages/ui/package.json
index 6b3e210c5..a03bf9ebf 100644
--- a/packages/ui/package.json
+++ b/packages/ui/package.json
@@ -28,12 +28,12 @@
"@homarr/log": "workspace:^0.1.0",
"@homarr/translation": "workspace:^0.1.0",
"@homarr/validation": "workspace:^0.1.0",
- "@mantine/core": "^7.13.0",
- "@mantine/dates": "^7.13.0",
- "@mantine/hooks": "^7.13.0",
- "@tabler/icons-react": "^3.18.0",
+ "@mantine/core": "^7.13.2",
+ "@mantine/dates": "^7.13.2",
+ "@mantine/hooks": "^7.13.2",
+ "@tabler/icons-react": "^3.19.0",
"mantine-react-table": "2.0.0-beta.6",
- "next": "^14.2.13",
+ "next": "^14.2.14",
"react": "^18.3.1"
},
"devDependencies": {
diff --git a/packages/validation/src/app.ts b/packages/validation/src/app.ts
index db3d94d59..6ac45ac35 100644
--- a/packages/validation/src/app.ts
+++ b/packages/validation/src/app.ts
@@ -9,10 +9,7 @@ const manageAppSchema = z.object({
const editAppSchema = manageAppSchema.and(z.object({ id: z.string() }));
-const byIdSchema = z.object({ id: z.string() });
-
export const appSchemas = {
manage: manageAppSchema,
edit: editAppSchema,
- byId: byIdSchema,
};
diff --git a/packages/validation/src/common.ts b/packages/validation/src/common.ts
new file mode 100644
index 000000000..68506df63
--- /dev/null
+++ b/packages/validation/src/common.ts
@@ -0,0 +1,22 @@
+import { z } from "zod";
+
+const paginatedSchema = z.object({
+ search: z.string().optional(),
+ pageSize: z.number().int().positive().default(10),
+ page: z.number().int().positive().default(1),
+});
+
+export const byIdSchema = z.object({
+ id: z.string(),
+});
+
+const searchSchema = z.object({
+ query: z.string(),
+ limit: z.number().int().positive().default(10),
+});
+
+export const commonSchemas = {
+ paginated: paginatedSchema,
+ byId: byIdSchema,
+ search: searchSchema,
+};
diff --git a/packages/validation/src/form/i18n.ts b/packages/validation/src/form/i18n.ts
index c0577248d..c057fad57 100644
--- a/packages/validation/src/form/i18n.ts
+++ b/packages/validation/src/form/i18n.ts
@@ -48,7 +48,7 @@ const handleStringError = (issue: z.ZodInvalidStringIssue) => {
}
return {
- key: "errors.invalid_string.includes",
+ key: "errors.string.includes",
params: {
includes: issue.validation.includes,
},
diff --git a/packages/validation/src/group.ts b/packages/validation/src/group.ts
index da053380f..f30898f95 100644
--- a/packages/validation/src/group.ts
+++ b/packages/validation/src/group.ts
@@ -2,18 +2,9 @@ import { z } from "zod";
import { groupPermissionKeys } from "@homarr/definitions";
+import { byIdSchema } from "./common";
import { zodEnumFromArray } from "./enums";
-const paginatedSchema = z.object({
- search: z.string().optional(),
- pageSize: z.number().int().positive().default(10),
- page: z.number().int().positive().default(1),
-});
-
-const byIdSchema = z.object({
- id: z.string(),
-});
-
const createSchema = z.object({
name: z.string().max(64),
});
@@ -28,8 +19,6 @@ const savePermissionsSchema = z.object({
const groupUserSchema = z.object({ groupId: z.string(), userId: z.string() });
export const groupSchemas = {
- paginated: paginatedSchema,
- byId: byIdSchema,
create: createSchema,
update: updateSchema,
savePermissions: savePermissionsSchema,
diff --git a/packages/validation/src/index.ts b/packages/validation/src/index.ts
index b03232328..2cd11284d 100644
--- a/packages/validation/src/index.ts
+++ b/packages/validation/src/index.ts
@@ -1,9 +1,11 @@
import { appSchemas } from "./app";
import { boardSchemas } from "./board";
+import { commonSchemas } from "./common";
import { groupSchemas } from "./group";
import { iconsSchemas } from "./icons";
import { integrationSchemas } from "./integration";
import { locationSchemas } from "./location";
+import { searchEngineSchemas } from "./search-engine";
import { userSchemas } from "./user";
import { widgetSchemas } from "./widgets";
@@ -16,15 +18,17 @@ export const validation = {
widget: widgetSchemas,
location: locationSchemas,
icons: iconsSchemas,
+ searchEngine: searchEngineSchemas,
+ common: commonSchemas,
};
+export { oldmarrImportConfigurationSchema, superRefineJsonImportFile } from "./board";
+export type { OldmarrImportConfiguration } from "./board";
export {
createSectionSchema,
- sharedItemSchema,
itemAdvancedOptionsSchema,
- type BoardItemIntegration,
+ sharedItemSchema,
type BoardItemAdvancedOptions,
+ type BoardItemIntegration,
} from "./shared";
export { passwordRequirements } from "./user";
-export { oldmarrImportConfigurationSchema, superRefineJsonImportFile } from "./board";
-export type { OldmarrImportConfiguration } from "./board";
diff --git a/packages/validation/src/search-engine.ts b/packages/validation/src/search-engine.ts
new file mode 100644
index 000000000..ab5f4823e
--- /dev/null
+++ b/packages/validation/src/search-engine.ts
@@ -0,0 +1,20 @@
+import { z } from "zod";
+
+const manageSearchEngineSchema = z.object({
+ name: z.string().min(1).max(64),
+ short: z.string().min(1).max(8),
+ iconUrl: z.string().min(1),
+ urlTemplate: z.string().min(1).startsWith("http").includes("%s"),
+ description: z.string().max(512).nullable(),
+});
+
+const editSearchEngineSchema = manageSearchEngineSchema
+ .extend({
+ id: z.string(),
+ })
+ .omit({ short: true });
+
+export const searchEngineSchemas = {
+ manage: manageSearchEngineSchema,
+ edit: editSearchEngineSchema,
+};
diff --git a/packages/widgets/package.json b/packages/widgets/package.json
index 71440dcee..a03442a81 100644
--- a/packages/widgets/package.json
+++ b/packages/widgets/package.json
@@ -38,28 +38,28 @@
"@homarr/translation": "workspace:^0.1.0",
"@homarr/ui": "workspace:^0.1.0",
"@homarr/validation": "workspace:^0.1.0",
- "@mantine/core": "^7.13.0",
- "@mantine/hooks": "^7.13.0",
- "@tabler/icons-react": "^3.18.0",
- "@tiptap/extension-color": "2.7.4",
- "@tiptap/extension-highlight": "2.7.4",
- "@tiptap/extension-image": "2.7.4",
- "@tiptap/extension-link": "^2.7.4",
- "@tiptap/extension-table": "2.7.4",
- "@tiptap/extension-table-cell": "2.7.4",
- "@tiptap/extension-table-header": "2.7.4",
- "@tiptap/extension-table-row": "2.7.4",
- "@tiptap/extension-task-item": "2.7.4",
- "@tiptap/extension-task-list": "2.7.4",
- "@tiptap/extension-text-align": "2.7.4",
- "@tiptap/extension-text-style": "2.7.4",
- "@tiptap/extension-underline": "2.7.4",
- "@tiptap/react": "^2.7.4",
- "@tiptap/starter-kit": "^2.7.4",
+ "@mantine/core": "^7.13.2",
+ "@mantine/hooks": "^7.13.2",
+ "@tabler/icons-react": "^3.19.0",
+ "@tiptap/extension-color": "2.8.0",
+ "@tiptap/extension-highlight": "2.8.0",
+ "@tiptap/extension-image": "2.8.0",
+ "@tiptap/extension-link": "^2.8.0",
+ "@tiptap/extension-table": "2.8.0",
+ "@tiptap/extension-table-cell": "2.8.0",
+ "@tiptap/extension-table-header": "2.8.0",
+ "@tiptap/extension-table-row": "2.8.0",
+ "@tiptap/extension-task-item": "2.8.0",
+ "@tiptap/extension-task-list": "2.8.0",
+ "@tiptap/extension-text-align": "2.8.0",
+ "@tiptap/extension-text-style": "2.8.0",
+ "@tiptap/extension-underline": "2.8.0",
+ "@tiptap/react": "^2.8.0",
+ "@tiptap/starter-kit": "^2.8.0",
"clsx": "^2.1.1",
"dayjs": "^1.11.13",
"mantine-react-table": "2.0.0-beta.6",
- "next": "^14.2.13",
+ "next": "^14.2.14",
"react": "^18.3.1",
"video.js": "^8.17.4"
},
diff --git a/packages/widgets/src/health-monitoring/component.tsx b/packages/widgets/src/health-monitoring/component.tsx
new file mode 100644
index 000000000..5bea4996a
--- /dev/null
+++ b/packages/widgets/src/health-monitoring/component.tsx
@@ -0,0 +1,359 @@
+"use client";
+
+import {
+ Avatar,
+ Box,
+ Card,
+ Center,
+ Divider,
+ Flex,
+ Group,
+ Indicator,
+ List,
+ Modal,
+ Progress,
+ RingProgress,
+ Stack,
+ Text,
+ Tooltip,
+} from "@mantine/core";
+import { useDisclosure, useElementSize, useListState } from "@mantine/hooks";
+import {
+ IconBrain,
+ IconClock,
+ IconCpu,
+ IconCpu2,
+ IconFileReport,
+ IconInfoCircle,
+ IconServer,
+ IconTemperature,
+ IconVersions,
+} from "@tabler/icons-react";
+
+import type { TranslationFunction } from "@homarr/translation";
+import { useI18n } from "@homarr/translation/client";
+
+import type { WidgetComponentProps } from "../definition";
+import { NoIntegrationSelectedError } from "../errors";
+
+export default function HealthMonitoringWidget({
+ options,
+ integrationIds,
+ serverData,
+}: WidgetComponentProps<"healthMonitoring">) {
+ const t = useI18n();
+ const [healthData] = useListState(serverData?.initialData ?? []);
+ const [opened, { open, close }] = useDisclosure(false);
+
+ if (integrationIds.length === 0) {
+ throw new NoIntegrationSelectedError();
+ }
+ return (
+
+ {healthData.map(({ integrationId, integrationName, healthInfo }) => {
+ const memoryUsage = formatMemoryUsage(healthInfo.memAvailable, healthInfo.memUsed);
+ const disksData = matchFileSystemAndSmart(healthInfo.fileSystem, healthInfo.smart);
+ const { ref, width } = useElementSize();
+ const ringSize = width * 0.95;
+ const ringThickness = width / 10;
+ const progressSize = width * 0.2;
+
+ return (
+
+
+
+
+ 0 ? "blue" : "gray"}
+ position="top-end"
+ size="4cqmin"
+ label={healthInfo.availablePkgUpdates > 0 ? healthInfo.availablePkgUpdates : undefined}
+ disabled={!healthInfo.rebootRequired && healthInfo.availablePkgUpdates === 0}
+ >
+
+
+
+
+
+
+
+
+ }
+ >
+ {t("widget.healthMonitoring.popover.processor")} {healthInfo.cpuModelName}
+
+ }
+ >
+ {t("widget.healthMonitoring.popover.memory")} {memoryUsage.memTotal.GB}GiB -{" "}
+ {t("widget.healthMonitoring.popover.memAvailable")} {memoryUsage.memFree.GB}GiB (
+ {memoryUsage.memFree.percent}%)
+
+ }
+ >
+ {t("widget.healthMonitoring.popover.version")} {healthInfo.version}
+
+ }
+ >
+ {formatUptime(healthInfo.uptime, t)}
+
+ }
+ >
+ {t("widget.healthMonitoring.popover.loadAverage")}
+
+
}>
+
+ {t("widget.healthMonitoring.popover.minute")} {healthInfo.loadAverage["1min"]}
+
+
+ {t("widget.healthMonitoring.popover.minutes", { count: 5 })}{" "}
+ {healthInfo.loadAverage["5min"]}
+
+
+ {t("widget.healthMonitoring.popover.minutes", { count: 15 })}{" "}
+ {healthInfo.loadAverage["15min"]}
+
+
+
+
+
+
+ {options.cpu && (
+
+
+ {`${healthInfo.cpuUtilization.toFixed(2)}%`}
+
+
+ }
+ sections={[
+ {
+ value: Number(healthInfo.cpuUtilization.toFixed(2)),
+ color: progressColor(Number(healthInfo.cpuUtilization.toFixed(2))),
+ },
+ ]}
+ />
+
+ )}
+ {healthInfo.cpuTemp && options.cpu && (
+
+
+
+ {options.fahrenheit
+ ? `${(healthInfo.cpuTemp * 1.8 + 32).toFixed(1)}°F`
+ : `${healthInfo.cpuTemp}°C`}
+
+
+
+ }
+ sections={[
+ {
+ value: healthInfo.cpuTemp,
+ color: progressColor(healthInfo.cpuTemp),
+ },
+ ]}
+ />
+
+ )}
+ {options.memory && (
+
+
+
+ {memoryUsage.memUsed.GB}GiB
+
+
+
+ }
+ sections={[
+ {
+ value: Number(memoryUsage.memUsed.percent),
+ color: progressColor(Number(memoryUsage.memUsed.percent)),
+ tooltip: `${memoryUsage.memUsed.percent}%`,
+ },
+ ]}
+ />
+
+ )}
+
+
+ {options.fileSystem &&
+ disksData.map((disk) => {
+ return (
+
+
+
+
+
+ {disk.deviceName}
+
+
+
+
+
+ {options.fahrenheit
+ ? `${(disk.temperature * 1.8 + 32).toFixed(1)}°F`
+ : `${disk.temperature}°C`}
+
+
+
+
+
+ {disk.overallStatus}
+
+
+
+
+
+
+
+ {t("widget.healthMonitoring.popover.used")}
+
+
+
+
+ = 1
+ ? `${(Number(disk.available) / 1024 ** 4).toFixed(2)} TiB`
+ : `${(Number(disk.available) / 1024 ** 3).toFixed(2)} GiB`
+ }
+ >
+
+
+ {t("widget.healthMonitoring.popover.diskAvailable")}
+
+
+
+
+
+ );
+ })}
+
+ );
+ })}
+
+ );
+}
+
+export const formatUptime = (uptimeInSeconds: number, t: TranslationFunction) => {
+ const days = Math.floor(uptimeInSeconds / (60 * 60 * 24));
+ const remainingHours = Math.floor((uptimeInSeconds % (60 * 60 * 24)) / 3600);
+ return t("widget.healthMonitoring.popover.uptime", { days, hours: remainingHours });
+};
+
+export const progressColor = (percentage: number) => {
+ if (percentage < 40) return "green";
+ else if (percentage < 60) return "yellow";
+ else if (percentage < 90) return "orange";
+ else return "red";
+};
+
+interface FileSystem {
+ deviceName: string;
+ used: string;
+ available: string;
+ percentage: number;
+}
+
+interface SmartData {
+ deviceName: string;
+ temperature: number;
+ overallStatus: string;
+}
+
+export const matchFileSystemAndSmart = (fileSystems: FileSystem[], smartData: SmartData[]) => {
+ return fileSystems.map((fileSystem) => {
+ const baseDeviceName = fileSystem.deviceName.replace(/[0-9]+$/, "");
+ const smartDisk = smartData.find((smart) => smart.deviceName === baseDeviceName);
+
+ return {
+ deviceName: smartDisk?.deviceName ?? fileSystem.deviceName,
+ used: fileSystem.used,
+ available: fileSystem.available,
+ percentage: fileSystem.percentage,
+ temperature: smartDisk?.temperature ?? 0,
+ overallStatus: smartDisk?.overallStatus ?? "",
+ };
+ });
+};
+
+export const formatMemoryUsage = (memFree: string, memUsed: string) => {
+ const memFreeBytes = Number(memFree);
+ const memUsedBytes = Number(memUsed);
+ const totalMemory = memFreeBytes + memUsedBytes;
+ const memFreeGB = (memFreeBytes / 1024 ** 3).toFixed(2);
+ const memUsedGB = (memUsedBytes / 1024 ** 3).toFixed(2);
+ const memFreePercent = Math.round((memFreeBytes / totalMemory) * 100);
+ const memUsedPercent = Math.round((memUsedBytes / totalMemory) * 100);
+ const memTotalGB = (totalMemory / 1024 ** 3).toFixed(2);
+
+ return {
+ memFree: { percent: memFreePercent, GB: memFreeGB },
+ memUsed: { percent: memUsedPercent, GB: memUsedGB },
+ memTotal: { GB: memTotalGB },
+ };
+};
diff --git a/packages/widgets/src/health-monitoring/index.ts b/packages/widgets/src/health-monitoring/index.ts
new file mode 100644
index 000000000..3e7f9c548
--- /dev/null
+++ b/packages/widgets/src/health-monitoring/index.ts
@@ -0,0 +1,31 @@
+import { IconHeartRateMonitor, IconServerOff } from "@tabler/icons-react";
+
+import { createWidgetDefinition } from "../definition";
+import { optionsBuilder } from "../options";
+
+export const { definition, componentLoader, serverDataLoader } = createWidgetDefinition("healthMonitoring", {
+ icon: IconHeartRateMonitor,
+ options: optionsBuilder.from((factory) => ({
+ fahrenheit: factory.switch({
+ defaultValue: false,
+ }),
+ cpu: factory.switch({
+ defaultValue: true,
+ }),
+ memory: factory.switch({
+ defaultValue: true,
+ }),
+ fileSystem: factory.switch({
+ defaultValue: true,
+ }),
+ })),
+ supportedIntegrations: ["openmediavault"],
+ errors: {
+ INTERNAL_SERVER_ERROR: {
+ icon: IconServerOff,
+ message: (t) => t("widget.healthMonitoring.error.internalServerError"),
+ },
+ },
+})
+ .withServerData(() => import("./serverData"))
+ .withDynamicImport(() => import("./component"));
diff --git a/packages/widgets/src/health-monitoring/serverData.ts b/packages/widgets/src/health-monitoring/serverData.ts
new file mode 100644
index 000000000..3e68f587a
--- /dev/null
+++ b/packages/widgets/src/health-monitoring/serverData.ts
@@ -0,0 +1,27 @@
+"use server";
+
+import { api } from "@homarr/api/server";
+
+import type { WidgetProps } from "../definition";
+
+export default async function getServerDataAsync({ integrationIds }: WidgetProps<"healthMonitoring">) {
+ if (integrationIds.length === 0) {
+ return {
+ initialData: [],
+ };
+ }
+
+ try {
+ const currentHealthInfo = await api.widget.healthMonitoring.getHealthStatus({
+ integrationIds,
+ });
+
+ return {
+ initialData: currentHealthInfo.filter((health) => health !== null),
+ };
+ } catch {
+ return {
+ initialData: [],
+ };
+ }
+}
diff --git a/packages/widgets/src/index.tsx b/packages/widgets/src/index.tsx
index 842f201ba..645ba1df5 100644
--- a/packages/widgets/src/index.tsx
+++ b/packages/widgets/src/index.tsx
@@ -12,6 +12,7 @@ import type { WidgetComponentProps } from "./definition";
import * as dnsHoleControls from "./dns-hole/controls";
import * as dnsHoleSummary from "./dns-hole/summary";
import * as downloads from "./downloads";
+import * as healthMonitoring from "./health-monitoring";
import * as iframe from "./iframe";
import type { WidgetImportRecord } from "./import";
import * as indexerManager from "./indexer-manager";
@@ -51,6 +52,7 @@ export const widgetImports = {
"mediaRequests-requestStats": mediaRequestsStats,
rssFeed,
indexerManager,
+ healthMonitoring,
} satisfies WidgetImportRecord;
export type WidgetImports = typeof widgetImports;
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 8640ad040..eb3425e52 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -17,17 +17,17 @@ importers:
specifier: workspace:^0.1.0
version: link:tooling/prettier
'@turbo/gen':
- specifier: ^2.1.2
- version: 2.1.2(@types/node@20.16.10)(typescript@5.6.2)
+ specifier: ^2.1.3
+ version: 2.1.3(@types/node@20.16.10)(typescript@5.6.2)
'@vitejs/plugin-react':
- specifier: ^4.3.1
- version: 4.3.1(vite@5.4.5(@types/node@20.16.10)(sass@1.79.3)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))
+ specifier: ^4.3.2
+ version: 4.3.2(vite@5.4.5(@types/node@20.16.10)(sass@1.79.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))
'@vitest/coverage-v8':
- specifier: ^2.1.1
- version: 2.1.1(vitest@2.1.1(@types/node@20.16.10)(@vitest/ui@2.1.1)(jsdom@25.0.1)(sass@1.79.3)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))
+ specifier: ^2.1.2
+ version: 2.1.2(vitest@2.1.2)
'@vitest/ui':
- specifier: ^2.1.1
- version: 2.1.1(vitest@2.1.1)
+ specifier: ^2.1.2
+ version: 2.1.2(vitest@2.1.2)
cross-env:
specifier: ^7.0.3
version: 7.0.3
@@ -38,20 +38,20 @@ importers:
specifier: ^3.3.3
version: 3.3.3
testcontainers:
- specifier: ^10.13.1
- version: 10.13.1
+ specifier: ^10.13.2
+ version: 10.13.2
turbo:
- specifier: ^2.1.2
- version: 2.1.2
+ specifier: ^2.1.3
+ version: 2.1.3
typescript:
specifier: ^5.6.2
version: 5.6.2
vite-tsconfig-paths:
specifier: ^5.0.1
- version: 5.0.1(typescript@5.6.2)(vite@5.4.5(@types/node@20.16.10)(sass@1.79.3)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))
+ version: 5.0.1(typescript@5.6.2)(vite@5.4.5(@types/node@20.16.10)(sass@1.79.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))
vitest:
- specifier: ^2.1.1
- version: 2.1.1(@types/node@20.16.10)(@vitest/ui@2.1.1)(jsdom@25.0.1)(sass@1.79.3)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)
+ specifier: ^2.1.2
+ version: 2.1.2(@types/node@20.16.10)(@vitest/ui@2.1.2)(jsdom@25.0.1)(sass@1.79.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)
apps/nextjs:
dependencies:
@@ -100,6 +100,9 @@ importers:
'@homarr/old-schema':
specifier: workspace:^0.1.0
version: link:../../packages/old-schema
+ '@homarr/redis':
+ specifier: workspace:^0.1.0
+ version: link:../../packages/redis
'@homarr/server-settings':
specifier: workspace:^0.1.0
version: link:../../packages/server-settings
@@ -119,50 +122,50 @@ importers:
specifier: workspace:^0.1.0
version: link:../../packages/widgets
'@mantine/colors-generator':
- specifier: ^7.13.0
- version: 7.13.0(chroma-js@3.1.1)
+ specifier: ^7.13.2
+ version: 7.13.2(chroma-js@3.1.1)
'@mantine/core':
- specifier: ^7.13.0
- version: 7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: ^7.13.2
+ version: 7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mantine/hooks':
- specifier: ^7.13.0
- version: 7.13.0(react@18.3.1)
+ specifier: ^7.13.2
+ version: 7.13.2(react@18.3.1)
'@mantine/modals':
- specifier: ^7.13.0
- version: 7.13.0(@mantine/core@7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.0(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: ^7.13.2
+ version: 7.13.2(@mantine/core@7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mantine/tiptap':
- specifier: ^7.13.0
- version: 7.13.0(@mantine/core@7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.0(react@18.3.1))(@tiptap/extension-link@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4))(@tiptap/react@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: ^7.13.2
+ version: 7.13.2(@mantine/core@7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.2(react@18.3.1))(@tiptap/extension-link@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0))(@tiptap/react@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@million/lint':
- specifier: 1.0.0-rc.84
- version: 1.0.0-rc.84(rollup@4.21.3)(webpack-sources@3.2.3)
+ specifier: 1.0.8
+ version: 1.0.8(rollup@4.21.3)(webpack-sources@3.2.3)
'@t3-oss/env-nextjs':
specifier: ^0.11.1
version: 0.11.1(typescript@5.6.2)(zod@3.23.8)
'@tabler/icons-react':
- specifier: ^3.18.0
- version: 3.18.0(react@18.3.1)
+ specifier: ^3.19.0
+ version: 3.19.0(react@18.3.1)
'@tanstack/react-query':
- specifier: ^5.56.2
- version: 5.56.2(react@18.3.1)
+ specifier: ^5.59.0
+ version: 5.59.0(react@18.3.1)
'@tanstack/react-query-devtools':
- specifier: ^5.58.0
- version: 5.58.0(@tanstack/react-query@5.56.2(react@18.3.1))(react@18.3.1)
+ specifier: ^5.59.0
+ version: 5.59.0(@tanstack/react-query@5.59.0(react@18.3.1))(react@18.3.1)
'@tanstack/react-query-next-experimental':
- specifier: 5.56.2
- version: 5.56.2(@tanstack/react-query@5.56.2(react@18.3.1))(next@14.2.13(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.3))(react@18.3.1)
+ specifier: 5.59.0
+ version: 5.59.0(@tanstack/react-query@5.59.0(react@18.3.1))(next@14.2.14(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.4))(react@18.3.1)
'@trpc/client':
specifier: next
- version: 11.0.0-rc.544(@trpc/server@11.0.0-rc.544)
+ version: 11.0.0-rc.553(@trpc/server@11.0.0-rc.553)
'@trpc/next':
specifier: next
- version: 11.0.0-rc.544(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.544(@trpc/server@11.0.0-rc.544))(@trpc/react-query@11.0.0-rc.544(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.544(@trpc/server@11.0.0-rc.544))(@trpc/server@11.0.0-rc.544)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.544)(next@14.2.13(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 11.0.0-rc.553(@tanstack/react-query@5.59.0(react@18.3.1))(@trpc/client@11.0.0-rc.553(@trpc/server@11.0.0-rc.553))(@trpc/react-query@11.0.0-rc.553(@tanstack/react-query@5.59.0(react@18.3.1))(@trpc/client@11.0.0-rc.553(@trpc/server@11.0.0-rc.553))(@trpc/server@11.0.0-rc.553)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.553)(next@14.2.14(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.4))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@trpc/react-query':
specifier: next
- version: 11.0.0-rc.544(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.544(@trpc/server@11.0.0-rc.544))(@trpc/server@11.0.0-rc.544)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 11.0.0-rc.553(@tanstack/react-query@5.59.0(react@18.3.1))(@trpc/client@11.0.0-rc.553(@trpc/server@11.0.0-rc.553))(@trpc/server@11.0.0-rc.553)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@trpc/server':
specifier: next
- version: 11.0.0-rc.544
+ version: 11.0.0-rc.553
'@xterm/addon-canvas':
specifier: ^0.7.0
version: 0.7.0(@xterm/xterm@5.5.0)
@@ -192,13 +195,13 @@ importers:
version: 11.0.0
jotai:
specifier: ^2.10.0
- version: 2.10.0(@types/react@18.3.10)(react@18.3.1)
+ version: 2.10.0(@types/react@18.3.11)(react@18.3.1)
mantine-react-table:
specifier: 2.0.0-beta.6
- version: 2.0.0-beta.6(@mantine/core@7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.13.0(@mantine/core@7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.0(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.0(react@18.3.1))(@tabler/icons-react@3.18.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 2.0.0-beta.6(@mantine/core@7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.13.2(@mantine/core@7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.2(react@18.3.1))(@tabler/icons-react@3.19.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
next:
- specifier: ^14.2.13
- version: 14.2.13(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.3)
+ specifier: ^14.2.14
+ version: 14.2.14(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.4)
postcss-preset-mantine:
specifier: ^1.17.0
version: 1.17.0(postcss@8.4.47)
@@ -218,14 +221,14 @@ importers:
specifier: ^0.14.1
version: 0.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
sass:
- specifier: ^1.79.3
- version: 1.79.3
+ specifier: ^1.79.4
+ version: 1.79.4
superjson:
specifier: 2.2.1
version: 2.2.1
swagger-ui-react:
specifier: ^5.17.14
- version: 5.17.14(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 5.17.14(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
use-deep-compare-effect:
specifier: ^1.8.1
version: 1.8.1(react@18.3.1)
@@ -249,8 +252,8 @@ importers:
specifier: ^1.26.4
version: 1.26.4
'@types/react':
- specifier: ^18.3.10
- version: 18.3.10
+ specifier: ^18.3.11
+ version: 18.3.11
'@types/react-dom':
specifier: ^18.3.0
version: 18.3.0
@@ -502,19 +505,19 @@ importers:
version: link:../validation
'@trpc/client':
specifier: next
- version: 11.0.0-rc.544(@trpc/server@11.0.0-rc.544)
+ version: 11.0.0-rc.553(@trpc/server@11.0.0-rc.553)
'@trpc/react-query':
specifier: next
- version: 11.0.0-rc.544(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.544(@trpc/server@11.0.0-rc.544))(@trpc/server@11.0.0-rc.544)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 11.0.0-rc.553(@tanstack/react-query@5.59.0(react@18.3.1))(@trpc/client@11.0.0-rc.553(@trpc/server@11.0.0-rc.553))(@trpc/server@11.0.0-rc.553)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@trpc/server':
specifier: next
- version: 11.0.0-rc.544
+ version: 11.0.0-rc.553
dockerode:
specifier: ^4.0.2
version: 4.0.2
next:
- specifier: ^14.2.13
- version: 14.2.13(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.3)
+ specifier: ^14.2.14
+ version: 14.2.14(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.4)
react:
specifier: ^18.3.1
version: 18.3.1
@@ -523,7 +526,7 @@ importers:
version: 2.2.1
trpc-swagger:
specifier: ^1.2.6
- version: 1.2.6(patch_hash=6s72z7zx33c52iesv5sewipn6i)(@trpc/client@11.0.0-rc.544(@trpc/server@11.0.0-rc.544))(@trpc/server@11.0.0-rc.544)(zod@3.23.8)
+ version: 1.2.6(patch_hash=6s72z7zx33c52iesv5sewipn6i)(@trpc/client@11.0.0-rc.553(@trpc/server@11.0.0-rc.553))(@trpc/server@11.0.0-rc.553)(zod@3.23.8)
devDependencies:
'@homarr/eslint-config':
specifier: workspace:^0.2.0
@@ -550,11 +553,11 @@ importers:
packages/auth:
dependencies:
'@auth/core':
- specifier: ^0.35.2
- version: 0.35.2
+ specifier: ^0.35.3
+ version: 0.35.3
'@auth/drizzle-adapter':
- specifier: ^1.5.2
- version: 1.5.2
+ specifier: ^1.5.3
+ version: 1.5.3
'@homarr/common':
specifier: workspace:^0.1.0
version: link:../common
@@ -580,14 +583,14 @@ importers:
specifier: ^0.9.1
version: 0.9.1
ldapts:
- specifier: 7.2.0
- version: 7.2.0
+ specifier: 7.2.1
+ version: 7.2.1
next:
- specifier: ^14.2.13
- version: 14.2.13(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.3)
+ specifier: ^14.2.14
+ version: 14.2.14(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.4)
next-auth:
- specifier: 5.0.0-beta.21
- version: 5.0.0-beta.21(next@14.2.13(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.3))(react@18.3.1)
+ specifier: 5.0.0-beta.22
+ version: 5.0.0-beta.22(next@14.2.14(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.4))(react@18.3.1)
react:
specifier: ^18.3.1
version: 18.3.1
@@ -656,18 +659,21 @@ importers:
packages/common:
dependencies:
+ '@homarr/log':
+ specifier: workspace:^0.1.0
+ version: link:../log
dayjs:
specifier: ^1.11.13
version: 1.11.13
next:
- specifier: ^14.2.13
- version: 14.2.13(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.3)
+ specifier: ^14.2.14
+ version: 14.2.14(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.4)
react:
specifier: ^18.3.1
version: 18.3.1
tldts:
- specifier: ^6.1.48
- version: 6.1.48
+ specifier: ^6.1.50
+ version: 6.1.50
devDependencies:
'@homarr/eslint-config':
specifier: workspace:^0.2.0
@@ -827,8 +833,8 @@ importers:
packages/db:
dependencies:
'@auth/core':
- specifier: ^0.35.2
- version: 0.35.2
+ specifier: ^0.35.3
+ version: 0.35.3
'@homarr/common':
specifier: workspace:^0.1.0
version: link:../common
@@ -842,8 +848,8 @@ importers:
specifier: ^2.2.2
version: 2.2.2
'@testcontainers/mysql':
- specifier: ^10.13.1
- version: 10.13.1
+ specifier: ^10.13.2
+ version: 10.13.2
better-sqlite3:
specifier: ^11.3.0
version: 11.3.0
@@ -855,7 +861,7 @@ importers:
version: 0.24.2
drizzle-orm:
specifier: ^0.33.0
- version: 0.33.0(@types/better-sqlite3@7.6.11)(@types/react@18.3.10)(better-sqlite3@11.3.0)(mysql2@3.11.3)(react@18.3.1)
+ version: 0.33.0(@types/better-sqlite3@7.6.11)(@types/react@18.3.11)(better-sqlite3@11.3.0)(mysql2@3.11.3)(react@18.3.1)
mysql2:
specifier: 3.11.3
version: 3.11.3
@@ -916,8 +922,8 @@ importers:
specifier: workspace:^0.1.0
version: link:../validation
'@mantine/form':
- specifier: ^7.13.0
- version: 7.13.0(react@18.3.1)
+ specifier: ^7.13.2
+ version: 7.13.2(react@18.3.1)
devDependencies:
'@homarr/eslint-config':
specifier: workspace:^0.2.0
@@ -1046,11 +1052,11 @@ importers:
specifier: workspace:^0.1.0
version: link:../ui
'@mantine/core':
- specifier: ^7.13.0
- version: 7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: ^7.13.2
+ version: 7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mantine/hooks':
- specifier: ^7.13.0
- version: 7.13.0(react@18.3.1)
+ specifier: ^7.13.2
+ version: 7.13.2(react@18.3.1)
react:
specifier: ^18.3.1
version: 18.3.1
@@ -1101,17 +1107,17 @@ importers:
specifier: workspace:^0.1.0
version: link:../validation
'@mantine/core':
- specifier: ^7.13.0
- version: 7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: ^7.13.2
+ version: 7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@tabler/icons-react':
- specifier: ^3.18.0
- version: 3.18.0(react@18.3.1)
+ specifier: ^3.19.0
+ version: 3.19.0(react@18.3.1)
dayjs:
specifier: ^1.11.13
version: 1.11.13
next:
- specifier: ^14.2.13
- version: 14.2.13(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.3)
+ specifier: ^14.2.14
+ version: 14.2.14(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.4)
react:
specifier: ^18.3.1
version: 18.3.1
@@ -1138,11 +1144,11 @@ importers:
specifier: workspace:^0.1.0
version: link:../ui
'@mantine/notifications':
- specifier: ^7.13.0
- version: 7.13.0(@mantine/core@7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.0(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: ^7.13.2
+ version: 7.13.2(@mantine/core@7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@tabler/icons-react':
- specifier: ^3.18.0
- version: 3.18.0(react@18.3.1)
+ specifier: ^3.19.0
+ version: 3.19.0(react@18.3.1)
devDependencies:
'@homarr/eslint-config':
specifier: workspace:^0.2.0
@@ -1329,23 +1335,23 @@ importers:
specifier: workspace:^0.1.0
version: link:../ui
'@mantine/core':
- specifier: ^7.13.0
- version: 7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: ^7.13.2
+ version: 7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mantine/hooks':
- specifier: ^7.13.0
- version: 7.13.0(react@18.3.1)
+ specifier: ^7.13.2
+ version: 7.13.2(react@18.3.1)
'@mantine/spotlight':
- specifier: ^7.13.0
- version: 7.13.0(@mantine/core@7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.0(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: ^7.13.2
+ version: 7.13.2(@mantine/core@7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@tabler/icons-react':
- specifier: ^3.18.0
- version: 3.18.0(react@18.3.1)
+ specifier: ^3.19.0
+ version: 3.19.0(react@18.3.1)
jotai:
specifier: ^2.10.0
- version: 2.10.0(@types/react@18.3.10)(react@18.3.1)
+ version: 2.10.0(@types/react@18.3.11)(react@18.3.1)
next:
- specifier: ^14.2.13
- version: 14.2.13(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.3)
+ specifier: ^14.2.14
+ version: 14.2.14(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.4)
react:
specifier: ^18.3.1
version: 18.3.1
@@ -1376,7 +1382,7 @@ importers:
version: 1.11.13
mantine-react-table:
specifier: 2.0.0-beta.6
- version: 2.0.0-beta.6(@mantine/core@7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.13.0(@mantine/core@7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.0(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.0(react@18.3.1))(@tabler/icons-react@3.18.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 2.0.0-beta.6(@mantine/core@7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.13.2(@mantine/core@7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.2(react@18.3.1))(@tabler/icons-react@3.19.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
next-international:
specifier: ^1.2.4
version: 1.2.4
@@ -1415,23 +1421,23 @@ importers:
specifier: workspace:^0.1.0
version: link:../validation
'@mantine/core':
- specifier: ^7.13.0
- version: 7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: ^7.13.2
+ version: 7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mantine/dates':
- specifier: ^7.13.0
- version: 7.13.0(@mantine/core@7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.0(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: ^7.13.2
+ version: 7.13.2(@mantine/core@7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mantine/hooks':
- specifier: ^7.13.0
- version: 7.13.0(react@18.3.1)
+ specifier: ^7.13.2
+ version: 7.13.2(react@18.3.1)
'@tabler/icons-react':
- specifier: ^3.18.0
- version: 3.18.0(react@18.3.1)
+ specifier: ^3.19.0
+ version: 3.19.0(react@18.3.1)
mantine-react-table:
specifier: 2.0.0-beta.6
- version: 2.0.0-beta.6(@mantine/core@7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.13.0(@mantine/core@7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.0(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.0(react@18.3.1))(@tabler/icons-react@3.18.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 2.0.0-beta.6(@mantine/core@7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.13.2(@mantine/core@7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.2(react@18.3.1))(@tabler/icons-react@3.19.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
next:
- specifier: ^14.2.13
- version: 14.2.13(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.3)
+ specifier: ^14.2.14
+ version: 14.2.14(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.4)
react:
specifier: ^18.3.1
version: 18.3.1
@@ -1537,59 +1543,59 @@ importers:
specifier: workspace:^0.1.0
version: link:../validation
'@mantine/core':
- specifier: ^7.13.0
- version: 7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: ^7.13.2
+ version: 7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mantine/hooks':
- specifier: ^7.13.0
- version: 7.13.0(react@18.3.1)
+ specifier: ^7.13.2
+ version: 7.13.2(react@18.3.1)
'@tabler/icons-react':
- specifier: ^3.18.0
- version: 3.18.0(react@18.3.1)
+ specifier: ^3.19.0
+ version: 3.19.0(react@18.3.1)
'@tiptap/extension-color':
- specifier: 2.7.4
- version: 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/extension-text-style@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4)))
+ specifier: 2.8.0
+ version: 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/extension-text-style@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0)))
'@tiptap/extension-highlight':
- specifier: 2.7.4
- version: 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))
+ specifier: 2.8.0
+ version: 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
'@tiptap/extension-image':
- specifier: 2.7.4
- version: 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))
+ specifier: 2.8.0
+ version: 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
'@tiptap/extension-link':
- specifier: ^2.7.4
- version: 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)
+ specifier: ^2.8.0
+ version: 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)
'@tiptap/extension-table':
- specifier: 2.7.4
- version: 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)
+ specifier: 2.8.0
+ version: 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)
'@tiptap/extension-table-cell':
- specifier: 2.7.4
- version: 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))
+ specifier: 2.8.0
+ version: 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
'@tiptap/extension-table-header':
- specifier: 2.7.4
- version: 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))
+ specifier: 2.8.0
+ version: 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
'@tiptap/extension-table-row':
- specifier: 2.7.4
- version: 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))
+ specifier: 2.8.0
+ version: 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
'@tiptap/extension-task-item':
- specifier: 2.7.4
- version: 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)
+ specifier: 2.8.0
+ version: 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)
'@tiptap/extension-task-list':
- specifier: 2.7.4
- version: 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))
+ specifier: 2.8.0
+ version: 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
'@tiptap/extension-text-align':
- specifier: 2.7.4
- version: 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))
+ specifier: 2.8.0
+ version: 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
'@tiptap/extension-text-style':
- specifier: 2.7.4
- version: 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))
+ specifier: 2.8.0
+ version: 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
'@tiptap/extension-underline':
- specifier: 2.7.4
- version: 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))
+ specifier: 2.8.0
+ version: 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
'@tiptap/react':
- specifier: ^2.7.4
- version: 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: ^2.8.0
+ version: 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@tiptap/starter-kit':
- specifier: ^2.7.4
- version: 2.7.4
+ specifier: ^2.8.0
+ version: 2.8.0(@tiptap/extension-text-style@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0)))
clsx:
specifier: ^2.1.1
version: 2.1.1
@@ -1598,10 +1604,10 @@ importers:
version: 1.11.13
mantine-react-table:
specifier: 2.0.0-beta.6
- version: 2.0.0-beta.6(@mantine/core@7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.13.0(@mantine/core@7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.0(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.0(react@18.3.1))(@tabler/icons-react@3.18.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 2.0.0-beta.6(@mantine/core@7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.13.2(@mantine/core@7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.2(react@18.3.1))(@tabler/icons-react@3.19.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
next:
- specifier: ^14.2.13
- version: 14.2.13(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.3)
+ specifier: ^14.2.14
+ version: 14.2.14(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.4)
react:
specifier: ^18.3.1
version: 18.3.1
@@ -1631,29 +1637,29 @@ importers:
tooling/eslint:
dependencies:
'@next/eslint-plugin-next':
- specifier: ^14.2.13
- version: 14.2.13
+ specifier: ^14.2.14
+ version: 14.2.14
eslint-config-prettier:
specifier: ^9.1.0
version: 9.1.0(eslint@9.11.1)
eslint-config-turbo:
- specifier: ^2.1.2
- version: 2.1.2(eslint@9.11.1)
+ specifier: ^2.1.3
+ version: 2.1.3(eslint@9.11.1)
eslint-plugin-import:
- specifier: ^2.30.0
- version: 2.30.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1)(typescript@5.6.2))(eslint@9.11.1)
+ specifier: ^2.31.0
+ version: 2.31.0(@typescript-eslint/parser@8.8.0(eslint@9.11.1)(typescript@5.6.2))(eslint@9.11.1)
eslint-plugin-jsx-a11y:
specifier: ^6.10.0
version: 6.10.0(eslint@9.11.1)
eslint-plugin-react:
- specifier: ^7.37.0
- version: 7.37.0(eslint@9.11.1)
+ specifier: ^7.37.1
+ version: 7.37.1(eslint@9.11.1)
eslint-plugin-react-hooks:
specifier: ^4.6.2
version: 4.6.2(eslint@9.11.1)
typescript-eslint:
- specifier: ^8.7.0
- version: 8.7.0(eslint@9.11.1)(typescript@5.6.2)
+ specifier: ^8.8.0
+ version: 8.8.0(eslint@9.11.1)(typescript@5.6.2)
devDependencies:
'@homarr/prettier-config':
specifier: workspace:^0.1.0
@@ -1700,8 +1706,8 @@ packages:
resolution: {integrity: sha512-2aDL3WUv8hMJb2L3r/PIQWsTLyq7RQr3v9xD16fiz6O8ys1xEyLhhTOv8gxtZvJiTzjTF5pHoArvRdesGL1DMQ==}
hasBin: true
- '@auth/core@0.35.0':
- resolution: {integrity: sha512-XvMALiYn5ZQd1hVeG1t+jCU89jRrc7ortl/05wkBrPHnRWZScxAK5jKuzBz+AOBQXewDjYcMpzeF5tTqg6rDhQ==}
+ '@auth/core@0.35.3':
+ resolution: {integrity: sha512-g6qfiqU4OtyvIEZ8J7UoIwAxEnNnLJV0/f/DW41U+4G5nhBlaCrnKhawJIJpU0D3uavXLeDT3B0BkjtiimvMDA==}
peerDependencies:
'@simplewebauthn/browser': ^9.0.1
'@simplewebauthn/server': ^9.0.2
@@ -1714,22 +1720,8 @@ packages:
nodemailer:
optional: true
- '@auth/core@0.35.2':
- resolution: {integrity: sha512-4PSrmSkZNMNQEHq86jARBYqls/9G2ECGMJmlazXxkRpZWgtKMUBXF1HUPz82cxy3qFXZ9/HPEiGIEGtIvu4YGQ==}
- peerDependencies:
- '@simplewebauthn/browser': ^9.0.1
- '@simplewebauthn/server': ^9.0.2
- nodemailer: ^6.8.0
- peerDependenciesMeta:
- '@simplewebauthn/browser':
- optional: true
- '@simplewebauthn/server':
- optional: true
- nodemailer:
- optional: true
-
- '@auth/drizzle-adapter@1.5.2':
- resolution: {integrity: sha512-euc74EyFDugdD2hzHlsZHxJ5MaTW/BHZIkrODa1BZ96VjSUAthKQmb5mX7e+Rj6Eb9PfO2OhSnPyxyXNhFkfjw==}
+ '@auth/drizzle-adapter@1.5.3':
+ resolution: {integrity: sha512-VNyYb1hiGtorJhCjShtncjN3TKXxtwxOwphYecq8lZSVuFDLIWHhp4ZbdZDjnmkvEk8G66IpFrYW84qpt+WUIg==}
'@axiomhq/js@1.0.0-rc.3':
resolution: {integrity: sha512-Zm10TczcMLounWqC42nMkXQ7XKLqjzLrd5ia022oBKDUZqAFVg2y9d1quQVNV4FlXyg9MKDdfMjpKQRmzEGaog==}
@@ -1743,10 +1735,6 @@ packages:
resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==}
engines: {node: '>=6.9.0'}
- '@babel/core@7.24.6':
- resolution: {integrity: sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==}
- engines: {node: '>=6.9.0'}
-
'@babel/core@7.25.2':
resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==}
engines: {node: '>=6.9.0'}
@@ -1830,8 +1818,8 @@ packages:
resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==}
engines: {node: '>=6.9.0'}
- '@babel/types@7.24.6':
- resolution: {integrity: sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==}
+ '@babel/types@7.25.2':
+ resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==}
engines: {node: '>=6.9.0'}
'@babel/types@7.25.6':
@@ -2577,71 +2565,71 @@ packages:
'@jridgewell/trace-mapping@0.3.9':
resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
- '@mantine/colors-generator@7.13.0':
- resolution: {integrity: sha512-4GNj7a7B9ATbiXsgAZJ+PdwSnbo3Z2jQwUa33Fkdlj5x6ZKlMWKHWZliio6PpDgH4h+yhc6yH0FfaW66+BOyQw==}
+ '@mantine/colors-generator@7.13.2':
+ resolution: {integrity: sha512-BTm+KVY3F8isr9DA60Fr7IUYxora0hMEyqv0JbWMO65reFFOILtxmbQGF+9Kx5rgNdPTQXnXm8t+lohgW8Kt0Q==}
peerDependencies:
- chroma-js: ^2.4.2
+ chroma-js: '>=2.4.2'
- '@mantine/core@7.13.0':
- resolution: {integrity: sha512-aQpx3Q69ATDhVopBNkWS0sql93ZaPqeA5jTgqU7GxZvJdkpG87vbKYgp4cDV/gqr7BYu4kel0smeHYuPemiZ8Q==}
+ '@mantine/core@7.13.2':
+ resolution: {integrity: sha512-nD8oKIal+KdthqF074+ZG21035QBEAKso2zK9D6zWxRTLVCjLCNSc5JSXrXLrdBTnvPQGY26yunX4+MEPlmrHg==}
peerDependencies:
- '@mantine/hooks': 7.13.0
+ '@mantine/hooks': 7.13.2
react: ^18.2.0
react-dom: ^18.2.0
- '@mantine/dates@7.13.0':
- resolution: {integrity: sha512-fCNS7JPCqnTtFJeGxdl2yFaMxyCP44BP2tYVZYC5KejvhfeA9u8AmtD5FsOnrdjMEnVc1DpLJobrwfmp98Ektg==}
+ '@mantine/dates@7.13.2':
+ resolution: {integrity: sha512-FSLGTM5s47mmHnIudRxrMXjE1EO56Qp01nATa9OwqVgVYVxxJ5xvS1ys5yxSGSE1jQk+3kyYQXHyLFcqbFhIVA==}
peerDependencies:
- '@mantine/core': 7.13.0
- '@mantine/hooks': 7.13.0
+ '@mantine/core': 7.13.2
+ '@mantine/hooks': 7.13.2
dayjs: '>=1.0.0'
react: ^18.2.0
react-dom: ^18.2.0
- '@mantine/form@7.13.0':
- resolution: {integrity: sha512-CeQbE08D7JNA+YyaGKAdFj40rp0JDFobcobIgNZzIyzXX8QNxIrtGhX3QqKIiwiFcjJi4WCxUSzDrd6vOKaEmA==}
+ '@mantine/form@7.13.2':
+ resolution: {integrity: sha512-jx7st64CzzzwdKwhRw/rHqQ/ReGa5tW9PnId5sdE5fhf9QJjjiNWfQjGUFnA7WSEGlOTbwrznKA45ro5lFY6CA==}
peerDependencies:
react: ^18.2.0
- '@mantine/hooks@7.13.0':
- resolution: {integrity: sha512-oQpwSi0gajH3UR1DFa9MQ+zeYy75xbc8Im9jIIepLbiJXtIcPK+yll1BMxNwPQLYU1pYI6ZgUazI2PoykVNmsg==}
+ '@mantine/hooks@7.13.2':
+ resolution: {integrity: sha512-NKfGl2sKZw6zF//AfAFJrVDftjg7DKCn0h8rwJBIZCKi9axhwlV0Mvlqe2dep8QuM7O/uLLJSymSKIv1gaxIJg==}
peerDependencies:
react: ^18.2.0
- '@mantine/modals@7.13.0':
- resolution: {integrity: sha512-0Yl8zhbeS4ExpqbPmH6qarS3XpmrkRzB2EATC0p509bviHlNa0MTGhR+lbW9zAdw7UXjqZmKUe3yXO23ONVgpw==}
+ '@mantine/modals@7.13.2':
+ resolution: {integrity: sha512-rKkXss1ZYAbkSi9ZcUsBY/HyGjgKk+bT8TXzLoClBRgg6uyto+/2lT9M5e4Nao+2PsjsRnWI/ZgddNZKiSaNgQ==}
peerDependencies:
- '@mantine/core': 7.13.0
- '@mantine/hooks': 7.13.0
+ '@mantine/core': 7.13.2
+ '@mantine/hooks': 7.13.2
react: ^18.2.0
react-dom: ^18.2.0
- '@mantine/notifications@7.13.0':
- resolution: {integrity: sha512-EEgKFxUK/4s2FKTYb6hKFbcsLwnccSe/8GsJ18DWGiLRxFq9DsgWCzfPAe+PVcGTITYfK7nbKxEF5l+KLdPOtQ==}
+ '@mantine/notifications@7.13.2':
+ resolution: {integrity: sha512-14vFJtR0wjO8Won96UMLxIGmKetR0ocBxcghtuGh6+wnXt6r/ezfQKsdGkkNj6w91I+0Nl9jspcxEekE5q2tBQ==}
peerDependencies:
- '@mantine/core': 7.13.0
- '@mantine/hooks': 7.13.0
+ '@mantine/core': 7.13.2
+ '@mantine/hooks': 7.13.2
react: ^18.2.0
react-dom: ^18.2.0
- '@mantine/spotlight@7.13.0':
- resolution: {integrity: sha512-zQ99lm0eOllXhT2bAr9YVaO3DFYlJVFxEMbXxLO5bG0AtAb7DLrhINXbNyH96OiUt+VkahSVHxbqLv5J8z2WvQ==}
+ '@mantine/spotlight@7.13.2':
+ resolution: {integrity: sha512-n8MapJHAJOCjrny4Yiy/SwAZOsa27X/JCGZ4rNwugvduliTa0WLT1KxjSg6Ne7Ys5iu4BlE5KEL6t3/LYDMI6g==}
peerDependencies:
- '@mantine/core': 7.13.0
- '@mantine/hooks': 7.13.0
+ '@mantine/core': 7.13.2
+ '@mantine/hooks': 7.13.2
react: ^18.2.0
react-dom: ^18.2.0
- '@mantine/store@7.13.0':
- resolution: {integrity: sha512-ldYJGMcmqTxffQMCQZZWNtXKlG649S3BGM8ukeZ6FLZckVXLQAR2o+G5EkETNihh0sJKR7DVsYHltL5hyxYLkg==}
+ '@mantine/store@7.13.2':
+ resolution: {integrity: sha512-JcBGOqRynYiRWzw1rYdmViB/lfeYSec2EXVdSt4eJv+RPICsjjuqrIc3sNzfqJEGxcN4hGSlaeBriSh05K+vNQ==}
peerDependencies:
react: ^18.2.0
- '@mantine/tiptap@7.13.0':
- resolution: {integrity: sha512-WoquUeyX6s6CVFkm4qwJWSt9e10JjX9p/LdGPpdKLn0lrJ4vGJy+L2zFDcoDxwXwgUKIw32rTmIoSsxUBziVIQ==}
+ '@mantine/tiptap@7.13.2':
+ resolution: {integrity: sha512-7trWaaGoyLdYdxmiunuAANL/euYjZAv5ZfVq7T/T+5SrvLObrEJicdT62nTmEoI5a7bG4R0lE7v22n4FNydohA==}
peerDependencies:
- '@mantine/core': 7.13.0
- '@mantine/hooks': 7.13.0
+ '@mantine/core': 7.13.2
+ '@mantine/hooks': 7.13.2
'@tiptap/extension-link': '>=2.1.12'
'@tiptap/react': '>=2.1.12'
react: ^18.2.0
@@ -2651,70 +2639,70 @@ packages:
resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==}
hasBin: true
- '@million/install@0.0.18':
- resolution: {integrity: sha512-1x/3Uz0TJHbQWsPCe9Na+MbE2GrJtz+1LDvDILh/1+O0SRbWZBEvlDjCRexEj0m44ff2TJRPk4BGob9Ly5thvQ==}
+ '@million/install@1.0.8':
+ resolution: {integrity: sha512-v3hAMjE1BvPh4UMRTpwx2okj4XOsNTOIvX3MEyscP5mLKXwNiBjhS+aiHFhNU8BSTRBhlIrrX3sebrSVx/AywA==}
hasBin: true
- '@million/lint@1.0.0-rc.84':
- resolution: {integrity: sha512-wtxyxMPAJNoX66LQMy/elx0JfikYD62zflc0q4LngQHGiCKmwgncTg9MebsPUtsBikGY1Aom28hKmhq1T51V/w==}
+ '@million/lint@1.0.8':
+ resolution: {integrity: sha512-DrdqkNdKamxb3YjOcDeVe1tt6SWpxVvbw9y9LxeIvJVOP4YvFHg2ZzfEX5o0we/xFDTip4D05YWvmAZl76gPhQ==}
hasBin: true
- '@next/env@14.2.13':
- resolution: {integrity: sha512-s3lh6K8cbW1h5Nga7NNeXrbe0+2jIIYK9YaA9T7IufDWnZpozdFUp6Hf0d5rNWUKu4fEuSX2rCKlGjCrtylfDw==}
+ '@next/env@14.2.14':
+ resolution: {integrity: sha512-/0hWQfiaD5//LvGNgc8PjvyqV50vGK0cADYzaoOOGN8fxzBn3iAiaq3S0tCRnFBldq0LVveLcxCTi41ZoYgAgg==}
- '@next/eslint-plugin-next@14.2.13':
- resolution: {integrity: sha512-z8Mk0VljxhIzsSiZUSdt3wp+t2lKd+jk5a9Jsvh3zDGkItgDMfjv/ZbET6HsxEl/fSihVoHGsXV6VLyDH0lfTQ==}
+ '@next/eslint-plugin-next@14.2.14':
+ resolution: {integrity: sha512-kV+OsZ56xhj0rnTn6HegyTGkoa16Mxjrpk7pjWumyB2P8JVQb8S9qtkjy/ye0GnTr4JWtWG4x/2qN40lKZ3iVQ==}
- '@next/swc-darwin-arm64@14.2.13':
- resolution: {integrity: sha512-IkAmQEa2Htq+wHACBxOsslt+jMoV3msvxCn0WFSfJSkv/scy+i/EukBKNad36grRxywaXUYJc9mxEGkeIs8Bzg==}
+ '@next/swc-darwin-arm64@14.2.14':
+ resolution: {integrity: sha512-bsxbSAUodM1cjYeA4o6y7sp9wslvwjSkWw57t8DtC8Zig8aG8V6r+Yc05/9mDzLKcybb6EN85k1rJDnMKBd9Gw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
- '@next/swc-darwin-x64@14.2.13':
- resolution: {integrity: sha512-Dv1RBGs2TTjkwEnFMVL5XIfJEavnLqqwYSD6LXgTPdEy/u6FlSrLBSSfe1pcfqhFEXRAgVL3Wpjibe5wXJzWog==}
+ '@next/swc-darwin-x64@14.2.14':
+ resolution: {integrity: sha512-cC9/I+0+SK5L1k9J8CInahduTVWGMXhQoXFeNvF0uNs3Bt1Ub0Azb8JzTU9vNCr0hnaMqiWu/Z0S1hfKc3+dww==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
- '@next/swc-linux-arm64-gnu@14.2.13':
- resolution: {integrity: sha512-yB1tYEFFqo4ZNWkwrJultbsw7NPAAxlPXURXioRl9SdW6aIefOLS+0TEsKrWBtbJ9moTDgU3HRILL6QBQnMevg==}
+ '@next/swc-linux-arm64-gnu@14.2.14':
+ resolution: {integrity: sha512-RMLOdA2NU4O7w1PQ3Z9ft3PxD6Htl4uB2TJpocm+4jcllHySPkFaUIFacQ3Jekcg6w+LBaFvjSPthZHiPmiAUg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@next/swc-linux-arm64-musl@14.2.13':
- resolution: {integrity: sha512-v5jZ/FV/eHGoWhMKYrsAweQ7CWb8xsWGM/8m1mwwZQ/sutJjoFaXchwK4pX8NqwImILEvQmZWyb8pPTcP7htWg==}
+ '@next/swc-linux-arm64-musl@14.2.14':
+ resolution: {integrity: sha512-WgLOA4hT9EIP7jhlkPnvz49iSOMdZgDJVvbpb8WWzJv5wBD07M2wdJXLkDYIpZmCFfo/wPqFsFR4JS4V9KkQ2A==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@next/swc-linux-x64-gnu@14.2.13':
- resolution: {integrity: sha512-aVc7m4YL7ViiRv7SOXK3RplXzOEe/qQzRA5R2vpXboHABs3w8vtFslGTz+5tKiQzWUmTmBNVW0UQdhkKRORmGA==}
+ '@next/swc-linux-x64-gnu@14.2.14':
+ resolution: {integrity: sha512-lbn7svjUps1kmCettV/R9oAvEW+eUI0lo0LJNFOXoQM5NGNxloAyFRNByYeZKL3+1bF5YE0h0irIJfzXBq9Y6w==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@next/swc-linux-x64-musl@14.2.13':
- resolution: {integrity: sha512-4wWY7/OsSaJOOKvMsu1Teylku7vKyTuocvDLTZQq0TYv9OjiYYWt63PiE1nTuZnqQ4RPvME7Xai+9enoiN0Wrg==}
+ '@next/swc-linux-x64-musl@14.2.14':
+ resolution: {integrity: sha512-7TcQCvLQ/hKfQRgjxMN4TZ2BRB0P7HwrGAYL+p+m3u3XcKTraUFerVbV3jkNZNwDeQDa8zdxkKkw2els/S5onQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@next/swc-win32-arm64-msvc@14.2.13':
- resolution: {integrity: sha512-uP1XkqCqV2NVH9+g2sC7qIw+w2tRbcMiXFEbMihkQ8B1+V6m28sshBwAB0SDmOe0u44ne1vFU66+gx/28RsBVQ==}
+ '@next/swc-win32-arm64-msvc@14.2.14':
+ resolution: {integrity: sha512-8i0Ou5XjTLEje0oj0JiI0Xo9L/93ghFtAUYZ24jARSeTMXLUx8yFIdhS55mTExq5Tj4/dC2fJuaT4e3ySvXU1A==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
- '@next/swc-win32-ia32-msvc@14.2.13':
- resolution: {integrity: sha512-V26ezyjPqQpDBV4lcWIh8B/QICQ4v+M5Bo9ykLN+sqeKKBxJVDpEc6biDVyluTXTC40f5IqCU0ttth7Es2ZuMw==}
+ '@next/swc-win32-ia32-msvc@14.2.14':
+ resolution: {integrity: sha512-2u2XcSaDEOj+96eXpyjHjtVPLhkAFw2nlaz83EPeuK4obF+HmtDJHqgR1dZB7Gb6V/d55FL26/lYVd0TwMgcOQ==}
engines: {node: '>= 10'}
cpu: [ia32]
os: [win32]
- '@next/swc-win32-x64-msvc@14.2.13':
- resolution: {integrity: sha512-WwzOEAFBGhlDHE5Z73mNU8CO8mqMNLqaG+AO9ETmzdCQlJhVtWZnOl2+rqgVQS+YHunjOWptdFmNfbpwcUuEsw==}
+ '@next/swc-win32-x64-msvc@14.2.14':
+ resolution: {integrity: sha512-MZom+OvZ1NZxuRovKt1ApevjiUJTcU2PmdJKL66xUPaJeRywnbGGRWUlaAOwunD6dX+pm83vj979NTC8QXjGWg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
@@ -2972,39 +2960,39 @@ packages:
typescript:
optional: true
- '@tabler/icons-react@3.18.0':
- resolution: {integrity: sha512-2gGMWJe67T7q6Sgb+4r/OsAjbq6hH30D6D2l02kOnl9kAauSsp/u6Gx1zteQ/GiwqRYSTEIhYMOhOV4LLa8rAw==}
+ '@tabler/icons-react@3.19.0':
+ resolution: {integrity: sha512-AqEWGI0tQWgqo6ZjMO5yJ9sYT8oXLuAM/up0hN9iENS6IdtNZryKrkNSiMgpwweNTpl8wFFG/dAZ959S91A/uQ==}
peerDependencies:
react: '>= 16'
- '@tabler/icons@3.18.0':
- resolution: {integrity: sha512-zLuwTs/xjQSsGh1X5Pt6qytvM8r6lFpWo5aAiDgnX2ekrOshNs4d87PcJEkP3555gaKy0ZftgckxPzedrN00fQ==}
+ '@tabler/icons@3.19.0':
+ resolution: {integrity: sha512-A4WEWqpdbTfnpFEtwXqwAe9qf9sp1yRPvzppqAuwcoF0q5YInqB+JkJtSFToCyBpPVeLxJUxxkapLvt2qQgnag==}
'@tanstack/match-sorter-utils@8.15.1':
resolution: {integrity: sha512-PnVV3d2poenUM31ZbZi/yXkBu3J7kd5k2u51CGwwNojag451AjTH9N6n41yjXz2fpLeewleyLBmNS6+HcGDlXw==}
engines: {node: '>=12'}
- '@tanstack/query-core@5.56.2':
- resolution: {integrity: sha512-gor0RI3/R5rVV3gXfddh1MM+hgl0Z4G7tj6Xxpq6p2I03NGPaJ8dITY9Gz05zYYb/EJq9vPas/T4wn9EaDPd4Q==}
+ '@tanstack/query-core@5.59.0':
+ resolution: {integrity: sha512-WGD8uIhX6/deH/tkZqPNcRyAhDUqs729bWKoByYHSogcshXfFbppOdTER5+qY7mFvu8KEFJwT0nxr8RfPTVh0Q==}
'@tanstack/query-devtools@5.58.0':
resolution: {integrity: sha512-iFdQEFXaYYxqgrv63ots+65FGI+tNp5ZS5PdMU1DWisxk3fez5HG3FyVlbUva+RdYS5hSLbxZ9aw3yEs97GNTw==}
- '@tanstack/react-query-devtools@5.58.0':
- resolution: {integrity: sha512-qF0xCyBeVuNLygTO1sAl1X4Gv52w52SeaDdbjYQmtTOooUJ3aAVlBEtiRJFfJblWQ9p/UQG8NIcC/65RjX8Jkw==}
+ '@tanstack/react-query-devtools@5.59.0':
+ resolution: {integrity: sha512-Kz7577FQGU8qmJxROIT/aOwmkTcxfBqgTP6r1AIvuJxVMVHPkp8eQxWQ7BnfBsy/KTJHiV9vMtRVo1+R1tB3vg==}
peerDependencies:
- '@tanstack/react-query': ^5.56.2
+ '@tanstack/react-query': ^5.59.0
react: ^18 || ^19
- '@tanstack/react-query-next-experimental@5.56.2':
- resolution: {integrity: sha512-9LjzJfqPzUP9Jfm3RU2elLw6g0OM/+o8O7xaIkZAtLjXvXVGw2NIEPSfoDzJ6Q+Kb1dcZpcftFpLpeHA1WsZgw==}
+ '@tanstack/react-query-next-experimental@5.59.0':
+ resolution: {integrity: sha512-LrU1P7bi2qZWhuS0z+bxd0e1HqVuyiY6c5yebJoRum6WIq3QrFTUi9LW6swF4VMlJFqXf4Fk7nRlB7NFmBFhTA==}
peerDependencies:
- '@tanstack/react-query': ^5.56.2
+ '@tanstack/react-query': ^5.59.0
next: ^13 || ^14 || ^15
react: ^18 || ^19
- '@tanstack/react-query@5.56.2':
- resolution: {integrity: sha512-SR0GzHVo6yzhN72pnRhkEFRAHMsUo5ZPzAxfTMvUxFIDVS6W9LYUp6nXW3fcHVdg0ZJl8opSH85jqahvm6DSVg==}
+ '@tanstack/react-query@5.59.0':
+ resolution: {integrity: sha512-YDXp3OORbYR+8HNQx+lf4F73NoiCmCcSvZvgxE29OifmQFk0sBlO26NWLHpcNERo92tVk3w+JQ53/vkcRUY1hA==}
peerDependencies:
react: ^18 || ^19
@@ -3028,219 +3016,223 @@ packages:
'@tanstack/virtual-core@3.8.3':
resolution: {integrity: sha512-vd2A2TnM5lbnWZnHi9B+L2gPtkSeOtJOAw358JqokIH1+v2J7vUAzFVPwB/wrye12RFOurffXu33plm4uQ+JBQ==}
- '@testcontainers/mysql@10.13.1':
- resolution: {integrity: sha512-G4I59inEQ37yxeMgXyNgLbGf+aUNGoQDdgrfNWpWC/s0z5fiFSROEngcp8ueGA4UgH9Jte8iXo0WrMgmBfwJEQ==}
+ '@testcontainers/mysql@10.13.2':
+ resolution: {integrity: sha512-O9lcWOxKL15a6NqpQpi8WrgEyYVvlYCHZU03vMtLoRBS0HsJyAZnH1NocDnnBMeRsghwURJPtUrFFMrwMumHMA==}
- '@tiptap/core@2.7.4':
- resolution: {integrity: sha512-1VTQdNQChgxdVC8+b8QEW6cUxPSD9EDTzg9YRSLWtTtUDQ09sRSVs7eHIn1LcRHVs6PwcAsNgKE4FSjBw0sRlg==}
+ '@tiptap/core@2.8.0':
+ resolution: {integrity: sha512-xsqDI4BNzYRWRtBq7+/38ThhqEr7uG9Njip1x+9/wgR3vWPBFnBkYJTz6jSxS35NRE6BSnERm4/B/vrLuY1Hdw==}
peerDependencies:
'@tiptap/pm': ^2.7.0
- '@tiptap/extension-blockquote@2.7.4':
- resolution: {integrity: sha512-N6rhiwVRpsxRz4Qt8cvKgpqjBxdi8GTbU/v2MV/BTONWb7Ch9ajv9HO6koEDdOeb77JVhpWztzYysTjJo2KTyQ==}
+ '@tiptap/extension-blockquote@2.8.0':
+ resolution: {integrity: sha512-m3CKrOIvV7fY1Ak2gYf5LkKiz6AHxHpg6wxfVaJvdBqXgLyVtHo552N+A4oSHOSRbB4AG9EBQ2NeBM8cdEQ4MA==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-bold@2.7.4':
- resolution: {integrity: sha512-Yq2ErekgpsOLCGYfQc1H3tUdmecKHDBWTPesVtqg0ct/3ZbKskhFoR6bPQWZH/ZRXQb1ARA+aMp/iqM/hqm+KQ==}
+ '@tiptap/extension-bold@2.8.0':
+ resolution: {integrity: sha512-U1YkZBxDkSLNvPNiqxB5g42IeJHr27C7zDb/yGQN2xL4UBeg4O9xVhCFfe32f6tLwivSL0dar4ScElpaCJuqow==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-bubble-menu@2.7.4':
- resolution: {integrity: sha512-Vx9gFFgz/6R+FIzOCbUNFOJAy4lKr/vbG2l1Ujn4PKber8OWV1JUHXF5MKhMKUupr+Yvu5h3ctBcOe1tZt/NIA==}
+ '@tiptap/extension-bubble-menu@2.8.0':
+ resolution: {integrity: sha512-swg+myJPN60LduQvLMF4hVBqP5LOIN01INZBzBI8egz8QufqtSyRCgXl7Xcma0RT5xIXnZSG9XOqNFf2rtkjKA==}
peerDependencies:
'@tiptap/core': ^2.7.0
'@tiptap/pm': ^2.7.0
- '@tiptap/extension-bullet-list@2.7.4':
- resolution: {integrity: sha512-uO08vui6uEgLEgLIYJSLrUb2An3u0If8XRW0Z0kB13zpwQ9pq0S1JOc0KwPTDPeIrgLQ7OOH87/bM9rGUFC3AQ==}
+ '@tiptap/extension-bullet-list@2.8.0':
+ resolution: {integrity: sha512-H4O2X0ozbc/ce9/XF1H98sqWVUdtt7jzy7hMBunwmY8ZxI4dHtcRkeg81CZbpKTqOqRrMCLWjE3M2tgiDXrDkA==}
peerDependencies:
'@tiptap/core': ^2.7.0
+ '@tiptap/extension-list-item': ^2.7.0
+ '@tiptap/extension-text-style': ^2.7.0
- '@tiptap/extension-code-block@2.7.4':
- resolution: {integrity: sha512-jRKVAEdy3G0SMphWXCTk9SnMuTmJE6blXglU66H89j9R+hG+G0dHfOWhlubhUy6nI2BLy8jJ/isnOzg97iZuQw==}
+ '@tiptap/extension-code-block@2.8.0':
+ resolution: {integrity: sha512-POuA5Igx+Dto0DTazoBFAQTj/M/FCdkqRVD9Uhsxhv49swPyANTJRr05vgbgtHB+NDDsZfCawVh7pI0IAD/O0w==}
peerDependencies:
'@tiptap/core': ^2.7.0
'@tiptap/pm': ^2.7.0
- '@tiptap/extension-code@2.7.4':
- resolution: {integrity: sha512-GB7gR8tV1fz+70wcSN+hLVm1qET/YmkxIaOfczHEOLLH7Td0C3kyQ5Q+eQ8KN0Ds7NBHFXn3zn051Q8gk9+5tw==}
+ '@tiptap/extension-code@2.8.0':
+ resolution: {integrity: sha512-VSFn3sFF6qPpOGkXFhik8oYRH5iByVJpFEFd/duIEftmS0MdPzkbSItOpN3mc9xsJ5dCX80LYaResSj5hr5zkA==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-color@2.7.4':
- resolution: {integrity: sha512-UI6RvjD0vBA2KyQ8E4gQHqCRimUw8M/LpnpumcgFpXCrZTO4ltADuR+7cHhXvNfcVxY17/bPY/WF3yTsR0dqiQ==}
+ '@tiptap/extension-color@2.8.0':
+ resolution: {integrity: sha512-b0ZIDaZKTDVdTb0PMgtOiPzgCkYhvDldjzdWyPLsjWup5x9/zPasH5X/2SfMuwtjt+cKj6YBPveJjF7w5ApK7w==}
peerDependencies:
'@tiptap/core': ^2.7.0
'@tiptap/extension-text-style': ^2.7.0
- '@tiptap/extension-document@2.7.4':
- resolution: {integrity: sha512-Vsq9e/uW7k/5l1K9bCmuccBSrHhK3i0fbfnTp33G1byTCizheUo3UWFl8MSDammlhRkW/soIZFGdflsj5AJWog==}
+ '@tiptap/extension-document@2.8.0':
+ resolution: {integrity: sha512-mp7Isx1sVc/ifeW4uW/PexGQ9exN3NRUOebSpnLfqXeWYk4y1RS1PA/3+IHkOPVetbnapgPjFx/DswlCP3XLjA==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-dropcursor@2.7.4':
- resolution: {integrity: sha512-hhE0RTluEEFxfqh8/jpmQRgy5AipTcd+WMK5cBw2zCa9If/qhY0EvysydEPwDU7yDEa13NDqV63x5oN9GKv2pg==}
+ '@tiptap/extension-dropcursor@2.8.0':
+ resolution: {integrity: sha512-rAFvx44YuT6dtS1c+ALw0ROAGI16l5L1HxquL4hR1gtxDcTieST5xhw5bkshXlmrlfotZXPrhokzqA7qjhZtJw==}
peerDependencies:
'@tiptap/core': ^2.7.0
'@tiptap/pm': ^2.7.0
- '@tiptap/extension-floating-menu@2.7.4':
- resolution: {integrity: sha512-EGDq9eVT/fIJo6AOvXtRIWurAbGx0Fv2hIjQobX8AmCoOp3KjYalbQPbo1d3cyqanXG7sNRhBehIXc8Nv+AUWA==}
+ '@tiptap/extension-floating-menu@2.8.0':
+ resolution: {integrity: sha512-H4QT61CrkLqisnGGC7zgiYmsl2jXPHl89yQCbdlkQN7aw11H7PltcJS2PJguL0OrRVJS/Mv/VTTUiMslmsEV5g==}
peerDependencies:
'@tiptap/core': ^2.7.0
'@tiptap/pm': ^2.7.0
- '@tiptap/extension-gapcursor@2.7.4':
- resolution: {integrity: sha512-1HTaCR6kcw5PvUJWEGKQ/Eh2HPXUmN6k1LK0rgJC4CxqiFxNNnPKGED9LcYheJbyMYk0Fz3rtaulxd3ipdIOsQ==}
+ '@tiptap/extension-gapcursor@2.8.0':
+ resolution: {integrity: sha512-Be1LWCmvteQInOnNVN+HTqc1XWsj1bCl+Q7et8qqNjtGtTaCbdCp8ppcH1SKJxNTM/RLUtPyJ8FDgOTj51ixCA==}
peerDependencies:
'@tiptap/core': ^2.7.0
'@tiptap/pm': ^2.7.0
- '@tiptap/extension-hard-break@2.7.4':
- resolution: {integrity: sha512-ut81vNPQyDYi8LhOzPfFZGnPToYGQbBR6bvFE0e8WY9sRfvUZHr/GvkMjPuWuA8M5sBMqS5cLNyqPrI8h4R7Jg==}
+ '@tiptap/extension-hard-break@2.8.0':
+ resolution: {integrity: sha512-vqiIfviNiCmy/pJTHuDSCAGL2O4QDEdDmAvGJu8oRmElUrnlg8DbJUfKvn6DWQHNSQwRb+LDrwWlzAYj1K9u6A==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-heading@2.7.4':
- resolution: {integrity: sha512-ZLFHhFvmDD6YKPf4wftZd4wtT510yHjzG90A14wyKCpm0Bq9wOYzx4Q+owvlp5vMwenqHuq3KGz4Sf3w6N5gkw==}
+ '@tiptap/extension-heading@2.8.0':
+ resolution: {integrity: sha512-4inWgrTPiqlivPmEHFOM5ck2UsmOsbKKPtqga6bALvWPmCv24S6/EBwFp8Jz4YABabXDnkviihmGu0LpP9D69w==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-highlight@2.7.4':
- resolution: {integrity: sha512-5YTOIfryziPKNe6Bt9zUp1fL1J4+Kz/x3+41AJsSpKyb87WW5wkBA2XCJcoEAizVbaFvaaAHFCuVwkWc/4fnpw==}
+ '@tiptap/extension-highlight@2.8.0':
+ resolution: {integrity: sha512-vyqX7D449nuARhI0AyRqtIZReFg3sfc/U/q1p3JOjtUoW6z2jmDTzshiKRrSg+Jf7Hhzj1pqwU+6+CpelPPDpA==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-history@2.7.4':
- resolution: {integrity: sha512-xRgGXNrtjDGVOeLeZzGqw4/OtwIoloLU3QLn/qaOggVS7jr1HVTqMHw4nZVcUJfnB/UQ90yl53hBKZ8z3AxcCA==}
+ '@tiptap/extension-history@2.8.0':
+ resolution: {integrity: sha512-u5YS0J5Egsxt8TUWMMAC3QhPZaak+IzQeyHch4gtqxftx96tprItY7AD/A3pGDF2uCSnN+SZrk6yVexm6EncDw==}
peerDependencies:
'@tiptap/core': ^2.7.0
'@tiptap/pm': ^2.7.0
- '@tiptap/extension-horizontal-rule@2.7.4':
- resolution: {integrity: sha512-6mKkiGK9O+eGDeewpUHGyM2Xjlp69Oy+N/0o5zdzfN84YqVPqLV+Y7ub6fMxZUvmRt6L0kuv/ZoDoxeUk+QNKg==}
+ '@tiptap/extension-horizontal-rule@2.8.0':
+ resolution: {integrity: sha512-Sn/MI8WVFBoIYSIHA9NJryJIyCEzZdRysau8pC5TFnfifre0QV1ksPz2bgF+DyCD69ozQiRdBBHDEwKe47ZbfQ==}
peerDependencies:
'@tiptap/core': ^2.7.0
'@tiptap/pm': ^2.7.0
- '@tiptap/extension-image@2.7.4':
- resolution: {integrity: sha512-hUBN8q42pxrKR0erLTl5N0mq4HYP0aKIbZaxBui9DdlMaE1qkrm4bJ+Ori+OabUvhEbnky1HYhmrYaUDEPTfdQ==}
+ '@tiptap/extension-image@2.8.0':
+ resolution: {integrity: sha512-5CReomgHGTUgxaX8P3i6qiC9VRWcWQgVoYtds4ZM52LVx/oGwMxQ4ECyzdVYKaRW+6PrNnAe6ew3Qpd5Wk0cIg==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-italic@2.7.4':
- resolution: {integrity: sha512-j/86hNMRd2PbJX6DOs7CbrYgFJSXvZMnWkYRRol7XEELvEuIWoAgyJrW5HkDbVxmGfWPnLlqsoW7iTHml7P+Bg==}
+ '@tiptap/extension-italic@2.8.0':
+ resolution: {integrity: sha512-PwwSE2LTYiHI47NJnsfhBmPiLE8IXZYqaSoNPU6flPrk1KxEzqvRI1joKZBmD9wuqzmHJ93VFIeZcC+kfwi8ZA==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-link@2.7.4':
- resolution: {integrity: sha512-nVzCEkK85JuNJH7oHW922V7LSjnZseihDsSCHCWjVNVgc+21s2ncGz16ZNOgiCOcnvxv7PtIB0EefXSuFZVPAQ==}
+ '@tiptap/extension-link@2.8.0':
+ resolution: {integrity: sha512-p67hCG/pYCiOK/oCTPZnlkw9Ei7KJ7kCKFaluTcAmr5j8IBdYfDqSMDNCT4vGXBvKFh4X6xD7S7QvOqcH0Gn9A==}
peerDependencies:
'@tiptap/core': ^2.7.0
'@tiptap/pm': ^2.7.0
- '@tiptap/extension-list-item@2.7.4':
- resolution: {integrity: sha512-2EiXAtkZdCUHCfYRQsslniQhUzvo8zEm+M6JHcsIRBRf27iE+nXrD6jq1WH2ZIUNLDUs4JsJhtc89aoSYkJGKw==}
+ '@tiptap/extension-list-item@2.8.0':
+ resolution: {integrity: sha512-o7OGymGxB0B9x3x2prp3KBDYFuBYGc5sW69O672jk8G52DqhzzndgPnkk0qUn8nXAUKuDGbJmpmHVA2kagqnRg==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-ordered-list@2.7.4':
- resolution: {integrity: sha512-Y7fnw3lTyOd1h6t5hKSkYqbJXteafIviRdmrQ/ERRayojV934DjRPBeMQnYcArE6nI178/wLI9YMt1HSMJklRw==}
+ '@tiptap/extension-ordered-list@2.8.0':
+ resolution: {integrity: sha512-sCvNbcTS1+5QTTXwUPFa10vf5I1pr8sGcOTIh0G+a5ZkS5+6FxT12k7VLzPt39QyNbOi+77U2o4Xr4XyaEkfSg==}
peerDependencies:
'@tiptap/core': ^2.7.0
+ '@tiptap/extension-list-item': ^2.7.0
+ '@tiptap/extension-text-style': ^2.7.0
- '@tiptap/extension-paragraph@2.7.4':
- resolution: {integrity: sha512-Pv3zsyuE+RItlkZVFcjcnz+Omp/UCEO03n9daeHljMUl7Rt775fXtcTNKPqO65f2B2MPBxrSdJpTsoMK0bbcjA==}
+ '@tiptap/extension-paragraph@2.8.0':
+ resolution: {integrity: sha512-XgxxNNbuBF48rAGwv7/s6as92/xjm/lTZIGTq9aG13ClUKFtgdel7C33SpUCcxg3cO2WkEyllXVyKUiauFZw/A==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-strike@2.7.4':
- resolution: {integrity: sha512-ELMFUCE9MlF0qsGzHJl0AxzGUVyS9rglk6pzidoB0iU1LuzUa/K1el5ID2ksSFdq2+STK17rOWQxUiv3X8C7gw==}
+ '@tiptap/extension-strike@2.8.0':
+ resolution: {integrity: sha512-ezkDiXxQ3ME/dDMMM7tAMkKRi6UWw7tIu+Mx7Os0z8HCGpVBk1gFhLlhEd8I5rJaPZr4tK1wtSehMA9bscFGQw==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-table-cell@2.7.4':
- resolution: {integrity: sha512-8/mM0lv8k6dRBjGHNh9HIGNaRuq+A/7h699GC7A9xuE7R1/xjDMKRZpPTmvogqfAq2U6mH16oxr/KpBuixji1w==}
+ '@tiptap/extension-table-cell@2.8.0':
+ resolution: {integrity: sha512-IZpxONWyOd474L8+k4bHrFNRhbsl9eRwbNs5O877JkVFItc2WUz1DIhbJzjmBRsqExtWQJuOsiqWFab1kpiwGQ==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-table-header@2.7.4':
- resolution: {integrity: sha512-ZChahHwx0WlPynbMc4zsIgAAOar695A1AYTkWes7Y454xJy1vkGw607w+DVEHCWxU5h943H2UF7DUgzQS9XbAg==}
+ '@tiptap/extension-table-header@2.8.0':
+ resolution: {integrity: sha512-B67A96yMQlG96IFzZBc7D5dnn7O29hcjuDLtjyZkKvU5D/RlFKPMmC9nVphCV3CnbkvEOZUdK9pNaOpen64naw==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-table-row@2.7.4':
- resolution: {integrity: sha512-JxR6PdLiXUjW8VC7YdVSIvd8D7RKVOPPPK7cFrawxS4tKz+1temsK8hNZ3RKhajwS5ya4IRT+iKhSRetVnjuww==}
+ '@tiptap/extension-table-row@2.8.0':
+ resolution: {integrity: sha512-Iezej6l7X+WqKzGLmCgAwmpL+QsfjFv1g8yVH5d0/3Pkcj3G9nDn+GSm4bZnbfYFyqInHG94PZ5PMReiALrJtA==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-table@2.7.4':
- resolution: {integrity: sha512-zL9BKQFJDGkwKnr1MYzCfpBllhlL8pDR3Sf5WscbN66I+rXrAdpFl75AbWf7gE0Tk2YaJldshFkakgWN1tr+2A==}
+ '@tiptap/extension-table@2.8.0':
+ resolution: {integrity: sha512-dm9CitjacXyJuE5SZfV2lUc3uOiP2sxo6fygIzMz7iuxHqQueyONWG+TBkK7HjqzXOiMPsvOf/25NazzIG8HMg==}
peerDependencies:
'@tiptap/core': ^2.7.0
'@tiptap/pm': ^2.7.0
- '@tiptap/extension-task-item@2.7.4':
- resolution: {integrity: sha512-f30KZnIcwxpro/psOhBoQ4JqgHx7Dh24P1qjHWuWp4bnqHHSniYgrbMWjsDXcvKnNe6RF3oRBU3wWpB/glZSkw==}
+ '@tiptap/extension-task-item@2.8.0':
+ resolution: {integrity: sha512-U40uCE39vc6HT52JUTFGXQhxoakTsYapsfJmpy8LwfFAJVJtA7LBurY8qufvTzet55pSLtd3yNaZByhQaDlQrw==}
peerDependencies:
'@tiptap/core': ^2.7.0
'@tiptap/pm': ^2.7.0
- '@tiptap/extension-task-list@2.7.4':
- resolution: {integrity: sha512-VlF2/xhpkrNZjdi9R5Bex2OjKujkwg27GoMSlJJ67TetBs/fPNUFjbf2k6A26oAK0lMYyt1iYaKwql2O80xGsw==}
+ '@tiptap/extension-task-list@2.8.0':
+ resolution: {integrity: sha512-2Zkq0UojPh+Y4trJcNSsjkdHsYczxFReUqhzl5T0/OuPzIcDYL2OicUrsp36y16KKnH+WSOUOR8twDfR9LHygg==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-text-align@2.7.4':
- resolution: {integrity: sha512-/zJFhFko6yztjVlXL+Rpb4cpfSHydtFXkj+eto3Mjs0r+xzAsgP7WmQU2oTq482X1uvbfHD9u9SGSKH4jPcmig==}
+ '@tiptap/extension-text-align@2.8.0':
+ resolution: {integrity: sha512-Y6s/DF+P4lxpAnvSrnmt4xGwQT/AJJJm0aA1wu5GuPKpAQ+K4C7K6rE6uGNAXtR39GlewC7KdmcvA+CYhL8xlw==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-text-style@2.7.4':
- resolution: {integrity: sha512-KQ50wDxwH0tFs+9vWP56aaJVyCRl93e3B/cIVJtvTV1HANtkjxFAdrvW1HOaUk9aVBdeLRFbz+YIzf/LxNZ2Wg==}
+ '@tiptap/extension-text-style@2.8.0':
+ resolution: {integrity: sha512-jJp0vcZ2Ty7RvIL0VU6dm1y+fTfXq1lN2GwtYzYM0ueFuESa+Qo8ticYOImyWZ3wGJGVrjn7OV9r0ReW0/NYkQ==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-text@2.7.4':
- resolution: {integrity: sha512-1bF9LdfUumqXOz0A6xnOo7UHx+YLshxjMnjoMXjv7cOFOjdHbLmwKNTKGd2ltoCy3bSajoCPhPZL2Id89XDZfQ==}
+ '@tiptap/extension-text@2.8.0':
+ resolution: {integrity: sha512-EDAdFFzWOvQfVy7j3qkKhBpOeE5thkJaBemSWfXI93/gMVc0ZCdLi24mDvNNgUHlT+RjlIoQq908jZaaxLKN2A==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-underline@2.7.4':
- resolution: {integrity: sha512-1WT2ZHjBoyW6MzKrLC1v2KJszuozh6jzIbcabslRRNaEJFfsjIFgfU3TBpaXF+JKEBCi3h1JpWMgmtnr0puFVA==}
+ '@tiptap/extension-underline@2.8.0':
+ resolution: {integrity: sha512-1ouuHwZJphT8OosAmp6x8e+Wly3cUd1pNWBiOutJX+6QRGBXJnIKFCzn8YOTlWhg1YQigisG7dNF3YdlyuRNHw==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/pm@2.7.4':
- resolution: {integrity: sha512-YXjgPLN6/msTkKakuzgBm6Dd/Li3ORtysSki3fHnOFcy8R4c5JZLkYECQk6aJHsxvl/vGvNgaJy5yCDbhnaTAg==}
+ '@tiptap/pm@2.8.0':
+ resolution: {integrity: sha512-eMGpRooUMvKz/vOpnKKppApMSoNM325HxTdAJvTlVAmuHp5bOY5kyY1kfUlePRiVx1t1UlFcXs3kecFwkkBD3Q==}
- '@tiptap/react@2.7.4':
- resolution: {integrity: sha512-ZJZsK0GVOFLBnQFOfVbR3auYElInh419E2LjmQzka3IL1/T130i6gL6kZoSzTwubGijnzKbWlaBAmc8NUboSgQ==}
+ '@tiptap/react@2.8.0':
+ resolution: {integrity: sha512-o/aSCjO5Nu4MsNpTF+N1SzYzVQvvBiclmTOZX2E6usZ8jre5zmKfXHDSZnjGSRTK6z6kw5KW8wpjRQha03f9mg==}
peerDependencies:
'@tiptap/core': ^2.7.0
'@tiptap/pm': ^2.7.0
react: ^17.0.0 || ^18.0.0
react-dom: ^17.0.0 || ^18.0.0
- '@tiptap/starter-kit@2.7.4':
- resolution: {integrity: sha512-ALOphzdSZ+ZgOllc0gKxn7iDQ3c3BEBJzc5dQE1pJMeDHrGu/fAGXtffJOyJsVoBGTB14TXK6decMNUUwBApiA==}
+ '@tiptap/starter-kit@2.8.0':
+ resolution: {integrity: sha512-r7UwaTrECkQoheWVZKFDqtL5tBx07x7IFT+prfgnsVlYFutGWskVVqzCDvD3BDmrg5PzeCWYZrQGlPaLib7tjg==}
'@tootallnate/quickjs-emscripten@0.23.0':
resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==}
- '@trpc/client@11.0.0-rc.544':
- resolution: {integrity: sha512-VympvY3/j597XUNEm8ywcH9Q78rC8f7qvLRpfU6u7Bjm7YgWLNaWlBYLpnOjhej0gXjFQjRLsnF1Ffek8KDtZg==}
+ '@trpc/client@11.0.0-rc.553':
+ resolution: {integrity: sha512-ICgziilbuAslRgHIVJZ162KaHQRpHXA1C1LPRsNpxPa9aStPF7eThAjn4V3JmDyJsuDLQgAmqLVRImlLPMYR5Q==}
peerDependencies:
- '@trpc/server': 11.0.0-rc.544+f8e8d1715
+ '@trpc/server': 11.0.0-rc.553+9b629cc67
- '@trpc/next@11.0.0-rc.544':
- resolution: {integrity: sha512-hSneXAUgapL17RXyTdN9G5ZeN73B/bZ0j2XqduATfD/UgwvTaUuS4uYybgBy3RMLnaOnjr9lxcrYAf4ysiKxCg==}
+ '@trpc/next@11.0.0-rc.553':
+ resolution: {integrity: sha512-1bIuG4nKYmTuVFqgsqSbOGgIz2LsUcb1wXrK1zlfikRQHhssSMmpXSLSANfZffs/6lbFLVs057XaS9LX5HmCsw==}
peerDependencies:
'@tanstack/react-query': ^5.54.1
- '@trpc/client': 11.0.0-rc.544+f8e8d1715
- '@trpc/react-query': 11.0.0-rc.544+f8e8d1715
- '@trpc/server': 11.0.0-rc.544+f8e8d1715
+ '@trpc/client': 11.0.0-rc.553+9b629cc67
+ '@trpc/react-query': 11.0.0-rc.553+9b629cc67
+ '@trpc/server': 11.0.0-rc.553+9b629cc67
next: '*'
react: '>=16.8.0'
react-dom: '>=16.8.0'
@@ -3250,17 +3242,17 @@ packages:
'@trpc/react-query':
optional: true
- '@trpc/react-query@11.0.0-rc.544':
- resolution: {integrity: sha512-lieAIbIdbwWsQcZuyUUzIGMB+ouMfkiPoK/H7N864eftiAmZgIuvtaarnO/7wTtLGsJoMOTzTJLE503UvEu0FA==}
+ '@trpc/react-query@11.0.0-rc.553':
+ resolution: {integrity: sha512-m88HBhpfIDJccJCXycHtkGS82RG2TVPsZUFIWswR8m6ip5eFNmqWASanu7DiiFbY6sufLT1S8ee28towrPUgoA==}
peerDependencies:
'@tanstack/react-query': ^5.54.1
- '@trpc/client': 11.0.0-rc.544+f8e8d1715
- '@trpc/server': 11.0.0-rc.544+f8e8d1715
+ '@trpc/client': 11.0.0-rc.553+9b629cc67
+ '@trpc/server': 11.0.0-rc.553+9b629cc67
react: '>=18.2.0'
react-dom: '>=18.2.0'
- '@trpc/server@11.0.0-rc.544':
- resolution: {integrity: sha512-Hv7w6PV9MQgD+TzX1LI1P1E2siweQaf4fS/xW+b6NCC15REgcYuWNPu69YFFpwcdkl3PuAkh+DL/0NPUpHdiHg==}
+ '@trpc/server@11.0.0-rc.553':
+ resolution: {integrity: sha512-pYUhxV3QU834jP1ugJk1uhtPwwaY1ymIuupb4DiWOhNCl68syuXPlUdD8IYsYKd3BjLkmnjlsOUMoyd/aoOF/Q==}
'@tsconfig/node10@1.0.11':
resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==}
@@ -3277,12 +3269,12 @@ packages:
'@tsconfig/svelte@1.0.13':
resolution: {integrity: sha512-5lYJP45Xllo4yE/RUBccBT32eBlRDbqN8r1/MIvQbKxW3aFqaYPCNgm8D5V20X4ShHcwvYWNlKg3liDh1MlBoA==}
- '@turbo/gen@2.1.2':
- resolution: {integrity: sha512-YsRYh6+J+1VCP+TI1wT6ZR7lXVcXTaAUZ0+jY5xHOs1zR9Z5AR0ltTOVM1r01YUHVdk2eULD8ukRPMVDgZxRvw==}
+ '@turbo/gen@2.1.3':
+ resolution: {integrity: sha512-2uNpN7kHXHvhC/I/nY+4KjZoZASBNpHINe9M/L7edd//aq02lbcOF8ftxQ2KA6+QwWCtEzxHYrOTXmiauNF9xQ==}
hasBin: true
- '@turbo/workspaces@2.1.2':
- resolution: {integrity: sha512-PbowgdRe19+1LvG9yDoesSxtps2bTu1Riuaip1/VBq0AXhd417TzISWDti+V6jRCFE5cwtszNsJo+gGREIlWLQ==}
+ '@turbo/workspaces@2.1.3':
+ resolution: {integrity: sha512-g8bybSka6vfjGnBBGHFtu/QEvALaBO7Zwgu6clOJiklszH0sGLVyRE6ByZogpUo50Pa/m9UjQqWutCZmY1eK+A==}
hasBin: true
'@types/asn1@0.2.4':
@@ -3399,8 +3391,8 @@ packages:
'@types/react-dom@18.3.0':
resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==}
- '@types/react@18.3.10':
- resolution: {integrity: sha512-02sAAlBnP39JgXwkAq3PeU9DVaaGpZyF3MGcC0MKgQVkZor5IiiDAipVaxQHtDJAmO4GIy/rVBy/LzVj76Cyqg==}
+ '@types/react@18.3.11':
+ resolution: {integrity: sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==}
'@types/send@0.17.4':
resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
@@ -3444,8 +3436,8 @@ packages:
'@types/ws@8.5.12':
resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==}
- '@typescript-eslint/eslint-plugin@8.7.0':
- resolution: {integrity: sha512-RIHOoznhA3CCfSTFiB6kBGLQtB/sox+pJ6jeFu6FxJvqL8qRxq/FfGO/UhsGgQM9oGdXkV4xUgli+dt26biB6A==}
+ '@typescript-eslint/eslint-plugin@8.8.0':
+ resolution: {integrity: sha512-wORFWjU30B2WJ/aXBfOm1LX9v9nyt9D3jsSOxC3cCaTQGCW5k4jNpmjFv3U7p/7s4yvdjHzwtv2Sd2dOyhjS0A==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
'@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
@@ -3455,8 +3447,8 @@ packages:
typescript:
optional: true
- '@typescript-eslint/parser@8.7.0':
- resolution: {integrity: sha512-lN0btVpj2unxHlNYLI//BQ7nzbMJYBVQX5+pbNXvGYazdlgYonMn4AhhHifQ+J4fGRYA/m1DjaQjx+fDetqBOQ==}
+ '@typescript-eslint/parser@8.8.0':
+ resolution: {integrity: sha512-uEFUsgR+tl8GmzmLjRqz+VrDv4eoaMqMXW7ruXfgThaAShO9JTciKpEsB+TvnfFfbg5IpujgMXVV36gOJRLtZg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@@ -3465,12 +3457,12 @@ packages:
typescript:
optional: true
- '@typescript-eslint/scope-manager@8.7.0':
- resolution: {integrity: sha512-87rC0k3ZlDOuz82zzXRtQ7Akv3GKhHs0ti4YcbAJtaomllXoSO8hi7Ix3ccEvCd824dy9aIX+j3d2UMAfCtVpg==}
+ '@typescript-eslint/scope-manager@8.8.0':
+ resolution: {integrity: sha512-EL8eaGC6gx3jDd8GwEFEV091210U97J0jeEHrAYvIYosmEGet4wJ+g0SYmLu+oRiAwbSA5AVrt6DxLHfdd+bUg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/type-utils@8.7.0':
- resolution: {integrity: sha512-tl0N0Mj3hMSkEYhLkjREp54OSb/FI6qyCzfiiclvJvOqre6hsZTGSnHtmFLDU8TIM62G7ygEa1bI08lcuRwEnQ==}
+ '@typescript-eslint/type-utils@8.8.0':
+ resolution: {integrity: sha512-IKwJSS7bCqyCeG4NVGxnOP6lLT9Okc3Zj8hLO96bpMkJab+10HIfJbMouLrlpyOr3yrQ1cA413YPFiGd1mW9/Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '*'
@@ -3478,12 +3470,12 @@ packages:
typescript:
optional: true
- '@typescript-eslint/types@8.7.0':
- resolution: {integrity: sha512-LLt4BLHFwSfASHSF2K29SZ+ZCsbQOM+LuarPjRUuHm+Qd09hSe3GCeaQbcCr+Mik+0QFRmep/FyZBO6fJ64U3w==}
+ '@typescript-eslint/types@8.8.0':
+ resolution: {integrity: sha512-QJwc50hRCgBd/k12sTykOJbESe1RrzmX6COk8Y525C9l7oweZ+1lw9JiU56im7Amm8swlz00DRIlxMYLizr2Vw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/typescript-estree@8.7.0':
- resolution: {integrity: sha512-MC8nmcGHsmfAKxwnluTQpNqceniT8SteVwd2voYlmiSWGOtjvGXdPl17dYu2797GVscK30Z04WRM28CrKS9WOg==}
+ '@typescript-eslint/typescript-estree@8.8.0':
+ resolution: {integrity: sha512-ZaMJwc/0ckLz5DaAZ+pNLmHv8AMVGtfWxZe/x2JVEkD5LnmhWiQMMcYT7IY7gkdJuzJ9P14fRy28lUrlDSWYdw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '*'
@@ -3491,14 +3483,14 @@ packages:
typescript:
optional: true
- '@typescript-eslint/utils@8.7.0':
- resolution: {integrity: sha512-ZbdUdwsl2X/s3CiyAu3gOlfQzpbuG3nTWKPoIvAu1pu5r8viiJvv2NPN2AqArL35NCYtw/lrPPfM4gxrMLNLPw==}
+ '@typescript-eslint/utils@8.8.0':
+ resolution: {integrity: sha512-QE2MgfOTem00qrlPgyByaCHay9yb1+9BjnMFnSFkUKQfu7adBXDTnCAivURnuPPAG/qiB+kzKkZKmKfaMT0zVg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
- '@typescript-eslint/visitor-keys@8.7.0':
- resolution: {integrity: sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ==}
+ '@typescript-eslint/visitor-keys@8.8.0':
+ resolution: {integrity: sha512-8mq51Lx6Hpmd7HnA2fcHQo3YgfX1qbccxQOgZcb4tvasu//zXRaA1j5ZRFeCw/VRAdFi4mRM9DnZw0Nu0Q2d1g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@umami/node@0.4.0':
@@ -3525,28 +3517,28 @@ packages:
'@videojs/xhr@2.7.0':
resolution: {integrity: sha512-giab+EVRanChIupZK7gXjHy90y3nncA2phIOyG3Ne5fvpiMJzvqYwiTOnEVW2S4CoYcuKJkomat7bMXA/UoUZQ==}
- '@vitejs/plugin-react@4.3.1':
- resolution: {integrity: sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==}
+ '@vitejs/plugin-react@4.3.2':
+ resolution: {integrity: sha512-hieu+o05v4glEBucTcKMK3dlES0OeJlD9YVOAPraVMOInBCwzumaIFiUjr4bHK7NPgnAHgiskUoceKercrN8vg==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
vite: ^4.2.0 || ^5.0.0
- '@vitest/coverage-v8@2.1.1':
- resolution: {integrity: sha512-md/A7A3c42oTT8JUHSqjP5uKTWJejzUW4jalpvs+rZ27gsURsMU8DEb+8Jf8C6Kj2gwfSHJqobDNBuoqlm0cFw==}
+ '@vitest/coverage-v8@2.1.2':
+ resolution: {integrity: sha512-b7kHrFrs2urS0cOk5N10lttI8UdJ/yP3nB4JYTREvR5o18cR99yPpK4gK8oQgI42BVv0ILWYUSYB7AXkAUDc0g==}
peerDependencies:
- '@vitest/browser': 2.1.1
- vitest: 2.1.1
+ '@vitest/browser': 2.1.2
+ vitest: 2.1.2
peerDependenciesMeta:
'@vitest/browser':
optional: true
- '@vitest/expect@2.1.1':
- resolution: {integrity: sha512-YeueunS0HiHiQxk+KEOnq/QMzlUuOzbU1Go+PgAsHvvv3tUkJPm9xWt+6ITNTlzsMXUjmgm5T+U7KBPK2qQV6w==}
+ '@vitest/expect@2.1.2':
+ resolution: {integrity: sha512-FEgtlN8mIUSEAAnlvn7mP8vzaWhEaAEvhSXCqrsijM7K6QqjB11qoRZYEd4AKSCDz8p0/+yH5LzhZ47qt+EyPg==}
- '@vitest/mocker@2.1.1':
- resolution: {integrity: sha512-LNN5VwOEdJqCmJ/2XJBywB11DLlkbY0ooDJW3uRX5cZyYCrc4PI/ePX0iQhE3BiEGiQmK4GE7Q/PqCkkaiPnrA==}
+ '@vitest/mocker@2.1.2':
+ resolution: {integrity: sha512-ExElkCGMS13JAJy+812fw1aCv2QO/LBK6CyO4WOPAzLTmve50gydOlWhgdBJPx2ztbADUq3JVI0C5U+bShaeEA==}
peerDependencies:
- '@vitest/spy': 2.1.1
+ '@vitest/spy': 2.1.2
msw: ^2.3.5
vite: ^5.0.0
peerDependenciesMeta:
@@ -3555,25 +3547,25 @@ packages:
vite:
optional: true
- '@vitest/pretty-format@2.1.1':
- resolution: {integrity: sha512-SjxPFOtuINDUW8/UkElJYQSFtnWX7tMksSGW0vfjxMneFqxVr8YJ979QpMbDW7g+BIiq88RAGDjf7en6rvLPPQ==}
+ '@vitest/pretty-format@2.1.2':
+ resolution: {integrity: sha512-FIoglbHrSUlOJPDGIrh2bjX1sNars5HbxlcsFKCtKzu4+5lpsRhOCVcuzp0fEhAGHkPZRIXVNzPcpSlkoZ3LuA==}
- '@vitest/runner@2.1.1':
- resolution: {integrity: sha512-uTPuY6PWOYitIkLPidaY5L3t0JJITdGTSwBtwMjKzo5O6RCOEncz9PUN+0pDidX8kTHYjO0EwUIvhlGpnGpxmA==}
+ '@vitest/runner@2.1.2':
+ resolution: {integrity: sha512-UCsPtvluHO3u7jdoONGjOSil+uON5SSvU9buQh3lP7GgUXHp78guN1wRmZDX4wGK6J10f9NUtP6pO+SFquoMlw==}
- '@vitest/snapshot@2.1.1':
- resolution: {integrity: sha512-BnSku1WFy7r4mm96ha2FzN99AZJgpZOWrAhtQfoxjUU5YMRpq1zmHRq7a5K9/NjqonebO7iVDla+VvZS8BOWMw==}
+ '@vitest/snapshot@2.1.2':
+ resolution: {integrity: sha512-xtAeNsZ++aRIYIUsek7VHzry/9AcxeULlegBvsdLncLmNCR6tR8SRjn8BbDP4naxtccvzTqZ+L1ltZlRCfBZFA==}
- '@vitest/spy@2.1.1':
- resolution: {integrity: sha512-ZM39BnZ9t/xZ/nF4UwRH5il0Sw93QnZXd9NAZGRpIgj0yvVwPpLd702s/Cx955rGaMlyBQkZJ2Ir7qyY48VZ+g==}
+ '@vitest/spy@2.1.2':
+ resolution: {integrity: sha512-GSUi5zoy+abNRJwmFhBDC0yRuVUn8WMlQscvnbbXdKLXX9dE59YbfwXxuJ/mth6eeqIzofU8BB5XDo/Ns/qK2A==}
- '@vitest/ui@2.1.1':
- resolution: {integrity: sha512-IIxo2LkQDA+1TZdPLYPclzsXukBWd5dX2CKpGqH8CCt8Wh0ZuDn4+vuQ9qlppEju6/igDGzjWF/zyorfsf+nHg==}
+ '@vitest/ui@2.1.2':
+ resolution: {integrity: sha512-92gcNzkDnmxOxyHzQrQYRsoV9Q0Aay0r4QMLnV+B+lbqlUWa8nDg9ivyLV5mMVTtGirHsYUGGh/zbIA55gBZqA==}
peerDependencies:
- vitest: 2.1.1
+ vitest: 2.1.2
- '@vitest/utils@2.1.1':
- resolution: {integrity: sha512-Y6Q9TsI+qJ2CC0ZKj6VBb+T8UPz593N113nnUykqwANqhgf3QkZeHFlusgKLTqrnVHbj/XDKZcDHol+dxVT+rQ==}
+ '@vitest/utils@2.1.2':
+ resolution: {integrity: sha512-zMO2KdYy6mx56btx9JvAqAZ6EyS3g49krMPPrgOp1yxGZiA93HumGk+bZ5jIZtOg5/VBYl5eBmGRQHqq4FG6uQ==}
'@webassemblyjs/ast@1.12.1':
resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==}
@@ -3810,6 +3802,14 @@ packages:
resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==}
engines: {node: '>=4'}
+ ast-types@0.14.2:
+ resolution: {integrity: sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==}
+ engines: {node: '>=4'}
+
+ ast-types@0.16.1:
+ resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==}
+ engines: {node: '>=4'}
+
async-lock@1.4.1:
resolution: {integrity: sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==}
@@ -4645,16 +4645,16 @@ packages:
peerDependencies:
eslint: '>=7.0.0'
- eslint-config-turbo@2.1.2:
- resolution: {integrity: sha512-UCNwxBrTOx0K41h1OrwMg7vPdGvcGSAlj40ZzpuUi0S2Muac2UOs+6F2dMYQiKg7lX2HAtyHXlF0T2wlWNHjGg==}
+ eslint-config-turbo@2.1.3:
+ resolution: {integrity: sha512-smdkhd01V/e/I4EjJxaZA1kxZ1vdFCHpyryolxLtRBP0bZTrHDYh1H6NAyZ3Fy1jkhsQzXw+L+6m17ygROvNFw==}
peerDependencies:
eslint: '>6.6.0'
eslint-import-resolver-node@0.3.9:
resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
- eslint-module-utils@2.11.0:
- resolution: {integrity: sha512-gbBE5Hitek/oG6MUVj6sFuzEjA/ClzNflVrLovHi/JgLdC7fiN5gLAY1WIPW1a0V5I999MnsrvVrCOGmmVqDBQ==}
+ eslint-module-utils@2.12.0:
+ resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==}
engines: {node: '>=4'}
peerDependencies:
'@typescript-eslint/parser': '*'
@@ -4674,12 +4674,12 @@ packages:
eslint-import-resolver-webpack:
optional: true
- eslint-plugin-import@2.30.0:
- resolution: {integrity: sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==}
+ eslint-plugin-import@2.31.0:
+ resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==}
engines: {node: '>=4'}
peerDependencies:
'@typescript-eslint/parser': '*'
- eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
+ eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9
peerDependenciesMeta:
'@typescript-eslint/parser':
optional: true
@@ -4696,14 +4696,14 @@ packages:
peerDependencies:
eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
- eslint-plugin-react@7.37.0:
- resolution: {integrity: sha512-IHBePmfWH5lKhJnJ7WB1V+v/GolbB0rjS8XYVCSQCZKaQCAUhMoVoOEn1Ef8Z8Wf0a7l8KTJvuZg5/e4qrZ6nA==}
+ eslint-plugin-react@7.37.1:
+ resolution: {integrity: sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg==}
engines: {node: '>=4'}
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
- eslint-plugin-turbo@2.1.2:
- resolution: {integrity: sha512-q2ikGubfVLZDPEKliiuubZc3sI5oqbKIZJ6fRi6Bldv8E3cMNH3Qt7g6hXZV4+GxwQbzEEteCYSBNbOn1DBqRg==}
+ eslint-plugin-turbo@2.1.3:
+ resolution: {integrity: sha512-I9vPArzyOSYa6bm0iMCgD07MgdExc1VK2wGuVz21g4BUdj83w7mDKyCXR2rwOtCEW+wemFwgxanJ81imQZijNg==}
peerDependencies:
eslint: '>6.6.0'
@@ -4811,6 +4811,12 @@ packages:
resolution: {integrity: sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==}
hasBin: true
+ faster-babel-types@0.1.0:
+ resolution: {integrity: sha512-0bEgAyXBdX330U6WbY80Q/h8k0NAPT3Z3sRlC6Fiv0kxekow9JQv2KBL55jIDFxNKcixjvByNnTZfH4axKSB9g==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@babel/types': ^7
+
fastq@1.17.1:
resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
@@ -5552,8 +5558,8 @@ packages:
resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==}
engines: {node: '>= 0.6.3'}
- ldapts@7.2.0:
- resolution: {integrity: sha512-jFo3JI46nveXgILcEhUxR7N9it9d6gIooGAaem5OdXbXFjb6kIGdtI6FE2Y6SnT+XRvZvHy3diM5sdWzMsMK5w==}
+ ldapts@7.2.1:
+ resolution: {integrity: sha512-2NSA9drjHdRiApF+TO18c+Hy/uyBLs96OS6Gia4+dPQWPxvqDbu3Ji2beCbNCXTvvgxDj4cLZ0WoOZLt5ojfAg==}
engines: {node: '>=18'}
levn@0.4.1:
@@ -5791,6 +5797,9 @@ packages:
engines: {node: '>=10'}
hasBin: true
+ modern-screenshot@4.4.39:
+ resolution: {integrity: sha512-p+I4yLZUDnoJMa5zoi+71nLQmoLQ6WRU4W8vZu1BZk2PlIYOz5mGnj9/7t2lGWKYeOr4zo6pajhY0/9TS5Zcdw==}
+
mpd-parser@1.3.0:
resolution: {integrity: sha512-WgeIwxAqkmb9uTn4ClicXpEQYCEduDqRKfmUdp4X8vmghKfBNXZLYpREn9eqrDx/Tf5LhzRcJLSpi4ohfV742Q==}
hasBin: true
@@ -5852,8 +5861,8 @@ packages:
resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==}
engines: {node: '>= 0.4.0'}
- next-auth@5.0.0-beta.21:
- resolution: {integrity: sha512-VrT6LV9u/o5tMuWxRDN5d/K1OgPskrMHy+aITTwasVfIrkIaU/8UVg3TXH8ynJgzhfzlDx/3hLWGhi+eXQw4qg==}
+ next-auth@5.0.0-beta.22:
+ resolution: {integrity: sha512-QGBo9HGOjmnJBHGXvtFztl0tM5tL0porDlk74HVoCCzXd986ApOlIW3EmiCuho7YzEopgkFiwwmcXpoCrHAtYw==}
peerDependencies:
'@simplewebauthn/browser': ^9.0.1
'@simplewebauthn/server': ^9.0.2
@@ -5871,8 +5880,8 @@ packages:
next-international@1.2.4:
resolution: {integrity: sha512-JQvp+h2iSgA/t8hu5S/Lwow1ZErJutQRdpnplxjv4VTlCiND8T95fYih8BjkHcVhQbtM+Wu9Mb1CM32wD9hlWQ==}
- next@14.2.13:
- resolution: {integrity: sha512-BseY9YNw8QJSwLYD7hlZzl6QVDoSFHL/URN5K64kVEVpCsSOWeyjbIGK+dZUaRViHTaMQX8aqmnn0PHBbGZezg==}
+ next@14.2.14:
+ resolution: {integrity: sha512-Q1coZG17MW0Ly5x76shJ4dkC23woLAhhnDnw+DfTc7EpZSGuWrlsZ3bZaO8t6u1Yu8FVfhkqJE+U8GC7E0GLPQ==}
engines: {node: '>=18.17.0'}
hasBin: true
peerDependencies:
@@ -6533,6 +6542,10 @@ packages:
resolution: {integrity: sha512-GkMg9uOTpIWWKbSsgwb5fA4EavTR+SG/PMPoAY8hkhHfEEY0/vqljY+XHqtDf2cr2IJtoNRDbrrEpZUiZCkYRw==}
engines: {node: '>= 14.16.0'}
+ recast@0.23.9:
+ resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==}
+ engines: {node: '>= 4'}
+
redis-errors@1.2.0:
resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==}
engines: {node: '>=4'}
@@ -6700,8 +6713,8 @@ packages:
safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
- sass@1.79.3:
- resolution: {integrity: sha512-m7dZxh0W9EZ3cw50Me5GOuYm/tVAJAn91SUnohLRo9cXBixGUOdvmryN+dXpwR831bhoY3Zv7rEFt85PUwTmzA==}
+ sass@1.79.4:
+ resolution: {integrity: sha512-K0QDSNPXgyqO4GZq2HO5Q70TLxTH6cIT59RdoCHMivrC8rqzaTw5ab9prjz9KUN1El4FLXrBXJhik61JR4HcGg==}
engines: {node: '>=14.0.0'}
hasBin: true
@@ -7070,8 +7083,8 @@ packages:
resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==}
engines: {node: '>=18'}
- testcontainers@10.13.1:
- resolution: {integrity: sha512-JBbOhxmygj/ouH/47GnoVNt+c55Telh/45IjVxEbDoswsLchVmJiuKiw/eF6lE5i7LN+/99xsrSCttI3YRtirg==}
+ testcontainers@10.13.2:
+ resolution: {integrity: sha512-LfEll+AG/1Ks3n4+IA5lpyBHLiYh/hSfI4+ERa6urwfQscbDU+M2iW1qPQrHQi+xJXQRYy4whyK1IEHdmxWa3Q==}
text-decoder@1.2.0:
resolution: {integrity: sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==}
@@ -7085,6 +7098,9 @@ packages:
through@2.3.8:
resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
+ tiny-invariant@1.3.3:
+ resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
+
tinybench@2.9.0:
resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
@@ -7119,11 +7135,11 @@ packages:
title-case@2.1.1:
resolution: {integrity: sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==}
- tldts-core@6.1.48:
- resolution: {integrity: sha512-3gD9iKn/n2UuFH1uilBviK9gvTNT6iYwdqrj1Vr5mh8FuelvpRNaYVH4pNYqUgOGU4aAdL9X35eLuuj0gRsx+A==}
+ tldts-core@6.1.50:
+ resolution: {integrity: sha512-na2EcZqmdA2iV9zHV7OHQDxxdciEpxrjbkp+aHmZgnZKHzoElLajP59np5/4+sare9fQBfixgvXKx8ev1d7ytw==}
- tldts@6.1.48:
- resolution: {integrity: sha512-SPbnh1zaSzi/OsmHb1vrPNnYuwJbdWjwo5TbBYYMlTtH3/1DSb41t8bcSxkwDmmbG2q6VLPVvQc7Yf23T+1EEw==}
+ tldts@6.1.50:
+ resolution: {integrity: sha512-q9GOap6q3KCsLMdOjXhWU5jVZ8/1dIib898JBRLsN+tBhENpBDcAVQbE0epADOjw11FhQQy9AcbqKGBQPUfTQA==}
hasBin: true
tmp@0.0.33:
@@ -7249,38 +7265,38 @@ packages:
tunnel-agent@0.6.0:
resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
- turbo-darwin-64@2.1.2:
- resolution: {integrity: sha512-3TEBxHWh99h2yIzkuIigMEOXt/ItYQp0aPiJjPd1xN4oDcsKK5AxiFKPH9pdtfIBzYsY59kQhZiFj0ELnSP7Bw==}
+ turbo-darwin-64@2.1.3:
+ resolution: {integrity: sha512-ouJOm0g0YyoBuhmikEujVCBGo3Zr0lbSOWFIsQtWUTItC88F2w2byhjtsYGPXQwMlTbXwmoBU2lOCfWNkeEwHQ==}
cpu: [x64]
os: [darwin]
- turbo-darwin-arm64@2.1.2:
- resolution: {integrity: sha512-he0miWNq2WxJzsH82jS2Z4MXpnkzn9SH8a79iPXiJkq25QREImucscM4RPasXm8wARp91pyysJMq6aasD45CeA==}
+ turbo-darwin-arm64@2.1.3:
+ resolution: {integrity: sha512-j2FOJsK4LAOtHQlb3Oom0yWB/Vi0nF1ljInr311mVzHoFAJRZtfW2fRvdZRb/lBUwjSp8be58qWHzANIcrA0OA==}
cpu: [arm64]
os: [darwin]
- turbo-linux-64@2.1.2:
- resolution: {integrity: sha512-fKUBcc0rK8Vdqv5a/E3CSpMBLG1bzwv+Q0Q83F8fG2ZfNCNKGbcEYABdonNZkkx141Rj03cZQFCgxu3MVEGU+A==}
+ turbo-linux-64@2.1.3:
+ resolution: {integrity: sha512-ubRHkI1gSel7H7wsmxKK8C9UlLWqg/2dkCC88LFupaK6TKgvBKqDqA0Z1M9C/escK0Jsle2k0H8bybV9OYIl4Q==}
cpu: [x64]
os: [linux]
- turbo-linux-arm64@2.1.2:
- resolution: {integrity: sha512-sV8Bpmm0WiuxgbhxymcC7wSsuxfBBieI98GegSwbr/bs1ANAgzCg93urIrdKdQ3/b31zZxQwcaP4FBF1wx1Qdg==}
+ turbo-linux-arm64@2.1.3:
+ resolution: {integrity: sha512-LffUL+e5wv7BtD6DgnM2kKOlDkMo2eRjhbAjVnrCD3wi2ug0tl6NDzajnHHjtaMyOnIf4AvzSKdLWsBxafGBQA==}
cpu: [arm64]
os: [linux]
- turbo-windows-64@2.1.2:
- resolution: {integrity: sha512-wcmIJZI9ORT9ykHGliFE6kWRQrlH930QGSjSgWC8uFChFFuOyUlvC7ttcxuSvU9VqC7NF4C+GVAcFJQ8lTjN7g==}
+ turbo-windows-64@2.1.3:
+ resolution: {integrity: sha512-S9SvcZZoaq5jKr6kA6eF7/xgQhVn8Vh7PVy5lono9zybvhyL4eY++y2PaLToIgL8G9IcbLmgOC73ExNjFBg9XQ==}
cpu: [x64]
os: [win32]
- turbo-windows-arm64@2.1.2:
- resolution: {integrity: sha512-zdnXjrhk7YO6CP+Q5wPueEvOCLH4lDa6C4rrwiakcWcPgcQGbVozJlo4uaQ6awo8HLWQEvOwu84RkWTdLAc/Hw==}
+ turbo-windows-arm64@2.1.3:
+ resolution: {integrity: sha512-twlEo8lRrGbrR6T/ZklUIquW3IlFCEtywklgVA81aIrSBm56+GEVpSrHhIlsx1hiYeSNrs+GpDwZGe+V7fvEVQ==}
cpu: [arm64]
os: [win32]
- turbo@2.1.2:
- resolution: {integrity: sha512-Jb0rbU4iHEVQ18An/YfakdIv9rKnd3zUfSE117EngrfWXFHo3RndVH96US3GsT8VHpwTncPePDBT2t06PaFLrw==}
+ turbo@2.1.3:
+ resolution: {integrity: sha512-lY0yj2GH2a2a3NExZ3rGe+rHUVeFE2aXuRAue57n+08E7Z7N7YCmynju0kPC1grAQzERmoLpKrmzmWd+PNiADw==}
hasBin: true
tweetnacl@0.14.5:
@@ -7328,8 +7344,8 @@ packages:
types-ramda@0.30.1:
resolution: {integrity: sha512-1HTsf5/QVRmLzcGfldPFvkVsAdi1db1BBKzi7iW3KBUlOICg/nKnFS+jGqDJS3YD8VsWbAh7JiHeBvbsw8RPxA==}
- typescript-eslint@8.7.0:
- resolution: {integrity: sha512-nEHbEYJyHwsuf7c3V3RS7Saq+1+la3i0ieR3qP0yjqWSzVmh8Drp47uOl9LjbPANac4S7EFSqvcYIKXUUwIfIQ==}
+ typescript-eslint@8.8.0:
+ resolution: {integrity: sha512-BjIT/VwJ8+0rVO01ZQ2ZVnjE1svFBiRczcpr1t1Yxt7sT25VSbPfrJtDsQ8uQTy2pilX5nI9gwxhUyLULNentw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '*'
@@ -7521,8 +7537,8 @@ packages:
videojs-vtt.js@0.15.5:
resolution: {integrity: sha512-yZbBxvA7QMYn15Lr/ZfhhLPrNpI/RmCSCqgIff57GC2gIrV5YfyzLfLyZMj0NnZSAz8syB4N0nHXpZg9MyrMOQ==}
- vite-node@2.1.1:
- resolution: {integrity: sha512-N/mGckI1suG/5wQI35XeR9rsMsPqKXzq1CdUndzVstBj/HvyxxGctwnK6WX43NGt5L3Z5tcRf83g4TITKJhPrA==}
+ vite-node@2.1.2:
+ resolution: {integrity: sha512-HPcGNN5g/7I2OtPjLqgOtCRu/qhVvBxTUD3qzitmL0SrG1cWFzxzhMDWussxSbrRYWqnKf8P2jiNhPMSN+ymsQ==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
@@ -7565,15 +7581,15 @@ packages:
terser:
optional: true
- vitest@2.1.1:
- resolution: {integrity: sha512-97We7/VC0e9X5zBVkvt7SGQMGrRtn3KtySFQG5fpaMlS+l62eeXRQO633AYhSTC3z7IMebnPPNjGXVGNRFlxBA==}
+ vitest@2.1.2:
+ resolution: {integrity: sha512-veNjLizOMkRrJ6xxb+pvxN6/QAWg95mzcRjtmkepXdN87FNfxAss9RKe2far/G9cQpipfgP2taqg0KiWsquj8A==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
'@edge-runtime/vm': '*'
'@types/node': ^18.0.0 || >=20.0.0
- '@vitest/browser': 2.1.1
- '@vitest/ui': 2.1.1
+ '@vitest/browser': 2.1.2
+ '@vitest/ui': 2.1.2
happy-dom: '*'
jsdom: '*'
peerDependenciesMeta:
@@ -7830,17 +7846,7 @@ snapshots:
'@antfu/ni@0.21.12': {}
- '@auth/core@0.35.0':
- dependencies:
- '@panva/hkdf': 1.2.1
- '@types/cookie': 0.6.0
- cookie: 0.6.0
- jose: 5.9.2
- oauth4webapi: 2.15.0
- preact: 10.11.3
- preact-render-to-string: 5.2.3(preact@10.11.3)
-
- '@auth/core@0.35.2':
+ '@auth/core@0.35.3':
dependencies:
'@panva/hkdf': 1.2.1
'@types/cookie': 0.6.0
@@ -7850,9 +7856,9 @@ snapshots:
preact: 10.11.3
preact-render-to-string: 5.2.3(preact@10.11.3)
- '@auth/drizzle-adapter@1.5.2':
+ '@auth/drizzle-adapter@1.5.3':
dependencies:
- '@auth/core': 0.35.2
+ '@auth/core': 0.35.3
transitivePeerDependencies:
- '@simplewebauthn/browser'
- '@simplewebauthn/server'
@@ -7870,26 +7876,6 @@ snapshots:
'@babel/compat-data@7.25.4': {}
- '@babel/core@7.24.6':
- dependencies:
- '@ampproject/remapping': 2.3.0
- '@babel/code-frame': 7.24.7
- '@babel/generator': 7.25.6
- '@babel/helper-compilation-targets': 7.25.2
- '@babel/helper-module-transforms': 7.25.2(@babel/core@7.24.6)
- '@babel/helpers': 7.25.6
- '@babel/parser': 7.25.6
- '@babel/template': 7.25.0
- '@babel/traverse': 7.25.6
- '@babel/types': 7.24.6
- convert-source-map: 2.0.0
- debug: 4.3.7
- gensync: 1.0.0-beta.2
- json5: 2.2.3
- semver: 6.3.1
- transitivePeerDependencies:
- - supports-color
-
'@babel/core@7.25.2':
dependencies:
'@ampproject/remapping': 2.3.0
@@ -7932,16 +7918,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/helper-module-transforms@7.25.2(@babel/core@7.24.6)':
- dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-module-imports': 7.24.7
- '@babel/helper-simple-access': 7.24.7
- '@babel/helper-validator-identifier': 7.24.7
- '@babel/traverse': 7.25.6
- transitivePeerDependencies:
- - supports-color
-
'@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)':
dependencies:
'@babel/core': 7.25.2
@@ -8020,7 +7996,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/types@7.24.6':
+ '@babel/types@7.25.2':
dependencies:
'@babel/helper-string-parser': 7.24.8
'@babel/helper-validator-identifier': 7.24.7
@@ -8529,77 +8505,77 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.0
- '@mantine/colors-generator@7.13.0(chroma-js@3.1.1)':
+ '@mantine/colors-generator@7.13.2(chroma-js@3.1.1)':
dependencies:
chroma-js: 3.1.1
- '@mantine/core@7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@mantine/core@7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@floating-ui/react': 0.26.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@mantine/hooks': 7.13.0(react@18.3.1)
+ '@mantine/hooks': 7.13.2(react@18.3.1)
clsx: 2.1.1
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react-number-format: 5.4.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- react-remove-scroll: 2.6.0(@types/react@18.3.10)(react@18.3.1)
- react-textarea-autosize: 8.5.3(@types/react@18.3.10)(react@18.3.1)
+ react-remove-scroll: 2.6.0(@types/react@18.3.11)(react@18.3.1)
+ react-textarea-autosize: 8.5.3(@types/react@18.3.11)(react@18.3.1)
type-fest: 4.26.1
transitivePeerDependencies:
- '@types/react'
- '@mantine/dates@7.13.0(@mantine/core@7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.0(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@mantine/dates@7.13.2(@mantine/core@7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@mantine/core': 7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@mantine/hooks': 7.13.0(react@18.3.1)
+ '@mantine/core': 7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@mantine/hooks': 7.13.2(react@18.3.1)
clsx: 2.1.1
dayjs: 1.11.13
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- '@mantine/form@7.13.0(react@18.3.1)':
+ '@mantine/form@7.13.2(react@18.3.1)':
dependencies:
fast-deep-equal: 3.1.3
klona: 2.0.6
react: 18.3.1
- '@mantine/hooks@7.13.0(react@18.3.1)':
+ '@mantine/hooks@7.13.2(react@18.3.1)':
dependencies:
react: 18.3.1
- '@mantine/modals@7.13.0(@mantine/core@7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.0(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@mantine/modals@7.13.2(@mantine/core@7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@mantine/core': 7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@mantine/hooks': 7.13.0(react@18.3.1)
+ '@mantine/core': 7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@mantine/hooks': 7.13.2(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- '@mantine/notifications@7.13.0(@mantine/core@7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.0(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@mantine/notifications@7.13.2(@mantine/core@7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@mantine/core': 7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@mantine/hooks': 7.13.0(react@18.3.1)
- '@mantine/store': 7.13.0(react@18.3.1)
+ '@mantine/core': 7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@mantine/hooks': 7.13.2(react@18.3.1)
+ '@mantine/store': 7.13.2(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@mantine/spotlight@7.13.0(@mantine/core@7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.0(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@mantine/spotlight@7.13.2(@mantine/core@7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@mantine/core': 7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@mantine/hooks': 7.13.0(react@18.3.1)
- '@mantine/store': 7.13.0(react@18.3.1)
+ '@mantine/core': 7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@mantine/hooks': 7.13.2(react@18.3.1)
+ '@mantine/store': 7.13.2(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- '@mantine/store@7.13.0(react@18.3.1)':
+ '@mantine/store@7.13.2(react@18.3.1)':
dependencies:
react: 18.3.1
- '@mantine/tiptap@7.13.0(@mantine/core@7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.0(react@18.3.1))(@tiptap/extension-link@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4))(@tiptap/react@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@mantine/tiptap@7.13.2(@mantine/core@7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.2(react@18.3.1))(@tiptap/extension-link@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0))(@tiptap/react@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@mantine/core': 7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@mantine/hooks': 7.13.0(react@18.3.1)
- '@tiptap/extension-link': 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)
- '@tiptap/react': 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@mantine/core': 7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@mantine/hooks': 7.13.2(react@18.3.1)
+ '@tiptap/extension-link': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)
+ '@tiptap/react': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
@@ -8618,34 +8594,36 @@ snapshots:
- encoding
- supports-color
- '@million/install@0.0.18':
+ '@million/install@1.0.8':
dependencies:
'@antfu/ni': 0.21.12
'@axiomhq/js': 1.0.0-rc.3
- '@babel/core': 7.25.2
- '@babel/types': 7.25.6
+ '@babel/parser': 7.25.6
+ '@babel/types': 7.25.2
'@clack/prompts': 0.7.0
+ ast-types: 0.14.2
cli-high: 0.4.2
diff: 5.2.0
nanoid: 5.0.7
+ recast: 0.23.9
xycolors: 0.1.2
- transitivePeerDependencies:
- - supports-color
- '@million/lint@1.0.0-rc.84(rollup@4.21.3)(webpack-sources@3.2.3)':
+ '@million/lint@1.0.8(rollup@4.21.3)(webpack-sources@3.2.3)':
dependencies:
'@axiomhq/js': 1.0.0-rc.3
- '@babel/core': 7.24.6
- '@babel/types': 7.24.6
+ '@babel/core': 7.25.2
+ '@babel/types': 7.25.2
'@hono/node-server': 1.13.0(hono@4.6.1)
- '@million/install': 0.0.18
+ '@million/install': 1.0.8
'@rollup/pluginutils': 5.1.0(rollup@4.21.3)
'@rrweb/types': 2.0.0-alpha.16
babel-plugin-syntax-hermes-parser: 0.21.1
ci-info: 4.0.0
esbuild: 0.20.2
+ faster-babel-types: 0.1.0(@babel/types@7.25.2)
hono: 4.6.1
isomorphic-fetch: 3.0.0
+ modern-screenshot: 4.4.39
nanoid: 5.0.7
pako: 2.1.0
pathe: 1.1.2
@@ -8666,37 +8644,37 @@ snapshots:
- utf-8-validate
- webpack-sources
- '@next/env@14.2.13': {}
+ '@next/env@14.2.14': {}
- '@next/eslint-plugin-next@14.2.13':
+ '@next/eslint-plugin-next@14.2.14':
dependencies:
glob: 10.3.10
- '@next/swc-darwin-arm64@14.2.13':
+ '@next/swc-darwin-arm64@14.2.14':
optional: true
- '@next/swc-darwin-x64@14.2.13':
+ '@next/swc-darwin-x64@14.2.14':
optional: true
- '@next/swc-linux-arm64-gnu@14.2.13':
+ '@next/swc-linux-arm64-gnu@14.2.14':
optional: true
- '@next/swc-linux-arm64-musl@14.2.13':
+ '@next/swc-linux-arm64-musl@14.2.14':
optional: true
- '@next/swc-linux-x64-gnu@14.2.13':
+ '@next/swc-linux-x64-gnu@14.2.14':
optional: true
- '@next/swc-linux-x64-musl@14.2.13':
+ '@next/swc-linux-x64-musl@14.2.14':
optional: true
- '@next/swc-win32-arm64-msvc@14.2.13':
+ '@next/swc-win32-arm64-msvc@14.2.14':
optional: true
- '@next/swc-win32-ia32-msvc@14.2.13':
+ '@next/swc-win32-ia32-msvc@14.2.14':
optional: true
- '@next/swc-win32-x64-msvc@14.2.13':
+ '@next/swc-win32-x64-msvc@14.2.14':
optional: true
'@noble/hashes@1.5.0': {}
@@ -8742,7 +8720,7 @@ snapshots:
'@rollup/pluginutils@5.1.0(rollup@4.21.3)':
dependencies:
- '@types/estree': 1.0.5
+ '@types/estree': 1.0.6
estree-walker: 2.0.2
picomatch: 2.3.1
optionalDependencies:
@@ -9156,36 +9134,36 @@ snapshots:
optionalDependencies:
typescript: 5.6.2
- '@tabler/icons-react@3.18.0(react@18.3.1)':
+ '@tabler/icons-react@3.19.0(react@18.3.1)':
dependencies:
- '@tabler/icons': 3.18.0
+ '@tabler/icons': 3.19.0
react: 18.3.1
- '@tabler/icons@3.18.0': {}
+ '@tabler/icons@3.19.0': {}
'@tanstack/match-sorter-utils@8.15.1':
dependencies:
remove-accents: 0.5.0
- '@tanstack/query-core@5.56.2': {}
+ '@tanstack/query-core@5.59.0': {}
'@tanstack/query-devtools@5.58.0': {}
- '@tanstack/react-query-devtools@5.58.0(@tanstack/react-query@5.56.2(react@18.3.1))(react@18.3.1)':
+ '@tanstack/react-query-devtools@5.59.0(@tanstack/react-query@5.59.0(react@18.3.1))(react@18.3.1)':
dependencies:
'@tanstack/query-devtools': 5.58.0
- '@tanstack/react-query': 5.56.2(react@18.3.1)
+ '@tanstack/react-query': 5.59.0(react@18.3.1)
react: 18.3.1
- '@tanstack/react-query-next-experimental@5.56.2(@tanstack/react-query@5.56.2(react@18.3.1))(next@14.2.13(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.3))(react@18.3.1)':
+ '@tanstack/react-query-next-experimental@5.59.0(@tanstack/react-query@5.59.0(react@18.3.1))(next@14.2.14(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.4))(react@18.3.1)':
dependencies:
- '@tanstack/react-query': 5.56.2(react@18.3.1)
- next: 14.2.13(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.3)
+ '@tanstack/react-query': 5.59.0(react@18.3.1)
+ next: 14.2.14(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.4)
react: 18.3.1
- '@tanstack/react-query@5.56.2(react@18.3.1)':
+ '@tanstack/react-query@5.59.0(react@18.3.1)':
dependencies:
- '@tanstack/query-core': 5.56.2
+ '@tanstack/query-core': 5.59.0
react: 18.3.1
'@tanstack/react-table@8.19.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
@@ -9204,163 +9182,167 @@ snapshots:
'@tanstack/virtual-core@3.8.3': {}
- '@testcontainers/mysql@10.13.1':
+ '@testcontainers/mysql@10.13.2':
dependencies:
- testcontainers: 10.13.1
+ testcontainers: 10.13.2
transitivePeerDependencies:
- supports-color
- '@tiptap/core@2.7.4(@tiptap/pm@2.7.4)':
+ '@tiptap/core@2.8.0(@tiptap/pm@2.8.0)':
dependencies:
- '@tiptap/pm': 2.7.4
+ '@tiptap/pm': 2.8.0
- '@tiptap/extension-blockquote@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))':
+ '@tiptap/extension-blockquote@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
- '@tiptap/extension-bold@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))':
+ '@tiptap/extension-bold@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
- '@tiptap/extension-bubble-menu@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)':
+ '@tiptap/extension-bubble-menu@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
- '@tiptap/pm': 2.7.4
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
+ '@tiptap/pm': 2.8.0
tippy.js: 6.3.7
- '@tiptap/extension-bullet-list@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))':
+ '@tiptap/extension-bullet-list@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/extension-list-item@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0)))(@tiptap/extension-text-style@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0)))':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
+ '@tiptap/extension-list-item': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
+ '@tiptap/extension-text-style': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
- '@tiptap/extension-code-block@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)':
+ '@tiptap/extension-code-block@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
- '@tiptap/pm': 2.7.4
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
+ '@tiptap/pm': 2.8.0
- '@tiptap/extension-code@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))':
+ '@tiptap/extension-code@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
- '@tiptap/extension-color@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/extension-text-style@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4)))':
+ '@tiptap/extension-color@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/extension-text-style@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0)))':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
- '@tiptap/extension-text-style': 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
+ '@tiptap/extension-text-style': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
- '@tiptap/extension-document@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))':
+ '@tiptap/extension-document@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
- '@tiptap/extension-dropcursor@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)':
+ '@tiptap/extension-dropcursor@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
- '@tiptap/pm': 2.7.4
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
+ '@tiptap/pm': 2.8.0
- '@tiptap/extension-floating-menu@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)':
+ '@tiptap/extension-floating-menu@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
- '@tiptap/pm': 2.7.4
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
+ '@tiptap/pm': 2.8.0
tippy.js: 6.3.7
- '@tiptap/extension-gapcursor@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)':
+ '@tiptap/extension-gapcursor@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
- '@tiptap/pm': 2.7.4
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
+ '@tiptap/pm': 2.8.0
- '@tiptap/extension-hard-break@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))':
+ '@tiptap/extension-hard-break@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
- '@tiptap/extension-heading@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))':
+ '@tiptap/extension-heading@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
- '@tiptap/extension-highlight@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))':
+ '@tiptap/extension-highlight@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
- '@tiptap/extension-history@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)':
+ '@tiptap/extension-history@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
- '@tiptap/pm': 2.7.4
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
+ '@tiptap/pm': 2.8.0
- '@tiptap/extension-horizontal-rule@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)':
+ '@tiptap/extension-horizontal-rule@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
- '@tiptap/pm': 2.7.4
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
+ '@tiptap/pm': 2.8.0
- '@tiptap/extension-image@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))':
+ '@tiptap/extension-image@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
- '@tiptap/extension-italic@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))':
+ '@tiptap/extension-italic@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
- '@tiptap/extension-link@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)':
+ '@tiptap/extension-link@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
- '@tiptap/pm': 2.7.4
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
+ '@tiptap/pm': 2.8.0
linkifyjs: 4.1.3
- '@tiptap/extension-list-item@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))':
+ '@tiptap/extension-list-item@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
- '@tiptap/extension-ordered-list@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))':
+ '@tiptap/extension-ordered-list@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/extension-list-item@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0)))(@tiptap/extension-text-style@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0)))':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
+ '@tiptap/extension-list-item': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
+ '@tiptap/extension-text-style': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
- '@tiptap/extension-paragraph@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))':
+ '@tiptap/extension-paragraph@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
- '@tiptap/extension-strike@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))':
+ '@tiptap/extension-strike@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
- '@tiptap/extension-table-cell@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))':
+ '@tiptap/extension-table-cell@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
- '@tiptap/extension-table-header@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))':
+ '@tiptap/extension-table-header@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
- '@tiptap/extension-table-row@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))':
+ '@tiptap/extension-table-row@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
- '@tiptap/extension-table@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)':
+ '@tiptap/extension-table@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
- '@tiptap/pm': 2.7.4
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
+ '@tiptap/pm': 2.8.0
- '@tiptap/extension-task-item@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)':
+ '@tiptap/extension-task-item@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
- '@tiptap/pm': 2.7.4
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
+ '@tiptap/pm': 2.8.0
- '@tiptap/extension-task-list@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))':
+ '@tiptap/extension-task-list@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
- '@tiptap/extension-text-align@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))':
+ '@tiptap/extension-text-align@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
- '@tiptap/extension-text-style@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))':
+ '@tiptap/extension-text-style@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
- '@tiptap/extension-text@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))':
+ '@tiptap/extension-text@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
- '@tiptap/extension-underline@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))':
+ '@tiptap/extension-underline@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
- '@tiptap/pm@2.7.4':
+ '@tiptap/pm@2.8.0':
dependencies:
prosemirror-changeset: 2.2.1
prosemirror-collab: 1.3.1
@@ -9381,67 +9363,69 @@ snapshots:
prosemirror-transform: 1.10.0
prosemirror-view: 1.34.2
- '@tiptap/react@2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@tiptap/react@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
- '@tiptap/extension-bubble-menu': 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)
- '@tiptap/extension-floating-menu': 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)
- '@tiptap/pm': 2.7.4
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
+ '@tiptap/extension-bubble-menu': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)
+ '@tiptap/extension-floating-menu': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)
+ '@tiptap/pm': 2.8.0
'@types/use-sync-external-store': 0.0.6
fast-deep-equal: 3.1.3
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
use-sync-external-store: 1.2.2(react@18.3.1)
- '@tiptap/starter-kit@2.7.4':
- dependencies:
- '@tiptap/core': 2.7.4(@tiptap/pm@2.7.4)
- '@tiptap/extension-blockquote': 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))
- '@tiptap/extension-bold': 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))
- '@tiptap/extension-bullet-list': 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))
- '@tiptap/extension-code': 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))
- '@tiptap/extension-code-block': 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)
- '@tiptap/extension-document': 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))
- '@tiptap/extension-dropcursor': 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)
- '@tiptap/extension-gapcursor': 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)
- '@tiptap/extension-hard-break': 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))
- '@tiptap/extension-heading': 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))
- '@tiptap/extension-history': 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)
- '@tiptap/extension-horizontal-rule': 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))(@tiptap/pm@2.7.4)
- '@tiptap/extension-italic': 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))
- '@tiptap/extension-list-item': 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))
- '@tiptap/extension-ordered-list': 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))
- '@tiptap/extension-paragraph': 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))
- '@tiptap/extension-strike': 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))
- '@tiptap/extension-text': 2.7.4(@tiptap/core@2.7.4(@tiptap/pm@2.7.4))
- '@tiptap/pm': 2.7.4
+ '@tiptap/starter-kit@2.8.0(@tiptap/extension-text-style@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0)))':
+ dependencies:
+ '@tiptap/core': 2.8.0(@tiptap/pm@2.8.0)
+ '@tiptap/extension-blockquote': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
+ '@tiptap/extension-bold': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
+ '@tiptap/extension-bullet-list': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/extension-list-item@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0)))(@tiptap/extension-text-style@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0)))
+ '@tiptap/extension-code': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
+ '@tiptap/extension-code-block': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)
+ '@tiptap/extension-document': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
+ '@tiptap/extension-dropcursor': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)
+ '@tiptap/extension-gapcursor': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)
+ '@tiptap/extension-hard-break': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
+ '@tiptap/extension-heading': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
+ '@tiptap/extension-history': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)
+ '@tiptap/extension-horizontal-rule': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/pm@2.8.0)
+ '@tiptap/extension-italic': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
+ '@tiptap/extension-list-item': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
+ '@tiptap/extension-ordered-list': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))(@tiptap/extension-list-item@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0)))(@tiptap/extension-text-style@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0)))
+ '@tiptap/extension-paragraph': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
+ '@tiptap/extension-strike': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
+ '@tiptap/extension-text': 2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))
+ '@tiptap/pm': 2.8.0
+ transitivePeerDependencies:
+ - '@tiptap/extension-text-style'
'@tootallnate/quickjs-emscripten@0.23.0': {}
- '@trpc/client@11.0.0-rc.544(@trpc/server@11.0.0-rc.544)':
+ '@trpc/client@11.0.0-rc.553(@trpc/server@11.0.0-rc.553)':
dependencies:
- '@trpc/server': 11.0.0-rc.544
+ '@trpc/server': 11.0.0-rc.553
- '@trpc/next@11.0.0-rc.544(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.544(@trpc/server@11.0.0-rc.544))(@trpc/react-query@11.0.0-rc.544(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.544(@trpc/server@11.0.0-rc.544))(@trpc/server@11.0.0-rc.544)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.544)(next@14.2.13(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@trpc/next@11.0.0-rc.553(@tanstack/react-query@5.59.0(react@18.3.1))(@trpc/client@11.0.0-rc.553(@trpc/server@11.0.0-rc.553))(@trpc/react-query@11.0.0-rc.553(@tanstack/react-query@5.59.0(react@18.3.1))(@trpc/client@11.0.0-rc.553(@trpc/server@11.0.0-rc.553))(@trpc/server@11.0.0-rc.553)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.553)(next@14.2.14(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.4))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@trpc/client': 11.0.0-rc.544(@trpc/server@11.0.0-rc.544)
- '@trpc/server': 11.0.0-rc.544
- next: 14.2.13(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.3)
+ '@trpc/client': 11.0.0-rc.553(@trpc/server@11.0.0-rc.553)
+ '@trpc/server': 11.0.0-rc.553
+ next: 14.2.14(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.4)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
optionalDependencies:
- '@tanstack/react-query': 5.56.2(react@18.3.1)
- '@trpc/react-query': 11.0.0-rc.544(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.544(@trpc/server@11.0.0-rc.544))(@trpc/server@11.0.0-rc.544)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@tanstack/react-query': 5.59.0(react@18.3.1)
+ '@trpc/react-query': 11.0.0-rc.553(@tanstack/react-query@5.59.0(react@18.3.1))(@trpc/client@11.0.0-rc.553(@trpc/server@11.0.0-rc.553))(@trpc/server@11.0.0-rc.553)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@trpc/react-query@11.0.0-rc.544(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.544(@trpc/server@11.0.0-rc.544))(@trpc/server@11.0.0-rc.544)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@trpc/react-query@11.0.0-rc.553(@tanstack/react-query@5.59.0(react@18.3.1))(@trpc/client@11.0.0-rc.553(@trpc/server@11.0.0-rc.553))(@trpc/server@11.0.0-rc.553)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@tanstack/react-query': 5.56.2(react@18.3.1)
- '@trpc/client': 11.0.0-rc.544(@trpc/server@11.0.0-rc.544)
- '@trpc/server': 11.0.0-rc.544
+ '@tanstack/react-query': 5.59.0(react@18.3.1)
+ '@trpc/client': 11.0.0-rc.553(@trpc/server@11.0.0-rc.553)
+ '@trpc/server': 11.0.0-rc.553
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- '@trpc/server@11.0.0-rc.544': {}
+ '@trpc/server@11.0.0-rc.553': {}
'@tsconfig/node10@1.0.11': {}
@@ -9453,9 +9437,9 @@ snapshots:
'@tsconfig/svelte@1.0.13': {}
- '@turbo/gen@2.1.2(@types/node@20.16.10)(typescript@5.6.2)':
+ '@turbo/gen@2.1.3(@types/node@20.16.10)(typescript@5.6.2)':
dependencies:
- '@turbo/workspaces': 2.1.2
+ '@turbo/workspaces': 2.1.3
commander: 10.0.1
fs-extra: 10.1.0
inquirer: 8.2.6
@@ -9473,7 +9457,7 @@ snapshots:
- supports-color
- typescript
- '@turbo/workspaces@2.1.2':
+ '@turbo/workspaces@2.1.3':
dependencies:
commander: 10.0.1
execa: 5.1.1
@@ -9624,9 +9608,9 @@ snapshots:
'@types/react-dom@18.3.0':
dependencies:
- '@types/react': 18.3.10
+ '@types/react': 18.3.11
- '@types/react@18.3.10':
+ '@types/react@18.3.11':
dependencies:
'@types/prop-types': 15.7.12
csstype: 3.1.3
@@ -9657,7 +9641,7 @@ snapshots:
'@types/swagger-ui-react@4.18.3':
dependencies:
- '@types/react': 18.3.10
+ '@types/react': 18.3.11
'@types/through@0.0.33':
dependencies:
@@ -9679,14 +9663,14 @@ snapshots:
dependencies:
'@types/node': 20.16.10
- '@typescript-eslint/eslint-plugin@8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1)(typescript@5.6.2))(eslint@9.11.1)(typescript@5.6.2)':
+ '@typescript-eslint/eslint-plugin@8.8.0(@typescript-eslint/parser@8.8.0(eslint@9.11.1)(typescript@5.6.2))(eslint@9.11.1)(typescript@5.6.2)':
dependencies:
'@eslint-community/regexpp': 4.11.1
- '@typescript-eslint/parser': 8.7.0(eslint@9.11.1)(typescript@5.6.2)
- '@typescript-eslint/scope-manager': 8.7.0
- '@typescript-eslint/type-utils': 8.7.0(eslint@9.11.1)(typescript@5.6.2)
- '@typescript-eslint/utils': 8.7.0(eslint@9.11.1)(typescript@5.6.2)
- '@typescript-eslint/visitor-keys': 8.7.0
+ '@typescript-eslint/parser': 8.8.0(eslint@9.11.1)(typescript@5.6.2)
+ '@typescript-eslint/scope-manager': 8.8.0
+ '@typescript-eslint/type-utils': 8.8.0(eslint@9.11.1)(typescript@5.6.2)
+ '@typescript-eslint/utils': 8.8.0(eslint@9.11.1)(typescript@5.6.2)
+ '@typescript-eslint/visitor-keys': 8.8.0
eslint: 9.11.1
graphemer: 1.4.0
ignore: 5.3.2
@@ -9697,12 +9681,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.7.0(eslint@9.11.1)(typescript@5.6.2)':
+ '@typescript-eslint/parser@8.8.0(eslint@9.11.1)(typescript@5.6.2)':
dependencies:
- '@typescript-eslint/scope-manager': 8.7.0
- '@typescript-eslint/types': 8.7.0
- '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2)
- '@typescript-eslint/visitor-keys': 8.7.0
+ '@typescript-eslint/scope-manager': 8.8.0
+ '@typescript-eslint/types': 8.8.0
+ '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2)
+ '@typescript-eslint/visitor-keys': 8.8.0
debug: 4.3.7
eslint: 9.11.1
optionalDependencies:
@@ -9710,15 +9694,15 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/scope-manager@8.7.0':
+ '@typescript-eslint/scope-manager@8.8.0':
dependencies:
- '@typescript-eslint/types': 8.7.0
- '@typescript-eslint/visitor-keys': 8.7.0
+ '@typescript-eslint/types': 8.8.0
+ '@typescript-eslint/visitor-keys': 8.8.0
- '@typescript-eslint/type-utils@8.7.0(eslint@9.11.1)(typescript@5.6.2)':
+ '@typescript-eslint/type-utils@8.8.0(eslint@9.11.1)(typescript@5.6.2)':
dependencies:
- '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2)
- '@typescript-eslint/utils': 8.7.0(eslint@9.11.1)(typescript@5.6.2)
+ '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2)
+ '@typescript-eslint/utils': 8.8.0(eslint@9.11.1)(typescript@5.6.2)
debug: 4.3.7
ts-api-utils: 1.3.0(typescript@5.6.2)
optionalDependencies:
@@ -9727,12 +9711,12 @@ snapshots:
- eslint
- supports-color
- '@typescript-eslint/types@8.7.0': {}
+ '@typescript-eslint/types@8.8.0': {}
- '@typescript-eslint/typescript-estree@8.7.0(typescript@5.6.2)':
+ '@typescript-eslint/typescript-estree@8.8.0(typescript@5.6.2)':
dependencies:
- '@typescript-eslint/types': 8.7.0
- '@typescript-eslint/visitor-keys': 8.7.0
+ '@typescript-eslint/types': 8.8.0
+ '@typescript-eslint/visitor-keys': 8.8.0
debug: 4.3.7
fast-glob: 3.3.2
is-glob: 4.0.3
@@ -9744,20 +9728,20 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.7.0(eslint@9.11.1)(typescript@5.6.2)':
+ '@typescript-eslint/utils@8.8.0(eslint@9.11.1)(typescript@5.6.2)':
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1)
- '@typescript-eslint/scope-manager': 8.7.0
- '@typescript-eslint/types': 8.7.0
- '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2)
+ '@typescript-eslint/scope-manager': 8.8.0
+ '@typescript-eslint/types': 8.8.0
+ '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2)
eslint: 9.11.1
transitivePeerDependencies:
- supports-color
- typescript
- '@typescript-eslint/visitor-keys@8.7.0':
+ '@typescript-eslint/visitor-keys@8.8.0':
dependencies:
- '@typescript-eslint/types': 8.7.0
+ '@typescript-eslint/types': 8.8.0
eslint-visitor-keys: 3.4.3
'@umami/node@0.4.0': {}
@@ -9796,18 +9780,18 @@ snapshots:
global: 4.4.0
is-function: 1.0.2
- '@vitejs/plugin-react@4.3.1(vite@5.4.5(@types/node@20.16.10)(sass@1.79.3)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))':
+ '@vitejs/plugin-react@4.3.2(vite@5.4.5(@types/node@20.16.10)(sass@1.79.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))':
dependencies:
'@babel/core': 7.25.2
'@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2)
'@types/babel__core': 7.20.5
react-refresh: 0.14.2
- vite: 5.4.5(@types/node@20.16.10)(sass@1.79.3)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)
+ vite: 5.4.5(@types/node@20.16.10)(sass@1.79.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)
transitivePeerDependencies:
- supports-color
- '@vitest/coverage-v8@2.1.1(vitest@2.1.1(@types/node@20.16.10)(@vitest/ui@2.1.1)(jsdom@25.0.1)(sass@1.79.3)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))':
+ '@vitest/coverage-v8@2.1.2(vitest@2.1.2)':
dependencies:
'@ampproject/remapping': 2.3.0
'@bcoe/v8-coverage': 0.2.3
@@ -9821,58 +9805,58 @@ snapshots:
std-env: 3.7.0
test-exclude: 7.0.1
tinyrainbow: 1.2.0
- vitest: 2.1.1(@types/node@20.16.10)(@vitest/ui@2.1.1)(jsdom@25.0.1)(sass@1.79.3)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)
+ vitest: 2.1.2(@types/node@20.16.10)(@vitest/ui@2.1.2)(jsdom@25.0.1)(sass@1.79.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)
transitivePeerDependencies:
- supports-color
- '@vitest/expect@2.1.1':
+ '@vitest/expect@2.1.2':
dependencies:
- '@vitest/spy': 2.1.1
- '@vitest/utils': 2.1.1
+ '@vitest/spy': 2.1.2
+ '@vitest/utils': 2.1.2
chai: 5.1.1
tinyrainbow: 1.2.0
- '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(vite@5.4.5(@types/node@20.16.10)(sass@1.79.3)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))':
+ '@vitest/mocker@2.1.2(@vitest/spy@2.1.2)(vite@5.4.5(@types/node@20.16.10)(sass@1.79.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))':
dependencies:
- '@vitest/spy': 2.1.1
+ '@vitest/spy': 2.1.2
estree-walker: 3.0.3
magic-string: 0.30.11
optionalDependencies:
- vite: 5.4.5(@types/node@20.16.10)(sass@1.79.3)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)
+ vite: 5.4.5(@types/node@20.16.10)(sass@1.79.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)
- '@vitest/pretty-format@2.1.1':
+ '@vitest/pretty-format@2.1.2':
dependencies:
tinyrainbow: 1.2.0
- '@vitest/runner@2.1.1':
+ '@vitest/runner@2.1.2':
dependencies:
- '@vitest/utils': 2.1.1
+ '@vitest/utils': 2.1.2
pathe: 1.1.2
- '@vitest/snapshot@2.1.1':
+ '@vitest/snapshot@2.1.2':
dependencies:
- '@vitest/pretty-format': 2.1.1
+ '@vitest/pretty-format': 2.1.2
magic-string: 0.30.11
pathe: 1.1.2
- '@vitest/spy@2.1.1':
+ '@vitest/spy@2.1.2':
dependencies:
tinyspy: 3.0.2
- '@vitest/ui@2.1.1(vitest@2.1.1)':
+ '@vitest/ui@2.1.2(vitest@2.1.2)':
dependencies:
- '@vitest/utils': 2.1.1
+ '@vitest/utils': 2.1.2
fflate: 0.8.2
flatted: 3.3.1
pathe: 1.1.2
sirv: 2.0.4
tinyglobby: 0.2.6
tinyrainbow: 1.2.0
- vitest: 2.1.1(@types/node@20.16.10)(@vitest/ui@2.1.1)(jsdom@25.0.1)(sass@1.79.3)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)
+ vitest: 2.1.2(@types/node@20.16.10)(@vitest/ui@2.1.2)(jsdom@25.0.1)(sass@1.79.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)
- '@vitest/utils@2.1.1':
+ '@vitest/utils@2.1.2':
dependencies:
- '@vitest/pretty-format': 2.1.1
+ '@vitest/pretty-format': 2.1.2
loupe: 3.1.1
tinyrainbow: 1.2.0
@@ -10179,6 +10163,14 @@ snapshots:
dependencies:
tslib: 2.7.0
+ ast-types@0.14.2:
+ dependencies:
+ tslib: 2.7.0
+
+ ast-types@0.16.1:
+ dependencies:
+ tslib: 2.7.0
+
async-lock@1.4.1: {}
async@3.2.6: {}
@@ -10841,10 +10833,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- drizzle-orm@0.33.0(@types/better-sqlite3@7.6.11)(@types/react@18.3.10)(better-sqlite3@11.3.0)(mysql2@3.11.3)(react@18.3.1):
+ drizzle-orm@0.33.0(@types/better-sqlite3@7.6.11)(@types/react@18.3.11)(better-sqlite3@11.3.0)(mysql2@3.11.3)(react@18.3.1):
optionalDependencies:
'@types/better-sqlite3': 7.6.11
- '@types/react': 18.3.10
+ '@types/react': 18.3.11
better-sqlite3: 11.3.0
mysql2: 3.11.3
react: 18.3.1
@@ -11122,10 +11114,10 @@ snapshots:
dependencies:
eslint: 9.11.1
- eslint-config-turbo@2.1.2(eslint@9.11.1):
+ eslint-config-turbo@2.1.3(eslint@9.11.1):
dependencies:
eslint: 9.11.1
- eslint-plugin-turbo: 2.1.2(eslint@9.11.1)
+ eslint-plugin-turbo: 2.1.3(eslint@9.11.1)
eslint-import-resolver-node@0.3.9:
dependencies:
@@ -11135,17 +11127,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.11.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint@9.11.1):
+ eslint-module-utils@2.12.0(@typescript-eslint/parser@8.8.0(eslint@9.11.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint@9.11.1):
dependencies:
debug: 3.2.7
optionalDependencies:
- '@typescript-eslint/parser': 8.7.0(eslint@9.11.1)(typescript@5.6.2)
+ '@typescript-eslint/parser': 8.8.0(eslint@9.11.1)(typescript@5.6.2)
eslint: 9.11.1
eslint-import-resolver-node: 0.3.9
transitivePeerDependencies:
- supports-color
- eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1)(typescript@5.6.2))(eslint@9.11.1):
+ eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.8.0(eslint@9.11.1)(typescript@5.6.2))(eslint@9.11.1):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.8
@@ -11156,7 +11148,7 @@ snapshots:
doctrine: 2.1.0
eslint: 9.11.1
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.11.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint@9.11.1)
+ eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.8.0(eslint@9.11.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint@9.11.1)
hasown: 2.0.2
is-core-module: 2.15.1
is-glob: 4.0.3
@@ -11165,9 +11157,10 @@ snapshots:
object.groupby: 1.0.3
object.values: 1.2.0
semver: 6.3.1
+ string.prototype.trimend: 1.0.8
tsconfig-paths: 3.15.0
optionalDependencies:
- '@typescript-eslint/parser': 8.7.0(eslint@9.11.1)(typescript@5.6.2)
+ '@typescript-eslint/parser': 8.8.0(eslint@9.11.1)(typescript@5.6.2)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
@@ -11197,7 +11190,7 @@ snapshots:
dependencies:
eslint: 9.11.1
- eslint-plugin-react@7.37.0(eslint@9.11.1):
+ eslint-plugin-react@7.37.1(eslint@9.11.1):
dependencies:
array-includes: 3.1.8
array.prototype.findlast: 1.2.5
@@ -11219,7 +11212,7 @@ snapshots:
string.prototype.matchall: 4.0.11
string.prototype.repeat: 1.0.0
- eslint-plugin-turbo@2.1.2(eslint@9.11.1):
+ eslint-plugin-turbo@2.1.3(eslint@9.11.1):
dependencies:
dotenv: 16.0.3
eslint: 9.11.1
@@ -11304,7 +11297,7 @@ snapshots:
estree-walker@3.0.3:
dependencies:
- '@types/estree': 1.0.5
+ '@types/estree': 1.0.6
esutils@2.0.3: {}
@@ -11354,6 +11347,10 @@ snapshots:
dependencies:
strnum: 1.0.5
+ faster-babel-types@0.1.0(@babel/types@7.25.2):
+ dependencies:
+ '@babel/types': 7.25.2
+
fastq@1.17.1:
dependencies:
reusify: 1.0.4
@@ -12034,9 +12031,9 @@ snapshots:
jose@5.9.2: {}
- jotai@2.10.0(@types/react@18.3.10)(react@18.3.1):
+ jotai@2.10.0(@types/react@18.3.11)(react@18.3.1):
optionalDependencies:
- '@types/react': 18.3.10
+ '@types/react': 18.3.11
react: 18.3.1
js-file-download@0.4.12: {}
@@ -12128,7 +12125,7 @@ snapshots:
dependencies:
readable-stream: 2.3.8
- ldapts@7.2.0:
+ ldapts@7.2.1:
dependencies:
'@types/asn1': 0.2.4
asn1: 0.2.6
@@ -12253,12 +12250,12 @@ snapshots:
make-error@1.3.6: {}
- mantine-react-table@2.0.0-beta.6(@mantine/core@7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.13.0(@mantine/core@7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.0(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.0(react@18.3.1))(@tabler/icons-react@3.18.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ mantine-react-table@2.0.0-beta.6(@mantine/core@7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.13.2(@mantine/core@7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.2(react@18.3.1))(@tabler/icons-react@3.19.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
- '@mantine/core': 7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@mantine/dates': 7.13.0(@mantine/core@7.13.0(@mantine/hooks@7.13.0(react@18.3.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.0(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@mantine/hooks': 7.13.0(react@18.3.1)
- '@tabler/icons-react': 3.18.0(react@18.3.1)
+ '@mantine/core': 7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@mantine/dates': 7.13.2(@mantine/core@7.13.2(@mantine/hooks@7.13.2(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.13.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@mantine/hooks': 7.13.2(react@18.3.1)
+ '@tabler/icons-react': 3.19.0(react@18.3.1)
'@tanstack/match-sorter-utils': 8.15.1
'@tanstack/react-table': 8.19.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@tanstack/react-virtual': 3.8.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -12358,6 +12355,8 @@ snapshots:
mkdirp@1.0.4: {}
+ modern-screenshot@4.4.39: {}
+
mpd-parser@1.3.0:
dependencies:
'@babel/runtime': 7.25.6
@@ -12411,10 +12410,10 @@ snapshots:
netmask@2.0.2: {}
- next-auth@5.0.0-beta.21(next@14.2.13(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.3))(react@18.3.1):
+ next-auth@5.0.0-beta.22(next@14.2.14(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.4))(react@18.3.1):
dependencies:
- '@auth/core': 0.35.0
- next: 14.2.13(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.3)
+ '@auth/core': 0.35.3
+ next: 14.2.14(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.4)
react: 18.3.1
next-international@1.2.4:
@@ -12423,35 +12422,9 @@ snapshots:
international-types: 0.8.1
server-only: 0.0.1
- next@14.2.13(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.3):
- dependencies:
- '@next/env': 14.2.13
- '@swc/helpers': 0.5.5
- busboy: 1.6.0
- caniuse-lite: 1.0.30001660
- graceful-fs: 4.2.11
- postcss: 8.4.31
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- styled-jsx: 5.1.1(@babel/core@7.24.6)(react@18.3.1)
- optionalDependencies:
- '@next/swc-darwin-arm64': 14.2.13
- '@next/swc-darwin-x64': 14.2.13
- '@next/swc-linux-arm64-gnu': 14.2.13
- '@next/swc-linux-arm64-musl': 14.2.13
- '@next/swc-linux-x64-gnu': 14.2.13
- '@next/swc-linux-x64-musl': 14.2.13
- '@next/swc-win32-arm64-msvc': 14.2.13
- '@next/swc-win32-ia32-msvc': 14.2.13
- '@next/swc-win32-x64-msvc': 14.2.13
- sass: 1.79.3
- transitivePeerDependencies:
- - '@babel/core'
- - babel-plugin-macros
-
- next@14.2.13(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.3):
+ next@14.2.14(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.4):
dependencies:
- '@next/env': 14.2.13
+ '@next/env': 14.2.14
'@swc/helpers': 0.5.5
busboy: 1.6.0
caniuse-lite: 1.0.30001660
@@ -12461,16 +12434,16 @@ snapshots:
react-dom: 18.3.1(react@18.3.1)
styled-jsx: 5.1.1(@babel/core@7.25.2)(react@18.3.1)
optionalDependencies:
- '@next/swc-darwin-arm64': 14.2.13
- '@next/swc-darwin-x64': 14.2.13
- '@next/swc-linux-arm64-gnu': 14.2.13
- '@next/swc-linux-arm64-musl': 14.2.13
- '@next/swc-linux-x64-gnu': 14.2.13
- '@next/swc-linux-x64-musl': 14.2.13
- '@next/swc-win32-arm64-msvc': 14.2.13
- '@next/swc-win32-ia32-msvc': 14.2.13
- '@next/swc-win32-x64-msvc': 14.2.13
- sass: 1.79.3
+ '@next/swc-darwin-arm64': 14.2.14
+ '@next/swc-darwin-x64': 14.2.14
+ '@next/swc-linux-arm64-gnu': 14.2.14
+ '@next/swc-linux-arm64-musl': 14.2.14
+ '@next/swc-linux-x64-gnu': 14.2.14
+ '@next/swc-linux-x64-musl': 14.2.14
+ '@next/swc-win32-arm64-msvc': 14.2.14
+ '@next/swc-win32-ia32-msvc': 14.2.14
+ '@next/swc-win32-x64-msvc': 14.2.14
+ sass: 1.79.4
transitivePeerDependencies:
- '@babel/core'
- babel-plugin-macros
@@ -13117,49 +13090,49 @@ snapshots:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1):
+ react-redux@9.1.2(@types/react@18.3.11)(react@18.3.1)(redux@5.0.1):
dependencies:
'@types/use-sync-external-store': 0.0.3
react: 18.3.1
use-sync-external-store: 1.2.2(react@18.3.1)
optionalDependencies:
- '@types/react': 18.3.10
+ '@types/react': 18.3.11
redux: 5.0.1
react-refresh@0.14.2: {}
- react-remove-scroll-bar@2.3.6(@types/react@18.3.10)(react@18.3.1):
+ react-remove-scroll-bar@2.3.6(@types/react@18.3.11)(react@18.3.1):
dependencies:
react: 18.3.1
- react-style-singleton: 2.2.1(@types/react@18.3.10)(react@18.3.1)
+ react-style-singleton: 2.2.1(@types/react@18.3.11)(react@18.3.1)
tslib: 2.7.0
optionalDependencies:
- '@types/react': 18.3.10
+ '@types/react': 18.3.11
- react-remove-scroll@2.6.0(@types/react@18.3.10)(react@18.3.1):
+ react-remove-scroll@2.6.0(@types/react@18.3.11)(react@18.3.1):
dependencies:
react: 18.3.1
- react-remove-scroll-bar: 2.3.6(@types/react@18.3.10)(react@18.3.1)
- react-style-singleton: 2.2.1(@types/react@18.3.10)(react@18.3.1)
+ react-remove-scroll-bar: 2.3.6(@types/react@18.3.11)(react@18.3.1)
+ react-style-singleton: 2.2.1(@types/react@18.3.11)(react@18.3.1)
tslib: 2.7.0
- use-callback-ref: 1.3.2(@types/react@18.3.10)(react@18.3.1)
- use-sidecar: 1.1.2(@types/react@18.3.10)(react@18.3.1)
+ use-callback-ref: 1.3.2(@types/react@18.3.11)(react@18.3.1)
+ use-sidecar: 1.1.2(@types/react@18.3.11)(react@18.3.1)
optionalDependencies:
- '@types/react': 18.3.10
+ '@types/react': 18.3.11
react-simple-code-editor@0.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- react-style-singleton@2.2.1(@types/react@18.3.10)(react@18.3.1):
+ react-style-singleton@2.2.1(@types/react@18.3.11)(react@18.3.1):
dependencies:
get-nonce: 1.0.1
invariant: 2.2.4
react: 18.3.1
tslib: 2.7.0
optionalDependencies:
- '@types/react': 18.3.10
+ '@types/react': 18.3.11
react-syntax-highlighter@15.5.0(react@18.3.1):
dependencies:
@@ -13170,12 +13143,12 @@ snapshots:
react: 18.3.1
refractor: 3.6.0
- react-textarea-autosize@8.5.3(@types/react@18.3.10)(react@18.3.1):
+ react-textarea-autosize@8.5.3(@types/react@18.3.11)(react@18.3.1):
dependencies:
'@babel/runtime': 7.25.6
react: 18.3.1
use-composed-ref: 1.3.0(react@18.3.1)
- use-latest: 1.2.1(@types/react@18.3.10)(react@18.3.1)
+ use-latest: 1.2.1(@types/react@18.3.11)(react@18.3.1)
transitivePeerDependencies:
- '@types/react'
@@ -13222,6 +13195,14 @@ snapshots:
readdirp@4.0.1: {}
+ recast@0.23.9:
+ dependencies:
+ ast-types: 0.16.1
+ esprima: 4.0.1
+ source-map: 0.6.1
+ tiny-invariant: 1.3.3
+ tslib: 2.7.0
+
redis-errors@1.2.0: {}
redis-parser@3.0.0:
@@ -13411,7 +13392,7 @@ snapshots:
safer-buffer@2.1.2: {}
- sass@1.79.3:
+ sass@1.79.4:
dependencies:
chokidar: 4.0.0
immutable: 4.3.7
@@ -13703,13 +13684,6 @@ snapshots:
strnum@1.0.5: {}
- styled-jsx@5.1.1(@babel/core@7.24.6)(react@18.3.1):
- dependencies:
- client-only: 0.0.1
- react: 18.3.1
- optionalDependencies:
- '@babel/core': 7.24.6
-
styled-jsx@5.1.1(@babel/core@7.25.2)(react@18.3.1):
dependencies:
client-only: 0.0.1
@@ -13763,7 +13737,7 @@ snapshots:
transitivePeerDependencies:
- debug
- swagger-ui-react@5.17.14(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ swagger-ui-react@5.17.14(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
'@babel/runtime-corejs3': 7.25.6
'@braintree/sanitize-url': 7.0.2
@@ -13787,7 +13761,7 @@ snapshots:
react-immutable-proptypes: 2.2.0(immutable@3.8.2)
react-immutable-pure-component: 2.2.2(immutable@3.8.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react-inspector: 6.0.2(react@18.3.1)
- react-redux: 9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1)
+ react-redux: 9.1.2(@types/react@18.3.11)(react@18.3.1)(redux@5.0.1)
react-syntax-highlighter: 15.5.0(react@18.3.1)
redux: 5.0.1
redux-immutable: 4.0.0(immutable@3.8.2)
@@ -13882,7 +13856,7 @@ snapshots:
glob: 10.4.5
minimatch: 9.0.5
- testcontainers@10.13.1:
+ testcontainers@10.13.2:
dependencies:
'@balena/dockerignore': 1.0.2
'@types/dockerode': 3.3.31
@@ -13912,6 +13886,8 @@ snapshots:
through@2.3.8: {}
+ tiny-invariant@1.3.3: {}
+
tinybench@2.9.0: {}
tinycolor2@1.6.0: {}
@@ -13943,11 +13919,11 @@ snapshots:
no-case: 2.3.2
upper-case: 1.1.3
- tldts-core@6.1.48: {}
+ tldts-core@6.1.50: {}
- tldts@6.1.48:
+ tldts@6.1.50:
dependencies:
- tldts-core: 6.1.48
+ tldts-core: 6.1.50
tmp@0.0.33:
dependencies:
@@ -13976,7 +13952,7 @@ snapshots:
tough-cookie@5.0.0:
dependencies:
- tldts: 6.1.48
+ tldts: 6.1.50
tr46@0.0.3: {}
@@ -14004,10 +13980,10 @@ snapshots:
triple-beam@1.4.1: {}
- trpc-swagger@1.2.6(patch_hash=6s72z7zx33c52iesv5sewipn6i)(@trpc/client@11.0.0-rc.544(@trpc/server@11.0.0-rc.544))(@trpc/server@11.0.0-rc.544)(zod@3.23.8):
+ trpc-swagger@1.2.6(patch_hash=6s72z7zx33c52iesv5sewipn6i)(@trpc/client@11.0.0-rc.553(@trpc/server@11.0.0-rc.553))(@trpc/server@11.0.0-rc.553)(zod@3.23.8):
dependencies:
- '@trpc/client': 11.0.0-rc.544(@trpc/server@11.0.0-rc.544)
- '@trpc/server': 11.0.0-rc.544
+ '@trpc/client': 11.0.0-rc.553(@trpc/server@11.0.0-rc.553)
+ '@trpc/server': 11.0.0-rc.553
chalk-scripts: 1.2.8
co-body: 6.2.0
lodash.clonedeep: 4.5.0
@@ -14070,32 +14046,32 @@ snapshots:
dependencies:
safe-buffer: 5.2.1
- turbo-darwin-64@2.1.2:
+ turbo-darwin-64@2.1.3:
optional: true
- turbo-darwin-arm64@2.1.2:
+ turbo-darwin-arm64@2.1.3:
optional: true
- turbo-linux-64@2.1.2:
+ turbo-linux-64@2.1.3:
optional: true
- turbo-linux-arm64@2.1.2:
+ turbo-linux-arm64@2.1.3:
optional: true
- turbo-windows-64@2.1.2:
+ turbo-windows-64@2.1.3:
optional: true
- turbo-windows-arm64@2.1.2:
+ turbo-windows-arm64@2.1.3:
optional: true
- turbo@2.1.2:
+ turbo@2.1.3:
optionalDependencies:
- turbo-darwin-64: 2.1.2
- turbo-darwin-arm64: 2.1.2
- turbo-linux-64: 2.1.2
- turbo-linux-arm64: 2.1.2
- turbo-windows-64: 2.1.2
- turbo-windows-arm64: 2.1.2
+ turbo-darwin-64: 2.1.3
+ turbo-darwin-arm64: 2.1.3
+ turbo-linux-64: 2.1.3
+ turbo-linux-arm64: 2.1.3
+ turbo-windows-64: 2.1.3
+ turbo-windows-arm64: 2.1.3
tweetnacl@0.14.5: {}
@@ -14154,11 +14130,11 @@ snapshots:
dependencies:
ts-toolbelt: 9.6.0
- typescript-eslint@8.7.0(eslint@9.11.1)(typescript@5.6.2):
+ typescript-eslint@8.8.0(eslint@9.11.1)(typescript@5.6.2):
dependencies:
- '@typescript-eslint/eslint-plugin': 8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1)(typescript@5.6.2))(eslint@9.11.1)(typescript@5.6.2)
- '@typescript-eslint/parser': 8.7.0(eslint@9.11.1)(typescript@5.6.2)
- '@typescript-eslint/utils': 8.7.0(eslint@9.11.1)(typescript@5.6.2)
+ '@typescript-eslint/eslint-plugin': 8.8.0(@typescript-eslint/parser@8.8.0(eslint@9.11.1)(typescript@5.6.2))(eslint@9.11.1)(typescript@5.6.2)
+ '@typescript-eslint/parser': 8.8.0(eslint@9.11.1)(typescript@5.6.2)
+ '@typescript-eslint/utils': 8.8.0(eslint@9.11.1)(typescript@5.6.2)
optionalDependencies:
typescript: 5.6.2
transitivePeerDependencies:
@@ -14261,12 +14237,12 @@ snapshots:
url-toolkit@2.2.5: {}
- use-callback-ref@1.3.2(@types/react@18.3.10)(react@18.3.1):
+ use-callback-ref@1.3.2(@types/react@18.3.11)(react@18.3.1):
dependencies:
react: 18.3.1
tslib: 2.7.0
optionalDependencies:
- '@types/react': 18.3.10
+ '@types/react': 18.3.11
use-composed-ref@1.3.0(react@18.3.1):
dependencies:
@@ -14278,26 +14254,26 @@ snapshots:
dequal: 2.0.3
react: 18.3.1
- use-isomorphic-layout-effect@1.1.2(@types/react@18.3.10)(react@18.3.1):
+ use-isomorphic-layout-effect@1.1.2(@types/react@18.3.11)(react@18.3.1):
dependencies:
react: 18.3.1
optionalDependencies:
- '@types/react': 18.3.10
+ '@types/react': 18.3.11
- use-latest@1.2.1(@types/react@18.3.10)(react@18.3.1):
+ use-latest@1.2.1(@types/react@18.3.11)(react@18.3.1):
dependencies:
react: 18.3.1
- use-isomorphic-layout-effect: 1.1.2(@types/react@18.3.10)(react@18.3.1)
+ use-isomorphic-layout-effect: 1.1.2(@types/react@18.3.11)(react@18.3.1)
optionalDependencies:
- '@types/react': 18.3.10
+ '@types/react': 18.3.11
- use-sidecar@1.1.2(@types/react@18.3.10)(react@18.3.1):
+ use-sidecar@1.1.2(@types/react@18.3.11)(react@18.3.1):
dependencies:
detect-node-es: 1.1.0
react: 18.3.1
tslib: 2.7.0
optionalDependencies:
- '@types/react': 18.3.10
+ '@types/react': 18.3.11
use-sync-external-store@1.2.2(react@18.3.1):
dependencies:
@@ -14341,12 +14317,12 @@ snapshots:
dependencies:
global: 4.4.0
- vite-node@2.1.1(@types/node@20.16.10)(sass@1.79.3)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0):
+ vite-node@2.1.2(@types/node@20.16.10)(sass@1.79.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0):
dependencies:
cac: 6.7.14
debug: 4.3.7
pathe: 1.1.2
- vite: 5.4.5(@types/node@20.16.10)(sass@1.79.3)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)
+ vite: 5.4.5(@types/node@20.16.10)(sass@1.79.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)
transitivePeerDependencies:
- '@types/node'
- less
@@ -14358,18 +14334,18 @@ snapshots:
- supports-color
- terser
- vite-tsconfig-paths@5.0.1(typescript@5.6.2)(vite@5.4.5(@types/node@20.16.10)(sass@1.79.3)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)):
+ vite-tsconfig-paths@5.0.1(typescript@5.6.2)(vite@5.4.5(@types/node@20.16.10)(sass@1.79.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)):
dependencies:
debug: 4.3.7
globrex: 0.1.2
tsconfck: 3.1.3(typescript@5.6.2)
optionalDependencies:
- vite: 5.4.5(@types/node@20.16.10)(sass@1.79.3)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)
+ vite: 5.4.5(@types/node@20.16.10)(sass@1.79.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)
transitivePeerDependencies:
- supports-color
- typescript
- vite@5.4.5(@types/node@20.16.10)(sass@1.79.3)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0):
+ vite@5.4.5(@types/node@20.16.10)(sass@1.79.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0):
dependencies:
esbuild: 0.21.5
postcss: 8.4.47
@@ -14377,19 +14353,19 @@ snapshots:
optionalDependencies:
'@types/node': 20.16.10
fsevents: 2.3.3
- sass: 1.79.3
+ sass: 1.79.4
sugarss: 4.0.1(postcss@8.4.47)
terser: 5.32.0
- vitest@2.1.1(@types/node@20.16.10)(@vitest/ui@2.1.1)(jsdom@25.0.1)(sass@1.79.3)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0):
+ vitest@2.1.2(@types/node@20.16.10)(@vitest/ui@2.1.2)(jsdom@25.0.1)(sass@1.79.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0):
dependencies:
- '@vitest/expect': 2.1.1
- '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(vite@5.4.5(@types/node@20.16.10)(sass@1.79.3)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))
- '@vitest/pretty-format': 2.1.1
- '@vitest/runner': 2.1.1
- '@vitest/snapshot': 2.1.1
- '@vitest/spy': 2.1.1
- '@vitest/utils': 2.1.1
+ '@vitest/expect': 2.1.2
+ '@vitest/mocker': 2.1.2(@vitest/spy@2.1.2)(vite@5.4.5(@types/node@20.16.10)(sass@1.79.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))
+ '@vitest/pretty-format': 2.1.2
+ '@vitest/runner': 2.1.2
+ '@vitest/snapshot': 2.1.2
+ '@vitest/spy': 2.1.2
+ '@vitest/utils': 2.1.2
chai: 5.1.1
debug: 4.3.7
magic-string: 0.30.11
@@ -14399,12 +14375,12 @@ snapshots:
tinyexec: 0.3.0
tinypool: 1.0.1
tinyrainbow: 1.2.0
- vite: 5.4.5(@types/node@20.16.10)(sass@1.79.3)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)
- vite-node: 2.1.1(@types/node@20.16.10)(sass@1.79.3)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)
+ vite: 5.4.5(@types/node@20.16.10)(sass@1.79.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)
+ vite-node: 2.1.2(@types/node@20.16.10)(sass@1.79.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 20.16.10
- '@vitest/ui': 2.1.1(vitest@2.1.1)
+ '@vitest/ui': 2.1.2(vitest@2.1.2)
jsdom: 25.0.1
transitivePeerDependencies:
- less
diff --git a/scripts/generateEncryptionKey.js b/scripts/generateEncryptionKey.js
new file mode 100644
index 000000000..1fc7fdbfe
--- /dev/null
+++ b/scripts/generateEncryptionKey.js
@@ -0,0 +1,7 @@
+// This script generates a random encryption key
+// This key is used to encrypt and decrypt the integration secrets
+// In production it is generated in run.sh and stored in the environment variable ENCRYPTION_KEY
+// during runtime, it's also stored in a file.
+
+const crypto = require("crypto");
+console.log(crypto.randomBytes(32).toString("hex"));
diff --git a/scripts/run.sh b/scripts/run.sh
index 386a48cee..f53752502 100644
--- a/scripts/run.sh
+++ b/scripts/run.sh
@@ -6,6 +6,19 @@ else
node ./db/migrations/$DB_DIALECT/migrate.cjs ./db/migrations/$DB_DIALECT
fi
+# Generates an encryption key if it doesn't exist and saves it to /secrets/encryptionKey
+# Also sets the ENCRYPTION_KEY environment variable
+encryptionKey=""
+if [ -r /secrets/encryptionKey ]; then
+ echo "Encryption key already exists"
+ encryptionKey=$(cat /secrets/encryptionKey)
+else
+ echo "Generating encryption key"
+ encryptionKey=$(node ./generateEncryptionKey.js)
+ echo $encryptionKey > /secrets/encryptionKey
+fi
+export ENCRYPTION_KEY=$encryptionKey
+
# Start nginx proxy
# 1. Replace the HOSTNAME in the nginx template file
# 2. Create the nginx configuration file from the template
diff --git a/tooling/eslint/package.json b/tooling/eslint/package.json
index 01e845759..89480d714 100644
--- a/tooling/eslint/package.json
+++ b/tooling/eslint/package.json
@@ -16,14 +16,14 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
- "@next/eslint-plugin-next": "^14.2.13",
+ "@next/eslint-plugin-next": "^14.2.14",
"eslint-config-prettier": "^9.1.0",
- "eslint-config-turbo": "^2.1.2",
- "eslint-plugin-import": "^2.30.0",
+ "eslint-config-turbo": "^2.1.3",
+ "eslint-plugin-import": "^2.31.0",
"eslint-plugin-jsx-a11y": "^6.10.0",
- "eslint-plugin-react": "^7.37.0",
+ "eslint-plugin-react": "^7.37.1",
"eslint-plugin-react-hooks": "^4.6.2",
- "typescript-eslint": "^8.7.0"
+ "typescript-eslint": "^8.8.0"
},
"devDependencies": {
"@homarr/prettier-config": "workspace:^0.1.0",