dochub-sdk 0.1.389 → 0.1.390

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
@@ -27,7 +27,7 @@ export * from './interfaces/libraries';
27
27
  export * from './interfaces/shared';
28
28
 
29
29
  export * from './schemas/basetypes';
30
- export * from './schemas/formats';
30
+ export * from './schemas/fields/suggester';
31
31
  export * from './schemas/dochub-yaml';
32
32
  export * from './schemas/schema';
33
33
 
@@ -2,7 +2,7 @@ import { IProtocolResponseOptions, IDocHubProtocolResponse, IDocHubResourceVersi
2
2
  import { DocHubDataSetProfileSource, DocHubJSONataQuery, IDocHubDataSetProfile } from './jsonata';
3
3
  import { DocHubUITargetWindow } from './ui';
4
4
  import { DocHubJSONSchema } from '../schemas/basetypes';
5
- import { DocHubJSONSchemaFormat, DocHubJSONSchemaFormatCollection, DocHubJSONSchemaFormatController } from '../schemas/formats';
5
+ import { DocHubJSONSchemaFormat, DocHubJSONSchemaFormatCollection, DocHubJSONSchemaFormatController } from '../schemas/fields/suggester';
6
6
  import { IDocHubDataLakeSchema } from '../schemas/schema';
7
7
 
8
8
  export enum DataLakeChange {
@@ -66,7 +66,7 @@ export type DocHubResourceMetaFile = {
66
66
  export type DocHubResourceMetaFolder = {
67
67
  type: DocHubResourceType.folder;
68
68
  uri: string;
69
- files?: DocHubResourceMetaFile[] // Если undefined - статус содержания файлов не определен
69
+ files?: DocHubResourceMetaFile[] | DocHubResourceMetaFolder[] // Если undefined - статус содержания файлов не определен
70
70
  }
71
71
 
72
72
  /**
@@ -75,7 +75,7 @@ export type DocHubResourceMetaFolder = {
75
75
  export type DocHubResourceMetaBranch = {
76
76
  type: DocHubResourceType.branch,
77
77
  uri: string;
78
- files?: DocHubResourceMetaFile[] // Если undefined - статус содержания файлов не определен
78
+ files?: DocHubResourceMetaFile[] | DocHubResourceMetaFolder[] // Если undefined - статус содержания файлов не определен
79
79
  }
80
80
 
81
81
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dochub-sdk",
3
- "version": "0.1.389",
3
+ "version": "0.1.390",
4
4
  "description": "The DocHub System Development Kit.",
5
5
  "private": false,
6
6
  "main": "index.ts",
@@ -0,0 +1,70 @@
1
+ import { DocHubJSONSchema } from "../basetypes";
2
+
3
+ /**
4
+ * Идентификатор применяемого подсказчика
5
+ */
6
+ export type DocHubJSONSchemaSuggesterID = string;
7
+
8
+ /**
9
+ * Структура подсказки
10
+ */
11
+ export interface DocHubJSONSchemaSuggest {
12
+ // Отображаемая подсказка
13
+ label: string;
14
+ // Значение, которое будет применено. Если не указано, то label
15
+ apply?: string;
16
+ // Детальное описание для выбора подсказки
17
+ detail?: string;
18
+ }
19
+
20
+ /**
21
+ * Метод получения следующей порции подсказок
22
+ * @param limit - лимит на количество подсказок
23
+ */
24
+ export type DocHubJSONSchemaSuggestFetch = (limit?: number) => Promise<DocHubJSONSchemaSuggests>;
25
+
26
+ /**
27
+ * Список подсказок.
28
+ * Если элемент списка является функцией, это является промисом на вставку элементов списка при ее вызове
29
+ */
30
+ export type DocHubJSONSchemaSuggests = (DocHubJSONSchemaSuggest | DocHubJSONSchemaSuggestFetch)[];
31
+
32
+ export interface DocHubJSONSchemaSuggestControllerParams {
33
+ // Значение
34
+ value: any;
35
+ // Схема, которая применяется к значению
36
+ valueSchema: DocHubJSONSchema;
37
+ // URI ресурса, который редактируется
38
+ uri?: string;
39
+ // Контекст в котором происходит валидация значения
40
+ context?: any;
41
+ // Схема контекста
42
+ contextSchema?: DocHubJSONSchema;
43
+ }
44
+
45
+ /**
46
+ * Интерфейс для кастомного формата
47
+ */
48
+ export interface DocHubJSONSchemaSuggestController {
49
+ /**
50
+ * Возвращает список подсказок в виде списка
51
+ * @param params - параметры для выбора
52
+ * @returns - список подсказок
53
+ */
54
+ suggests(params: DocHubJSONSchemaSuggestControllerParams): Promise<DocHubJSONSchemaSuggests>;
55
+ /**
56
+ * Если метод определен, его вызов должен открыть специальный UI,
57
+ * который позволит пользователю осуществить корректный ввод или выбор значения
58
+ * @param params - параметры для выбора
59
+ * @returns - значение для заполнения поля
60
+ */
61
+ input?: (params: DocHubJSONSchemaSuggestControllerParams) => Promise<any>;
62
+ }
63
+
64
+ /**
65
+ * Коллекция форматов
66
+ */
67
+ export interface DocHubJSONSchemaSuggesterCollection {
68
+ [id: DocHubJSONSchemaSuggesterID]: DocHubJSONSchemaSuggestController;
69
+ }
70
+
package/schemas/schema.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { DocHubJSONSchema } from "./basetypes";
2
2
  import {
3
- DocHubJSONSchemaFormat,
4
- DocHubJSONSchemaFormatCollection,
5
- DocHubJSONSchemaFormatController
6
- } from "./formats";
3
+ DocHubJSONSchemaSuggestController,
4
+ DocHubJSONSchemaSuggesterCollection,
5
+ DocHubJSONSchemaSuggesterID
6
+ } from "./fields/suggester";
7
7
 
8
8
  /**
9
9
  * Схема данных DataLake
@@ -16,14 +16,18 @@ export interface IDocHubDataLakeSchema {
16
16
  fetch(): Promise<DocHubJSONSchema>;
17
17
 
18
18
  /**
19
- * Регистрирует кастомный формат для валидации JSONSchema и реализации подсказок в редакторах
19
+ * Регистрирует кастомный подсказчик для JSONSchema
20
20
  * @param format - Идентификатор формата
21
21
  * @param controller - Контроллер обрабатывающий запросы к формату
22
22
  */
23
- registerSchemaFormat(format: DocHubJSONSchemaFormat, controller: DocHubJSONSchemaFormatController);
23
+ registerSuggester(suggester: DocHubJSONSchemaSuggesterID, controller: DocHubJSONSchemaSuggestController);
24
24
 
25
25
  /**
26
- * Возвращает коллекцию доступных форматов
26
+ * Возвращает список доступных подсказчиков
27
27
  */
28
- fetchSchemaFormats(): Promise<DocHubJSONSchemaFormatCollection>;
28
+ fetchSuggesters(): Promise<DocHubJSONSchemaSuggesterID[]>;
29
+ /**
30
+ * Возвращает контроллер подсказчика
31
+ */
32
+ getSuggester(suggesterId: DocHubJSONSchemaSuggesterID): Promise<DocHubJSONSchemaSuggestController>;
29
33
  }
@@ -1,80 +0,0 @@
1
- import { DocHubJSONSchema } from "./basetypes";
2
-
3
- /**
4
- * Идентификатор применяемого формата
5
- */
6
- export type DocHubJSONSchemaFormat = string;
7
-
8
- /**
9
- * Идентификатор подсказки
10
- */
11
- export type DocHubJSONSchemaFormatSuggestId = string;
12
-
13
- /**
14
- * Структура подсказки
15
- */
16
- export interface DocHubJSONSchemaFormatSuggest {
17
- // Идентификатор
18
- id: DocHubJSONSchemaFormatSuggestId;
19
- // Значение, которое будет вставлено в структуру, при выборе подсказки
20
- value: any;
21
- // Краткое название для вывода в списке. Если поля нет, берется value
22
- title?: string;
23
- // Описание элемента подсказки
24
- description?: string;
25
- }
26
-
27
- /**
28
- * Метод получения следующей порции подсказок
29
- * @param limit - лимит на количество подсказок
30
- */
31
- export type DocHubJSONSchemaFormatSuggestFetch = (limit?: number) => Promise<DocHubJSONSchemaFormatSuggests>;
32
-
33
- /**
34
- * Список подсказок.
35
- * Если элемент списка является функцией, это является промисом на вставку элементов списка при ее вызове
36
- */
37
- export type DocHubJSONSchemaFormatSuggests = (DocHubJSONSchemaFormatSuggest | DocHubJSONSchemaFormatSuggestFetch)[];
38
-
39
- export interface DocHubJSONSchemaFormatControllerParams {
40
- // Значение
41
- value: any;
42
- // Схема, которая применяется к значению
43
- valueSchema: DocHubJSONSchema;
44
- // Контекст в котором происходит валидация значения
45
- context?: any;
46
- // Схема контекста
47
- contextSchema?: DocHubJSONSchema;
48
- }
49
-
50
- /**
51
- * Интерфейс для кастомного формата
52
- */
53
- export interface DocHubJSONSchemaFormatController {
54
- /**
55
- * Валидатор значения
56
- * @returns - true если все в порядке, иначе false
57
- */
58
- validate(params: DocHubJSONSchemaFormatControllerParams): Promise<boolean>;
59
- /**
60
- * Возвращает список простых подсказок в виде списка
61
- * @param params - параметры для выбора
62
- * @returns - список подсказок
63
- */
64
- suggests?: (params: DocHubJSONSchemaFormatControllerParams) => Promise<DocHubJSONSchemaFormatSuggests>;
65
- /**
66
- * Если метод определен, его вызов должен открыть специальный UI,
67
- * который позволит пользователю осуществить корректный ввод или выбор значения
68
- * @param params - параметры для выбора
69
- * @returns - значение для заполнения поля
70
- */
71
- input?: (params: DocHubJSONSchemaFormatControllerParams) => Promise<any>;
72
- }
73
-
74
- /**
75
- * Коллекция форматов
76
- */
77
- export interface DocHubJSONSchemaFormatCollection {
78
- [id: DocHubJSONSchemaFormat]: DocHubJSONSchemaFormatController;
79
- }
80
-