@weavix/sdk-core 0.0.1 → 0.0.3

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 (42) hide show
  1. package/README.md +22 -35
  2. package/dist/bridge/bridge.d.ts +24 -0
  3. package/dist/bridge/bridge.d.ts.map +1 -0
  4. package/dist/bridge/types/BaseMessage.d.ts +4 -0
  5. package/dist/bridge/types/BaseMessage.d.ts.map +1 -0
  6. package/dist/bridge/types/ErrorCodes.d.ts +19 -0
  7. package/dist/bridge/types/ErrorCodes.d.ts.map +1 -0
  8. package/dist/bridge/types/PluginActionError.d.ts +6 -0
  9. package/dist/bridge/types/PluginActionError.d.ts.map +1 -0
  10. package/dist/bridge/types/UiContract.d.ts +35 -0
  11. package/dist/bridge/types/UiContract.d.ts.map +1 -0
  12. package/dist/common/types/Theme.d.ts +2 -0
  13. package/dist/common/types/Theme.d.ts.map +1 -0
  14. package/dist/events/eventBus.d.ts +38 -0
  15. package/dist/events/eventBus.d.ts.map +1 -0
  16. package/dist/events/types.d.ts +46 -0
  17. package/dist/events/types.d.ts.map +1 -0
  18. package/dist/handlers/handlers.d.ts +12 -0
  19. package/dist/handlers/handlers.d.ts.map +1 -0
  20. package/dist/host/hostApi.d.ts +50 -0
  21. package/dist/host/hostApi.d.ts.map +1 -0
  22. package/dist/host/types/ContentSizeUpdateRequest.d.ts +7 -0
  23. package/dist/host/types/ContentSizeUpdateRequest.d.ts.map +1 -0
  24. package/dist/host/types/NavigateRequest.d.ts +11 -0
  25. package/dist/host/types/NavigateRequest.d.ts.map +1 -0
  26. package/dist/host/utils/autoResize.d.ts +15 -0
  27. package/dist/host/utils/autoResize.d.ts.map +1 -0
  28. package/dist/index.d.ts +24 -518
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.mjs +103 -123
  31. package/dist/index.mjs.map +1 -1
  32. package/dist/ui/Confirm.d.ts +14 -0
  33. package/dist/ui/Confirm.d.ts.map +1 -0
  34. package/dist/ui/Toaster.d.ts +24 -0
  35. package/dist/ui/Toaster.d.ts.map +1 -0
  36. package/dist/ui/uiApi.d.ts +11 -0
  37. package/dist/ui/uiApi.d.ts.map +1 -0
  38. package/dist/utils/getField.d.ts +27 -0
  39. package/dist/utils/getField.d.ts.map +1 -0
  40. package/dist/utils/localization.d.ts +18 -0
  41. package/dist/utils/localization.d.ts.map +1 -0
  42. package/package.json +2 -11
package/README.md CHANGED
@@ -1,49 +1,36 @@
1
1
  # @weavix/sdk-core
2
2
 
3
- Core package for the Tracker Plugin SDK Weavix flavor.
3
+ Generic plugin SDK core runtime — framework-agnostic, no Tracker-specific types or Tracker HTTP client.
4
4
 
5
- > Это external-публикация. Внутренний (Yandex) аналог: `@yandex-data-ui/tracker-plugin-sdk-core`.
6
-
7
- ## Установка
5
+ ## Installation
8
6
 
9
7
  ```bash
10
- npm install @weavix/sdk-core @weavix/tracker-api-types
11
- # или
12
- pnpm add @weavix/sdk-core @weavix/tracker-api-types
8
+ npm install @weavix/sdk-core
13
9
  ```
14
10
 
15
- `@weavix/tracker-api-types` — peerDep с типами OpenAPI-эндпоинтов Tracker'а. Укажите версию, совместимую со своим API.
16
-
17
- ## Что внутри
18
-
19
- `@weavix/sdk-core` экспортирует:
20
-
21
- - `trackerApi` — типизированный proxy для вызовов Tracker REST API v3.
22
- - `hostApi` — методы взаимодействия с хост-приложением (theme, language, context, navigation, content size).
23
- - `setHandler`/`getHandler` — регистрация плагин-обработчиков для запросов от хоста.
24
- - `dispatchHostEvent`/`on`/`resetEventBus` — событийная шина для push-событий хоста.
25
- - `uiApi` — Toaster и Confirm.
26
- - `getField` — утилита для безопасного чтения вложенных полей.
27
- - `getLocalizedString` — извлечение локализованной строки.
28
- - Коды ошибок: `METHOD_NOT_SUPPORTED`, `MISSING_REQUIRED_SCOPE`, `PLUGIN_ID_*`, `UNKNOWN_ERROR`, `VALIDATION_ERROR`.
29
- - `PluginActionError`.
30
-
31
- API surface полностью идентичен internal flavor'у; различается только источник api-types-типов.
11
+ ## Usage
32
12
 
33
- ## Пример
13
+ ```typescript
14
+ import { hostApi, uiApi, on } from '@weavix/sdk-core';
34
15
 
35
- ```ts
36
- import { hostApi, trackerApi } from '@weavix/sdk-core';
16
+ // Initialize the plugin bridge
17
+ hostApi.init({ autoResize: true });
37
18
 
38
- await hostApi.notifyReady();
39
-
40
- const { data } = await trackerApi.v3.get['/issues/{id}']({
41
- pathParams: { id: 'KEY-1' },
19
+ // Listen to host events
20
+ on('context.changed', (context) => {
21
+ console.log('Context:', context);
42
22
  });
43
-
44
- console.log(data.summary);
45
23
  ```
46
24
 
47
- ## License
25
+ ## What's included
26
+
27
+ - **Bridge**: `initBridge`, `sendRequest` — low-level postMessage communication
28
+ - **Host API**: `hostApi` — init, getTheme, getLanguage, notifyReady, resize, etc.
29
+ - **Events**: `on`, `dispatchHostEvent`, `eventBus` — reactive host event subscriptions
30
+ - **UI**: `uiApi` — navigate, toaster, confirm
31
+ - **Utils**: `getField`, `getLocalizedString` — utility helpers
32
+ - **Error codes**: `METHOD_NOT_SUPPORTED`, `MISSING_REQUIRED_SCOPE`, etc.
33
+
34
+ ## For Tracker plugins
48
35
 
49
- UNLICENSED.
36
+ Use [`@yandex-data-ui/tracker-plugin-sdk-core`](https://npm.yandex-team.ru/@yandex-data-ui/tracker-plugin-sdk-core) (internal) or [`@weavix/tracker-plugin-sdk`](https://www.npmjs.com/package/@weavix/tracker-plugin-sdk) (external) for typed Tracker API (`trackerApi.v3`, …) and host wrappers.
@@ -0,0 +1,24 @@
1
+ type RequestOptions = {
2
+ timeout?: number;
3
+ };
4
+ declare class PluginBridge {
5
+ private pluginId;
6
+ private elementId;
7
+ private targetOrigin;
8
+ private slot;
9
+ private entityId;
10
+ private entityMeta;
11
+ private pendingRequests;
12
+ private messageListener;
13
+ private readonly requestTimeout;
14
+ constructor(pluginId: string, elementId: string, slot: string, entityId: string | null, targetOrigin: string, entityMeta?: Record<string, string>);
15
+ request(method: string, payload?: unknown, options?: RequestOptions): Promise<unknown>;
16
+ send<T = unknown>(message: T): void;
17
+ destroy(): void;
18
+ private initListener;
19
+ private generateMessageId;
20
+ }
21
+ export declare function initBridge(pluginId: string, elementId: string, slot: string, entityId: string | null, targetOrigin: string, entityMeta?: Record<string, string>): PluginBridge;
22
+ export declare function sendRequest(method: string, payload?: unknown, options?: RequestOptions): Promise<unknown>;
23
+ export {};
24
+ //# sourceMappingURL=bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/bridge/bridge.ts"],"names":[],"mappings":"AAOA,KAAK,cAAc,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AA2B3C,cAAM,YAAY;IACd,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,eAAe,CAA0C;IACjE,OAAO,CAAC,eAAe,CAAgD;IACvE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAGpC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAWvC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IA+BtF,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI;IAcnC,OAAO,IAAI,IAAI;IAYf,OAAO,CAAC,YAAY;IA8FpB,OAAO,CAAC,iBAAiB;CAG5B;AAID,wBAAgB,UAAU,CACtB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,YAAY,CAad;AASD,wBAAgB,WAAW,CACvB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,cAAc,GACzB,OAAO,CAAC,OAAO,CAAC,CAElB"}
@@ -0,0 +1,4 @@
1
+ export type BaseMessage = {
2
+ messageId: string;
3
+ };
4
+ //# sourceMappingURL=BaseMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseMessage.d.ts","sourceRoot":"","sources":["../../../src/bridge/types/BaseMessage.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACtB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /** Код ошибки: не переданы обязательные параметры инициализации плагина (pluginId или slot). */
2
+ export declare const PLUGIN_ID_OR_SLOT_NOT_PROVIDED = 1000;
3
+ /** Код ошибки: переданный pluginId не совпадает с зарегистрированным плагином или неверного формата. */
4
+ export declare const PLUGIN_ID_IS_NOT_CORRECT = 1001;
5
+ /** Код ошибки: данные запроса не прошли валидацию (неверный формат, обязательные поля отсутствуют и т.п.). */
6
+ export declare const VALIDATION_ERROR = 1002;
7
+ /** Код ошибки: запрошенный метод API не поддерживается в данной конфигурации или версии. */
8
+ export declare const METHOD_NOT_SUPPORTED = 1003;
9
+ /** Код ошибки: у плагина нет необходимого scope (разрешения) для выполнения операции. */
10
+ export declare const MISSING_REQUIRED_SCOPE = 1004;
11
+ /** Код ошибки: непредвиденная или неклассифицированная ошибка. */
12
+ export declare const UNKNOWN_ERROR = 6666;
13
+ /** Storage record version does not match the current one. */
14
+ export declare const VERSION_CONFLICT = 1010;
15
+ /** Data size exceeds 256 KiB after the operation. */
16
+ export declare const DATA_TOO_LARGE = 1011;
17
+ /** bucket failed validation (format or length). */
18
+ export declare const BAD_KEY = 1012;
19
+ //# sourceMappingURL=ErrorCodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorCodes.d.ts","sourceRoot":"","sources":["../../../src/bridge/types/ErrorCodes.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,eAAO,MAAM,8BAA8B,OAAO,CAAC;AAEnD,wGAAwG;AACxG,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,8GAA8G;AAC9G,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC,4FAA4F;AAC5F,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC,yFAAyF;AACzF,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C,kEAAkE;AAClE,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC,6DAA6D;AAC7D,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC,qDAAqD;AACrD,eAAO,MAAM,cAAc,OAAO,CAAC;AAEnC,mDAAmD;AACnD,eAAO,MAAM,OAAO,OAAO,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare class PluginActionError extends Error {
2
+ readonly code: number;
3
+ readonly errorData?: unknown;
4
+ constructor(code: number, message: string, errorData?: unknown);
5
+ }
6
+ //# sourceMappingURL=PluginActionError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginActionError.d.ts","sourceRoot":"","sources":["../../../src/bridge/types/PluginActionError.ts"],"names":[],"mappings":"AAAA,qBAAa,iBAAkB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;gBAEjB,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO;CAMjE"}
@@ -0,0 +1,35 @@
1
+ export type PluginToastAction = {
2
+ id: string;
3
+ label: string;
4
+ };
5
+ export type PluginToastPayload = {
6
+ name?: string;
7
+ title: string;
8
+ content?: string;
9
+ theme?: 'success' | 'danger' | 'warning' | 'info';
10
+ autoHiding?: number;
11
+ isClosable?: boolean;
12
+ actions?: PluginToastAction[];
13
+ };
14
+ export type PluginConfirmPayload = {
15
+ title?: string;
16
+ message: string;
17
+ textButtonApply?: string;
18
+ textButtonCancel?: string;
19
+ theme?: 'normal' | 'danger';
20
+ };
21
+ export type UiContract = {
22
+ 'toast.add': {
23
+ payload: PluginToastPayload;
24
+ result: {
25
+ name: string;
26
+ };
27
+ };
28
+ 'confirm.show': {
29
+ payload: PluginConfirmPayload;
30
+ result: {
31
+ confirmed: boolean;
32
+ };
33
+ };
34
+ };
35
+ //# sourceMappingURL=UiContract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UiContract.d.ts","sourceRoot":"","sources":["../../../src/bridge/types/UiContract.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACrB,WAAW,EAAE;QACT,OAAO,EAAE,kBAAkB,CAAC;QAC5B,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KAC5B,CAAC;IACF,cAAc,EAAE;QACZ,OAAO,EAAE,oBAAoB,CAAC;QAC9B,MAAM,EAAE;YAAE,SAAS,EAAE,OAAO,CAAA;SAAE,CAAC;KAClC,CAAC;CACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export type Theme = 'light' | 'light-hc' | 'dark' | 'dark-hc' | 'system';
2
+ //# sourceMappingURL=Theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Theme.d.ts","sourceRoot":"","sources":["../../../src/common/types/Theme.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { EventMessage, HostEventCallback, HostEventContract, HostEventMethod, Unsubscribe } from './types';
2
+ /**
3
+ * Subscribe to a host-pushed event.
4
+ * If a value was already dispatched for this method, the callback is called
5
+ * synchronously with the cached value before returning.
6
+ * @param method - Event method name (e.g. `'theme.changed'`)
7
+ * @param callback - Function called with the typed event payload
8
+ * @returns An `Unsubscribe` function that removes this subscription
9
+ */
10
+ export declare function on<M extends HostEventMethod>(method: M, callback: HostEventCallback<M>): Unsubscribe;
11
+ /**
12
+ * Dispatch an incoming event message to all registered subscribers.
13
+ * Caches the value so late subscribers receive it on subscription.
14
+ */
15
+ export declare function dispatchHostEvent(message: EventMessage): void;
16
+ /**
17
+ * Clears all cached last values and subscribers from the event bus.
18
+ * Intended for use in tests to prevent state leaking between test cases.
19
+ */
20
+ export declare function resetEventBus(): void;
21
+ /**
22
+ * Public event emitter — subscribe to host-pushed events.
23
+ * Only events defined in `HostEventContract` are accepted.
24
+ * @example
25
+ * ```ts
26
+ * import { eventBus } from '@yandex-data-ui/tracker-plugin-sdk-core';
27
+ *
28
+ * const unsubscribe = eventBus.on('theme.changed', (theme) => {
29
+ * console.log('Theme:', theme);
30
+ * });
31
+ *
32
+ * unsubscribe();
33
+ * ```
34
+ */
35
+ export declare const eventBus: {
36
+ on<M extends HostEventMethod>(method: M, callback: (result: HostEventContract[M]["result"]) => void): Unsubscribe;
37
+ };
38
+ //# sourceMappingURL=eventBus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventBus.d.ts","sourceRoot":"","sources":["../../src/events/eventBus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,WAAW,EACd,MAAM,SAAS,CAAC;AAKjB;;;;;;;GAOG;AACH,wBAAgB,EAAE,CAAC,CAAC,SAAS,eAAe,EACxC,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC/B,WAAW,CA0Bb;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAgB7D;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAGpC;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ;OACd,CAAC,SAAS,eAAe,UAChB,CAAC,YACC,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,GAC3D,WAAW;CAGjB,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { Theme } from '../common/types/Theme';
2
+ /**
3
+ * Contract describing host-pushed events.
4
+ * Each key is a `method` string from the incoming postMessage,
5
+ * and the value describes the `result` payload type.
6
+ */
7
+ export type HostEventContract = {
8
+ 'theme.changed': {
9
+ result: Theme;
10
+ };
11
+ 'language.changed': {
12
+ result: string;
13
+ };
14
+ 'userId.changed': {
15
+ result: string;
16
+ };
17
+ 'isYateam.changed': {
18
+ result: boolean;
19
+ };
20
+ 'context.changed': {
21
+ result: Record<string, unknown>;
22
+ };
23
+ 'toast.action.clicked': {
24
+ result: {
25
+ name: string;
26
+ actionId: string;
27
+ };
28
+ };
29
+ };
30
+ /** Union of all supported host event method names */
31
+ export type HostEventMethod = keyof HostEventContract;
32
+ /** Callback type for a specific host event */
33
+ export type HostEventCallback<M extends HostEventMethod> = (result: HostEventContract[M]['result']) => void;
34
+ /** Function returned by `on()` to remove the subscription */
35
+ export type Unsubscribe = () => void;
36
+ /**
37
+ * Shape of an incoming event message from the host (postMessage).
38
+ * Distinct from 'response' and 'request' message types.
39
+ */
40
+ export type EventMessage = {
41
+ messageId: string;
42
+ type: 'event';
43
+ method: HostEventMethod;
44
+ result: unknown;
45
+ };
46
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC5B,eAAe,EAAE;QAAE,MAAM,EAAE,KAAK,CAAA;KAAE,CAAC;IACnC,kBAAkB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,gBAAgB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,kBAAkB,EAAE;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IACxC,iBAAiB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IACvD,sBAAsB,EAAE;QAAE,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CAC1E,CAAC;AAEF,qDAAqD;AACrD,MAAM,MAAM,eAAe,GAAG,MAAM,iBAAiB,CAAC;AAEtD,8CAA8C;AAC9C,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,eAAe,IAAI,CACvD,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KACrC,IAAI,CAAC;AAEV,6DAA6D;AAC7D,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAErC;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;CACnB,CAAC"}
@@ -0,0 +1,12 @@
1
+ type AnyHandler = (...args: unknown[]) => unknown;
2
+ /**
3
+ * Регистрирует handler по имени. Тип не проверяется на runtime'е;
4
+ * type-safety обеспечивается typed wrapper'ом в публикуемых пакетах.
5
+ */
6
+ export declare function setHandler(name: string, handler: AnyHandler): void;
7
+ /**
8
+ * Возвращает зарегистрированный handler по имени, или undefined.
9
+ */
10
+ export declare function getHandler(name: string): AnyHandler | undefined;
11
+ export {};
12
+ //# sourceMappingURL=handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/handlers.ts"],"names":[],"mappings":"AAAA,KAAK,UAAU,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAIlD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CAElE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAE/D"}
@@ -0,0 +1,50 @@
1
+ import { ContentSizeUpdateRequest } from './types/ContentSizeUpdateRequest';
2
+ export interface HostInitOptions {
3
+ /**
4
+ * Автоматически изменять размер контейнера плагина
5
+ * при изменении содержимого
6
+ * @default true
7
+ */
8
+ autoResize?: boolean;
9
+ }
10
+ /**
11
+ * Untyped runtime класс HostApi. Methods, которые возвращают значения,
12
+ * зависящие от SlotContextMap, типизированы как `unknown` или `string`.
13
+ * Type-safety добавляется в публикуемых пакетах через typed wrapper.
14
+ */
15
+ export type ContextLevel = 'basic' | 'full';
16
+ export type BasicContext = {
17
+ entityId: string;
18
+ entityMeta?: Record<string, string>;
19
+ };
20
+ export declare class HostApi {
21
+ private autoResizeManager?;
22
+ private slot;
23
+ private service;
24
+ private origin;
25
+ private innerUrl;
26
+ private queryParams;
27
+ private entityId;
28
+ private entityMeta;
29
+ private contextLevel;
30
+ getTheme(): Promise<unknown>;
31
+ getLanguage(): Promise<unknown>;
32
+ getUserId(): Promise<unknown>;
33
+ getIsYateam(): Promise<unknown>;
34
+ getContext(): Promise<unknown>;
35
+ updateContentSize(payload: ContentSizeUpdateRequest): Promise<unknown>;
36
+ notifyReady(): Promise<unknown>;
37
+ close(payload: unknown): Promise<unknown>;
38
+ init(options: HostInitOptions): void;
39
+ getSlot(): string;
40
+ getService(): string;
41
+ getOrigin(): string;
42
+ getInnerUrl(): string;
43
+ getQueryParams(): Record<string, string>;
44
+ getEntityId(): string | null;
45
+ getEntityMeta(): Record<string, string> | undefined;
46
+ getContextLevel(): ContextLevel;
47
+ disableAutoResize(): void;
48
+ }
49
+ export declare const hostApi: HostApi;
50
+ //# sourceMappingURL=hostApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hostApi.d.ts","sourceRoot":"","sources":["../../src/host/hostApi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAGjF,MAAM,WAAW,eAAe;IAC5B;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5C,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC,CAAC;AAEF,qBAAa,OAAO;IAChB,OAAO,CAAC,iBAAiB,CAAC,CAAoB;IAC9C,OAAO,CAAC,IAAI,CAAuB;IACnC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,UAAU,CAAiD;IACnE,OAAO,CAAC,YAAY,CAAwB;IAE5C,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAI5B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAI9B,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;IAItE,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAIzC,IAAI,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAsDpC,OAAO,IAAI,MAAM;IAOjB,UAAU,IAAI,MAAM;IAOpB,SAAS,IAAI,MAAM;IAOnB,WAAW,IAAI,MAAM;IAOrB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAOxC,WAAW,IAAI,MAAM,GAAG,IAAI;IAI5B,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;IAInD,eAAe,IAAI,YAAY;IAI/B,iBAAiB,IAAI,IAAI;CAG5B;AAED,eAAO,MAAM,OAAO,SAAgB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export type ContentSizeUpdateRequestUnit = 'pixel' | 'percent';
2
+ export type ContentSizeUpdateRequest = {
3
+ height?: number;
4
+ width?: number;
5
+ unit?: ContentSizeUpdateRequestUnit;
6
+ };
7
+ //# sourceMappingURL=ContentSizeUpdateRequest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentSizeUpdateRequest.d.ts","sourceRoot":"","sources":["../../../src/host/types/ContentSizeUpdateRequest.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,4BAA4B,GAAG,OAAO,GAAG,SAAS,CAAC;AAE/D,MAAM,MAAM,wBAAwB,GAAG;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,4BAA4B,CAAC;CACvC,CAAC"}
@@ -0,0 +1,11 @@
1
+ type QueryParamValue = string | number | boolean | null | undefined;
2
+ type QueryParams = Record<string, QueryParamValue | QueryParamValue[]>;
3
+ export type NavigateRequest = {
4
+ path: string;
5
+ params?: QueryParams;
6
+ options?: {
7
+ newTab?: boolean;
8
+ };
9
+ };
10
+ export {};
11
+ //# sourceMappingURL=NavigateRequest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavigateRequest.d.ts","sourceRoot":"","sources":["../../../src/host/types/NavigateRequest.ts"],"names":[],"mappings":"AAAA,KAAK,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAEpE,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,EAAE,CAAC,CAAC;AAEvE,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE;QACN,MAAM,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACL,CAAC"}
@@ -0,0 +1,15 @@
1
+ export type ResizeCallback = (height: number) => Promise<void> | void;
2
+ export declare class AutoResizeManager {
3
+ private resizeCallback;
4
+ private resizeObserver?;
5
+ private resizeTimeout?;
6
+ private lastHeight;
7
+ private isUpdating;
8
+ private consecutiveSmallIncreases;
9
+ private readonly MAX_CONSECUTIVE_SMALL_INCREASES;
10
+ private readonly SMALL_INCREASE_THRESHOLD_PX;
11
+ constructor(resizeCallback: ResizeCallback);
12
+ enable(): void;
13
+ disable(): void;
14
+ }
15
+ //# sourceMappingURL=autoResize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autoResize.d.ts","sourceRoot":"","sources":["../../../src/host/utils/autoResize.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEtE,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,aAAa,CAAC,CAAgC;IACtD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,yBAAyB,CAAK;IACtC,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAK;IACrD,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAM;gBAEtC,cAAc,EAAE,cAAc;IAI1C,MAAM,IAAI,IAAI;IAgFd,OAAO,IAAI,IAAI;CAMlB"}