@htkimura/files-storage-backend.rest-client 0.0.31 → 0.0.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,29 @@
1
- import type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';
1
+ import type { QueryKey, UseMutationOptions, UseMutationResult, UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
2
2
  import type { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';
3
3
  import type { CreateFolderDto, Folder, RenameFolderDto, UpdateParentFolderDto } from '.././model';
4
+ /**
5
+ * Returns every folder belonging to the authenticated user, in any parent location.
6
+ * @summary List all folders
7
+ */
8
+ export declare const listMyFolders: (options?: AxiosRequestConfig) => Promise<AxiosResponse<Folder[]>>;
9
+ export declare const getListMyFoldersQueryKey: () => readonly ["/folders"];
10
+ export declare const getListMyFoldersQueryOptions: <TData = AxiosResponse<Folder[], any>, TError = AxiosError<unknown, any>>(options?: {
11
+ query?: UseQueryOptions<Awaited<ReturnType<typeof listMyFolders>>, TError, TData>;
12
+ axios?: AxiosRequestConfig;
13
+ }) => UseQueryOptions<Awaited<ReturnType<typeof listMyFolders>>, TError, TData> & {
14
+ queryKey: QueryKey;
15
+ };
16
+ export type ListMyFoldersQueryResult = NonNullable<Awaited<ReturnType<typeof listMyFolders>>>;
17
+ export type ListMyFoldersQueryError = AxiosError<unknown>;
18
+ /**
19
+ * @summary List all folders
20
+ */
21
+ export declare function useListMyFolders<TData = Awaited<ReturnType<typeof listMyFolders>>, TError = AxiosError<unknown>>(options?: {
22
+ query?: UseQueryOptions<Awaited<ReturnType<typeof listMyFolders>>, TError, TData>;
23
+ axios?: AxiosRequestConfig;
24
+ }): UseQueryResult<TData, TError> & {
25
+ queryKey: QueryKey;
26
+ };
4
27
  /**
5
28
  * Creates a new folder for the authenticated user. Optionally, can specify a parent folder to create it inside.
6
29
  * @summary Create a new folder
@@ -5,8 +5,33 @@
5
5
  * This API is for storing files for different users
6
6
  * OpenAPI spec version: 1.0
7
7
  */
8
- import { useMutation } from '@tanstack/react-query';
8
+ import { useMutation, useQuery } from '@tanstack/react-query';
9
9
  import axios from 'axios';
10
+ /**
11
+ * Returns every folder belonging to the authenticated user, in any parent location.
12
+ * @summary List all folders
13
+ */
14
+ export const listMyFolders = (options) => {
15
+ return axios.get(`/folders`, options);
16
+ };
17
+ export const getListMyFoldersQueryKey = () => {
18
+ return [`/folders`];
19
+ };
20
+ export const getListMyFoldersQueryOptions = (options) => {
21
+ const { query: queryOptions, axios: axiosOptions } = options ?? {};
22
+ const queryKey = queryOptions?.queryKey ?? getListMyFoldersQueryKey();
23
+ const queryFn = ({ signal }) => listMyFolders({ signal, ...axiosOptions });
24
+ return { queryKey, queryFn, ...queryOptions };
25
+ };
26
+ /**
27
+ * @summary List all folders
28
+ */
29
+ export function useListMyFolders(options) {
30
+ const queryOptions = getListMyFoldersQueryOptions(options);
31
+ const query = useQuery(queryOptions);
32
+ query.queryKey = queryOptions.queryKey;
33
+ return query;
34
+ }
10
35
  /**
11
36
  * Creates a new folder for the authenticated user. Optionally, can specify a parent folder to create it inside.
12
37
  * @summary Create a new folder
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Generated by orval v7.4.1 🍺
3
+ * Do not edit manually.
4
+ * files-storage
5
+ * This API is for storing files for different users
6
+ * OpenAPI spec version: 1.0
7
+ */
8
+ export type AbortMultipartUploadParams = {
9
+ fileId: string;
10
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Generated by orval v7.4.1 🍺
3
+ * Do not edit manually.
4
+ * files-storage
5
+ * This API is for storing files for different users
6
+ * OpenAPI spec version: 1.0
7
+ */
8
+ export {};
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Generated by orval v7.4.1 🍺
3
+ * Do not edit manually.
4
+ * files-storage
5
+ * This API is for storing files for different users
6
+ * OpenAPI spec version: 1.0
7
+ */
8
+ import type { MultipartUploadedPartDto } from './multipartUploadedPartDto';
9
+ export interface CompleteMultipartUploadDto {
10
+ fileId: string;
11
+ parts: MultipartUploadedPartDto[];
12
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -16,4 +16,5 @@ export interface File {
16
16
  thumbnailPath?: string;
17
17
  userId: string;
18
18
  folderId?: string;
19
+ multipartUploadId?: string;
19
20
  }
@@ -16,5 +16,6 @@ export interface FileWithPresignedThumbnailUrl {
16
16
  thumbnailPath?: string;
17
17
  userId: string;
18
18
  folderId?: string;
19
- presignedThumbnailUrl: string;
19
+ multipartUploadId?: string;
20
+ presignedThumbnailUrl?: string;
20
21
  }
@@ -16,5 +16,6 @@ export interface FileWithPresignedUrl {
16
16
  thumbnailPath?: string;
17
17
  userId: string;
18
18
  folderId?: string;
19
+ multipartUploadId?: string;
19
20
  presignedUrl: string;
20
21
  }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Generated by orval v7.4.1 🍺
3
+ * Do not edit manually.
4
+ * files-storage
5
+ * This API is for storing files for different users
6
+ * OpenAPI spec version: 1.0
7
+ */
8
+ export type GetMultipartPartUrlParams = {
9
+ fileId: string;
10
+ partNumber: number;
11
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Generated by orval v7.4.1 🍺
3
+ * Do not edit manually.
4
+ * files-storage
5
+ * This API is for storing files for different users
6
+ * OpenAPI spec version: 1.0
7
+ */
8
+ export {};
@@ -5,6 +5,8 @@
5
5
  * This API is for storing files for different users
6
6
  * OpenAPI spec version: 1.0
7
7
  */
8
+ export * from './abortMultipartUploadParams';
9
+ export * from './completeMultipartUploadDto';
8
10
  export * from './createFolderDto';
9
11
  export * from './createUserDto';
10
12
  export * from './deleteBulkFilesByIdsParams';
@@ -15,13 +17,18 @@ export * from './fileWithPresignedThumbnailUrl';
15
17
  export * from './fileWithPresignedUrl';
16
18
  export * from './folder';
17
19
  export * from './getBulkFilesByIdsParams';
20
+ export * from './getMultipartPartUrlParams';
18
21
  export * from './getPresignedUploadUrlParams';
19
22
  export * from './getUserFilesOutput';
23
+ export * from './initMultipartUploadDto';
24
+ export * from './initMultipartUploadOutput';
20
25
  export * from './listChildrenData';
21
26
  export * from './listChildrenOutput';
22
27
  export * from './listChildrenParams';
23
28
  export * from './loginDto';
24
29
  export * from './moveFileToFolderDto';
30
+ export * from './multipartPartUrlOutput';
31
+ export * from './multipartUploadedPartDto';
25
32
  export * from './myFilesParams';
26
33
  export * from './refreshTokenDto';
27
34
  export * from './renameFolderDto';
@@ -5,6 +5,8 @@
5
5
  * This API is for storing files for different users
6
6
  * OpenAPI spec version: 1.0
7
7
  */
8
+ export * from './abortMultipartUploadParams';
9
+ export * from './completeMultipartUploadDto';
8
10
  export * from './createFolderDto';
9
11
  export * from './createUserDto';
10
12
  export * from './deleteBulkFilesByIdsParams';
@@ -15,13 +17,18 @@ export * from './fileWithPresignedThumbnailUrl';
15
17
  export * from './fileWithPresignedUrl';
16
18
  export * from './folder';
17
19
  export * from './getBulkFilesByIdsParams';
20
+ export * from './getMultipartPartUrlParams';
18
21
  export * from './getPresignedUploadUrlParams';
19
22
  export * from './getUserFilesOutput';
23
+ export * from './initMultipartUploadDto';
24
+ export * from './initMultipartUploadOutput';
20
25
  export * from './listChildrenData';
21
26
  export * from './listChildrenOutput';
22
27
  export * from './listChildrenParams';
23
28
  export * from './loginDto';
24
29
  export * from './moveFileToFolderDto';
30
+ export * from './multipartPartUrlOutput';
31
+ export * from './multipartUploadedPartDto';
25
32
  export * from './myFilesParams';
26
33
  export * from './refreshTokenDto';
27
34
  export * from './renameFolderDto';
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Generated by orval v7.4.1 🍺
3
+ * Do not edit manually.
4
+ * files-storage
5
+ * This API is for storing files for different users
6
+ * OpenAPI spec version: 1.0
7
+ */
8
+ export interface InitMultipartUploadDto {
9
+ fileName: string;
10
+ fileType: string;
11
+ fileSize: number;
12
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Generated by orval v7.4.1 🍺
3
+ * Do not edit manually.
4
+ * files-storage
5
+ * This API is for storing files for different users
6
+ * OpenAPI spec version: 1.0
7
+ */
8
+ export {};
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Generated by orval v7.4.1 🍺
3
+ * Do not edit manually.
4
+ * files-storage
5
+ * This API is for storing files for different users
6
+ * OpenAPI spec version: 1.0
7
+ */
8
+ import type { File } from './file';
9
+ export interface InitMultipartUploadOutput {
10
+ file: File;
11
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Generated by orval v7.4.1 🍺
3
+ * Do not edit manually.
4
+ * files-storage
5
+ * This API is for storing files for different users
6
+ * OpenAPI spec version: 1.0
7
+ */
8
+ export interface MultipartPartUrlOutput {
9
+ presignedUrl: string;
10
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Generated by orval v7.4.1 🍺
3
+ * Do not edit manually.
4
+ * files-storage
5
+ * This API is for storing files for different users
6
+ * OpenAPI spec version: 1.0
7
+ */
8
+ export {};
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Generated by orval v7.4.1 🍺
3
+ * Do not edit manually.
4
+ * files-storage
5
+ * This API is for storing files for different users
6
+ * OpenAPI spec version: 1.0
7
+ */
8
+ export interface MultipartUploadedPartDto {
9
+ /**
10
+ * @minimum 1
11
+ * @maximum 10000
12
+ */
13
+ partNumber: number;
14
+ /** ETag returned from the part PUT response (with or without quotes) */
15
+ etag: string;
16
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Generated by orval v7.4.1 🍺
3
+ * Do not edit manually.
4
+ * files-storage
5
+ * This API is for storing files for different users
6
+ * OpenAPI spec version: 1.0
7
+ */
8
+ export {};
@@ -1,6 +1,6 @@
1
1
  import type { QueryKey, UseMutationOptions, UseMutationResult, UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
2
2
  import type { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';
3
- import type { DeleteBulkFilesByIdsParams, DeleteBulkFilesOutput, File, FileWithPresignedUrl, GetBulkFilesByIdsParams, GetPresignedUploadUrlParams, ListChildrenOutput, ListChildrenParams, MoveFileToFolderDto, UploadFileOutput } from '.././model';
3
+ import type { AbortMultipartUploadParams, CompleteMultipartUploadDto, DeleteBulkFilesByIdsParams, DeleteBulkFilesOutput, File, FileWithPresignedUrl, GetBulkFilesByIdsParams, GetMultipartPartUrlParams, GetPresignedUploadUrlParams, InitMultipartUploadDto, InitMultipartUploadOutput, ListChildrenOutput, ListChildrenParams, MoveFileToFolderDto, MultipartPartUrlOutput, UploadFileOutput } from '.././model';
4
4
  /**
5
5
  * Returns presigned url to upload file
6
6
  * @summary Get presigned url to upload file
@@ -25,9 +25,111 @@ export declare function useGetPresignedUploadUrl<TData = Awaited<ReturnType<type
25
25
  queryKey: QueryKey;
26
26
  };
27
27
  /**
28
- * Confirms the file upload, adding the file to the thumbnail queue
29
- * @summary Confirms the image upload
28
+ * Creates the file record and an R2 multipart upload. Upload each part via presigned part URLs, then call complete.
29
+ * @summary Start a multipart upload (R2 / S3)
30
30
  */
31
+ export declare const initMultipartUpload: (initMultipartUploadDto: InitMultipartUploadDto, options?: AxiosRequestConfig) => Promise<AxiosResponse<InitMultipartUploadOutput>>;
32
+ export declare const getInitMultipartUploadMutationOptions: <TData = AxiosResponse<InitMultipartUploadOutput, any>, TError = AxiosError<unknown, any>, TContext = unknown>(options?: {
33
+ mutation?: UseMutationOptions<TData, TError, {
34
+ data: InitMultipartUploadDto;
35
+ }, TContext>;
36
+ axios?: AxiosRequestConfig;
37
+ }) => UseMutationOptions<TData, TError, {
38
+ data: InitMultipartUploadDto;
39
+ }, TContext>;
40
+ export type InitMultipartUploadMutationResult = NonNullable<Awaited<ReturnType<typeof initMultipartUpload>>>;
41
+ export type InitMultipartUploadMutationBody = InitMultipartUploadDto;
42
+ export type InitMultipartUploadMutationError = AxiosError<unknown>;
43
+ /**
44
+ * @summary Start a multipart upload (R2 / S3)
45
+ */
46
+ export declare const useInitMultipartUpload: <TData = AxiosResponse<InitMultipartUploadOutput, any>, TError = AxiosError<unknown, any>, TContext = unknown>(options?: {
47
+ mutation?: UseMutationOptions<TData, TError, {
48
+ data: InitMultipartUploadDto;
49
+ }, TContext>;
50
+ axios?: AxiosRequestConfig;
51
+ }) => UseMutationResult<TData, TError, {
52
+ data: InitMultipartUploadDto;
53
+ }, TContext>;
54
+ /**
55
+ * @summary Presigned URL for a single multipart part
56
+ */
57
+ export declare const getMultipartPartUrl: (params: GetMultipartPartUrlParams, options?: AxiosRequestConfig) => Promise<AxiosResponse<MultipartPartUrlOutput>>;
58
+ export declare const getGetMultipartPartUrlQueryKey: (params: GetMultipartPartUrlParams) => readonly ["/uploads/multipart/part-url", ...GetMultipartPartUrlParams[]];
59
+ export declare const getGetMultipartPartUrlQueryOptions: <TData = AxiosResponse<MultipartPartUrlOutput, any>, TError = AxiosError<unknown, any>>(params: GetMultipartPartUrlParams, options?: {
60
+ query?: UseQueryOptions<Awaited<ReturnType<typeof getMultipartPartUrl>>, TError, TData>;
61
+ axios?: AxiosRequestConfig;
62
+ }) => UseQueryOptions<Awaited<ReturnType<typeof getMultipartPartUrl>>, TError, TData> & {
63
+ queryKey: QueryKey;
64
+ };
65
+ export type GetMultipartPartUrlQueryResult = NonNullable<Awaited<ReturnType<typeof getMultipartPartUrl>>>;
66
+ export type GetMultipartPartUrlQueryError = AxiosError<unknown>;
67
+ /**
68
+ * @summary Presigned URL for a single multipart part
69
+ */
70
+ export declare function useGetMultipartPartUrl<TData = Awaited<ReturnType<typeof getMultipartPartUrl>>, TError = AxiosError<unknown>>(params: GetMultipartPartUrlParams, options?: {
71
+ query?: UseQueryOptions<Awaited<ReturnType<typeof getMultipartPartUrl>>, TError, TData>;
72
+ axios?: AxiosRequestConfig;
73
+ }): UseQueryResult<TData, TError> & {
74
+ queryKey: QueryKey;
75
+ };
76
+ /**
77
+ * Completes the multipart upload on R2, clears in-progress state, and enqueues thumbnail generation when applicable.
78
+ * @summary Finish multipart upload
79
+ */
80
+ export declare const completeMultipartUpload: (completeMultipartUploadDto: CompleteMultipartUploadDto, options?: AxiosRequestConfig) => Promise<AxiosResponse<boolean>>;
81
+ export declare const getCompleteMultipartUploadMutationOptions: <TData = AxiosResponse<boolean, any>, TError = AxiosError<unknown, any>, TContext = unknown>(options?: {
82
+ mutation?: UseMutationOptions<TData, TError, {
83
+ data: CompleteMultipartUploadDto;
84
+ }, TContext>;
85
+ axios?: AxiosRequestConfig;
86
+ }) => UseMutationOptions<TData, TError, {
87
+ data: CompleteMultipartUploadDto;
88
+ }, TContext>;
89
+ export type CompleteMultipartUploadMutationResult = NonNullable<Awaited<ReturnType<typeof completeMultipartUpload>>>;
90
+ export type CompleteMultipartUploadMutationBody = CompleteMultipartUploadDto;
91
+ export type CompleteMultipartUploadMutationError = AxiosError<unknown>;
92
+ /**
93
+ * @summary Finish multipart upload
94
+ */
95
+ export declare const useCompleteMultipartUpload: <TData = AxiosResponse<boolean, any>, TError = AxiosError<unknown, any>, TContext = unknown>(options?: {
96
+ mutation?: UseMutationOptions<TData, TError, {
97
+ data: CompleteMultipartUploadDto;
98
+ }, TContext>;
99
+ axios?: AxiosRequestConfig;
100
+ }) => UseMutationResult<TData, TError, {
101
+ data: CompleteMultipartUploadDto;
102
+ }, TContext>;
103
+ /**
104
+ * Aborts the R2 multipart upload and deletes the pending file record.
105
+ * @summary Abort multipart upload
106
+ */
107
+ export declare const abortMultipartUpload: (params: AbortMultipartUploadParams, options?: AxiosRequestConfig) => Promise<AxiosResponse<boolean>>;
108
+ export declare const getAbortMultipartUploadMutationOptions: <TData = AxiosResponse<boolean, any>, TError = AxiosError<unknown, any>, TContext = unknown>(options?: {
109
+ mutation?: UseMutationOptions<TData, TError, {
110
+ params: AbortMultipartUploadParams;
111
+ }, TContext>;
112
+ axios?: AxiosRequestConfig;
113
+ }) => UseMutationOptions<TData, TError, {
114
+ params: AbortMultipartUploadParams;
115
+ }, TContext>;
116
+ export type AbortMultipartUploadMutationResult = NonNullable<Awaited<ReturnType<typeof abortMultipartUpload>>>;
117
+ export type AbortMultipartUploadMutationError = AxiosError<unknown>;
118
+ /**
119
+ * @summary Abort multipart upload
120
+ */
121
+ export declare const useAbortMultipartUpload: <TData = AxiosResponse<boolean, any>, TError = AxiosError<unknown, any>, TContext = unknown>(options?: {
122
+ mutation?: UseMutationOptions<TData, TError, {
123
+ params: AbortMultipartUploadParams;
124
+ }, TContext>;
125
+ axios?: AxiosRequestConfig;
126
+ }) => UseMutationResult<TData, TError, {
127
+ params: AbortMultipartUploadParams;
128
+ }, TContext>;
129
+ /**
130
+ * Confirms the file upload, adding the file to the thumbnail queue
131
+ * @summary Confirms the image upload
132
+ */
31
133
  export declare const imageUploaded: (options?: AxiosRequestConfig) => Promise<AxiosResponse<boolean>>;
32
134
  export declare const getImageUploadedMutationOptions: <TData = AxiosResponse<boolean, any>, TError = AxiosError<unknown, any>, TContext = unknown>(options?: {
33
135
  mutation?: UseMutationOptions<TData, TError, void, TContext>;
@@ -36,9 +36,120 @@ export function useGetPresignedUploadUrl(params, options) {
36
36
  return query;
37
37
  }
38
38
  /**
39
- * Confirms the file upload, adding the file to the thumbnail queue
40
- * @summary Confirms the image upload
39
+ * Creates the file record and an R2 multipart upload. Upload each part via presigned part URLs, then call complete.
40
+ * @summary Start a multipart upload (R2 / S3)
41
41
  */
42
+ export const initMultipartUpload = (initMultipartUploadDto, options) => {
43
+ return axios.post(`/uploads/multipart/init`, initMultipartUploadDto, options);
44
+ };
45
+ export const getInitMultipartUploadMutationOptions = (options) => {
46
+ const mutationKey = ['initMultipartUpload'];
47
+ const { mutation: mutationOptions, axios: axiosOptions } = options ?
48
+ options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ?
49
+ options
50
+ : { ...options, mutation: { ...options.mutation, mutationKey } }
51
+ : { mutation: { mutationKey, }, axios: undefined };
52
+ const mutationFn = (props) => {
53
+ const { data } = props ?? {};
54
+ return initMultipartUpload(data, axiosOptions);
55
+ };
56
+ return { mutationFn, ...mutationOptions };
57
+ };
58
+ /**
59
+ * @summary Start a multipart upload (R2 / S3)
60
+ */
61
+ export const useInitMultipartUpload = (options) => {
62
+ const mutationOptions = getInitMultipartUploadMutationOptions(options);
63
+ return useMutation(mutationOptions);
64
+ };
65
+ /**
66
+ * @summary Presigned URL for a single multipart part
67
+ */
68
+ export const getMultipartPartUrl = (params, options) => {
69
+ return axios.get(`/uploads/multipart/part-url`, {
70
+ ...options,
71
+ params: { ...params, ...options?.params },
72
+ });
73
+ };
74
+ export const getGetMultipartPartUrlQueryKey = (params) => {
75
+ return [`/uploads/multipart/part-url`, ...(params ? [params] : [])];
76
+ };
77
+ export const getGetMultipartPartUrlQueryOptions = (params, options) => {
78
+ const { query: queryOptions, axios: axiosOptions } = options ?? {};
79
+ const queryKey = queryOptions?.queryKey ?? getGetMultipartPartUrlQueryKey(params);
80
+ const queryFn = ({ signal }) => getMultipartPartUrl(params, { signal, ...axiosOptions });
81
+ return { queryKey, queryFn, ...queryOptions };
82
+ };
83
+ /**
84
+ * @summary Presigned URL for a single multipart part
85
+ */
86
+ export function useGetMultipartPartUrl(params, options) {
87
+ const queryOptions = getGetMultipartPartUrlQueryOptions(params, options);
88
+ const query = useQuery(queryOptions);
89
+ query.queryKey = queryOptions.queryKey;
90
+ return query;
91
+ }
92
+ /**
93
+ * Completes the multipart upload on R2, clears in-progress state, and enqueues thumbnail generation when applicable.
94
+ * @summary Finish multipart upload
95
+ */
96
+ export const completeMultipartUpload = (completeMultipartUploadDto, options) => {
97
+ return axios.post(`/uploads/multipart/complete`, completeMultipartUploadDto, options);
98
+ };
99
+ export const getCompleteMultipartUploadMutationOptions = (options) => {
100
+ const mutationKey = ['completeMultipartUpload'];
101
+ const { mutation: mutationOptions, axios: axiosOptions } = options ?
102
+ options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ?
103
+ options
104
+ : { ...options, mutation: { ...options.mutation, mutationKey } }
105
+ : { mutation: { mutationKey, }, axios: undefined };
106
+ const mutationFn = (props) => {
107
+ const { data } = props ?? {};
108
+ return completeMultipartUpload(data, axiosOptions);
109
+ };
110
+ return { mutationFn, ...mutationOptions };
111
+ };
112
+ /**
113
+ * @summary Finish multipart upload
114
+ */
115
+ export const useCompleteMultipartUpload = (options) => {
116
+ const mutationOptions = getCompleteMultipartUploadMutationOptions(options);
117
+ return useMutation(mutationOptions);
118
+ };
119
+ /**
120
+ * Aborts the R2 multipart upload and deletes the pending file record.
121
+ * @summary Abort multipart upload
122
+ */
123
+ export const abortMultipartUpload = (params, options) => {
124
+ return axios.delete(`/uploads/multipart/abort`, {
125
+ ...options,
126
+ params: { ...params, ...options?.params },
127
+ });
128
+ };
129
+ export const getAbortMultipartUploadMutationOptions = (options) => {
130
+ const mutationKey = ['abortMultipartUpload'];
131
+ const { mutation: mutationOptions, axios: axiosOptions } = options ?
132
+ options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ?
133
+ options
134
+ : { ...options, mutation: { ...options.mutation, mutationKey } }
135
+ : { mutation: { mutationKey, }, axios: undefined };
136
+ const mutationFn = (props) => {
137
+ const { params } = props ?? {};
138
+ return abortMultipartUpload(params, axiosOptions);
139
+ };
140
+ return { mutationFn, ...mutationOptions };
141
+ };
142
+ /**
143
+ * @summary Abort multipart upload
144
+ */
145
+ export const useAbortMultipartUpload = (options) => {
146
+ const mutationOptions = getAbortMultipartUploadMutationOptions(options);
147
+ return useMutation(mutationOptions);
148
+ };
149
+ /**
150
+ * Confirms the file upload, adding the file to the thumbnail queue
151
+ * @summary Confirms the image upload
152
+ */
42
153
  export const imageUploaded = (options) => {
43
154
  return axios.post(`/uploads/image-uploaded`, undefined, options);
44
155
  };
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './generated/model';
2
+ export * from './generated/folder/folder';
2
3
  export * from './generated/storage/storage';
3
4
  export * from './generated/user/user';
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './generated/model';
2
+ export * from './generated/folder/folder';
2
3
  export * from './generated/storage/storage';
3
4
  export * from './generated/user/user';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@htkimura/files-storage-backend.rest-client",
3
- "version": "0.0.31",
3
+ "version": "0.0.33",
4
4
  "description": "REST client of files-storage-backend",
5
5
  "author": "Henry Kimura",
6
6
  "license": "MIT",