@autorender/sdk-core 0.1.21 → 0.1.22
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.cjs +64 -106
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +64 -106
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -183,129 +183,86 @@ var AutorenderApiClient = class {
|
|
|
183
183
|
this.apiKey = opts.apiKey;
|
|
184
184
|
this.baseUrl = (opts.baseUrl || getBaseUrl(opts.environment || "prod")).replace(/\/+$/, "");
|
|
185
185
|
}
|
|
186
|
-
|
|
186
|
+
uploadFile(params, onProgress, signal) {
|
|
187
187
|
return new Promise((resolve, reject) => {
|
|
188
|
+
if (signal?.aborted) {
|
|
189
|
+
reject(new DOMException("Upload aborted", "AbortError"));
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
188
192
|
const xhr = new XMLHttpRequest();
|
|
193
|
+
if (signal) {
|
|
194
|
+
signal.addEventListener("abort", () => {
|
|
195
|
+
xhr.abort();
|
|
196
|
+
reject(new DOMException("Upload aborted", "AbortError"));
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
let lastProgress = 0;
|
|
200
|
+
xhr.upload.onprogress = (event) => {
|
|
201
|
+
if (event.lengthComputable && onProgress) {
|
|
202
|
+
const progress = Math.round(event.loaded / event.total * 100);
|
|
203
|
+
lastProgress = progress;
|
|
204
|
+
onProgress(progress);
|
|
205
|
+
} else if (onProgress && event.loaded > 0) {
|
|
206
|
+
const estimatedProgress = Math.min(
|
|
207
|
+
95,
|
|
208
|
+
Math.round(event.loaded / (event.loaded + 1e6) * 100)
|
|
209
|
+
);
|
|
210
|
+
if (estimatedProgress > lastProgress) {
|
|
211
|
+
lastProgress = estimatedProgress;
|
|
212
|
+
onProgress(estimatedProgress);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
};
|
|
189
216
|
xhr.onerror = () => {
|
|
190
|
-
reject(new Error(`
|
|
217
|
+
reject(new Error(`Upload failed: ${xhr.statusText}`));
|
|
191
218
|
};
|
|
192
219
|
xhr.onload = () => {
|
|
193
220
|
try {
|
|
194
221
|
if (xhr.status < 200 || xhr.status >= 300) {
|
|
195
222
|
const errorText = xhr.responseText || xhr.statusText;
|
|
196
|
-
reject(new Error(`
|
|
223
|
+
reject(new Error(`Upload failed: ${errorText}`));
|
|
197
224
|
return;
|
|
198
225
|
}
|
|
199
|
-
const
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
226
|
+
const newResponse = JSON.parse(xhr.responseText);
|
|
227
|
+
const response = {
|
|
228
|
+
success: true,
|
|
229
|
+
file_no: newResponse.file_no || newResponse.id,
|
|
230
|
+
name: newResponse.name,
|
|
231
|
+
url: newResponse.url,
|
|
232
|
+
file_size: newResponse.size,
|
|
233
|
+
format: newResponse.format,
|
|
234
|
+
width: newResponse.width,
|
|
235
|
+
height: newResponse.height,
|
|
236
|
+
created_at: newResponse.created_at,
|
|
237
|
+
path: newResponse.path,
|
|
238
|
+
workspace_no: newResponse.workspace_id,
|
|
239
|
+
isDuplicate: newResponse.is_duplicate || false
|
|
240
|
+
};
|
|
241
|
+
resolve(response);
|
|
205
242
|
} catch (error) {
|
|
206
|
-
reject(new Error("Failed to parse
|
|
243
|
+
reject(new Error("Failed to parse response"));
|
|
207
244
|
}
|
|
208
245
|
};
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
246
|
+
const endpoint = `${this.baseUrl}/uploads`;
|
|
247
|
+
const formData = new FormData();
|
|
248
|
+
formData.append("file", params.file);
|
|
249
|
+
formData.append("file_name", params.file.name);
|
|
250
|
+
if (params.folderPath) {
|
|
251
|
+
formData.append("folder", params.folderPath);
|
|
212
252
|
}
|
|
213
|
-
if (
|
|
214
|
-
|
|
253
|
+
if (params.settings?.tags?.length) {
|
|
254
|
+
formData.append("tags", params.settings.tags.join(","));
|
|
255
|
+
}
|
|
256
|
+
if (params.settings?.pretransformations) {
|
|
257
|
+
formData.append("transform", params.settings.pretransformations);
|
|
258
|
+
}
|
|
259
|
+
if (params.settings?.custom_id) {
|
|
260
|
+
formData.append("custom_id", params.settings.custom_id);
|
|
215
261
|
}
|
|
216
|
-
const tokenRequest = {
|
|
217
|
-
file_name: params.file.name,
|
|
218
|
-
...folder && { folder },
|
|
219
|
-
...params.settings?.tags && { tags: params.settings.tags },
|
|
220
|
-
...params.settings?.pretransformations && { transform: params.settings.pretransformations },
|
|
221
|
-
max_file_size: params.file.size,
|
|
222
|
-
allow_override: {
|
|
223
|
-
folder: true,
|
|
224
|
-
tags: true,
|
|
225
|
-
transform: true
|
|
226
|
-
},
|
|
227
|
-
random_prefix: !params.settings?.is_unique_suffix_name
|
|
228
|
-
};
|
|
229
|
-
const endpoint = `${this.baseUrl}/generate-token`;
|
|
230
262
|
xhr.open("POST", endpoint);
|
|
231
263
|
xhr.setRequestHeader("Authorization", `Bearer ${this.apiKey}`);
|
|
232
|
-
xhr.setRequestHeader("Content-Type", "application/json");
|
|
233
264
|
xhr.setRequestHeader("accept", "application/json");
|
|
234
|
-
xhr.send(
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
uploadFile(params, onProgress, signal) {
|
|
238
|
-
return new Promise(async (resolve, reject) => {
|
|
239
|
-
if (signal?.aborted) {
|
|
240
|
-
reject(new DOMException("Upload aborted", "AbortError"));
|
|
241
|
-
return;
|
|
242
|
-
}
|
|
243
|
-
try {
|
|
244
|
-
const token = await this.generateToken(params);
|
|
245
|
-
if (signal?.aborted) {
|
|
246
|
-
reject(new DOMException("Upload aborted", "AbortError"));
|
|
247
|
-
return;
|
|
248
|
-
}
|
|
249
|
-
const xhr = new XMLHttpRequest();
|
|
250
|
-
if (signal) {
|
|
251
|
-
signal.addEventListener("abort", () => {
|
|
252
|
-
xhr.abort();
|
|
253
|
-
reject(new DOMException("Upload aborted", "AbortError"));
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
let lastProgress = 0;
|
|
257
|
-
xhr.upload.onprogress = (event) => {
|
|
258
|
-
if (event.lengthComputable && onProgress) {
|
|
259
|
-
const progress = Math.round(event.loaded / event.total * 100);
|
|
260
|
-
lastProgress = progress;
|
|
261
|
-
onProgress(progress);
|
|
262
|
-
} else if (onProgress && event.loaded > 0) {
|
|
263
|
-
const estimatedProgress = Math.min(95, Math.round(event.loaded / (event.loaded + 1e6) * 100));
|
|
264
|
-
if (estimatedProgress > lastProgress) {
|
|
265
|
-
lastProgress = estimatedProgress;
|
|
266
|
-
onProgress(estimatedProgress);
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
};
|
|
270
|
-
xhr.onerror = () => {
|
|
271
|
-
reject(new Error(`Upload failed: ${xhr.statusText}`));
|
|
272
|
-
};
|
|
273
|
-
xhr.onload = () => {
|
|
274
|
-
try {
|
|
275
|
-
if (xhr.status < 200 || xhr.status >= 300) {
|
|
276
|
-
const errorText = xhr.responseText || xhr.statusText;
|
|
277
|
-
reject(new Error(`Upload failed: ${errorText}`));
|
|
278
|
-
return;
|
|
279
|
-
}
|
|
280
|
-
const newResponse = JSON.parse(xhr.responseText);
|
|
281
|
-
const response = {
|
|
282
|
-
success: true,
|
|
283
|
-
file_no: newResponse.file_no || newResponse.id,
|
|
284
|
-
name: newResponse.name,
|
|
285
|
-
url: newResponse.url,
|
|
286
|
-
file_size: newResponse.size,
|
|
287
|
-
format: newResponse.format,
|
|
288
|
-
width: newResponse.width,
|
|
289
|
-
height: newResponse.height,
|
|
290
|
-
created_at: newResponse.created_at,
|
|
291
|
-
path: newResponse.path,
|
|
292
|
-
workspace_no: newResponse.workspace_id,
|
|
293
|
-
isDuplicate: newResponse.is_duplicate || false
|
|
294
|
-
};
|
|
295
|
-
resolve(response);
|
|
296
|
-
} catch (error) {
|
|
297
|
-
reject(new Error("Failed to parse response"));
|
|
298
|
-
}
|
|
299
|
-
};
|
|
300
|
-
const endpoint = `${this.baseUrl}/uploads/${token}`;
|
|
301
|
-
xhr.open("POST", endpoint);
|
|
302
|
-
xhr.setRequestHeader("accept", "application/json");
|
|
303
|
-
const mimeType = params.file.type || "application/octet-stream";
|
|
304
|
-
xhr.setRequestHeader("Content-Type", mimeType);
|
|
305
|
-
xhr.send(params.file);
|
|
306
|
-
} catch (error) {
|
|
307
|
-
reject(error);
|
|
308
|
-
}
|
|
265
|
+
xhr.send(formData);
|
|
309
266
|
});
|
|
310
267
|
}
|
|
311
268
|
};
|
|
@@ -708,7 +665,8 @@ var UploaderController = class extends EventTarget {
|
|
|
708
665
|
settings: uploadSettings ? {
|
|
709
666
|
pretransformations: uploadSettings.pretransformations,
|
|
710
667
|
tags: uploadSettings.tags,
|
|
711
|
-
is_unique_suffix_name: uploadSettings.is_unique_suffix_name ?? false
|
|
668
|
+
is_unique_suffix_name: uploadSettings.is_unique_suffix_name ?? false,
|
|
669
|
+
custom_id: uploadSettings.custom_id
|
|
712
670
|
} : void 0
|
|
713
671
|
},
|
|
714
672
|
(progress) => {
|