@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.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
|
-
|
|
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(`
|
|
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(`
|
|
192
|
+
reject(new Error(`Upload failed: ${errorText}`));
|
|
166
193
|
return;
|
|
167
194
|
}
|
|
168
|
-
const
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
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
|
|
212
|
+
reject(new Error("Failed to parse response"));
|
|
176
213
|
}
|
|
177
214
|
};
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
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 (
|
|
183
|
-
|
|
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(
|
|
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) => {
|