@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.d.cts CHANGED
@@ -99,6 +99,7 @@ interface UploadSettings {
99
99
  pretransformations?: string;
100
100
  tags?: string[];
101
101
  is_unique_suffix_name?: boolean;
102
+ custom_id?: string;
102
103
  }
103
104
  type Environment = 'prod' | 'dev';
104
105
  type Palette = 'at-blue' | 'at-purple' | 'at-red' | 'at-orange' | 'at-green' | 'at-turquoise' | 'at-gray';
package/dist/index.d.ts CHANGED
@@ -99,6 +99,7 @@ interface UploadSettings {
99
99
  pretransformations?: string;
100
100
  tags?: string[];
101
101
  is_unique_suffix_name?: boolean;
102
+ custom_id?: string;
102
103
  }
103
104
  type Environment = 'prod' | 'dev';
104
105
  type Palette = 'at-blue' | 'at-purple' | 'at-red' | 'at-orange' | 'at-green' | 'at-turquoise' | 'at-gray';
package/dist/index.js CHANGED
@@ -152,129 +152,86 @@ var AutorenderApiClient = class {
152
152
  this.apiKey = opts.apiKey;
153
153
  this.baseUrl = (opts.baseUrl || getBaseUrl(opts.environment || "prod")).replace(/\/+$/, "");
154
154
  }
155
- async generateToken(params) {
155
+ uploadFile(params, onProgress, signal) {
156
156
  return new Promise((resolve, reject) => {
157
+ if (signal?.aborted) {
158
+ reject(new DOMException("Upload aborted", "AbortError"));
159
+ return;
160
+ }
157
161
  const xhr = new XMLHttpRequest();
162
+ if (signal) {
163
+ signal.addEventListener("abort", () => {
164
+ xhr.abort();
165
+ reject(new DOMException("Upload aborted", "AbortError"));
166
+ });
167
+ }
168
+ let lastProgress = 0;
169
+ xhr.upload.onprogress = (event) => {
170
+ if (event.lengthComputable && onProgress) {
171
+ const progress = Math.round(event.loaded / event.total * 100);
172
+ lastProgress = progress;
173
+ onProgress(progress);
174
+ } else if (onProgress && event.loaded > 0) {
175
+ const estimatedProgress = Math.min(
176
+ 95,
177
+ Math.round(event.loaded / (event.loaded + 1e6) * 100)
178
+ );
179
+ if (estimatedProgress > lastProgress) {
180
+ lastProgress = estimatedProgress;
181
+ onProgress(estimatedProgress);
182
+ }
183
+ }
184
+ };
158
185
  xhr.onerror = () => {
159
- reject(new Error(`Failed to generate token: ${xhr.statusText}`));
186
+ reject(new Error(`Upload failed: ${xhr.statusText}`));
160
187
  };
161
188
  xhr.onload = () => {
162
189
  try {
163
190
  if (xhr.status < 200 || xhr.status >= 300) {
164
191
  const errorText = xhr.responseText || xhr.statusText;
165
- reject(new Error(`Failed to generate token: ${errorText}`));
192
+ reject(new Error(`Upload failed: ${errorText}`));
166
193
  return;
167
194
  }
168
- const response = JSON.parse(xhr.responseText);
169
- if (!response.token) {
170
- reject(new Error("Token not found in response"));
171
- return;
172
- }
173
- resolve(response.token);
195
+ const newResponse = JSON.parse(xhr.responseText);
196
+ const response = {
197
+ success: true,
198
+ file_no: newResponse.file_no || newResponse.id,
199
+ name: newResponse.name,
200
+ url: newResponse.url,
201
+ file_size: newResponse.size,
202
+ format: newResponse.format,
203
+ width: newResponse.width,
204
+ height: newResponse.height,
205
+ created_at: newResponse.created_at,
206
+ path: newResponse.path,
207
+ workspace_no: newResponse.workspace_id,
208
+ isDuplicate: newResponse.is_duplicate || false
209
+ };
210
+ resolve(response);
174
211
  } catch (error) {
175
- reject(new Error("Failed to parse token response"));
212
+ reject(new Error("Failed to parse response"));
176
213
  }
177
214
  };
178
- let folder = params.folderPath || "";
179
- if (params.relativePath) {
180
- folder = folder ? `${folder}/${params.relativePath}` : params.relativePath;
215
+ const endpoint = `${this.baseUrl}/uploads`;
216
+ const formData = new FormData();
217
+ formData.append("file", params.file);
218
+ formData.append("file_name", params.file.name);
219
+ if (params.folderPath) {
220
+ formData.append("folder", params.folderPath);
181
221
  }
182
- if (folder && !folder.endsWith("/")) {
183
- folder += "/";
222
+ if (params.settings?.tags?.length) {
223
+ formData.append("tags", params.settings.tags.join(","));
224
+ }
225
+ if (params.settings?.pretransformations) {
226
+ formData.append("transform", params.settings.pretransformations);
227
+ }
228
+ if (params.settings?.custom_id) {
229
+ formData.append("custom_id", params.settings.custom_id);
184
230
  }
185
- const tokenRequest = {
186
- file_name: params.file.name,
187
- ...folder && { folder },
188
- ...params.settings?.tags && { tags: params.settings.tags },
189
- ...params.settings?.pretransformations && { transform: params.settings.pretransformations },
190
- max_file_size: params.file.size,
191
- allow_override: {
192
- folder: true,
193
- tags: true,
194
- transform: true
195
- },
196
- random_prefix: !params.settings?.is_unique_suffix_name
197
- };
198
- const endpoint = `${this.baseUrl}/generate-token`;
199
231
  xhr.open("POST", endpoint);
200
232
  xhr.setRequestHeader("Authorization", `Bearer ${this.apiKey}`);
201
- xhr.setRequestHeader("Content-Type", "application/json");
202
233
  xhr.setRequestHeader("accept", "application/json");
203
- xhr.send(JSON.stringify(tokenRequest));
204
- });
205
- }
206
- uploadFile(params, onProgress, signal) {
207
- return new Promise(async (resolve, reject) => {
208
- if (signal?.aborted) {
209
- reject(new DOMException("Upload aborted", "AbortError"));
210
- return;
211
- }
212
- try {
213
- const token = await this.generateToken(params);
214
- if (signal?.aborted) {
215
- reject(new DOMException("Upload aborted", "AbortError"));
216
- return;
217
- }
218
- const xhr = new XMLHttpRequest();
219
- if (signal) {
220
- signal.addEventListener("abort", () => {
221
- xhr.abort();
222
- reject(new DOMException("Upload aborted", "AbortError"));
223
- });
224
- }
225
- let lastProgress = 0;
226
- xhr.upload.onprogress = (event) => {
227
- if (event.lengthComputable && onProgress) {
228
- const progress = Math.round(event.loaded / event.total * 100);
229
- lastProgress = progress;
230
- onProgress(progress);
231
- } else if (onProgress && event.loaded > 0) {
232
- const estimatedProgress = Math.min(95, Math.round(event.loaded / (event.loaded + 1e6) * 100));
233
- if (estimatedProgress > lastProgress) {
234
- lastProgress = estimatedProgress;
235
- onProgress(estimatedProgress);
236
- }
237
- }
238
- };
239
- xhr.onerror = () => {
240
- reject(new Error(`Upload failed: ${xhr.statusText}`));
241
- };
242
- xhr.onload = () => {
243
- try {
244
- if (xhr.status < 200 || xhr.status >= 300) {
245
- const errorText = xhr.responseText || xhr.statusText;
246
- reject(new Error(`Upload failed: ${errorText}`));
247
- return;
248
- }
249
- const newResponse = JSON.parse(xhr.responseText);
250
- const response = {
251
- success: true,
252
- file_no: newResponse.file_no || newResponse.id,
253
- name: newResponse.name,
254
- url: newResponse.url,
255
- file_size: newResponse.size,
256
- format: newResponse.format,
257
- width: newResponse.width,
258
- height: newResponse.height,
259
- created_at: newResponse.created_at,
260
- path: newResponse.path,
261
- workspace_no: newResponse.workspace_id,
262
- isDuplicate: newResponse.is_duplicate || false
263
- };
264
- resolve(response);
265
- } catch (error) {
266
- reject(new Error("Failed to parse response"));
267
- }
268
- };
269
- const endpoint = `${this.baseUrl}/uploads/${token}`;
270
- xhr.open("POST", endpoint);
271
- xhr.setRequestHeader("accept", "application/json");
272
- const mimeType = params.file.type || "application/octet-stream";
273
- xhr.setRequestHeader("Content-Type", mimeType);
274
- xhr.send(params.file);
275
- } catch (error) {
276
- reject(error);
277
- }
234
+ xhr.send(formData);
278
235
  });
279
236
  }
280
237
  };
@@ -677,7 +634,8 @@ var UploaderController = class extends EventTarget {
677
634
  settings: uploadSettings ? {
678
635
  pretransformations: uploadSettings.pretransformations,
679
636
  tags: uploadSettings.tags,
680
- is_unique_suffix_name: uploadSettings.is_unique_suffix_name ?? false
637
+ is_unique_suffix_name: uploadSettings.is_unique_suffix_name ?? false,
638
+ custom_id: uploadSettings.custom_id
681
639
  } : void 0
682
640
  },
683
641
  (progress) => {