From 8b70d7f419217d97c232a3b4826428577e6b2268 Mon Sep 17 00:00:00 2001 From: Akash K <57758277+amk-dev@users.noreply.github.com> Date: Wed, 15 Jan 2025 18:43:05 +0530 Subject: [PATCH] feat: support for sending client credentials via basic auth header (#4635) Co-authored-by: jamesgeorge007 <25279263+jamesgeorge007@users.noreply.github.com> Co-authored-by: nivedin --- packages/hoppscotch-cli/package.json | 2 +- .../unit/fixtures/workspace-access.mock.ts | 26 +-- packages/hoppscotch-common/locales/en.json | 5 +- packages/hoppscotch-common/package.json | 2 +- .../src/components/http/Response.vue | 2 +- .../components/http/authorization/OAuth2.vue | 55 +++++- .../helpers/import-export/import/openapi.ts | 4 +- .../helpers/import-export/import/postman.ts | 2 +- .../services/oauth/flows/clientCredentials.ts | 92 +++++++--- .../persistence/__tests__/__mocks__/index.ts | 10 +- packages/hoppscotch-data/package.json | 2 +- .../hoppscotch-data/src/collection/index.ts | 6 +- .../hoppscotch-data/src/collection/v/1.ts | 7 +- .../hoppscotch-data/src/collection/v/5.ts | 4 +- .../hoppscotch-data/src/collection/v/6.ts | 54 ++++++ packages/hoppscotch-data/src/graphql/index.ts | 8 +- packages/hoppscotch-data/src/graphql/v/8.ts | 64 +++++++ packages/hoppscotch-data/src/rest/index.ts | 29 ++-- packages/hoppscotch-data/src/rest/v/10.ts | 1 - packages/hoppscotch-data/src/rest/v/11.ts | 146 ++++++++++++++++ packages/hoppscotch-data/src/rest/v/7.ts | 2 +- packages/hoppscotch-data/src/rest/v/8.ts | 3 +- .../hoppscotch-selfhost-desktop/package.json | 2 +- packages/hoppscotch-selfhost-web/package.json | 2 +- .../collections/collections.platform.ts | 12 +- pnpm-lock.yaml | 159 ++++++++---------- 26 files changed, 522 insertions(+), 179 deletions(-) create mode 100644 packages/hoppscotch-data/src/collection/v/6.ts create mode 100644 packages/hoppscotch-data/src/graphql/v/8.ts create mode 100644 packages/hoppscotch-data/src/rest/v/11.ts diff --git a/packages/hoppscotch-cli/package.json b/packages/hoppscotch-cli/package.json index dac26e52..89c06476 100644 --- a/packages/hoppscotch-cli/package.json +++ b/packages/hoppscotch-cli/package.json @@ -50,7 +50,7 @@ "lodash-es": "4.17.21", "papaparse": "5.4.1", "qs": "6.13.0", - "verzod": "0.2.3", + "verzod": "0.2.4", "xmlbuilder2": "3.1.1", "zod": "3.23.8" }, diff --git a/packages/hoppscotch-cli/src/__tests__/unit/fixtures/workspace-access.mock.ts b/packages/hoppscotch-cli/src/__tests__/unit/fixtures/workspace-access.mock.ts index 5c52c1c8..b8ee0a70 100644 --- a/packages/hoppscotch-cli/src/__tests__/unit/fixtures/workspace-access.mock.ts +++ b/packages/hoppscotch-cli/src/__tests__/unit/fixtures/workspace-access.mock.ts @@ -485,17 +485,17 @@ export const WORKSPACE_MULTIPLE_CHILD_COLLECTIONS_WITH_AUTH_HEADERS_MOCK: Worksp export const TRANSFORMED_MULTIPLE_CHILD_COLLECTIONS_WITH_AUTH_HEADERS_MOCK: HoppCollection[] = [ { - v: 5, + v: 6, id: "clx1f86hv000010f8szcfya0t", name: "Multiple child collections with authorization & headers set at each level", folders: [ { - v: 5, + v: 6, id: "clx1fjgah000110f8a5bs68gd", name: "folder-1", folders: [ { - v: 5, + v: 6, id: "clx1fjwmm000410f8l1gkkr1a", name: "folder-11", folders: [], @@ -537,7 +537,7 @@ export const TRANSFORMED_MULTIPLE_CHILD_COLLECTIONS_WITH_AUTH_HEADERS_MOCK: Hopp ], }, { - v: 5, + v: 6, id: "clx1fjyxm000510f8pv90dt43", name: "folder-12", folders: [], @@ -595,7 +595,7 @@ export const TRANSFORMED_MULTIPLE_CHILD_COLLECTIONS_WITH_AUTH_HEADERS_MOCK: Hopp ], }, { - v: 5, + v: 6, id: "clx1fk1cv000610f88kc3aupy", name: "folder-13", folders: [], @@ -707,12 +707,12 @@ export const TRANSFORMED_MULTIPLE_CHILD_COLLECTIONS_WITH_AUTH_HEADERS_MOCK: Hopp ], }, { - v: 5, + v: 6, id: "clx1fjk9o000210f8j0573pls", name: "folder-2", folders: [ { - v: 5, + v: 6, id: "clx1fk516000710f87sfpw6bo", name: "folder-21", folders: [], @@ -752,7 +752,7 @@ export const TRANSFORMED_MULTIPLE_CHILD_COLLECTIONS_WITH_AUTH_HEADERS_MOCK: Hopp ], }, { - v: 5, + v: 6, id: "clx1fk72t000810f8gfwkpi5y", name: "folder-22", folders: [], @@ -810,7 +810,7 @@ export const TRANSFORMED_MULTIPLE_CHILD_COLLECTIONS_WITH_AUTH_HEADERS_MOCK: Hopp ], }, { - v: 5, + v: 6, id: "clx1fk95g000910f8bunhaoo8", name: "folder-23", folders: [], @@ -915,12 +915,12 @@ export const TRANSFORMED_MULTIPLE_CHILD_COLLECTIONS_WITH_AUTH_HEADERS_MOCK: Hopp ], }, { - v: 5, + v: 6, id: "clx1fjmlq000310f86o4d3w2o", name: "folder-3", folders: [ { - v: 5, + v: 6, id: "clx1iwq0p003e10f8u8zg0p85", name: "folder-31", folders: [], @@ -960,7 +960,7 @@ export const TRANSFORMED_MULTIPLE_CHILD_COLLECTIONS_WITH_AUTH_HEADERS_MOCK: Hopp ], }, { - v: 5, + v: 6, id: "clx1izut7003m10f894ip59zg", name: "folder-32", folders: [], @@ -1018,7 +1018,7 @@ export const TRANSFORMED_MULTIPLE_CHILD_COLLECTIONS_WITH_AUTH_HEADERS_MOCK: Hopp ], }, { - v: 5, + v: 6, id: "clx1j2ka9003q10f8cdbzpgpg", name: "folder-33", folders: [], diff --git a/packages/hoppscotch-common/locales/en.json b/packages/hoppscotch-common/locales/en.json index 7c8d76e4..dfa0960a 100644 --- a/packages/hoppscotch-common/locales/en.json +++ b/packages/hoppscotch-common/locales/en.json @@ -199,7 +199,10 @@ "label_password": "Password", "label_username": "Username", "label_auth_code": "Authorization Code", - "label_client_credentials": "Client Credentials" + "label_client_credentials": "Client Credentials", + "label_send_as": "Client Authentication", + "label_send_in_body": "Send Credentials in Body", + "label_send_as_basic_auth": "Send Credentials as Basic Auth" }, "pass_key_by": "Pass by", "pass_by_query_params_label": "Query Parameters", diff --git a/packages/hoppscotch-common/package.json b/packages/hoppscotch-common/package.json index f705ab24..0782a321 100644 --- a/packages/hoppscotch-common/package.json +++ b/packages/hoppscotch-common/package.json @@ -94,7 +94,7 @@ "url": "0.11.4", "util": "0.12.5", "uuid": "10.0.0", - "verzod": "0.2.3", + "verzod": "0.2.4", "vue": "3.5.12", "vue-i18n": "10.0.4", "vue-pdf-embed": "2.1.0", diff --git a/packages/hoppscotch-common/src/components/http/Response.vue b/packages/hoppscotch-common/src/components/http/Response.vue index 466741ca..5caf62d7 100644 --- a/packages/hoppscotch-common/src/components/http/Response.vue +++ b/packages/hoppscotch-common/src/components/http/Response.vue @@ -85,7 +85,7 @@ const onSaveAsExample = () => { } = response.req const originalRequest: HoppRESTResponseOriginalRequest = { - v: "2", + v: "3", method, endpoint, headers, diff --git a/packages/hoppscotch-common/src/components/http/authorization/OAuth2.vue b/packages/hoppscotch-common/src/components/http/authorization/OAuth2.vue index 3cf92591..b6165c02 100644 --- a/packages/hoppscotch-common/src/components/http/authorization/OAuth2.vue +++ b/packages/hoppscotch-common/src/components/http/authorization/OAuth2.vue @@ -564,6 +564,33 @@ const supportedGrantTypes = [ } ) + const clientAuthentication = refWithCallbackOnChange( + grantTypeInfo.clientAuthentication + ? grantTypeInfo.clientAuthentication === "AS_BASIC_AUTH_HEADERS" + ? { + id: "AS_BASIC_AUTH_HEADERS" as const, + label: t("authorization.oauth.label_send_as_basic_auth"), + } + : { + id: "IN_BODY" as const, + label: t("authorization.oauth.label_send_in_body"), + } + : { + id: "IN_BODY" as const, + label: t("authorization.oauth.label_send_in_body"), + }, + (value) => { + if (!("clientAuthentication" in auth.value.grantTypeInfo)) { + return + } + + auth.value.grantTypeInfo = { + ...auth.value.grantTypeInfo, + clientAuthentication: value.id, + } + } + ) + const runAction = async () => { const values: ClientCredentialsFlowParams = replaceTemplateStringsInObjectValues({ @@ -571,6 +598,7 @@ const supportedGrantTypes = [ clientID: clientID.value, clientSecret: clientSecret.value, scopes: scopes.value, + clientAuthentication: clientAuthentication.value.id, }) const parsedArgs = clientCredentials.params.safeParse(values) @@ -596,28 +624,46 @@ const supportedGrantTypes = [ return [ { id: "authEndpoint", - label: "Authorization Endpoint", + label: t("authorization.oauth.label_authorization_endpoint"), type: "text" as const, ref: authEndpoint, }, { id: "clientId", - label: "Client ID", + label: t("authorization.oauth.label_client_id"), type: "text" as const, ref: clientID, }, { id: "clientSecret", - label: "Client Secret", + label: t("authorization.oauth.label_client_secret"), type: "text" as const, ref: clientSecret, }, { id: "scopes", - label: "Scopes", + label: t("authorization.oauth.label_scopes"), type: "text" as const, ref: scopes, }, + { + id: "clientAuthentication", + label: t("authorization.oauth.label_send_as"), + type: "dropdown" as const, + ref: clientAuthentication, + tippyRefName: "clientAuthenticationTippyActions", + tippyRef: clientAuthenticationTippyActions, + options: [ + { + id: "IN_BODY" as const, + label: t("authorization.oauth.label_send_in_body"), + }, + { + id: "AS_BASIC_AUTH_HEADERS" as const, + label: t("authorization.oauth.label_send_as_basic_auth"), + }, + ], + }, ] }) @@ -1066,4 +1112,5 @@ const generateOAuthToken = async () => { const grantTypeTippyActions = ref(null) const pkceTippyActions = ref(null) const authTippyActions = ref(null) +const clientAuthenticationTippyActions = ref(null) diff --git a/packages/hoppscotch-common/src/helpers/import-export/import/openapi.ts b/packages/hoppscotch-common/src/helpers/import-export/import/openapi.ts index 4e38ddcc..1ea2a758 100644 --- a/packages/hoppscotch-common/src/helpers/import-export/import/openapi.ts +++ b/packages/hoppscotch-common/src/helpers/import-export/import/openapi.ts @@ -470,6 +470,7 @@ const resolveOpenAPIV3SecurityObj = ( clientSecret: "", scopes: _schemeData.join(" "), token: "", + clientAuthentication: "IN_BODY", }, addTo: "HEADERS", } @@ -616,6 +617,7 @@ const resolveOpenAPIV2SecurityScheme = ( grantType: "CLIENT_CREDENTIALS", scopes: _schemeData.join(" "), token: "", + clientAuthentication: "IN_BODY", }, addTo: "HEADERS", } @@ -812,7 +814,7 @@ const convertPathToHoppReqs = ( requestVariables: parseOpenAPIVariables( (info.parameters as OpenAPIParamsType[] | undefined) ?? [] ), - v: "2", + v: "3", }), }), metadata: { diff --git a/packages/hoppscotch-common/src/helpers/import-export/import/postman.ts b/packages/hoppscotch-common/src/helpers/import-export/import/postman.ts index 5872000c..9e40f542 100644 --- a/packages/hoppscotch-common/src/helpers/import-export/import/postman.ts +++ b/packages/hoppscotch-common/src/helpers/import-export/import/postman.ts @@ -177,7 +177,7 @@ const getHoppResponses = ( requestVariables: getHoppReqVariables( response.originalRequest?.url.variables ?? null ), - v: "2" as const, + v: "3" as const, }, } return [response.name, res] diff --git a/packages/hoppscotch-common/src/services/oauth/flows/clientCredentials.ts b/packages/hoppscotch-common/src/services/oauth/flows/clientCredentials.ts index 034bc382..1301a2de 100644 --- a/packages/hoppscotch-common/src/services/oauth/flows/clientCredentials.ts +++ b/packages/hoppscotch-common/src/services/oauth/flows/clientCredentials.ts @@ -9,6 +9,7 @@ import * as E from "fp-ts/Either" import { InterceptorService } from "~/services/interceptor.service" import { useToast } from "~/composables/toast" import { ClientCredentialsGrantTypeParams } from "@hoppscotch/data" +import { AxiosRequestConfig } from "axios" const interceptorService = getService(InterceptorService) @@ -18,6 +19,7 @@ const ClientCredentialsFlowParamsSchema = ClientCredentialsGrantTypeParams.pick( clientID: true, clientSecret: true, scopes: true, + clientAuthentication: true, } ).refine( (params) => { @@ -42,37 +44,20 @@ export const getDefaultClientCredentialsFlowParams = clientID: "", clientSecret: "", scopes: undefined, + clientAuthentication: "IN_BODY", }) -const initClientCredentialsOAuthFlow = async ({ - clientID, - clientSecret, - scopes, - authEndpoint, -}: ClientCredentialsFlowParams) => { +const initClientCredentialsOAuthFlow = async ( + payload: ClientCredentialsFlowParams +) => { const toast = useToast() - const formData = new URLSearchParams() - formData.append("grant_type", "client_credentials") - formData.append("client_id", clientID) + const requestPayload = + payload.clientAuthentication === "AS_BASIC_AUTH_HEADERS" + ? getPayloadForViaBasicAuthHeader(payload) + : getPayloadForViaBody(payload) - if (clientSecret) { - formData.append("client_secret", clientSecret) - } - - if (scopes) { - formData.append("scope", scopes) - } - - const { response } = interceptorService.runRequest({ - url: authEndpoint, - method: "POST", - headers: { - "Content-Type": "application/x-www-form-urlencoded", - Accept: "application/json", - }, - data: formData.toString(), - }) + const { response } = interceptorService.runRequest(requestPayload) const res = await response @@ -183,3 +168,58 @@ export default createFlowConfig( initClientCredentialsOAuthFlow, handleRedirectForAuthCodeOauthFlow ) + +const getPayloadForViaBasicAuthHeader = ( + payload: Omit +): AxiosRequestConfig => { + const { clientID, clientSecret, scopes, authEndpoint } = payload + + const basicAuthToken = btoa(`${clientID}:${clientSecret}`) + + const formData = new URLSearchParams() + + formData.append("grant_type", "client_credentials") + + if (scopes) { + formData.append("scope", scopes) + } + + return { + method: "POST", + url: authEndpoint, + headers: { + Authorization: `Basic ${basicAuthToken}`, + "Content-Type": "application/x-www-form-urlencoded", + Accept: "application/json", + }, + data: formData.toString(), + } +} + +const getPayloadForViaBody = ( + payload: Omit +) => { + const { clientID, clientSecret, scopes, authEndpoint } = payload + + const formData = new URLSearchParams() + formData.append("grant_type", "client_credentials") + formData.append("client_id", clientID) + + if (clientSecret) { + formData.append("client_secret", clientSecret) + } + + if (scopes) { + formData.append("scope", scopes) + } + + return { + method: "POST", + url: authEndpoint, + headers: { + "Content-Type": "application/x-www-form-urlencoded", + Accept: "application/json", + }, + data: formData.toString(), + } +} diff --git a/packages/hoppscotch-common/src/services/persistence/__tests__/__mocks__/index.ts b/packages/hoppscotch-common/src/services/persistence/__tests__/__mocks__/index.ts index c75f84e7..5d13fd84 100644 --- a/packages/hoppscotch-common/src/services/persistence/__tests__/__mocks__/index.ts +++ b/packages/hoppscotch-common/src/services/persistence/__tests__/__mocks__/index.ts @@ -25,7 +25,7 @@ const DEFAULT_SETTINGS = getDefaultSettings() export const REST_COLLECTIONS_MOCK: HoppCollection[] = [ { - v: 5, + v: 6, name: "Echo", requests: [ { @@ -57,11 +57,11 @@ export const REST_COLLECTIONS_MOCK: HoppCollection[] = [ export const GQL_COLLECTIONS_MOCK: HoppCollection[] = [ { - v: 5, + v: 6, name: "Echo", requests: [ { - v: 7, + v: 8, name: "Echo test", url: "https://echo.hoppscotch.io/graphql", headers: [], @@ -167,7 +167,7 @@ export const GQL_HISTORY_MOCK: GQLHistoryEntry[] = [ { v: 1, request: { - v: 7, + v: 8, name: "Untitled", url: "https://echo.hoppscotch.io/graphql", query: "query Request { url }", @@ -188,7 +188,7 @@ export const GQL_TAB_STATE_MOCK: PersistableTabState = { tabID: "5edbe8d4-65c9-4381-9354-5f1bf05d8ccc", doc: { request: { - v: 7, + v: 8, name: "Untitled", url: "https://echo.hoppscotch.io/graphql", headers: [], diff --git a/packages/hoppscotch-data/package.json b/packages/hoppscotch-data/package.json index 08b607ec..9026b3c0 100644 --- a/packages/hoppscotch-data/package.json +++ b/packages/hoppscotch-data/package.json @@ -46,7 +46,7 @@ "lodash": "4.17.21", "parser-ts": "0.7.0", "uuid": "10.0.0", - "verzod": "0.2.3", + "verzod": "0.2.4", "zod": "3.23.8" } } diff --git a/packages/hoppscotch-data/src/collection/index.ts b/packages/hoppscotch-data/src/collection/index.ts index bb5540d3..7808c194 100644 --- a/packages/hoppscotch-data/src/collection/index.ts +++ b/packages/hoppscotch-data/src/collection/index.ts @@ -5,6 +5,7 @@ import V2_VERSION from "./v/2" import V3_VERSION from "./v/3" import V4_VERSION from "./v/4" import V5_VERSION from "./v/5" +import V6_VERSION from "./v/6" import { z } from "zod" import { translateToNewRequest } from "../rest" @@ -16,13 +17,14 @@ const versionedObject = z.object({ }) export const HoppCollection = createVersionedEntity({ - latestVersion: 5, + latestVersion: 6, versionMap: { 1: V1_VERSION, 2: V2_VERSION, 3: V3_VERSION, 4: V4_VERSION, 5: V5_VERSION, + 6: V6_VERSION, }, getVersion(data) { const versionCheck = versionedObject.safeParse(data) @@ -38,7 +40,7 @@ export const HoppCollection = createVersionedEntity({ export type HoppCollection = InferredEntity -export const CollectionSchemaVersion = 5 +export const CollectionSchemaVersion = 6 /** * Generates a Collection object. This ignores the version number object diff --git a/packages/hoppscotch-data/src/collection/v/1.ts b/packages/hoppscotch-data/src/collection/v/1.ts index 9ea6734b..73b30e28 100644 --- a/packages/hoppscotch-data/src/collection/v/1.ts +++ b/packages/hoppscotch-data/src/collection/v/1.ts @@ -26,9 +26,10 @@ type Output = z.output & { folders: Output[] } -export const V1_SCHEMA: z.ZodType = baseCollectionSchema.extend({ - folders: z.lazy(() => z.array(V1_SCHEMA)), -}) +export const V1_SCHEMA: z.ZodType = + baseCollectionSchema.extend({ + folders: z.lazy(() => z.array(V1_SCHEMA)), + }) export default defineVersion({ initial: true, diff --git a/packages/hoppscotch-data/src/collection/v/5.ts b/packages/hoppscotch-data/src/collection/v/5.ts index 00eea6e3..551a3a1c 100644 --- a/packages/hoppscotch-data/src/collection/v/5.ts +++ b/packages/hoppscotch-data/src/collection/v/5.ts @@ -4,7 +4,7 @@ import { z } from "zod" import { V4_SCHEMA, v4_baseCollectionSchema } from "./4" import { generateUniqueRefId } from "../../utils/collection" -const v5_baseCollectionSchema = v4_baseCollectionSchema.extend({ +export const v5_baseCollectionSchema = v4_baseCollectionSchema.extend({ v: z.literal(5), _ref_id: z.string().optional(), }) @@ -17,7 +17,7 @@ type Output = z.output & { folders: Output[] } -const V5_SCHEMA: z.ZodType = +export const V5_SCHEMA: z.ZodType = v5_baseCollectionSchema.extend({ folders: z.lazy(() => z.array(V5_SCHEMA)), }) diff --git a/packages/hoppscotch-data/src/collection/v/6.ts b/packages/hoppscotch-data/src/collection/v/6.ts new file mode 100644 index 00000000..39b02469 --- /dev/null +++ b/packages/hoppscotch-data/src/collection/v/6.ts @@ -0,0 +1,54 @@ +import { defineVersion } from "verzod" +import { z } from "zod" + +import { HoppGQLAuth } from "../../graphql/v/8" +import { HoppRESTAuth } from "../../rest/v/11" + +import { V5_SCHEMA, v5_baseCollectionSchema } from "./5" + +export const v6_baseCollectionSchema = v5_baseCollectionSchema.extend({ + v: z.literal(6), + auth: z.union([HoppRESTAuth, HoppGQLAuth]), +}) + +type Input = z.input & { + folders: Input[] +} + +type Output = z.output & { + folders: Output[] +} + +export const V6_SCHEMA: z.ZodType = + v6_baseCollectionSchema.extend({ + folders: z.lazy(() => z.array(V6_SCHEMA)), + }) + +export default defineVersion({ + initial: false, + schema: V6_SCHEMA, + // @ts-expect-error + up(old: z.infer) { + const auth = old.auth + + const migratedAuth: HoppRESTAuth = + auth.authType === "oauth-2" + ? { + ...auth, + grantTypeInfo: + auth.grantTypeInfo.grantType === "CLIENT_CREDENTIALS" + ? { + ...auth.grantTypeInfo, + clientAuthentication: "IN_BODY", + } + : auth.grantTypeInfo, + } + : auth + + return { + ...old, + auth: migratedAuth, + v: 6 as const, + } + }, +}) diff --git a/packages/hoppscotch-data/src/graphql/index.ts b/packages/hoppscotch-data/src/graphql/index.ts index 98ac9870..4a26f5a8 100644 --- a/packages/hoppscotch-data/src/graphql/index.ts +++ b/packages/hoppscotch-data/src/graphql/index.ts @@ -7,6 +7,7 @@ import V4_VERSION from "./v/4" import V5_VERSION from "./v/5" import V6_VERSION from "./v/6" import V7_VERSION from "./v/7" +import V8_VERSION from "./v/8" export { HoppGQLAuthBasic, @@ -18,16 +19,16 @@ export { export { HoppGQLAuthAPIKey } from "./v/4" export { GQLHeader, HoppGQLAuthAWSSignature } from "./v/6" -export { HoppGQLAuth, HoppGQLAuthOAuth2 } from "./v/7" +export { HoppGQLAuth, HoppGQLAuthOAuth2 } from "./v/8" -export const GQL_REQ_SCHEMA_VERSION = 7 +export const GQL_REQ_SCHEMA_VERSION = 8 const versionedObject = z.object({ v: z.number(), }) export const HoppGQLRequest = createVersionedEntity({ - latestVersion: 7, + latestVersion: 8, versionMap: { 1: V1_VERSION, 2: V2_VERSION, @@ -36,6 +37,7 @@ export const HoppGQLRequest = createVersionedEntity({ 5: V5_VERSION, 6: V6_VERSION, 7: V7_VERSION, + 8: V8_VERSION, }, getVersion(x) { const result = versionedObject.safeParse(x) diff --git a/packages/hoppscotch-data/src/graphql/v/8.ts b/packages/hoppscotch-data/src/graphql/v/8.ts new file mode 100644 index 00000000..b34e5bfa --- /dev/null +++ b/packages/hoppscotch-data/src/graphql/v/8.ts @@ -0,0 +1,64 @@ +import { defineVersion } from "verzod" +import { z } from "zod" + +import { + HoppGQLAuthBasic, + HoppGQLAuthBearer, + HoppGQLAuthInherit, + HoppGQLAuthNone, +} from "./2" +import { HoppGQLAuthAPIKey } from "./4" +import { HoppGQLAuthAWSSignature } from "./6" +import { HoppRESTAuthOAuth2 } from "./../../rest/v/11" +import { V7_SCHEMA } from "./7" + +export { HoppRESTAuthOAuth2 as HoppGQLAuthOAuth2 } from "../../rest/v/11" + +export const HoppGQLAuth = z + .discriminatedUnion("authType", [ + HoppGQLAuthNone, + HoppGQLAuthInherit, + HoppGQLAuthBasic, + HoppGQLAuthBearer, + HoppRESTAuthOAuth2, + HoppGQLAuthAPIKey, + HoppGQLAuthAWSSignature, + ]) + .and( + z.object({ + authActive: z.boolean(), + }) + ) + +export type HoppGQLAuth = z.infer + +export const V8_SCHEMA = V7_SCHEMA.extend({ + v: z.literal(8), + auth: HoppGQLAuth, +}) + +export default defineVersion({ + schema: V8_SCHEMA, + initial: false, + up(old: z.infer) { + const auth = old.auth + + return { + ...old, + v: 8 as const, + auth: + auth.authType === "oauth-2" + ? { + ...auth, + grantTypeInfo: + auth.grantTypeInfo.grantType === "CLIENT_CREDENTIALS" + ? { + ...auth.grantTypeInfo, + clientAuthentication: "IN_BODY" as const, + } + : auth.grantTypeInfo, + } + : auth, + } + }, +}) diff --git a/packages/hoppscotch-data/src/rest/index.ts b/packages/hoppscotch-data/src/rest/index.ts index ac84719b..dcc3647e 100644 --- a/packages/hoppscotch-data/src/rest/index.ts +++ b/packages/hoppscotch-data/src/rest/index.ts @@ -14,9 +14,10 @@ import V4_VERSION from "./v/4" import V5_VERSION from "./v/5" import V6_VERSION from "./v/6" import V7_VERSION, { HoppRESTHeaders, HoppRESTParams } from "./v/7" -import V8_VERSION, { HoppRESTAuth } from "./v/8" -import V9_VERSION, { HoppRESTRequestResponses } from "./v/9" +import V8_VERSION from "./v/8" +import V9_VERSION from "./v/9" import V10_VERSION, { HoppRESTReqBody } from "./v/10" +import V11_VERSION, { HoppRESTAuth, HoppRESTRequestResponses } from "./v/11" export * from "./content-types" @@ -41,30 +42,31 @@ export { HoppRESTParams, } from "./v/7" -export { - ClientCredentialsGrantTypeParams, - HoppRESTAuth, - HoppRESTAuthOAuth2, - HoppRESTAuthDigest, - PasswordGrantTypeParams, -} from "./v/8" +export { HoppRESTAuthDigest, PasswordGrantTypeParams } from "./v/8" + +export { FormDataKeyValue } from "./v/9" export { - FormDataKeyValue, HoppRESTResponseOriginalRequest, HoppRESTRequestResponse, HoppRESTRequestResponses, -} from "./v/9" +} from "./v/11" export { HoppRESTReqBody } from "./v/10" +export { + HoppRESTAuthOAuth2, + HoppRESTAuth, + ClientCredentialsGrantTypeParams, +} from "./v/11" + const versionedObject = z.object({ // v is a stringified number v: z.string().regex(/^\d+$/).transform(Number), }) export const HoppRESTRequest = createVersionedEntity({ - latestVersion: 10, + latestVersion: 11, versionMap: { 0: V0_VERSION, 1: V1_VERSION, @@ -77,6 +79,7 @@ export const HoppRESTRequest = createVersionedEntity({ 8: V8_VERSION, 9: V9_VERSION, 10: V10_VERSION, + 11: V11_VERSION, }, getVersion(data) { // For V1 onwards we have the v string storing the number @@ -119,7 +122,7 @@ const HoppRESTRequestEq = Eq.struct({ responses: lodashIsEqualEq, }) -export const RESTReqSchemaVersion = "10" +export const RESTReqSchemaVersion = "11" export type HoppRESTParam = HoppRESTRequest["params"][number] export type HoppRESTHeader = HoppRESTRequest["headers"][number] diff --git a/packages/hoppscotch-data/src/rest/v/10.ts b/packages/hoppscotch-data/src/rest/v/10.ts index d81b3492..9dc77e23 100644 --- a/packages/hoppscotch-data/src/rest/v/10.ts +++ b/packages/hoppscotch-data/src/rest/v/10.ts @@ -49,7 +49,6 @@ export default defineVersion({ schema: V10_SCHEMA, initial: false, up(old: z.infer) { - // no breaking changes return { ...old, v: "10" as const, diff --git a/packages/hoppscotch-data/src/rest/v/11.ts b/packages/hoppscotch-data/src/rest/v/11.ts new file mode 100644 index 00000000..2db50114 --- /dev/null +++ b/packages/hoppscotch-data/src/rest/v/11.ts @@ -0,0 +1,146 @@ +import { + HoppRESTAuthBasic, + HoppRESTAuthBearer, + HoppRESTAuthInherit, + HoppRESTAuthNone, +} from "./1" +import { HoppRESTAuthAPIKey } from "./4" +import { AuthCodeGrantTypeParams, HoppRESTAuthAWSSignature } from "./7" +import { + ClientCredentialsGrantTypeParams as ClientCredentialsGrantTypeParamsOld, + HoppRESTAuthDigest, + PasswordGrantTypeParams, +} from "./8" +import { ImplicitOauthFlowParams } from "./3" +import { z } from "zod" + +import { HoppRESTReqBody, V10_SCHEMA } from "./10" +import { defineVersion } from "verzod" +import { + HoppRESTResponseOriginalRequest as HoppRESTResponseOriginalRequestOld, + HoppRESTRequestResponse as HoppRESTRequestResponseOld, +} from "./9" + +export const ClientCredentialsGrantTypeParams = + ClientCredentialsGrantTypeParamsOld.extend({ + clientAuthentication: z.enum(["AS_BASIC_AUTH_HEADERS", "IN_BODY"]), + }) + +export const HoppRESTAuthOAuth2 = z.object({ + authType: z.literal("oauth-2"), + grantTypeInfo: z.discriminatedUnion("grantType", [ + AuthCodeGrantTypeParams, + ClientCredentialsGrantTypeParams, + PasswordGrantTypeParams, + ImplicitOauthFlowParams, + ]), + addTo: z.enum(["HEADERS", "QUERY_PARAMS"]).catch("HEADERS"), +}) + +export type HoppRESTAuthOAuth2 = z.infer + +export const HoppRESTAuth = z + .discriminatedUnion("authType", [ + HoppRESTAuthNone, + HoppRESTAuthInherit, + HoppRESTAuthBasic, + HoppRESTAuthBearer, + HoppRESTAuthOAuth2, + HoppRESTAuthAPIKey, + HoppRESTAuthAWSSignature, + HoppRESTAuthDigest, + ]) + .and( + z.object({ + authActive: z.boolean(), + }) + ) + +export type HoppRESTAuth = z.infer + +export const HoppRESTResponseOriginalRequest = + HoppRESTResponseOriginalRequestOld.extend({ + v: z.literal("3"), + auth: HoppRESTAuth, + body: HoppRESTReqBody, + }) + +export type HoppRESTResponseOriginalRequest = z.infer< + typeof HoppRESTResponseOriginalRequest +> + +export const HoppRESTRequestResponse = HoppRESTRequestResponseOld.extend({ + originalRequest: HoppRESTResponseOriginalRequest, +}) + +export type HoppRESTRequestResponse = z.infer + +export const HoppRESTRequestResponses = z.record( + z.string(), + HoppRESTRequestResponse +) + +export type HoppRESTRequestResponses = z.infer + +export const V11_SCHEMA = V10_SCHEMA.extend({ + v: z.literal("11"), + auth: HoppRESTAuth, + responses: HoppRESTRequestResponses, +}) + +export default defineVersion({ + schema: V11_SCHEMA, + initial: false, + up(old: z.infer) { + const auth = old.auth + + // update auth for responses + const responses = Object.fromEntries( + Object.entries(old.responses).map(([key, response]) => [ + key, + { + ...response, + originalRequest: { + ...response.originalRequest, + + auth: + auth.authType === "oauth-2" + ? { + ...auth, + grantTypeInfo: + auth.grantTypeInfo.grantType === "CLIENT_CREDENTIALS" + ? { + ...auth.grantTypeInfo, + clientAuthentication: "IN_BODY" as const, + } + : auth.grantTypeInfo, + } + : auth, + + // just following the previous pattern here, but is this a good idea to overwrite the request version ? + v: "3" as const, + }, + }, + ]) + ) + + return { + ...old, + v: "11" as const, + auth: + auth.authType === "oauth-2" + ? { + ...auth, + grantTypeInfo: + auth.grantTypeInfo.grantType === "CLIENT_CREDENTIALS" + ? { + ...auth.grantTypeInfo, + clientAuthentication: "IN_BODY" as const, + } + : auth.grantTypeInfo, + } + : auth, + responses, + } + }, +}) diff --git a/packages/hoppscotch-data/src/rest/v/7.ts b/packages/hoppscotch-data/src/rest/v/7.ts index 3df3ba8f..9b291e30 100644 --- a/packages/hoppscotch-data/src/rest/v/7.ts +++ b/packages/hoppscotch-data/src/rest/v/7.ts @@ -1,12 +1,12 @@ import { z } from "zod" import { defineVersion } from "verzod" import { - HoppRESTAuthAPIKey, HoppRESTAuthBasic, HoppRESTAuthBearer, HoppRESTAuthInherit, HoppRESTAuthNone, } from "./1" +import { HoppRESTAuthAPIKey } from "./4" import { V6_SCHEMA } from "./6" import { AuthCodeGrantTypeParams as AuthCodeGrantTypeParamsOld } from "./5" diff --git a/packages/hoppscotch-data/src/rest/v/8.ts b/packages/hoppscotch-data/src/rest/v/8.ts index 6e047cb5..868fa3a4 100644 --- a/packages/hoppscotch-data/src/rest/v/8.ts +++ b/packages/hoppscotch-data/src/rest/v/8.ts @@ -2,13 +2,14 @@ import { defineVersion } from "verzod" import { z } from "zod" import { - HoppRESTAuthAPIKey, HoppRESTAuthBasic, HoppRESTAuthBearer, HoppRESTAuthInherit, HoppRESTAuthNone, } from "./1" +import { HoppRESTAuthAPIKey } from "./4" + import { ClientCredentialsGrantTypeParams as ClientCredentialsGrantTypeParamsOld, ImplicitOauthFlowParams, diff --git a/packages/hoppscotch-selfhost-desktop/package.json b/packages/hoppscotch-selfhost-desktop/package.json index d019c04f..2af7351b 100644 --- a/packages/hoppscotch-selfhost-desktop/package.json +++ b/packages/hoppscotch-selfhost-desktop/package.json @@ -36,7 +36,7 @@ "tauri": "link:@tauri-apps/api/tauri", "tauri-plugin-store-api": "0.0.0", "util": "0.12.5", - "verzod": "0.2.3", + "verzod": "0.2.4", "vue": "3.3.9", "workbox-window": "6.6.0", "zod": "3.22.4" diff --git a/packages/hoppscotch-selfhost-web/package.json b/packages/hoppscotch-selfhost-web/package.json index 402e6090..14977e43 100644 --- a/packages/hoppscotch-selfhost-web/package.json +++ b/packages/hoppscotch-selfhost-web/package.json @@ -37,7 +37,7 @@ "rxjs": "7.8.1", "stream-browserify": "3.0.0", "util": "0.12.5", - "verzod": "0.2.3", + "verzod": "0.2.4", "vue": "3.5.12", "workbox-window": "7.1.0", "zod": "3.23.8" diff --git a/packages/hoppscotch-selfhost-web/src/platform/collections/collections.platform.ts b/packages/hoppscotch-selfhost-web/src/platform/collections/collections.platform.ts index 0d29f9ce..3c32069e 100644 --- a/packages/hoppscotch-selfhost-web/src/platform/collections/collections.platform.ts +++ b/packages/hoppscotch-selfhost-web/src/platform/collections/collections.platform.ts @@ -140,7 +140,7 @@ function exportedCollectionToHoppCollection( return { id: restCollection.id, _ref_id: data._ref_id ?? generateUniqueRefId("coll"), - v: 5, + v: 6, name: restCollection.name, folders: restCollection.folders.map((folder) => exportedCollectionToHoppCollection(folder, collectionType) @@ -204,7 +204,7 @@ function exportedCollectionToHoppCollection( return { id: gqlCollection.id, _ref_id: data._ref_id ?? generateUniqueRefId("coll"), - v: 5, + v: 6, name: gqlCollection.name, folders: gqlCollection.folders.map((folder) => exportedCollectionToHoppCollection(folder, collectionType) @@ -383,7 +383,7 @@ function setupUserCollectionCreatedSubscription() { name: res.right.userCollectionCreated.title, folders: [], requests: [], - v: 5, + v: 6, _ref_id: data._ref_id, auth: data.auth, headers: addDescriptionField(data.headers), @@ -392,7 +392,7 @@ function setupUserCollectionCreatedSubscription() { name: res.right.userCollectionCreated.title, folders: [], requests: [], - v: 5, + v: 6, _ref_id: data._ref_id, auth: data.auth, headers: addDescriptionField(data.headers), @@ -620,7 +620,7 @@ function setupUserCollectionDuplicatedSubscription() { name, folders, requests, - v: 5, + v: 6, _ref_id, auth, headers: addDescriptionField(headers), @@ -1054,7 +1054,7 @@ function transformDuplicatedCollections( folders, requests, _ref_id, - v: 5, + v: 6, auth, headers: addDescriptionField(headers), } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 691a126c..192eb5d6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -142,10 +142,10 @@ importers: version: 4.11.0(graphql@16.9.0) '@nestjs-modules/mailer': specifier: 2.0.2 - version: 2.0.2(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1))(nodemailer@6.9.15)(relateurl@0.2.7)(svgo@3.3.2)(terser@5.34.1)(typescript@5.5.4) + version: 2.0.2(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4)(nodemailer@6.9.15)(relateurl@0.2.7)(svgo@3.3.2)(terser@5.34.1)(typescript@5.5.4) '@nestjs/apollo': specifier: 12.2.0 - version: 12.2.0(@apollo/server@4.11.0(graphql@16.9.0))(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/graphql@12.2.0(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2))(graphql@16.9.0) + version: 12.2.0(@apollo/server@4.11.0(graphql@16.9.0))(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4)(@nestjs/graphql@12.2.0(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2))(graphql@16.9.0) '@nestjs/common': specifier: 10.4.4 version: 10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) @@ -157,7 +157,7 @@ importers: version: 10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/graphql': specifier: 12.2.0 - version: 12.2.0(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2) + version: 12.2.0(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2) '@nestjs/jwt': specifier: 10.2.0 version: 10.2.0(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1)) @@ -169,16 +169,16 @@ importers: version: 10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4) '@nestjs/schedule': specifier: 4.1.1 - version: 4.1.1(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1)) + version: 4.1.1(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4) '@nestjs/swagger': specifier: 7.4.2 - version: 7.4.2(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) + version: 7.4.2(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) '@nestjs/terminus': specifier: 10.2.3 - version: 10.2.3(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@prisma/client@5.20.0(prisma@5.20.0))(reflect-metadata@0.2.2)(rxjs@7.8.1) + version: 10.2.3(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4)(@prisma/client@5.20.0(prisma@5.20.0))(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/throttler': specifier: 6.2.1 - version: 6.2.1(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1))(reflect-metadata@0.2.2) + version: 6.2.1(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4)(reflect-metadata@0.2.2) '@prisma/client': specifier: 5.20.0 version: 5.20.0(prisma@5.20.0) @@ -278,7 +278,7 @@ importers: version: 10.1.4(chokidar@3.6.0)(typescript@5.5.4) '@nestjs/testing': specifier: 10.4.4 - version: 10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4)) + version: 10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4)(@nestjs/platform-express@10.4.4) '@relmify/jest-fp-ts': specifier: 2.1.1 version: 2.1.1(fp-ts@2.16.9)(io-ts@2.2.21(fp-ts@2.16.9)) @@ -403,8 +403,8 @@ importers: specifier: 6.13.0 version: 6.13.0 verzod: - specifier: 0.2.3 - version: 0.2.3(zod@3.23.8) + specifier: 0.2.4 + version: 0.2.4(zod@3.23.8) xmlbuilder2: specifier: 3.1.1 version: 3.1.1 @@ -671,8 +671,8 @@ importers: specifier: 10.0.0 version: 10.0.0 verzod: - specifier: 0.2.3 - version: 0.2.3(zod@3.23.8) + specifier: 0.2.4 + version: 0.2.4(zod@3.23.8) vue: specifier: 3.5.12 version: 3.5.12(typescript@5.3.3) @@ -868,7 +868,7 @@ importers: version: 5.4.9(@types/node@22.7.6)(sass@1.79.5)(terser@5.34.1) vite-plugin-checker: specifier: 0.6.4 - version: 0.6.4(eslint@8.57.0)(meow@13.2.0)(optionator@0.9.4)(typescript@5.3.3)(vite@5.4.9(@types/node@22.7.6)(sass@1.79.5)(terser@5.34.1))(vue-tsc@1.8.24(typescript@5.3.3)) + version: 0.6.4(eslint@8.57.0)(optionator@0.9.4)(typescript@5.3.3)(vite@5.4.9(@types/node@22.7.6)(sass@1.79.5)(terser@5.34.1))(vue-tsc@1.8.24(typescript@5.3.3)) vite-plugin-fonts: specifier: 0.7.0 version: 0.7.0(vite@5.4.9(@types/node@22.7.6)(sass@1.79.5)(terser@5.34.1)) @@ -912,8 +912,8 @@ importers: specifier: 10.0.0 version: 10.0.0 verzod: - specifier: 0.2.3 - version: 0.2.3(zod@3.23.8) + specifier: 0.2.4 + version: 0.2.4(zod@3.23.8) zod: specifier: 3.23.8 version: 3.23.8 @@ -1070,8 +1070,8 @@ importers: specifier: 0.12.5 version: 0.12.5 verzod: - specifier: 0.2.3 - version: 0.2.3(zod@3.22.4) + specifier: 0.2.4 + version: 0.2.4(zod@3.22.4) vue: specifier: 3.5.12 version: 3.5.12(typescript@4.9.5) @@ -1171,7 +1171,7 @@ importers: version: 0.14.9(@vue/compiler-sfc@3.5.12)(vue-template-compiler@2.7.16) unplugin-vue-components: specifier: 0.21.0 - version: 0.21.0(@babel/parser@7.25.7)(esbuild@0.24.0)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.80.3)(terser@5.34.1))(vue@3.5.12(typescript@4.9.5))(webpack@5.94.0(@swc/core@1.4.2)(esbuild@0.24.0)) + version: 0.21.0(@babel/parser@7.25.7)(esbuild@0.24.0)(rollup@2.79.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.80.3)(terser@5.34.1))(vue@3.5.12(typescript@4.9.5))(webpack@5.94.0(@swc/core@1.4.2)(esbuild@0.24.0)) vite: specifier: 4.5.0 version: 4.5.0(@types/node@18.18.8)(sass@1.80.3)(terser@5.34.1) @@ -1180,7 +1180,7 @@ importers: version: 1.0.11(vite@4.5.0(@types/node@18.18.8)(sass@1.80.3)(terser@5.34.1)) vite-plugin-inspect: specifier: 0.7.38 - version: 0.7.38(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.80.3)(terser@5.34.1)) + version: 0.7.38(rollup@2.79.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.80.3)(terser@5.34.1)) vite-plugin-pages: specifier: 0.26.0 version: 0.26.0(@vue/compiler-sfc@3.5.12)(vite@4.5.0(@types/node@18.18.8)(sass@1.80.3)(terser@5.34.1)) @@ -1245,8 +1245,8 @@ importers: specifier: 0.12.5 version: 0.12.5 verzod: - specifier: 0.2.3 - version: 0.2.3(zod@3.23.8) + specifier: 0.2.4 + version: 0.2.4(zod@3.23.8) vue: specifier: 3.5.12 version: 3.5.12(typescript@5.3.3) @@ -1346,7 +1346,7 @@ importers: version: 0.19.3(@vue/compiler-sfc@3.5.12)(vue-template-compiler@2.7.16)(webpack-sources@3.2.3) unplugin-vue-components: specifier: 0.27.4 - version: 0.27.4(@babel/parser@7.25.7)(rollup@3.29.4)(vue@3.5.12(typescript@5.3.3))(webpack-sources@3.2.3) + version: 0.27.4(@babel/parser@7.25.7)(rollup@4.24.0)(vue@3.5.12(typescript@5.3.3))(webpack-sources@3.2.3) vite: specifier: 5.4.9 version: 5.4.9(@types/node@22.7.6)(sass@1.80.3)(terser@5.34.1) @@ -1358,7 +1358,7 @@ importers: version: 2.0.2(vite@5.4.9(@types/node@22.7.6)(sass@1.80.3)(terser@5.34.1)) vite-plugin-inspect: specifier: 0.8.7 - version: 0.8.7(rollup@3.29.4)(vite@5.4.9(@types/node@22.7.6)(sass@1.80.3)(terser@5.34.1)) + version: 0.8.7(rollup@4.24.0)(vite@5.4.9(@types/node@22.7.6)(sass@1.80.3)(terser@5.34.1)) vite-plugin-pages: specifier: 0.32.3 version: 0.32.3(@vue/compiler-sfc@3.5.12)(vite@5.4.9(@types/node@22.7.6)(sass@1.80.3)(terser@5.34.1))(vue-router@4.4.5(vue@3.5.12(typescript@5.3.3))) @@ -1400,7 +1400,7 @@ importers: version: 0.1.0(vue@3.5.12(typescript@5.6.3)) '@intlify/unplugin-vue-i18n': specifier: 5.2.0 - version: 5.2.0(@vue/compiler-dom@3.5.12)(eslint@9.12.0(jiti@2.3.3))(rollup@3.29.4)(typescript@5.6.3)(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3))(webpack-sources@3.2.3) + version: 5.2.0(@vue/compiler-dom@3.5.12)(eslint@9.12.0(jiti@2.3.3))(rollup@4.24.0)(typescript@5.6.3)(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3))(webpack-sources@3.2.3) '@types/cors': specifier: 2.8.17 version: 2.8.17 @@ -1457,7 +1457,7 @@ importers: version: 0.19.3(@vue/compiler-sfc@3.5.12)(vue-template-compiler@2.7.16)(webpack-sources@3.2.3) unplugin-vue-components: specifier: 0.27.4 - version: 0.27.4(@babel/parser@7.25.7)(rollup@3.29.4)(vue@3.5.12(typescript@5.6.3))(webpack-sources@3.2.3) + version: 0.27.4(@babel/parser@7.25.7)(rollup@4.24.0)(vue@3.5.12(typescript@5.6.3))(webpack-sources@3.2.3) vue: specifier: 3.5.12 version: 3.5.12(typescript@5.6.3) @@ -11813,8 +11813,8 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - verzod@0.2.3: - resolution: {integrity: sha512-fARgs0c/TNNtbo83/5LjriJEb3QMwBN8Ju2+BcVdiI7Y2NOa5Yhq+CrQ8UH43h0BRXcgb2JQABjkgrRCWybEtQ==} + verzod@0.2.4: + resolution: {integrity: sha512-xli0iwB1nxtWiJTjekTuPm9DuHXU8zdu6vKG2QXT0ZYKn9HanS/azJDSvbvT5IQ5HHltoV9h2Jf4Y+dwk8Fa5Q==} engines: {node: '>=16'} peerDependencies: zod: ^3.22.0 @@ -15667,13 +15667,13 @@ snapshots: '@intlify/shared@9.3.0-beta.20': {} - '@intlify/unplugin-vue-i18n@5.2.0(@vue/compiler-dom@3.5.12)(eslint@9.12.0(jiti@2.3.3))(rollup@3.29.4)(typescript@5.6.3)(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3))(webpack-sources@3.2.3)': + '@intlify/unplugin-vue-i18n@5.2.0(@vue/compiler-dom@3.5.12)(eslint@9.12.0(jiti@2.3.3))(rollup@4.24.0)(typescript@5.6.3)(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3))(webpack-sources@3.2.3)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@2.3.3)) '@intlify/bundle-utils': 9.0.0-beta.0(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3))) '@intlify/shared': 11.0.0-rc.1 '@intlify/vue-i18n-extensions': 7.0.0(@intlify/shared@11.0.0-rc.1)(@vue/compiler-dom@3.5.12)(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3)) - '@rollup/pluginutils': 5.1.2(rollup@3.29.4) + '@rollup/pluginutils': 5.1.2(rollup@4.24.0) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) debug: 4.3.7 @@ -16027,7 +16027,7 @@ snapshots: '@microsoft/tsdoc@0.15.0': {} - '@nestjs-modules/mailer@2.0.2(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1))(nodemailer@6.9.15)(relateurl@0.2.7)(svgo@3.3.2)(terser@5.34.1)(typescript@5.5.4)': + '@nestjs-modules/mailer@2.0.2(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4)(nodemailer@6.9.15)(relateurl@0.2.7)(svgo@3.3.2)(terser@5.34.1)(typescript@5.5.4)': dependencies: '@css-inline/css-inline': 0.14.1 '@nestjs/common': 10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) @@ -16054,13 +16054,13 @@ snapshots: - typescript - uncss - '@nestjs/apollo@12.2.0(@apollo/server@4.11.0(graphql@16.9.0))(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/graphql@12.2.0(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2))(graphql@16.9.0)': + '@nestjs/apollo@12.2.0(@apollo/server@4.11.0(graphql@16.9.0))(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4)(@nestjs/graphql@12.2.0(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2))(graphql@16.9.0)': dependencies: '@apollo/server': 4.11.0(graphql@16.9.0) '@apollo/server-plugin-landing-page-graphql-playground': 4.0.0(@apollo/server@4.11.0(graphql@16.9.0)) '@nestjs/common': 10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/core': 10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nestjs/graphql': 12.2.0(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2) + '@nestjs/graphql': 12.2.0(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2) graphql: 16.9.0 iterall: 1.3.0 lodash.omit: 4.5.0 @@ -16129,7 +16129,7 @@ snapshots: transitivePeerDependencies: - encoding - '@nestjs/graphql@12.2.0(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2)': + '@nestjs/graphql@12.2.0(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2)': dependencies: '@graphql-tools/merge': 9.0.4(graphql@16.9.0) '@graphql-tools/schema': 10.0.4(graphql@16.9.0) @@ -16187,7 +16187,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@nestjs/schedule@4.1.1(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1))': + '@nestjs/schedule@4.1.1(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4)': dependencies: '@nestjs/common': 10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/core': 10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1) @@ -16216,7 +16216,7 @@ snapshots: transitivePeerDependencies: - chokidar - '@nestjs/swagger@7.4.2(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)': + '@nestjs/swagger@7.4.2(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)': dependencies: '@microsoft/tsdoc': 0.15.0 '@nestjs/common': 10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) @@ -16231,7 +16231,7 @@ snapshots: class-transformer: 0.5.1 class-validator: 0.14.1 - '@nestjs/terminus@10.2.3(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@prisma/client@5.20.0(prisma@5.20.0))(reflect-metadata@0.2.2)(rxjs@7.8.1)': + '@nestjs/terminus@10.2.3(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4)(@prisma/client@5.20.0(prisma@5.20.0))(reflect-metadata@0.2.2)(rxjs@7.8.1)': dependencies: '@nestjs/common': 10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/core': 10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1) @@ -16242,7 +16242,7 @@ snapshots: optionalDependencies: '@prisma/client': 5.20.0(prisma@5.20.0) - '@nestjs/testing@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4))': + '@nestjs/testing@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4)(@nestjs/platform-express@10.4.4)': dependencies: '@nestjs/common': 10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/core': 10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1) @@ -16250,7 +16250,7 @@ snapshots: optionalDependencies: '@nestjs/platform-express': 10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4) - '@nestjs/throttler@6.2.1(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1))(reflect-metadata@0.2.2)': + '@nestjs/throttler@6.2.1(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4)(reflect-metadata@0.2.2)': dependencies: '@nestjs/common': 10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/core': 10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1) @@ -25732,7 +25732,7 @@ snapshots: - supports-color - webpack-sources - unplugin-vue-components@0.21.0(@babel/parser@7.25.7)(esbuild@0.24.0)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.80.3)(terser@5.34.1))(vue@3.5.12(typescript@4.9.5))(webpack@5.94.0(@swc/core@1.4.2)(esbuild@0.24.0)): + unplugin-vue-components@0.21.0(@babel/parser@7.25.7)(esbuild@0.24.0)(rollup@2.79.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.80.3)(terser@5.34.1))(vue@3.5.12(typescript@4.9.5))(webpack@5.94.0(@swc/core@1.4.2)(esbuild@0.24.0)): dependencies: '@antfu/utils': 0.5.2 '@rollup/pluginutils': 4.2.1 @@ -25743,7 +25743,7 @@ snapshots: magic-string: 0.26.7 minimatch: 5.1.6 resolve: 1.22.8 - unplugin: 0.7.2(esbuild@0.24.0)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.80.3)(terser@5.34.1))(webpack@5.94.0(@swc/core@1.4.2)(esbuild@0.24.0)) + unplugin: 0.7.2(esbuild@0.24.0)(rollup@2.79.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.80.3)(terser@5.34.1))(webpack@5.94.0(@swc/core@1.4.2)(esbuild@0.24.0)) vue: 3.5.12(typescript@4.9.5) optionalDependencies: '@babel/parser': 7.25.7 @@ -25754,46 +25754,6 @@ snapshots: - vite - webpack - unplugin-vue-components@0.27.4(@babel/parser@7.25.7)(rollup@3.29.4)(vue@3.5.12(typescript@5.3.3))(webpack-sources@3.2.3): - dependencies: - '@antfu/utils': 0.7.10 - '@rollup/pluginutils': 5.1.2(rollup@3.29.4) - chokidar: 3.6.0 - debug: 4.3.7 - fast-glob: 3.3.2 - local-pkg: 0.5.0 - magic-string: 0.30.11 - minimatch: 9.0.5 - mlly: 1.7.2 - unplugin: 1.14.1(webpack-sources@3.2.3) - vue: 3.5.12(typescript@5.3.3) - optionalDependencies: - '@babel/parser': 7.25.7 - transitivePeerDependencies: - - rollup - - supports-color - - webpack-sources - - unplugin-vue-components@0.27.4(@babel/parser@7.25.7)(rollup@3.29.4)(vue@3.5.12(typescript@5.6.3))(webpack-sources@3.2.3): - dependencies: - '@antfu/utils': 0.7.10 - '@rollup/pluginutils': 5.1.2(rollup@3.29.4) - chokidar: 3.6.0 - debug: 4.3.7 - fast-glob: 3.3.2 - local-pkg: 0.5.0 - magic-string: 0.30.11 - minimatch: 9.0.5 - mlly: 1.7.2 - unplugin: 1.14.1(webpack-sources@3.2.3) - vue: 3.5.12(typescript@5.6.3) - optionalDependencies: - '@babel/parser': 7.25.7 - transitivePeerDependencies: - - rollup - - supports-color - - webpack-sources - unplugin-vue-components@0.27.4(@babel/parser@7.25.7)(rollup@4.24.0)(vue@3.5.12(typescript@5.3.3))(webpack-sources@3.2.3): dependencies: '@antfu/utils': 0.7.10 @@ -25814,7 +25774,27 @@ snapshots: - supports-color - webpack-sources - unplugin@0.7.2(esbuild@0.24.0)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.80.3)(terser@5.34.1))(webpack@5.94.0(@swc/core@1.4.2)(esbuild@0.24.0)): + unplugin-vue-components@0.27.4(@babel/parser@7.25.7)(rollup@4.24.0)(vue@3.5.12(typescript@5.6.3))(webpack-sources@3.2.3): + dependencies: + '@antfu/utils': 0.7.10 + '@rollup/pluginutils': 5.1.2(rollup@4.24.0) + chokidar: 3.6.0 + debug: 4.3.7 + fast-glob: 3.3.2 + local-pkg: 0.5.0 + magic-string: 0.30.11 + minimatch: 9.0.5 + mlly: 1.7.2 + unplugin: 1.14.1(webpack-sources@3.2.3) + vue: 3.5.12(typescript@5.6.3) + optionalDependencies: + '@babel/parser': 7.25.7 + transitivePeerDependencies: + - rollup + - supports-color + - webpack-sources + + unplugin@0.7.2(esbuild@0.24.0)(rollup@2.79.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.80.3)(terser@5.34.1))(webpack@5.94.0(@swc/core@1.4.2)(esbuild@0.24.0)): dependencies: acorn: 8.12.1 chokidar: 3.6.0 @@ -25822,7 +25802,7 @@ snapshots: webpack-virtual-modules: 0.4.6 optionalDependencies: esbuild: 0.24.0 - rollup: 3.29.4 + rollup: 2.79.2 vite: 4.5.0(@types/node@18.18.8)(sass@1.80.3)(terser@5.34.1) webpack: 5.94.0(@swc/core@1.4.2)(esbuild@0.24.0) @@ -25926,11 +25906,11 @@ snapshots: vary@1.1.2: {} - verzod@0.2.3(zod@3.22.4): + verzod@0.2.4(zod@3.22.4): dependencies: zod: 3.22.4 - verzod@0.2.3(zod@3.23.8): + verzod@0.2.4(zod@3.23.8): dependencies: zod: 3.23.8 @@ -25985,7 +25965,7 @@ snapshots: - supports-color - terser - vite-plugin-checker@0.6.4(eslint@8.57.0)(meow@13.2.0)(optionator@0.9.4)(typescript@5.3.3)(vite@5.4.9(@types/node@22.7.6)(sass@1.79.5)(terser@5.34.1))(vue-tsc@1.8.24(typescript@5.3.3)): + vite-plugin-checker@0.6.4(eslint@8.57.0)(optionator@0.9.4)(typescript@5.3.3)(vite@5.4.9(@types/node@22.7.6)(sass@1.79.5)(terser@5.34.1))(vue-tsc@1.8.24(typescript@5.3.3)): dependencies: '@babel/code-frame': 7.25.7 ansi-escapes: 4.3.2 @@ -26005,7 +25985,6 @@ snapshots: vscode-uri: 3.0.8 optionalDependencies: eslint: 8.57.0 - meow: 13.2.0 optionator: 0.9.4 typescript: 5.3.3 vue-tsc: 1.8.24(typescript@5.3.3) @@ -26064,10 +26043,10 @@ snapshots: dependencies: vite: 5.4.9(@types/node@22.7.6)(sass@1.80.3)(terser@5.34.1) - vite-plugin-inspect@0.7.38(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.80.3)(terser@5.34.1)): + vite-plugin-inspect@0.7.38(rollup@2.79.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.80.3)(terser@5.34.1)): dependencies: '@antfu/utils': 0.7.10 - '@rollup/pluginutils': 5.1.2(rollup@3.29.4) + '@rollup/pluginutils': 5.1.2(rollup@2.79.2) debug: 4.3.7 error-stack-parser-es: 0.1.5 fs-extra: 11.2.0 @@ -26079,10 +26058,10 @@ snapshots: - rollup - supports-color - vite-plugin-inspect@0.8.7(rollup@3.29.4)(vite@5.4.9(@types/node@22.7.6)(sass@1.80.3)(terser@5.34.1)): + vite-plugin-inspect@0.8.7(rollup@4.24.0)(vite@5.4.9(@types/node@22.7.6)(sass@1.80.3)(terser@5.34.1)): dependencies: '@antfu/utils': 0.7.10 - '@rollup/pluginutils': 5.1.2(rollup@3.29.4) + '@rollup/pluginutils': 5.1.2(rollup@4.24.0) debug: 4.3.7 error-stack-parser-es: 0.1.5 fs-extra: 11.2.0