wcz-test 6.24.4 → 6.24.6

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.
@@ -11,7 +11,7 @@ import { useInView } from "react-intersection-observer";
11
11
  import Delete from "@mui/icons-material/Delete";
12
12
  import FileDownload from "@mui/icons-material/FileDownload";
13
13
  import { u as useDialogs } from "./chunks/DialogsHooks-DOT0O_b4.js";
14
- import { c as useDownloadFile, f as useDeleteFile, a as useGetFileThumbnail, d as useOpenFile, b as useGetFile, u as useGetFileMetas } from "./chunks/FileHooks-CF1bPDoe.js";
14
+ import { c as useDownloadFile, f as useDeleteFile, a as useGetFileThumbnail, d as useOpenFile, b as useGetFile, u as useGetFileMetas } from "./chunks/FileHooks-DdKh9cZa.js";
15
15
  import AttachFile from "@mui/icons-material/AttachFile";
16
16
  import Image from "@mui/icons-material/Image";
17
17
  import SmartDisplay from "@mui/icons-material/SmartDisplay";
package/dist/queries.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { q } from "./chunks/queryClient-CNvC95mU.js";
2
- import { f, g, c, b, u, a, d, e, h } from "./chunks/FileHooks-CF1bPDoe.js";
2
+ import { f, g, c, b, u, a, d, e, h } from "./chunks/FileHooks-DdKh9cZa.js";
3
3
  import { c as c2 } from "react/compiler-runtime";
4
4
  import { useQuery, useQueryClient, useMutation } from "@tanstack/react-query";
5
5
  import { h as httpClient, t as toKebabCase } from "./chunks/utils-MD9YwOtu.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wcz-test",
3
- "version": "6.24.4",
3
+ "version": "6.24.6",
4
4
  "private": false,
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -1,493 +0,0 @@
1
- import { c } from "react/compiler-runtime";
2
- import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query";
3
- import saveAs from "file-saver";
4
- import { useState } from "react";
5
- import { Upload } from "tus-js-client";
6
- import { uuidv7 } from "uuidv7";
7
- import z__default from "zod";
8
- import { F as FileMetaSchema } from "./FileMeta-G1oT3mYK.js";
9
- import { t as toKebabCase, h as httpClient } from "./utils-MD9YwOtu.js";
10
- import { c as clientEnv } from "./env-gsqZ6zZD.js";
11
- const QUERY_KEY = "file";
12
- const HOUR = 1e3 * 60 * 60;
13
- const APP_NAME = toKebabCase(clientEnv.VITE_APP_TITLE);
14
- z__default.object({
15
- appName: z__default.string().min(1).max(255).default(APP_NAME).optional(),
16
- subId: z__default.uuid()
17
- });
18
- const useGetFileMetas = (params, options) => {
19
- const $ = c(12);
20
- let queryParams;
21
- if ($[0] !== params.appName || $[1] !== params.subId) {
22
- queryParams = new URLSearchParams();
23
- queryParams.append("appName", params.appName ?? APP_NAME);
24
- queryParams.append("subId", params.subId);
25
- $[0] = params.appName;
26
- $[1] = params.subId;
27
- $[2] = queryParams;
28
- } else {
29
- queryParams = $[2];
30
- }
31
- const t0 = params.appName ?? APP_NAME;
32
- let t1;
33
- if ($[3] !== params.subId || $[4] !== t0) {
34
- t1 = [QUERY_KEY, "meta", t0, params.subId];
35
- $[3] = params.subId;
36
- $[4] = t0;
37
- $[5] = t1;
38
- } else {
39
- t1 = $[5];
40
- }
41
- let t2;
42
- if ($[6] !== queryParams) {
43
- t2 = (t32) => {
44
- const {
45
- signal
46
- } = t32;
47
- return httpClient.request({
48
- url: `/${QUERY_KEY}/v1/meta?${queryParams.toString()}`,
49
- method: "GET",
50
- signal
51
- }).then(_temp);
52
- };
53
- $[6] = queryParams;
54
- $[7] = t2;
55
- } else {
56
- t2 = $[7];
57
- }
58
- let t3;
59
- if ($[8] !== options || $[9] !== t1 || $[10] !== t2) {
60
- t3 = {
61
- ...options,
62
- queryKey: t1,
63
- queryFn: t2,
64
- staleTime: HOUR,
65
- gcTime: HOUR,
66
- refetchOnWindowFocus: false
67
- };
68
- $[8] = options;
69
- $[9] = t1;
70
- $[10] = t2;
71
- $[11] = t3;
72
- } else {
73
- t3 = $[11];
74
- }
75
- return useQuery(t3);
76
- };
77
- z__default.object({
78
- appName: z__default.string().min(1).max(255).default(APP_NAME).optional(),
79
- meta: FileMetaSchema.nullish()
80
- });
81
- const useGetFileThumbnail = (params, options) => {
82
- const $ = c(13);
83
- let queryParams;
84
- if ($[0] !== params.appName || $[1] !== params.meta?.id) {
85
- queryParams = new URLSearchParams();
86
- queryParams.append("appName", params.appName ?? APP_NAME);
87
- queryParams.append("id", params.meta?.id ?? "");
88
- $[0] = params.appName;
89
- $[1] = params.meta?.id;
90
- $[2] = queryParams;
91
- } else {
92
- queryParams = $[2];
93
- }
94
- const t0 = params.appName ?? APP_NAME;
95
- const t1 = params.meta?.id;
96
- let t2;
97
- if ($[3] !== t0 || $[4] !== t1) {
98
- t2 = [QUERY_KEY, "thumbnail", t0, t1];
99
- $[3] = t0;
100
- $[4] = t1;
101
- $[5] = t2;
102
- } else {
103
- t2 = $[5];
104
- }
105
- let t3;
106
- if ($[6] !== queryParams) {
107
- t3 = (t42) => {
108
- const {
109
- signal
110
- } = t42;
111
- return httpClient.request({
112
- url: `/${QUERY_KEY}/v1/thumbnail?${queryParams.toString()}`,
113
- method: "GET",
114
- signal,
115
- responseType: "blob"
116
- }).then(_temp2);
117
- };
118
- $[6] = queryParams;
119
- $[7] = t3;
120
- } else {
121
- t3 = $[7];
122
- }
123
- const t4 = !!params.meta && options?.enabled !== false;
124
- let t5;
125
- if ($[8] !== options || $[9] !== t2 || $[10] !== t3 || $[11] !== t4) {
126
- t5 = {
127
- ...options,
128
- queryKey: t2,
129
- queryFn: t3,
130
- select: _temp3,
131
- staleTime: HOUR,
132
- gcTime: HOUR,
133
- refetchOnWindowFocus: false,
134
- enabled: t4
135
- };
136
- $[8] = options;
137
- $[9] = t2;
138
- $[10] = t3;
139
- $[11] = t4;
140
- $[12] = t5;
141
- } else {
142
- t5 = $[12];
143
- }
144
- return useQuery(t5);
145
- };
146
- z__default.object({
147
- appName: z__default.string().min(1).max(255).default(APP_NAME).optional(),
148
- meta: FileMetaSchema.nullish()
149
- });
150
- const useGetFile = (params, options) => {
151
- const $ = c(13);
152
- let queryParams;
153
- if ($[0] !== params.appName || $[1] !== params.meta?.id) {
154
- queryParams = new URLSearchParams();
155
- queryParams.append("appName", params.appName ?? APP_NAME);
156
- queryParams.append("id", params.meta?.id ?? "");
157
- $[0] = params.appName;
158
- $[1] = params.meta?.id;
159
- $[2] = queryParams;
160
- } else {
161
- queryParams = $[2];
162
- }
163
- const t0 = params.appName ?? APP_NAME;
164
- const t1 = params.meta?.id;
165
- let t2;
166
- if ($[3] !== t0 || $[4] !== t1) {
167
- t2 = [QUERY_KEY, t0, t1];
168
- $[3] = t0;
169
- $[4] = t1;
170
- $[5] = t2;
171
- } else {
172
- t2 = $[5];
173
- }
174
- let t3;
175
- if ($[6] !== queryParams) {
176
- t3 = (t42) => {
177
- const {
178
- signal
179
- } = t42;
180
- return httpClient.request({
181
- url: `/${QUERY_KEY}/v1?${queryParams.toString()}`,
182
- method: "GET",
183
- signal,
184
- responseType: "blob"
185
- }).then(_temp4);
186
- };
187
- $[6] = queryParams;
188
- $[7] = t3;
189
- } else {
190
- t3 = $[7];
191
- }
192
- const t4 = !!params.meta && options?.enabled !== false;
193
- let t5;
194
- if ($[8] !== options || $[9] !== t2 || $[10] !== t3 || $[11] !== t4) {
195
- t5 = {
196
- ...options,
197
- queryKey: t2,
198
- queryFn: t3,
199
- select: _temp5,
200
- staleTime: HOUR,
201
- gcTime: HOUR,
202
- refetchOnWindowFocus: false,
203
- enabled: t4
204
- };
205
- $[8] = options;
206
- $[9] = t2;
207
- $[10] = t3;
208
- $[11] = t4;
209
- $[12] = t5;
210
- } else {
211
- t5 = $[12];
212
- }
213
- return useQuery(t5);
214
- };
215
- const useDownloadFile = (options) => {
216
- const $ = c(2);
217
- let t0;
218
- if ($[0] !== options) {
219
- t0 = {
220
- ...options,
221
- mutationFn: _temp7,
222
- onSuccess: _temp8
223
- };
224
- $[0] = options;
225
- $[1] = t0;
226
- } else {
227
- t0 = $[1];
228
- }
229
- return useMutation(t0);
230
- };
231
- const useOpenFile = (options) => {
232
- const $ = c(2);
233
- let t0;
234
- if ($[0] !== options) {
235
- t0 = {
236
- ...options,
237
- mutationFn: _temp0,
238
- onSuccess: _temp1
239
- };
240
- $[0] = options;
241
- $[1] = t0;
242
- } else {
243
- t0 = $[1];
244
- }
245
- return useMutation(t0);
246
- };
247
- const useUpdateFileMeta = (options) => {
248
- const $ = c(5);
249
- const queryClient = useQueryClient();
250
- let t0;
251
- if ($[0] !== queryClient) {
252
- t0 = () => queryClient.invalidateQueries({
253
- queryKey: [QUERY_KEY, "meta"],
254
- exact: false
255
- });
256
- $[0] = queryClient;
257
- $[1] = t0;
258
- } else {
259
- t0 = $[1];
260
- }
261
- let t1;
262
- if ($[2] !== options || $[3] !== t0) {
263
- t1 = {
264
- ...options,
265
- mutationFn: _temp11,
266
- onSettled: t0
267
- };
268
- $[2] = options;
269
- $[3] = t0;
270
- $[4] = t1;
271
- } else {
272
- t1 = $[4];
273
- }
274
- return useMutation(t1);
275
- };
276
- const useDeleteFile = (options) => {
277
- const $ = c(5);
278
- const queryClient = useQueryClient();
279
- let t0;
280
- if ($[0] !== queryClient) {
281
- t0 = () => queryClient.invalidateQueries({
282
- queryKey: [QUERY_KEY, "meta"],
283
- exact: false
284
- });
285
- $[0] = queryClient;
286
- $[1] = t0;
287
- } else {
288
- t0 = $[1];
289
- }
290
- let t1;
291
- if ($[2] !== options || $[3] !== t0) {
292
- t1 = {
293
- ...options,
294
- mutationFn: _temp13,
295
- onSettled: t0
296
- };
297
- $[2] = options;
298
- $[3] = t0;
299
- $[4] = t1;
300
- } else {
301
- t1 = $[4];
302
- }
303
- return useMutation(t1);
304
- };
305
- const useDeleteFiles = (options) => {
306
- const $ = c(5);
307
- const queryClient = useQueryClient();
308
- let t0;
309
- if ($[0] !== queryClient) {
310
- t0 = () => queryClient.invalidateQueries({
311
- queryKey: [QUERY_KEY, "meta"],
312
- exact: false
313
- });
314
- $[0] = queryClient;
315
- $[1] = t0;
316
- } else {
317
- t0 = $[1];
318
- }
319
- let t1;
320
- if ($[2] !== options || $[3] !== t0) {
321
- t1 = {
322
- ...options,
323
- mutationFn: _temp15,
324
- onSettled: t0
325
- };
326
- $[2] = options;
327
- $[3] = t0;
328
- $[4] = t1;
329
- } else {
330
- t1 = $[4];
331
- }
332
- return useMutation(t1);
333
- };
334
- const useUploadFile = (t0) => {
335
- const $ = c(8);
336
- const {
337
- subId,
338
- onSuccess,
339
- onError
340
- } = t0;
341
- const [progress, setProgress] = useState(0);
342
- const queryClient = useQueryClient();
343
- let t1;
344
- if ($[0] !== onError || $[1] !== onSuccess || $[2] !== queryClient || $[3] !== subId) {
345
- t1 = async (file) => {
346
- if (!subId) {
347
- throw new Error("subId is required for file upload");
348
- }
349
- const metadata = {
350
- id: uuidv7(),
351
- appName: APP_NAME,
352
- subId,
353
- fileName: file.name
354
- };
355
- const upload = new Upload(file, {
356
- endpoint: `${clientEnv.VITE_API_URL}/${QUERY_KEY}/v1/upload`,
357
- chunkSize: 1048576,
358
- metadata: {
359
- id: metadata.id,
360
- appName: metadata.appName,
361
- subId: metadata.subId,
362
- fileName: metadata.fileName,
363
- fileExtension: file.type
364
- },
365
- headers: {
366
- "Authorization": "Bearer YOUR_ACCESS_TOKEN_HERE"
367
- },
368
- onError: (error) => {
369
- setProgress(0);
370
- onError?.(error);
371
- },
372
- onProgress: (bytesUploaded, bytesTotal) => {
373
- setProgress(bytesUploaded / bytesTotal * 100);
374
- },
375
- onSuccess: () => {
376
- setProgress(0);
377
- queryClient.invalidateQueries({
378
- queryKey: [QUERY_KEY, "meta", subId],
379
- exact: false
380
- });
381
- onSuccess?.(metadata);
382
- }
383
- });
384
- const previousUploads = await upload.findPreviousUploads();
385
- if (previousUploads.length > 0) {
386
- upload.resumeFromPreviousUpload(previousUploads[0]);
387
- }
388
- upload.start();
389
- };
390
- $[0] = onError;
391
- $[1] = onSuccess;
392
- $[2] = queryClient;
393
- $[3] = subId;
394
- $[4] = t1;
395
- } else {
396
- t1 = $[4];
397
- }
398
- const mutate = t1;
399
- let t2;
400
- if ($[5] !== mutate || $[6] !== progress) {
401
- t2 = {
402
- mutate,
403
- progress
404
- };
405
- $[5] = mutate;
406
- $[6] = progress;
407
- $[7] = t2;
408
- } else {
409
- t2 = $[7];
410
- }
411
- return t2;
412
- };
413
- function _temp(request) {
414
- return request.data;
415
- }
416
- function _temp2(request) {
417
- return request.data;
418
- }
419
- function _temp3(data) {
420
- return URL.createObjectURL(data);
421
- }
422
- function _temp4(request) {
423
- return request.data;
424
- }
425
- function _temp5(data) {
426
- return URL.createObjectURL(data);
427
- }
428
- function _temp6(request) {
429
- return request.data;
430
- }
431
- function _temp7(meta) {
432
- return httpClient.request({
433
- url: `/${QUERY_KEY}/v1/download?appName=${APP_NAME}&id=${meta.id}`,
434
- method: "GET",
435
- responseType: "blob"
436
- }).then(_temp6);
437
- }
438
- function _temp8(data, variables) {
439
- return saveAs(data, `${variables.fileName}.${variables.fileExtension}`);
440
- }
441
- function _temp9(request) {
442
- return request.data;
443
- }
444
- function _temp0(meta) {
445
- return httpClient.request({
446
- url: `/${QUERY_KEY}/v1?appName=${APP_NAME}&id=${meta.id}`,
447
- method: "GET",
448
- responseType: "blob"
449
- }).then(_temp9);
450
- }
451
- function _temp1(data) {
452
- window.open(URL.createObjectURL(data));
453
- }
454
- function _temp10(request) {
455
- return request.data;
456
- }
457
- function _temp11(meta) {
458
- return httpClient.request({
459
- url: `/${QUERY_KEY}/v1/meta?appName=${APP_NAME}&id=${meta.id}`,
460
- method: "PUT",
461
- data: meta
462
- }).then(_temp10);
463
- }
464
- function _temp12(request) {
465
- return request.data;
466
- }
467
- function _temp13(meta) {
468
- return httpClient.request({
469
- url: `/${QUERY_KEY}/v1?appName=${APP_NAME}&id=${meta.id}`,
470
- method: "DELETE"
471
- }).then(_temp12);
472
- }
473
- function _temp14(request) {
474
- return request.data;
475
- }
476
- function _temp15(subId) {
477
- return httpClient.request({
478
- url: `/${QUERY_KEY}/v1?appName=${APP_NAME}&subId=${subId}`,
479
- method: "DELETE"
480
- }).then(_temp14);
481
- }
482
- export {
483
- useGetFileThumbnail as a,
484
- useGetFile as b,
485
- useDownloadFile as c,
486
- useOpenFile as d,
487
- useUpdateFileMeta as e,
488
- useDeleteFile as f,
489
- useDeleteFiles as g,
490
- useUploadFile as h,
491
- useGetFileMetas as u
492
- };
493
- //# sourceMappingURL=FileHooks-CF1bPDoe.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FileHooks-CF1bPDoe.js","sources":["../../src/queries/FileHooks.ts"],"sourcesContent":["import { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\r\nimport saveAs from \"file-saver\";\r\nimport { useState } from \"react\";\r\nimport { Upload as TusUpload } from \"tus-js-client\";\r\nimport { uuidv7 } from \"uuidv7\";\r\nimport z from \"zod\";\r\nimport type { DetailedError } from \"tus-js-client\";\r\nimport type { DefinedInitialDataOptions, UseMutationOptions } from \"@tanstack/react-query\";\r\nimport type { FileMeta } from \"~/models/file/FileMeta\";\r\nimport { FileMetaSchema } from \"~/models/file/FileMeta\";\r\nimport { httpClient, toKebabCase } from \"~/lib/utils\";\r\nimport { clientEnv } from \"~/env\";\r\n\r\nconst QUERY_KEY = \"file\";\r\nconst HOUR = 1000 * 60 * 60;\r\nconst APP_NAME = toKebabCase(clientEnv.VITE_APP_TITLE);\r\n\r\ntype OptionalId = string | undefined | null;\r\n\r\ntype BaseFileMetaArrayQueryOptions = Omit<DefinedInitialDataOptions<Array<FileMeta>>, \"queryKey\" | \"queryFn\" | \"staleTime\" | \"gcTime\" | \"refetchOnWindowFocus\" | \"initialData\">;\r\ntype BaseBlobQueryOptions = Omit<DefinedInitialDataOptions<Blob, Error, string>, \"queryKey\" | \"queryFn\" | \"select\" | \"staleTime\" | \"gcTime\" | \"refetchOnWindowFocus\" | \"initialData\">;\r\ntype BaseFileMetaMutationOptions = Omit<UseMutationOptions<FileMeta, Error, FileMeta>, \"mutationFn\" | \"onSettled\">;\r\ntype BaseBlobMutationOptions = Omit<UseMutationOptions<Blob, Error, FileMeta>, \"mutationFn\" | \"onSuccess\">;\r\ntype BaseStringMutationOptions = Omit<UseMutationOptions<string, Error, string>, \"mutationFn\" | \"onSettled\">;\r\n\r\nexport const GetFileMetasParamsSchema = z.object({\r\n appName: z.string().min(1).max(255).default(APP_NAME).optional(),\r\n subId: z.uuid(),\r\n});\r\n\r\nexport type GetFileMetasParams = z.infer<typeof GetFileMetasParamsSchema>;\r\n\r\nexport const useGetFileMetas = (params: GetFileMetasParams, options?: BaseFileMetaArrayQueryOptions) => {\r\n const queryParams = new URLSearchParams();\r\n queryParams.append(\"appName\", params.appName ?? APP_NAME);\r\n queryParams.append(\"subId\", params.subId);\r\n\r\n return useQuery<Array<FileMeta>>({\r\n ...options,\r\n queryKey: [QUERY_KEY, \"meta\", params.appName ?? APP_NAME, params.subId],\r\n queryFn: ({ signal }) => httpClient.request<Array<FileMeta>>({\r\n url: `/${QUERY_KEY}/v1/meta?${queryParams.toString()}`,\r\n method: \"GET\",\r\n signal,\r\n }).then(request => request.data),\r\n staleTime: HOUR,\r\n gcTime: HOUR,\r\n refetchOnWindowFocus: false,\r\n });\r\n};\r\n\r\nexport const GetFileThumbnailParamsSchema = z.object({\r\n appName: z.string().min(1).max(255).default(APP_NAME).optional(),\r\n meta: FileMetaSchema.nullish(),\r\n});\r\n\r\nexport type GetFileThumbnailParams = z.infer<typeof GetFileThumbnailParamsSchema>;\r\n\r\nexport const useGetFileThumbnail = (params: GetFileThumbnailParams, options?: BaseBlobQueryOptions) => {\r\n const queryParams = new URLSearchParams();\r\n queryParams.append(\"appName\", params.appName ?? APP_NAME);\r\n queryParams.append(\"id\", params.meta?.id ?? \"\");\r\n\r\n return useQuery<Blob, Error, string>({\r\n ...options,\r\n queryKey: [QUERY_KEY, \"thumbnail\", params.appName ?? APP_NAME, params.meta?.id],\r\n queryFn: ({ signal }) => httpClient.request<Blob>({\r\n url: `/${QUERY_KEY}/v1/thumbnail?${queryParams.toString()}`,\r\n method: \"GET\",\r\n signal,\r\n responseType: \"blob\"\r\n }).then(request => request.data),\r\n select: data => URL.createObjectURL(data),\r\n staleTime: HOUR,\r\n gcTime: HOUR,\r\n refetchOnWindowFocus: false,\r\n enabled: !!params.meta && options?.enabled !== false,\r\n });\r\n};\r\n\r\nexport const GetFileParamsSchema = z.object({\r\n appName: z.string().min(1).max(255).default(APP_NAME).optional(),\r\n meta: FileMetaSchema.nullish(),\r\n});\r\n\r\nexport type GetFileParams = z.infer<typeof GetFileParamsSchema>;\r\n\r\nexport const useGetFile = (params: GetFileParams, options?: BaseBlobQueryOptions) => {\r\n const queryParams = new URLSearchParams();\r\n queryParams.append(\"appName\", params.appName ?? APP_NAME);\r\n queryParams.append(\"id\", params.meta?.id ?? \"\");\r\n\r\n return useQuery<Blob, Error, string>({\r\n ...options,\r\n queryKey: [QUERY_KEY, params.appName ?? APP_NAME, params.meta?.id],\r\n queryFn: ({ signal }) => httpClient.request<Blob>({\r\n url: `/${QUERY_KEY}/v1?${queryParams.toString()}`,\r\n method: \"GET\",\r\n signal,\r\n responseType: \"blob\"\r\n }).then(request => request.data),\r\n select: data => URL.createObjectURL(data),\r\n staleTime: HOUR,\r\n gcTime: HOUR,\r\n refetchOnWindowFocus: false,\r\n enabled: !!params.meta && options?.enabled !== false,\r\n });\r\n};\r\n\r\nexport const useDownloadFile = (options?: BaseBlobMutationOptions) => {\r\n return useMutation<Blob, Error, FileMeta>({\r\n ...options,\r\n mutationFn: meta => httpClient.request<Blob>({\r\n url: `/${QUERY_KEY}/v1/download?appName=${APP_NAME}&id=${meta.id}`,\r\n method: \"GET\",\r\n responseType: \"blob\"\r\n }).then(request => request.data),\r\n onSuccess: (data, variables) => saveAs(data, `${variables.fileName}.${variables.fileExtension}`)\r\n });\r\n};\r\n\r\nexport const useOpenFile = (options?: BaseBlobMutationOptions) => {\r\n return useMutation<Blob, Error, FileMeta>({\r\n ...options,\r\n mutationFn: meta => httpClient.request<Blob>({\r\n url: `/${QUERY_KEY}/v1?appName=${APP_NAME}&id=${meta.id}`,\r\n method: \"GET\",\r\n responseType: \"blob\"\r\n }).then(request => request.data),\r\n onSuccess: data => { window.open(URL.createObjectURL(data)); }\r\n });\r\n};\r\n\r\nexport const useUpdateFileMeta = (options?: BaseFileMetaMutationOptions) => {\r\n const queryClient = useQueryClient();\r\n\r\n return useMutation<FileMeta, Error, FileMeta>({\r\n ...options,\r\n mutationFn: meta => httpClient.request<FileMeta>({\r\n url: `/${QUERY_KEY}/v1/meta?appName=${APP_NAME}&id=${meta.id}`,\r\n method: \"PUT\",\r\n data: meta\r\n }).then(request => request.data),\r\n onSettled: () => queryClient.invalidateQueries({ queryKey: [QUERY_KEY, \"meta\"], exact: false })\r\n });\r\n};\r\n\r\nexport const useDeleteFile = (options?: BaseFileMetaMutationOptions) => {\r\n const queryClient = useQueryClient();\r\n\r\n return useMutation<FileMeta, Error, FileMeta>({\r\n ...options,\r\n mutationFn: meta => httpClient.request<FileMeta>({\r\n url: `/${QUERY_KEY}/v1?appName=${APP_NAME}&id=${meta.id}`,\r\n method: \"DELETE\"\r\n }).then(request => request.data),\r\n onSettled: () => queryClient.invalidateQueries({ queryKey: [QUERY_KEY, \"meta\"], exact: false }),\r\n });\r\n};\r\n\r\nexport const useDeleteFiles = (options?: BaseStringMutationOptions) => {\r\n const queryClient = useQueryClient();\r\n\r\n return useMutation<string, Error, string>({\r\n ...options,\r\n mutationFn: subId => httpClient.request<string>({\r\n url: `/${QUERY_KEY}/v1?appName=${APP_NAME}&subId=${subId}`,\r\n method: \"DELETE\"\r\n }).then(request => request.data),\r\n onSettled: () => queryClient.invalidateQueries({ queryKey: [QUERY_KEY, \"meta\"], exact: false })\r\n });\r\n};\r\n\r\ninterface UseUploadFileProps {\r\n subId: OptionalId;\r\n onSuccess?: (meta: Pick<FileMeta, \"id\" | \"appName\" | \"subId\" | \"fileName\">) => void;\r\n onError?: (error: Error | DetailedError) => void;\r\n}\r\n\r\nexport const useUploadFile = ({ subId, onSuccess, onError }: UseUploadFileProps) => {\r\n const [progress, setProgress] = useState<number>(0);\r\n const queryClient = useQueryClient();\r\n\r\n const mutate = async (file: File) => {\r\n if (!subId) throw new Error(\"subId is required for file upload\");\r\n\r\n const metadata: Pick<FileMeta, \"id\" | \"appName\" | \"subId\" | \"fileName\"> = {\r\n id: uuidv7(),\r\n appName: APP_NAME,\r\n subId: subId,\r\n fileName: file.name,\r\n };\r\n\r\n const accessToken = \"YOUR_ACCESS_TOKEN_HERE\"; // Replace with actual token retrieval logic\r\n\r\n const upload = new TusUpload(file, {\r\n endpoint: `${clientEnv.VITE_API_URL}/${QUERY_KEY}/v1/upload`,\r\n chunkSize: 1_048_576, // 1 MB\r\n metadata: {\r\n id: metadata.id,\r\n appName: metadata.appName,\r\n subId: metadata.subId,\r\n fileName: metadata.fileName,\r\n fileExtension: file.type\r\n },\r\n headers: { \"Authorization\": `Bearer ${accessToken}` },\r\n onError: (error) => {\r\n setProgress(0);\r\n onError?.(error);\r\n },\r\n onProgress: (bytesUploaded, bytesTotal) => {\r\n setProgress((bytesUploaded / bytesTotal) * 100);\r\n },\r\n onSuccess: () => {\r\n setProgress(0);\r\n queryClient.invalidateQueries({ queryKey: [QUERY_KEY, \"meta\", subId], exact: false });\r\n onSuccess?.(metadata);\r\n },\r\n });\r\n\r\n const previousUploads = await upload.findPreviousUploads();\r\n if (previousUploads.length > 0) {\r\n upload.resumeFromPreviousUpload(previousUploads[0]);\r\n }\r\n\r\n upload.start();\r\n };\r\n\r\n return { mutate, progress };\r\n};\r\n"],"names":["QUERY_KEY","HOUR","APP_NAME","toKebabCase","clientEnv","VITE_APP_TITLE","z","object","appName","string","min","max","default","optional","subId","uuid","useGetFileMetas","params","options","$","_c","queryParams","URLSearchParams","append","t0","t1","t2","t3","signal","httpClient","request","url","toString","method","then","_temp","queryKey","queryFn","staleTime","gcTime","refetchOnWindowFocus","useQuery","meta","FileMetaSchema","nullish","useGetFileThumbnail","id","t4","responseType","_temp2","enabled","t5","select","_temp3","useGetFile","_temp4","_temp5","useDownloadFile","mutationFn","_temp7","onSuccess","_temp8","useMutation","useOpenFile","_temp0","_temp1","useUpdateFileMeta","queryClient","useQueryClient","invalidateQueries","exact","_temp11","onSettled","useDeleteFile","_temp13","useDeleteFiles","_temp15","useUploadFile","onError","progress","setProgress","useState","file","Error","metadata","uuidv7","fileName","name","upload","TusUpload","endpoint","VITE_API_URL","chunkSize","fileExtension","type","headers","error","onProgress","bytesUploaded","bytesTotal","previousUploads","findPreviousUploads","length","resumeFromPreviousUpload","start","mutate","data","URL","createObjectURL","_temp6","variables","saveAs","_temp9","window","open","_temp10","_temp12","_temp14"],"mappings":"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"}