@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 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
- async generateToken(params) {
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(`Failed to generate token: ${xhr.statusText}`));
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(`Failed to generate token: ${errorText}`));
223
+ reject(new Error(`Upload failed: ${errorText}`));
197
224
  return;
198
225
  }
199
- const response = JSON.parse(xhr.responseText);
200
- if (!response.token) {
201
- reject(new Error("Token not found in response"));
202
- return;
203
- }
204
- resolve(response.token);
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 token response"));
243
+ reject(new Error("Failed to parse response"));
207
244
  }
208
245
  };
209
- let folder = params.folderPath || "";
210
- if (params.relativePath) {
211
- folder = folder ? `${folder}/${params.relativePath}` : params.relativePath;
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 (folder && !folder.endsWith("/")) {
214
- folder += "/";
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(JSON.stringify(tokenRequest));
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) => {