dochub-sdk 0.1.365 → 0.1.367
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 +1 -0
- package/index.ts +1 -1
- package/interfaces/core.ts +5 -0
- package/interfaces/datalake.ts +1 -61
- package/interfaces/jsonata.ts +185 -0
- package/interfaces/presentations.ts +1 -1
- package/metamodel/entity.ts +1 -1
- package/package.json +1 -1
- package/plugins/manifest.ts +27 -13
- package/interfaces/datasets.ts +0 -95
package/.vscode/settings.json
CHANGED
package/index.ts
CHANGED
@@ -19,7 +19,7 @@ export * from './interfaces/settings';
|
|
19
19
|
export * from './interfaces/ui';
|
20
20
|
export * from './interfaces/tools';
|
21
21
|
export * from './interfaces/lang';
|
22
|
-
export * from './interfaces/
|
22
|
+
export * from './interfaces/jsonata';
|
23
23
|
export * from './metamodel/index';
|
24
24
|
export * from './interfaces/ai';
|
25
25
|
export * from './interfaces/explainer';
|
package/interfaces/core.ts
CHANGED
@@ -16,6 +16,7 @@ import { IDocHubTools } from './tools';
|
|
16
16
|
import { IDocHubLang } from './lang';
|
17
17
|
import { IDocHubAI } from './ai';
|
18
18
|
import { IDocHubExplainer } from './explainer';
|
19
|
+
import { IDocHubJSONata } from './jsonata';
|
19
20
|
/**
|
20
21
|
* Интерфейс ядра
|
21
22
|
*/
|
@@ -92,6 +93,10 @@ export interface IDocHubCore {
|
|
92
93
|
* Стандартные утилиты облегчающие разработку расширений DocHub
|
93
94
|
*/
|
94
95
|
tools: IDocHubTools;
|
96
|
+
/**
|
97
|
+
* Интерфейс доступа к DocHubJSONata движку
|
98
|
+
*/
|
99
|
+
jsonata: IDocHubJSONata;
|
95
100
|
/**
|
96
101
|
* Версия ядра
|
97
102
|
* @returns - Версия ядра в формате *.*.*
|
package/interfaces/datalake.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import { IProtocolResponseOptions, IDocHubProtocolResponse, IDocHubResourceVersion } from './protocols';
|
2
|
-
import { DocHubDataSetProfileSource, DocHubJSONataQuery, IDocHubDataSetProfile } from './
|
2
|
+
import { DocHubDataSetProfileSource, DocHubJSONataQuery, IDocHubDataSetProfile } from './jsonata';
|
3
3
|
import { DocHubUITargetWindow } from './ui';
|
4
4
|
import { DocHubJSONSchema } from '../schemas/basetypes';
|
5
5
|
|
@@ -287,57 +287,6 @@ export interface IDataSetResolveOptions {
|
|
287
287
|
}
|
288
288
|
|
289
289
|
|
290
|
-
export enum DocHubDataLakeDebuggerHandleActions {
|
291
|
-
run = 'run', // Продолжить выполнение
|
292
|
-
next = 'next', // Перейти на следующий шаг
|
293
|
-
into = 'into', // Войти в подпрограмму
|
294
|
-
stop = 'stop' // Прервать выполнение
|
295
|
-
}
|
296
|
-
|
297
|
-
/**
|
298
|
-
* Специальный тип запросов в отладчик.
|
299
|
-
* Если запрос начинается на $, считается, что запрос должен вернуть значение переменной из контекста выполнения
|
300
|
-
*/
|
301
|
-
export type DocHubDebuggerQuery = `$${string}` | DocHubJSONataQuery;
|
302
|
-
|
303
|
-
export type DocHubDataLakeDebuggerQuery = (expression: DocHubDebuggerQuery) => Promise<any>;
|
304
|
-
|
305
|
-
|
306
|
-
/**
|
307
|
-
* Элемент стека выполнения запросов в DataLake
|
308
|
-
*/
|
309
|
-
export interface IDocHubDataLakeDebuggerCallStackItem {
|
310
|
-
position: number; // Указывает на каком символе в source сейчас выполнение
|
311
|
-
source: () => Promise<string>; // Возвращает исходный код запроса
|
312
|
-
variables: () => Promise<string[]>; // Возвращает список переменных запроса
|
313
|
-
query: DocHubDataLakeDebuggerQuery; // Выполнение произвольного запроса в контексте данного запроса
|
314
|
-
}
|
315
|
-
|
316
|
-
/**
|
317
|
-
* Стек запросов в DataLake
|
318
|
-
*/
|
319
|
-
export type DocHubDataLakeDebuggerCallStack = IDocHubDataLakeDebuggerCallStackItem[];
|
320
|
-
|
321
|
-
/**
|
322
|
-
* Контекст запроса в DataLake
|
323
|
-
*/
|
324
|
-
export interface IDocHubDataLakeDebuggerContext {
|
325
|
-
uid: string; // Идентификатор запроса
|
326
|
-
stack?: () => Promise<DocHubDataLakeDebuggerCallStack>; // Стек выполнения запроса
|
327
|
-
terminated?: boolean; // Признак завершения выполнения запроса
|
328
|
-
}
|
329
|
-
|
330
|
-
/**
|
331
|
-
* Интерфейс внутрисистемного отладчика
|
332
|
-
*/
|
333
|
-
export interface IDocHubDataLakeDebugger {
|
334
|
-
/**
|
335
|
-
* Метод вызывается при необходимости отладочного действия
|
336
|
-
* @param context - контекст исполнения кода
|
337
|
-
*/
|
338
|
-
handle(context: IDocHubDataLakeDebuggerContext): Promise<DocHubDataLakeDebuggerHandleActions>;
|
339
|
-
}
|
340
|
-
|
341
290
|
/**
|
342
291
|
* Интерфейс доступа к DataLake
|
343
292
|
*/
|
@@ -591,15 +540,6 @@ export interface IDocHubDataLake {
|
|
591
540
|
*/
|
592
541
|
getContentTypeForFile(file: string): string | null;
|
593
542
|
|
594
|
-
/*********************************************************************
|
595
|
-
* Внутрисистемный отладчик запросов к DataLake
|
596
|
-
*********************************************************************/
|
597
|
-
/**
|
598
|
-
* Регистрирует отладчик в системе
|
599
|
-
* @param debug - Объект реализующий отладчик
|
600
|
-
*/
|
601
|
-
registerDebugger(debug: IDocHubDataLakeDebugger);
|
602
|
-
|
603
543
|
/**
|
604
544
|
* Возвращает JSONSchema DataLake
|
605
545
|
*/
|
@@ -0,0 +1,185 @@
|
|
1
|
+
import { DocHubJSONSchema } from '../schemas/basetypes';
|
2
|
+
import { DocHubDataLakeInitializedStatus, IDocHubTransaction } from './datalake';
|
3
|
+
|
4
|
+
/**
|
5
|
+
* Идентификатор источника данных
|
6
|
+
*/
|
7
|
+
export type DocHubDataSetID = string;
|
8
|
+
/**
|
9
|
+
* Данные не требующие обработку
|
10
|
+
*/
|
11
|
+
export type DocHubDataSetData = object;
|
12
|
+
/**
|
13
|
+
* JSONata запрос с расширенными свойствами
|
14
|
+
*/
|
15
|
+
|
16
|
+
/**
|
17
|
+
* Простое, строковое определение JSONata запроса
|
18
|
+
*/
|
19
|
+
export type DocHubJSONataQuerySimple = `(${string})` | `jsonata(${string})`;
|
20
|
+
|
21
|
+
/**
|
22
|
+
* Ссылка на JSONata файл
|
23
|
+
*/
|
24
|
+
export type DocHubJSONataFile = `${string}.jsonata`;
|
25
|
+
|
26
|
+
/**
|
27
|
+
* Метаинформация JSONata запроса
|
28
|
+
*/
|
29
|
+
export interface DocHubJSONataQueryMeta {
|
30
|
+
/**
|
31
|
+
* URI ресурса, где декларирован запрос
|
32
|
+
*/
|
33
|
+
source?: string;
|
34
|
+
/**
|
35
|
+
* Путь к свойству определения
|
36
|
+
*/
|
37
|
+
path?: string;
|
38
|
+
}
|
39
|
+
|
40
|
+
/**
|
41
|
+
* Класс, позволяет создавать запросы с расширенной информацией об источнике его происхождения
|
42
|
+
* для удобства отладки.
|
43
|
+
*/
|
44
|
+
export class DocHubJSONataQueryObject extends String {
|
45
|
+
/**
|
46
|
+
* URI ресурса, где определен запрос
|
47
|
+
*/
|
48
|
+
private uri: string | undefined;
|
49
|
+
/**
|
50
|
+
* Путь к определению запроса
|
51
|
+
*/
|
52
|
+
private path: string | undefined;
|
53
|
+
constructor(query: DocHubJSONataQuerySimple, uri?: string, path?: string) {
|
54
|
+
super(query);
|
55
|
+
this.uri = uri;
|
56
|
+
this.path = path;
|
57
|
+
return this;
|
58
|
+
}
|
59
|
+
get __uri__(): string | undefined {
|
60
|
+
return this.uri;
|
61
|
+
}
|
62
|
+
get __path__(): string | undefined {
|
63
|
+
return this.path;
|
64
|
+
}
|
65
|
+
}
|
66
|
+
|
67
|
+
/**
|
68
|
+
* JSONata запрос
|
69
|
+
*/
|
70
|
+
export type DocHubJSONataQuery = DocHubJSONataQuerySimple | DocHubJSONataQueryObject;
|
71
|
+
|
72
|
+
/**
|
73
|
+
* Ссылка на файл данных
|
74
|
+
*/
|
75
|
+
export type DocHubDataFileFile = string;
|
76
|
+
/**
|
77
|
+
* Тип поля source описывающий возможные источники данных
|
78
|
+
*/
|
79
|
+
export type DocHubDataSetProfileSource = DocHubDataSetID | DocHubJSONataQuery | DocHubJSONataFile | DocHubDataFileFile | DocHubDataSetData;
|
80
|
+
/**
|
81
|
+
* Набор источников для поля origin
|
82
|
+
*/
|
83
|
+
export interface DocHubDataSetProfileOriginSet {
|
84
|
+
[key: string]: DocHubDataSetProfileSource
|
85
|
+
}
|
86
|
+
/**
|
87
|
+
* Тип поля origin для источника данных
|
88
|
+
*/
|
89
|
+
export type DocHubDataSetProfileOrigin = DocHubDataSetProfileSource | DocHubDataSetProfileOriginSet;
|
90
|
+
|
91
|
+
/**
|
92
|
+
* Интерфейс стандартизирующий источник данных
|
93
|
+
*/
|
94
|
+
export interface IDocHubDataSetProfile {
|
95
|
+
origin?: DocHubDataSetProfileOrigin;
|
96
|
+
source: DocHubDataSetProfileSource;
|
97
|
+
}
|
98
|
+
|
99
|
+
export enum DocHubDataLakeDebuggerHandleActions {
|
100
|
+
run = 'run', // Продолжить выполнение
|
101
|
+
next = 'next', // Перейти на следующий шаг
|
102
|
+
into = 'into', // Войти в подпрограмму
|
103
|
+
stop = 'stop' // Прервать выполнение
|
104
|
+
}
|
105
|
+
|
106
|
+
/**
|
107
|
+
* Специальный тип запросов в отладчик.
|
108
|
+
* Если запрос начинается на $, считается, что запрос должен вернуть значение переменной из контекста выполнения
|
109
|
+
*/
|
110
|
+
export type DocHubDebuggerQuery = `$${string}` | DocHubJSONataQuery;
|
111
|
+
|
112
|
+
export type DocHubDataLakeDebuggerQuery = (expression: DocHubDebuggerQuery) => Promise<any>;
|
113
|
+
|
114
|
+
|
115
|
+
/**
|
116
|
+
* Элемент стека выполнения запросов в DataLake
|
117
|
+
*/
|
118
|
+
export interface IDocHubDataLakeDebuggerCallStackItem {
|
119
|
+
position: number; // Указывает на каком символе в source сейчас выполнение
|
120
|
+
source: () => Promise<string>; // Возвращает исходный код запроса
|
121
|
+
variables: () => Promise<string[]>; // Возвращает список переменных запроса
|
122
|
+
query: DocHubDataLakeDebuggerQuery; // Выполнение произвольного запроса в контексте данного запроса
|
123
|
+
}
|
124
|
+
|
125
|
+
/**
|
126
|
+
* Стек запросов в DataLake
|
127
|
+
*/
|
128
|
+
export type DocHubDataLakeDebuggerCallStack = IDocHubDataLakeDebuggerCallStackItem[];
|
129
|
+
|
130
|
+
/**
|
131
|
+
* Контекст запроса в DataLake
|
132
|
+
*/
|
133
|
+
export interface IDocHubDataLakeDebuggerContext {
|
134
|
+
uid: string; // Идентификатор запроса
|
135
|
+
stack?: () => Promise<DocHubDataLakeDebuggerCallStack>; // Стек выполнения запроса
|
136
|
+
terminated?: boolean; // Признак завершения выполнения запроса
|
137
|
+
}
|
138
|
+
|
139
|
+
/**
|
140
|
+
* Интерфейс внутрисистемного отладчика
|
141
|
+
*/
|
142
|
+
export interface IDocHubDataLakeDebugger {
|
143
|
+
/**
|
144
|
+
* Метод вызывается при необходимости отладочного действия
|
145
|
+
* @param context - контекст исполнения кода
|
146
|
+
*/
|
147
|
+
handle(context: IDocHubDataLakeDebuggerContext): Promise<DocHubDataLakeDebuggerHandleActions>;
|
148
|
+
}
|
149
|
+
|
150
|
+
export type JSONataExpression = string;
|
151
|
+
export interface JSONataExpressionBinds {
|
152
|
+
[variable: string]: any;
|
153
|
+
}
|
154
|
+
|
155
|
+
/**
|
156
|
+
* Интерфейс объекта запроса
|
157
|
+
*/
|
158
|
+
export interface IDocHubJSONataQuery {
|
159
|
+
/**
|
160
|
+
* Выполняет запрос
|
161
|
+
*/
|
162
|
+
evaluate(context: JSONataExpression, binds?: JSONataExpressionBinds): Promise<any>;
|
163
|
+
}
|
164
|
+
|
165
|
+
/**
|
166
|
+
* Интерфейс к движку JSONata
|
167
|
+
*/
|
168
|
+
export interface IDocHubJSONata {
|
169
|
+
/**
|
170
|
+
* Регистрирует отладчик в системе
|
171
|
+
* @param debug - Объект реализующий отладчик
|
172
|
+
*/
|
173
|
+
registerDebugger(debug: IDocHubDataLakeDebugger);
|
174
|
+
|
175
|
+
/**
|
176
|
+
* Создает объект запроса
|
177
|
+
*/
|
178
|
+
expression(query: JSONataExpression): Promise<IDocHubJSONataQuery>;
|
179
|
+
|
180
|
+
/**
|
181
|
+
* Метод временный на период миграции к полной асинхронности
|
182
|
+
*/
|
183
|
+
expressionLocal(query: JSONataExpression): IDocHubJSONataQuery;
|
184
|
+
}
|
185
|
+
|
package/metamodel/entity.ts
CHANGED
package/package.json
CHANGED
package/plugins/manifest.ts
CHANGED
@@ -19,6 +19,27 @@ export interface IDocHubPluginEnvironmentsOneOf extends IDocHubJSONSchemaBase {
|
|
19
19
|
oneOf: IDocHubJSONSchemaObject[];
|
20
20
|
}
|
21
21
|
|
22
|
+
export interface IDocHubManifestProps {
|
23
|
+
building: {
|
24
|
+
// Момент сборки
|
25
|
+
moment: number;
|
26
|
+
// Версия SDK сборки
|
27
|
+
'dochub-sdk': string;
|
28
|
+
// Коммит
|
29
|
+
commit: string;
|
30
|
+
// Версия node при сборке
|
31
|
+
node: string;
|
32
|
+
// Версия приложения в формате xx.xx.xx
|
33
|
+
version: string;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
export type IDocHubManifestPlugins = string[];
|
38
|
+
|
39
|
+
export interface IDocHubManifestEnvironments {
|
40
|
+
[module: string]: string;
|
41
|
+
}
|
42
|
+
|
22
43
|
export type IDocHubPluginEnvironments =
|
23
44
|
| IDocHubJSONSchemaObject
|
24
45
|
| IDocHubPluginEnvironmentsAllOf
|
@@ -33,8 +54,6 @@ export interface IDocHubPluginManifest {
|
|
33
54
|
name: string;
|
34
55
|
// Описание плагина
|
35
56
|
description?: string;
|
36
|
-
// Версия в формате xx.xx.xx
|
37
|
-
version: string;
|
38
57
|
// Ключевые слова для поиска в репозитории плагинов
|
39
58
|
keywords?: string[];
|
40
59
|
// Автор/вендор
|
@@ -47,15 +66,10 @@ export interface IDocHubPluginManifest {
|
|
47
66
|
repository: string;
|
48
67
|
support: string;
|
49
68
|
}
|
50
|
-
//
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
},
|
57
|
-
// Зависимости
|
58
|
-
dependencies?: IDocHubManifestDependencies;
|
59
|
-
// Переменные окружения требуемые для работы плагина
|
60
|
-
environments?: IDocHubPluginEnvironments;
|
69
|
+
// Свойства приложения
|
70
|
+
app_props: IDocHubManifestProps;
|
71
|
+
// Подключаемые плагины
|
72
|
+
app_plugins?: IDocHubManifestPlugins;
|
73
|
+
// Переменные среды исполнения
|
74
|
+
app_environments?: IDocHubManifestEnvironments;
|
61
75
|
}
|
package/interfaces/datasets.ts
DELETED
@@ -1,95 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Идентификатор источника данных
|
3
|
-
*/
|
4
|
-
export type DocHubDataSetID = string;
|
5
|
-
/**
|
6
|
-
* Данные не требующие обработку
|
7
|
-
*/
|
8
|
-
export type DocHubDataSetData = object;
|
9
|
-
/**
|
10
|
-
* JSONata запрос с расширенными свойствами
|
11
|
-
*/
|
12
|
-
|
13
|
-
/**
|
14
|
-
* Простое, строковое определение JSONata запроса
|
15
|
-
*/
|
16
|
-
export type DocHubJSONataQuerySimple = `(${string})` | `jsonata(${string})`;
|
17
|
-
|
18
|
-
/**
|
19
|
-
* Ссылка на JSONata файл
|
20
|
-
*/
|
21
|
-
export type DocHubJSONataFile = `${string}.jsonata`;
|
22
|
-
|
23
|
-
/**
|
24
|
-
* Метаинформация JSONata запроса
|
25
|
-
*/
|
26
|
-
export interface DocHubJSONataQueryMeta {
|
27
|
-
/**
|
28
|
-
* URI ресурса, где декларирован запрос
|
29
|
-
*/
|
30
|
-
source?: string;
|
31
|
-
/**
|
32
|
-
* Путь к свойству определения
|
33
|
-
*/
|
34
|
-
path?: string;
|
35
|
-
}
|
36
|
-
|
37
|
-
/**
|
38
|
-
* Класс, позволяет создавать запросы с расширенной информацией об источнике его происхождения
|
39
|
-
* для удобства отладки.
|
40
|
-
*/
|
41
|
-
export class DocHubJSONataQueryObject extends String {
|
42
|
-
/**
|
43
|
-
* URI ресурса, где определен запрос
|
44
|
-
*/
|
45
|
-
private uri: string | undefined;
|
46
|
-
/**
|
47
|
-
* Путь к определению запроса
|
48
|
-
*/
|
49
|
-
private path: string | undefined;
|
50
|
-
constructor(query: DocHubJSONataQuerySimple, uri?: string, path?: string) {
|
51
|
-
super(query);
|
52
|
-
this.uri = uri;
|
53
|
-
this.path = path;
|
54
|
-
return this;
|
55
|
-
}
|
56
|
-
get __uri__(): string | undefined {
|
57
|
-
return this.uri;
|
58
|
-
}
|
59
|
-
get __path__(): string | undefined {
|
60
|
-
return this.path;
|
61
|
-
}
|
62
|
-
}
|
63
|
-
|
64
|
-
/**
|
65
|
-
* JSONata запрос
|
66
|
-
*/
|
67
|
-
export type DocHubJSONataQuery = DocHubJSONataQuerySimple | DocHubJSONataQueryObject;
|
68
|
-
|
69
|
-
/**
|
70
|
-
* Ссылка на файл данных
|
71
|
-
*/
|
72
|
-
export type DocHubDataFileFile = string;
|
73
|
-
/**
|
74
|
-
* Тип поля source описывающий возможные источники данных
|
75
|
-
*/
|
76
|
-
export type DocHubDataSetProfileSource = DocHubDataSetID | DocHubJSONataQuery | DocHubJSONataFile | DocHubDataFileFile | DocHubDataSetData;
|
77
|
-
/**
|
78
|
-
* Набор источников для поля origin
|
79
|
-
*/
|
80
|
-
export interface DocHubDataSetProfileOriginSet {
|
81
|
-
[key: string]: DocHubDataSetProfileSource
|
82
|
-
}
|
83
|
-
/**
|
84
|
-
* Тип поля origin для источника данных
|
85
|
-
*/
|
86
|
-
export type DocHubDataSetProfileOrigin = DocHubDataSetProfileSource | DocHubDataSetProfileOriginSet;
|
87
|
-
|
88
|
-
/**
|
89
|
-
* Интерфейс стандартизирующий источник данных
|
90
|
-
*/
|
91
|
-
export interface IDocHubDataSetProfile {
|
92
|
-
origin?: DocHubDataSetProfileOrigin;
|
93
|
-
source: DocHubDataSetProfileSource;
|
94
|
-
}
|
95
|
-
|