dochub-sdk 0.1.54 → 0.1.55
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/index.ts +5 -1
- package/interfaces/core.ts +67 -103
- package/interfaces/datalake.ts +21 -0
- package/interfaces/documents.ts +20 -0
- package/interfaces/eventbus.ts +23 -0
- package/interfaces/problems.ts +4 -0
- package/interfaces/protocols.ts +26 -1
- package/interfaces/providers.ts +56 -0
- package/interfaces/router.ts +20 -0
- package/interfaces/settings.ts +19 -0
- package/package.json +1 -1
- package/interfaces/contents.ts +0 -14
package/index.ts
CHANGED
@@ -9,10 +9,14 @@ export * from './interfaces/uicomponents';
|
|
9
9
|
export * from './interfaces/editors';
|
10
10
|
export * from './interfaces/datalake';
|
11
11
|
export * from './interfaces/constructors';
|
12
|
-
export * from './interfaces/
|
12
|
+
export * from './interfaces/providers';
|
13
13
|
export * from './interfaces/objects';
|
14
14
|
export * from './interfaces/ui';
|
15
15
|
export * from './interfaces/localstorage';
|
16
|
+
export * from './interfaces/eventbus';
|
17
|
+
export * from './interfaces/router';
|
18
|
+
export * from './interfaces/settings';
|
19
|
+
export * from './interfaces/problems';
|
16
20
|
|
17
21
|
export const DocHub: IDocHubCore = window['DocHub'];
|
18
22
|
export const Vue2 = () => window['Vue'];
|
package/interfaces/core.ts
CHANGED
@@ -1,112 +1,76 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
3
|
-
import {
|
1
|
+
import { IDocHubContentProviders } from './providers';
|
2
|
+
import { IDocHubProtocols } from './protocols';
|
3
|
+
import { IDocHubDocuments } from './documents';
|
4
4
|
import { IDocHubEditors } from './editors';
|
5
5
|
import { IDocHubDataLake } from './datalake';
|
6
6
|
import { IDocHubConstructors } from './constructors';
|
7
7
|
import { IDocHubObjects } from './objects';
|
8
8
|
import { IDocHubUI } from './ui';
|
9
9
|
import { IDocHubLocalStorage } from './localstorage';
|
10
|
+
import { IDocHubEventBus } from './eventbus';
|
11
|
+
import { IDocHubRouter } from './router';
|
12
|
+
import { IDocHubSettings } from './settings';
|
13
|
+
import { IDocHubProblems } from './problems';
|
10
14
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
export interface IDocHubProblems {
|
16
|
-
// Регистрирует ошибку в системе
|
17
|
-
emit(problem: Error, title?: string, uid?: string);
|
18
|
-
}
|
19
|
-
|
20
|
-
export interface IDocHubSettingsCollection {
|
21
|
-
[id: string]: any;
|
22
|
-
}
|
23
|
-
|
24
|
-
export interface IDocHubSettings {
|
25
|
-
// Регистрирует UI компонент настроек
|
26
|
-
// component - VUE компонент
|
27
|
-
// location - размещение UI компонента в дереве настроек
|
28
|
-
// tags - массив тегов для поиска компонента настроек
|
29
|
-
registerUI(component: any, location: string, tags: string[]);
|
30
|
-
|
31
|
-
// Сохраняет структуру с настройками
|
32
|
-
// settings - сохраняемая структура
|
33
|
-
push(settings: IDocHubSettingsCollection);
|
34
|
-
|
35
|
-
// Получает настройки
|
36
|
-
// fields - требуемый массив полей
|
37
|
-
pull(fields: IDocHubSettingsCollection | string[]): IDocHubSettingsCollection;
|
38
|
-
}
|
39
|
-
|
40
|
-
export enum DocHubNavigateCommands {
|
41
|
-
back = '$_back_$',
|
42
|
-
root = '$_root_$'
|
43
|
-
}
|
44
|
-
|
45
|
-
export enum DocHubNavigateTarget {
|
46
|
-
blank = '_blank',
|
47
|
-
self = '_self',
|
48
|
-
parent = '_parent',
|
49
|
-
top = '_top'
|
50
|
-
}
|
51
|
-
|
52
|
-
export interface IDocHubRouter {
|
53
|
-
// Регистрирует роут в формате VUE2
|
54
|
-
registerRoute(route: object);
|
55
|
-
// Регистрирует middleware в формате VUE2
|
56
|
-
registerMiddleware(middleware: object);
|
57
|
-
// Указывает на какой роут перейти в DocHub
|
58
|
-
navigate(url: string | DocHubNavigateCommands, target?:DocHubNavigateTarget);
|
59
|
-
}
|
60
|
-
|
61
|
-
export interface IDocHubContentProviders {
|
62
|
-
// Возвращает контент-провайдер по типу контента
|
63
|
-
get(contentType: string): IDocHubContentProvider;
|
64
|
-
// Регистрирует контент-провайдер
|
65
|
-
register(contentType: string, provider: IDocHubContentProvider);
|
66
|
-
// Возвращает массив зарегистрированных типов
|
67
|
-
fetch(): string[];
|
68
|
-
}
|
69
|
-
|
70
|
-
export interface IDocHubProtocols {
|
71
|
-
// Возвращает драйвер протокола по идентификатору
|
72
|
-
get(protocol: string): IDocHubProtocol;
|
73
|
-
// Регистрирует драйвер протокола
|
74
|
-
register(protocol: string, driver: IDocHubProtocol);
|
75
|
-
// Возвращает массив зарегистрированных протоколов
|
76
|
-
fetch(): string[];
|
77
|
-
}
|
78
|
-
|
79
|
-
export interface IDocHubDocuments {
|
80
|
-
// Регистрирует тип документа
|
81
|
-
register(type: string, document: IDocHubDocument);
|
82
|
-
// Возвращает массив зарегистрированных типов документов
|
83
|
-
fetch(): string[];
|
84
|
-
}
|
85
|
-
|
86
|
-
// Интерфейс внутренней шины событий
|
87
|
-
export interface IDocHubEventBus {
|
88
|
-
// Отправляет событие в шину
|
89
|
-
$emit(event: string, data: any);
|
90
|
-
// Монтирует слушателя в шину
|
91
|
-
$on(event: string, func: Function);
|
92
|
-
// Отмонтирует слушателя от шины
|
93
|
-
$off(event: string, func: Function);
|
94
|
-
}
|
95
|
-
|
96
|
-
// Главный интерфейс
|
15
|
+
/**
|
16
|
+
* Интерфейс ядра
|
17
|
+
*/
|
97
18
|
export interface IDocHubCore {
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
19
|
+
/**
|
20
|
+
* Интерфейс регистрации возникающих проблем
|
21
|
+
*/
|
22
|
+
problems: IDocHubProblems;
|
23
|
+
/**
|
24
|
+
* Пользовательские настройки
|
25
|
+
*/
|
26
|
+
settings: IDocHubSettings;
|
27
|
+
/**
|
28
|
+
* Интерфейс локального хранилища
|
29
|
+
*/
|
30
|
+
localStore: IDocHubLocalStorage;
|
31
|
+
/**
|
32
|
+
* Работа с UI роутами
|
33
|
+
*/
|
34
|
+
router: IDocHubRouter;
|
35
|
+
/**
|
36
|
+
* Провайдеры контента
|
37
|
+
*/
|
38
|
+
contentProviders: IDocHubContentProviders;
|
39
|
+
/**
|
40
|
+
* Протоколы доступа к данным
|
41
|
+
*/
|
42
|
+
protocols: IDocHubProtocols;
|
43
|
+
/**
|
44
|
+
* Документы
|
45
|
+
*/
|
46
|
+
documents: IDocHubDocuments;
|
47
|
+
/**
|
48
|
+
* Редакторы объектов
|
49
|
+
*/
|
50
|
+
editors: IDocHubEditors;
|
51
|
+
/**
|
52
|
+
* Конструкторы объектов
|
53
|
+
*/
|
54
|
+
constructors: IDocHubConstructors;
|
55
|
+
/**
|
56
|
+
* UI порт
|
57
|
+
*/
|
58
|
+
ui: IDocHubUI;
|
59
|
+
/**
|
60
|
+
* Интерфейс к архкоду
|
61
|
+
*/
|
62
|
+
dataLake: IDocHubDataLake;
|
63
|
+
/**
|
64
|
+
* Задекларированные объекты сущностей
|
65
|
+
*/
|
66
|
+
objects: IDocHubObjects;
|
67
|
+
/**
|
68
|
+
* Внутренняя шина событий
|
69
|
+
*/
|
70
|
+
eventBus: IDocHubEventBus;
|
71
|
+
/**
|
72
|
+
* Версия ядра
|
73
|
+
* @returns - Версия ядра в формате *.*.*
|
74
|
+
*/
|
75
|
+
version(): string;
|
112
76
|
}
|
package/interfaces/datalake.ts
CHANGED
@@ -32,8 +32,29 @@ export interface IDocHubPullDataParams {
|
|
32
32
|
[key: string]: any;
|
33
33
|
}
|
34
34
|
|
35
|
+
// Контекст транзации
|
36
|
+
export interface IDocHubTransaction {
|
37
|
+
|
38
|
+
}
|
39
|
+
|
35
40
|
// Интерфейс доступа к DataLake
|
36
41
|
export interface IDocHubDataLake {
|
42
|
+
/**
|
43
|
+
* Открывает транзакцию на изменения в DataLake
|
44
|
+
* @returns - Объект транзакции
|
45
|
+
*/
|
46
|
+
beginTransaction(): Promise<IDocHubTransaction>;
|
47
|
+
/**
|
48
|
+
* Отправляет транзакцию в DataLake
|
49
|
+
* @param transaction - Объект транзакции
|
50
|
+
*/
|
51
|
+
commitTransaction(transaction: IDocHubTransaction): Promise<IDocHubTransaction>;
|
52
|
+
/**
|
53
|
+
* Отменяет транзакцию
|
54
|
+
* @param transaction - Объект транзакции
|
55
|
+
*/
|
56
|
+
rollbackTransaction(transaction: IDocHubTransaction): Promise<IDocHubTransaction>;
|
57
|
+
|
37
58
|
// Монтирует ресурс в озера
|
38
59
|
// uri - URI монтируемого ресурса
|
39
60
|
mount(uri: string);
|
package/interfaces/documents.ts
CHANGED
@@ -1,3 +1,23 @@
|
|
1
|
+
/**
|
2
|
+
* Интерфейс, который требуется реализовать объектам документов
|
3
|
+
*/
|
1
4
|
export interface IDocHubDocument {
|
2
5
|
|
6
|
+
}
|
7
|
+
|
8
|
+
/**
|
9
|
+
* Интерфейс управления документами
|
10
|
+
*/
|
11
|
+
export interface IDocHubDocuments {
|
12
|
+
/**
|
13
|
+
* Регистрирует тип документа
|
14
|
+
* @param type - Тип документа. Например "markdown"
|
15
|
+
* @param document - Объект реализующий документ
|
16
|
+
*/
|
17
|
+
register(type: string, document: IDocHubDocument);
|
18
|
+
/**
|
19
|
+
* Возвращает массив зарегистрированных типов документов
|
20
|
+
* @returns - Массив зарегистрированных типов документов
|
21
|
+
*/
|
22
|
+
fetch(): string[];
|
3
23
|
}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
/**
|
2
|
+
* Интерфейс внутренней шины событий
|
3
|
+
*/
|
4
|
+
export interface IDocHubEventBus {
|
5
|
+
/**
|
6
|
+
* Отправляет событие в шину
|
7
|
+
* @param event - Идентификатор события
|
8
|
+
* @param data - Данные события
|
9
|
+
*/
|
10
|
+
$emit(event: string, data: any);
|
11
|
+
/**
|
12
|
+
* Монтирует слушателя в шину
|
13
|
+
* @param event - Идентификатор события
|
14
|
+
* @param func - Обработчик события
|
15
|
+
*/
|
16
|
+
$on(event: string, func: Function);
|
17
|
+
/**
|
18
|
+
* Отмонтирует слушателя от шины
|
19
|
+
* @param event - Идентификатор события
|
20
|
+
* @param func - Обработчик события
|
21
|
+
*/
|
22
|
+
$off(event: string, func: Function);
|
23
|
+
}
|
package/interfaces/protocols.ts
CHANGED
@@ -7,7 +7,9 @@ export interface IDocHubProtocolRequestConfig extends AxiosRequestConfig {
|
|
7
7
|
};
|
8
8
|
export interface IDocHubProtocolResponse extends AxiosResponse {};
|
9
9
|
|
10
|
-
|
10
|
+
/**
|
11
|
+
* Методы доступные над ресурсом
|
12
|
+
*/
|
11
13
|
export enum IDocHubProtocolMethods {
|
12
14
|
GET = 'GET',
|
13
15
|
POST = 'POST',
|
@@ -30,4 +32,27 @@ export interface IDocHubProtocol {
|
|
30
32
|
request(config: IDocHubProtocolRequestConfig): Promise<IDocHubProtocolResponse>;
|
31
33
|
// Возвращает список методов доступных для указанного ресурса
|
32
34
|
availableMethodsFor(uri: string): Promise<IDocHubProtocolMethods[]>;
|
35
|
+
}
|
36
|
+
|
37
|
+
/**
|
38
|
+
* Интерфейс управления транспортными протоколами ресурсов
|
39
|
+
*/
|
40
|
+
export interface IDocHubProtocols {
|
41
|
+
/**
|
42
|
+
* Возвращает драйвер протокола по идентификатору
|
43
|
+
* @param protocol - Идентификатор протокола. Например, "gitlab"
|
44
|
+
* @returns - Возвращает драйвер протокола
|
45
|
+
*/
|
46
|
+
get(protocol: string): IDocHubProtocol;
|
47
|
+
/**
|
48
|
+
* Регистрирует драйвер протокола
|
49
|
+
* @param protocol - Идентификатор протокола. Например, "gitlab"
|
50
|
+
* @param driver - Объект драйвера протокола
|
51
|
+
*/
|
52
|
+
register(protocol: string, driver: IDocHubProtocol);
|
53
|
+
/**
|
54
|
+
* Возвращает массив зарегистрированных протоколов
|
55
|
+
* @returns - Массив идентификаторов протоколов
|
56
|
+
*/
|
57
|
+
fetch(): string[];
|
33
58
|
}
|
@@ -0,0 +1,56 @@
|
|
1
|
+
import { IDocHubContext } from './contexts';
|
2
|
+
import { IDataLakeChange } from './datalake';
|
3
|
+
|
4
|
+
/**
|
5
|
+
* Интерфейс, который должен реализовывать провайдер данных
|
6
|
+
*/
|
7
|
+
export interface IDocHubContentProvider {
|
8
|
+
/**
|
9
|
+
* Флаг активности провайдера
|
10
|
+
* @returns - возвращает true если провайдер активен
|
11
|
+
*/
|
12
|
+
isActive(): boolean;
|
13
|
+
/**
|
14
|
+
* Вызывается ядром для инициализация провайдера
|
15
|
+
* @param context - Контекст функционирования драйвера
|
16
|
+
*/
|
17
|
+
bootstrap(context: IDocHubContext);
|
18
|
+
/**
|
19
|
+
* Конвертация контента в объекты DataLake
|
20
|
+
* @param content - Контент в формате обрабатываемом драйвером
|
21
|
+
* @returns - Объект DataLake
|
22
|
+
*/
|
23
|
+
toObject(content: any): any;
|
24
|
+
/**
|
25
|
+
* Конвертация объектов в контент для хранения
|
26
|
+
* @param data - Объект DataLake
|
27
|
+
* @returns - Контент в формате обрабатываемом драйвером
|
28
|
+
*/
|
29
|
+
toContent(data: any): any;
|
30
|
+
/**
|
31
|
+
* Вносит изменения из ченж-лога в контент
|
32
|
+
* @param content - Контент в формате обрабатываемом драйвером
|
33
|
+
* @param changes - Список изменений, который требуется внести в контент
|
34
|
+
*/
|
35
|
+
mutation(content: string, changes: IDataLakeChange[]): string;
|
36
|
+
}
|
37
|
+
|
38
|
+
export interface IDocHubContentProviders {
|
39
|
+
/**
|
40
|
+
* Возвращает контент-провайдер по типу контента
|
41
|
+
* @param contentType - Тип контента
|
42
|
+
* @returns - Объект драйвера провайдера
|
43
|
+
*/
|
44
|
+
get(contentType: string): IDocHubContentProvider;
|
45
|
+
/**
|
46
|
+
* Регистрация контент-провайдера
|
47
|
+
* @param contentType - Типа контента. Например, "yaml"
|
48
|
+
* @param provider - Объект контент-провайдера
|
49
|
+
*/
|
50
|
+
register(contentType: string, provider: IDocHubContentProvider);
|
51
|
+
/**
|
52
|
+
* Возвращает массив зарегистрированных типов
|
53
|
+
* @returns - Массив зарегистрированных типов контента
|
54
|
+
*/
|
55
|
+
fetch(): string[];
|
56
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
export enum DocHubNavigateCommands {
|
2
|
+
back = '$_back_$',
|
3
|
+
root = '$_root_$'
|
4
|
+
}
|
5
|
+
|
6
|
+
export enum DocHubNavigateTarget {
|
7
|
+
blank = '_blank',
|
8
|
+
self = '_self',
|
9
|
+
parent = '_parent',
|
10
|
+
top = '_top'
|
11
|
+
}
|
12
|
+
|
13
|
+
export interface IDocHubRouter {
|
14
|
+
// Регистрирует роут в формате VUE2
|
15
|
+
registerRoute(route: object);
|
16
|
+
// Регистрирует middleware в формате VUE2
|
17
|
+
registerMiddleware(middleware: object);
|
18
|
+
// Указывает на какой роут перейти в DocHub
|
19
|
+
navigate(url: string | DocHubNavigateCommands, target?:DocHubNavigateTarget);
|
20
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
export interface IDocHubSettingsCollection {
|
2
|
+
[id: string]: any;
|
3
|
+
}
|
4
|
+
|
5
|
+
export interface IDocHubSettings {
|
6
|
+
// Регистрирует UI компонент настроек
|
7
|
+
// component - VUE компонент
|
8
|
+
// location - размещение UI компонента в дереве настроек
|
9
|
+
// tags - массив тегов для поиска компонента настроек
|
10
|
+
registerUI(component: any, location: string, tags: string[]);
|
11
|
+
|
12
|
+
// Сохраняет структуру с настройками
|
13
|
+
// settings - сохраняемая структура
|
14
|
+
push(settings: IDocHubSettingsCollection);
|
15
|
+
|
16
|
+
// Получает настройки
|
17
|
+
// fields - требуемый массив полей
|
18
|
+
pull(fields: IDocHubSettingsCollection | string[]): IDocHubSettingsCollection;
|
19
|
+
}
|
package/package.json
CHANGED
package/interfaces/contents.ts
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
import { IDocHubContext } from './contexts';
|
2
|
-
import { IDataLakeChange } from './datalake';
|
3
|
-
export interface IDocHubContentProvider {
|
4
|
-
// Флаг активности провайдера
|
5
|
-
isActive(): boolean;
|
6
|
-
// Инициализация провайдера
|
7
|
-
bootstrap(context: IDocHubContext);
|
8
|
-
// Конвертация контента в объекты DataLake
|
9
|
-
toObject(content: any): any;
|
10
|
-
// Конвертация объектов в контент для хранения
|
11
|
-
toContent(data: any): any;
|
12
|
-
// Вносит изменения из ченж-лога
|
13
|
-
mutation(content: string, changes: IDataLakeChange[]): string;
|
14
|
-
}
|