dochub-sdk 0.1.53 → 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 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/contents';
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'];
@@ -1,111 +1,76 @@
1
- import { IDocHubContentProvider } from './contents';
2
- import { IDocHubProtocol } from './protocols';
3
- import { IDocHubDocument } from './documents';
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
- export interface IDocHubEnv {
12
- [id: string]: string
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
- problems: IDocHubProblems; // Проблемы
99
- settings: IDocHubSettings; // Пользовательские настройки
100
- localStore: IDocHubLocalStorage; // Интерфейс локального хранилища
101
- router: IDocHubRouter; // Работа с UI роутами
102
- contentProviders: IDocHubContentProviders; // Провайдеры контента
103
- protocols: IDocHubProtocols; // Протоколы доступа к данным
104
- documents: IDocHubDocuments; // Документы
105
- editors: IDocHubEditors; // Редакторы
106
- constructors: IDocHubConstructors; // Конструкторы
107
- ui: IDocHubUI; // UI порт
108
- dataLake: IDocHubDataLake; // Интерфейс к архкоду
109
- objects: IDocHubObjects; // Задекларированные объекты сущностей
110
- eventBus: IDocHubEventBus; // Внутренняя шина событий
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;
111
76
  }
@@ -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);
@@ -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
+ }
@@ -0,0 +1,4 @@
1
+ export interface IDocHubProblems {
2
+ // Регистрирует ошибку в системе
3
+ emit(problem: Error, title?: string, uid?: string);
4
+ }
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dochub-sdk",
3
- "version": "0.1.53",
3
+ "version": "0.1.55",
4
4
  "description": "The DocHub System Development Kit.",
5
5
  "private": false,
6
6
  "main": "index.ts",
@@ -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
- }