dochub-sdk 0.1.97 → 0.1.99

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.
@@ -1,3 +1,5 @@
1
+ import { AxiosResponse } from "axios";
2
+
1
3
  export enum DataLakeChange {
2
4
  update = 'update', // Обновление данных по указанному пути
3
5
  remove = 'remove', // Удаляет данные по указанному пути
@@ -11,13 +13,17 @@ export type DocHubDataLakeChanges = DocHubDataLakeChangeItem[];
11
13
 
12
14
  // События DataLake
13
15
  export enum DataLakeEvents {
14
- reloadingStart = 'datalake.reloading.start', // Начало обновления
15
- reloadingFinish = 'datalake.reloading.finish', // Завершение обновления
16
- onChanged = 'datalake.reloading.onChange', // В DataLake произошли изменения
16
+ reloadingStart = 'datalake.reloading.start', // Начало обновления
17
+ reloadingFinish = 'datalake.reloading.finish', // Завершение обновления
18
+ onChanged = 'datalake.reloading.onChange', // В DataLake произошли изменения
17
19
 
18
- mountedManifest = 'datalake.manifest.mounted', // Смонтирован манифест в DataLake
19
- unmountedManifest = 'datalake.manifest.unmounted', // Манифест отключен от DataLake
20
- reloadManifests = 'datalake.manifest.reloaded' // Манифест перезагружен
20
+ mountedManifest = 'datalake.manifest.mounted', // Смонтирован манифест в DataLake
21
+ unmountedManifest = 'datalake.manifest.unmounted', // Манифест отключен от DataLake
22
+ reloadManifests = 'datalake.manifest.reloaded', // Манифест перезагружен
23
+
24
+ transactionBegin = 'datalake.transaction.begin', // Транзакция на изменение DataLake открыта
25
+ transactionCommit = 'datalake.transaction.commit', // Транзакция на изменение успешно применена к DataLake
26
+ transactionRollback = 'datalake.transaction.rollback', // Транзакция на изменение отменена
21
27
  }
22
28
 
23
29
  /**
@@ -40,9 +46,80 @@ export interface IDocHubPullDataParams {
40
46
  [key: string]: any;
41
47
  }
42
48
 
43
- // Контекст транзации
49
+
50
+ export interface IDocHubTransactionFileHeaders {
51
+ [key: string]: any;
52
+ }
53
+
54
+ export enum IDocHubTransactionFileDataType {
55
+ meta = 'meta',
56
+ content = 'content'
57
+ }
58
+
59
+ export enum IDocHubTransactionFileAction {
60
+ filePut = 'file-put',
61
+ fileDelete = 'file-delete',
62
+ fileMove = 'file-move'
63
+ }
64
+
65
+ export type IDocHubTransactionChangeFilePut = {
66
+ action: IDocHubTransactionFileAction.filePut;
67
+ uri: string;
68
+ contentUID: string;
69
+ }
70
+
71
+ export type IDocHubTransactionChangeFileDelete = {
72
+ action: IDocHubTransactionFileAction.fileDelete;
73
+ uri: string;
74
+ }
75
+
76
+ export type IDocHubTransactionChangeFileMove = {
77
+ action: IDocHubTransactionFileAction.fileMove;
78
+ fromURI: string;
79
+ toURI: string;
80
+ }
81
+
82
+ export type IDocHubTransactionChangeFile = IDocHubTransactionChangeFilePut | IDocHubTransactionChangeFileDelete | IDocHubTransactionChangeFileMove;
83
+
84
+ export interface IDocHubTransactionChangeRecord {
85
+ uid: string; // UUID
86
+ moment: number; // timestamp
87
+ change: IDocHubTransactionChangeFile;
88
+ }
89
+
90
+ /**
91
+ * Метаданные файла входящего в транзакцию
92
+ */
93
+ export type IDocHubTransactionFile = {
94
+ uid: string; // UUID записи
95
+ content: string;
96
+ headers: IDocHubTransactionFileHeaders;
97
+ }
98
+
99
+ /**
100
+ * Транзакция на изменения DataLake
101
+ */
44
102
  export interface IDocHubTransaction {
103
+ /**
104
+ * Проверяет, что транзакция содержит файл
105
+ * @param uri - URI файла или шаблон поиска
106
+ * @returns - Возвращает массив метаданных найденных файлов
107
+ */
108
+ getAffectedFiles(pattern: string | RegExp): Promise<string[]>;
45
109
 
110
+ /**
111
+ * Проверяет, что транзакция содержит файл
112
+ * @param uri - URI файла или шаблон поиска
113
+ * @returns - Возвращает массив содержимое найденных файлов
114
+ */
115
+ getChangesForFile(pattern: string | RegExp): Promise<IDocHubTransactionChangeRecord>;
116
+
117
+ /**
118
+ * Удаляет запись об изменении из транзакции
119
+ * @param uids - массив идентификаторов изменений
120
+ * @returns - Возвращает массив удаленных изменений
121
+ */
122
+ deleteChange(uids: string[]): Promise<IDocHubTransactionChangeRecord[]>;
46
123
  }
47
124
 
48
125
  /**
@@ -90,6 +167,11 @@ export interface IDocHubDataLake {
90
167
  */
91
168
  rollbackTransaction(transaction: IDocHubTransaction): Promise<IDocHubTransaction>;
92
169
 
170
+ /**
171
+ * Возвращает актуальную транзакцию
172
+ */
173
+ getCurrentTransaction(): Promise<IDocHubTransaction>;
174
+
93
175
  /**
94
176
  * Возвращает URI текущего корневого манифеста
95
177
  * @returns - URI корневого манифеста
@@ -142,16 +224,17 @@ export interface IDocHubDataLake {
142
224
  * Сохраняет файла в DataLake
143
225
  * @param uri - URI файла во внутреннем формате DocHub
144
226
  * @param content - Содержимое файла
227
+ * @param contentType - Тип контента
145
228
  * @returns - Статус выполненного запроса
146
229
  */
147
- pushFile(uri: string, content: any): Promise<any>;
230
+ pushFile(uri: string, content: any, contentType: string): Promise<AxiosResponse>;
148
231
 
149
232
  /**
150
233
  * Загружает файл из DataLake
151
234
  * @param uri - URI файла во внутреннем формате DocHub
152
- * @returns - Результат
235
+ * @returns - Результат выполнения запроса
153
236
  */
154
- pullFile(uri: string): Promise<any>;
237
+ pullFile(uri: string): Promise<AxiosResponse>;
155
238
 
156
239
  /**
157
240
  * Возвращает конечный URI на основании массива относительных и прямых URI
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dochub-sdk",
3
- "version": "0.1.97",
3
+ "version": "0.1.99",
4
4
  "description": "The DocHub System Development Kit.",
5
5
  "private": false,
6
6
  "main": "index.ts",