@neuralinnovations/dataisland-sdk 0.0.1-dev26 → 0.0.1-dev27
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/README.md +18 -12
- package/dist/package.json +1 -1
- package/dist/src/storages/chats/answer.d.ts +4 -0
- package/dist/src/storages/chats/answer.d.ts.map +1 -1
- package/dist/src/storages/chats/answer.impl.d.ts +2 -0
- package/dist/src/storages/chats/answer.impl.d.ts.map +1 -1
- package/dist/src/storages/chats/answer.impl.js +21 -6
- package/dist/src/storages/chats/answer.impl.js.map +1 -1
- package/dist/src/storages/chats/answer.js.map +1 -1
- package/dist/src/storages/files/file.d.ts +13 -5
- package/dist/src/storages/files/file.d.ts.map +1 -1
- package/dist/src/storages/files/file.impl.d.ts +6 -4
- package/dist/src/storages/files/file.impl.d.ts.map +1 -1
- package/dist/src/storages/files/file.impl.js +33 -8
- package/dist/src/storages/files/file.impl.js.map +1 -1
- package/dist/src/storages/files/file.js +7 -1
- package/dist/src/storages/files/file.js.map +1 -1
- package/dist/src/storages/files/files.impl.d.ts.map +1 -1
- package/dist/src/storages/files/files.impl.js +3 -2
- package/dist/src/storages/files/files.impl.js.map +1 -1
- package/package.json +2 -2
- package/src/storages/chats/answer.impl.ts +27 -7
- package/src/storages/chats/answer.ts +5 -0
- package/src/storages/files/file.impl.ts +38 -14
- package/src/storages/files/file.ts +16 -7
- package/src/storages/files/files.impl.ts +6 -4
package/README.md
CHANGED
@@ -156,11 +156,16 @@ Default file upload example:
|
|
156
156
|
const file = await workspace.files.upload([file])
|
157
157
|
```
|
158
158
|
|
159
|
-
The file uploading process always takes some time, so you can track its uploading status using
|
159
|
+
The file uploading process always takes some time, so you can track its uploading status using subscription for files UPDATED event. Status tracking starts with "status" property of file. It can be UPLOADING, SUCCESS or FAILED. The "progress" property includes detailed view on file uploading progress, including a success indicator, the total count of file parts, the count of uploaded file parts, and an error field. The success indicator represents whether the last file part was uploaded successfully or not. If one of the parts fails, the uploading process is stopped, and the "error" field contains the text of the failure reason. Remeber to check file status before making a subscription, because it could be already SUCCESS or FAILED
|
160
160
|
|
161
161
|
```
|
162
|
-
|
163
|
-
|
162
|
+
if (file.status !== FileStatus.UPLOADING) {
|
163
|
+
// Show results
|
164
|
+
} else {
|
165
|
+
file.subscribe((event) => {
|
166
|
+
const progress = event.data.progress()
|
167
|
+
})
|
168
|
+
}
|
164
169
|
```
|
165
170
|
|
166
171
|
Delete file example:
|
@@ -224,28 +229,31 @@ const answer = await chat.ask("Hello!", ChatAnswerType.SHORT)
|
|
224
229
|
await chat.getAnswer(answer.id).cancel()
|
225
230
|
```
|
226
231
|
|
227
|
-
```Answer have two main states: running and done. This states is represented in answer status propery.
|
228
232
|
Main statuses are RUNNING, SUCCESS, CANCELED, FAIL. You can use them to correctly draw answer in chat.
|
229
233
|
|
230
234
|
```
|
231
235
|
status = chat.getAnswer(answer.id).status
|
232
236
|
```
|
237
|
+
|
233
238
|
You can access answer for your question in "tokens" property, question is stored in "question' property.
|
234
239
|
|
235
240
|
```
|
236
241
|
const tokens = await chat.getAnswer(answer.id).tokens
|
237
242
|
const question = await chat.getAnswer(answer.id).question
|
238
243
|
```
|
244
|
+
|
239
245
|
Every step also includes Sources that were used during execution. Property "sources" contains all sources of all answer steps.
|
240
246
|
|
241
247
|
```
|
242
248
|
const sources = await chat.getAnswer(answer.id).sources
|
243
249
|
```
|
250
|
+
|
244
251
|
If you want to get chat history, you can access chat.collection property
|
245
252
|
|
246
253
|
```
|
247
254
|
const answers = chat.collection
|
248
255
|
```
|
256
|
+
|
249
257
|
#### Events
|
250
258
|
|
251
259
|
Chat object have a variety of events. You can track chat and answer creation and deletion. Answer also contains "update" event for updating answer view and stream answer tokens.
|
@@ -266,7 +274,6 @@ Event subscribe example:
|
|
266
274
|
```
|
267
275
|
chat.answer.subscribe((event) => { const answer = event.data }, AnswerEvent.UPDATED)
|
268
276
|
```
|
269
|
-
---
|
270
277
|
|
271
278
|
### Use access groups
|
272
279
|
|
@@ -274,21 +281,20 @@ You can manage users access to workspaces and different features using access gr
|
|
274
281
|
|
275
282
|
```
|
276
283
|
const group = await organization.accessGroups.create(
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
284
|
+
"your_group_name",
|
285
|
+
permits: {
|
286
|
+
isAdmin: bool is user admin,
|
287
|
+
},
|
288
|
+
memberIds[] - array of group members ids,
|
282
289
|
)
|
283
290
|
|
284
291
|
await organization.accessGroups.delete(group.id)
|
285
292
|
```
|
286
|
-
---
|
287
293
|
|
288
294
|
### Use Invites
|
289
295
|
|
290
296
|
You can invite users to organization with provided emails and selected access groups. Use create invite link method of seleted organization.
|
291
297
|
|
292
298
|
```
|
293
|
-
await organiation.createInviteLink(emails[], accessGroups[])
|
299
|
+
await organiation.createInviteLink(emails[], accessGroups[])
|
294
300
|
```
|
package/dist/package.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"answer.d.ts","sourceRoot":"","sources":["../../../../src/storages/chats/answer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,SAAS,EACV,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAC7B,MAAM,MAAM,MAAM,GAAG,MAAM,CAAA;AAE3B,oBAAY,WAAW;IACrB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,8BAAsB,MAAO,SAAQ,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC;IAEvE;;OAEG;IACH,QAAQ,KAAK,EAAE,IAAI,QAAQ,CAAA;IAE3B;;OAEG;IACH,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAA;IAE/B;;OAEG;IACH,QAAQ,KAAK,MAAM,IAAI,MAAM,CAAA;IAE7B;;OAEG;IACH,QAAQ,KAAK,MAAM,IAAI,YAAY,CAAA;IAEnC;;OAEG;IACH,QAAQ,KAAK,OAAO,IAAI,SAAS,EAAE,CAAA;IAEnC;;OAEG;IACH,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CACjC"}
|
1
|
+
{"version":3,"file":"answer.d.ts","sourceRoot":"","sources":["../../../../src/storages/chats/answer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,SAAS,EACV,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAC7B,MAAM,MAAM,MAAM,GAAG,MAAM,CAAA;AAE3B,oBAAY,WAAW;IACrB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,8BAAsB,MAAO,SAAQ,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC;IAEvE;;OAEG;IACH,QAAQ,KAAK,EAAE,IAAI,QAAQ,CAAA;IAE3B;;OAEG;IACH,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAA;IAE/B;;OAEG;IACH,QAAQ,KAAK,MAAM,IAAI,MAAM,CAAA;IAE7B;;OAEG;IACH,QAAQ,KAAK,MAAM,IAAI,YAAY,CAAA;IAEnC;;OAEG;IACH,QAAQ,KAAK,OAAO,IAAI,SAAS,EAAE,CAAA;IAEnC;;OAEG;IACH,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAA;IAEhC;;OAEG;IACH,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CACjC"}
|
@@ -11,6 +11,7 @@ export declare class AnswerImpl extends Answer {
|
|
11
11
|
private _question?;
|
12
12
|
private _sources?;
|
13
13
|
private _answer?;
|
14
|
+
private _timestamp?;
|
14
15
|
constructor(chat: Chat, context: Context);
|
15
16
|
initFromHistory(answer: AnswerDto): AnswerImpl;
|
16
17
|
initNew(id: AnswerId, question: string): Promise<AnswerImpl>;
|
@@ -19,6 +20,7 @@ export declare class AnswerImpl extends Answer {
|
|
19
20
|
get question(): string;
|
20
21
|
get sources(): SourceDto[];
|
21
22
|
get tokens(): string;
|
23
|
+
get timestamp(): number;
|
22
24
|
fetchAfter(): void;
|
23
25
|
private getStep;
|
24
26
|
fetch(): Promise<void>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"answer.impl.d.ts","sourceRoot":"","sources":["../../../../src/storages/chats/answer.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EACL,SAAS,EACT,YAAY,EAGZ,SAAS,EAEV,MAAM,wBAAwB,CAAA;AAG/B,OAAO,EAAE,MAAM,EAAe,QAAQ,EAAE,MAAM,UAAU,CAAA;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,qBAAa,UAAW,SAAQ,MAAM;
|
1
|
+
{"version":3,"file":"answer.impl.d.ts","sourceRoot":"","sources":["../../../../src/storages/chats/answer.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EACL,SAAS,EACT,YAAY,EAGZ,SAAS,EAEV,MAAM,wBAAwB,CAAA;AAG/B,OAAO,EAAE,MAAM,EAAe,QAAQ,EAAE,MAAM,UAAU,CAAA;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,qBAAa,UAAW,SAAQ,MAAM;IAWlC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAV1B,OAAO,CAAC,MAAM,CAAC,CAAiB;IAChC,OAAO,CAAC,OAAO,CAAC,CAAc;IAC9B,OAAO,CAAC,GAAG,CAAC,CAAU;IACtB,OAAO,CAAC,SAAS,CAAC,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAC,CAAa;IAC9B,OAAO,CAAC,OAAO,CAAC,CAAQ;IACxB,OAAO,CAAC,UAAU,CAAC,CAAQ;gBAGR,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO;IAInC,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU;IAUxC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAUlE,IAAI,EAAE,IAAI,QAAQ,CAEjB;IAED,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,OAAO,IAAI,SAAS,EAAE,CAEzB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAEM,UAAU;IAMjB,OAAO,CAAC,OAAO;IAIT,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwDtB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAoB9B"}
|
@@ -16,6 +16,7 @@ class AnswerImpl extends answer_1.Answer {
|
|
16
16
|
this._question = answer.question;
|
17
17
|
this._answer = answer.context;
|
18
18
|
this._sources = answer.sources;
|
19
|
+
this._timestamp = answer.timestamp;
|
19
20
|
return this;
|
20
21
|
}
|
21
22
|
async initNew(id, question) {
|
@@ -40,6 +41,9 @@ class AnswerImpl extends answer_1.Answer {
|
|
40
41
|
get tokens() {
|
41
42
|
return this._answer;
|
42
43
|
}
|
44
|
+
get timestamp() {
|
45
|
+
return this._timestamp;
|
46
|
+
}
|
43
47
|
fetchAfter() {
|
44
48
|
if (this._status === undefined || this._status === chatResponse_1.AnswerStatus.RUNNING) {
|
45
49
|
setTimeout(async () => await this.fetch(), 300);
|
@@ -67,16 +71,27 @@ class AnswerImpl extends answer_1.Answer {
|
|
67
71
|
this._steps = answer.steps;
|
68
72
|
if (this.getStep(chatResponse_1.StepType.GENERATE_ANSWER) !== undefined) {
|
69
73
|
const step = this.getStep(chatResponse_1.StepType.GENERATE_ANSWER);
|
70
|
-
|
74
|
+
const step_tokens = step === null || step === void 0 ? void 0 : step.tokens.join("");
|
75
|
+
if (this._answer !== step_tokens) {
|
76
|
+
this._answer = step_tokens;
|
77
|
+
this.dispatch({
|
78
|
+
type: answer_1.AnswerEvent.UPDATED,
|
79
|
+
data: this
|
80
|
+
});
|
81
|
+
}
|
71
82
|
}
|
72
|
-
if (this.getStep(chatResponse_1.StepType.SOURCES) !== undefined) {
|
83
|
+
if (this.getStep(chatResponse_1.StepType.SOURCES) !== undefined && this._sources === undefined) {
|
73
84
|
const sources_step = this.getStep(chatResponse_1.StepType.SOURCES);
|
74
85
|
this._sources = sources_step === null || sources_step === void 0 ? void 0 : sources_step.sources;
|
86
|
+
this.dispatch({
|
87
|
+
type: answer_1.AnswerEvent.UPDATED,
|
88
|
+
data: this
|
89
|
+
});
|
90
|
+
}
|
91
|
+
if (this.getStep(chatResponse_1.StepType.DONE) !== undefined) {
|
92
|
+
const step = this.getStep(chatResponse_1.StepType.DONE);
|
93
|
+
this._timestamp = Date.parse(step.end_at);
|
75
94
|
}
|
76
|
-
this.dispatch({
|
77
|
-
type: answer_1.AnswerEvent.UPDATED,
|
78
|
-
data: this
|
79
|
-
});
|
80
95
|
this.fetchAfter();
|
81
96
|
}
|
82
97
|
async cancel() {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"answer.impl.js","sourceRoot":"","sources":["../../../../src/storages/chats/answer.impl.ts"],"names":[],"mappings":";;;AACA,yDAO+B;AAC/B,gEAA4D;AAC5D,0DAAsD;AACtD,qCAAwD;AAGxD,MAAa,UAAW,SAAQ,eAAM;
|
1
|
+
{"version":3,"file":"answer.impl.js","sourceRoot":"","sources":["../../../../src/storages/chats/answer.impl.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"answer.js","sourceRoot":"","sources":["../../../../src/storages/chats/answer.ts"],"names":[],"mappings":";;;AAIA,yCAA8C;AAK9C,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,sCAAuB,CAAA;IACvB,gCAAiB,CAAA;IACjB,kCAAmB,CAAA;AACrB,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAED,MAAsB,MAAO,SAAQ,wBAAoC;
|
1
|
+
{"version":3,"file":"answer.js","sourceRoot":"","sources":["../../../../src/storages/chats/answer.ts"],"names":[],"mappings":";;;AAIA,yCAA8C;AAK9C,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,sCAAuB,CAAA;IACvB,gCAAiB,CAAA;IACjB,kCAAmB,CAAA;AACrB,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAED,MAAsB,MAAO,SAAQ,wBAAoC;CAoCxE;AApCD,wBAoCC"}
|
@@ -2,6 +2,11 @@ import { FileProgressDto } from "../../dto/workspacesResponse";
|
|
2
2
|
import { EventDispatcher } from "../../events";
|
3
3
|
import { FilesEvent } from "./files";
|
4
4
|
export type FileId = string;
|
5
|
+
export declare enum FileStatus {
|
6
|
+
UPLOADING = "uploading",
|
7
|
+
SUCCESS = "success",
|
8
|
+
FAILED = "failed"
|
9
|
+
}
|
5
10
|
/**
|
6
11
|
* File.
|
7
12
|
*/
|
@@ -18,14 +23,17 @@ export declare abstract class File extends EventDispatcher<FilesEvent, File> {
|
|
18
23
|
* File date added.
|
19
24
|
*/
|
20
25
|
abstract get createdAt(): number;
|
21
|
-
abstract get status(): FileProgressDto;
|
22
26
|
/**
|
23
|
-
*
|
27
|
+
* File uploading progress
|
24
28
|
*/
|
25
|
-
abstract
|
29
|
+
abstract get progress(): FileProgressDto;
|
26
30
|
/**
|
27
|
-
*
|
31
|
+
* File uploading status
|
28
32
|
*/
|
29
|
-
abstract
|
33
|
+
abstract get status(): FileStatus;
|
34
|
+
/**
|
35
|
+
* Get temporary url.
|
36
|
+
*/
|
37
|
+
abstract url(): Promise<string>;
|
30
38
|
}
|
31
39
|
//# sourceMappingURL=file.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../../src/storages/files/file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC,MAAM,MAAM,MAAM,GAAG,MAAM,CAAA;AAE3B;;GAEG;AACH,8BAAsB,IAAK,SAAQ,eAAe,
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../../src/storages/files/file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC,MAAM,MAAM,MAAM,GAAG,MAAM,CAAA;AAE3B,oBAAY,UAAU;IACpB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,8BAAsB,IAAK,SAAQ,eAAe,CAChD,UAAU,EACV,IAAI,CACL;IACC;;OAEG;IACH,QAAQ,KAAK,EAAE,IAAI,MAAM,CAAA;IAEzB;;OAEG;IACH,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAA;IAE3B;;OAEG;IACH,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAA;IAEhC;;OAEG;IACH,QAAQ,KAAK,QAAQ,IAAI,eAAe,CAAA;IAExC;;OAEG;IACH,QAAQ,KAAK,MAAM,IAAI,UAAU,CAAA;IAEjC;;OAEG;IACH,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;CAChC"}
|
@@ -1,21 +1,23 @@
|
|
1
1
|
import { Context } from "../../context";
|
2
2
|
import { Disposable } from "../../disposable";
|
3
3
|
import { FileDto, FileProgressDto } from "../../dto/workspacesResponse";
|
4
|
-
import { File } from "./file";
|
4
|
+
import { File, FileStatus } from "./file";
|
5
5
|
export declare class FileImpl extends File implements Disposable {
|
6
6
|
private readonly context;
|
7
7
|
private _isDisposed;
|
8
8
|
private _content?;
|
9
|
-
private
|
9
|
+
private _progress?;
|
10
10
|
constructor(context: Context);
|
11
|
-
initFrom(file: FileDto): File
|
11
|
+
initFrom(file: FileDto): Promise<File>;
|
12
12
|
get isDisposed(): boolean;
|
13
13
|
dispose(): void;
|
14
14
|
get id(): string;
|
15
15
|
get name(): string;
|
16
16
|
get createdAt(): number;
|
17
|
-
get
|
17
|
+
get progress(): FileProgressDto;
|
18
|
+
get status(): FileStatus;
|
18
19
|
url(): Promise<string>;
|
20
|
+
fetchAfter(): void;
|
19
21
|
updateStatus(): Promise<void>;
|
20
22
|
}
|
21
23
|
//# sourceMappingURL=file.impl.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"file.impl.d.ts","sourceRoot":"","sources":["../../../../src/storages/files/file.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAGvE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;
|
1
|
+
{"version":3,"file":"file.impl.d.ts","sourceRoot":"","sources":["../../../../src/storages/files/file.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAGvE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAGzC,qBAAa,QAAS,SAAQ,IAAK,YAAW,UAAU;IAK1C,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAC,CAAiB;gBAEN,OAAO,EAAE,OAAO;IAIvC,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5C,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,OAAO,IAAI,IAAI;IAIf,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,QAAQ,IAAI,eAAe,CAE9B;IAED,IAAI,MAAM,IAAI,UAAU,CASvB;IAEK,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IAiBrB,UAAU;IAMX,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CA2BpC"}
|
@@ -11,8 +11,9 @@ class FileImpl extends file_1.File {
|
|
11
11
|
this.context = context;
|
12
12
|
this._isDisposed = false;
|
13
13
|
}
|
14
|
-
initFrom(file) {
|
14
|
+
async initFrom(file) {
|
15
15
|
this._content = file;
|
16
|
+
await this.updateStatus();
|
16
17
|
return this;
|
17
18
|
}
|
18
19
|
get isDisposed() {
|
@@ -33,8 +34,20 @@ class FileImpl extends file_1.File {
|
|
33
34
|
var _a;
|
34
35
|
return (_a = this._content) === null || _a === void 0 ? void 0 : _a.createdAt;
|
35
36
|
}
|
37
|
+
get progress() {
|
38
|
+
return this._progress;
|
39
|
+
}
|
36
40
|
get status() {
|
37
|
-
|
41
|
+
if (this._progress === undefined || this._progress.success === null ||
|
42
|
+
(this._progress.success && this._progress.completed_parts_count !== this._progress.file_parts_count)) {
|
43
|
+
return file_1.FileStatus.UPLOADING;
|
44
|
+
}
|
45
|
+
else if (this._progress.success) {
|
46
|
+
return file_1.FileStatus.SUCCESS;
|
47
|
+
}
|
48
|
+
else {
|
49
|
+
return file_1.FileStatus.FAILED;
|
50
|
+
}
|
38
51
|
}
|
39
52
|
async url() {
|
40
53
|
var _a;
|
@@ -45,6 +58,11 @@ class FileImpl extends file_1.File {
|
|
45
58
|
}
|
46
59
|
return (await response.json()).url;
|
47
60
|
}
|
61
|
+
fetchAfter() {
|
62
|
+
if (this.status === file_1.FileStatus.UPLOADING) {
|
63
|
+
setTimeout(async () => await this.updateStatus(), 500);
|
64
|
+
}
|
65
|
+
}
|
48
66
|
async updateStatus() {
|
49
67
|
var _a;
|
50
68
|
const response = await ((_a = this.context
|
@@ -52,12 +70,19 @@ class FileImpl extends file_1.File {
|
|
52
70
|
if (responseUtils_1.ResponseUtils.isFail(response)) {
|
53
71
|
await responseUtils_1.ResponseUtils.throwError(`Failed to get file ${this.id}`, response);
|
54
72
|
}
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
73
|
+
const prev_progress = this._progress;
|
74
|
+
this._progress = (await response.json()).progress;
|
75
|
+
if (prev_progress === undefined ||
|
76
|
+
(this.progress.success !== null && this.progress.completed_parts_count > prev_progress.completed_parts_count) ||
|
77
|
+
this.status === file_1.FileStatus.SUCCESS ||
|
78
|
+
this.status === file_1.FileStatus.FAILED) {
|
79
|
+
// dispatch event, file updated
|
80
|
+
this.dispatch({
|
81
|
+
type: files_1.FilesEvent.UPDATED,
|
82
|
+
data: this
|
83
|
+
});
|
84
|
+
}
|
85
|
+
this.fetchAfter();
|
61
86
|
}
|
62
87
|
}
|
63
88
|
exports.FileImpl = FileImpl;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"file.impl.js","sourceRoot":"","sources":["../../../../src/storages/files/file.impl.ts"],"names":[],"mappings":";;;AAGA,0DAAsD;AACtD,gEAA4D;AAC5D,
|
1
|
+
{"version":3,"file":"file.impl.js","sourceRoot":"","sources":["../../../../src/storages/files/file.impl.ts"],"names":[],"mappings":"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"}
|
@@ -1,7 +1,13 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.File = void 0;
|
3
|
+
exports.File = exports.FileStatus = void 0;
|
4
4
|
const events_1 = require("../../events");
|
5
|
+
var FileStatus;
|
6
|
+
(function (FileStatus) {
|
7
|
+
FileStatus["UPLOADING"] = "uploading";
|
8
|
+
FileStatus["SUCCESS"] = "success";
|
9
|
+
FileStatus["FAILED"] = "failed";
|
10
|
+
})(FileStatus || (exports.FileStatus = FileStatus = {}));
|
5
11
|
/**
|
6
12
|
* File.
|
7
13
|
*/
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../src/storages/files/file.ts"],"names":[],"mappings":";;;AACA,yCAA8C;AAK9C;;GAEG;AACH,MAAsB,IAAK,SAAQ,wBAGlC;
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../src/storages/files/file.ts"],"names":[],"mappings":";;;AACA,yCAA8C;AAK9C,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,qCAAuB,CAAA;IACvB,iCAAmB,CAAA;IACnB,+BAAiB,CAAA;AACnB,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAED;;GAEG;AACH,MAAsB,IAAK,SAAQ,wBAGlC;CA8BA;AAjCD,oBAiCC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"files.impl.d.ts","sourceRoot":"","sources":["../../../../src/storages/files/files.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAIvC,OAAO,EAAE,KAAK,EAAc,UAAU,EAAE,MAAM,SAAS,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAE5D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGvC,qBAAa,SAAU,SAAQ,KAAK;IAEhC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,OAAO;IAM5B,SAAS,CAAC,EAAE,SAAS,CAAA;IAEtB,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAQrC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAQ3E;;;OAGG;IACG,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmC7C,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,SAAS,CAAC;IA8Df,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;
|
1
|
+
{"version":3,"file":"files.impl.d.ts","sourceRoot":"","sources":["../../../../src/storages/files/files.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAIvC,OAAO,EAAE,KAAK,EAAc,UAAU,EAAE,MAAM,SAAS,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAE5D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGvC,qBAAa,SAAU,SAAQ,KAAK;IAEhC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,OAAO;IAM5B,SAAS,CAAC,EAAE,SAAS,CAAA;IAEtB,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAQrC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAQ3E;;;OAGG;IACG,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmC7C,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,SAAS,CAAC;IA8Df,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CA2CtD"}
|
@@ -95,7 +95,7 @@ class FilesImpl extends files_1.Files {
|
|
95
95
|
// init files from the server's response
|
96
96
|
for (const fl of files.files) {
|
97
97
|
// create file implementation
|
98
|
-
const file = new file_impl_1.FileImpl(this.context).initFrom(fl);
|
98
|
+
const file = await new file_impl_1.FileImpl(this.context).initFrom(fl);
|
99
99
|
// add file to the collection
|
100
100
|
filesList.files.push(file);
|
101
101
|
}
|
@@ -125,7 +125,8 @@ class FilesImpl extends files_1.Files {
|
|
125
125
|
// parse file from the server's response
|
126
126
|
const result = (await response.json()).file;
|
127
127
|
// create file implementation
|
128
|
-
const fileImpl = new file_impl_1.FileImpl(this.context)
|
128
|
+
const fileImpl = new file_impl_1.FileImpl(this.context);
|
129
|
+
await fileImpl.initFrom(result);
|
129
130
|
// TODO: why is this here?
|
130
131
|
(_b = this.filesList) === null || _b === void 0 ? void 0 : _b.files.push(fileImpl);
|
131
132
|
// dispatch event, file added
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"files.impl.js","sourceRoot":"","sources":["../../../../src/storages/files/files.impl.ts"],"names":[],"mappings":";;;AAEA,0DAAsD;AACtD,2CAAsC;AACtC,mCAAuD;AAEvD,gEAA4D;AAG5D,qDAAgD;AAEhD,MAAa,SAAU,SAAQ,aAAK;IAClC,YACmB,SAAwB,EACxB,OAAgB;QAEjC,KAAK,EAAE,CAAA;QAHU,cAAS,GAAT,SAAS,CAAe;QACxB,YAAO,GAAP,OAAO,CAAS;IAGnC,CAAC;IAKD,KAAK,CAAC,MAAM,CAAC,KAAY;QACvB,MAAM,YAAY,GAAG,EAAE,CAAA;QACvB,
|
1
|
+
{"version":3,"file":"files.impl.js","sourceRoot":"","sources":["../../../../src/storages/files/files.impl.ts"],"names":[],"mappings":";;;AAEA,0DAAsD;AACtD,2CAAsC;AACtC,mCAAuD;AAEvD,gEAA4D;AAG5D,qDAAgD;AAEhD,MAAa,SAAU,SAAQ,aAAK;IAClC,YACmB,SAAwB,EACxB,OAAgB;QAEjC,KAAK,EAAE,CAAA;QAHU,cAAS,GAAT,SAAS,CAAe;QACxB,YAAO,GAAP,OAAO,CAAS;IAGnC,CAAC;IAKD,KAAK,CAAC,MAAM,CAAC,KAAY;QACvB,MAAM,YAAY,GAAG,EAAE,CAAA;QACvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,YAAY,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;QACpD,CAAC;QACD,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAa;QACxB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAa,EAAE,IAAY,EAAE,KAAa;QACpD,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IACrD,CAAC;IAED,8EAA8E;IAC9E,YAAY;IACZ,8EAA8E;IAE9E;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CAAC,EAAU;;QACjC,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;QACzD,CAAC;QACD,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC7C,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,OAAO;aAChC,OAAO,CAAC,uBAAU,CAAC,0CAClB,cAAc,CAAC,eAAe,EAC/B,WAAW,CAAC,IAAI,EAAE,EAAE,EACpB,UAAU,EAAE,CAAA,CAAA;QACf,IAAI,6BAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,6BAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAA;QACvE,CAAC;QACD,MAAM,IAAI,GAAa,IAAI,CAAC,SAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QACnE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAU,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;QACpD,CAAC;QAED,8BAA8B;QAC9B,IAAI,CAAC,SAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAEtC,+BAA+B;QAC/B,IAAI,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,kBAAU,CAAC,OAAO;YACxB,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QAEF,eAAe;QACf,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,KAAa,EACb,IAAY,EACZ,KAAa;;QAGb,aAAa;QACb,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;QAC1D,CAAC;QACD,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;QACjD,CAAC;QAED,cAAc;QACd,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;QAC3D,CAAC;QACD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAC3C,CAAC;QAED,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,OAAO;aAChC,OAAO,CAAC,uBAAU,CAAC,0CAClB,cAAc,CAAC,mBAAmB,EACnC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAC5C,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,EAC5D,WAAW,CAAC,OAAO,EAAE,KAAK,EAC1B,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,EACnC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,EACrC,OAAO,EAAE,CAAA,CAAA;QAEZ,wBAAwB;QACxB,IAAI,6BAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,6BAAa,CAAC,UAAU,CAC5B,qBAAqB,KAAK,UAAU,IAAI,WAAW,KAAK,UAAU,EAClE,QAAQ,CACT,CAAA;QACH,CAAC;QAED,yCAAyC;QACzC,MAAM,KAAK,GAAG,CAAC,MAAM,QAAS,CAAC,IAAI,EAAE,CAAqB,CAAA;QAE1D,oBAAoB;QACpB,MAAM,SAAS,GAAG,IAAI,8BAAa,EAAE,CAAA;QACrC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC,eAAe,CAAA;QACvC,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;QAC3C,SAAS,CAAC,IAAI,GAAG,IAAI,CAAA;QAErB,wCAAwC;QACxC,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAE7B,6BAA6B;YAC7B,MAAM,IAAI,GAAG,MAAM,IAAI,oBAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YAE1D,6BAA6B;YAC7B,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;QAED,iBAAiB;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAE1B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAgB;;QACnC,aAAa;QACb,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;QAC3D,CAAC;QAED,oBAAoB;QACpB,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAA;QAC3B,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QAC7D,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QAC7C,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAEpC,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,OAAO;aAChC,OAAO,CAAC,uBAAU,CAAC,0CAClB,cAAc,CAAC,cAAc,EAC9B,gBAAgB,CAAC,IAAI,CAAC,CAAA,CAAA;QAEzB,wBAAwB;QACxB,IAAI,6BAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,6BAAa,CAAC,UAAU,CAAC,eAAe,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAA;QACtE,CAAC;QAED,wCAAwC;QACxC,MAAM,MAAM,GAAG,CAAC,MAAM,QAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAe,CAAA;QAEvD,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,IAAI,oBAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAE3C,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAE/B,0BAA0B;QAC1B,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAEpC,6BAA6B;QAC7B,IAAI,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,kBAAU,CAAC,KAAK;YACtB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAA;QAEF,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF;AArLD,8BAqLC"}
|
package/package.json
CHANGED
@@ -20,6 +20,7 @@ export class AnswerImpl extends Answer {
|
|
20
20
|
private _question?: string
|
21
21
|
private _sources?: SourceDto[]
|
22
22
|
private _answer?: string
|
23
|
+
private _timestamp?: number
|
23
24
|
|
24
25
|
constructor(
|
25
26
|
private readonly chat: Chat,
|
@@ -32,6 +33,7 @@ export class AnswerImpl extends Answer {
|
|
32
33
|
this._question = answer.question
|
33
34
|
this._answer = answer.context
|
34
35
|
this._sources = answer.sources
|
36
|
+
this._timestamp = answer.timestamp
|
35
37
|
|
36
38
|
return this
|
37
39
|
}
|
@@ -66,6 +68,10 @@ export class AnswerImpl extends Answer {
|
|
66
68
|
return <string>this._answer
|
67
69
|
}
|
68
70
|
|
71
|
+
get timestamp(): number {
|
72
|
+
return <number>this._timestamp
|
73
|
+
}
|
74
|
+
|
69
75
|
public fetchAfter() {
|
70
76
|
if (this._status === undefined || this._status === AnswerStatus.RUNNING) {
|
71
77
|
setTimeout(async () => await this.fetch(), 300)
|
@@ -99,21 +105,35 @@ export class AnswerImpl extends Answer {
|
|
99
105
|
// update answer
|
100
106
|
this._status = <AnswerStatus>answer.status
|
101
107
|
this._steps = <AnswerStepDto[]>answer.steps
|
108
|
+
|
102
109
|
|
103
110
|
if (this.getStep(StepType.GENERATE_ANSWER) !== undefined) {
|
104
111
|
const step = this.getStep(StepType.GENERATE_ANSWER)
|
105
|
-
|
112
|
+
const step_tokens = step?.tokens.join("")
|
113
|
+
if (this._answer !== step_tokens){
|
114
|
+
this._answer = step_tokens
|
115
|
+
|
116
|
+
this.dispatch({
|
117
|
+
type: AnswerEvent.UPDATED,
|
118
|
+
data: this
|
119
|
+
})
|
120
|
+
}
|
106
121
|
}
|
107
122
|
|
108
|
-
if (this.getStep(StepType.SOURCES) !== undefined) {
|
123
|
+
if (this.getStep(StepType.SOURCES) !== undefined && this._sources === undefined) {
|
109
124
|
const sources_step = this.getStep(StepType.SOURCES)
|
110
|
-
this._sources = sources_step?.sources
|
125
|
+
this._sources = sources_step?.sources
|
126
|
+
|
127
|
+
this.dispatch({
|
128
|
+
type: AnswerEvent.UPDATED,
|
129
|
+
data: this
|
130
|
+
})
|
111
131
|
}
|
112
132
|
|
113
|
-
this.
|
114
|
-
|
115
|
-
|
116
|
-
}
|
133
|
+
if (this.getStep(StepType.DONE) !== undefined){
|
134
|
+
const step = this.getStep(StepType.DONE)
|
135
|
+
this._timestamp = Date.parse(step!.end_at)
|
136
|
+
}
|
117
137
|
|
118
138
|
this.fetchAfter()
|
119
139
|
}
|
@@ -3,22 +3,23 @@ import { Disposable } from "../../disposable"
|
|
3
3
|
import { FileDto, FileProgressDto } from "../../dto/workspacesResponse"
|
4
4
|
import { RpcService } from "../../services/rpcService"
|
5
5
|
import { ResponseUtils } from "../../services/responseUtils"
|
6
|
-
import { File } from "./file"
|
6
|
+
import { File, FileStatus } from "./file"
|
7
7
|
import { FilesEvent } from "./files"
|
8
8
|
|
9
9
|
export class FileImpl extends File implements Disposable {
|
10
10
|
private _isDisposed: boolean = false
|
11
11
|
private _content?: FileDto
|
12
|
-
private
|
13
|
-
|
12
|
+
private _progress?: FileProgressDto
|
14
13
|
|
15
14
|
constructor(private readonly context: Context) {
|
16
15
|
super()
|
17
16
|
}
|
18
17
|
|
19
|
-
|
18
|
+
async initFrom(file: FileDto): Promise<File> {
|
20
19
|
this._content = file
|
21
20
|
|
21
|
+
await this.updateStatus()
|
22
|
+
|
22
23
|
return this
|
23
24
|
}
|
24
25
|
|
@@ -42,8 +43,19 @@ export class FileImpl extends File implements Disposable {
|
|
42
43
|
return <number>this._content?.createdAt
|
43
44
|
}
|
44
45
|
|
45
|
-
get
|
46
|
-
return <FileProgressDto>this.
|
46
|
+
get progress(): FileProgressDto {
|
47
|
+
return <FileProgressDto>this._progress
|
48
|
+
}
|
49
|
+
|
50
|
+
get status(): FileStatus {
|
51
|
+
if (this._progress === undefined || this._progress.success === null ||
|
52
|
+
(this._progress.success && this._progress.completed_parts_count !== this._progress.file_parts_count)) {
|
53
|
+
return FileStatus.UPLOADING
|
54
|
+
} else if (this._progress.success) {
|
55
|
+
return FileStatus.SUCCESS
|
56
|
+
} else {
|
57
|
+
return FileStatus.FAILED
|
58
|
+
}
|
47
59
|
}
|
48
60
|
|
49
61
|
async url(): Promise<string> {
|
@@ -63,6 +75,12 @@ export class FileImpl extends File implements Disposable {
|
|
63
75
|
return (await response!.json()).url
|
64
76
|
}
|
65
77
|
|
78
|
+
public fetchAfter() {
|
79
|
+
if (this.status === FileStatus.UPLOADING) {
|
80
|
+
setTimeout(async () => await this.updateStatus(), 500)
|
81
|
+
}
|
82
|
+
}
|
83
|
+
|
66
84
|
async updateStatus(): Promise<void> {
|
67
85
|
const response = await this.context
|
68
86
|
.resolve(RpcService)
|
@@ -74,14 +92,20 @@ export class FileImpl extends File implements Disposable {
|
|
74
92
|
await ResponseUtils.throwError(`Failed to get file ${this.id}`, response)
|
75
93
|
}
|
76
94
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
95
|
+
const prev_progress = this._progress
|
96
|
+
this._progress = (await response!.json()).progress as FileProgressDto
|
97
|
+
|
98
|
+
if (prev_progress === undefined ||
|
99
|
+
(this.progress.success !== null && this.progress.completed_parts_count > prev_progress.completed_parts_count) ||
|
100
|
+
this.status === FileStatus.SUCCESS ||
|
101
|
+
this.status === FileStatus.FAILED) {
|
102
|
+
// dispatch event, file updated
|
103
|
+
this.dispatch({
|
104
|
+
type: FilesEvent.UPDATED,
|
105
|
+
data: this
|
106
|
+
})
|
107
|
+
}
|
85
108
|
|
109
|
+
this.fetchAfter()
|
86
110
|
}
|
87
111
|
}
|
@@ -4,12 +4,18 @@ import { FilesEvent } from "./files"
|
|
4
4
|
|
5
5
|
export type FileId = string
|
6
6
|
|
7
|
+
export enum FileStatus {
|
8
|
+
UPLOADING = "uploading",
|
9
|
+
SUCCESS = "success",
|
10
|
+
FAILED = "failed"
|
11
|
+
}
|
12
|
+
|
7
13
|
/**
|
8
14
|
* File.
|
9
15
|
*/
|
10
16
|
export abstract class File extends EventDispatcher<
|
11
|
-
FilesEvent,
|
12
|
-
File
|
17
|
+
FilesEvent,
|
18
|
+
File
|
13
19
|
> {
|
14
20
|
/**
|
15
21
|
* File id.
|
@@ -26,15 +32,18 @@ File
|
|
26
32
|
*/
|
27
33
|
abstract get createdAt(): number
|
28
34
|
|
29
|
-
|
35
|
+
/**
|
36
|
+
* File uploading progress
|
37
|
+
*/
|
38
|
+
abstract get progress(): FileProgressDto
|
30
39
|
|
31
40
|
/**
|
32
|
-
*
|
41
|
+
* File uploading status
|
33
42
|
*/
|
34
|
-
abstract
|
43
|
+
abstract get status(): FileStatus
|
35
44
|
|
36
45
|
/**
|
37
|
-
* Get
|
46
|
+
* Get temporary url.
|
38
47
|
*/
|
39
|
-
abstract
|
48
|
+
abstract url(): Promise<string>
|
40
49
|
}
|
@@ -22,14 +22,14 @@ export class FilesImpl extends Files {
|
|
22
22
|
|
23
23
|
async upload(files: any[]): Promise<File[]> {
|
24
24
|
const loaded_files = []
|
25
|
-
for (
|
25
|
+
for (const file of files) {
|
26
26
|
loaded_files.push(await this.internalUpload(file))
|
27
27
|
}
|
28
28
|
return loaded_files
|
29
29
|
}
|
30
30
|
|
31
31
|
async delete(ids: string[]): Promise<void> {
|
32
|
-
for (
|
32
|
+
for (const id of ids) {
|
33
33
|
await this.internalDeleteFile(id)
|
34
34
|
}
|
35
35
|
}
|
@@ -135,7 +135,7 @@ export class FilesImpl extends Files {
|
|
135
135
|
for (const fl of files.files) {
|
136
136
|
|
137
137
|
// create file implementation
|
138
|
-
const file = new FileImpl(this.context).initFrom(fl)
|
138
|
+
const file = await new FileImpl(this.context).initFrom(fl)
|
139
139
|
|
140
140
|
// add file to the collection
|
141
141
|
filesList.files.push(file)
|
@@ -175,7 +175,9 @@ export class FilesImpl extends Files {
|
|
175
175
|
const result = (await response!.json()).file as FileDto
|
176
176
|
|
177
177
|
// create file implementation
|
178
|
-
const fileImpl = new FileImpl(this.context)
|
178
|
+
const fileImpl = new FileImpl(this.context)
|
179
|
+
|
180
|
+
await fileImpl.initFrom(result)
|
179
181
|
|
180
182
|
// TODO: why is this here?
|
181
183
|
this.filesList?.files.push(fileImpl)
|