@better-upload/client 3.0.6 → 3.0.7

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.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { a as UploadHookProps, c as FileUploadInfo, l as UploadHookControl, o as UploadHookReturn, r as ServerMetadata, s as ClientUploadError, t as DirectUploadResult, u as UploadStatus } from "./internal-7oFiXKv4.js";
1
+ import { a as UploadHookProps, c as FileUploadInfo, l as UploadHookControl, o as UploadHookReturn, r as ServerMetadata, s as ClientUploadError, t as DirectUploadResult, u as UploadStatus } from "./internal-DopZV-zQ.js";
2
2
 
3
3
  //#region src/hooks/use-upload-file.d.ts
4
4
  declare function useUploadFile(props: UploadHookProps<false>): UploadHookReturn<false>;
package/dist/index.js CHANGED
@@ -197,13 +197,15 @@ async function uploadFiles(params) {
197
197
  message: "No pre-signed URLs returned from server. Check your upload router config."
198
198
  });
199
199
  const uploads = new Map(signedUrls.map((url) => [url.file.objectInfo.key, {
200
- status: "pending",
201
- progress: 0,
200
+ skip: url.skip,
201
+ status: url.skip === "completed" ? "complete" : "pending",
202
+ progress: url.skip === "completed" ? 1 : 0,
202
203
  raw: files.find((file) => file.name === url.file.name && file.size === url.file.size && file.type === url.file.type),
203
204
  ...url.file
204
205
  }]));
205
206
  const uploadPromises = files.map((file) => async () => {
206
207
  const url = signedUrls.find((item) => item.file.name === file.name && item.file.size === file.size && item.file.type === file.type);
208
+ if (!url || url.skip === "completed") return;
207
209
  const isMultipart = "parts" in url;
208
210
  try {
209
211
  uploads.set(url.file.objectInfo.key, {
@@ -53,6 +53,10 @@ type FileUploadInfo<T extends UploadStatus> = {
53
53
  */
54
54
  cacheControl?: string;
55
55
  };
56
+ /**
57
+ * If the upload was skipped because the server indicated it was already completed.
58
+ */
59
+ skip: 'completed' | undefined;
56
60
  } & (T extends 'failed' ? {
57
61
  error: ClientUploadError;
58
62
  } : {});
@@ -177,6 +181,7 @@ type SignedUrlsSuccessResponse = {
177
181
  uploadId: string;
178
182
  completeSignedUrl: string;
179
183
  abortSignedUrl: string;
184
+ skip?: 'completed';
180
185
  }[];
181
186
  partSize: number;
182
187
  };
@@ -194,6 +199,7 @@ type SignedUrlsSuccessResponse = {
194
199
  };
195
200
  };
196
201
  headers: Record<string, string>;
202
+ skip?: 'completed';
197
203
  }[];
198
204
  });
199
205
  type UploadHookProps<T extends boolean> = {
@@ -1,4 +1,4 @@
1
- import { a as UploadHookProps, i as SignedUrlsSuccessResponse, n as ObjectMetadata, o as UploadHookReturn, r as ServerMetadata, s as ClientUploadError, t as DirectUploadResult } from "./internal-7oFiXKv4.js";
1
+ import { a as UploadHookProps, i as SignedUrlsSuccessResponse, n as ObjectMetadata, o as UploadHookReturn, r as ServerMetadata, s as ClientUploadError, t as DirectUploadResult } from "./internal-DopZV-zQ.js";
2
2
 
3
3
  //#region src/types/error.d.ts
4
4
  declare class ClientUploadErrorClass extends Error {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@better-upload/client",
3
3
  "description": "The Better Upload client library. Simple and easy file uploads for React.",
4
- "version": "3.0.6",
4
+ "version": "3.0.7",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist"
@@ -25,10 +25,10 @@
25
25
  "react": "*"
26
26
  },
27
27
  "devDependencies": {
28
+ "@types/react": "^19.2.7",
29
+ "react": "^19.2.3",
28
30
  "tsdown": "^0.15.12",
29
31
  "typescript": "^5.9.3",
30
- "react": "^19",
31
- "@types/react": "^19",
32
32
  "@repo/tsconfig": "0.0.0"
33
33
  },
34
34
  "keywords": [