@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 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 the "status" property. The status object includes 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. FIle status can be updated manually with update_status() method, or through events.
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
- await file.update_status()
163
- let status = file.status()
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
- "your_group_name",
278
- permits: {
279
- isAdmin: bool is user admin,
280
- },
281
- memberIds[] - array of group members ids,
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@neuralinnovations/dataisland-sdk",
3
- "version": "0.0.1-dev26",
3
+ "version": "0.0.1-dev27",
4
4
  "description": "SDK for DataIsland project",
5
5
  "licenses": [
6
6
  {
@@ -29,6 +29,10 @@ export declare abstract class Answer extends EventDispatcher<AnswerEvent, Answer
29
29
  * Answer sources.
30
30
  */
31
31
  abstract get sources(): SourceDto[];
32
+ /**
33
+ * Answer time.
34
+ */
35
+ abstract get timestamp(): number;
32
36
  /**
33
37
  * Cancel answer
34
38
  */
@@ -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;IAUlC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAT1B,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;gBAGL,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO;IAInC,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU;IASxC,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;IAEM,UAAU;IAMjB,OAAO,CAAC,OAAO;IAIT,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0CtB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAoB9B"}
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
- this._answer = step === null || step === void 0 ? void 0 : step.tokens.join("");
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":"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"}
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;CA+BxE;AA/BD,wBA+BC"}
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
- * Get temporary url.
27
+ * File uploading progress
24
28
  */
25
- abstract url(): Promise<string>;
29
+ abstract get progress(): FileProgressDto;
26
30
  /**
27
- * Get file status.
31
+ * File uploading status
28
32
  */
29
- abstract updateStatus(): Promise<void>;
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,CAClD,UAAU,EACV,IAAI,CACH;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,QAAQ,KAAK,MAAM,IAAI,eAAe,CAAA;IAEtC;;OAEG;IACH,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CACvC"}
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 _status?;
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 status(): FileProgressDto;
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;AAG7B,qBAAa,QAAS,SAAQ,IAAK,YAAW,UAAU;IAM1C,OAAO,CAAC,QAAQ,CAAC,OAAO;IALpC,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAC,CAAiB;gBAGJ,OAAO,EAAE,OAAO;IAItC,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAMpC,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,MAAM,IAAI,eAAe,CAE5B;IAEK,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IAiBtB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAqBpC"}
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
- return this._status;
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
- this._status = (await response.json()).progress;
56
- // dispatch event, file updated
57
- this.dispatch({
58
- type: files_1.FilesEvent.UPDATED,
59
- data: this
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,iCAA6B;AAC7B,mCAAoC;AAEpC,MAAa,QAAS,SAAQ,WAAI;IAMhC,YAA6B,OAAgB;QAC3C,KAAK,EAAE,CAAA;QADoB,YAAO,GAAP,OAAO,CAAS;QALrC,gBAAW,GAAY,KAAK,CAAA;IAOpC,CAAC;IAEM,QAAQ,CAAC,IAAa;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QAEpB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;IACzB,CAAC;IAED,IAAI,EAAE;;QACJ,OAAe,MAAA,IAAI,CAAC,QAAQ,0CAAE,EAAE,CAAA;IAClC,CAAC;IAED,IAAI,IAAI;;QACN,OAAe,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAAA;IACpC,CAAC;IAED,IAAI,SAAS;;QACX,OAAe,MAAA,IAAI,CAAC,QAAQ,0CAAE,SAAS,CAAA;IACzC,CAAC;IAED,IAAI,MAAM;QACR,OAAwB,IAAI,CAAC,OAAO,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,GAAG;;QACP,MAAM,QAAQ,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,OAAO;aAChC,OAAO,CAAC,uBAAU,CAAC,0CAClB,cAAc,CAAC,kBAAkB,EAClC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EACzB,OAAO,EAAE,CAAA,CAAA;QAEZ,IAAI,6BAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,6BAAa,CAAC,UAAU,CAC5B,sBAAsB,IAAI,CAAC,EAAE,MAAM,EACnC,QAAQ,CACT,CAAA;QACH,CAAC;QAED,OAAO,CAAC,MAAM,QAAS,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,YAAY;;QAChB,MAAM,QAAQ,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,OAAO;aAChC,OAAO,CAAC,uBAAU,CAAC,0CAClB,cAAc,CAAC,oBAAoB,EACpC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EACzB,OAAO,EAAE,CAAA,CAAA;QAEZ,IAAI,6BAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,6BAAa,CAAC,UAAU,CAAC,sBAAsB,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;QAC3E,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,QAAS,CAAC,IAAI,EAAE,CAAC,CAAC,QAA2B,CAAA;QAGnE,+BAA+B;QAC/B,IAAI,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,kBAAU,CAAC,OAAO;YACxB,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;IAEJ,CAAC;CACF;AA9ED,4BA8EC"}
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;CA2BA;AA9BD,oBA8BC"}
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;CAyCtD"}
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).initFrom(result);
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":"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"}
1
+ {"version":3,"file":"files.impl.js","sourceRoot":"","sources":["../../../../src/storages/files/files.impl.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neuralinnovations/dataisland-sdk",
3
- "version": "0.0.1-dev26",
3
+ "version": "0.0.1-dev27",
4
4
  "description": "SDK for DataIsland project",
5
5
  "licenses": [
6
6
  {
@@ -97,4 +97,4 @@
97
97
  "dotenv": "^16.3.2",
98
98
  "jsdom": "^23.2.0"
99
99
  }
100
- }
100
+ }
@@ -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
- this._answer = step?.tokens.join("")
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.dispatch({
114
- type: AnswerEvent.UPDATED,
115
- data: this
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
  }
@@ -41,6 +41,11 @@ export abstract class Answer extends EventDispatcher<AnswerEvent, Answer> {
41
41
  */
42
42
  abstract get sources(): SourceDto[]
43
43
 
44
+ /**
45
+ * Answer time.
46
+ */
47
+ abstract get timestamp(): number
48
+
44
49
  /**
45
50
  * Cancel answer
46
51
  */
@@ -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 _status?: FileProgressDto
13
-
12
+ private _progress?: FileProgressDto
14
13
 
15
14
  constructor(private readonly context: Context) {
16
15
  super()
17
16
  }
18
17
 
19
- public initFrom(file: FileDto): File {
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 status(): FileProgressDto {
46
- return <FileProgressDto>this._status
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
- this._status = (await response!.json()).progress as FileProgressDto
78
-
79
-
80
- // dispatch event, file updated
81
- this.dispatch({
82
- type: FilesEvent.UPDATED,
83
- data: this
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
- abstract get status(): FileProgressDto
35
+ /**
36
+ * File uploading progress
37
+ */
38
+ abstract get progress(): FileProgressDto
30
39
 
31
40
  /**
32
- * Get temporary url.
41
+ * File uploading status
33
42
  */
34
- abstract url(): Promise<string>
43
+ abstract get status(): FileStatus
35
44
 
36
45
  /**
37
- * Get file status.
46
+ * Get temporary url.
38
47
  */
39
- abstract updateStatus(): Promise<void>
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 ( const file of files ){
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 ( const id of ids ){
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).initFrom(result)
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)