feat(api): generate API models and hooks for public shop configuration and commerce entities

- Added generated API hooks and models for public shop configuration, including listing and retrieving configurations.
- Introduced models for commerce categories, discount codes, orders, product images, and products with pagination and search parameters.
- Ensured all generated files are structured for easy integration with React Query.
This commit is contained in:
2025-12-22 02:20:43 +01:00
parent abc6207296
commit 1cec6be6d7
49 changed files with 7580 additions and 7224 deletions

View File

@@ -0,0 +1,706 @@
/**
* Generated by orval v7.17.0 🍺
* Do not edit manually.
* OpenAPI spec version: 0.0.0
*/
import { useMutation, useQuery } from "@tanstack/react-query";
import type {
DataTag,
DefinedInitialDataOptions,
DefinedUseQueryResult,
MutationFunction,
QueryClient,
QueryFunction,
QueryKey,
UndefinedInitialDataOptions,
UseMutationOptions,
UseMutationResult,
UseQueryOptions,
UseQueryResult,
} from "@tanstack/react-query";
import type {
CustomTokenObtainPair,
PasswordResetConfirm,
PasswordResetRequest,
UserRegistration,
} from "./models";
import { publicMutator } from "../../publicClient";
/**
* Authenticate user and obtain JWT access and refresh tokens. You can use either email or username.
* @summary Obtain JWT access and refresh tokens (cookie-based)
*/
export const apiAccountLoginCreate = (
customTokenObtainPair: CustomTokenObtainPair,
signal?: AbortSignal,
) => {
return publicMutator<CustomTokenObtainPair>({
url: `/api/account/login/`,
method: "POST",
headers: { "Content-Type": "application/json" },
data: customTokenObtainPair,
signal,
});
};
export const getApiAccountLoginCreateMutationOptions = <
TError = void,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof apiAccountLoginCreate>>,
TError,
{ data: CustomTokenObtainPair },
TContext
>;
}): UseMutationOptions<
Awaited<ReturnType<typeof apiAccountLoginCreate>>,
TError,
{ data: CustomTokenObtainPair },
TContext
> => {
const mutationKey = ["apiAccountLoginCreate"];
const { mutation: mutationOptions } = options
? options.mutation &&
"mutationKey" in options.mutation &&
options.mutation.mutationKey
? options
: { ...options, mutation: { ...options.mutation, mutationKey } }
: { mutation: { mutationKey } };
const mutationFn: MutationFunction<
Awaited<ReturnType<typeof apiAccountLoginCreate>>,
{ data: CustomTokenObtainPair }
> = (props) => {
const { data } = props ?? {};
return apiAccountLoginCreate(data);
};
return { mutationFn, ...mutationOptions };
};
export type ApiAccountLoginCreateMutationResult = NonNullable<
Awaited<ReturnType<typeof apiAccountLoginCreate>>
>;
export type ApiAccountLoginCreateMutationBody = CustomTokenObtainPair;
export type ApiAccountLoginCreateMutationError = void;
/**
* @summary Obtain JWT access and refresh tokens (cookie-based)
*/
export const useApiAccountLoginCreate = <TError = void, TContext = unknown>(
options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof apiAccountLoginCreate>>,
TError,
{ data: CustomTokenObtainPair },
TContext
>;
},
queryClient?: QueryClient,
): UseMutationResult<
Awaited<ReturnType<typeof apiAccountLoginCreate>>,
TError,
{ data: CustomTokenObtainPair },
TContext
> => {
const mutationOptions = getApiAccountLoginCreateMutationOptions(options);
return useMutation(mutationOptions, queryClient);
};
/**
* Logs out the user by deleting access and refresh token cookies.
* @summary Logout user (delete access and refresh token cookies)
*/
export const apiAccountLogoutCreate = (signal?: AbortSignal) => {
return publicMutator<void>({
url: `/api/account/logout/`,
method: "POST",
signal,
});
};
export const getApiAccountLogoutCreateMutationOptions = <
TError = unknown,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof apiAccountLogoutCreate>>,
TError,
void,
TContext
>;
}): UseMutationOptions<
Awaited<ReturnType<typeof apiAccountLogoutCreate>>,
TError,
void,
TContext
> => {
const mutationKey = ["apiAccountLogoutCreate"];
const { mutation: mutationOptions } = options
? options.mutation &&
"mutationKey" in options.mutation &&
options.mutation.mutationKey
? options
: { ...options, mutation: { ...options.mutation, mutationKey } }
: { mutation: { mutationKey } };
const mutationFn: MutationFunction<
Awaited<ReturnType<typeof apiAccountLogoutCreate>>,
void
> = () => {
return apiAccountLogoutCreate();
};
return { mutationFn, ...mutationOptions };
};
export type ApiAccountLogoutCreateMutationResult = NonNullable<
Awaited<ReturnType<typeof apiAccountLogoutCreate>>
>;
export type ApiAccountLogoutCreateMutationError = unknown;
/**
* @summary Logout user (delete access and refresh token cookies)
*/
export const useApiAccountLogoutCreate = <TError = unknown, TContext = unknown>(
options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof apiAccountLogoutCreate>>,
TError,
void,
TContext
>;
},
queryClient?: QueryClient,
): UseMutationResult<
Awaited<ReturnType<typeof apiAccountLogoutCreate>>,
TError,
void,
TContext
> => {
const mutationOptions = getApiAccountLogoutCreateMutationOptions(options);
return useMutation(mutationOptions, queryClient);
};
/**
* Request password reset by providing registered email. An email with instructions will be sent.
* @summary Request password reset (send email)
*/
export const apiAccountPasswordResetCreate = (
passwordResetRequest: PasswordResetRequest,
signal?: AbortSignal,
) => {
return publicMutator<void>({
url: `/api/account/password-reset/`,
method: "POST",
headers: { "Content-Type": "application/json" },
data: passwordResetRequest,
signal,
});
};
export const getApiAccountPasswordResetCreateMutationOptions = <
TError = void,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof apiAccountPasswordResetCreate>>,
TError,
{ data: PasswordResetRequest },
TContext
>;
}): UseMutationOptions<
Awaited<ReturnType<typeof apiAccountPasswordResetCreate>>,
TError,
{ data: PasswordResetRequest },
TContext
> => {
const mutationKey = ["apiAccountPasswordResetCreate"];
const { mutation: mutationOptions } = options
? options.mutation &&
"mutationKey" in options.mutation &&
options.mutation.mutationKey
? options
: { ...options, mutation: { ...options.mutation, mutationKey } }
: { mutation: { mutationKey } };
const mutationFn: MutationFunction<
Awaited<ReturnType<typeof apiAccountPasswordResetCreate>>,
{ data: PasswordResetRequest }
> = (props) => {
const { data } = props ?? {};
return apiAccountPasswordResetCreate(data);
};
return { mutationFn, ...mutationOptions };
};
export type ApiAccountPasswordResetCreateMutationResult = NonNullable<
Awaited<ReturnType<typeof apiAccountPasswordResetCreate>>
>;
export type ApiAccountPasswordResetCreateMutationBody = PasswordResetRequest;
export type ApiAccountPasswordResetCreateMutationError = void;
/**
* @summary Request password reset (send email)
*/
export const useApiAccountPasswordResetCreate = <
TError = void,
TContext = unknown,
>(
options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof apiAccountPasswordResetCreate>>,
TError,
{ data: PasswordResetRequest },
TContext
>;
},
queryClient?: QueryClient,
): UseMutationResult<
Awaited<ReturnType<typeof apiAccountPasswordResetCreate>>,
TError,
{ data: PasswordResetRequest },
TContext
> => {
const mutationOptions =
getApiAccountPasswordResetCreateMutationOptions(options);
return useMutation(mutationOptions, queryClient);
};
/**
* Confirm password reset using token from email.
* @summary Confirm password reset via token
*/
export const apiAccountPasswordResetConfirmCreate = (
uidb64: string,
token: string,
passwordResetConfirm: PasswordResetConfirm,
signal?: AbortSignal,
) => {
return publicMutator<void>({
url: `/api/account/password-reset-confirm/${uidb64}/${token}/`,
method: "POST",
headers: { "Content-Type": "application/json" },
data: passwordResetConfirm,
signal,
});
};
export const getApiAccountPasswordResetConfirmCreateMutationOptions = <
TError = void,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof apiAccountPasswordResetConfirmCreate>>,
TError,
{ uidb64: string; token: string; data: PasswordResetConfirm },
TContext
>;
}): UseMutationOptions<
Awaited<ReturnType<typeof apiAccountPasswordResetConfirmCreate>>,
TError,
{ uidb64: string; token: string; data: PasswordResetConfirm },
TContext
> => {
const mutationKey = ["apiAccountPasswordResetConfirmCreate"];
const { mutation: mutationOptions } = options
? options.mutation &&
"mutationKey" in options.mutation &&
options.mutation.mutationKey
? options
: { ...options, mutation: { ...options.mutation, mutationKey } }
: { mutation: { mutationKey } };
const mutationFn: MutationFunction<
Awaited<ReturnType<typeof apiAccountPasswordResetConfirmCreate>>,
{ uidb64: string; token: string; data: PasswordResetConfirm }
> = (props) => {
const { uidb64, token, data } = props ?? {};
return apiAccountPasswordResetConfirmCreate(uidb64, token, data);
};
return { mutationFn, ...mutationOptions };
};
export type ApiAccountPasswordResetConfirmCreateMutationResult = NonNullable<
Awaited<ReturnType<typeof apiAccountPasswordResetConfirmCreate>>
>;
export type ApiAccountPasswordResetConfirmCreateMutationBody =
PasswordResetConfirm;
export type ApiAccountPasswordResetConfirmCreateMutationError = void;
/**
* @summary Confirm password reset via token
*/
export const useApiAccountPasswordResetConfirmCreate = <
TError = void,
TContext = unknown,
>(
options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof apiAccountPasswordResetConfirmCreate>>,
TError,
{ uidb64: string; token: string; data: PasswordResetConfirm },
TContext
>;
},
queryClient?: QueryClient,
): UseMutationResult<
Awaited<ReturnType<typeof apiAccountPasswordResetConfirmCreate>>,
TError,
{ uidb64: string; token: string; data: PasswordResetConfirm },
TContext
> => {
const mutationOptions =
getApiAccountPasswordResetConfirmCreateMutationOptions(options);
return useMutation(mutationOptions, queryClient);
};
/**
* Register a new user (company or individual). The user will receive an email with a verification link.
* @summary Register a new user (company or individual)
*/
export const apiAccountRegisterCreate = (
userRegistration: UserRegistration,
signal?: AbortSignal,
) => {
return publicMutator<UserRegistration>({
url: `/api/account/register/`,
method: "POST",
headers: { "Content-Type": "application/json" },
data: userRegistration,
signal,
});
};
export const getApiAccountRegisterCreateMutationOptions = <
TError = void,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof apiAccountRegisterCreate>>,
TError,
{ data: UserRegistration },
TContext
>;
}): UseMutationOptions<
Awaited<ReturnType<typeof apiAccountRegisterCreate>>,
TError,
{ data: UserRegistration },
TContext
> => {
const mutationKey = ["apiAccountRegisterCreate"];
const { mutation: mutationOptions } = options
? options.mutation &&
"mutationKey" in options.mutation &&
options.mutation.mutationKey
? options
: { ...options, mutation: { ...options.mutation, mutationKey } }
: { mutation: { mutationKey } };
const mutationFn: MutationFunction<
Awaited<ReturnType<typeof apiAccountRegisterCreate>>,
{ data: UserRegistration }
> = (props) => {
const { data } = props ?? {};
return apiAccountRegisterCreate(data);
};
return { mutationFn, ...mutationOptions };
};
export type ApiAccountRegisterCreateMutationResult = NonNullable<
Awaited<ReturnType<typeof apiAccountRegisterCreate>>
>;
export type ApiAccountRegisterCreateMutationBody = UserRegistration;
export type ApiAccountRegisterCreateMutationError = void;
/**
* @summary Register a new user (company or individual)
*/
export const useApiAccountRegisterCreate = <TError = void, TContext = unknown>(
options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof apiAccountRegisterCreate>>,
TError,
{ data: UserRegistration },
TContext
>;
},
queryClient?: QueryClient,
): UseMutationResult<
Awaited<ReturnType<typeof apiAccountRegisterCreate>>,
TError,
{ data: UserRegistration },
TContext
> => {
const mutationOptions = getApiAccountRegisterCreateMutationOptions(options);
return useMutation(mutationOptions, queryClient);
};
/**
* Refresh JWT access and refresh tokens using the refresh token stored in cookie.
* @summary Refresh JWT token using cookie
*/
export const apiAccountTokenRefreshCreate = (signal?: AbortSignal) => {
return publicMutator<void>({
url: `/api/account/token/refresh/`,
method: "POST",
signal,
});
};
export const getApiAccountTokenRefreshCreateMutationOptions = <
TError = void,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof apiAccountTokenRefreshCreate>>,
TError,
void,
TContext
>;
}): UseMutationOptions<
Awaited<ReturnType<typeof apiAccountTokenRefreshCreate>>,
TError,
void,
TContext
> => {
const mutationKey = ["apiAccountTokenRefreshCreate"];
const { mutation: mutationOptions } = options
? options.mutation &&
"mutationKey" in options.mutation &&
options.mutation.mutationKey
? options
: { ...options, mutation: { ...options.mutation, mutationKey } }
: { mutation: { mutationKey } };
const mutationFn: MutationFunction<
Awaited<ReturnType<typeof apiAccountTokenRefreshCreate>>,
void
> = () => {
return apiAccountTokenRefreshCreate();
};
return { mutationFn, ...mutationOptions };
};
export type ApiAccountTokenRefreshCreateMutationResult = NonNullable<
Awaited<ReturnType<typeof apiAccountTokenRefreshCreate>>
>;
export type ApiAccountTokenRefreshCreateMutationError = void;
/**
* @summary Refresh JWT token using cookie
*/
export const useApiAccountTokenRefreshCreate = <
TError = void,
TContext = unknown,
>(
options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof apiAccountTokenRefreshCreate>>,
TError,
void,
TContext
>;
},
queryClient?: QueryClient,
): UseMutationResult<
Awaited<ReturnType<typeof apiAccountTokenRefreshCreate>>,
TError,
void,
TContext
> => {
const mutationOptions =
getApiAccountTokenRefreshCreateMutationOptions(options);
return useMutation(mutationOptions, queryClient);
};
/**
* Verify user email using the link with uid and token.
* @summary Verify user email via link
*/
export const apiAccountVerifyEmailRetrieve = (
uidb64: string,
token: string,
signal?: AbortSignal,
) => {
return publicMutator<void>({
url: `/api/account/verify-email/${uidb64}/${token}/`,
method: "GET",
signal,
});
};
export const getApiAccountVerifyEmailRetrieveQueryKey = (
uidb64?: string,
token?: string,
) => {
return [`/api/account/verify-email/${uidb64}/${token}/`] as const;
};
export const getApiAccountVerifyEmailRetrieveQueryOptions = <
TData = Awaited<ReturnType<typeof apiAccountVerifyEmailRetrieve>>,
TError = void,
>(
uidb64: string,
token: string,
options?: {
query?: Partial<
UseQueryOptions<
Awaited<ReturnType<typeof apiAccountVerifyEmailRetrieve>>,
TError,
TData
>
>;
},
) => {
const { query: queryOptions } = options ?? {};
const queryKey =
queryOptions?.queryKey ??
getApiAccountVerifyEmailRetrieveQueryKey(uidb64, token);
const queryFn: QueryFunction<
Awaited<ReturnType<typeof apiAccountVerifyEmailRetrieve>>
> = ({ signal }) => apiAccountVerifyEmailRetrieve(uidb64, token, signal);
return {
queryKey,
queryFn,
enabled: !!(uidb64 && token),
...queryOptions,
} as UseQueryOptions<
Awaited<ReturnType<typeof apiAccountVerifyEmailRetrieve>>,
TError,
TData
> & { queryKey: DataTag<QueryKey, TData, TError> };
};
export type ApiAccountVerifyEmailRetrieveQueryResult = NonNullable<
Awaited<ReturnType<typeof apiAccountVerifyEmailRetrieve>>
>;
export type ApiAccountVerifyEmailRetrieveQueryError = void;
export function useApiAccountVerifyEmailRetrieve<
TData = Awaited<ReturnType<typeof apiAccountVerifyEmailRetrieve>>,
TError = void,
>(
uidb64: string,
token: string,
options: {
query: Partial<
UseQueryOptions<
Awaited<ReturnType<typeof apiAccountVerifyEmailRetrieve>>,
TError,
TData
>
> &
Pick<
DefinedInitialDataOptions<
Awaited<ReturnType<typeof apiAccountVerifyEmailRetrieve>>,
TError,
Awaited<ReturnType<typeof apiAccountVerifyEmailRetrieve>>
>,
"initialData"
>;
},
queryClient?: QueryClient,
): DefinedUseQueryResult<TData, TError> & {
queryKey: DataTag<QueryKey, TData, TError>;
};
export function useApiAccountVerifyEmailRetrieve<
TData = Awaited<ReturnType<typeof apiAccountVerifyEmailRetrieve>>,
TError = void,
>(
uidb64: string,
token: string,
options?: {
query?: Partial<
UseQueryOptions<
Awaited<ReturnType<typeof apiAccountVerifyEmailRetrieve>>,
TError,
TData
>
> &
Pick<
UndefinedInitialDataOptions<
Awaited<ReturnType<typeof apiAccountVerifyEmailRetrieve>>,
TError,
Awaited<ReturnType<typeof apiAccountVerifyEmailRetrieve>>
>,
"initialData"
>;
},
queryClient?: QueryClient,
): UseQueryResult<TData, TError> & {
queryKey: DataTag<QueryKey, TData, TError>;
};
export function useApiAccountVerifyEmailRetrieve<
TData = Awaited<ReturnType<typeof apiAccountVerifyEmailRetrieve>>,
TError = void,
>(
uidb64: string,
token: string,
options?: {
query?: Partial<
UseQueryOptions<
Awaited<ReturnType<typeof apiAccountVerifyEmailRetrieve>>,
TError,
TData
>
>;
},
queryClient?: QueryClient,
): UseQueryResult<TData, TError> & {
queryKey: DataTag<QueryKey, TData, TError>;
};
/**
* @summary Verify user email via link
*/
export function useApiAccountVerifyEmailRetrieve<
TData = Awaited<ReturnType<typeof apiAccountVerifyEmailRetrieve>>,
TError = void,
>(
uidb64: string,
token: string,
options?: {
query?: Partial<
UseQueryOptions<
Awaited<ReturnType<typeof apiAccountVerifyEmailRetrieve>>,
TError,
TData
>
>;
},
queryClient?: QueryClient,
): UseQueryResult<TData, TError> & {
queryKey: DataTag<QueryKey, TData, TError>;
} {
const queryOptions = getApiAccountVerifyEmailRetrieveQueryOptions(
uidb64,
token,
options,
);
const query = useQuery(queryOptions, queryClient) as UseQueryResult<
TData,
TError
> & { queryKey: DataTag<QueryKey, TData, TError> };
query.queryKey = queryOptions.queryKey;
return query;
}

View File

@@ -0,0 +1,88 @@
/**
* Generated by orval v7.17.0 🍺
* Do not edit manually.
* OpenAPI spec version: 0.0.0
*/
import { useMutation } from "@tanstack/react-query";
import type {
MutationFunction,
QueryClient,
UseMutationOptions,
UseMutationResult,
} from "@tanstack/react-query";
import { publicMutator } from "../../publicClient";
export const apiAdvertisementContactMeCreate = (signal?: AbortSignal) => {
return publicMutator<void>({
url: `/api/advertisement/contact-me/`,
method: "POST",
signal,
});
};
export const getApiAdvertisementContactMeCreateMutationOptions = <
TError = unknown,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof apiAdvertisementContactMeCreate>>,
TError,
void,
TContext
>;
}): UseMutationOptions<
Awaited<ReturnType<typeof apiAdvertisementContactMeCreate>>,
TError,
void,
TContext
> => {
const mutationKey = ["apiAdvertisementContactMeCreate"];
const { mutation: mutationOptions } = options
? options.mutation &&
"mutationKey" in options.mutation &&
options.mutation.mutationKey
? options
: { ...options, mutation: { ...options.mutation, mutationKey } }
: { mutation: { mutationKey } };
const mutationFn: MutationFunction<
Awaited<ReturnType<typeof apiAdvertisementContactMeCreate>>,
void
> = () => {
return apiAdvertisementContactMeCreate();
};
return { mutationFn, ...mutationOptions };
};
export type ApiAdvertisementContactMeCreateMutationResult = NonNullable<
Awaited<ReturnType<typeof apiAdvertisementContactMeCreate>>
>;
export type ApiAdvertisementContactMeCreateMutationError = unknown;
export const useApiAdvertisementContactMeCreate = <
TError = unknown,
TContext = unknown,
>(
options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof apiAdvertisementContactMeCreate>>,
TError,
void,
TContext
>;
},
queryClient?: QueryClient,
): UseMutationResult<
Awaited<ReturnType<typeof apiAdvertisementContactMeCreate>>,
TError,
void,
TContext
> => {
const mutationOptions =
getApiAdvertisementContactMeCreateMutationOptions(options);
return useMutation(mutationOptions, queryClient);
};

View File

@@ -1,256 +0,0 @@
/**
* Generated by orval v7.17.0 🍺
* Do not edit manually.
* OpenAPI spec version: 0.0.0
*/
import { useMutation } from "@tanstack/react-query";
import type {
MutationFunction,
QueryClient,
UseMutationOptions,
UseMutationResult,
} from "@tanstack/react-query";
import type { CustomTokenObtainPair } from "./models";
import { publicMutator } from "../../publicClient";
/**
* Authenticate user and obtain JWT access and refresh tokens. You can use either email or username.
* @summary Obtain JWT access and refresh tokens (cookie-based)
*/
export const apiAccountLoginCreate = (
customTokenObtainPair: CustomTokenObtainPair,
signal?: AbortSignal,
) => {
return publicMutator<CustomTokenObtainPair>({
url: `/api/account/login/`,
method: "POST",
headers: { "Content-Type": "application/json" },
data: customTokenObtainPair,
signal,
});
};
export const getApiAccountLoginCreateMutationOptions = <
TError = void,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof apiAccountLoginCreate>>,
TError,
{ data: CustomTokenObtainPair },
TContext
>;
}): UseMutationOptions<
Awaited<ReturnType<typeof apiAccountLoginCreate>>,
TError,
{ data: CustomTokenObtainPair },
TContext
> => {
const mutationKey = ["apiAccountLoginCreate"];
const { mutation: mutationOptions } = options
? options.mutation &&
"mutationKey" in options.mutation &&
options.mutation.mutationKey
? options
: { ...options, mutation: { ...options.mutation, mutationKey } }
: { mutation: { mutationKey } };
const mutationFn: MutationFunction<
Awaited<ReturnType<typeof apiAccountLoginCreate>>,
{ data: CustomTokenObtainPair }
> = (props) => {
const { data } = props ?? {};
return apiAccountLoginCreate(data);
};
return { mutationFn, ...mutationOptions };
};
export type ApiAccountLoginCreateMutationResult = NonNullable<
Awaited<ReturnType<typeof apiAccountLoginCreate>>
>;
export type ApiAccountLoginCreateMutationBody = CustomTokenObtainPair;
export type ApiAccountLoginCreateMutationError = void;
/**
* @summary Obtain JWT access and refresh tokens (cookie-based)
*/
export const useApiAccountLoginCreate = <TError = void, TContext = unknown>(
options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof apiAccountLoginCreate>>,
TError,
{ data: CustomTokenObtainPair },
TContext
>;
},
queryClient?: QueryClient,
): UseMutationResult<
Awaited<ReturnType<typeof apiAccountLoginCreate>>,
TError,
{ data: CustomTokenObtainPair },
TContext
> => {
const mutationOptions = getApiAccountLoginCreateMutationOptions(options);
return useMutation(mutationOptions, queryClient);
};
/**
* Logs out the user by deleting access and refresh token cookies.
* @summary Logout user (delete access and refresh token cookies)
*/
export const apiAccountLogoutCreate = (signal?: AbortSignal) => {
return publicMutator<void>({
url: `/api/account/logout/`,
method: "POST",
signal,
});
};
export const getApiAccountLogoutCreateMutationOptions = <
TError = unknown,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof apiAccountLogoutCreate>>,
TError,
void,
TContext
>;
}): UseMutationOptions<
Awaited<ReturnType<typeof apiAccountLogoutCreate>>,
TError,
void,
TContext
> => {
const mutationKey = ["apiAccountLogoutCreate"];
const { mutation: mutationOptions } = options
? options.mutation &&
"mutationKey" in options.mutation &&
options.mutation.mutationKey
? options
: { ...options, mutation: { ...options.mutation, mutationKey } }
: { mutation: { mutationKey } };
const mutationFn: MutationFunction<
Awaited<ReturnType<typeof apiAccountLogoutCreate>>,
void
> = () => {
return apiAccountLogoutCreate();
};
return { mutationFn, ...mutationOptions };
};
export type ApiAccountLogoutCreateMutationResult = NonNullable<
Awaited<ReturnType<typeof apiAccountLogoutCreate>>
>;
export type ApiAccountLogoutCreateMutationError = unknown;
/**
* @summary Logout user (delete access and refresh token cookies)
*/
export const useApiAccountLogoutCreate = <TError = unknown, TContext = unknown>(
options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof apiAccountLogoutCreate>>,
TError,
void,
TContext
>;
},
queryClient?: QueryClient,
): UseMutationResult<
Awaited<ReturnType<typeof apiAccountLogoutCreate>>,
TError,
void,
TContext
> => {
const mutationOptions = getApiAccountLogoutCreateMutationOptions(options);
return useMutation(mutationOptions, queryClient);
};
/**
* Refresh JWT access and refresh tokens using the refresh token stored in cookie.
* @summary Refresh JWT token using cookie
*/
export const apiAccountTokenRefreshCreate = (signal?: AbortSignal) => {
return publicMutator<void>({
url: `/api/account/token/refresh/`,
method: "POST",
signal,
});
};
export const getApiAccountTokenRefreshCreateMutationOptions = <
TError = void,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof apiAccountTokenRefreshCreate>>,
TError,
void,
TContext
>;
}): UseMutationOptions<
Awaited<ReturnType<typeof apiAccountTokenRefreshCreate>>,
TError,
void,
TContext
> => {
const mutationKey = ["apiAccountTokenRefreshCreate"];
const { mutation: mutationOptions } = options
? options.mutation &&
"mutationKey" in options.mutation &&
options.mutation.mutationKey
? options
: { ...options, mutation: { ...options.mutation, mutationKey } }
: { mutation: { mutationKey } };
const mutationFn: MutationFunction<
Awaited<ReturnType<typeof apiAccountTokenRefreshCreate>>,
void
> = () => {
return apiAccountTokenRefreshCreate();
};
return { mutationFn, ...mutationOptions };
};
export type ApiAccountTokenRefreshCreateMutationResult = NonNullable<
Awaited<ReturnType<typeof apiAccountTokenRefreshCreate>>
>;
export type ApiAccountTokenRefreshCreateMutationError = void;
/**
* @summary Refresh JWT token using cookie
*/
export const useApiAccountTokenRefreshCreate = <
TError = void,
TContext = unknown,
>(
options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof apiAccountTokenRefreshCreate>>,
TError,
void,
TContext
>;
},
queryClient?: QueryClient,
): UseMutationResult<
Awaited<ReturnType<typeof apiAccountTokenRefreshCreate>>,
TError,
void,
TContext
> => {
const mutationOptions =
getApiAccountTokenRefreshCreateMutationOptions(options);
return useMutation(mutationOptions, queryClient);
};

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,408 @@
/**
* Generated by orval v7.17.0 🍺
* Do not edit manually.
* OpenAPI spec version: 0.0.0
*/
import { useQuery } from "@tanstack/react-query";
import type {
DataTag,
DefinedInitialDataOptions,
DefinedUseQueryResult,
QueryClient,
QueryFunction,
QueryKey,
UndefinedInitialDataOptions,
UseQueryOptions,
UseQueryResult,
} from "@tanstack/react-query";
import type {
ApiConfigurationPublicShopConfigurationListParams,
PaginatedSiteConfigurationPublicList,
SiteConfigurationPublic,
} from "./models";
import { publicMutator } from "../../publicClient";
/**
* @summary List site configuration (public)
*/
export const apiConfigurationPublicShopConfigurationList = (
params?: ApiConfigurationPublicShopConfigurationListParams,
signal?: AbortSignal,
) => {
return publicMutator<PaginatedSiteConfigurationPublicList>({
url: `/api/configuration/public/shop-configuration/`,
method: "GET",
params,
signal,
});
};
export const getApiConfigurationPublicShopConfigurationListQueryKey = (
params?: ApiConfigurationPublicShopConfigurationListParams,
) => {
return [
`/api/configuration/public/shop-configuration/`,
...(params ? [params] : []),
] as const;
};
export const getApiConfigurationPublicShopConfigurationListQueryOptions = <
TData = Awaited<
ReturnType<typeof apiConfigurationPublicShopConfigurationList>
>,
TError = unknown,
>(
params?: ApiConfigurationPublicShopConfigurationListParams,
options?: {
query?: Partial<
UseQueryOptions<
Awaited<ReturnType<typeof apiConfigurationPublicShopConfigurationList>>,
TError,
TData
>
>;
},
) => {
const { query: queryOptions } = options ?? {};
const queryKey =
queryOptions?.queryKey ??
getApiConfigurationPublicShopConfigurationListQueryKey(params);
const queryFn: QueryFunction<
Awaited<ReturnType<typeof apiConfigurationPublicShopConfigurationList>>
> = ({ signal }) =>
apiConfigurationPublicShopConfigurationList(params, signal);
return { queryKey, queryFn, ...queryOptions } as UseQueryOptions<
Awaited<ReturnType<typeof apiConfigurationPublicShopConfigurationList>>,
TError,
TData
> & { queryKey: DataTag<QueryKey, TData, TError> };
};
export type ApiConfigurationPublicShopConfigurationListQueryResult =
NonNullable<
Awaited<ReturnType<typeof apiConfigurationPublicShopConfigurationList>>
>;
export type ApiConfigurationPublicShopConfigurationListQueryError = unknown;
export function useApiConfigurationPublicShopConfigurationList<
TData = Awaited<
ReturnType<typeof apiConfigurationPublicShopConfigurationList>
>,
TError = unknown,
>(
params: undefined | ApiConfigurationPublicShopConfigurationListParams,
options: {
query: Partial<
UseQueryOptions<
Awaited<ReturnType<typeof apiConfigurationPublicShopConfigurationList>>,
TError,
TData
>
> &
Pick<
DefinedInitialDataOptions<
Awaited<
ReturnType<typeof apiConfigurationPublicShopConfigurationList>
>,
TError,
Awaited<
ReturnType<typeof apiConfigurationPublicShopConfigurationList>
>
>,
"initialData"
>;
},
queryClient?: QueryClient,
): DefinedUseQueryResult<TData, TError> & {
queryKey: DataTag<QueryKey, TData, TError>;
};
export function useApiConfigurationPublicShopConfigurationList<
TData = Awaited<
ReturnType<typeof apiConfigurationPublicShopConfigurationList>
>,
TError = unknown,
>(
params?: ApiConfigurationPublicShopConfigurationListParams,
options?: {
query?: Partial<
UseQueryOptions<
Awaited<ReturnType<typeof apiConfigurationPublicShopConfigurationList>>,
TError,
TData
>
> &
Pick<
UndefinedInitialDataOptions<
Awaited<
ReturnType<typeof apiConfigurationPublicShopConfigurationList>
>,
TError,
Awaited<
ReturnType<typeof apiConfigurationPublicShopConfigurationList>
>
>,
"initialData"
>;
},
queryClient?: QueryClient,
): UseQueryResult<TData, TError> & {
queryKey: DataTag<QueryKey, TData, TError>;
};
export function useApiConfigurationPublicShopConfigurationList<
TData = Awaited<
ReturnType<typeof apiConfigurationPublicShopConfigurationList>
>,
TError = unknown,
>(
params?: ApiConfigurationPublicShopConfigurationListParams,
options?: {
query?: Partial<
UseQueryOptions<
Awaited<ReturnType<typeof apiConfigurationPublicShopConfigurationList>>,
TError,
TData
>
>;
},
queryClient?: QueryClient,
): UseQueryResult<TData, TError> & {
queryKey: DataTag<QueryKey, TData, TError>;
};
/**
* @summary List site configuration (public)
*/
export function useApiConfigurationPublicShopConfigurationList<
TData = Awaited<
ReturnType<typeof apiConfigurationPublicShopConfigurationList>
>,
TError = unknown,
>(
params?: ApiConfigurationPublicShopConfigurationListParams,
options?: {
query?: Partial<
UseQueryOptions<
Awaited<ReturnType<typeof apiConfigurationPublicShopConfigurationList>>,
TError,
TData
>
>;
},
queryClient?: QueryClient,
): UseQueryResult<TData, TError> & {
queryKey: DataTag<QueryKey, TData, TError>;
} {
const queryOptions =
getApiConfigurationPublicShopConfigurationListQueryOptions(params, options);
const query = useQuery(queryOptions, queryClient) as UseQueryResult<
TData,
TError
> & { queryKey: DataTag<QueryKey, TData, TError> };
query.queryKey = queryOptions.queryKey;
return query;
}
/**
* @summary Retrieve site configuration (public)
*/
export const apiConfigurationPublicShopConfigurationRetrieve = (
id: number,
signal?: AbortSignal,
) => {
return publicMutator<SiteConfigurationPublic>({
url: `/api/configuration/public/shop-configuration/${id}/`,
method: "GET",
signal,
});
};
export const getApiConfigurationPublicShopConfigurationRetrieveQueryKey = (
id?: number,
) => {
return [`/api/configuration/public/shop-configuration/${id}/`] as const;
};
export const getApiConfigurationPublicShopConfigurationRetrieveQueryOptions = <
TData = Awaited<
ReturnType<typeof apiConfigurationPublicShopConfigurationRetrieve>
>,
TError = unknown,
>(
id: number,
options?: {
query?: Partial<
UseQueryOptions<
Awaited<
ReturnType<typeof apiConfigurationPublicShopConfigurationRetrieve>
>,
TError,
TData
>
>;
},
) => {
const { query: queryOptions } = options ?? {};
const queryKey =
queryOptions?.queryKey ??
getApiConfigurationPublicShopConfigurationRetrieveQueryKey(id);
const queryFn: QueryFunction<
Awaited<ReturnType<typeof apiConfigurationPublicShopConfigurationRetrieve>>
> = ({ signal }) =>
apiConfigurationPublicShopConfigurationRetrieve(id, signal);
return {
queryKey,
queryFn,
enabled: !!id,
...queryOptions,
} as UseQueryOptions<
Awaited<ReturnType<typeof apiConfigurationPublicShopConfigurationRetrieve>>,
TError,
TData
> & { queryKey: DataTag<QueryKey, TData, TError> };
};
export type ApiConfigurationPublicShopConfigurationRetrieveQueryResult =
NonNullable<
Awaited<ReturnType<typeof apiConfigurationPublicShopConfigurationRetrieve>>
>;
export type ApiConfigurationPublicShopConfigurationRetrieveQueryError = unknown;
export function useApiConfigurationPublicShopConfigurationRetrieve<
TData = Awaited<
ReturnType<typeof apiConfigurationPublicShopConfigurationRetrieve>
>,
TError = unknown,
>(
id: number,
options: {
query: Partial<
UseQueryOptions<
Awaited<
ReturnType<typeof apiConfigurationPublicShopConfigurationRetrieve>
>,
TError,
TData
>
> &
Pick<
DefinedInitialDataOptions<
Awaited<
ReturnType<typeof apiConfigurationPublicShopConfigurationRetrieve>
>,
TError,
Awaited<
ReturnType<typeof apiConfigurationPublicShopConfigurationRetrieve>
>
>,
"initialData"
>;
},
queryClient?: QueryClient,
): DefinedUseQueryResult<TData, TError> & {
queryKey: DataTag<QueryKey, TData, TError>;
};
export function useApiConfigurationPublicShopConfigurationRetrieve<
TData = Awaited<
ReturnType<typeof apiConfigurationPublicShopConfigurationRetrieve>
>,
TError = unknown,
>(
id: number,
options?: {
query?: Partial<
UseQueryOptions<
Awaited<
ReturnType<typeof apiConfigurationPublicShopConfigurationRetrieve>
>,
TError,
TData
>
> &
Pick<
UndefinedInitialDataOptions<
Awaited<
ReturnType<typeof apiConfigurationPublicShopConfigurationRetrieve>
>,
TError,
Awaited<
ReturnType<typeof apiConfigurationPublicShopConfigurationRetrieve>
>
>,
"initialData"
>;
},
queryClient?: QueryClient,
): UseQueryResult<TData, TError> & {
queryKey: DataTag<QueryKey, TData, TError>;
};
export function useApiConfigurationPublicShopConfigurationRetrieve<
TData = Awaited<
ReturnType<typeof apiConfigurationPublicShopConfigurationRetrieve>
>,
TError = unknown,
>(
id: number,
options?: {
query?: Partial<
UseQueryOptions<
Awaited<
ReturnType<typeof apiConfigurationPublicShopConfigurationRetrieve>
>,
TError,
TData
>
>;
},
queryClient?: QueryClient,
): UseQueryResult<TData, TError> & {
queryKey: DataTag<QueryKey, TData, TError>;
};
/**
* @summary Retrieve site configuration (public)
*/
export function useApiConfigurationPublicShopConfigurationRetrieve<
TData = Awaited<
ReturnType<typeof apiConfigurationPublicShopConfigurationRetrieve>
>,
TError = unknown,
>(
id: number,
options?: {
query?: Partial<
UseQueryOptions<
Awaited<
ReturnType<typeof apiConfigurationPublicShopConfigurationRetrieve>
>,
TError,
TData
>
>;
},
queryClient?: QueryClient,
): UseQueryResult<TData, TError> & {
queryKey: DataTag<QueryKey, TData, TError>;
} {
const queryOptions =
getApiConfigurationPublicShopConfigurationRetrieveQueryOptions(id, options);
const query = useQuery(queryOptions, queryClient) as UseQueryResult<
TData,
TError
> & { queryKey: DataTag<QueryKey, TData, TError> };
query.queryKey = queryOptions.queryKey;
return query;
}

View File

@@ -31,6 +31,21 @@ import type {
import { publicMutator } from "../../publicClient";
/**
*
Fetch detailed information about a video from supported platforms.
**Supported platforms:** YouTube, TikTok, Vimeo, Twitter, Instagram, Facebook, Reddit, and many more.
**Returns:**
- Video title, duration, and thumbnail
- Available video qualities/resolutions
- Available audio formats
**Usage:**
```
GET /api/downloader/download/?url=https://youtube.com/watch?v=VIDEO_ID
```
* @summary Get video info from URL
*/
export const apiDownloaderDownloadRetrieve = (
@@ -195,6 +210,29 @@ export function useApiDownloaderDownloadRetrieve<
}
/**
*
Download video with optional quality constraints and container format conversion.
**Quality Parameters (optional):**
- If not specified, yt-dlp will automatically select the best available quality.
- `video_quality`: Maximum video height in pixels (e.g., 1080, 720, 480).
- `audio_quality`: Maximum audio bitrate in kbps (e.g., 320, 192, 128).
**Format/Extension:**
- Any format supported by ffmpeg (mp4, mkv, webm, avi, mov, flv, m4a, mp3, etc.).
- Defaults to 'mp4' if not specified.
- The conversion is handled automatically by ffmpeg in the background.
**Advanced Options:**
- `subtitles`: Download subtitles (language codes like 'en,cs' or 'all')
- `embed_subtitles`: Embed subtitles into video file
- `embed_thumbnail`: Embed thumbnail as cover art
- `extract_audio`: Extract audio only (ignores video quality)
- `start_time`: Trim start (format: HH:MM:SS or seconds)
- `end_time`: Trim end (format: HH:MM:SS or seconds)
- `playlist_items`: Download specific playlist items (e.g., '1-5,8,10')
- `cookies`: Browser cookies for age-restricted content (Netscape format)
* @summary Download video from URL
*/
export const apiDownloaderDownloadCreate = (

View File

@@ -0,0 +1,20 @@
/**
* Generated by orval v7.17.0 🍺
* Do not edit manually.
* OpenAPI spec version: 0.0.0
*/
export type ApiCommerceCategoriesListParams = {
/**
* Which field to use when ordering the results.
*/
ordering?: string;
/**
* A page number within the paginated result set.
*/
page?: number;
/**
* A search term.
*/
search?: string;
};

View File

@@ -0,0 +1,20 @@
/**
* Generated by orval v7.17.0 🍺
* Do not edit manually.
* OpenAPI spec version: 0.0.0
*/
export type ApiCommerceDiscountCodesListParams = {
/**
* Which field to use when ordering the results.
*/
ordering?: string;
/**
* A page number within the paginated result set.
*/
page?: number;
/**
* A search term.
*/
search?: string;
};

View File

@@ -0,0 +1,12 @@
/**
* Generated by orval v7.17.0 🍺
* Do not edit manually.
* OpenAPI spec version: 0.0.0
*/
export type ApiCommerceOrdersListParams = {
/**
* A page number within the paginated result set.
*/
page?: number;
};

View File

@@ -0,0 +1,20 @@
/**
* Generated by orval v7.17.0 🍺
* Do not edit manually.
* OpenAPI spec version: 0.0.0
*/
export type ApiCommerceProductImagesListParams = {
/**
* Which field to use when ordering the results.
*/
ordering?: string;
/**
* A page number within the paginated result set.
*/
page?: number;
/**
* A search term.
*/
search?: string;
};

View File

@@ -0,0 +1,20 @@
/**
* Generated by orval v7.17.0 🍺
* Do not edit manually.
* OpenAPI spec version: 0.0.0
*/
export type ApiCommerceProductsListParams = {
/**
* Which field to use when ordering the results.
*/
ordering?: string;
/**
* A page number within the paginated result set.
*/
page?: number;
/**
* A search term.
*/
search?: string;
};

View File

@@ -0,0 +1,12 @@
/**
* Generated by orval v7.17.0 🍺
* Do not edit manually.
* OpenAPI spec version: 0.0.0
*/
export type ApiConfigurationPublicShopConfigurationListParams = {
/**
* A page number within the paginated result set.
*/
page?: number;
};

View File

@@ -6,7 +6,7 @@
export type ApiDownloaderDownloadRetrieveParams = {
/**
* Video URL to analyze
* Video URL from YouTube, TikTok, Vimeo, etc. Must be a valid URL from a supported platform.
* @minLength 1
*/
url: string;

View File

@@ -6,5 +6,4 @@
export interface DownloadErrorResponse {
error: string;
allowed?: string[];
}

View File

@@ -3,34 +3,51 @@
* Do not edit manually.
* OpenAPI spec version: 0.0.0
*/
import type { ExtEnum } from "./extEnum";
import type { FormatEnum } from "./formatEnum";
export interface DownloadRequest {
/** Video URL to download */
/** Video URL to download from supported platforms */
url: string;
/** Choose container format: mp4 (H.264 + AAC, most compatible), mkv (flexible, lossless container), webm (VP9/AV1 + Opus), flv (legacy), mov (Apple-friendly), avi (older), ogg (mostly obsolete).
* `mp4` - mp4
* `mkv` - mkv
* `webm` - webm
* `flv` - flv
* `mov` - mov
* `avi` - avi
* `ogg` - ogg */
ext?: ExtEnum;
/** Alias of 'ext' (deprecated).
* `mp4` - mp4
* `mkv` - mkv
* `webm` - webm
* `flv` - flv
* `mov` - mov
* `avi` - avi
* `ogg` - ogg */
format?: FormatEnum;
/** Target max video height (e.g. 1080). */
video_quality: number;
/** Target max audio bitrate in kbps (e.g. 160). */
audio_quality: number;
/** Container format for the output file. Common formats: mp4 (H.264 + AAC, most compatible), mkv (flexible, lossless container), webm (VP9/AV1 + Opus), flv (legacy), mov (Apple-friendly), avi (older), ogg, m4a (audio only), mp3 (audio only). The extension will be validated by ffmpeg during conversion. */
ext?: string;
/**
* Optional: Target max video height in pixels (e.g. 1080, 720). If omitted, best quality is selected.
* @nullable
*/
video_quality?: number | null;
/**
* Optional: Target max audio bitrate in kbps (e.g. 320, 192, 128). If omitted, best quality is selected.
* @nullable
*/
audio_quality?: number | null;
/**
* Language codes (e.g., 'en', 'cs', 'en,cs') or 'all' for all available subtitles
* @nullable
*/
subtitles?: string | null;
/** Embed subtitles into the video file (requires mkv or mp4 container) */
embed_subtitles?: boolean;
/** Embed thumbnail as cover art in the file */
embed_thumbnail?: boolean;
/** Extract audio only, ignoring video quality settings */
extract_audio?: boolean;
/**
* Start time for trimming (format: HH:MM:SS or seconds as integer)
* @nullable
*/
start_time?: string | null;
/**
* End time for trimming (format: HH:MM:SS or seconds as integer)
* @nullable
*/
end_time?: string | null;
/**
* Playlist items to download (e.g., '1-5,8,10' or '1,2,3')
* @nullable
*/
playlist_items?: string | null;
/**
* Browser cookies in Netscape format for age-restricted content. Export from browser extensions like 'Get cookies.txt'
* @nullable
*/
cookies?: string | null;
}

View File

@@ -5,5 +5,6 @@
*/
export interface ErrorResponse {
/** Error message describing what went wrong */
error: string;
}

View File

@@ -1,27 +0,0 @@
/**
* Generated by orval v7.17.0 🍺
* Do not edit manually.
* OpenAPI spec version: 0.0.0
*/
/**
* * `mp4` - mp4
* `mkv` - mkv
* `webm` - webm
* `flv` - flv
* `mov` - mov
* `avi` - avi
* `ogg` - ogg
*/
export type ExtEnum = (typeof ExtEnum)[keyof typeof ExtEnum];
// eslint-disable-next-line @typescript-eslint/no-redeclare
export const ExtEnum = {
mp4: "mp4",
mkv: "mkv",
webm: "webm",
flv: "flv",
mov: "mov",
avi: "avi",
ogg: "ogg",
} as const;

View File

@@ -1,27 +0,0 @@
/**
* Generated by orval v7.17.0 🍺
* Do not edit manually.
* OpenAPI spec version: 0.0.0
*/
/**
* * `mp4` - mp4
* `mkv` - mkv
* `webm` - webm
* `flv` - flv
* `mov` - mov
* `avi` - avi
* `ogg` - ogg
*/
export type FormatEnum = (typeof FormatEnum)[keyof typeof FormatEnum];
// eslint-disable-next-line @typescript-eslint/no-redeclare
export const FormatEnum = {
mp4: "mp4",
mkv: "mkv",
webm: "webm",
flv: "flv",
mov: "mov",
avi: "avi",
ogg: "ogg",
} as const;

View File

@@ -8,6 +8,12 @@ export * from "./additionalParam";
export * from "./apiChoicesRetrieve200";
export * from "./apiChoicesRetrieve200Item";
export * from "./apiChoicesRetrieveParams";
export * from "./apiCommerceCategoriesListParams";
export * from "./apiCommerceDiscountCodesListParams";
export * from "./apiCommerceOrdersListParams";
export * from "./apiCommerceProductImagesListParams";
export * from "./apiCommerceProductsListParams";
export * from "./apiConfigurationPublicShopConfigurationListParams";
export * from "./apiDownloaderDownloadRetrieveParams";
export * from "./callback";
export * from "./carrierRead";
@@ -22,8 +28,6 @@ export * from "./downloadErrorResponse";
export * from "./downloadRequest";
export * from "./downloaderStats";
export * from "./errorResponse";
export * from "./extEnum";
export * from "./formatEnum";
export * from "./item";
export * from "./orderCarrier";
export * from "./orderCreate";

View File

@@ -5,11 +5,20 @@
*/
export interface VideoInfoResponse {
/** Video title */
title: string;
/** @nullable */
/**
* Video duration in seconds (null if unavailable)
* @nullable
*/
duration: number | null;
/** @nullable */
/**
* URL to video thumbnail image
* @nullable
*/
thumbnail: string | null;
/** List of available video quality options (e.g., '1080p', '720p', '480p') */
video_resolutions: string[];
/** List of available audio format options */
audio_resolutions: string[];
}