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.
@@ -12,6 +12,7 @@
12
12
  "datalake",
13
13
  "eventbus",
14
14
  "GPLV",
15
+ "jsonata",
15
16
  "localstorage",
16
17
  "metamodel",
17
18
  "Nata",
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/datasets';
22
+ export * from './interfaces/jsonata';
23
23
  export * from './metamodel/index';
24
24
  export * from './interfaces/ai';
25
25
  export * from './interfaces/explainer';
@@ -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 - Версия ядра в формате *.*.*
@@ -1,5 +1,5 @@
1
1
  import { IProtocolResponseOptions, IDocHubProtocolResponse, IDocHubResourceVersion } from './protocols';
2
- import { DocHubDataSetProfileSource, DocHubJSONataQuery, IDocHubDataSetProfile } from './datasets';
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
+
@@ -1,4 +1,4 @@
1
- import { DocHubDataSetProfileSource, IDocHubDataSetProfile } from './datasets';
1
+ import { DocHubDataSetProfileSource, IDocHubDataSetProfile } from './jsonata';
2
2
  import { DataLakePath } from './datalake';
3
3
  import { DocHubJSONSchema } from './../schemas/basetypes';
4
4
 
@@ -1,4 +1,4 @@
1
- import { DocHubJSONataQuery } from '../interfaces/datasets';
1
+ import { DocHubJSONataQuery } from '../interfaces/;
2
2
  import {
3
3
  DocHubJSONSchema
4
4
  } from '../schemas/basetypes';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dochub-sdk",
3
- "version": "0.1.365",
3
+ "version": "0.1.367",
4
4
  "description": "The DocHub System Development Kit.",
5
5
  "private": false,
6
6
  "main": "index.ts",
@@ -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
- building?: {
52
- // Момент сборки
53
- moment: number;
54
- // Коммит
55
- commit: string;
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
  }
@@ -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
-