dochub-sdk 0.1.380 → 0.1.382
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 +2 -0
- package/interfaces/libraries.ts +24 -28
- package/interfaces/shared.ts +21 -0
- package/package.json +1 -1
- package/plugins/manifest.ts +5 -2
- package/plugins/module.ts +31 -0
package/index.ts
CHANGED
|
@@ -24,11 +24,13 @@ export * from './metamodel/index';
|
|
|
24
24
|
export * from './interfaces/ai';
|
|
25
25
|
export * from './interfaces/explainer';
|
|
26
26
|
export * from './interfaces/libraries';
|
|
27
|
+
export * from './interfaces/shared';
|
|
27
28
|
|
|
28
29
|
export * from './schemas/basetypes';
|
|
29
30
|
export * from './schemas/dochub-yaml';
|
|
30
31
|
|
|
31
32
|
export * from './plugins/manifest';
|
|
33
|
+
export * from './plugins/module';
|
|
32
34
|
|
|
33
35
|
export * from './environments/variables';
|
|
34
36
|
|
package/interfaces/libraries.ts
CHANGED
|
@@ -1,48 +1,44 @@
|
|
|
1
1
|
export type IDocHubLibrary = any;
|
|
2
|
+
export type DocHubLibraryID = string;
|
|
3
|
+
export type DocHubLibraryVersion = string;
|
|
4
|
+
export type DocHubLibraryRequireVersion = string;
|
|
5
|
+
export type DocHubLibraryExportVersion = string;
|
|
6
|
+
|
|
2
7
|
/**
|
|
3
|
-
*
|
|
8
|
+
* Декларирует публикуемые плагином библиотеки
|
|
4
9
|
*/
|
|
5
|
-
export interface
|
|
6
|
-
|
|
7
|
-
* Если библиотека имеет исходники для сборки, здесь указывается путь к ним.
|
|
8
|
-
* Ссылка на исходники позволяет при разработке обращаться к декларациям интерфейсов и функций библиотек,
|
|
9
|
-
* а также, при необходимости внедрять библиотеки непосредственно в плагины.
|
|
10
|
-
*/
|
|
11
|
-
srcPath?: string;
|
|
12
|
-
/**
|
|
13
|
-
* Реализация загрузки модуля.
|
|
14
|
-
* В результате вызова данной функции необходимо вернуть ссылку на загруженный модуль.
|
|
15
|
-
*/
|
|
16
|
-
import(): Promise<IDocHubLibrary>;
|
|
10
|
+
export interface IDocHubLibrariesExport {
|
|
11
|
+
[id: DocHubLibraryID]: DocHubLibraryExportVersion;
|
|
17
12
|
}
|
|
18
13
|
|
|
19
14
|
/**
|
|
20
|
-
*
|
|
15
|
+
* Ручка для разрешения зависимости от библиотеки. Должна возвращать объект module.
|
|
21
16
|
*/
|
|
22
|
-
export
|
|
23
|
-
|
|
17
|
+
export type IDocHubLibraryResolver = (library: DocHubLibraryID) => Promise<IDocHubLibrary>;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Интерфейс доступа к общим библиотекам, которые предоставляет плагин
|
|
21
|
+
*/
|
|
22
|
+
export interface IDocHubSharedLibraries {
|
|
23
|
+
resolve: IDocHubLibraryResolver;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Структура перечисления библиотек и их версий
|
|
28
|
+
*/
|
|
29
|
+
export interface IDocHubLibraryRequires {
|
|
30
|
+
[id: DocHubLibraryID]: DocHubLibraryRequireVersion;
|
|
24
31
|
}
|
|
25
32
|
|
|
26
33
|
/**
|
|
27
34
|
* Интерфейс управления библиотеками
|
|
28
35
|
*/
|
|
29
36
|
export interface IDocHubLibraries {
|
|
30
|
-
/**
|
|
31
|
-
* Публикует библиотеки для всех желающих
|
|
32
|
-
* @param libraries - структура экспорта
|
|
33
|
-
*/
|
|
34
|
-
export(libraries: IDocHubLibrariesExport);
|
|
35
|
-
/**
|
|
36
|
-
* При вызове будет ожидать загрузки необходимых библиотек.
|
|
37
|
-
* Если загрузка хотя бы одной библиотеки не удастся, возникнет ошибка.
|
|
38
|
-
* @param libraries - список необходимых библиотек
|
|
39
|
-
*/
|
|
40
|
-
requires(libraries: string[]): Promise<void>;
|
|
41
37
|
/**
|
|
42
38
|
* Проверяет доступна ли библиотека.
|
|
43
39
|
* Возвращает структуру где для каждой библиотеки указывается true если она доступна, либо false
|
|
44
40
|
* @param libraries
|
|
45
41
|
*/
|
|
46
|
-
isAvailable(libraries:
|
|
42
|
+
isAvailable(libraries: IDocHubLibraryRequires): Promise<{ [library: string]: boolean }>;
|
|
47
43
|
}
|
|
48
44
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Интерфейс для экспорта общих ресурсов из плагинов
|
|
3
|
+
*/
|
|
4
|
+
import { IDocHubLibraryResolver } from "./libraries";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Экспортный метод общих ресурсов плагина
|
|
8
|
+
*/
|
|
9
|
+
export type DocHubSharedResources = () => Promise<IDocHubSharedResources>;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Интерфейс общих ресурсов поставляемый плагином
|
|
13
|
+
*/
|
|
14
|
+
export interface IDocHubSharedResources {
|
|
15
|
+
/**
|
|
16
|
+
* Возвращает объект module для экспортируемой библиотеки
|
|
17
|
+
*/
|
|
18
|
+
libraries?: {
|
|
19
|
+
resolve: IDocHubLibraryResolver;
|
|
20
|
+
}
|
|
21
|
+
}
|
package/package.json
CHANGED
package/plugins/manifest.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { IDocHubLibrariesExport, IDocHubLibraryRequires } from "../interfaces/libraries";
|
|
1
2
|
import { DocHubJSONSchema, IDocHubJSONSchemaAllOf, IDocHubJSONSchemaAnyOf, IDocHubJSONSchemaArray, IDocHubJSONSchemaBase, IDocHubJSONSchemaBoolean, IDocHubJSONSchemaInteger, IDocHubJSONSchemaNumber, IDocHubJSONSchemaObject, IDocHubJSONSchemaOneOf, IDocHubJSONSchemaString } from "../schemas/basetypes";
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -68,8 +69,10 @@ export interface IDocHubPluginManifest {
|
|
|
68
69
|
}
|
|
69
70
|
// Свойства приложения
|
|
70
71
|
app_props: IDocHubManifestProps;
|
|
71
|
-
// Подключаемые плагины
|
|
72
|
-
app_plugins?: IDocHubManifestPlugins;
|
|
73
72
|
// Переменные среды исполнения
|
|
74
73
|
app_environments?: IDocHubManifestEnvironments;
|
|
74
|
+
// Зависимость от общих библиотек в DocHub
|
|
75
|
+
DocHubDependencies?: IDocHubLibraryRequires;
|
|
76
|
+
// Экспортируемые общие библиотеки в DocHub
|
|
77
|
+
DocHubExport?: IDocHubLibrariesExport;
|
|
75
78
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Декларирует интерфейс, который должен реализовать js-модуль плагина
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { IDocHubSharedResources } from "../interfaces/shared";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Функция инициализации плагина в режиме frontend
|
|
9
|
+
*/
|
|
10
|
+
export type DocHubFrontendBootstrap = () => Promise<void>;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Функция инициализации плагина в режиме backend
|
|
14
|
+
*/
|
|
15
|
+
export type DocHubBackendBootstrap = () => Promise<void>;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Загрузочный интерфейс плагина
|
|
19
|
+
*/
|
|
20
|
+
export interface IDocHubPluginBootstrap {
|
|
21
|
+
frontend?: DocHubFrontendBootstrap;
|
|
22
|
+
backend?: DocHubBackendBootstrap;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Интерфейс, который обязан реализовать плагин
|
|
27
|
+
*/
|
|
28
|
+
export interface IDocHubPlugin {
|
|
29
|
+
bootstrap?: IDocHubPluginBootstrap;
|
|
30
|
+
shared?: IDocHubSharedResources;
|
|
31
|
+
}
|