bx-rest 0.11.0 → 0.11.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.
Files changed (45) hide show
  1. package/README.md +388 -263
  2. package/consts/part-name-methods.d.ts +4 -0
  3. package/esm2022/consts/part-name-methods.mjs +5 -1
  4. package/esm2022/request-navvy/access.mjs +17 -0
  5. package/esm2022/request-navvy/app/option.mjs +26 -0
  6. package/esm2022/request-navvy/app.mjs +10 -2
  7. package/esm2022/request-navvy/event/offline.mjs +61 -0
  8. package/esm2022/request-navvy/event.mjs +69 -0
  9. package/esm2022/request-navvy/feature.mjs +17 -0
  10. package/esm2022/request-navvy/method.mjs +16 -0
  11. package/esm2022/request-navvy/server.mjs +8 -1
  12. package/esm2022/request-navvy/user/option.mjs +26 -0
  13. package/esm2022/request-navvy/user.mjs +20 -2
  14. package/esm2022/rest/navvy.mjs +28 -1
  15. package/esm2022/services/navvy/navvy-pag.mjs +1 -1
  16. package/esm2022/typification/rest/app/info.mjs +1 -1
  17. package/esm2022/typification/rest/app/option.mjs +2 -0
  18. package/esm2022/typification/rest/app.mjs +2 -1
  19. package/esm2022/typification/rest/common.mjs +2 -0
  20. package/esm2022/typification/rest/event.mjs +2 -0
  21. package/esm2022/typification/rest/profile.mjs +1 -1
  22. package/esm2022/typification/rest/user/option.mjs +2 -0
  23. package/esm2022/typification/rest/user.mjs +2 -1
  24. package/fesm2022/bx-rest.mjs +286 -2
  25. package/fesm2022/bx-rest.mjs.map +1 -1
  26. package/package.json +7 -1
  27. package/request-navvy/access.d.ts +12 -0
  28. package/request-navvy/app/option.d.ts +19 -0
  29. package/request-navvy/app.d.ts +9 -1
  30. package/request-navvy/event/offline.d.ts +49 -0
  31. package/request-navvy/event.d.ts +57 -0
  32. package/request-navvy/feature.d.ts +12 -0
  33. package/request-navvy/method.d.ts +11 -0
  34. package/request-navvy/server.d.ts +7 -0
  35. package/request-navvy/user/option.d.ts +20 -0
  36. package/request-navvy/user.d.ts +17 -2
  37. package/rest/navvy.d.ts +26 -0
  38. package/typification/rest/app/info.d.ts +21 -5
  39. package/typification/rest/app/option.d.ts +18 -0
  40. package/typification/rest/app.d.ts +1 -0
  41. package/typification/rest/common.d.ts +56 -0
  42. package/typification/rest/event.d.ts +178 -0
  43. package/typification/rest/profile.d.ts +12 -3
  44. package/typification/rest/user/option.d.ts +16 -0
  45. package/typification/rest/user.d.ts +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bx-rest",
3
- "version": "0.11.0",
3
+ "version": "0.11.2",
4
4
  "description": "Bitrix24 REST API client and TypeScript SDK for Angular, Vue and browser apps",
5
5
  "keywords": [
6
6
  "bitrix",
@@ -68,12 +68,18 @@
68
68
  "./typification/calendar": {
69
69
  "types": "./typification/rest/calendar.d.ts"
70
70
  },
71
+ "./typification/common": {
72
+ "types": "./typification/rest/common.d.ts"
73
+ },
71
74
  "./typification/department": {
72
75
  "types": "./typification/rest/department.d.ts"
73
76
  },
74
77
  "./typification/disk": {
75
78
  "types": "./typification/rest/disk.d.ts"
76
79
  },
80
+ "./typification/event": {
81
+ "types": "./typification/rest/event.d.ts"
82
+ },
77
83
  "./typification/im": {
78
84
  "types": "./typification/rest/im.d.ts"
79
85
  },
@@ -0,0 +1,12 @@
1
+ import { iBXRestAccessNameResult, iBXRestParamAccessName } from '../typification/rest/common';
2
+ /** Получение сведений о кодах доступа (`access.*`). */
3
+ export declare class BXRestNavvyAccess {
4
+ private readonly Navvy;
5
+ /**
6
+ * Возвращает человекочитаемые названия переданных кодов доступа.
7
+ *
8
+ * Например, `{ ACCESS: ['G2', 'AU'] }` вернет описания прав для всех
9
+ * посетителей и всех авторизованных пользователей.
10
+ */
11
+ name(param: iBXRestParamAccessName): import("../services/navvy").NavvySimple<iBXRestAccessNameResult, iBXRestAccessNameResult, iBXRestParamAccessName | undefined>;
12
+ }
@@ -0,0 +1,19 @@
1
+ import { iBXRestOptionGetResult, iBXRestParamAppOptionGet, iBXRestParamAppOptionSet } from '../../typification/rest/app';
2
+ /** Общие настройки текущего приложения (`app.option.*`). */
3
+ export declare class BXRestNavvyAppOption {
4
+ private readonly Navvy;
5
+ /**
6
+ * Сохраняет или обновляет общие настройки приложения.
7
+ *
8
+ * Метод работает только в контексте приложения и требует прав администратора.
9
+ * Пустой объект `options` приводит к ошибке `ArgumentNullException`.
10
+ */
11
+ set(param: iBXRestParamAppOptionSet): import("../../services/navvy").NavvySimple<boolean, boolean, iBXRestParamAppOptionSet | undefined>;
12
+ /**
13
+ * Возвращает одну настройку приложения или все настройки сразу.
14
+ *
15
+ * Если `option` не указан, возвращаются все свойства, сохраненные через
16
+ * `app.option.set`. Метод работает только в контексте приложения.
17
+ */
18
+ get(param?: iBXRestParamAppOptionGet): import("../../services/navvy").NavvySimple<iBXRestOptionGetResult, iBXRestOptionGetResult, iBXRestParamAppOptionGet | undefined>;
19
+ }
@@ -1,8 +1,16 @@
1
1
  import { iBXRestAppInfo, iBXRestAppInfoHttp } from '../typification/rest/app';
2
+ import { BXRestNavvyAppOption } from './app/option';
3
+ /** Информация и общие настройки текущего приложения (`app.*`). */
2
4
  export declare class BXRestNavvyApp {
3
5
  private readonly Navvy;
6
+ /** Общие настройки приложения. */
7
+ readonly option: BXRestNavvyAppOption;
4
8
  /**
5
- * Показ информации о приложении. Метод поддерживает безопасный вызов
9
+ * Возвращает информацию о текущем приложении и лицензии портала.
10
+ *
11
+ * Метод не принимает параметров, работает только в контексте приложения и
12
+ * доступен любому пользователю. Результат содержит код, версию, статус,
13
+ * состояние оплаты и сведения о тарифе.
6
14
  */
7
15
  info(): import("../services/navvy").NavvySimple<iBXRestAppInfoHttp, iBXRestAppInfo, undefined>;
8
16
  }
@@ -0,0 +1,49 @@
1
+ import { iBXRestEventOfflineGetResult, iBXRestEventOfflineListItem, iBXRestParamEventOfflineClear, iBXRestParamEventOfflineError, iBXRestParamEventOfflineGet, iBXRestParamEventOfflineList } from '../../typification/rest/event';
2
+ /** Очередь офлайн-событий (`event.offline.*`). Доступна администраторам. */
3
+ export declare class BXRestNavvyEventOffline {
4
+ private readonly Navvy;
5
+ readonly url: {
6
+ /** Возвращает и удаляет либо резервирует первые записи очереди. */
7
+ get: string[];
8
+ /** Возвращает страницу очереди, не меняя состояние записей. */
9
+ list: string[];
10
+ /** Удаляет обработанные записи зарезервированного пакета. */
11
+ clear: string[];
12
+ /** Помечает записи зарезервированного пакета ошибочными. */
13
+ error: string[];
14
+ };
15
+ /**
16
+ * Возвращает первые записи очереди согласно фильтру.
17
+ *
18
+ * По умолчанию метод удаляет выбранные записи. Передайте `clear: 0`, чтобы
19
+ * зарезервировать их и получить `process_id` для последующего вызова
20
+ * `clear` или `error`. Параллельные запросы получают разные наборы записей.
21
+ *
22
+ * @see https://apidocs.bitrix24.ru/api-reference/events/event-offline-get.html
23
+ */
24
+ get(param?: iBXRestParamEventOfflineGet): import("../../services/navvy").NavvySimple<iBXRestEventOfflineGetResult, iBXRestEventOfflineGetResult, iBXRestParamEventOfflineGet | undefined>;
25
+ /**
26
+ * Читает одну страницу текущей очереди, не меняя состояние записей.
27
+ *
28
+ * Метод не резервирует записи и не формирует `process_id`. Размер страницы
29
+ * фиксирован и равен 50 записям.
30
+ *
31
+ * @see https://apidocs.bitrix24.ru/api-reference/events/event-offline-list.html
32
+ */
33
+ list(param?: iBXRestParamEventOfflineList): import("../../services/navvy").NavvyPag<iBXRestEventOfflineListItem, iBXRestEventOfflineListItem, iBXRestParamEventOfflineList>;
34
+ /**
35
+ * Удаляет обработанные записи зарезервированного пакета.
36
+ *
37
+ * Без `id` и `message_id` удаляет все записи с переданным `process_id`.
38
+ * Если указаны оба массива, `id` имеет приоритет.
39
+ *
40
+ * @see https://apidocs.bitrix24.ru/api-reference/events/event-offline-clear.html
41
+ */
42
+ clear(param: iBXRestParamEventOfflineClear): import("../../services/navvy").NavvySimple<boolean, boolean, iBXRestParamEventOfflineClear | undefined>;
43
+ /**
44
+ * Помечает записи зарезервированного пакета ошибочными.
45
+ *
46
+ * @see https://apidocs.bitrix24.ru/api-reference/events/event-offline-error.html
47
+ */
48
+ error(param: iBXRestParamEventOfflineError): import("../../services/navvy").NavvySimple<boolean, boolean, iBXRestParamEventOfflineError | undefined>;
49
+ }
@@ -0,0 +1,57 @@
1
+ import { iBXRestEventHandler, iBXRestEventUnbindResult, iBXRestParamEventBind, iBXRestParamEventUnbind, iBXRestParamEvents } from '../typification/rest/event';
2
+ import { BXRestNavvyEventOffline } from './event/offline';
3
+ /** Регистрация обработчиков и работа с событиями Битрикс24. */
4
+ export declare class BXRestNavvyEvent {
5
+ private readonly Navvy;
6
+ /** Очередь офлайн-событий. Для вызовов требуются права администратора. */
7
+ readonly offline: BXRestNavvyEventOffline;
8
+ readonly url: {
9
+ /** Регистрирует обработчик события. */
10
+ bind: string[];
11
+ /** Возвращает зарегистрированные обработчики приложения. */
12
+ get: string[];
13
+ /** Удаляет зарегистрированный обработчик. */
14
+ unbind: string[];
15
+ /** Возвращает доступные текущему приложению события. */
16
+ events: string[];
17
+ };
18
+ /**
19
+ * Регистрирует новый обработчик события.
20
+ *
21
+ * Метод работает только в контексте авторизации приложения. URL обработчика
22
+ * должен быть доступен серверам Битрикс24 извне. Пользователь без прав
23
+ * администратора может регистрировать только онлайн-события от своего имени.
24
+ *
25
+ * @see https://apidocs.bitrix24.ru/api-reference/events/event-bind.html
26
+ */
27
+ bind(param: iBXRestParamEventBind): import("../services/navvy").NavvySimple<boolean, boolean, iBXRestParamEventBind | undefined>;
28
+ /**
29
+ * Возвращает список зарегистрированных обработчиков событий.
30
+ *
31
+ * Пользователь без прав администратора получает только обработчики,
32
+ * зарегистрированные для него. Метод работает только в контексте авторизации
33
+ * приложения.
34
+ *
35
+ * @see https://apidocs.bitrix24.ru/api-reference/events/event-get.html
36
+ */
37
+ get(): import("../services/navvy").NavvySimple<iBXRestEventHandler[], iBXRestEventHandler[], undefined>;
38
+ /**
39
+ * Удаляет зарегистрированный обработчик события.
40
+ *
41
+ * Пользователь без прав администратора может удалять только собственные
42
+ * обработчики онлайн-событий.
43
+ *
44
+ * @see https://apidocs.bitrix24.ru/api-reference/events/event-unbind.html
45
+ */
46
+ unbind(param: iBXRestParamEventUnbind): import("../services/navvy").NavvySimple<iBXRestEventUnbindResult, iBXRestEventUnbindResult, iBXRestParamEventUnbind | undefined>;
47
+ /**
48
+ * Возвращает общий список доступных событий.
49
+ *
50
+ * `SCOPE` ограничивает результат указанным разрешением. `FULL: true`
51
+ * запрашивает полный список, но игнорируется при одновременной передаче
52
+ * `SCOPE`.
53
+ *
54
+ * @see https://apidocs.bitrix24.ru/api-reference/events/events.html
55
+ */
56
+ events(param?: iBXRestParamEvents): import("../services/navvy").NavvySimple<string[], string[], iBXRestParamEvents | undefined>;
57
+ }
@@ -0,0 +1,12 @@
1
+ import { iBXRestFeatureAvailability, iBXRestParamFeatureGet } from '../typification/rest/common';
2
+ /** Проверка доступности возможностей портала (`feature.*`). */
3
+ export declare class BXRestNavvyFeature {
4
+ private readonly Navvy;
5
+ /**
6
+ * Проверяет доступность указанной возможности на текущем портале.
7
+ *
8
+ * Поддерживаемые коды: `rest_offline_extended` и `rest_auth_connector`.
9
+ * В поле `value` сервер возвращает `Y` или `N`.
10
+ */
11
+ get(param: iBXRestParamFeatureGet): import("../services/navvy").NavvySimple<iBXRestFeatureAvailability, iBXRestFeatureAvailability, iBXRestParamFeatureGet | undefined>;
12
+ }
@@ -0,0 +1,11 @@
1
+ import { iBXRestMethodAvailability, iBXRestParamMethodGet } from '../typification/rest/common';
2
+ /** Проверка существования и доступности REST-методов (`method.*`). */
3
+ export declare class BXRestNavvyMethod {
4
+ private readonly Navvy;
5
+ /**
6
+ * Проверяет, существует ли метод на портале и доступен ли он приложению.
7
+ *
8
+ * Передавайте имя метода в нижнем регистре, например `{ name: 'user.get' }`.
9
+ */
10
+ get(param: iBXRestParamMethodGet): import("../services/navvy").NavvySimple<iBXRestMethodAvailability, iBXRestMethodAvailability, iBXRestParamMethodGet | undefined>;
11
+ }
@@ -3,5 +3,12 @@ export declare class BXRestNavvyServer {
3
3
  time: string[];
4
4
  };
5
5
  private readonly Navvy;
6
+ /**
7
+ * Возвращает текущее время сервера как объект `Date`.
8
+ *
9
+ * Исходный ответ REST API имеет формат ISO 8601
10
+ * `YYYY-MM-DDThh:mm:ss±hh:mm`; получить его без преобразования можно через
11
+ * `resVanilla()` у возвращаемого навигатора.
12
+ */
6
13
  time(): import("../services/navvy").NavvySimple<string, Date, undefined>;
7
14
  }
@@ -0,0 +1,20 @@
1
+ import { iBXRestOptionGetResult } from '../../typification/rest/app';
2
+ import { iBXRestParamUserOptionGet, iBXRestParamUserOptionSet } from '../../typification/rest/user';
3
+ /** Персональные настройки текущего пользователя (`user.option.*`). */
4
+ export declare class BXRestNavvyUserOption {
5
+ private readonly Navvy;
6
+ /**
7
+ * Сохраняет или обновляет настройки текущего пользователя для приложения.
8
+ *
9
+ * Метод работает только в контексте приложения. Пустой объект `options`
10
+ * приводит к ошибке `ArgumentNullException`.
11
+ */
12
+ set(param: iBXRestParamUserOptionSet): import("../../services/navvy").NavvySimple<boolean, boolean, iBXRestParamUserOptionSet | undefined>;
13
+ /**
14
+ * Возвращает одну пользовательскую настройку или все настройки сразу.
15
+ *
16
+ * Если `option` не указан, возвращаются все свойства, сохраненные через
17
+ * `user.option.set`. Метод работает только в контексте приложения.
18
+ */
19
+ get(param?: iBXRestParamUserOptionGet): import("../../services/navvy").NavvySimple<iBXRestOptionGetResult, iBXRestOptionGetResult, iBXRestParamUserOptionGet | undefined>;
20
+ }
@@ -1,5 +1,6 @@
1
- import { iBXRestParamUserGet, iBXRestParamUserSearch, iBXRestUser, iBXRestUserHttp, iBXRestUserHttpField } from '../typification/rest/user';
1
+ import { iBXRestParamUserGet, iBXRestParamUserAccess, iBXRestParamUserSearch, iBXRestUser, iBXRestUserHttp, iBXRestUserHttpField } from '../typification/rest/user';
2
2
  import { BXRestNavvyUserUserfield } from './user/userfield';
3
+ import { BXRestNavvyUserOption } from './user/option';
3
4
  export declare class BXRestNavvyUser {
4
5
  def: {
5
6
  params: {
@@ -17,12 +18,26 @@ export declare class BXRestNavvyUser {
17
18
  fields: string[];
18
19
  };
19
20
  readonly userField: BXRestNavvyUserUserfield;
21
+ /** Персональные настройки текущего пользователя для приложения. */
22
+ readonly option: BXRestNavvyUserOption;
20
23
  private readonly Navvy;
24
+ /**
25
+ * Проверяет, может ли текущий пользователь управлять настройками приложений.
26
+ *
27
+ * Возвращает `true` для пользователя с соответствующими административными
28
+ * правами и `false` в остальных случаях.
29
+ */
21
30
  admin(): import("../services/navvy").NavvySimple<boolean, boolean, undefined>;
22
31
  get(params?: iBXRestParamUserGet): import("../services/navvy").NavvyPag<iBXRestUserHttp, iBXRestUser, iBXRestParamUserGet>;
23
32
  current(): import("../services/navvy").NavvySimple<iBXRestUserHttp, iBXRestUser, undefined>;
24
33
  search(params: iBXRestParamUserSearch): import("../services/navvy").NavvyPag<iBXRestUserHttp, iBXRestUser, iBXRestParamUserSearch>;
25
- access(params: string[]): import("../services/navvy").NavvySimple<boolean, boolean, string[] | undefined>;
34
+ /**
35
+ * Проверяет наличие хотя бы одного из указанных кодов доступа.
36
+ *
37
+ * Для обратной совместимости можно передать как объект
38
+ * `{ ACCESS: ['G2', 'AU'] }`, так и непосредственно массив кодов.
39
+ */
40
+ access(params: iBXRestParamUserAccess | string[]): import("../services/navvy").NavvySimple<boolean, boolean, iBXRestParamUserAccess | undefined>;
26
41
  fields(): import("../services/navvy").NavvySimple<iBXRestUserHttpField, iBXRestUserHttpField, undefined>;
27
42
  private setDefParam;
28
43
  }
package/rest/navvy.d.ts CHANGED
@@ -16,7 +16,12 @@ import { BXRestNavvyTimeMan } from '../request-navvy/timeman';
16
16
  import { BXRestNavvySocialNetWork } from '../request-navvy/socialnetwork';
17
17
  import { BXRestNavvyPull } from '../request-navvy/pull';
18
18
  import { BXRestNavvyCrm } from '../request-navvy/crm';
19
+ import { BXRestNavvyEvent } from '../request-navvy/event';
19
20
  import { iBXRestProfile, iBXRestProfileHttp } from '../typification/rest/profile';
21
+ import { BXRestNavvyMethod } from '../request-navvy/method';
22
+ import { BXRestNavvyAccess } from '../request-navvy/access';
23
+ import { BXRestNavvyFeature } from '../request-navvy/feature';
24
+ import { iBXRestParamScope } from '../typification/rest/common';
20
25
  export declare class BXRestNavvy {
21
26
  readonly user: BXRestNavvyUser;
22
27
  readonly lists: BXRestNavvyLists;
@@ -35,6 +40,27 @@ export declare class BXRestNavvy {
35
40
  readonly socialNetWork: BXRestNavvySocialNetWork;
36
41
  readonly pull: BXRestNavvyPull;
37
42
  readonly crm: BXRestNavvyCrm;
43
+ /** Регистрация обработчиков и работа с онлайн- и офлайн-событиями. */
44
+ readonly event: BXRestNavvyEvent;
45
+ /** Проверка существования и доступности REST-методов. */
46
+ readonly method: BXRestNavvyMethod;
47
+ /** Получение описаний кодов доступа. */
48
+ readonly access: BXRestNavvyAccess;
49
+ /** Проверка доступности возможностей портала. */
50
+ readonly feature: BXRestNavvyFeature;
38
51
  readonly Navvy: Navvy;
52
+ /**
53
+ * Возвращает базовую информацию о текущем пользователе без scope `user`.
54
+ *
55
+ * Результат содержит идентификатор, имя, фамилию, признак администратора,
56
+ * пол, часовой пояс и связанные поля профиля.
57
+ */
39
58
  profile(): import("../services/navvy").NavvySimple<iBXRestProfileHttp, iBXRestProfile, undefined>;
59
+ /**
60
+ * Возвращает разрешения текущего приложения.
61
+ *
62
+ * Передайте `{ full: true }`, чтобы запросить полный список разрешений
63
+ * портала. Без параметров возвращаются разрешения, доступные приложению.
64
+ */
65
+ scope(param?: iBXRestParamScope): import("../services/navvy").NavvySimple<string[], string[], iBXRestParamScope | undefined>;
40
66
  }
@@ -1,17 +1,33 @@
1
1
  import { iBXRestYesNo } from '../base/yes-no';
2
2
  export interface iBXRestAppInfo extends iBXRestAppInfoBase {
3
+ /** Локальный идентификатор приложения на портале. */
3
4
  ID: number;
5
+ /** Истек ли оплаченный или пробный период. */
4
6
  PAYMENT_EXPIRED: boolean;
5
7
  }
6
8
  export interface iBXRestAppInfoHttp extends iBXRestAppInfoBase {
7
- ID: string;
9
+ /** Локальный идентификатор приложения в исходном формате REST API. */
10
+ ID: string | number;
11
+ /** Признак окончания оплаченного или пробного периода. */
8
12
  PAYMENT_EXPIRED: iBXRestYesNo;
9
13
  }
10
14
  export interface iBXRestAppInfoBase {
11
- VERSION: 1;
15
+ /** Код приложения. */
16
+ CODE: string;
17
+ /** Установленная версия приложения. */
18
+ VERSION: number;
19
+ /** Статус: бесплатное, демо, пробное, платное, локальное или подписное. */
12
20
  STATUS: 'F' | 'D' | 'T' | 'P' | 'L' | 'S';
21
+ /** Завершена ли установка приложения. */
13
22
  INSTALLED: boolean;
14
- DAYS: null;
15
- LICENSE: // Обозначение тарифа с указанием региона в виде префикса.Состоит из базового языка портала и идентификатора тарифного плана. В случае с тарифами, состав которых менялся при сохранении публичного наименования (как CRM+, Команда и Компания), понять, какой именно тариф действует по этому полю нельзя. Примеры вариантов значений:
16
- 'ru_project' | 'ru_basic' | 'ru_std' | 'ru_pro100' | 'ru_ent250' | 'ru_ent500' | 'ru_ent1000' | 'ru_ent2000' | 'ru_ent10000';
23
+ /** Количество дней до конца оплаченного или пробного периода. */
24
+ DAYS: number | null;
25
+ /** Базовый язык портала. */
26
+ LANGUAGE_ID: string;
27
+ /** Тариф с региональным префиксом, например `ru_ent10000`. */
28
+ LICENSE: string;
29
+ /** Идентификатор тарифного плана без регионального префикса. */
30
+ LICENSE_TYPE: string;
31
+ /** Семейство тарифного плана. */
32
+ LICENSE_FAMILY: string;
17
33
  }
@@ -0,0 +1,18 @@
1
+ /** Значение, которое можно сохранить в настройках приложения. */
2
+ export type iBXRestOptionValue = string | number | boolean | null | iBXRestOptionValue[] | {
3
+ [key: string]: iBXRestOptionValue;
4
+ };
5
+ /** Набор именованных настроек приложения или пользователя. */
6
+ export type iBXRestOptionValues = Record<string, iBXRestOptionValue>;
7
+ /** Параметры `app.option.set`. */
8
+ export interface iBXRestParamAppOptionSet {
9
+ /** Настройки: ключ — имя свойства, значение — сохраняемые данные. */
10
+ options: iBXRestOptionValues;
11
+ }
12
+ /** Параметры `app.option.get`. */
13
+ export interface iBXRestParamAppOptionGet {
14
+ /** Имя свойства. Если не указано, метод вернет все настройки приложения. */
15
+ option?: string;
16
+ }
17
+ /** Результат чтения одной настройки или всего набора настроек. */
18
+ export type iBXRestOptionGetResult = iBXRestOptionValue | iBXRestOptionValues;
@@ -2,3 +2,4 @@
2
2
  * Файл для возможности импорта интерфейсов данного пакета в локальные проекты
3
3
  */
4
4
  export * from './app/info';
5
+ export * from './app/option';
@@ -0,0 +1,56 @@
1
+ /** Параметры проверки REST-метода через `method.get`. */
2
+ export interface iBXRestParamMethodGet {
3
+ /** Имя метода в нижнем регистре, например `user.get`. */
4
+ name: string;
5
+ }
6
+ /** Результат проверки REST-метода через `method.get`. */
7
+ export interface iBXRestMethodAvailability {
8
+ /** Метод существует на портале. */
9
+ isExisting: boolean;
10
+ /** Метод доступен с текущими разрешениями приложения. */
11
+ isAvailable: boolean;
12
+ }
13
+ /** Параметры получения разрешений через `scope`. */
14
+ export interface iBXRestParamScope {
15
+ /** Вернуть полный список разрешений портала, а не только разрешения приложения. */
16
+ full?: boolean;
17
+ }
18
+ /** Параметры получения названий кодов доступа через `access.name`. */
19
+ export interface iBXRestParamAccessName {
20
+ /** Коды доступа, например `G2` и `AU`. */
21
+ ACCESS: string[];
22
+ }
23
+ /** Описание кода доступа, возвращаемое методом `access.name`. */
24
+ export interface iBXRestAccessDescription {
25
+ /** Название поставщика права. */
26
+ provider: string;
27
+ /** Человекочитаемое название права. */
28
+ name: string;
29
+ /** Идентификатор поставщика права. */
30
+ provider_id: string;
31
+ }
32
+ /** Результат `access.name`, индексированный исходными кодами доступа. */
33
+ export type iBXRestAccessNameResult = Record<string, iBXRestAccessDescription>;
34
+ /** Поддерживаемые документацией коды `feature.get`. */
35
+ export type iBXRestFeatureCode =
36
+ /** Доступность офлайн-событий. */
37
+ 'rest_offline_extended'
38
+ /** Доступность ключа `auth_connector` в событиях. */
39
+ | 'rest_auth_connector';
40
+ /** Параметры проверки функционала через `feature.get`. */
41
+ export interface iBXRestParamFeatureGet {
42
+ /** Код проверяемой возможности портала. */
43
+ CODE: iBXRestFeatureCode;
44
+ }
45
+ /** Основной результат проверки функционала через `feature.get`. */
46
+ export interface iBXRestFeatureAvailabilityBase {
47
+ /** Признак наличия функционала: `Y` — доступен, `N` — недоступен. */
48
+ value: 'Y' | 'N';
49
+ }
50
+ /**
51
+ * Результат проверки функционала через `feature.get`.
52
+ *
53
+ * Коробочная версия может дополнительно вернуть языковой флаг, например
54
+ * `ru_selfhosted`; `lang` в документации заменяется кодом языка портала.
55
+ */
56
+ export type iBXRestFeatureAvailability = iBXRestFeatureAvailabilityBase & Partial<Record<`${string}_selfhosted`, 'Y' | 'N'>>;
@@ -0,0 +1,178 @@
1
+ import { iBXRestPagination } from './base/api-pagination-bx';
2
+ import { iBXRestFilterKeys } from './base/filter-generator';
3
+ /** Режим доставки события. */
4
+ export type iBXRestEventType = 'online' | 'offline';
5
+ /** Дополнительные настройки обработчика события. */
6
+ export interface iBXRestEventBindOptions {
7
+ /**
8
+ * Минимальный интервал между уведомлениями `ONOFFLINEEVENT` в секундах.
9
+ *
10
+ * Если не указан, Битрикс24 использует интервал в одну секунду.
11
+ */
12
+ minTimeout?: number;
13
+ /** Дополнительные настройки, поддерживаемые конкретным событием. */
14
+ [key: string]: unknown;
15
+ }
16
+ /** Параметры `event.bind`. */
17
+ export interface iBXRestParamEventBind {
18
+ /** Имя события, например `ONCRMLEADADD`. */
19
+ event: string;
20
+ /** Внешний URL обработчика, доступный серверам Битрикс24. */
21
+ handler: string;
22
+ /**
23
+ * Идентификатор пользователя, под которым авторизуется обработчик.
24
+ *
25
+ * Если не указан, используется авторизация пользователя, действие которого
26
+ * привело к событию.
27
+ */
28
+ auth_type?: number;
29
+ /** Режим доставки. По умолчанию — `online`. */
30
+ event_type?: iBXRestEventType;
31
+ /**
32
+ * Ключ источника для офлайн-событий.
33
+ *
34
+ * Позволяет разделять очередь по источникам и исключать ложные срабатывания.
35
+ */
36
+ auth_connector?: string;
37
+ /** Дополнительные настройки регистрируемого события. */
38
+ options?: iBXRestEventBindOptions;
39
+ }
40
+ /** Зарегистрированный обработчик, возвращаемый `event.get`. */
41
+ export interface iBXRestEventHandler {
42
+ /** Имя события. */
43
+ event: string;
44
+ /** URL обработчика. */
45
+ handler: string;
46
+ /** Идентификатор пользователя авторизации в исходном формате REST API. */
47
+ auth_type: string;
48
+ /** Признак офлайн-обработчика: `1` — офлайн, `0` — онлайн. */
49
+ offline: 0 | 1;
50
+ }
51
+ /** Параметры `event.unbind`. */
52
+ export interface iBXRestParamEventUnbind {
53
+ /** Имя события. */
54
+ event: string;
55
+ /** URL обработчика события. */
56
+ handler: string;
57
+ /**
58
+ * Идентификатор пользователя авторизации.
59
+ *
60
+ * Передайте `0`, чтобы удалить обработчики с пустым `auth_type`, не затрагивая
61
+ * обработчики, зарегистрированные для конкретных пользователей.
62
+ */
63
+ auth_type?: number;
64
+ /** Режим доставки. По умолчанию — `online`. */
65
+ event_type?: iBXRestEventType;
66
+ }
67
+ /** Результат удаления обработчиков методом `event.unbind`. */
68
+ export interface iBXRestEventUnbindResult {
69
+ /** Количество удаленных обработчиков. */
70
+ count: number;
71
+ }
72
+ /** Параметры получения общего списка доступных событий методом `events`. */
73
+ export interface iBXRestParamEvents {
74
+ /** Разрешение, которому должны принадлежать возвращаемые события. */
75
+ SCOPE?: string;
76
+ /**
77
+ * Вернуть полный список событий.
78
+ *
79
+ * Игнорируется, если одновременно передан `SCOPE`.
80
+ */
81
+ FULL?: boolean;
82
+ }
83
+ /** Поле записи очереди, доступное для фильтрации и сортировки. */
84
+ export type iBXRestEventOfflineField = 'ID' | 'TIMESTAMP_X' | 'EVENT_NAME' | 'MESSAGE_ID' | 'PROCESS_ID' | 'ERROR';
85
+ /** Значение фильтра очереди офлайн-событий. */
86
+ export type iBXRestEventOfflineFilterValue = string | number | boolean | (string | number | boolean)[];
87
+ /**
88
+ * Фильтр очереди офлайн-событий.
89
+ *
90
+ * Операция указывается перед именем поля, например `=EVENT_NAME` или `>=ID`.
91
+ */
92
+ export type iBXRestEventOfflineFilter = Partial<Record<`${iBXRestFilterKeys}${iBXRestEventOfflineField}`, iBXRestEventOfflineFilterValue>>;
93
+ /** Направление сортировки очереди офлайн-событий. */
94
+ export type iBXRestEventOfflineSortOrder = 'ASC' | 'DESC';
95
+ /** Сортировка очереди офлайн-событий. */
96
+ export type iBXRestEventOfflineOrder = Partial<Record<iBXRestEventOfflineField, iBXRestEventOfflineSortOrder>>;
97
+ /** Общие параметры выборки очереди офлайн-событий. */
98
+ export interface iBXRestParamEventOfflineSelection {
99
+ /** Фильтр по полям записи очереди. */
100
+ filter?: iBXRestEventOfflineFilter;
101
+ /** Сортировка по полям записи очереди. */
102
+ order?: iBXRestEventOfflineOrder;
103
+ /**
104
+ * Ключ источника.
105
+ *
106
+ * Должен совпадать с `auth_connector`, переданным при подписке через
107
+ * `event.bind`.
108
+ */
109
+ auth_connector?: string;
110
+ }
111
+ /** Параметры `event.offline.get`. */
112
+ export interface iBXRestParamEventOfflineGet extends iBXRestParamEventOfflineSelection {
113
+ /** Максимальное количество записей. По умолчанию — `50`. */
114
+ limit?: number;
115
+ /** Удалять выбранные записи: `1` — да, `0` — зарезервировать. По умолчанию — `1`. */
116
+ clear?: 0 | 1;
117
+ /** Идентификатор процесса для повторного получения необработанных им записей. */
118
+ process_id?: string;
119
+ /** Возвращать записи, помеченные ошибочными. По умолчанию — `0`. */
120
+ error?: 0 | 1;
121
+ }
122
+ /** Параметры `event.offline.list`. */
123
+ export interface iBXRestParamEventOfflineList extends iBXRestParamEventOfflineSelection, iBXRestPagination {
124
+ }
125
+ /** Запись очереди офлайн-событий. */
126
+ export interface iBXRestEventOfflineItem {
127
+ /** Идентификатор записи. */
128
+ ID: string;
129
+ /** Дата и время создания записи в формате ISO 8601. */
130
+ TIMESTAMP_X: string;
131
+ /** Имя события. */
132
+ EVENT_NAME: string;
133
+ /** Данные события в исходном формате REST API. */
134
+ EVENT_DATA: unknown;
135
+ /** Дополнительные данные события в исходном формате REST API. */
136
+ EVENT_ADDITIONAL: unknown;
137
+ /** Идентификатор сообщения. */
138
+ MESSAGE_ID: string;
139
+ }
140
+ /** Запись, возвращаемая методом `event.offline.list`. */
141
+ export interface iBXRestEventOfflineListItem extends iBXRestEventOfflineItem {
142
+ /** Идентификатор процесса, зарезервировавшего запись; пустая строка, если запись свободна. */
143
+ PROCESS_ID: string;
144
+ /** Признак ошибки обработки в исходном формате REST API. */
145
+ ERROR: '0' | '1';
146
+ }
147
+ /** Результат `event.offline.get`. */
148
+ export interface iBXRestEventOfflineGetResult {
149
+ /**
150
+ * Идентификатор зарезервированного пакета.
151
+ *
152
+ * Возвращается при `clear: 0`; при немедленной очистке имеет значение `null`.
153
+ */
154
+ process_id: string | null;
155
+ /** Выбранные записи очереди. */
156
+ events: iBXRestEventOfflineItem[];
157
+ }
158
+ /** Параметры `event.offline.clear`. */
159
+ export interface iBXRestParamEventOfflineClear {
160
+ /** Идентификатор пакета, полученный от `event.offline.get` при `clear: 0`. */
161
+ process_id: string;
162
+ /**
163
+ * Идентификаторы записей для удаления.
164
+ *
165
+ * Если не указаны, удаляются все записи пакета. Имеют приоритет над
166
+ * `message_id`.
167
+ */
168
+ id?: (string | number)[];
169
+ /** Значения `MESSAGE_ID` удаляемых записей. */
170
+ message_id?: (string | number)[];
171
+ }
172
+ /** Параметры `event.offline.error`. */
173
+ export interface iBXRestParamEventOfflineError {
174
+ /** Идентификатор процесса, обрабатывающего записи. */
175
+ process_id: string;
176
+ /** Значения `MESSAGE_ID` записей, которые нужно пометить ошибочными. */
177
+ message_id?: (string | number)[];
178
+ }