From 743aaa145ecd7a3dc96eafd2a07977636ca670f5 Mon Sep 17 00:00:00 2001 From: Abhijeet Singh Date: Tue, 7 Oct 2025 11:41:08 +0530 Subject: [PATCH 01/33] chore: replace all instances of `twitter.com` with `x.com` (#5455) --- README.md | 2 +- netlify.toml | 2 +- packages/hoppscotch-common/src/components/app/Share.vue | 2 +- .../src/services/spotlight/searchers/general.searcher.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 42a99c19cbb..ffe946ee471 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@

-[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen?logo=github)](CODE_OF_CONDUCT.md) [![Website](https://img.shields.io/website?url=https%3A%2F%2Fhoppscotch.io&logo=hoppscotch)](https://hoppscotch.io) [![Tests](https://github.com/hoppscotch/hoppscotch/actions/workflows/tests.yml/badge.svg)](https://github.com/hoppscotch/hoppscotch/actions) [![Tweet](https://img.shields.io/twitter/url?url=https%3A%2F%2Fhoppscotch.io%2F)](https://twitter.com/share?text=%F0%9F%91%BD%20Hoppscotch%20%E2%80%A2%20Open%20source%20API%20development%20ecosystem%20-%20Helps%20you%20create%20requests%20faster,%20saving%20precious%20time%20on%20development.&url=https://hoppscotch.io&hashtags=hoppscotch&via=hoppscotch_io) +[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen?logo=github)](CODE_OF_CONDUCT.md) [![Website](https://img.shields.io/website?url=https%3A%2F%2Fhoppscotch.io&logo=hoppscotch)](https://hoppscotch.io) [![Tests](https://github.com/hoppscotch/hoppscotch/actions/workflows/tests.yml/badge.svg)](https://github.com/hoppscotch/hoppscotch/actions) [![Tweet](https://img.shields.io/twitter/url?url=https%3A%2F%2Fhoppscotch.io%2F)](https://x.com/share?text=%F0%9F%91%BD%20Hoppscotch%20%E2%80%A2%20Open%20source%20API%20development%20ecosystem%20-%20Helps%20you%20create%20requests%20faster,%20saving%20precious%20time%20on%20development.&url=https://hoppscotch.io&hashtags=hoppscotch&via=hoppscotch_io)

diff --git a/netlify.toml b/netlify.toml index 80f0ee912fa..4a3899f4743 100644 --- a/netlify.toml +++ b/netlify.toml @@ -45,7 +45,7 @@ [[redirects]] from = "/twitter" - to = "https://twitter.com/hoppscotch_io" + to = "https://x.com/hoppscotch_io" status = 301 force = true diff --git a/packages/hoppscotch-common/src/components/app/Share.vue b/packages/hoppscotch-common/src/components/app/Share.vue index a0143783b87..838ae236146 100644 --- a/packages/hoppscotch-common/src/components/app/Share.vue +++ b/packages/hoppscotch-common/src/components/app/Share.vue @@ -84,7 +84,7 @@ const platforms = [ { name: "Twitter", icon: IconTwitter, - link: `https://twitter.com/intent/tweet?text=${text} ${description}&url=${url}&via=${twitter}`, + link: `https://x.com/intent/tweet?text=${text} ${description}&url=${url}&via=${twitter}`, }, { name: "Facebook", diff --git a/packages/hoppscotch-common/src/services/spotlight/searchers/general.searcher.ts b/packages/hoppscotch-common/src/services/spotlight/searchers/general.searcher.ts index 38ccac13f5d..697f3e504ef 100644 --- a/packages/hoppscotch-common/src/services/spotlight/searchers/general.searcher.ts +++ b/packages/hoppscotch-common/src/services/spotlight/searchers/general.searcher.ts @@ -73,7 +73,7 @@ export class GeneralSpotlightSearcherService extends StaticSpotlightSearcherServ text: [this.t("spotlight.general.social"), "Twitter"], alternates: ["social", "twitter", "link"], icon: markRaw(IconTwitter), - action: () => this.openURL("https://twitter.com/hoppscotch_io"), + action: () => this.openURL("https://x.com/hoppscotch_io"), }, link_discord: { text: [this.t("spotlight.general.social"), "Discord"], From c31f74829dbb50ba1c52d0eeb22c689f9d7df5a4 Mon Sep 17 00:00:00 2001 From: Prit Rojivadiya Date: Wed, 8 Oct 2025 13:31:29 +0530 Subject: [PATCH 02/33] refactor: cleanup sync logic and imports (#5428) --- .../src/pubsub/pubsub.service.ts | 3 +-- .../team-collection/team-collection.service.ts | 2 +- .../hoppscotch-backend/src/user/user.service.ts | 2 +- packages/hoppscotch-cli/src/utils/pre-request.ts | 3 +-- packages/hoppscotch-common/src/helpers/actions.ts | 3 +-- .../src/helpers/import-export/import/hopp.ts | 4 ++-- .../hoppscotch-common/src/newstore/collections.ts | 2 +- .../std/inspections/extension.inspector.ts | 3 +-- .../src/platform/std/interceptors/proxy.ts | 3 +-- .../std/kernel-interceptors/agent/index.ts | 13 +++++++------ .../services/current-environment-value.service.ts | 4 +--- .../src/services/inspection/index.ts | 3 +-- .../inspectors/environment.inspector.ts | 3 +-- .../inspection/inspectors/response.inspector.ts | 4 +--- .../src/services/persistence/index.ts | 3 +-- .../src/services/secret-environment.service.ts | 3 +-- packages/hoppscotch-data/src/rest/v/15/auth.ts | 6 ++++-- .../src/platform/collections/collections.sync.ts | 15 ++++++--------- .../platform/collections/gqlCollections.sync.ts | 15 ++++++--------- .../platform/environments/environments.sync.ts | 3 +-- .../src/platform/history/history.sync.ts | 3 +-- .../src/platform/settings/settings.sync.ts | 5 +---- .../collections/desktop/gqlCollections.sync.ts | 15 ++++++--------- .../src/platform/collections/desktop/sync.ts | 12 +++++------- .../collections/web/gqlCollections.sync.ts | 15 ++++++--------- .../src/platform/collections/web/sync.ts | 12 +++++------- .../src/platform/environments/desktop/sync.ts | 3 +-- .../src/platform/environments/web/sync.ts | 3 +-- .../src/platform/history/desktop/sync.ts | 3 +-- .../src/platform/history/web/sync.ts | 3 +-- .../src/platform/settings/desktop/sync.ts | 4 +--- .../src/platform/settings/web/sync.ts | 4 +--- .../src/helpers/userManagement.ts | 2 +- 33 files changed, 71 insertions(+), 110 deletions(-) diff --git a/packages/hoppscotch-backend/src/pubsub/pubsub.service.ts b/packages/hoppscotch-backend/src/pubsub/pubsub.service.ts index b80d27965e5..5cdf57b0bd7 100644 --- a/packages/hoppscotch-backend/src/pubsub/pubsub.service.ts +++ b/packages/hoppscotch-backend/src/pubsub/pubsub.service.ts @@ -1,5 +1,4 @@ -import { OnModuleInit } from '@nestjs/common'; -import { Injectable } from '@nestjs/common'; +import { OnModuleInit, Injectable } from '@nestjs/common'; import { PubSub as LocalPubSub } from 'graphql-subscriptions'; import { TopicDef } from './topicsDefs'; diff --git a/packages/hoppscotch-backend/src/team-collection/team-collection.service.ts b/packages/hoppscotch-backend/src/team-collection/team-collection.service.ts index ac6f9147a0c..e5bd38f1862 100644 --- a/packages/hoppscotch-backend/src/team-collection/team-collection.service.ts +++ b/packages/hoppscotch-backend/src/team-collection/team-collection.service.ts @@ -27,6 +27,7 @@ import { escapeSqlLikeString, isValidLength, transformCollectionData, + stringToJson } from 'src/utils'; import * as E from 'fp-ts/Either'; import * as O from 'fp-ts/Option'; @@ -36,7 +37,6 @@ import { TeamRequest, } from '@prisma/client'; import { CollectionFolder } from 'src/types/CollectionFolder'; -import { stringToJson } from 'src/utils'; import { CollectionSearchNode } from 'src/types/CollectionSearchNode'; import { GetCollectionResponse, diff --git a/packages/hoppscotch-backend/src/user/user.service.ts b/packages/hoppscotch-backend/src/user/user.service.ts index cb271e22f92..5b880cfde8e 100644 --- a/packages/hoppscotch-backend/src/user/user.service.ts +++ b/packages/hoppscotch-backend/src/user/user.service.ts @@ -12,9 +12,9 @@ import { USERS_NOT_FOUND, USER_NOT_FOUND, USER_SHORT_DISPLAY_NAME, + USER_UPDATE_FAILED } from 'src/errors'; import { SessionType, User } from './user.model'; -import { USER_UPDATE_FAILED } from 'src/errors'; import { PubSubService } from 'src/pubsub/pubsub.service'; import { encrypt, stringToJson, taskEitherValidateArraySeq } from 'src/utils'; import { UserDataHandler } from './user.data.handler'; diff --git a/packages/hoppscotch-cli/src/utils/pre-request.ts b/packages/hoppscotch-cli/src/utils/pre-request.ts index 40cbeb54123..9dbdd3e52b2 100644 --- a/packages/hoppscotch-cli/src/utils/pre-request.ts +++ b/packages/hoppscotch-cli/src/utils/pre-request.ts @@ -8,6 +8,7 @@ import { parseTemplateStringE, generateJWTToken, HoppCollectionVariable, + calculateHawkHeader } from "@hoppscotch/data"; import { runPreRequestScript } from "@hoppscotch/js-sandbox/node"; import * as A from "fp-ts/Array"; @@ -34,8 +35,6 @@ import { generateDigestAuthHeader, } from "./auth/digest"; -import { calculateHawkHeader } from "@hoppscotch/data"; - /** * Runs pre-request-script runner over given request which extracts set ENVs and * applies them on current request to generate updated request. diff --git a/packages/hoppscotch-common/src/helpers/actions.ts b/packages/hoppscotch-common/src/helpers/actions.ts index 25d0f388ca5..ceeba751785 100644 --- a/packages/hoppscotch-common/src/helpers/actions.ts +++ b/packages/hoppscotch-common/src/helpers/actions.ts @@ -2,14 +2,13 @@ * For example, sending a request. */ -import { Ref, onBeforeUnmount, onMounted, reactive, watch } from "vue" +import { Ref, onBeforeUnmount, onMounted, reactive, watch, computed } from "vue" import { BehaviorSubject } from "rxjs" import { HoppRequestDocument } from "./rest/document" import { Environment, HoppGQLRequest, HoppRESTRequest } from "@hoppscotch/data" import { RESTOptionTabs } from "~/components/http/RequestOptions.vue" import { HoppGQLSaveContext } from "./graphql/document" import { GQLOptionTabs } from "~/components/graphql/RequestOptions.vue" -import { computed } from "vue" import { getKernelMode } from "@hoppscotch/kernel" import { invoke } from "@tauri-apps/api/core" diff --git a/packages/hoppscotch-common/src/helpers/import-export/import/hopp.ts b/packages/hoppscotch-common/src/helpers/import-export/import/hopp.ts index 82f2f26f6d2..f949fbf8ab9 100644 --- a/packages/hoppscotch-common/src/helpers/import-export/import/hopp.ts +++ b/packages/hoppscotch-common/src/helpers/import-export/import/hopp.ts @@ -4,14 +4,14 @@ import { getDefaultGQLRequest, getDefaultRESTRequest, translateToNewRESTCollection, + HoppGQLRequest, + translateToNewGQLCollection } from "@hoppscotch/data" import * as A from "fp-ts/Array" import * as O from "fp-ts/Option" import * as RA from "fp-ts/ReadonlyArray" import * as TE from "fp-ts/TaskEither" import { flow, pipe } from "fp-ts/function" - -import { HoppGQLRequest, translateToNewGQLCollection } from "@hoppscotch/data" import { safeParseJSON } from "~/helpers/functional/json" import { IMPORTER_INVALID_FILE_FORMAT } from "." diff --git a/packages/hoppscotch-common/src/newstore/collections.ts b/packages/hoppscotch-common/src/newstore/collections.ts index bd1e81197d7..088ee4fbcfa 100644 --- a/packages/hoppscotch-common/src/newstore/collections.ts +++ b/packages/hoppscotch-common/src/newstore/collections.ts @@ -8,11 +8,11 @@ import { HoppRESTHeaders, HoppRESTRequest, makeCollection, + GQLHeader } from "@hoppscotch/data" import { cloneDeep } from "lodash-es" import { pluck } from "rxjs/operators" import { resolveSaveContextOnRequestReorder } from "~/helpers/collection/request" -import { GQLHeader } from "@hoppscotch/data" import { HoppInheritedProperty } from "~/helpers/types/HoppInheritedProperties" import { getService } from "~/modules/dioc" import { getI18n } from "~/modules/i18n" diff --git a/packages/hoppscotch-common/src/platform/std/inspections/extension.inspector.ts b/packages/hoppscotch-common/src/platform/std/inspections/extension.inspector.ts index 933cff47c47..ea9b9a61565 100644 --- a/packages/hoppscotch-common/src/platform/std/inspections/extension.inspector.ts +++ b/packages/hoppscotch-common/src/platform/std/inspections/extension.inspector.ts @@ -6,9 +6,8 @@ import { } from "~/services/inspection" import { getI18n } from "~/modules/i18n" import { HoppRESTRequest } from "@hoppscotch/data" -import { computed, markRaw } from "vue" +import { computed, markRaw, Ref } from "vue" import IconAlertTriangle from "~icons/lucide/alert-triangle" -import { Ref } from "vue" import { InterceptorService } from "~/services/interceptor.service" import { ExtensionInterceptorService } from "~/platform/std/interceptors/extension" diff --git a/packages/hoppscotch-common/src/platform/std/interceptors/proxy.ts b/packages/hoppscotch-common/src/platform/std/interceptors/proxy.ts index ed8f521870d..75ec4ee3dfe 100644 --- a/packages/hoppscotch-common/src/platform/std/interceptors/proxy.ts +++ b/packages/hoppscotch-common/src/platform/std/interceptors/proxy.ts @@ -1,9 +1,8 @@ import { Interceptor, RequestRunResult } from "~/services/interceptor.service" -import { AxiosRequestConfig, CancelToken } from "axios" +import axios, { AxiosRequestConfig, CancelToken } from "axios" import * as E from "fp-ts/Either" import { preProcessRequest } from "./helpers" import { v4 } from "uuid" -import axios from "axios" import { settingsStore } from "~/newstore/settings" import { decodeB64StringToArrayBuffer } from "~/helpers/utils/b64" import SettingsProxy from "~/components/settings/Proxy.vue" diff --git a/packages/hoppscotch-common/src/platform/std/kernel-interceptors/agent/index.ts b/packages/hoppscotch-common/src/platform/std/kernel-interceptors/agent/index.ts index 5a3771f3602..8d807bb73e8 100644 --- a/packages/hoppscotch-common/src/platform/std/kernel-interceptors/agent/index.ts +++ b/packages/hoppscotch-common/src/platform/std/kernel-interceptors/agent/index.ts @@ -1,6 +1,12 @@ import { Service } from "dioc" import { markRaw } from "vue" -import { body, relayRequestToNativeAdapter } from "@hoppscotch/kernel" +import { + body, + relayRequestToNativeAdapter, + RelayRequest, + RelayResponse, + RelayCapabilities +} from "@hoppscotch/kernel" import * as E from "fp-ts/Either" import { pipe } from "fp-ts/function" import axios, { CancelTokenSource } from "axios" @@ -8,11 +14,6 @@ import { postProcessRelayRequest, preProcessRelayRequest, } from "~/helpers/functional/process-request" -import { - RelayRequest, - RelayResponse, - RelayCapabilities, -} from "@hoppscotch/kernel" import type { getI18n } from "~/modules/i18n" import { KernelInterceptor, diff --git a/packages/hoppscotch-common/src/services/current-environment-value.service.ts b/packages/hoppscotch-common/src/services/current-environment-value.service.ts index 67947f5fbb0..56680268988 100644 --- a/packages/hoppscotch-common/src/services/current-environment-value.service.ts +++ b/packages/hoppscotch-common/src/services/current-environment-value.service.ts @@ -1,8 +1,6 @@ import { Container, Service } from "dioc" import { cloneDeep } from "lodash-es" -import { nextTick } from "vue" -import { watch } from "vue" -import { reactive, computed } from "vue" +import { reactive, computed, watch, nextTick } from "vue" /** * Defines a environment variable. diff --git a/packages/hoppscotch-common/src/services/inspection/index.ts b/packages/hoppscotch-common/src/services/inspection/index.ts index aa206306fa3..53d3908f347 100644 --- a/packages/hoppscotch-common/src/services/inspection/index.ts +++ b/packages/hoppscotch-common/src/services/inspection/index.ts @@ -4,8 +4,7 @@ import { } from "@hoppscotch/data" import { refDebounced } from "@vueuse/core" import { Service } from "dioc" -import { computed, markRaw, reactive } from "vue" -import { Component, Ref, ref, watch } from "vue" +import { Component, Ref, ref, watch, computed, markRaw, reactive } from "vue" import { HoppRESTResponse } from "~/helpers/types/HoppRESTResponse" import { RESTTabService } from "../tab/rest" /** diff --git a/packages/hoppscotch-common/src/services/inspection/inspectors/environment.inspector.ts b/packages/hoppscotch-common/src/services/inspection/inspectors/environment.inspector.ts index 323eb2c3a58..37f8ff42588 100644 --- a/packages/hoppscotch-common/src/services/inspection/inspectors/environment.inspector.ts +++ b/packages/hoppscotch-common/src/services/inspection/inspectors/environment.inspector.ts @@ -6,7 +6,7 @@ import { InspectorResult, } from ".." import { Service } from "dioc" -import { Ref, markRaw } from "vue" +import { Ref, markRaw, computed } from "vue" import IconPlusCircle from "~icons/lucide/plus-circle" import { HoppRESTRequest, @@ -19,7 +19,6 @@ import { getSelectedEnvironmentType, } from "~/newstore/environments" import { invokeAction } from "~/helpers/actions" -import { computed } from "vue" import { useStreamStatic } from "~/composables/stream" import { SecretEnvironmentService } from "~/services/secret-environment.service" import { RESTTabService } from "~/services/tab/rest" diff --git a/packages/hoppscotch-common/src/services/inspection/inspectors/response.inspector.ts b/packages/hoppscotch-common/src/services/inspection/inspectors/response.inspector.ts index dd9c30d1d85..d35ddb2fb76 100644 --- a/packages/hoppscotch-common/src/services/inspection/inspectors/response.inspector.ts +++ b/packages/hoppscotch-common/src/services/inspection/inspectors/response.inspector.ts @@ -5,11 +5,9 @@ import { HoppRESTRequest, HoppRESTResponseOriginalRequest, } from "@hoppscotch/data" -import { markRaw } from "vue" import IconAlertTriangle from "~icons/lucide/alert-triangle" import { HoppRESTResponse } from "~/helpers/types/HoppRESTResponse" -import { Ref } from "vue" -import { computed } from "vue" +import { computed, Ref, markRaw } from "vue" /** * This inspector is responsible for inspecting the response of a request. diff --git a/packages/hoppscotch-common/src/services/persistence/index.ts b/packages/hoppscotch-common/src/services/persistence/index.ts index 55246ce5f05..da00b0293c7 100644 --- a/packages/hoppscotch-common/src/services/persistence/index.ts +++ b/packages/hoppscotch-common/src/services/persistence/index.ts @@ -5,7 +5,7 @@ import { z } from "zod" import { Service } from "dioc" import { StorageLike, watchDebounced } from "@vueuse/core" -import { assign, clone, isEmpty } from "lodash-es" +import { assign, clone, isEmpty, cloneDeep } from "lodash-es" import { GlobalEnvironmentVariable, @@ -98,7 +98,6 @@ import { CurrentValueService, Variable, } from "../current-environment-value.service" -import { cloneDeep } from "lodash-es" import { fixBrokenRequestVersion } from "~/helpers/fixBrokenRequestVersion" import { fixBrokenEnvironmentVersion } from "~/helpers/fixBrokenEnvironmentVersion" import { diff --git a/packages/hoppscotch-common/src/services/secret-environment.service.ts b/packages/hoppscotch-common/src/services/secret-environment.service.ts index f42841beec0..e4f2313e1af 100644 --- a/packages/hoppscotch-common/src/services/secret-environment.service.ts +++ b/packages/hoppscotch-common/src/services/secret-environment.service.ts @@ -1,6 +1,5 @@ import { Container, Service } from "dioc" -import { nextTick } from "vue" -import { reactive, computed, watch } from "vue" +import { reactive, computed, watch, nextTick } from "vue" /** * Defines a secret environment variable. diff --git a/packages/hoppscotch-data/src/rest/v/15/auth.ts b/packages/hoppscotch-data/src/rest/v/15/auth.ts index b76a4c60838..e3df82b6905 100644 --- a/packages/hoppscotch-data/src/rest/v/15/auth.ts +++ b/packages/hoppscotch-data/src/rest/v/15/auth.ts @@ -6,8 +6,10 @@ import { HoppRESTAuthNone, } from "../1" import { HoppRESTAuthAPIKey } from "../4" -import { AuthCodeGrantTypeParams as AuthCodeGrantTypeParamsOld } from "../7" -import { HoppRESTAuthAWSSignature } from "../7" +import { + AuthCodeGrantTypeParams as AuthCodeGrantTypeParamsOld, + HoppRESTAuthAWSSignature, +} from "../7" import { HoppRESTAuthDigest, PasswordGrantTypeParams as PasswordGrantTypeParamsOld, diff --git a/packages/hoppscotch-selfhost-desktop/src/platform/collections/collections.sync.ts b/packages/hoppscotch-selfhost-desktop/src/platform/collections/collections.sync.ts index cd633ca9b01..8a0e88ea6cb 100644 --- a/packages/hoppscotch-selfhost-desktop/src/platform/collections/collections.sync.ts +++ b/packages/hoppscotch-selfhost-desktop/src/platform/collections/collections.sync.ts @@ -15,9 +15,8 @@ import { HoppRESTRequest, } from "@hoppscotch/data" -import { getSyncInitFunction } from "../../lib/sync" +import { getSyncInitFunction, type StoreSyncDefinitionOf } from "../../lib/sync" -import { StoreSyncDefinitionOf } from "../../lib/sync" import { createMapper } from "../../lib/sync/mapper" import { createRESTChildUserCollection, @@ -144,13 +143,11 @@ const recursivelySyncCollections = async ( // create the requests if (parentCollectionID) { collection.requests.forEach(async (request) => { - const res = - parentCollectionID && - (await createRESTUserRequest( - request.name, - JSON.stringify(request), - parentCollectionID - )) + const res = await createRESTUserRequest( + request.name, + JSON.stringify(request), + parentCollectionID + ) if (res && E.isRight(res)) { const requestId = res.right.createRESTUserRequest.id diff --git a/packages/hoppscotch-selfhost-desktop/src/platform/collections/gqlCollections.sync.ts b/packages/hoppscotch-selfhost-desktop/src/platform/collections/gqlCollections.sync.ts index 775eb01a1ec..cf21946095d 100644 --- a/packages/hoppscotch-selfhost-desktop/src/platform/collections/gqlCollections.sync.ts +++ b/packages/hoppscotch-selfhost-desktop/src/platform/collections/gqlCollections.sync.ts @@ -14,9 +14,8 @@ import { HoppRESTRequest, } from "@hoppscotch/data" -import { getSyncInitFunction } from "../../lib/sync" +import { getSyncInitFunction, type StoreSyncDefinitionOf } from "../../lib/sync" -import { StoreSyncDefinitionOf } from "../../lib/sync" import { createMapper } from "../../lib/sync/mapper" import { createGQLChildUserCollection, @@ -165,13 +164,11 @@ const recursivelySyncCollections = async ( // create the requests if (parentCollectionID) { collection.requests.forEach(async (request) => { - const res = - parentCollectionID && - (await createGQLUserRequest( - request.name, - JSON.stringify(request), - parentCollectionID - )) + const res = await createGQLUserRequest( + request.name, + JSON.stringify(request), + parentCollectionID + ) if (res && E.isRight(res)) { const requestId = res.right.createGQLUserRequest.id diff --git a/packages/hoppscotch-selfhost-desktop/src/platform/environments/environments.sync.ts b/packages/hoppscotch-selfhost-desktop/src/platform/environments/environments.sync.ts index 98e7a103141..842f3de5f91 100644 --- a/packages/hoppscotch-selfhost-desktop/src/platform/environments/environments.sync.ts +++ b/packages/hoppscotch-selfhost-desktop/src/platform/environments/environments.sync.ts @@ -8,11 +8,10 @@ import { settingsStore, } from "@hoppscotch/common/newstore/settings" -import { getSyncInitFunction } from "../../lib/sync" +import { getSyncInitFunction, type StoreSyncDefinitionOf } from "../../lib/sync" import * as E from "fp-ts/Either" -import { StoreSyncDefinitionOf } from "../../lib/sync" import { createMapper } from "../../lib/sync/mapper" import { clearGlobalEnvironmentVariables, diff --git a/packages/hoppscotch-selfhost-desktop/src/platform/history/history.sync.ts b/packages/hoppscotch-selfhost-desktop/src/platform/history/history.sync.ts index 340c185a524..f018edb9b34 100644 --- a/packages/hoppscotch-selfhost-desktop/src/platform/history/history.sync.ts +++ b/packages/hoppscotch-selfhost-desktop/src/platform/history/history.sync.ts @@ -9,11 +9,10 @@ import { settingsStore, } from "@hoppscotch/common/newstore/settings" -import { getSyncInitFunction } from "../../lib/sync" +import { getSyncInitFunction, type StoreSyncDefinitionOf } from "../../lib/sync" import * as E from "fp-ts/Either" -import { StoreSyncDefinitionOf } from "../../lib/sync" import { createUserHistory, deleteAllUserHistory, diff --git a/packages/hoppscotch-selfhost-desktop/src/platform/settings/settings.sync.ts b/packages/hoppscotch-selfhost-desktop/src/platform/settings/settings.sync.ts index bc42556c5f2..ae5543bf9a8 100644 --- a/packages/hoppscotch-selfhost-desktop/src/platform/settings/settings.sync.ts +++ b/packages/hoppscotch-selfhost-desktop/src/platform/settings/settings.sync.ts @@ -1,8 +1,5 @@ import { settingsStore } from "@hoppscotch/common/newstore/settings" - -import { getSyncInitFunction } from "../../lib/sync" - -import { StoreSyncDefinitionOf } from "../../lib/sync" +import { getSyncInitFunction, type StoreSyncDefinitionOf } from "../../lib/sync" import { updateUserSettings } from "./settings.api" diff --git a/packages/hoppscotch-selfhost-web/src/platform/collections/desktop/gqlCollections.sync.ts b/packages/hoppscotch-selfhost-web/src/platform/collections/desktop/gqlCollections.sync.ts index dde51c3d1e2..18ef157c239 100644 --- a/packages/hoppscotch-selfhost-web/src/platform/collections/desktop/gqlCollections.sync.ts +++ b/packages/hoppscotch-selfhost-web/src/platform/collections/desktop/gqlCollections.sync.ts @@ -14,9 +14,8 @@ import { HoppRESTRequest, } from "@hoppscotch/data" -import { getSyncInitFunction } from "@lib/sync" +import { getSyncInitFunction, type StoreSyncDefinitionOf } from "@lib/sync" -import { StoreSyncDefinitionOf } from "@lib/sync" import { createMapper } from "@lib/sync/mapper" import { createGQLChildUserCollection, @@ -164,13 +163,11 @@ const recursivelySyncCollections = async ( // create the requests if (parentCollectionID) { collection.requests.forEach(async (request) => { - const res = - parentCollectionID && - (await createGQLUserRequest( - request.name, - JSON.stringify(request), - parentCollectionID - )) + const res = await createGQLUserRequest( + request.name, + JSON.stringify(request), + parentCollectionID + ) if (res && E.isRight(res)) { const requestId = res.right.createGQLUserRequest.id diff --git a/packages/hoppscotch-selfhost-web/src/platform/collections/desktop/sync.ts b/packages/hoppscotch-selfhost-web/src/platform/collections/desktop/sync.ts index 83249bc677b..11a7c156ecf 100644 --- a/packages/hoppscotch-selfhost-web/src/platform/collections/desktop/sync.ts +++ b/packages/hoppscotch-selfhost-web/src/platform/collections/desktop/sync.ts @@ -160,13 +160,11 @@ const recursivelySyncCollections = async ( // create the requests if (parentCollectionID) { collection.requests.forEach(async (request) => { - const res = - parentCollectionID && - (await createRESTUserRequest( - request.name, - JSON.stringify(request), - parentCollectionID - )) + const res = await createRESTUserRequest( + request.name, + JSON.stringify(request), + parentCollectionID + ) if (res && E.isRight(res)) { const requestId = res.right.createRESTUserRequest.id diff --git a/packages/hoppscotch-selfhost-web/src/platform/collections/web/gqlCollections.sync.ts b/packages/hoppscotch-selfhost-web/src/platform/collections/web/gqlCollections.sync.ts index 94520b02ca3..6b34d0daa95 100644 --- a/packages/hoppscotch-selfhost-web/src/platform/collections/web/gqlCollections.sync.ts +++ b/packages/hoppscotch-selfhost-web/src/platform/collections/web/gqlCollections.sync.ts @@ -14,9 +14,8 @@ import { HoppRESTRequest, } from "@hoppscotch/data" -import { getSyncInitFunction } from "@lib/sync" +import { getSyncInitFunction, type StoreSyncDefinitionOf } from "@lib/sync" -import { StoreSyncDefinitionOf } from "@lib/sync" import { createMapper } from "@lib/sync/mapper" import { createGQLChildUserCollection, @@ -164,13 +163,11 @@ const recursivelySyncCollections = async ( // create the requests if (parentCollectionID) { collection.requests.forEach(async (request) => { - const res = - parentCollectionID && - (await createGQLUserRequest( - request.name, - JSON.stringify(request), - parentCollectionID - )) + const res = await createGQLUserRequest( + request.name, + JSON.stringify(request), + parentCollectionID + ) if (res && E.isRight(res)) { const requestId = res.right.createGQLUserRequest.id diff --git a/packages/hoppscotch-selfhost-web/src/platform/collections/web/sync.ts b/packages/hoppscotch-selfhost-web/src/platform/collections/web/sync.ts index 49669ab8b69..3db492bbf71 100644 --- a/packages/hoppscotch-selfhost-web/src/platform/collections/web/sync.ts +++ b/packages/hoppscotch-selfhost-web/src/platform/collections/web/sync.ts @@ -163,13 +163,11 @@ const recursivelySyncCollections = async ( // create the requests if (parentCollectionID) { collection.requests.forEach(async (request) => { - const res = - parentCollectionID && - (await createRESTUserRequest( - request.name, - JSON.stringify(request), - parentCollectionID - )) + const res = await createRESTUserRequest( + request.name, + JSON.stringify(request), + parentCollectionID + ) if (res && E.isRight(res)) { const requestId = res.right.createRESTUserRequest.id diff --git a/packages/hoppscotch-selfhost-web/src/platform/environments/desktop/sync.ts b/packages/hoppscotch-selfhost-web/src/platform/environments/desktop/sync.ts index 4ec26761d00..8d30d59df0e 100644 --- a/packages/hoppscotch-selfhost-web/src/platform/environments/desktop/sync.ts +++ b/packages/hoppscotch-selfhost-web/src/platform/environments/desktop/sync.ts @@ -8,11 +8,10 @@ import { settingsStore, } from "@hoppscotch/common/newstore/settings" -import { getSyncInitFunction } from "@lib/sync" +import { getSyncInitFunction, type StoreSyncDefinitionOf } from "@lib/sync" import * as E from "fp-ts/Either" -import { StoreSyncDefinitionOf } from "@lib/sync" import { createMapper } from "@lib/sync/mapper" import { clearGlobalEnvironmentVariables, diff --git a/packages/hoppscotch-selfhost-web/src/platform/environments/web/sync.ts b/packages/hoppscotch-selfhost-web/src/platform/environments/web/sync.ts index 4ec26761d00..8d30d59df0e 100644 --- a/packages/hoppscotch-selfhost-web/src/platform/environments/web/sync.ts +++ b/packages/hoppscotch-selfhost-web/src/platform/environments/web/sync.ts @@ -8,11 +8,10 @@ import { settingsStore, } from "@hoppscotch/common/newstore/settings" -import { getSyncInitFunction } from "@lib/sync" +import { getSyncInitFunction, type StoreSyncDefinitionOf } from "@lib/sync" import * as E from "fp-ts/Either" -import { StoreSyncDefinitionOf } from "@lib/sync" import { createMapper } from "@lib/sync/mapper" import { clearGlobalEnvironmentVariables, diff --git a/packages/hoppscotch-selfhost-web/src/platform/history/desktop/sync.ts b/packages/hoppscotch-selfhost-web/src/platform/history/desktop/sync.ts index 5864a36f952..35c4b25d5f0 100644 --- a/packages/hoppscotch-selfhost-web/src/platform/history/desktop/sync.ts +++ b/packages/hoppscotch-selfhost-web/src/platform/history/desktop/sync.ts @@ -9,11 +9,10 @@ import { settingsStore, } from "@hoppscotch/common/newstore/settings" -import { getSyncInitFunction } from "@lib/sync" +import { getSyncInitFunction, type StoreSyncDefinitionOf } from "@lib/sync" import * as E from "fp-ts/Either" -import { StoreSyncDefinitionOf } from "@lib/sync" import { createUserHistory, deleteAllUserHistory, diff --git a/packages/hoppscotch-selfhost-web/src/platform/history/web/sync.ts b/packages/hoppscotch-selfhost-web/src/platform/history/web/sync.ts index 04785dbe86a..08dfa73ec60 100644 --- a/packages/hoppscotch-selfhost-web/src/platform/history/web/sync.ts +++ b/packages/hoppscotch-selfhost-web/src/platform/history/web/sync.ts @@ -9,11 +9,10 @@ import { settingsStore, } from "@hoppscotch/common/newstore/settings" -import { getSyncInitFunction } from "@lib/sync" +import { getSyncInitFunction, type StoreSyncDefinitionOf } from "@lib/sync" import * as E from "fp-ts/Either" -import { StoreSyncDefinitionOf } from "@lib/sync" import { createUserHistory, deleteAllUserHistory, diff --git a/packages/hoppscotch-selfhost-web/src/platform/settings/desktop/sync.ts b/packages/hoppscotch-selfhost-web/src/platform/settings/desktop/sync.ts index 8dfa1fe1662..7103ba0b53c 100644 --- a/packages/hoppscotch-selfhost-web/src/platform/settings/desktop/sync.ts +++ b/packages/hoppscotch-selfhost-web/src/platform/settings/desktop/sync.ts @@ -1,8 +1,6 @@ import { settingsStore } from "@hoppscotch/common/newstore/settings" -import { getSyncInitFunction } from "@lib/sync" - -import { StoreSyncDefinitionOf } from "@lib/sync" +import { getSyncInitFunction, type StoreSyncDefinitionOf } from "@lib/sync" import { updateUserSettings } from "./api" diff --git a/packages/hoppscotch-selfhost-web/src/platform/settings/web/sync.ts b/packages/hoppscotch-selfhost-web/src/platform/settings/web/sync.ts index 8dfa1fe1662..7103ba0b53c 100644 --- a/packages/hoppscotch-selfhost-web/src/platform/settings/web/sync.ts +++ b/packages/hoppscotch-selfhost-web/src/platform/settings/web/sync.ts @@ -1,8 +1,6 @@ import { settingsStore } from "@hoppscotch/common/newstore/settings" -import { getSyncInitFunction } from "@lib/sync" - -import { StoreSyncDefinitionOf } from "@lib/sync" +import { getSyncInitFunction, type StoreSyncDefinitionOf } from "@lib/sync" import { updateUserSettings } from "./api" diff --git a/packages/hoppscotch-sh-admin/src/helpers/userManagement.ts b/packages/hoppscotch-sh-admin/src/helpers/userManagement.ts index c03da5f16d6..0866172ade6 100644 --- a/packages/hoppscotch-sh-admin/src/helpers/userManagement.ts +++ b/packages/hoppscotch-sh-admin/src/helpers/userManagement.ts @@ -67,7 +67,7 @@ export const handleUserDeletion = (deletedUsersList: UserDeletionResult[]) => { // Indicates the actual count of users deleted (filtered via the `isDeleted` field) const deletedUsersCount = deletedUserIDs.length; - if (isBulkAction && deletedUsersCount > 0) { + if (deletedUsersCount > 0) { toastMessages.push({ message: t('state.delete_some_users_success', { count: deletedUsersCount, From 6064186d300c3267170348f15682f8f97f78372a Mon Sep 17 00:00:00 2001 From: Mir Arif Hasan Date: Mon, 20 Oct 2025 19:57:59 +0600 Subject: [PATCH 03/33] fix: reset `ONBOARDING_COMPLETED` to `false` during infra config reset (#5496) fix: reset ONBOARDING_COMPLETED config to false on reset --- .../src/infra-config/infra-config.service.ts | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/packages/hoppscotch-backend/src/infra-config/infra-config.service.ts b/packages/hoppscotch-backend/src/infra-config/infra-config.service.ts index 5a78bb33fe4..8d270544dbf 100644 --- a/packages/hoppscotch-backend/src/infra-config/infra-config.service.ts +++ b/packages/hoppscotch-backend/src/infra-config/infra-config.service.ts @@ -615,21 +615,26 @@ export class InfraConfigService implements OnModuleInit { InfraConfigEnum.ALLOW_ANALYTICS_COLLECTION, ]; try { - const infraConfigDefaultObjs = await getDefaultInfraConfigs(); - const updatedInfraConfigDefaultObjs = infraConfigDefaultObjs.filter( + const defaultConfigs = await getDefaultInfraConfigs(); + + const configsToReset = defaultConfigs.filter( (p) => RESET_EXCLUSION_LIST.includes(p.name) === false, ); + // Update ONBOARDING_COMPLETED value to false + const onboardingCompletedIndex = configsToReset.findIndex( + (p) => p.name === InfraConfigEnum.ONBOARDING_COMPLETED, + ); + if (onboardingCompletedIndex !== -1) { + configsToReset[onboardingCompletedIndex].value = 'false'; + } + await this.prisma.infraConfig.deleteMany({ - where: { - name: { - in: updatedInfraConfigDefaultObjs.map((p) => p.name), - }, - }, + where: { name: { in: configsToReset.map((p) => p.name) } }, }); await this.prisma.infraConfig.createMany({ - data: updatedInfraConfigDefaultObjs, + data: configsToReset, }); stopApp(); From cd084ebbb3bab71f1a6078eac5a05a79c0e7c2e6 Mon Sep 17 00:00:00 2001 From: Mir Arif Hasan Date: Tue, 21 Oct 2025 19:39:39 +0600 Subject: [PATCH 04/33] fix: ensure graceful shutdown and container stop when stopApp is called (#5494) * fix: graceful shutdown handling for backend app * chore: add startup delay to health check script --- healthcheck.sh | 8 ++++++++ packages/hoppscotch-backend/src/infra-config/helper.ts | 8 +++++--- packages/hoppscotch-backend/src/main.ts | 4 +++- prod.Dockerfile | 2 +- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/healthcheck.sh b/healthcheck.sh index 9b3939f1799..8777c74d872 100644 --- a/healthcheck.sh +++ b/healthcheck.sh @@ -8,6 +8,14 @@ curlCheck() { fi } +# Wait for initial startup period to avoid unnecessary error logs +# Check if the container has been running for at least 15 seconds +UPTIME=$(awk '{print int($1)}' /proc/uptime) +if [ "$UPTIME" -lt 15 ]; then + echo "Container still starting up (uptime: ${UPTIME}s), skipping health check..." + exit 0 +fi + if [ "$ENABLE_SUBPATH_BASED_ACCESS" = "true" ]; then curlCheck "http://localhost:${HOPP_AIO_ALTERNATE_PORT:-80}/backend/ping" || exit 1 else diff --git a/packages/hoppscotch-backend/src/infra-config/helper.ts b/packages/hoppscotch-backend/src/infra-config/helper.ts index c07b696f6ab..daf0c9f899f 100644 --- a/packages/hoppscotch-backend/src/infra-config/helper.ts +++ b/packages/hoppscotch-backend/src/infra-config/helper.ts @@ -370,14 +370,16 @@ export async function isInfraConfigTablePopulated(): Promise { } /** - * Stop the app after 5 seconds - * (Docker will re-start the app) + * Stop the app after 5 seconds with graceful shutdown + * (Sends SIGTERM to trigger NestJS graceful shutdown, then Docker container stops) */ export function stopApp() { console.log('Stopping app in 5 seconds...'); setTimeout(() => { - console.log('Stopping app now...'); + console.log('Stopping app now with graceful shutdown...'); + // Send SIGTERM to the current process to trigger graceful shutdown + // This will call app.close() which triggers onModuleDestroy lifecycle hooks process.kill(process.pid, 'SIGTERM'); }, 5000); } diff --git a/packages/hoppscotch-backend/src/main.ts b/packages/hoppscotch-backend/src/main.ts index 6b2b056cc2e..05398c59157 100644 --- a/packages/hoppscotch-backend/src/main.ts +++ b/packages/hoppscotch-backend/src/main.ts @@ -99,8 +99,10 @@ async function bootstrap() { // Graceful shutdown process.on('SIGTERM', async () => { - console.info('SIGTERM signal received'); + console.info('SIGTERM signal received, initiating graceful shutdown...'); await app.close(); + console.info('Application closed successfully'); + process.exit(0); }); } diff --git a/prod.Dockerfile b/prod.Dockerfile index 4774448b8df..a9996af5d70 100644 --- a/prod.Dockerfile +++ b/prod.Dockerfile @@ -183,7 +183,7 @@ COPY aio-subpath-access.Caddyfile /etc/caddy/aio-subpath-access.Caddyfile ENTRYPOINT [ "tini", "--" ] COPY --chmod=755 healthcheck.sh / -HEALTHCHECK --interval=2s CMD /bin/sh /healthcheck.sh +HEALTHCHECK --interval=2s --start-period=15s CMD /bin/sh /healthcheck.sh WORKDIR /dist/backend CMD ["node", "/usr/src/app/aio_run.mjs"] From 53e8b28459fe24b0f8c0dc6dbda80ac07da36198 Mon Sep 17 00:00:00 2001 From: Mir Arif Hasan Date: Wed, 22 Oct 2025 19:18:20 +0600 Subject: [PATCH 05/33] chore: security patch for the dependency chain (#5487) v2025.10.0 --------- Co-authored-by: jamesgeorge007 <25279263+jamesgeorge007@users.noreply.github.com> --- package.json | 11 +- packages/codemirror-lang-graphql/package.json | 6 +- packages/hoppscotch-agent/package.json | 4 +- packages/hoppscotch-backend/package.json | 39 +- packages/hoppscotch-cli/package.json | 4 +- packages/hoppscotch-common/package.json | 28 +- packages/hoppscotch-data/package.json | 2 +- packages/hoppscotch-desktop/package.json | 8 +- .../tauri-plugin-appload/package.json | 4 +- .../tauri-plugin-relay/package.json | 4 +- packages/hoppscotch-js-sandbox/package.json | 4 +- packages/hoppscotch-kernel/package.json | 18 +- .../hoppscotch-selfhost-desktop/package.json | 14 +- packages/hoppscotch-selfhost-web/package.json | 14 +- packages/hoppscotch-sh-admin/package.json | 6 +- pnpm-lock.yaml | 5013 +++++++++-------- prod.Dockerfile | 35 +- 17 files changed, 2750 insertions(+), 2464 deletions(-) diff --git a/package.json b/package.json index 3e6a5ad5a53..744fd8b5ca1 100644 --- a/package.json +++ b/package.json @@ -24,14 +24,14 @@ "./packages/*" ], "devDependencies": { - "@commitlint/cli": "19.8.1", - "@commitlint/config-conventional": "19.8.1", + "@commitlint/cli": "20.1.0", + "@commitlint/config-conventional": "20.0.0", "@hoppscotch/ui": "0.2.5", - "@types/node": "24.5.2", - "cross-env": "10.0.0", + "@types/node": "24.9.1", + "cross-env": "10.1.0", "http-server": "14.1.1", "husky": "9.1.7", - "lint-staged": "16.2.1" + "lint-staged": "16.2.5" }, "pnpm": { "overrides": { @@ -39,6 +39,7 @@ "apiconnect-wsdl": "2.0.36", "cross-spawn": "7.0.6", "execa@0.10.0": "2.0.0", + "nodemailer@<7.0.7": "7.0.7", "sha.js@2.4.11": "2.4.12", "subscriptions-transport-ws>ws": "7.5.10", "vue": "3.5.22", diff --git a/packages/codemirror-lang-graphql/package.json b/packages/codemirror-lang-graphql/package.json index 9c393d355fd..536fe442a86 100644 --- a/packages/codemirror-lang-graphql/package.json +++ b/packages/codemirror-lang-graphql/package.json @@ -24,8 +24,8 @@ "devDependencies": { "@lezer/generator": "1.8.0", "@rollup/plugin-typescript": "12.1.4", - "mocha": "11.7.2", - "rollup": "4.52.2", - "typescript": "5.9.2" + "mocha": "11.7.4", + "rollup": "4.52.5", + "typescript": "5.9.3" } } diff --git a/packages/hoppscotch-agent/package.json b/packages/hoppscotch-agent/package.json index 5623c2f767c..4f0d382b78e 100644 --- a/packages/hoppscotch-agent/package.json +++ b/packages/hoppscotch-agent/package.json @@ -23,12 +23,12 @@ "@iconify-json/lucide": "1.2.68", "@tauri-apps/cli": "^2.0.3", "@types/lodash-es": "4.17.12", - "@types/node": "24.3.0", + "@types/node": "24.9.1", "@vitejs/plugin-vue": "5.1.4", "autoprefixer": "10.4.21", "postcss": "8.5.6", "tailwindcss": "3.4.16", - "typescript": "5.9.2", + "typescript": "5.9.3", "unplugin-icons": "22.2.0", "unplugin-vue-components": "29.0.0", "vite": "6.3.6", diff --git a/packages/hoppscotch-backend/package.json b/packages/hoppscotch-backend/package.json index ba40830fa78..a2e69db7384 100644 --- a/packages/hoppscotch-backend/package.json +++ b/packages/hoppscotch-backend/package.json @@ -31,20 +31,21 @@ }, "dependencies": { "@apollo/server": "4.12.1", + "@as-integrations/express5": "1.1.2", "@nestjs-modules/mailer": "2.0.2", - "@nestjs/apollo": "13.1.0", + "@nestjs/apollo": "13.2.1", "@nestjs/common": "11.1.6", "@nestjs/config": "4.0.2", "@nestjs/core": "11.1.6", - "@nestjs/graphql": "13.1.0", - "@nestjs/jwt": "11.0.0", + "@nestjs/graphql": "13.2.0", + "@nestjs/jwt": "11.0.1", "@nestjs/passport": "11.0.0", "@nestjs/platform-express": "11.1.6", "@nestjs/schedule": "6.0.1", - "@nestjs/swagger": "11.2.0", + "@nestjs/swagger": "11.2.1", "@nestjs/terminus": "11.0.0", "@nestjs/throttler": "6.4.0", - "@prisma/client": "6.16.2", + "@prisma/client": "6.17.1", "argon2": "0.44.0", "bcrypt": "6.0.0", "class-transformer": "0.5.1", @@ -61,54 +62,54 @@ "handlebars": "4.7.8", "io-ts": "2.2.22", "morgan": "1.10.1", - "nodemailer": "7.0.6", + "nodemailer": "7.0.9", "passport": "0.7.0", "passport-github2": "0.1.12", "passport-google-oauth20": "2.0.0", "passport-jwt": "4.0.1", "passport-local": "1.0.0", "passport-microsoft": "2.1.0", - "posthog-node": "5.8.8", - "prisma": "6.16.2", + "posthog-node": "5.10.0", + "prisma": "6.17.1", "reflect-metadata": "0.2.2", "rimraf": "6.0.1", "rxjs": "7.8.2" }, "devDependencies": { "@eslint/eslintrc": "3.3.1", - "@eslint/js": "9.36.0", + "@eslint/js": "9.37.0", "@nestjs/cli": "11.0.10", - "@nestjs/schematics": "11.0.7", + "@nestjs/schematics": "11.0.9", "@nestjs/testing": "11.1.6", "@relmify/jest-fp-ts": "2.1.1", "@types/bcrypt": "6.0.0", "@types/cookie-parser": "1.4.9", "@types/express": "5.0.3", "@types/jest": "30.0.0", - "@types/node": "24.5.2", - "@types/nodemailer": "7.0.1", + "@types/node": "24.9.1", + "@types/nodemailer": "7.0.2", "@types/passport-github2": "1.2.9", "@types/passport-google-oauth20": "2.0.16", "@types/passport-jwt": "4.0.1", "@types/passport-microsoft": "2.1.0", "@types/supertest": "6.0.3", - "@typescript-eslint/eslint-plugin": "8.44.1", - "@typescript-eslint/parser": "8.44.1", - "cross-env": "10.0.0", - "eslint": "9.36.0", + "@typescript-eslint/eslint-plugin": "8.46.1", + "@typescript-eslint/parser": "8.46.1", + "cross-env": "10.1.0", + "eslint": "9.37.0", "eslint-config-prettier": "10.1.8", "eslint-plugin-prettier": "5.5.4", "globals": "16.4.0", - "jest": "30.1.3", + "jest": "30.2.0", "jest-mock-extended": "4.0.0", "prettier": "3.6.2", "source-map-support": "0.5.21", "supertest": "7.1.4", - "ts-jest": "29.4.4", + "ts-jest": "29.4.5", "ts-loader": "9.5.4", "ts-node": "10.9.2", "tsconfig-paths": "4.2.0", - "typescript": "5.9.2" + "typescript": "5.9.3" }, "jest": { "moduleFileExtensions": [ diff --git a/packages/hoppscotch-cli/package.json b/packages/hoppscotch-cli/package.json index 5797f06e91c..746ef6b03ff 100644 --- a/packages/hoppscotch-cli/package.json +++ b/packages/hoppscotch-cli/package.json @@ -64,9 +64,9 @@ "fp-ts": "2.16.11", "prettier": "3.6.2", "qs": "6.11.2", - "semver": "7.7.2", + "semver": "7.7.3", "tsup": "8.5.0", - "typescript": "5.9.2", + "typescript": "5.9.3", "vitest": "3.2.4" } } diff --git a/packages/hoppscotch-common/package.json b/packages/hoppscotch-common/package.json index 789557c8664..266678814c5 100644 --- a/packages/hoppscotch-common/package.json +++ b/packages/hoppscotch-common/package.json @@ -21,7 +21,7 @@ "do-lintfix": "pnpm run lintfix" }, "dependencies": { - "@apidevtools/swagger-parser": "12.0.0", + "@apidevtools/swagger-parser": "12.1.0", "@codemirror/autocomplete": "6.18.6", "@codemirror/commands": "6.8.1", "@codemirror/lang-javascript": "6.2.4", @@ -34,7 +34,7 @@ "@codemirror/search": "6.5.11", "@codemirror/state": "6.5.2", "@codemirror/view": "6.38.1", - "@guolao/vue-monaco-editor": "1.5.5", + "@guolao/vue-monaco-editor": "1.6.0", "@hoppscotch/codemirror-lang-graphql": "workspace:^", "@hoppscotch/data": "workspace:^", "@hoppscotch/httpsnippet": "3.0.9", @@ -51,7 +51,7 @@ "@tauri-apps/plugin-store": "2.2.0", "@types/hawk": "9.0.6", "@types/markdown-it": "14.1.2", - "@unhead/vue": "2.0.17", + "@unhead/vue": "2.0.19", "@urql/core": "6.0.1", "@urql/devtools": "2.0.3", "@urql/exchange-auth": "3.0.0", @@ -77,7 +77,7 @@ "jsonc-parser": "3.3.1", "jsonpath-plus": "10.3.0", "lodash-es": "4.17.21", - "lossless-json": "4.2.0", + "lossless-json": "4.3.0", "markdown-it": "14.1.0", "minisearch": "7.2.0", "monaco-editor": "0.52.2", @@ -98,7 +98,7 @@ "splitpanes": "3.1.5", "stream-browserify": "3.0.0", "subscriptions-transport-ws": "0.11.0", - "superjson": "2.2.2", + "superjson": "2.2.3", "tern": "0.24.3", "timers": "0.1.1", "tippy.js": "6.3.7", @@ -110,7 +110,7 @@ "vue-i18n": "11.1.12", "vue-json-pretty": "2.5.0", "vue-pdf-embed": "2.1.3", - "vue-router": "4.5.1", + "vue-router": "4.6.3", "vue-tippy": "6.7.1", "vuedraggable-es": "4.1.1", "wonka": "6.3.5", @@ -133,7 +133,7 @@ "@iconify-json/lucide": "1.2.68", "@intlify/unplugin-vue-i18n": "6.0.8", "@relmify/jest-fp-ts": "2.1.1", - "@rushstack/eslint-patch": "1.12.0", + "@rushstack/eslint-patch": "1.14.0", "@types/har-format": "1.2.16", "@types/js-yaml": "4.0.9", "@types/lodash-es": "4.17.12", @@ -144,18 +144,18 @@ "@types/splitpanes": "2.2.6", "@types/uuid": "10.0.0", "@types/yargs-parser": "21.0.3", - "@typescript-eslint/eslint-plugin": "8.44.1", - "@typescript-eslint/parser": "8.44.1", + "@typescript-eslint/eslint-plugin": "8.46.2", + "@typescript-eslint/parser": "8.46.2", "@vitejs/plugin-vue": "5.1.4", "@vue/compiler-sfc": "3.5.22", "@vue/eslint-config-typescript": "13.0.0", "@vue/runtime-core": "3.5.22", "autoprefixer": "10.4.21", - "cross-env": "10.0.0", - "dotenv": "17.2.2", + "cross-env": "10.1.0", + "dotenv": "17.2.3", "eslint": "8.57.0", "eslint-plugin-prettier": "5.5.4", - "eslint-plugin-vue": "10.5.0", + "eslint-plugin-vue": "10.5.1", "glob": "11.0.3", "jsdom": "26.1.0", "npm-run-all": "4.1.5", @@ -166,7 +166,7 @@ "rollup-plugin-polyfill-node": "0.13.0", "sass": "1.93.2", "tailwindcss": "3.4.16", - "typescript": "5.9.2", + "typescript": "5.9.3", "unplugin-fonts": "1.4.0", "unplugin-icons": "22.2.0", "unplugin-vue-components": "29.0.0", @@ -176,7 +176,7 @@ "vite-plugin-html-config": "2.0.2", "vite-plugin-pages": "0.33.1", "vite-plugin-pages-sitemap": "1.7.1", - "vite-plugin-pwa": "1.0.3", + "vite-plugin-pwa": "1.1.0", "vite-plugin-vue-layouts": "0.11.0", "vitest": "3.2.4", "vue-tsc": "1.8.8" diff --git a/packages/hoppscotch-data/package.json b/packages/hoppscotch-data/package.json index 06ba94f2c80..4b187e044d3 100644 --- a/packages/hoppscotch-data/package.json +++ b/packages/hoppscotch-data/package.json @@ -37,7 +37,7 @@ "devDependencies": { "@types/lodash": "4.17.20", "@types/uuid": "10.0.0", - "typescript": "5.9.2", + "typescript": "5.9.3", "vite": "6.3.6" }, "dependencies": { diff --git a/packages/hoppscotch-desktop/package.json b/packages/hoppscotch-desktop/package.json index f3fadf736cc..b2262a4b519 100644 --- a/packages/hoppscotch-desktop/package.json +++ b/packages/hoppscotch-desktop/package.json @@ -36,13 +36,13 @@ "fp-ts": "2.16.11", "rxjs": "7.8.2", "vue": "3.5.22", - "vue-router": "4.5.1", + "vue-router": "4.6.3", "vue-tippy": "6.7.1", "zod": "3.25.32" }, "devDependencies": { "@iconify-json/lucide": "1.2.68", - "@rushstack/eslint-patch": "1.12.0", + "@rushstack/eslint-patch": "1.14.0", "@tauri-apps/cli": "^2", "@typescript-eslint/eslint-plugin": "8.44.1", "@typescript-eslint/parser": "8.44.1", @@ -51,11 +51,11 @@ "autoprefixer": "10.4.21", "eslint": "8.57.0", "eslint-plugin-prettier": "5.5.4", - "eslint-plugin-vue": "10.5.0", + "eslint-plugin-vue": "10.5.1", "postcss": "8.5.6", "sass": "1.93.2", "tailwindcss": "3.4.16", - "typescript": "5.9.2", + "typescript": "5.9.3", "unplugin-icons": "22.2.0", "unplugin-vue-components": "29.0.0", "vite": "6.3.5", diff --git a/packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/package.json b/packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/package.json index 0e9d36461b0..26d799687a7 100644 --- a/packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/package.json +++ b/packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/package.json @@ -26,8 +26,8 @@ }, "devDependencies": { "@rollup/plugin-typescript": "^11.1.6", - "rollup": "^4.52.2", + "rollup": "^4.52.5", "tslib": "^2.6.2", - "typescript": "5.9.2" + "typescript": "5.9.3" } } diff --git a/packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-relay/package.json b/packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-relay/package.json index a55595fd839..2655ee1520f 100644 --- a/packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-relay/package.json +++ b/packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-relay/package.json @@ -26,8 +26,8 @@ }, "devDependencies": { "@rollup/plugin-typescript": "^11.1.6", - "rollup": "^4.52.2", + "rollup": "^4.52.5", "tslib": "^2.6.2", - "typescript": "5.9.2" + "typescript": "5.9.3" } } diff --git a/packages/hoppscotch-js-sandbox/package.json b/packages/hoppscotch-js-sandbox/package.json index 75a7bb7cd25..320a7f6ec74 100644 --- a/packages/hoppscotch-js-sandbox/package.json +++ b/packages/hoppscotch-js-sandbox/package.json @@ -63,7 +63,7 @@ "@relmify/jest-fp-ts": "2.1.1", "@types/jest": "30.0.0", "@types/lodash": "4.17.20", - "@types/node": "24.3.0", + "@types/node": "24.9.1", "@typescript-eslint/eslint-plugin": "8.44.1", "@typescript-eslint/parser": "8.44.1", "eslint": "8.57.0", @@ -71,7 +71,7 @@ "eslint-plugin-prettier": "5.5.4", "io-ts": "2.2.22", "prettier": "3.6.2", - "typescript": "5.9.2", + "typescript": "5.9.3", "vite": "6.3.6", "vitest": "3.2.4" }, diff --git a/packages/hoppscotch-kernel/package.json b/packages/hoppscotch-kernel/package.json index f76ad60b038..c22d77161c9 100644 --- a/packages/hoppscotch-kernel/package.json +++ b/packages/hoppscotch-kernel/package.json @@ -35,8 +35,8 @@ }, "homepage": "https://github.com/hoppscotch/hoppscotch#readme", "devDependencies": { - "@types/node": "24.3.0", - "typescript": "5.9.2", + "@types/node": "24.9.1", + "typescript": "5.9.3", "vite": "6.3.5" }, "peerDependencies": { @@ -48,15 +48,15 @@ } }, "dependencies": { - "axios": "1.12.2", - "fp-ts": "2.16.11", - "aws4fetch": "1.0.20", - "zod": "3.25.32", - "superjson": "2.2.2", - "@tauri-apps/plugin-shell": "2.2.1", + "@hoppscotch/plugin-relay": "github:CuriousCorrelation/tauri-plugin-relay#5d59b97fe331ca62e8be0454ff3f4e5f6185ae70", "@tauri-apps/plugin-dialog": "2.0.1", "@tauri-apps/plugin-fs": "2.0.2", + "@tauri-apps/plugin-shell": "2.2.1", "@tauri-apps/plugin-store": "2.2.0", - "@hoppscotch/plugin-relay": "github:CuriousCorrelation/tauri-plugin-relay#5d59b97fe331ca62e8be0454ff3f4e5f6185ae70" + "aws4fetch": "1.0.20", + "axios": "1.12.2", + "fp-ts": "2.16.11", + "superjson": "2.2.3", + "zod": "3.25.32" } } diff --git a/packages/hoppscotch-selfhost-desktop/package.json b/packages/hoppscotch-selfhost-desktop/package.json index 60dbfb65a0b..e14f39c2968 100644 --- a/packages/hoppscotch-selfhost-desktop/package.json +++ b/packages/hoppscotch-selfhost-desktop/package.json @@ -52,24 +52,24 @@ "@graphql-typed-document-node/core": "3.2.0", "@iconify-json/lucide": "1.2.68", "@intlify/unplugin-vue-i18n": "6.0.4", - "@rushstack/eslint-patch": "1.3.3", + "@rushstack/eslint-patch": "1.14.0", "@types/lodash-es": "4.17.10", - "@types/node": "18.18.8", + "@types/node": "24.9.1", "@typescript-eslint/eslint-plugin": "8.44.1", "@typescript-eslint/parser": "8.44.1", "@vitejs/plugin-legacy": "2.3.0", "@vitejs/plugin-vue": "4.3.1", "@vue/eslint-config-typescript": "11.0.3", "autoprefixer": "10.4.16", - "cross-env": "7.0.3", - "dotenv": "17.2.2", + "cross-env": "10.1.0", + "dotenv": "17.2.3", "eslint": "8.47.0", "eslint-plugin-prettier": "4.2.1", - "eslint-plugin-vue": "10.5.0", + "eslint-plugin-vue": "10.5.1", "npm-run-all": "4.1.5", "postcss": "8.4.32", "tailwindcss": "3.3.6", - "typescript": "5.8.3", + "typescript": "5.9.3", "unplugin-fonts": "1.1.1", "unplugin-icons": "0.14.9", "unplugin-vue-components": "0.21.0", @@ -78,7 +78,7 @@ "vite-plugin-inspect": "0.7.38", "vite-plugin-pages": "0.26.0", "vite-plugin-pages-sitemap": "1.6.1", - "vite-plugin-pwa": "0.13.1", + "vite-plugin-pwa": "1.1.0", "vite-plugin-static-copy": "0.12.0", "vite-plugin-vue-layouts": "0.7.0", "vue-tsc": "1.8.8" diff --git a/packages/hoppscotch-selfhost-web/package.json b/packages/hoppscotch-selfhost-web/package.json index fe950450f05..7e181d4c5db 100644 --- a/packages/hoppscotch-selfhost-web/package.json +++ b/packages/hoppscotch-selfhost-web/package.json @@ -60,23 +60,23 @@ "@graphql-typed-document-node/core": "3.2.0", "@iconify-json/lucide": "1.2.68", "@intlify/unplugin-vue-i18n": "6.0.8", - "@rushstack/eslint-patch": "1.12.0", + "@rushstack/eslint-patch": "1.14.0", "@typescript-eslint/eslint-plugin": "8.44.1", "@typescript-eslint/parser": "8.44.1", "@vitejs/plugin-legacy": "5.4.2", "@vitejs/plugin-vue": "5.1.4", "@vue/eslint-config-typescript": "13.0.0", "autoprefixer": "10.4.21", - "cross-env": "10.0.0", - "dotenv": "17.2.2", + "cross-env": "10.1.0", + "dotenv": "17.2.3", "eslint": "8.57.0", "eslint-plugin-prettier": "5.5.4", - "eslint-plugin-vue": "10.5.0", + "eslint-plugin-vue": "10.5.1", "npm-run-all": "4.1.5", "postcss": "8.5.6", "prettier-plugin-tailwindcss": "0.6.14", "tailwindcss": "3.4.16", - "typescript": "5.9.2", + "typescript": "5.9.3", "unplugin-fonts": "1.4.0", "unplugin-icons": "22.2.0", "unplugin-vue-components": "29.0.0", @@ -86,8 +86,8 @@ "vite-plugin-inspect": "11.3.3", "vite-plugin-pages": "0.33.1", "vite-plugin-pages-sitemap": "1.7.1", - "vite-plugin-pwa": "1.0.3", - "vite-plugin-static-copy": "3.1.2", + "vite-plugin-pwa": "1.1.0", + "vite-plugin-static-copy": "3.1.4", "vite-plugin-vue-layouts": "0.11.0", "vue-tsc": "2.1.6" } diff --git a/packages/hoppscotch-sh-admin/package.json b/packages/hoppscotch-sh-admin/package.json index 4f3acbf26ce..9266878e539 100644 --- a/packages/hoppscotch-sh-admin/package.json +++ b/packages/hoppscotch-sh-admin/package.json @@ -41,7 +41,7 @@ "unplugin-vue-components": "29.0.0", "vue": "3.5.22", "vue-i18n": "11.1.12", - "vue-router": "4.5.1", + "vue-router": "4.6.3", "vue-tippy": "6.7.1" }, "devDependencies": { @@ -60,13 +60,13 @@ "@vitejs/plugin-vue": "5.1.4", "@vue/compiler-sfc": "3.5.22", "autoprefixer": "10.4.21", - "dotenv": "17.2.2", + "dotenv": "17.2.3", "graphql-tag": "2.12.6", "hoppscotch-backend": "workspace:^", "npm-run-all": "4.1.5", "sass": "1.93.2", "ts-node": "10.9.2", - "typescript": "5.9.2", + "typescript": "5.9.3", "unplugin-fonts": "1.4.0", "vite": "6.3.5", "vite-plugin-pages": "0.33.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 389d824ce78..6bb76daf523 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,6 +9,7 @@ overrides: apiconnect-wsdl: 2.0.36 cross-spawn: 7.0.6 execa@0.10.0: 2.0.0 + nodemailer@<7.0.7: 7.0.7 sha.js@2.4.11: 2.4.12 subscriptions-transport-ws>ws: 7.5.10 vue: 3.5.22 @@ -20,20 +21,20 @@ importers: .: devDependencies: '@commitlint/cli': - specifier: 19.8.1 - version: 19.8.1(@types/node@24.5.2)(typescript@5.9.2) + specifier: 20.1.0 + version: 20.1.0(@types/node@24.9.1)(typescript@5.9.3) '@commitlint/config-conventional': - specifier: 19.8.1 - version: 19.8.1 + specifier: 20.0.0 + version: 20.0.0 '@hoppscotch/ui': specifier: 0.2.5 - version: 0.2.5(eslint@9.36.0(jiti@2.6.0))(terser@5.39.2)(typescript@5.9.2)(vite@7.1.2(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2)) + version: 0.2.5(eslint@9.37.0(jiti@2.6.0))(terser@5.39.2)(typescript@5.9.3)(vite@7.1.2(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) '@types/node': - specifier: 24.5.2 - version: 24.5.2 + specifier: 24.9.1 + version: 24.9.1 cross-env: - specifier: 10.0.0 - version: 10.0.0 + specifier: 10.1.0 + version: 10.1.0 http-server: specifier: 14.1.1 version: 14.1.1 @@ -41,8 +42,8 @@ importers: specifier: 9.1.7 version: 9.1.7 lint-staged: - specifier: 16.2.1 - version: 16.2.1 + specifier: 16.2.5 + version: 16.2.5 packages/codemirror-lang-graphql: dependencies: @@ -61,22 +62,22 @@ importers: version: 1.8.0 '@rollup/plugin-typescript': specifier: 12.1.4 - version: 12.1.4(rollup@4.52.2)(tslib@2.8.1)(typescript@5.9.2) + version: 12.1.4(rollup@4.52.5)(tslib@2.8.1)(typescript@5.9.3) mocha: - specifier: 11.7.2 - version: 11.7.2 + specifier: 11.7.4 + version: 11.7.4 rollup: - specifier: 4.52.2 - version: 4.52.2 + specifier: 4.52.5 + version: 4.52.5 typescript: - specifier: 5.9.2 - version: 5.9.2 + specifier: 5.9.3 + version: 5.9.3 packages/hoppscotch-agent: dependencies: '@hoppscotch/ui': specifier: 0.2.5 - version: 0.2.5(eslint@9.36.0(jiti@2.6.0))(terser@5.39.2)(typescript@5.9.2)(vite@6.3.6(@types/node@24.3.0)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2)) + version: 0.2.5(eslint@9.37.0(jiti@2.6.0))(terser@5.39.2)(typescript@5.9.3)(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) '@tauri-apps/api': specifier: 2.1.1 version: 2.1.1 @@ -85,7 +86,7 @@ importers: version: 2.2.1 '@vueuse/core': specifier: 13.7.0 - version: 13.7.0(vue@3.5.22(typescript@5.9.2)) + version: 13.7.0(vue@3.5.22(typescript@5.9.3)) axios: specifier: 1.12.2 version: 1.12.2 @@ -97,7 +98,7 @@ importers: version: 4.17.21 vue: specifier: 3.5.22 - version: 3.5.22(typescript@5.9.2) + version: 3.5.22(typescript@5.9.3) devDependencies: '@iconify-json/lucide': specifier: 1.2.68 @@ -109,11 +110,11 @@ importers: specifier: 4.17.12 version: 4.17.12 '@types/node': - specifier: 24.3.0 - version: 24.3.0 + specifier: 24.9.1 + version: 24.9.1 '@vitejs/plugin-vue': specifier: 5.1.4 - version: 5.1.4(vite@6.3.6(@types/node@24.3.0)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2)) + version: 5.1.4(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) autoprefixer: specifier: 10.4.21 version: 10.4.21(postcss@8.5.6) @@ -122,34 +123,37 @@ importers: version: 8.5.6 tailwindcss: specifier: 3.4.16 - version: 3.4.16(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.3.0)(typescript@5.9.2)) + version: 3.4.16(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)) typescript: - specifier: 5.9.2 - version: 5.9.2 + specifier: 5.9.3 + version: 5.9.3 unplugin-icons: specifier: 22.2.0 version: 22.2.0(@vue/compiler-sfc@3.5.22)(svelte@3.59.2)(vue-template-compiler@2.7.16) unplugin-vue-components: specifier: 29.0.0 - version: 29.0.0(@babel/parser@7.28.4)(vue@3.5.22(typescript@5.9.2)) + version: 29.0.0(@babel/parser@7.28.4)(vue@3.5.22(typescript@5.9.3)) vite: specifier: 6.3.6 - version: 6.3.6(@types/node@24.3.0)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + version: 6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) vue-tsc: specifier: 2.2.0 - version: 2.2.0(typescript@5.9.2) + version: 2.2.0(typescript@5.9.3) packages/hoppscotch-backend: dependencies: '@apollo/server': specifier: 4.12.1 version: 4.12.1(graphql@16.11.0) + '@as-integrations/express5': + specifier: 1.1.2 + version: 1.1.2(@apollo/server@4.12.1(graphql@16.11.0))(express@5.1.0) '@nestjs-modules/mailer': specifier: 2.0.2 - version: 2.0.2(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(nodemailer@7.0.6)(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + version: 2.0.2(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(nodemailer@7.0.9)(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) '@nestjs/apollo': - specifier: 13.1.0 - version: 13.1.0(@apollo/server@4.12.1(graphql@16.11.0))(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(@nestjs/graphql@13.1.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(class-transformer@0.5.1)(class-validator@0.14.2)(graphql@16.11.0)(reflect-metadata@0.2.2))(graphql@16.11.0) + specifier: 13.2.1 + version: 13.2.1(@apollo/server@4.12.1(graphql@16.11.0))(@as-integrations/express5@1.1.2(@apollo/server@4.12.1(graphql@16.11.0))(express@5.1.0))(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(@nestjs/graphql@13.2.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(class-transformer@0.5.1)(class-validator@0.14.2)(graphql@16.11.0)(reflect-metadata@0.2.2))(graphql@16.11.0) '@nestjs/common': specifier: 11.1.6 version: 11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2) @@ -160,11 +164,11 @@ importers: specifier: 11.1.6 version: 11.1.6(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.6)(reflect-metadata@0.2.2)(rxjs@7.8.2) '@nestjs/graphql': - specifier: 13.1.0 - version: 13.1.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(class-transformer@0.5.1)(class-validator@0.14.2)(graphql@16.11.0)(reflect-metadata@0.2.2) + specifier: 13.2.0 + version: 13.2.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(class-transformer@0.5.1)(class-validator@0.14.2)(graphql@16.11.0)(reflect-metadata@0.2.2) '@nestjs/jwt': - specifier: 11.0.0 - version: 11.0.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)) + specifier: 11.0.1 + version: 11.0.1(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)) '@nestjs/passport': specifier: 11.0.0 version: 11.0.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(passport@0.7.0) @@ -175,17 +179,17 @@ importers: specifier: 6.0.1 version: 6.0.1(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6) '@nestjs/swagger': - specifier: 11.2.0 - version: 11.2.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2) + specifier: 11.2.1 + version: 11.2.1(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2) '@nestjs/terminus': specifier: 11.0.0 - version: 11.0.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(@prisma/client@6.16.2(prisma@6.16.2(typescript@5.9.2))(typescript@5.9.2))(reflect-metadata@0.2.2)(rxjs@7.8.2) + version: 11.0.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(@prisma/client@6.17.1(prisma@6.17.1(typescript@5.9.3))(typescript@5.9.3))(reflect-metadata@0.2.2)(rxjs@7.8.2) '@nestjs/throttler': specifier: 6.4.0 version: 6.4.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(reflect-metadata@0.2.2) '@prisma/client': - specifier: 6.16.2 - version: 6.16.2(prisma@6.16.2(typescript@5.9.2))(typescript@5.9.2) + specifier: 6.17.1 + version: 6.17.1(prisma@6.17.1(typescript@5.9.3))(typescript@5.9.3) argon2: specifier: 0.44.0 version: 0.44.0 @@ -235,8 +239,8 @@ importers: specifier: 1.10.1 version: 1.10.1 nodemailer: - specifier: 7.0.6 - version: 7.0.6 + specifier: 7.0.9 + version: 7.0.9 passport: specifier: 0.7.0 version: 0.7.0 @@ -256,11 +260,11 @@ importers: specifier: 2.1.0 version: 2.1.0 posthog-node: - specifier: 5.8.8 - version: 5.8.8 + specifier: 5.10.0 + version: 5.10.0 prisma: - specifier: 6.16.2 - version: 6.16.2(typescript@5.9.2) + specifier: 6.17.1 + version: 6.17.1(typescript@5.9.3) reflect-metadata: specifier: 0.2.2 version: 0.2.2 @@ -275,14 +279,14 @@ importers: specifier: 3.3.1 version: 3.3.1 '@eslint/js': - specifier: 9.36.0 - version: 9.36.0 + specifier: 9.37.0 + version: 9.37.0 '@nestjs/cli': specifier: 11.0.10 - version: 11.0.10(@swc/core@1.4.2)(@types/node@24.5.2) + version: 11.0.10(@swc/core@1.4.2)(@types/node@24.9.1) '@nestjs/schematics': - specifier: 11.0.7 - version: 11.0.7(chokidar@4.0.3)(typescript@5.9.2) + specifier: 11.0.9 + version: 11.0.9(chokidar@4.0.3)(typescript@5.9.3) '@nestjs/testing': specifier: 11.1.6 version: 11.1.6(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(@nestjs/platform-express@11.1.6) @@ -302,11 +306,11 @@ importers: specifier: 30.0.0 version: 30.0.0 '@types/node': - specifier: 24.5.2 - version: 24.5.2 + specifier: 24.9.1 + version: 24.9.1 '@types/nodemailer': - specifier: 7.0.1 - version: 7.0.1 + specifier: 7.0.2 + version: 7.0.2 '@types/passport-github2': specifier: 1.2.9 version: 1.2.9 @@ -323,32 +327,32 @@ importers: specifier: 6.0.3 version: 6.0.3 '@typescript-eslint/eslint-plugin': - specifier: 8.44.1 - version: 8.44.1(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) + specifier: 8.46.1 + version: 8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: 8.44.1 - version: 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) + specifier: 8.46.1 + version: 8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.3) cross-env: - specifier: 10.0.0 - version: 10.0.0 + specifier: 10.1.0 + version: 10.1.0 eslint: - specifier: 9.36.0 - version: 9.36.0(jiti@2.6.0) + specifier: 9.37.0 + version: 9.37.0(jiti@2.6.0) eslint-config-prettier: specifier: 10.1.8 - version: 10.1.8(eslint@9.36.0(jiti@2.6.0)) + version: 10.1.8(eslint@9.37.0(jiti@2.6.0)) eslint-plugin-prettier: specifier: 5.5.4 - version: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.36.0(jiti@2.6.0)))(eslint@9.36.0(jiti@2.6.0))(prettier@3.6.2) + version: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0))(prettier@3.6.2) globals: specifier: 16.4.0 version: 16.4.0 jest: - specifier: 30.1.3 - version: 30.1.3(@types/node@24.5.2)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2)) + specifier: 30.2.0 + version: 30.2.0(@types/node@24.9.1)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)) jest-mock-extended: specifier: 4.0.0 - version: 4.0.0(@jest/globals@30.1.2)(jest@30.1.3(@types/node@24.5.2)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2)))(typescript@5.9.2) + version: 4.0.0(@jest/globals@30.2.0)(jest@30.2.0(@types/node@24.9.1)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)))(typescript@5.9.3) prettier: specifier: 3.6.2 version: 3.6.2 @@ -359,20 +363,20 @@ importers: specifier: 7.1.4 version: 7.1.4 ts-jest: - specifier: 29.4.4 - version: 29.4.4(@babel/core@7.28.4)(@jest/transform@30.1.2)(@jest/types@30.0.5)(babel-jest@30.1.2(@babel/core@7.28.4))(jest-util@30.0.5)(jest@30.1.3(@types/node@24.5.2)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2)))(typescript@5.9.2) + specifier: 29.4.5 + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@24.9.1)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)))(typescript@5.9.3) ts-loader: specifier: 9.5.4 - version: 9.5.4(typescript@5.9.2)(webpack@5.100.2(@swc/core@1.4.2)) + version: 9.5.4(typescript@5.9.3)(webpack@5.100.2(@swc/core@1.4.2)) ts-node: specifier: 10.9.2 - version: 10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2) + version: 10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3) tsconfig-paths: specifier: 4.2.0 version: 4.2.0 typescript: - specifier: 5.9.2 - version: 5.9.2 + specifier: 5.9.3 + version: 5.9.3 packages/hoppscotch-cli: dependencies: @@ -438,23 +442,23 @@ importers: specifier: 3.6.2 version: 3.6.2 semver: - specifier: 7.7.2 - version: 7.7.2 + specifier: 7.7.3 + version: 7.7.3 tsup: specifier: 8.5.0 - version: 8.5.0(@swc/core@1.4.2)(jiti@2.6.0)(postcss@8.5.6)(typescript@5.9.2)(yaml@2.8.1) + version: 8.5.0(@swc/core@1.4.2)(jiti@2.6.0)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.1) typescript: - specifier: 5.9.2 - version: 5.9.2 + specifier: 5.9.3 + version: 5.9.3 vitest: specifier: 3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.6.0)(jsdom@26.1.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(jiti@2.6.0)(jsdom@26.1.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) packages/hoppscotch-common: dependencies: '@apidevtools/swagger-parser': - specifier: 12.0.0 - version: 12.0.0(openapi-types@12.1.3) + specifier: 12.1.0 + version: 12.1.0(openapi-types@12.1.3) '@codemirror/autocomplete': specifier: 6.18.6 version: 6.18.6 @@ -492,8 +496,8 @@ importers: specifier: 6.38.1 version: 6.38.1 '@guolao/vue-monaco-editor': - specifier: 1.5.5 - version: 1.5.5(monaco-editor@0.52.2)(vue@3.5.22(typescript@5.9.2)) + specifier: 1.6.0 + version: 1.6.0(monaco-editor@0.52.2)(vue@3.5.22(typescript@5.9.3)) '@hoppscotch/codemirror-lang-graphql': specifier: workspace:^ version: link:../codemirror-lang-graphql @@ -514,10 +518,10 @@ importers: version: '@CuriousCorrelation/plugin-appload@https://codeload.github.com/CuriousCorrelation/tauri-plugin-appload/tar.gz/e05861959938b57479a1a81fa796735ebbd08c7c' '@hoppscotch/ui': specifier: 0.2.5 - version: 0.2.5(eslint@8.57.0)(terser@5.39.2)(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2)) + version: 0.2.5(eslint@8.57.0)(terser@5.39.2)(typescript@5.9.3)(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) '@hoppscotch/vue-toasted': specifier: 0.1.0 - version: 0.1.0(vue@3.5.22(typescript@5.9.2)) + version: 0.1.0(vue@3.5.22(typescript@5.9.3)) '@lezer/highlight': specifier: 1.2.1 version: 1.2.1 @@ -543,8 +547,8 @@ importers: specifier: 14.1.2 version: 14.1.2 '@unhead/vue': - specifier: 2.0.17 - version: 2.0.17(vue@3.5.22(typescript@5.9.2)) + specifier: 2.0.19 + version: 2.0.19(vue@3.5.22(typescript@5.9.3)) '@urql/core': specifier: 6.0.1 version: 6.0.1(graphql@16.11.0) @@ -556,7 +560,7 @@ importers: version: 3.0.0(@urql/core@6.0.1(graphql@16.11.0)) '@vueuse/core': specifier: 13.7.0 - version: 13.7.0(vue@3.5.22(typescript@5.9.2)) + version: 13.7.0(vue@3.5.22(typescript@5.9.3)) acorn-walk: specifier: 8.3.4 version: 8.3.4 @@ -574,7 +578,7 @@ importers: version: 2.0.0 dioc: specifier: 3.0.2 - version: 3.0.2(vue@3.5.22(typescript@5.9.2)) + version: 3.0.2(vue@3.5.22(typescript@5.9.3)) esprima: specifier: 4.0.1 version: 4.0.1 @@ -592,7 +596,7 @@ importers: version: 16.11.0 graphql-language-service-interface: specifier: 2.10.2 - version: 2.10.2(@types/node@24.5.2)(graphql@16.11.0) + version: 2.10.2(@types/node@24.9.1)(graphql@16.11.0) graphql-tag: specifier: 2.12.6 version: 2.12.6(graphql@16.11.0) @@ -621,8 +625,8 @@ importers: specifier: 4.17.21 version: 4.17.21 lossless-json: - specifier: 4.2.0 - version: 4.2.0 + specifier: 4.3.0 + version: 4.3.0 markdown-it: specifier: 14.1.0 version: 14.1.0 @@ -684,8 +688,8 @@ importers: specifier: 0.11.0 version: 0.11.0(graphql@16.11.0) superjson: - specifier: 2.2.2 - version: 2.2.2 + specifier: 2.2.3 + version: 2.2.3 tern: specifier: 0.24.3 version: 0.24.3 @@ -709,25 +713,25 @@ importers: version: 0.4.0(zod@3.25.32) vue: specifier: 3.5.22 - version: 3.5.22(typescript@5.9.2) + version: 3.5.22(typescript@5.9.3) vue-i18n: specifier: 11.1.12 - version: 11.1.12(vue@3.5.22(typescript@5.9.2)) + version: 11.1.12(vue@3.5.22(typescript@5.9.3)) vue-json-pretty: specifier: 2.5.0 - version: 2.5.0(vue@3.5.22(typescript@5.9.2)) + version: 2.5.0(vue@3.5.22(typescript@5.9.3)) vue-pdf-embed: specifier: 2.1.3 - version: 2.1.3(vue@3.5.22(typescript@5.9.2)) + version: 2.1.3(vue@3.5.22(typescript@5.9.3)) vue-router: - specifier: 4.5.1 - version: 4.5.1(vue@3.5.22(typescript@5.9.2)) + specifier: 4.6.3 + version: 4.6.3(vue@3.5.22(typescript@5.9.3)) vue-tippy: specifier: 6.7.1 - version: 6.7.1(vue@3.5.22(typescript@5.9.2)) + version: 6.7.1(vue@3.5.22(typescript@5.9.3)) vuedraggable-es: specifier: 4.1.1 - version: 4.1.1(vue@3.5.22(typescript@5.9.2)) + version: 4.1.1(vue@3.5.22(typescript@5.9.3)) wonka: specifier: 6.3.5 version: 6.3.5 @@ -746,16 +750,16 @@ importers: devDependencies: '@esbuild-plugins/node-globals-polyfill': specifier: 0.2.3 - version: 0.2.3(esbuild@0.25.10) + version: 0.2.3(esbuild@0.25.11) '@esbuild-plugins/node-modules-polyfill': specifier: 0.2.2 - version: 0.2.2(esbuild@0.25.10) + version: 0.2.2(esbuild@0.25.11) '@graphql-codegen/add': specifier: 5.0.3 version: 5.0.3(graphql@16.11.0) '@graphql-codegen/cli': specifier: 5.0.7 - version: 5.0.7(@parcel/watcher@2.5.1)(@types/node@24.5.2)(graphql@16.11.0)(typescript@5.9.2) + version: 5.0.7(@parcel/watcher@2.5.1)(@types/node@24.9.1)(graphql@16.11.0)(typescript@5.9.3) '@graphql-codegen/typed-document-node': specifier: 5.1.2 version: 5.1.2(graphql@16.11.0) @@ -779,13 +783,13 @@ importers: version: 1.2.68 '@intlify/unplugin-vue-i18n': specifier: 6.0.8 - version: 6.0.8(@vue/compiler-dom@3.5.22)(eslint@8.57.0)(rollup@4.52.2)(typescript@5.9.2)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2)) + version: 6.0.8(@vue/compiler-dom@3.5.22)(eslint@8.57.0)(rollup@4.52.5)(typescript@5.9.3)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) '@relmify/jest-fp-ts': specifier: 2.1.1 version: 2.1.1(fp-ts@2.16.11)(io-ts@2.2.22(fp-ts@2.16.11)) '@rushstack/eslint-patch': - specifier: 1.12.0 - version: 1.12.0 + specifier: 1.14.0 + version: 1.14.0 '@types/har-format': specifier: 1.2.16 version: 1.2.16 @@ -809,7 +813,7 @@ importers: version: 6.14.0 '@types/splitpanes': specifier: 2.2.6 - version: 2.2.6(typescript@5.9.2) + version: 2.2.6(typescript@5.9.3) '@types/uuid': specifier: 10.0.0 version: 10.0.0 @@ -817,20 +821,20 @@ importers: specifier: 21.0.3 version: 21.0.3 '@typescript-eslint/eslint-plugin': - specifier: 8.44.1 - version: 8.44.1(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.2))(eslint@8.57.0)(typescript@5.9.2) + specifier: 8.46.2 + version: 8.46.2(@typescript-eslint/parser@8.46.2(eslint@8.57.0)(typescript@5.9.3))(eslint@8.57.0)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: 8.44.1 - version: 8.44.1(eslint@8.57.0)(typescript@5.9.2) + specifier: 8.46.2 + version: 8.46.2(eslint@8.57.0)(typescript@5.9.3) '@vitejs/plugin-vue': specifier: 5.1.4 - version: 5.1.4(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2)) + version: 5.1.4(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) '@vue/compiler-sfc': specifier: 3.5.22 version: 3.5.22 '@vue/eslint-config-typescript': specifier: 13.0.0 - version: 13.0.0(eslint-plugin-vue@10.5.0(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.2))(eslint@8.57.0)(vue-eslint-parser@10.2.0(eslint@8.57.0)))(eslint@8.57.0)(typescript@5.9.2) + version: 13.0.0(eslint-plugin-vue@10.5.1(@typescript-eslint/parser@8.46.2(eslint@8.57.0)(typescript@5.9.3))(eslint@8.57.0)(vue-eslint-parser@10.2.0(eslint@8.57.0)))(eslint@8.57.0)(typescript@5.9.3) '@vue/runtime-core': specifier: 3.5.22 version: 3.5.22 @@ -838,11 +842,11 @@ importers: specifier: 10.4.21 version: 10.4.21(postcss@8.5.6) cross-env: - specifier: 10.0.0 - version: 10.0.0 + specifier: 10.1.0 + version: 10.1.0 dotenv: - specifier: 17.2.2 - version: 17.2.2 + specifier: 17.2.3 + version: 17.2.3 eslint: specifier: 8.57.0 version: 8.57.0 @@ -850,8 +854,8 @@ importers: specifier: 5.5.4 version: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@8.57.0))(eslint@8.57.0)(prettier@3.6.2) eslint-plugin-vue: - specifier: 10.5.0 - version: 10.5.0(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.2))(eslint@8.57.0)(vue-eslint-parser@10.2.0(eslint@8.57.0)) + specifier: 10.5.1 + version: 10.5.1(@typescript-eslint/parser@8.46.2(eslint@8.57.0)(typescript@5.9.3))(eslint@8.57.0)(vue-eslint-parser@10.2.0(eslint@8.57.0)) glob: specifier: 11.0.3 version: 11.0.3 @@ -875,55 +879,55 @@ importers: version: 0.6.14(prettier@3.6.2) rollup-plugin-polyfill-node: specifier: 0.13.0 - version: 0.13.0(rollup@4.52.2) + version: 0.13.0(rollup@4.52.5) sass: specifier: 1.93.2 version: 1.93.2 tailwindcss: specifier: 3.4.16 - version: 3.4.16(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2)) + version: 3.4.16(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)) typescript: - specifier: 5.9.2 - version: 5.9.2 + specifier: 5.9.3 + version: 5.9.3 unplugin-fonts: specifier: 1.4.0 - version: 1.4.0(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) + version: 1.4.0(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) unplugin-icons: specifier: 22.2.0 version: 22.2.0(@vue/compiler-sfc@3.5.22)(svelte@3.59.2)(vue-template-compiler@2.7.16) unplugin-vue-components: specifier: 29.0.0 - version: 29.0.0(@babel/parser@7.28.4)(vue@3.5.22(typescript@5.9.2)) + version: 29.0.0(@babel/parser@7.28.4)(vue@3.5.22(typescript@5.9.3)) vite: specifier: 6.3.6 - version: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + version: 6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) vite-plugin-checker: specifier: 0.10.3 - version: 0.10.3(eslint@8.57.0)(meow@13.2.0)(optionator@0.9.4)(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-tsc@1.8.8(typescript@5.9.2)) + version: 0.10.3(eslint@8.57.0)(meow@13.2.0)(optionator@0.9.4)(typescript@5.9.3)(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-tsc@1.8.8(typescript@5.9.3)) vite-plugin-fonts: specifier: 0.7.0 - version: 0.7.0(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) + version: 0.7.0(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) vite-plugin-html-config: specifier: 2.0.2 - version: 2.0.2(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) + version: 2.0.2(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) vite-plugin-pages: specifier: 0.33.1 - version: 0.33.1(@vue/compiler-sfc@3.5.22)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.2))) + version: 0.33.1(@vue/compiler-sfc@3.5.22)(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-router@4.6.3(vue@3.5.22(typescript@5.9.3))) vite-plugin-pages-sitemap: specifier: 1.7.1 version: 1.7.1 vite-plugin-pwa: - specifier: 1.0.3 - version: 1.0.3(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(workbox-build@7.1.0(@types/babel__core@7.20.5))(workbox-window@7.3.0) + specifier: 1.1.0 + version: 1.1.0(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(workbox-build@7.1.0(@types/babel__core@7.20.5))(workbox-window@7.3.0) vite-plugin-vue-layouts: specifier: 0.11.0 - version: 0.11.0(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2)) + version: 0.11.0(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-router@4.6.3(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) vitest: specifier: 3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.6.0)(jsdom@26.1.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(jiti@2.6.0)(jsdom@26.1.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) vue-tsc: specifier: 1.8.8 - version: 1.8.8(typescript@5.9.2) + version: 1.8.8(typescript@5.9.3) packages/hoppscotch-data: dependencies: @@ -959,11 +963,11 @@ importers: specifier: 10.0.0 version: 10.0.0 typescript: - specifier: 5.9.2 - version: 5.9.2 + specifier: 5.9.3 + version: 5.9.3 vite: specifier: 6.3.6 - version: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + version: 6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) packages/hoppscotch-desktop: dependencies: @@ -987,7 +991,7 @@ importers: version: '@CuriousCorrelation/plugin-appload@https://codeload.github.com/CuriousCorrelation/tauri-plugin-appload/tar.gz/e05861959938b57479a1a81fa796735ebbd08c7c' '@hoppscotch/ui': specifier: 0.2.5 - version: 0.2.5(eslint@8.57.0)(terser@5.39.2)(typescript@5.9.2)(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2)) + version: 0.2.5(eslint@8.57.0)(terser@5.39.2)(typescript@5.9.3)(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) '@tauri-apps/api': specifier: 2.1.1 version: 2.1.1 @@ -1008,7 +1012,7 @@ importers: version: 2.5.1 '@vueuse/core': specifier: 13.7.0 - version: 13.7.0(vue@3.5.22(typescript@5.9.2)) + version: 13.7.0(vue@3.5.22(typescript@5.9.3)) fp-ts: specifier: 2.16.11 version: 2.16.11 @@ -1017,13 +1021,13 @@ importers: version: 7.8.2 vue: specifier: 3.5.22 - version: 3.5.22(typescript@5.9.2) + version: 3.5.22(typescript@5.9.3) vue-router: - specifier: 4.5.1 - version: 4.5.1(vue@3.5.22(typescript@5.9.2)) + specifier: 4.6.3 + version: 4.6.3(vue@3.5.22(typescript@5.9.3)) vue-tippy: specifier: 6.7.1 - version: 6.7.1(vue@3.5.22(typescript@5.9.2)) + version: 6.7.1(vue@3.5.22(typescript@5.9.3)) zod: specifier: 3.25.32 version: 3.25.32 @@ -1032,23 +1036,23 @@ importers: specifier: 1.2.68 version: 1.2.68 '@rushstack/eslint-patch': - specifier: 1.12.0 - version: 1.12.0 + specifier: 1.14.0 + version: 1.14.0 '@tauri-apps/cli': specifier: ^2 version: 2.0.4 '@typescript-eslint/eslint-plugin': specifier: 8.44.1 - version: 8.44.1(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.2))(eslint@8.57.0)(typescript@5.9.2) + version: 8.44.1(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.3))(eslint@8.57.0)(typescript@5.9.3) '@typescript-eslint/parser': specifier: 8.44.1 - version: 8.44.1(eslint@8.57.0)(typescript@5.9.2) + version: 8.44.1(eslint@8.57.0)(typescript@5.9.3) '@vitejs/plugin-vue': specifier: 5.1.4 - version: 5.1.4(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2)) + version: 5.1.4(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) '@vue/eslint-config-typescript': specifier: 13.0.0 - version: 13.0.0(eslint-plugin-vue@10.5.0(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.2))(eslint@8.57.0)(vue-eslint-parser@10.2.0(eslint@8.57.0)))(eslint@8.57.0)(typescript@5.9.2) + version: 13.0.0(eslint-plugin-vue@10.5.1(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.3))(eslint@8.57.0)(vue-eslint-parser@10.2.0(eslint@8.57.0)))(eslint@8.57.0)(typescript@5.9.3) autoprefixer: specifier: 10.4.21 version: 10.4.21(postcss@8.5.6) @@ -1059,8 +1063,8 @@ importers: specifier: 5.5.4 version: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@8.57.0))(eslint@8.57.0)(prettier@3.6.2) eslint-plugin-vue: - specifier: 10.5.0 - version: 10.5.0(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.2))(eslint@8.57.0)(vue-eslint-parser@10.2.0(eslint@8.57.0)) + specifier: 10.5.1 + version: 10.5.1(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.3))(eslint@8.57.0)(vue-eslint-parser@10.2.0(eslint@8.57.0)) postcss: specifier: 8.5.6 version: 8.5.6 @@ -1069,22 +1073,22 @@ importers: version: 1.93.2 tailwindcss: specifier: 3.4.16 - version: 3.4.16(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2)) + version: 3.4.16(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)) typescript: - specifier: 5.9.2 - version: 5.9.2 + specifier: 5.9.3 + version: 5.9.3 unplugin-icons: specifier: 22.2.0 version: 22.2.0(@vue/compiler-sfc@3.5.22)(svelte@3.59.2)(vue-template-compiler@2.7.16) unplugin-vue-components: specifier: 29.0.0 - version: 29.0.0(@babel/parser@7.28.4)(vue@3.5.22(typescript@5.9.2)) + version: 29.0.0(@babel/parser@7.28.4)(vue@3.5.22(typescript@5.9.3)) vite: specifier: 6.3.5 - version: 6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + version: 6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) vue-tsc: specifier: 2.2.0 - version: 2.2.0(typescript@5.9.2) + version: 2.2.0(typescript@5.9.3) packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload: dependencies: @@ -1094,16 +1098,16 @@ importers: devDependencies: '@rollup/plugin-typescript': specifier: ^11.1.6 - version: 11.1.6(rollup@4.52.2)(tslib@2.8.0)(typescript@5.9.2) + version: 11.1.6(rollup@4.52.5)(tslib@2.8.0)(typescript@5.9.3) rollup: - specifier: ^4.52.2 - version: 4.52.2 + specifier: ^4.52.5 + version: 4.52.5 tslib: specifier: ^2.6.2 version: 2.8.0 typescript: - specifier: 5.9.2 - version: 5.9.2 + specifier: 5.9.3 + version: 5.9.3 packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/examples/tauri-app: dependencies: @@ -1116,7 +1120,7 @@ importers: devDependencies: '@sveltejs/vite-plugin-svelte': specifier: ^1.0.1 - version: 1.4.0(svelte@3.59.2)(vite@3.2.11(@types/node@24.5.2)(sass@1.93.2)(terser@5.39.2)) + version: 1.4.0(svelte@3.59.2)(vite@3.2.11(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2)) '@tauri-apps/cli': specifier: ^2.0.0-alpha.17 version: 2.0.4 @@ -1125,7 +1129,7 @@ importers: version: 3.59.2 vite: specifier: ^3.0.2 - version: 3.2.11(@types/node@24.5.2)(sass@1.93.2)(terser@5.39.2) + version: 3.2.11(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2) packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-relay: dependencies: @@ -1135,16 +1139,16 @@ importers: devDependencies: '@rollup/plugin-typescript': specifier: ^11.1.6 - version: 11.1.6(rollup@4.52.2)(tslib@2.8.0)(typescript@5.9.2) + version: 11.1.6(rollup@4.52.5)(tslib@2.8.0)(typescript@5.9.3) rollup: - specifier: ^4.52.2 - version: 4.52.2 + specifier: ^4.52.5 + version: 4.52.5 tslib: specifier: ^2.6.2 version: 2.8.0 typescript: - specifier: 5.9.2 - version: 5.9.2 + specifier: 5.9.3 + version: 5.9.3 packages/hoppscotch-js-sandbox: dependencies: @@ -1183,14 +1187,14 @@ importers: specifier: 4.17.20 version: 4.17.20 '@types/node': - specifier: 24.3.0 - version: 24.3.0 + specifier: 24.9.1 + version: 24.9.1 '@typescript-eslint/eslint-plugin': specifier: 8.44.1 - version: 8.44.1(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.2))(eslint@8.57.0)(typescript@5.9.2) + version: 8.44.1(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.3))(eslint@8.57.0)(typescript@5.9.3) '@typescript-eslint/parser': specifier: 8.44.1 - version: 8.44.1(eslint@8.57.0)(typescript@5.9.2) + version: 8.44.1(eslint@8.57.0)(typescript@5.9.3) eslint: specifier: 8.57.0 version: 8.57.0 @@ -1207,14 +1211,14 @@ importers: specifier: 3.6.2 version: 3.6.2 typescript: - specifier: 5.9.2 - version: 5.9.2 + specifier: 5.9.3 + version: 5.9.3 vite: specifier: 6.3.6 - version: 6.3.6(@types/node@24.3.0)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + version: 6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) vitest: specifier: 3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.6.0)(jsdom@26.1.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(jiti@2.6.0)(jsdom@26.1.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) packages/hoppscotch-kernel: dependencies: @@ -1246,21 +1250,21 @@ importers: specifier: 2.16.11 version: 2.16.11 superjson: - specifier: 2.2.2 - version: 2.2.2 + specifier: 2.2.3 + version: 2.2.3 zod: specifier: 3.25.32 version: 3.25.32 devDependencies: '@types/node': - specifier: 24.3.0 - version: 24.3.0 + specifier: 24.9.1 + version: 24.9.1 typescript: - specifier: 5.9.2 - version: 5.9.2 + specifier: 5.9.3 + version: 5.9.3 vite: specifier: 6.3.5 - version: 6.3.5(@types/node@24.3.0)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + version: 6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) packages/hoppscotch-selfhost-desktop: dependencies: @@ -1290,7 +1294,7 @@ importers: version: 1.5.6 '@vueuse/core': specifier: 10.5.0 - version: 10.5.0(vue@3.5.22(typescript@5.8.3)) + version: 10.5.0(vue@3.5.22(typescript@5.9.3)) axios: specifier: 1.8.2 version: 1.8.2 @@ -1299,7 +1303,7 @@ importers: version: 6.0.3 dioc: specifier: 3.0.2 - version: 3.0.2(vue@3.5.22(typescript@5.8.3)) + version: 3.0.2(vue@3.5.22(typescript@5.9.3)) environments.api: specifier: link:@platform/environments/environments.api version: link:@platform/environments/environments.api @@ -1338,7 +1342,7 @@ importers: version: 0.3.0(zod@3.25.32) vue: specifier: 3.5.22 - version: 3.5.22(typescript@5.8.3) + version: 3.5.22(typescript@5.9.3) workbox-window: specifier: 6.6.0 version: 6.6.0 @@ -1351,7 +1355,7 @@ importers: version: 5.0.0(graphql@16.11.0) '@graphql-codegen/cli': specifier: 5.0.0 - version: 5.0.0(@parcel/watcher@2.5.1)(@types/node@18.18.8)(graphql@16.11.0)(typescript@5.8.3) + version: 5.0.0(@parcel/watcher@2.5.1)(@types/node@24.9.1)(graphql@16.11.0)(typescript@5.9.3) '@graphql-codegen/typed-document-node': specifier: 5.0.1 version: 5.0.1(graphql@16.11.0) @@ -1375,40 +1379,40 @@ importers: version: 1.2.68 '@intlify/unplugin-vue-i18n': specifier: 6.0.4 - version: 6.0.4(@vue/compiler-dom@3.5.22)(eslint@8.47.0)(rollup@2.79.2)(typescript@5.8.3)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.8.3)))(vue@3.5.22(typescript@5.8.3))(webpack-sources@3.3.3) + version: 6.0.4(@vue/compiler-dom@3.5.22)(eslint@8.47.0)(rollup@2.79.2)(typescript@5.9.3)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3))(webpack-sources@3.3.3) '@rushstack/eslint-patch': - specifier: 1.3.3 - version: 1.3.3 + specifier: 1.14.0 + version: 1.14.0 '@types/lodash-es': specifier: 4.17.10 version: 4.17.10 '@types/node': - specifier: 18.18.8 - version: 18.18.8 + specifier: 24.9.1 + version: 24.9.1 '@typescript-eslint/eslint-plugin': specifier: 8.44.1 - version: 8.44.1(@typescript-eslint/parser@8.44.1(eslint@8.47.0)(typescript@5.8.3))(eslint@8.47.0)(typescript@5.8.3) + version: 8.44.1(@typescript-eslint/parser@8.44.1(eslint@8.47.0)(typescript@5.9.3))(eslint@8.47.0)(typescript@5.9.3) '@typescript-eslint/parser': specifier: 8.44.1 - version: 8.44.1(eslint@8.47.0)(typescript@5.8.3) + version: 8.44.1(eslint@8.47.0)(typescript@5.9.3) '@vitejs/plugin-legacy': specifier: 2.3.0 - version: 2.3.0(terser@5.39.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2)) + version: 2.3.0(terser@5.39.2)(vite@4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2)) '@vitejs/plugin-vue': specifier: 4.3.1 - version: 4.3.1(vite@4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2))(vue@3.5.22(typescript@5.8.3)) + version: 4.3.1(vite@4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2))(vue@3.5.22(typescript@5.9.3)) '@vue/eslint-config-typescript': specifier: 11.0.3 - version: 11.0.3(eslint-plugin-vue@10.5.0(@typescript-eslint/parser@8.44.1(eslint@8.47.0)(typescript@5.8.3))(eslint@8.47.0)(vue-eslint-parser@10.2.0(eslint@8.47.0)))(eslint@8.47.0)(typescript@5.8.3) + version: 11.0.3(eslint-plugin-vue@10.5.1(@typescript-eslint/parser@8.44.1(eslint@8.47.0)(typescript@5.9.3))(eslint@8.47.0)(vue-eslint-parser@10.2.0(eslint@8.47.0)))(eslint@8.47.0)(typescript@5.9.3) autoprefixer: specifier: 10.4.16 version: 10.4.16(postcss@8.4.32) cross-env: - specifier: 7.0.3 - version: 7.0.3 + specifier: 10.1.0 + version: 10.1.0 dotenv: - specifier: 17.2.2 - version: 17.2.2 + specifier: 17.2.3 + version: 17.2.3 eslint: specifier: 8.47.0 version: 8.47.0 @@ -1416,8 +1420,8 @@ importers: specifier: 4.2.1 version: 4.2.1(eslint@8.47.0)(prettier@3.6.2) eslint-plugin-vue: - specifier: 10.5.0 - version: 10.5.0(@typescript-eslint/parser@8.44.1(eslint@8.47.0)(typescript@5.8.3))(eslint@8.47.0)(vue-eslint-parser@10.2.0(eslint@8.47.0)) + specifier: 10.5.1 + version: 10.5.1(@typescript-eslint/parser@8.44.1(eslint@8.47.0)(typescript@5.9.3))(eslint@8.47.0)(vue-eslint-parser@10.2.0(eslint@8.47.0)) npm-run-all: specifier: 4.1.5 version: 4.1.5 @@ -1426,46 +1430,46 @@ importers: version: 8.4.32 tailwindcss: specifier: 3.3.6 - version: 3.3.6(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.8.3)) + version: 3.3.6(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)) typescript: - specifier: 5.8.3 - version: 5.8.3 + specifier: 5.9.3 + version: 5.9.3 unplugin-fonts: specifier: 1.1.1 - version: 1.1.1(vite@4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2)) + version: 1.1.1(vite@4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2)) unplugin-icons: specifier: 0.14.9 version: 0.14.9(@vue/compiler-sfc@3.5.22)(vue-template-compiler@2.7.16) unplugin-vue-components: specifier: 0.21.0 - version: 0.21.0(@babel/parser@7.28.4)(esbuild@0.25.10)(rollup@2.79.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2))(vue@3.5.22(typescript@5.8.3))(webpack@5.100.2(@swc/core@1.4.2)(esbuild@0.25.10)) + version: 0.21.0(@babel/parser@7.28.4)(esbuild@0.25.11)(rollup@2.79.2)(vite@4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2))(vue@3.5.22(typescript@5.9.3))(webpack@5.100.2(@swc/core@1.4.2)(esbuild@0.25.11)) vite: specifier: 4.5.0 - version: 4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2) + version: 4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2) vite-plugin-html-config: specifier: 1.0.11 - version: 1.0.11(vite@4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2)) + version: 1.0.11(vite@4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2)) vite-plugin-inspect: specifier: 0.7.38 - version: 0.7.38(rollup@2.79.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2)) + version: 0.7.38(rollup@2.79.2)(vite@4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2)) vite-plugin-pages: specifier: 0.26.0 - version: 0.26.0(@vue/compiler-sfc@3.5.22)(vite@4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2)) + version: 0.26.0(@vue/compiler-sfc@3.5.22)(vite@4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2)) vite-plugin-pages-sitemap: specifier: 1.6.1 version: 1.6.1 vite-plugin-pwa: - specifier: 0.13.1 - version: 0.13.1(vite@4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2))(workbox-build@7.1.0(@types/babel__core@7.20.5))(workbox-window@6.6.0) + specifier: 1.1.0 + version: 1.1.0(vite@4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2))(workbox-build@7.1.0(@types/babel__core@7.20.5))(workbox-window@6.6.0) vite-plugin-static-copy: specifier: 0.12.0 - version: 0.12.0(vite@4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2)) + version: 0.12.0(vite@4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2)) vite-plugin-vue-layouts: specifier: 0.7.0 - version: 0.7.0(vite@4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2))(vue-router@4.5.1(vue@3.5.22(typescript@5.8.3)))(vue@3.5.22(typescript@5.8.3)) + version: 0.7.0(vite@4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2))(vue-router@4.6.3(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) vue-tsc: specifier: 1.8.8 - version: 1.8.8(typescript@5.8.3) + version: 1.8.8(typescript@5.9.3) packages/hoppscotch-selfhost-web: dependencies: @@ -1489,7 +1493,7 @@ importers: version: link:../hoppscotch-kernel '@hoppscotch/ui': specifier: 0.2.5 - version: 0.2.5(eslint@8.57.0)(terser@5.39.2)(typescript@5.9.2)(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2)) + version: 0.2.5(eslint@8.57.0)(terser@5.39.2)(typescript@5.9.3)(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) '@import-meta-env/unplugin': specifier: 0.6.2 version: 0.6.2(@import-meta-env/cli@0.7.3) @@ -1507,7 +1511,7 @@ importers: version: 2.2.1 '@vueuse/core': specifier: 13.7.0 - version: 13.7.0(vue@3.5.22(typescript@5.9.2)) + version: 13.7.0(vue@3.5.22(typescript@5.9.3)) axios: specifier: 1.12.2 version: 1.12.2 @@ -1516,7 +1520,7 @@ importers: version: 6.0.3 dioc: specifier: 3.0.2 - version: 3.0.2(vue@3.5.22(typescript@5.9.2)) + version: 3.0.2(vue@3.5.22(typescript@5.9.3)) fp-ts: specifier: 2.16.11 version: 2.16.11 @@ -1537,7 +1541,7 @@ importers: version: 0.4.0(zod@3.25.32) vue: specifier: 3.5.22 - version: 3.5.22(typescript@5.9.2) + version: 3.5.22(typescript@5.9.3) workbox-window: specifier: 7.3.0 version: 7.3.0 @@ -1550,7 +1554,7 @@ importers: version: 5.0.3(graphql@16.11.0) '@graphql-codegen/cli': specifier: 5.0.7 - version: 5.0.7(@parcel/watcher@2.5.1)(@types/node@24.5.2)(graphql@16.11.0)(typescript@5.9.2) + version: 5.0.7(@parcel/watcher@2.5.1)(@types/node@24.9.1)(graphql@16.11.0)(typescript@5.9.3) '@graphql-codegen/typed-document-node': specifier: 5.1.2 version: 5.1.2(graphql@16.11.0) @@ -1574,34 +1578,34 @@ importers: version: 1.2.68 '@intlify/unplugin-vue-i18n': specifier: 6.0.8 - version: 6.0.8(@vue/compiler-dom@3.5.22)(eslint@8.57.0)(rollup@4.52.2)(typescript@5.9.2)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2)) + version: 6.0.8(@vue/compiler-dom@3.5.22)(eslint@8.57.0)(rollup@4.52.5)(typescript@5.9.3)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) '@rushstack/eslint-patch': - specifier: 1.12.0 - version: 1.12.0 + specifier: 1.14.0 + version: 1.14.0 '@typescript-eslint/eslint-plugin': specifier: 8.44.1 - version: 8.44.1(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.2))(eslint@8.57.0)(typescript@5.9.2) + version: 8.44.1(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.3))(eslint@8.57.0)(typescript@5.9.3) '@typescript-eslint/parser': specifier: 8.44.1 - version: 8.44.1(eslint@8.57.0)(typescript@5.9.2) + version: 8.44.1(eslint@8.57.0)(typescript@5.9.3) '@vitejs/plugin-legacy': specifier: 5.4.2 - version: 5.4.2(terser@5.39.2)(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) + version: 5.4.2(terser@5.39.2)(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) '@vitejs/plugin-vue': specifier: 5.1.4 - version: 5.1.4(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2)) + version: 5.1.4(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) '@vue/eslint-config-typescript': specifier: 13.0.0 - version: 13.0.0(eslint-plugin-vue@10.5.0(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.2))(eslint@8.57.0)(vue-eslint-parser@10.2.0(eslint@8.57.0)))(eslint@8.57.0)(typescript@5.9.2) + version: 13.0.0(eslint-plugin-vue@10.5.1(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.3))(eslint@8.57.0)(vue-eslint-parser@10.2.0(eslint@8.57.0)))(eslint@8.57.0)(typescript@5.9.3) autoprefixer: specifier: 10.4.21 version: 10.4.21(postcss@8.5.6) cross-env: - specifier: 10.0.0 - version: 10.0.0 + specifier: 10.1.0 + version: 10.1.0 dotenv: - specifier: 17.2.2 - version: 17.2.2 + specifier: 17.2.3 + version: 17.2.3 eslint: specifier: 8.57.0 version: 8.57.0 @@ -1609,8 +1613,8 @@ importers: specifier: 5.5.4 version: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@8.57.0))(eslint@8.57.0)(prettier@3.6.2) eslint-plugin-vue: - specifier: 10.5.0 - version: 10.5.0(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.2))(eslint@8.57.0)(vue-eslint-parser@10.2.0(eslint@8.57.0)) + specifier: 10.5.1 + version: 10.5.1(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.3))(eslint@8.57.0)(vue-eslint-parser@10.2.0(eslint@8.57.0)) npm-run-all: specifier: 4.1.5 version: 4.1.5 @@ -1622,49 +1626,49 @@ importers: version: 0.6.14(prettier@3.6.2) tailwindcss: specifier: 3.4.16 - version: 3.4.16(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2)) + version: 3.4.16(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)) typescript: - specifier: 5.9.2 - version: 5.9.2 + specifier: 5.9.3 + version: 5.9.3 unplugin-fonts: specifier: 1.4.0 - version: 1.4.0(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) + version: 1.4.0(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) unplugin-icons: specifier: 22.2.0 version: 22.2.0(@vue/compiler-sfc@3.5.22)(svelte@3.59.2)(vue-template-compiler@2.7.16) unplugin-vue-components: specifier: 29.0.0 - version: 29.0.0(@babel/parser@7.28.4)(vue@3.5.22(typescript@5.9.2)) + version: 29.0.0(@babel/parser@7.28.4)(vue@3.5.22(typescript@5.9.3)) vite: specifier: 6.3.5 - version: 6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + version: 6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) vite-plugin-fonts: specifier: 0.7.0 - version: 0.7.0(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) + version: 0.7.0(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) vite-plugin-html-config: specifier: 2.0.2 - version: 2.0.2(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) + version: 2.0.2(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) vite-plugin-inspect: specifier: 11.3.3 - version: 11.3.3(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) + version: 11.3.3(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) vite-plugin-pages: specifier: 0.33.1 - version: 0.33.1(@vue/compiler-sfc@3.5.22)(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.2))) + version: 0.33.1(@vue/compiler-sfc@3.5.22)(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-router@4.6.3(vue@3.5.22(typescript@5.9.3))) vite-plugin-pages-sitemap: specifier: 1.7.1 version: 1.7.1 vite-plugin-pwa: - specifier: 1.0.3 - version: 1.0.3(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(workbox-build@7.1.0(@types/babel__core@7.20.5))(workbox-window@7.3.0) + specifier: 1.1.0 + version: 1.1.0(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(workbox-build@7.1.0(@types/babel__core@7.20.5))(workbox-window@7.3.0) vite-plugin-static-copy: - specifier: 3.1.2 - version: 3.1.2(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) + specifier: 3.1.4 + version: 3.1.4(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) vite-plugin-vue-layouts: specifier: 0.11.0 - version: 0.11.0(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2)) + version: 0.11.0(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-router@4.6.3(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) vue-tsc: specifier: 2.1.6 - version: 2.1.6(typescript@5.9.2) + version: 2.1.6(typescript@5.9.3) packages/hoppscotch-sh-admin: dependencies: @@ -1682,13 +1686,13 @@ importers: version: 3.2.0(graphql@16.11.0) '@hoppscotch/ui': specifier: 0.2.5 - version: 0.2.5(eslint@9.36.0(jiti@2.6.0))(terser@5.39.2)(typescript@5.9.2)(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2)) + version: 0.2.5(eslint@9.37.0(jiti@2.6.0))(terser@5.39.2)(typescript@5.9.3)(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) '@hoppscotch/vue-toasted': specifier: 0.1.0 - version: 0.1.0(vue@3.5.22(typescript@5.9.2)) + version: 0.1.0(vue@3.5.22(typescript@5.9.3)) '@intlify/unplugin-vue-i18n': specifier: 6.0.8 - version: 6.0.8(@vue/compiler-dom@3.5.22)(eslint@9.36.0(jiti@2.6.0))(rollup@4.52.2)(typescript@5.9.2)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2)) + version: 6.0.8(@vue/compiler-dom@3.5.22)(eslint@9.37.0(jiti@2.6.0))(rollup@4.52.5)(typescript@5.9.3)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) '@types/cors': specifier: 2.8.19 version: 2.8.19 @@ -1697,10 +1701,10 @@ importers: version: 3.0.0(@urql/core@6.0.1(graphql@16.11.0)) '@urql/vue': specifier: 2.0.0 - version: 2.0.0(@urql/core@6.0.1(graphql@16.11.0))(vue@3.5.22(typescript@5.9.2)) + version: 2.0.0(@urql/core@6.0.1(graphql@16.11.0))(vue@3.5.22(typescript@5.9.3)) '@vueuse/core': specifier: 13.7.0 - version: 13.7.0(vue@3.5.22(typescript@5.9.2)) + version: 13.7.0(vue@3.5.22(typescript@5.9.3)) axios: specifier: 1.12.2 version: 1.12.2 @@ -1733,35 +1737,35 @@ importers: version: 7.8.2 tailwindcss: specifier: 3.4.16 - version: 3.4.16(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2)) + version: 3.4.16(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)) tippy.js: specifier: 6.3.7 version: 6.3.7 ts-node-dev: specifier: 2.0.0 - version: 2.0.0(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2) + version: 2.0.0(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3) unplugin-icons: specifier: 22.2.0 version: 22.2.0(@vue/compiler-sfc@3.5.22)(svelte@3.59.2)(vue-template-compiler@2.7.16) unplugin-vue-components: specifier: 29.0.0 - version: 29.0.0(@babel/parser@7.28.4)(vue@3.5.22(typescript@5.9.2)) + version: 29.0.0(@babel/parser@7.28.4)(vue@3.5.22(typescript@5.9.3)) vue: specifier: 3.5.22 - version: 3.5.22(typescript@5.9.2) + version: 3.5.22(typescript@5.9.3) vue-i18n: specifier: 11.1.12 - version: 11.1.12(vue@3.5.22(typescript@5.9.2)) + version: 11.1.12(vue@3.5.22(typescript@5.9.3)) vue-router: - specifier: 4.5.1 - version: 4.5.1(vue@3.5.22(typescript@5.9.2)) + specifier: 4.6.3 + version: 4.6.3(vue@3.5.22(typescript@5.9.3)) vue-tippy: specifier: 6.7.1 - version: 6.7.1(vue@3.5.22(typescript@5.9.2)) + version: 6.7.1(vue@3.5.22(typescript@5.9.3)) devDependencies: '@graphql-codegen/cli': specifier: 5.0.7 - version: 5.0.7(@parcel/watcher@2.5.1)(@types/node@24.5.2)(graphql@16.11.0)(typescript@5.9.2) + version: 5.0.7(@parcel/watcher@2.5.1)(@types/node@24.9.1)(graphql@16.11.0)(typescript@5.9.3) '@graphql-codegen/client-preset': specifier: 4.8.3 version: 4.8.3(graphql@16.11.0) @@ -1797,7 +1801,7 @@ importers: version: 4.17.12 '@vitejs/plugin-vue': specifier: 5.1.4 - version: 5.1.4(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2)) + version: 5.1.4(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) '@vue/compiler-sfc': specifier: 3.5.22 version: 3.5.22 @@ -1805,8 +1809,8 @@ importers: specifier: 10.4.21 version: 10.4.21(postcss@8.5.6) dotenv: - specifier: 17.2.2 - version: 17.2.2 + specifier: 17.2.3 + version: 17.2.3 graphql-tag: specifier: 2.12.6 version: 2.12.6(graphql@16.11.0) @@ -1821,25 +1825,25 @@ importers: version: 1.93.2 ts-node: specifier: 10.9.2 - version: 10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2) + version: 10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3) typescript: - specifier: 5.9.2 - version: 5.9.2 + specifier: 5.9.3 + version: 5.9.3 unplugin-fonts: specifier: 1.4.0 - version: 1.4.0(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) + version: 1.4.0(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) vite: specifier: 6.3.5 - version: 6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + version: 6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) vite-plugin-pages: specifier: 0.33.1 - version: 0.33.1(@vue/compiler-sfc@3.5.22)(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.2))) + version: 0.33.1(@vue/compiler-sfc@3.5.22)(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-router@4.6.3(vue@3.5.22(typescript@5.9.3))) vite-plugin-vue-layouts: specifier: 0.11.0 - version: 0.11.0(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2)) + version: 0.11.0(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-router@4.6.3(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) vue-tsc: specifier: 2.1.6 - version: 2.1.6(typescript@5.9.2) + version: 2.1.6(typescript@5.9.3) packages: @@ -1876,6 +1880,15 @@ packages: chokidar: optional: true + '@angular-devkit/core@19.2.17': + resolution: {integrity: sha512-Ah008x2RJkd0F+NLKqIpA34/vUGwjlprRCkvddjDopAWRzYn6xCkz1Tqwuhn0nR1Dy47wTLKYD999TYl5ONOAQ==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + chokidar: ^4.0.0 + peerDependenciesMeta: + chokidar: + optional: true + '@angular-devkit/schematics-cli@19.2.15': resolution: {integrity: sha512-1ESFmFGMpGQmalDB3t2EtmWDGv6gOFYBMxmHO2f1KI/UDl8UmZnCGL4mD3EWo8Hv0YIsZ9wOH9Q7ZHNYjeSpzg==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} @@ -1885,6 +1898,10 @@ packages: resolution: {integrity: sha512-kNOJ+3vekJJCQKWihNmxBkarJzNW09kP5a9E1SRNiQVNOUEeSwcRR0qYotM65nx821gNzjjhJXnAZ8OazWldrg==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@angular-devkit/schematics@19.2.17': + resolution: {integrity: sha512-ADfbaBsrG8mBF6Mfs+crKA/2ykB8AJI50Cv9tKmZfwcUcyAdmTr+vVvhsBCfvUAEokigSsgqgpYxfkJVxhJYeg==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@antfu/install-pkg@0.1.1': resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==} @@ -1930,8 +1947,8 @@ packages: peerDependencies: openapi-types: '>=7' - '@apidevtools/swagger-parser@12.0.0': - resolution: {integrity: sha512-WLJIWcfOXrSKlZEM+yhA2Xzatgl488qr1FoOxixYmtWapBzwSC0gVGq4WObr4hHClMIiFFdOBdixNkvWqkWIWA==} + '@apidevtools/swagger-parser@12.1.0': + resolution: {integrity: sha512-e5mJoswsnAX0jG+J09xHFYQXb/bUc5S3pLpMxUuRUA2H8T2kni3yEoyz2R3Dltw5f4A6j6rPNMpWTK+iVDFlng==} peerDependencies: openapi-types: '>=7' @@ -2046,6 +2063,13 @@ packages: resolution: {integrity: sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==} engines: {node: '>=14'} + '@as-integrations/express5@1.1.2': + resolution: {integrity: sha512-BxfwtcWNf2CELDkuPQxi5Zl3WqY/dQVJYafeCBOGoFQjv5M0fjhxmAFZ9vKx/5YKKNeok4UY6PkFbHzmQrdxIA==} + engines: {node: '>=20'} + peerDependencies: + '@apollo/server': ^4.0.0 || ^5.0.0 + express: ^5.0.0 + '@asamuzakjp/css-color@3.2.0': resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==} @@ -2202,10 +2226,6 @@ packages: resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} engines: {node: '>=6.9.0'} - '@babel/core@7.28.3': - resolution: {integrity: sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==} - engines: {node: '>=6.9.0'} - '@babel/core@7.28.4': resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==} engines: {node: '>=6.9.0'} @@ -2412,10 +2432,6 @@ packages: resolution: {integrity: sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.3': - resolution: {integrity: sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==} - engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.4': resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} engines: {node: '>=6.9.0'} @@ -3325,10 +3341,6 @@ packages: resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.28.3': - resolution: {integrity: sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==} - engines: {node: '>=6.9.0'} - '@babel/traverse@7.28.4': resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==} engines: {node: '>=6.9.0'} @@ -3393,73 +3405,73 @@ packages: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} - '@commitlint/cli@19.8.1': - resolution: {integrity: sha512-LXUdNIkspyxrlV6VDHWBmCZRtkEVRpBKxi2Gtw3J54cGWhLCTouVD/Q6ZSaSvd2YaDObWK8mDjrz3TIKtaQMAA==} + '@commitlint/cli@20.1.0': + resolution: {integrity: sha512-pW5ujjrOovhq5RcYv5xCpb4GkZxkO2+GtOdBW2/qrr0Ll9tl3PX0aBBobGQl3mdZUbOBgwAexEQLeH6uxL0VYg==} engines: {node: '>=v18'} hasBin: true - '@commitlint/config-conventional@19.8.1': - resolution: {integrity: sha512-/AZHJL6F6B/G959CsMAzrPKKZjeEiAVifRyEwXxcT6qtqbPwGw+iQxmNS+Bu+i09OCtdNRW6pNpBvgPrtMr9EQ==} + '@commitlint/config-conventional@20.0.0': + resolution: {integrity: sha512-q7JroPIkDBtyOkVe9Bca0p7kAUYxZMxkrBArCfuD3yN4KjRAenP9PmYwnn7rsw8Q+hHq1QB2BRmBh0/Z19ZoJw==} engines: {node: '>=v18'} - '@commitlint/config-validator@19.8.1': - resolution: {integrity: sha512-0jvJ4u+eqGPBIzzSdqKNX1rvdbSU1lPNYlfQQRIFnBgLy26BtC0cFnr7c/AyuzExMxWsMOte6MkTi9I3SQ3iGQ==} + '@commitlint/config-validator@20.0.0': + resolution: {integrity: sha512-BeyLMaRIJDdroJuYM2EGhDMGwVBMZna9UiIqV9hxj+J551Ctc6yoGuGSmghOy/qPhBSuhA6oMtbEiTmxECafsg==} engines: {node: '>=v18'} - '@commitlint/ensure@19.8.1': - resolution: {integrity: sha512-mXDnlJdvDzSObafjYrOSvZBwkD01cqB4gbnnFuVyNpGUM5ijwU/r/6uqUmBXAAOKRfyEjpkGVZxaDsCVnHAgyw==} + '@commitlint/ensure@20.0.0': + resolution: {integrity: sha512-WBV47Fffvabe68n+13HJNFBqiMH5U1Ryls4W3ieGwPC0C7kJqp3OVQQzG2GXqOALmzrgAB+7GXmyy8N9ct8/Fg==} engines: {node: '>=v18'} - '@commitlint/execute-rule@19.8.1': - resolution: {integrity: sha512-YfJyIqIKWI64Mgvn/sE7FXvVMQER/Cd+s3hZke6cI1xgNT/f6ZAz5heND0QtffH+KbcqAwXDEE1/5niYayYaQA==} + '@commitlint/execute-rule@20.0.0': + resolution: {integrity: sha512-xyCoOShoPuPL44gVa+5EdZsBVao/pNzpQhkzq3RdtlFdKZtjWcLlUFQHSWBuhk5utKYykeJPSz2i8ABHQA+ZZw==} engines: {node: '>=v18'} - '@commitlint/format@19.8.1': - resolution: {integrity: sha512-kSJj34Rp10ItP+Eh9oCItiuN/HwGQMXBnIRk69jdOwEW9llW9FlyqcWYbHPSGofmjsqeoxa38UaEA5tsbm2JWw==} + '@commitlint/format@20.0.0': + resolution: {integrity: sha512-zrZQXUcSDmQ4eGGrd+gFESiX0Rw+WFJk7nW4VFOmxub4mAATNKBQ4vNw5FgMCVehLUKG2OT2LjOqD0Hk8HvcRg==} engines: {node: '>=v18'} - '@commitlint/is-ignored@19.8.1': - resolution: {integrity: sha512-AceOhEhekBUQ5dzrVhDDsbMaY5LqtN8s1mqSnT2Kz1ERvVZkNihrs3Sfk1Je/rxRNbXYFzKZSHaPsEJJDJV8dg==} + '@commitlint/is-ignored@20.0.0': + resolution: {integrity: sha512-ayPLicsqqGAphYIQwh9LdAYOVAQ9Oe5QCgTNTj+BfxZb9b/JW222V5taPoIBzYnAP0z9EfUtljgBk+0BN4T4Cw==} engines: {node: '>=v18'} - '@commitlint/lint@19.8.1': - resolution: {integrity: sha512-52PFbsl+1EvMuokZXLRlOsdcLHf10isTPlWwoY1FQIidTsTvjKXVXYb7AvtpWkDzRO2ZsqIgPK7bI98x8LRUEw==} + '@commitlint/lint@20.0.0': + resolution: {integrity: sha512-kWrX8SfWk4+4nCexfLaQT3f3EcNjJwJBsSZ5rMBw6JCd6OzXufFHgel2Curos4LKIxwec9WSvs2YUD87rXlxNQ==} engines: {node: '>=v18'} - '@commitlint/load@19.8.1': - resolution: {integrity: sha512-9V99EKG3u7z+FEoe4ikgq7YGRCSukAcvmKQuTtUyiYPnOd9a2/H9Ak1J9nJA1HChRQp9OA/sIKPugGS+FK/k1A==} + '@commitlint/load@20.1.0': + resolution: {integrity: sha512-qo9ER0XiAimATQR5QhvvzePfeDfApi/AFlC1G+YN+ZAY8/Ua6IRrDrxRvQAr+YXUKAxUsTDSp9KXeXLBPsNRWg==} engines: {node: '>=v18'} - '@commitlint/message@19.8.1': - resolution: {integrity: sha512-+PMLQvjRXiU+Ae0Wc+p99EoGEutzSXFVwQfa3jRNUZLNW5odZAyseb92OSBTKCu+9gGZiJASt76Cj3dLTtcTdg==} + '@commitlint/message@20.0.0': + resolution: {integrity: sha512-gLX4YmKnZqSwkmSB9OckQUrI5VyXEYiv3J5JKZRxIp8jOQsWjZgHSG/OgEfMQBK9ibdclEdAyIPYggwXoFGXjQ==} engines: {node: '>=v18'} - '@commitlint/parse@19.8.1': - resolution: {integrity: sha512-mmAHYcMBmAgJDKWdkjIGq50X4yB0pSGpxyOODwYmoexxxiUCy5JJT99t1+PEMK7KtsCtzuWYIAXYAiKR+k+/Jw==} + '@commitlint/parse@20.0.0': + resolution: {integrity: sha512-j/PHCDX2bGM5xGcWObOvpOc54cXjn9g6xScXzAeOLwTsScaL4Y+qd0pFC6HBwTtrH92NvJQc+2Lx9HFkVi48cg==} engines: {node: '>=v18'} - '@commitlint/read@19.8.1': - resolution: {integrity: sha512-03Jbjb1MqluaVXKHKRuGhcKWtSgh3Jizqy2lJCRbRrnWpcM06MYm8th59Xcns8EqBYvo0Xqb+2DoZFlga97uXQ==} + '@commitlint/read@20.0.0': + resolution: {integrity: sha512-Ti7Y7aEgxsM1nkwA4ZIJczkTFRX/+USMjNrL9NXwWQHqNqrBX2iMi+zfuzZXqfZ327WXBjdkRaytJ+z5vNqTOA==} engines: {node: '>=v18'} - '@commitlint/resolve-extends@19.8.1': - resolution: {integrity: sha512-GM0mAhFk49I+T/5UCYns5ayGStkTt4XFFrjjf0L4S26xoMTSkdCf9ZRO8en1kuopC4isDFuEm7ZOm/WRVeElVg==} + '@commitlint/resolve-extends@20.1.0': + resolution: {integrity: sha512-cxKXQrqHjZT3o+XPdqDCwOWVFQiae++uwd9dUBC7f2MdV58ons3uUvASdW7m55eat5sRiQ6xUHyMWMRm6atZWw==} engines: {node: '>=v18'} - '@commitlint/rules@19.8.1': - resolution: {integrity: sha512-Hnlhd9DyvGiGwjfjfToMi1dsnw1EXKGJNLTcsuGORHz6SS9swRgkBsou33MQ2n51/boIDrbsg4tIBbRpEWK2kw==} + '@commitlint/rules@20.0.0': + resolution: {integrity: sha512-gvg2k10I/RfvHn5I5sxvVZKM1fl72Sqrv2YY/BnM7lMHcYqO0E2jnRWoYguvBfEcZ39t+rbATlciggVe77E4zA==} engines: {node: '>=v18'} - '@commitlint/to-lines@19.8.1': - resolution: {integrity: sha512-98Mm5inzbWTKuZQr2aW4SReY6WUukdWXuZhrqf1QdKPZBCCsXuG87c+iP0bwtD6DBnmVVQjgp4whoHRVixyPBg==} + '@commitlint/to-lines@20.0.0': + resolution: {integrity: sha512-2l9gmwiCRqZNWgV+pX1X7z4yP0b3ex/86UmUFgoRt672Ez6cAM2lOQeHFRUTuE6sPpi8XBCGnd8Kh3bMoyHwJw==} engines: {node: '>=v18'} - '@commitlint/top-level@19.8.1': - resolution: {integrity: sha512-Ph8IN1IOHPSDhURCSXBz44+CIu+60duFwRsg6HqaISFHQHbmBtxVw4ZrFNIYUzEP7WwrNPxa2/5qJ//NK1FGcw==} + '@commitlint/top-level@20.0.0': + resolution: {integrity: sha512-drXaPSP2EcopukrUXvUXmsQMu3Ey/FuJDc/5oiW4heoCfoE5BdLQyuc7veGeE3aoQaTVqZnh4D5WTWe2vefYKg==} engines: {node: '>=v18'} - '@commitlint/types@19.8.1': - resolution: {integrity: sha512-/yCrWGCoA1SVKOks25EGadP9Pnj0oAIHGpl2wH2M2Y46dPM2ueb8wyCVOD7O3WCTkaJ0IkKvzhl1JY7+uCT2Dw==} + '@commitlint/types@20.0.0': + resolution: {integrity: sha512-bVUNBqG6aznYcYjTjnc3+Cat/iBgbgpflxbIBTnsHTX0YVpnmINPEkSRWymT2Q8aSH3Y7aKnEbunilkYe8TybA==} engines: {node: '>=v18'} '@cspotcode/source-map-support@0.8.1': @@ -3606,6 +3618,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.25.11': + resolution: {integrity: sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/aix-ppc64@0.25.8': resolution: {integrity: sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==} engines: {node: '>=18'} @@ -3636,6 +3654,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.25.11': + resolution: {integrity: sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm64@0.25.8': resolution: {integrity: sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==} engines: {node: '>=18'} @@ -3672,6 +3696,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.25.11': + resolution: {integrity: sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-arm@0.25.8': resolution: {integrity: sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==} engines: {node: '>=18'} @@ -3702,6 +3732,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.25.11': + resolution: {integrity: sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/android-x64@0.25.8': resolution: {integrity: sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==} engines: {node: '>=18'} @@ -3732,6 +3768,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.25.11': + resolution: {integrity: sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-arm64@0.25.8': resolution: {integrity: sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==} engines: {node: '>=18'} @@ -3762,6 +3804,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.25.11': + resolution: {integrity: sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/darwin-x64@0.25.8': resolution: {integrity: sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==} engines: {node: '>=18'} @@ -3792,6 +3840,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.25.11': + resolution: {integrity: sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-arm64@0.25.8': resolution: {integrity: sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==} engines: {node: '>=18'} @@ -3822,6 +3876,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.25.11': + resolution: {integrity: sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/freebsd-x64@0.25.8': resolution: {integrity: sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==} engines: {node: '>=18'} @@ -3852,6 +3912,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.25.11': + resolution: {integrity: sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm64@0.25.8': resolution: {integrity: sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==} engines: {node: '>=18'} @@ -3882,6 +3948,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.25.11': + resolution: {integrity: sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-arm@0.25.8': resolution: {integrity: sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==} engines: {node: '>=18'} @@ -3912,6 +3984,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.25.11': + resolution: {integrity: sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-ia32@0.25.8': resolution: {integrity: sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==} engines: {node: '>=18'} @@ -3948,6 +4026,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.25.11': + resolution: {integrity: sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-loong64@0.25.8': resolution: {integrity: sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==} engines: {node: '>=18'} @@ -3978,6 +4062,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.25.11': + resolution: {integrity: sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-mips64el@0.25.8': resolution: {integrity: sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==} engines: {node: '>=18'} @@ -4008,6 +4098,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.25.11': + resolution: {integrity: sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-ppc64@0.25.8': resolution: {integrity: sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==} engines: {node: '>=18'} @@ -4038,6 +4134,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.25.11': + resolution: {integrity: sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-riscv64@0.25.8': resolution: {integrity: sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==} engines: {node: '>=18'} @@ -4068,6 +4170,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.25.11': + resolution: {integrity: sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-s390x@0.25.8': resolution: {integrity: sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==} engines: {node: '>=18'} @@ -4098,6 +4206,12 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.25.11': + resolution: {integrity: sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/linux-x64@0.25.8': resolution: {integrity: sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==} engines: {node: '>=18'} @@ -4116,6 +4230,12 @@ packages: cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-arm64@0.25.11': + resolution: {integrity: sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-arm64@0.25.8': resolution: {integrity: sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==} engines: {node: '>=18'} @@ -4146,6 +4266,12 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.25.11': + resolution: {integrity: sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/netbsd-x64@0.25.8': resolution: {integrity: sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==} engines: {node: '>=18'} @@ -4164,6 +4290,12 @@ packages: cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.25.11': + resolution: {integrity: sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-arm64@0.25.8': resolution: {integrity: sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==} engines: {node: '>=18'} @@ -4194,6 +4326,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.25.11': + resolution: {integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/openbsd-x64@0.25.8': resolution: {integrity: sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==} engines: {node: '>=18'} @@ -4212,6 +4350,12 @@ packages: cpu: [arm64] os: [openharmony] + '@esbuild/openharmony-arm64@0.25.11': + resolution: {integrity: sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + '@esbuild/openharmony-arm64@0.25.8': resolution: {integrity: sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==} engines: {node: '>=18'} @@ -4242,6 +4386,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.25.11': + resolution: {integrity: sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/sunos-x64@0.25.8': resolution: {integrity: sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==} engines: {node: '>=18'} @@ -4272,6 +4422,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.25.11': + resolution: {integrity: sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-arm64@0.25.8': resolution: {integrity: sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==} engines: {node: '>=18'} @@ -4302,6 +4458,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.25.11': + resolution: {integrity: sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-ia32@0.25.8': resolution: {integrity: sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==} engines: {node: '>=18'} @@ -4332,6 +4494,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.25.11': + resolution: {integrity: sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@esbuild/win32-x64@0.25.8': resolution: {integrity: sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==} engines: {node: '>=18'} @@ -4374,12 +4542,12 @@ packages: resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/config-helpers@0.3.1': - resolution: {integrity: sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==} + '@eslint/config-helpers@0.4.0': + resolution: {integrity: sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.15.2': - resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==} + '@eslint/core@0.16.0': + resolution: {integrity: sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/eslintrc@2.1.4': @@ -4398,16 +4566,16 @@ packages: resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/js@9.36.0': - resolution: {integrity: sha512-uhCbYtYynH30iZErszX78U+nR3pJU3RHGQ57NXy5QupD4SBVwDeU8TNBy+MjMngc1UyIW9noKqsRqfjQTBU2dw==} + '@eslint/js@9.37.0': + resolution: {integrity: sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.3.5': - resolution: {integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==} + '@eslint/plugin-kit@0.4.0': + resolution: {integrity: sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@exodus/schemasafe@1.3.0': @@ -5013,10 +5181,10 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@guolao/vue-monaco-editor@1.5.5': - resolution: {integrity: sha512-NFGImQ8dBYj6ehIxy1DngPRkctB9b6GbxvCm6aXZztNsgm/TtM4u+YM9ZwZHQPlXt7a4IODXoKCcTYEVycBSyA==} + '@guolao/vue-monaco-editor@1.6.0': + resolution: {integrity: sha512-w2IiJ6eJGGeuIgCK6EKZOAfhHTTUB5aZwslzwGbZ5e89Hb4avx6++GkLTW8p84Sng/arFMjLPPxSBI56cFudyQ==} peerDependencies: - '@vue/composition-api': ^1.7.1 + '@vue/composition-api': ^1.7.2 monaco-editor: '>=0.43.0' vue: 3.5.22 peerDependenciesMeta: @@ -5484,12 +5652,12 @@ packages: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - '@jest/console@30.1.2': - resolution: {integrity: sha512-BGMAxj8VRmoD0MoA/jo9alMXSRoqW8KPeqOfEo1ncxnRLatTBCpRoOwlwlEMdudp68Q6WSGwYrrLtTGOh8fLzw==} + '@jest/console@30.2.0': + resolution: {integrity: sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/core@30.1.3': - resolution: {integrity: sha512-LIQz7NEDDO1+eyOA2ZmkiAyYvZuo6s1UxD/e2IHldR6D7UYogVq3arTmli07MkENLq6/3JEQjp0mA8rrHHJ8KQ==} + '@jest/core@30.2.0': + resolution: {integrity: sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -5501,8 +5669,8 @@ packages: resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/environment@30.1.2': - resolution: {integrity: sha512-N8t1Ytw4/mr9uN28OnVf0SYE2dGhaIxOVYcwsf9IInBKjvofAjbFRvedvBBlyTYk2knbJTiEjEJ2PyyDIBnd9w==} + '@jest/environment@30.2.0': + resolution: {integrity: sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/expect-utils@29.7.0': @@ -5513,16 +5681,16 @@ packages: resolution: {integrity: sha512-F3lmTT7CXWYywoVUGTCmom0vXq3HTTkaZyTAzIy+bXSBizB7o5qzlC9VCtq0arOa8GqmNsbg/cE9C6HLn7Szew==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/expect-utils@30.1.2': - resolution: {integrity: sha512-HXy1qT/bfdjCv7iC336ExbqqYtZvljrV8odNdso7dWK9bSeHtLlvwWWC3YSybSPL03Gg5rug6WLCZAZFH72m0A==} + '@jest/expect-utils@30.2.0': + resolution: {integrity: sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/expect@30.1.2': - resolution: {integrity: sha512-tyaIExOwQRCxPCGNC05lIjWJztDwk2gPDNSDGg1zitXJJ8dC3++G/CRjE5mb2wQsf89+lsgAgqxxNpDLiCViTA==} + '@jest/expect@30.2.0': + resolution: {integrity: sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/fake-timers@30.1.2': - resolution: {integrity: sha512-Beljfv9AYkr9K+ETX9tvV61rJTY706BhBUtiaepQHeEGfe0DbpvUA5Z3fomwc5Xkhns6NWrcFDZn+72fLieUnA==} + '@jest/fake-timers@30.2.0': + resolution: {integrity: sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/get-type@30.0.1': @@ -5533,16 +5701,16 @@ packages: resolution: {integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/globals@30.1.2': - resolution: {integrity: sha512-teNTPZ8yZe3ahbYnvnVRDeOjr+3pu2uiAtNtrEsiMjVPPj+cXd5E/fr8BL7v/T7F31vYdEHrI5cC/2OoO/vM9A==} + '@jest/globals@30.2.0': + resolution: {integrity: sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/pattern@30.0.1': resolution: {integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/reporters@30.1.3': - resolution: {integrity: sha512-VWEQmJWfXMOrzdFEOyGjUEOuVXllgZsoPtEHZzfdNz18RmzJ5nlR6kp8hDdY8dDS1yGOXAY7DHT+AOHIPSBV0w==} + '@jest/reporters@30.2.0': + resolution: {integrity: sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -5558,24 +5726,24 @@ packages: resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/snapshot-utils@30.1.2': - resolution: {integrity: sha512-vHoMTpimcPSR7OxS2S0V1Cpg8eKDRxucHjoWl5u4RQcnxqQrV3avETiFpl8etn4dqxEGarBeHbIBety/f8mLXw==} + '@jest/snapshot-utils@30.2.0': + resolution: {integrity: sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/source-map@30.0.1': resolution: {integrity: sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/test-result@30.1.3': - resolution: {integrity: sha512-P9IV8T24D43cNRANPPokn7tZh0FAFnYS2HIfi5vK18CjRkTDR9Y3e1BoEcAJnl4ghZZF4Ecda4M/k41QkvurEQ==} + '@jest/test-result@30.2.0': + resolution: {integrity: sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/test-sequencer@30.1.3': - resolution: {integrity: sha512-82J+hzC0qeQIiiZDThh+YUadvshdBswi5nuyXlEmXzrhw5ZQSRHeQ5LpVMD/xc8B3wPePvs6VMzHnntxL+4E3w==} + '@jest/test-sequencer@30.2.0': + resolution: {integrity: sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/transform@30.1.2': - resolution: {integrity: sha512-UYYFGifSgfjujf1Cbd3iU/IQoSd6uwsj8XHj5DSDf5ERDcWMdJOPTkHWXj4U+Z/uMagyOQZ6Vne8C4nRIrCxqA==} + '@jest/transform@30.2.0': + resolution: {integrity: sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/types@29.6.3': @@ -5586,6 +5754,10 @@ packages: resolution: {integrity: sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/types@30.2.0': + resolution: {integrity: sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jitl/quickjs-ffi-types@0.31.0': resolution: {integrity: sha512-1yrgvXlmXH2oNj3eFTrkwacGJbmM0crwipA3ohCrjv52gBeDaD7PsTvFYinlAnqU8iPME3LGP437yk05a2oejw==} @@ -5696,8 +5868,8 @@ packages: '@microsoft/tsdoc@0.15.1': resolution: {integrity: sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==} - '@monaco-editor/loader@1.5.0': - resolution: {integrity: sha512-hKoGSM+7aAc7eRTRjpqAZucPmoNOC4UUbknb/VNoTkEIkCPhqV8LfbsgM1webRM7S/z21eHEx9Fkwx8Z/C/+Xw==} + '@monaco-editor/loader@1.6.1': + resolution: {integrity: sha512-w3tEnj9HYEC73wtjdpR089AqkUPskFRcdkxsiSFt3SoUc3OHpmu+leP94CXBm4mHfefmhsdfI0ZQu6qJ0wgtPg==} '@napi-rs/canvas-android-arm64@0.1.77': resolution: {integrity: sha512-jC8YX0rbAnu9YrLK1A52KM2HX9EDjrJSCLVuBf9Dsov4IC6GgwMLS2pwL9GFLJnSZBFgdwnA84efBehHT9eshA==} @@ -5771,15 +5943,16 @@ packages: peerDependencies: '@nestjs/common': '>=7.0.9' '@nestjs/core': '>=7.0.9' - nodemailer: '>=6.4.6' + nodemailer: 7.0.7 - '@nestjs/apollo@13.1.0': - resolution: {integrity: sha512-/FRg195AxpZ58Kjd7geeksaRs3blmlGMDUak7WGbrl7ZWX7J9VuulhTjVHP6Z+dhH4Tn+AsyjkkJ2euC8psv3A==} + '@nestjs/apollo@13.2.1': + resolution: {integrity: sha512-BJPNw8xqs4DfdEEmjaAbI6cIJsHouWjcZN70BKTPl8rZcw4Tf61RonqFRn0F/rr/aiccWGAuXJuWY4dPsgah4Q==} peerDependencies: '@apollo/gateway': ^2.0.0 - '@apollo/server': ^4.11.3 + '@apollo/server': ^5.0.0 '@apollo/subgraph': ^2.0.0 - '@as-integrations/fastify': ^2.1.1 + '@as-integrations/express5': '*' + '@as-integrations/fastify': ^2.1.1 || ^3.0.0 '@nestjs/common': ^11.0.1 '@nestjs/core': ^11.0.1 '@nestjs/graphql': ^13.0.0 @@ -5789,6 +5962,8 @@ packages: optional: true '@apollo/subgraph': optional: true + '@as-integrations/express5': + optional: true '@as-integrations/fastify': optional: true @@ -5842,15 +6017,15 @@ packages: '@nestjs/websockets': optional: true - '@nestjs/graphql@13.1.0': - resolution: {integrity: sha512-frjUJOPJNEZVqiFynhDs/+rEor3ySAj4pITTa/szAWRfdPhAxIJzOtZnn+eCLubr4lymlK/q71azFwTFyeVShg==} + '@nestjs/graphql@13.2.0': + resolution: {integrity: sha512-ehgd4pp9e6PQJWjkjV/jGF4934LLzH7C/efe9a9yKJeTZi+x7AL6p+00Q5fhgG75E2CgUZOrmKa90LhcCwqMfA==} peerDependencies: '@apollo/subgraph': ^2.9.3 '@nestjs/common': ^11.0.1 '@nestjs/core': ^11.0.1 class-transformer: '*' class-validator: '*' - graphql: ^16.10.0 + graphql: ^16.11.0 reflect-metadata: ^0.1.13 || ^0.2.0 ts-morph: ^20.0.0 || ^21.0.0 || ^24.0.0 || ^25.0.0 peerDependenciesMeta: @@ -5863,8 +6038,8 @@ packages: ts-morph: optional: true - '@nestjs/jwt@11.0.0': - resolution: {integrity: sha512-v7YRsW3Xi8HNTsO+jeHSEEqelX37TVWgwt+BcxtkG/OfXJEOs6GZdbdza200d6KqId1pJQZ6UPj1F0M6E+mxaA==} + '@nestjs/jwt@11.0.1': + resolution: {integrity: sha512-HXSsc7SAnCnjA98TsZqrE7trGtHDnYXWp4Ffy6LwSmck1QvbGYdMzBquXofX5l6tIRpeY4Qidl2Ti2CVG77Pdw==} peerDependencies: '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 @@ -5899,13 +6074,13 @@ packages: '@nestjs/common': ^10.0.0 || ^11.0.0 '@nestjs/core': ^10.0.0 || ^11.0.0 - '@nestjs/schematics@11.0.7': - resolution: {integrity: sha512-t8dNYYMwEeEsrlwc2jbkfwCfXczq4AeNEgx1KVQuJ6wYibXk0ZbXbPdfp8scnEAaQv1grpncNV5gWgzi7ZwbvQ==} + '@nestjs/schematics@11.0.9': + resolution: {integrity: sha512-0NfPbPlEaGwIT8/TCThxLzrlz3yzDNkfRNpbL7FiplKq3w4qXpJg0JYwqgMEJnLQZm3L/L/5XjoyfJHUO3qX9g==} peerDependencies: typescript: '>=4.8.2' - '@nestjs/swagger@11.2.0': - resolution: {integrity: sha512-5wolt8GmpNcrQv34tIPUtPoV1EeFbCetm40Ij3+M0FNNnf2RJ3FyWfuQvI8SBlcJyfaounYVTKzKHreFXsUyOg==} + '@nestjs/swagger@11.2.1': + resolution: {integrity: sha512-1MS7xf0pzc1mofG53xrrtrurnziafPUHkqzRm4YUVPA/egeiMaSerQBD/feiAeQ2BnX0WiLsTX4HQFO0icvOjQ==} peerDependencies: '@fastify/static': ^8.0.0 '@nestjs/common': ^11.0.1 @@ -6158,11 +6333,11 @@ packages: '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - '@posthog/core@1.1.0': - resolution: {integrity: sha512-igElrcnRPJh2nWYACschjH4OwGwzSa6xVFzRDVzpnjirUivdJ8nv4hE+H31nvwE56MFhvvglfHuotnWLMcRW7w==} + '@posthog/core@1.3.0': + resolution: {integrity: sha512-hxLL8kZNHH098geedcxCz8y6xojkNYbmJEW+1vFXsmPcExyCXIUUJ/34X6xa9GcprKxd0Wsx3vfJQLQX4iVPhw==} - '@prisma/client@6.16.2': - resolution: {integrity: sha512-E00PxBcalMfYO/TWnXobBVUai6eW/g5OsifWQsQDzJYm7yaY+IRLo7ZLsaefi0QkTpxfuhFcQ/w180i6kX3iJw==} + '@prisma/client@6.17.1': + resolution: {integrity: sha512-zL58jbLzYamjnNnmNA51IOZdbk5ci03KviXCuB0Tydc9btH2kDWsi1pQm2VecviRTM7jGia0OPPkgpGnT3nKvw==} engines: {node: '>=18.18'} peerDependencies: prisma: '*' @@ -6173,23 +6348,23 @@ packages: typescript: optional: true - '@prisma/config@6.16.2': - resolution: {integrity: sha512-mKXSUrcqXj0LXWPmJsK2s3p9PN+aoAbyMx7m5E1v1FufofR1ZpPoIArjjzOIm+bJRLLvYftoNYLx1tbHgF9/yg==} + '@prisma/config@6.17.1': + resolution: {integrity: sha512-fs8wY6DsvOCzuiyWVckrVs1LOcbY4LZNz8ki4uUIQ28jCCzojTGqdLhN2Jl5lDnC1yI8/gNIKpsWDM8pLhOdwA==} - '@prisma/debug@6.16.2': - resolution: {integrity: sha512-bo4/gA/HVV6u8YK2uY6glhNsJ7r+k/i5iQ9ny/3q5bt9ijCj7WMPUwfTKPvtEgLP+/r26Z686ly11hhcLiQ8zA==} + '@prisma/debug@6.17.1': + resolution: {integrity: sha512-Vf7Tt5Wh9XcndpbmeotuqOMLWPTjEKCsgojxXP2oxE1/xYe7PtnP76hsouG9vis6fctX+TxgmwxTuYi/+xc7dQ==} - '@prisma/engines-version@6.16.0-7.1c57fdcd7e44b29b9313256c76699e91c3ac3c43': - resolution: {integrity: sha512-ThvlDaKIVrnrv97ujNFDYiQbeMQpLa0O86HFA2mNoip4mtFqM7U5GSz2ie1i2xByZtvPztJlNRgPsXGeM/kqAA==} + '@prisma/engines-version@6.17.1-1.272a37d34178c2894197e17273bf937f25acdeac': + resolution: {integrity: sha512-17140E3huOuD9lMdJ9+SF/juOf3WR3sTJMVyyenzqUPbuH+89nPhSWcrY+Mf7tmSs6HvaO+7S+HkELinn6bhdg==} - '@prisma/engines@6.16.2': - resolution: {integrity: sha512-7yf3AjfPUgsg/l7JSu1iEhsmZZ/YE00yURPjTikqm2z4btM0bCl2coFtTGfeSOWbQMmq45Jab+53yGUIAT1sjA==} + '@prisma/engines@6.17.1': + resolution: {integrity: sha512-D95Ik3GYZkqZ8lSR4EyFOJ/tR33FcYRP8kK61o+WMsyD10UfJwd7+YielflHfKwiGodcqKqoraWw8ElAgMDbPw==} - '@prisma/fetch-engine@6.16.2': - resolution: {integrity: sha512-wPnZ8DMRqpgzye758ZvfAMiNJRuYpz+rhgEBZi60ZqDIgOU2694oJxiuu3GKFeYeR/hXxso4/2oBC243t/whxQ==} + '@prisma/fetch-engine@6.17.1': + resolution: {integrity: sha512-AYZiHOs184qkDMiTeshyJCtyL4yERkjfTkJiSJdYuSfc24m94lTNL5+GFinZ6vVz+ktX4NJzHKn1zIFzGTWrWg==} - '@prisma/get-platform@6.16.2': - resolution: {integrity: sha512-U/P36Uke5wS7r1+omtAgJpEB94tlT4SdlgaeTc6HVTTT93pXj7zZ+B/cZnmnvjcNPfWddgoDx8RLjmQwqGDYyA==} + '@prisma/get-platform@6.17.1': + resolution: {integrity: sha512-AKEn6fsfz0r482S5KRDFlIGEaq9wLNcgalD1adL+fPcFFblIKs1sD81kY/utrHdqKuVC6E1XSRpegDK3ZLL4Qg==} '@protobufjs/aspromise@1.1.2': resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} @@ -6347,116 +6522,223 @@ packages: cpu: [arm] os: [android] + '@rollup/rollup-android-arm-eabi@4.52.5': + resolution: {integrity: sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==} + cpu: [arm] + os: [android] + '@rollup/rollup-android-arm64@4.52.2': resolution: {integrity: sha512-cqFSWO5tX2vhC9hJTK8WAiPIm4Q8q/cU8j2HQA0L3E1uXvBYbOZMhE2oFL8n2pKB5sOCHY6bBuHaRwG7TkfJyw==} cpu: [arm64] os: [android] + '@rollup/rollup-android-arm64@4.52.5': + resolution: {integrity: sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==} + cpu: [arm64] + os: [android] + '@rollup/rollup-darwin-arm64@4.52.2': resolution: {integrity: sha512-vngduywkkv8Fkh3wIZf5nFPXzWsNsVu1kvtLETWxTFf/5opZmflgVSeLgdHR56RQh71xhPhWoOkEBvbehwTlVA==} cpu: [arm64] os: [darwin] + '@rollup/rollup-darwin-arm64@4.52.5': + resolution: {integrity: sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==} + cpu: [arm64] + os: [darwin] + '@rollup/rollup-darwin-x64@4.52.2': resolution: {integrity: sha512-h11KikYrUCYTrDj6h939hhMNlqU2fo/X4NB0OZcys3fya49o1hmFaczAiJWVAFgrM1NCP6RrO7lQKeVYSKBPSQ==} cpu: [x64] os: [darwin] + '@rollup/rollup-darwin-x64@4.52.5': + resolution: {integrity: sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==} + cpu: [x64] + os: [darwin] + '@rollup/rollup-freebsd-arm64@4.52.2': resolution: {integrity: sha512-/eg4CI61ZUkLXxMHyVlmlGrSQZ34xqWlZNW43IAU4RmdzWEx0mQJ2mN/Cx4IHLVZFL6UBGAh+/GXhgvGb+nVxw==} cpu: [arm64] os: [freebsd] + '@rollup/rollup-freebsd-arm64@4.52.5': + resolution: {integrity: sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==} + cpu: [arm64] + os: [freebsd] + '@rollup/rollup-freebsd-x64@4.52.2': resolution: {integrity: sha512-QOWgFH5X9+p+S1NAfOqc0z8qEpJIoUHf7OWjNUGOeW18Mx22lAUOiA9b6r2/vpzLdfxi/f+VWsYjUOMCcYh0Ng==} cpu: [x64] os: [freebsd] + '@rollup/rollup-freebsd-x64@4.52.5': + resolution: {integrity: sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==} + cpu: [x64] + os: [freebsd] + '@rollup/rollup-linux-arm-gnueabihf@4.52.2': resolution: {integrity: sha512-kDWSPafToDd8LcBYd1t5jw7bD5Ojcu12S3uT372e5HKPzQt532vW+rGFFOaiR0opxePyUkHrwz8iWYEyH1IIQA==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-gnueabihf@4.52.5': + resolution: {integrity: sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.52.2': resolution: {integrity: sha512-gKm7Mk9wCv6/rkzwCiUC4KnevYhlf8ztBrDRT9g/u//1fZLapSRc+eDZj2Eu2wpJ+0RzUKgtNijnVIB4ZxyL+w==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.52.5': + resolution: {integrity: sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.52.2': resolution: {integrity: sha512-66lA8vnj5mB/rtDNwPgrrKUOtCLVQypkyDa2gMfOefXK6rcZAxKLO9Fy3GkW8VkPnENv9hBkNOFfGLf6rNKGUg==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.52.5': + resolution: {integrity: sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-arm64-musl@4.52.2': resolution: {integrity: sha512-s+OPucLNdJHvuZHuIz2WwncJ+SfWHFEmlC5nKMUgAelUeBUnlB4wt7rXWiyG4Zn07uY2Dd+SGyVa9oyLkVGOjA==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-musl@4.52.5': + resolution: {integrity: sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-loong64-gnu@4.52.2': resolution: {integrity: sha512-8wTRM3+gVMDLLDdaT6tKmOE3lJyRy9NpJUS/ZRWmLCmOPIJhVyXwjBo+XbrrwtV33Em1/eCTd5TuGJm4+DmYjw==} cpu: [loong64] os: [linux] + '@rollup/rollup-linux-loong64-gnu@4.52.5': + resolution: {integrity: sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==} + cpu: [loong64] + os: [linux] + '@rollup/rollup-linux-ppc64-gnu@4.52.2': resolution: {integrity: sha512-6yqEfgJ1anIeuP2P/zhtfBlDpXUb80t8DpbYwXQ3bQd95JMvUaqiX+fKqYqUwZXqdJDd8xdilNtsHM2N0cFm6A==} cpu: [ppc64] os: [linux] + '@rollup/rollup-linux-ppc64-gnu@4.52.5': + resolution: {integrity: sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==} + cpu: [ppc64] + os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.52.2': resolution: {integrity: sha512-sshYUiYVSEI2B6dp4jMncwxbrUqRdNApF2c3bhtLAU0qA8Lrri0p0NauOsTWh3yCCCDyBOjESHMExonp7Nzc0w==} cpu: [riscv64] os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.52.5': + resolution: {integrity: sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==} + cpu: [riscv64] + os: [linux] + '@rollup/rollup-linux-riscv64-musl@4.52.2': resolution: {integrity: sha512-duBLgd+3pqC4MMwBrKkFxaZerUxZcYApQVC5SdbF5/e/589GwVvlRUnyqMFbM8iUSb1BaoX/3fRL7hB9m2Pj8Q==} cpu: [riscv64] os: [linux] + '@rollup/rollup-linux-riscv64-musl@4.52.5': + resolution: {integrity: sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==} + cpu: [riscv64] + os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.52.2': resolution: {integrity: sha512-tzhYJJidDUVGMgVyE+PmxENPHlvvqm1KILjjZhB8/xHYqAGeizh3GBGf9u6WdJpZrz1aCpIIHG0LgJgH9rVjHQ==} cpu: [s390x] os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.52.5': + resolution: {integrity: sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==} + cpu: [s390x] + os: [linux] + '@rollup/rollup-linux-x64-gnu@4.52.2': resolution: {integrity: sha512-opH8GSUuVcCSSyHHcl5hELrmnk4waZoVpgn/4FDao9iyE4WpQhyWJ5ryl5M3ocp4qkRuHfyXnGqg8M9oKCEKRA==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-gnu@4.52.5': + resolution: {integrity: sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==} + cpu: [x64] + os: [linux] + '@rollup/rollup-linux-x64-musl@4.52.2': resolution: {integrity: sha512-LSeBHnGli1pPKVJ79ZVJgeZWWZXkEe/5o8kcn23M8eMKCUANejchJbF/JqzM4RRjOJfNRhKJk8FuqL1GKjF5oQ==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-musl@4.52.5': + resolution: {integrity: sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==} + cpu: [x64] + os: [linux] + '@rollup/rollup-openharmony-arm64@4.52.2': resolution: {integrity: sha512-uPj7MQ6/s+/GOpolavm6BPo+6CbhbKYyZHUDvZ/SmJM7pfDBgdGisFX3bY/CBDMg2ZO4utfhlApkSfZ92yXw7Q==} cpu: [arm64] os: [openharmony] + '@rollup/rollup-openharmony-arm64@4.52.5': + resolution: {integrity: sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==} + cpu: [arm64] + os: [openharmony] + '@rollup/rollup-win32-arm64-msvc@4.52.2': resolution: {integrity: sha512-Z9MUCrSgIaUeeHAiNkm3cQyst2UhzjPraR3gYYfOjAuZI7tcFRTOD+4cHLPoS/3qinchth+V56vtqz1Tv+6KPA==} cpu: [arm64] os: [win32] + '@rollup/rollup-win32-arm64-msvc@4.52.5': + resolution: {integrity: sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==} + cpu: [arm64] + os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.52.2': resolution: {integrity: sha512-+GnYBmpjldD3XQd+HMejo+0gJGwYIOfFeoBQv32xF/RUIvccUz20/V6Otdv+57NE70D5pa8W/jVGDoGq0oON4A==} cpu: [ia32] os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.52.5': + resolution: {integrity: sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==} + cpu: [ia32] + os: [win32] + '@rollup/rollup-win32-x64-gnu@4.52.2': resolution: {integrity: sha512-ApXFKluSB6kDQkAqZOKXBjiaqdF1BlKi+/eqnYe9Ee7U2K3pUDKsIyr8EYm/QDHTJIM+4X+lI0gJc3TTRhd+dA==} cpu: [x64] os: [win32] + '@rollup/rollup-win32-x64-gnu@4.52.5': + resolution: {integrity: sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==} + cpu: [x64] + os: [win32] + '@rollup/rollup-win32-x64-msvc@4.52.2': resolution: {integrity: sha512-ARz+Bs8kY6FtitYM96PqPEVvPXqEZmPZsSkXvyX19YzDqkCaIlhCieLLMI5hxO9SRZ2XtCtm8wxhy0iJ2jxNfw==} cpu: [x64] os: [win32] - '@rushstack/eslint-patch@1.12.0': - resolution: {integrity: sha512-5EwMtOqvJMMa3HbmxLlF74e+3/HhwBTMcvt3nqVJgGCozO6hzIPOBlwm8mGVNR9SN2IJpxSnlxczyDjcn7qIyw==} + '@rollup/rollup-win32-x64-msvc@4.52.5': + resolution: {integrity: sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==} + cpu: [x64] + os: [win32] - '@rushstack/eslint-patch@1.3.3': - resolution: {integrity: sha512-0xd7qez0AQ+MbHatZTlI1gu5vkG8r7MYRUJAHPAHJBmGLs16zpkrpAVLvjQKQOqaXPDUBwOiJzNc00znHSCVBw==} + '@rushstack/eslint-patch@1.14.0': + resolution: {integrity: sha512-WJFej426qe4RWOm9MMtP4V3CV4AucXolQty+GRgAWLgQXmpCuwzs7hEpxxhSc/znXUSxum9d/P/32MW0FlAAlA==} '@scarf/scarf@1.4.0': resolution: {integrity: sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==} @@ -7037,12 +7319,12 @@ packages: '@types/json-schema@7.0.9': resolution: {integrity: sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==} + '@types/jsonwebtoken@9.0.10': + resolution: {integrity: sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==} + '@types/jsonwebtoken@9.0.6': resolution: {integrity: sha512-/5hndP5dCjloafCXns6SZyESp3Ldq7YjH3zwzwczYnjxIT0Fqzk5ROSYVGfFyczIue7IUEj8hkvLbPoLQ18vQw==} - '@types/jsonwebtoken@9.0.7': - resolution: {integrity: sha512-ugo316mmTYBl2g81zDFnZ7cfxlut3o+/EQdaP7J8QN2kY6lJ22hmQYCK5EHcJHbrW+dkCGSCPgbG8JtYj6qSrg==} - '@types/linkify-it@5.0.0': resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} @@ -7088,17 +7370,11 @@ packages: '@types/node@17.0.45': resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - '@types/node@18.18.8': - resolution: {integrity: sha512-OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ==} - - '@types/node@24.3.0': - resolution: {integrity: sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==} + '@types/node@24.9.1': + resolution: {integrity: sha512-QoiaXANRkSXK6p0Duvt56W208du4P9Uye9hWLWgGMDTEoKPhuenzNcC4vGUmrNkiOKTlIrBoyNQYNpSwfEZXSg==} - '@types/node@24.5.2': - resolution: {integrity: sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==} - - '@types/nodemailer@7.0.1': - resolution: {integrity: sha512-UfHAghPmGZVzaL8x9y+mKZMWyHC399+iq0MOmya5tIyenWX3lcdSb60vOmp0DocR6gCDTYTozv/ULQnREyyjkg==} + '@types/nodemailer@7.0.2': + resolution: {integrity: sha512-Zo6uOA9157WRgBk/ZhMpTQ/iCWLMk7OIs/Q9jvHarMvrzUUP/MDdPHL2U1zpf57HrrWGv4nYQn5uIxna0xY3xw==} '@types/nprogress@0.2.3': resolution: {integrity: sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==} @@ -7253,6 +7529,22 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/eslint-plugin@8.46.1': + resolution: {integrity: sha512-rUsLh8PXmBjdiPY+Emjz9NX2yHvhS11v0SR6xNJkm5GM1MO9ea/1GoDKlHHZGrOJclL/cZ2i/vRUYVtjRhrHVQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.46.1 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/eslint-plugin@8.46.2': + resolution: {integrity: sha512-ZGBMToy857/NIPaaCucIUQgqueOiq7HeAKkhlvqVV4lm089zUFW6ikRySx2v+cAhKeUCPuWVHeimyk6Dw1iY3w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.46.2 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/parser@5.62.0': resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -7280,6 +7572,20 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/parser@8.46.1': + resolution: {integrity: sha512-6JSSaBZmsKvEkbRUkf7Zj7dru/8ZCrJxAqArcLaVMee5907JdtEbKGsZ7zNiIm/UAkpGUkaSMZEXShnN2D1HZA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/parser@8.46.2': + resolution: {integrity: sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/project-service@8.39.1': resolution: {integrity: sha512-8fZxek3ONTwBu9ptw5nCKqZOSkXshZB7uAxuFF0J/wTMkKydjXCzqqga7MlFMpHi9DoG4BadhmTkITBcg8Aybw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -7292,6 +7598,18 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/project-service@8.46.1': + resolution: {integrity: sha512-FOIaFVMHzRskXr5J4Jp8lFVV0gz5ngv3RHmn+E4HYxSJ3DgDzU7fVI1/M7Ijh1zf6S7HIoaIOtln1H5y8V+9Zg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/project-service@8.46.2': + resolution: {integrity: sha512-PULOLZ9iqwI7hXcmL4fVfIsBi6AN9YxRc0frbvmg8f+4hQAjQ5GYNKK0DIArNo+rOKmR/iBYwkpBmnIwin4wBg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/scope-manager@5.62.0': resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -7312,6 +7630,14 @@ packages: resolution: {integrity: sha512-NdhWHgmynpSvyhchGLXh+w12OMT308Gm25JoRIyTZqEbApiBiQHD/8xgb6LqCWCFcxFtWwaVdFsLPQI3jvhywg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.46.1': + resolution: {integrity: sha512-weL9Gg3/5F0pVQKiF8eOXFZp8emqWzZsOJuWRUNtHT+UNV2xSJegmpCNQHy37aEQIbToTq7RHKhWvOsmbM680A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/scope-manager@8.46.2': + resolution: {integrity: sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/tsconfig-utils@8.39.1': resolution: {integrity: sha512-ePUPGVtTMR8XMU2Hee8kD0Pu4NDE1CN9Q1sxGSGd/mbOtGZDM7pnhXNJnzW63zk/q+Z54zVzj44HtwXln5CvHA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -7324,13 +7650,25 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@5.62.0': - resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/tsconfig-utils@8.46.1': + resolution: {integrity: sha512-X88+J/CwFvlJB+mK09VFqx5FE4H5cXD+H/Bdza2aEWkSb8hnWIQorNcscRl4IEo1Cz9VI/+/r/jnGWkbWPx54g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: '*' - typescript: '*' - peerDependenciesMeta: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/tsconfig-utils@8.46.2': + resolution: {integrity: sha512-a7QH6fw4S57+F5y2FIxxSDyi5M4UfGF+Jl1bCGd7+L4KsaUY80GsiF/t0UoRFDHAguKlBaACWJRmdrc6Xfkkag==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/type-utils@5.62.0': + resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: typescript: optional: true @@ -7351,6 +7689,20 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/type-utils@8.46.1': + resolution: {integrity: sha512-+BlmiHIiqufBxkVnOtFwjah/vrkF4MtKKvpXrKSPLCkCtAp8H01/VV43sfqA98Od7nJpDcFnkwgyfQbOG0AMvw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/type-utils@8.46.2': + resolution: {integrity: sha512-HbPM4LbaAAt/DjxXaG9yiS9brOOz6fabal4uvUmaUYe6l3K1phQDMQKBRUrr06BQkxkvIZVVHttqiybM9nJsLA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/types@5.62.0': resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -7367,14 +7719,18 @@ packages: resolution: {integrity: sha512-7sPDKQQp+S11laqTrhHqeAbsCfMkwJMrV7oTDvtDds4mEofJYir414bYKUEb8YPUm9QL3U+8f6L6YExSoAGdQw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.40.0': - resolution: {integrity: sha512-ETdbFlgbAmXHyFPwqUIYrfc12ArvpBhEVgGAxVYSwli26dn8Ko+lIo4Su9vI9ykTZdJn+vJprs/0eZU0YMAEQg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.44.1': resolution: {integrity: sha512-Lk7uj7y9uQUOEguiDIDLYLJOrYHQa7oBiURYVFqIpGxclAFQ78f6VUOM8lI2XEuNOKNB7XuvM2+2cMXAoq4ALQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.46.1': + resolution: {integrity: sha512-C+soprGBHwWBdkDpbaRC4paGBrkIXxVlNohadL5o0kfhsXqOC6GYH2S/Obmig+I0HTDl8wMaRySwrfrXVP8/pQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/types@8.46.2': + resolution: {integrity: sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@5.62.0': resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -7411,6 +7767,18 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/typescript-estree@8.46.1': + resolution: {integrity: sha512-uIifjT4s8cQKFQ8ZBXXyoUODtRoAd7F7+G8MKmtzj17+1UbdzFl52AzRyZRyKqPHhgzvXunnSckVu36flGy8cg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/typescript-estree@8.46.2': + resolution: {integrity: sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/utils@5.62.0': resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -7430,6 +7798,20 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/utils@8.46.1': + resolution: {integrity: sha512-vkYUy6LdZS7q1v/Gxb2Zs7zziuXN0wxqsetJdeZdRe/f5dwJFglmuvZBfTUivCtjH725C1jWCDfpadadD95EDQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/utils@8.46.2': + resolution: {integrity: sha512-sExxzucx0Tud5tE0XqR0lT0psBQvEpnpiul9XbGUB1QwpWJJAps1O/Z7hJxLGiZLBKMCutjTzDgmd1muEhBnVg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/visitor-keys@5.62.0': resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -7450,11 +7832,19 @@ packages: resolution: {integrity: sha512-576+u0QD+Jp3tZzvfRfxon0EA2lzcDt3lhUbsC6Lgzy9x2VR4E+JUiNyGHi5T8vk0TV+fpJ5GLG1JsJuWCaKhw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.46.1': + resolution: {integrity: sha512-ptkmIf2iDkNUjdeu2bQqhFPV1m6qTnFFjg7PPDjxKWaMaP0Z6I9l30Jr3g5QqbZGdw8YdYvLp+XnqnWWZOg/NA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/visitor-keys@8.46.2': + resolution: {integrity: sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - '@unhead/vue@2.0.17': - resolution: {integrity: sha512-jzmGZYeMAhETV6qfetmLbZzUjjx1TjdNvFSobeFZb73D7dwD9wl/nOAx36qq+TvjZsLJdF5PQWToz2oDGAUqCg==} + '@unhead/vue@2.0.19': + resolution: {integrity: sha512-7BYjHfOaoZ9+ARJkT10Q2TjnTUqDXmMpfakIAsD/hXiuff1oqWg1xeXT5+MomhNcC15HbiABpbbBmITLSHxdKg==} peerDependencies: vue: 3.5.22 @@ -8186,18 +8576,18 @@ packages: axios@1.8.2: resolution: {integrity: sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==} - babel-jest@30.1.2: - resolution: {integrity: sha512-IQCus1rt9kaSh7PQxLYRY5NmkNrNlU2TpabzwV7T2jljnpdHOcmnYYv8QmE04Li4S3a2Lj8/yXyET5pBarPr6g==} + babel-jest@30.2.0: + resolution: {integrity: sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: - '@babel/core': ^7.11.0 + '@babel/core': ^7.11.0 || ^8.0.0-0 - babel-plugin-istanbul@7.0.0: - resolution: {integrity: sha512-C5OzENSx/A+gt7t4VH1I2XsflxyPUmXRFPKBxt33xncdOmq7oROVM3bZv9Ysjjkv8OJYDMa+tKuKMvqU/H3xdw==} + babel-plugin-istanbul@7.0.1: + resolution: {integrity: sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==} engines: {node: '>=12'} - babel-plugin-jest-hoist@30.0.1: - resolution: {integrity: sha512-zTPME3pI50NsFW8ZBaVIOeAxzEY7XHlmWeXXu9srI+9kNfzCUTy8MFan46xOGZY8NZThMqq+e3qZUKsvXbasnQ==} + babel-plugin-jest-hoist@30.2.0: + resolution: {integrity: sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} babel-plugin-polyfill-corejs2@0.4.11: @@ -8233,21 +8623,21 @@ packages: babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: resolution: {integrity: sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==} - babel-preset-current-node-syntax@1.1.0: - resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} + babel-preset-current-node-syntax@1.2.0: + resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==} peerDependencies: - '@babel/core': ^7.0.0 + '@babel/core': ^7.0.0 || ^8.0.0-0 babel-preset-fbjs@3.4.0: resolution: {integrity: sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==} peerDependencies: '@babel/core': ^7.0.0 - babel-preset-jest@30.0.1: - resolution: {integrity: sha512-+YHejD5iTWI46cZmcc/YtX4gaKBtdqCHCVfuVinizVpbmyjO3zYmeuyFdfA8duRqQZfgCAMlsfmkVbJ+e2MAJw==} + babel-preset-jest@30.2.0: + resolution: {integrity: sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: - '@babel/core': ^7.11.0 + '@babel/core': ^7.11.0 || ^8.0.0-beta.1 babel-walk@3.0.0-canary-5: resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==} @@ -8270,8 +8660,8 @@ packages: resolution: {integrity: sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==} engines: {node: '>=6.0.0'} - baseline-browser-mapping@2.8.7: - resolution: {integrity: sha512-bxxN2M3a4d1CRoQC//IqsR5XrLh0IJ8TCv2x6Y9N0nckNz/rTjZB3//GGscZziZOxmjP55rzxg/ze7usFI9FqQ==} + baseline-browser-mapping@2.8.19: + resolution: {integrity: sha512-zoKGUdu6vb2jd3YOq0nnhEDQVbPcHhco3UImJrv5dSkvxTc2pl2WjOPsjZXDwPDSl5eghIMuY3R6J9NDKF3KcQ==} hasBin: true basic-auth@2.0.1: @@ -8359,8 +8749,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - browserslist@4.26.2: - resolution: {integrity: sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==} + browserslist@4.26.3: + resolution: {integrity: sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -8470,8 +8860,8 @@ packages: caniuse-lite@1.0.30001736: resolution: {integrity: sha512-ImpN5gLEY8gWeqfLUyEF4b7mYWcYoR2Si1VhnrbM4JizRFmfGaAQ12PhNykq6nvI4XvKLrsp8Xde74D5phJOSw==} - caniuse-lite@1.0.30001745: - resolution: {integrity: sha512-ywt6i8FzvdgrrrGbr1jZVObnVv6adj+0if2/omv9cmR2oiZs30zL4DIyaptKcbOrBdOIc74QTMoJvSE2QHh5UQ==} + caniuse-lite@1.0.30001751: + resolution: {integrity: sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==} capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} @@ -8695,8 +9085,8 @@ packages: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} engines: {node: ^12.20.0 || >=14} - comment-json@4.2.5: - resolution: {integrity: sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==} + comment-json@4.4.1: + resolution: {integrity: sha512-r1To31BQD5060QdkC+Iheai7gHwoSZobzunqkf2/kQ6xIAfJyrKNAFUwdKvkK7Qgu7pVTKQEa7ok7Ed3ycAJgg==} engines: {node: '>= 6'} common-tags@1.8.2: @@ -8801,15 +9191,15 @@ packages: cookiejar@2.1.4: resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==} - copy-anything@3.0.5: - resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} - engines: {node: '>=12.13'} + copy-anything@4.0.5: + resolution: {integrity: sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==} + engines: {node: '>=18'} core-js-compat@3.38.1: resolution: {integrity: sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==} - core-js-compat@3.45.1: - resolution: {integrity: sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==} + core-js-compat@3.46.0: + resolution: {integrity: sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==} core-js@3.38.1: resolution: {integrity: sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==} @@ -8865,16 +9255,11 @@ packages: resolution: {integrity: sha512-B/CJj5yL3sjtlun6RtYHvoSB26EmQ2NUmhq9ZiJSyKIM4K/fqfh9aelDFlIayD2YMeFZqWLi9hHV+c+pq2Djkw==} engines: {node: '>=18.x'} - cross-env@10.0.0: - resolution: {integrity: sha512-aU8qlEK/nHYtVuN4p7UQgAwVljzMg8hB4YK5ThRqD2l/ziSnryncPNn7bMLt5cFYsKVKBh8HqLqyCoTupEUu7Q==} + cross-env@10.1.0: + resolution: {integrity: sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw==} engines: {node: '>=20'} hasBin: true - cross-env@7.0.3: - resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} - engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} - hasBin: true - cross-fetch@3.2.0: resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} @@ -9275,8 +9660,8 @@ packages: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} - dotenv@17.2.2: - resolution: {integrity: sha512-Sf2LSQP+bOlhKWWyhFsn0UsfdK/kCWRv1iuA2gXAwt3dyNabr6QSj00I2V10pidqz69soatm9ZwZvpQMTIOd5Q==} + dotenv@17.2.3: + resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==} engines: {node: '>=12'} dset@3.1.4: @@ -9316,8 +9701,8 @@ packages: electron-to-chromium@1.5.207: resolution: {integrity: sha512-mryFrrL/GXDTmAtIVMVf+eIXM09BBPlO5IQ7lUyKmK8d+A4VpRGG+M3ofoVef6qyF8s60rJei8ymlJxjUA8Faw==} - electron-to-chromium@1.5.224: - resolution: {integrity: sha512-kWAoUu/bwzvnhpdZSIc6KUyvkI1rbRXMT0Eq8pKReyOyaPZcctMli+EgvcN1PAvwVc7Tdo4Fxi2PsLNDU05mdg==} + electron-to-chromium@1.5.238: + resolution: {integrity: sha512-khBdc+w/Gv+cS8e/Pbnaw/FXcBUeKrRVik9IxfXtgREOWyJhR4tj43n3amkVogJ/yeQUqzkrZcFhtIxIdqmmcQ==} electron-to-chromium@1.5.35: resolution: {integrity: sha512-hOSRInrIDm0Brzp4IHW2F/VM+638qOL2CzE0DgpnGzKW27C95IqqeqgKz/hxHGnvPxvQGpHUGD5qRVC9EZY2+A==} @@ -9326,8 +9711,8 @@ packages: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} engines: {node: '>=12'} - emoji-regex@10.5.0: - resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==} + emoji-regex@10.6.0: + resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -9614,6 +9999,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.25.11: + resolution: {integrity: sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==} + engines: {node: '>=18'} + hasBin: true + esbuild@0.25.8: resolution: {integrity: sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==} engines: {node: '>=18'} @@ -9687,8 +10077,8 @@ packages: eslint-config-prettier: optional: true - eslint-plugin-vue@10.5.0: - resolution: {integrity: sha512-7BZHsG3kC2vei8F2W8hnfDi9RK+cv5eKPMvzBdrl8Vuc0hR5odGQRli8VVzUkrmUHkxFEm4Iio1r5HOKslO0Aw==} + eslint-plugin-vue@10.5.1: + resolution: {integrity: sha512-SbR9ZBUFKgvWAbq3RrdCtWaW0IKm6wwUiApxf3BVTNfqUIo4IQQmreMg2iHFJJ6C/0wss3LXURBJ1OwS/MhFcQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@stylistic/eslint-plugin': ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 @@ -9733,8 +10123,8 @@ packages: deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true - eslint@9.36.0: - resolution: {integrity: sha512-hB4FIzXovouYzwzECDcUkJ4OcfOEkXTv2zRY6B9bkwjx/cprAq0uvm1nl7zvQ0/TsUk0zQiN4uPfJpB9m+rPMQ==} + eslint@9.37.0: + resolution: {integrity: sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -9861,8 +10251,8 @@ packages: resolution: {integrity: sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - expect@30.1.2: - resolution: {integrity: sha512-xvHszRavo28ejws8FpemjhwswGj4w/BetHIL8cU49u4sGyXDw2+p3YbeDbj6xzlxi6kWTjIRSTJ+9sNXPnF0Zg==} + expect@30.2.0: + resolution: {integrity: sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} express-session@1.18.2: @@ -9931,8 +10321,8 @@ packages: fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - fast-uri@3.0.6: - resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + fast-uri@3.1.0: + resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} fast-url-parser@1.1.3: resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} @@ -10127,10 +10517,6 @@ packages: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} - fs-extra@11.3.1: - resolution: {integrity: sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==} - engines: {node: '>=14.14'} - fs-extra@9.1.0: resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} engines: {node: '>=10'} @@ -10160,6 +10546,10 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + generator-function@2.0.1: + resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} + engines: {node: '>= 0.4'} + gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -10394,22 +10784,6 @@ packages: peerDependencies: graphql: '>=0.11 <=16' - graphql-ws@6.0.4: - resolution: {integrity: sha512-8b4OZtNOvv8+NZva8HXamrc0y1jluYC0+13gdh7198FKjVzXyTvVc95DCwGzaKEfn3YuWZxUqjJlHe3qKM/F2g==} - engines: {node: '>=20'} - peerDependencies: - '@fastify/websocket': ^10 || ^11 - graphql: ^15.10.1 || ^16 - uWebSockets.js: ^20 - ws: 8.17.1 - peerDependenciesMeta: - '@fastify/websocket': - optional: true - uWebSockets.js: - optional: true - ws: - optional: true - graphql-ws@6.0.6: resolution: {integrity: sha512-zgfER9s+ftkGKUZgc0xbx8T7/HMO4AV5/YuYiFc+AtgcO5T0v8AxYYNQ+ltzuzDZgNkYJaFspm5MMYLjQzrkmw==} engines: {node: '>=20'} @@ -10462,10 +10836,6 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-own-prop@2.0.0: - resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==} - engines: {node: '>=8'} - has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} @@ -10820,8 +11190,8 @@ packages: resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} engines: {node: '>= 0.4'} - is-generator-function@1.1.0: - resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} + is-generator-function@1.1.2: + resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} engines: {node: '>= 0.4'} is-glob@4.0.3: @@ -10984,9 +11354,9 @@ packages: resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} engines: {node: '>= 0.4'} - is-what@4.1.16: - resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} - engines: {node: '>=12.13'} + is-what@5.5.0: + resolution: {integrity: sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==} + engines: {node: '>=18'} is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} @@ -11068,16 +11438,16 @@ packages: engines: {node: '>=10'} hasBin: true - jest-changed-files@30.0.5: - resolution: {integrity: sha512-bGl2Ntdx0eAwXuGpdLdVYVr5YQHnSZlQ0y9HVDu565lCUAe9sj6JOtBbMmBBikGIegne9piDDIOeiLVoqTkz4A==} + jest-changed-files@30.2.0: + resolution: {integrity: sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-circus@30.1.3: - resolution: {integrity: sha512-Yf3dnhRON2GJT4RYzM89t/EXIWNxKTpWTL9BfF3+geFetWP4XSvJjiU1vrWplOiUkmq8cHLiwuhz+XuUp9DscA==} + jest-circus@30.2.0: + resolution: {integrity: sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-cli@30.1.3: - resolution: {integrity: sha512-G8E2Ol3OKch1DEeIBl41NP7OiC6LBhfg25Btv+idcusmoUSpqUkbrneMqbW9lVpI/rCKb/uETidb7DNteheuAQ==} + jest-cli@30.2.0: + resolution: {integrity: sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: @@ -11086,8 +11456,8 @@ packages: node-notifier: optional: true - jest-config@30.1.3: - resolution: {integrity: sha512-M/f7gqdQEPgZNA181Myz+GXCe8jXcJsGjCMXUzRj22FIXsZOyHNte84e0exntOvdPaeh9tA0w+B8qlP2fAezfw==} + jest-config@30.2.0: + resolution: {integrity: sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: '@types/node': '*' @@ -11109,32 +11479,32 @@ packages: resolution: {integrity: sha512-1UIqE9PoEKaHcIKvq2vbibrCog4Y8G0zmOxgQUVEiTqwR5hJVMCoDsN1vFvI5JvwD37hjueZ1C4l2FyGnfpE0A==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-diff@30.1.2: - resolution: {integrity: sha512-4+prq+9J61mOVXCa4Qp8ZjavdxzrWQXrI80GNxP8f4tkI2syPuPrJgdRPZRrfUTRvIoUwcmNLbqEJy9W800+NQ==} + jest-diff@30.2.0: + resolution: {integrity: sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-docblock@30.0.1: - resolution: {integrity: sha512-/vF78qn3DYphAaIc3jy4gA7XSAz167n9Bm/wn/1XhTLW7tTBIzXtCJpb/vcmc73NIIeeohCbdL94JasyXUZsGA==} + jest-docblock@30.2.0: + resolution: {integrity: sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-each@30.1.0: - resolution: {integrity: sha512-A+9FKzxPluqogNahpCv04UJvcZ9B3HamqpDNWNKDjtxVRYB8xbZLFuCr8JAJFpNp83CA0anGQFlpQna9Me+/tQ==} + jest-each@30.2.0: + resolution: {integrity: sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-environment-node@30.1.2: - resolution: {integrity: sha512-w8qBiXtqGWJ9xpJIA98M0EIoq079GOQRQUyse5qg1plShUCQ0Ek1VTTcczqKrn3f24TFAgFtT+4q3aOXvjbsuA==} + jest-environment-node@30.2.0: + resolution: {integrity: sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-get-type@29.6.3: resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-haste-map@30.1.0: - resolution: {integrity: sha512-JLeM84kNjpRkggcGpQLsV7B8W4LNUWz7oDNVnY1Vjj22b5/fAb3kk3htiD+4Na8bmJmjJR7rBtS2Rmq/NEcADg==} + jest-haste-map@30.2.0: + resolution: {integrity: sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-leak-detector@30.1.0: - resolution: {integrity: sha512-AoFvJzwxK+4KohH60vRuHaqXfWmeBATFZpzpmzNmYTtmRMiyGPVhkXpBqxUQunw+dQB48bDf4NpUs6ivVbRv1g==} + jest-leak-detector@30.2.0: + resolution: {integrity: sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-matcher-utils@29.7.0: @@ -11145,8 +11515,8 @@ packages: resolution: {integrity: sha512-uQgGWt7GOrRLP1P7IwNWwK1WAQbq+m//ZY0yXygyfWp0rJlksMSLQAA4wYQC3b6wl3zfnchyTx+k3HZ5aPtCbQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-matcher-utils@30.1.2: - resolution: {integrity: sha512-7ai16hy4rSbDjvPTuUhuV8nyPBd6EX34HkBsBcBX2lENCuAQ0qKCPb/+lt8OSWUa9WWmGYLy41PrEzkwRwoGZQ==} + jest-matcher-utils@30.2.0: + resolution: {integrity: sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-message-util@29.7.0: @@ -11157,8 +11527,8 @@ packages: resolution: {integrity: sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-message-util@30.1.0: - resolution: {integrity: sha512-HizKDGG98cYkWmaLUHChq4iN+oCENohQLb7Z5guBPumYs+/etonmNFlg1Ps6yN9LTPyZn+M+b/9BbnHx3WTMDg==} + jest-message-util@30.2.0: + resolution: {integrity: sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-mock-extended@4.0.0: @@ -11172,6 +11542,10 @@ packages: resolution: {integrity: sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-mock@30.2.0: + resolution: {integrity: sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-pnp-resolver@1.2.3: resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} engines: {node: '>=6'} @@ -11185,24 +11559,24 @@ packages: resolution: {integrity: sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-resolve-dependencies@30.1.3: - resolution: {integrity: sha512-DNfq3WGmuRyHRHfEet+Zm3QOmVFtIarUOQHHryKPc0YL9ROfgWZxl4+aZq/VAzok2SS3gZdniP+dO4zgo59hBg==} + jest-resolve-dependencies@30.2.0: + resolution: {integrity: sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-resolve@30.1.3: - resolution: {integrity: sha512-DI4PtTqzw9GwELFS41sdMK32Ajp3XZQ8iygeDMWkxlRhm7uUTOFSZFVZABFuxr0jvspn8MAYy54NxZCsuCTSOw==} + jest-resolve@30.2.0: + resolution: {integrity: sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-runner@30.1.3: - resolution: {integrity: sha512-dd1ORcxQraW44Uz029TtXj85W11yvLpDuIzNOlofrC8GN+SgDlgY4BvyxJiVeuabA1t6idjNbX59jLd2oplOGQ==} + jest-runner@30.2.0: + resolution: {integrity: sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-runtime@30.1.3: - resolution: {integrity: sha512-WS8xgjuNSphdIGnleQcJ3AKE4tBKOVP+tKhCD0u+Tb2sBmsU8DxfbBpZX7//+XOz81zVs4eFpJQwBNji2Y07DA==} + jest-runtime@30.2.0: + resolution: {integrity: sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-snapshot@30.1.2: - resolution: {integrity: sha512-4q4+6+1c8B6Cy5pGgFvjDy/Pa6VYRiGu0yQafKkJ9u6wQx4G5PqI2QR6nxTl43yy7IWsINwz6oT4o6tD12a8Dg==} + jest-snapshot@30.2.0: + resolution: {integrity: sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-util@29.7.0: @@ -11213,24 +11587,28 @@ packages: resolution: {integrity: sha512-pvyPWssDZR0FlfMxCBoc0tvM8iUEskaRFALUtGQYzVEAqisAztmy+R8LnU14KT4XA0H/a5HMVTXat1jLne010g==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-validate@30.1.0: - resolution: {integrity: sha512-7P3ZlCFW/vhfQ8pE7zW6Oi4EzvuB4sgR72Q1INfW9m0FGo0GADYlPwIkf4CyPq7wq85g+kPMtPOHNAdWHeBOaA==} + jest-util@30.2.0: + resolution: {integrity: sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-validate@30.2.0: + resolution: {integrity: sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-watcher@30.1.3: - resolution: {integrity: sha512-6jQUZCP1BTL2gvG9E4YF06Ytq4yMb4If6YoQGRR6PpjtqOXSP3sKe2kqwB6SQ+H9DezOfZaSLnmka1NtGm3fCQ==} + jest-watcher@30.2.0: + resolution: {integrity: sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} - jest-worker@30.1.0: - resolution: {integrity: sha512-uvWcSjlwAAgIu133Tt77A05H7RIk3Ho8tZL50bQM2AkvLdluw9NG48lRCl3Dt+MOH719n/0nnb5YxUwcuJiKRA==} + jest-worker@30.2.0: + resolution: {integrity: sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest@30.1.3: - resolution: {integrity: sha512-Ry+p2+NLk6u8Agh5yVqELfUJvRfV51hhVBRIB5yZPY7mU0DGBmOuFG5GebZbMbm86cdQNK0fhJuDX8/1YorISQ==} + jest@30.2.0: + resolution: {integrity: sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: @@ -11455,8 +11833,8 @@ packages: linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} - lint-staged@16.2.1: - resolution: {integrity: sha512-KMeYmH9wKvHsXdUp+z6w7HN3fHKHXwT1pSTQTYxB9kI6ekK1rlL3kLZEoXZCppRPXFK9PFW/wfQctV7XUqMrPQ==} + lint-staged@16.2.5: + resolution: {integrity: sha512-o36wH3OX0jRWqDw5dOa8a8x6GXTKaLM+LvhRaucZxez0IxA+KNDUCiyjBfNgsMNmchwSX6urLSL7wShcUqAang==} engines: {node: '>=20.17'} hasBin: true @@ -11478,8 +11856,8 @@ packages: enquirer: optional: true - listr2@9.0.4: - resolution: {integrity: sha512-1wd/kpAdKRLwv7/3OKC8zZ5U8e/fajCfWMxacUvB79S5nLrYGPtUI/8chMQhn3LQjsRVErTb9i1ECAwW0ZIHnQ==} + listr2@9.0.5: + resolution: {integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==} engines: {node: '>=20.0.0'} load-esm@1.0.2: @@ -11619,8 +11997,8 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - lossless-json@4.2.0: - resolution: {integrity: sha512-bsHH3x+7acZfqokfn9Ks/ej96yF/z6oGGw1aBmXesq4r3fAjhdG4uYuqzDgZMk5g1CZUd5w3kwwIp9K1LOYUiA==} + lossless-json@4.3.0: + resolution: {integrity: sha512-ToxOC+SsduRmdSuoLZLYAr5zy1Qu7l5XhmPWM3zefCZ5IcrzW/h108qbJUKfOlDlhvhjUK84+8PSVX0kxnit0g==} loupe@3.2.0: resolution: {integrity: sha512-2NCfZcT5VGVNX9mSZIxLRkEAegDGBpuQZBy13desuHeVORmBDyAET4TkJr4SjqQy3A8JDofMN6LpkK8Xcm/dlw==} @@ -11964,8 +12342,8 @@ packages: mlly@1.7.4: resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} - mocha@11.7.2: - resolution: {integrity: sha512-lkqVJPmqqG/w5jmmFtiRvtA2jkDyNVUcefFJKb2uyX4dekk8Okgqop3cgbFiaIvj8uCRJVTP5x9dfxGyXm2jvQ==} + mocha@11.7.4: + resolution: {integrity: sha512-1jYAaY8x0kAZ0XszLWu14pzsf4KV740Gld4HXkhNTXwcHx4AUEDkPzgEHg9CM5dVcW+zv036tjpsEbLraPJj4w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true @@ -12010,8 +12388,8 @@ packages: mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nano-spawn@1.0.3: - resolution: {integrity: sha512-jtpsQDetTnvS2Ts1fiRdci5rx0VYws5jGyC+4IYOTnIQ/wwdf6JdomlHBwqC3bJYOvaKu0C2GSZ1A60anrYpaA==} + nano-spawn@2.0.0: + resolution: {integrity: sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==} engines: {node: '>=20.17'} nanoid@3.3.11: @@ -12125,19 +12503,15 @@ packages: node-releases@2.0.19: resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - node-releases@2.0.21: - resolution: {integrity: sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==} - - nodemailer@6.9.13: - resolution: {integrity: sha512-7o38Yogx6krdoBf3jCAqnIN4oSQFx+fMa0I7dK1D+me9kBxx12D+/33wSb+fhOCtIxvYJ+4x4IMEhmhCKfAiOA==} - engines: {node: '>=6.0.0'} + node-releases@2.0.26: + resolution: {integrity: sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==} - nodemailer@6.9.15: - resolution: {integrity: sha512-AHf04ySLC6CIfuRtRiEYtGEXgRfa6INgWGluDhnxTZhHSKvrBu7lc1VVchQ0d8nPc4cFaZoPq8vkyNoZr0TpGQ==} + nodemailer@7.0.7: + resolution: {integrity: sha512-jGOaRznodf62TVzdyhKt/f1Q/c3kYynk8629sgJHpRzGZj01ezbgMMWJSAjHADcwTKxco3B68/R+KHJY2T5BaA==} engines: {node: '>=6.0.0'} - nodemailer@7.0.6: - resolution: {integrity: sha512-F44uVzgwo49xboqbFgBGkRaiMgtoBrBEWCVincJPK9+S9Adkzt/wXCLKbf7dxucmxfTI5gHGB+bEmdyzN6QKjw==} + nodemailer@7.0.9: + resolution: {integrity: sha512-9/Qm0qXIByEP8lEV2qOqcAW7bRpL8CR9jcTwk3NBnHJNmP9fIJ86g2fgmIXqHY+nj55ZEMwWqYAT2QTDpRUYiQ==} engines: {node: '>=6.0.0'} normalize-package-data@2.5.0: @@ -12512,6 +12886,9 @@ packages: resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==} engines: {node: '>=16'} + path-to-regexp@8.3.0: + resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==} + path-type@3.0.0: resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} engines: {node: '>=4'} @@ -12860,8 +13237,8 @@ packages: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} - posthog-node@5.8.8: - resolution: {integrity: sha512-M0m7k+mO3EBXGoOB4zswOvQsxpoO8xs4EyUXeKmMG7uVTUCZXdMbCxpAvpbr1h+g3R6A5TDbyRInTf437xGdtw==} + posthog-node@5.10.0: + resolution: {integrity: sha512-uNN+YUuOdbDSbDMGk/Wq57o2YBEH0Unu1kEq2PuYmqFmnu+oYsKyJBrb58VNwEuYsaXVJmk4FtbD+Tl8BT69+w==} engines: {node: '>=20'} posthtml-parser@0.11.0: @@ -12984,12 +13361,16 @@ packages: resolution: {integrity: sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + pretty-format@30.2.0: + resolution: {integrity: sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + preview-email@3.1.0: resolution: {integrity: sha512-ZtV1YrwscEjlrUzYrTSs6Nwo49JM3pXLM4fFOBSC3wSni+bxaWlw9/Qgk75PZO8M7cX2EybmL2iwvaV3vkAttw==} engines: {node: '>=14'} - prisma@6.16.2: - resolution: {integrity: sha512-aRvldGE5UUJTtVmFiH3WfNFNiqFlAtePUxcI0UEGlnXCX7DqhiMT5TRYwncHFeA/Reca5W6ToXXyCMTeFPdSXA==} + prisma@6.17.1: + resolution: {integrity: sha512-ac6h0sM1Tg3zu8NInY+qhP/S9KhENVaw9n1BrGKQVFu05JT5yT5Qqqmb8tMRIE3ZXvVj4xcRA5yfrsy4X7Yy5g==} engines: {node: '>=18.18'} hasBin: true peerDependencies: @@ -13260,10 +13641,6 @@ packages: remove-trailing-spaces@1.0.9: resolution: {integrity: sha512-xzG7w5IRijvIkHIjDk65URsJJ7k4J95wmcArY5PRcmjldIOl7oTvG8+X2Ag690R7SfwiOcHrWZKVc1Pp5WIOzA==} - repeat-string@1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} - engines: {node: '>=0.10'} - require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -13299,6 +13676,11 @@ packages: engines: {node: '>= 0.4'} hasBin: true + resolve@1.22.11: + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + engines: {node: '>= 0.4'} + hasBin: true + resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true @@ -13367,6 +13749,11 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rollup@4.52.5: + resolution: {integrity: sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + router@2.2.0: resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} engines: {node: '>= 18'} @@ -13473,8 +13860,8 @@ packages: engines: {node: '>=10'} hasBin: true - semver@7.7.2: - resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} engines: {node: '>=10'} hasBin: true @@ -13897,8 +14284,8 @@ packages: resolution: {integrity: sha512-y/hkYGeXAj7wUMjxRbB21g/l6aAEituGXM9Rwl4o20+SX3e8YOSV6BxFXl+dL3Uk0mjSL3kCbNkwURm8/gEDig==} engines: {node: '>=14.18.0'} - superjson@2.2.2: - resolution: {integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==} + superjson@2.2.3: + resolution: {integrity: sha512-ay3d+LW/S6yppKoTz3Bq4mG0xrS5bFwfWEBmQfbC7lt5wmtk+Obq0TxVuA9eYRirBTQb1K3eEpBRHMQEo0WyVw==} engines: {node: '>=16'} supertest@7.1.4: @@ -13940,8 +14327,8 @@ packages: resolution: {integrity: sha512-nF7oMeL4KypldrQhac8RyHerJeGPD1p2xDh900GPvc+Nk7nWP6jX2FcC7WmkinMoAmoO774+AFXcWsW8gMWEIg==} engines: {node: '>=10'} - swagger-ui-dist@5.21.0: - resolution: {integrity: sha512-E0K3AB6HvQd8yQNSMR7eE5bk+323AUxjtCz/4ZNKiahOlPhPJxqn3UPIGs00cyY/dhrTDJ61L7C/a8u6zhGrZg==} + swagger-ui-dist@5.29.4: + resolution: {integrity: sha512-gJFDz/gyLOCQtWwAgqs6Rk78z9ONnqTnlW11gimG9nLap8drKa3AJBKpzIQMIjl5PD2Ix+Tn+mc/tfoT2tgsng==} swagger2openapi@7.0.8: resolution: {integrity: sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==} @@ -14195,8 +14582,8 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - ts-jest@29.4.4: - resolution: {integrity: sha512-ccVcRABct5ZELCT5U0+DZwkXMCcOCLi2doHRrKy1nK/s7J7bch6TzJMsrY09WxgUUIP/ITfmcDS8D2yl63rnXw==} + ts-jest@29.4.5: + resolution: {integrity: sha512-HO3GyiWn2qvTQA4kTgjDcXiMwYQt68a1Y8+JuLRVpdIzm+UOLSHgl/XqR4c6nzJkq5rOkjc02O2I7P7l/Yof0Q==} engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -14395,8 +14782,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - typescript@5.9.2: - resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} hasBin: true @@ -14441,17 +14828,11 @@ packages: resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} engines: {node: '>=0.10.0'} - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} - undici-types@7.10.0: - resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} - - undici-types@7.12.0: - resolution: {integrity: sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==} - - unhead@2.0.17: - resolution: {integrity: sha512-xX3PCtxaE80khRZobyWCVxeFF88/Tg9eJDcJWY9us727nsTC7C449B8BUfVBmiF2+3LjPcmqeoB2iuMs0U4oJQ==} + unhead@2.0.19: + resolution: {integrity: sha512-gEEjkV11Aj+rBnY6wnRfsFtF2RxKOLaPN4i+Gx3UhBxnszvV6ApSNZbGk7WKyy/lErQ6ekPN63qdFL7sa1leow==} unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} @@ -14877,15 +15258,8 @@ packages: vue-router: optional: true - vite-plugin-pwa@0.13.1: - resolution: {integrity: sha512-NR3dIa+o2hzlzo4lF4Gu0cYvoMjSw2DdRc6Epw1yjmCqWaGuN86WK9JqZie4arNlE1ZuWT3CLiMdiX5wcmmUmg==} - peerDependencies: - vite: ^3.1.0 - workbox-build: ^6.5.4 - workbox-window: ^6.5.4 - - vite-plugin-pwa@1.0.3: - resolution: {integrity: sha512-/OpqIpUldALGxcsEnv/ekQiQ5xHkQ53wcoN5ewX4jiIDNGs3W+eNcI1WYZeyOLmzoEjg09D7aX0O89YGjen1aw==} + vite-plugin-pwa@1.1.0: + resolution: {integrity: sha512-VsSpdubPzXhHWVINcSx6uHRMpOHVHQcHsef1QgkOlEoaIDAlssFEW88LBq1a59BuokAhsh2kUDJbaX1bZv4Bjw==} engines: {node: '>=16.0.0'} peerDependencies: '@vite-pwa/assets-generator': ^1.0.0 @@ -14902,8 +15276,8 @@ packages: peerDependencies: vite: ^3.0.0 - vite-plugin-static-copy@3.1.2: - resolution: {integrity: sha512-aVmYOzptLVOI2b1jL+cmkF7O6uhRv1u5fvOkQgbohWZp2CbR22kn9ZqkCUIt9umKF7UhdbsEpshn1rf4720QFg==} + vite-plugin-static-copy@3.1.4: + resolution: {integrity: sha512-iCmr4GSw4eSnaB+G8zc2f4dxSuDjbkjwpuBLLGvQYR9IW7rnDzftnUjOH5p4RYR+d4GsiBqXRvzuFhs5bnzVyw==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 || ^6.0.0 || ^7.0.0 @@ -15184,8 +15558,8 @@ packages: vue-promise-modals@0.1.0: resolution: {integrity: sha512-LmPejeqvZSkxj4KkJe6ZUEJmCUQXVeEAj9ihTX+BRFfZftVCZSZd3B4uuZSKF0iCeQUemkodXUZFxcsNT/2dmg==} - vue-router@4.5.1: - resolution: {integrity: sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==} + vue-router@4.6.3: + resolution: {integrity: sha512-ARBedLm9YlbvQomnmq91Os7ck6efydTSpRP3nuOKCvgJOHNrhRoJDSKtee8kcL1Vf7nz6U+PMBL+hTvR3bTVQg==} peerDependencies: vue: 3.5.22 @@ -15662,11 +16036,22 @@ snapshots: optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/schematics-cli@19.2.15(@types/node@24.5.2)(chokidar@4.0.3)': + '@angular-devkit/core@19.2.17(chokidar@4.0.3)': + dependencies: + ajv: 8.17.1 + ajv-formats: 3.0.1(ajv@8.17.1) + jsonc-parser: 3.3.1 + picomatch: 4.0.2 + rxjs: 7.8.1 + source-map: 0.7.4 + optionalDependencies: + chokidar: 4.0.3 + + '@angular-devkit/schematics-cli@19.2.15(@types/node@24.9.1)(chokidar@4.0.3)': dependencies: '@angular-devkit/core': 19.2.15(chokidar@4.0.3) '@angular-devkit/schematics': 19.2.15(chokidar@4.0.3) - '@inquirer/prompts': 7.3.2(@types/node@24.5.2) + '@inquirer/prompts': 7.3.2(@types/node@24.9.1) ansi-colors: 4.1.3 symbol-observable: 4.0.0 yargs-parser: 21.1.1 @@ -15684,6 +16069,16 @@ snapshots: transitivePeerDependencies: - chokidar + '@angular-devkit/schematics@19.2.17(chokidar@4.0.3)': + dependencies: + '@angular-devkit/core': 19.2.17(chokidar@4.0.3) + jsonc-parser: 3.3.1 + magic-string: 0.30.17 + ora: 5.4.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - chokidar + '@antfu/install-pkg@0.1.1': dependencies: execa: 5.1.1 @@ -15743,7 +16138,7 @@ snapshots: openapi-types: 12.1.3 z-schema: 5.0.5 - '@apidevtools/swagger-parser@12.0.0(openapi-types@12.1.3)': + '@apidevtools/swagger-parser@12.1.0(openapi-types@12.1.3)': dependencies: '@apidevtools/json-schema-ref-parser': 14.0.1 '@apidevtools/openapi-schemas': 2.1.0 @@ -15919,6 +16314,11 @@ snapshots: transitivePeerDependencies: - encoding + '@as-integrations/express5@1.1.2(@apollo/server@4.12.1(graphql@16.11.0))(express@5.1.0)': + dependencies: + '@apollo/server': 4.12.1(graphql@16.11.0) + express: 5.1.0 + '@asamuzakjp/css-color@3.2.0': dependencies: '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) @@ -16368,26 +16768,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/core@7.28.3': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.3) - '@babel/helpers': 7.28.3 - '@babel/parser': 7.28.4 - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.3 - '@babel/types': 7.28.2 - convert-source-map: 2.0.0 - debug: 4.4.3(supports-color@8.1.1) - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/core@7.28.4': dependencies: '@babel/code-frame': 7.27.1 @@ -16426,9 +16806,9 @@ snapshots: '@babel/generator@7.28.3': dependencies: '@babel/parser': 7.28.4 - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 '@babel/helper-annotate-as-pure@7.25.7': @@ -16540,7 +16920,7 @@ snapshots: '@babel/helper-plugin-utils': 7.27.1 debug: 4.4.3(supports-color@8.1.1) lodash.debounce: 4.0.8 - resolve: 1.22.10 + resolve: 1.22.11 transitivePeerDependencies: - supports-color @@ -16602,21 +16982,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.3)': - dependencies: - '@babel/core': 7.28.3 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.3 - transitivePeerDependencies: - - supports-color - '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 '@babel/helper-module-imports': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.3 + '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color @@ -16736,11 +17107,6 @@ snapshots: '@babel/template': 7.27.2 '@babel/types': 7.28.2 - '@babel/helpers@7.28.3': - dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.2 - '@babel/helpers@7.28.4': dependencies: '@babel/template': 7.27.2 @@ -16865,27 +17231,15 @@ snapshots: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.3)': - dependencies: - '@babel/core': 7.28.3 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.25.7 - optional: true - - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.3)': - dependencies: - '@babel/core': 7.28.3 - '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - optional: true '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.7)': dependencies: @@ -16897,32 +17251,20 @@ snapshots: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.3)': - dependencies: - '@babel/core': 7.28.3 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.25.7 - optional: true '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.3)': - dependencies: - '@babel/core': 7.28.3 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.25.7 - optional: true '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.7)': dependencies: @@ -16959,11 +17301,6 @@ snapshots: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.3)': - dependencies: - '@babel/core': 7.28.3 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 @@ -16974,41 +17311,29 @@ snapshots: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.3)': - dependencies: - '@babel/core': 7.28.3 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.25.7 - optional: true '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.3)': - dependencies: - '@babel/core': 7.28.3 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.25.7 - optional: true '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.3)': + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.7)': @@ -17016,48 +17341,30 @@ snapshots: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.3)': - dependencies: - '@babel/core': 7.28.3 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.25.7 - optional: true '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.3)': - dependencies: - '@babel/core': 7.28.3 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.25.7 - optional: true '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.3)': - dependencies: - '@babel/core': 7.28.3 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.25.7 - optional: true '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.7)': dependencies: @@ -17069,84 +17376,54 @@ snapshots: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.3)': - dependencies: - '@babel/core': 7.28.3 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.25.7 - optional: true '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.3)': - dependencies: - '@babel/core': 7.28.3 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.25.7 - optional: true '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.3)': - dependencies: - '@babel/core': 7.28.3 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.25.7 - optional: true '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.3)': - dependencies: - '@babel/core': 7.28.3 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.25.7 - optional: true '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.3)': - dependencies: - '@babel/core': 7.28.3 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.25.7 - optional: true - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.3)': + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.7)': @@ -18117,7 +18394,7 @@ snapshots: babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.4) babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.4) babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.4) - core-js-compat: 3.45.1 + core-js-compat: 3.46.0 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -18178,18 +18455,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/traverse@7.28.3': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.4 - '@babel/template': 7.27.2 - '@babel/types': 7.28.2 - debug: 4.4.3(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - '@babel/traverse@7.28.4': dependencies: '@babel/code-frame': 7.27.1 @@ -18220,9 +18485,9 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@boringer-avatars/vue3@0.2.1(vue@3.5.22(typescript@5.9.2))': + '@boringer-avatars/vue3@0.2.1(vue@3.5.22(typescript@5.9.3))': dependencies: - vue: 3.5.22(typescript@5.9.2) + vue: 3.5.22(typescript@5.9.3) '@codemirror/autocomplete@6.18.6': dependencies: @@ -18309,66 +18574,66 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@commitlint/cli@19.8.1(@types/node@24.5.2)(typescript@5.9.2)': + '@commitlint/cli@20.1.0(@types/node@24.9.1)(typescript@5.9.3)': dependencies: - '@commitlint/format': 19.8.1 - '@commitlint/lint': 19.8.1 - '@commitlint/load': 19.8.1(@types/node@24.5.2)(typescript@5.9.2) - '@commitlint/read': 19.8.1 - '@commitlint/types': 19.8.1 + '@commitlint/format': 20.0.0 + '@commitlint/lint': 20.0.0 + '@commitlint/load': 20.1.0(@types/node@24.9.1)(typescript@5.9.3) + '@commitlint/read': 20.0.0 + '@commitlint/types': 20.0.0 tinyexec: 1.0.1 yargs: 17.7.2 transitivePeerDependencies: - '@types/node' - typescript - '@commitlint/config-conventional@19.8.1': + '@commitlint/config-conventional@20.0.0': dependencies: - '@commitlint/types': 19.8.1 + '@commitlint/types': 20.0.0 conventional-changelog-conventionalcommits: 7.0.2 - '@commitlint/config-validator@19.8.1': + '@commitlint/config-validator@20.0.0': dependencies: - '@commitlint/types': 19.8.1 + '@commitlint/types': 20.0.0 ajv: 8.17.1 - '@commitlint/ensure@19.8.1': + '@commitlint/ensure@20.0.0': dependencies: - '@commitlint/types': 19.8.1 + '@commitlint/types': 20.0.0 lodash.camelcase: 4.3.0 lodash.kebabcase: 4.1.1 lodash.snakecase: 4.1.1 lodash.startcase: 4.4.0 lodash.upperfirst: 4.3.1 - '@commitlint/execute-rule@19.8.1': {} + '@commitlint/execute-rule@20.0.0': {} - '@commitlint/format@19.8.1': + '@commitlint/format@20.0.0': dependencies: - '@commitlint/types': 19.8.1 + '@commitlint/types': 20.0.0 chalk: 5.6.2 - '@commitlint/is-ignored@19.8.1': + '@commitlint/is-ignored@20.0.0': dependencies: - '@commitlint/types': 19.8.1 - semver: 7.7.2 + '@commitlint/types': 20.0.0 + semver: 7.7.3 - '@commitlint/lint@19.8.1': + '@commitlint/lint@20.0.0': dependencies: - '@commitlint/is-ignored': 19.8.1 - '@commitlint/parse': 19.8.1 - '@commitlint/rules': 19.8.1 - '@commitlint/types': 19.8.1 + '@commitlint/is-ignored': 20.0.0 + '@commitlint/parse': 20.0.0 + '@commitlint/rules': 20.0.0 + '@commitlint/types': 20.0.0 - '@commitlint/load@19.8.1(@types/node@24.5.2)(typescript@5.9.2)': + '@commitlint/load@20.1.0(@types/node@24.9.1)(typescript@5.9.3)': dependencies: - '@commitlint/config-validator': 19.8.1 - '@commitlint/execute-rule': 19.8.1 - '@commitlint/resolve-extends': 19.8.1 - '@commitlint/types': 19.8.1 + '@commitlint/config-validator': 20.0.0 + '@commitlint/execute-rule': 20.0.0 + '@commitlint/resolve-extends': 20.1.0 + '@commitlint/types': 20.0.0 chalk: 5.6.2 - cosmiconfig: 9.0.0(typescript@5.9.2) - cosmiconfig-typescript-loader: 6.1.0(@types/node@24.5.2)(cosmiconfig@9.0.0(typescript@5.9.2))(typescript@5.9.2) + cosmiconfig: 9.0.0(typescript@5.9.3) + cosmiconfig-typescript-loader: 6.1.0(@types/node@24.9.1)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -18376,45 +18641,45 @@ snapshots: - '@types/node' - typescript - '@commitlint/message@19.8.1': {} + '@commitlint/message@20.0.0': {} - '@commitlint/parse@19.8.1': + '@commitlint/parse@20.0.0': dependencies: - '@commitlint/types': 19.8.1 + '@commitlint/types': 20.0.0 conventional-changelog-angular: 7.0.0 conventional-commits-parser: 5.0.0 - '@commitlint/read@19.8.1': + '@commitlint/read@20.0.0': dependencies: - '@commitlint/top-level': 19.8.1 - '@commitlint/types': 19.8.1 + '@commitlint/top-level': 20.0.0 + '@commitlint/types': 20.0.0 git-raw-commits: 4.0.0 minimist: 1.2.8 tinyexec: 1.0.1 - '@commitlint/resolve-extends@19.8.1': + '@commitlint/resolve-extends@20.1.0': dependencies: - '@commitlint/config-validator': 19.8.1 - '@commitlint/types': 19.8.1 + '@commitlint/config-validator': 20.0.0 + '@commitlint/types': 20.0.0 global-directory: 4.0.1 import-meta-resolve: 4.2.0 lodash.mergewith: 4.6.2 resolve-from: 5.0.0 - '@commitlint/rules@19.8.1': + '@commitlint/rules@20.0.0': dependencies: - '@commitlint/ensure': 19.8.1 - '@commitlint/message': 19.8.1 - '@commitlint/to-lines': 19.8.1 - '@commitlint/types': 19.8.1 + '@commitlint/ensure': 20.0.0 + '@commitlint/message': 20.0.0 + '@commitlint/to-lines': 20.0.0 + '@commitlint/types': 20.0.0 - '@commitlint/to-lines@19.8.1': {} + '@commitlint/to-lines@20.0.0': {} - '@commitlint/top-level@19.8.1': + '@commitlint/top-level@20.0.0': dependencies: find-up: 7.0.0 - '@commitlint/types@19.8.1': + '@commitlint/types@20.0.0': dependencies: '@types/conventional-commits-parser': 5.0.1 chalk: 5.6.2 @@ -18529,19 +18794,22 @@ snapshots: '@epic-web/invariant@1.0.0': {} - '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.25.10)': + '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.25.11)': dependencies: - esbuild: 0.25.10 + esbuild: 0.25.11 - '@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.25.10)': + '@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.25.11)': dependencies: - esbuild: 0.25.10 + esbuild: 0.25.11 escape-string-regexp: 4.0.0 rollup-plugin-node-polyfills: 0.2.1 '@esbuild/aix-ppc64@0.25.10': optional: true + '@esbuild/aix-ppc64@0.25.11': + optional: true + '@esbuild/aix-ppc64@0.25.8': optional: true @@ -18557,6 +18825,9 @@ snapshots: '@esbuild/android-arm64@0.25.10': optional: true + '@esbuild/android-arm64@0.25.11': + optional: true + '@esbuild/android-arm64@0.25.8': optional: true @@ -18575,6 +18846,9 @@ snapshots: '@esbuild/android-arm@0.25.10': optional: true + '@esbuild/android-arm@0.25.11': + optional: true + '@esbuild/android-arm@0.25.8': optional: true @@ -18590,6 +18864,9 @@ snapshots: '@esbuild/android-x64@0.25.10': optional: true + '@esbuild/android-x64@0.25.11': + optional: true + '@esbuild/android-x64@0.25.8': optional: true @@ -18605,6 +18882,9 @@ snapshots: '@esbuild/darwin-arm64@0.25.10': optional: true + '@esbuild/darwin-arm64@0.25.11': + optional: true + '@esbuild/darwin-arm64@0.25.8': optional: true @@ -18620,6 +18900,9 @@ snapshots: '@esbuild/darwin-x64@0.25.10': optional: true + '@esbuild/darwin-x64@0.25.11': + optional: true + '@esbuild/darwin-x64@0.25.8': optional: true @@ -18635,6 +18918,9 @@ snapshots: '@esbuild/freebsd-arm64@0.25.10': optional: true + '@esbuild/freebsd-arm64@0.25.11': + optional: true + '@esbuild/freebsd-arm64@0.25.8': optional: true @@ -18650,6 +18936,9 @@ snapshots: '@esbuild/freebsd-x64@0.25.10': optional: true + '@esbuild/freebsd-x64@0.25.11': + optional: true + '@esbuild/freebsd-x64@0.25.8': optional: true @@ -18665,6 +18954,9 @@ snapshots: '@esbuild/linux-arm64@0.25.10': optional: true + '@esbuild/linux-arm64@0.25.11': + optional: true + '@esbuild/linux-arm64@0.25.8': optional: true @@ -18680,6 +18972,9 @@ snapshots: '@esbuild/linux-arm@0.25.10': optional: true + '@esbuild/linux-arm@0.25.11': + optional: true + '@esbuild/linux-arm@0.25.8': optional: true @@ -18695,6 +18990,9 @@ snapshots: '@esbuild/linux-ia32@0.25.10': optional: true + '@esbuild/linux-ia32@0.25.11': + optional: true + '@esbuild/linux-ia32@0.25.8': optional: true @@ -18713,6 +19011,9 @@ snapshots: '@esbuild/linux-loong64@0.25.10': optional: true + '@esbuild/linux-loong64@0.25.11': + optional: true + '@esbuild/linux-loong64@0.25.8': optional: true @@ -18728,6 +19029,9 @@ snapshots: '@esbuild/linux-mips64el@0.25.10': optional: true + '@esbuild/linux-mips64el@0.25.11': + optional: true + '@esbuild/linux-mips64el@0.25.8': optional: true @@ -18743,6 +19047,9 @@ snapshots: '@esbuild/linux-ppc64@0.25.10': optional: true + '@esbuild/linux-ppc64@0.25.11': + optional: true + '@esbuild/linux-ppc64@0.25.8': optional: true @@ -18758,6 +19065,9 @@ snapshots: '@esbuild/linux-riscv64@0.25.10': optional: true + '@esbuild/linux-riscv64@0.25.11': + optional: true + '@esbuild/linux-riscv64@0.25.8': optional: true @@ -18773,6 +19083,9 @@ snapshots: '@esbuild/linux-s390x@0.25.10': optional: true + '@esbuild/linux-s390x@0.25.11': + optional: true + '@esbuild/linux-s390x@0.25.8': optional: true @@ -18788,6 +19101,9 @@ snapshots: '@esbuild/linux-x64@0.25.10': optional: true + '@esbuild/linux-x64@0.25.11': + optional: true + '@esbuild/linux-x64@0.25.8': optional: true @@ -18797,6 +19113,9 @@ snapshots: '@esbuild/netbsd-arm64@0.25.10': optional: true + '@esbuild/netbsd-arm64@0.25.11': + optional: true + '@esbuild/netbsd-arm64@0.25.8': optional: true @@ -18812,6 +19131,9 @@ snapshots: '@esbuild/netbsd-x64@0.25.10': optional: true + '@esbuild/netbsd-x64@0.25.11': + optional: true + '@esbuild/netbsd-x64@0.25.8': optional: true @@ -18821,6 +19143,9 @@ snapshots: '@esbuild/openbsd-arm64@0.25.10': optional: true + '@esbuild/openbsd-arm64@0.25.11': + optional: true + '@esbuild/openbsd-arm64@0.25.8': optional: true @@ -18836,6 +19161,9 @@ snapshots: '@esbuild/openbsd-x64@0.25.10': optional: true + '@esbuild/openbsd-x64@0.25.11': + optional: true + '@esbuild/openbsd-x64@0.25.8': optional: true @@ -18845,6 +19173,9 @@ snapshots: '@esbuild/openharmony-arm64@0.25.10': optional: true + '@esbuild/openharmony-arm64@0.25.11': + optional: true + '@esbuild/openharmony-arm64@0.25.8': optional: true @@ -18860,6 +19191,9 @@ snapshots: '@esbuild/sunos-x64@0.25.10': optional: true + '@esbuild/sunos-x64@0.25.11': + optional: true + '@esbuild/sunos-x64@0.25.8': optional: true @@ -18875,6 +19209,9 @@ snapshots: '@esbuild/win32-arm64@0.25.10': optional: true + '@esbuild/win32-arm64@0.25.11': + optional: true + '@esbuild/win32-arm64@0.25.8': optional: true @@ -18890,6 +19227,9 @@ snapshots: '@esbuild/win32-ia32@0.25.10': optional: true + '@esbuild/win32-ia32@0.25.11': + optional: true + '@esbuild/win32-ia32@0.25.8': optional: true @@ -18905,6 +19245,9 @@ snapshots: '@esbuild/win32-x64@0.25.10': optional: true + '@esbuild/win32-x64@0.25.11': + optional: true + '@esbuild/win32-x64@0.25.8': optional: true @@ -18921,9 +19264,9 @@ snapshots: eslint: 8.57.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.7.0(eslint@9.36.0(jiti@2.6.0))': + '@eslint-community/eslint-utils@4.7.0(eslint@9.37.0(jiti@2.6.0))': dependencies: - eslint: 9.36.0(jiti@2.6.0) + eslint: 9.37.0(jiti@2.6.0) eslint-visitor-keys: 3.4.3 '@eslint-community/eslint-utils@4.9.0(eslint@8.47.0)': @@ -18936,9 +19279,9 @@ snapshots: eslint: 8.57.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.9.0(eslint@9.36.0(jiti@2.6.0))': + '@eslint-community/eslint-utils@4.9.0(eslint@9.37.0(jiti@2.6.0))': dependencies: - eslint: 9.36.0(jiti@2.6.0) + eslint: 9.37.0(jiti@2.6.0) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.1': {} @@ -18948,21 +19291,23 @@ snapshots: '@eslint/config-array@0.21.0': dependencies: '@eslint/object-schema': 2.1.6 - debug: 4.4.1 + debug: 4.4.3(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.3.1': {} + '@eslint/config-helpers@0.4.0': + dependencies: + '@eslint/core': 0.16.0 - '@eslint/core@0.15.2': + '@eslint/core@0.16.0': dependencies: '@types/json-schema': 7.0.15 '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.4.1 + debug: 4.4.3(supports-color@8.1.1) espree: 9.6.1 globals: 13.24.0 ignore: 5.3.2 @@ -18991,13 +19336,13 @@ snapshots: '@eslint/js@8.57.1': {} - '@eslint/js@9.36.0': {} + '@eslint/js@9.37.0': {} '@eslint/object-schema@2.1.6': {} - '@eslint/plugin-kit@0.3.5': + '@eslint/plugin-kit@0.4.0': dependencies: - '@eslint/core': 0.15.2 + '@eslint/core': 0.16.0 levn: 0.4.1 '@exodus/schemasafe@1.3.0': {} @@ -19032,7 +19377,7 @@ snapshots: graphql: 16.11.0 tslib: 2.6.3 - '@graphql-codegen/cli@5.0.0(@parcel/watcher@2.5.1)(@types/node@18.18.8)(graphql@16.11.0)(typescript@5.8.3)': + '@graphql-codegen/cli@5.0.0(@parcel/watcher@2.5.1)(@types/node@24.9.1)(graphql@16.11.0)(typescript@5.9.3)': dependencies: '@babel/generator': 7.25.7 '@babel/template': 7.25.7 @@ -19042,20 +19387,20 @@ snapshots: '@graphql-tools/apollo-engine-loader': 8.0.1(graphql@16.11.0) '@graphql-tools/code-file-loader': 8.1.3(graphql@16.11.0) '@graphql-tools/git-loader': 8.0.7(graphql@16.11.0) - '@graphql-tools/github-loader': 8.0.1(@types/node@18.18.8)(graphql@16.11.0) + '@graphql-tools/github-loader': 8.0.1(@types/node@24.9.1)(graphql@16.11.0) '@graphql-tools/graphql-file-loader': 8.0.1(graphql@16.11.0) '@graphql-tools/json-file-loader': 8.0.1(graphql@16.11.0) '@graphql-tools/load': 8.0.2(graphql@16.11.0) - '@graphql-tools/prisma-loader': 8.0.4(@types/node@18.18.8)(graphql@16.11.0) - '@graphql-tools/url-loader': 8.0.2(@types/node@18.18.8)(graphql@16.11.0) + '@graphql-tools/prisma-loader': 8.0.4(@types/node@24.9.1)(graphql@16.11.0) + '@graphql-tools/url-loader': 8.0.2(@types/node@24.9.1)(graphql@16.11.0) '@graphql-tools/utils': 10.5.4(graphql@16.11.0) '@whatwg-node/fetch': 0.8.8 chalk: 4.1.2 - cosmiconfig: 8.3.6(typescript@5.8.3) + cosmiconfig: 8.3.6(typescript@5.9.3) debounce: 1.2.1 detect-indent: 6.1.0 graphql: 16.11.0 - graphql-config: 5.1.3(@types/node@18.18.8)(graphql@16.11.0)(typescript@5.8.3) + graphql-config: 5.1.3(@types/node@24.9.1)(graphql@16.11.0)(typescript@5.9.3) inquirer: 8.2.6 is-glob: 4.0.3 jiti: 1.21.6 @@ -19081,7 +19426,7 @@ snapshots: - typescript - utf-8-validate - '@graphql-codegen/cli@5.0.7(@parcel/watcher@2.5.1)(@types/node@24.5.2)(graphql@16.11.0)(typescript@5.9.2)': + '@graphql-codegen/cli@5.0.7(@parcel/watcher@2.5.1)(@types/node@24.9.1)(graphql@16.11.0)(typescript@5.9.3)': dependencies: '@babel/generator': 7.28.0 '@babel/template': 7.27.2 @@ -19092,21 +19437,21 @@ snapshots: '@graphql-tools/apollo-engine-loader': 8.0.22(graphql@16.11.0) '@graphql-tools/code-file-loader': 8.1.22(graphql@16.11.0) '@graphql-tools/git-loader': 8.0.26(graphql@16.11.0) - '@graphql-tools/github-loader': 8.0.22(@types/node@24.5.2)(graphql@16.11.0) + '@graphql-tools/github-loader': 8.0.22(@types/node@24.9.1)(graphql@16.11.0) '@graphql-tools/graphql-file-loader': 8.0.22(graphql@16.11.0) '@graphql-tools/json-file-loader': 8.0.20(graphql@16.11.0) '@graphql-tools/load': 8.1.2(graphql@16.11.0) - '@graphql-tools/prisma-loader': 8.0.17(@types/node@24.5.2)(graphql@16.11.0) - '@graphql-tools/url-loader': 8.0.33(@types/node@24.5.2)(graphql@16.11.0) + '@graphql-tools/prisma-loader': 8.0.17(@types/node@24.9.1)(graphql@16.11.0) + '@graphql-tools/url-loader': 8.0.33(@types/node@24.9.1)(graphql@16.11.0) '@graphql-tools/utils': 10.9.1(graphql@16.11.0) '@whatwg-node/fetch': 0.10.10 chalk: 4.1.2 - cosmiconfig: 8.3.6(typescript@5.9.2) + cosmiconfig: 8.3.6(typescript@5.9.3) debounce: 1.2.1 detect-indent: 6.1.0 graphql: 16.11.0 - graphql-config: 5.1.5(@types/node@24.5.2)(graphql@16.11.0)(typescript@5.9.2) - inquirer: 8.2.7(@types/node@24.5.2) + graphql-config: 5.1.5(@types/node@24.9.1)(graphql@16.11.0)(typescript@5.9.3) + inquirer: 8.2.7(@types/node@24.9.1) is-glob: 4.0.3 jiti: 1.21.7 json-to-pretty-yaml: 1.2.2 @@ -19598,7 +19943,7 @@ snapshots: - uWebSockets.js - utf-8-validate - '@graphql-tools/executor-http@0.1.10(@types/node@24.5.2)(graphql@16.11.0)': + '@graphql-tools/executor-http@0.1.10(@types/node@24.9.1)(graphql@16.11.0)': dependencies: '@graphql-tools/utils': 9.2.1(graphql@16.11.0) '@repeaterjs/repeater': 3.0.5 @@ -19606,26 +19951,26 @@ snapshots: dset: 3.1.4 extract-files: 11.0.0 graphql: 16.11.0 - meros: 1.3.0(@types/node@24.5.2) + meros: 1.3.0(@types/node@24.9.1) tslib: 2.8.1 value-or-promise: 1.0.12 transitivePeerDependencies: - '@types/node' - '@graphql-tools/executor-http@1.1.6(@types/node@18.18.8)(graphql@16.11.0)': + '@graphql-tools/executor-http@1.1.6(@types/node@24.9.1)(graphql@16.11.0)': dependencies: '@graphql-tools/utils': 10.8.6(graphql@16.11.0) '@repeaterjs/repeater': 3.0.6 '@whatwg-node/fetch': 0.9.21 extract-files: 11.0.0 graphql: 16.11.0 - meros: 1.3.0(@types/node@18.18.8) + meros: 1.3.0(@types/node@24.9.1) tslib: 2.8.1 value-or-promise: 1.0.12 transitivePeerDependencies: - '@types/node' - '@graphql-tools/executor-http@1.3.3(@types/node@24.5.2)(graphql@16.11.0)': + '@graphql-tools/executor-http@1.3.3(@types/node@24.9.1)(graphql@16.11.0)': dependencies: '@graphql-hive/signal': 1.0.0 '@graphql-tools/executor-common': 0.0.4(graphql@16.11.0) @@ -19635,7 +19980,7 @@ snapshots: '@whatwg-node/fetch': 0.10.10 '@whatwg-node/promise-helpers': 1.3.2 graphql: 16.11.0 - meros: 1.3.1(@types/node@24.5.2) + meros: 1.3.1(@types/node@24.9.1) tslib: 2.8.1 transitivePeerDependencies: - '@types/node' @@ -19728,10 +20073,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@graphql-tools/github-loader@8.0.1(@types/node@18.18.8)(graphql@16.11.0)': + '@graphql-tools/github-loader@8.0.1(@types/node@24.9.1)(graphql@16.11.0)': dependencies: '@ardatan/sync-fetch': 0.0.1 - '@graphql-tools/executor-http': 1.1.6(@types/node@18.18.8)(graphql@16.11.0) + '@graphql-tools/executor-http': 1.1.6(@types/node@24.9.1)(graphql@16.11.0) '@graphql-tools/graphql-tag-pluck': 8.3.2(graphql@16.11.0) '@graphql-tools/utils': 10.8.6(graphql@16.11.0) '@whatwg-node/fetch': 0.9.21 @@ -19743,9 +20088,9 @@ snapshots: - encoding - supports-color - '@graphql-tools/github-loader@8.0.22(@types/node@24.5.2)(graphql@16.11.0)': + '@graphql-tools/github-loader@8.0.22(@types/node@24.9.1)(graphql@16.11.0)': dependencies: - '@graphql-tools/executor-http': 1.3.3(@types/node@24.5.2)(graphql@16.11.0) + '@graphql-tools/executor-http': 1.3.3(@types/node@24.9.1)(graphql@16.11.0) '@graphql-tools/graphql-tag-pluck': 8.3.21(graphql@16.11.0) '@graphql-tools/utils': 10.9.1(graphql@16.11.0) '@whatwg-node/fetch': 0.10.10 @@ -19912,9 +20257,9 @@ snapshots: graphql: 16.11.0 tslib: 2.8.1 - '@graphql-tools/prisma-loader@8.0.17(@types/node@24.5.2)(graphql@16.11.0)': + '@graphql-tools/prisma-loader@8.0.17(@types/node@24.9.1)(graphql@16.11.0)': dependencies: - '@graphql-tools/url-loader': 8.0.33(@types/node@24.5.2)(graphql@16.11.0) + '@graphql-tools/url-loader': 8.0.33(@types/node@24.9.1)(graphql@16.11.0) '@graphql-tools/utils': 10.9.1(graphql@16.11.0) '@types/js-yaml': 4.0.9 '@whatwg-node/fetch': 0.10.10 @@ -19941,9 +20286,9 @@ snapshots: - uWebSockets.js - utf-8-validate - '@graphql-tools/prisma-loader@8.0.4(@types/node@18.18.8)(graphql@16.11.0)': + '@graphql-tools/prisma-loader@8.0.4(@types/node@24.9.1)(graphql@16.11.0)': dependencies: - '@graphql-tools/url-loader': 8.0.2(@types/node@18.18.8)(graphql@16.11.0) + '@graphql-tools/url-loader': 8.0.2(@types/node@24.9.1)(graphql@16.11.0) '@graphql-tools/utils': 10.8.6(graphql@16.11.0) '@types/js-yaml': 4.0.9 '@whatwg-node/fetch': 0.9.21 @@ -20018,12 +20363,12 @@ snapshots: tslib: 2.8.1 value-or-promise: 1.0.12 - '@graphql-tools/url-loader@7.17.18(@types/node@24.5.2)(graphql@16.11.0)': + '@graphql-tools/url-loader@7.17.18(@types/node@24.9.1)(graphql@16.11.0)': dependencies: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/delegate': 9.0.35(graphql@16.11.0) '@graphql-tools/executor-graphql-ws': 0.0.14(graphql@16.11.0) - '@graphql-tools/executor-http': 0.1.10(@types/node@24.5.2)(graphql@16.11.0) + '@graphql-tools/executor-http': 0.1.10(@types/node@24.9.1)(graphql@16.11.0) '@graphql-tools/executor-legacy-ws': 0.0.11(graphql@16.11.0) '@graphql-tools/utils': 9.2.1(graphql@16.11.0) '@graphql-tools/wrap': 9.4.2(graphql@16.11.0) @@ -20040,12 +20385,12 @@ snapshots: - encoding - utf-8-validate - '@graphql-tools/url-loader@8.0.2(@types/node@18.18.8)(graphql@16.11.0)': + '@graphql-tools/url-loader@8.0.2(@types/node@24.9.1)(graphql@16.11.0)': dependencies: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/delegate': 10.0.21(graphql@16.11.0) '@graphql-tools/executor-graphql-ws': 1.3.0(graphql@16.11.0) - '@graphql-tools/executor-http': 1.1.6(@types/node@18.18.8)(graphql@16.11.0) + '@graphql-tools/executor-http': 1.1.6(@types/node@24.9.1)(graphql@16.11.0) '@graphql-tools/executor-legacy-ws': 1.1.0(graphql@16.11.0) '@graphql-tools/utils': 10.8.6(graphql@16.11.0) '@graphql-tools/wrap': 10.0.5(graphql@16.11.0) @@ -20062,10 +20407,10 @@ snapshots: - encoding - utf-8-validate - '@graphql-tools/url-loader@8.0.33(@types/node@24.5.2)(graphql@16.11.0)': + '@graphql-tools/url-loader@8.0.33(@types/node@24.9.1)(graphql@16.11.0)': dependencies: '@graphql-tools/executor-graphql-ws': 2.0.7(graphql@16.11.0) - '@graphql-tools/executor-http': 1.3.3(@types/node@24.5.2)(graphql@16.11.0) + '@graphql-tools/executor-http': 1.3.3(@types/node@24.9.1)(graphql@16.11.0) '@graphql-tools/executor-legacy-ws': 1.1.19(graphql@16.11.0) '@graphql-tools/utils': 10.9.1(graphql@16.11.0) '@graphql-tools/wrap': 10.1.4(graphql@16.11.0) @@ -20153,12 +20498,12 @@ snapshots: dependencies: graphql: 16.11.0 - '@guolao/vue-monaco-editor@1.5.5(monaco-editor@0.52.2)(vue@3.5.22(typescript@5.9.2))': + '@guolao/vue-monaco-editor@1.6.0(monaco-editor@0.52.2)(vue@3.5.22(typescript@5.9.3))': dependencies: - '@monaco-editor/loader': 1.5.0 + '@monaco-editor/loader': 1.6.1 monaco-editor: 0.52.2 - vue: 3.5.22(typescript@5.9.2) - vue-demi: 0.14.10(vue@3.5.22(typescript@5.9.2)) + vue: 3.5.22(typescript@5.9.3) + vue-demi: 0.14.10(vue@3.5.22(typescript@5.9.3)) '@hapi/b64@5.0.0': dependencies: @@ -20183,23 +20528,23 @@ snapshots: stringify-object: 3.3.0 yargs: 17.7.2 - '@hoppscotch/ui@0.2.5(eslint@8.57.0)(terser@5.39.2)(typescript@5.9.2)(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2))': + '@hoppscotch/ui@0.2.5(eslint@8.57.0)(terser@5.39.2)(typescript@5.9.3)(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': dependencies: - '@boringer-avatars/vue3': 0.2.1(vue@3.5.22(typescript@5.9.2)) + '@boringer-avatars/vue3': 0.2.1(vue@3.5.22(typescript@5.9.3)) '@fontsource-variable/inter': 5.2.6 '@fontsource-variable/material-symbols-rounded': 5.2.19 '@fontsource-variable/roboto-mono': 5.2.6 '@hoppscotch/vue-sonner': 1.2.3 - '@hoppscotch/vue-toasted': 0.1.0(vue@3.5.22(typescript@5.9.2)) - '@vitejs/plugin-legacy': 2.3.0(terser@5.39.2)(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) - '@vueuse/core': 8.9.4(vue@3.5.22(typescript@5.9.2)) + '@hoppscotch/vue-toasted': 0.1.0(vue@3.5.22(typescript@5.9.3)) + '@vitejs/plugin-legacy': 2.3.0(terser@5.39.2)(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) + '@vueuse/core': 8.9.4(vue@3.5.22(typescript@5.9.3)) fp-ts: 2.16.11 lodash-es: 4.17.21 path: 0.12.7 - vite-plugin-eslint: 1.8.1(eslint@8.57.0)(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) - vue: 3.5.22(typescript@5.9.2) - vue-promise-modals: 0.1.0(typescript@5.9.2) - vuedraggable-es: 4.1.1(vue@3.5.22(typescript@5.9.2)) + vite-plugin-eslint: 1.8.1(eslint@8.57.0)(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) + vue: 3.5.22(typescript@5.9.3) + vue-promise-modals: 0.1.0(typescript@5.9.3) + vuedraggable-es: 4.1.1(vue@3.5.22(typescript@5.9.3)) transitivePeerDependencies: - '@vue/composition-api' - eslint @@ -20207,23 +20552,23 @@ snapshots: - typescript - vite - '@hoppscotch/ui@0.2.5(eslint@8.57.0)(terser@5.39.2)(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2))': + '@hoppscotch/ui@0.2.5(eslint@8.57.0)(terser@5.39.2)(typescript@5.9.3)(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': dependencies: - '@boringer-avatars/vue3': 0.2.1(vue@3.5.22(typescript@5.9.2)) + '@boringer-avatars/vue3': 0.2.1(vue@3.5.22(typescript@5.9.3)) '@fontsource-variable/inter': 5.2.6 '@fontsource-variable/material-symbols-rounded': 5.2.19 '@fontsource-variable/roboto-mono': 5.2.6 '@hoppscotch/vue-sonner': 1.2.3 - '@hoppscotch/vue-toasted': 0.1.0(vue@3.5.22(typescript@5.9.2)) - '@vitejs/plugin-legacy': 2.3.0(terser@5.39.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) - '@vueuse/core': 8.9.4(vue@3.5.22(typescript@5.9.2)) + '@hoppscotch/vue-toasted': 0.1.0(vue@3.5.22(typescript@5.9.3)) + '@vitejs/plugin-legacy': 2.3.0(terser@5.39.2)(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) + '@vueuse/core': 8.9.4(vue@3.5.22(typescript@5.9.3)) fp-ts: 2.16.11 lodash-es: 4.17.21 path: 0.12.7 - vite-plugin-eslint: 1.8.1(eslint@8.57.0)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) - vue: 3.5.22(typescript@5.9.2) - vue-promise-modals: 0.1.0(typescript@5.9.2) - vuedraggable-es: 4.1.1(vue@3.5.22(typescript@5.9.2)) + vite-plugin-eslint: 1.8.1(eslint@8.57.0)(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) + vue: 3.5.22(typescript@5.9.3) + vue-promise-modals: 0.1.0(typescript@5.9.3) + vuedraggable-es: 4.1.1(vue@3.5.22(typescript@5.9.3)) transitivePeerDependencies: - '@vue/composition-api' - eslint @@ -20231,23 +20576,23 @@ snapshots: - typescript - vite - '@hoppscotch/ui@0.2.5(eslint@9.36.0(jiti@2.6.0))(terser@5.39.2)(typescript@5.9.2)(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2))': + '@hoppscotch/ui@0.2.5(eslint@9.37.0(jiti@2.6.0))(terser@5.39.2)(typescript@5.9.3)(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': dependencies: - '@boringer-avatars/vue3': 0.2.1(vue@3.5.22(typescript@5.9.2)) + '@boringer-avatars/vue3': 0.2.1(vue@3.5.22(typescript@5.9.3)) '@fontsource-variable/inter': 5.2.6 '@fontsource-variable/material-symbols-rounded': 5.2.19 '@fontsource-variable/roboto-mono': 5.2.6 '@hoppscotch/vue-sonner': 1.2.3 - '@hoppscotch/vue-toasted': 0.1.0(vue@3.5.22(typescript@5.9.2)) - '@vitejs/plugin-legacy': 2.3.0(terser@5.39.2)(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) - '@vueuse/core': 8.9.4(vue@3.5.22(typescript@5.9.2)) + '@hoppscotch/vue-toasted': 0.1.0(vue@3.5.22(typescript@5.9.3)) + '@vitejs/plugin-legacy': 2.3.0(terser@5.39.2)(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) + '@vueuse/core': 8.9.4(vue@3.5.22(typescript@5.9.3)) fp-ts: 2.16.11 lodash-es: 4.17.21 path: 0.12.7 - vite-plugin-eslint: 1.8.1(eslint@9.36.0(jiti@2.6.0))(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) - vue: 3.5.22(typescript@5.9.2) - vue-promise-modals: 0.1.0(typescript@5.9.2) - vuedraggable-es: 4.1.1(vue@3.5.22(typescript@5.9.2)) + vite-plugin-eslint: 1.8.1(eslint@9.37.0(jiti@2.6.0))(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) + vue: 3.5.22(typescript@5.9.3) + vue-promise-modals: 0.1.0(typescript@5.9.3) + vuedraggable-es: 4.1.1(vue@3.5.22(typescript@5.9.3)) transitivePeerDependencies: - '@vue/composition-api' - eslint @@ -20255,23 +20600,23 @@ snapshots: - typescript - vite - '@hoppscotch/ui@0.2.5(eslint@9.36.0(jiti@2.6.0))(terser@5.39.2)(typescript@5.9.2)(vite@6.3.6(@types/node@24.3.0)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2))': + '@hoppscotch/ui@0.2.5(eslint@9.37.0(jiti@2.6.0))(terser@5.39.2)(typescript@5.9.3)(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': dependencies: - '@boringer-avatars/vue3': 0.2.1(vue@3.5.22(typescript@5.9.2)) + '@boringer-avatars/vue3': 0.2.1(vue@3.5.22(typescript@5.9.3)) '@fontsource-variable/inter': 5.2.6 '@fontsource-variable/material-symbols-rounded': 5.2.19 '@fontsource-variable/roboto-mono': 5.2.6 '@hoppscotch/vue-sonner': 1.2.3 - '@hoppscotch/vue-toasted': 0.1.0(vue@3.5.22(typescript@5.9.2)) - '@vitejs/plugin-legacy': 2.3.0(terser@5.39.2)(vite@6.3.6(@types/node@24.3.0)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) - '@vueuse/core': 8.9.4(vue@3.5.22(typescript@5.9.2)) + '@hoppscotch/vue-toasted': 0.1.0(vue@3.5.22(typescript@5.9.3)) + '@vitejs/plugin-legacy': 2.3.0(terser@5.39.2)(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) + '@vueuse/core': 8.9.4(vue@3.5.22(typescript@5.9.3)) fp-ts: 2.16.11 lodash-es: 4.17.21 path: 0.12.7 - vite-plugin-eslint: 1.8.1(eslint@9.36.0(jiti@2.6.0))(vite@6.3.6(@types/node@24.3.0)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) - vue: 3.5.22(typescript@5.9.2) - vue-promise-modals: 0.1.0(typescript@5.9.2) - vuedraggable-es: 4.1.1(vue@3.5.22(typescript@5.9.2)) + vite-plugin-eslint: 1.8.1(eslint@9.37.0(jiti@2.6.0))(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) + vue: 3.5.22(typescript@5.9.3) + vue-promise-modals: 0.1.0(typescript@5.9.3) + vuedraggable-es: 4.1.1(vue@3.5.22(typescript@5.9.3)) transitivePeerDependencies: - '@vue/composition-api' - eslint @@ -20279,23 +20624,23 @@ snapshots: - typescript - vite - '@hoppscotch/ui@0.2.5(eslint@9.36.0(jiti@2.6.0))(terser@5.39.2)(typescript@5.9.2)(vite@7.1.2(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2))': + '@hoppscotch/ui@0.2.5(eslint@9.37.0(jiti@2.6.0))(terser@5.39.2)(typescript@5.9.3)(vite@7.1.2(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': dependencies: - '@boringer-avatars/vue3': 0.2.1(vue@3.5.22(typescript@5.9.2)) + '@boringer-avatars/vue3': 0.2.1(vue@3.5.22(typescript@5.9.3)) '@fontsource-variable/inter': 5.2.6 '@fontsource-variable/material-symbols-rounded': 5.2.19 '@fontsource-variable/roboto-mono': 5.2.6 '@hoppscotch/vue-sonner': 1.2.3 - '@hoppscotch/vue-toasted': 0.1.0(vue@3.5.22(typescript@5.9.2)) - '@vitejs/plugin-legacy': 2.3.0(terser@5.39.2)(vite@7.1.2(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) - '@vueuse/core': 8.9.4(vue@3.5.22(typescript@5.9.2)) + '@hoppscotch/vue-toasted': 0.1.0(vue@3.5.22(typescript@5.9.3)) + '@vitejs/plugin-legacy': 2.3.0(terser@5.39.2)(vite@7.1.2(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) + '@vueuse/core': 8.9.4(vue@3.5.22(typescript@5.9.3)) fp-ts: 2.16.11 lodash-es: 4.17.21 path: 0.12.7 - vite-plugin-eslint: 1.8.1(eslint@9.36.0(jiti@2.6.0))(vite@7.1.2(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) - vue: 3.5.22(typescript@5.9.2) - vue-promise-modals: 0.1.0(typescript@5.9.2) - vuedraggable-es: 4.1.1(vue@3.5.22(typescript@5.9.2)) + vite-plugin-eslint: 1.8.1(eslint@9.37.0(jiti@2.6.0))(vite@7.1.2(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) + vue: 3.5.22(typescript@5.9.3) + vue-promise-modals: 0.1.0(typescript@5.9.3) + vuedraggable-es: 4.1.1(vue@3.5.22(typescript@5.9.3)) transitivePeerDependencies: - '@vue/composition-api' - eslint @@ -20305,9 +20650,9 @@ snapshots: '@hoppscotch/vue-sonner@1.2.3': {} - '@hoppscotch/vue-toasted@0.1.0(vue@3.5.22(typescript@5.9.2))': + '@hoppscotch/vue-toasted@0.1.0(vue@3.5.22(typescript@5.9.3))': dependencies: - vue: 3.5.22(typescript@5.9.2) + vue: 3.5.22(typescript@5.9.3) '@humanfs/core@0.19.1': {} @@ -20319,7 +20664,7 @@ snapshots: '@humanwhocodes/config-array@0.11.14': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.1 + debug: 4.4.3(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -20345,7 +20690,7 @@ snapshots: '@antfu/install-pkg': 0.1.1 '@antfu/utils': 0.5.2 '@iconify/types': 1.1.0 - debug: 4.3.7 + debug: 4.4.3(supports-color@8.1.1) kolorist: 1.8.0 local-pkg: 0.4.3 transitivePeerDependencies: @@ -20384,44 +20729,44 @@ snapshots: optionalDependencies: '@import-meta-env/cli': 0.7.3(@import-meta-env/unplugin@0.6.2) - '@inquirer/checkbox@4.1.6(@types/node@24.5.2)': + '@inquirer/checkbox@4.1.6(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.1.11(@types/node@24.5.2) + '@inquirer/core': 10.1.11(@types/node@24.9.1) '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.6(@types/node@24.5.2) + '@inquirer/type': 3.0.6(@types/node@24.9.1) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - '@inquirer/checkbox@4.2.1(@types/node@24.5.2)': + '@inquirer/checkbox@4.2.1(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.5.2) + '@inquirer/core': 10.1.15(@types/node@24.9.1) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.9.1) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - '@inquirer/confirm@5.1.10(@types/node@24.5.2)': + '@inquirer/confirm@5.1.10(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.1.11(@types/node@24.5.2) - '@inquirer/type': 3.0.6(@types/node@24.5.2) + '@inquirer/core': 10.1.11(@types/node@24.9.1) + '@inquirer/type': 3.0.6(@types/node@24.9.1) optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - '@inquirer/confirm@5.1.15(@types/node@24.5.2)': + '@inquirer/confirm@5.1.15(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/core': 10.1.15(@types/node@24.9.1) + '@inquirer/type': 3.0.8(@types/node@24.9.1) optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - '@inquirer/core@10.1.11(@types/node@24.5.2)': + '@inquirer/core@10.1.11(@types/node@24.9.1)': dependencies: '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.6(@types/node@24.5.2) + '@inquirer/type': 3.0.6(@types/node@24.9.1) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -20429,12 +20774,12 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - '@inquirer/core@10.1.15(@types/node@24.5.2)': + '@inquirer/core@10.1.15(@types/node@24.9.1)': dependencies: '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.9.1) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -20442,208 +20787,194 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - '@inquirer/editor@4.2.11(@types/node@24.5.2)': + '@inquirer/editor@4.2.11(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.1.11(@types/node@24.5.2) - '@inquirer/type': 3.0.6(@types/node@24.5.2) + '@inquirer/core': 10.1.11(@types/node@24.9.1) + '@inquirer/type': 3.0.6(@types/node@24.9.1) external-editor: 3.1.0 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - '@inquirer/editor@4.2.17(@types/node@24.5.2)': + '@inquirer/editor@4.2.17(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.5.2) - '@inquirer/external-editor': 1.0.1(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/core': 10.1.15(@types/node@24.9.1) + '@inquirer/external-editor': 1.0.1(@types/node@24.9.1) + '@inquirer/type': 3.0.8(@types/node@24.9.1) optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - '@inquirer/expand@4.0.13(@types/node@24.5.2)': + '@inquirer/expand@4.0.13(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.1.11(@types/node@24.5.2) - '@inquirer/type': 3.0.6(@types/node@24.5.2) + '@inquirer/core': 10.1.11(@types/node@24.9.1) + '@inquirer/type': 3.0.6(@types/node@24.9.1) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - '@inquirer/expand@4.0.17(@types/node@24.5.2)': + '@inquirer/expand@4.0.17(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/core': 10.1.15(@types/node@24.9.1) + '@inquirer/type': 3.0.8(@types/node@24.9.1) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - '@inquirer/external-editor@1.0.0(@types/node@24.5.2)': + '@inquirer/external-editor@1.0.0(@types/node@24.9.1)': dependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 chardet: 2.1.0 iconv-lite: 0.6.3 - '@inquirer/external-editor@1.0.1(@types/node@24.5.2)': + '@inquirer/external-editor@1.0.1(@types/node@24.9.1)': dependencies: chardet: 2.1.0 iconv-lite: 0.6.3 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 '@inquirer/figures@1.0.11': {} '@inquirer/figures@1.0.13': {} - '@inquirer/input@4.1.10(@types/node@24.5.2)': + '@inquirer/input@4.1.10(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.1.11(@types/node@24.5.2) - '@inquirer/type': 3.0.6(@types/node@24.5.2) + '@inquirer/core': 10.1.11(@types/node@24.9.1) + '@inquirer/type': 3.0.6(@types/node@24.9.1) optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - '@inquirer/input@4.2.1(@types/node@24.5.2)': + '@inquirer/input@4.2.1(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/core': 10.1.15(@types/node@24.9.1) + '@inquirer/type': 3.0.8(@types/node@24.9.1) optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - '@inquirer/number@3.0.13(@types/node@24.5.2)': + '@inquirer/number@3.0.13(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.1.11(@types/node@24.5.2) - '@inquirer/type': 3.0.6(@types/node@24.5.2) + '@inquirer/core': 10.1.11(@types/node@24.9.1) + '@inquirer/type': 3.0.6(@types/node@24.9.1) optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - '@inquirer/number@3.0.17(@types/node@24.5.2)': + '@inquirer/number@3.0.17(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/core': 10.1.15(@types/node@24.9.1) + '@inquirer/type': 3.0.8(@types/node@24.9.1) optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - '@inquirer/password@4.0.13(@types/node@24.5.2)': + '@inquirer/password@4.0.13(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.1.11(@types/node@24.5.2) - '@inquirer/type': 3.0.6(@types/node@24.5.2) + '@inquirer/core': 10.1.11(@types/node@24.9.1) + '@inquirer/type': 3.0.6(@types/node@24.9.1) ansi-escapes: 4.3.2 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - '@inquirer/password@4.0.17(@types/node@24.5.2)': + '@inquirer/password@4.0.17(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/core': 10.1.15(@types/node@24.9.1) + '@inquirer/type': 3.0.8(@types/node@24.9.1) ansi-escapes: 4.3.2 optionalDependencies: - '@types/node': 24.5.2 - - '@inquirer/prompts@7.3.2(@types/node@24.5.2)': - dependencies: - '@inquirer/checkbox': 4.1.6(@types/node@24.5.2) - '@inquirer/confirm': 5.1.10(@types/node@24.5.2) - '@inquirer/editor': 4.2.11(@types/node@24.5.2) - '@inquirer/expand': 4.0.13(@types/node@24.5.2) - '@inquirer/input': 4.1.10(@types/node@24.5.2) - '@inquirer/number': 3.0.13(@types/node@24.5.2) - '@inquirer/password': 4.0.13(@types/node@24.5.2) - '@inquirer/rawlist': 4.1.1(@types/node@24.5.2) - '@inquirer/search': 3.0.13(@types/node@24.5.2) - '@inquirer/select': 4.2.1(@types/node@24.5.2) + '@types/node': 24.9.1 + + '@inquirer/prompts@7.3.2(@types/node@24.9.1)': + dependencies: + '@inquirer/checkbox': 4.1.6(@types/node@24.9.1) + '@inquirer/confirm': 5.1.10(@types/node@24.9.1) + '@inquirer/editor': 4.2.11(@types/node@24.9.1) + '@inquirer/expand': 4.0.13(@types/node@24.9.1) + '@inquirer/input': 4.1.10(@types/node@24.9.1) + '@inquirer/number': 3.0.13(@types/node@24.9.1) + '@inquirer/password': 4.0.13(@types/node@24.9.1) + '@inquirer/rawlist': 4.1.1(@types/node@24.9.1) + '@inquirer/search': 3.0.13(@types/node@24.9.1) + '@inquirer/select': 4.2.1(@types/node@24.9.1) optionalDependencies: - '@types/node': 24.5.2 - - '@inquirer/prompts@7.8.0(@types/node@24.5.2)': - dependencies: - '@inquirer/checkbox': 4.2.1(@types/node@24.5.2) - '@inquirer/confirm': 5.1.15(@types/node@24.5.2) - '@inquirer/editor': 4.2.17(@types/node@24.5.2) - '@inquirer/expand': 4.0.17(@types/node@24.5.2) - '@inquirer/input': 4.2.1(@types/node@24.5.2) - '@inquirer/number': 3.0.17(@types/node@24.5.2) - '@inquirer/password': 4.0.17(@types/node@24.5.2) - '@inquirer/rawlist': 4.1.5(@types/node@24.5.2) - '@inquirer/search': 3.1.0(@types/node@24.5.2) - '@inquirer/select': 4.3.1(@types/node@24.5.2) + '@types/node': 24.9.1 + + '@inquirer/prompts@7.8.0(@types/node@24.9.1)': + dependencies: + '@inquirer/checkbox': 4.2.1(@types/node@24.9.1) + '@inquirer/confirm': 5.1.15(@types/node@24.9.1) + '@inquirer/editor': 4.2.17(@types/node@24.9.1) + '@inquirer/expand': 4.0.17(@types/node@24.9.1) + '@inquirer/input': 4.2.1(@types/node@24.9.1) + '@inquirer/number': 3.0.17(@types/node@24.9.1) + '@inquirer/password': 4.0.17(@types/node@24.9.1) + '@inquirer/rawlist': 4.1.5(@types/node@24.9.1) + '@inquirer/search': 3.1.0(@types/node@24.9.1) + '@inquirer/select': 4.3.1(@types/node@24.9.1) optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - '@inquirer/rawlist@4.1.1(@types/node@24.5.2)': + '@inquirer/rawlist@4.1.1(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.1.11(@types/node@24.5.2) - '@inquirer/type': 3.0.6(@types/node@24.5.2) + '@inquirer/core': 10.1.11(@types/node@24.9.1) + '@inquirer/type': 3.0.6(@types/node@24.9.1) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - '@inquirer/rawlist@4.1.5(@types/node@24.5.2)': + '@inquirer/rawlist@4.1.5(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/core': 10.1.15(@types/node@24.9.1) + '@inquirer/type': 3.0.8(@types/node@24.9.1) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - '@inquirer/search@3.0.13(@types/node@24.5.2)': + '@inquirer/search@3.0.13(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.1.11(@types/node@24.5.2) + '@inquirer/core': 10.1.11(@types/node@24.9.1) '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.6(@types/node@24.5.2) + '@inquirer/type': 3.0.6(@types/node@24.9.1) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - '@inquirer/search@3.1.0(@types/node@24.5.2)': + '@inquirer/search@3.1.0(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.5.2) + '@inquirer/core': 10.1.15(@types/node@24.9.1) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.9.1) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - '@inquirer/select@4.2.1(@types/node@24.5.2)': + '@inquirer/select@4.2.1(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.1.11(@types/node@24.5.2) + '@inquirer/core': 10.1.11(@types/node@24.9.1) '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.6(@types/node@24.5.2) + '@inquirer/type': 3.0.6(@types/node@24.9.1) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - '@inquirer/select@4.3.1(@types/node@24.5.2)': + '@inquirer/select@4.3.1(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.5.2) + '@inquirer/core': 10.1.15(@types/node@24.9.1) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.9.1) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - '@inquirer/type@3.0.6(@types/node@24.5.2)': + '@inquirer/type@3.0.6(@types/node@24.9.1)': optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - '@inquirer/type@3.0.8(@types/node@24.5.2)': - optionalDependencies: - '@types/node': 24.5.2 - - '@intlify/bundle-utils@10.0.1(vue-i18n@11.1.12(vue@3.5.22(typescript@5.8.3)))': - dependencies: - '@intlify/message-compiler': 11.1.11 - '@intlify/shared': 11.1.11 - acorn: 8.15.0 - escodegen: 2.1.0 - estree-walker: 2.0.2 - jsonc-eslint-parser: 2.4.0 - mlly: 1.7.4 - source-map-js: 1.2.1 - yaml-eslint-parser: 1.3.0 + '@inquirer/type@3.0.8(@types/node@24.9.1)': optionalDependencies: - vue-i18n: 11.1.12(vue@3.5.22(typescript@5.8.3)) + '@types/node': 24.9.1 - '@intlify/bundle-utils@10.0.1(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)))': + '@intlify/bundle-utils@10.0.1(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.3)))': dependencies: '@intlify/message-compiler': 11.1.11 '@intlify/shared': 11.1.11 @@ -20655,7 +20986,7 @@ snapshots: source-map-js: 1.2.1 yaml-eslint-parser: 1.3.0 optionalDependencies: - vue-i18n: 11.1.12(vue@3.5.22(typescript@5.9.2)) + vue-i18n: 11.1.12(vue@3.5.22(typescript@5.9.3)) '@intlify/core-base@11.1.12': dependencies: @@ -20678,15 +21009,15 @@ snapshots: '@intlify/shared@11.1.3': {} - '@intlify/unplugin-vue-i18n@6.0.4(@vue/compiler-dom@3.5.22)(eslint@8.47.0)(rollup@2.79.2)(typescript@5.8.3)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.8.3)))(vue@3.5.22(typescript@5.8.3))(webpack-sources@3.3.3)': + '@intlify/unplugin-vue-i18n@6.0.4(@vue/compiler-dom@3.5.22)(eslint@8.47.0)(rollup@2.79.2)(typescript@5.9.3)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3))(webpack-sources@3.3.3)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) - '@intlify/bundle-utils': 10.0.1(vue-i18n@11.1.12(vue@3.5.22(typescript@5.8.3))) + '@intlify/bundle-utils': 10.0.1(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.3))) '@intlify/shared': 11.1.3 - '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.1.3)(@vue/compiler-dom@3.5.22)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.8.3)))(vue@3.5.22(typescript@5.8.3)) + '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.1.3)(@vue/compiler-dom@3.5.22)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) '@rollup/pluginutils': 5.1.2(rollup@2.79.2) '@typescript-eslint/scope-manager': 8.31.0 - '@typescript-eslint/typescript-estree': 8.31.0(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.31.0(typescript@5.9.3) debug: 4.4.0 fast-glob: 3.3.2 js-yaml: 4.1.0 @@ -20695,9 +21026,9 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 unplugin: 1.14.1(webpack-sources@3.3.3) - vue: 3.5.22(typescript@5.8.3) + vue: 3.5.22(typescript@5.9.3) optionalDependencies: - vue-i18n: 11.1.12(vue@3.5.22(typescript@5.8.3)) + vue-i18n: 11.1.12(vue@3.5.22(typescript@5.9.3)) transitivePeerDependencies: - '@vue/compiler-dom' - eslint @@ -20706,15 +21037,15 @@ snapshots: - typescript - webpack-sources - '@intlify/unplugin-vue-i18n@6.0.8(@vue/compiler-dom@3.5.22)(eslint@8.57.0)(rollup@4.52.2)(typescript@5.9.2)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2))': + '@intlify/unplugin-vue-i18n@6.0.8(@vue/compiler-dom@3.5.22)(eslint@8.57.0)(rollup@4.52.5)(typescript@5.9.3)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3))': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.0) - '@intlify/bundle-utils': 10.0.1(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2))) + '@intlify/bundle-utils': 10.0.1(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.3))) '@intlify/shared': 11.1.11 - '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.1.11)(@vue/compiler-dom@3.5.22)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2)) - '@rollup/pluginutils': 5.2.0(rollup@4.52.2) + '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.1.11)(@vue/compiler-dom@3.5.22)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) + '@rollup/pluginutils': 5.2.0(rollup@4.52.5) '@typescript-eslint/scope-manager': 8.39.1 - '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.9.3) debug: 4.4.1 fast-glob: 3.3.3 js-yaml: 4.1.0 @@ -20723,9 +21054,9 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 unplugin: 1.16.1 - vue: 3.5.22(typescript@5.9.2) + vue: 3.5.22(typescript@5.9.3) optionalDependencies: - vue-i18n: 11.1.12(vue@3.5.22(typescript@5.9.2)) + vue-i18n: 11.1.12(vue@3.5.22(typescript@5.9.3)) transitivePeerDependencies: - '@vue/compiler-dom' - eslint @@ -20733,15 +21064,15 @@ snapshots: - supports-color - typescript - '@intlify/unplugin-vue-i18n@6.0.8(@vue/compiler-dom@3.5.22)(eslint@9.36.0(jiti@2.6.0))(rollup@4.52.2)(typescript@5.9.2)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2))': + '@intlify/unplugin-vue-i18n@6.0.8(@vue/compiler-dom@3.5.22)(eslint@9.37.0(jiti@2.6.0))(rollup@4.52.5)(typescript@5.9.3)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3))': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.36.0(jiti@2.6.0)) - '@intlify/bundle-utils': 10.0.1(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2))) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.37.0(jiti@2.6.0)) + '@intlify/bundle-utils': 10.0.1(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.3))) '@intlify/shared': 11.1.11 - '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.1.11)(@vue/compiler-dom@3.5.22)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2)) - '@rollup/pluginutils': 5.2.0(rollup@4.52.2) + '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.1.11)(@vue/compiler-dom@3.5.22)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) + '@rollup/pluginutils': 5.2.0(rollup@4.52.5) '@typescript-eslint/scope-manager': 8.39.1 - '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.9.3) debug: 4.4.1 fast-glob: 3.3.3 js-yaml: 4.1.0 @@ -20750,9 +21081,9 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 unplugin: 1.16.1 - vue: 3.5.22(typescript@5.9.2) + vue: 3.5.22(typescript@5.9.3) optionalDependencies: - vue-i18n: 11.1.12(vue@3.5.22(typescript@5.9.2)) + vue-i18n: 11.1.12(vue@3.5.22(typescript@5.9.3)) transitivePeerDependencies: - '@vue/compiler-dom' - eslint @@ -20760,23 +21091,23 @@ snapshots: - supports-color - typescript - '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.1.11)(@vue/compiler-dom@3.5.22)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2))': + '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.1.11)(@vue/compiler-dom@3.5.22)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3))': dependencies: '@babel/parser': 7.28.3 optionalDependencies: '@intlify/shared': 11.1.11 '@vue/compiler-dom': 3.5.22 - vue: 3.5.22(typescript@5.9.2) - vue-i18n: 11.1.12(vue@3.5.22(typescript@5.9.2)) + vue: 3.5.22(typescript@5.9.3) + vue-i18n: 11.1.12(vue@3.5.22(typescript@5.9.3)) - '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.1.3)(@vue/compiler-dom@3.5.22)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.8.3)))(vue@3.5.22(typescript@5.8.3))': + '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.1.3)(@vue/compiler-dom@3.5.22)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3))': dependencies: '@babel/parser': 7.28.3 optionalDependencies: '@intlify/shared': 11.1.3 '@vue/compiler-dom': 3.5.22 - vue: 3.5.22(typescript@5.8.3) - vue-i18n: 11.1.12(vue@3.5.22(typescript@5.8.3)) + vue: 3.5.22(typescript@5.9.3) + vue-i18n: 11.1.12(vue@3.5.22(typescript@5.9.3)) '@ioredis/commands@1.2.0': optional: true @@ -20806,44 +21137,44 @@ snapshots: '@istanbuljs/schema@0.1.3': {} - '@jest/console@30.1.2': + '@jest/console@30.2.0': dependencies: - '@jest/types': 30.0.5 - '@types/node': 24.5.2 + '@jest/types': 30.2.0 + '@types/node': 24.9.1 chalk: 4.1.2 - jest-message-util: 30.1.0 - jest-util: 30.0.5 + jest-message-util: 30.2.0 + jest-util: 30.2.0 slash: 3.0.0 - '@jest/core@30.1.3(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2))': + '@jest/core@30.2.0(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3))': dependencies: - '@jest/console': 30.1.2 + '@jest/console': 30.2.0 '@jest/pattern': 30.0.1 - '@jest/reporters': 30.1.3 - '@jest/test-result': 30.1.3 - '@jest/transform': 30.1.2 - '@jest/types': 30.0.5 - '@types/node': 24.5.2 + '@jest/reporters': 30.2.0 + '@jest/test-result': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 24.9.1 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 4.3.0 exit-x: 0.2.2 graceful-fs: 4.2.11 - jest-changed-files: 30.0.5 - jest-config: 30.1.3(@types/node@24.5.2)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2)) - jest-haste-map: 30.1.0 - jest-message-util: 30.1.0 + jest-changed-files: 30.2.0 + jest-config: 30.2.0(@types/node@24.9.1)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)) + jest-haste-map: 30.2.0 + jest-message-util: 30.2.0 jest-regex-util: 30.0.1 - jest-resolve: 30.1.3 - jest-resolve-dependencies: 30.1.3 - jest-runner: 30.1.3 - jest-runtime: 30.1.3 - jest-snapshot: 30.1.2 - jest-util: 30.0.5 - jest-validate: 30.1.0 - jest-watcher: 30.1.3 + jest-resolve: 30.2.0 + jest-resolve-dependencies: 30.2.0 + jest-runner: 30.2.0 + jest-runtime: 30.2.0 + jest-snapshot: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 + jest-watcher: 30.2.0 micromatch: 4.0.8 - pretty-format: 30.0.5 + pretty-format: 30.2.0 slash: 3.0.0 transitivePeerDependencies: - babel-plugin-macros @@ -20853,12 +21184,12 @@ snapshots: '@jest/diff-sequences@30.0.1': {} - '@jest/environment@30.1.2': + '@jest/environment@30.2.0': dependencies: - '@jest/fake-timers': 30.1.2 - '@jest/types': 30.0.5 - '@types/node': 24.5.2 - jest-mock: 30.0.5 + '@jest/fake-timers': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 24.9.1 + jest-mock: 30.2.0 '@jest/expect-utils@29.7.0': dependencies: @@ -20868,53 +21199,53 @@ snapshots: dependencies: '@jest/get-type': 30.0.1 - '@jest/expect-utils@30.1.2': + '@jest/expect-utils@30.2.0': dependencies: '@jest/get-type': 30.1.0 - '@jest/expect@30.1.2': + '@jest/expect@30.2.0': dependencies: - expect: 30.1.2 - jest-snapshot: 30.1.2 + expect: 30.2.0 + jest-snapshot: 30.2.0 transitivePeerDependencies: - supports-color - '@jest/fake-timers@30.1.2': + '@jest/fake-timers@30.2.0': dependencies: - '@jest/types': 30.0.5 + '@jest/types': 30.2.0 '@sinonjs/fake-timers': 13.0.5 - '@types/node': 24.5.2 - jest-message-util: 30.1.0 - jest-mock: 30.0.5 - jest-util: 30.0.5 + '@types/node': 24.9.1 + jest-message-util: 30.2.0 + jest-mock: 30.2.0 + jest-util: 30.2.0 '@jest/get-type@30.0.1': {} '@jest/get-type@30.1.0': {} - '@jest/globals@30.1.2': + '@jest/globals@30.2.0': dependencies: - '@jest/environment': 30.1.2 - '@jest/expect': 30.1.2 - '@jest/types': 30.0.5 - jest-mock: 30.0.5 + '@jest/environment': 30.2.0 + '@jest/expect': 30.2.0 + '@jest/types': 30.2.0 + jest-mock: 30.2.0 transitivePeerDependencies: - supports-color '@jest/pattern@30.0.1': dependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 jest-regex-util: 30.0.1 - '@jest/reporters@30.1.3': + '@jest/reporters@30.2.0': dependencies: '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 30.1.2 - '@jest/test-result': 30.1.3 - '@jest/transform': 30.1.2 - '@jest/types': 30.0.5 - '@jridgewell/trace-mapping': 0.3.30 - '@types/node': 24.5.2 + '@jest/console': 30.2.0 + '@jest/test-result': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + '@jridgewell/trace-mapping': 0.3.31 + '@types/node': 24.9.1 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit-x: 0.2.2 @@ -20925,9 +21256,9 @@ snapshots: istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.1.7 - jest-message-util: 30.1.0 - jest-util: 30.0.5 - jest-worker: 30.1.0 + jest-message-util: 30.2.0 + jest-util: 30.2.0 + jest-worker: 30.2.0 slash: 3.0.0 string-length: 4.0.2 v8-to-istanbul: 9.3.0 @@ -20942,46 +21273,46 @@ snapshots: dependencies: '@sinclair/typebox': 0.34.38 - '@jest/snapshot-utils@30.1.2': + '@jest/snapshot-utils@30.2.0': dependencies: - '@jest/types': 30.0.5 + '@jest/types': 30.2.0 chalk: 4.1.2 graceful-fs: 4.2.11 natural-compare: 1.4.0 '@jest/source-map@30.0.1': dependencies: - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 callsites: 3.1.0 graceful-fs: 4.2.11 - '@jest/test-result@30.1.3': + '@jest/test-result@30.2.0': dependencies: - '@jest/console': 30.1.2 - '@jest/types': 30.0.5 + '@jest/console': 30.2.0 + '@jest/types': 30.2.0 '@types/istanbul-lib-coverage': 2.0.6 collect-v8-coverage: 1.0.2 - '@jest/test-sequencer@30.1.3': + '@jest/test-sequencer@30.2.0': dependencies: - '@jest/test-result': 30.1.3 + '@jest/test-result': 30.2.0 graceful-fs: 4.2.11 - jest-haste-map: 30.1.0 + jest-haste-map: 30.2.0 slash: 3.0.0 - '@jest/transform@30.1.2': + '@jest/transform@30.2.0': dependencies: - '@babel/core': 7.28.3 - '@jest/types': 30.0.5 - '@jridgewell/trace-mapping': 0.3.30 - babel-plugin-istanbul: 7.0.0 + '@babel/core': 7.28.4 + '@jest/types': 30.2.0 + '@jridgewell/trace-mapping': 0.3.31 + babel-plugin-istanbul: 7.0.1 chalk: 4.1.2 convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.11 - jest-haste-map: 30.1.0 + jest-haste-map: 30.2.0 jest-regex-util: 30.0.1 - jest-util: 30.0.5 + jest-util: 30.2.0 micromatch: 4.0.8 pirates: 4.0.7 slash: 3.0.0 @@ -20994,7 +21325,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 24.5.2 + '@types/node': 24.9.1 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -21004,7 +21335,17 @@ snapshots: '@jest/schemas': 30.0.5 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 24.5.2 + '@types/node': 24.9.1 + '@types/yargs': 17.0.33 + chalk: 4.1.2 + + '@jest/types@30.2.0': + dependencies: + '@jest/pattern': 30.0.1 + '@jest/schemas': 30.0.5 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 24.9.1 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -21132,7 +21473,7 @@ snapshots: '@microsoft/tsdoc@0.15.1': {} - '@monaco-editor/loader@1.5.0': + '@monaco-editor/loader@1.6.1': dependencies: state-local: 1.0.7 @@ -21187,13 +21528,13 @@ snapshots: '@tybys/wasm-util': 0.10.0 optional: true - '@nestjs-modules/mailer@2.0.2(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(nodemailer@7.0.6)(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2)': + '@nestjs-modules/mailer@2.0.2(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(nodemailer@7.0.9)(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3)': dependencies: '@css-inline/css-inline': 0.14.1 '@nestjs/common': 11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2) '@nestjs/core': 11.1.6(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.6)(reflect-metadata@0.2.2)(rxjs@7.8.2) glob: 10.3.12 - nodemailer: 7.0.6 + nodemailer: 7.0.9 optionalDependencies: '@types/ejs': 3.1.5 '@types/mjml': 4.7.4 @@ -21201,7 +21542,7 @@ snapshots: ejs: 3.1.10 handlebars: 4.7.8 liquidjs: 10.17.0 - mjml: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) preview-email: 3.1.0 pug: 3.0.3 transitivePeerDependencies: @@ -21214,25 +21555,27 @@ snapshots: - typescript - uncss - '@nestjs/apollo@13.1.0(@apollo/server@4.12.1(graphql@16.11.0))(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(@nestjs/graphql@13.1.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(class-transformer@0.5.1)(class-validator@0.14.2)(graphql@16.11.0)(reflect-metadata@0.2.2))(graphql@16.11.0)': + '@nestjs/apollo@13.2.1(@apollo/server@4.12.1(graphql@16.11.0))(@as-integrations/express5@1.1.2(@apollo/server@4.12.1(graphql@16.11.0))(express@5.1.0))(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(@nestjs/graphql@13.2.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(class-transformer@0.5.1)(class-validator@0.14.2)(graphql@16.11.0)(reflect-metadata@0.2.2))(graphql@16.11.0)': dependencies: '@apollo/server': 4.12.1(graphql@16.11.0) '@apollo/server-plugin-landing-page-graphql-playground': 4.0.1(@apollo/server@4.12.1(graphql@16.11.0)) '@nestjs/common': 11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2) '@nestjs/core': 11.1.6(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.6)(reflect-metadata@0.2.2)(rxjs@7.8.2) - '@nestjs/graphql': 13.1.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(class-transformer@0.5.1)(class-validator@0.14.2)(graphql@16.11.0)(reflect-metadata@0.2.2) + '@nestjs/graphql': 13.2.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(class-transformer@0.5.1)(class-validator@0.14.2)(graphql@16.11.0)(reflect-metadata@0.2.2) graphql: 16.11.0 iterall: 1.3.0 lodash.omit: 4.5.0 tslib: 2.8.1 + optionalDependencies: + '@as-integrations/express5': 1.1.2(@apollo/server@4.12.1(graphql@16.11.0))(express@5.1.0) - '@nestjs/cli@11.0.10(@swc/core@1.4.2)(@types/node@24.5.2)': + '@nestjs/cli@11.0.10(@swc/core@1.4.2)(@types/node@24.9.1)': dependencies: '@angular-devkit/core': 19.2.15(chokidar@4.0.3) '@angular-devkit/schematics': 19.2.15(chokidar@4.0.3) - '@angular-devkit/schematics-cli': 19.2.15(@types/node@24.5.2)(chokidar@4.0.3) - '@inquirer/prompts': 7.8.0(@types/node@24.5.2) - '@nestjs/schematics': 11.0.7(chokidar@4.0.3)(typescript@5.8.3) + '@angular-devkit/schematics-cli': 19.2.15(@types/node@24.9.1)(chokidar@4.0.3) + '@inquirer/prompts': 7.8.0(@types/node@24.9.1) + '@nestjs/schematics': 11.0.9(chokidar@4.0.3)(typescript@5.8.3) ansis: 4.1.0 chokidar: 4.0.3 cli-table3: 0.6.5 @@ -21292,11 +21635,11 @@ snapshots: optionalDependencies: '@nestjs/platform-express': 11.1.6(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6) - '@nestjs/graphql@13.1.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(class-transformer@0.5.1)(class-validator@0.14.2)(graphql@16.11.0)(reflect-metadata@0.2.2)': + '@nestjs/graphql@13.2.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(class-transformer@0.5.1)(class-validator@0.14.2)(graphql@16.11.0)(reflect-metadata@0.2.2)': dependencies: - '@graphql-tools/merge': 9.0.24(graphql@16.11.0) - '@graphql-tools/schema': 10.0.23(graphql@16.11.0) - '@graphql-tools/utils': 10.8.6(graphql@16.11.0) + '@graphql-tools/merge': 9.1.1(graphql@16.11.0) + '@graphql-tools/schema': 10.0.25(graphql@16.11.0) + '@graphql-tools/utils': 10.9.1(graphql@16.11.0) '@nestjs/common': 11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2) '@nestjs/core': 11.1.6(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.6)(reflect-metadata@0.2.2)(rxjs@7.8.2) '@nestjs/mapped-types': 2.1.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2) @@ -21304,7 +21647,7 @@ snapshots: fast-glob: 3.3.3 graphql: 16.11.0 graphql-tag: 2.12.6(graphql@16.11.0) - graphql-ws: 6.0.4(graphql@16.11.0)(ws@8.17.1) + graphql-ws: 6.0.6(graphql@16.11.0)(ws@8.17.1) lodash: 4.17.21 normalize-path: 3.0.0 reflect-metadata: 0.2.2 @@ -21317,13 +21660,14 @@ snapshots: transitivePeerDependencies: - '@fastify/websocket' - bufferutil + - crossws - uWebSockets.js - utf-8-validate - '@nestjs/jwt@11.0.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))': + '@nestjs/jwt@11.0.1(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))': dependencies: '@nestjs/common': 11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2) - '@types/jsonwebtoken': 9.0.7 + '@types/jsonwebtoken': 9.0.10 jsonwebtoken: 9.0.2 '@nestjs/mapped-types@2.1.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)': @@ -21357,29 +21701,29 @@ snapshots: '@nestjs/core': 11.1.6(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.6)(reflect-metadata@0.2.2)(rxjs@7.8.2) cron: 4.3.3 - '@nestjs/schematics@11.0.7(chokidar@4.0.3)(typescript@5.8.3)': + '@nestjs/schematics@11.0.9(chokidar@4.0.3)(typescript@5.8.3)': dependencies: - '@angular-devkit/core': 19.2.15(chokidar@4.0.3) - '@angular-devkit/schematics': 19.2.15(chokidar@4.0.3) - comment-json: 4.2.5 + '@angular-devkit/core': 19.2.17(chokidar@4.0.3) + '@angular-devkit/schematics': 19.2.17(chokidar@4.0.3) + comment-json: 4.4.1 jsonc-parser: 3.3.1 pluralize: 8.0.0 typescript: 5.8.3 transitivePeerDependencies: - chokidar - '@nestjs/schematics@11.0.7(chokidar@4.0.3)(typescript@5.9.2)': + '@nestjs/schematics@11.0.9(chokidar@4.0.3)(typescript@5.9.3)': dependencies: - '@angular-devkit/core': 19.2.15(chokidar@4.0.3) - '@angular-devkit/schematics': 19.2.15(chokidar@4.0.3) - comment-json: 4.2.5 + '@angular-devkit/core': 19.2.17(chokidar@4.0.3) + '@angular-devkit/schematics': 19.2.17(chokidar@4.0.3) + comment-json: 4.4.1 jsonc-parser: 3.3.1 pluralize: 8.0.0 - typescript: 5.9.2 + typescript: 5.9.3 transitivePeerDependencies: - chokidar - '@nestjs/swagger@11.2.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)': + '@nestjs/swagger@11.2.1(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)': dependencies: '@microsoft/tsdoc': 0.15.1 '@nestjs/common': 11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2) @@ -21387,14 +21731,14 @@ snapshots: '@nestjs/mapped-types': 2.1.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2) js-yaml: 4.1.0 lodash: 4.17.21 - path-to-regexp: 8.2.0 + path-to-regexp: 8.3.0 reflect-metadata: 0.2.2 - swagger-ui-dist: 5.21.0 + swagger-ui-dist: 5.29.4 optionalDependencies: class-transformer: 0.5.1 class-validator: 0.14.2 - '@nestjs/terminus@11.0.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(@prisma/client@6.16.2(prisma@6.16.2(typescript@5.9.2))(typescript@5.9.2))(reflect-metadata@0.2.2)(rxjs@7.8.2)': + '@nestjs/terminus@11.0.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(@prisma/client@6.17.1(prisma@6.17.1(typescript@5.9.3))(typescript@5.9.3))(reflect-metadata@0.2.2)(rxjs@7.8.2)': dependencies: '@nestjs/common': 11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2) '@nestjs/core': 11.1.6(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.6)(reflect-metadata@0.2.2)(rxjs@7.8.2) @@ -21403,7 +21747,7 @@ snapshots: reflect-metadata: 0.2.2 rxjs: 7.8.2 optionalDependencies: - '@prisma/client': 6.16.2(prisma@6.16.2(typescript@5.9.2))(typescript@5.9.2) + '@prisma/client': 6.17.1(prisma@6.17.1(typescript@5.9.3))(typescript@5.9.3) '@nestjs/testing@11.1.6(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.6)(@nestjs/platform-express@11.1.6)': dependencies: @@ -21567,14 +21911,14 @@ snapshots: '@popperjs/core@2.11.8': {} - '@posthog/core@1.1.0': {} + '@posthog/core@1.3.0': {} - '@prisma/client@6.16.2(prisma@6.16.2(typescript@5.9.2))(typescript@5.9.2)': + '@prisma/client@6.17.1(prisma@6.17.1(typescript@5.9.3))(typescript@5.9.3)': optionalDependencies: - prisma: 6.16.2(typescript@5.9.2) - typescript: 5.9.2 + prisma: 6.17.1(typescript@5.9.3) + typescript: 5.9.3 - '@prisma/config@6.16.2': + '@prisma/config@6.17.1': dependencies: c12: 3.1.0 deepmerge-ts: 7.1.5 @@ -21583,26 +21927,26 @@ snapshots: transitivePeerDependencies: - magicast - '@prisma/debug@6.16.2': {} + '@prisma/debug@6.17.1': {} - '@prisma/engines-version@6.16.0-7.1c57fdcd7e44b29b9313256c76699e91c3ac3c43': {} + '@prisma/engines-version@6.17.1-1.272a37d34178c2894197e17273bf937f25acdeac': {} - '@prisma/engines@6.16.2': + '@prisma/engines@6.17.1': dependencies: - '@prisma/debug': 6.16.2 - '@prisma/engines-version': 6.16.0-7.1c57fdcd7e44b29b9313256c76699e91c3ac3c43 - '@prisma/fetch-engine': 6.16.2 - '@prisma/get-platform': 6.16.2 + '@prisma/debug': 6.17.1 + '@prisma/engines-version': 6.17.1-1.272a37d34178c2894197e17273bf937f25acdeac + '@prisma/fetch-engine': 6.17.1 + '@prisma/get-platform': 6.17.1 - '@prisma/fetch-engine@6.16.2': + '@prisma/fetch-engine@6.17.1': dependencies: - '@prisma/debug': 6.16.2 - '@prisma/engines-version': 6.16.0-7.1c57fdcd7e44b29b9313256c76699e91c3ac3c43 - '@prisma/get-platform': 6.16.2 + '@prisma/debug': 6.17.1 + '@prisma/engines-version': 6.17.1-1.272a37d34178c2894197e17273bf937f25acdeac + '@prisma/get-platform': 6.17.1 - '@prisma/get-platform@6.16.2': + '@prisma/get-platform@6.17.1': dependencies: - '@prisma/debug': 6.16.2 + '@prisma/debug': 6.17.1 '@protobufjs/aspromise@1.1.2': {} @@ -21653,13 +21997,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@rollup/plugin-inject@5.0.5(rollup@4.52.2)': + '@rollup/plugin-inject@5.0.5(rollup@4.52.5)': dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.52.2) + '@rollup/pluginutils': 5.2.0(rollup@4.52.5) estree-walker: 2.0.2 magic-string: 0.30.17 optionalDependencies: - rollup: 4.52.2 + rollup: 4.52.5 '@rollup/plugin-node-resolve@15.3.1(rollup@2.79.2)': dependencies: @@ -21667,7 +22011,7 @@ snapshots: '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 - resolve: 1.22.10 + resolve: 1.22.11 optionalDependencies: rollup: 2.79.2 @@ -21685,22 +22029,22 @@ snapshots: optionalDependencies: rollup: 2.79.2 - '@rollup/plugin-typescript@11.1.6(rollup@4.52.2)(tslib@2.8.0)(typescript@5.9.2)': + '@rollup/plugin-typescript@11.1.6(rollup@4.52.5)(tslib@2.8.0)(typescript@5.9.3)': dependencies: - '@rollup/pluginutils': 5.1.2(rollup@4.52.2) + '@rollup/pluginutils': 5.1.2(rollup@4.52.5) resolve: 1.22.8 - typescript: 5.9.2 + typescript: 5.9.3 optionalDependencies: - rollup: 4.52.2 + rollup: 4.52.5 tslib: 2.8.0 - '@rollup/plugin-typescript@12.1.4(rollup@4.52.2)(tslib@2.8.1)(typescript@5.9.2)': + '@rollup/plugin-typescript@12.1.4(rollup@4.52.5)(tslib@2.8.1)(typescript@5.9.3)': dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.52.2) + '@rollup/pluginutils': 5.2.0(rollup@4.52.5) resolve: 1.22.10 - typescript: 5.9.2 + typescript: 5.9.3 optionalDependencies: - rollup: 4.52.2 + rollup: 4.52.5 tslib: 2.8.1 '@rollup/pluginutils@3.1.0(rollup@2.79.2)': @@ -21723,21 +22067,21 @@ snapshots: optionalDependencies: rollup: 2.79.2 - '@rollup/pluginutils@5.1.2(rollup@4.52.2)': + '@rollup/pluginutils@5.1.2(rollup@4.52.5)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: - rollup: 4.52.2 + rollup: 4.52.5 - '@rollup/pluginutils@5.2.0(rollup@4.52.2)': + '@rollup/pluginutils@5.2.0(rollup@4.52.5)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.3 optionalDependencies: - rollup: 4.52.2 + rollup: 4.52.5 '@rollup/pluginutils@5.3.0(rollup@2.79.2)': dependencies: @@ -21750,72 +22094,136 @@ snapshots: '@rollup/rollup-android-arm-eabi@4.52.2': optional: true + '@rollup/rollup-android-arm-eabi@4.52.5': + optional: true + '@rollup/rollup-android-arm64@4.52.2': optional: true + '@rollup/rollup-android-arm64@4.52.5': + optional: true + '@rollup/rollup-darwin-arm64@4.52.2': optional: true + '@rollup/rollup-darwin-arm64@4.52.5': + optional: true + '@rollup/rollup-darwin-x64@4.52.2': optional: true + '@rollup/rollup-darwin-x64@4.52.5': + optional: true + '@rollup/rollup-freebsd-arm64@4.52.2': optional: true + '@rollup/rollup-freebsd-arm64@4.52.5': + optional: true + '@rollup/rollup-freebsd-x64@4.52.2': optional: true + '@rollup/rollup-freebsd-x64@4.52.5': + optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.52.2': optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.52.5': + optional: true + '@rollup/rollup-linux-arm-musleabihf@4.52.2': optional: true + '@rollup/rollup-linux-arm-musleabihf@4.52.5': + optional: true + '@rollup/rollup-linux-arm64-gnu@4.52.2': optional: true + '@rollup/rollup-linux-arm64-gnu@4.52.5': + optional: true + '@rollup/rollup-linux-arm64-musl@4.52.2': optional: true + '@rollup/rollup-linux-arm64-musl@4.52.5': + optional: true + '@rollup/rollup-linux-loong64-gnu@4.52.2': optional: true + '@rollup/rollup-linux-loong64-gnu@4.52.5': + optional: true + '@rollup/rollup-linux-ppc64-gnu@4.52.2': optional: true + '@rollup/rollup-linux-ppc64-gnu@4.52.5': + optional: true + '@rollup/rollup-linux-riscv64-gnu@4.52.2': optional: true + '@rollup/rollup-linux-riscv64-gnu@4.52.5': + optional: true + '@rollup/rollup-linux-riscv64-musl@4.52.2': optional: true + '@rollup/rollup-linux-riscv64-musl@4.52.5': + optional: true + '@rollup/rollup-linux-s390x-gnu@4.52.2': optional: true + '@rollup/rollup-linux-s390x-gnu@4.52.5': + optional: true + '@rollup/rollup-linux-x64-gnu@4.52.2': optional: true + '@rollup/rollup-linux-x64-gnu@4.52.5': + optional: true + '@rollup/rollup-linux-x64-musl@4.52.2': optional: true + '@rollup/rollup-linux-x64-musl@4.52.5': + optional: true + '@rollup/rollup-openharmony-arm64@4.52.2': optional: true + '@rollup/rollup-openharmony-arm64@4.52.5': + optional: true + '@rollup/rollup-win32-arm64-msvc@4.52.2': optional: true + '@rollup/rollup-win32-arm64-msvc@4.52.5': + optional: true + '@rollup/rollup-win32-ia32-msvc@4.52.2': optional: true + '@rollup/rollup-win32-ia32-msvc@4.52.5': + optional: true + '@rollup/rollup-win32-x64-gnu@4.52.2': optional: true + '@rollup/rollup-win32-x64-gnu@4.52.5': + optional: true + '@rollup/rollup-win32-x64-msvc@4.52.2': optional: true - '@rushstack/eslint-patch@1.12.0': {} + '@rollup/rollup-win32-x64-msvc@4.52.5': + optional: true - '@rushstack/eslint-patch@1.3.3': {} + '@rushstack/eslint-patch@1.14.0': {} '@scarf/scarf@1.4.0': {} @@ -22127,7 +22535,7 @@ snapshots: magic-string: 0.25.9 string.prototype.matchall: 4.0.12 - '@sveltejs/vite-plugin-svelte@1.4.0(svelte@3.59.2)(vite@3.2.11(@types/node@24.5.2)(sass@1.93.2)(terser@5.39.2))': + '@sveltejs/vite-plugin-svelte@1.4.0(svelte@3.59.2)(vite@3.2.11(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2))': dependencies: debug: 4.3.7 deepmerge: 4.3.1 @@ -22135,8 +22543,8 @@ snapshots: magic-string: 0.26.7 svelte: 3.59.2 svelte-hmr: 0.15.3(svelte@3.59.2) - vite: 3.2.11(@types/node@24.5.2)(sass@1.93.2)(terser@5.39.2) - vitefu: 0.2.5(vite@3.2.11(@types/node@24.5.2)(sass@1.93.2)(terser@5.39.2)) + vite: 3.2.11(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2) + vitefu: 0.2.5(vite@3.2.11(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2)) transitivePeerDependencies: - supports-color @@ -22345,32 +22753,32 @@ snapshots: '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.28.4 - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 '@types/babel__template@7.4.4': dependencies: '@babel/parser': 7.28.4 - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 '@types/bcrypt@6.0.0': dependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 24.5.2 + '@types/node': 24.9.1 '@types/caseless@0.12.5': {} @@ -22382,11 +22790,11 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 '@types/conventional-commits-parser@5.0.1': dependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 '@types/cookie-parser@1.4.9(@types/express@5.0.3)': dependencies: @@ -22396,7 +22804,7 @@ snapshots: '@types/cors@2.8.19': dependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 '@types/crypto-js@4.2.2': {} @@ -22430,14 +22838,14 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 '@types/express-serve-static-core@5.0.6': dependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -22461,7 +22869,7 @@ snapshots: dependencies: '@hapi/boom': 9.1.4 '@types/crypto-js': 4.2.2 - '@types/node': 24.5.2 + '@types/node': 24.9.1 '@types/request': 2.48.12 '@types/http-errors@2.0.4': {} @@ -22487,13 +22895,14 @@ snapshots: '@types/json-schema@7.0.9': {} - '@types/jsonwebtoken@9.0.6': + '@types/jsonwebtoken@9.0.10': dependencies: - '@types/node': 24.5.2 + '@types/ms': 2.1.0 + '@types/node': 24.9.1 - '@types/jsonwebtoken@9.0.7': + '@types/jsonwebtoken@9.0.6': dependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 '@types/linkify-it@5.0.0': {} @@ -22534,27 +22943,19 @@ snapshots: '@types/node-fetch@2.6.13': dependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 form-data: 4.0.4 '@types/node@17.0.45': {} - '@types/node@18.18.8': - dependencies: - undici-types: 5.26.5 - - '@types/node@24.3.0': + '@types/node@24.9.1': dependencies: - undici-types: 7.10.0 + undici-types: 7.16.0 - '@types/node@24.5.2': - dependencies: - undici-types: 7.12.0 - - '@types/nodemailer@7.0.1': + '@types/nodemailer@7.0.2': dependencies: '@aws-sdk/client-sesv2': 3.872.0 - '@types/node': 24.5.2 + '@types/node': 24.9.1 transitivePeerDependencies: - aws-crt @@ -22562,13 +22963,13 @@ snapshots: '@types/oauth@0.9.4': dependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 '@types/paho-mqtt@1.0.10': {} '@types/papaparse@5.3.16': dependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 '@types/passport-github2@1.2.9': dependencies: @@ -22608,7 +23009,7 @@ snapshots: '@types/postman-collection@3.5.11': dependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 '@types/pug@2.0.10': optional: true @@ -22624,7 +23025,7 @@ snapshots: '@types/request@2.48.12': dependencies: '@types/caseless': 0.12.5 - '@types/node': 24.5.2 + '@types/node': 24.9.1 '@types/tough-cookie': 4.0.5 form-data: 4.0.4 @@ -22639,17 +23040,17 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 24.5.2 + '@types/node': 24.9.1 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 24.5.2 + '@types/node': 24.9.1 '@types/send': 0.17.4 - '@types/splitpanes@2.2.6(typescript@5.9.2)': + '@types/splitpanes@2.2.6(typescript@5.9.3)': dependencies: - vue: 3.5.22(typescript@5.9.2) + vue: 3.5.22(typescript@5.9.3) transitivePeerDependencies: - typescript @@ -22663,7 +23064,7 @@ snapshots: dependencies: '@types/cookiejar': 2.1.5 '@types/methods': 1.1.4 - '@types/node': 24.5.2 + '@types/node': 24.9.1 form-data: 4.0.4 '@types/supertest@6.0.3': @@ -22689,15 +23090,15 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 '@types/ws@8.5.10': dependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 '@types/ws@8.5.12': dependencies: - '@types/node': 18.18.8 + '@types/node': 24.9.1 '@types/yargs-parser@21.0.3': {} @@ -22705,179 +23106,217 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.47.0)(typescript@5.8.3))(eslint@8.47.0)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.47.0)(typescript@5.9.3))(eslint@8.47.0)(typescript@5.9.3)': dependencies: - '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.8.3) + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.9.3) '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.47.0)(typescript@5.8.3) - '@typescript-eslint/utils': 5.62.0(eslint@8.47.0)(typescript@5.8.3) + '@typescript-eslint/type-utils': 5.62.0(eslint@8.47.0)(typescript@5.9.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.47.0)(typescript@5.9.3) debug: 4.4.3(supports-color@8.1.1) eslint: 8.47.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare-lite: 1.4.0 - semver: 7.7.2 - tsutils: 3.21.0(typescript@5.8.3) + semver: 7.7.3 + tsutils: 3.21.0(typescript@5.9.3) optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.9.2))(eslint@8.57.0)(typescript@5.9.2)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.9.3))(eslint@8.57.0)(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.9.2) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.9.3) '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.0)(typescript@5.9.2) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.9.2) + '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.0)(typescript@5.9.3) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.9.3) '@typescript-eslint/visitor-keys': 7.18.0 eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.9.2) + ts-api-utils: 1.4.3(typescript@5.9.3) optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.44.1(@typescript-eslint/parser@8.44.1(eslint@8.47.0)(typescript@5.8.3))(eslint@8.47.0)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.44.1(@typescript-eslint/parser@8.44.1(eslint@8.47.0)(typescript@5.9.3))(eslint@8.47.0)(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.44.1(eslint@8.47.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.44.1(eslint@8.47.0)(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.44.1 - '@typescript-eslint/type-utils': 8.44.1(eslint@8.47.0)(typescript@5.8.3) - '@typescript-eslint/utils': 8.44.1(eslint@8.47.0)(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.44.1(eslint@8.47.0)(typescript@5.9.3) + '@typescript-eslint/utils': 8.44.1(eslint@8.47.0)(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.44.1 eslint: 8.47.0 graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.44.1(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.2))(eslint@8.57.0)(typescript@5.9.2)': + '@typescript-eslint/eslint-plugin@8.44.1(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.3))(eslint@8.57.0)(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.44.1(eslint@8.57.0)(typescript@5.9.2) + '@typescript-eslint/parser': 8.44.1(eslint@8.57.0)(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.44.1 - '@typescript-eslint/type-utils': 8.44.1(eslint@8.57.0)(typescript@5.9.2) - '@typescript-eslint/utils': 8.44.1(eslint@8.57.0)(typescript@5.9.2) + '@typescript-eslint/type-utils': 8.44.1(eslint@8.57.0)(typescript@5.9.3) + '@typescript-eslint/utils': 8.44.1(eslint@8.57.0)(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.44.1 eslint: 8.57.0 graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.9.2) - typescript: 5.9.2 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.44.1(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2)': + '@typescript-eslint/eslint-plugin@8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) - '@typescript-eslint/scope-manager': 8.44.1 - '@typescript-eslint/type-utils': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) - '@typescript-eslint/utils': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.44.1 - eslint: 9.36.0(jiti@2.6.0) + '@typescript-eslint/parser': 8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.46.1 + '@typescript-eslint/type-utils': 8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.46.1 + eslint: 9.37.0(jiti@2.6.0) + graphemer: 1.4.0 + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/eslint-plugin@8.46.2(@typescript-eslint/parser@8.46.2(eslint@8.57.0)(typescript@5.9.3))(eslint@8.57.0)(typescript@5.9.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.46.2(eslint@8.57.0)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.46.2 + '@typescript-eslint/type-utils': 8.46.2(eslint@8.57.0)(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.2(eslint@8.57.0)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.46.2 + eslint: 8.57.0 graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.9.2) - typescript: 5.9.2 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@5.62.0(eslint@8.47.0)(typescript@5.8.3)': + '@typescript-eslint/parser@5.62.0(eslint@8.47.0)(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.9.3) debug: 4.4.3(supports-color@8.1.1) eslint: 8.47.0 optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.9.2)': + '@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.3) '@typescript-eslint/visitor-keys': 7.18.0 debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.0 optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.44.1(eslint@8.47.0)(typescript@5.8.3)': + '@typescript-eslint/parser@8.44.1(eslint@8.47.0)(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 8.44.1 '@typescript-eslint/types': 8.44.1 - '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.44.1 debug: 4.4.3(supports-color@8.1.1) eslint: 8.47.0 - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.2)': + '@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 8.44.1 '@typescript-eslint/types': 8.44.1 - '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.44.1 debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.0 - typescript: 5.9.2 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2)': + '@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.44.1 - '@typescript-eslint/types': 8.44.1 - '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.44.1 + '@typescript-eslint/scope-manager': 8.46.1 + '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.46.1 debug: 4.4.3(supports-color@8.1.1) - eslint: 9.36.0(jiti@2.6.0) - typescript: 5.9.2 + eslint: 9.37.0(jiti@2.6.0) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.39.1(typescript@5.9.2)': + '@typescript-eslint/parser@8.46.2(eslint@8.57.0)(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.39.1(typescript@5.9.2) - '@typescript-eslint/types': 8.40.0 + '@typescript-eslint/scope-manager': 8.46.2 + '@typescript-eslint/types': 8.46.2 + '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.46.2 debug: 4.4.3(supports-color@8.1.1) - typescript: 5.9.2 + eslint: 8.57.0 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.44.1(typescript@5.8.3)': + '@typescript-eslint/project-service@8.39.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.44.1(typescript@5.8.3) - '@typescript-eslint/types': 8.44.1 + '@typescript-eslint/tsconfig-utils': 8.39.1(typescript@5.9.3) + '@typescript-eslint/types': 8.46.1 debug: 4.4.3(supports-color@8.1.1) - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.44.1(typescript@5.9.2)': + '@typescript-eslint/project-service@8.44.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.44.1(typescript@5.9.2) - '@typescript-eslint/types': 8.44.1 + '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3) + '@typescript-eslint/types': 8.46.1 + debug: 4.4.3(supports-color@8.1.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.46.1(typescript@5.9.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3) + '@typescript-eslint/types': 8.46.1 + debug: 4.4.3(supports-color@8.1.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.46.2(typescript@5.9.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.9.3) + '@typescript-eslint/types': 8.46.2 debug: 4.4.3(supports-color@8.1.1) - typescript: 5.9.2 + typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -22906,75 +23345,101 @@ snapshots: '@typescript-eslint/types': 8.44.1 '@typescript-eslint/visitor-keys': 8.44.1 - '@typescript-eslint/tsconfig-utils@8.39.1(typescript@5.9.2)': + '@typescript-eslint/scope-manager@8.46.1': dependencies: - typescript: 5.9.2 + '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/visitor-keys': 8.46.1 - '@typescript-eslint/tsconfig-utils@8.44.1(typescript@5.8.3)': + '@typescript-eslint/scope-manager@8.46.2': dependencies: - typescript: 5.8.3 + '@typescript-eslint/types': 8.46.2 + '@typescript-eslint/visitor-keys': 8.46.2 + + '@typescript-eslint/tsconfig-utils@8.39.1(typescript@5.9.3)': + dependencies: + typescript: 5.9.3 - '@typescript-eslint/tsconfig-utils@8.44.1(typescript@5.9.2)': + '@typescript-eslint/tsconfig-utils@8.44.1(typescript@5.9.3)': dependencies: - typescript: 5.9.2 + typescript: 5.9.3 - '@typescript-eslint/type-utils@5.62.0(eslint@8.47.0)(typescript@5.8.3)': + '@typescript-eslint/tsconfig-utils@8.46.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.8.3) - '@typescript-eslint/utils': 5.62.0(eslint@8.47.0)(typescript@5.8.3) + typescript: 5.9.3 + + '@typescript-eslint/tsconfig-utils@8.46.2(typescript@5.9.3)': + dependencies: + typescript: 5.9.3 + + '@typescript-eslint/type-utils@5.62.0(eslint@8.47.0)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.9.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.47.0)(typescript@5.9.3) debug: 4.4.3(supports-color@8.1.1) eslint: 8.47.0 - tsutils: 3.21.0(typescript@5.8.3) + tsutils: 3.21.0(typescript@5.9.3) optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@7.18.0(eslint@8.57.0)(typescript@5.9.2)': + '@typescript-eslint/type-utils@7.18.0(eslint@8.57.0)(typescript@5.9.3)': dependencies: - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.2) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.3) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.9.3) debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.0 - ts-api-utils: 1.4.3(typescript@5.9.2) + ts-api-utils: 1.4.3(typescript@5.9.3) optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.44.1(eslint@8.47.0)(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.44.1(eslint@8.47.0)(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 8.44.1 - '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.44.1(eslint@8.47.0)(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.44.1(eslint@8.47.0)(typescript@5.9.3) debug: 4.4.3(supports-color@8.1.1) eslint: 8.47.0 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.44.1(eslint@8.57.0)(typescript@5.9.2)': + '@typescript-eslint/type-utils@8.44.1(eslint@8.57.0)(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 8.44.1 - '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.2) - '@typescript-eslint/utils': 8.44.1(eslint@8.57.0)(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.44.1(eslint@8.57.0)(typescript@5.9.3) debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.0 - ts-api-utils: 2.1.0(typescript@5.9.2) - typescript: 5.9.2 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2)': + '@typescript-eslint/type-utils@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.44.1 - '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.2) - '@typescript-eslint/utils': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) + '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.3) + debug: 4.4.3(supports-color@8.1.1) + eslint: 9.37.0(jiti@2.6.0) + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/type-utils@8.46.2(eslint@8.57.0)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 8.46.2 + '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.2(eslint@8.57.0)(typescript@5.9.3) debug: 4.4.3(supports-color@8.1.1) - eslint: 9.36.0(jiti@2.6.0) - ts-api-utils: 2.1.0(typescript@5.9.2) - typescript: 5.9.2 + eslint: 8.57.0 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -22986,25 +23451,27 @@ snapshots: '@typescript-eslint/types@8.39.1': {} - '@typescript-eslint/types@8.40.0': {} - '@typescript-eslint/types@8.44.1': {} - '@typescript-eslint/typescript-estree@5.62.0(typescript@5.8.3)': + '@typescript-eslint/types@8.46.1': {} + + '@typescript-eslint/types@8.46.2': {} + + '@typescript-eslint/typescript-estree@5.62.0(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 debug: 4.4.3(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 - semver: 7.7.2 - tsutils: 3.21.0(typescript@5.8.3) + semver: 7.7.3 + tsutils: 3.21.0(typescript@5.9.3) optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@7.18.0(typescript@5.9.2)': + '@typescript-eslint/typescript-estree@7.18.0(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 @@ -23012,131 +23479,158 @@ snapshots: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.2 - ts-api-utils: 1.4.3(typescript@5.9.2) + semver: 7.7.3 + ts-api-utils: 1.4.3(typescript@5.9.3) optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.31.0(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.31.0(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 8.31.0 '@typescript-eslint/visitor-keys': 8.31.0 - debug: 4.4.0 + debug: 4.4.3(supports-color@8.1.1) fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.2 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + semver: 7.7.3 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.39.1(typescript@5.9.2)': + '@typescript-eslint/typescript-estree@8.39.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.39.1(typescript@5.9.2) - '@typescript-eslint/tsconfig-utils': 8.39.1(typescript@5.9.2) + '@typescript-eslint/project-service': 8.39.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.39.1(typescript@5.9.3) '@typescript-eslint/types': 8.39.1 '@typescript-eslint/visitor-keys': 8.39.1 debug: 4.4.1 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.2 - ts-api-utils: 2.1.0(typescript@5.9.2) - typescript: 5.9.2 + semver: 7.7.3 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.44.1(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.44.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.44.1(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.44.1(typescript@5.8.3) + '@typescript-eslint/project-service': 8.44.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.44.1(typescript@5.9.3) '@typescript-eslint/types': 8.44.1 '@typescript-eslint/visitor-keys': 8.44.1 debug: 4.4.3(supports-color@8.1.1) fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.2 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + semver: 7.7.3 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.44.1(typescript@5.9.2)': + '@typescript-eslint/typescript-estree@8.46.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.44.1(typescript@5.9.2) - '@typescript-eslint/tsconfig-utils': 8.44.1(typescript@5.9.2) - '@typescript-eslint/types': 8.44.1 - '@typescript-eslint/visitor-keys': 8.44.1 + '@typescript-eslint/project-service': 8.46.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3) + '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/visitor-keys': 8.46.1 debug: 4.4.3(supports-color@8.1.1) fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.2 - ts-api-utils: 2.1.0(typescript@5.9.2) - typescript: 5.9.2 + semver: 7.7.3 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@5.62.0(eslint@8.47.0)(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.46.2(typescript@5.9.3)': + dependencies: + '@typescript-eslint/project-service': 8.46.2(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.9.3) + '@typescript-eslint/types': 8.46.2 + '@typescript-eslint/visitor-keys': 8.46.2 + debug: 4.4.3(supports-color@8.1.1) + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.3 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@5.62.0(eslint@8.47.0)(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@8.47.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.9.3) eslint: 8.47.0 eslint-scope: 5.1.1 - semver: 7.7.2 + semver: 7.7.3 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@7.18.0(eslint@8.57.0)(typescript@5.9.2)': + '@typescript-eslint/utils@7.18.0(eslint@8.57.0)(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.0) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.3) eslint: 8.57.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.44.1(eslint@8.47.0)(typescript@5.8.3)': + '@typescript-eslint/utils@8.44.1(eslint@8.47.0)(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@8.47.0) '@typescript-eslint/scope-manager': 8.44.1 '@typescript-eslint/types': 8.44.1 - '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.3) eslint: 8.47.0 - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.44.1(eslint@8.57.0)(typescript@5.9.2)': + '@typescript-eslint/utils@8.44.1(eslint@8.57.0)(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.0) '@typescript-eslint/scope-manager': 8.44.1 '@typescript-eslint/types': 8.44.1 - '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.3) eslint: 8.57.0 - typescript: 5.9.2 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2)': + '@typescript-eslint/utils@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.6.0)) - '@typescript-eslint/scope-manager': 8.44.1 - '@typescript-eslint/types': 8.44.1 - '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.2) - eslint: 9.36.0(jiti@2.6.0) - typescript: 5.9.2 + '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.0)) + '@typescript-eslint/scope-manager': 8.46.1 + '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) + eslint: 9.37.0(jiti@2.6.0) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.46.2(eslint@8.57.0)(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.0) + '@typescript-eslint/scope-manager': 8.46.2 + '@typescript-eslint/types': 8.46.2 + '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3) + eslint: 8.57.0 + typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -23165,13 +23659,23 @@ snapshots: '@typescript-eslint/types': 8.44.1 eslint-visitor-keys: 4.2.1 + '@typescript-eslint/visitor-keys@8.46.1': + dependencies: + '@typescript-eslint/types': 8.46.1 + eslint-visitor-keys: 4.2.1 + + '@typescript-eslint/visitor-keys@8.46.2': + dependencies: + '@typescript-eslint/types': 8.46.2 + eslint-visitor-keys: 4.2.1 + '@ungap/structured-clone@1.3.0': {} - '@unhead/vue@2.0.17(vue@3.5.22(typescript@5.9.2))': + '@unhead/vue@2.0.19(vue@3.5.22(typescript@5.9.3))': dependencies: hookable: 5.5.3 - unhead: 2.0.17 - vue: 3.5.22(typescript@5.9.2) + unhead: 2.0.19 + vue: 3.5.22(typescript@5.9.3) '@unrs/resolver-binding-android-arm-eabi@1.11.1': optional: true @@ -23262,13 +23766,13 @@ snapshots: dependencies: graphql: 16.11.0 - '@urql/vue@2.0.0(@urql/core@6.0.1(graphql@16.11.0))(vue@3.5.22(typescript@5.9.2))': + '@urql/vue@2.0.0(@urql/core@6.0.1(graphql@16.11.0))(vue@3.5.22(typescript@5.9.3))': dependencies: '@urql/core': 6.0.1(graphql@16.11.0) - vue: 3.5.22(typescript@5.9.2) + vue: 3.5.22(typescript@5.9.3) wonka: 6.3.5 - '@vitejs/plugin-legacy@2.3.0(terser@5.39.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2))': + '@vitejs/plugin-legacy@2.3.0(terser@5.39.2)(vite@4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2))': dependencies: '@babel/standalone': 7.24.5 core-js: 3.38.1 @@ -23276,9 +23780,9 @@ snapshots: regenerator-runtime: 0.13.11 systemjs: 6.15.1 terser: 5.39.2 - vite: 4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2) + vite: 4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2) - '@vitejs/plugin-legacy@2.3.0(terser@5.39.2)(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))': + '@vitejs/plugin-legacy@2.3.0(terser@5.39.2)(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))': dependencies: '@babel/standalone': 7.24.5 core-js: 3.38.1 @@ -23286,9 +23790,9 @@ snapshots: regenerator-runtime: 0.13.11 systemjs: 6.15.1 terser: 5.39.2 - vite: 6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite: 6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - '@vitejs/plugin-legacy@2.3.0(terser@5.39.2)(vite@6.3.6(@types/node@24.3.0)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))': + '@vitejs/plugin-legacy@2.3.0(terser@5.39.2)(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))': dependencies: '@babel/standalone': 7.24.5 core-js: 3.38.1 @@ -23296,9 +23800,9 @@ snapshots: regenerator-runtime: 0.13.11 systemjs: 6.15.1 terser: 5.39.2 - vite: 6.3.6(@types/node@24.3.0)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite: 6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - '@vitejs/plugin-legacy@2.3.0(terser@5.39.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))': + '@vitejs/plugin-legacy@2.3.0(terser@5.39.2)(vite@7.1.2(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))': dependencies: '@babel/standalone': 7.24.5 core-js: 3.38.1 @@ -23306,19 +23810,9 @@ snapshots: regenerator-runtime: 0.13.11 systemjs: 6.15.1 terser: 5.39.2 - vite: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite: 7.1.2(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - '@vitejs/plugin-legacy@2.3.0(terser@5.39.2)(vite@7.1.2(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))': - dependencies: - '@babel/standalone': 7.24.5 - core-js: 3.38.1 - magic-string: 0.26.7 - regenerator-runtime: 0.13.11 - systemjs: 6.15.1 - terser: 5.39.2 - vite: 7.1.2(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - - '@vitejs/plugin-legacy@5.4.2(terser@5.39.2)(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))': + '@vitejs/plugin-legacy@5.4.2(terser@5.39.2)(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))': dependencies: '@babel/core': 7.25.7 '@babel/preset-env': 7.25.7(@babel/core@7.25.7) @@ -23329,29 +23823,24 @@ snapshots: regenerator-runtime: 0.14.1 systemjs: 6.15.1 terser: 5.39.2 - vite: 6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite: 6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@4.3.1(vite@4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2))(vue@3.5.22(typescript@5.8.3))': + '@vitejs/plugin-vue@4.3.1(vite@4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2))(vue@3.5.22(typescript@5.9.3))': dependencies: - vite: 4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2) - vue: 3.5.22(typescript@5.8.3) + vite: 4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2) + vue: 3.5.22(typescript@5.9.3) - '@vitejs/plugin-vue@5.1.4(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2))': + '@vitejs/plugin-vue@5.1.4(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': dependencies: - vite: 6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - vue: 3.5.22(typescript@5.9.2) + vite: 6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vue: 3.5.22(typescript@5.9.3) - '@vitejs/plugin-vue@5.1.4(vite@6.3.6(@types/node@24.3.0)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2))': + '@vitejs/plugin-vue@5.1.4(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': dependencies: - vite: 6.3.6(@types/node@24.3.0)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - vue: 3.5.22(typescript@5.9.2) - - '@vitejs/plugin-vue@5.1.4(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2))': - dependencies: - vite: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - vue: 3.5.22(typescript@5.9.2) + vite: 6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vue: 3.5.22(typescript@5.9.3) '@vitest/expect@3.2.4': dependencies: @@ -23361,21 +23850,13 @@ snapshots: chai: 5.2.1 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@6.3.6(@types/node@24.3.0)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.3.6(@types/node@24.3.0)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - - '@vitest/mocker@3.2.4(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))': - dependencies: - '@vitest/spy': 3.2.4 - estree-walker: 3.0.3 - magic-string: 0.30.17 - optionalDependencies: - vite: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite: 6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -23478,44 +23959,43 @@ snapshots: '@vue/devtools-api@6.6.4': {} - '@vue/eslint-config-typescript@11.0.3(eslint-plugin-vue@10.5.0(@typescript-eslint/parser@8.44.1(eslint@8.47.0)(typescript@5.8.3))(eslint@8.47.0)(vue-eslint-parser@10.2.0(eslint@8.47.0)))(eslint@8.47.0)(typescript@5.8.3)': + '@vue/eslint-config-typescript@11.0.3(eslint-plugin-vue@10.5.1(@typescript-eslint/parser@8.44.1(eslint@8.47.0)(typescript@5.9.3))(eslint@8.47.0)(vue-eslint-parser@10.2.0(eslint@8.47.0)))(eslint@8.47.0)(typescript@5.9.3)': dependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.47.0)(typescript@5.8.3))(eslint@8.47.0)(typescript@5.8.3) - '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.47.0)(typescript@5.9.3))(eslint@8.47.0)(typescript@5.9.3) + '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.9.3) eslint: 8.47.0 - eslint-plugin-vue: 10.5.0(@typescript-eslint/parser@8.44.1(eslint@8.47.0)(typescript@5.8.3))(eslint@8.47.0)(vue-eslint-parser@10.2.0(eslint@8.47.0)) + eslint-plugin-vue: 10.5.1(@typescript-eslint/parser@8.44.1(eslint@8.47.0)(typescript@5.9.3))(eslint@8.47.0)(vue-eslint-parser@10.2.0(eslint@8.47.0)) vue-eslint-parser: 9.4.3(eslint@8.47.0) optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@vue/eslint-config-typescript@13.0.0(eslint-plugin-vue@10.5.0(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.2))(eslint@8.57.0)(vue-eslint-parser@10.2.0(eslint@8.57.0)))(eslint@8.57.0)(typescript@5.9.2)': + '@vue/eslint-config-typescript@13.0.0(eslint-plugin-vue@10.5.1(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.3))(eslint@8.57.0)(vue-eslint-parser@10.2.0(eslint@8.57.0)))(eslint@8.57.0)(typescript@5.9.3)': dependencies: - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.9.2))(eslint@8.57.0)(typescript@5.9.2) - '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.9.2) + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.9.3))(eslint@8.57.0)(typescript@5.9.3) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.9.3) eslint: 8.57.0 - eslint-plugin-vue: 10.5.0(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.2))(eslint@8.57.0)(vue-eslint-parser@10.2.0(eslint@8.57.0)) + eslint-plugin-vue: 10.5.1(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.3))(eslint@8.57.0)(vue-eslint-parser@10.2.0(eslint@8.57.0)) vue-eslint-parser: 9.4.3(eslint@8.57.0) optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@vue/language-core@1.8.8(typescript@5.8.3)': + '@vue/eslint-config-typescript@13.0.0(eslint-plugin-vue@10.5.1(@typescript-eslint/parser@8.46.2(eslint@8.57.0)(typescript@5.9.3))(eslint@8.57.0)(vue-eslint-parser@10.2.0(eslint@8.57.0)))(eslint@8.57.0)(typescript@5.9.3)': dependencies: - '@volar/language-core': 1.10.10 - '@volar/source-map': 1.10.10 - '@vue/compiler-dom': 3.5.19 - '@vue/reactivity': 3.5.19 - '@vue/shared': 3.5.19 - minimatch: 9.0.5 - muggle-string: 0.3.1 - vue-template-compiler: 2.7.16 + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.9.3))(eslint@8.57.0)(typescript@5.9.3) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.9.3) + eslint: 8.57.0 + eslint-plugin-vue: 10.5.1(@typescript-eslint/parser@8.46.2(eslint@8.57.0)(typescript@5.9.3))(eslint@8.57.0)(vue-eslint-parser@10.2.0(eslint@8.57.0)) + vue-eslint-parser: 9.4.3(eslint@8.57.0) optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color - '@vue/language-core@1.8.8(typescript@5.9.2)': + '@vue/language-core@1.8.8(typescript@5.9.3)': dependencies: '@volar/language-core': 1.10.10 '@volar/source-map': 1.10.10 @@ -23526,9 +24006,9 @@ snapshots: muggle-string: 0.3.1 vue-template-compiler: 2.7.16 optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 - '@vue/language-core@2.1.6(typescript@5.9.2)': + '@vue/language-core@2.1.6(typescript@5.9.3)': dependencies: '@volar/language-core': 2.4.22 '@vue/compiler-dom': 3.5.19 @@ -23539,9 +24019,9 @@ snapshots: muggle-string: 0.4.1 path-browserify: 1.0.1 optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 - '@vue/language-core@2.2.0(typescript@5.9.2)': + '@vue/language-core@2.2.0(typescript@5.9.3)': dependencies: '@volar/language-core': 2.4.22 '@vue/compiler-dom': 3.5.19 @@ -23552,7 +24032,7 @@ snapshots: muggle-string: 0.4.1 path-browserify: 1.0.1 optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 '@vue/reactivity@3.5.19': dependencies: @@ -23574,61 +24054,48 @@ snapshots: '@vue/shared': 3.5.22 csstype: 3.1.3 - '@vue/server-renderer@3.5.22(vue@3.5.22(typescript@5.8.3))': - dependencies: - '@vue/compiler-ssr': 3.5.22 - '@vue/shared': 3.5.22 - vue: 3.5.22(typescript@5.8.3) - - '@vue/server-renderer@3.5.22(vue@3.5.22(typescript@5.9.2))': + '@vue/server-renderer@3.5.22(vue@3.5.22(typescript@5.9.3))': dependencies: '@vue/compiler-ssr': 3.5.22 '@vue/shared': 3.5.22 - vue: 3.5.22(typescript@5.9.2) + vue: 3.5.22(typescript@5.9.3) '@vue/shared@3.5.19': {} '@vue/shared@3.5.22': {} - '@vue/typescript@1.8.8(typescript@5.8.3)': - dependencies: - '@volar/typescript': 1.10.10 - '@vue/language-core': 1.8.8(typescript@5.8.3) - transitivePeerDependencies: - - typescript - - '@vue/typescript@1.8.8(typescript@5.9.2)': + '@vue/typescript@1.8.8(typescript@5.9.3)': dependencies: '@volar/typescript': 1.10.10 - '@vue/language-core': 1.8.8(typescript@5.9.2) + '@vue/language-core': 1.8.8(typescript@5.9.3) transitivePeerDependencies: - typescript - '@vueuse/core@10.5.0(vue@3.5.22(typescript@5.8.3))': + '@vueuse/core@10.5.0(vue@3.5.22(typescript@5.9.3))': dependencies: '@types/web-bluetooth': 0.0.18 '@vueuse/metadata': 10.5.0 - '@vueuse/shared': 10.5.0(vue@3.5.22(typescript@5.8.3)) - vue-demi: 0.14.10(vue@3.5.22(typescript@5.8.3)) + '@vueuse/shared': 10.5.0(vue@3.5.22(typescript@5.9.3)) + vue-demi: 0.14.10(vue@3.5.22(typescript@5.9.3)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/core@13.7.0(vue@3.5.22(typescript@5.9.2))': + '@vueuse/core@13.7.0(vue@3.5.22(typescript@5.9.3))': dependencies: '@types/web-bluetooth': 0.0.21 '@vueuse/metadata': 13.7.0 - '@vueuse/shared': 13.7.0(vue@3.5.22(typescript@5.9.2)) - vue: 3.5.22(typescript@5.9.2) + '@vueuse/shared': 13.7.0(vue@3.5.22(typescript@5.9.3)) + vue: 3.5.22(typescript@5.9.3) - '@vueuse/core@8.9.4(vue@3.5.22(typescript@5.9.2))': + '@vueuse/core@8.9.4(vue@3.5.22(typescript@5.9.3))': dependencies: '@types/web-bluetooth': 0.0.14 '@vueuse/metadata': 8.9.4 - '@vueuse/shared': 8.9.4(vue@3.5.22(typescript@5.9.2)) - vue-demi: 0.14.10(vue@3.5.22(typescript@5.9.2)) + '@vueuse/shared': 8.9.4(vue@3.5.22(typescript@5.9.3)) + vue-demi: 0.14.10(vue@3.5.22(typescript@5.9.3)) optionalDependencies: - vue: 3.5.22(typescript@5.9.2) + vue: 3.5.22(typescript@5.9.3) '@vueuse/metadata@10.5.0': {} @@ -23636,22 +24103,22 @@ snapshots: '@vueuse/metadata@8.9.4': {} - '@vueuse/shared@10.5.0(vue@3.5.22(typescript@5.8.3))': + '@vueuse/shared@10.5.0(vue@3.5.22(typescript@5.9.3))': dependencies: - vue-demi: 0.14.10(vue@3.5.22(typescript@5.8.3)) + vue-demi: 0.14.10(vue@3.5.22(typescript@5.9.3)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/shared@13.7.0(vue@3.5.22(typescript@5.9.2))': + '@vueuse/shared@13.7.0(vue@3.5.22(typescript@5.9.3))': dependencies: - vue: 3.5.22(typescript@5.9.2) + vue: 3.5.22(typescript@5.9.3) - '@vueuse/shared@8.9.4(vue@3.5.22(typescript@5.9.2))': + '@vueuse/shared@8.9.4(vue@3.5.22(typescript@5.9.3))': dependencies: - vue-demi: 0.14.10(vue@3.5.22(typescript@5.9.2)) + vue-demi: 0.14.10(vue@3.5.22(typescript@5.9.3)) optionalDependencies: - vue: 3.5.22(typescript@5.9.2) + vue: 3.5.22(typescript@5.9.3) '@webassemblyjs/ast@1.14.1': dependencies: @@ -23882,7 +24349,7 @@ snapshots: ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.0.6 + fast-uri: 3.1.0 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -23960,7 +24427,7 @@ snapshots: argon2@0.44.0: dependencies: '@phc/format': 1.0.0 - cross-env: 10.0.0 + cross-env: 10.1.0 node-addon-api: 8.5.0 node-gyp-build: 4.8.4 @@ -24082,34 +24549,20 @@ snapshots: transitivePeerDependencies: - debug - babel-jest@30.1.2(@babel/core@7.28.3): - dependencies: - '@babel/core': 7.28.3 - '@jest/transform': 30.1.2 - '@types/babel__core': 7.20.5 - babel-plugin-istanbul: 7.0.0 - babel-preset-jest: 30.0.1(@babel/core@7.28.3) - chalk: 4.1.2 - graceful-fs: 4.2.11 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - - babel-jest@30.1.2(@babel/core@7.28.4): + babel-jest@30.2.0(@babel/core@7.28.4): dependencies: '@babel/core': 7.28.4 - '@jest/transform': 30.1.2 + '@jest/transform': 30.2.0 '@types/babel__core': 7.20.5 - babel-plugin-istanbul: 7.0.0 - babel-preset-jest: 30.0.1(@babel/core@7.28.4) + babel-plugin-istanbul: 7.0.1 + babel-preset-jest: 30.2.0(@babel/core@7.28.4) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 transitivePeerDependencies: - supports-color - optional: true - babel-plugin-istanbul@7.0.0: + babel-plugin-istanbul@7.0.1: dependencies: '@babel/helper-plugin-utils': 7.27.1 '@istanbuljs/load-nyc-config': 1.1.0 @@ -24119,10 +24572,8 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-jest-hoist@30.0.1: + babel-plugin-jest-hoist@30.2.0: dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.2 '@types/babel__core': 7.20.5 babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.25.7): @@ -24155,7 +24606,7 @@ snapshots: dependencies: '@babel/core': 7.28.4 '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4) - core-js-compat: 3.45.1 + core-js-compat: 3.46.0 transitivePeerDependencies: - supports-color @@ -24175,26 +24626,7 @@ snapshots: babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: {} - babel-preset-current-node-syntax@1.1.0(@babel/core@7.28.3): - dependencies: - '@babel/core': 7.28.3 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.3) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.3) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.3) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.3) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.3) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.3) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.3) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.3) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.3) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.3) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.3) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.3) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.3) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.3) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.3) - - babel-preset-current-node-syntax@1.1.0(@babel/core@7.28.4): + babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.4): dependencies: '@babel/core': 7.28.4 '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.4) @@ -24212,7 +24644,6 @@ snapshots: '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.4) '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.4) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.4) - optional: true babel-preset-fbjs@3.4.0(@babel/core@7.28.0): dependencies: @@ -24247,18 +24678,11 @@ snapshots: transitivePeerDependencies: - supports-color - babel-preset-jest@30.0.1(@babel/core@7.28.3): - dependencies: - '@babel/core': 7.28.3 - babel-plugin-jest-hoist: 30.0.1 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.28.3) - - babel-preset-jest@30.0.1(@babel/core@7.28.4): + babel-preset-jest@30.2.0(@babel/core@7.28.4): dependencies: '@babel/core': 7.28.4 - babel-plugin-jest-hoist: 30.0.1 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.28.4) - optional: true + babel-plugin-jest-hoist: 30.2.0 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4) babel-walk@3.0.0-canary-5: dependencies: @@ -24275,7 +24699,7 @@ snapshots: base64url@3.0.1: {} - baseline-browser-mapping@2.8.7: {} + baseline-browser-mapping@2.8.19: {} basic-auth@2.0.1: dependencies: @@ -24394,13 +24818,13 @@ snapshots: update-browserslist-db: 1.1.3(browserslist@4.25.3) optional: true - browserslist@4.26.2: + browserslist@4.26.3: dependencies: - baseline-browser-mapping: 2.8.7 - caniuse-lite: 1.0.30001745 - electron-to-chromium: 1.5.224 - node-releases: 2.0.21 - update-browserslist-db: 1.1.3(browserslist@4.26.2) + baseline-browser-mapping: 2.8.19 + caniuse-lite: 1.0.30001751 + electron-to-chromium: 1.5.238 + node-releases: 2.0.26 + update-browserslist-db: 1.1.3(browserslist@4.26.3) bs-logger@0.2.6: dependencies: @@ -24453,7 +24877,7 @@ snapshots: dotenv: 16.6.1 exsolve: 1.0.7 giget: 2.0.0 - jiti: 2.5.1 + jiti: 2.6.0 ohash: 2.0.11 pathe: 2.0.3 perfect-debounce: 1.0.0 @@ -24517,7 +24941,7 @@ snapshots: caniuse-lite@1.0.30001736: optional: true - caniuse-lite@1.0.30001745: {} + caniuse-lite@1.0.30001751: {} capital-case@1.0.4: dependencies: @@ -24769,13 +25193,11 @@ snapshots: commander@9.5.0: optional: true - comment-json@4.2.5: + comment-json@4.4.1: dependencies: array-timsort: 1.0.3 core-util-is: 1.0.3 esprima: 4.0.1 - has-own-prop: 2.0.0 - repeat-string: 1.6.1 common-tags@1.8.2: {} @@ -24867,17 +25289,17 @@ snapshots: cookiejar@2.1.4: {} - copy-anything@3.0.5: + copy-anything@4.0.5: dependencies: - is-what: 4.1.16 + is-what: 5.5.0 core-js-compat@3.38.1: dependencies: browserslist: 4.24.0 - core-js-compat@3.45.1: + core-js-compat@3.46.0: dependencies: - browserslist: 4.26.2 + browserslist: 4.26.3 core-js@3.38.1: {} @@ -24890,12 +25312,12 @@ snapshots: corser@2.0.1: {} - cosmiconfig-typescript-loader@6.1.0(@types/node@24.5.2)(cosmiconfig@9.0.0(typescript@5.9.2))(typescript@5.9.2): + cosmiconfig-typescript-loader@6.1.0(@types/node@24.9.1)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3): dependencies: - '@types/node': 24.5.2 - cosmiconfig: 9.0.0(typescript@5.9.2) + '@types/node': 24.9.1 + cosmiconfig: 9.0.0(typescript@5.9.3) jiti: 2.6.0 - typescript: 5.9.2 + typescript: 5.9.3 cosmiconfig@8.0.0: dependencies: @@ -24913,23 +25335,23 @@ snapshots: optionalDependencies: typescript: 5.8.3 - cosmiconfig@8.3.6(typescript@5.9.2): + cosmiconfig@8.3.6(typescript@5.9.3): dependencies: import-fresh: 3.3.1 js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 - cosmiconfig@9.0.0(typescript@5.9.2): + cosmiconfig@9.0.0(typescript@5.9.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 create-require@1.1.1: {} @@ -24940,15 +25362,11 @@ snapshots: '@types/luxon': 3.7.1 luxon: 3.7.2 - cross-env@10.0.0: + cross-env@10.1.0: dependencies: '@epic-web/invariant': 1.0.0 cross-spawn: 7.0.6 - cross-env@7.0.3: - dependencies: - cross-spawn: 7.0.6 - cross-fetch@3.2.0: dependencies: node-fetch: 2.7.0 @@ -25270,17 +25688,11 @@ snapshots: diff@7.0.0: {} - dioc@3.0.2(vue@3.5.22(typescript@5.8.3)): - dependencies: - rxjs: 7.8.2 - optionalDependencies: - vue: 3.5.22(typescript@5.8.3) - - dioc@3.0.2(vue@3.5.22(typescript@5.9.2)): + dioc@3.0.2(vue@3.5.22(typescript@5.9.3)): dependencies: rxjs: 7.8.2 optionalDependencies: - vue: 3.5.22(typescript@5.9.2) + vue: 3.5.22(typescript@5.9.3) dir-glob@3.0.1: dependencies: @@ -25364,7 +25776,7 @@ snapshots: dotenv@16.6.1: {} - dotenv@17.2.2: {} + dotenv@17.2.3: {} dset@3.1.4: {} @@ -25402,13 +25814,13 @@ snapshots: electron-to-chromium@1.5.207: optional: true - electron-to-chromium@1.5.224: {} + electron-to-chromium@1.5.238: {} electron-to-chromium@1.5.35: {} emittery@0.13.1: {} - emoji-regex@10.5.0: {} + emoji-regex@10.6.0: {} emoji-regex@8.0.0: {} @@ -25854,6 +26266,35 @@ snapshots: '@esbuild/win32-ia32': 0.25.10 '@esbuild/win32-x64': 0.25.10 + esbuild@0.25.11: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.11 + '@esbuild/android-arm': 0.25.11 + '@esbuild/android-arm64': 0.25.11 + '@esbuild/android-x64': 0.25.11 + '@esbuild/darwin-arm64': 0.25.11 + '@esbuild/darwin-x64': 0.25.11 + '@esbuild/freebsd-arm64': 0.25.11 + '@esbuild/freebsd-x64': 0.25.11 + '@esbuild/linux-arm': 0.25.11 + '@esbuild/linux-arm64': 0.25.11 + '@esbuild/linux-ia32': 0.25.11 + '@esbuild/linux-loong64': 0.25.11 + '@esbuild/linux-mips64el': 0.25.11 + '@esbuild/linux-ppc64': 0.25.11 + '@esbuild/linux-riscv64': 0.25.11 + '@esbuild/linux-s390x': 0.25.11 + '@esbuild/linux-x64': 0.25.11 + '@esbuild/netbsd-arm64': 0.25.11 + '@esbuild/netbsd-x64': 0.25.11 + '@esbuild/openbsd-arm64': 0.25.11 + '@esbuild/openbsd-x64': 0.25.11 + '@esbuild/openharmony-arm64': 0.25.11 + '@esbuild/sunos-x64': 0.25.11 + '@esbuild/win32-arm64': 0.25.11 + '@esbuild/win32-ia32': 0.25.11 + '@esbuild/win32-x64': 0.25.11 + esbuild@0.25.8: optionalDependencies: '@esbuild/aix-ppc64': 0.25.8 @@ -25940,9 +26381,9 @@ snapshots: dependencies: eslint: 8.57.0 - eslint-config-prettier@10.1.8(eslint@9.36.0(jiti@2.6.0)): + eslint-config-prettier@10.1.8(eslint@9.37.0(jiti@2.6.0)): dependencies: - eslint: 9.36.0(jiti@2.6.0) + eslint: 9.37.0(jiti@2.6.0) eslint-plugin-prettier@4.2.1(eslint@8.47.0)(prettier@3.6.2): dependencies: @@ -25960,41 +26401,54 @@ snapshots: '@types/eslint': 9.6.1 eslint-config-prettier: 10.1.8(eslint@8.57.0) - eslint-plugin-prettier@5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.36.0(jiti@2.6.0)))(eslint@9.36.0(jiti@2.6.0))(prettier@3.6.2): + eslint-plugin-prettier@5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0))(prettier@3.6.2): dependencies: - eslint: 9.36.0(jiti@2.6.0) + eslint: 9.37.0(jiti@2.6.0) prettier: 3.6.2 prettier-linter-helpers: 1.0.0 synckit: 0.11.11 optionalDependencies: '@types/eslint': 9.6.1 - eslint-config-prettier: 10.1.8(eslint@9.36.0(jiti@2.6.0)) + eslint-config-prettier: 10.1.8(eslint@9.37.0(jiti@2.6.0)) - eslint-plugin-vue@10.5.0(@typescript-eslint/parser@8.44.1(eslint@8.47.0)(typescript@5.8.3))(eslint@8.47.0)(vue-eslint-parser@10.2.0(eslint@8.47.0)): + eslint-plugin-vue@10.5.1(@typescript-eslint/parser@8.44.1(eslint@8.47.0)(typescript@5.9.3))(eslint@8.47.0)(vue-eslint-parser@10.2.0(eslint@8.47.0)): dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@8.47.0) eslint: 8.47.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.2 - semver: 7.7.2 + semver: 7.7.3 vue-eslint-parser: 10.2.0(eslint@8.47.0) xml-name-validator: 4.0.0 optionalDependencies: - '@typescript-eslint/parser': 8.44.1(eslint@8.47.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.44.1(eslint@8.47.0)(typescript@5.9.3) - eslint-plugin-vue@10.5.0(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.2))(eslint@8.57.0)(vue-eslint-parser@10.2.0(eslint@8.57.0)): + eslint-plugin-vue@10.5.1(@typescript-eslint/parser@8.44.1(eslint@8.57.0)(typescript@5.9.3))(eslint@8.57.0)(vue-eslint-parser@10.2.0(eslint@8.57.0)): dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.0) eslint: 8.57.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.2 - semver: 7.7.2 + semver: 7.7.3 vue-eslint-parser: 10.2.0(eslint@8.57.0) xml-name-validator: 4.0.0 optionalDependencies: - '@typescript-eslint/parser': 8.44.1(eslint@8.57.0)(typescript@5.9.2) + '@typescript-eslint/parser': 8.44.1(eslint@8.57.0)(typescript@5.9.3) + + eslint-plugin-vue@10.5.1(@typescript-eslint/parser@8.46.2(eslint@8.57.0)(typescript@5.9.3))(eslint@8.57.0)(vue-eslint-parser@10.2.0(eslint@8.57.0)): + dependencies: + '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.0) + eslint: 8.57.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.1.2 + semver: 7.7.3 + vue-eslint-parser: 10.2.0(eslint@8.57.0) + xml-name-validator: 4.0.0 + optionalDependencies: + '@typescript-eslint/parser': 8.46.2(eslint@8.57.0)(typescript@5.9.3) eslint-scope@5.1.1: dependencies: @@ -26100,16 +26554,16 @@ snapshots: transitivePeerDependencies: - supports-color - eslint@9.36.0(jiti@2.6.0): + eslint@9.37.0(jiti@2.6.0): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.6.0)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.0)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.21.0 - '@eslint/config-helpers': 0.3.1 - '@eslint/core': 0.15.2 + '@eslint/config-helpers': 0.4.0 + '@eslint/core': 0.16.0 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.36.0 - '@eslint/plugin-kit': 0.3.5 + '@eslint/js': 9.37.0 + '@eslint/plugin-kit': 0.4.0 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 @@ -26118,7 +26572,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.1 + debug: 4.4.3(supports-color@8.1.1) escape-string-regexp: 4.0.0 eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -26277,14 +26731,14 @@ snapshots: jest-mock: 30.0.5 jest-util: 30.0.5 - expect@30.1.2: + expect@30.2.0: dependencies: - '@jest/expect-utils': 30.1.2 + '@jest/expect-utils': 30.2.0 '@jest/get-type': 30.1.0 - jest-matcher-utils: 30.1.2 - jest-message-util: 30.1.0 - jest-mock: 30.0.5 - jest-util: 30.0.5 + jest-matcher-utils: 30.2.0 + jest-message-util: 30.2.0 + jest-mock: 30.2.0 + jest-util: 30.2.0 express-session@1.18.2: dependencies: @@ -26427,7 +26881,7 @@ snapshots: fast-safe-stringify@2.1.1: {} - fast-uri@3.0.6: {} + fast-uri@3.1.0: {} fast-url-parser@1.1.3: dependencies: @@ -26548,7 +27002,7 @@ snapshots: dependencies: magic-string: 0.30.17 mlly: 1.7.4 - rollup: 4.52.2 + rollup: 4.52.5 fixpack@4.0.0: dependencies: @@ -26606,7 +27060,7 @@ snapshots: minimatch: 3.1.2 node-abort-controller: 3.1.1 schema-utils: 3.3.0 - semver: 7.7.2 + semver: 7.7.3 tapable: 2.2.1 typescript: 5.8.3 webpack: 5.100.2(@swc/core@1.4.2) @@ -26657,12 +27111,6 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 - fs-extra@11.3.1: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.2.0 - universalify: 2.0.1 - fs-extra@9.1.0: dependencies: at-least-node: 1.0.0 @@ -26697,6 +27145,8 @@ snapshots: functions-have-names@1.2.3: {} + generator-function@2.0.1: {} + gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} @@ -26866,13 +27316,13 @@ snapshots: graphemer@1.4.0: {} - graphql-config@4.5.0(@types/node@24.5.2)(graphql@16.11.0): + graphql-config@4.5.0(@types/node@24.9.1)(graphql@16.11.0): dependencies: '@graphql-tools/graphql-file-loader': 7.5.17(graphql@16.11.0) '@graphql-tools/json-file-loader': 7.4.18(graphql@16.11.0) '@graphql-tools/load': 7.8.14(graphql@16.11.0) '@graphql-tools/merge': 8.4.2(graphql@16.11.0) - '@graphql-tools/url-loader': 7.17.18(@types/node@24.5.2)(graphql@16.11.0) + '@graphql-tools/url-loader': 7.17.18(@types/node@24.9.1)(graphql@16.11.0) '@graphql-tools/utils': 9.2.1(graphql@16.11.0) cosmiconfig: 8.0.0 graphql: 16.11.0 @@ -26886,15 +27336,15 @@ snapshots: - encoding - utf-8-validate - graphql-config@5.1.3(@types/node@18.18.8)(graphql@16.11.0)(typescript@5.8.3): + graphql-config@5.1.3(@types/node@24.9.1)(graphql@16.11.0)(typescript@5.9.3): dependencies: '@graphql-tools/graphql-file-loader': 8.0.1(graphql@16.11.0) '@graphql-tools/json-file-loader': 8.0.1(graphql@16.11.0) '@graphql-tools/load': 8.0.2(graphql@16.11.0) '@graphql-tools/merge': 9.0.24(graphql@16.11.0) - '@graphql-tools/url-loader': 8.0.2(@types/node@18.18.8)(graphql@16.11.0) + '@graphql-tools/url-loader': 8.0.2(@types/node@24.9.1)(graphql@16.11.0) '@graphql-tools/utils': 10.8.6(graphql@16.11.0) - cosmiconfig: 8.3.6(typescript@5.8.3) + cosmiconfig: 8.3.6(typescript@5.9.3) graphql: 16.11.0 jiti: 2.3.3 minimatch: 9.0.5 @@ -26907,15 +27357,15 @@ snapshots: - typescript - utf-8-validate - graphql-config@5.1.5(@types/node@24.5.2)(graphql@16.11.0)(typescript@5.9.2): + graphql-config@5.1.5(@types/node@24.9.1)(graphql@16.11.0)(typescript@5.9.3): dependencies: '@graphql-tools/graphql-file-loader': 8.0.22(graphql@16.11.0) '@graphql-tools/json-file-loader': 8.0.20(graphql@16.11.0) '@graphql-tools/load': 8.1.2(graphql@16.11.0) '@graphql-tools/merge': 9.1.1(graphql@16.11.0) - '@graphql-tools/url-loader': 8.0.33(@types/node@24.5.2)(graphql@16.11.0) + '@graphql-tools/url-loader': 8.0.33(@types/node@24.9.1)(graphql@16.11.0) '@graphql-tools/utils': 10.9.1(graphql@16.11.0) - cosmiconfig: 8.3.6(typescript@5.9.2) + cosmiconfig: 8.3.6(typescript@5.9.3) graphql: 16.11.0 jiti: 2.5.1 minimatch: 9.0.5 @@ -26931,13 +27381,13 @@ snapshots: - uWebSockets.js - utf-8-validate - graphql-language-service-interface@2.10.2(@types/node@24.5.2)(graphql@16.11.0): + graphql-language-service-interface@2.10.2(@types/node@24.9.1)(graphql@16.11.0): dependencies: graphql: 16.11.0 - graphql-config: 4.5.0(@types/node@24.5.2)(graphql@16.11.0) - graphql-language-service-parser: 1.10.4(@types/node@24.5.2)(graphql@16.11.0) - graphql-language-service-types: 1.8.7(@types/node@24.5.2)(graphql@16.11.0) - graphql-language-service-utils: 2.7.1(@types/node@24.5.2)(graphql@16.11.0) + graphql-config: 4.5.0(@types/node@24.9.1)(graphql@16.11.0) + graphql-language-service-parser: 1.10.4(@types/node@24.9.1)(graphql@16.11.0) + graphql-language-service-types: 1.8.7(@types/node@24.9.1)(graphql@16.11.0) + graphql-language-service-utils: 2.7.1(@types/node@24.9.1)(graphql@16.11.0) vscode-languageserver-types: 3.17.5 transitivePeerDependencies: - '@types/node' @@ -26946,10 +27396,10 @@ snapshots: - encoding - utf-8-validate - graphql-language-service-parser@1.10.4(@types/node@24.5.2)(graphql@16.11.0): + graphql-language-service-parser@1.10.4(@types/node@24.9.1)(graphql@16.11.0): dependencies: graphql: 16.11.0 - graphql-language-service-types: 1.8.7(@types/node@24.5.2)(graphql@16.11.0) + graphql-language-service-types: 1.8.7(@types/node@24.9.1)(graphql@16.11.0) transitivePeerDependencies: - '@types/node' - bufferutil @@ -26957,10 +27407,10 @@ snapshots: - encoding - utf-8-validate - graphql-language-service-types@1.8.7(@types/node@24.5.2)(graphql@16.11.0): + graphql-language-service-types@1.8.7(@types/node@24.9.1)(graphql@16.11.0): dependencies: graphql: 16.11.0 - graphql-config: 4.5.0(@types/node@24.5.2)(graphql@16.11.0) + graphql-config: 4.5.0(@types/node@24.9.1)(graphql@16.11.0) vscode-languageserver-types: 3.17.5 transitivePeerDependencies: - '@types/node' @@ -26969,11 +27419,11 @@ snapshots: - encoding - utf-8-validate - graphql-language-service-utils@2.7.1(@types/node@24.5.2)(graphql@16.11.0): + graphql-language-service-utils@2.7.1(@types/node@24.9.1)(graphql@16.11.0): dependencies: '@types/json-schema': 7.0.9 graphql: 16.11.0 - graphql-language-service-types: 1.8.7(@types/node@24.5.2)(graphql@16.11.0) + graphql-language-service-types: 1.8.7(@types/node@24.9.1)(graphql@16.11.0) nullthrows: 1.1.1 transitivePeerDependencies: - '@types/node' @@ -27020,12 +27470,6 @@ snapshots: dependencies: graphql: 16.11.0 - graphql-ws@6.0.4(graphql@16.11.0)(ws@8.17.1): - dependencies: - graphql: 16.11.0 - optionalDependencies: - ws: 8.17.1 - graphql-ws@6.0.6(graphql@16.11.0)(ws@8.17.1): dependencies: graphql: 16.11.0 @@ -27059,8 +27503,6 @@ snapshots: has-flag@4.0.0: {} - has-own-prop@2.0.0: {} - has-property-descriptors@1.0.2: dependencies: es-define-property: 1.0.1 @@ -27118,9 +27560,9 @@ snapshots: selderee: 0.11.0 optional: true - htmlnano@2.1.2(cssnano@7.1.1(postcss@8.5.6))(postcss@8.5.6)(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + htmlnano@2.1.2(cssnano@7.1.1(postcss@8.5.6))(postcss@8.5.6)(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: - cosmiconfig: 9.0.0(typescript@5.9.2) + cosmiconfig: 9.0.0(typescript@5.9.3) posthtml: 0.16.6 optionalDependencies: cssnano: 7.1.1(postcss@8.5.6) @@ -27295,9 +27737,9 @@ snapshots: through: 2.3.8 wrap-ansi: 6.2.0 - inquirer@8.2.7(@types/node@24.5.2): + inquirer@8.2.7(@types/node@24.9.1): dependencies: - '@inquirer/external-editor': 1.0.0(@types/node@24.5.2) + '@inquirer/external-editor': 1.0.0(@types/node@24.9.1) ansi-escapes: 4.3.2 chalk: 4.1.2 cli-cursor: 3.1.0 @@ -27476,9 +27918,10 @@ snapshots: dependencies: has-tostringtag: 1.0.2 - is-generator-function@1.1.0: + is-generator-function@1.1.2: dependencies: call-bound: 1.0.4 + generator-function: 2.0.1 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 @@ -27622,7 +28065,7 @@ snapshots: call-bind: 1.0.7 get-intrinsic: 1.3.0 - is-what@4.1.16: {} + is-what@5.5.0: {} is-windows@1.0.2: {} @@ -27658,11 +28101,11 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.4 '@babel/parser': 7.28.4 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 - semver: 7.7.2 + semver: 7.7.3 transitivePeerDependencies: - supports-color @@ -27674,7 +28117,7 @@ snapshots: istanbul-lib-source-maps@5.0.6: dependencies: - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 debug: 4.4.3(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: @@ -27712,31 +28155,31 @@ snapshots: filelist: 1.0.4 minimatch: 3.1.2 - jest-changed-files@30.0.5: + jest-changed-files@30.2.0: dependencies: execa: 5.1.1 - jest-util: 30.0.5 + jest-util: 30.2.0 p-limit: 3.1.0 - jest-circus@30.1.3: + jest-circus@30.2.0: dependencies: - '@jest/environment': 30.1.2 - '@jest/expect': 30.1.2 - '@jest/test-result': 30.1.3 - '@jest/types': 30.0.5 - '@types/node': 24.5.2 + '@jest/environment': 30.2.0 + '@jest/expect': 30.2.0 + '@jest/test-result': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 24.9.1 chalk: 4.1.2 co: 4.6.0 dedent: 1.6.0 is-generator-fn: 2.1.0 - jest-each: 30.1.0 - jest-matcher-utils: 30.1.2 - jest-message-util: 30.1.0 - jest-runtime: 30.1.3 - jest-snapshot: 30.1.2 - jest-util: 30.0.5 + jest-each: 30.2.0 + jest-matcher-utils: 30.2.0 + jest-message-util: 30.2.0 + jest-runtime: 30.2.0 + jest-snapshot: 30.2.0 + jest-util: 30.2.0 p-limit: 3.1.0 - pretty-format: 30.0.5 + pretty-format: 30.2.0 pure-rand: 7.0.1 slash: 3.0.0 stack-utils: 2.0.6 @@ -27744,17 +28187,17 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@30.1.3(@types/node@24.5.2)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2)): + jest-cli@30.2.0(@types/node@24.9.1)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)): dependencies: - '@jest/core': 30.1.3(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2)) - '@jest/test-result': 30.1.3 - '@jest/types': 30.0.5 + '@jest/core': 30.2.0(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)) + '@jest/test-result': 30.2.0 + '@jest/types': 30.2.0 chalk: 4.1.2 exit-x: 0.2.2 import-local: 3.2.0 - jest-config: 30.1.3(@types/node@24.5.2)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2)) - jest-util: 30.0.5 - jest-validate: 30.1.0 + jest-config: 30.2.0(@types/node@24.9.1)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)) + jest-util: 30.2.0 + jest-validate: 30.2.0 yargs: 17.7.2 transitivePeerDependencies: - '@types/node' @@ -27763,35 +28206,35 @@ snapshots: - supports-color - ts-node - jest-config@30.1.3(@types/node@24.5.2)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2)): + jest-config@30.2.0(@types/node@24.9.1)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)): dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.4 '@jest/get-type': 30.1.0 '@jest/pattern': 30.0.1 - '@jest/test-sequencer': 30.1.3 - '@jest/types': 30.0.5 - babel-jest: 30.1.2(@babel/core@7.28.3) + '@jest/test-sequencer': 30.2.0 + '@jest/types': 30.2.0 + babel-jest: 30.2.0(@babel/core@7.28.4) chalk: 4.1.2 ci-info: 4.3.0 deepmerge: 4.3.1 glob: 10.4.5 graceful-fs: 4.2.11 - jest-circus: 30.1.3 - jest-docblock: 30.0.1 - jest-environment-node: 30.1.2 + jest-circus: 30.2.0 + jest-docblock: 30.2.0 + jest-environment-node: 30.2.0 jest-regex-util: 30.0.1 - jest-resolve: 30.1.3 - jest-runner: 30.1.3 - jest-util: 30.0.5 - jest-validate: 30.1.0 + jest-resolve: 30.2.0 + jest-runner: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 micromatch: 4.0.8 parse-json: 5.2.0 - pretty-format: 30.0.5 + pretty-format: 30.2.0 slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 24.5.2 - ts-node: 10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2) + '@types/node': 24.9.1 + ts-node: 10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -27810,56 +28253,56 @@ snapshots: chalk: 4.1.2 pretty-format: 30.0.5 - jest-diff@30.1.2: + jest-diff@30.2.0: dependencies: '@jest/diff-sequences': 30.0.1 '@jest/get-type': 30.1.0 chalk: 4.1.2 - pretty-format: 30.0.5 + pretty-format: 30.2.0 - jest-docblock@30.0.1: + jest-docblock@30.2.0: dependencies: detect-newline: 3.1.0 - jest-each@30.1.0: + jest-each@30.2.0: dependencies: '@jest/get-type': 30.1.0 - '@jest/types': 30.0.5 + '@jest/types': 30.2.0 chalk: 4.1.2 - jest-util: 30.0.5 - pretty-format: 30.0.5 + jest-util: 30.2.0 + pretty-format: 30.2.0 - jest-environment-node@30.1.2: + jest-environment-node@30.2.0: dependencies: - '@jest/environment': 30.1.2 - '@jest/fake-timers': 30.1.2 - '@jest/types': 30.0.5 - '@types/node': 24.5.2 - jest-mock: 30.0.5 - jest-util: 30.0.5 - jest-validate: 30.1.0 + '@jest/environment': 30.2.0 + '@jest/fake-timers': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 24.9.1 + jest-mock: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 jest-get-type@29.6.3: {} - jest-haste-map@30.1.0: + jest-haste-map@30.2.0: dependencies: - '@jest/types': 30.0.5 - '@types/node': 24.5.2 + '@jest/types': 30.2.0 + '@types/node': 24.9.1 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 jest-regex-util: 30.0.1 - jest-util: 30.0.5 - jest-worker: 30.1.0 + jest-util: 30.2.0 + jest-worker: 30.2.0 micromatch: 4.0.8 walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 - jest-leak-detector@30.1.0: + jest-leak-detector@30.2.0: dependencies: '@jest/get-type': 30.1.0 - pretty-format: 30.0.5 + pretty-format: 30.2.0 jest-matcher-utils@29.7.0: dependencies: @@ -27875,12 +28318,12 @@ snapshots: jest-diff: 30.0.5 pretty-format: 30.0.5 - jest-matcher-utils@30.1.2: + jest-matcher-utils@30.2.0: dependencies: '@jest/get-type': 30.1.0 chalk: 4.1.2 - jest-diff: 30.1.2 - pretty-format: 30.0.5 + jest-diff: 30.2.0 + pretty-format: 30.2.0 jest-message-util@29.7.0: dependencies: @@ -27906,131 +28349,137 @@ snapshots: slash: 3.0.0 stack-utils: 2.0.6 - jest-message-util@30.1.0: + jest-message-util@30.2.0: dependencies: '@babel/code-frame': 7.27.1 - '@jest/types': 30.0.5 + '@jest/types': 30.2.0 '@types/stack-utils': 2.0.3 chalk: 4.1.2 graceful-fs: 4.2.11 micromatch: 4.0.8 - pretty-format: 30.0.5 + pretty-format: 30.2.0 slash: 3.0.0 stack-utils: 2.0.6 - jest-mock-extended@4.0.0(@jest/globals@30.1.2)(jest@30.1.3(@types/node@24.5.2)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2)))(typescript@5.9.2): + jest-mock-extended@4.0.0(@jest/globals@30.2.0)(jest@30.2.0(@types/node@24.9.1)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)))(typescript@5.9.3): dependencies: - '@jest/globals': 30.1.2 - jest: 30.1.3(@types/node@24.5.2)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2)) - ts-essentials: 10.0.2(typescript@5.9.2) - typescript: 5.9.2 + '@jest/globals': 30.2.0 + jest: 30.2.0(@types/node@24.9.1)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)) + ts-essentials: 10.0.2(typescript@5.9.3) + typescript: 5.9.3 jest-mock@30.0.5: dependencies: '@jest/types': 30.0.5 - '@types/node': 24.5.2 + '@types/node': 24.9.1 jest-util: 30.0.5 - jest-pnp-resolver@1.2.3(jest-resolve@30.1.3): + jest-mock@30.2.0: + dependencies: + '@jest/types': 30.2.0 + '@types/node': 24.9.1 + jest-util: 30.2.0 + + jest-pnp-resolver@1.2.3(jest-resolve@30.2.0): optionalDependencies: - jest-resolve: 30.1.3 + jest-resolve: 30.2.0 jest-regex-util@30.0.1: {} - jest-resolve-dependencies@30.1.3: + jest-resolve-dependencies@30.2.0: dependencies: jest-regex-util: 30.0.1 - jest-snapshot: 30.1.2 + jest-snapshot: 30.2.0 transitivePeerDependencies: - supports-color - jest-resolve@30.1.3: + jest-resolve@30.2.0: dependencies: chalk: 4.1.2 graceful-fs: 4.2.11 - jest-haste-map: 30.1.0 - jest-pnp-resolver: 1.2.3(jest-resolve@30.1.3) - jest-util: 30.0.5 - jest-validate: 30.1.0 + jest-haste-map: 30.2.0 + jest-pnp-resolver: 1.2.3(jest-resolve@30.2.0) + jest-util: 30.2.0 + jest-validate: 30.2.0 slash: 3.0.0 unrs-resolver: 1.11.1 - jest-runner@30.1.3: + jest-runner@30.2.0: dependencies: - '@jest/console': 30.1.2 - '@jest/environment': 30.1.2 - '@jest/test-result': 30.1.3 - '@jest/transform': 30.1.2 - '@jest/types': 30.0.5 - '@types/node': 24.5.2 + '@jest/console': 30.2.0 + '@jest/environment': 30.2.0 + '@jest/test-result': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 24.9.1 chalk: 4.1.2 emittery: 0.13.1 exit-x: 0.2.2 graceful-fs: 4.2.11 - jest-docblock: 30.0.1 - jest-environment-node: 30.1.2 - jest-haste-map: 30.1.0 - jest-leak-detector: 30.1.0 - jest-message-util: 30.1.0 - jest-resolve: 30.1.3 - jest-runtime: 30.1.3 - jest-util: 30.0.5 - jest-watcher: 30.1.3 - jest-worker: 30.1.0 + jest-docblock: 30.2.0 + jest-environment-node: 30.2.0 + jest-haste-map: 30.2.0 + jest-leak-detector: 30.2.0 + jest-message-util: 30.2.0 + jest-resolve: 30.2.0 + jest-runtime: 30.2.0 + jest-util: 30.2.0 + jest-watcher: 30.2.0 + jest-worker: 30.2.0 p-limit: 3.1.0 source-map-support: 0.5.13 transitivePeerDependencies: - supports-color - jest-runtime@30.1.3: + jest-runtime@30.2.0: dependencies: - '@jest/environment': 30.1.2 - '@jest/fake-timers': 30.1.2 - '@jest/globals': 30.1.2 + '@jest/environment': 30.2.0 + '@jest/fake-timers': 30.2.0 + '@jest/globals': 30.2.0 '@jest/source-map': 30.0.1 - '@jest/test-result': 30.1.3 - '@jest/transform': 30.1.2 - '@jest/types': 30.0.5 - '@types/node': 24.5.2 + '@jest/test-result': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 24.9.1 chalk: 4.1.2 cjs-module-lexer: 2.1.0 collect-v8-coverage: 1.0.2 glob: 10.4.5 graceful-fs: 4.2.11 - jest-haste-map: 30.1.0 - jest-message-util: 30.1.0 - jest-mock: 30.0.5 + jest-haste-map: 30.2.0 + jest-message-util: 30.2.0 + jest-mock: 30.2.0 jest-regex-util: 30.0.1 - jest-resolve: 30.1.3 - jest-snapshot: 30.1.2 - jest-util: 30.0.5 + jest-resolve: 30.2.0 + jest-snapshot: 30.2.0 + jest-util: 30.2.0 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: - supports-color - jest-snapshot@30.1.2: + jest-snapshot@30.2.0: dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.4 '@babel/generator': 7.28.3 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.3) - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.3) - '@babel/types': 7.28.2 - '@jest/expect-utils': 30.1.2 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) + '@babel/types': 7.28.4 + '@jest/expect-utils': 30.2.0 '@jest/get-type': 30.1.0 - '@jest/snapshot-utils': 30.1.2 - '@jest/transform': 30.1.2 - '@jest/types': 30.0.5 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.28.3) + '@jest/snapshot-utils': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4) chalk: 4.1.2 - expect: 30.1.2 + expect: 30.2.0 graceful-fs: 4.2.11 - jest-diff: 30.1.2 - jest-matcher-utils: 30.1.2 - jest-message-util: 30.1.0 - jest-util: 30.0.5 - pretty-format: 30.0.5 - semver: 7.7.2 + jest-diff: 30.2.0 + jest-matcher-utils: 30.2.0 + jest-message-util: 30.2.0 + jest-util: 30.2.0 + pretty-format: 30.2.0 + semver: 7.7.3 synckit: 0.11.11 transitivePeerDependencies: - supports-color @@ -28038,7 +28487,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 24.5.2 + '@types/node': 24.9.1 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -28047,52 +28496,61 @@ snapshots: jest-util@30.0.5: dependencies: '@jest/types': 30.0.5 - '@types/node': 24.5.2 + '@types/node': 24.9.1 + chalk: 4.1.2 + ci-info: 4.3.0 + graceful-fs: 4.2.11 + picomatch: 4.0.3 + + jest-util@30.2.0: + dependencies: + '@jest/types': 30.2.0 + '@types/node': 24.9.1 chalk: 4.1.2 ci-info: 4.3.0 graceful-fs: 4.2.11 picomatch: 4.0.3 - jest-validate@30.1.0: + jest-validate@30.2.0: dependencies: '@jest/get-type': 30.1.0 - '@jest/types': 30.0.5 + '@jest/types': 30.2.0 camelcase: 6.3.0 chalk: 4.1.2 leven: 3.1.0 - pretty-format: 30.0.5 + pretty-format: 30.2.0 - jest-watcher@30.1.3: + jest-watcher@30.2.0: dependencies: - '@jest/test-result': 30.1.3 - '@jest/types': 30.0.5 - '@types/node': 24.5.2 + '@jest/test-result': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 24.9.1 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 - jest-util: 30.0.5 + jest-util: 30.2.0 string-length: 4.0.2 jest-worker@27.5.1: dependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 merge-stream: 2.0.0 supports-color: 8.1.1 - jest-worker@30.1.0: + jest-worker@30.2.0: dependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 '@ungap/structured-clone': 1.3.0 - jest-util: 30.0.5 + jest-util: 30.2.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@30.1.3(@types/node@24.5.2)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2)): + jest@30.2.0(@types/node@24.9.1)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)): dependencies: - '@jest/core': 30.1.3(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2)) - '@jest/types': 30.0.5 + '@jest/core': 30.2.0(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)) + '@jest/types': 30.2.0 import-local: 3.2.0 - jest-cli: 30.1.3(@types/node@24.5.2)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2)) + jest-cli: 30.2.0(@types/node@24.9.1)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -28197,7 +28655,7 @@ snapshots: acorn: 8.15.0 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - semver: 7.7.2 + semver: 7.7.3 jsonc-parser@3.3.1: {} @@ -28234,7 +28692,7 @@ snapshots: lodash.isstring: 4.0.1 lodash.once: 4.1.1 ms: 2.1.3 - semver: 7.7.2 + semver: 7.7.3 jstransformer@1.0.0: dependencies: @@ -28333,12 +28791,12 @@ snapshots: dependencies: uc.micro: 2.1.0 - lint-staged@16.2.1: + lint-staged@16.2.5: dependencies: commander: 14.0.1 - listr2: 9.0.4 + listr2: 9.0.5 micromatch: 4.0.8 - nano-spawn: 1.0.3 + nano-spawn: 2.0.0 pidtree: 0.6.0 string-argv: 0.3.2 yaml: 2.8.1 @@ -28361,7 +28819,7 @@ snapshots: through: 2.3.8 wrap-ansi: 7.0.0 - listr2@9.0.4: + listr2@9.0.5: dependencies: cli-truncate: 5.1.0 colorette: 2.0.20 @@ -28483,7 +28941,7 @@ snapshots: dependencies: js-tokens: 4.0.0 - lossless-json@4.2.0: {} + lossless-json@4.3.0: {} loupe@3.2.0: {} @@ -28536,7 +28994,7 @@ snapshots: libmime: 5.3.5 linkify-it: 5.0.0 mailsplit: 5.4.0 - nodemailer: 6.9.13 + nodemailer: 7.0.7 punycode.js: 2.3.1 tlds: 1.252.0 optional: true @@ -28550,7 +29008,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.7.2 + semver: 7.7.3 make-error@1.3.6: {} @@ -28611,17 +29069,13 @@ snapshots: merge2@1.4.1: {} - meros@1.3.0(@types/node@18.18.8): - optionalDependencies: - '@types/node': 18.18.8 - - meros@1.3.0(@types/node@24.5.2): + meros@1.3.0(@types/node@24.9.1): optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 - meros@1.3.1(@types/node@24.5.2): + meros@1.3.1(@types/node@24.9.1): optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 methods@1.1.2: {} @@ -28686,11 +29140,11 @@ snapshots: minisearch@7.2.0: {} - mjml-accordion@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-accordion@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -28702,11 +29156,11 @@ snapshots: - uncss optional: true - mjml-body@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-body@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -28718,11 +29172,11 @@ snapshots: - uncss optional: true - mjml-button@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-button@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -28734,11 +29188,11 @@ snapshots: - uncss optional: true - mjml-carousel@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-carousel@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -28750,14 +29204,14 @@ snapshots: - uncss optional: true - mjml-cli@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-cli@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 chokidar: 3.6.0 glob: 10.4.5 lodash: 4.17.21 minimatch: 9.0.5 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) mjml-parser-xml: 5.0.0-alpha.4 mjml-validator: 5.0.0-alpha.4 yargs: 17.7.2 @@ -28772,11 +29226,11 @@ snapshots: - uncss optional: true - mjml-column@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-column@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -28788,13 +29242,13 @@ snapshots: - uncss optional: true - mjml-core@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-core@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 cheerio: 1.0.0-rc.12 cssnano: 7.1.1(postcss@8.5.6) detect-node: 2.1.0 - htmlnano: 2.1.2(cssnano@7.1.1(postcss@8.5.6))(postcss@8.5.6)(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + htmlnano: 2.1.2(cssnano@7.1.1(postcss@8.5.6))(postcss@8.5.6)(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) juice: 10.0.1 lodash: 4.17.21 mjml-parser-xml: 5.0.0-alpha.4 @@ -28812,11 +29266,11 @@ snapshots: - uncss optional: true - mjml-divider@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-divider@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -28828,11 +29282,11 @@ snapshots: - uncss optional: true - mjml-group@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-group@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -28844,11 +29298,11 @@ snapshots: - uncss optional: true - mjml-head-attributes@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-head-attributes@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -28860,11 +29314,11 @@ snapshots: - uncss optional: true - mjml-head-breakpoint@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-head-breakpoint@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -28876,11 +29330,11 @@ snapshots: - uncss optional: true - mjml-head-font@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-head-font@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -28892,11 +29346,11 @@ snapshots: - uncss optional: true - mjml-head-html-attributes@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-head-html-attributes@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -28908,11 +29362,11 @@ snapshots: - uncss optional: true - mjml-head-preview@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-head-preview@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -28924,11 +29378,11 @@ snapshots: - uncss optional: true - mjml-head-style@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-head-style@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -28940,11 +29394,11 @@ snapshots: - uncss optional: true - mjml-head-title@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-head-title@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -28956,11 +29410,11 @@ snapshots: - uncss optional: true - mjml-head@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-head@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -28972,11 +29426,11 @@ snapshots: - uncss optional: true - mjml-hero@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-hero@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -28988,11 +29442,11 @@ snapshots: - uncss optional: true - mjml-image@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-image@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -29004,11 +29458,11 @@ snapshots: - uncss optional: true - mjml-navbar@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-navbar@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -29028,34 +29482,34 @@ snapshots: lodash: 4.17.21 optional: true - mjml-preset-core@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-preset-core@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 - mjml-accordion: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-body: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-button: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-carousel: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-column: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-divider: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-group: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-head: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-head-attributes: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-head-breakpoint: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-head-font: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-head-html-attributes: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-head-preview: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-head-style: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-head-title: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-hero: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-image: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-navbar: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-raw: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-section: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-social: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-spacer: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-table: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-text: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-wrapper: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-accordion: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-body: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-button: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-carousel: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-column: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-divider: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-group: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-head: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-head-attributes: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-head-breakpoint: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-head-font: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-head-html-attributes: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-head-preview: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-head-style: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-head-title: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-hero: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-image: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-navbar: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-raw: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-section: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-social: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-spacer: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-table: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-text: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-wrapper: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -29067,11 +29521,11 @@ snapshots: - uncss optional: true - mjml-raw@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-raw@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -29083,11 +29537,11 @@ snapshots: - uncss optional: true - mjml-section@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-section@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -29099,11 +29553,11 @@ snapshots: - uncss optional: true - mjml-social@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-social@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -29115,11 +29569,11 @@ snapshots: - uncss optional: true - mjml-spacer@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-spacer@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -29131,11 +29585,11 @@ snapshots: - uncss optional: true - mjml-table@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-table@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -29147,11 +29601,11 @@ snapshots: - uncss optional: true - mjml-text@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-text@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -29168,12 +29622,12 @@ snapshots: '@babel/runtime': 7.28.3 optional: true - mjml-wrapper@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml-wrapper@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 lodash: 4.17.21 - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-section: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-section: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) transitivePeerDependencies: - encoding - purgecss @@ -29185,12 +29639,12 @@ snapshots: - uncss optional: true - mjml@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2): + mjml@5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.3 - mjml-cli: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) - mjml-preset-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.2) + mjml-cli: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) + mjml-preset-core: 5.0.0-alpha.4(relateurl@0.2.7)(terser@5.39.2)(typescript@5.9.3) mjml-validator: 5.0.0-alpha.4 transitivePeerDependencies: - encoding @@ -29218,7 +29672,7 @@ snapshots: pkg-types: 1.3.1 ufo: 1.6.1 - mocha@11.7.2: + mocha@11.7.4: dependencies: browser-stdout: 1.3.1 chokidar: 4.0.3 @@ -29228,6 +29682,7 @@ snapshots: find-up: 5.0.0 glob: 10.4.5 he: 1.2.0 + is-path-inside: 3.0.3 js-yaml: 4.1.0 log-symbols: 4.1.0 minimatch: 9.0.5 @@ -29285,7 +29740,7 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nano-spawn@1.0.3: {} + nano-spawn@2.0.0: {} nanoid@3.3.11: {} @@ -29316,11 +29771,11 @@ snapshots: node-abi@3.62.0: dependencies: - semver: 7.7.2 + semver: 7.7.3 node-abi@3.75.0: dependencies: - semver: 7.7.2 + semver: 7.7.3 node-abort-controller@3.1.1: {} @@ -29365,15 +29820,12 @@ snapshots: node-releases@2.0.19: {} - node-releases@2.0.21: {} + node-releases@2.0.26: {} - nodemailer@6.9.13: + nodemailer@7.0.7: optional: true - nodemailer@6.9.15: - optional: true - - nodemailer@7.0.6: {} + nodemailer@7.0.9: {} normalize-package-data@2.5.0: dependencies: @@ -29783,6 +30235,8 @@ snapshots: path-to-regexp@8.2.0: {} + path-to-regexp@8.3.0: {} + path-type@3.0.0: dependencies: pify: 3.0.0 @@ -29926,29 +30380,13 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.5.6 - postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.8.3)): - dependencies: - lilconfig: 3.1.3 - yaml: 2.8.1 - optionalDependencies: - postcss: 8.5.6 - ts-node: 10.9.2(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.8.3) - - postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.3.0)(typescript@5.9.2)): - dependencies: - lilconfig: 3.1.3 - yaml: 2.8.1 - optionalDependencies: - postcss: 8.5.6 - ts-node: 10.9.2(@swc/core@1.4.2)(@types/node@24.3.0)(typescript@5.9.2) - - postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2)): + postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)): dependencies: lilconfig: 3.1.3 yaml: 2.8.1 optionalDependencies: postcss: 8.5.6 - ts-node: 10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2) + ts-node: 10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3) postcss-load-config@6.0.1(jiti@2.6.0)(postcss@8.5.6)(yaml@2.8.1): dependencies: @@ -30125,9 +30563,9 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - posthog-node@5.8.8: + posthog-node@5.10.0: dependencies: - '@posthog/core': 1.1.0 + '@posthog/core': 1.3.0 posthtml-parser@0.11.0: dependencies: @@ -30221,6 +30659,12 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 + pretty-format@30.2.0: + dependencies: + '@jest/schemas': 30.0.5 + ansi-styles: 5.2.0 + react-is: 18.3.1 + preview-email@3.1.0: dependencies: ci-info: 3.9.0 @@ -30228,7 +30672,7 @@ snapshots: fixpack: 4.0.0 get-port: 5.1.1 mailparser: 3.7.1 - nodemailer: 6.9.15 + nodemailer: 7.0.7 open: 7.4.2 p-event: 4.2.0 p-wait-for: 3.2.0 @@ -30236,12 +30680,12 @@ snapshots: uuid: 9.0.1 optional: true - prisma@6.16.2(typescript@5.9.2): + prisma@6.17.1(typescript@5.9.3): dependencies: - '@prisma/config': 6.16.2 - '@prisma/engines': 6.16.2 + '@prisma/config': 6.17.1 + '@prisma/engines': 6.17.1 optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 transitivePeerDependencies: - magicast @@ -30603,8 +31047,6 @@ snapshots: remove-trailing-spaces@1.0.9: {} - repeat-string@1.6.1: {} - require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -30629,6 +31071,12 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + resolve@1.22.11: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + resolve@1.22.8: dependencies: is-core-module: 2.13.1 @@ -30674,10 +31122,10 @@ snapshots: dependencies: rollup-plugin-inject: 3.0.2 - rollup-plugin-polyfill-node@0.13.0(rollup@4.52.2): + rollup-plugin-polyfill-node@0.13.0(rollup@4.52.5): dependencies: - '@rollup/plugin-inject': 5.0.5(rollup@4.52.2) - rollup: 4.52.2 + '@rollup/plugin-inject': 5.0.5(rollup@4.52.5) + rollup: 4.52.5 rollup-pluginutils@2.8.2: dependencies: @@ -30719,6 +31167,34 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.52.2 fsevents: 2.3.3 + rollup@4.52.5: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.52.5 + '@rollup/rollup-android-arm64': 4.52.5 + '@rollup/rollup-darwin-arm64': 4.52.5 + '@rollup/rollup-darwin-x64': 4.52.5 + '@rollup/rollup-freebsd-arm64': 4.52.5 + '@rollup/rollup-freebsd-x64': 4.52.5 + '@rollup/rollup-linux-arm-gnueabihf': 4.52.5 + '@rollup/rollup-linux-arm-musleabihf': 4.52.5 + '@rollup/rollup-linux-arm64-gnu': 4.52.5 + '@rollup/rollup-linux-arm64-musl': 4.52.5 + '@rollup/rollup-linux-loong64-gnu': 4.52.5 + '@rollup/rollup-linux-ppc64-gnu': 4.52.5 + '@rollup/rollup-linux-riscv64-gnu': 4.52.5 + '@rollup/rollup-linux-riscv64-musl': 4.52.5 + '@rollup/rollup-linux-s390x-gnu': 4.52.5 + '@rollup/rollup-linux-x64-gnu': 4.52.5 + '@rollup/rollup-linux-x64-musl': 4.52.5 + '@rollup/rollup-openharmony-arm64': 4.52.5 + '@rollup/rollup-win32-arm64-msvc': 4.52.5 + '@rollup/rollup-win32-ia32-msvc': 4.52.5 + '@rollup/rollup-win32-x64-gnu': 4.52.5 + '@rollup/rollup-win32-x64-msvc': 4.52.5 + fsevents: 2.3.3 + router@2.2.0: dependencies: debug: 4.4.1 @@ -30840,7 +31316,7 @@ snapshots: semver@7.7.1: {} - semver@7.7.2: {} + semver@7.7.3: {} send@0.19.0: dependencies: @@ -31249,7 +31725,7 @@ snapshots: string-width@7.2.0: dependencies: - emoji-regex: 10.5.0 + emoji-regex: 10.6.0 get-east-asian-width: 1.4.0 strip-ansi: 7.1.2 @@ -31413,9 +31889,9 @@ snapshots: transitivePeerDependencies: - supports-color - superjson@2.2.2: + superjson@2.2.3: dependencies: - copy-anything: 3.0.5 + copy-anything: 4.0.5 supertest@7.1.4: dependencies: @@ -31461,7 +31937,7 @@ snapshots: transitivePeerDependencies: - openapi-types - swagger-ui-dist@5.21.0: + swagger-ui-dist@5.29.4: dependencies: '@scarf/scarf': 1.4.0 @@ -31503,7 +31979,7 @@ snapshots: systemjs@6.15.1: {} - tailwindcss@3.3.6(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.8.3)): + tailwindcss@3.3.6(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -31522,7 +31998,7 @@ snapshots: postcss: 8.5.6 postcss-import: 15.1.0(postcss@8.5.6) postcss-js: 4.0.1(postcss@8.5.6) - postcss-load-config: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.8.3)) + postcss-load-config: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)) postcss-nested: 6.0.1(postcss@8.5.6) postcss-selector-parser: 6.1.2 resolve: 1.22.8 @@ -31530,34 +32006,7 @@ snapshots: transitivePeerDependencies: - ts-node - tailwindcss@3.4.16(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.3.0)(typescript@5.9.2)): - dependencies: - '@alloc/quick-lru': 5.2.0 - arg: 5.0.2 - chokidar: 3.6.0 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.3.3 - glob-parent: 6.0.2 - is-glob: 4.0.3 - jiti: 1.21.7 - lilconfig: 3.1.3 - micromatch: 4.0.8 - normalize-path: 3.0.0 - object-hash: 3.0.0 - picocolors: 1.1.1 - postcss: 8.5.6 - postcss-import: 15.1.0(postcss@8.5.6) - postcss-js: 4.0.1(postcss@8.5.6) - postcss-load-config: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.3.0)(typescript@5.9.2)) - postcss-nested: 6.2.0(postcss@8.5.6) - postcss-selector-parser: 6.1.2 - resolve: 1.22.10 - sucrase: 3.35.0 - transitivePeerDependencies: - - ts-node - - tailwindcss@3.4.16(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2)): + tailwindcss@3.4.16(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -31576,7 +32025,7 @@ snapshots: postcss: 8.5.6 postcss-import: 15.1.0(postcss@8.5.6) postcss-js: 4.0.1(postcss@8.5.6) - postcss-load-config: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2)) + postcss-load-config: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)) postcss-nested: 6.2.0(postcss@8.5.6) postcss-selector-parser: 6.1.2 resolve: 1.22.10 @@ -31626,17 +32075,17 @@ snapshots: minimatch: 3.1.2 resolve-from: 2.0.0 - terser-webpack-plugin@5.3.14(@swc/core@1.4.2)(esbuild@0.25.10)(webpack@5.100.2(@swc/core@1.4.2)(esbuild@0.25.10)): + terser-webpack-plugin@5.3.14(@swc/core@1.4.2)(esbuild@0.25.11)(webpack@5.100.2(@swc/core@1.4.2)(esbuild@0.25.11)): dependencies: '@jridgewell/trace-mapping': 0.3.30 jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 terser: 5.39.2 - webpack: 5.100.2(@swc/core@1.4.2)(esbuild@0.25.10) + webpack: 5.100.2(@swc/core@1.4.2)(esbuild@0.25.11) optionalDependencies: '@swc/core': 1.4.2 - esbuild: 0.25.10 + esbuild: 0.25.11 optional: true terser-webpack-plugin@5.3.14(@swc/core@1.4.2)(webpack@5.100.2(@swc/core@1.4.2)): @@ -31774,59 +32223,55 @@ snapshots: tree-kill@1.2.2: {} - ts-api-utils@1.4.3(typescript@5.9.2): - dependencies: - typescript: 5.9.2 - - ts-api-utils@2.1.0(typescript@5.8.3): + ts-api-utils@1.4.3(typescript@5.9.3): dependencies: - typescript: 5.8.3 + typescript: 5.9.3 - ts-api-utils@2.1.0(typescript@5.9.2): + ts-api-utils@2.1.0(typescript@5.9.3): dependencies: - typescript: 5.9.2 + typescript: 5.9.3 - ts-essentials@10.0.2(typescript@5.9.2): + ts-essentials@10.0.2(typescript@5.9.3): optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 ts-interface-checker@0.1.13: {} - ts-jest@29.4.4(@babel/core@7.28.4)(@jest/transform@30.1.2)(@jest/types@30.0.5)(babel-jest@30.1.2(@babel/core@7.28.4))(jest-util@30.0.5)(jest@30.1.3(@types/node@24.5.2)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2)))(typescript@5.9.2): + ts-jest@29.4.5(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@24.9.1)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 handlebars: 4.7.8 - jest: 30.1.3(@types/node@24.5.2)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2)) + jest: 30.2.0(@types/node@24.9.1)(ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3)) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 - semver: 7.7.2 + semver: 7.7.3 type-fest: 4.41.0 - typescript: 5.9.2 + typescript: 5.9.3 yargs-parser: 21.1.1 optionalDependencies: '@babel/core': 7.28.4 - '@jest/transform': 30.1.2 - '@jest/types': 30.0.5 - babel-jest: 30.1.2(@babel/core@7.28.4) - jest-util: 30.0.5 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + babel-jest: 30.2.0(@babel/core@7.28.4) + jest-util: 30.2.0 - ts-loader@9.5.4(typescript@5.9.2)(webpack@5.100.2(@swc/core@1.4.2)): + ts-loader@9.5.4(typescript@5.9.3)(webpack@5.100.2(@swc/core@1.4.2)): dependencies: chalk: 4.1.2 enhanced-resolve: 5.18.1 micromatch: 4.0.8 - semver: 7.7.2 + semver: 7.7.3 source-map: 0.7.4 - typescript: 5.9.2 + typescript: 5.9.3 webpack: 5.100.2(@swc/core@1.4.2) ts-log@2.2.5: {} ts-log@2.2.7: {} - ts-node-dev@2.0.0(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2): + ts-node-dev@2.0.0(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3): dependencies: chokidar: 3.6.0 dynamic-dedupe: 0.3.0 @@ -31836,71 +32281,29 @@ snapshots: rimraf: 2.7.1 source-map-support: 0.5.21 tree-kill: 1.2.2 - ts-node: 10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2) + ts-node: 10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3) tsconfig: 7.0.0 - typescript: 5.9.2 + typescript: 5.9.3 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' - '@types/node' - ts-node@10.9.2(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.8.3): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 18.18.8 - acorn: 8.12.1 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.8.3 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optionalDependencies: - '@swc/core': 1.4.2 - optional: true - - ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.3.0)(typescript@5.9.2): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 24.3.0 - acorn: 8.12.1 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.9.2 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optionalDependencies: - '@swc/core': 1.4.2 - optional: true - - ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.5.2)(typescript@5.9.2): + ts-node@10.9.2(@swc/core@1.4.2)(@types/node@24.9.1)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 24.5.2 + '@types/node': 24.9.1 acorn: 8.12.1 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.9.2 + typescript: 5.9.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: @@ -31942,7 +32345,7 @@ snapshots: tslib@2.8.1: {} - tsup@8.5.0(@swc/core@1.4.2)(jiti@2.6.0)(postcss@8.5.6)(typescript@5.9.2)(yaml@2.8.1): + tsup@8.5.0(@swc/core@1.4.2)(jiti@2.6.0)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.1): dependencies: bundle-require: 5.1.0(esbuild@0.25.8) cac: 6.7.14 @@ -31955,7 +32358,7 @@ snapshots: picocolors: 1.1.1 postcss-load-config: 6.0.1(jiti@2.6.0)(postcss@8.5.6)(yaml@2.8.1) resolve-from: 5.0.0 - rollup: 4.52.2 + rollup: 4.52.5 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.2 @@ -31964,17 +32367,17 @@ snapshots: optionalDependencies: '@swc/core': 1.4.2 postcss: 8.5.6 - typescript: 5.9.2 + typescript: 5.9.3 transitivePeerDependencies: - jiti - supports-color - tsx - yaml - tsutils@3.21.0(typescript@5.8.3): + tsutils@3.21.0(typescript@5.9.3): dependencies: tslib: 1.14.1 - typescript: 5.8.3 + typescript: 5.9.3 tunnel-agent@0.6.0: dependencies: @@ -32074,7 +32477,7 @@ snapshots: typescript@5.8.3: {} - typescript@5.9.2: {} + typescript@5.9.3: {} ua-parser-js@1.0.40: {} @@ -32113,13 +32516,9 @@ snapshots: unc-path-regex@0.1.2: {} - undici-types@5.26.5: {} - - undici-types@7.10.0: {} - - undici-types@7.12.0: {} + undici-types@7.16.0: {} - unhead@2.0.17: + unhead@2.0.19: dependencies: hookable: 5.5.3 @@ -32166,23 +32565,23 @@ snapshots: unpipe@1.0.0: {} - unplugin-fonts@1.1.1(vite@4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2)): + unplugin-fonts@1.1.1(vite@4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2)): dependencies: fast-glob: 3.3.2 unplugin: 1.10.1 - vite: 4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2) + vite: 4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2) - unplugin-fonts@1.4.0(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): + unplugin-fonts@1.4.0(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): dependencies: fast-glob: 3.3.3 unplugin: 2.3.5 - vite: 6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite: 6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - unplugin-fonts@1.4.0(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): + unplugin-fonts@1.4.0(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): dependencies: fast-glob: 3.3.3 unplugin: 2.3.5 - vite: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite: 6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) unplugin-icons@0.14.9(@vue/compiler-sfc@3.5.22)(vue-template-compiler@2.7.16): dependencies: @@ -32223,7 +32622,7 @@ snapshots: pathe: 2.0.3 picomatch: 4.0.3 - unplugin-vue-components@0.21.0(@babel/parser@7.28.4)(esbuild@0.25.10)(rollup@2.79.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2))(vue@3.5.22(typescript@5.8.3))(webpack@5.100.2(@swc/core@1.4.2)(esbuild@0.25.10)): + unplugin-vue-components@0.21.0(@babel/parser@7.28.4)(esbuild@0.25.11)(rollup@2.79.2)(vite@4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2))(vue@3.5.22(typescript@5.9.3))(webpack@5.100.2(@swc/core@1.4.2)(esbuild@0.25.11)): dependencies: '@antfu/utils': 0.5.2 '@rollup/pluginutils': 4.2.1 @@ -32234,8 +32633,8 @@ snapshots: magic-string: 0.26.7 minimatch: 5.1.6 resolve: 1.22.8 - unplugin: 0.7.2(esbuild@0.25.10)(rollup@2.79.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2))(webpack@5.100.2(@swc/core@1.4.2)(esbuild@0.25.10)) - vue: 3.5.22(typescript@5.8.3) + unplugin: 0.7.2(esbuild@0.25.11)(rollup@2.79.2)(vite@4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2))(webpack@5.100.2(@swc/core@1.4.2)(esbuild@0.25.11)) + vue: 3.5.22(typescript@5.9.3) optionalDependencies: '@babel/parser': 7.28.4 transitivePeerDependencies: @@ -32245,7 +32644,7 @@ snapshots: - vite - webpack - unplugin-vue-components@29.0.0(@babel/parser@7.28.4)(vue@3.5.22(typescript@5.9.2)): + unplugin-vue-components@29.0.0(@babel/parser@7.28.4)(vue@3.5.22(typescript@5.9.3)): dependencies: chokidar: 3.6.0 debug: 4.4.1 @@ -32255,23 +32654,23 @@ snapshots: tinyglobby: 0.2.14 unplugin: 2.3.5 unplugin-utils: 0.2.5 - vue: 3.5.22(typescript@5.9.2) + vue: 3.5.22(typescript@5.9.3) optionalDependencies: '@babel/parser': 7.28.4 transitivePeerDependencies: - supports-color - unplugin@0.7.2(esbuild@0.25.10)(rollup@2.79.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2))(webpack@5.100.2(@swc/core@1.4.2)(esbuild@0.25.10)): + unplugin@0.7.2(esbuild@0.25.11)(rollup@2.79.2)(vite@4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2))(webpack@5.100.2(@swc/core@1.4.2)(esbuild@0.25.11)): dependencies: acorn: 8.12.1 chokidar: 3.6.0 webpack-sources: 3.2.3 webpack-virtual-modules: 0.4.6 optionalDependencies: - esbuild: 0.25.10 + esbuild: 0.25.11 rollup: 2.79.2 - vite: 4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2) - webpack: 5.100.2(@swc/core@1.4.2)(esbuild@0.25.10) + vite: 4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2) + webpack: 5.100.2(@swc/core@1.4.2)(esbuild@0.25.11) unplugin@0.9.6: dependencies: @@ -32352,9 +32751,9 @@ snapshots: picocolors: 1.1.1 optional: true - update-browserslist-db@1.1.3(browserslist@4.26.2): + update-browserslist-db@1.1.3(browserslist@4.26.3): dependencies: - browserslist: 4.26.2 + browserslist: 4.26.3 escalade: 3.2.0 picocolors: 1.1.1 @@ -32411,7 +32810,7 @@ snapshots: v8-to-istanbul@9.3.0: dependencies: - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 @@ -32437,44 +32836,23 @@ snapshots: dependencies: zod: 3.25.32 - vite-dev-rpc@1.1.0(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): + vite-dev-rpc@1.1.0(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): dependencies: birpc: 2.5.0 - vite: 6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - vite-hot-client: 2.1.0(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) - - vite-hot-client@2.1.0(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): - dependencies: - vite: 6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite: 6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite-hot-client: 2.1.0(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) - vite-node@3.2.4(@types/node@24.3.0)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1): + vite-hot-client@2.1.0(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): dependencies: - cac: 6.7.14 - debug: 4.4.1 - es-module-lexer: 1.7.0 - pathe: 2.0.3 - vite: 6.3.6(@types/node@24.3.0)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - transitivePeerDependencies: - - '@types/node' - - jiti - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml + vite: 6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - vite-node@3.2.4(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1): + vite-node@3.2.4(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite: 6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -32489,7 +32867,7 @@ snapshots: - tsx - yaml - vite-plugin-checker@0.10.3(eslint@8.57.0)(meow@13.2.0)(optionator@0.9.4)(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-tsc@1.8.8(typescript@5.9.2)): + vite-plugin-checker@0.10.3(eslint@8.57.0)(meow@13.2.0)(optionator@0.9.4)(typescript@5.9.3)(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-tsc@1.8.8(typescript@5.9.3)): dependencies: '@babel/code-frame': 7.27.1 chokidar: 4.0.3 @@ -32499,78 +32877,78 @@ snapshots: strip-ansi: 7.1.0 tiny-invariant: 1.3.3 tinyglobby: 0.2.14 - vite: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite: 6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) vscode-uri: 3.1.0 optionalDependencies: eslint: 8.57.0 meow: 13.2.0 optionator: 0.9.4 - typescript: 5.9.2 - vue-tsc: 1.8.8(typescript@5.9.2) + typescript: 5.9.3 + vue-tsc: 1.8.8(typescript@5.9.3) - vite-plugin-eslint@1.8.1(eslint@8.57.0)(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): + vite-plugin-eslint@1.8.1(eslint@8.57.0)(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): dependencies: '@rollup/pluginutils': 4.2.1 '@types/eslint': 8.56.12 eslint: 8.57.0 rollup: 2.79.2 - vite: 6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite: 6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - vite-plugin-eslint@1.8.1(eslint@8.57.0)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): + vite-plugin-eslint@1.8.1(eslint@8.57.0)(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): dependencies: '@rollup/pluginutils': 4.2.1 '@types/eslint': 8.56.12 eslint: 8.57.0 rollup: 2.79.2 - vite: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite: 6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - vite-plugin-eslint@1.8.1(eslint@9.36.0(jiti@2.6.0))(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): + vite-plugin-eslint@1.8.1(eslint@9.37.0(jiti@2.6.0))(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): dependencies: '@rollup/pluginutils': 4.2.1 '@types/eslint': 8.56.12 - eslint: 9.36.0(jiti@2.6.0) + eslint: 9.37.0(jiti@2.6.0) rollup: 2.79.2 - vite: 6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite: 6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - vite-plugin-eslint@1.8.1(eslint@9.36.0(jiti@2.6.0))(vite@6.3.6(@types/node@24.3.0)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): + vite-plugin-eslint@1.8.1(eslint@9.37.0(jiti@2.6.0))(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): dependencies: '@rollup/pluginutils': 4.2.1 '@types/eslint': 8.56.12 - eslint: 9.36.0(jiti@2.6.0) + eslint: 9.37.0(jiti@2.6.0) rollup: 2.79.2 - vite: 6.3.6(@types/node@24.3.0)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite: 6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - vite-plugin-eslint@1.8.1(eslint@9.36.0(jiti@2.6.0))(vite@7.1.2(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): + vite-plugin-eslint@1.8.1(eslint@9.37.0(jiti@2.6.0))(vite@7.1.2(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): dependencies: '@rollup/pluginutils': 4.2.1 '@types/eslint': 8.56.12 - eslint: 9.36.0(jiti@2.6.0) + eslint: 9.37.0(jiti@2.6.0) rollup: 2.79.2 - vite: 7.1.2(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite: 7.1.2(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - vite-plugin-fonts@0.7.0(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): + vite-plugin-fonts@0.7.0(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): dependencies: fast-glob: 3.3.2 - vite: 6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite: 6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - vite-plugin-fonts@0.7.0(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): + vite-plugin-fonts@0.7.0(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): dependencies: fast-glob: 3.3.2 - vite: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite: 6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - vite-plugin-html-config@1.0.11(vite@4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2)): + vite-plugin-html-config@1.0.11(vite@4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2)): dependencies: - vite: 4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2) + vite: 4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2) - vite-plugin-html-config@2.0.2(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): + vite-plugin-html-config@2.0.2(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): dependencies: - vite: 6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite: 6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - vite-plugin-html-config@2.0.2(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): + vite-plugin-html-config@2.0.2(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): dependencies: - vite: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite: 6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - vite-plugin-inspect@0.7.38(rollup@2.79.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2)): + vite-plugin-inspect@0.7.38(rollup@2.79.2)(vite@4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2)): dependencies: '@antfu/utils': 0.7.10 '@rollup/pluginutils': 5.1.2(rollup@2.79.2) @@ -32580,12 +32958,12 @@ snapshots: open: 9.1.0 picocolors: 1.1.0 sirv: 2.0.4 - vite: 4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2) + vite: 4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2) transitivePeerDependencies: - rollup - supports-color - vite-plugin-inspect@11.3.3(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): + vite-plugin-inspect@11.3.3(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): dependencies: ansis: 4.1.0 debug: 4.4.3(supports-color@8.1.1) @@ -32595,8 +32973,8 @@ snapshots: perfect-debounce: 2.0.0 sirv: 3.0.1 unplugin-utils: 0.3.0 - vite: 6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - vite-dev-rpc: 1.1.0(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) + vite: 6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite-dev-rpc: 1.1.0(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) transitivePeerDependencies: - supports-color @@ -32607,7 +32985,7 @@ snapshots: sitemap: 8.0.0 xml-formatter: 3.6.7 - vite-plugin-pages@0.26.0(@vue/compiler-sfc@3.5.22)(vite@4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2)): + vite-plugin-pages@0.26.0(@vue/compiler-sfc@3.5.22)(vite@4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2)): dependencies: '@types/debug': 4.1.12 debug: 4.3.7 @@ -32617,14 +32995,14 @@ snapshots: json5: 2.2.3 local-pkg: 0.4.3 picocolors: 1.1.0 - vite: 4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2) + vite: 4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2) yaml: 2.5.1 optionalDependencies: '@vue/compiler-sfc': 3.5.22 transitivePeerDependencies: - supports-color - vite-plugin-pages@0.33.1(@vue/compiler-sfc@3.5.22)(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.2))): + vite-plugin-pages@0.33.1(@vue/compiler-sfc@3.5.22)(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-router@4.6.3(vue@3.5.22(typescript@5.9.3))): dependencies: '@types/debug': 4.1.12 debug: 4.4.1 @@ -32635,15 +33013,15 @@ snapshots: micromatch: 4.0.8 picocolors: 1.1.1 tinyglobby: 0.2.14 - vite: 6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite: 6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) yaml: 2.8.1 optionalDependencies: '@vue/compiler-sfc': 3.5.22 - vue-router: 4.5.1(vue@3.5.22(typescript@5.9.2)) + vue-router: 4.6.3(vue@3.5.22(typescript@5.9.3)) transitivePeerDependencies: - supports-color - vite-plugin-pages@0.33.1(@vue/compiler-sfc@3.5.22)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.2))): + vite-plugin-pages@0.33.1(@vue/compiler-sfc@3.5.22)(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-router@4.6.3(vue@3.5.22(typescript@5.9.3))): dependencies: '@types/debug': 4.1.12 debug: 4.4.1 @@ -32654,168 +33032,134 @@ snapshots: micromatch: 4.0.8 picocolors: 1.1.1 tinyglobby: 0.2.14 - vite: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite: 6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) yaml: 2.8.1 optionalDependencies: '@vue/compiler-sfc': 3.5.22 - vue-router: 4.5.1(vue@3.5.22(typescript@5.9.2)) + vue-router: 4.6.3(vue@3.5.22(typescript@5.9.3)) transitivePeerDependencies: - supports-color - vite-plugin-pwa@0.13.1(vite@4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2))(workbox-build@7.1.0(@types/babel__core@7.20.5))(workbox-window@6.6.0): + vite-plugin-pwa@1.1.0(vite@4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2))(workbox-build@7.1.0(@types/babel__core@7.20.5))(workbox-window@6.6.0): dependencies: - debug: 4.3.7 - fast-glob: 3.3.2 + debug: 4.4.3(supports-color@8.1.1) pretty-bytes: 6.1.1 - rollup: 2.79.2 - vite: 4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2) + tinyglobby: 0.2.15 + vite: 4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2) workbox-build: 7.1.0(@types/babel__core@7.20.5) workbox-window: 6.6.0 transitivePeerDependencies: - supports-color - vite-plugin-pwa@1.0.3(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(workbox-build@7.1.0(@types/babel__core@7.20.5))(workbox-window@7.3.0): + vite-plugin-pwa@1.1.0(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(workbox-build@7.1.0(@types/babel__core@7.20.5))(workbox-window@7.3.0): dependencies: - debug: 4.4.1 + debug: 4.4.3(supports-color@8.1.1) pretty-bytes: 6.1.1 - tinyglobby: 0.2.14 - vite: 6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + tinyglobby: 0.2.15 + vite: 6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) workbox-build: 7.1.0(@types/babel__core@7.20.5) workbox-window: 7.3.0 transitivePeerDependencies: - supports-color - vite-plugin-pwa@1.0.3(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(workbox-build@7.1.0(@types/babel__core@7.20.5))(workbox-window@7.3.0): + vite-plugin-pwa@1.1.0(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(workbox-build@7.1.0(@types/babel__core@7.20.5))(workbox-window@7.3.0): dependencies: - debug: 4.4.1 + debug: 4.4.3(supports-color@8.1.1) pretty-bytes: 6.1.1 - tinyglobby: 0.2.14 - vite: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + tinyglobby: 0.2.15 + vite: 6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) workbox-build: 7.1.0(@types/babel__core@7.20.5) workbox-window: 7.3.0 transitivePeerDependencies: - supports-color - vite-plugin-static-copy@0.12.0(vite@4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2)): + vite-plugin-static-copy@0.12.0(vite@4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2)): dependencies: chokidar: 3.6.0 fast-glob: 3.3.2 fs-extra: 10.1.0 picocolors: 1.1.0 - vite: 4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2) + vite: 4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2) - vite-plugin-static-copy@3.1.2(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): + vite-plugin-static-copy@3.1.4(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)): dependencies: chokidar: 3.6.0 - fs-extra: 11.3.1 p-map: 7.0.3 picocolors: 1.1.1 - tinyglobby: 0.2.14 - vite: 6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + tinyglobby: 0.2.15 + vite: 6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - vite-plugin-vue-layouts@0.11.0(vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2)): + vite-plugin-vue-layouts@0.11.0(vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-router@4.6.3(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)): dependencies: debug: 4.3.7 fast-glob: 3.3.2 - vite: 6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - vue: 3.5.22(typescript@5.9.2) - vue-router: 4.5.1(vue@3.5.22(typescript@5.9.2)) + vite: 6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vue: 3.5.22(typescript@5.9.3) + vue-router: 4.6.3(vue@3.5.22(typescript@5.9.3)) transitivePeerDependencies: - supports-color - vite-plugin-vue-layouts@0.11.0(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2)): + vite-plugin-vue-layouts@0.11.0(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1))(vue-router@4.6.3(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)): dependencies: debug: 4.3.7 fast-glob: 3.3.2 - vite: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - vue: 3.5.22(typescript@5.9.2) - vue-router: 4.5.1(vue@3.5.22(typescript@5.9.2)) + vite: 6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vue: 3.5.22(typescript@5.9.3) + vue-router: 4.6.3(vue@3.5.22(typescript@5.9.3)) transitivePeerDependencies: - supports-color - vite-plugin-vue-layouts@0.7.0(vite@4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2))(vue-router@4.5.1(vue@3.5.22(typescript@5.8.3)))(vue@3.5.22(typescript@5.8.3)): + vite-plugin-vue-layouts@0.7.0(vite@4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2))(vue-router@4.6.3(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)): dependencies: '@vue/compiler-sfc': 3.5.22 debug: 4.3.7 fast-glob: 3.3.2 - vite: 4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2) - vue: 3.5.22(typescript@5.8.3) - vue-router: 4.5.1(vue@3.5.22(typescript@5.8.3)) + vite: 4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2) + vue: 3.5.22(typescript@5.9.3) + vue-router: 4.6.3(vue@3.5.22(typescript@5.9.3)) transitivePeerDependencies: - supports-color - vite@3.2.11(@types/node@24.5.2)(sass@1.93.2)(terser@5.39.2): + vite@3.2.11(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2): dependencies: esbuild: 0.15.18 postcss: 8.5.6 resolve: 1.22.8 rollup: 2.79.2 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 fsevents: 2.3.3 sass: 1.93.2 terser: 5.39.2 - vite@4.5.0(@types/node@18.18.8)(sass@1.93.2)(terser@5.39.2): + vite@4.5.0(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2): dependencies: esbuild: 0.18.20 postcss: 8.5.6 rollup: 3.29.5 optionalDependencies: - '@types/node': 18.18.8 - fsevents: 2.3.3 - sass: 1.93.2 - terser: 5.39.2 - - vite@6.3.5(@types/node@24.3.0)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1): - dependencies: - esbuild: 0.25.9 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.52.2 - tinyglobby: 0.2.14 - optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.9.1 fsevents: 2.3.3 - jiti: 2.6.0 sass: 1.93.2 terser: 5.39.2 - yaml: 2.8.1 - vite@6.3.5(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1): + vite@6.3.5(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.52.2 + rollup: 4.52.5 tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 24.5.2 - fsevents: 2.3.3 - jiti: 2.6.0 - sass: 1.93.2 - terser: 5.39.2 - yaml: 2.8.1 - - vite@6.3.6(@types/node@24.3.0)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1): - dependencies: - esbuild: 0.25.10 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.52.2 - tinyglobby: 0.2.15 - optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.9.1 fsevents: 2.3.3 jiti: 2.6.0 sass: 1.93.2 terser: 5.39.2 yaml: 2.8.1 - vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1): + vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1): dependencies: esbuild: 0.25.10 fdir: 6.5.0(picomatch@4.0.3) @@ -32824,81 +33168,38 @@ snapshots: rollup: 4.52.2 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 fsevents: 2.3.3 jiti: 2.6.0 sass: 1.93.2 terser: 5.39.2 yaml: 2.8.1 - vite@7.1.2(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1): + vite@7.1.2(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1): dependencies: - esbuild: 0.25.10 + esbuild: 0.25.11 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.52.2 + rollup: 4.52.5 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.9.1 fsevents: 2.3.3 jiti: 2.6.0 sass: 1.93.2 terser: 5.39.2 yaml: 2.8.1 - vitefu@0.2.5(vite@3.2.11(@types/node@24.5.2)(sass@1.93.2)(terser@5.39.2)): - optionalDependencies: - vite: 3.2.11(@types/node@24.5.2)(sass@1.93.2)(terser@5.39.2) - - vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.6.0)(jsdom@26.1.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1): - dependencies: - '@types/chai': 5.2.2 - '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@6.3.6(@types/node@24.3.0)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) - '@vitest/pretty-format': 3.2.4 - '@vitest/runner': 3.2.4 - '@vitest/snapshot': 3.2.4 - '@vitest/spy': 3.2.4 - '@vitest/utils': 3.2.4 - chai: 5.2.1 - debug: 4.4.1 - expect-type: 1.2.2 - magic-string: 0.30.17 - pathe: 2.0.3 - picomatch: 4.0.3 - std-env: 3.9.0 - tinybench: 2.9.0 - tinyexec: 0.3.2 - tinyglobby: 0.2.14 - tinypool: 1.1.1 - tinyrainbow: 2.0.0 - vite: 6.3.6(@types/node@24.3.0)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.3.0)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - why-is-node-running: 2.3.0 + vitefu@0.2.5(vite@3.2.11(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2)): optionalDependencies: - '@types/debug': 4.1.12 - '@types/node': 24.3.0 - jsdom: 26.1.0 - transitivePeerDependencies: - - jiti - - less - - lightningcss - - msw - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml + vite: 3.2.11(@types/node@24.9.1)(sass@1.93.2)(terser@5.39.2) - vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.6.0)(jsdom@26.1.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(jiti@2.6.0)(jsdom@26.1.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -32916,12 +33217,12 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.5.2)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite: 6.3.6(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.9.1)(jiti@2.6.0)(sass@1.93.2)(terser@5.39.2)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 24.5.2 + '@types/node': 24.9.1 jsdom: 26.1.0 transitivePeerDependencies: - jiti @@ -32944,13 +33245,9 @@ snapshots: vscode-uri@3.1.0: {} - vue-demi@0.14.10(vue@3.5.22(typescript@5.8.3)): - dependencies: - vue: 3.5.22(typescript@5.8.3) - - vue-demi@0.14.10(vue@3.5.22(typescript@5.9.2)): + vue-demi@0.14.10(vue@3.5.22(typescript@5.9.3)): dependencies: - vue: 3.5.22(typescript@5.9.2) + vue: 3.5.22(typescript@5.9.3) vue-eslint-parser@10.2.0(eslint@8.47.0): dependencies: @@ -32960,7 +33257,7 @@ snapshots: eslint-visitor-keys: 4.2.1 espree: 10.4.0 esquery: 1.6.0 - semver: 7.7.2 + semver: 7.7.3 transitivePeerDependencies: - supports-color @@ -32972,7 +33269,7 @@ snapshots: eslint-visitor-keys: 4.2.1 espree: 10.4.0 esquery: 1.6.0 - semver: 7.7.2 + semver: 7.7.3 transitivePeerDependencies: - supports-color @@ -32985,7 +33282,7 @@ snapshots: espree: 9.6.1 esquery: 1.6.0 lodash: 4.17.21 - semver: 7.7.2 + semver: 7.7.3 transitivePeerDependencies: - supports-color @@ -32998,111 +33295,81 @@ snapshots: espree: 9.6.1 esquery: 1.6.0 lodash: 4.17.21 - semver: 7.7.2 + semver: 7.7.3 transitivePeerDependencies: - supports-color - vue-i18n@11.1.12(vue@3.5.22(typescript@5.8.3)): - dependencies: - '@intlify/core-base': 11.1.12 - '@intlify/shared': 11.1.12 - '@vue/devtools-api': 6.6.4 - vue: 3.5.22(typescript@5.8.3) - optional: true - - vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)): + vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.3)): dependencies: '@intlify/core-base': 11.1.12 '@intlify/shared': 11.1.12 '@vue/devtools-api': 6.6.4 - vue: 3.5.22(typescript@5.9.2) + vue: 3.5.22(typescript@5.9.3) - vue-json-pretty@2.5.0(vue@3.5.22(typescript@5.9.2)): + vue-json-pretty@2.5.0(vue@3.5.22(typescript@5.9.3)): dependencies: - vue: 3.5.22(typescript@5.9.2) + vue: 3.5.22(typescript@5.9.3) - vue-pdf-embed@2.1.3(vue@3.5.22(typescript@5.9.2)): + vue-pdf-embed@2.1.3(vue@3.5.22(typescript@5.9.3)): dependencies: pdfjs-dist: 4.10.38 - vue: 3.5.22(typescript@5.9.2) + vue: 3.5.22(typescript@5.9.3) - vue-promise-modals@0.1.0(typescript@5.9.2): + vue-promise-modals@0.1.0(typescript@5.9.3): dependencies: - vue: 3.5.22(typescript@5.9.2) + vue: 3.5.22(typescript@5.9.3) transitivePeerDependencies: - typescript - vue-router@4.5.1(vue@3.5.22(typescript@5.8.3)): - dependencies: - '@vue/devtools-api': 6.6.4 - vue: 3.5.22(typescript@5.8.3) - - vue-router@4.5.1(vue@3.5.22(typescript@5.9.2)): + vue-router@4.6.3(vue@3.5.22(typescript@5.9.3)): dependencies: '@vue/devtools-api': 6.6.4 - vue: 3.5.22(typescript@5.9.2) + vue: 3.5.22(typescript@5.9.3) vue-template-compiler@2.7.16: dependencies: de-indent: 1.0.2 he: 1.2.0 - vue-tippy@6.7.1(vue@3.5.22(typescript@5.9.2)): + vue-tippy@6.7.1(vue@3.5.22(typescript@5.9.3)): dependencies: tippy.js: 6.3.7 - vue: 3.5.22(typescript@5.9.2) - - vue-tsc@1.8.8(typescript@5.8.3): - dependencies: - '@vue/language-core': 1.8.8(typescript@5.8.3) - '@vue/typescript': 1.8.8(typescript@5.8.3) - semver: 7.7.2 - typescript: 5.8.3 + vue: 3.5.22(typescript@5.9.3) - vue-tsc@1.8.8(typescript@5.9.2): + vue-tsc@1.8.8(typescript@5.9.3): dependencies: - '@vue/language-core': 1.8.8(typescript@5.9.2) - '@vue/typescript': 1.8.8(typescript@5.9.2) - semver: 7.7.2 - typescript: 5.9.2 + '@vue/language-core': 1.8.8(typescript@5.9.3) + '@vue/typescript': 1.8.8(typescript@5.9.3) + semver: 7.7.3 + typescript: 5.9.3 - vue-tsc@2.1.6(typescript@5.9.2): + vue-tsc@2.1.6(typescript@5.9.3): dependencies: '@volar/typescript': 2.4.22 - '@vue/language-core': 2.1.6(typescript@5.9.2) - semver: 7.7.2 - typescript: 5.9.2 + '@vue/language-core': 2.1.6(typescript@5.9.3) + semver: 7.7.3 + typescript: 5.9.3 - vue-tsc@2.2.0(typescript@5.9.2): + vue-tsc@2.2.0(typescript@5.9.3): dependencies: '@volar/typescript': 2.4.22 - '@vue/language-core': 2.2.0(typescript@5.9.2) - typescript: 5.9.2 - - vue@3.5.22(typescript@5.8.3): - dependencies: - '@vue/compiler-dom': 3.5.22 - '@vue/compiler-sfc': 3.5.22 - '@vue/runtime-dom': 3.5.22 - '@vue/server-renderer': 3.5.22(vue@3.5.22(typescript@5.8.3)) - '@vue/shared': 3.5.22 - optionalDependencies: - typescript: 5.8.3 + '@vue/language-core': 2.2.0(typescript@5.9.3) + typescript: 5.9.3 - vue@3.5.22(typescript@5.9.2): + vue@3.5.22(typescript@5.9.3): dependencies: '@vue/compiler-dom': 3.5.22 '@vue/compiler-sfc': 3.5.22 '@vue/runtime-dom': 3.5.22 - '@vue/server-renderer': 3.5.22(vue@3.5.22(typescript@5.9.2)) + '@vue/server-renderer': 3.5.22(vue@3.5.22(typescript@5.9.3)) '@vue/shared': 3.5.22 optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 - vuedraggable-es@4.1.1(vue@3.5.22(typescript@5.9.2)): + vuedraggable-es@4.1.1(vue@3.5.22(typescript@5.9.3)): dependencies: sortablejs: 1.14.0 - vue: 3.5.22(typescript@5.9.2) + vue: 3.5.22(typescript@5.9.3) w3c-keyname@2.2.8: {} @@ -33195,7 +33462,7 @@ snapshots: - esbuild - uglify-js - webpack@5.100.2(@swc/core@1.4.2)(esbuild@0.25.10): + webpack@5.100.2(@swc/core@1.4.2)(esbuild@0.25.11): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -33219,7 +33486,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.2 tapable: 2.2.1 - terser-webpack-plugin: 5.3.14(@swc/core@1.4.2)(esbuild@0.25.10)(webpack@5.100.2(@swc/core@1.4.2)(esbuild@0.25.10)) + terser-webpack-plugin: 5.3.14(@swc/core@1.4.2)(esbuild@0.25.11)(webpack@5.100.2(@swc/core@1.4.2)(esbuild@0.25.11)) watchpack: 2.4.2 webpack-sources: 3.3.3 transitivePeerDependencies: @@ -33280,7 +33547,7 @@ snapshots: is-async-function: 2.1.1 is-date-object: 1.1.0 is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.0 + is-generator-function: 1.1.2 is-regex: 1.2.1 is-weakref: 1.1.1 isarray: 2.0.5 diff --git a/prod.Dockerfile b/prod.Dockerfile index a9996af5d70..42789e935e1 100644 --- a/prod.Dockerfile +++ b/prod.Dockerfile @@ -1,6 +1,6 @@ # This step is used to build a custom build of Caddy to prevent # vulnerable packages on the dependency chain -FROM alpine:3.22.1 AS caddy_builder +FROM alpine:3.22.2 AS caddy_builder RUN apk add --no-cache curl git && \ mkdir -p /tmp/caddy-build && \ curl -L -o /tmp/caddy-build/src.tar.gz https://github.com/caddyserver/caddy/releases/download/v2.10.2/caddy_2.10.2_src.tar.gz @@ -12,9 +12,9 @@ RUN expected="a9efa00c161922dd24650fd0bee2f4f8bb2fb69ff3e63dcc44f0694da64bb0cf" echo "✅ Caddy Source Checksum OK" || \ (echo "❌ Caddy Source Checksum failed!" && exit 1) -# Install Go 1.25.1 from GitHub releases to fix CVE-2025-47907 +# Install Go 1.25.3 from GitHub releases to fix CVE-2025-47907 ARG TARGETARCH -ENV GOLANG_VERSION=1.25.1 +ENV GOLANG_VERSION=1.25.3 # Download and install Go from the official tarball RUN case "${TARGETARCH}" in amd64) GOARCH=amd64 ;; arm64) GOARCH=arm64 ;; *) echo "Unsupported arch: ${TARGETARCH}" && exit 1 ;; esac && \ curl -fsSL "https://go.dev/dl/go${GOLANG_VERSION}.linux-${GOARCH}.tar.gz" -o go.tar.gz && \ @@ -27,6 +27,8 @@ ENV PATH="/usr/local/go/bin:${PATH}" \ WORKDIR /tmp/caddy-build RUN tar xvf /tmp/caddy-build/src.tar.gz && \ + # Patch to resolve CVE on quic-go + go get github.com/quic-go/quic-go@v0.55.0 && \ # Clean up any existing vendor directory and regenerate with updated deps rm -rf vendor && \ go mod tidy && \ @@ -39,12 +41,27 @@ RUN go build # Shared Node.js base with optimized NPM installation -FROM alpine:3.22.1 AS node_base -RUN apk add --no-cache nodejs npm curl tini bash && \ - # apk provides an outdated npm; immediately upgrade to a pinned version to avoid vulnerabilities - # TODO: Find a better method which is resistant to supply chain attacks - npm install -g npm@11.6.0 && \ - npm install -g pnpm@10.17.1 @import-meta-env/cli +FROM alpine:3.22.2 AS node_base +# Install dependencies +RUN apk add --no-cache nodejs curl bash tini ca-certificates \ + && mkdir -p /tmp/npm-install +# Set working directory for NPM installation +WORKDIR /tmp/npm-install +# Download NPM tarball +RUN curl -fsSL https://registry.npmjs.org/npm/-/npm-11.6.2.tgz -o npm.tgz +# Verify checksum +RUN expected="585f95094ee5cb2788ee11d90f2a518a7c9ef6e083fa141d0b63ca3383675a20" \ + && actual=$(sha256sum npm.tgz | cut -d' ' -f1) \ + && [ "$actual" = "$expected" ] \ + && echo "✅ NPM Tarball Checksum OK" \ + || (echo "❌ NPM Tarball Checksum failed!" && exit 1) +# Install NPM from verified tarball and global packages +RUN tar -xzf npm.tgz && \ + cd package && \ + node bin/npm-cli.js install -g npm@11.6.2 && \ + cd / && \ + rm -rf /tmp/npm-install && \ + npm install -g pnpm@10.18.3 @import-meta-env/cli From aa1583763a6ff1a663fcf6eef72b7c5649381489 Mon Sep 17 00:00:00 2001 From: Nivedin <53208152+nivedin@users.noreply.github.com> Date: Wed, 22 Oct 2025 19:06:29 +0530 Subject: [PATCH 06/33] fix: avoid rapid polling while fetching teams in selector (#5485) --- .../src/components/app/Header.vue | 4 +- .../src/components/workspace/Selector.vue | 46 ++++++++++++------- .../src/helpers/import-export/import/hopp.ts | 2 +- .../hoppscotch-common/src/modules/tippy.ts | 8 ++++ .../src/newstore/collections.ts | 2 +- .../std/kernel-interceptors/agent/index.ts | 8 ++-- .../src/services/team-collection.service.ts | 9 ++++ 7 files changed, 55 insertions(+), 24 deletions(-) diff --git a/packages/hoppscotch-common/src/components/app/Header.vue b/packages/hoppscotch-common/src/components/app/Header.vue index 7c7668293fc..11ac0b699ae 100644 --- a/packages/hoppscotch-common/src/components/app/Header.vue +++ b/packages/hoppscotch-common/src/components/app/Header.vue @@ -203,7 +203,7 @@ class="!focus-visible:text-blue-600 !hover:text-blue-600 h-8 rounded border border-blue-600/25 bg-blue-500/10 pr-8 !text-blue-500 hover:border-blue-600/20 hover:bg-blue-600/20 focus-visible:border-blue-600/20 focus-visible:bg-blue-600/20" /> - @@ -1073,6 +1077,51 @@ const updateEditingCollection = async (newName: string) => { } } +const createMockServer = (payload: { + collectionIndex: string + collection: HoppCollection +}) => { + // Import the mock server store dynamically to avoid circular dependencies + import("~/newstore/mockServers").then(({ showCreateMockServerModal$ }) => { + // For personal collections, use the collection's _ref_id or id + // For child collections, we need to get the root collection ID + let collectionID = + payload.collection.id || + payload.collection._ref_id || + payload.collectionIndex + + // If this is a child collection (folder), we need to get the root collection ID + if (payload.collectionIndex.includes("/")) { + // Extract the root collection index from the path (e.g., "0/1/2" -> "0") + const rootIndex = payload.collectionIndex.split("/")[0] + const rootCollection = myCollections.value[parseInt(rootIndex)] + if (rootCollection) { + collectionID = rootCollection.id || rootCollection._ref_id || rootIndex + } + } + + showCreateMockServerModal$.next({ + show: true, + collectionID: collectionID, + collectionName: payload.collection.name, + }) + }) +} + +const createTeamMockServer = (payload: { + collectionID: string + collection: TeamCollection +}) => { + // Import the mock server store dynamically to avoid circular dependencies + import("~/newstore/mockServers").then(({ showCreateMockServerModal$ }) => { + showCreateMockServerModal$.next({ + show: true, + collectionID: payload.collectionID, + collectionName: payload.collection.title, + }) + }) +} + const editFolder = (payload: { folderPath: string | undefined folder: HoppCollection | TeamCollection diff --git a/packages/hoppscotch-common/src/components/http/Sidebar.vue b/packages/hoppscotch-common/src/components/http/Sidebar.vue index b62836b1c04..aff2b99b692 100644 --- a/packages/hoppscotch-common/src/components/http/Sidebar.vue +++ b/packages/hoppscotch-common/src/components/http/Sidebar.vue @@ -51,6 +51,18 @@ class="px-4 mt-4" /> + +

+ {{ t("tab.mock_servers") }} +
+ + @@ -60,8 +72,10 @@ import IconLayers from "~icons/lucide/layers" import IconFolder from "~icons/lucide/folder" import IconShare2 from "~icons/lucide/share-2" import IconCode from "~icons/lucide/code" +import IconServer from "~icons/lucide/server" import { ref } from "vue" import { useI18n } from "@composables/i18n" +import MockServerDashboard from "~/components/mockServer/MockServerDashboard.vue" const t = useI18n() @@ -71,6 +85,7 @@ type RequestOptionTabs = | "env" | "share-request" | "codegen" + | "mock-servers" const selectedNavigationTab = ref("collections") diff --git a/packages/hoppscotch-common/src/components/mockServer/CreateMockServer.vue b/packages/hoppscotch-common/src/components/mockServer/CreateMockServer.vue new file mode 100644 index 00000000000..d330a35113b --- /dev/null +++ b/packages/hoppscotch-common/src/components/mockServer/CreateMockServer.vue @@ -0,0 +1,550 @@ + + + diff --git a/packages/hoppscotch-common/src/components/mockServer/EditMockServer.vue b/packages/hoppscotch-common/src/components/mockServer/EditMockServer.vue new file mode 100644 index 00000000000..bf900a514bb --- /dev/null +++ b/packages/hoppscotch-common/src/components/mockServer/EditMockServer.vue @@ -0,0 +1,209 @@ + + + diff --git a/packages/hoppscotch-common/src/components/mockServer/MockServerDashboard.vue b/packages/hoppscotch-common/src/components/mockServer/MockServerDashboard.vue new file mode 100644 index 00000000000..0de14ae8636 --- /dev/null +++ b/packages/hoppscotch-common/src/components/mockServer/MockServerDashboard.vue @@ -0,0 +1,403 @@ + + + diff --git a/packages/hoppscotch-common/src/components/mockServer/MockServerLogs.vue b/packages/hoppscotch-common/src/components/mockServer/MockServerLogs.vue new file mode 100644 index 00000000000..a226c0a04d2 --- /dev/null +++ b/packages/hoppscotch-common/src/components/mockServer/MockServerLogs.vue @@ -0,0 +1,162 @@ + + + diff --git a/packages/hoppscotch-common/src/composables/mockServer.ts b/packages/hoppscotch-common/src/composables/mockServer.ts new file mode 100644 index 00000000000..ac3c7e3544b --- /dev/null +++ b/packages/hoppscotch-common/src/composables/mockServer.ts @@ -0,0 +1,70 @@ +import { computed } from "vue" +import { useReadonlyStream } from "~/composables/stream" +import { mockServers$ } from "~/newstore/mockServers" +import type { MockServer } from "~/newstore/mockServers" + +/** + * Composable to get mock server status for collections + */ +export function useMockServerStatus() { + const mockServers = useReadonlyStream(mockServers$, []) + + /** + * Get mock server for a specific collection + */ + const getMockServerForCollection = ( + collectionId: string + ): MockServer | null => { + return ( + mockServers.value.find( + (server) => + server.collection?.id === collectionId || + server.collectionID === collectionId + ) || null + ) + } + + /** + * Check if a collection has an active mock server + */ + const hasActiveMockServer = (collectionId: string): boolean => { + const mockServer = getMockServerForCollection(collectionId) + return mockServer?.isActive === true + } + + /** + * Check if a collection has any mock server (active or inactive) + */ + const hasMockServer = (collectionId: string): boolean => { + return getMockServerForCollection(collectionId) !== null + } + + /** + * Get mock server status for a collection + */ + const getMockServerStatus = (collectionId: string) => { + const mockServer = getMockServerForCollection(collectionId) + + if (!mockServer) { + return { + exists: false, + isActive: false, + mockServer: null, + } + } + + return { + exists: true, + isActive: mockServer.isActive, + mockServer, + } + } + + return { + mockServers: computed(() => mockServers.value), + getMockServerForCollection, + hasActiveMockServer, + hasMockServer, + getMockServerStatus, + } +} diff --git a/packages/hoppscotch-common/src/helpers/backend/gql/mutations/CreateMockServer.graphql b/packages/hoppscotch-common/src/helpers/backend/gql/mutations/CreateMockServer.graphql new file mode 100644 index 00000000000..8e48e024a2d --- /dev/null +++ b/packages/hoppscotch-common/src/helpers/backend/gql/mutations/CreateMockServer.graphql @@ -0,0 +1,23 @@ +mutation CreateMockServer($input: CreateMockServerInput!) { + createMockServer(input: $input) { + id + name + subdomain + serverUrlPathBased + serverUrlDomainBased + workspaceType + workspaceID + delayInMs + isPublic + isActive + createdOn + updatedOn + creator { + uid + } + collection { + id + title + } + } +} diff --git a/packages/hoppscotch-common/src/helpers/backend/gql/mutations/DeleteMockServer.graphql b/packages/hoppscotch-common/src/helpers/backend/gql/mutations/DeleteMockServer.graphql new file mode 100644 index 00000000000..5920809069f --- /dev/null +++ b/packages/hoppscotch-common/src/helpers/backend/gql/mutations/DeleteMockServer.graphql @@ -0,0 +1,3 @@ +mutation DeleteMockServer($id: ID!) { + deleteMockServer(id: $id) +} diff --git a/packages/hoppscotch-common/src/helpers/backend/gql/mutations/DeleteMockServerLog.graphql b/packages/hoppscotch-common/src/helpers/backend/gql/mutations/DeleteMockServerLog.graphql new file mode 100644 index 00000000000..0c916e91723 --- /dev/null +++ b/packages/hoppscotch-common/src/helpers/backend/gql/mutations/DeleteMockServerLog.graphql @@ -0,0 +1,3 @@ +mutation DeleteMockServerLog($logID: ID!) { + deleteMockServerLog(logID: $logID) +} diff --git a/packages/hoppscotch-common/src/helpers/backend/gql/mutations/UpdateMockServer.graphql b/packages/hoppscotch-common/src/helpers/backend/gql/mutations/UpdateMockServer.graphql new file mode 100644 index 00000000000..728458f72b5 --- /dev/null +++ b/packages/hoppscotch-common/src/helpers/backend/gql/mutations/UpdateMockServer.graphql @@ -0,0 +1,23 @@ +mutation UpdateMockServer($id: ID!, $input: UpdateMockServerInput!) { + updateMockServer(id: $id, input: $input) { + id + name + subdomain + serverUrlPathBased + serverUrlDomainBased + workspaceType + workspaceID + delayInMs + isPublic + isActive + createdOn + updatedOn + creator { + uid + } + collection { + id + title + } + } +} diff --git a/packages/hoppscotch-common/src/helpers/backend/gql/queries/GetMockServer.graphql b/packages/hoppscotch-common/src/helpers/backend/gql/queries/GetMockServer.graphql new file mode 100644 index 00000000000..9839596c436 --- /dev/null +++ b/packages/hoppscotch-common/src/helpers/backend/gql/queries/GetMockServer.graphql @@ -0,0 +1,23 @@ +query GetMockServer($id: ID!) { + mockServer(id: $id) { + id + name + subdomain + serverUrlPathBased + serverUrlDomainBased + workspaceType + workspaceID + delayInMs + isPublic + isActive + createdOn + updatedOn + creator { + uid + } + collection { + id + title + } + } +} diff --git a/packages/hoppscotch-common/src/helpers/backend/gql/queries/GetMockServerLogs.graphql b/packages/hoppscotch-common/src/helpers/backend/gql/queries/GetMockServerLogs.graphql new file mode 100644 index 00000000000..a3f1d7f6112 --- /dev/null +++ b/packages/hoppscotch-common/src/helpers/backend/gql/queries/GetMockServerLogs.graphql @@ -0,0 +1,18 @@ +query GetMockServerLogs($mockServerID: ID!, $skip: Int, $take: Int) { + mockServerLogs(mockServerID: $mockServerID, skip: $skip, take: $take) { + id + mockServerID + requestMethod + requestPath + requestHeaders + requestBody + requestQuery + responseStatus + responseHeaders + responseBody + responseTime + ipAddress + userAgent + executedAt + } +} diff --git a/packages/hoppscotch-common/src/helpers/backend/gql/queries/GetMyMockServers.graphql b/packages/hoppscotch-common/src/helpers/backend/gql/queries/GetMyMockServers.graphql new file mode 100644 index 00000000000..6da2d1159db --- /dev/null +++ b/packages/hoppscotch-common/src/helpers/backend/gql/queries/GetMyMockServers.graphql @@ -0,0 +1,23 @@ +query GetMyMockServers($skip: Int, $take: Int) { + myMockServers(skip: $skip, take: $take) { + id + name + subdomain + serverUrlPathBased + serverUrlDomainBased + workspaceType + workspaceID + delayInMs + isPublic + isActive + createdOn + updatedOn + creator { + uid + } + collection { + id + title + } + } +} diff --git a/packages/hoppscotch-common/src/helpers/backend/gql/queries/GetTeamMockServers.graphql b/packages/hoppscotch-common/src/helpers/backend/gql/queries/GetTeamMockServers.graphql new file mode 100644 index 00000000000..1ac7fd4f5bf --- /dev/null +++ b/packages/hoppscotch-common/src/helpers/backend/gql/queries/GetTeamMockServers.graphql @@ -0,0 +1,23 @@ +query GetTeamMockServers($teamID: ID!, $skip: Int, $take: Int) { + teamMockServers(teamID: $teamID, skip: $skip, take: $take) { + id + name + subdomain + serverUrlPathBased + serverUrlDomainBased + workspaceType + workspaceID + delayInMs + isPublic + isActive + createdOn + updatedOn + creator { + uid + } + collection { + id + title + } + } +} diff --git a/packages/hoppscotch-common/src/helpers/backend/mutations/MockServer.ts b/packages/hoppscotch-common/src/helpers/backend/mutations/MockServer.ts new file mode 100644 index 00000000000..0d14f3c7385 --- /dev/null +++ b/packages/hoppscotch-common/src/helpers/backend/mutations/MockServer.ts @@ -0,0 +1,185 @@ +import * as TE from "fp-ts/TaskEither" +import { client } from "../GQLClient" +import { + CreateMockServerDocument, + UpdateMockServerDocument, + DeleteMockServerDocument, + GetTeamMockServersDocument, + WorkspaceType, +} from "../graphql" + +// Types for mock server +export type MockServer = { + id: string + name: string + subdomain: string + serverUrlPathBased?: string + serverUrlDomainBased?: string | null + workspaceType: WorkspaceType + workspaceID?: string | null + delayInMs?: number + isPublic: boolean + isActive: boolean + createdOn: Date + updatedOn: Date + creator?: { + uid: string + } + collection?: { + id: string + title: string + requests?: any[] + } + // Legacy fields for backward compatibility + userUid?: string + collectionID?: string +} + +type CreateMockServerError = + | "mock_server/invalid_collection_id" + | "mock_server/name_too_short" + | "mock_server/limit_exceeded" + | "mock_server/already_exists" + +type UpdateMockServerError = + | "mock_server/not_found" + | "mock_server/access_denied" + +type DeleteMockServerError = + | "mock_server/not_found" + | "mock_server/access_denied" + +export const createMockServer = ( + name: string, + collectionID: string, + workspaceType: WorkspaceType = WorkspaceType.User, + workspaceID?: string, + delayInMs: number = 0, + isPublic: boolean = true +) => + TE.tryCatch( + async () => { + const result = await client + .value!.mutation(CreateMockServerDocument, { + input: { + name, + collectionID, + workspaceType, + workspaceID, + delayInMs, + isPublic, + }, + }) + .toPromise() + + if (result.error) { + throw new Error(result.error.message || "Failed to create mock server") + } + + if (!result.data) { + throw new Error("No data returned from create mock server mutation") + } + + const data = result.data.createMockServer + // Map the GraphQL response to frontend format + return { + ...data, + userUid: data.creator?.uid || "", // Legacy field + collectionID: data.collection?.id || collectionID, // Legacy field + } as MockServer + }, + (error) => (error as Error).message as CreateMockServerError + ) + +export const updateMockServer = ( + id: string, + input: { + name?: string + isActive?: boolean + delayInMs?: number + isPublic?: boolean + } +) => + TE.tryCatch( + async () => { + const result = await client + .value!.mutation(UpdateMockServerDocument, { + id, + input, + }) + .toPromise() + + if (result.error) { + throw new Error(result.error.message || "Failed to update mock server") + } + + if (!result.data) { + throw new Error("No data returned from update mock server mutation") + } + + const data = result.data.updateMockServer + // Map the GraphQL response to frontend format + return { + ...data, + userUid: data.creator?.uid || "", // Legacy field + collectionID: data.collection?.id || "", // Legacy field + } as MockServer + }, + (error) => (error as Error).message as UpdateMockServerError + ) + +export const deleteMockServer = (id: string) => + TE.tryCatch( + async () => { + const result = await client + .value!.mutation(DeleteMockServerDocument, { id }) + .toPromise() + + if (result.error) { + throw new Error(result.error.message || "Failed to delete mock server") + } + + if (!result.data) { + throw new Error("No data returned from delete mock server mutation") + } + + return result.data.deleteMockServer as boolean + }, + (error) => (error as Error).message as DeleteMockServerError + ) + +export const getTeamMockServers = ( + teamID: string, + skip?: number, + take?: number +) => + TE.tryCatch( + async () => { + const result = await client + .value!.query(GetTeamMockServersDocument, { + teamID, + skip, + take, + }) + .toPromise() + + if (result.error) { + throw new Error( + result.error.message || "Failed to get team mock servers" + ) + } + + if (!result.data) { + throw new Error("No data returned from get team mock servers query") + } + + const data = result.data.teamMockServers + // Map the GraphQL response to frontend format + return data.map((mockServer: any) => ({ + ...mockServer, + userUid: mockServer.creator?.uid || "", // Legacy field + collectionID: mockServer.collection?.id || "", // Legacy field + })) as MockServer[] + }, + (error) => (error as Error).message as CreateMockServerError + ) diff --git a/packages/hoppscotch-common/src/helpers/backend/queries/MockServer.ts b/packages/hoppscotch-common/src/helpers/backend/queries/MockServer.ts new file mode 100644 index 00000000000..43538cd0907 --- /dev/null +++ b/packages/hoppscotch-common/src/helpers/backend/queries/MockServer.ts @@ -0,0 +1,96 @@ +import * as TE from "fp-ts/TaskEither" +import * as E from "fp-ts/Either" +import { runGQLQuery } from "../GQLClient" +import { + GetMyMockServersDocument, + GetTeamMockServersDocument, + GetMockServerDocument, + type GetMyMockServersQuery, + type GetTeamMockServersQuery, + type GetMockServerQuery, +} from "../graphql" + +type GetMyMockServersError = "user/not_authenticated" + +type GetTeamMockServersError = "team/not_found" | "team/access_denied" + +type GetMockServerError = "mock_server/not_found" | "mock_server/access_denied" + +export const getMyMockServers = (skip?: number, take?: number) => + TE.tryCatch( + async () => { + const result = await runGQLQuery({ + query: GetMyMockServersDocument, + variables: { skip, take }, + }) + + if (E.isLeft(result)) { + throw result.left + } + + const data = result.right as GetMyMockServersQuery + // Map the GraphQL response to frontend format + return data.myMockServers.map((mockServer) => ({ + ...mockServer, + creator: mockServer.creator + ? { uid: mockServer.creator.uid } + : undefined, + userUid: mockServer.creator?.uid || "", // Legacy field + collectionID: mockServer.collection?.id || "", // Legacy field + })) + }, + (error) => error as GetMyMockServersError + ) + +export const getTeamMockServers = ( + teamID: string, + skip?: number, + take?: number +) => + TE.tryCatch( + async () => { + const result = await runGQLQuery({ + query: GetTeamMockServersDocument, + variables: { teamID, skip, take }, + }) + + if (E.isLeft(result)) { + throw result.left + } + + const data = result.right as GetTeamMockServersQuery + // Map the GraphQL response to frontend format + return data.teamMockServers.map((mockServer) => ({ + ...mockServer, + creator: mockServer.creator + ? { uid: mockServer.creator.uid } + : undefined, + userUid: mockServer.creator?.uid || "", // Legacy field + collectionID: mockServer.collection?.id || "", // Legacy field + })) + }, + (error) => error as GetTeamMockServersError + ) + +export const getMockServer = (id: string) => + TE.tryCatch( + async () => { + const result = await runGQLQuery({ + query: GetMockServerDocument, + variables: { id }, + }) + + if (E.isLeft(result)) { + throw result.left + } + + const data = result.right as GetMockServerQuery + // Map the GraphQL response to frontend format + return { + ...data.mockServer, + userUid: data.mockServer.creator?.uid || "", // Legacy field + collectionID: data.mockServer.collection?.id || "", // Legacy field + } + }, + (error) => error as GetMockServerError + ) diff --git a/packages/hoppscotch-common/src/helpers/backend/queries/MockServerLogs.ts b/packages/hoppscotch-common/src/helpers/backend/queries/MockServerLogs.ts new file mode 100644 index 00000000000..2e30b2c1232 --- /dev/null +++ b/packages/hoppscotch-common/src/helpers/backend/queries/MockServerLogs.ts @@ -0,0 +1,55 @@ +import * as TE from "fp-ts/TaskEither" +import { client } from "../GQLClient" +import { + GetMockServerLogsDocument, + GetMockServerLogsQuery, + GetMockServerLogsQueryVariables, + DeleteMockServerLogDocument, + DeleteMockServerLogMutation, + DeleteMockServerLogMutationVariables, +} from "../graphql" + +export const getMockServerLogs = ( + mockServerID: string, + skip?: number, + take?: number +) => + TE.tryCatch( + async () => { + const result = await client + .value!.query< + GetMockServerLogsQuery, + GetMockServerLogsQueryVariables + >(GetMockServerLogsDocument, { mockServerID, skip, take }) + .toPromise() + + if (result.error) + throw new Error( + result.error.message || "Failed to fetch mock server logs" + ) + if (!result.data) throw new Error("No data returned from mockServerLogs") + + return result.data.mockServerLogs + }, + (e) => (e as Error).message + ) + +export const deleteMockServerLog = (logID: string) => + TE.tryCatch( + async () => { + const result = await client + .value!.mutation< + DeleteMockServerLogMutation, + DeleteMockServerLogMutationVariables + >(DeleteMockServerLogDocument, { logID }) + .toPromise() + if (result.error) + throw new Error( + result.error.message || "Failed to delete mock server log" + ) + if (!result.data) + throw new Error("No data returned from deleteMockServerLog") + return result.data.deleteMockServerLog as boolean + }, + (e) => (e as Error).message + ) diff --git a/packages/hoppscotch-common/src/newstore/mockServers.ts b/packages/hoppscotch-common/src/newstore/mockServers.ts new file mode 100644 index 00000000000..6a1f415ecb5 --- /dev/null +++ b/packages/hoppscotch-common/src/newstore/mockServers.ts @@ -0,0 +1,221 @@ +import { pluck } from "rxjs/operators" +import { BehaviorSubject } from "rxjs" +import DispatchingStore, { defineDispatchers } from "./DispatchingStore" +import { + getMyMockServers, + getTeamMockServers, +} from "~/helpers/backend/queries/MockServer" +import { pipe } from "fp-ts/function" +import * as TE from "fp-ts/TaskEither" +import { getService } from "~/modules/dioc" +import { WorkspaceService } from "~/services/workspace.service" + +export type WorkspaceType = "USER" | "TEAM" + +export type MockServer = { + id: string + name: string + subdomain: string + serverUrlPathBased?: string + serverUrlDomainBased?: string | null + workspaceType: WorkspaceType + workspaceID?: string | null + delayInMs?: number + isPublic: boolean + isActive: boolean + createdOn: Date + updatedOn: Date + creator?: { + uid: string + } + collection?: { + id: string + title: string + requests?: any[] + } + // Legacy fields for backward compatibility + userUid?: string + collectionID?: string +} + +export type CreateMockServerInput = { + name: string + collectionID: string + workspaceType?: WorkspaceType + workspaceID?: string + delayInMs?: number + isPublic?: boolean +} + +export type UpdateMockServerInput = { + name?: string + isActive?: boolean + delayInMs?: number + isPublic?: boolean +} + +export type CreateMockServerModalData = { + show: boolean + collectionID?: string + collectionName?: string +} + +const defaultMockServerState = { + mockServers: [] as MockServer[], +} + +type MockServerStoreType = typeof defaultMockServerState + +const mockServerDispatchers = defineDispatchers({ + setMockServers( + _: MockServerStoreType, + { mockServers }: { mockServers: MockServer[] } + ) { + return { + mockServers, + } + }, + + addMockServer( + { mockServers }: MockServerStoreType, + { mockServer }: { mockServer: MockServer } + ) { + return { + mockServers: [...mockServers, mockServer], + } + }, + + updateMockServer( + { mockServers }: MockServerStoreType, + { id, updates }: { id: string; updates: Partial } + ) { + return { + mockServers: mockServers.map((server) => + server.id === id ? { ...server, ...updates } : server + ), + } + }, + + deleteMockServer( + { mockServers }: MockServerStoreType, + { id }: { id: string } + ) { + return { + mockServers: mockServers.filter((server) => server.id !== id), + } + }, +}) + +export const mockServerStore = new DispatchingStore( + defaultMockServerState, + mockServerDispatchers +) + +export const mockServers$ = mockServerStore.subject$.pipe(pluck("mockServers")) + +export function setMockServers(mockServers: MockServer[]) { + mockServerStore.dispatch({ + dispatcher: "setMockServers", + payload: { mockServers }, + }) +} + +export function addMockServer(mockServer: MockServer) { + mockServerStore.dispatch({ + dispatcher: "addMockServer", + payload: { mockServer }, + }) +} + +export function updateMockServer(id: string, updates: Partial) { + mockServerStore.dispatch({ + dispatcher: "updateMockServer", + payload: { id, updates }, + }) +} + +export function deleteMockServer(id: string) { + mockServerStore.dispatch({ + dispatcher: "deleteMockServer", + payload: { id }, + }) +} + +// Modal state management +const defaultCreateMockServerModalState: CreateMockServerModalData = { + show: false, + collectionID: undefined, + collectionName: undefined, +} + +export const showCreateMockServerModal$ = new BehaviorSubject( + defaultCreateMockServerModalState +) + +// Load mock servers from backend (workspace-aware) +export function loadMockServers(skip?: number, take?: number) { + try { + const workspaceService = getService(WorkspaceService) + const currentWorkspace = workspaceService.currentWorkspace.value + + if (currentWorkspace.type === "team" && currentWorkspace.teamID) { + return loadTeamMockServers(currentWorkspace.teamID, skip, take) + } + return pipe( + getMyMockServers(skip, take), + TE.match( + (error) => { + console.error("Failed to load mock servers:", error) + }, + (mockServers) => { + setMockServers(mockServers) + } + ) + )() + } catch (error) { + // Fallback to user mock servers if workspace service is not available + return pipe( + getMyMockServers(skip, take), + TE.match( + (error) => { + console.error("Failed to load mock servers:", error) + }, + (mockServers) => { + setMockServers(mockServers) + } + ) + )() + } +} + +// Load team mock servers from backend +export function loadTeamMockServers( + teamID: string, + skip?: number, + take?: number +) { + return pipe( + getTeamMockServers(teamID, skip, take), + TE.match( + (error) => { + console.error("Failed to load team mock servers:", error) + }, + (mockServers) => { + setMockServers(mockServers) + } + ) + )() +} + +// Load mock servers based on workspace context +export function loadMockServersForWorkspace( + workspaceType: "personal" | "team", + teamID?: string, + skip?: number, + take?: number +) { + if (workspaceType === "team" && teamID) { + return loadTeamMockServers(teamID, skip, take) + } + return loadMockServers(skip, take) +} diff --git a/packages/hoppscotch-selfhost-desktop/src/platform/collections/collections.platform.ts b/packages/hoppscotch-selfhost-desktop/src/platform/collections/collections.platform.ts index e774fb4efdc..f4c535c2ede 100644 --- a/packages/hoppscotch-selfhost-desktop/src/platform/collections/collections.platform.ts +++ b/packages/hoppscotch-selfhost-desktop/src/platform/collections/collections.platform.ts @@ -51,6 +51,7 @@ import { updateRESTCollectionOrder, updateRESTRequestOrder, } from "@hoppscotch/common/newstore/collections" +import { loadMockServers } from "@hoppscotch/common/newstore/mockServers" import { GQLHeader, HoppCollection, @@ -74,6 +75,7 @@ function initCollectionsSync() { gqlCollectionsSyncer.startStoreSync() + // TODO: fix collection schema transformation on backend maybe? loadUserCollections("REST") loadUserCollections("GQL") @@ -82,6 +84,7 @@ function initCollectionsSync() { if (user) { loadUserCollections("REST") loadUserCollections("GQL") + loadMockServers() } }) diff --git a/packages/hoppscotch-selfhost-web/src/platform/collections/desktop/index.ts b/packages/hoppscotch-selfhost-web/src/platform/collections/desktop/index.ts index ce2f063731a..5d64aeb2967 100644 --- a/packages/hoppscotch-selfhost-web/src/platform/collections/desktop/index.ts +++ b/packages/hoppscotch-selfhost-web/src/platform/collections/desktop/index.ts @@ -51,6 +51,7 @@ import { updateRESTCollectionOrder, updateRESTRequestOrder, } from "@hoppscotch/common/newstore/collections" +import { loadMockServers } from "@hoppscotch/common/newstore/mockServers" import { generateUniqueRefId, GQLHeader, @@ -84,6 +85,7 @@ function initCollectionsSync() { if (user) { loadUserCollections("REST") loadUserCollections("GQL") + loadMockServers() } }) diff --git a/packages/hoppscotch-selfhost-web/src/platform/collections/web/index.ts b/packages/hoppscotch-selfhost-web/src/platform/collections/web/index.ts index 348eb46b1df..0e315d63281 100644 --- a/packages/hoppscotch-selfhost-web/src/platform/collections/web/index.ts +++ b/packages/hoppscotch-selfhost-web/src/platform/collections/web/index.ts @@ -51,6 +51,7 @@ import { updateRESTCollectionOrder, updateRESTRequestOrder, } from "@hoppscotch/common/newstore/collections" +import { loadMockServers } from "@hoppscotch/common/newstore/mockServers" import { generateUniqueRefId, GQLHeader, @@ -84,6 +85,7 @@ function initCollectionsSync() { if (user) { loadUserCollections("REST") loadUserCollections("GQL") + loadMockServers() } }) diff --git a/packages/hoppscotch-sh-admin/locales/en.json b/packages/hoppscotch-sh-admin/locales/en.json index 3d9ff4b6121..d972d9d0b13 100644 --- a/packages/hoppscotch-sh-admin/locales/en.json +++ b/packages/hoppscotch-sh-admin/locales/en.json @@ -101,7 +101,7 @@ "rate_limit": { "description": "Configure rate limiting for your Hoppscotch instance", "rate_limit_max": "Maximum Requests", - "rate_limit_ttl": "Time to Leave (in seconds)", + "rate_limit_ttl": "Time to Leave (in milliseconds)", "title": "Rate Limit Configurations", "update_failure": "Failed to update rate limit configurations!!", "input_validation_error": "Please enter valid values for rate limit configurations" @@ -129,6 +129,14 @@ "reset": "Reset Configurations" }, "title": "Configurations", + "mock_server": { + "title": "Mock Server", + "description": "Configure mock server settings used to host example responses.", + "wildcard_domain": "Wildcard Domain", + "wildcard_domain_placeholder": "e.g. *.example.com", + "secure_cookies": "Allow secure cookies", + "secure_cookies_desc": "Use secure cookies for responses from the mock server" + }, "update_failure": "Failed to update server configurations" }, "data_sharing": { diff --git a/packages/hoppscotch-sh-admin/src/components.d.ts b/packages/hoppscotch-sh-admin/src/components.d.ts index 04f55310b58..4b350a540a1 100644 --- a/packages/hoppscotch-sh-admin/src/components.d.ts +++ b/packages/hoppscotch-sh-admin/src/components.d.ts @@ -3,7 +3,7 @@ // Generated by unplugin-vue-components // Read more: https://github.com/vuejs/core/pull/3399 // biome-ignore lint: disable -export {}; +export {} /* prettier-ignore */ declare module 'vue' { @@ -58,10 +58,12 @@ declare module 'vue' { SettingsConfigurations: typeof import('./components/settings/Configurations.vue')['default'] SettingsDataSharing: typeof import('./components/settings/DataSharing.vue')['default'] SettingsHistoryConfiguration: typeof import('./components/settings/HistoryConfiguration.vue')['default'] + SettingsMockServerConfig: typeof import('./components/settings/MockServerConfig.vue')['default'] SettingsOAuthProviderConfigurations: typeof import('./components/settings/OAuthProviderConfigurations.vue')['default'] SettingsRateLimit: typeof import('./components/settings/RateLimit.vue')['default'] SettingsReset: typeof import('./components/settings/Reset.vue')['default'] SettingsServerRestart: typeof import('./components/settings/ServerRestart.vue')['default'] + SettingsSettingsMockServer: typeof import('./components/settings/SettingsMockServer.vue')['default'] SettingsSmtpConfiguration: typeof import('./components/settings/SmtpConfiguration.vue')['default'] SetupDataSharingAndNewsletter: typeof import('./components/setup/DataSharingAndNewsletter.vue')['default'] TeamsAdd: typeof import('./components/teams/Add.vue')['default'] diff --git a/packages/hoppscotch-sh-admin/src/components/settings/MockServerConfig.vue b/packages/hoppscotch-sh-admin/src/components/settings/MockServerConfig.vue new file mode 100644 index 00000000000..172a9f9fd0b --- /dev/null +++ b/packages/hoppscotch-sh-admin/src/components/settings/MockServerConfig.vue @@ -0,0 +1,85 @@ + + + diff --git a/packages/hoppscotch-sh-admin/src/composables/useConfigHandler.ts b/packages/hoppscotch-sh-admin/src/composables/useConfigHandler.ts index 7501512d41c..3b4d4f6b0a3 100644 --- a/packages/hoppscotch-sh-admin/src/composables/useConfigHandler.ts +++ b/packages/hoppscotch-sh-admin/src/composables/useConfigHandler.ts @@ -26,6 +26,7 @@ import { GOOGLE_CONFIGS, MAIL_CONFIGS, MICROSOFT_CONFIGS, + MOCK_SERVER_CONFIGS, ServerConfigs, UpdatedConfigs, } from '~/helpers/configs'; @@ -176,6 +177,16 @@ export function useConfigHandler(updatedConfigs?: ServerConfigs) { rate_limit_max: getFieldValue(InfraConfigEnum.RateLimitMax), }, }, + mockServerConfigs: { + name: 'mock_server', + fields: { + mock_server_wildcard_domain: getFieldValue( + InfraConfigEnum.MockServerWildcardDomain + ), + allow_secure_cookies: + getFieldValue(InfraConfigEnum.AllowSecureCookies) === 'true', + }, + }, }; // Cloning the current configs to working configs @@ -343,6 +354,11 @@ export function useConfigHandler(updatedConfigs?: ServerConfigs) { enabled: isCustomMailConfigEnabled, fields: customMailConfigFields, }, + { + config: MOCK_SERVER_CONFIGS, + enabled: true, + fields: updatedConfigs?.mockServerConfigs?.fields ?? {}, + }, ]; const transformedConfigs: UpdatedConfigs[] = []; diff --git a/packages/hoppscotch-sh-admin/src/helpers/configs.ts b/packages/hoppscotch-sh-admin/src/helpers/configs.ts index 9dcaf118a5a..980a8405893 100644 --- a/packages/hoppscotch-sh-admin/src/helpers/configs.ts +++ b/packages/hoppscotch-sh-admin/src/helpers/configs.ts @@ -87,6 +87,13 @@ export type ServerConfigs = { rate_limit_max: string; }; }; + mockServerConfigs?: { + name: string; + fields: { + mock_server_wildcard_domain: string; + allow_secure_cookies: boolean; + }; + }; }; export type UpdatedConfigs = { @@ -269,6 +276,17 @@ export const TOKEN_VALIDATION_CONFIGS: Config[] = [ }, ]; +export const MOCK_SERVER_CONFIGS: Config[] = [ + { + name: InfraConfigEnum.MockServerWildcardDomain, + key: 'mock_server_wildcard_domain', + }, + { + name: InfraConfigEnum.AllowSecureCookies, + key: 'allow_secure_cookies', + }, +]; + export const ALL_CONFIGS = [ GOOGLE_CONFIGS, MICROSOFT_CONFIGS, @@ -279,4 +297,5 @@ export const ALL_CONFIGS = [ HISTORY_STORE_CONFIG, RATE_LIMIT_CONFIGS, TOKEN_VALIDATION_CONFIGS, + MOCK_SERVER_CONFIGS, ]; diff --git a/packages/hoppscotch-sh-admin/src/pages/settings.vue b/packages/hoppscotch-sh-admin/src/pages/settings.vue index d8ef68c15b2..200ceeaca0e 100644 --- a/packages/hoppscotch-sh-admin/src/pages/settings.vue +++ b/packages/hoppscotch-sh-admin/src/pages/settings.vue @@ -37,9 +37,13 @@
+
+ + + From 457ca12be9cff57dd7ff17c8b46bbe5bc2265fe9 Mon Sep 17 00:00:00 2001 From: jamesgeorge007 <25279263+jamesgeorge007@users.noreply.github.com> Date: Mon, 27 Oct 2025 23:04:49 +0530 Subject: [PATCH 17/33] chore: bump version to `2025.10.0` --- packages/hoppscotch-backend/package.json | 2 +- packages/hoppscotch-common/package.json | 2 +- packages/hoppscotch-desktop/package.json | 2 +- packages/hoppscotch-desktop/src-tauri/Cargo.lock | 2 +- packages/hoppscotch-desktop/src-tauri/Cargo.toml | 2 +- packages/hoppscotch-desktop/src-tauri/tauri.conf.json | 2 +- .../src-tauri/tauri.portable.macos.conf.json | 2 +- .../src-tauri/tauri.portable.windows.conf.json | 2 +- packages/hoppscotch-desktop/src/views/Home.vue | 2 +- packages/hoppscotch-selfhost-web/package.json | 2 +- packages/hoppscotch-selfhost-web/src/main.ts | 2 +- .../hoppscotch-selfhost-web/webapp-server/src/bundle/model.rs | 2 +- packages/hoppscotch-selfhost-web/webapp-server/src/config.rs | 4 ++-- packages/hoppscotch-sh-admin/package.json | 2 +- 14 files changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/hoppscotch-backend/package.json b/packages/hoppscotch-backend/package.json index a2e69db7384..0dcb3d57f4b 100644 --- a/packages/hoppscotch-backend/package.json +++ b/packages/hoppscotch-backend/package.json @@ -1,6 +1,6 @@ { "name": "hoppscotch-backend", - "version": "2025.9.2", + "version": "2025.10.0", "description": "", "author": "", "private": true, diff --git a/packages/hoppscotch-common/package.json b/packages/hoppscotch-common/package.json index 266678814c5..e448fd886b8 100644 --- a/packages/hoppscotch-common/package.json +++ b/packages/hoppscotch-common/package.json @@ -1,7 +1,7 @@ { "name": "@hoppscotch/common", "private": true, - "version": "2025.9.2", + "version": "2025.10.0", "scripts": { "dev": "pnpm exec npm-run-all -p -l dev:*", "test": "vitest --run", diff --git a/packages/hoppscotch-desktop/package.json b/packages/hoppscotch-desktop/package.json index b2262a4b519..7ffc277bcb3 100644 --- a/packages/hoppscotch-desktop/package.json +++ b/packages/hoppscotch-desktop/package.json @@ -1,7 +1,7 @@ { "name": "hoppscotch-desktop", "private": true, - "version": "25.9.2", + "version": "25.10.0", "type": "module", "scripts": { "dev": "vite", diff --git a/packages/hoppscotch-desktop/src-tauri/Cargo.lock b/packages/hoppscotch-desktop/src-tauri/Cargo.lock index a990c8c7798..85819fe09e2 100644 --- a/packages/hoppscotch-desktop/src-tauri/Cargo.lock +++ b/packages/hoppscotch-desktop/src-tauri/Cargo.lock @@ -2307,7 +2307,7 @@ dependencies = [ [[package]] name = "hoppscotch-desktop" -version = "25.9.2" +version = "25.10.0" dependencies = [ "axum", "dirs 6.0.0", diff --git a/packages/hoppscotch-desktop/src-tauri/Cargo.toml b/packages/hoppscotch-desktop/src-tauri/Cargo.toml index 5fa4a581759..9fe36e23c2b 100644 --- a/packages/hoppscotch-desktop/src-tauri/Cargo.toml +++ b/packages/hoppscotch-desktop/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hoppscotch-desktop" -version = "25.9.2" +version = "25.10.0" description = "Desktop App for hoppscotch.io" authors = ["CuriousCorrelation"] edition = "2021" diff --git a/packages/hoppscotch-desktop/src-tauri/tauri.conf.json b/packages/hoppscotch-desktop/src-tauri/tauri.conf.json index 0ca3eaa2ccb..206490c3447 100644 --- a/packages/hoppscotch-desktop/src-tauri/tauri.conf.json +++ b/packages/hoppscotch-desktop/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "Hoppscotch", - "version": "25.9.2", + "version": "25.10.0", "identifier": "io.hoppscotch.desktop", "build": { "beforeDevCommand": "pnpm dev", diff --git a/packages/hoppscotch-desktop/src-tauri/tauri.portable.macos.conf.json b/packages/hoppscotch-desktop/src-tauri/tauri.portable.macos.conf.json index 0884d130dfe..8e94bf2ed4b 100644 --- a/packages/hoppscotch-desktop/src-tauri/tauri.portable.macos.conf.json +++ b/packages/hoppscotch-desktop/src-tauri/tauri.portable.macos.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "Hoppscotch", - "version": "25.9.2", + "version": "25.10.0", "identifier": "io.hoppscotch.desktop", "build": { "beforeDevCommand": "pnpm dev", diff --git a/packages/hoppscotch-desktop/src-tauri/tauri.portable.windows.conf.json b/packages/hoppscotch-desktop/src-tauri/tauri.portable.windows.conf.json index d66c50fc2df..59bb054e36d 100644 --- a/packages/hoppscotch-desktop/src-tauri/tauri.portable.windows.conf.json +++ b/packages/hoppscotch-desktop/src-tauri/tauri.portable.windows.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "Hoppscotch", - "version": "25.9.2", + "version": "25.10.0", "identifier": "io.hoppscotch.desktop", "build": { "beforeDevCommand": "pnpm dev", diff --git a/packages/hoppscotch-desktop/src/views/Home.vue b/packages/hoppscotch-desktop/src/views/Home.vue index f64d031fde8..3ee12d9c003 100644 --- a/packages/hoppscotch-desktop/src/views/Home.vue +++ b/packages/hoppscotch-desktop/src/views/Home.vue @@ -299,7 +299,7 @@ const loadVendored = async () => { const vendoredInstance: VendoredInstance = { type: "vendored", displayName: "Hoppscotch", - version: "25.9.2", + version: "25.10.0", } const connectionState: ConnectionState = { diff --git a/packages/hoppscotch-selfhost-web/package.json b/packages/hoppscotch-selfhost-web/package.json index 7e181d4c5db..f1e1d2ef13c 100644 --- a/packages/hoppscotch-selfhost-web/package.json +++ b/packages/hoppscotch-selfhost-web/package.json @@ -1,7 +1,7 @@ { "name": "@hoppscotch/selfhost-web", "private": true, - "version": "2025.9.2", + "version": "2025.10.0", "type": "module", "scripts": { "dev:vite": "vite", diff --git a/packages/hoppscotch-selfhost-web/src/main.ts b/packages/hoppscotch-selfhost-web/src/main.ts index d5eb0980393..0bff429749d 100644 --- a/packages/hoppscotch-selfhost-web/src/main.ts +++ b/packages/hoppscotch-selfhost-web/src/main.ts @@ -84,7 +84,7 @@ async function initApp() { displayConfig: { displayName: "Hoppscotch", description: "On-Prem", - version: "25.9.2", + version: "25.10.0", connectingMessage: "Connecting to On-prem", connectedMessage: "Connected to On-prem", }, diff --git a/packages/hoppscotch-selfhost-web/webapp-server/src/bundle/model.rs b/packages/hoppscotch-selfhost-web/webapp-server/src/bundle/model.rs index 10a01dd45e0..a346474456d 100644 --- a/packages/hoppscotch-selfhost-web/webapp-server/src/bundle/model.rs +++ b/packages/hoppscotch-selfhost-web/webapp-server/src/bundle/model.rs @@ -47,7 +47,7 @@ pub struct Bundle { impl Bundle { pub fn new(bundle_version: Option, content: Vec, signature: Signature, files: Vec) -> Self { let metadata = BundleMetadata { - version: "2025.9.2".to_string(), + version: "2025.10.0".to_string(), created_at: Utc::now(), signature, manifest: Manifest { files }, diff --git a/packages/hoppscotch-selfhost-web/webapp-server/src/config.rs b/packages/hoppscotch-selfhost-web/webapp-server/src/config.rs index 20e3e8f83e7..093202d2275 100644 --- a/packages/hoppscotch-selfhost-web/webapp-server/src/config.rs +++ b/packages/hoppscotch-selfhost-web/webapp-server/src/config.rs @@ -54,7 +54,7 @@ impl Default for ServerConfig { Self { port: default_port(), max_bundle_size: default_max_bundle_size(), - bundle_version: Some("2025.9.2".to_string()), + bundle_version: Some("2025.10.0".to_string()), csp_directives: None, signing_key: None, verifying_key: None, @@ -75,7 +75,7 @@ impl ServerConfig { Self { signing_key: Some(key_pair.signing_key), verifying_key: Some(key_pair.verifying_key), - bundle_version: Some("2025.9.2".to_string()), + bundle_version: Some("2025.10.0".to_string()), frontend_path, is_dev: cfg!(debug_assertions), ..Default::default() diff --git a/packages/hoppscotch-sh-admin/package.json b/packages/hoppscotch-sh-admin/package.json index 9266878e539..b4ae0cdbff4 100644 --- a/packages/hoppscotch-sh-admin/package.json +++ b/packages/hoppscotch-sh-admin/package.json @@ -1,7 +1,7 @@ { "name": "hoppscotch-sh-admin", "private": true, - "version": "2025.9.2", + "version": "2025.10.0", "type": "module", "scripts": { "dev": "pnpm exec npm-run-all -p -l dev:*", From 8f7146bd577f4a1e01b3ed5d47b2873b8c3d103b Mon Sep 17 00:00:00 2001 From: jamesgeorge007 <25279263+jamesgeorge007@users.noreply.github.com> Date: Mon, 27 Oct 2025 23:06:27 +0530 Subject: [PATCH 18/33] chore: bump CLI version --- packages/hoppscotch-cli/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/hoppscotch-cli/package.json b/packages/hoppscotch-cli/package.json index 746ef6b03ff..c752f4131d3 100644 --- a/packages/hoppscotch-cli/package.json +++ b/packages/hoppscotch-cli/package.json @@ -1,6 +1,6 @@ { "name": "@hoppscotch/cli", - "version": "0.25.0", + "version": "0.26.0", "description": "A CLI to run Hoppscotch test scripts in CI environments.", "homepage": "https://hoppscotch.io", "type": "module", From 453b5fc088bbbc1bc2717b0db3a70f643e218b27 Mon Sep 17 00:00:00 2001 From: Harshit Chandra Date: Tue, 28 Oct 2025 13:45:08 +0530 Subject: [PATCH 19/33] feat: add configurable session cookie name (#5425) Added support for overriding the default session cookie name using the `INFRA.SESSION_COOKIE_NAME` config or the `SESSION_COOKIE_NAME` environment variable. This helps compatibility with proxies or load balancers that cannot handle cookie names containing dots. --- Co-authored-by: mirarifhasan Co-authored-by: jamesgeorge007 <25279263+jamesgeorge007@users.noreply.github.com> --- .../src/infra-config/helper.ts | 5 ++++ .../src/infra-config/infra-config.service.ts | 5 ++++ packages/hoppscotch-backend/src/main.ts | 7 ++++- .../src/types/InfraConfig.ts | 1 + packages/hoppscotch-sh-admin/locales/en.json | 3 ++ .../src/components/settings/AuthToken.vue | 14 ++++++++++ .../src/composables/useConfigHandler.ts | 28 +++++++++++++++++-- .../src/helpers/configs.ts | 8 ++++++ 8 files changed, 68 insertions(+), 3 deletions(-) diff --git a/packages/hoppscotch-backend/src/infra-config/helper.ts b/packages/hoppscotch-backend/src/infra-config/helper.ts index 496cbb662ab..76b2b1da2ca 100644 --- a/packages/hoppscotch-backend/src/infra-config/helper.ts +++ b/packages/hoppscotch-backend/src/infra-config/helper.ts @@ -127,6 +127,11 @@ export async function getDefaultInfraConfigs(): Promise { value: encrypt(randomBytes(32).toString('hex')), isEncrypted: true, }, + { + name: InfraConfigEnum.SESSION_COOKIE_NAME, + value: null, + isEncrypted: false, + }, { name: InfraConfigEnum.TOKEN_SALT_COMPLEXITY, value: '10', diff --git a/packages/hoppscotch-backend/src/infra-config/infra-config.service.ts b/packages/hoppscotch-backend/src/infra-config/infra-config.service.ts index dc0dc4b639b..28086d27c2f 100644 --- a/packages/hoppscotch-backend/src/infra-config/infra-config.service.ts +++ b/packages/hoppscotch-backend/src/infra-config/infra-config.service.ts @@ -734,6 +734,11 @@ export class InfraConfigService implements OnModuleInit { return fail(); break; + case InfraConfigEnum.SESSION_COOKIE_NAME: + // Allow empty to fall back to default; otherwise enforce allowed characters + if (value && !/^[A-Za-z0-9_-]+$/.test(value)) return fail(); + break; + default: break; } diff --git a/packages/hoppscotch-backend/src/main.ts b/packages/hoppscotch-backend/src/main.ts index 3dd11812545..7c39255707d 100644 --- a/packages/hoppscotch-backend/src/main.ts +++ b/packages/hoppscotch-backend/src/main.ts @@ -49,8 +49,13 @@ async function bootstrap() { app.use( session({ + // Allow overriding the default cookie name 'connect.sid' (which contains a dot). + // Some proxies/load balancers (like older Kong versions) cannot hash cookie names with dots, + // so we allow setting an alternative name via the INFRA.SESSION_COOKIE_NAME configuration. + name: + configService.get('INFRA.SESSION_COOKIE_NAME') || 'connect.sid', secret: - configService.get('INFRA.SESSION_SECRET') || + configService.get('INFRA.SESSION_SECRET') || crypto.randomBytes(16).toString('hex'), }), ); diff --git a/packages/hoppscotch-backend/src/types/InfraConfig.ts b/packages/hoppscotch-backend/src/types/InfraConfig.ts index 3f5c56d1b6b..0a86e088b7c 100644 --- a/packages/hoppscotch-backend/src/types/InfraConfig.ts +++ b/packages/hoppscotch-backend/src/types/InfraConfig.ts @@ -4,6 +4,7 @@ export enum InfraConfigEnum { JWT_SECRET = 'JWT_SECRET', SESSION_SECRET = 'SESSION_SECRET', + SESSION_COOKIE_NAME = 'SESSION_COOKIE_NAME', TOKEN_SALT_COMPLEXITY = 'TOKEN_SALT_COMPLEXITY', MAGIC_LINK_TOKEN_VALIDITY = 'MAGIC_LINK_TOKEN_VALIDITY', REFRESH_TOKEN_VALIDITY = 'REFRESH_TOKEN_VALIDITY', diff --git a/packages/hoppscotch-sh-admin/locales/en.json b/packages/hoppscotch-sh-admin/locales/en.json index d972d9d0b13..5ec5955bd64 100644 --- a/packages/hoppscotch-sh-admin/locales/en.json +++ b/packages/hoppscotch-sh-admin/locales/en.json @@ -52,6 +52,9 @@ "refresh_token_validity": "Refresh Token Validity (in milliseconds)", "access_token_validity": "Access Token Validity (in milliseconds)", "session_secret": "Session Secret", + "session_cookie_name": "Session Cookie Name (optional)", + "session_cookie_name_help": "Only letters, numbers, underscore, and hyphen. Leave empty to use default 'connect.sid'.", + "session_cookie_name_invalid": "Invalid cookie name. Only letters, numbers, underscore, and hyphen allowed.", "update_failure": "Failed to update token configurations!!" }, "update_failure": "Failed to update authentication provider configurations!!" diff --git a/packages/hoppscotch-sh-admin/src/components/settings/AuthToken.vue b/packages/hoppscotch-sh-admin/src/components/settings/AuthToken.vue index 8fd40fb486d..3749bd47106 100644 --- a/packages/hoppscotch-sh-admin/src/components/settings/AuthToken.vue +++ b/packages/hoppscotch-sh-admin/src/components/settings/AuthToken.vue @@ -133,6 +133,20 @@ +
+ + +

+ {{ t('configs.auth_providers.token.session_cookie_name_help') }} +

+
diff --git a/packages/hoppscotch-sh-admin/src/composables/useConfigHandler.ts b/packages/hoppscotch-sh-admin/src/composables/useConfigHandler.ts index 3b4d4f6b0a3..df3b0f539b5 100644 --- a/packages/hoppscotch-sh-admin/src/composables/useConfigHandler.ts +++ b/packages/hoppscotch-sh-admin/src/composables/useConfigHandler.ts @@ -28,12 +28,19 @@ import { MICROSOFT_CONFIGS, MOCK_SERVER_CONFIGS, ServerConfigs, + TOKEN_VALIDATION_CONFIGS, UpdatedConfigs, } from '~/helpers/configs'; import { getCompiledErrorMessage } from '~/helpers/errors'; import { useToast } from './toast'; import { useClientHandler } from './useClientHandler'; +const COOKIE_NAME_REGEX = /^[A-Za-z0-9_-]+$/; + +const OPTIONAL_TOKEN_FIELD_KEYS = new Set( + TOKEN_VALIDATION_CONFIGS.filter((cfg) => cfg.optional).map((cfg) => cfg.key) +); + /** Composable that handles all operations related to server configurations * @param updatedConfigs A Config Object containing the updated configs */ @@ -154,6 +161,7 @@ export function useConfigHandler(updatedConfigs?: ServerConfigs) { InfraConfigEnum.AccessTokenValidity ), session_secret: getFieldValue(InfraConfigEnum.SessionSecret), + session_cookie_name: getFieldValue(InfraConfigEnum.SessionCookieName), }, }, dataSharingConfigs: { @@ -286,8 +294,12 @@ export function useConfigHandler(updatedConfigs?: ServerConfigs) { // This section has no enabled property, so we check fields directly // for a valid number (>0) or non-empty string - if (section.name === 'token') - return Object.values(section.fields).some(isFieldNotValid); + if (section.name === 'token') { + return Object.entries(section.fields).some( + ([key, value]) => + !OPTIONAL_TOKEN_FIELD_KEYS.has(key) && isFieldNotValid(value) + ); + } // For rate limit section, we want to check if the values are not valid numbers // and not empty strings @@ -573,6 +585,14 @@ export function useConfigHandler(updatedConfigs?: ServerConfigs) { const sessionSecret = String( updatedConfigs?.tokenConfigs.fields.session_secret ); + const sessionCookieName = String( + updatedConfigs?.tokenConfigs.fields.session_cookie_name || '' + ); + // Validate cookie name: allow empty (falls back to default), else enforce pattern + if (sessionCookieName && !COOKIE_NAME_REGEX.test(sessionCookieName)) { + toast.error(t('configs.auth_providers.token.session_cookie_name_invalid')); + return false; + } if ( isFieldEmpty(jwtSecret) || isFieldEmpty(tokenSaltComplexity) || @@ -610,6 +630,10 @@ export function useConfigHandler(updatedConfigs?: ServerConfigs) { name: InfraConfigEnum.SessionSecret, value: sessionSecret, }, + { + name: InfraConfigEnum.SessionCookieName, + value: sessionCookieName, + }, ]; return executeMutation( diff --git a/packages/hoppscotch-sh-admin/src/helpers/configs.ts b/packages/hoppscotch-sh-admin/src/helpers/configs.ts index 980a8405893..89e95ab66c9 100644 --- a/packages/hoppscotch-sh-admin/src/helpers/configs.ts +++ b/packages/hoppscotch-sh-admin/src/helpers/configs.ts @@ -67,6 +67,7 @@ export type ServerConfigs = { refresh_token_validity: string; access_token_validity: string; session_secret: string; + session_cookie_name: string; }; }; @@ -116,6 +117,8 @@ export type ConfigSection = { export type Config = { name: InfraConfigEnum; key: string; + // Marks fields that are optional and should be excluded from mandatory validation + optional?: boolean; }; export const GOOGLE_CONFIGS: Config[] = [ @@ -258,6 +261,11 @@ export const TOKEN_VALIDATION_CONFIGS: Config[] = [ name: InfraConfigEnum.SessionSecret, key: 'session_secret', }, + { + name: InfraConfigEnum.SessionCookieName, + key: 'session_cookie_name', + optional: true, + }, { name: InfraConfigEnum.TokenSaltComplexity, key: 'token_salt_complexity', From 9a4e5a7f7e9b2714744e2d8d8954a872f4c3beec Mon Sep 17 00:00:00 2001 From: Chhavi Goyal Date: Tue, 28 Oct 2025 13:38:55 -0400 Subject: [PATCH 20/33] fix(js-sandbox): resolve environment variable fallback behavior (#5439) Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: nivedin Co-authored-by: jamesgeorge007 <25279263+jamesgeorge007@users.noreply.github.com> --- .../combined/env-fallback-behavior.spec.ts | 864 ++++++++++++++++++ .../src/cage-modules/utils/base-inputs.ts | 6 + .../hoppscotch-js-sandbox/src/types/index.ts | 73 +- .../hoppscotch-js-sandbox/src/utils/shared.ts | 96 +- 4 files changed, 1005 insertions(+), 34 deletions(-) create mode 100644 packages/hoppscotch-js-sandbox/src/__tests__/combined/env-fallback-behavior.spec.ts diff --git a/packages/hoppscotch-js-sandbox/src/__tests__/combined/env-fallback-behavior.spec.ts b/packages/hoppscotch-js-sandbox/src/__tests__/combined/env-fallback-behavior.spec.ts new file mode 100644 index 00000000000..2d84689d509 --- /dev/null +++ b/packages/hoppscotch-js-sandbox/src/__tests__/combined/env-fallback-behavior.spec.ts @@ -0,0 +1,864 @@ +/** + * Environment Variable Fallback Behavior Tests + * + * Tests the fallback from currentValue to initialValue when currentValue is empty + * across pm.environment and hopp.env namespaces. + */ + +import { describe, expect, test } from "vitest" +import { runTest } from "~/utils/test-helpers" + +// All namespaces share the same environment variable fallback implementation +// Testing: pm.environment (active scope) and hopp.env +// Note: pm.globals uses same implementation as pm.environment, just different scope +const NAMESPACES = [ + { + name: "pm.environment", + get: "pm.environment.get", + set: "pm.environment.set", + }, + { name: "hopp.env", get: "hopp.env.get", set: "hopp.env.set" }, +] as const + +describe("Environment Variable Fallback Behavior - All Namespaces", () => { + describe.each(NAMESPACES)( + "$name - currentValue empty string fallback", + ({ get }) => { + test("should fallback to initialValue when currentValue is empty string", async () => { + const envs = { + global: [], + selected: [ + { + key: "testVar", + currentValue: "", // Empty string + initialValue: "fallback_value", + secret: false, + }, + ], + } + + const result = await runTest( + ` + const value = ${get}("testVar") + pm.test("should get fallback value", () => { + pm.expect(value).to.equal("fallback_value") + }) + `, + envs + )() + + expect(result).toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) + + test("should return empty string when both currentValue and initialValue are empty", async () => { + const envs = { + global: [], + selected: [ + { + key: "testVar", + currentValue: "", + initialValue: "", + secret: false, + }, + ], + } + + const result = await runTest( + ` + const value = ${get}("testVar") + pm.test("should get empty string", () => { + pm.expect(value).to.equal("") + }) + `, + envs + )() + + expect(result).toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) + } + ) + + describe.each(NAMESPACES)( + "$name - currentValue undefined/null fallback", + ({ get }) => { + // Note: These tests check GET behavior with null/undefined in initial state. + // Setting null via pm.environment.set(key, null) is currently NOT supported. + // These tests validate fallback logic when null/undefined exists in the env state, + // which can occur through other means (e.g., test setup, external sources). + + test("should fallback to initialValue when currentValue is undefined", async () => { + const envs = { + global: [], + selected: [ + { + key: "testVar", + currentValue: undefined, + initialValue: "fallback_value", + secret: false, + }, + ], + } + + const result = await runTest( + ` + const value = ${get}("testVar") + pm.test("should get fallback value", () => { + pm.expect(value).to.equal("fallback_value") + }) + `, + envs + )() + + expect(result).toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) + + test("should fallback to initialValue when currentValue is null", async () => { + const envs = { + global: [], + selected: [ + { + key: "testVar", + currentValue: null, + initialValue: "fallback_value", + secret: false, + }, + ], + } + + const result = await runTest( + ` + const value = ${get}("testVar") + pm.test("should get fallback value for null", () => { + pm.expect(value).to.equal("fallback_value") + }) + `, + envs + )() + + expect(result).toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) + } + ) + + describe.each(NAMESPACES)( + "$name - falsy values should NOT fallback", + ({ get }) => { + test("should use currentValue when it is 0 (not fallback)", async () => { + const envs = { + global: [], + selected: [ + { + key: "testVar", + currentValue: 0, + initialValue: 100, + secret: false, + }, + ], + } + + const result = await runTest( + ` + const value = ${get}("testVar") + pm.test("should get 0, not fallback to 100", () => { + pm.expect(value).to.equal(0) + }) + `, + envs + )() + + expect(result).toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) + + test("should use currentValue when it is false (not fallback)", async () => { + const envs = { + global: [], + selected: [ + { + key: "testVar", + currentValue: false, + initialValue: true, + secret: false, + }, + ], + } + + const result = await runTest( + ` + const value = ${get}("testVar") + pm.test("should get false, not fallback to true", () => { + pm.expect(value).to.equal(false) + }) + `, + envs + )() + + expect(result).toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) + + test("should use currentValue when it is empty array (not fallback)", async () => { + const envs = { + global: [], + selected: [ + { + key: "testVar", + currentValue: [], + initialValue: [1, 2, 3], + secret: false, + }, + ], + } + + const result = await runTest( + ` + const value = ${get}("testVar") + pm.test("should get empty array, not fallback", () => { + pm.expect(value).to.be.an("array") + pm.expect(value.length).to.equal(0) + }) + `, + envs + )() + + expect(result).toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) + + test("should use currentValue when it is empty object (not fallback)", async () => { + const envs = { + global: [], + selected: [ + { + key: "testVar", + currentValue: {}, + initialValue: { key: "value" }, + secret: false, + }, + ], + } + + const result = await runTest( + ` + const value = ${get}("testVar") + pm.test("should get empty object, not fallback", () => { + pm.expect(value).to.be.an("object") + pm.expect(Object.keys(value).length).to.equal(0) + }) + `, + envs + )() + + expect(result).toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) + } + ) + + // NaN test - only for pm namespace which preserves non-string types + describe("pm.environment - NaN handling", () => { + test("should use currentValue when it is NaN (not fallback)", async () => { + const envs = { + global: [], + selected: [ + { + key: "testVar", + currentValue: NaN, + initialValue: 100, + secret: false, + }, + ], + } + + const result = await runTest( + ` + const value = pm.environment.get("testVar") + pm.test("should get NaN, not fallback to 100", () => { + pm.expect(Number.isNaN(value)).to.be.true + }) + `, + envs + )() + + expect(result).toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) + }) + + describe.each(NAMESPACES)( + "$name - complex type preservation with fallback", + ({ get }) => { + test("should fallback to initialValue array when currentValue is empty", async () => { + const envs = { + global: [], + selected: [ + { + key: "users", + currentValue: "", + initialValue: [ + { id: 1, name: "Alice" }, + { id: 2, name: "Bob" }, + ], + secret: false, + }, + ], + } + + const result = await runTest( + ` + const value = ${get}("users") + pm.test("should get array from initialValue", () => { + pm.expect(value).to.be.an("array") + pm.expect(value.length).to.equal(2) + pm.expect(value[0].name).to.equal("Alice") + }) + `, + envs + )() + + expect(result).toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + expect.objectContaining({ status: "pass" }), + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) + + test("should fallback to initialValue object when currentValue is null", async () => { + const envs = { + global: [], + selected: [ + { + key: "config", + currentValue: null, + initialValue: { debug: true, maxRetries: 3 }, + secret: false, + }, + ], + } + + const result = await runTest( + ` + const value = ${get}("config") + pm.test("should get object from initialValue", () => { + pm.expect(value).to.be.an("object") + pm.expect(value.debug).to.equal(true) + pm.expect(value.maxRetries).to.equal(3) + }) + `, + envs + )() + + expect(result).toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + expect.objectContaining({ status: "pass" }), + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) + } + ) + + describe.each(NAMESPACES)( + "$name - global vs selected scope fallback", + ({ name, get }) => { + test("should fallback to initialValue in global scope", async () => { + const envs = { + global: [ + { + key: "globalVar", + currentValue: "", + initialValue: "global_fallback", + secret: false, + }, + ], + selected: [], + } + + // Use hopp.env.global.get for hopp, pm.globals.get for pm + const globalGet = + name === "pm.environment" ? "pm.globals.get" : "hopp.env.global.get" + + const result = await runTest( + ` + const value = ${globalGet}("globalVar") + pm.test("should get global fallback value", () => { + pm.expect(value).to.equal("global_fallback") + }) + `, + envs + )() + + expect(result).toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) + + test("should fallback in selected scope even when global has a value", async () => { + const envs = { + global: [ + { + key: "sharedVar", + currentValue: "global_value", + initialValue: "global_initial", + secret: false, + }, + ], + selected: [ + { + key: "sharedVar", + currentValue: "", // Empty in selected + initialValue: "selected_initial", + secret: false, + }, + ], + } + + const result = await runTest( + ` + const value = ${get}("sharedVar") + pm.test("should get selected scope's initialValue, not global", () => { + pm.expect(value).to.equal("selected_initial") + }) + `, + envs + )() + + expect(result).toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) + } + ) + + describe.each(NAMESPACES)( + "$name - runtime modification and fallback", + ({ get, set }) => { + test("should use newly set value, not fallback to initialValue", async () => { + const envs = { + global: [], + selected: [ + { + key: "testVar", + currentValue: "", + initialValue: "initial", + secret: false, + }, + ], + } + + const result = await runTest( + ` + // First, verify it falls back to initialValue + const before = ${get}("testVar") + pm.test("before set: should get initial value", () => { + pm.expect(before).to.equal("initial") + }) + + // Now set a new value + ${set}("testVar", "runtime_value") + + // Verify it uses the newly set value + const after = ${get}("testVar") + pm.test("after set: should get runtime value", () => { + pm.expect(after).to.equal("runtime_value") + }) + `, + envs + )() + + expect(result).toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) + + test("should fallback when currentValue is set to empty string at runtime", async () => { + const envs = { + global: [], + selected: [ + { + key: "testVar", + currentValue: "original", + initialValue: "fallback", + secret: false, + }, + ], + } + + const result = await runTest( + ` + // First, verify original value + const before = ${get}("testVar") + pm.test("before: should get original value", () => { + pm.expect(before).to.equal("original") + }) + + // Set to empty string + ${set}("testVar", "") + + // Should now fall back to initialValue + const after = ${get}("testVar") + pm.test("after setting empty: should fallback to initial", () => { + pm.expect(after).to.equal("fallback") + }) + `, + envs + )() + + expect(result).toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) + } + ) + + // PM namespace returns undefined for non-existent keys + describe("pm.environment - non-existent variable behavior", () => { + test("should return undefined for non-existent variable (not fallback)", async () => { + const envs = { + global: [], + selected: [], + } + + const result = await runTest( + ` + const value = pm.environment.get("nonExistent") + pm.test("should get undefined for non-existent", () => { + pm.expect(value).to.be.undefined + }) + `, + envs + )() + + expect(result).toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) + }) + + // Hopp namespace returns null for non-existent keys + describe("hopp.env - non-existent variable behavior", () => { + test("should return null for non-existent variable (not fallback)", async () => { + const envs = { + global: [], + selected: [], + } + + const result = await runTest( + ` + const value = hopp.env.get("nonExistent") + pm.test("should get null for non-existent", () => { + pm.expect(value).to.be.null + }) + `, + envs + )() + + expect(result).toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) + }) +}) + +// Additional tests for pm.variables which searches both scopes +describe("pm.variables - Fallback Behavior Across Scopes", () => { + test("should fallback to initialValue in selected scope first", async () => { + const envs = { + global: [ + { + key: "sharedVar", + currentValue: "global_value", + initialValue: "global_initial", + secret: false, + }, + ], + selected: [ + { + key: "sharedVar", + currentValue: "", + initialValue: "selected_initial", + secret: false, + }, + ], + } + + const result = await runTest( + ` + const value = pm.variables.get("sharedVar") + pm.test("should get selected scope's initialValue", () => { + pm.expect(value).to.equal("selected_initial") + }) + `, + envs + )() + + expect(result).toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) + + test("should search global scope when selected scope variable doesn't exist", async () => { + const envs = { + global: [ + { + key: "globalOnly", + currentValue: "", + initialValue: "global_fallback", + secret: false, + }, + ], + selected: [], + } + + const result = await runTest( + ` + const value = pm.variables.get("globalOnly") + pm.test("should get global scope's initialValue", () => { + pm.expect(value).to.equal("global_fallback") + }) + `, + envs + )() + + expect(result).toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) + + test("should return undefined when variable doesn't exist in either scope", async () => { + const envs = { + global: [], + selected: [], + } + + const result = await runTest( + ` + const value = pm.variables.get("nonExistent") + pm.test("should get undefined", () => { + pm.expect(value).to.be.undefined + }) + `, + envs + )() + + expect(result).toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) +}) diff --git a/packages/hoppscotch-js-sandbox/src/cage-modules/utils/base-inputs.ts b/packages/hoppscotch-js-sandbox/src/cage-modules/utils/base-inputs.ts index b6238f3fa59..9dc09210b97 100644 --- a/packages/hoppscotch-js-sandbox/src/cage-modules/utils/base-inputs.ts +++ b/packages/hoppscotch-js-sandbox/src/cage-modules/utils/base-inputs.ts @@ -13,6 +13,12 @@ import { createPmNamespaceMethods } from "../namespaces/pm-namespace" import { createPwNamespaceMethods } from "../namespaces/pw-namespace" type BaseInputsConfig = { + /** + * Environment variables typed as TestResult["envs"] for external API compatibility. + * At runtime, this will be mutated to contain SandboxValue types (arrays, objects, etc.) + * during script execution to support PM namespace compatibility. + * See `getSharedEnvMethods()` for detailed explanation of the type flow. + */ envs: TestResult["envs"] request: HoppRESTRequest cookies: Cookie[] | null diff --git a/packages/hoppscotch-js-sandbox/src/types/index.ts b/packages/hoppscotch-js-sandbox/src/types/index.ts index f7979da723a..467de548a40 100644 --- a/packages/hoppscotch-js-sandbox/src/types/index.ts +++ b/packages/hoppscotch-js-sandbox/src/types/index.ts @@ -22,11 +22,21 @@ type SandboxFunction = ReturnType * - Return values sent back to the sandbox * - PM namespace compatibility (preserves non-string types like arrays, objects) * + * Supported types for environment variable values: + * - Primitives: string, number, boolean, null, undefined + * - Objects: plain objects, arrays (recursively containing these types) + * - Unsupported: Functions, Symbols, and other non-serializable types + * + * Note: Typed as `any` because this type is used in multiple contexts: + * 1. Environment variable storage (supports primitives, objects, arrays) + * 2. Function parameters from user scripts (requires runtime validation) + * 3. Internal object properties (may include QuickJS handles) + * * @example * ```typescript * // Function accepting values from user scripts * const envSetAny = (key: SandboxValue, value: SandboxValue) => { - * // Runtime validation + * // Runtime validation required since type is `any` * if (typeof key !== "string") throw new Error("Expected string key") * // ... handle value * } @@ -85,23 +95,67 @@ export type TestDescriptor = { children: TestDescriptor[] } -// Representation of a transformed state for environment variables in the sandbox -type TransformedEnvironmentVariable = { +/** + * Internal representation of environment variables within the sandbox runtime. + * + * Values can be complex types (arrays, objects) while executing scripts. + * This type is exported for internal use within js-sandbox but should NOT + * be used by consuming packages - use `EnvironmentVariable` instead. + * + * @internal + */ +export type SandboxEnvironmentVariable = { key: string - currentValue: string - initialValue: string + currentValue: SandboxValue // Can be arrays, objects, primitives + initialValue: SandboxValue secret: boolean } /** - * Defines the result of a test script execution + * Internal representation of the envs structure during sandbox execution. + * This is what's used internally, before serialization to TestResult["envs"]. + * + * At runtime, environment variables are stored with SandboxValue types to support + * PM namespace compatibility (arrays, objects, etc.). The serialization to strings + * happens only when getUpdatedEnvs() is called at the end of script execution. + * + * Note: This type is structurally compatible with TestResult["envs"] at runtime, + * but TypeScript sees them as different types due to the SandboxValue vs string + * difference. Use type assertions when converting between them. + * + * @internal */ +export type SandboxEnvs = { + global: SandboxEnvironmentVariable[] + selected: SandboxEnvironmentVariable[] +} +/** + * External representation of environment variables at the API boundary. + * + * All values are serialized to strings when crossing the sandbox boundary + * via getUpdatedEnvs() which calls JSON.stringify() on complex types. + * + * This is what consuming packages (hoppscotch-common, cli, etc.) receive. + */ +export type EnvironmentVariable = { + key: string + currentValue: string // Always string after serialization + initialValue: string // Always string after serialization + secret: boolean +} + +/** + * Defines the result of a test script execution. + * + * Note: envs contain EnvironmentVariable (strings) not SandboxValue, + * because values are serialized when leaving the sandbox. + */ export type TestResult = { tests: TestDescriptor[] envs: { - global: TransformedEnvironmentVariable[] - selected: TransformedEnvironmentVariable[] + global: EnvironmentVariable[] + selected: EnvironmentVariable[] } } @@ -280,7 +334,8 @@ export interface BaseInputs cookieGetAll: SandboxFunction cookieDelete: SandboxFunction cookieClear: SandboxFunction - getUpdatedEnvs: () => SandboxValue + // Returns serialized env vars (SandboxValue -> string conversion happens here) + getUpdatedEnvs: () => TestResult["envs"] getUpdatedCookies: () => Cookie[] | null [key: string]: SandboxValue // Index signature for dynamic namespace properties } diff --git a/packages/hoppscotch-js-sandbox/src/utils/shared.ts b/packages/hoppscotch-js-sandbox/src/utils/shared.ts index 7ed653f20af..e57394d9e79 100644 --- a/packages/hoppscotch-js-sandbox/src/utils/shared.ts +++ b/packages/hoppscotch-js-sandbox/src/utils/shared.ts @@ -11,11 +11,11 @@ import { cloneDeep } from "lodash-es" import { Expectation, - GlobalEnvItem, - SelectedEnvItem, TestDescriptor, TestResult, SandboxValue, + SandboxEnvironmentVariable, + SandboxEnvs, } from "../types" export type EnvSource = "active" | "global" | "all" @@ -26,45 +26,45 @@ export type EnvAPIOptions = { const getEnv = ( envName: string, - envs: TestResult["envs"], + envs: SandboxEnvs, options = { source: "all" } ) => { if (options.source === "active") { return O.fromNullable( - envs.selected.find((x: SelectedEnvItem) => x.key === envName) + envs.selected.find((x: SandboxEnvironmentVariable) => x.key === envName) ) } if (options.source === "global") { return O.fromNullable( - envs.global.find((x: GlobalEnvItem) => x.key === envName) + envs.global.find((x: SandboxEnvironmentVariable) => x.key === envName) ) } return O.fromNullable( - envs.selected.find((x: SelectedEnvItem) => x.key === envName) ?? - envs.global.find((x: GlobalEnvItem) => x.key === envName) + envs.selected.find((x: SandboxEnvironmentVariable) => x.key === envName) ?? + envs.global.find((x: SandboxEnvironmentVariable) => x.key === envName) ) } const findEnvIndex = ( envName: string, - envList: SelectedEnvItem[] | GlobalEnvItem[] + envList: SandboxEnvironmentVariable[] ): number => { return envList.findIndex( - (envItem: SelectedEnvItem) => envItem.key === envName + (envItem: SandboxEnvironmentVariable) => envItem.key === envName ) } const setEnv = ( envName: string, envValue: SandboxValue, - envs: TestResult["envs"], + envs: SandboxEnvs, options: { setInitialValue?: boolean; source: EnvSource } = { setInitialValue: false, source: "all", } -): TestResult["envs"] => { +): SandboxEnvs => { const { global, selected } = envs const indexInSelected = findEnvIndex(envName, selected) @@ -108,9 +108,9 @@ const setEnv = ( const unsetEnv = ( envName: string, - envs: TestResult["envs"], + envs: SandboxEnvs, options = { source: "all" } -): TestResult["envs"] => { +): SandboxEnvs => { const { global, selected } = envs const indexInSelected = findEnvIndex(envName, selected) @@ -156,7 +156,7 @@ export function getSharedEnvMethods( } } pmSetAny: (key: string, value: SandboxValue, options?: EnvAPIOptions) => void - updatedEnvs: TestResult["envs"] + updatedEnvs: SandboxEnvs } /** @@ -179,14 +179,36 @@ export function getSharedEnvMethods( resolve: (key: string) => string } } - updatedEnvs: TestResult["envs"] + updatedEnvs: SandboxEnvs } export function getSharedEnvMethods( envs: TestResult["envs"], isHoppNamespace = false ): unknown { - let updatedEnvs = envs + /** + * Type assertion explanation: + * + * The `envs` parameter is typed as `TestResult["envs"]` (with string values) for external API + * compatibility, but at runtime it contains `SandboxValue` types during script execution. + * + * Data flow: + * 1. Entry: External caller passes envs with string values + * { global: [{ key: "count", currentValue: "5", initialValue: "0" }], selected: [] } + * + * 2. Execution: Scripts mutate with complex types (PM namespace compatibility) + * pm.environment.set("users", [{ id: 1, name: "Alice" }, { id: 2, name: "Bob" }]) + * pm.environment.set("config", { debug: true, maxRetries: 3 }) + * // Now: currentValue is an array/object, not a string! + * + * 3. Exit: getUpdatedEnvs() serializes back to strings via JSON.stringify() + * { global: [{ key: "users", currentValue: "[{...}]", initialValue: "[]" }], ... } + * + * The cast acknowledges that during execution (steps 1-3), the runtime type is SandboxEnvs, + * even though the declared type is TestResult["envs"] for API boundary compatibility. + */ + // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion + let updatedEnvs = envs as unknown as SandboxEnvs const envGetFn = ( key: unknown, @@ -200,7 +222,19 @@ export function getSharedEnvMethods( getEnv(key, updatedEnvs, options), O.fold( () => (options.fallbackToNull ? null : undefined), - (env) => env.currentValue // Return value as-is (PM namespace preserves types) + (env) => { + // Get the value to use (currentValue or fallback to initialValue) + // Treat undefined, empty string, and null as "empty" and fallback to initialValue + const valueToUse = + env.currentValue !== undefined && + env.currentValue !== "" && + env.currentValue !== null + ? env.currentValue + : env.initialValue + + // Preserve complex types (arrays, objects) for PM namespace compatibility + return valueToUse + } ) ) @@ -228,15 +262,27 @@ export function getSharedEnvMethods( E.fromOption(() => "INVALID_KEY" as const), E.map((e) => { - // Only resolve templates if the value is a string (PM namespace may have non-strings) - if (typeof e.currentValue === "string") { - return pipe( - parseTemplateStringE(e.currentValue, envVars), - E.getOrElse(() => e.currentValue) - ) + // Get the value to use (currentValue or fallback to initialValue) + // Treat undefined, empty string, and null as "empty" and fallback to initialValue + const valueToUse = + e.currentValue !== undefined && + e.currentValue !== "" && + e.currentValue !== null + ? e.currentValue + : e.initialValue + + // Only resolve templates for string values + // Non-string values (arrays, objects, etc.) are returned as-is for PM namespace compatibility + if (typeof valueToUse !== "string") { + return valueToUse } - // Return non-string values as-is (arrays, objects, null, etc.) - return e.currentValue + + // For string values, resolve templates + return pipe( + parseTemplateStringE(valueToUse, envVars), + // If the recursive resolution failed, return the unresolved value + E.getOrElse(() => valueToUse) + ) }), E.getOrElseW(() => (options.fallbackToNull ? null : undefined)) From 881c71560b0d7238cac78afc009c8ba7a859fd3a Mon Sep 17 00:00:00 2001 From: jamesgeorge007 <25279263+jamesgeorge007@users.noreply.github.com> Date: Wed, 29 Oct 2025 12:32:40 +0530 Subject: [PATCH 21/33] ci: pin Node.js to `v22` to avoid `isolated-vm` incompatibility Node.js `v24` became LTS recently, causing CI failures due to `V8` API incompatibilities with isolated-vm `v5.x`. Pinning to `v22` aligns with our production environment (Alpine `v3.22.1` ships Node.js `v22.16.0`) and ensures build stability. `isolated-vm v6+` will be required for Node.js `v24` support and will be addressed in a future dependency update cycle. --- .github/workflows/tests.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 5d281bca1c2..e58af774e4a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -13,7 +13,10 @@ jobs: strategy: matrix: - node-version: ["lts/*"] + # Pinned to Node.js 22 to maintain compatibility with isolated-vm v5.x + # Node.js 24 requires isolated-vm v6+ due to V8 API changes + # TODO: Upgrade to isolated-vm v6 and support Node.js 24 in future dependency update cycle + node-version: ["22"] steps: - name: Checkout From 213c5436bc165ae460bea8d9c9a60ab586fa838b Mon Sep 17 00:00:00 2001 From: Mir Arif Hasan Date: Wed, 29 Oct 2025 14:41:52 +0600 Subject: [PATCH 22/33] chore: mock server name validation and prevent duplicates (#5524) --- .../src/mock-server/mock-server.model.ts | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/packages/hoppscotch-backend/src/mock-server/mock-server.model.ts b/packages/hoppscotch-backend/src/mock-server/mock-server.model.ts index fc10743e366..cd491518fc7 100644 --- a/packages/hoppscotch-backend/src/mock-server/mock-server.model.ts +++ b/packages/hoppscotch-backend/src/mock-server/mock-server.model.ts @@ -7,15 +7,22 @@ import { registerEnumType, } from '@nestjs/graphql'; import { - IsAlphanumeric, IsNumber, IsOptional, + IsString, + Matches, Max, MaxLength, MinLength, } from 'class-validator'; import { WorkspaceType } from 'src/types/WorkspaceTypes'; +// Regex pattern for mock server name validation +// Allows letters, numbers, spaces, dots, underscores, and hyphens +const MOCK_SERVER_NAME_PATTERN = /^[a-zA-Z0-9 ._-]+$/; +const MOCK_SERVER_NAME_ERROR_MESSAGE = + 'Name can only contain letters, numbers, spaces, dots, underscores, and hyphens'; + @ObjectType() export class MockServer { @Field(() => ID, { @@ -102,9 +109,12 @@ export class CreateMockServerInput { @Field({ description: 'Name of the mock server', }) + @IsString() @MinLength(1) @MaxLength(255) - @IsAlphanumeric() + @Matches(MOCK_SERVER_NAME_PATTERN, { + message: MOCK_SERVER_NAME_ERROR_MESSAGE, + }) name: string; @Field({ @@ -149,10 +159,13 @@ export class UpdateMockServerInput { nullable: true, description: 'Name of the mock server', }) + @IsString() @IsOptional() @MinLength(1) @MaxLength(255) - @IsAlphanumeric() + @Matches(MOCK_SERVER_NAME_PATTERN, { + message: MOCK_SERVER_NAME_ERROR_MESSAGE, + }) name?: string; @Field({ From c0e3ff49b3a0f21cd765babee633953c77e3749a Mon Sep 17 00:00:00 2001 From: Anwarul Islam Date: Wed, 29 Oct 2025 16:55:02 +0600 Subject: [PATCH 23/33] fix (common): address mock server issues and improve the UI (#5517) Co-authored-by: nivedin Co-authored-by: jamesgeorge007 <25279263+jamesgeorge007@users.noreply.github.com> Co-authored-by: mirarifhasan --- .../src/mock-server/mock-server.model.ts | 6 +- .../src/mock-server/mock-server.resolver.ts | 3 +- .../mock-server/mock-server.service.spec.ts | 17 +- .../src/mock-server/mock-server.service.ts | 24 ++- packages/hoppscotch-common/locales/en.json | 4 + .../hoppscotch-common/src/components.d.ts | 3 + .../src/components/collections/Collection.vue | 19 +- .../components/collections/ImportExport.vue | 92 +++++++- .../components/collections/SaveRequest.vue | 2 +- .../collections/graphql/ImportExport.vue | 90 +++++++- .../src/components/collections/index.vue | 9 +- .../src/components/http/Request.vue | 2 +- .../src/components/http/Sidebar.vue | 10 + .../mockServer/CreateMockServer.vue | 146 ++++++------- .../components/mockServer/EditMockServer.vue | 139 +++++++++--- .../src/components/mockServer/LogSection.vue | 114 ++++++++++ .../mockServer/MockServerDashboard.vue | 72 ++----- .../components/mockServer/MockServerLogs.vue | 203 +++++++++++------- .../src/composables/mockServerWorkspace.ts | 51 +++++ .../ImportUserCollectionsFromJSON.graphql | 11 + .../queries/GetGQLRootUserCollections.graphql | 34 +++ .../queries/GetUserRootCollections.graphql | 34 +++ .../helpers/backend/mutations/MockServer.ts | 57 ++++- .../backend/mutations/UserCollection.ts | 203 ++++++++++++++++++ .../src/newstore/mockServers.ts | 17 +- .../src/newstore/settings.ts | 2 + .../hoppscotch-common/src/pages/settings.vue | 13 +- .../persistence/validation-schemas/index.ts | 1 + .../collections/collections.platform.ts | 2 - .../src/platform/collections/desktop/index.ts | 14 +- .../src/platform/collections/web/index.ts | 14 +- packages/hoppscotch-sh-admin/locales/en.json | 5 +- .../components/settings/MockServerConfig.vue | 31 +-- .../src/composables/useConfigHandler.ts | 2 - .../src/helpers/configs.ts | 5 - 35 files changed, 1133 insertions(+), 318 deletions(-) create mode 100644 packages/hoppscotch-common/src/components/mockServer/LogSection.vue create mode 100644 packages/hoppscotch-common/src/composables/mockServerWorkspace.ts create mode 100644 packages/hoppscotch-common/src/helpers/backend/gql/mutations/ImportUserCollectionsFromJSON.graphql create mode 100644 packages/hoppscotch-common/src/helpers/backend/gql/queries/GetGQLRootUserCollections.graphql create mode 100644 packages/hoppscotch-common/src/helpers/backend/gql/queries/GetUserRootCollections.graphql create mode 100644 packages/hoppscotch-common/src/helpers/backend/mutations/UserCollection.ts diff --git a/packages/hoppscotch-backend/src/mock-server/mock-server.model.ts b/packages/hoppscotch-backend/src/mock-server/mock-server.model.ts index cd491518fc7..8cf79e6513e 100644 --- a/packages/hoppscotch-backend/src/mock-server/mock-server.model.ts +++ b/packages/hoppscotch-backend/src/mock-server/mock-server.model.ts @@ -18,10 +18,10 @@ import { import { WorkspaceType } from 'src/types/WorkspaceTypes'; // Regex pattern for mock server name validation -// Allows letters, numbers, spaces, dots, underscores, and hyphens -const MOCK_SERVER_NAME_PATTERN = /^[a-zA-Z0-9 ._-]+$/; +// Allows letters, numbers, spaces, dots, brackets, underscores, and hyphens +const MOCK_SERVER_NAME_PATTERN = /^[a-zA-Z0-9 .()[\]{}<>_-]+$/; const MOCK_SERVER_NAME_ERROR_MESSAGE = - 'Name can only contain letters, numbers, spaces, dots, underscores, and hyphens'; + 'Name can only contain letters, numbers, spaces, dots, brackets, underscores, and hyphens'; @ObjectType() export class MockServer { diff --git a/packages/hoppscotch-backend/src/mock-server/mock-server.resolver.ts b/packages/hoppscotch-backend/src/mock-server/mock-server.resolver.ts index 93893e59f0e..1ea8c83dbbe 100644 --- a/packages/hoppscotch-backend/src/mock-server/mock-server.resolver.ts +++ b/packages/hoppscotch-backend/src/mock-server/mock-server.resolver.ts @@ -55,11 +55,12 @@ export class MockServerResolver { } @ResolveField(() => MockServerCollection, { + nullable: true, description: 'Returns the collection of the mock server', }) async collection( @Parent() mockServer: MockServer, - ): Promise { + ): Promise { const collection = await this.mockServerService.getMockServerCollection( mockServer.id, ); diff --git a/packages/hoppscotch-backend/src/mock-server/mock-server.service.spec.ts b/packages/hoppscotch-backend/src/mock-server/mock-server.service.spec.ts index 45a85afcbea..83801fac313 100644 --- a/packages/hoppscotch-backend/src/mock-server/mock-server.service.spec.ts +++ b/packages/hoppscotch-backend/src/mock-server/mock-server.service.spec.ts @@ -335,7 +335,7 @@ describe('MockServerService', () => { } }); - test('should return error when collection not found', async () => { + test('should return null when collection not found', async () => { mockPrisma.mockServer.findUnique.mockResolvedValue(dbMockServer); mockPrisma.userCollection.findUnique.mockResolvedValue(null); @@ -343,9 +343,9 @@ describe('MockServerService', () => { dbMockServer.id, ); - expect(E.isLeft(result)).toBe(true); - if (E.isLeft(result)) { - expect(result.left).toBe(MOCK_SERVER_INVALID_COLLECTION); + expect(E.isRight(result)).toBe(true); + if (E.isRight(result)) { + expect(result.right).toBe(null); } }); }); @@ -863,6 +863,7 @@ describe('MockServerService', () => { } as any; test('should return example by ID header', async () => { + mockPrisma.userCollection.findUnique.mockResolvedValue(userCollection); mockPrisma.userCollection.findMany.mockResolvedValue([]); // No child collections mockPrisma.userRequest.findMany.mockResolvedValue([userRequest] as any); @@ -882,6 +883,7 @@ describe('MockServerService', () => { }); test('should return example by name header', async () => { + mockPrisma.userCollection.findUnique.mockResolvedValue(userCollection); mockPrisma.userCollection.findMany.mockResolvedValue([]); // No child collections mockPrisma.userRequest.findMany.mockResolvedValue([userRequest] as any); @@ -915,6 +917,7 @@ describe('MockServerService', () => { }, }; + mockPrisma.userCollection.findUnique.mockResolvedValue(userCollection); mockPrisma.userCollection.findMany.mockResolvedValue([]); // No child collections mockPrisma.userRequest.findMany.mockResolvedValue([ requestWith404, @@ -936,6 +939,7 @@ describe('MockServerService', () => { }); test('should match exact path', async () => { + mockPrisma.userCollection.findUnique.mockResolvedValue(userCollection); mockPrisma.userRequest.findMany.mockResolvedValue([userRequest] as any); mockPrisma.userCollection.findMany.mockResolvedValue([]); @@ -964,6 +968,7 @@ describe('MockServerService', () => { }, }; + mockPrisma.userCollection.findUnique.mockResolvedValue(userCollection); mockPrisma.userRequest.findMany.mockResolvedValue([ variableRequest, ] as any); @@ -979,6 +984,7 @@ describe('MockServerService', () => { }); test('should return error when no examples found', async () => { + mockPrisma.userCollection.findUnique.mockResolvedValue(userCollection); mockPrisma.userRequest.findMany.mockResolvedValue([]); mockPrisma.userCollection.findMany.mockResolvedValue([]); @@ -1004,6 +1010,7 @@ describe('MockServerService', () => { }, }; + mockPrisma.userCollection.findUnique.mockResolvedValue(userCollection); mockPrisma.userRequest.findMany.mockResolvedValue([ multipleExamples, ] as any); @@ -1036,6 +1043,7 @@ describe('MockServerService', () => { }, }; + mockPrisma.userCollection.findUnique.mockResolvedValue(userCollection); mockPrisma.userCollection.findMany.mockResolvedValue([]); // No child collections mockPrisma.userRequest.findMany.mockResolvedValue([simpleRequest] as any); @@ -1070,6 +1078,7 @@ describe('MockServerService', () => { }, }; + mockPrisma.teamCollection.findUnique.mockResolvedValue(teamCollection); mockPrisma.teamCollection.findMany.mockResolvedValue([]); // No child collections mockPrisma.teamRequest.findMany.mockResolvedValue([teamRequest] as any); diff --git a/packages/hoppscotch-backend/src/mock-server/mock-server.service.ts b/packages/hoppscotch-backend/src/mock-server/mock-server.service.ts index 3dab1df0d47..133a77cb736 100644 --- a/packages/hoppscotch-backend/src/mock-server/mock-server.service.ts +++ b/packages/hoppscotch-backend/src/mock-server/mock-server.service.ts @@ -222,7 +222,7 @@ export class MockServerService { const collection = await this.prisma.userCollection.findUnique({ where: { id: mockServer.collectionID }, }); - if (!collection) return E.left(MOCK_SERVER_INVALID_COLLECTION); + if (!collection) return E.right(null); return E.right({ id: collection.id, title: collection.title, @@ -231,7 +231,7 @@ export class MockServerService { const collection = await this.prisma.teamCollection.findUnique({ where: { id: mockServer.collectionID }, }); - if (!collection) return E.left(MOCK_SERVER_INVALID_COLLECTION); + if (!collection) return E.right(null); return E.right({ id: collection.id, title: collection.title, @@ -599,6 +599,12 @@ export class MockServerService { // This is used by both custom header lookup and candidate fetching const collectionIds = await this.getCollectionIds(mockServer); + if (collectionIds.length === 0) { + return E.left( + `The collection associated with this mock has been deleted.`, + ); + } + // OPTIMIZATION: Fetch all requests with examples once (single DB query) // This is shared between custom header lookup and candidate matching const requests = await this.fetchRequestsWithExamples( @@ -848,6 +854,13 @@ export class MockServerService { private async getAllUserCollectionIds( rootCollectionId: string, ): Promise { + // First verify the root collection exists + const rootCollection = await this.prisma.userCollection.findUnique({ + where: { id: rootCollectionId }, + }); + + if (!rootCollection) return []; // Collection doesn't exist + const ids = [rootCollectionId]; const children = await this.prisma.userCollection.findMany({ where: { parentID: rootCollectionId }, @@ -868,6 +881,13 @@ export class MockServerService { private async getAllTeamCollectionIds( rootCollectionId: string, ): Promise { + // First verify the root collection exists + const rootCollection = await this.prisma.teamCollection.findUnique({ + where: { id: rootCollectionId }, + }); + + if (!rootCollection) return []; // Collection doesn't exist + const ids = [rootCollectionId]; const children = await this.prisma.teamCollection.findMany({ where: { parentID: rootCollectionId }, diff --git a/packages/hoppscotch-common/locales/en.json b/packages/hoppscotch-common/locales/en.json index 932d4813dbb..4d8000919d8 100644 --- a/packages/hoppscotch-common/locales/en.json +++ b/packages/hoppscotch-common/locales/en.json @@ -855,6 +855,7 @@ "authentication": "Authentication" }, "mock_server": { + "confirm_delete_log": "Are you sure you want to delete this log?", "create_mock_server": "Configure Mock Server", "mock_server_configuration": "Mock Server Configuration", "mock_server_name": "Mock Server Name", @@ -885,6 +886,7 @@ "private_description": "Only authenticated users can access this mock server", "select_collection": "Select a collection", "select_collection_error": "Please select a collection", + "invalid_collection_error": "Failed to create a mock server for the collection.", "url_copied": "URL copied to clipboard", "make_public": "Make Public", "view_logs": "View logs", @@ -1079,6 +1081,7 @@ "ai_request_naming_style_custom": "Custom", "ai_request_naming_style_custom_placeholder": "Enter your custom naming style template...", "experimental_scripting_sandbox": "Experimental scripting sandbox", + "enable_experimental_mock_servers": "Enable Mock Servers", "sync": "Synchronise", "sync_collections": "Collections", "sync_description": "These settings are synced to cloud.", @@ -1375,6 +1378,7 @@ "loading": "Loading...", "message_received": "Message: {message} arrived on topic: {topic}", "mqtt_subscription_failed": "Something went wrong while subscribing to topic: {topic}", + "no_content_found": "No content found", "none": "None", "nothing_found": "Nothing found for", "published_error": "Something went wrong while publishing msg: {topic} to topic: {message}", diff --git a/packages/hoppscotch-common/src/components.d.ts b/packages/hoppscotch-common/src/components.d.ts index e356b63f2a9..5e2b21ea693 100644 --- a/packages/hoppscotch-common/src/components.d.ts +++ b/packages/hoppscotch-common/src/components.d.ts @@ -214,9 +214,11 @@ declare module 'vue' { IconLucideArrowLeft: typeof import('~icons/lucide/arrow-left')['default'] IconLucideArrowUpRight: typeof import('~icons/lucide/arrow-up-right')['default'] IconLucideBrush: typeof import('~icons/lucide/brush')['default'] + IconLucideCheck: typeof import('~icons/lucide/check')['default'] IconLucideCheckCircle: typeof import('~icons/lucide/check-circle')['default'] IconLucideChevronRight: typeof import('~icons/lucide/chevron-right')['default'] IconLucideCircleCheck: typeof import('~icons/lucide/circle-check')['default'] + IconLucideCopy: typeof import('~icons/lucide/copy')['default'] IconLucideGlobe: typeof import('~icons/lucide/globe')['default'] IconLucideHelpCircle: typeof import('~icons/lucide/help-circle')['default'] IconLucideInbox: typeof import('~icons/lucide/inbox')['default'] @@ -260,6 +262,7 @@ declare module 'vue' { LensesResponseBodyRenderer: typeof import('./components/lenses/ResponseBodyRenderer.vue')['default'] MockServerCreateMockServer: typeof import('./components/mockServer/CreateMockServer.vue')['default'] MockServerEditMockServer: typeof import('./components/mockServer/EditMockServer.vue')['default'] + MockServerLogSection: typeof import('./components/mockServer/LogSection.vue')['default'] MockServerMockServerDashboard: typeof import('./components/mockServer/MockServerDashboard.vue')['default'] MockServerMockServerLogs: typeof import('./components/mockServer/MockServerLogs.vue')['default'] MonacoScriptEditor: typeof import('./components/MonacoScriptEditor.vue')['default'] diff --git a/packages/hoppscotch-common/src/components/collections/Collection.vue b/packages/hoppscotch-common/src/components/collections/Collection.vue index 23cac2824da..9ae1eccbf21 100644 --- a/packages/hoppscotch-common/src/components/collections/Collection.vue +++ b/packages/hoppscotch-common/src/components/collections/Collection.vue @@ -135,7 +135,10 @@ @keyup.p="propertiesAction?.$el.click()" @keyup.t="runCollectionAction?.$el.click()" @keyup.s="sortAction?.$el.click()" - @keyup.m="mockServerAction?.$el.click()" + @keyup.m=" + ENABLE_EXPERIMENTAL_MOCK_SERVERS && + mockServerAction?.$el.click() + " @keyup.escape="hide()" > { }) // Mock Server Status +const ENABLE_EXPERIMENTAL_MOCK_SERVERS = useSetting( + "ENABLE_EXPERIMENTAL_MOCK_SERVERS" +) const { getMockServerStatus } = useMockServerStatus() const mockServerStatus = computed(() => { + if (!ENABLE_EXPERIMENTAL_MOCK_SERVERS.value) { + return { exists: false, isActive: false } + } + const collectionId = props.collectionsType === "my-collections" ? (props.data as HoppCollection).id diff --git a/packages/hoppscotch-common/src/components/collections/ImportExport.vue b/packages/hoppscotch-common/src/components/collections/ImportExport.vue index b3dba8e82bb..3eb58aad035 100644 --- a/packages/hoppscotch-common/src/components/collections/ImportExport.vue +++ b/packages/hoppscotch-common/src/components/collections/ImportExport.vue @@ -33,7 +33,11 @@ import { defineStep } from "~/composables/step-components" import AllCollectionImport from "~/components/importExport/ImportExportSteps/AllCollectionImport.vue" import { useI18n } from "~/composables/i18n" import { useToast } from "~/composables/toast" -import { appendRESTCollections, restCollections$ } from "~/newstore/collections" +import { + appendRESTCollections, + restCollections$, + setRESTCollections, +} from "~/newstore/collections" import IconInsomnia from "~icons/hopp/insomnia" import IconPostman from "~icons/hopp/postman" @@ -46,6 +50,11 @@ import { useReadonlyStream } from "~/composables/stream" import IconUser from "~icons/lucide/user" import { getTeamCollectionJSON } from "~/helpers/backend/helpers" +import { + importUserCollectionsFromJSON, + fetchAndConvertUserCollections, +} from "~/helpers/backend/mutations/UserCollection" +import { ReqType } from "~/helpers/backend/graphql" import { platform } from "~/platform" @@ -101,7 +110,7 @@ const showImportFailedError = () => { const handleImportToStore = async (collections: HoppCollection[]) => { const importResult = props.collectionsType.type === "my-collections" - ? importToPersonalWorkspace(collections) + ? await importToPersonalWorkspace(collections) : await importToTeamsWorkspace(collections) if (E.isRight(importResult)) { @@ -111,11 +120,58 @@ const handleImportToStore = async (collections: HoppCollection[]) => { } } -const importToPersonalWorkspace = (collections: HoppCollection[]) => { - appendRESTCollections(collections) - return E.right({ - success: true, - }) +const importToPersonalWorkspace = async (collections: HoppCollection[]) => { + // If user is logged in, try to import to backend first + if (currentUser.value) { + try { + const transformedCollection = collections.map((collection) => + translateToPersonalCollectionFormat(collection) + ) + + const res = await importUserCollectionsFromJSON( + JSON.stringify(transformedCollection), + ReqType.Rest + )() + + if (E.isRight(res)) { + // Backend import succeeded, now fetch and persist collections in store + const fetchResult = await fetchAndConvertUserCollections(ReqType.Rest) + + if (E.isRight(fetchResult)) { + // Replace local collections with backend collections + setRESTCollections(fetchResult.right) + } else { + console.warn( + "Failed to fetch collections from backend after import:", + fetchResult.left + ) + // Still append to local store as fallback + appendRESTCollections(collections) + } + + return E.right({ success: true }) + } + // Backend import failed, fall back to local storage + console.warn( + "Backend import failed, falling back to local storage:", + res.left + ) + appendRESTCollections(collections) + return E.right({ success: true }) + } catch (error) { + // Backend import failed, fall back to local storage + console.warn( + "Backend import failed, falling back to local storage:", + error + ) + appendRESTCollections(collections) + return E.right({ success: true }) + } + } else { + // User not logged in, use local storage + appendRESTCollections(collections) + return E.right({ success: true }) + } } function translateToTeamCollectionFormat(x: HoppCollection) { @@ -140,6 +196,28 @@ function translateToTeamCollectionFormat(x: HoppCollection) { return obj } +function translateToPersonalCollectionFormat(x: HoppCollection) { + const folders: HoppCollection[] = (x.folders ?? []).map( + translateToPersonalCollectionFormat + ) + + const data = { + auth: x.auth, + headers: x.headers, + variables: x.variables, + } + + const obj = { + ...x, + folders, + data, + } + + if (x.id) obj.id = x.id + + return obj +} + const importToTeamsWorkspace = async (collections: HoppCollection[]) => { if (!hasTeamWriteAccess.value || !selectedTeamID.value) { return E.left({ diff --git a/packages/hoppscotch-common/src/components/collections/SaveRequest.vue b/packages/hoppscotch-common/src/components/collections/SaveRequest.vue index ff5b28b0d51..8931046e455 100644 --- a/packages/hoppscotch-common/src/components/collections/SaveRequest.vue +++ b/packages/hoppscotch-common/src/components/collections/SaveRequest.vue @@ -154,7 +154,7 @@ import { TeamWorkspace } from "~/services/workspace.service" import IconSparkle from "~icons/lucide/sparkles" import IconThumbsDown from "~icons/lucide/thumbs-down" import IconThumbsUp from "~icons/lucide/thumbs-up" -import { handleTokenValidation } from "~/helpers/handleTokenValidation"; +import { handleTokenValidation } from "~/helpers/handleTokenValidation" const t = useI18n() const toast = useToast() diff --git a/packages/hoppscotch-common/src/components/collections/graphql/ImportExport.vue b/packages/hoppscotch-common/src/components/collections/graphql/ImportExport.vue index 94d13ba75f5..11a598b75e8 100644 --- a/packages/hoppscotch-common/src/components/collections/graphql/ImportExport.vue +++ b/packages/hoppscotch-common/src/components/collections/graphql/ImportExport.vue @@ -18,6 +18,11 @@ import { useToast } from "~/composables/toast" import { ImporterOrExporter } from "~/components/importExport/types" import { FileSource } from "~/helpers/import-export/import/import-sources/FileSource" import { GistSource } from "~/helpers/import-export/import/import-sources/GistSource" +import { + importUserCollectionsFromJSON, + fetchAndConvertUserCollections, +} from "~/helpers/backend/mutations/UserCollection" +import { ReqType } from "~/helpers/backend/graphql" import IconFolderPlus from "~icons/lucide/folder-plus" import IconUser from "~icons/lucide/user" @@ -28,6 +33,7 @@ import { platform } from "~/platform" import { appendGraphqlCollections, graphqlCollections$, + setGraphqlCollections, } from "~/newstore/collections" import { hoppGqlCollectionsImporter } from "~/helpers/import-export/import/hoppGql" import { gqlCollectionsExporter } from "~/helpers/import-export/export/gqlCollections" @@ -71,7 +77,7 @@ const GqlCollectionsHoppImporter: ImporterOrExporter = { )() if (E.isRight(validatedCollection)) { - handleImportToStore(validatedCollection.right) + await handleImportToStore(validatedCollection.right) platform.analytics?.logEvent({ type: "HOPP_IMPORT_COLLECTION", @@ -110,7 +116,7 @@ const GqlCollectionsGistImporter: ImporterOrExporter = { return } - handleImportToStore(res.right) + await handleImportToStore(res.right) platform.analytics?.logEvent({ type: "HOPP_IMPORT_COLLECTION", @@ -231,9 +237,83 @@ const showImportFailedError = () => { toast.error(t("import.failed")) } -const handleImportToStore = (gqlCollections: HoppCollection[]) => { - appendGraphqlCollections(gqlCollections) - toast.success(t("state.file_imported")) +const handleImportToStore = async (gqlCollections: HoppCollection[]) => { + // If user is logged in, try to import to backend first + if (currentUser.value) { + try { + const transformedCollection = gqlCollections.map((collection) => + translateToPersonalCollectionFormat(collection) + ) + + const res = await importUserCollectionsFromJSON( + JSON.stringify(transformedCollection), + ReqType.Gql + )() + + if (E.isRight(res)) { + // Backend import succeeded, now fetch and persist collections in store + const fetchResult = await fetchAndConvertUserCollections(ReqType.Gql) + + if (E.isRight(fetchResult)) { + // Replace local collections with backend collections + setGraphqlCollections(fetchResult.right) + } else { + console.warn( + "Failed to fetch collections from backend after import:", + fetchResult.left + ) + // Still append to local store as fallback + appendGraphqlCollections(gqlCollections) + } + + toast.success(t("state.file_imported")) + return + } + // Backend import failed, fall back to local storage + console.warn( + "Backend import failed, falling back to local storage:", + res.left + ) + appendGraphqlCollections(gqlCollections) + toast.success(t("state.file_imported")) + return + } catch (error) { + // Backend import failed, fall back to local storage + console.warn( + "Backend import failed, falling back to local storage:", + error + ) + appendGraphqlCollections(gqlCollections) + toast.success(t("state.file_imported")) + return + } + } else { + // User not logged in, use local storage + appendGraphqlCollections(gqlCollections) + toast.success(t("state.file_imported")) + } +} + +function translateToPersonalCollectionFormat(x: HoppCollection) { + const folders: HoppCollection[] = (x.folders ?? []).map( + translateToPersonalCollectionFormat + ) + + const data = { + auth: x.auth, + headers: x.headers, + variables: x.variables, + } + + const obj = { + ...x, + folders, + data, + } + + if (x.id) obj.id = x.id + + return obj } const emit = defineEmits<{ diff --git a/packages/hoppscotch-common/src/components/collections/index.vue b/packages/hoppscotch-common/src/components/collections/index.vue index f71cab6b39c..64b94d52eae 100644 --- a/packages/hoppscotch-common/src/components/collections/index.vue +++ b/packages/hoppscotch-common/src/components/collections/index.vue @@ -1083,12 +1083,7 @@ const createMockServer = (payload: { }) => { // Import the mock server store dynamically to avoid circular dependencies import("~/newstore/mockServers").then(({ showCreateMockServerModal$ }) => { - // For personal collections, use the collection's _ref_id or id - // For child collections, we need to get the root collection ID - let collectionID = - payload.collection.id || - payload.collection._ref_id || - payload.collectionIndex + let collectionID = payload.collection.id ?? undefined // If this is a child collection (folder), we need to get the root collection ID if (payload.collectionIndex.includes("/")) { @@ -1096,7 +1091,7 @@ const createMockServer = (payload: { const rootIndex = payload.collectionIndex.split("/")[0] const rootCollection = myCollections.value[parseInt(rootIndex)] if (rootCollection) { - collectionID = rootCollection.id || rootCollection._ref_id || rootIndex + collectionID = rootCollection.id ?? undefined } } diff --git a/packages/hoppscotch-common/src/components/http/Request.vue b/packages/hoppscotch-common/src/components/http/Request.vue index ffc498108c7..585bfdec84a 100644 --- a/packages/hoppscotch-common/src/components/http/Request.vue +++ b/packages/hoppscotch-common/src/components/http/Request.vue @@ -270,7 +270,7 @@ import { RESTTabService } from "~/services/tab/rest" import { getMethodLabelColor } from "~/helpers/rest/labelColoring" import { WorkspaceService } from "~/services/workspace.service" import { KernelInterceptorService } from "~/services/kernel-interceptor.service" -import { handleTokenValidation } from "~/helpers/handleTokenValidation"; +import { handleTokenValidation } from "~/helpers/handleTokenValidation" const t = useI18n() const interceptorService = useService(KernelInterceptorService) diff --git a/packages/hoppscotch-common/src/components/http/Sidebar.vue b/packages/hoppscotch-common/src/components/http/Sidebar.vue index aff2b99b692..c77d329e360 100644 --- a/packages/hoppscotch-common/src/components/http/Sidebar.vue +++ b/packages/hoppscotch-common/src/components/http/Sidebar.vue @@ -52,6 +52,7 @@ /> ("collections") + +// Ensure mock servers are kept in sync with workspace changes globally +useMockServerWorkspaceSync() diff --git a/packages/hoppscotch-common/src/components/mockServer/CreateMockServer.vue b/packages/hoppscotch-common/src/components/mockServer/CreateMockServer.vue index d330a35113b..7c60016f66d 100644 --- a/packages/hoppscotch-common/src/components/mockServer/CreateMockServer.vue +++ b/packages/hoppscotch-common/src/components/mockServer/CreateMockServer.vue @@ -102,15 +102,25 @@
- {{ mockServerBaseUrl }} + {{ + existingMockServer?.serverUrlPathBased || + existingMockServer?.serverUrlDomainBased || + "" + }}
@@ -121,11 +131,11 @@
-
+
-
-

- - {{ t("mock_server.description") }} +

+

+ + + {{ t("mock_server.description") }} +

@@ -237,12 +251,6 @@ - diff --git a/packages/hoppscotch-common/src/components/mockServer/MockServerDashboard.vue b/packages/hoppscotch-common/src/components/mockServer/MockServerDashboard.vue index 0de14ae8636..e0b7c941a4f 100644 --- a/packages/hoppscotch-common/src/components/mockServer/MockServerDashboard.vue +++ b/packages/hoppscotch-common/src/components/mockServer/MockServerDashboard.vue @@ -58,13 +58,16 @@ @click="openCreateModal" />
-
+
- +
@@ -201,53 +204,48 @@ diff --git a/packages/hoppscotch-common/src/components/mockServer/MockServerLogs.vue b/packages/hoppscotch-common/src/components/mockServer/MockServerLogs.vue index a226c0a04d2..e3862deaa00 100644 --- a/packages/hoppscotch-common/src/components/mockServer/MockServerLogs.vue +++ b/packages/hoppscotch-common/src/components/mockServer/MockServerLogs.vue @@ -3,6 +3,7 @@ v-if="show" dialog :title="t('mock_server.logs_title')" + styles="sm:max-w-4xl" @close="close" > + + diff --git a/packages/hoppscotch-common/src/composables/mockServerWorkspace.ts b/packages/hoppscotch-common/src/composables/mockServerWorkspace.ts new file mode 100644 index 00000000000..1efa7f19830 --- /dev/null +++ b/packages/hoppscotch-common/src/composables/mockServerWorkspace.ts @@ -0,0 +1,51 @@ +import { onMounted, watch } from "vue" +import { useService } from "dioc/vue" +import { WorkspaceService } from "~/services/workspace.service" +import { setMockServers, loadMockServers } from "~/newstore/mockServers" +import { platform } from "~/platform" +import { useSetting } from "./settings" + +/** + * Composable to handle mock server state when workspace changes + * This ensures mock servers are cleared immediately when switching workspaces + * to prevent showing stale data from the previous workspace + */ +export function useMockServerWorkspaceSync() { + const workspaceService = useService(WorkspaceService) + const ENABLE_EXPERIMENTAL_MOCK_SERVERS = useSetting( + "ENABLE_EXPERIMENTAL_MOCK_SERVERS" + ) + const isAuthenticated = !!platform.auth.getCurrentUser() + + // Initial load of mock servers for the current workspace + onMounted(() => { + if (!isAuthenticated || !ENABLE_EXPERIMENTAL_MOCK_SERVERS.value) return + loadMockServers().catch(() => setMockServers([])) + }) + + // Watch for workspace changes and clear mock servers immediately + watch( + () => workspaceService.currentWorkspace.value, + (newWorkspace, oldWorkspace) => { + if (!isAuthenticated || !ENABLE_EXPERIMENTAL_MOCK_SERVERS.value) return + + // Clear mock servers when workspace changes to prevent stale data + if ( + newWorkspace?.type !== oldWorkspace?.type || + (newWorkspace?.type === "team" && + oldWorkspace?.type === "team" && + newWorkspace.teamID !== oldWorkspace.teamID) + ) { + // Clear mock servers immediately to prevent showing stale data + setMockServers([]) + + // If user is authenticated, reload mock servers for the new workspace + if (platform.auth.getCurrentUser()) { + // fire-and-forget; loadMockServers handles errors internally + loadMockServers().catch(() => setMockServers([])) + } + } + }, + { deep: true, immediate: false } + ) +} diff --git a/packages/hoppscotch-common/src/helpers/backend/gql/mutations/ImportUserCollectionsFromJSON.graphql b/packages/hoppscotch-common/src/helpers/backend/gql/mutations/ImportUserCollectionsFromJSON.graphql new file mode 100644 index 00000000000..eced5dc4a72 --- /dev/null +++ b/packages/hoppscotch-common/src/helpers/backend/gql/mutations/ImportUserCollectionsFromJSON.graphql @@ -0,0 +1,11 @@ +mutation ImportUserCollectionsFromJSON( + $jsonString: String! + $reqType: ReqType! + $parentCollectionID: ID +) { + importUserCollectionsFromJSON( + jsonString: $jsonString + reqType: $reqType + parentCollectionID: $parentCollectionID + ) +} \ No newline at end of file diff --git a/packages/hoppscotch-common/src/helpers/backend/gql/queries/GetGQLRootUserCollections.graphql b/packages/hoppscotch-common/src/helpers/backend/gql/queries/GetGQLRootUserCollections.graphql new file mode 100644 index 00000000000..b840ac9b20e --- /dev/null +++ b/packages/hoppscotch-common/src/helpers/backend/gql/queries/GetGQLRootUserCollections.graphql @@ -0,0 +1,34 @@ +query GetGQLRootUserCollections($cursor: ID, $take: Int) { + rootGQLUserCollections(cursor: $cursor, take: $take) { + id + title + data + type + parent { + id + } + requests { + id + title + request + type + collectionID + } + childrenGQL { + id + title + data + type + parent { + id + } + requests { + id + title + request + type + collectionID + } + } + } +} \ No newline at end of file diff --git a/packages/hoppscotch-common/src/helpers/backend/gql/queries/GetUserRootCollections.graphql b/packages/hoppscotch-common/src/helpers/backend/gql/queries/GetUserRootCollections.graphql new file mode 100644 index 00000000000..40c3f22e90e --- /dev/null +++ b/packages/hoppscotch-common/src/helpers/backend/gql/queries/GetUserRootCollections.graphql @@ -0,0 +1,34 @@ +query GetUserRootCollections($cursor: ID, $take: Int) { + rootRESTUserCollections(cursor: $cursor, take: $take) { + id + title + data + type + parent { + id + } + requests { + id + title + request + type + collectionID + } + childrenREST { + id + title + data + type + parent { + id + } + requests { + id + title + request + type + collectionID + } + } + } +} \ No newline at end of file diff --git a/packages/hoppscotch-common/src/helpers/backend/mutations/MockServer.ts b/packages/hoppscotch-common/src/helpers/backend/mutations/MockServer.ts index 0d14f3c7385..71d3ca702ae 100644 --- a/packages/hoppscotch-common/src/helpers/backend/mutations/MockServer.ts +++ b/packages/hoppscotch-common/src/helpers/backend/mutations/MockServer.ts @@ -1,5 +1,7 @@ import * as TE from "fp-ts/TaskEither" import { client } from "../GQLClient" +import { GQLError } from "../GQLClient" +import { getI18n } from "~/modules/i18n" import { CreateMockServerDocument, UpdateMockServerDocument, @@ -36,6 +38,7 @@ export type MockServer = { } type CreateMockServerError = + | "mock_server/invalid_collection" | "mock_server/invalid_collection_id" | "mock_server/name_too_short" | "mock_server/limit_exceeded" @@ -73,7 +76,26 @@ export const createMockServer = ( .toPromise() if (result.error) { - throw new Error(result.error.message || "Failed to create mock server") + // Try to extract a useful error message from the GraphQL error + const err: any = result.error + let message = err.message + + // urql exposes GraphQL errors in graphQLErrors array + const gqlErr = (err.graphQLErrors && err.graphQLErrors[0]) || null + if (gqlErr) { + // Prefer originalError.message from backend if present (it may be an array of messages) + const orig = + gqlErr.extensions && + gqlErr.extensions.originalError && + gqlErr.extensions.originalError.message + if (orig) { + message = Array.isArray(orig) ? orig.join(", ") : String(orig) + } else if (gqlErr.message) { + message = gqlErr.message + } + } + + throw new Error(message) } if (!result.data) { @@ -183,3 +205,36 @@ export const getTeamMockServers = ( }, (error) => (error as Error).message as CreateMockServerError ) + +// Centralized mapper for backend GraphQL error tokens to user-facing messages. +export const getErrorMessage = (err: GQLError | string | Error) => { + const t = getI18n() + + // Normalize to GQLError-like shape + let gErr: GQLError | null = null + + if (typeof err === "string") { + gErr = { type: "gql_error", error: err } + } else if (err instanceof Error) { + gErr = { type: "network_error", error: err } + } else if ((err as any)?.type) { + gErr = err as GQLError + } + + if (!gErr) return t("error.something_went_wrong") + + if (gErr.type === "network_error") { + console.error(gErr.error) + return t("error.network_error") + } + + const code = String(gErr.error) + + switch (code) { + case "mock_server/invalid_collection": + case "mock_server/invalid_collection_id": + return t("mock_server.invalid_collection_error") + default: + return t("error.something_went_wrong") + } +} diff --git a/packages/hoppscotch-common/src/helpers/backend/mutations/UserCollection.ts b/packages/hoppscotch-common/src/helpers/backend/mutations/UserCollection.ts new file mode 100644 index 00000000000..3329ccc20fa --- /dev/null +++ b/packages/hoppscotch-common/src/helpers/backend/mutations/UserCollection.ts @@ -0,0 +1,203 @@ +import { runMutation } from "../GQLClient" +import { runGQLQuery } from "../GQLClient" +import { + GetGqlRootUserCollectionsDocument, + GetGqlRootUserCollectionsQuery, + GetGqlRootUserCollectionsQueryVariables, + GetUserRootCollectionsDocument, + GetUserRootCollectionsQuery, + GetUserRootCollectionsQueryVariables, + ImportUserCollectionsFromJsonDocument, + ImportUserCollectionsFromJsonMutation, + ImportUserCollectionsFromJsonMutationVariables, + ReqType, + UserCollection, + UserRequest, +} from "../graphql" +import { + HoppCollection, + makeCollection, + HoppRESTRequest, + HoppGQLRequest, + getDefaultRESTRequest, + getDefaultGQLRequest, +} from "@hoppscotch/data" +import * as E from "fp-ts/Either" + +export const importUserCollectionsFromJSON = ( + collectionJSON: string, + reqType: ReqType, + parentCollectionID?: string +) => + runMutation< + ImportUserCollectionsFromJsonMutation, + ImportUserCollectionsFromJsonMutationVariables, + "" + >(ImportUserCollectionsFromJsonDocument, { + jsonString: collectionJSON, + reqType, + parentCollectionID, + }) + +// Use generated GraphQL documents instead of inline gql tags +export const getUserRootCollections = () => + runGQLQuery< + GetUserRootCollectionsQuery, + GetUserRootCollectionsQueryVariables, + "" + >({ + query: GetUserRootCollectionsDocument, + variables: {}, + }) + +export const getGQLRootUserCollections = () => + runGQLQuery< + GetGqlRootUserCollectionsQuery, + GetGqlRootUserCollectionsQueryVariables, + "" + >({ + query: GetGqlRootUserCollectionsDocument, + variables: {}, + }) + +/** + * Converts a UserRequest from backend format to HoppRequest format + */ +function convertUserRequestToHoppRequest( + userRequest: UserRequest +): HoppRESTRequest | HoppGQLRequest { + try { + const parsedRequest = JSON.parse(userRequest.request) + + // Add the backend ID and title to the request + const request = { + ...parsedRequest, + id: userRequest.id, + name: userRequest.title, + } + + return request + } catch (error) { + console.warn("Failed to parse user request data:", error) + + // Return a default request if parsing fails + if (userRequest.type === ReqType.Rest) { + const defaultRequest = getDefaultRESTRequest() + defaultRequest.id = userRequest.id + defaultRequest.name = userRequest.title + return defaultRequest + } + const defaultRequest = getDefaultGQLRequest() + defaultRequest.id = userRequest.id + defaultRequest.name = userRequest.title + return defaultRequest + } +} + +/** + * Parse collection data similar to the existing parseCollectionData function in helpers.ts + */ +function parseUserCollectionData(data: string | null | undefined) { + const defaultDataProps = { + auth: { authType: "inherit", authActive: true }, + headers: [], + variables: [], + } + + if (!data) { + return defaultDataProps + } + + try { + const parsedData = JSON.parse(data) + return { + auth: parsedData?.auth || defaultDataProps.auth, + headers: parsedData?.headers || defaultDataProps.headers, + variables: parsedData?.variables || defaultDataProps.variables, + } + } catch (error) { + console.warn("Failed to parse user collection data:", error) + return defaultDataProps + } +} + +/** + * Converts a UserCollection from backend format to HoppCollection format + * Following the same pattern as teamCollectionJSONToHoppRESTColl in helpers.ts + */ +export function convertUserCollectionToHoppCollection( + userCollection: UserCollection, + reqType: ReqType +): HoppCollection { + const { auth, headers, variables } = parseUserCollectionData( + userCollection.data + ) + + // Get the appropriate children based on request type + const children = + reqType === ReqType.Rest + ? userCollection.childrenREST + : userCollection.childrenGQL + + // Convert requests - filter by type and convert + const requests = userCollection.requests + ? userCollection.requests + .filter((req) => req.type === reqType) + .map(convertUserRequestToHoppRequest) + : [] + + const collection = makeCollection({ + name: userCollection.title, + folders: children + ? children.map((child) => + convertUserCollectionToHoppCollection(child, reqType) + ) + : [], + requests: requests, + auth, + headers, + variables, + }) + + // Add the backend ID to the collection + collection.id = userCollection.id + + return collection +} + +/** + * Fetches user collections from backend and converts them to HoppCollection format + */ +export const fetchAndConvertUserCollections = async (reqType: ReqType) => { + const fetchFunction = + reqType === ReqType.Rest + ? getUserRootCollections + : getGQLRootUserCollections + + const result = await fetchFunction() + + if (E.isLeft(result)) { + return E.left(result.left) + } + + if (reqType === ReqType.Rest) { + const right = result.right as GetUserRootCollectionsQuery + const collections = right.rootRESTUserCollections + const convertedCollections = collections.map((collection) => + convertUserCollectionToHoppCollection( + collection as unknown as UserCollection, + reqType + ) + ) + return E.right(convertedCollections) + } + const right = result.right as GetGqlRootUserCollectionsQuery + const collections = right.rootGQLUserCollections + const convertedCollections = collections.map((collection) => + convertUserCollectionToHoppCollection( + collection as unknown as UserCollection, + reqType + ) + ) + return E.right(convertedCollections) +} diff --git a/packages/hoppscotch-common/src/newstore/mockServers.ts b/packages/hoppscotch-common/src/newstore/mockServers.ts index 6a1f415ecb5..df5ea8b4bde 100644 --- a/packages/hoppscotch-common/src/newstore/mockServers.ts +++ b/packages/hoppscotch-common/src/newstore/mockServers.ts @@ -1,14 +1,14 @@ -import { pluck } from "rxjs/operators" +import { pipe } from "fp-ts/function" +import * as TE from "fp-ts/TaskEither" import { BehaviorSubject } from "rxjs" -import DispatchingStore, { defineDispatchers } from "./DispatchingStore" +import { pluck } from "rxjs/operators" import { getMyMockServers, getTeamMockServers, } from "~/helpers/backend/queries/MockServer" -import { pipe } from "fp-ts/function" -import * as TE from "fp-ts/TaskEither" import { getService } from "~/modules/dioc" import { WorkspaceService } from "~/services/workspace.service" +import DispatchingStore, { defineDispatchers } from "./DispatchingStore" export type WorkspaceType = "USER" | "TEAM" @@ -166,6 +166,8 @@ export function loadMockServers(skip?: number, take?: number) { TE.match( (error) => { console.error("Failed to load mock servers:", error) + // Clear mock servers on error to prevent stale data + setMockServers([]) }, (mockServers) => { setMockServers(mockServers) @@ -179,6 +181,8 @@ export function loadMockServers(skip?: number, take?: number) { TE.match( (error) => { console.error("Failed to load mock servers:", error) + // Clear mock servers on error to prevent stale data + setMockServers([]) }, (mockServers) => { setMockServers(mockServers) @@ -199,6 +203,8 @@ export function loadTeamMockServers( TE.match( (error) => { console.error("Failed to load team mock servers:", error) + // Clear mock servers on error to prevent stale data + setMockServers([]) }, (mockServers) => { setMockServers(mockServers) @@ -214,6 +220,9 @@ export function loadMockServersForWorkspace( skip?: number, take?: number ) { + // Clear existing mock servers first to prevent stale data + setMockServers([]) + if (workspaceType === "team" && teamID) { return loadTeamMockServers(teamID, skip, take) } diff --git a/packages/hoppscotch-common/src/newstore/settings.ts b/packages/hoppscotch-common/src/newstore/settings.ts index 6b9cfef7314..e4de4cc11da 100644 --- a/packages/hoppscotch-common/src/newstore/settings.ts +++ b/packages/hoppscotch-common/src/newstore/settings.ts @@ -84,6 +84,7 @@ export type SettingsDef = { CUSTOM_NAMING_STYLE: string EXPERIMENTAL_SCRIPTING_SANDBOX: boolean + ENABLE_EXPERIMENTAL_MOCK_SERVERS: boolean } let defaultProxyURL = DEFAULT_HOPP_PROXY_URL @@ -146,6 +147,7 @@ export const getDefaultSettings = (): SettingsDef => { CUSTOM_NAMING_STYLE: "", EXPERIMENTAL_SCRIPTING_SANDBOX: true, + ENABLE_EXPERIMENTAL_MOCK_SERVERS: true, } } diff --git a/packages/hoppscotch-common/src/pages/settings.vue b/packages/hoppscotch-common/src/pages/settings.vue index ff2a0dee9de..5d63c47a7cd 100644 --- a/packages/hoppscotch-common/src/pages/settings.vue +++ b/packages/hoppscotch-common/src/pages/settings.vue @@ -156,7 +156,7 @@
-
+
+
+ + {{ t("settings.enable_experimental_mock_servers") }} + +
@@ -354,6 +362,9 @@ const CUSTOM_NAMING_STYLE = useSetting("CUSTOM_NAMING_STYLE") const EXPERIMENTAL_SCRIPTING_SANDBOX = useSetting( "EXPERIMENTAL_SCRIPTING_SANDBOX" ) +const ENABLE_EXPERIMENTAL_MOCK_SERVERS = useSetting( + "ENABLE_EXPERIMENTAL_MOCK_SERVERS" +) const supportedNamingStyles = [ { diff --git a/packages/hoppscotch-common/src/services/persistence/validation-schemas/index.ts b/packages/hoppscotch-common/src/services/persistence/validation-schemas/index.ts index 10e94aaf65b..036138fafde 100644 --- a/packages/hoppscotch-common/src/services/persistence/validation-schemas/index.ts +++ b/packages/hoppscotch-common/src/services/persistence/validation-schemas/index.ts @@ -85,6 +85,7 @@ const SettingsDefSchema = z.object({ CUSTOM_NAMING_STYLE: z.string().optional().catch(""), EXPERIMENTAL_SCRIPTING_SANDBOX: z.optional(z.boolean()), + ENABLE_EXPERIMENTAL_MOCK_SERVERS: z.optional(z.boolean()), }) const HoppRESTRequestSchema = entityReference(HoppRESTRequest) diff --git a/packages/hoppscotch-selfhost-desktop/src/platform/collections/collections.platform.ts b/packages/hoppscotch-selfhost-desktop/src/platform/collections/collections.platform.ts index f4c535c2ede..fe671c9cf51 100644 --- a/packages/hoppscotch-selfhost-desktop/src/platform/collections/collections.platform.ts +++ b/packages/hoppscotch-selfhost-desktop/src/platform/collections/collections.platform.ts @@ -51,7 +51,6 @@ import { updateRESTCollectionOrder, updateRESTRequestOrder, } from "@hoppscotch/common/newstore/collections" -import { loadMockServers } from "@hoppscotch/common/newstore/mockServers" import { GQLHeader, HoppCollection, @@ -84,7 +83,6 @@ function initCollectionsSync() { if (user) { loadUserCollections("REST") loadUserCollections("GQL") - loadMockServers() } }) diff --git a/packages/hoppscotch-selfhost-web/src/platform/collections/desktop/index.ts b/packages/hoppscotch-selfhost-web/src/platform/collections/desktop/index.ts index 5d64aeb2967..59b77e20ee9 100644 --- a/packages/hoppscotch-selfhost-web/src/platform/collections/desktop/index.ts +++ b/packages/hoppscotch-selfhost-web/src/platform/collections/desktop/index.ts @@ -1,6 +1,6 @@ import { CollectionsPlatformDef } from "@hoppscotch/common/platform/collections" -import { authEvents$, def as platformAuth } from "@platform/auth/desktop" import { runDispatchWithOutSyncing } from "@lib/sync" +import { authEvents$, def as platformAuth } from "@platform/auth/desktop" import { exportUserCollectionsToJSON, @@ -19,6 +19,11 @@ import { } from "./api" import { collectionsSyncer, getStoreByCollectionType } from "./sync" +import { + ReqType, + UserCollectionDuplicatedData, + UserRequest, +} from "@api/generated/graphql" import { runGQLSubscription } from "@hoppscotch/common/helpers/backend/GQLClient" import { addGraphqlCollection, @@ -51,7 +56,6 @@ import { updateRESTCollectionOrder, updateRESTRequestOrder, } from "@hoppscotch/common/newstore/collections" -import { loadMockServers } from "@hoppscotch/common/newstore/mockServers" import { generateUniqueRefId, GQLHeader, @@ -62,11 +66,6 @@ import { HoppRESTRequest, } from "@hoppscotch/data" import * as E from "fp-ts/Either" -import { - ReqType, - UserCollectionDuplicatedData, - UserRequest, -} from "@api/generated/graphql" import { gqlCollectionsSyncer } from "./gqlCollections.sync" function initCollectionsSync() { @@ -85,7 +84,6 @@ function initCollectionsSync() { if (user) { loadUserCollections("REST") loadUserCollections("GQL") - loadMockServers() } }) diff --git a/packages/hoppscotch-selfhost-web/src/platform/collections/web/index.ts b/packages/hoppscotch-selfhost-web/src/platform/collections/web/index.ts index 0e315d63281..576cfcc2f3c 100644 --- a/packages/hoppscotch-selfhost-web/src/platform/collections/web/index.ts +++ b/packages/hoppscotch-selfhost-web/src/platform/collections/web/index.ts @@ -1,6 +1,6 @@ import { CollectionsPlatformDef } from "@hoppscotch/common/platform/collections" -import { authEvents$, def as platformAuth } from "@platform/auth/web" import { runDispatchWithOutSyncing } from "@lib/sync" +import { authEvents$, def as platformAuth } from "@platform/auth/web" import { exportUserCollectionsToJSON, @@ -19,6 +19,11 @@ import { } from "./api" import { collectionsSyncer, getStoreByCollectionType } from "./sync" +import { + ReqType, + UserCollectionDuplicatedData, + UserRequest, +} from "@api/generated/graphql" import { runGQLSubscription } from "@hoppscotch/common/helpers/backend/GQLClient" import { addGraphqlCollection, @@ -51,7 +56,6 @@ import { updateRESTCollectionOrder, updateRESTRequestOrder, } from "@hoppscotch/common/newstore/collections" -import { loadMockServers } from "@hoppscotch/common/newstore/mockServers" import { generateUniqueRefId, GQLHeader, @@ -62,11 +66,6 @@ import { HoppRESTRequest, } from "@hoppscotch/data" import * as E from "fp-ts/Either" -import { - ReqType, - UserCollectionDuplicatedData, - UserRequest, -} from "@api/generated/graphql" import { gqlCollectionsSyncer } from "./gqlCollections.sync" function initCollectionsSync() { @@ -85,7 +84,6 @@ function initCollectionsSync() { if (user) { loadUserCollections("REST") loadUserCollections("GQL") - loadMockServers() } }) diff --git a/packages/hoppscotch-sh-admin/locales/en.json b/packages/hoppscotch-sh-admin/locales/en.json index 5ec5955bd64..7e185125810 100644 --- a/packages/hoppscotch-sh-admin/locales/en.json +++ b/packages/hoppscotch-sh-admin/locales/en.json @@ -136,9 +136,8 @@ "title": "Mock Server", "description": "Configure mock server settings used to host example responses.", "wildcard_domain": "Wildcard Domain", - "wildcard_domain_placeholder": "e.g. *.example.com", - "secure_cookies": "Allow secure cookies", - "secure_cookies_desc": "Use secure cookies for responses from the mock server" + "wildcard_domain_description": "This field requires a full wildcard domain format. The input must start with an asterisk (*) followed by a dot (.) and then the domain name.", + "wildcard_domain_example": "Example: *.mock.domain.com" }, "update_failure": "Failed to update server configurations" }, diff --git a/packages/hoppscotch-sh-admin/src/components/settings/MockServerConfig.vue b/packages/hoppscotch-sh-admin/src/components/settings/MockServerConfig.vue index 172a9f9fd0b..76219d876ff 100644 --- a/packages/hoppscotch-sh-admin/src/components/settings/MockServerConfig.vue +++ b/packages/hoppscotch-sh-admin/src/components/settings/MockServerConfig.vue @@ -17,29 +17,19 @@ - -
- -
-
-
- {{ t('configs.mock_server.secure_cookies') }} -
-

- {{ t('configs.mock_server.secure_cookies_desc') }} -

-
- +

+ {{ t('configs.mock_server.wildcard_domain_description') }} +

+

+ {{ t('configs.mock_server.wildcard_domain_example') }} +

@@ -69,7 +59,6 @@ const mockFields = computed({ return ( workingConfigs.value.mockServerConfigs?.fields ?? { mock_server_wildcard_domain: '', - allow_secure_cookies: false, } ); }, diff --git a/packages/hoppscotch-sh-admin/src/composables/useConfigHandler.ts b/packages/hoppscotch-sh-admin/src/composables/useConfigHandler.ts index df3b0f539b5..d3f6b582092 100644 --- a/packages/hoppscotch-sh-admin/src/composables/useConfigHandler.ts +++ b/packages/hoppscotch-sh-admin/src/composables/useConfigHandler.ts @@ -191,8 +191,6 @@ export function useConfigHandler(updatedConfigs?: ServerConfigs) { mock_server_wildcard_domain: getFieldValue( InfraConfigEnum.MockServerWildcardDomain ), - allow_secure_cookies: - getFieldValue(InfraConfigEnum.AllowSecureCookies) === 'true', }, }, }; diff --git a/packages/hoppscotch-sh-admin/src/helpers/configs.ts b/packages/hoppscotch-sh-admin/src/helpers/configs.ts index 89e95ab66c9..03271bfeab5 100644 --- a/packages/hoppscotch-sh-admin/src/helpers/configs.ts +++ b/packages/hoppscotch-sh-admin/src/helpers/configs.ts @@ -92,7 +92,6 @@ export type ServerConfigs = { name: string; fields: { mock_server_wildcard_domain: string; - allow_secure_cookies: boolean; }; }; }; @@ -289,10 +288,6 @@ export const MOCK_SERVER_CONFIGS: Config[] = [ name: InfraConfigEnum.MockServerWildcardDomain, key: 'mock_server_wildcard_domain', }, - { - name: InfraConfigEnum.AllowSecureCookies, - key: 'allow_secure_cookies', - }, ]; export const ALL_CONFIGS = [ From ae3d73bb3204bd6539d98b48b25546cccc0bf340 Mon Sep 17 00:00:00 2001 From: jamesgeorge007 <25279263+jamesgeorge007@users.noreply.github.com> Date: Wed, 29 Oct 2025 17:58:20 +0530 Subject: [PATCH 24/33] fix(js-sandbox): improve scripting value handling and serialization - Fix null/undefined environment variable handling across namespaces - Fix pm.request console.log output to display properly - Add pm.request.id and pm.request.name type definitions - Fix assertion error messages to show actual values - Strip `export {};` from collection exports and legacy sandbox editor display --- .../src/components/collections/index.vue | 13 +- .../src/composables/codemirror.ts | 24 +- .../src/types/post-request.d.ts | 2 + .../combined/env-fallback-behavior.spec.ts | 5 +- .../null-undefined-value-preservation.spec.ts | 378 ++++++++++++++++++ .../src/bootstrap-code/post-request.js | 31 ++ .../src/bootstrap-code/pre-request.js | 31 ++ .../hoppscotch-js-sandbox/src/utils/shared.ts | 39 +- 8 files changed, 511 insertions(+), 12 deletions(-) create mode 100644 packages/hoppscotch-js-sandbox/src/__tests__/combined/null-undefined-value-preservation.spec.ts diff --git a/packages/hoppscotch-common/src/components/collections/index.vue b/packages/hoppscotch-common/src/components/collections/index.vue index 64b94d52eae..93080b3632e 100644 --- a/packages/hoppscotch-common/src/components/collections/index.vue +++ b/packages/hoppscotch-common/src/components/collections/index.vue @@ -2831,9 +2831,12 @@ const exportData = async (collection: HoppCollection | TeamCollection) => { if (collectionsType.value.type === "my-collections") { const collectionJSON = JSON.stringify(collection, null, 2) + // Strip `export {};\n` from `testScript` and `preRequestScript` fields + const cleanedCollectionJSON = collectionJSON.replace(/export \{\};\\n/g, "") + const name = (collection as HoppCollection).name - initializeDownloadCollection(collectionJSON, name) + initializeDownloadCollection(cleanedCollectionJSON, name) } else { if (!collection.id) return exportLoading.value = true @@ -2850,8 +2853,14 @@ const exportData = async (collection: HoppCollection | TeamCollection) => { const hoppColl = teamCollToHoppRESTColl(coll) const collectionJSONString = JSON.stringify(hoppColl, null, 2) + // Strip `export {};\n` from `testScript` and `preRequestScript` fields + const cleanedCollectionJSON = collectionJSONString.replace( + /export \{\};\\n/g, + "" + ) + await initializeDownloadCollection( - collectionJSONString, + cleanedCollectionJSON, hoppColl.name ) exportLoading.value = false diff --git a/packages/hoppscotch-common/src/composables/codemirror.ts b/packages/hoppscotch-common/src/composables/codemirror.ts index df8dbd957a1..283767cea24 100644 --- a/packages/hoppscotch-common/src/composables/codemirror.ts +++ b/packages/hoppscotch-common/src/composables/codemirror.ts @@ -268,6 +268,19 @@ const getEditorLanguage = ( completer: Completer | undefined ): Extension => hoppLang(getLanguage(langMime) ?? undefined, linter, completer) +const MODULE_PREFIX = "export {};\n" as const + +/** + * Strips the `export {};\n` prefix from the value for display in the editor. + * The above is only used internally for Monaco editor's module scope, + * and should not be visible in the CodeMirror editor. + */ +const stripModulePrefix = (value?: string): string | undefined => { + return value?.startsWith(MODULE_PREFIX) + ? value.slice(MODULE_PREFIX.length) + : value +} + export function useCodemirror( el: Ref, value: Ref, @@ -474,7 +487,10 @@ export function useCodemirror( view.value = new EditorView({ parent: el, state: EditorState.create({ - doc: parseDoc(value.value, options.extendedEditorConfig.mode ?? ""), + doc: parseDoc( + stripModulePrefix(value.value), + options.extendedEditorConfig.mode ?? "" + ), extensions, }), // scroll to top when mounting @@ -514,13 +530,17 @@ export function useCodemirror( if (!view.value && el.value) { initView(el.value) } + + // Strip `export {};\n` before displaying in CodeMirror + const displayValue = stripModulePrefix(newVal) ?? "" + if (cachedValue.value !== newVal) { view.value?.dispatch({ filter: false, changes: { from: 0, to: view.value.state.doc.length, - insert: newVal, + insert: displayValue, }, }) } diff --git a/packages/hoppscotch-common/src/types/post-request.d.ts b/packages/hoppscotch-common/src/types/post-request.d.ts index e733c86fe39..becf3df8f23 100644 --- a/packages/hoppscotch-common/src/types/post-request.d.ts +++ b/packages/hoppscotch-common/src/types/post-request.d.ts @@ -652,6 +652,8 @@ declare namespace pm { }> const request: Readonly<{ + readonly id: string + readonly name: string readonly url: Readonly<{ toString(): string readonly protocol: string diff --git a/packages/hoppscotch-js-sandbox/src/__tests__/combined/env-fallback-behavior.spec.ts b/packages/hoppscotch-js-sandbox/src/__tests__/combined/env-fallback-behavior.spec.ts index 2d84689d509..bf2ddc78e20 100644 --- a/packages/hoppscotch-js-sandbox/src/__tests__/combined/env-fallback-behavior.spec.ts +++ b/packages/hoppscotch-js-sandbox/src/__tests__/combined/env-fallback-behavior.spec.ts @@ -106,9 +106,8 @@ describe("Environment Variable Fallback Behavior - All Namespaces", () => { "$name - currentValue undefined/null fallback", ({ get }) => { // Note: These tests check GET behavior with null/undefined in initial state. - // Setting null via pm.environment.set(key, null) is currently NOT supported. - // These tests validate fallback logic when null/undefined exists in the env state, - // which can occur through other means (e.g., test setup, external sources). + // Setting null via pm.environment.set(key, null) IS supported (via NULL_MARKER). + // These tests validate fallback logic when null/undefined exists in the env state. test("should fallback to initialValue when currentValue is undefined", async () => { const envs = { diff --git a/packages/hoppscotch-js-sandbox/src/__tests__/combined/null-undefined-value-preservation.spec.ts b/packages/hoppscotch-js-sandbox/src/__tests__/combined/null-undefined-value-preservation.spec.ts new file mode 100644 index 00000000000..418adac6147 --- /dev/null +++ b/packages/hoppscotch-js-sandbox/src/__tests__/combined/null-undefined-value-preservation.spec.ts @@ -0,0 +1,378 @@ +/** + * Null and Undefined Value Preservation Across Namespaces + * + * Tests that null and undefined values are correctly preserved when setting + * and getting environment variables across pm, pw, and hopp namespaces. + */ + +import { describe, expect, test } from "vitest" +import { runTest } from "~/utils/test-helpers" + +describe("Null and undefined value preservation across namespaces", () => { + describe("Cross-namespace null value handling", () => { + test("pm.environment.set with null should work across pm, pw, and hopp namespaces", () => { + return expect( + runTest( + ` + pm.environment.set('key', null) + + pm.test("pm.environment.get returns actual null", () => { + pm.expect(pm.environment.get('key')).to.equal(null) + }) + + pm.test("typeof null should be 'object'", () => { + pm.expect(typeof pm.environment.get('key')).to.equal('object') + }) + + pm.test("pw.env.get returns actual null (cross-namespace)", () => { + pm.expect(pw.env.get('key')).to.equal(null) + }) + + pm.test("typeof via pw.env.get should be 'object'", () => { + pm.expect(typeof pw.env.get('key')).to.equal('object') + }) + + pm.test("hopp.env.get returns actual null (cross-namespace)", () => { + pm.expect(hopp.env.get('key')).to.equal(null) + }) + + pm.test("typeof via hopp.env.get should be 'object'", () => { + pm.expect(typeof hopp.env.get('key')).to.equal('object') + }) + `, + { global: [], selected: [] } + )() + ).resolves.toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + descriptor: "pm.environment.get returns actual null", + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + expect.objectContaining({ + descriptor: "typeof null should be 'object'", + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + expect.objectContaining({ + descriptor: "pw.env.get returns actual null (cross-namespace)", + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + expect.objectContaining({ + descriptor: "typeof via pw.env.get should be 'object'", + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + expect.objectContaining({ + descriptor: + "hopp.env.get returns actual null (cross-namespace)", + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + expect.objectContaining({ + descriptor: "typeof via hopp.env.get should be 'object'", + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) + + test("pm.environment.set with undefined should work across pm, pw, and hopp namespaces", () => { + return expect( + runTest( + ` + pm.environment.set('undefKey', undefined) + + pm.test("pm.environment.get returns actual undefined", () => { + pm.expect(pm.environment.get('undefKey')).to.equal(undefined) + }) + + pm.test("typeof undefined should be 'undefined'", () => { + pm.expect(typeof pm.environment.get('undefKey')).to.equal('undefined') + }) + + pm.test("pw.env.get returns actual undefined (cross-namespace)", () => { + pm.expect(pw.env.get('undefKey')).to.equal(undefined) + }) + + pm.test("typeof via pw.env.get should be 'undefined'", () => { + pm.expect(typeof pw.env.get('undefKey')).to.equal('undefined') + }) + + pm.test("hopp.env.get returns actual undefined (cross-namespace)", () => { + pm.expect(hopp.env.get('undefKey')).to.equal(undefined) + }) + + pm.test("typeof via hopp.env.get should be 'undefined'", () => { + pm.expect(typeof hopp.env.get('undefKey')).to.equal('undefined') + }) + `, + { global: [], selected: [] } + )() + ).resolves.toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + descriptor: "pm.environment.get returns actual undefined", + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + expect.objectContaining({ + descriptor: "typeof undefined should be 'undefined'", + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + expect.objectContaining({ + descriptor: + "pw.env.get returns actual undefined (cross-namespace)", + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + expect.objectContaining({ + descriptor: "typeof via pw.env.get should be 'undefined'", + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + expect.objectContaining({ + descriptor: + "hopp.env.get returns actual undefined (cross-namespace)", + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + expect.objectContaining({ + descriptor: "typeof via hopp.env.get should be 'undefined'", + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) + }) + + describe("Assertion failure messages display actual values", () => { + test("null assertion failures should show actual 'null' value in error messages", () => { + return expect( + runTest( + ` + pm.environment.set('nullKey', null) + + pm.test("pm.environment.get error message should not contain marker", () => { + pm.expect(pm.environment.get('nullKey')).to.equal("this is not null") + }) + + pm.test("pw.env.get error message should not contain marker", () => { + pm.expect(pw.env.get('nullKey')).to.equal("this is not null") + }) + + hopp.test("hopp.env.get error message should not contain marker", () => { + hopp.expect(hopp.env.get('nullKey')).to.equal("this is not null") + }) + `, + { global: [], selected: [] } + )() + ).resolves.toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + descriptor: + "pm.environment.get error message should not contain marker", + expectResults: expect.arrayContaining([ + expect.objectContaining({ + status: "fail", + message: expect.not.stringContaining("__HOPPSCOTCH_NULL__"), + }), + ]), + }), + expect.objectContaining({ + descriptor: + "pw.env.get error message should not contain marker", + expectResults: expect.arrayContaining([ + expect.objectContaining({ + status: "fail", + message: expect.not.stringContaining("__HOPPSCOTCH_NULL__"), + }), + ]), + }), + expect.objectContaining({ + descriptor: + "hopp.env.get error message should not contain marker", + expectResults: expect.arrayContaining([ + expect.objectContaining({ + status: "fail", + message: expect.not.stringContaining("__HOPPSCOTCH_NULL__"), + }), + ]), + }), + ]), + }), + ]) + ) + }) + + test("undefined assertion failures should show actual 'undefined' value in error messages", () => { + return expect( + runTest( + ` + pm.environment.set('undefKey', undefined) + + pm.test("pm.environment.get error message should not contain marker", () => { + pm.expect(pm.environment.get('undefKey')).to.equal("this is not undefined") + }) + + pm.test("pw.env.get error message should not contain marker", () => { + pm.expect(pw.env.get('undefKey')).to.equal("this is not undefined") + }) + + hopp.test("hopp.env.get error message should not contain marker", () => { + hopp.expect(hopp.env.get('undefKey')).to.equal("this is not undefined") + }) + `, + { global: [], selected: [] } + )() + ).resolves.toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + descriptor: + "pm.environment.get error message should not contain marker", + expectResults: expect.arrayContaining([ + expect.objectContaining({ + status: "fail", + message: expect.not.stringContaining( + "__HOPPSCOTCH_UNDEFINED__" + ), + }), + ]), + }), + expect.objectContaining({ + descriptor: + "pw.env.get error message should not contain marker", + expectResults: expect.arrayContaining([ + expect.objectContaining({ + status: "fail", + message: expect.not.stringContaining( + "__HOPPSCOTCH_UNDEFINED__" + ), + }), + ]), + }), + expect.objectContaining({ + descriptor: + "hopp.env.get error message should not contain marker", + expectResults: expect.arrayContaining([ + expect.objectContaining({ + status: "fail", + message: expect.not.stringContaining( + "__HOPPSCOTCH_UNDEFINED__" + ), + }), + ]), + }), + ]), + }), + ]) + ) + }) + }) + + describe("pm.globals namespace null and undefined handling", () => { + test("pm.globals.set with null should work correctly", () => { + return expect( + runTest( + ` + pm.globals.set('globalNull', null) + + pm.test("pm.globals.get returns actual null", () => { + pm.expect(pm.globals.get('globalNull')).to.equal(null) + }) + + pm.test("typeof null should be 'object'", () => { + pm.expect(typeof pm.globals.get('globalNull')).to.equal('object') + }) + `, + { global: [], selected: [] } + )() + ).resolves.toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + descriptor: "pm.globals.get returns actual null", + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + expect.objectContaining({ + descriptor: "typeof null should be 'object'", + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) + + test("pm.globals.set with undefined should work correctly", () => { + return expect( + runTest( + ` + pm.globals.set('globalUndef', undefined) + + pm.test("pm.globals.get returns actual undefined", () => { + pm.expect(pm.globals.get('globalUndef')).to.equal(undefined) + }) + + pm.test("typeof undefined should be 'undefined'", () => { + pm.expect(typeof pm.globals.get('globalUndef')).to.equal('undefined') + }) + `, + { global: [], selected: [] } + )() + ).resolves.toEqualRight( + expect.arrayContaining([ + expect.objectContaining({ + children: expect.arrayContaining([ + expect.objectContaining({ + descriptor: "pm.globals.get returns actual undefined", + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + expect.objectContaining({ + descriptor: "typeof undefined should be 'undefined'", + expectResults: expect.arrayContaining([ + expect.objectContaining({ status: "pass" }), + ]), + }), + ]), + }), + ]) + ) + }) + }) +}) diff --git a/packages/hoppscotch-js-sandbox/src/bootstrap-code/post-request.js b/packages/hoppscotch-js-sandbox/src/bootstrap-code/post-request.js index 78624ddda21..809047e04d1 100644 --- a/packages/hoppscotch-js-sandbox/src/bootstrap-code/post-request.js +++ b/packages/hoppscotch-js-sandbox/src/bootstrap-code/post-request.js @@ -2992,6 +2992,37 @@ get auth() { return globalThis.hopp.request.auth }, + + // Custom serialization for console.log to match pre-request behavior + // This method is called by faraday-cage's marshalling system + toJSON() { + // Return a plain object with all properties expanded + // This ensures console.log(pm.request) shows the full structure + const urlParsed = this.url._parseUrl() + return { + id: this.id, + name: this.name, + url: { + protocol: urlParsed.protocol, + host: urlParsed.host, + hostname: urlParsed.host.join("."), + port: urlParsed.port, + path: urlParsed.path, + hash: urlParsed.hash || "", + query: this.url.query.all(), + }, + method: this.method, + headers: this.headers.toObject(), + body: this.body, + auth: this.auth, + } + }, + + toString() { + return `Request { id: ${this.id}, name: ${this.name}, method: ${this.method}, url: ${this.url.toString()} }` + }, + + [Symbol.toStringTag]: "Request", }, response: { diff --git a/packages/hoppscotch-js-sandbox/src/bootstrap-code/pre-request.js b/packages/hoppscotch-js-sandbox/src/bootstrap-code/pre-request.js index f29164d766e..15f8031197a 100644 --- a/packages/hoppscotch-js-sandbox/src/bootstrap-code/pre-request.js +++ b/packages/hoppscotch-js-sandbox/src/bootstrap-code/pre-request.js @@ -1163,6 +1163,37 @@ throw new Error("Auth must be an object or null") } }, + + // Custom serialization for console.log to ensure consistent behavior + // This method is called by faraday-cage's marshalling system + toJSON() { + // Return a plain object with all properties expanded + // This ensures console.log(pm.request) shows the full structure consistently + const urlParsed = this.url._parseUrl() + return { + id: this.id, + name: this.name, + url: { + protocol: urlParsed.protocol, + host: urlParsed.host, + hostname: urlParsed.host.join("."), + port: urlParsed.port, + path: urlParsed.path, + hash: urlParsed.hash || "", + query: this.url.query.all(), + }, + method: this.method, + headers: this.headers.toObject(), + body: this.body, + auth: this.auth, + } + }, + + toString() { + return `Request { id: ${this.id}, name: ${this.name}, method: ${this.method}, url: ${this.url.toString()} }` + }, + + [Symbol.toStringTag]: "Request", }, // Script context information diff --git a/packages/hoppscotch-js-sandbox/src/utils/shared.ts b/packages/hoppscotch-js-sandbox/src/utils/shared.ts index e57394d9e79..3bdeac1e4e3 100644 --- a/packages/hoppscotch-js-sandbox/src/utils/shared.ts +++ b/packages/hoppscotch-js-sandbox/src/utils/shared.ts @@ -17,6 +17,7 @@ import { SandboxEnvironmentVariable, SandboxEnvs, } from "../types" +import { UNDEFINED_MARKER, NULL_MARKER } from "~/constants/sandbox-markers" export type EnvSource = "active" | "global" | "all" export type EnvAPIOptions = { @@ -204,11 +205,10 @@ export function getSharedEnvMethods( * 3. Exit: getUpdatedEnvs() serializes back to strings via JSON.stringify() * { global: [{ key: "users", currentValue: "[{...}]", initialValue: "[]" }], ... } * - * The cast acknowledges that during execution (steps 1-3), the runtime type is SandboxEnvs, - * even though the declared type is TestResult["envs"] for API boundary compatibility. + * The `satisfies` check acknowledges that during execution (steps 1-3), the runtime type is + * SandboxEnvs, even though the declared type is TestResult["envs"] for API boundary compatibility. */ - // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion - let updatedEnvs = envs as unknown as SandboxEnvs + let updatedEnvs = envs satisfies SandboxEnvs const envGetFn = ( key: unknown, @@ -232,6 +232,15 @@ export function getSharedEnvMethods( ? env.currentValue : env.initialValue + // Convert markers back to their actual types for script execution + // This ensures null/undefined values are properly represented in scripts + if (valueToUse === UNDEFINED_MARKER) { + return undefined + } + if (valueToUse === NULL_MARKER) { + return null + } + // Preserve complex types (arrays, objects) for PM namespace compatibility return valueToUse } @@ -271,6 +280,14 @@ export function getSharedEnvMethods( ? e.currentValue : e.initialValue + // Convert markers back to their actual types + if (valueToUse === UNDEFINED_MARKER) { + return undefined + } + if (valueToUse === NULL_MARKER) { + return null + } + // Only resolve templates for string values // Non-string values (arrays, objects, etc.) are returned as-is for PM namespace compatibility if (typeof valueToUse !== "string") { @@ -399,7 +416,19 @@ export function getSharedEnvMethods( getEnv(key, updatedEnvs, options), O.fold( () => undefined, - (env) => env.initialValue // Return as-is (PM namespace preserves types) + (env) => { + const initialValue = env.initialValue + + // Convert markers back to their actual types + if (initialValue === UNDEFINED_MARKER) { + return undefined + } + if (initialValue === NULL_MARKER) { + return null + } + + return initialValue // Return as-is (PM namespace preserves types) + } ) ) From bb4f4aca5426739b6fcdd365ddc8b702e3c88220 Mon Sep 17 00:00:00 2001 From: Anwarul Islam Date: Wed, 29 Oct 2025 23:21:05 +0600 Subject: [PATCH 25/33] feat(common): handle null collection and add private access hint for mock servers (#5527) * fix(mock-server): handle null collection case in dashboard display * feat(mock-server): add private access hint for non-public mock servers * fix(mock-server): update private access hint for clarity * refactor(mock-server): remove console logs from mock server creation and update --- packages/hoppscotch-common/locales/en.json | 2 ++ .../src/components/mockServer/CreateMockServer.vue | 6 ++++-- .../src/components/mockServer/EditMockServer.vue | 6 ++++-- .../src/components/mockServer/MockServerDashboard.vue | 5 ++++- packages/hoppscotch-common/src/newstore/mockServers.ts | 2 +- 5 files changed, 15 insertions(+), 6 deletions(-) diff --git a/packages/hoppscotch-common/locales/en.json b/packages/hoppscotch-common/locales/en.json index 4d8000919d8..bc8be5f83fb 100644 --- a/packages/hoppscotch-common/locales/en.json +++ b/packages/hoppscotch-common/locales/en.json @@ -873,6 +873,8 @@ "subdomain_based_url": "Subdomain based URL", "mock_server_updated": "Mock server updated successfully", "no_collection": "No collection", + "collection_deleted": "associated collection deleted.", + "private_access_hint": "For private mock servers, include the header 'x-api-key' with your Personal Access Token (create one from your profile).", "status": "Status", "server_running": "Server is running", "server_stopped": "Server is stopped", diff --git a/packages/hoppscotch-common/src/components/mockServer/CreateMockServer.vue b/packages/hoppscotch-common/src/components/mockServer/CreateMockServer.vue index 7c60016f66d..2cf5310e440 100644 --- a/packages/hoppscotch-common/src/components/mockServer/CreateMockServer.vue +++ b/packages/hoppscotch-common/src/components/mockServer/CreateMockServer.vue @@ -182,6 +182,10 @@ + +
+ {{ t("mock_server.private_access_hint") }} +
@@ -478,7 +482,6 @@ const createMockServer = async () => { loading.value = false }, (result) => { - console.log("Mock server created:", result) toast.success(t("mock_server.mock_server_created")) // Add the new mock server to the store @@ -511,7 +514,6 @@ const toggleMockServer = async () => { loading.value = false }, (result) => { - console.log("Mock server updated:", result) toast.success( newActiveState ? t("mock_server.mock_server_started") diff --git a/packages/hoppscotch-common/src/components/mockServer/EditMockServer.vue b/packages/hoppscotch-common/src/components/mockServer/EditMockServer.vue index 2b131235423..36b787b1213 100644 --- a/packages/hoppscotch-common/src/components/mockServer/EditMockServer.vue +++ b/packages/hoppscotch-common/src/components/mockServer/EditMockServer.vue @@ -117,6 +117,9 @@ }}
+
+ {{ t("mock_server.private_access_hint") }} +
@@ -255,8 +258,7 @@ const toggleMockServer = async () => { toast.error(t("error.something_went_wrong")) loading.value = false }, - (result) => { - console.log("Mock server updated:", result) + () => { toast.success( newActiveState ? t("mock_server.mock_server_started") diff --git a/packages/hoppscotch-common/src/components/mockServer/MockServerDashboard.vue b/packages/hoppscotch-common/src/components/mockServer/MockServerDashboard.vue index e0b7c941a4f..2509900b982 100644 --- a/packages/hoppscotch-common/src/components/mockServer/MockServerDashboard.vue +++ b/packages/hoppscotch-common/src/components/mockServer/MockServerDashboard.vue @@ -87,7 +87,10 @@ {{ - mockServer.collection?.title || t("mock_server.no_collection") + mockServer.collection === null + ? t("mock_server.collection_deleted") + : mockServer.collection?.title || + t("mock_server.no_collection") }} diff --git a/packages/hoppscotch-common/src/newstore/mockServers.ts b/packages/hoppscotch-common/src/newstore/mockServers.ts index df5ea8b4bde..ca67038c0fc 100644 --- a/packages/hoppscotch-common/src/newstore/mockServers.ts +++ b/packages/hoppscotch-common/src/newstore/mockServers.ts @@ -32,7 +32,7 @@ export type MockServer = { id: string title: string requests?: any[] - } + } | null // Legacy fields for backward compatibility userUid?: string collectionID?: string From 6729d7c7fd57ffc96e61b0f27dc0202f8db2fdcd Mon Sep 17 00:00:00 2001 From: jamesgeorge007 <25279263+jamesgeorge007@users.noreply.github.com> Date: Wed, 29 Oct 2025 23:09:01 +0530 Subject: [PATCH 26/33] refactor(common): remove redundant logs --- .../src/components/collections/ImportExport.vue | 16 ++-------------- .../collections/graphql/ImportExport.vue | 16 ++-------------- .../components/mockServer/CreateMockServer.vue | 4 +--- .../src/components/mockServer/EditMockServer.vue | 6 ++---- .../src/components/mockServer/LogSection.vue | 8 ++------ .../mockServer/MockServerDashboard.vue | 6 ++---- .../src/components/mockServer/MockServerLogs.vue | 6 ++---- .../src/helpers/backend/mutations/MockServer.ts | 1 - .../helpers/backend/mutations/UserCollection.ts | 7 ++----- 9 files changed, 15 insertions(+), 55 deletions(-) diff --git a/packages/hoppscotch-common/src/components/collections/ImportExport.vue b/packages/hoppscotch-common/src/components/collections/ImportExport.vue index 3eb58aad035..d1ac2acef07 100644 --- a/packages/hoppscotch-common/src/components/collections/ImportExport.vue +++ b/packages/hoppscotch-common/src/components/collections/ImportExport.vue @@ -141,29 +141,17 @@ const importToPersonalWorkspace = async (collections: HoppCollection[]) => { // Replace local collections with backend collections setRESTCollections(fetchResult.right) } else { - console.warn( - "Failed to fetch collections from backend after import:", - fetchResult.left - ) - // Still append to local store as fallback + // Failed to fetch, append to local store as fallback appendRESTCollections(collections) } return E.right({ success: true }) } // Backend import failed, fall back to local storage - console.warn( - "Backend import failed, falling back to local storage:", - res.left - ) appendRESTCollections(collections) return E.right({ success: true }) - } catch (error) { + } catch { // Backend import failed, fall back to local storage - console.warn( - "Backend import failed, falling back to local storage:", - error - ) appendRESTCollections(collections) return E.right({ success: true }) } diff --git a/packages/hoppscotch-common/src/components/collections/graphql/ImportExport.vue b/packages/hoppscotch-common/src/components/collections/graphql/ImportExport.vue index 11a598b75e8..b0e63b870ab 100644 --- a/packages/hoppscotch-common/src/components/collections/graphql/ImportExport.vue +++ b/packages/hoppscotch-common/src/components/collections/graphql/ImportExport.vue @@ -258,11 +258,7 @@ const handleImportToStore = async (gqlCollections: HoppCollection[]) => { // Replace local collections with backend collections setGraphqlCollections(fetchResult.right) } else { - console.warn( - "Failed to fetch collections from backend after import:", - fetchResult.left - ) - // Still append to local store as fallback + // Failed to fetch, append to local store as fallback appendGraphqlCollections(gqlCollections) } @@ -270,19 +266,11 @@ const handleImportToStore = async (gqlCollections: HoppCollection[]) => { return } // Backend import failed, fall back to local storage - console.warn( - "Backend import failed, falling back to local storage:", - res.left - ) appendGraphqlCollections(gqlCollections) toast.success(t("state.file_imported")) return - } catch (error) { + } catch { // Backend import failed, fall back to local storage - console.warn( - "Backend import failed, falling back to local storage:", - error - ) appendGraphqlCollections(gqlCollections) toast.success(t("state.file_imported")) return diff --git a/packages/hoppscotch-common/src/components/mockServer/CreateMockServer.vue b/packages/hoppscotch-common/src/components/mockServer/CreateMockServer.vue index 2cf5310e440..fbd00e89f90 100644 --- a/packages/hoppscotch-common/src/components/mockServer/CreateMockServer.vue +++ b/packages/hoppscotch-common/src/components/mockServer/CreateMockServer.vue @@ -476,7 +476,6 @@ const createMockServer = async () => { TE.match( (error) => { // `error` here is the message string produced by the mutation helper. - console.error("Failed to create mock server:", error) // Show the backend-provided error message if available, otherwise fallback to generic toast.error(String(error) || t("error.something_went_wrong")) loading.value = false @@ -508,8 +507,7 @@ const toggleMockServer = async () => { await pipe( updateMockServer(existingMockServer.value.id, { isActive: newActiveState }), TE.match( - (error) => { - console.error("Failed to update mock server:", error) + () => { toast.error(t("error.something_went_wrong")) loading.value = false }, diff --git a/packages/hoppscotch-common/src/components/mockServer/EditMockServer.vue b/packages/hoppscotch-common/src/components/mockServer/EditMockServer.vue index 36b787b1213..e4ca643e016 100644 --- a/packages/hoppscotch-common/src/components/mockServer/EditMockServer.vue +++ b/packages/hoppscotch-common/src/components/mockServer/EditMockServer.vue @@ -221,8 +221,7 @@ const updateMockServer = async () => { await pipe( updateMockServerMutation(props.mockServer.id, payload), TE.match( - (error) => { - console.error("Failed to update mock server:", error) + () => { toast.error(t("error.something_went_wrong")) loading.value = false }, @@ -253,8 +252,7 @@ const toggleMockServer = async () => { await pipe( updateMockServerMutation(props.mockServer.id, { isActive: newActiveState }), TE.match( - (error) => { - console.error("Failed to update mock server:", error) + () => { toast.error(t("error.something_went_wrong")) loading.value = false }, diff --git a/packages/hoppscotch-common/src/components/mockServer/LogSection.vue b/packages/hoppscotch-common/src/components/mockServer/LogSection.vue index f2c35e3a4e3..29f446582ff 100644 --- a/packages/hoppscotch-common/src/components/mockServer/LogSection.vue +++ b/packages/hoppscotch-common/src/components/mockServer/LogSection.vue @@ -104,11 +104,7 @@ const formattedContent = computed(() => { const copyContent = () => { if (!props.content) return - try { - copyToClipboard(formattedContent.value) - copySuccess.value = true - } catch (error) { - console.error("Failed to copy content:", error) - } + copyToClipboard(formattedContent.value) + copySuccess.value = true } diff --git a/packages/hoppscotch-common/src/components/mockServer/MockServerDashboard.vue b/packages/hoppscotch-common/src/components/mockServer/MockServerDashboard.vue index 2509900b982..4f379eb1308 100644 --- a/packages/hoppscotch-common/src/components/mockServer/MockServerDashboard.vue +++ b/packages/hoppscotch-common/src/components/mockServer/MockServerDashboard.vue @@ -282,8 +282,7 @@ const toggleMockServer = async (mockServer: MockServer) => { await pipe( updateMockServerMutation(mockServer.id, { isActive: newActiveState }), TE.match( - (error) => { - console.error("Failed to update mock server:", error) + () => { toast.error(t("error.something_went_wrong")) loading.value = false }, @@ -325,8 +324,7 @@ const confirmDelete = async () => { await pipe( deleteMockServerMutation(mockServer.id), TE.match( - (error) => { - console.error("Failed to delete mock server:", error) + () => { toast.error(t("error.something_went_wrong")) loading.value = false pendingMockServerToDelete.value = null diff --git a/packages/hoppscotch-common/src/components/mockServer/MockServerLogs.vue b/packages/hoppscotch-common/src/components/mockServer/MockServerLogs.vue index e3862deaa00..720b2599ded 100644 --- a/packages/hoppscotch-common/src/components/mockServer/MockServerLogs.vue +++ b/packages/hoppscotch-common/src/components/mockServer/MockServerLogs.vue @@ -143,8 +143,7 @@ const fetchLogs = async () => { await pipe( getMockServerLogs(props.mockServerID), TE.match( - (err) => { - console.error("Failed to load logs", err) + () => { toast.error(t("error.something_went_wrong")) loading.value = false }, @@ -172,8 +171,7 @@ const confirmDelete = async () => { await pipe( deleteMockServerLog(logToDelete.value), TE.match( - (err) => { - console.error("Failed to delete log", err) + () => { toast.error(t("error.something_went_wrong")) }, (res) => { diff --git a/packages/hoppscotch-common/src/helpers/backend/mutations/MockServer.ts b/packages/hoppscotch-common/src/helpers/backend/mutations/MockServer.ts index 71d3ca702ae..22656cb51c5 100644 --- a/packages/hoppscotch-common/src/helpers/backend/mutations/MockServer.ts +++ b/packages/hoppscotch-common/src/helpers/backend/mutations/MockServer.ts @@ -224,7 +224,6 @@ export const getErrorMessage = (err: GQLError | string | Error) => { if (!gErr) return t("error.something_went_wrong") if (gErr.type === "network_error") { - console.error(gErr.error) return t("error.network_error") } diff --git a/packages/hoppscotch-common/src/helpers/backend/mutations/UserCollection.ts b/packages/hoppscotch-common/src/helpers/backend/mutations/UserCollection.ts index 3329ccc20fa..24c3ca82204 100644 --- a/packages/hoppscotch-common/src/helpers/backend/mutations/UserCollection.ts +++ b/packages/hoppscotch-common/src/helpers/backend/mutations/UserCollection.ts @@ -77,9 +77,7 @@ function convertUserRequestToHoppRequest( } return request - } catch (error) { - console.warn("Failed to parse user request data:", error) - + } catch { // Return a default request if parsing fails if (userRequest.type === ReqType.Rest) { const defaultRequest = getDefaultRESTRequest() @@ -115,8 +113,7 @@ function parseUserCollectionData(data: string | null | undefined) { headers: parsedData?.headers || defaultDataProps.headers, variables: parsedData?.variables || defaultDataProps.variables, } - } catch (error) { - console.warn("Failed to parse user collection data:", error) + } catch { return defaultDataProps } } From 95a8be6f943e4a48b813077db5392ea1eefe7109 Mon Sep 17 00:00:00 2001 From: Shreyas Date: Thu, 30 Oct 2025 11:42:09 +0530 Subject: [PATCH 27/33] chore(agent): bump version to `v0.1.15` (#5531) Regenerated lock file due to conflicting dependencies. --- packages/hoppscotch-agent/package.json | 2 +- .../hoppscotch-agent/src-tauri/Cargo.lock | 2228 +++++++++-------- .../hoppscotch-agent/src-tauri/Cargo.toml | 2 +- .../src-tauri/tauri.conf.json | 2 +- .../src-tauri/tauri.portable.conf.json | 2 +- 5 files changed, 1214 insertions(+), 1022 deletions(-) diff --git a/packages/hoppscotch-agent/package.json b/packages/hoppscotch-agent/package.json index 4f0d382b78e..e5d6ce6d7f0 100644 --- a/packages/hoppscotch-agent/package.json +++ b/packages/hoppscotch-agent/package.json @@ -1,7 +1,7 @@ { "name": "hoppscotch-agent", "private": true, - "version": "0.1.14", + "version": "0.1.15", "type": "module", "scripts": { "dev": "vite", diff --git a/packages/hoppscotch-agent/src-tauri/Cargo.lock b/packages/hoppscotch-agent/src-tauri/Cargo.lock index b179d5268e7..32b752d2fee 100644 --- a/packages/hoppscotch-agent/src-tauri/Cargo.lock +++ b/packages/hoppscotch-agent/src-tauri/Cargo.lock @@ -2,20 +2,11 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - [[package]] name = "adler2" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aead" @@ -54,9 +45,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] @@ -76,12 +67,6 @@ dependencies = [ "alloc-no-stdlib", ] -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - [[package]] name = "android_system_properties" version = "0.1.5" @@ -93,9 +78,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.18" +version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" dependencies = [ "anstyle", "anstyle-parse", @@ -108,50 +93,50 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.10" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" +checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" [[package]] name = "anstyle-parse" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.2" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.7" +version = "3.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" +checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" dependencies = [ "anstyle", - "once_cell", - "windows-sys 0.59.0", + "once_cell_polyfill", + "windows-sys 0.60.2", ] [[package]] name = "anyhow" -version = "1.0.97" +version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" [[package]] name = "arbitrary" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" dependencies = [ "derive_arbitrary", ] @@ -171,12 +156,15 @@ dependencies = [ "enumflags2", "futures-channel", "futures-util", - "rand 0.9.0", + "rand 0.9.2", "raw-window-handle 0.6.2", "serde", "serde_repr", "tokio", "url", + "wayland-backend", + "wayland-client", + "wayland-protocols", "zbus", ] @@ -194,9 +182,9 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.3.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" dependencies = [ "concurrent-queue", "event-listener-strategy", @@ -206,65 +194,54 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.21" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0cf008e5e1a9e9e22a7d3c9a4992e21a350290069e36d8fb72304ed17e8f2d2" +checksum = "5a89bce6054c720275ac2432fbba080a66a2106a44a1b804553930ca6909f4e0" dependencies = [ - "flate2", + "compression-codecs", + "compression-core", "futures-core", - "memchr", "pin-project-lite", "tokio", ] [[package]] name = "async-executor" -version = "1.13.1" +version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" +checksum = "497c00e0fd83a72a79a39fcbd8e3e2f055d6f6c7e025f3b3d91f4f8e76527fb8" dependencies = [ "async-task", "concurrent-queue", "fastrand", "futures-lite", + "pin-project-lite", "slab", ] -[[package]] -name = "async-fs" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" -dependencies = [ - "async-lock", - "blocking", - "futures-lite", -] - [[package]] name = "async-io" -version = "2.4.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" +checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" dependencies = [ - "async-lock", + "autocfg", "cfg-if", "concurrent-queue", "futures-io", "futures-lite", "parking", "polling", - "rustix 0.38.44", + "rustix 1.1.2", "slab", - "tracing", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] name = "async-lock" -version = "3.4.0" +version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" +checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" dependencies = [ "event-listener", "event-listener-strategy", @@ -273,9 +250,9 @@ dependencies = [ [[package]] name = "async-process" -version = "2.3.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" +checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" dependencies = [ "async-channel", "async-io", @@ -286,8 +263,7 @@ dependencies = [ "cfg-if", "event-listener", "futures-lite", - "rustix 0.38.44", - "tracing", + "rustix 1.1.2", ] [[package]] @@ -298,14 +274,14 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] name = "async-signal" -version = "0.2.10" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" +checksum = "43c070bbf59cd3570b6b2dd54cd772527c7c3620fce8be898406dd3ed6adc64c" dependencies = [ "async-io", "async-lock", @@ -313,10 +289,10 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 0.38.44", + "rustix 1.1.2", "signal-hook-registry", "slab", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -327,13 +303,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.88" +version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] @@ -378,9 +354,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axum" @@ -461,21 +437,6 @@ dependencies = [ "tower-service", ] -[[package]] -name = "backtrace" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - [[package]] name = "base16" version = "0.2.1" @@ -502,11 +463,11 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -535,18 +496,18 @@ dependencies = [ [[package]] name = "block2" -version = "0.6.0" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d59b4c170e16f0405a2e95aff44432a0d41aa97675f3d52623effe95792a037" +checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" dependencies = [ - "objc2 0.6.0", + "objc2 0.6.3", ] [[package]] name = "blocking" -version = "1.6.1" +version = "1.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" +checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" dependencies = [ "async-channel", "async-task", @@ -578,15 +539,15 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.17.0" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "bytemuck" -version = "1.22.0" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540" +checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" [[package]] name = "byteorder" @@ -615,7 +576,7 @@ version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "cairo-sys-rs", "glib", "libc", @@ -636,11 +597,11 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.9" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" +checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -663,7 +624,7 @@ dependencies = [ "semver", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] @@ -673,15 +634,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" dependencies = [ "serde", - "toml 0.9.7", + "toml 0.9.8", ] [[package]] name = "cc" -version = "1.2.16" +version = "1.2.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" +checksum = "739eb0f94557554b3ca9a86d2d37bebd49c5e6d0c1d2bda35ba5bdac830befc2" dependencies = [ + "find-msvc-tools", "shlex", ] @@ -714,9 +676,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg_aliases" @@ -726,17 +688,16 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.40" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ - "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "serde", "wasm-bindgen", - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -781,9 +742,9 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" [[package]] name = "combine" @@ -795,6 +756,23 @@ dependencies = [ "memchr", ] +[[package]] +name = "compression-codecs" +version = "0.4.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef8a506ec4b81c460798f572caead636d57d3d7e940f998160f52bd254bf2d23" +dependencies = [ + "compression-core", + "flate2", + "memchr", +] + +[[package]] +name = "compression-core" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e47641d3deaf41fb1538ac1f54735925e275eaf3bf4d55c81b137fba797e5cbb" + [[package]] name = "concurrent-queue" version = "2.5.0" @@ -851,9 +829,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" dependencies = [ "core-foundation-sys", "libc", @@ -884,8 +862,8 @@ version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" dependencies = [ - "bitflags 2.9.0", - "core-foundation 0.10.0", + "bitflags 2.10.0", + "core-foundation 0.10.1", "core-graphics-types 0.2.0", "foreign-types 0.5.0", "libc", @@ -908,8 +886,8 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" dependencies = [ - "bitflags 2.9.0", - "core-foundation 0.10.0", + "bitflags 2.10.0", + "core-foundation 0.10.1", "libc", ] @@ -924,18 +902,18 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.4.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ "cfg-if", ] [[package]] name = "crossbeam-channel" -version = "0.5.14" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" dependencies = [ "crossbeam-utils", ] @@ -981,7 +959,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] @@ -991,7 +969,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" dependencies = [ "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] @@ -1012,7 +990,7 @@ dependencies = [ "libc", "openssl-probe", "openssl-sys", - "socket2", + "socket2 0.5.10", ] [[package]] @@ -1051,14 +1029,14 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] name = "darling" -version = "0.20.10" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ "darling_core", "darling_macro", @@ -1066,27 +1044,27 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.10" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] name = "darling_macro" -version = "0.20.10" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] @@ -1106,42 +1084,42 @@ dependencies = [ [[package]] name = "data-url" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a" +checksum = "be1e0bca6c3637f992fc1cc7cbc52a78c1ef6db076dbf1059c4323d6a2048376" [[package]] name = "deranged" -version = "0.4.0" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" dependencies = [ "powerfmt", - "serde", + "serde_core", ] [[package]] name = "derive_arbitrary" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" +checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] name = "derive_more" -version = "0.99.19" +version = "0.99.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3da29a38df43d6f156149c9b43ded5e018ddff2a855cf2cfd62e8cd7d079c69f" +checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" dependencies = [ "convert_case", "proc-macro2", "quote", "rustc_version", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] @@ -1201,8 +1179,8 @@ checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" dependencies = [ "libc", "option-ext", - "redox_users 0.5.0", - "windows-sys 0.60.2", + "redox_users 0.5.2", + "windows-sys 0.61.2", ] [[package]] @@ -1224,14 +1202,14 @@ checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" [[package]] name = "dispatch2" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a0d569e003ff27784e0e14e4a594048698e0c0f0b66cabcb51511be55a7caa0" +checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" dependencies = [ - "bitflags 2.9.0", - "block2 0.6.0", + "bitflags 2.10.0", + "block2 0.6.2", "libc", - "objc2 0.6.0", + "objc2 0.6.3", ] [[package]] @@ -1242,7 +1220,16 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", +] + +[[package]] +name = "dlib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" +dependencies = [ + "libloading 0.8.9", ] [[package]] @@ -1259,29 +1246,35 @@ dependencies = [ [[package]] name = "dlopen2_derive" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" +checksum = "788160fb30de9cdd857af31c6a2675904b16ece8fc2737b2c7127ba368c9d0f4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] name = "document-features" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" +checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" dependencies = [ "litrs", ] +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + [[package]] name = "dpi" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" +checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" dependencies = [ "serde", ] @@ -1309,9 +1302,9 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clone" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "either" @@ -1321,16 +1314,16 @@ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "embed-resource" -version = "3.0.2" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fbc6e0d8e0c03a655b53ca813f0463d2c956bc4db8138dbc89f120b066551e3" +checksum = "55a075fc573c64510038d7ee9abc7990635863992f83ebc52c8b433b8411a02e" dependencies = [ "cc", "memchr", "rustc_version", - "toml 0.8.20", + "toml 0.9.8", "vswhom", - "winreg 0.52.0", + "winreg 0.55.0", ] [[package]] @@ -1356,9 +1349,9 @@ checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" [[package]] name = "enumflags2" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba2f4b465f5318854c6f8dd686ede6c0a9dc67d4b1ac241cf0eb51521a309147" +checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" dependencies = [ "enumflags2_derive", "serde", @@ -1366,20 +1359,20 @@ dependencies = [ [[package]] name = "enumflags2_derive" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79" +checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] name = "env_filter" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" +checksum = "1bf3c259d255ca70051b30e2e95b5446cdb8949ac4cd22c0d7fd634d89f568e2" dependencies = [ "log", "regex", @@ -1387,9 +1380,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.7" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3716d7a920fb4fac5d84e9d4bce8ceb321e9414b4409da61b07b75c1e3d0697" +checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" dependencies = [ "anstream", "anstyle", @@ -1406,29 +1399,30 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "erased-serde" -version = "0.4.6" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7" +checksum = "259d404d09818dec19332e31d94558aeb442fea04c817006456c24b5460bbd4b" dependencies = [ "serde", + "serde_core", "typeid", ] [[package]] name = "errno" -version = "0.3.10" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] name = "event-listener" -version = "5.4.0" +version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" +checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" dependencies = [ "concurrent-queue", "parking", @@ -1437,9 +1431,9 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" dependencies = [ "event-listener", "pin-project-lite", @@ -1488,21 +1482,27 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.25" +version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" dependencies = [ "cfg-if", "libc", "libredox", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] +[[package]] +name = "find-msvc-tools" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" + [[package]] name = "flate2" -version = "1.1.0" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" +checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" dependencies = [ "crc32fast", "miniz_oxide", @@ -1541,7 +1541,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] @@ -1558,9 +1558,9 @@ checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -1609,9 +1609,9 @@ checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" -version = "2.6.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" +checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" dependencies = [ "fastrand", "futures-core", @@ -1628,7 +1628,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] @@ -1770,9 +1770,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.7" +version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" dependencies = [ "typenum", "version_check", @@ -1791,28 +1791,28 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi 0.11.1+wasi-snapshot-preview1", "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.3.2" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "js-sys", "libc", "r-efi", - "wasi 0.14.2+wasi-0.2.4", + "wasip2", "wasm-bindgen", ] @@ -1826,12 +1826,6 @@ dependencies = [ "polyval", ] -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - [[package]] name = "gio" version = "0.18.4" @@ -1870,7 +1864,7 @@ version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "futures-channel", "futures-core", "futures-executor", @@ -1894,11 +1888,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" dependencies = [ "heck 0.4.1", - "proc-macro-crate 2.0.0", + "proc-macro-crate 2.0.2", "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] @@ -1913,9 +1907,9 @@ dependencies = [ [[package]] name = "glob" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "gobject-sys" @@ -1977,14 +1971,14 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] name = "h2" -version = "0.4.8" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" dependencies = [ "atomic-waker", "bytes", @@ -1992,7 +1986,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.11.4", + "indexmap 2.12.0", "slab", "tokio", "tokio-util", @@ -2013,17 +2007,17 @@ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" [[package]] name = "hashbrown" -version = "0.15.2" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" [[package]] name = "headers" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322106e6bd0cba2d5ead589ddb8150a13d7c4217cf80d7c4f682ca994ccc6aa9" +checksum = "b3314d5adb5d94bcdf56771f2e50dbbc80bb4bdf88967526706205ac9eff24eb" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "bytes", "headers-core", "http", @@ -2055,9 +2049,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.4.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" [[package]] name = "hex" @@ -2067,16 +2061,16 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "home" -version = "0.5.11" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] name = "hoppscotch-agent" -version = "0.1.14" +version = "0.1.15" dependencies = [ "aes-gcm", "axum", @@ -2185,13 +2179,14 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" +checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" dependencies = [ + "atomic-waker", "bytes", "futures-channel", - "futures-util", + "futures-core", "h2", "http", "http-body", @@ -2199,6 +2194,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", + "pin-utils", "smallvec", "tokio", "want", @@ -2206,11 +2202,10 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.5" +version = "0.27.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ - "futures-util", "http", "hyper", "hyper-util", @@ -2224,35 +2219,43 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.10" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" dependencies = [ + "base64 0.22.1", "bytes", "futures-channel", + "futures-core", "futures-util", "http", "http-body", "hyper", + "ipnet", + "libc", + "percent-encoding", "pin-project-lite", - "socket2", + "socket2 0.6.1", + "system-configuration", "tokio", "tower-service", "tracing", + "windows-registry", ] [[package]] name = "iana-time-zone" -version = "0.1.61" +version = "0.1.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" +checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", + "log", "wasm-bindgen", - "windows-core 0.52.0", + "windows-core 0.62.2", ] [[package]] @@ -2271,26 +2274,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc50b891e4acf8fe0e71ef88ec43ad82ee07b3810ad09de10f1d01f072ed4b98" dependencies = [ "byteorder", - "png", + "png 0.17.16", ] [[package]] name = "icu_collections" -version = "1.5.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" dependencies = [ "displaydoc", + "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] -name = "icu_locid" -version = "1.5.0" +name = "icu_locale_core" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" dependencies = [ "displaydoc", "litemap", @@ -2299,99 +2303,61 @@ dependencies = [ "zerovec", ] -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - [[package]] name = "icu_normalizer" -version = "1.5.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" dependencies = [ - "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", "icu_provider", "smallvec", - "utf16_iter", - "utf8_iter", - "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "1.5.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" [[package]] name = "icu_properties" -version = "1.5.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99" dependencies = [ - "displaydoc", "icu_collections", - "icu_locid_transform", + "icu_locale_core", "icu_properties_data", "icu_provider", - "tinystr", + "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "1.5.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" +checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899" [[package]] name = "icu_provider" -version = "1.5.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" dependencies = [ "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", + "icu_locale_core", "writeable", "yoke", "zerofrom", + "zerotrie", "zerovec", ] -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - [[package]] name = "ident_case" version = "1.0.1" @@ -2400,9 +2366,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -2411,9 +2377,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ "icu_normalizer", "icu_properties", @@ -2421,14 +2387,15 @@ dependencies = [ [[package]] name = "image" -version = "0.25.5" +version = "0.25.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd6f44aed642f18953a158afeb30206f4d50da59fbc66ecb53c66488de73563b" +checksum = "529feb3e6769d234375c4cf1ee2ce713682b8e76538cb13f9fc23e1400a591e7" dependencies = [ "bytemuck", "byteorder-lite", + "moxcms", "num-traits", - "png", + "png 0.18.0", ] [[package]] @@ -2444,12 +2411,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.11.4" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" +checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" dependencies = [ "equivalent", - "hashbrown 0.15.2", + "hashbrown 0.16.0", "serde", "serde_core", ] @@ -2487,6 +2454,16 @@ version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +[[package]] +name = "iri-string" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +dependencies = [ + "memchr", + "serde", +] + [[package]] name = "is-docker" version = "0.2.0" @@ -2508,9 +2485,9 @@ dependencies = [ [[package]] name = "is_terminal_polyfill" -version = "1.70.1" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" [[package]] name = "itertools" @@ -2552,9 +2529,9 @@ dependencies = [ [[package]] name = "jiff" -version = "0.2.4" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d699bc6dfc879fb1bf9bdff0d4c56f0884fc6f0d0eb0fba397a6d00cd9a6b85e" +checksum = "be1f93b8b1eb69c77f24bbb0afdf66f54b632ee39af40ca21c4365a1d7347e49" dependencies = [ "jiff-static", "log", @@ -2565,13 +2542,13 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.4" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d16e75759ee0aa64c57a56acbf43916987b20c77373cb7e808979e02b93c9f9" +checksum = "03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] @@ -2598,9 +2575,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" dependencies = [ "once_cell", "wasm-bindgen", @@ -2634,7 +2611,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "serde", "unicode-segmentation", ] @@ -2647,7 +2624,7 @@ checksum = "02cb977175687f33fa4afa0c95c112b987ea1443e5a51c8f8ff27dc618270cc2" dependencies = [ "cssparser", "html5ever", - "indexmap 2.11.4", + "indexmap 2.12.0", "selectors", ] @@ -2677,15 +2654,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" dependencies = [ "gtk-sys", - "libloading", + "libloading 0.7.4", "once_cell", ] [[package]] name = "libc" -version = "0.2.171" +version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "libloading" @@ -2697,13 +2674,23 @@ dependencies = [ "winapi", ] +[[package]] +name = "libloading" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" +dependencies = [ + "cfg-if", + "windows-link 0.2.1", +] + [[package]] name = "libredox" -version = "0.1.3" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "libc", "redox_syscall", ] @@ -2728,37 +2715,42 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" -version = "0.9.3" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "litemap" -version = "0.7.5" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" [[package]] name = "litrs" -version = "0.4.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" +checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" [[package]] name = "lock_api" -version = "0.4.12" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" dependencies = [ - "autocfg", "scopeguard", ] [[package]] name = "log" -version = "0.4.26" +version = "0.4.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" + +[[package]] +name = "lru-slab" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" [[package]] name = "mac" @@ -2797,16 +2789,16 @@ checksum = "88a9689d8d44bf9964484516275f5cd4c9b59457a6940c1d5d0ecbb94510a36b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] name = "matchers" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" dependencies = [ - "regex-automata 0.1.10", + "regex-automata", ] [[package]] @@ -2823,9 +2815,9 @@ checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" [[package]] name = "memchr" -version = "2.7.4" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] name = "memoffset" @@ -2850,15 +2842,15 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "minisign-verify" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6367d84fb54d4242af283086402907277715b8fe46976963af5ebf173f8efba3" +checksum = "e856fdd13623a2f5f2f54676a4ee49502a96a80ef4a62bcedd23d52427c44d43" [[package]] name = "miniz_oxide" -version = "0.8.5" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", "simd-adler32", @@ -2866,33 +2858,43 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.61.2", ] [[package]] -name = "muda" -version = "0.17.1" +name = "moxcms" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01c1738382f66ed56b3b9c8119e794a2e23148ac8ea214eda86622d4cb9d415a" +checksum = "0fbdd3d7436f8b5e892b8b7ea114271ff0fa00bc5acae845d53b07d498616ef6" dependencies = [ - "crossbeam-channel", - "dpi", + "num-traits", + "pxfm", +] + +[[package]] +name = "muda" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01c1738382f66ed56b3b9c8119e794a2e23148ac8ea214eda86622d4cb9d415a" +dependencies = [ + "crossbeam-channel", + "dpi", "gtk", "keyboard-types", - "objc2 0.6.0", + "objc2 0.6.3", "objc2-app-kit", "objc2-core-foundation", - "objc2-foundation 0.3.0", + "objc2-foundation 0.3.2", "once_cell", - "png", + "png 0.17.16", "serde", - "thiserror 2.0.12", + "thiserror 2.0.17", "windows-sys 0.60.2", ] @@ -2942,7 +2944,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "jni-sys", "log", "ndk-sys", @@ -2974,11 +2976,11 @@ checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" [[package]] name = "nix" -version = "0.29.0" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" +checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "cfg-if", "cfg_aliases", "libc", @@ -3003,12 +3005,11 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.46.0" +version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "overload", - "winapi", + "windows-sys 0.61.2", ] [[package]] @@ -3028,23 +3029,24 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.3" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" dependencies = [ "num_enum_derive", + "rustversion", ] [[package]] name = "num_enum_derive" -version = "0.7.3" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" dependencies = [ - "proc-macro-crate 3.3.0", + "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] @@ -3085,9 +3087,9 @@ dependencies = [ [[package]] name = "objc2" -version = "0.6.0" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3531f65190d9cff863b77a99857e74c314dd16bf56c538c4b57c7cbc3f3a6e59" +checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" dependencies = [ "objc2-encode", "objc2-exception-helper", @@ -3095,75 +3097,104 @@ dependencies = [ [[package]] name = "objc2-app-kit" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5906f93257178e2f7ae069efb89fbd6ee94f0592740b5f8a1512ca498814d0fb" +checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" dependencies = [ - "bitflags 2.9.0", - "block2 0.6.0", + "bitflags 2.10.0", + "block2 0.6.2", "libc", - "objc2 0.6.0", + "objc2 0.6.3", "objc2-cloud-kit", "objc2-core-data", "objc2-core-foundation", "objc2-core-graphics", "objc2-core-image", - "objc2-foundation 0.3.0", - "objc2-quartz-core 0.3.0", + "objc2-core-text", + "objc2-core-video", + "objc2-foundation 0.3.2", + "objc2-quartz-core 0.3.2", ] [[package]] name = "objc2-cloud-kit" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c1948a9be5f469deadbd6bcb86ad7ff9e47b4f632380139722f7d9840c0d42c" +checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" dependencies = [ - "bitflags 2.9.0", - "objc2 0.6.0", - "objc2-foundation 0.3.0", + "bitflags 2.10.0", + "objc2 0.6.3", + "objc2-foundation 0.3.2", ] [[package]] name = "objc2-core-data" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f860f8e841f6d32f754836f51e6bc7777cd7e7053cf18528233f6811d3eceb4" +checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" dependencies = [ - "bitflags 2.9.0", - "objc2 0.6.0", - "objc2-foundation 0.3.0", + "bitflags 2.10.0", + "objc2 0.6.3", + "objc2-foundation 0.3.2", ] [[package]] name = "objc2-core-foundation" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daeaf60f25471d26948a1c2f840e3f7d86f4109e3af4e8e4b5cd70c39690d925" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "bitflags 2.9.0", - "objc2 0.6.0", + "bitflags 2.10.0", + "dispatch2", + "objc2 0.6.3", ] [[package]] name = "objc2-core-graphics" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dca602628b65356b6513290a21a6405b4d4027b8b250f0b98dddbb28b7de02" +checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" dependencies = [ - "bitflags 2.9.0", - "objc2 0.6.0", + "bitflags 2.10.0", + "dispatch2", + "objc2 0.6.3", "objc2-core-foundation", "objc2-io-surface", ] [[package]] name = "objc2-core-image" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ffa6bea72bf42c78b0b34e89c0bafac877d5f80bf91e159a5d96ea7f693ca56" +checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006" dependencies = [ - "objc2 0.6.0", - "objc2-foundation 0.3.0", + "objc2 0.6.3", + "objc2-foundation 0.3.2", +] + +[[package]] +name = "objc2-core-text" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" +dependencies = [ + "bitflags 2.10.0", + "objc2 0.6.3", + "objc2-core-foundation", + "objc2-core-graphics", +] + +[[package]] +name = "objc2-core-video" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" +dependencies = [ + "bitflags 2.10.0", + "objc2 0.6.3", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-io-surface", ] [[package]] @@ -3187,7 +3218,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "block2 0.5.1", "libc", "objc2 0.5.2", @@ -3195,25 +3226,35 @@ dependencies = [ [[package]] name = "objc2-foundation" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a21c6c9014b82c39515db5b396f91645182611c97d24637cf56ac01e5f8d998" +checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" dependencies = [ - "bitflags 2.9.0", - "block2 0.6.0", + "bitflags 2.10.0", + "block2 0.6.2", "libc", - "objc2 0.6.0", + "objc2 0.6.3", "objc2-core-foundation", ] [[package]] name = "objc2-io-surface" -version = "0.3.0" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" +dependencies = [ + "bitflags 2.10.0", + "objc2 0.6.3", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-javascript-core" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "161a8b87e32610086e1a7a9e9ec39f84459db7b3a0881c1f16ca5a2605581c19" +checksum = "2a1e6550c4caed348956ce3370c9ffeca70bb1dbed4fa96112e7c6170e074586" dependencies = [ - "bitflags 2.9.0", - "objc2 0.6.0", + "objc2 0.6.3", "objc2-core-foundation", ] @@ -3223,7 +3264,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -3231,14 +3272,14 @@ dependencies = [ [[package]] name = "objc2-osa-kit" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ac59da3ceebc4a82179b35dc550431ad9458f9cc326e053f49ba371ce76c5a" +checksum = "f112d1746737b0da274ef79a23aac283376f335f4095a083a267a082f21db0c0" dependencies = [ - "bitflags 2.9.0", - "objc2 0.6.0", + "bitflags 2.10.0", + "objc2 0.6.3", "objc2-app-kit", - "objc2-foundation 0.3.0", + "objc2-foundation 0.3.2", ] [[package]] @@ -3247,7 +3288,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -3256,50 +3297,51 @@ dependencies = [ [[package]] name = "objc2-quartz-core" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb3794501bb1bee12f08dcad8c61f2a5875791ad1c6f47faa71a0f033f20071" +checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" dependencies = [ - "bitflags 2.9.0", - "objc2 0.6.0", - "objc2-foundation 0.3.0", + "bitflags 2.10.0", + "objc2 0.6.3", + "objc2-foundation 0.3.2", ] [[package]] name = "objc2-security" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3126341c65c5d5728423ae95d788e1b660756486ad0592307ab87ba02d9a7268" +checksum = "709fe137109bd1e8b5a99390f77a7d8b2961dafc1a1c5db8f2e60329ad6d895a" dependencies = [ - "bitflags 2.9.0", - "objc2 0.6.0", + "bitflags 2.10.0", + "objc2 0.6.3", "objc2-core-foundation", ] [[package]] name = "objc2-ui-kit" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "777a571be14a42a3990d4ebedaeb8b54cd17377ec21b92e8200ac03797b3bee1" +checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" dependencies = [ - "bitflags 2.9.0", - "objc2 0.6.0", + "bitflags 2.10.0", + "objc2 0.6.3", "objc2-core-foundation", - "objc2-foundation 0.3.0", + "objc2-foundation 0.3.2", ] [[package]] name = "objc2-web-kit" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b717127e4014b0f9f3e8bba3d3f2acec81f1bde01f656823036e823ed2c94dce" +checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f" dependencies = [ - "bitflags 2.9.0", - "block2 0.6.0", - "objc2 0.6.0", + "bitflags 2.10.0", + "block2 0.6.2", + "objc2 0.6.3", "objc2-app-kit", "objc2-core-foundation", - "objc2-foundation 0.3.0", + "objc2-foundation 0.3.2", + "objc2-javascript-core", "objc2-security", ] @@ -3313,19 +3355,16 @@ dependencies = [ ] [[package]] -name = "object" -version = "0.36.7" +name = "once_cell" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] -name = "once_cell" -version = "1.21.1" +name = "once_cell_polyfill" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "opaque-debug" @@ -3347,11 +3386,11 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.71" +version = "0.10.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd" +checksum = "24ad14dd45412269e1a30f52ad8f0664f0f4f4a89ee8fe28c3b3527021ebb654" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "cfg-if", "foreign-types 0.3.2", "libc", @@ -3368,7 +3407,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] @@ -3379,18 +3418,18 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-src" -version = "300.4.2+3.4.1" +version = "300.5.4+3.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168ce4e058f975fe43e89d9ccf78ca668601887ae736090aacc23ae353c298e2" +checksum = "a507b3792995dae9b0df8a1c1e3771e8418b7c2d9f0baeba32e6fe8b06c7cb72" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.106" +version = "0.9.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd" +checksum = "0a9f0075ba3c21b09f8e8b2026584b1d18d49388648f2fbbf3c97ea8deced8e2" dependencies = [ "cc", "libc", @@ -3417,12 +3456,12 @@ dependencies = [ [[package]] name = "os_pipe" -version = "1.2.1" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982" +checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -3431,20 +3470,14 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "732c71caeaa72c065bb69d7ea08717bd3f4863a4f451402fc9513e29dbd5261b" dependencies = [ - "objc2 0.6.0", - "objc2-foundation 0.3.0", + "objc2 0.6.3", + "objc2-foundation 0.3.2", "objc2-osa-kit", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.17", ] -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - [[package]] name = "pango" version = "0.18.3" @@ -3478,9 +3511,9 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" -version = "0.12.3" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" dependencies = [ "lock_api", "parking_lot_core", @@ -3488,15 +3521,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.10" +version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-targets 0.52.6", + "windows-link 0.2.1", ] [[package]] @@ -3507,9 +3540,9 @@ checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "phf" @@ -3615,7 +3648,7 @@ dependencies = [ "phf_shared 0.11.3", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] @@ -3676,13 +3709,13 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "plist" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016" +checksum = "740ebea15c5d1428f910cd1a5f52cebf8d25006245ed8ade92702f4943d91e07" dependencies = [ "base64 0.22.1", - "indexmap 2.11.4", - "quick-xml", + "indexmap 2.12.0", + "quick-xml 0.38.3", "serde", "time", ] @@ -3700,19 +3733,31 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "png" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0" +dependencies = [ + "bitflags 2.10.0", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + [[package]] name = "polling" -version = "3.7.4" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" +checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" dependencies = [ "cfg-if", "concurrent-queue", "hermit-abi", "pin-project-lite", - "rustix 0.38.44", - "tracing", - "windows-sys 0.59.0", + "rustix 1.1.2", + "windows-sys 0.61.2", ] [[package]] @@ -3729,9 +3774,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "portable-atomic-util" @@ -3742,6 +3787,15 @@ dependencies = [ "portable-atomic", ] +[[package]] +name = "potential_utf" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" +dependencies = [ + "zerovec", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -3775,20 +3829,21 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "2.0.0" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" +checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" dependencies = [ - "toml_edit 0.20.7", + "toml_datetime 0.6.3", + "toml_edit 0.20.2", ] [[package]] name = "proc-macro-crate" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" +checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" dependencies = [ - "toml_edit 0.22.24", + "toml_edit 0.23.7", ] [[package]] @@ -3823,9 +3878,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.94" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" dependencies = [ "unicode-ident", ] @@ -3846,20 +3901,38 @@ dependencies = [ "psl-types", ] +[[package]] +name = "pxfm" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3cbdf373972bf78df4d3b518d07003938e2c7d1fb5891e55f9cb6df57009d84" +dependencies = [ + "num-traits", +] + [[package]] name = "quick-xml" -version = "0.32.0" +version = "0.37.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2" +checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb" +dependencies = [ + "memchr", +] + +[[package]] +name = "quick-xml" +version = "0.38.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42a232e7487fc2ef313d96dde7948e7a3c05101870d8985e4fd8d26aedd27b89" dependencies = [ "memchr", ] [[package]] name = "quinn" -version = "0.11.7" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3bd15a6f2967aef83887dcb9fec0014580467e33720d073560cf015a5683012" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" dependencies = [ "bytes", "cfg_aliases", @@ -3868,8 +3941,8 @@ dependencies = [ "quinn-udp", "rustc-hash", "rustls", - "socket2", - "thiserror 2.0.12", + "socket2 0.6.1", + "thiserror 2.0.17", "tokio", "tracing", "web-time", @@ -3877,19 +3950,20 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.10" +version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b820744eb4dc9b57a3398183639c511b5a26d2ed702cedd3febaa1393caa22cc" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" dependencies = [ "bytes", - "getrandom 0.3.2", - "rand 0.9.0", + "getrandom 0.3.4", + "lru-slab", + "rand 0.9.2", "ring", "rustc-hash", "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.12", + "thiserror 2.0.17", "tinyvec", "tracing", "web-time", @@ -3897,32 +3971,32 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.10" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e46f3055866785f6b92bc6164b76be02ca8f2eb4b002c0354b28cf4c119e5944" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2", + "socket2 0.6.1", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "quote" -version = "1.0.40" +version = "1.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" dependencies = [ "proc-macro2", ] [[package]] name = "r-efi" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "rand" @@ -3951,13 +4025,12 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.3", - "zerocopy", ] [[package]] @@ -4005,7 +4078,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", ] [[package]] @@ -4014,7 +4087,7 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.4", ] [[package]] @@ -4049,11 +4122,11 @@ checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" [[package]] name = "redox_syscall" -version = "0.5.10" +version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", ] [[package]] @@ -4062,65 +4135,70 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", "libredox", "thiserror 1.0.69", ] [[package]] name = "redox_users" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", "libredox", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] -name = "regex" -version = "1.11.1" +name = "ref-cast" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" dependencies = [ - "aho-corasick", - "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", + "ref-cast-impl", ] [[package]] -name = "regex-automata" -version = "0.1.10" +name = "ref-cast-impl" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ - "regex-syntax 0.6.29", + "proc-macro2", + "quote", + "syn 2.0.108", ] [[package]] -name = "regex-automata" -version = "0.4.9" +name = "regex" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.5", + "regex-automata", + "regex-syntax", ] [[package]] -name = "regex-syntax" -version = "0.6.29" +name = "regex-automata" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "relay" @@ -4153,9 +4231,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.15" +version = "0.12.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" +checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" dependencies = [ "async-compression", "base64 0.22.1", @@ -4172,26 +4250,23 @@ dependencies = [ "hyper", "hyper-rustls", "hyper-util", - "ipnet", "js-sys", "log", "mime", - "once_cell", "percent-encoding", "pin-project-lite", "quinn", "rustls", - "rustls-pemfile", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper", - "system-configuration", "tokio", "tokio-rustls", "tokio-util", "tower", + "tower-http", "tower-service", "url", "wasm-bindgen", @@ -4199,27 +4274,26 @@ dependencies = [ "wasm-streams", "web-sys", "webpki-roots", - "windows-registry", ] [[package]] name = "rfd" -version = "0.15.3" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80c844748fdc82aae252ee4594a89b6e7ebef1063de7951545564cbc4e57075d" +checksum = "ef2bee61e6cffa4635c72d7d81a84294e28f0930db0ddcb0f66d10244674ebed" dependencies = [ "ashpd", - "block2 0.6.0", + "block2 0.6.2", "dispatch2", "glib-sys", "gobject-sys", "gtk-sys", "js-sys", "log", - "objc2 0.6.0", + "objc2 0.6.3", "objc2-app-kit", "objc2-core-foundation", - "objc2-foundation 0.3.0", + "objc2-foundation 0.3.2", "raw-window-handle 0.6.2", "wasm-bindgen", "wasm-bindgen-futures", @@ -4235,18 +4309,12 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.15", + "getrandom 0.2.16", "libc", "untrusted", "windows-sys 0.52.0", ] -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - [[package]] name = "rustc-hash" version = "2.1.1" @@ -4268,7 +4336,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "errno", "libc", "linux-raw-sys 0.4.15", @@ -4277,22 +4345,22 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.3" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "errno", "libc", - "linux-raw-sys 0.9.3", - "windows-sys 0.59.0", + "linux-raw-sys 0.11.0", + "windows-sys 0.61.2", ] [[package]] name = "rustls" -version = "0.23.25" +version = "0.23.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "822ee9188ac4ec04a2f0531e55d035fb2de73f18b41a63c70c2712503b6fb13c" +checksum = "6a9586e9ee2b4f8fab52a0048ca7334d7024eef48e2cb9407e3497bb7cab7fa7" dependencies = [ "once_cell", "ring", @@ -4302,29 +4370,21 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rustls-pemfile" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" -dependencies = [ - "rustls-pki-types", -] - [[package]] name = "rustls-pki-types" -version = "1.11.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" +checksum = "94182ad936a0c91c324cd46c6511b9510ed16af436d7b5bab34beab0afd55f7a" dependencies = [ "web-time", + "zeroize", ] [[package]] name = "rustls-webpki" -version = "0.103.0" +version = "0.103.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aa4eeac2588ffff23e9d7a7e9b3f971c5fb5b7ebc9452745e0c232c64f83b2f" +checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" dependencies = [ "ring", "rustls-pki-types", @@ -4333,9 +4393,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" @@ -4367,6 +4427,30 @@ dependencies = [ "uuid", ] +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + [[package]] name = "schemars_derive" version = "0.8.22" @@ -4376,9 +4460,15 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.100", + "syn 2.0.108", ] +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + [[package]] name = "scopeguard" version = "1.2.0" @@ -4405,18 +4495,19 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" dependencies = [ "serde", + "serde_core", ] [[package]] name = "serde" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dca6411025b24b60bfa7ec1fe1f8e710ac09782dca409ee8237ba74b51295fd" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" dependencies = [ "serde_core", "serde_derive", @@ -4424,33 +4515,34 @@ dependencies = [ [[package]] name = "serde-untagged" -version = "0.1.7" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "299d9c19d7d466db4ab10addd5703e4c615dec2a5a16dbbafe191045e87ee66e" +checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" dependencies = [ "erased-serde", "serde", + "serde_core", "typeid", ] [[package]] name = "serde_core" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba2ba63999edb9dac981fb34b3e5c0d111a69b0924e253ed29d83f7c99e966a4" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8db53ae22f34573731bafa1db20f04027b2d25e02d8205921b569171699cdb33" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] @@ -4461,29 +4553,31 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ "itoa", "memchr", "ryu", "serde", + "serde_core", ] [[package]] name = "serde_path_to_error" -version = "0.1.17" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a" +checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457" dependencies = [ "itoa", "serde", + "serde_core", ] [[package]] @@ -4494,23 +4588,23 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] name = "serde_spanned" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" dependencies = [ "serde", ] [[package]] name = "serde_spanned" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5417783452c2be558477e104686f7de5dae53dba813c28435e0e70f82d9b04ee" +checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392" dependencies = [ "serde_core", ] @@ -4529,17 +4623,18 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.12.0" +version = "3.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" +checksum = "aa66c845eee442168b2c8134fec70ac50dc20e760769c8ba0ad1319ca1959b04" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.11.4", - "serde", - "serde_derive", + "indexmap 2.12.0", + "schemars 0.9.0", + "schemars 1.0.4", + "serde_core", "serde_json", "serde_with_macros", "time", @@ -4547,14 +4642,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.12.0" +version = "3.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" +checksum = "b91a903660542fced4e99881aa481bdbaec1634568ee02e0b8bd57c64cb38955" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] @@ -4576,7 +4671,7 @@ checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] @@ -4602,9 +4697,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures", @@ -4622,12 +4717,13 @@ dependencies = [ [[package]] name = "shared_child" -version = "1.0.1" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09fa9338aed9a1df411814a5b2252f7cd206c55ae9bf2fa763f8de84603aa60c" +checksum = "1e362d9935bc50f019969e2f9ecd66786612daae13e8f277be7bfb66e8bed3f7" dependencies = [ "libc", - "windows-sys 0.59.0", + "sigchld", + "windows-sys 0.60.2", ] [[package]] @@ -4636,11 +4732,32 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "sigchld" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47106eded3c154e70176fc83df9737335c94ce22f821c32d17ed1db1f83badb1" +dependencies = [ + "libc", + "os_pipe", + "signal-hook", +] + +[[package]] +name = "signal-hook" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" +dependencies = [ + "libc", + "signal-hook-registry", +] + [[package]] name = "signal-hook-registry" -version = "1.4.2" +version = "1.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" dependencies = [ "libc", ] @@ -4665,29 +4782,36 @@ checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "slab" -version = "0.4.9" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "smallvec" -version = "1.14.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "socket2" -version = "0.5.8" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" dependencies = [ "libc", "windows-sys 0.52.0", ] +[[package]] +name = "socket2" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + [[package]] name = "softbuffer" version = "0.4.6" @@ -4744,9 +4868,9 @@ checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] name = "stable_deref_trait" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "static_assertions" @@ -4756,9 +4880,9 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "string_cache" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "938d512196766101d333398efde81bc1f37b00cb42c2f8350e5df639f040bbbe" +checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" dependencies = [ "new_debug_unreachable", "parking_lot", @@ -4804,7 +4928,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] @@ -4837,9 +4961,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.100" +version = "2.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" dependencies = [ "proc-macro2", "quote", @@ -4857,13 +4981,13 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] @@ -4872,7 +4996,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -4896,19 +5020,19 @@ dependencies = [ "cfg-expr", "heck 0.5.0", "pkg-config", - "toml 0.8.20", + "toml 0.8.2", "version-compare", ] [[package]] name = "tao" -version = "0.34.3" +version = "0.34.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "959469667dbcea91e5485fc48ba7dd6023face91bb0f1a14681a70f99847c3f7" +checksum = "f3a753bdc39c07b192151523a3f77cd0394aa75413802c883a0f6f6a0e5ee2e7" dependencies = [ - "bitflags 2.9.0", - "block2 0.6.0", - "core-foundation 0.10.0", + "bitflags 2.10.0", + "block2 0.6.2", + "core-foundation 0.10.1", "core-graphics 0.24.0", "crossbeam-channel", "dispatch", @@ -4924,9 +5048,9 @@ dependencies = [ "ndk", "ndk-context", "ndk-sys", - "objc2 0.6.0", + "objc2 0.6.3", "objc2-app-kit", - "objc2-foundation 0.3.0", + "objc2-foundation 0.3.2", "once_cell", "parking_lot", "raw-window-handle 0.6.2", @@ -4948,7 +5072,7 @@ checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] @@ -4970,9 +5094,9 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.8.5" +version = "2.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d1d3b3dc4c101ac989fd7db77e045cc6d91a25349cd410455cb5c57d510c1c" +checksum = "8bceb52453e507c505b330afe3398510e87f428ea42b6e76ecb6bd63b15965b5" dependencies = [ "anyhow", "bytes", @@ -4980,7 +5104,7 @@ dependencies = [ "dirs 6.0.0", "dunce", "embed_plist", - "getrandom 0.3.2", + "getrandom 0.3.4", "glob", "gtk", "heck 0.5.0", @@ -4991,9 +5115,9 @@ dependencies = [ "log", "mime", "muda", - "objc2 0.6.0", + "objc2 0.6.3", "objc2-app-kit", - "objc2-foundation 0.3.0", + "objc2-foundation 0.3.2", "objc2-ui-kit", "objc2-web-kit", "percent-encoding", @@ -5010,11 +5134,10 @@ dependencies = [ "tauri-runtime", "tauri-runtime-wry", "tauri-utils", - "thiserror 2.0.12", + "thiserror 2.0.17", "tokio", "tray-icon", "url", - "urlpattern", "webkit2gtk", "webview2-com", "window-vibrancy", @@ -5023,9 +5146,9 @@ dependencies = [ [[package]] name = "tauri-build" -version = "2.4.1" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c432ccc9ff661803dab74c6cd78de11026a578a9307610bbc39d3c55be7943f" +checksum = "a924b6c50fe83193f0f8b14072afa7c25b7a72752a2a73d9549b463f5fe91a38" dependencies = [ "anyhow", "cargo_toml", @@ -5033,37 +5156,37 @@ dependencies = [ "glob", "heck 0.5.0", "json-patch", - "schemars", + "schemars 0.8.22", "semver", "serde", "serde_json", "tauri-utils", "tauri-winres", - "toml 0.9.7", + "toml 0.9.8", "walkdir", ] [[package]] name = "tauri-codegen" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ab3a62cf2e6253936a8b267c2e95839674e7439f104fa96ad0025e149d54d8a" +checksum = "6c1fe64c74cc40f90848281a90058a6db931eb400b60205840e09801ee30f190" dependencies = [ "base64 0.22.1", "brotli", "ico", "json-patch", "plist", - "png", + "png 0.17.16", "proc-macro2", "quote", "semver", "serde", "serde_json", "sha2", - "syn 2.0.100", + "syn 2.0.108", "tauri-utils", - "thiserror 2.0.12", + "thiserror 2.0.17", "time", "url", "uuid", @@ -5072,54 +5195,54 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4368ea8094e7045217edb690f493b55b30caf9f3e61f79b4c24b6db91f07995e" +checksum = "260c5d2eb036b76206b9fca20b7be3614cfd21046c5396f7959e0e64a4b07f2f" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", "tauri-codegen", "tauri-utils", ] [[package]] name = "tauri-plugin" -version = "2.4.0" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9946a3cede302eac0c6eb6c6070ac47b1768e326092d32efbb91f21ed58d978f" +checksum = "076c78a474a7247c90cad0b6e87e593c4c620ed4efdb79cbe0214f0021f6c39d" dependencies = [ "anyhow", "glob", "plist", - "schemars", + "schemars 0.8.22", "serde", "serde_json", "tauri-utils", - "toml 0.9.7", + "toml 0.9.8", "walkdir", ] [[package]] name = "tauri-plugin-autostart" -version = "2.2.0" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c13f843e5e5df3eed270fc42b02923cc1a6b5c7e56b0f3ac1d858ab2c8b5fb" +checksum = "459383cebc193cdd03d1ba4acc40f2c408a7abce419d64bdcd2d745bc2886f70" dependencies = [ "auto-launch", "serde", "serde_json", "tauri", "tauri-plugin", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] name = "tauri-plugin-dialog" -version = "2.2.0" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b59fd750551b1066744ab956a1cd6b1ea3e1b3763b0b9153ac27a044d596426" +checksum = "313f8138692ddc4a2127c4c9607d616a46f5c042e77b3722450866da0aad2f19" dependencies = [ "log", "raw-window-handle 0.6.2", @@ -5129,50 +5252,51 @@ dependencies = [ "tauri", "tauri-plugin", "tauri-plugin-fs", - "thiserror 2.0.12", + "thiserror 2.0.17", "url", ] [[package]] name = "tauri-plugin-fs" -version = "2.2.0" +version = "2.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a1edf18000f02903a7c2e5997fb89aca455ecbc0acc15c6535afbb883be223" +checksum = "47df422695255ecbe7bac7012440eddaeefd026656171eac9559f5243d3230d9" dependencies = [ "anyhow", "dunce", "glob", "percent-encoding", - "schemars", + "schemars 0.8.22", "serde", "serde_json", "serde_repr", "tauri", "tauri-plugin", "tauri-utils", - "thiserror 2.0.12", - "toml 0.8.20", + "thiserror 2.0.17", + "toml 0.9.8", "url", - "uuid", ] [[package]] name = "tauri-plugin-http" -version = "2.4.2" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "696ef548befeee6c6c17b80ef73e7c41205b6c2204e87ef78ccc231212389a5c" +checksum = "c00685aceab12643cf024f712ab0448ba8fcadf86f2391d49d2e5aa732aacc70" dependencies = [ + "bytes", + "cookie_store", "data-url", "http", "regex", "reqwest", - "schemars", + "schemars 0.8.22", "serde", "serde_json", "tauri", "tauri-plugin", "tauri-plugin-fs", - "thiserror 2.0.12", + "thiserror 2.0.17", "tokio", "url", "urlpattern", @@ -5180,61 +5304,61 @@ dependencies = [ [[package]] name = "tauri-plugin-shell" -version = "2.3.1" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54777d0c0d8add34eea3ced84378619ef5b97996bd967d3038c668feefd21071" +checksum = "c374b6db45f2a8a304f0273a15080d98c70cde86178855fc24653ba657a1144c" dependencies = [ "encoding_rs", "log", "open", "os_pipe", "regex", - "schemars", + "schemars 0.8.22", "serde", "serde_json", "shared_child", "tauri", "tauri-plugin", - "thiserror 2.0.12", + "thiserror 2.0.17", "tokio", ] [[package]] name = "tauri-plugin-single-instance" -version = "2.2.2" +version = "2.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25bbc73eed15bba8ad290a52614f2711280df4bf575b36ce78f64367074b90b7" +checksum = "dd707f8c86b4e3004e2c141fa24351f1909ba40ce1b8437e30d5ed5277dd3710" dependencies = [ "serde", "serde_json", "tauri", - "thiserror 2.0.12", + "thiserror 2.0.17", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.60.2", "zbus", ] [[package]] name = "tauri-plugin-store" -version = "2.2.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c0c08fae6995909f5e9a0da6038273b750221319f2c0f3b526d6de1cde21505" +checksum = "59a77036340a97eb5bbe1b3209c31e5f27f75e6f92a52fd9dd4b211ef08bf310" dependencies = [ "dunce", "serde", "serde_json", "tauri", "tauri-plugin", - "thiserror 2.0.12", + "thiserror 2.0.17", "tokio", "tracing", ] [[package]] name = "tauri-plugin-updater" -version = "2.6.1" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31bfcfb4a8318008d2108ccfba439d8263cf48867baabf372cb0e9f24771896" +checksum = "27cbc31740f4d507712550694749572ec0e43bdd66992db7599b89fbfd6b167b" dependencies = [ "base64 0.22.1", "dirs 6.0.0", @@ -5254,33 +5378,33 @@ dependencies = [ "tauri", "tauri-plugin", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.17", "time", "tokio", "url", - "windows-sys 0.59.0", + "windows-sys 0.60.2", "zip", ] [[package]] name = "tauri-runtime" -version = "2.8.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4cfc9ad45b487d3fded5a4731a567872a4812e9552e3964161b08edabf93846" +checksum = "9368f09358496f2229313fccb37682ad116b7f46fa76981efe116994a0628926" dependencies = [ "cookie", "dpi", "gtk", "http", "jni", - "objc2 0.6.0", + "objc2 0.6.3", "objc2-ui-kit", "objc2-web-kit", "raw-window-handle 0.6.2", "serde", "serde_json", "tauri-utils", - "thiserror 2.0.12", + "thiserror 2.0.17", "url", "webkit2gtk", "webview2-com", @@ -5289,17 +5413,17 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "2.8.1" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1fe9d48bd122ff002064e88cfcd7027090d789c4302714e68fcccba0f4b7807" +checksum = "929f5df216f5c02a9e894554401bcdab6eec3e39ec6a4a7731c7067fc8688a93" dependencies = [ "gtk", "http", "jni", "log", - "objc2 0.6.0", + "objc2 0.6.3", "objc2-app-kit", - "objc2-foundation 0.3.0", + "objc2-foundation 0.3.2", "once_cell", "percent-encoding", "raw-window-handle 0.6.2", @@ -5316,9 +5440,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "2.7.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41a3852fdf9a4f8fbeaa63dc3e9a85284dd6ef7200751f0bd66ceee30c93f212" +checksum = "f6b8bbe426abdbf52d050e52ed693130dbd68375b9ad82a3fb17efb4c8d85673" dependencies = [ "anyhow", "brotli", @@ -5337,15 +5461,15 @@ dependencies = [ "proc-macro2", "quote", "regex", - "schemars", + "schemars 0.8.22", "semver", "serde", "serde-untagged", "serde_json", "serde_with", "swift-rs", - "thiserror 2.0.12", - "toml 0.9.7", + "thiserror 2.0.17", + "toml 0.9.8", "url", "urlpattern", "uuid", @@ -5354,25 +5478,25 @@ dependencies = [ [[package]] name = "tauri-winres" -version = "0.3.0" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56eaa45f707bedf34d19312c26d350bc0f3c59a47e58e8adbeecdc850d2c13a0" +checksum = "fd21509dd1fa9bd355dc29894a6ff10635880732396aa38c0066c1e6c1ab8074" dependencies = [ "embed-resource", - "toml 0.8.20", + "toml 0.9.8", ] [[package]] name = "tempfile" -version = "3.19.0" +version = "3.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488960f40a3fd53d72c2a29a58722561dee8afdd175bd88e3db4677d7b2ba600" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" dependencies = [ "fastrand", - "getrandom 0.3.2", + "getrandom 0.3.4", "once_cell", - "rustix 1.0.3", - "windows-sys 0.59.0", + "rustix 1.1.2", + "windows-sys 0.61.2", ] [[package]] @@ -5397,11 +5521,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl 2.0.17", ] [[package]] @@ -5412,35 +5536,34 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] name = "thread_local" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ "cfg-if", - "once_cell", ] [[package]] name = "time" -version = "0.3.40" +version = "0.3.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d9c75b47bdff86fa3334a3db91356b8d7d86a9b839dab7d0bdc5c3d3a077618" +checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" dependencies = [ "deranged", "itoa", @@ -5453,15 +5576,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" [[package]] name = "time-macros" -version = "0.2.21" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29aa485584182073ed57fd5004aa09c371f021325014694e432313345865fd04" +checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" dependencies = [ "num-conv", "time-core", @@ -5469,9 +5592,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.7.6" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" dependencies = [ "displaydoc", "zerovec", @@ -5479,9 +5602,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" dependencies = [ "tinyvec_macros", ] @@ -5494,39 +5617,38 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.44.1" +version = "1.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" +checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" dependencies = [ - "backtrace", "bytes", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.6.1", "tokio-macros", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] name = "tokio-rustls" -version = "0.26.2" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ "rustls", "tokio", @@ -5534,9 +5656,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.14" +version = "0.7.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" +checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" dependencies = [ "bytes", "futures-core", @@ -5547,26 +5669,26 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.20" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" dependencies = [ "serde", - "serde_spanned 0.6.8", - "toml_datetime 0.6.8", - "toml_edit 0.22.24", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "toml_edit 0.20.2", ] [[package]] name = "toml" -version = "0.9.7" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00e5e5d9bf2475ac9d4f0d9edab68cc573dc2fd644b0dba36b0c30a92dd9eaa0" +checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" dependencies = [ - "indexmap 2.11.4", + "indexmap 2.12.0", "serde_core", - "serde_spanned 1.0.2", - "toml_datetime 0.7.2", + "serde_spanned 1.0.3", + "toml_datetime 0.7.3", "toml_parser", "toml_writer", "winnow 0.7.13", @@ -5574,18 +5696,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.8" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" dependencies = [ "serde", ] [[package]] name = "toml_datetime" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f1085dec27c2b6632b04c80b3bb1b4300d6495d1e129693bdda7d91e72eec1" +checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" dependencies = [ "serde_core", ] @@ -5596,49 +5718,50 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.11.4", - "toml_datetime 0.6.8", + "indexmap 2.12.0", + "toml_datetime 0.6.3", "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.20.7" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" dependencies = [ - "indexmap 2.11.4", - "toml_datetime 0.6.8", + "indexmap 2.12.0", + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.22.24" +version = "0.23.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" dependencies = [ - "indexmap 2.11.4", - "serde", - "serde_spanned 0.6.8", - "toml_datetime 0.6.8", + "indexmap 2.12.0", + "toml_datetime 0.7.3", + "toml_parser", "winnow 0.7.13", ] [[package]] name = "toml_parser" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cf893c33be71572e0e9aa6dd15e6677937abd686b066eac3f8cd3531688a627" +checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" dependencies = [ "winnow 0.7.13", ] [[package]] name = "toml_writer" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d163a63c116ce562a22cda521fcc4d79152e7aba014456fb5eb442f6d6a10109" +checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" [[package]] name = "tower" @@ -5658,14 +5781,18 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.2" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "bytes", + "futures-util", "http", + "http-body", + "iri-string", "pin-project-lite", + "tower", "tower-layer", "tower-service", ] @@ -5708,20 +5835,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.28" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] name = "tracing-core" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", "valuable", @@ -5750,14 +5877,14 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.19" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ "matchers", "nu-ansi-term", "once_cell", - "regex", + "regex-automata", "serde", "serde_json", "sharded-slab", @@ -5772,24 +5899,24 @@ dependencies = [ [[package]] name = "tray-icon" -version = "0.21.1" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0d92153331e7d02ec09137538996a7786fe679c629c279e82a6be762b7e6fe2" +checksum = "e3d5572781bee8e3f994d7467084e1b1fd7a93ce66bd480f8156ba89dee55a2b" dependencies = [ "crossbeam-channel", "dirs 6.0.0", "libappindicator", "muda", - "objc2 0.6.0", + "objc2 0.6.3", "objc2-app-kit", "objc2-core-foundation", "objc2-core-graphics", - "objc2-foundation 0.3.0", + "objc2-foundation 0.3.2", "once_cell", - "png", + "png 0.17.16", "serde", - "thiserror 2.0.12", - "windows-sys 0.59.0", + "thiserror 2.0.17", + "windows-sys 0.60.2", ] [[package]] @@ -5806,9 +5933,9 @@ checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" [[package]] name = "typenum" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "uds_windows" @@ -5864,9 +5991,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] name = "unicode-segmentation" @@ -5892,9 +6019,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.4" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", @@ -5935,12 +6062,6 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - [[package]] name = "utf8_iter" version = "1.0.4" @@ -5955,13 +6076,15 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.16.0" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" +checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" dependencies = [ - "getrandom 0.3.2", - "rand 0.9.0", + "getrandom 0.3.4", + "js-sys", + "rand 0.9.2", "serde", + "wasm-bindgen", ] [[package]] @@ -6045,50 +6168,37 @@ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] -name = "wasi" -version = "0.14.2+wasi-0.2.4" +name = "wasip2" +version = "1.0.1+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ - "wit-bindgen-rt", + "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.100", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.50" +version = "0.4.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +checksum = "551f88106c6d5e7ccc7cd9a16f312dd3b5d36ea8b4954304657d5dfba115d4a0" dependencies = [ "cfg-if", "js-sys", @@ -6099,9 +6209,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6109,22 +6219,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" dependencies = [ + "bumpalo", "proc-macro2", "quote", - "syn 2.0.100", - "wasm-bindgen-backend", + "syn 2.0.108", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" dependencies = [ "unicode-ident", ] @@ -6142,11 +6252,71 @@ dependencies = [ "web-sys", ] +[[package]] +name = "wayland-backend" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673a33c33048a5ade91a6b139580fa174e19fb0d23f396dca9fa15f2e1e49b35" +dependencies = [ + "cc", + "downcast-rs", + "rustix 1.1.2", + "scoped-tls", + "smallvec", + "wayland-sys", +] + +[[package]] +name = "wayland-client" +version = "0.31.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c66a47e840dc20793f2264eb4b3e4ecb4b75d91c0dd4af04b456128e0bdd449d" +dependencies = [ + "bitflags 2.10.0", + "rustix 1.1.2", + "wayland-backend", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols" +version = "0.32.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efa790ed75fbfd71283bd2521a1cfdc022aabcc28bdcff00851f9e4ae88d9901" +dependencies = [ + "bitflags 2.10.0", + "wayland-backend", + "wayland-client", + "wayland-scanner", +] + +[[package]] +name = "wayland-scanner" +version = "0.31.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54cb1e9dc49da91950bdfd8b848c49330536d9d1fb03d4bfec8cae50caa50ae3" +dependencies = [ + "proc-macro2", + "quick-xml 0.37.5", + "quote", +] + +[[package]] +name = "wayland-sys" +version = "0.31.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34949b42822155826b41db8e5d0c1be3a2bd296c747577a43a3e6daefc296142" +dependencies = [ + "dlib", + "log", + "pkg-config", +] + [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" dependencies = [ "js-sys", "wasm-bindgen", @@ -6208,9 +6378,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.8" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2210b291f7ea53617fbafcc4939f10914214ec15aace5ba62293a668f322c5c9" +checksum = "32b130c0d2d49f8b6889abc456e795e82525204f27c42cf767cf0d7734e089b8" dependencies = [ "rustls-pki-types", ] @@ -6237,7 +6407,7 @@ checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] @@ -6246,16 +6416,16 @@ version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36695906a1b53a3bf5c4289621efedac12b73eeb0b89e7e1a89b517302d5d75c" dependencies = [ - "thiserror 2.0.12", + "thiserror 2.0.17", "windows", "windows-core 0.61.2", ] [[package]] name = "wfd" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e713040b67aae5bf1a0ae3e1ebba8cc29ab2b90da9aa1bff6e09031a8a41d7a8" +checksum = "0c17bbfb155305bcb79144f568c3b796275ba4db5d5856597bc85acefe29b819" dependencies = [ "libc", "winapi", @@ -6291,11 +6461,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.61.2", ] [[package]] @@ -6310,10 +6480,10 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" dependencies = [ - "objc2 0.6.0", + "objc2 0.6.3", "objc2-app-kit", "objc2-core-foundation", - "objc2-foundation 0.3.0", + "objc2-foundation 0.3.2", "raw-window-handle 0.6.2", "windows-sys 0.59.0", "windows-version", @@ -6328,7 +6498,7 @@ dependencies = [ "windows-collections", "windows-core 0.61.2", "windows-future", - "windows-link", + "windows-link 0.1.3", "windows-numerics", ] @@ -6343,24 +6513,28 @@ dependencies = [ [[package]] name = "windows-core" -version = "0.52.0" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ - "windows-targets 0.52.6", + "windows-implement", + "windows-interface", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", ] [[package]] name = "windows-core" -version = "0.61.2" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ "windows-implement", "windows-interface", - "windows-link", - "windows-result", - "windows-strings 0.4.2", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", ] [[package]] @@ -6370,30 +6544,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ "windows-core 0.61.2", - "windows-link", + "windows-link 0.1.3", "windows-threading", ] [[package]] name = "windows-implement" -version = "0.60.0" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] name = "windows-interface" -version = "0.59.1" +version = "0.59.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] @@ -6402,6 +6576,12 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + [[package]] name = "windows-numerics" version = "0.2.0" @@ -6409,18 +6589,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" dependencies = [ "windows-core 0.61.2", - "windows-link", + "windows-link 0.1.3", ] [[package]] name = "windows-registry" -version = "0.4.0" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" +checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" dependencies = [ - "windows-result", - "windows-strings 0.3.1", - "windows-targets 0.53.3", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", ] [[package]] @@ -6429,16 +6609,16 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] -name = "windows-strings" -version = "0.3.1" +name = "windows-result" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -6447,7 +6627,16 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ - "windows-link", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link 0.2.1", ] [[package]] @@ -6492,7 +6681,16 @@ version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.3", + "windows-targets 0.53.5", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link 0.2.1", ] [[package]] @@ -6543,19 +6741,19 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.3" +version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" dependencies = [ - "windows-link", - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", + "windows-link 0.2.1", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", ] [[package]] @@ -6564,16 +6762,16 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] name = "windows-version" -version = "0.1.4" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e04a5c6627e310a23ad2358483286c7df260c964eb2d003d8efd6d0f4e79265c" +checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631" dependencies = [ - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -6596,9 +6794,9 @@ checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" [[package]] name = "windows_aarch64_msvc" @@ -6620,9 +6818,9 @@ checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_aarch64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" [[package]] name = "windows_i686_gnu" @@ -6644,9 +6842,9 @@ checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" [[package]] name = "windows_i686_gnullvm" @@ -6656,9 +6854,9 @@ checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" [[package]] name = "windows_i686_msvc" @@ -6680,9 +6878,9 @@ checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_i686_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" [[package]] name = "windows_x86_64_gnu" @@ -6704,9 +6902,9 @@ checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" [[package]] name = "windows_x86_64_gnullvm" @@ -6728,9 +6926,9 @@ checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" [[package]] name = "windows_x86_64_msvc" @@ -6752,9 +6950,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "windows_x86_64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winnow" @@ -6794,34 +6992,35 @@ dependencies = [ ] [[package]] -name = "wit-bindgen-rt" -version = "0.39.0" +name = "winreg" +version = "0.55.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" dependencies = [ - "bitflags 2.9.0", + "cfg-if", + "windows-sys 0.59.0", ] [[package]] -name = "write16" -version = "1.0.0" +name = "wit-bindgen" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "writeable" -version = "0.5.5" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" [[package]] name = "wry" -version = "0.53.3" +version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f0e9642a0d061f6236c54ccae64c2722a7879ad4ec7dff59bd376d446d8e90" +checksum = "728b7d4c8ec8d81cab295e0b5b8a4c263c0d41a785fb8f8c4df284e5411140a2" dependencies = [ "base64 0.22.1", - "block2 0.6.0", + "block2 0.6.2", "cookie", "crossbeam-channel", "dirs 6.0.0", @@ -6836,10 +7035,10 @@ dependencies = [ "kuchikiki", "libc", "ndk", - "objc2 0.6.0", + "objc2 0.6.3", "objc2-app-kit", "objc2-core-foundation", - "objc2-foundation 0.3.0", + "objc2-foundation 0.3.2", "objc2-ui-kit", "objc2-web-kit", "once_cell", @@ -6848,7 +7047,7 @@ dependencies = [ "sha2", "soup3", "tao-macros", - "thiserror 2.0.12", + "thiserror 2.0.17", "url", "webkit2gtk", "webkit2gtk-sys", @@ -6894,31 +7093,20 @@ dependencies = [ [[package]] name = "xattr" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d65cbf2f12c15564212d48f4e3dfb87923d25d611f2aed18f4cb23f0413d89e" -dependencies = [ - "libc", - "rustix 1.0.3", -] - -[[package]] -name = "xdg-home" -version = "1.3.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" dependencies = [ "libc", - "windows-sys 0.59.0", + "rustix 1.1.2", ] [[package]] name = "yoke" -version = "0.7.5" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" dependencies = [ - "serde", "stable_deref_trait", "yoke-derive", "zerofrom", @@ -6926,25 +7114,24 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.5" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", "synstructure", ] [[package]] name = "zbus" -version = "5.5.0" +version = "5.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59c333f648ea1b647bc95dc1d34807c8e25ed7a6feff3394034dc4776054b236" +checksum = "b622b18155f7a93d1cd2dc8c01d2d6a44e08fb9ebb7b3f9e6ed101488bad6c91" dependencies = [ "async-broadcast", "async-executor", - "async-fs", "async-io", "async-lock", "async-process", @@ -6961,13 +7148,12 @@ dependencies = [ "ordered-stream", "serde", "serde_repr", - "static_assertions", "tokio", "tracing", "uds_windows", - "windows-sys 0.59.0", + "uuid", + "windows-sys 0.61.2", "winnow 0.7.13", - "xdg-home", "zbus_macros", "zbus_names", "zvariant", @@ -6975,14 +7161,14 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "5.5.0" +version = "5.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f325ad10eb0d0a3eb060203494c3b7ec3162a01a59db75d2deee100339709fc0" +checksum = "1cdb94821ca8a87ca9c298b5d1cbd80e2a8b67115d99f6e4551ac49e42b6a314" dependencies = [ - "proc-macro-crate 3.3.0", + "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", "zbus_names", "zvariant", "zvariant_utils", @@ -7002,22 +7188,22 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.23" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.23" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] @@ -7037,15 +7223,15 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", "synstructure", ] [[package]] name = "zeroize" -version = "1.8.1" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" dependencies = [ "zeroize_derive", ] @@ -7058,14 +7244,25 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", +] + +[[package]] +name = "zerotrie" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", ] [[package]] name = "zerovec" -version = "0.10.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" dependencies = [ "yoke", "zerofrom", @@ -7074,40 +7271,36 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.10.3" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", ] [[package]] name = "zip" -version = "2.4.2" +version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabe6324e908f85a1c52063ce7aa26b68dcb7eb6dbc83a2d148403c9bc3eba50" +checksum = "caa8cd6af31c3b31c6631b8f483848b91589021b28fffe50adada48d4f4d2ed1" dependencies = [ "arbitrary", "crc32fast", - "crossbeam-utils", - "displaydoc", - "indexmap 2.11.4", + "indexmap 2.12.0", "memchr", - "thiserror 2.0.12", ] [[package]] name = "zvariant" -version = "5.4.0" +version = "5.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2df9ee044893fcffbdc25de30546edef3e32341466811ca18421e3cd6c5a3ac" +checksum = "2be61892e4f2b1772727be11630a62664a1826b62efa43a6fe7449521cb8744c" dependencies = [ "endi", "enumflags2", "serde", - "static_assertions", "url", "winnow 0.7.13", "zvariant_derive", @@ -7116,27 +7309,26 @@ dependencies = [ [[package]] name = "zvariant_derive" -version = "5.4.0" +version = "5.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74170caa85b8b84cc4935f2d56a57c7a15ea6185ccdd7eadb57e6edd90f94b2f" +checksum = "da58575a1b2b20766513b1ec59d8e2e68db2745379f961f86650655e862d2006" dependencies = [ - "proc-macro-crate 3.3.0", + "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.108", "zvariant_utils", ] [[package]] name = "zvariant_utils" -version = "3.2.0" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e16edfee43e5d7b553b77872d99bc36afdda75c223ca7ad5e3fbecd82ca5fc34" +checksum = "c6949d142f89f6916deca2232cf26a8afacf2b9fdc35ce766105e104478be599" dependencies = [ "proc-macro2", "quote", "serde", - "static_assertions", - "syn 2.0.100", + "syn 2.0.108", "winnow 0.7.13", ] diff --git a/packages/hoppscotch-agent/src-tauri/Cargo.toml b/packages/hoppscotch-agent/src-tauri/Cargo.toml index 9e35d09075e..9518ddbf6a4 100644 --- a/packages/hoppscotch-agent/src-tauri/Cargo.toml +++ b/packages/hoppscotch-agent/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hoppscotch-agent" -version = "0.1.14" +version = "0.1.15" description = "A cross-platform HTTP request agent for Hoppscotch for advanced request handling including custom headers, certificates, proxies, and local system integration." authors = ["AndrewBastin", "CuriousCorrelation"] edition = "2021" diff --git a/packages/hoppscotch-agent/src-tauri/tauri.conf.json b/packages/hoppscotch-agent/src-tauri/tauri.conf.json index 7dea33109bc..1cf24c6f2c8 100644 --- a/packages/hoppscotch-agent/src-tauri/tauri.conf.json +++ b/packages/hoppscotch-agent/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2.0.0-rc", "productName": "Hoppscotch Agent", - "version": "0.1.14", + "version": "0.1.15", "identifier": "io.hoppscotch.agent", "build": { "beforeDevCommand": "pnpm dev", diff --git a/packages/hoppscotch-agent/src-tauri/tauri.portable.conf.json b/packages/hoppscotch-agent/src-tauri/tauri.portable.conf.json index 804f1465595..72f604a8018 100644 --- a/packages/hoppscotch-agent/src-tauri/tauri.portable.conf.json +++ b/packages/hoppscotch-agent/src-tauri/tauri.portable.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2.0.0-rc", "productName": "Hoppscotch Agent Portable", - "version": "0.1.14", + "version": "0.1.15", "identifier": "io.hoppscotch.agent", "build": { "beforeDevCommand": "pnpm dev", From c73e71827a0a3a3ce4313be00788a6143b594a06 Mon Sep 17 00:00:00 2001 From: jamesgeorge007 <25279263+jamesgeorge007@users.noreply.github.com> Date: Thu, 30 Oct 2025 12:13:02 +0530 Subject: [PATCH 28/33] chore: streamline `pnpm` versioning --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 744fd8b5ca1..07f82832013 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "author": "Hoppscotch (support@hoppscotch.io)", "private": true, "license": "MIT", - "packageManager": "pnpm@10.15.0", + "packageManager": "pnpm@10.18.3", "scripts": { "preinstall": "npx only-allow pnpm", "prepare": "husky", From e607f9db24cfb0d83caa49ada5519422e8c07b71 Mon Sep 17 00:00:00 2001 From: Anwarul Islam Date: Thu, 30 Oct 2025 15:47:16 +0600 Subject: [PATCH 29/33] feat(common): mock server ui improvements (#5532) - Update active state styles for better visibility in the mock server. - BE updates catered to improving content type handling in the mock server. - Introduced a `disableMockServerInPersonalWorkspace` platform-level feature flag. - Remove inactive keyboard shorthand nudges from the Mock server dashboard context menu. --- Co-authored-by: mirarifhasan Co-authored-by: jamesgeorge007 <25279263+jamesgeorge007@users.noreply.github.com> --- .../src/mock-server/mock-server.controller.ts | 31 +++++++++---- .../src/components/collections/Collection.vue | 13 +++--- .../src/components/http/Sidebar.vue | 8 ++-- .../mockServer/CreateMockServer.vue | 6 +-- .../components/mockServer/EditMockServer.vue | 6 +-- .../mockServer/MockServerDashboard.vue | 2 - .../src/composables/mockServerVisibility.ts | 45 +++++++++++++++++++ .../src/composables/mockServerWorkspace.ts | 10 ++--- .../hoppscotch-common/src/platform/index.ts | 6 +++ 9 files changed, 92 insertions(+), 35 deletions(-) create mode 100644 packages/hoppscotch-common/src/composables/mockServerVisibility.ts diff --git a/packages/hoppscotch-backend/src/mock-server/mock-server.controller.ts b/packages/hoppscotch-backend/src/mock-server/mock-server.controller.ts index 66a4e81072c..b24327960e2 100644 --- a/packages/hoppscotch-backend/src/mock-server/mock-server.controller.ts +++ b/packages/hoppscotch-backend/src/mock-server/mock-server.controller.ts @@ -87,6 +87,7 @@ export class MockServerController { try { const headers = JSON.parse(mockResponse.headers); Object.keys(headers).forEach((key) => { + console.log('Setting header:', key, headers[key]); res.setHeader(key, headers[key]); }); } catch (error) { @@ -101,17 +102,31 @@ export class MockServerController { ); } - // Send response - const defaultContentType = - typeof mockResponse.body === 'object' - ? 'application/json' - : 'text/plain'; - const contentType = - mockResponse.headers?.['content-type'] || defaultContentType; + // Only set Content-Type if not already set + if (!res.getHeader('Content-Type')) { + let defaultContentType = 'text/plain'; + + // Check if body is a string and try to parse it to determine content type + if (typeof mockResponse.body === 'string') { + try { + JSON.parse(mockResponse.body); + // If parsing succeeds, it's JSON + defaultContentType = 'application/json'; + } catch { + // If parsing fails, it's plain text + defaultContentType = 'text/plain'; + } + } else if (typeof mockResponse.body === 'object') { + // If it's already an object, it's JSON + defaultContentType = 'application/json'; + } - res.setHeader('Content-Type', contentType); + res.setHeader('Content-Type', defaultContentType); + } + // Security headers res.setHeader('X-Content-Type-Options', 'nosniff'); + // Send response return res.status(mockResponse.statusCode).send(mockResponse.body); } catch (error) { console.error('Error handling mock request:', error); diff --git a/packages/hoppscotch-common/src/components/collections/Collection.vue b/packages/hoppscotch-common/src/components/collections/Collection.vue index 9ae1eccbf21..b72456731e2 100644 --- a/packages/hoppscotch-common/src/components/collections/Collection.vue +++ b/packages/hoppscotch-common/src/components/collections/Collection.vue @@ -136,8 +136,7 @@ @keyup.t="runCollectionAction?.$el.click()" @keyup.s="sortAction?.$el.click()" @keyup.m=" - ENABLE_EXPERIMENTAL_MOCK_SERVERS && - mockServerAction?.$el.click() + isMockServerVisible && mockServerAction?.$el.click() " @keyup.escape="hide()" > @@ -183,7 +182,7 @@ v-if=" !hasNoTeamAccess && isRootCollection && - ENABLE_EXPERIMENTAL_MOCK_SERVERS + isMockServerVisible " ref="mockServerAction" :icon="IconServer" @@ -328,7 +327,7 @@ import IconArrowUpDown from "~icons/lucide/arrow-up-down" import { CurrentSortValuesService } from "~/services/current-sort.service" import { useService } from "dioc/vue" import { useMockServerStatus } from "~/composables/mockServer" -import { useSetting } from "@composables/settings" +import { useMockServerVisibility } from "~/composables/mockServerVisibility" import { platform } from "~/platform" import { invokeAction } from "~/helpers/actions" @@ -464,13 +463,11 @@ const isCollectionLoading = computed(() => { }) // Mock Server Status -const ENABLE_EXPERIMENTAL_MOCK_SERVERS = useSetting( - "ENABLE_EXPERIMENTAL_MOCK_SERVERS" -) +const { isMockServerVisible } = useMockServerVisibility() const { getMockServerStatus } = useMockServerStatus() const mockServerStatus = computed(() => { - if (!ENABLE_EXPERIMENTAL_MOCK_SERVERS.value) { + if (!isMockServerVisible.value) { return { exists: false, isActive: false } } diff --git a/packages/hoppscotch-common/src/components/http/Sidebar.vue b/packages/hoppscotch-common/src/components/http/Sidebar.vue index c77d329e360..36ad55dd431 100644 --- a/packages/hoppscotch-common/src/components/http/Sidebar.vue +++ b/packages/hoppscotch-common/src/components/http/Sidebar.vue @@ -52,7 +52,7 @@ />
{{ diff --git a/packages/hoppscotch-common/src/components/mockServer/EditMockServer.vue b/packages/hoppscotch-common/src/components/mockServer/EditMockServer.vue index e4ca643e016..71b922d447c 100644 --- a/packages/hoppscotch-common/src/components/mockServer/EditMockServer.vue +++ b/packages/hoppscotch-common/src/components/mockServer/EditMockServer.vue @@ -68,13 +68,13 @@ class="inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium" :class=" isActive - ? 'bg-green-600/20 text-green-200 border border-green-900/50' - : 'bg-gray-600/20 text-gray-200 border border-gray-900/50' + ? 'bg-green-600/20 text-green-500 border border-green-600/30' + : 'text-secondary border border-secondaryLight' " > {{ isActive diff --git a/packages/hoppscotch-common/src/components/mockServer/MockServerDashboard.vue b/packages/hoppscotch-common/src/components/mockServer/MockServerDashboard.vue index 4f379eb1308..3a0c05e12b2 100644 --- a/packages/hoppscotch-common/src/components/mockServer/MockServerDashboard.vue +++ b/packages/hoppscotch-common/src/components/mockServer/MockServerDashboard.vue @@ -150,7 +150,6 @@ ? t('mock_server.stop_server') : t('mock_server.start_server') " - :shortcut="['S']" @click=" () => { toggleMockServer(mockServer) @@ -162,7 +161,6 @@ ref="deleteAction" :icon="IconTrash2" :label="t('action.delete')" - :shortcut="['⌫']" @click=" () => { deleteMockServer(mockServer) diff --git a/packages/hoppscotch-common/src/composables/mockServerVisibility.ts b/packages/hoppscotch-common/src/composables/mockServerVisibility.ts new file mode 100644 index 00000000000..02a83512103 --- /dev/null +++ b/packages/hoppscotch-common/src/composables/mockServerVisibility.ts @@ -0,0 +1,45 @@ +import { computed } from "vue" +import { useSetting } from "~/composables/settings" +import { platform } from "~/platform" +import { useService } from "dioc/vue" +import { WorkspaceService } from "~/services/workspace.service" + +/** + * Composable to determine mock server visibility based on experimental flags and platform configuration + */ +export function useMockServerVisibility() { + const ENABLE_EXPERIMENTAL_MOCK_SERVERS = useSetting( + "ENABLE_EXPERIMENTAL_MOCK_SERVERS" + ) + + const workspaceService = useService(WorkspaceService) + + /** + * Check if mock servers should be visible based on experimental flag and platform configuration + */ + const isMockServerVisible = computed(() => { + // First check if experimental mock servers are enabled + if (!ENABLE_EXPERIMENTAL_MOCK_SERVERS.value) { + return false + } + + // Check if platform disables mock servers in personal workspaces + const disableInPersonalWorkspace = + platform.platformFeatureFlags.disableMockServerInPersonalWorkspace ?? + false + + // If platform disables mock servers in personal workspaces and current workspace is personal, hide mock servers + if ( + disableInPersonalWorkspace && + workspaceService.currentWorkspace.value.type === "personal" + ) { + return false + } + + return true + }) + + return { + isMockServerVisible, + } +} diff --git a/packages/hoppscotch-common/src/composables/mockServerWorkspace.ts b/packages/hoppscotch-common/src/composables/mockServerWorkspace.ts index 1efa7f19830..83a67149bd6 100644 --- a/packages/hoppscotch-common/src/composables/mockServerWorkspace.ts +++ b/packages/hoppscotch-common/src/composables/mockServerWorkspace.ts @@ -3,7 +3,7 @@ import { useService } from "dioc/vue" import { WorkspaceService } from "~/services/workspace.service" import { setMockServers, loadMockServers } from "~/newstore/mockServers" import { platform } from "~/platform" -import { useSetting } from "./settings" +import { useMockServerVisibility } from "./mockServerVisibility" /** * Composable to handle mock server state when workspace changes @@ -12,14 +12,12 @@ import { useSetting } from "./settings" */ export function useMockServerWorkspaceSync() { const workspaceService = useService(WorkspaceService) - const ENABLE_EXPERIMENTAL_MOCK_SERVERS = useSetting( - "ENABLE_EXPERIMENTAL_MOCK_SERVERS" - ) + const { isMockServerVisible } = useMockServerVisibility() const isAuthenticated = !!platform.auth.getCurrentUser() // Initial load of mock servers for the current workspace onMounted(() => { - if (!isAuthenticated || !ENABLE_EXPERIMENTAL_MOCK_SERVERS.value) return + if (!isAuthenticated || !isMockServerVisible.value) return loadMockServers().catch(() => setMockServers([])) }) @@ -27,7 +25,7 @@ export function useMockServerWorkspaceSync() { watch( () => workspaceService.currentWorkspace.value, (newWorkspace, oldWorkspace) => { - if (!isAuthenticated || !ENABLE_EXPERIMENTAL_MOCK_SERVERS.value) return + if (!isAuthenticated || !isMockServerVisible.value) return // Clear mock servers when workspace changes to prevent stale data if ( diff --git a/packages/hoppscotch-common/src/platform/index.ts b/packages/hoppscotch-common/src/platform/index.ts index cec460c44bb..5aec2f81dba 100644 --- a/packages/hoppscotch-common/src/platform/index.ts +++ b/packages/hoppscotch-common/src/platform/index.ts @@ -66,6 +66,12 @@ export type PlatformDef = { * Whether to show the A/B testing workspace switcher click login flow or not */ workspaceSwitcherLogin?: Ref + + /** + * Whether to disable mock servers in personal workspaces + * If a value is not given, then the value is assumed to be false + */ + disableMockServerInPersonalWorkspace?: boolean } limits?: LimitsPlatformDef infra?: InfraPlatformDef From a573db593751711a04714593c9ae0e5779171bba Mon Sep 17 00:00:00 2001 From: Anwarul Islam Date: Thu, 30 Oct 2025 23:28:14 +0600 Subject: [PATCH 30/33] fix(common): use fallback ref ID for mock server creation with legacy collections (#5536) Co-authored-by: jamesgeorge007 <25279263+jamesgeorge007@users.noreply.github.com> --- .../src/components/collections/Collection.vue | 3 +- .../src/components/collections/index.vue | 4 +-- .../mockServer/CreateMockServer.vue | 5 ++- .../src/composables/mockServerVisibility.ts | 34 ++++--------------- .../hoppscotch-common/src/platform/index.ts | 6 ---- 5 files changed, 14 insertions(+), 38 deletions(-) diff --git a/packages/hoppscotch-common/src/components/collections/Collection.vue b/packages/hoppscotch-common/src/components/collections/Collection.vue index b72456731e2..f3ff9f4fa99 100644 --- a/packages/hoppscotch-common/src/components/collections/Collection.vue +++ b/packages/hoppscotch-common/src/components/collections/Collection.vue @@ -473,7 +473,8 @@ const mockServerStatus = computed(() => { const collectionId = props.collectionsType === "my-collections" - ? (props.data as HoppCollection).id + ? ((props.data as HoppCollection).id ?? + (props.data as HoppCollection)._ref_id) : (props.data as TeamCollection).id return getMockServerStatus(collectionId || "") diff --git a/packages/hoppscotch-common/src/components/collections/index.vue b/packages/hoppscotch-common/src/components/collections/index.vue index 93080b3632e..4390a417290 100644 --- a/packages/hoppscotch-common/src/components/collections/index.vue +++ b/packages/hoppscotch-common/src/components/collections/index.vue @@ -1083,7 +1083,7 @@ const createMockServer = (payload: { }) => { // Import the mock server store dynamically to avoid circular dependencies import("~/newstore/mockServers").then(({ showCreateMockServerModal$ }) => { - let collectionID = payload.collection.id ?? undefined + let collectionID = payload.collection.id ?? payload.collection._ref_id // If this is a child collection (folder), we need to get the root collection ID if (payload.collectionIndex.includes("/")) { @@ -1091,7 +1091,7 @@ const createMockServer = (payload: { const rootIndex = payload.collectionIndex.split("/")[0] const rootCollection = myCollections.value[parseInt(rootIndex)] if (rootCollection) { - collectionID = rootCollection.id ?? undefined + collectionID = rootCollection.id ?? rootCollection._ref_id } } diff --git a/packages/hoppscotch-common/src/components/mockServer/CreateMockServer.vue b/packages/hoppscotch-common/src/components/mockServer/CreateMockServer.vue index 345c1ecd1d7..032d2b56b6e 100644 --- a/packages/hoppscotch-common/src/components/mockServer/CreateMockServer.vue +++ b/packages/hoppscotch-common/src/components/mockServer/CreateMockServer.vue @@ -386,7 +386,10 @@ const isExistingMockServer = computed(() => !!existingMockServer.value) // Collection options for the selector (only root collections) const collectionOptions = computed(() => { return availableCollections.value.map((collection) => { - const collectionId = collection.id + const collectionId = + currentWorkspace.value.type === "team" + ? collection.id + : (collection.id ?? collection._ref_id) // TODO: fix this fallback logic for personal workspaces in the future const hasMockServer = mockServers.value.some( (server) => server.collectionID === collectionId ) diff --git a/packages/hoppscotch-common/src/composables/mockServerVisibility.ts b/packages/hoppscotch-common/src/composables/mockServerVisibility.ts index 02a83512103..63d53ff56f1 100644 --- a/packages/hoppscotch-common/src/composables/mockServerVisibility.ts +++ b/packages/hoppscotch-common/src/composables/mockServerVisibility.ts @@ -1,43 +1,21 @@ import { computed } from "vue" + import { useSetting } from "~/composables/settings" -import { platform } from "~/platform" -import { useService } from "dioc/vue" -import { WorkspaceService } from "~/services/workspace.service" /** - * Composable to determine mock server visibility based on experimental flags and platform configuration + * Composable to determine mock server visibility based on experimental flags */ export function useMockServerVisibility() { const ENABLE_EXPERIMENTAL_MOCK_SERVERS = useSetting( "ENABLE_EXPERIMENTAL_MOCK_SERVERS" ) - const workspaceService = useService(WorkspaceService) - /** - * Check if mock servers should be visible based on experimental flag and platform configuration + * Check if mock servers should be visible based on experimental flag */ - const isMockServerVisible = computed(() => { - // First check if experimental mock servers are enabled - if (!ENABLE_EXPERIMENTAL_MOCK_SERVERS.value) { - return false - } - - // Check if platform disables mock servers in personal workspaces - const disableInPersonalWorkspace = - platform.platformFeatureFlags.disableMockServerInPersonalWorkspace ?? - false - - // If platform disables mock servers in personal workspaces and current workspace is personal, hide mock servers - if ( - disableInPersonalWorkspace && - workspaceService.currentWorkspace.value.type === "personal" - ) { - return false - } - - return true - }) + const isMockServerVisible = computed( + () => ENABLE_EXPERIMENTAL_MOCK_SERVERS.value + ) return { isMockServerVisible, diff --git a/packages/hoppscotch-common/src/platform/index.ts b/packages/hoppscotch-common/src/platform/index.ts index 5aec2f81dba..cec460c44bb 100644 --- a/packages/hoppscotch-common/src/platform/index.ts +++ b/packages/hoppscotch-common/src/platform/index.ts @@ -66,12 +66,6 @@ export type PlatformDef = { * Whether to show the A/B testing workspace switcher click login flow or not */ workspaceSwitcherLogin?: Ref - - /** - * Whether to disable mock servers in personal workspaces - * If a value is not given, then the value is assumed to be false - */ - disableMockServerInPersonalWorkspace?: boolean } limits?: LimitsPlatformDef infra?: InfraPlatformDef From dae02c839f74551954e2a99921db99dbd674b105 Mon Sep 17 00:00:00 2001 From: James George <25279263+jamesgeorge007@users.noreply.github.com> Date: Thu, 30 Oct 2025 23:06:42 +0530 Subject: [PATCH 31/33] fix: prevent log injection Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> --- .../hoppscotch-backend/src/mock-server/mock-request.guard.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/hoppscotch-backend/src/mock-server/mock-request.guard.ts b/packages/hoppscotch-backend/src/mock-server/mock-request.guard.ts index 2ca1699c38f..1f55160ddf9 100644 --- a/packages/hoppscotch-backend/src/mock-server/mock-request.guard.ts +++ b/packages/hoppscotch-backend/src/mock-server/mock-request.guard.ts @@ -47,7 +47,7 @@ export class MockRequestGuard implements CanActivate { if (E.isLeft(mockServerResult)) { console.warn( - `Mock server lookup failed for subdomain: ${mockServerSubdomain}, error: ${mockServerResult.left}`, + `Mock server lookup failed for subdomain: ${String(mockServerSubdomain).replace(/\r|\n/g, "")}, error: ${mockServerResult.left}`, ); throw new NotFoundException( `Mock server '${mockServerSubdomain}' not found`, From c939c4f0c83e2de2ef44b0b3782cb3adb5b66805 Mon Sep 17 00:00:00 2001 From: jamesgeorge007 <25279263+jamesgeorge007@users.noreply.github.com> Date: Fri, 31 Oct 2025 11:17:14 +0530 Subject: [PATCH 32/33] fix(common): update request headers/params setter method types to accept partial objects The runtime schema uses .catch() fallbacks for all fields (`key`, `value`, `active`, `description`), making them effectively optional at runtime. Updated type definitions to use Partial<> to match actual runtime behavior and prevent type errors in usage. This allows valid usage patterns like: `` hopp.request.setHeaders([{ key: "X-Custom", value: "foo" }]) ``` Without requiring all fields (`active`, `description`) to be explicitly provided. --- packages/hoppscotch-common/src/types/pre-request.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/hoppscotch-common/src/types/pre-request.d.ts b/packages/hoppscotch-common/src/types/pre-request.d.ts index 50de8bbf8b0..7b781631db3 100644 --- a/packages/hoppscotch-common/src/types/pre-request.d.ts +++ b/packages/hoppscotch-common/src/types/pre-request.d.ts @@ -275,10 +275,10 @@ declare namespace hopp { setUrl(url: string): void setMethod(method: string): void setHeader(name: string, value: string): void - setHeaders(headers: HoppRESTHeader[]): void + setHeaders(headers: Array>): void removeHeader(key: string): void setParam(name: string, value: string): void - setParams(params: HoppRESTParam[]): void + setParams(params: Array>): void removeParam(key: string): void /** * Set or update request body with automatic merging From 69fb8ac63fed9aa6b93ba6dfd2242383d066e29b Mon Sep 17 00:00:00 2001 From: jamesgeorge007 <25279263+jamesgeorge007@users.noreply.github.com> Date: Fri, 31 Oct 2025 11:22:22 +0530 Subject: [PATCH 33/33] chore: resolve lint errors --- .../src/components/mockServer/CreateMockServer.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/hoppscotch-common/src/components/mockServer/CreateMockServer.vue b/packages/hoppscotch-common/src/components/mockServer/CreateMockServer.vue index 032d2b56b6e..37714872075 100644 --- a/packages/hoppscotch-common/src/components/mockServer/CreateMockServer.vue +++ b/packages/hoppscotch-common/src/components/mockServer/CreateMockServer.vue @@ -514,7 +514,7 @@ const toggleMockServer = async () => { toast.error(t("error.something_went_wrong")) loading.value = false }, - (result) => { + () => { toast.success( newActiveState ? t("mock_server.mock_server_started")