@or-sdk/files 0.20.1-createfilespackage.2 → 0.20.1-createfilespackage.20
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/cjs/Files.js +81 -58
- package/dist/cjs/Files.js.map +1 -1
- package/dist/esm/Files.js +62 -48
- package/dist/esm/Files.js.map +1 -1
- package/dist/types/Files.d.ts +8 -7
- package/dist/types/types.d.ts +29 -20
- package/package.json +4 -3
- package/src/Files.ts +136 -54
- package/src/types.ts +33 -17
package/dist/cjs/Files.js
CHANGED
|
@@ -70,18 +70,21 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
70
70
|
}
|
|
71
71
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
72
72
|
};
|
|
73
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
74
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
75
|
+
};
|
|
73
76
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
74
77
|
exports.Files = void 0;
|
|
78
|
+
var axios_1 = __importDefault(require("axios"));
|
|
75
79
|
var base_1 = require("@or-sdk/base");
|
|
76
80
|
var constants_1 = require("./constants");
|
|
77
81
|
var Files = (function (_super) {
|
|
78
82
|
__extends(Files, _super);
|
|
79
83
|
function Files(params) {
|
|
80
|
-
var token = params.token, discoveryUrl = params.discoveryUrl,
|
|
84
|
+
var token = params.token, discoveryUrl = params.discoveryUrl, serviceUrl = params.serviceUrl;
|
|
81
85
|
return _super.call(this, {
|
|
82
86
|
token: token,
|
|
83
87
|
discoveryUrl: discoveryUrl,
|
|
84
|
-
accountId: accountId,
|
|
85
88
|
serviceUrl: serviceUrl,
|
|
86
89
|
serviceKey: constants_1.SERVICE_KEY,
|
|
87
90
|
}) || this;
|
|
@@ -92,7 +95,7 @@ var Files = (function (_super) {
|
|
|
92
95
|
return __generator(this, function (_a) {
|
|
93
96
|
switch (_a.label) {
|
|
94
97
|
case 0: return [4, this.callApi({
|
|
95
|
-
method: '
|
|
98
|
+
method: 'get',
|
|
96
99
|
route: 'api/folder',
|
|
97
100
|
params: { key: key },
|
|
98
101
|
})];
|
|
@@ -103,7 +106,7 @@ var Files = (function (_super) {
|
|
|
103
106
|
});
|
|
104
107
|
});
|
|
105
108
|
};
|
|
106
|
-
Files.prototype.getItemsList = function (isPublic,
|
|
109
|
+
Files.prototype.getItemsList = function (isPublic, treePrefix) {
|
|
107
110
|
return __awaiter(this, void 0, void 0, function () {
|
|
108
111
|
var nextToken, totalItems, queryParams, _a, items, nextTokenResponse;
|
|
109
112
|
return __generator(this, function (_b) {
|
|
@@ -115,7 +118,7 @@ var Files = (function (_super) {
|
|
|
115
118
|
case 1:
|
|
116
119
|
queryParams = {
|
|
117
120
|
isPublic: isPublic,
|
|
118
|
-
prefix:
|
|
121
|
+
prefix: treePrefix,
|
|
119
122
|
};
|
|
120
123
|
if (nextToken)
|
|
121
124
|
queryParams.nextToken = nextToken;
|
|
@@ -137,6 +140,40 @@ var Files = (function (_super) {
|
|
|
137
140
|
});
|
|
138
141
|
});
|
|
139
142
|
};
|
|
143
|
+
Files.prototype.search = function (isPublic, term) {
|
|
144
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
145
|
+
var nextToken, totalItems, queryParams, _a, files, nextTokenResponse;
|
|
146
|
+
return __generator(this, function (_b) {
|
|
147
|
+
switch (_b.label) {
|
|
148
|
+
case 0:
|
|
149
|
+
nextToken = null;
|
|
150
|
+
totalItems = [];
|
|
151
|
+
_b.label = 1;
|
|
152
|
+
case 1:
|
|
153
|
+
queryParams = {
|
|
154
|
+
isPublic: isPublic,
|
|
155
|
+
term: term,
|
|
156
|
+
};
|
|
157
|
+
if (nextToken)
|
|
158
|
+
queryParams.nextToken = nextToken;
|
|
159
|
+
return [4, this.callApi({
|
|
160
|
+
method: 'GET',
|
|
161
|
+
route: 'api/files/search',
|
|
162
|
+
params: queryParams,
|
|
163
|
+
})];
|
|
164
|
+
case 2:
|
|
165
|
+
_a = _b.sent(), files = _a.files, nextTokenResponse = _a.nextTokenResponse;
|
|
166
|
+
totalItems = __spreadArray(__spreadArray([], totalItems, true), files, true);
|
|
167
|
+
nextToken = nextTokenResponse;
|
|
168
|
+
_b.label = 3;
|
|
169
|
+
case 3:
|
|
170
|
+
if (nextToken) return [3, 1];
|
|
171
|
+
_b.label = 4;
|
|
172
|
+
case 4: return [2, totalItems];
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
};
|
|
140
177
|
Files.prototype.createFolder = function (folderName) {
|
|
141
178
|
return __awaiter(this, void 0, void 0, function () {
|
|
142
179
|
return __generator(this, function (_a) {
|
|
@@ -144,7 +181,7 @@ var Files = (function (_super) {
|
|
|
144
181
|
case 0: return [4, this.callApi({
|
|
145
182
|
method: 'post',
|
|
146
183
|
route: 'api/files',
|
|
147
|
-
data: { key: folderName
|
|
184
|
+
data: { key: folderName },
|
|
148
185
|
})];
|
|
149
186
|
case 1:
|
|
150
187
|
_a.sent();
|
|
@@ -173,18 +210,18 @@ var Files = (function (_super) {
|
|
|
173
210
|
});
|
|
174
211
|
});
|
|
175
212
|
};
|
|
176
|
-
Files.prototype.
|
|
213
|
+
Files.prototype.duplicateFile = function (key, newKey, isPublic) {
|
|
177
214
|
return __awaiter(this, void 0, void 0, function () {
|
|
178
215
|
return __generator(this, function (_a) {
|
|
179
216
|
switch (_a.label) {
|
|
180
217
|
case 0: return [4, this.callApi({
|
|
181
|
-
method: '
|
|
182
|
-
route: 'api/files',
|
|
218
|
+
method: 'put',
|
|
219
|
+
route: 'api/files/duplicate',
|
|
183
220
|
params: {
|
|
184
221
|
key: key,
|
|
185
222
|
isPublic: isPublic,
|
|
186
223
|
},
|
|
187
|
-
data: {
|
|
224
|
+
data: { newKey: newKey },
|
|
188
225
|
})];
|
|
189
226
|
case 1:
|
|
190
227
|
_a.sent();
|
|
@@ -193,17 +230,18 @@ var Files = (function (_super) {
|
|
|
193
230
|
});
|
|
194
231
|
});
|
|
195
232
|
};
|
|
196
|
-
Files.prototype.
|
|
233
|
+
Files.prototype.changePrivacy = function (key, newPrivacy, isPublic) {
|
|
197
234
|
return __awaiter(this, void 0, void 0, function () {
|
|
198
235
|
return __generator(this, function (_a) {
|
|
199
236
|
switch (_a.label) {
|
|
200
237
|
case 0: return [4, this.callApi({
|
|
201
|
-
method: '
|
|
238
|
+
method: 'patch',
|
|
202
239
|
route: 'api/files',
|
|
203
240
|
params: {
|
|
204
241
|
key: key,
|
|
205
242
|
isPublic: isPublic,
|
|
206
243
|
},
|
|
244
|
+
data: { newPrivacy: newPrivacy },
|
|
207
245
|
})];
|
|
208
246
|
case 1:
|
|
209
247
|
_a.sent();
|
|
@@ -212,14 +250,17 @@ var Files = (function (_super) {
|
|
|
212
250
|
});
|
|
213
251
|
});
|
|
214
252
|
};
|
|
215
|
-
Files.prototype.
|
|
253
|
+
Files.prototype.deleteFile = function (key, isPublic) {
|
|
216
254
|
return __awaiter(this, void 0, void 0, function () {
|
|
217
255
|
return __generator(this, function (_a) {
|
|
218
256
|
switch (_a.label) {
|
|
219
257
|
case 0: return [4, this.callApi({
|
|
220
258
|
method: 'delete',
|
|
221
|
-
route: 'api/
|
|
222
|
-
|
|
259
|
+
route: 'api/files',
|
|
260
|
+
params: {
|
|
261
|
+
key: key,
|
|
262
|
+
isPublic: isPublic,
|
|
263
|
+
},
|
|
223
264
|
})];
|
|
224
265
|
case 1:
|
|
225
266
|
_a.sent();
|
|
@@ -228,17 +269,14 @@ var Files = (function (_super) {
|
|
|
228
269
|
});
|
|
229
270
|
});
|
|
230
271
|
};
|
|
231
|
-
Files.prototype.
|
|
272
|
+
Files.prototype.deleteFolder = function (key) {
|
|
232
273
|
return __awaiter(this, void 0, void 0, function () {
|
|
233
274
|
return __generator(this, function (_a) {
|
|
234
275
|
switch (_a.label) {
|
|
235
276
|
case 0: return [4, this.callApi({
|
|
236
|
-
method: '
|
|
277
|
+
method: 'delete',
|
|
237
278
|
route: 'api/folder',
|
|
238
|
-
|
|
239
|
-
key: key,
|
|
240
|
-
isPublic: isPublic,
|
|
241
|
-
},
|
|
279
|
+
data: { key: key },
|
|
242
280
|
})];
|
|
243
281
|
case 1:
|
|
244
282
|
_a.sent();
|
|
@@ -264,74 +302,59 @@ var Files = (function (_super) {
|
|
|
264
302
|
});
|
|
265
303
|
});
|
|
266
304
|
};
|
|
267
|
-
Files.prototype.
|
|
305
|
+
Files.prototype.getObjectInfo = function (key, isPublic) {
|
|
268
306
|
return __awaiter(this, void 0, void 0, function () {
|
|
269
307
|
return __generator(this, function (_a) {
|
|
270
308
|
switch (_a.label) {
|
|
271
309
|
case 0: return [4, this.callApi({
|
|
272
|
-
method: '
|
|
273
|
-
route: 'api/
|
|
310
|
+
method: 'get',
|
|
311
|
+
route: 'api/file',
|
|
274
312
|
params: {
|
|
313
|
+
key: key,
|
|
275
314
|
isPublic: isPublic,
|
|
276
315
|
},
|
|
277
|
-
data: __assign({}, data),
|
|
278
316
|
})];
|
|
279
317
|
case 1: return [2, _a.sent()];
|
|
280
318
|
}
|
|
281
319
|
});
|
|
282
320
|
});
|
|
283
321
|
};
|
|
284
|
-
Files.prototype.
|
|
285
|
-
return
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
files: files,
|
|
294
|
-
},
|
|
295
|
-
})];
|
|
296
|
-
case 1: return [2, _a.sent()];
|
|
297
|
-
}
|
|
298
|
-
});
|
|
322
|
+
Files.prototype.getUploadUrl = function (data, isPublic) {
|
|
323
|
+
return this.callApi({
|
|
324
|
+
method: 'post',
|
|
325
|
+
route: 'api/url',
|
|
326
|
+
params: {
|
|
327
|
+
isPublic: isPublic,
|
|
328
|
+
prefix: '',
|
|
329
|
+
},
|
|
330
|
+
data: __assign({}, data),
|
|
299
331
|
});
|
|
300
332
|
};
|
|
301
333
|
Files.prototype.uploadFile = function (file) {
|
|
302
334
|
return __awaiter(this, void 0, void 0, function () {
|
|
303
|
-
var _a, type, name, contentType,
|
|
335
|
+
var _a, type, name, contentType, _b, url, fields, formData;
|
|
304
336
|
return __generator(this, function (_c) {
|
|
305
337
|
switch (_c.label) {
|
|
306
338
|
case 0:
|
|
307
339
|
_a = file.fileModel, type = _a.type, name = _a.name;
|
|
308
340
|
contentType = type || 'binary/octet-stream';
|
|
309
|
-
cacheControl = file.ttl ? "max-age=".concat(file.ttl) : 'no-cache';
|
|
310
341
|
return [4, this.getUploadUrl({
|
|
311
342
|
contentType: contentType,
|
|
312
343
|
key: file.prefix + name,
|
|
313
|
-
|
|
314
|
-
cacheControl: cacheControl,
|
|
344
|
+
cacheControl: 'no-cache',
|
|
315
345
|
}, file.isPublic)];
|
|
316
346
|
case 1:
|
|
317
347
|
_b = _c.sent(), url = _b.url, fields = _b.fields;
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
formData.append(field.key, field.value);
|
|
348
|
+
formData = new FormData();
|
|
349
|
+
Object.entries(fields).forEach(function (value) {
|
|
350
|
+
formData.append(value[0], value[1]);
|
|
322
351
|
});
|
|
323
|
-
formData.append('cache-control',
|
|
352
|
+
formData.append('cache-control', 'no-cache');
|
|
324
353
|
formData.append('content-type', contentType);
|
|
325
|
-
formData.append('File', file.fileModel
|
|
326
|
-
return [
|
|
327
|
-
|
|
328
|
-
route: url,
|
|
329
|
-
params: {
|
|
330
|
-
isPublic: file.isPublic,
|
|
331
|
-
},
|
|
332
|
-
data: { formData: formData },
|
|
354
|
+
formData.append('File', file.fileModel, name);
|
|
355
|
+
return [2, axios_1.default.post(url, formData, {
|
|
356
|
+
onUploadProgress: function (event) { return file.progress(event, name); },
|
|
333
357
|
})];
|
|
334
|
-
case 2: return [2, _c.sent()];
|
|
335
358
|
}
|
|
336
359
|
});
|
|
337
360
|
});
|
package/dist/cjs/Files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Files.js","sourceRoot":"","sources":["../../src/Files.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Files.js","sourceRoot":"","sources":["../../src/Files.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/Files.js
CHANGED
|
@@ -7,15 +7,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
+
import axios from 'axios';
|
|
10
11
|
import { Base } from '@or-sdk/base';
|
|
11
12
|
import { SERVICE_KEY } from './constants';
|
|
12
13
|
export class Files extends Base {
|
|
13
14
|
constructor(params) {
|
|
14
|
-
const { token, discoveryUrl,
|
|
15
|
+
const { token, discoveryUrl, serviceUrl } = params;
|
|
15
16
|
super({
|
|
16
17
|
token,
|
|
17
18
|
discoveryUrl,
|
|
18
|
-
accountId,
|
|
19
19
|
serviceUrl,
|
|
20
20
|
serviceKey: SERVICE_KEY,
|
|
21
21
|
});
|
|
@@ -23,21 +23,21 @@ export class Files extends Base {
|
|
|
23
23
|
getFolderSize(key) {
|
|
24
24
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25
25
|
const { size } = yield this.callApi({
|
|
26
|
-
method: '
|
|
26
|
+
method: 'get',
|
|
27
27
|
route: 'api/folder',
|
|
28
28
|
params: { key },
|
|
29
29
|
});
|
|
30
30
|
return size;
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
|
-
getItemsList(isPublic,
|
|
33
|
+
getItemsList(isPublic, treePrefix) {
|
|
34
34
|
return __awaiter(this, void 0, void 0, function* () {
|
|
35
35
|
let nextToken = null;
|
|
36
36
|
let totalItems = [];
|
|
37
37
|
do {
|
|
38
38
|
const queryParams = {
|
|
39
39
|
isPublic,
|
|
40
|
-
prefix,
|
|
40
|
+
prefix: treePrefix,
|
|
41
41
|
};
|
|
42
42
|
if (nextToken)
|
|
43
43
|
queryParams.nextToken = nextToken;
|
|
@@ -52,12 +52,34 @@ export class Files extends Base {
|
|
|
52
52
|
return totalItems;
|
|
53
53
|
});
|
|
54
54
|
}
|
|
55
|
+
search(isPublic, term) {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
let nextToken = null;
|
|
58
|
+
let totalItems = [];
|
|
59
|
+
do {
|
|
60
|
+
const queryParams = {
|
|
61
|
+
isPublic,
|
|
62
|
+
term,
|
|
63
|
+
};
|
|
64
|
+
if (nextToken)
|
|
65
|
+
queryParams.nextToken = nextToken;
|
|
66
|
+
const { files, nextTokenResponse } = yield this.callApi({
|
|
67
|
+
method: 'GET',
|
|
68
|
+
route: 'api/files/search',
|
|
69
|
+
params: queryParams,
|
|
70
|
+
});
|
|
71
|
+
totalItems = [...totalItems, ...files];
|
|
72
|
+
nextToken = nextTokenResponse;
|
|
73
|
+
} while (nextToken);
|
|
74
|
+
return totalItems;
|
|
75
|
+
});
|
|
76
|
+
}
|
|
55
77
|
createFolder(folderName) {
|
|
56
78
|
return __awaiter(this, void 0, void 0, function* () {
|
|
57
79
|
yield this.callApi({
|
|
58
80
|
method: 'post',
|
|
59
81
|
route: 'api/files',
|
|
60
|
-
data: { key: folderName
|
|
82
|
+
data: { key: folderName },
|
|
61
83
|
});
|
|
62
84
|
});
|
|
63
85
|
}
|
|
@@ -74,6 +96,19 @@ export class Files extends Base {
|
|
|
74
96
|
});
|
|
75
97
|
});
|
|
76
98
|
}
|
|
99
|
+
duplicateFile(key, newKey, isPublic) {
|
|
100
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
+
yield this.callApi({
|
|
102
|
+
method: 'put',
|
|
103
|
+
route: 'api/files/duplicate',
|
|
104
|
+
params: {
|
|
105
|
+
key,
|
|
106
|
+
isPublic,
|
|
107
|
+
},
|
|
108
|
+
data: { newKey },
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
}
|
|
77
112
|
changePrivacy(key, newPrivacy, isPublic) {
|
|
78
113
|
return __awaiter(this, void 0, void 0, function* () {
|
|
79
114
|
yield this.callApi({
|
|
@@ -108,18 +143,6 @@ export class Files extends Base {
|
|
|
108
143
|
});
|
|
109
144
|
});
|
|
110
145
|
}
|
|
111
|
-
getObjectSize(key, isPublic) {
|
|
112
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
113
|
-
yield this.callApi({
|
|
114
|
-
method: 'get',
|
|
115
|
-
route: 'api/folder',
|
|
116
|
-
params: {
|
|
117
|
-
key,
|
|
118
|
-
isPublic,
|
|
119
|
-
},
|
|
120
|
-
});
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
146
|
getDownloadUrl(key, isPublic) {
|
|
124
147
|
return __awaiter(this, void 0, void 0, function* () {
|
|
125
148
|
return yield this.callApi({
|
|
@@ -132,56 +155,47 @@ export class Files extends Base {
|
|
|
132
155
|
});
|
|
133
156
|
});
|
|
134
157
|
}
|
|
135
|
-
|
|
158
|
+
getObjectInfo(key, isPublic) {
|
|
136
159
|
return __awaiter(this, void 0, void 0, function* () {
|
|
137
160
|
return yield this.callApi({
|
|
138
|
-
method: '
|
|
139
|
-
route: 'api/
|
|
161
|
+
method: 'get',
|
|
162
|
+
route: 'api/file',
|
|
140
163
|
params: {
|
|
164
|
+
key,
|
|
141
165
|
isPublic,
|
|
142
166
|
},
|
|
143
|
-
data: Object.assign({}, data),
|
|
144
167
|
});
|
|
145
168
|
});
|
|
146
169
|
}
|
|
147
|
-
|
|
148
|
-
return
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
});
|
|
170
|
+
getUploadUrl(data, isPublic) {
|
|
171
|
+
return this.callApi({
|
|
172
|
+
method: 'post',
|
|
173
|
+
route: 'api/url',
|
|
174
|
+
params: {
|
|
175
|
+
isPublic,
|
|
176
|
+
prefix: '',
|
|
177
|
+
},
|
|
178
|
+
data: Object.assign({}, data),
|
|
157
179
|
});
|
|
158
180
|
}
|
|
159
181
|
uploadFile(file) {
|
|
160
182
|
return __awaiter(this, void 0, void 0, function* () {
|
|
161
183
|
const { type, name } = file.fileModel;
|
|
162
184
|
const contentType = type || 'binary/octet-stream';
|
|
163
|
-
const cacheControl = file.ttl ? `max-age=${file.ttl}` : 'no-cache';
|
|
164
185
|
const { url, fields } = yield this.getUploadUrl({
|
|
165
186
|
contentType,
|
|
166
187
|
key: file.prefix + name,
|
|
167
|
-
|
|
168
|
-
cacheControl,
|
|
188
|
+
cacheControl: 'no-cache',
|
|
169
189
|
}, file.isPublic);
|
|
170
|
-
const
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
formData.append(field.key, field.value);
|
|
190
|
+
const formData = new FormData();
|
|
191
|
+
Object.entries(fields).forEach(value => {
|
|
192
|
+
formData.append(value[0], value[1]);
|
|
174
193
|
});
|
|
175
|
-
formData.append('cache-control',
|
|
194
|
+
formData.append('cache-control', 'no-cache');
|
|
176
195
|
formData.append('content-type', contentType);
|
|
177
|
-
formData.append('File', file.fileModel
|
|
178
|
-
return
|
|
179
|
-
|
|
180
|
-
route: url,
|
|
181
|
-
params: {
|
|
182
|
-
isPublic: file.isPublic,
|
|
183
|
-
},
|
|
184
|
-
data: { formData },
|
|
196
|
+
formData.append('File', file.fileModel, name);
|
|
197
|
+
return axios.post(url, formData, {
|
|
198
|
+
onUploadProgress: event => file.progress(event, name),
|
|
185
199
|
});
|
|
186
200
|
});
|
|
187
201
|
}
|
package/dist/esm/Files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Files.js","sourceRoot":"","sources":["../../src/Files.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Files.js","sourceRoot":"","sources":["../../src/Files.ts"],"names":[],"mappings":"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"}
|
package/dist/types/Files.d.ts
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { Base } from '@or-sdk/base';
|
|
2
|
-
import { FilesConfig, FileItem,
|
|
2
|
+
import { FilesConfig, FileItem, UploadFileProps, HeadData } from './types';
|
|
3
3
|
export declare class Files extends Base {
|
|
4
4
|
constructor(params: FilesConfig);
|
|
5
5
|
getFolderSize(key: string): Promise<number>;
|
|
6
|
-
getItemsList(isPublic: boolean,
|
|
6
|
+
getItemsList(isPublic: boolean, treePrefix: string): Promise<FileItem[]>;
|
|
7
|
+
search(isPublic: boolean, term: string): Promise<FileItem[]>;
|
|
7
8
|
createFolder(folderName: string): Promise<void>;
|
|
8
9
|
renameFile(key: string, newKey: string, isPublic: boolean): Promise<void>;
|
|
9
|
-
|
|
10
|
+
duplicateFile(key: string, newKey: string, isPublic: boolean): Promise<void>;
|
|
11
|
+
changePrivacy(key: string, newPrivacy: 'private' | 'public', isPublic: boolean): Promise<void>;
|
|
10
12
|
deleteFile(key: string, isPublic: boolean): Promise<void>;
|
|
11
13
|
deleteFolder(key: string): Promise<void>;
|
|
12
|
-
getObjectSize(key: string, isPublic: boolean): Promise<void>;
|
|
13
14
|
getDownloadUrl(key: string, isPublic: boolean): Promise<string>;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
uploadFile(file: UploadFileProps): Promise<
|
|
15
|
+
getObjectInfo(key: string, isPublic: boolean): Promise<HeadData>;
|
|
16
|
+
private getUploadUrl;
|
|
17
|
+
uploadFile(file: UploadFileProps): Promise<void>;
|
|
17
18
|
}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -5,14 +5,20 @@ export declare type FilesConfig = {
|
|
|
5
5
|
accountId?: string;
|
|
6
6
|
serviceUrl?: string;
|
|
7
7
|
};
|
|
8
|
-
export declare type
|
|
8
|
+
export declare type GetItemsQuery = {
|
|
9
9
|
isPublic: boolean;
|
|
10
10
|
prefix: string;
|
|
11
11
|
nextToken?: string;
|
|
12
12
|
};
|
|
13
|
+
export declare type SearchQuery = {
|
|
14
|
+
isPublic: boolean;
|
|
15
|
+
term: string;
|
|
16
|
+
nextToken?: string;
|
|
17
|
+
};
|
|
13
18
|
export declare type FileItem = {
|
|
14
19
|
key: string;
|
|
15
20
|
size?: number;
|
|
21
|
+
lastModified?: string;
|
|
16
22
|
};
|
|
17
23
|
export declare type FilesPageState = {
|
|
18
24
|
filesInstance: any;
|
|
@@ -22,42 +28,45 @@ export declare type FilesPageState = {
|
|
|
22
28
|
accountId: string;
|
|
23
29
|
renameFrom: string;
|
|
24
30
|
renameTo: string;
|
|
31
|
+
searchString: string;
|
|
25
32
|
items: FileItem[];
|
|
33
|
+
searchItems: FileItem[];
|
|
34
|
+
};
|
|
35
|
+
export declare type HeadData = {
|
|
36
|
+
contentLength: number;
|
|
37
|
+
contentType: string;
|
|
38
|
+
metaData: object;
|
|
26
39
|
};
|
|
27
|
-
export declare type
|
|
40
|
+
export declare type GetItemsListResponse = {
|
|
28
41
|
items: FileItem[];
|
|
29
42
|
nextTokenResponse: string | null;
|
|
30
43
|
};
|
|
44
|
+
export declare type SearchItemsListResponse = {
|
|
45
|
+
files: FileItem[];
|
|
46
|
+
nextTokenResponse: string | null;
|
|
47
|
+
};
|
|
31
48
|
export declare type UploadUrlProps = {
|
|
32
49
|
key: string;
|
|
33
50
|
contentType: string;
|
|
34
|
-
maxFileSize
|
|
51
|
+
maxFileSize?: number;
|
|
35
52
|
cacheControl: string;
|
|
36
53
|
};
|
|
37
54
|
export declare type UploadUrlResponse = {
|
|
38
55
|
url: string;
|
|
39
56
|
fields: {
|
|
40
57
|
key: string;
|
|
41
|
-
|
|
58
|
+
bucket: string;
|
|
59
|
+
Policy: string;
|
|
60
|
+
'X-Amz-Date': string;
|
|
61
|
+
'X-Amz-Signature': string;
|
|
62
|
+
'X-Amz-Algorithm': string;
|
|
63
|
+
'X-Amz-Credential': string;
|
|
64
|
+
'X-Amz-Security-Token': string;
|
|
42
65
|
}[];
|
|
43
66
|
};
|
|
44
|
-
export declare type UploadFile = {
|
|
45
|
-
name: string;
|
|
46
|
-
size: number;
|
|
47
|
-
contentType: string;
|
|
48
|
-
cacheControl: string;
|
|
49
|
-
ttl: number;
|
|
50
|
-
};
|
|
51
67
|
export declare type UploadFileProps = {
|
|
52
|
-
fileModel:
|
|
53
|
-
type: string;
|
|
54
|
-
name: string;
|
|
55
|
-
file: any;
|
|
56
|
-
};
|
|
68
|
+
fileModel: File;
|
|
57
69
|
prefix: string;
|
|
58
70
|
isPublic: boolean;
|
|
59
|
-
|
|
60
|
-
progress: any;
|
|
61
|
-
maxFileSize: number;
|
|
62
|
-
ttl: number;
|
|
71
|
+
progress: (event: ProgressEvent, name: string) => void;
|
|
63
72
|
};
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.20.1-createfilespackage.
|
|
2
|
+
"version": "0.20.1-createfilespackage.20",
|
|
3
3
|
"name": "@or-sdk/files",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/esm/index.js",
|
|
@@ -23,7 +23,8 @@
|
|
|
23
23
|
"access": "public"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@or-sdk/base": "^0.20.1-createfilespackage.
|
|
26
|
+
"@or-sdk/base": "^0.20.1-createfilespackage.20",
|
|
27
|
+
"axios": "^0.24.0"
|
|
27
28
|
},
|
|
28
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "91f4845ec94874576bcb803cfce781b689ffee68"
|
|
29
30
|
}
|
package/src/Files.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
1
2
|
import { Base } from '@or-sdk/base';
|
|
2
|
-
import { FilesConfig, LsQuery, FileItem, getItemsListResponse, UploadUrlProps, UploadFile, UploadFileProps, UploadUrlResponse } from './types';
|
|
3
3
|
import { SERVICE_KEY } from './constants';
|
|
4
|
+
import {
|
|
5
|
+
FilesConfig, GetItemsQuery, SearchItemsListResponse, SearchQuery, FileItem,
|
|
6
|
+
GetItemsListResponse, UploadUrlProps, UploadFileProps, UploadUrlResponse, HeadData,
|
|
7
|
+
} from './types';
|
|
4
8
|
|
|
5
9
|
/**
|
|
6
10
|
* OneReach Files service client
|
|
@@ -17,12 +21,11 @@ export class Files extends Base {
|
|
|
17
21
|
* ```
|
|
18
22
|
*/
|
|
19
23
|
constructor(params: FilesConfig) {
|
|
20
|
-
const { token, discoveryUrl,
|
|
24
|
+
const { token, discoveryUrl, serviceUrl } = params;
|
|
21
25
|
|
|
22
26
|
super({
|
|
23
27
|
token,
|
|
24
28
|
discoveryUrl,
|
|
25
|
-
accountId,
|
|
26
29
|
serviceUrl,
|
|
27
30
|
serviceKey: SERVICE_KEY,
|
|
28
31
|
});
|
|
@@ -31,28 +34,36 @@ export class Files extends Base {
|
|
|
31
34
|
/**
|
|
32
35
|
* Get folder size
|
|
33
36
|
* @param key the name of folder
|
|
37
|
+
* @return total folder size in bytes
|
|
34
38
|
*/
|
|
35
39
|
async getFolderSize(key: string): Promise<number> {
|
|
36
40
|
const { size } = await this.callApi({
|
|
37
|
-
method: '
|
|
41
|
+
method: 'get',
|
|
38
42
|
route: 'api/folder',
|
|
39
43
|
params: { key },
|
|
40
44
|
});
|
|
41
45
|
|
|
42
46
|
return size;
|
|
43
47
|
}
|
|
44
|
-
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Get list of public/private FileItems from api
|
|
51
|
+
* @param isPublic does this file public or private
|
|
52
|
+
* @param treePrefix the folder path where GET FileItems, for Root use ''
|
|
53
|
+
* @return list of FileItems
|
|
54
|
+
*/
|
|
55
|
+
async getItemsList(isPublic: boolean, treePrefix: string): Promise<FileItem[]> {
|
|
45
56
|
let nextToken: null | string = null;
|
|
46
57
|
let totalItems: FileItem[] = [];
|
|
47
58
|
|
|
48
59
|
do {
|
|
49
|
-
const queryParams:
|
|
60
|
+
const queryParams: GetItemsQuery = {
|
|
50
61
|
isPublic,
|
|
51
|
-
prefix,
|
|
62
|
+
prefix: treePrefix,
|
|
52
63
|
};
|
|
53
64
|
if (nextToken) queryParams.nextToken = nextToken;
|
|
54
65
|
|
|
55
|
-
const { items, nextTokenResponse }:
|
|
66
|
+
const { items, nextTokenResponse }: GetItemsListResponse = await this.callApi({
|
|
56
67
|
method: 'GET',
|
|
57
68
|
route: 'api/files',
|
|
58
69
|
params: queryParams,
|
|
@@ -65,15 +76,51 @@ export class Files extends Base {
|
|
|
65
76
|
return totalItems;
|
|
66
77
|
}
|
|
67
78
|
|
|
68
|
-
async
|
|
79
|
+
async search(isPublic: boolean, term: string): Promise<FileItem[]> {
|
|
80
|
+
let nextToken = null;
|
|
81
|
+
let totalItems: FileItem[] = [];
|
|
82
|
+
|
|
83
|
+
do {
|
|
84
|
+
const queryParams: SearchQuery = {
|
|
85
|
+
isPublic,
|
|
86
|
+
term,
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
if (nextToken) queryParams.nextToken = nextToken;
|
|
90
|
+
|
|
91
|
+
const { files, nextTokenResponse }: SearchItemsListResponse = await this.callApi({
|
|
92
|
+
method: 'GET',
|
|
93
|
+
route: 'api/files/search',
|
|
94
|
+
params: queryParams,
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
totalItems = [...totalItems, ...files];
|
|
98
|
+
nextToken = nextTokenResponse;
|
|
99
|
+
|
|
100
|
+
} while (nextToken);
|
|
101
|
+
|
|
102
|
+
return totalItems;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Create new folders
|
|
107
|
+
* @param folderName should have folder path + folder name, example: /main/New folder
|
|
108
|
+
*/
|
|
109
|
+
async createFolder(folderName: string): Promise<void> {
|
|
69
110
|
await this.callApi({
|
|
70
111
|
method: 'post',
|
|
71
112
|
route: 'api/files',
|
|
72
|
-
data: { key: folderName
|
|
113
|
+
data: { key: folderName },
|
|
73
114
|
});
|
|
74
115
|
}
|
|
75
116
|
|
|
76
|
-
|
|
117
|
+
/**
|
|
118
|
+
* Rename exist file
|
|
119
|
+
* @param key old file name
|
|
120
|
+
* @param newKey new file name
|
|
121
|
+
* @param isPublic does this file public or private
|
|
122
|
+
*/
|
|
123
|
+
async renameFile(key: string, newKey: string, isPublic: boolean): Promise<void> {
|
|
77
124
|
await this.callApi({
|
|
78
125
|
method: 'put',
|
|
79
126
|
route: 'api/files',
|
|
@@ -85,7 +132,31 @@ export class Files extends Base {
|
|
|
85
132
|
});
|
|
86
133
|
}
|
|
87
134
|
|
|
88
|
-
|
|
135
|
+
/**
|
|
136
|
+
* Duplicate file
|
|
137
|
+
* @param key target file name
|
|
138
|
+
* @param newKey new file name
|
|
139
|
+
* @param isPublic does this file public or private
|
|
140
|
+
*/
|
|
141
|
+
async duplicateFile(key: string, newKey: string, isPublic: boolean): Promise<void> {
|
|
142
|
+
await this.callApi({
|
|
143
|
+
method: 'put',
|
|
144
|
+
route: 'api/files/duplicate',
|
|
145
|
+
params: {
|
|
146
|
+
key,
|
|
147
|
+
isPublic,
|
|
148
|
+
},
|
|
149
|
+
data: { newKey },
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Change file privacy
|
|
155
|
+
* @param key file name
|
|
156
|
+
* @param newPrivacy new file privacy
|
|
157
|
+
* @param isPublic does this file public or private
|
|
158
|
+
*/
|
|
159
|
+
async changePrivacy(key: string, newPrivacy: 'private' | 'public', isPublic: boolean): Promise<void> {
|
|
89
160
|
await this.callApi({
|
|
90
161
|
method: 'patch',
|
|
91
162
|
route: 'api/files',
|
|
@@ -97,7 +168,13 @@ export class Files extends Base {
|
|
|
97
168
|
});
|
|
98
169
|
}
|
|
99
170
|
|
|
100
|
-
|
|
171
|
+
/**
|
|
172
|
+
* Delete file
|
|
173
|
+
* @param key file name
|
|
174
|
+
* @param isPublic does this file public or private
|
|
175
|
+
*/
|
|
176
|
+
async deleteFile(key: string, isPublic: boolean): Promise<void> {
|
|
177
|
+
// TODO: add error handler and status response true
|
|
101
178
|
await this.callApi({
|
|
102
179
|
method: 'delete',
|
|
103
180
|
route: 'api/files',
|
|
@@ -108,7 +185,12 @@ export class Files extends Base {
|
|
|
108
185
|
});
|
|
109
186
|
}
|
|
110
187
|
|
|
111
|
-
|
|
188
|
+
/**
|
|
189
|
+
* Delete folder
|
|
190
|
+
* @param key folder name
|
|
191
|
+
*/
|
|
192
|
+
async deleteFolder(key: string): Promise<void> {
|
|
193
|
+
// TODO: add error handler and status response true
|
|
112
194
|
await this.callApi({
|
|
113
195
|
method: 'delete',
|
|
114
196
|
route: 'api/folder',
|
|
@@ -116,10 +198,16 @@ export class Files extends Base {
|
|
|
116
198
|
});
|
|
117
199
|
}
|
|
118
200
|
|
|
119
|
-
|
|
120
|
-
|
|
201
|
+
/**
|
|
202
|
+
* Get a link to download file, example: for preview
|
|
203
|
+
* @param key folder name
|
|
204
|
+
* @param isPublic does this file public or private
|
|
205
|
+
* @return file url
|
|
206
|
+
*/
|
|
207
|
+
async getDownloadUrl(key: string, isPublic: boolean): Promise<string> {
|
|
208
|
+
return await this.callApi({
|
|
121
209
|
method: 'get',
|
|
122
|
-
route: 'api/
|
|
210
|
+
route: 'api/url',
|
|
123
211
|
params: {
|
|
124
212
|
key,
|
|
125
213
|
isPublic,
|
|
@@ -127,11 +215,15 @@ export class Files extends Base {
|
|
|
127
215
|
});
|
|
128
216
|
}
|
|
129
217
|
|
|
130
|
-
|
|
131
|
-
|
|
218
|
+
/**
|
|
219
|
+
* Get object info
|
|
220
|
+
* @param key folder name
|
|
221
|
+
* @param isPublic does this file public or private
|
|
222
|
+
*/
|
|
223
|
+
async getObjectInfo(key: string, isPublic: boolean): Promise<HeadData> {
|
|
132
224
|
return await this.callApi({
|
|
133
225
|
method: 'get',
|
|
134
|
-
route: 'api/
|
|
226
|
+
route: 'api/file',
|
|
135
227
|
params: {
|
|
136
228
|
key,
|
|
137
229
|
isPublic,
|
|
@@ -139,62 +231,52 @@ export class Files extends Base {
|
|
|
139
231
|
});
|
|
140
232
|
}
|
|
141
233
|
|
|
142
|
-
|
|
143
|
-
|
|
234
|
+
/**
|
|
235
|
+
* Get a link for uploading specific file, JUST FOR INNER USE
|
|
236
|
+
* @param data has UploadUrlProps values inside
|
|
237
|
+
* @param isPublic does this file public or private
|
|
238
|
+
* @return uploading Url with different header Fields
|
|
239
|
+
*/
|
|
240
|
+
private getUploadUrl(data: UploadUrlProps, isPublic: boolean): Promise<UploadUrlResponse> {
|
|
241
|
+
return this.callApi({
|
|
144
242
|
method: 'post',
|
|
145
243
|
route: 'api/url',
|
|
146
244
|
params: {
|
|
147
245
|
isPublic,
|
|
246
|
+
prefix: '',
|
|
148
247
|
},
|
|
149
248
|
data: { ...data },
|
|
150
249
|
});
|
|
151
250
|
}
|
|
152
251
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
postfix,
|
|
159
|
-
files,
|
|
160
|
-
// old version
|
|
161
|
-
// files: _.map(files, file => _.omit(file, ['fileDescriptor'])),
|
|
162
|
-
// ...(!_.isEmpty(options) && options),
|
|
163
|
-
},
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
async uploadFile(file: UploadFileProps) {
|
|
252
|
+
/**
|
|
253
|
+
* Upload file to S3 bucket
|
|
254
|
+
* @param file file itself for uploading with prefix (path) and isPublic boolean
|
|
255
|
+
*/
|
|
256
|
+
async uploadFile(file: UploadFileProps): Promise<void> {
|
|
168
257
|
const { type, name } = file.fileModel;
|
|
169
258
|
const contentType = type || 'binary/octet-stream';
|
|
170
|
-
const cacheControl = file.ttl ? `max-age=${file.ttl}` : 'no-cache';
|
|
171
259
|
|
|
172
260
|
const { url, fields } = await this.getUploadUrl({
|
|
173
261
|
contentType,
|
|
174
262
|
key: file.prefix + name,
|
|
175
|
-
|
|
176
|
-
cacheControl,
|
|
263
|
+
cacheControl: 'no-cache',
|
|
177
264
|
}, file.isPublic);
|
|
178
265
|
|
|
179
|
-
const
|
|
180
|
-
const formData = new FormDataLib();
|
|
266
|
+
const formData = new FormData();
|
|
181
267
|
|
|
182
|
-
fields.forEach(
|
|
183
|
-
|
|
268
|
+
Object.entries(fields).forEach(value => {
|
|
269
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
270
|
+
// @ts-ignore
|
|
271
|
+
formData.append(value[0], value[1]);
|
|
184
272
|
});
|
|
185
273
|
|
|
186
|
-
formData.append('cache-control',
|
|
274
|
+
formData.append('cache-control', 'no-cache');
|
|
187
275
|
formData.append('content-type', contentType);
|
|
188
|
-
formData.append('File', file.fileModel
|
|
189
|
-
|
|
276
|
+
formData.append('File', file.fileModel, name);
|
|
190
277
|
|
|
191
|
-
return
|
|
192
|
-
|
|
193
|
-
route: url,
|
|
194
|
-
params: {
|
|
195
|
-
isPublic: file.isPublic,
|
|
196
|
-
},
|
|
197
|
-
data: { formData },
|
|
278
|
+
return axios.post(url, formData, {
|
|
279
|
+
onUploadProgress: event => file.progress(event, name),
|
|
198
280
|
});
|
|
199
281
|
}
|
|
200
282
|
}
|
package/src/types.ts
CHANGED
|
@@ -19,15 +19,22 @@ export type FilesConfig = {
|
|
|
19
19
|
serviceUrl?: string;
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
-
export type
|
|
22
|
+
export type GetItemsQuery = {
|
|
23
23
|
isPublic: boolean;
|
|
24
24
|
prefix: string;
|
|
25
25
|
nextToken?: string;
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
+
export type SearchQuery = {
|
|
29
|
+
isPublic: boolean;
|
|
30
|
+
term: string;
|
|
31
|
+
nextToken?: string;
|
|
32
|
+
};
|
|
33
|
+
|
|
28
34
|
export type FileItem = {
|
|
29
35
|
key: string;
|
|
30
36
|
size?: number;
|
|
37
|
+
lastModified?: string;
|
|
31
38
|
};
|
|
32
39
|
|
|
33
40
|
export type FilesPageState = {
|
|
@@ -38,17 +45,31 @@ export type FilesPageState = {
|
|
|
38
45
|
accountId: string;
|
|
39
46
|
renameFrom: string;
|
|
40
47
|
renameTo: string;
|
|
48
|
+
searchString: string;
|
|
41
49
|
items: FileItem[];
|
|
50
|
+
searchItems: FileItem[];
|
|
42
51
|
};
|
|
43
|
-
|
|
52
|
+
|
|
53
|
+
export type HeadData = {
|
|
54
|
+
contentLength: number;
|
|
55
|
+
contentType: string;
|
|
56
|
+
metaData: object;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export type GetItemsListResponse = {
|
|
44
60
|
items: FileItem[];
|
|
45
61
|
nextTokenResponse: string | null;
|
|
46
62
|
};
|
|
47
63
|
|
|
64
|
+
export type SearchItemsListResponse = {
|
|
65
|
+
files: FileItem[];
|
|
66
|
+
nextTokenResponse: string | null;
|
|
67
|
+
};
|
|
68
|
+
|
|
48
69
|
export type UploadUrlProps = {
|
|
49
70
|
key: string;
|
|
50
71
|
contentType: string;
|
|
51
|
-
maxFileSize
|
|
72
|
+
maxFileSize?: number;
|
|
52
73
|
cacheControl: string;
|
|
53
74
|
};
|
|
54
75
|
|
|
@@ -56,25 +77,20 @@ export type UploadUrlResponse = {
|
|
|
56
77
|
url: string;
|
|
57
78
|
fields: {
|
|
58
79
|
key: string;
|
|
59
|
-
|
|
80
|
+
bucket: string;
|
|
81
|
+
Policy: string;
|
|
82
|
+
'X-Amz-Date': string;
|
|
83
|
+
'X-Amz-Signature': string;
|
|
84
|
+
'X-Amz-Algorithm': string;
|
|
85
|
+
'X-Amz-Credential': string;
|
|
86
|
+
'X-Amz-Security-Token': string;
|
|
60
87
|
}[];
|
|
61
88
|
};
|
|
62
89
|
|
|
63
|
-
export type UploadFile = {
|
|
64
|
-
name: string;
|
|
65
|
-
size: number;
|
|
66
|
-
contentType: string;
|
|
67
|
-
cacheControl: string;
|
|
68
|
-
ttl: number;
|
|
69
|
-
};
|
|
70
|
-
|
|
71
90
|
export type UploadFileProps = {
|
|
72
|
-
fileModel:
|
|
91
|
+
fileModel: File;
|
|
73
92
|
prefix: string;
|
|
74
93
|
isPublic: boolean;
|
|
75
|
-
|
|
76
|
-
progress: any;
|
|
77
|
-
maxFileSize: number;
|
|
78
|
-
ttl: number;
|
|
94
|
+
progress: (event: ProgressEvent, name: string) => void;
|
|
79
95
|
};
|
|
80
96
|
|