diff --git a/Core/Client/bun.lock b/Core/Client/bun.lock index 901106f..695db8b 100644 --- a/Core/Client/bun.lock +++ b/Core/Client/bun.lock @@ -16,6 +16,7 @@ "axios": "^1.19.0", "graphql": "16.14.2", "pinia": "^4.0.2", + "qr-scanner": "^1.4.2", "tailwind-material-3": "^3.0.5", "tailwind-merge": "^3.6.0", "tailwindcss": "^4.3.3", @@ -448,6 +449,8 @@ "@types/node": ["@types/node@26.1.2", "", { "dependencies": { "undici-types": "~8.3.0" } }, "sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg=="], + "@types/offscreencanvas": ["@types/offscreencanvas@2019.7.3", "", {}, "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A=="], + "@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], "@types/ws": ["@types/ws@8.18.1", "", { "dependencies": { "@types/node": "*" } }, "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg=="], @@ -1074,6 +1077,8 @@ "punycode.js": ["punycode.js@2.3.1", "", {}, "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA=="], + "qr-scanner": ["qr-scanner@1.4.2", "", { "dependencies": { "@types/offscreencanvas": "^2019.6.4" } }, "sha512-kV1yQUe2FENvn59tMZW6mOVfpq9mGxGf8l6+EGaXUOd4RBOLg7tRC83OrirM5AtDvZRpdjdlXURsHreAOSPOUw=="], + "quansync": ["quansync@0.2.11", "", {}, "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA=="], "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], diff --git a/Core/Client/orval.config.ts b/Core/Client/orval.config.ts index 68bad7a..cf713ba 100644 --- a/Core/Client/orval.config.ts +++ b/Core/Client/orval.config.ts @@ -8,6 +8,12 @@ export default defineConfig({ target: './src/data/apiClient.ts', schemas: './src/types/api', client: 'vue-query', + override: { + mutator: { + path: './src/data/customFetch.ts', + name: 'customFetch', + }, + }, } } }); \ No newline at end of file diff --git a/Core/Client/package-lock.json b/Core/Client/package-lock.json index 28a4aef..13af402 100644 --- a/Core/Client/package-lock.json +++ b/Core/Client/package-lock.json @@ -19,6 +19,7 @@ "axios": "^1.19.0", "graphql": "16.14.2", "pinia": "^4.0.2", + "qr-scanner": "^1.4.2", "tailwind-material-3": "^3.0.5", "tailwind-merge": "^3.6.0", "tailwindcss": "^4.3.3", @@ -4008,6 +4009,12 @@ "undici-types": "~8.3.0" } }, + "node_modules/@types/offscreencanvas": { + "version": "2019.7.3", + "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz", + "integrity": "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==", + "license": "MIT" + }, "node_modules/@types/unist": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", @@ -8747,6 +8754,15 @@ "node": ">=6" } }, + "node_modules/qr-scanner": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/qr-scanner/-/qr-scanner-1.4.2.tgz", + "integrity": "sha512-kV1yQUe2FENvn59tMZW6mOVfpq9mGxGf8l6+EGaXUOd4RBOLg7tRC83OrirM5AtDvZRpdjdlXURsHreAOSPOUw==", + "license": "MIT", + "dependencies": { + "@types/offscreencanvas": "^2019.6.4" + } + }, "node_modules/quansync": { "version": "0.2.11", "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", diff --git a/Core/Client/package.json b/Core/Client/package.json index d1e3075..6abde9a 100644 --- a/Core/Client/package.json +++ b/Core/Client/package.json @@ -10,7 +10,8 @@ "build-only": "vite build", "type-check": "vue-tsc --build --force", "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore", - "codegen": "cross-env graphql-codegen" + "codegen": "cross-env graphql-codegen", + "api-codegen": "orval" }, "dependencies": { "@apollo/client": "^3.14.1", @@ -24,6 +25,7 @@ "axios": "^1.19.0", "graphql": "16.14.2", "pinia": "^4.0.2", + "qr-scanner": "^1.4.2", "tailwind-material-3": "^3.0.5", "tailwind-merge": "^3.6.0", "tailwindcss": "^4.3.3", diff --git a/Core/Client/src/data/apiClient.ts b/Core/Client/src/data/apiClient.ts index 099a364..6f8b6a5 100644 --- a/Core/Client/src/data/apiClient.ts +++ b/Core/Client/src/data/apiClient.ts @@ -21,6 +21,7 @@ import type { } from '@tanstack/vue-query'; import { + computed, toValue, unref } from 'vue'; @@ -30,6 +31,7 @@ import type { import type { AccessTokenResponse, + ApproveSessionResponse, CardDto, Claim, ForgotPasswordRequest, @@ -38,6 +40,8 @@ import type { InfoResponse, LoginRequest, MapIdentityApiApiAuthConfirmEmailParams, + PinResponse, + PluginUiManifestResponse, PostApiAuthLoginParams, PostEamuseMParams, PostEamuseParams, @@ -47,10 +51,107 @@ import type { ResetPasswordRequest, TwoFactorRequest, TwoFactorResponse, + UpdatePinRequest, + UpdateUsernameRequest, ValidateCardRequest, ValidateCardResponse } from '../types/api'; +import { customFetch } from './customFetch'; +type SecondParameter unknown> = Parameters[1]; + + + +export type getPluginAssetsPluginUiIdFilePathResponse200 = { + data: void + status: 200 +} + +export type getPluginAssetsPluginUiIdFilePathResponseSuccess = (getPluginAssetsPluginUiIdFilePathResponse200) & { + headers: Headers; +}; +; + +export type getPluginAssetsPluginUiIdFilePathResponse = (getPluginAssetsPluginUiIdFilePathResponseSuccess) + +export const getGetPluginAssetsPluginUiIdFilePathUrl = (pluginUiId: string, + filePath: string,) => { + + + + + return `/pluginAssets/${pluginUiId}/${filePath}` +} + +export const getPluginAssetsPluginUiIdFilePath = async (pluginUiId: string, + filePath: string, options?: Parameters[1]): Promise => { + + return customFetch(getGetPluginAssetsPluginUiIdFilePathUrl(pluginUiId,filePath), + { + ...options, + method: 'GET' + + + } +);} + + + + + +export const getGetPluginAssetsPluginUiIdFilePathQueryKey = (pluginUiId: MaybeRefOrGetter, + filePath: MaybeRefOrGetter,) => { + return [ + 'pluginAssets',pluginUiId,filePath + ] as const; + } + + +export const getGetPluginAssetsPluginUiIdFilePathQueryOptions = >, TError = unknown>(pluginUiId: MaybeRefOrGetter, + filePath: MaybeRefOrGetter, options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} +) => { + +const {query: queryOptions, request: requestOptions} = options ?? {}; + + const queryKey = getGetPluginAssetsPluginUiIdFilePathQueryKey(pluginUiId,filePath); + + + + const queryFn: QueryFunction>> = ({ signal }) => getPluginAssetsPluginUiIdFilePath(toValue(pluginUiId),toValue(filePath), { signal, ...requestOptions }); + + + + + + return { queryKey, queryFn, enabled: computed(() => toValue(pluginUiId) !== null && toValue(pluginUiId) !== undefined && toValue(filePath) !== null && toValue(filePath) !== undefined), ...queryOptions} as UseQueryOptions>, TError, TData> +} + +export type GetPluginAssetsPluginUiIdFilePathQueryResult = NonNullable>> +export type GetPluginAssetsPluginUiIdFilePathQueryError = unknown + + + +export function useGetPluginAssetsPluginUiIdFilePath>, TError = unknown>( + pluginUiId: MaybeRefOrGetter, + filePath: MaybeRefOrGetter, options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} + , queryClient?: QueryClient + ): UseQueryReturnType & { queryKey: DataTag } { + + const queryOptions = getGetPluginAssetsPluginUiIdFilePathQueryOptions(pluginUiId,filePath,options) + + const query = useQuery(queryOptions, queryClient) as UseQueryReturnType & { queryKey: DataTag }; + + query.queryKey = unref(queryOptions).queryKey as DataTag; + + return query; +} + + + + + + + export type postApiCardsValidateResponse200 = { data: ValidateCardResponse status: 200 @@ -71,38 +172,31 @@ export const getPostApiCardsValidateUrl = () => { return `/api/cards/validate` } -export const postApiCardsValidate = async (validateCardRequest: ValidateCardRequest, options?: RequestInit): Promise => { +export const postApiCardsValidate = async (validateCardRequest: ValidateCardRequest, options?: Parameters[1]): Promise => { - const res = await fetch(getPostApiCardsValidateUrl(), + return customFetch(getPostApiCardsValidateUrl(), { ...options, method: 'POST', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify(validateCardRequest) } -) - - - const body = [204, 205, 304].includes(res.status) ? null : await res.text(); - - const data: postApiCardsValidateResponse['data'] = body ? JSON.parse(body) : {} - return { data, status: res.status, headers: res.headers } as postApiCardsValidateResponse -} +);} export const getPostApiCardsValidateMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: ValidateCardRequest}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: ValidateCardRequest}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{data: ValidateCardRequest}, TContext> => { const mutationKey = ['postApiCardsValidate']; -const {mutation: mutationOptions, fetch: fetchOptions} = options ? +const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} - : {mutation: { mutationKey, }, fetch: undefined}; + : {mutation: { mutationKey, }, request: undefined}; @@ -110,7 +204,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? const mutationFn: MutationFunction>, {data: ValidateCardRequest}> = (props) => { const {data} = props ?? {}; - return postApiCardsValidate(data,fetchOptions) + return postApiCardsValidate(data,requestOptions) } @@ -125,7 +219,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? export type PostApiCardsValidateMutationError = unknown export const usePostApiCardsValidate = (options?: { mutation?:UseMutationOptions>, TError,{data: ValidateCardRequest}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: ValidateCardRequest}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationReturnType< Awaited>, TError, @@ -155,23 +249,16 @@ export const getGetApiCardsMyUrl = () => { return `/api/cards/my` } -export const getApiCardsMy = async ( options?: RequestInit): Promise => { +export const getApiCardsMy = async ( options?: Parameters[1]): Promise => { - const res = await fetch(getGetApiCardsMyUrl(), + return customFetch(getGetApiCardsMyUrl(), { ...options, method: 'GET' } -) - - - const body = [204, 205, 304].includes(res.status) ? null : await res.text(); - - const data: getApiCardsMyResponse['data'] = body ? JSON.parse(body) : {} - return { data, status: res.status, headers: res.headers } as getApiCardsMyResponse -} +);} @@ -184,16 +271,16 @@ export const getGetApiCardsMyQueryKey = () => { } -export const getGetApiCardsMyQueryOptions = >, TError = unknown>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} +export const getGetApiCardsMyQueryOptions = >, TError = unknown>( options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} ) => { -const {query: queryOptions, fetch: fetchOptions} = options ?? {}; +const {query: queryOptions, request: requestOptions} = options ?? {}; const queryKey = getGetApiCardsMyQueryKey(); - const queryFn: QueryFunction>> = ({ signal }) => getApiCardsMy({ signal, ...fetchOptions }); + const queryFn: QueryFunction>> = ({ signal }) => getApiCardsMy({ signal, ...requestOptions }); @@ -208,7 +295,7 @@ export type GetApiCardsMyQueryError = unknown export function useGetApiCardsMy>, TError = unknown>( - options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} + options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} , queryClient?: QueryClient ): UseQueryReturnType & { queryKey: DataTag } { @@ -247,23 +334,16 @@ export const getGetApiUserClaimsUrl = () => { return `/api/user/claims` } -export const getApiUserClaims = async ( options?: RequestInit): Promise => { +export const getApiUserClaims = async ( options?: Parameters[1]): Promise => { - const res = await fetch(getGetApiUserClaimsUrl(), + return customFetch(getGetApiUserClaimsUrl(), { ...options, method: 'GET' } -) - - - const body = [204, 205, 304].includes(res.status) ? null : await res.text(); - - const data: getApiUserClaimsResponse['data'] = body ? JSON.parse(body) : {} - return { data, status: res.status, headers: res.headers } as getApiUserClaimsResponse -} +);} @@ -276,16 +356,16 @@ export const getGetApiUserClaimsQueryKey = () => { } -export const getGetApiUserClaimsQueryOptions = >, TError = unknown>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} +export const getGetApiUserClaimsQueryOptions = >, TError = unknown>( options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} ) => { -const {query: queryOptions, fetch: fetchOptions} = options ?? {}; +const {query: queryOptions, request: requestOptions} = options ?? {}; const queryKey = getGetApiUserClaimsQueryKey(); - const queryFn: QueryFunction>> = ({ signal }) => getApiUserClaims({ signal, ...fetchOptions }); + const queryFn: QueryFunction>> = ({ signal }) => getApiUserClaims({ signal, ...requestOptions }); @@ -300,7 +380,7 @@ export type GetApiUserClaimsQueryError = unknown export function useGetApiUserClaims>, TError = unknown>( - options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} + options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} , queryClient?: QueryClient ): UseQueryReturnType & { queryKey: DataTag } { @@ -319,6 +399,95 @@ export function useGetApiUserClaims { + + + + + return `/api/cardless/${token}/approve` +} + +export const postApiCardlessTokenApprove = async (token: string, options?: Parameters[1]): Promise => { + + return customFetch(getPostApiCardlessTokenApproveUrl(token), + { + ...options, + method: 'POST' + + + } +);} + + + + + +export const getPostApiCardlessTokenApproveMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{token: string}, TContext>, request?: SecondParameter} +): UseMutationOptions>, TError,{token: string}, TContext> => { + +const mutationKey = ['postApiCardlessTokenApprove']; +const {mutation: mutationOptions, request: requestOptions} = options ? + options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? + options + : {...options, mutation: {...options.mutation, mutationKey}} + : {mutation: { mutationKey, }, request: undefined}; + + + + + const mutationFn: MutationFunction>, {token: string}> = (props) => { + const {token} = props ?? {}; + + return postApiCardlessTokenApprove(token,requestOptions) + } + + + + + + + return { mutationFn, ...mutationOptions }} + + export type PostApiCardlessTokenApproveMutationResult = NonNullable>> + + export type PostApiCardlessTokenApproveMutationError = ApproveSessionResponse + + export const usePostApiCardlessTokenApprove = (options?: { mutation?:UseMutationOptions>, TError,{token: string}, TContext>, request?: SecondParameter} + , queryClient?: QueryClient): UseMutationReturnType< + Awaited>, + TError, + {token: string}, + TContext + > => { + return useMutation(getPostApiCardlessTokenApproveMutationOptions(options), queryClient); + } + export type postApiAuthRegisterResponse200 = { data: void status: 200 @@ -346,38 +515,31 @@ export const getPostApiAuthRegisterUrl = () => { return `/api/auth/register` } -export const postApiAuthRegister = async (registerRequest: RegisterRequest, options?: RequestInit): Promise => { +export const postApiAuthRegister = async (registerRequest: RegisterRequest, options?: Parameters[1]): Promise => { - const res = await fetch(getPostApiAuthRegisterUrl(), + return customFetch(getPostApiAuthRegisterUrl(), { ...options, method: 'POST', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify(registerRequest) } -) - - - const body = [204, 205, 304].includes(res.status) ? null : await res.text(); - - const data: postApiAuthRegisterResponse['data'] = body ? JSON.parse(body) : undefined - return { data, status: res.status, headers: res.headers } as postApiAuthRegisterResponse -} +);} export const getPostApiAuthRegisterMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: RegisterRequest}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: RegisterRequest}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{data: RegisterRequest}, TContext> => { const mutationKey = ['postApiAuthRegister']; -const {mutation: mutationOptions, fetch: fetchOptions} = options ? +const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} - : {mutation: { mutationKey, }, fetch: undefined}; + : {mutation: { mutationKey, }, request: undefined}; @@ -385,7 +547,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? const mutationFn: MutationFunction>, {data: RegisterRequest}> = (props) => { const {data} = props ?? {}; - return postApiAuthRegister(data,fetchOptions) + return postApiAuthRegister(data,requestOptions) } @@ -400,7 +562,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? export type PostApiAuthRegisterMutationError = HttpValidationProblemDetails export const usePostApiAuthRegister = (options?: { mutation?:UseMutationOptions>, TError,{data: RegisterRequest}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: RegisterRequest}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationReturnType< Awaited>, TError, @@ -438,38 +600,31 @@ export const getPostApiAuthLoginUrl = (params?: PostApiAuthLoginParams,) => { } export const postApiAuthLogin = async (loginRequest: LoginRequest, - params?: PostApiAuthLoginParams, options?: RequestInit): Promise => { + params?: PostApiAuthLoginParams, options?: Parameters[1]): Promise => { - const res = await fetch(getPostApiAuthLoginUrl(params), + return customFetch(getPostApiAuthLoginUrl(params), { ...options, method: 'POST', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify(loginRequest) } -) - - - const body = [204, 205, 304].includes(res.status) ? null : await res.text(); - - const data: postApiAuthLoginResponse['data'] = body ? JSON.parse(body) : {} - return { data, status: res.status, headers: res.headers } as postApiAuthLoginResponse -} +);} export const getPostApiAuthLoginMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: LoginRequest;params?: PostApiAuthLoginParams}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: LoginRequest;params?: PostApiAuthLoginParams}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{data: LoginRequest;params?: PostApiAuthLoginParams}, TContext> => { const mutationKey = ['postApiAuthLogin']; -const {mutation: mutationOptions, fetch: fetchOptions} = options ? +const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} - : {mutation: { mutationKey, }, fetch: undefined}; + : {mutation: { mutationKey, }, request: undefined}; @@ -477,7 +632,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? const mutationFn: MutationFunction>, {data: LoginRequest;params?: PostApiAuthLoginParams}> = (props) => { const {data,params} = props ?? {}; - return postApiAuthLogin(data,params,fetchOptions) + return postApiAuthLogin(data,params,requestOptions) } @@ -492,7 +647,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? export type PostApiAuthLoginMutationError = unknown export const usePostApiAuthLogin = (options?: { mutation?:UseMutationOptions>, TError,{data: LoginRequest;params?: PostApiAuthLoginParams}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: LoginRequest;params?: PostApiAuthLoginParams}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationReturnType< Awaited>, TError, @@ -522,38 +677,31 @@ export const getPostApiAuthRefreshUrl = () => { return `/api/auth/refresh` } -export const postApiAuthRefresh = async (refreshRequest: RefreshRequest, options?: RequestInit): Promise => { +export const postApiAuthRefresh = async (refreshRequest: RefreshRequest, options?: Parameters[1]): Promise => { - const res = await fetch(getPostApiAuthRefreshUrl(), + return customFetch(getPostApiAuthRefreshUrl(), { ...options, method: 'POST', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify(refreshRequest) } -) - - - const body = [204, 205, 304].includes(res.status) ? null : await res.text(); - - const data: postApiAuthRefreshResponse['data'] = body ? JSON.parse(body) : {} - return { data, status: res.status, headers: res.headers } as postApiAuthRefreshResponse -} +);} export const getPostApiAuthRefreshMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: RefreshRequest}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: RefreshRequest}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{data: RefreshRequest}, TContext> => { const mutationKey = ['postApiAuthRefresh']; -const {mutation: mutationOptions, fetch: fetchOptions} = options ? +const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} - : {mutation: { mutationKey, }, fetch: undefined}; + : {mutation: { mutationKey, }, request: undefined}; @@ -561,7 +709,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? const mutationFn: MutationFunction>, {data: RefreshRequest}> = (props) => { const {data} = props ?? {}; - return postApiAuthRefresh(data,fetchOptions) + return postApiAuthRefresh(data,requestOptions) } @@ -576,7 +724,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? export type PostApiAuthRefreshMutationError = unknown export const usePostApiAuthRefresh = (options?: { mutation?:UseMutationOptions>, TError,{data: RefreshRequest}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: RefreshRequest}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationReturnType< Awaited>, TError, @@ -613,23 +761,16 @@ export const getMapIdentityApiApiAuthConfirmEmailUrl = (params: MapIdentityApiAp return stringifiedParams.length > 0 ? `/api/auth/confirmEmail?${stringifiedParams}` : `/api/auth/confirmEmail` } -export const mapIdentityApiApiAuthConfirmEmail = async (params: MapIdentityApiApiAuthConfirmEmailParams, options?: RequestInit): Promise => { +export const mapIdentityApiApiAuthConfirmEmail = async (params: MapIdentityApiApiAuthConfirmEmailParams, options?: Parameters[1]): Promise => { - const res = await fetch(getMapIdentityApiApiAuthConfirmEmailUrl(params), + return customFetch(getMapIdentityApiApiAuthConfirmEmailUrl(params), { ...options, method: 'GET' } -) - - - const body = [204, 205, 304].includes(res.status) ? null : await res.text(); - - const data: mapIdentityApiApiAuthConfirmEmailResponse['data'] = body ? JSON.parse(body) : undefined - return { data, status: res.status, headers: res.headers } as mapIdentityApiApiAuthConfirmEmailResponse -} +);} @@ -642,16 +783,16 @@ export const getMapIdentityApiApiAuthConfirmEmailQueryKey = (params?: MaybeRefOr } -export const getMapIdentityApiApiAuthConfirmEmailQueryOptions = >, TError = unknown>(params: MaybeRefOrGetter, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} +export const getMapIdentityApiApiAuthConfirmEmailQueryOptions = >, TError = unknown>(params: MaybeRefOrGetter, options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} ) => { -const {query: queryOptions, fetch: fetchOptions} = options ?? {}; +const {query: queryOptions, request: requestOptions} = options ?? {}; const queryKey = getMapIdentityApiApiAuthConfirmEmailQueryKey(params); - const queryFn: QueryFunction>> = ({ signal }) => mapIdentityApiApiAuthConfirmEmail(toValue(params), { signal, ...fetchOptions }); + const queryFn: QueryFunction>> = ({ signal }) => mapIdentityApiApiAuthConfirmEmail(toValue(params), { signal, ...requestOptions }); @@ -666,7 +807,7 @@ export type MapIdentityApiApiAuthConfirmEmailQueryError = unknown export function useMapIdentityApiApiAuthConfirmEmail>, TError = unknown>( - params: MaybeRefOrGetter, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} + params: MaybeRefOrGetter, options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} , queryClient?: QueryClient ): UseQueryReturnType & { queryKey: DataTag } { @@ -705,38 +846,31 @@ export const getPostApiAuthResendConfirmationEmailUrl = () => { return `/api/auth/resendConfirmationEmail` } -export const postApiAuthResendConfirmationEmail = async (resendConfirmationEmailRequest: ResendConfirmationEmailRequest, options?: RequestInit): Promise => { +export const postApiAuthResendConfirmationEmail = async (resendConfirmationEmailRequest: ResendConfirmationEmailRequest, options?: Parameters[1]): Promise => { - const res = await fetch(getPostApiAuthResendConfirmationEmailUrl(), + return customFetch(getPostApiAuthResendConfirmationEmailUrl(), { ...options, method: 'POST', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify(resendConfirmationEmailRequest) } -) - - - const body = [204, 205, 304].includes(res.status) ? null : await res.text(); - - const data: postApiAuthResendConfirmationEmailResponse['data'] = body ? JSON.parse(body) : undefined - return { data, status: res.status, headers: res.headers } as postApiAuthResendConfirmationEmailResponse -} +);} export const getPostApiAuthResendConfirmationEmailMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: ResendConfirmationEmailRequest}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: ResendConfirmationEmailRequest}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{data: ResendConfirmationEmailRequest}, TContext> => { const mutationKey = ['postApiAuthResendConfirmationEmail']; -const {mutation: mutationOptions, fetch: fetchOptions} = options ? +const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} - : {mutation: { mutationKey, }, fetch: undefined}; + : {mutation: { mutationKey, }, request: undefined}; @@ -744,7 +878,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? const mutationFn: MutationFunction>, {data: ResendConfirmationEmailRequest}> = (props) => { const {data} = props ?? {}; - return postApiAuthResendConfirmationEmail(data,fetchOptions) + return postApiAuthResendConfirmationEmail(data,requestOptions) } @@ -759,7 +893,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? export type PostApiAuthResendConfirmationEmailMutationError = unknown export const usePostApiAuthResendConfirmationEmail = (options?: { mutation?:UseMutationOptions>, TError,{data: ResendConfirmationEmailRequest}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: ResendConfirmationEmailRequest}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationReturnType< Awaited>, TError, @@ -796,38 +930,31 @@ export const getPostApiAuthForgotPasswordUrl = () => { return `/api/auth/forgotPassword` } -export const postApiAuthForgotPassword = async (forgotPasswordRequest: ForgotPasswordRequest, options?: RequestInit): Promise => { +export const postApiAuthForgotPassword = async (forgotPasswordRequest: ForgotPasswordRequest, options?: Parameters[1]): Promise => { - const res = await fetch(getPostApiAuthForgotPasswordUrl(), + return customFetch(getPostApiAuthForgotPasswordUrl(), { ...options, method: 'POST', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify(forgotPasswordRequest) } -) - - - const body = [204, 205, 304].includes(res.status) ? null : await res.text(); - - const data: postApiAuthForgotPasswordResponse['data'] = body ? JSON.parse(body) : undefined - return { data, status: res.status, headers: res.headers } as postApiAuthForgotPasswordResponse -} +);} export const getPostApiAuthForgotPasswordMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: ForgotPasswordRequest}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: ForgotPasswordRequest}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{data: ForgotPasswordRequest}, TContext> => { const mutationKey = ['postApiAuthForgotPassword']; -const {mutation: mutationOptions, fetch: fetchOptions} = options ? +const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} - : {mutation: { mutationKey, }, fetch: undefined}; + : {mutation: { mutationKey, }, request: undefined}; @@ -835,7 +962,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? const mutationFn: MutationFunction>, {data: ForgotPasswordRequest}> = (props) => { const {data} = props ?? {}; - return postApiAuthForgotPassword(data,fetchOptions) + return postApiAuthForgotPassword(data,requestOptions) } @@ -850,7 +977,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? export type PostApiAuthForgotPasswordMutationError = HttpValidationProblemDetails export const usePostApiAuthForgotPassword = (options?: { mutation?:UseMutationOptions>, TError,{data: ForgotPasswordRequest}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: ForgotPasswordRequest}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationReturnType< Awaited>, TError, @@ -887,38 +1014,31 @@ export const getPostApiAuthResetPasswordUrl = () => { return `/api/auth/resetPassword` } -export const postApiAuthResetPassword = async (resetPasswordRequest: ResetPasswordRequest, options?: RequestInit): Promise => { +export const postApiAuthResetPassword = async (resetPasswordRequest: ResetPasswordRequest, options?: Parameters[1]): Promise => { - const res = await fetch(getPostApiAuthResetPasswordUrl(), + return customFetch(getPostApiAuthResetPasswordUrl(), { ...options, method: 'POST', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify(resetPasswordRequest) } -) - - - const body = [204, 205, 304].includes(res.status) ? null : await res.text(); - - const data: postApiAuthResetPasswordResponse['data'] = body ? JSON.parse(body) : undefined - return { data, status: res.status, headers: res.headers } as postApiAuthResetPasswordResponse -} +);} export const getPostApiAuthResetPasswordMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: ResetPasswordRequest}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: ResetPasswordRequest}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{data: ResetPasswordRequest}, TContext> => { const mutationKey = ['postApiAuthResetPassword']; -const {mutation: mutationOptions, fetch: fetchOptions} = options ? +const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} - : {mutation: { mutationKey, }, fetch: undefined}; + : {mutation: { mutationKey, }, request: undefined}; @@ -926,7 +1046,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? const mutationFn: MutationFunction>, {data: ResetPasswordRequest}> = (props) => { const {data} = props ?? {}; - return postApiAuthResetPassword(data,fetchOptions) + return postApiAuthResetPassword(data,requestOptions) } @@ -941,7 +1061,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? export type PostApiAuthResetPasswordMutationError = HttpValidationProblemDetails export const usePostApiAuthResetPassword = (options?: { mutation?:UseMutationOptions>, TError,{data: ResetPasswordRequest}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: ResetPasswordRequest}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationReturnType< Awaited>, TError, @@ -983,38 +1103,31 @@ export const getPostApiAuthManage2faUrl = () => { return `/api/auth/manage/2fa` } -export const postApiAuthManage2fa = async (twoFactorRequest: TwoFactorRequest, options?: RequestInit): Promise => { +export const postApiAuthManage2fa = async (twoFactorRequest: TwoFactorRequest, options?: Parameters[1]): Promise => { - const res = await fetch(getPostApiAuthManage2faUrl(), + return customFetch(getPostApiAuthManage2faUrl(), { ...options, method: 'POST', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify(twoFactorRequest) } -) - - - const body = [204, 205, 304].includes(res.status) ? null : await res.text(); - - const data: postApiAuthManage2faResponse['data'] = body ? JSON.parse(body) : {} - return { data, status: res.status, headers: res.headers } as postApiAuthManage2faResponse -} +);} export const getPostApiAuthManage2faMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: TwoFactorRequest}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: TwoFactorRequest}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{data: TwoFactorRequest}, TContext> => { const mutationKey = ['postApiAuthManage2fa']; -const {mutation: mutationOptions, fetch: fetchOptions} = options ? +const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} - : {mutation: { mutationKey, }, fetch: undefined}; + : {mutation: { mutationKey, }, request: undefined}; @@ -1022,7 +1135,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? const mutationFn: MutationFunction>, {data: TwoFactorRequest}> = (props) => { const {data} = props ?? {}; - return postApiAuthManage2fa(data,fetchOptions) + return postApiAuthManage2fa(data,requestOptions) } @@ -1037,7 +1150,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? export type PostApiAuthManage2faMutationError = HttpValidationProblemDetails | void export const usePostApiAuthManage2fa = (options?: { mutation?:UseMutationOptions>, TError,{data: TwoFactorRequest}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: TwoFactorRequest}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationReturnType< Awaited>, TError, @@ -1079,23 +1192,16 @@ export const getGetApiAuthManageInfoUrl = () => { return `/api/auth/manage/info` } -export const getApiAuthManageInfo = async ( options?: RequestInit): Promise => { +export const getApiAuthManageInfo = async ( options?: Parameters[1]): Promise => { - const res = await fetch(getGetApiAuthManageInfoUrl(), + return customFetch(getGetApiAuthManageInfoUrl(), { ...options, method: 'GET' } -) - - - const body = [204, 205, 304].includes(res.status) ? null : await res.text(); - - const data: getApiAuthManageInfoResponse['data'] = body ? JSON.parse(body) : {} - return { data, status: res.status, headers: res.headers } as getApiAuthManageInfoResponse -} +);} @@ -1108,16 +1214,16 @@ export const getGetApiAuthManageInfoQueryKey = () => { } -export const getGetApiAuthManageInfoQueryOptions = >, TError = HttpValidationProblemDetails | void>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} +export const getGetApiAuthManageInfoQueryOptions = >, TError = HttpValidationProblemDetails | void>( options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} ) => { -const {query: queryOptions, fetch: fetchOptions} = options ?? {}; +const {query: queryOptions, request: requestOptions} = options ?? {}; const queryKey = getGetApiAuthManageInfoQueryKey(); - const queryFn: QueryFunction>> = ({ signal }) => getApiAuthManageInfo({ signal, ...fetchOptions }); + const queryFn: QueryFunction>> = ({ signal }) => getApiAuthManageInfo({ signal, ...requestOptions }); @@ -1132,7 +1238,7 @@ export type GetApiAuthManageInfoQueryError = HttpValidationProblemDetails | void export function useGetApiAuthManageInfo>, TError = HttpValidationProblemDetails | void>( - options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} + options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} , queryClient?: QueryClient ): UseQueryReturnType & { queryKey: DataTag } { @@ -1183,38 +1289,31 @@ export const getPostApiAuthManageInfoUrl = () => { return `/api/auth/manage/info` } -export const postApiAuthManageInfo = async (infoRequest: InfoRequest, options?: RequestInit): Promise => { +export const postApiAuthManageInfo = async (infoRequest: InfoRequest, options?: Parameters[1]): Promise => { - const res = await fetch(getPostApiAuthManageInfoUrl(), + return customFetch(getPostApiAuthManageInfoUrl(), { ...options, method: 'POST', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify(infoRequest) } -) - - - const body = [204, 205, 304].includes(res.status) ? null : await res.text(); - - const data: postApiAuthManageInfoResponse['data'] = body ? JSON.parse(body) : {} - return { data, status: res.status, headers: res.headers } as postApiAuthManageInfoResponse -} +);} export const getPostApiAuthManageInfoMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: InfoRequest}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: InfoRequest}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{data: InfoRequest}, TContext> => { const mutationKey = ['postApiAuthManageInfo']; -const {mutation: mutationOptions, fetch: fetchOptions} = options ? +const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} - : {mutation: { mutationKey, }, fetch: undefined}; + : {mutation: { mutationKey, }, request: undefined}; @@ -1222,7 +1321,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? const mutationFn: MutationFunction>, {data: InfoRequest}> = (props) => { const {data} = props ?? {}; - return postApiAuthManageInfo(data,fetchOptions) + return postApiAuthManageInfo(data,requestOptions) } @@ -1237,7 +1336,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? export type PostApiAuthManageInfoMutationError = HttpValidationProblemDetails | void export const usePostApiAuthManageInfo = (options?: { mutation?:UseMutationOptions>, TError,{data: InfoRequest}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: InfoRequest}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationReturnType< Awaited>, TError, @@ -1247,6 +1346,446 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? return useMutation(getPostApiAuthManageInfoMutationOptions(options), queryClient); } +export type postApiAuthManageUsernameResponse200 = { + data: void + status: 200 +} + +export type postApiAuthManageUsernameResponse400 = { + data: HttpValidationProblemDetails + status: 400 +} + +export type postApiAuthManageUsernameResponse404 = { + data: void + status: 404 +} + +export type postApiAuthManageUsernameResponseSuccess = (postApiAuthManageUsernameResponse200) & { + headers: Headers; +}; +export type postApiAuthManageUsernameResponseError = (postApiAuthManageUsernameResponse400 | postApiAuthManageUsernameResponse404) & { + headers: Headers; +}; + +export type postApiAuthManageUsernameResponse = (postApiAuthManageUsernameResponseSuccess | postApiAuthManageUsernameResponseError) + +export const getPostApiAuthManageUsernameUrl = () => { + + + + + return `/api/auth/manage/username` +} + +export const postApiAuthManageUsername = async (updateUsernameRequest: UpdateUsernameRequest, options?: Parameters[1]): Promise => { + + return customFetch(getPostApiAuthManageUsernameUrl(), + { + ...options, + method: 'POST', + headers: { 'Content-Type': 'application/json', ...options?.headers }, + body: JSON.stringify(updateUsernameRequest) + } +);} + + + + + +export const getPostApiAuthManageUsernameMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: UpdateUsernameRequest}, TContext>, request?: SecondParameter} +): UseMutationOptions>, TError,{data: UpdateUsernameRequest}, TContext> => { + +const mutationKey = ['postApiAuthManageUsername']; +const {mutation: mutationOptions, request: requestOptions} = options ? + options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? + options + : {...options, mutation: {...options.mutation, mutationKey}} + : {mutation: { mutationKey, }, request: undefined}; + + + + + const mutationFn: MutationFunction>, {data: UpdateUsernameRequest}> = (props) => { + const {data} = props ?? {}; + + return postApiAuthManageUsername(data,requestOptions) + } + + + + + + + return { mutationFn, ...mutationOptions }} + + export type PostApiAuthManageUsernameMutationResult = NonNullable>> + export type PostApiAuthManageUsernameMutationBody = UpdateUsernameRequest + export type PostApiAuthManageUsernameMutationError = HttpValidationProblemDetails | void + + export const usePostApiAuthManageUsername = (options?: { mutation?:UseMutationOptions>, TError,{data: UpdateUsernameRequest}, TContext>, request?: SecondParameter} + , queryClient?: QueryClient): UseMutationReturnType< + Awaited>, + TError, + {data: UpdateUsernameRequest}, + TContext + > => { + return useMutation(getPostApiAuthManageUsernameMutationOptions(options), queryClient); + } + +export type getApiAuthManagePinResponse200 = { + data: PinResponse + status: 200 +} + +export type getApiAuthManagePinResponse404 = { + data: void + status: 404 +} + +export type getApiAuthManagePinResponseSuccess = (getApiAuthManagePinResponse200) & { + headers: Headers; +}; +export type getApiAuthManagePinResponseError = (getApiAuthManagePinResponse404) & { + headers: Headers; +}; + +export type getApiAuthManagePinResponse = (getApiAuthManagePinResponseSuccess | getApiAuthManagePinResponseError) + +export const getGetApiAuthManagePinUrl = () => { + + + + + return `/api/auth/manage/pin` +} + +export const getApiAuthManagePin = async ( options?: Parameters[1]): Promise => { + + return customFetch(getGetApiAuthManagePinUrl(), + { + ...options, + method: 'GET' + + + } +);} + + + + + +export const getGetApiAuthManagePinQueryKey = () => { + return [ + 'api','auth','manage','pin' + ] as const; + } + + +export const getGetApiAuthManagePinQueryOptions = >, TError = void>( options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} +) => { + +const {query: queryOptions, request: requestOptions} = options ?? {}; + + const queryKey = getGetApiAuthManagePinQueryKey(); + + + + const queryFn: QueryFunction>> = ({ signal }) => getApiAuthManagePin({ signal, ...requestOptions }); + + + + + + return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> +} + +export type GetApiAuthManagePinQueryResult = NonNullable>> +export type GetApiAuthManagePinQueryError = void + + + +export function useGetApiAuthManagePin>, TError = void>( + options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} + , queryClient?: QueryClient + ): UseQueryReturnType & { queryKey: DataTag } { + + const queryOptions = getGetApiAuthManagePinQueryOptions(options) + + const query = useQuery(queryOptions, queryClient) as UseQueryReturnType & { queryKey: DataTag }; + + query.queryKey = unref(queryOptions).queryKey as DataTag; + + return query; +} + + + + + + + +export type postApiAuthManagePinResponse200 = { + data: void + status: 200 +} + +export type postApiAuthManagePinResponse400 = { + data: HttpValidationProblemDetails + status: 400 +} + +export type postApiAuthManagePinResponse404 = { + data: void + status: 404 +} + +export type postApiAuthManagePinResponseSuccess = (postApiAuthManagePinResponse200) & { + headers: Headers; +}; +export type postApiAuthManagePinResponseError = (postApiAuthManagePinResponse400 | postApiAuthManagePinResponse404) & { + headers: Headers; +}; + +export type postApiAuthManagePinResponse = (postApiAuthManagePinResponseSuccess | postApiAuthManagePinResponseError) + +export const getPostApiAuthManagePinUrl = () => { + + + + + return `/api/auth/manage/pin` +} + +export const postApiAuthManagePin = async (updatePinRequest: UpdatePinRequest, options?: Parameters[1]): Promise => { + + return customFetch(getPostApiAuthManagePinUrl(), + { + ...options, + method: 'POST', + headers: { 'Content-Type': 'application/json', ...options?.headers }, + body: JSON.stringify(updatePinRequest) + } +);} + + + + + +export const getPostApiAuthManagePinMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: UpdatePinRequest}, TContext>, request?: SecondParameter} +): UseMutationOptions>, TError,{data: UpdatePinRequest}, TContext> => { + +const mutationKey = ['postApiAuthManagePin']; +const {mutation: mutationOptions, request: requestOptions} = options ? + options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? + options + : {...options, mutation: {...options.mutation, mutationKey}} + : {mutation: { mutationKey, }, request: undefined}; + + + + + const mutationFn: MutationFunction>, {data: UpdatePinRequest}> = (props) => { + const {data} = props ?? {}; + + return postApiAuthManagePin(data,requestOptions) + } + + + + + + + return { mutationFn, ...mutationOptions }} + + export type PostApiAuthManagePinMutationResult = NonNullable>> + export type PostApiAuthManagePinMutationBody = UpdatePinRequest + export type PostApiAuthManagePinMutationError = HttpValidationProblemDetails | void + + export const usePostApiAuthManagePin = (options?: { mutation?:UseMutationOptions>, TError,{data: UpdatePinRequest}, TContext>, request?: SecondParameter} + , queryClient?: QueryClient): UseMutationReturnType< + Awaited>, + TError, + {data: UpdatePinRequest}, + TContext + > => { + return useMutation(getPostApiAuthManagePinMutationOptions(options), queryClient); + } + +export type getApiPluginsUiResponse200 = { + data: PluginUiManifestResponse[] + status: 200 +} + +export type getApiPluginsUiResponseSuccess = (getApiPluginsUiResponse200) & { + headers: Headers; +}; +; + +export type getApiPluginsUiResponse = (getApiPluginsUiResponseSuccess) + +export const getGetApiPluginsUiUrl = () => { + + + + + return `/api/plugins/ui` +} + +export const getApiPluginsUi = async ( options?: Parameters[1]): Promise => { + + return customFetch(getGetApiPluginsUiUrl(), + { + ...options, + method: 'GET' + + + } +);} + + + + + +export const getGetApiPluginsUiQueryKey = () => { + return [ + 'api','plugins','ui' + ] as const; + } + + +export const getGetApiPluginsUiQueryOptions = >, TError = unknown>( options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} +) => { + +const {query: queryOptions, request: requestOptions} = options ?? {}; + + const queryKey = getGetApiPluginsUiQueryKey(); + + + + const queryFn: QueryFunction>> = ({ signal }) => getApiPluginsUi({ signal, ...requestOptions }); + + + + + + return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> +} + +export type GetApiPluginsUiQueryResult = NonNullable>> +export type GetApiPluginsUiQueryError = unknown + + + +export function useGetApiPluginsUi>, TError = unknown>( + options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} + , queryClient?: QueryClient + ): UseQueryReturnType & { queryKey: DataTag } { + + const queryOptions = getGetApiPluginsUiQueryOptions(options) + + const query = useQuery(queryOptions, queryClient) as UseQueryReturnType & { queryKey: DataTag }; + + query.queryKey = unref(queryOptions).queryKey as DataTag; + + return query; +} + + + + + + + +export type getApiPluginsEventsResponse200 = { + data: string + status: 200 +} + +export type getApiPluginsEventsResponseSuccess = (getApiPluginsEventsResponse200) & { + headers: Headers; +}; +; + +export type getApiPluginsEventsResponse = (getApiPluginsEventsResponseSuccess) + +export const getGetApiPluginsEventsUrl = () => { + + + + + return `/api/plugins/events` +} + +export const getApiPluginsEvents = async ( options?: Parameters[1]): Promise => { + + return customFetch(getGetApiPluginsEventsUrl(), + { + ...options, + method: 'GET' + + + } +);} + + + + + +export const getGetApiPluginsEventsQueryKey = () => { + return [ + 'api','plugins','events' + ] as const; + } + + +export const getGetApiPluginsEventsQueryOptions = >, TError = unknown>( options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} +) => { + +const {query: queryOptions, request: requestOptions} = options ?? {}; + + const queryKey = getGetApiPluginsEventsQueryKey(); + + + + const queryFn: QueryFunction>> = ({ signal }) => getApiPluginsEvents({ signal, ...requestOptions }); + + + + + + return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> +} + +export type GetApiPluginsEventsQueryResult = NonNullable>> +export type GetApiPluginsEventsQueryError = unknown + + + +export function useGetApiPluginsEvents>, TError = unknown>( + options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} + , queryClient?: QueryClient + ): UseQueryReturnType & { queryKey: DataTag } { + + const queryOptions = getGetApiPluginsEventsQueryOptions(options) + + const query = useQuery(queryOptions, queryClient) as UseQueryReturnType & { queryKey: DataTag }; + + query.queryKey = unref(queryOptions).queryKey as DataTag; + + return query; +} + + + + + + + export type postEamuseModelModuleMethodResponse200 = { data: void status: 200 @@ -1271,38 +1810,31 @@ export const getPostEamuseModelModuleMethodUrl = (model: string, export const postEamuseModelModuleMethod = async (model: string, module: string, - method: string, options?: RequestInit): Promise => { + method: string, options?: Parameters[1]): Promise => { - const res = await fetch(getPostEamuseModelModuleMethodUrl(model,module,method), + return customFetch(getPostEamuseModelModuleMethodUrl(model,module,method), { ...options, method: 'POST' } -) - - - const body = [204, 205, 304].includes(res.status) ? null : await res.text(); - - const data: postEamuseModelModuleMethodResponse['data'] = body ? JSON.parse(body) : undefined - return { data, status: res.status, headers: res.headers } as postEamuseModelModuleMethodResponse -} +);} export const getPostEamuseModelModuleMethodMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{model: string;module: string;method: string}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{model: string;module: string;method: string}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{model: string;module: string;method: string}, TContext> => { const mutationKey = ['postEamuseModelModuleMethod']; -const {mutation: mutationOptions, fetch: fetchOptions} = options ? +const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} - : {mutation: { mutationKey, }, fetch: undefined}; + : {mutation: { mutationKey, }, request: undefined}; @@ -1310,7 +1842,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? const mutationFn: MutationFunction>, {model: string;module: string;method: string}> = (props) => { const {model,module,method} = props ?? {}; - return postEamuseModelModuleMethod(model,module,method,fetchOptions) + return postEamuseModelModuleMethod(model,module,method,requestOptions) } @@ -1325,7 +1857,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? export type PostEamuseModelModuleMethodMutationError = unknown export const usePostEamuseModelModuleMethod = (options?: { mutation?:UseMutationOptions>, TError,{model: string;module: string;method: string}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{model: string;module: string;method: string}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationReturnType< Awaited>, TError, @@ -1364,38 +1896,31 @@ export const getPostEamuseMUrl = (m: string, } export const postEamuseM = async (m: string, - params: PostEamuseMParams, options?: RequestInit): Promise => { + params: PostEamuseMParams, options?: Parameters[1]): Promise => { - const res = await fetch(getPostEamuseMUrl(m,params), + return customFetch(getPostEamuseMUrl(m,params), { ...options, method: 'POST' } -) - - - const body = [204, 205, 304].includes(res.status) ? null : await res.text(); - - const data: postEamuseMResponse['data'] = body ? JSON.parse(body) : undefined - return { data, status: res.status, headers: res.headers } as postEamuseMResponse -} +);} export const getPostEamuseMMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{m: string;params: PostEamuseMParams}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{m: string;params: PostEamuseMParams}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{m: string;params: PostEamuseMParams}, TContext> => { const mutationKey = ['postEamuseM']; -const {mutation: mutationOptions, fetch: fetchOptions} = options ? +const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} - : {mutation: { mutationKey, }, fetch: undefined}; + : {mutation: { mutationKey, }, request: undefined}; @@ -1403,7 +1928,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? const mutationFn: MutationFunction>, {m: string;params: PostEamuseMParams}> = (props) => { const {m,params} = props ?? {}; - return postEamuseM(m,params,fetchOptions) + return postEamuseM(m,params,requestOptions) } @@ -1418,7 +1943,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? export type PostEamuseMMutationError = unknown export const usePostEamuseM = (options?: { mutation?:UseMutationOptions>, TError,{m: string;params: PostEamuseMParams}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{m: string;params: PostEamuseMParams}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationReturnType< Awaited>, TError, @@ -1455,38 +1980,31 @@ export const getPostEamuseUrl = (params: PostEamuseParams,) => { return stringifiedParams.length > 0 ? `/eamuse?${stringifiedParams}` : `/eamuse` } -export const postEamuse = async (params: PostEamuseParams, options?: RequestInit): Promise => { +export const postEamuse = async (params: PostEamuseParams, options?: Parameters[1]): Promise => { - const res = await fetch(getPostEamuseUrl(params), + return customFetch(getPostEamuseUrl(params), { ...options, method: 'POST' } -) - - - const body = [204, 205, 304].includes(res.status) ? null : await res.text(); - - const data: postEamuseResponse['data'] = body ? JSON.parse(body) : undefined - return { data, status: res.status, headers: res.headers } as postEamuseResponse -} +);} export const getPostEamuseMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{params: PostEamuseParams}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{params: PostEamuseParams}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{params: PostEamuseParams}, TContext> => { const mutationKey = ['postEamuse']; -const {mutation: mutationOptions, fetch: fetchOptions} = options ? +const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} - : {mutation: { mutationKey, }, fetch: undefined}; + : {mutation: { mutationKey, }, request: undefined}; @@ -1494,7 +2012,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? const mutationFn: MutationFunction>, {params: PostEamuseParams}> = (props) => { const {params} = props ?? {}; - return postEamuse(params,fetchOptions) + return postEamuse(params,requestOptions) } @@ -1509,7 +2027,7 @@ const {mutation: mutationOptions, fetch: fetchOptions} = options ? export type PostEamuseMutationError = unknown export const usePostEamuse = (options?: { mutation?:UseMutationOptions>, TError,{params: PostEamuseParams}, TContext>, fetch?: RequestInit} + TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{params: PostEamuseParams}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationReturnType< Awaited>, TError, diff --git a/Core/Client/src/data/authenticationService.ts b/Core/Client/src/data/authenticationService.ts index 7512f48..2d8e790 100644 --- a/Core/Client/src/data/authenticationService.ts +++ b/Core/Client/src/data/authenticationService.ts @@ -5,7 +5,12 @@ import type { TokenResponse } from "@/types/tokenResponse"; import { UserService } from "./userService"; export class AuthenticationService { - + private static readonly loginErrorMessages: Record = { + "Invalid login attempt.": "Incorrect username or password.", + "Failed": "Incorrect username or password.", + "LockedOut": "This account has been locked out due to too many failed attempts. Try again later.", + }; + static setAccessToken(accessToken: string): void { const store = useUserStore(); store.setAccessToken(accessToken); @@ -54,16 +59,21 @@ export class AuthenticationService { }); if (!response.ok) { - const json = await response.json(); - if (json.toString().includes( - "Invalid email or password", - ) - ) { + const problem = await response.json().catch(() => null); + const detail = problem?.detail as string | undefined; + + if (detail === "TwoFactorRequired") { return { - twoFactorRequired: false, - incorrectCredentials: true, + twoFactorRequired: true, + incorrectCredentials: false, }; } + + return { + twoFactorRequired: false, + incorrectCredentials: true, + errorMessage: (detail && this.loginErrorMessages[detail]) ?? "Incorrect username or password.", + }; } const tokenResponse = (await response.json()) as TokenResponse; @@ -87,6 +97,7 @@ export class AuthenticationService { return { twoFactorRequired: true, incorrectCredentials: true, + errorMessage: "Something went wrong while completing sign-in. Please try again.", }; } diff --git a/Core/Client/src/data/userService.ts b/Core/Client/src/data/userService.ts index d68246d..8586dda 100644 --- a/Core/Client/src/data/userService.ts +++ b/Core/Client/src/data/userService.ts @@ -19,7 +19,7 @@ export class UserService { const store = useUserStore(); store.setUser(userClaims); store.setName( - userClaims.find((claim) => claim.type === "name")?.value || "", + userClaims.find((claim) => claim.type === "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name")?.value || "", ); return true; } diff --git a/Core/Client/src/gql/graphql.ts b/Core/Client/src/gql/graphql.ts index 2a1e3e4..51ba9d5 100644 --- a/Core/Client/src/gql/graphql.ts +++ b/Core/Client/src/gql/graphql.ts @@ -16,6 +16,7 @@ export type Scalars = { Int: { input: number; output: number; } Float: { input: number; output: number; } DateTime: { input: Date; output: Date; } + Long: { input: unknown; output: unknown; } }; /** Defines when a policy shall be executed. */ @@ -43,21 +44,21 @@ export enum CacheControlScope { export type Card = { __typename?: 'Card'; - id: Scalars['Int']['output']; + id: Scalars['Long']['output']; konamiId: Scalars['String']['output']; rawId: Scalars['String']['output']; user: User; - userId: Scalars['Int']['output']; + userId: Scalars['Long']['output']; }; export type CardFilterInput = { and?: InputMaybe>; - id?: InputMaybe; + id?: InputMaybe; konamiId?: InputMaybe; or?: InputMaybe>; rawId?: InputMaybe; user?: InputMaybe; - userId?: InputMaybe; + userId?: InputMaybe; }; export type CardSortInput = { @@ -105,6 +106,21 @@ export type ListFilterInputTypeOfCardFilterInput = { some?: InputMaybe; }; +export type LongOperationFilterInput = { + eq?: InputMaybe; + gt?: InputMaybe; + gte?: InputMaybe; + in?: InputMaybe>>; + lt?: InputMaybe; + lte?: InputMaybe; + neq?: InputMaybe; + ngt?: InputMaybe; + ngte?: InputMaybe; + nin?: InputMaybe>>; + nlt?: InputMaybe; + nlte?: InputMaybe; +}; + export type Mutation = { __typename?: 'Mutation'; addCard: Array; @@ -153,6 +169,7 @@ export type PageInfo = { export type Query = { __typename?: 'Query'; myCards?: Maybe; + publicUrl: Scalars['String']['output']; }; @@ -192,7 +209,7 @@ export type User = { concurrencyStamp?: Maybe; email?: Maybe; emailConfirmed: Scalars['Boolean']['output']; - id: Scalars['Int']['output']; + id: Scalars['Long']['output']; lockoutEnabled: Scalars['Boolean']['output']; lockoutEnd?: Maybe; normalizedEmail?: Maybe; @@ -214,7 +231,7 @@ export type UserFilterInput = { concurrencyStamp?: InputMaybe; email?: InputMaybe; emailConfirmed?: InputMaybe; - id?: InputMaybe; + id?: InputMaybe; lockoutEnabled?: InputMaybe; lockoutEnd?: InputMaybe; normalizedEmail?: InputMaybe; @@ -257,6 +274,11 @@ export type AddCardMutationVariables = Exact<{ export type AddCardMutation = { addCard: Array<{ konamiId: string, rawId: string }> }; +export type GetConfigQueryVariables = Exact<{ [key: string]: never; }>; + + +export type GetConfigQuery = { publicUrl: string }; + export type GetMyCardsQueryVariables = Exact<{ [key: string]: never; }>; @@ -293,6 +315,31 @@ export function useAddCardMutation(options: VueApolloComposable.UseMutationOptio return VueApolloComposable.useMutation(AddCardDocument, options); } export type AddCardMutationCompositionFunctionResult = VueApolloComposable.UseMutationReturn; +export const GetConfigDocument = gql` + query GetConfig { + publicUrl +} + `; + +/** + * __useGetConfigQuery__ + * + * To run a query within a Vue component, call `useGetConfigQuery` and pass it any options that fit your needs. + * When your component renders, `useGetConfigQuery` returns an object from Apollo Client that contains result, loading and error properties + * you can use to render your UI. + * + * @param options that will be passed into the query, supported options are listed on: https://v4.apollo.vuejs.org/guide-composable/query.html#options; + * + * @example + * const { result, loading, error } = useGetConfigQuery(); + */ +export function useGetConfigQuery(options: VueApolloComposable.UseQueryOptions | VueCompositionApi.Ref> | ReactiveFunction> = {}) { + return VueApolloComposable.useQuery(GetConfigDocument, {}, options); +} +export function useGetConfigLazyQuery(options: VueApolloComposable.UseQueryOptions | VueCompositionApi.Ref> | ReactiveFunction> = {}) { + return VueApolloComposable.useLazyQuery(GetConfigDocument, {}, options); +} +export type GetConfigQueryCompositionFunctionResult = VueApolloComposable.UseQueryReturn; export const GetMyCardsDocument = gql` query GetMyCards { myCards { diff --git a/Core/Client/src/types/api/index.ts b/Core/Client/src/types/api/index.ts index 735c07f..577e680 100644 --- a/Core/Client/src/types/api/index.ts +++ b/Core/Client/src/types/api/index.ts @@ -6,6 +6,7 @@ */ export * from './accessTokenResponse'; +export * from './approveSessionResponse'; export * from './cardDto'; export * from './claim'; export * from './claimProperties'; @@ -17,6 +18,10 @@ export * from './infoRequest'; export * from './infoResponse'; export * from './loginRequest'; export * from './mapIdentityApiApiAuthConfirmEmailParams'; +export * from './pinResponse'; +export * from './pluginNavItem'; +export * from './pluginRoute'; +export * from './pluginUiManifestResponse'; export * from './postApiAuthLoginParams'; export * from './postEamuseMParams'; export * from './postEamuseParams'; @@ -26,5 +31,7 @@ export * from './resendConfirmationEmailRequest'; export * from './resetPasswordRequest'; export * from './twoFactorRequest'; export * from './twoFactorResponse'; +export * from './updatePinRequest'; +export * from './updateUsernameRequest'; export * from './validateCardRequest'; export * from './validateCardResponse'; diff --git a/Core/Client/src/types/api/validateCardResponse.ts b/Core/Client/src/types/api/validateCardResponse.ts index 967323a..d69f924 100644 --- a/Core/Client/src/types/api/validateCardResponse.ts +++ b/Core/Client/src/types/api/validateCardResponse.ts @@ -7,5 +7,5 @@ export interface ValidateCardResponse { message: string; - success?: boolean; + success: boolean; } diff --git a/Core/Client/typed-router.d.ts b/Core/Client/typed-router.d.ts index 49aa9dd..61f7db5 100644 --- a/Core/Client/typed-router.d.ts +++ b/Core/Client/typed-router.d.ts @@ -45,6 +45,20 @@ declare module 'vue-router/auto-routes' { Record, | never >, + '/auth/forgotPassword/': RouteRecordInfo< + '/auth/forgotPassword/', + '/auth/forgotPassword', + Record, + Record, + | never + >, + '/auth/forgotPassword/confirmation': RouteRecordInfo< + '/auth/forgotPassword/confirmation', + '/auth/forgotPassword/confirmation', + Record, + Record, + | never + >, '/auth/register': RouteRecordInfo< '/auth/register', '/auth/register', @@ -52,6 +66,34 @@ declare module 'vue-router/auto-routes' { Record, | never >, + '/auth/resetPassword/': RouteRecordInfo< + '/auth/resetPassword/', + '/auth/resetPassword', + Record, + Record, + | never + >, + '/auth/resetPassword/confirmation': RouteRecordInfo< + '/auth/resetPassword/confirmation', + '/auth/resetPassword/confirmation', + Record, + Record, + | never + >, + '/cardless/[token]': RouteRecordInfo< + '/cardless/[token]', + '/cardless/:token', + { token: ParamValue }, + { token: ParamValue }, + | never + >, + '/cardless/scan': RouteRecordInfo< + '/cardless/scan', + '/cardless/scan', + Record, + Record, + | never + >, '/cards/': RouteRecordInfo< '/cards/', '/cards', @@ -59,6 +101,13 @@ declare module 'vue-router/auto-routes' { Record, | never >, + '/settings/': RouteRecordInfo< + '/settings/', + '/settings', + Record, + Record, + | never + >, } /** @@ -88,6 +137,22 @@ declare module 'vue-router/auto-routes' { pathParamNames: | never } + 'src/pages/auth/forgotPassword/index.vue': { + routes: + | '/auth/forgotPassword/' + views: + | never + pathParamNames: + | never + } + 'src/pages/auth/forgotPassword/confirmation.vue': { + routes: + | '/auth/forgotPassword/confirmation' + views: + | never + pathParamNames: + | never + } 'src/pages/auth/register.vue': { routes: | '/auth/register' @@ -96,6 +161,38 @@ declare module 'vue-router/auto-routes' { pathParamNames: | never } + 'src/pages/auth/resetPassword/index.vue': { + routes: + | '/auth/resetPassword/' + views: + | never + pathParamNames: + | never + } + 'src/pages/auth/resetPassword/confirmation.vue': { + routes: + | '/auth/resetPassword/confirmation' + views: + | never + pathParamNames: + | never + } + 'src/pages/cardless/[token].vue': { + routes: + | '/cardless/[token]' + views: + | never + pathParamNames: + | 'token' + } + 'src/pages/cardless/scan.vue': { + routes: + | '/cardless/scan' + views: + | never + pathParamNames: + | never + } 'src/pages/cards/index.vue': { routes: | '/cards/' @@ -104,6 +201,14 @@ declare module 'vue-router/auto-routes' { pathParamNames: | never } + 'src/pages/settings/index.vue': { + routes: + | '/settings/' + views: + | never + pathParamNames: + | never + } } /**