dochub-sdk 0.1.62 → 0.1.63
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/.vscode/settings.json +2 -1
- package/interfaces/protocols.ts +75 -7
- package/package.json +1 -1
package/.vscode/settings.json
CHANGED
package/interfaces/protocols.ts
CHANGED
@@ -5,32 +5,100 @@ import { IDocHubContext } from './contexts';
|
|
5
5
|
export interface IDocHubProtocolRequestConfig extends AxiosRequestConfig {
|
6
6
|
decoder?: Function; // Декодировщик ответа
|
7
7
|
};
|
8
|
+
|
8
9
|
export interface IDocHubProtocolResponse extends AxiosResponse {};
|
9
10
|
|
11
|
+
/**
|
12
|
+
* Предопределенные типы контентов
|
13
|
+
*/
|
14
|
+
export enum DocHubContentType {
|
15
|
+
folder = 'dochub/folder'
|
16
|
+
}
|
17
|
+
|
18
|
+
/**
|
19
|
+
* Тип ресурса
|
20
|
+
*/
|
21
|
+
export enum DocHubResourceType {
|
22
|
+
file = 'file',
|
23
|
+
folder = 'folder',
|
24
|
+
other = 'other'
|
25
|
+
}
|
26
|
+
|
27
|
+
/**
|
28
|
+
* Метаинформация о файле
|
29
|
+
*/
|
30
|
+
export type DocHubResourceMetaFile = {
|
31
|
+
type: DocHubResourceType.file,
|
32
|
+
name: string,
|
33
|
+
contentType: DocHubContentType | string
|
34
|
+
}
|
35
|
+
|
36
|
+
/**
|
37
|
+
* Метаинформация о папке
|
38
|
+
*/
|
39
|
+
export type DocHubResourceMetaFolder = {
|
40
|
+
type: DocHubResourceType.folder,
|
41
|
+
files: DocHubResourceMetaFile[]
|
42
|
+
}
|
43
|
+
|
44
|
+
/**
|
45
|
+
* Метаинформация о прочих ресурсах
|
46
|
+
*/
|
47
|
+
export type DocHubResourceMetaOther = {
|
48
|
+
type: DocHubResourceType.other,
|
49
|
+
[prop: string]: any
|
50
|
+
}
|
51
|
+
|
52
|
+
type DocHubResourceMeta = DocHubResourceMetaFile | DocHubResourceMetaFolder | DocHubResourceMetaOther;
|
53
|
+
|
10
54
|
/**
|
11
55
|
* Методы доступные над ресурсом
|
12
56
|
*/
|
13
57
|
export enum IDocHubProtocolMethods {
|
58
|
+
// Classic
|
14
59
|
GET = 'GET',
|
15
60
|
POST = 'POST',
|
16
61
|
DELETE = 'DELETE',
|
17
62
|
HEAD = 'HEAD',
|
18
63
|
PUT = 'PUT',
|
19
64
|
PATCH = 'PATCH',
|
20
|
-
OPTIONS = 'OPTIONS'
|
65
|
+
OPTIONS = 'OPTIONS',
|
66
|
+
// WebDAV - Расширенные методы для работы ресурсами
|
67
|
+
SCAN = 'SCAN' // Сканирует ресурс URI и возвращает о нем расширенную информацию в формате DocHubResourceMeta
|
68
|
+
// Позволяет получать список файлов в папке
|
21
69
|
};
|
22
70
|
|
23
|
-
|
71
|
+
/**
|
72
|
+
* Интерфейс транспортного протокола
|
73
|
+
*/
|
24
74
|
export interface IDocHubProtocol {
|
25
|
-
|
75
|
+
/**
|
76
|
+
* Признак активности протокола
|
77
|
+
* @returns - Возвращает true если протолок активен
|
78
|
+
*/
|
26
79
|
isActive(): boolean;
|
27
|
-
|
80
|
+
/**
|
81
|
+
* Метод инициализации протокола
|
82
|
+
* @param context - Контекст функционирования протокола
|
83
|
+
*/
|
28
84
|
bootstrap(context: IDocHubContext);
|
29
|
-
|
85
|
+
/**
|
86
|
+
* Разрешает ссылки
|
87
|
+
* @param args - Массив прямых и/или относительных URI
|
88
|
+
* @returns - Результирующий URI в формате протокола
|
89
|
+
*/
|
30
90
|
resolveURL(...args: string[]): string;
|
31
|
-
|
91
|
+
/**
|
92
|
+
* Выполняет запрос к ресурсу по аналогии с axios
|
93
|
+
* @param config
|
94
|
+
* @returns - Результат выполнения запроса
|
95
|
+
*/
|
32
96
|
request(config: IDocHubProtocolRequestConfig): Promise<IDocHubProtocolResponse>;
|
33
|
-
|
97
|
+
/**
|
98
|
+
* Возвращает список методов доступных для указанного ресурса
|
99
|
+
* @param uri - Идентификатор ресурса
|
100
|
+
* @returns - Массив доступных методов для ресурса
|
101
|
+
*/
|
34
102
|
availableMethodsFor(uri: string): Promise<IDocHubProtocolMethods[]>;
|
35
103
|
}
|
36
104
|
|