dochub-sdk 0.1.1 → 0.1.2

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.
@@ -0,0 +1,4 @@
1
+ import { IDocHubContext } from "./context";
2
+ export interface IDocHubContentProvider {
3
+ bootstrap(context: IDocHubContext);
4
+ }
@@ -0,0 +1,14 @@
1
+ import { IDocHubCore } from "dochub-sdk/interfaces/core";
2
+
3
+ // Интерфейс переменных среды исполнения
4
+ export interface IDocHubContextEnv {
5
+ readonly [key: string]: any;
6
+ }
7
+
8
+ // Интерфейс контекста для выполнения плагина
9
+ export interface IDocHubContext {
10
+ // Переменные среды
11
+ env: IDocHubContextEnv;
12
+ // Интерфейс к DocHub
13
+ dochub: IDocHubCore;
14
+ }
@@ -0,0 +1,98 @@
1
+ import { IDocHubContentProvider } from './content';
2
+ import { IDocHubProtocol } from './protocol';
3
+ import { IDocHubDocument } from './document';
4
+ import { IDocHubUIComponent } from './uicomponent';
5
+
6
+
7
+ export interface IDocHubEnv {
8
+ [id: string]: string
9
+ }
10
+
11
+ export interface IDocHubProblems {
12
+ // Регистрирует ошибку в системе
13
+ emit(problem: Error, title?: string, uid?: string);
14
+ }
15
+
16
+ export interface IDocHubSettingsCollection {
17
+ [id: string]: any;
18
+ }
19
+
20
+ export interface IDocHubSettings {
21
+ // Регистрирует UI компонент настроек
22
+ // component - VUE компонент
23
+ // location - размещение UI компонента в дереве настроек
24
+ // tags - массив тегов для поиска компонента настроек
25
+ registerUI(component: any, location: string, tags: string[]);
26
+
27
+ // Сохраняет структуру с настройками
28
+ // settings - сохраняемая структура
29
+ push(settings: IDocHubSettingsCollection);
30
+
31
+ // Получает настройки
32
+ // fields - требуемый массив полей
33
+ pull(fields: IDocHubSettingsCollection | string[]): IDocHubSettingsCollection;
34
+ }
35
+
36
+ export interface IDocHubRouter {
37
+ // Регистрирует роут в формате VUE2
38
+ registerRoute(route: object);
39
+ // Регистрирует middleware в формате VUE2
40
+ registerMiddleware(middleware: object);
41
+ }
42
+
43
+ export interface IDocHubContentProviders {
44
+ // Возвращает контент-провайдер по типу контента
45
+ get(contentType: string): IDocHubContentProvider;
46
+ // Регистрирует контент-провайдер
47
+ register(contentType: string, provider: IDocHubContentProvider);
48
+ // Возвращает массив зарегистрированных типов
49
+ fetch(): string[];
50
+ }
51
+
52
+ export interface IDocHubProtocols {
53
+ // Возвращает драйвер протокола по идентификатору
54
+ get(protocol: string): IDocHubProtocol;
55
+ // Регистрирует драйвер протокола
56
+ register(protocol: string, driver: IDocHubProtocol);
57
+ // Возвращает массив зарегистрированных протоколов
58
+ fetch(): string[];
59
+ }
60
+
61
+ export interface IDocHubDocuments {
62
+ // Регистрирует тип документа
63
+ register(type: string, document: IDocHubDocument);
64
+ // Возвращает массив зарегистрированных типов документов
65
+ fetch(): string[];
66
+ }
67
+
68
+ export interface IDocHubUI {
69
+ // Регистрирует UI компонент в слоте
70
+ register(slot: string, component: IDocHubUIComponent);
71
+ // Возвращает зарегистрированный компонент по слоту
72
+ get(slot: string): IDocHubUIComponent[];
73
+ }
74
+
75
+ export interface IDocHubDataLake {
76
+ // Монтирует источник к загружаемым манифестам озера
77
+ // uri: string - URI монтируемого ресурса
78
+ mountManifest(uri: string);
79
+ // Отмонтирует источник к загружаемым манифестам озера
80
+ // uri: string - URI отключаемого ресурса
81
+ unmountManifest(uri: string);
82
+ // Требует перезагрузки ресурсов задействованных в озере данных
83
+ // uriPattern: array | RegEx | undefined - Шаблон проверки соответствия URI ресурса
84
+ // Если undefined - перезагружает все
85
+ reload(uriPattern?: string | string[] | RegExp);
86
+ }
87
+
88
+ // Главный интерфейс
89
+ export interface IDocHubCore {
90
+ problems: IDocHubProblems; // Проблемы
91
+ settings: IDocHubSettings; // Пользовтельские настройки
92
+ router: IDocHubRouter; // Работа с UI роутами
93
+ contentProviders: IDocHubContentProviders; // Провайдеры контента
94
+ protocols: IDocHubProtocols; // Протоколы доступа к данным
95
+ documents: IDocHubDocuments; // Документы
96
+ ui: IDocHubUI; // UI порт
97
+ dataLake: IDocHubDataLake; // Интерфейс к архкоду
98
+ }
@@ -0,0 +1,3 @@
1
+ export interface IDocHubDocument {
2
+
3
+ }
@@ -0,0 +1,33 @@
1
+ import { AxiosResponse, AxiosRequestConfig } from 'axios';
2
+ import { IDocHubContext } from './context';
3
+
4
+ // Прослойка интерфейсов Axios для последующей кастомизации и поддержания совместимости
5
+ export interface IDocHubProtocolRequestConfig extends AxiosRequestConfig {
6
+ decoder?: Function; // Декодировщик ответа
7
+ };
8
+ export interface IDocHubProtocolResponse extends AxiosResponse {};
9
+
10
+ // Методы доступные над ресурсом
11
+ export enum IDocHubProtocolMethods {
12
+ GET = 'GET',
13
+ POST = 'POST',
14
+ DELETE = 'DELETE',
15
+ HEAD = 'HEAD',
16
+ PUT = 'PUT',
17
+ PATCH = 'PATCH',
18
+ OPTIONS = 'OPTIONS'
19
+ };
20
+
21
+ // Интерфейс транспортного протокола
22
+ export interface IDocHubProtocol {
23
+ // Признак активности протокола
24
+ isActive(): boolean;
25
+ // Метод инициализации протокола
26
+ bootstrap(context: IDocHubContext);
27
+ // Разрешение ссылок
28
+ resolveURL(...args: string[]): string;
29
+ // Выполняет запрос к DataLake
30
+ request(config: IDocHubProtocolRequestConfig): Promise<IDocHubProtocolResponse>;
31
+ // Возвращает список методов доступных для указанного ресурса
32
+ availableMethodsFor(uri: string): Promise<IDocHubProtocolMethods[]>;
33
+ }
@@ -0,0 +1,3 @@
1
+ export interface IDocHubUIComponent {
2
+
3
+ }
package/package.json CHANGED
@@ -1,13 +1,10 @@
1
1
  {
2
2
  "name": "dochub-sdk",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "The DocHub System Development Kit.",
5
5
  "private": false,
6
6
  "main": "index.ts",
7
7
  "module": "index.ts",
8
- "files": [
9
- "."
10
- ],
11
8
  "homepage": "https://dochub.info",
12
9
  "bin": {
13
10
  "dochub-cli": "cli/main.js"