@expressms/smartapp-sdk 1.2.9 → 1.4.0-alpha

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.
@@ -0,0 +1,71 @@
1
+ import bridge from '@expressms/smartapp-bridge';
2
+ import { ERROR_CODES, METHODS, STATUS } from '../../types';
3
+ const subscriptions = [];
4
+ let bridgeEventListenerInstalled = false;
5
+ const isAnySubscriptionsOfType = (eventType) => {
6
+ return subscriptions.some(sub => sub.eventType == eventType);
7
+ };
8
+ const installBridgeEventListener = () => {
9
+ if (bridgeEventListenerInstalled || !bridge)
10
+ return;
11
+ bridgeEventListenerInstalled = true;
12
+ bridge.onReceive(event => {
13
+ subscriptions.filter(sub => sub.eventType === event.type).map(sub => sub.callback(event));
14
+ });
15
+ };
16
+ /**
17
+ * Subscribe to special client events
18
+ * @param eventType Event from SubscriptionEventType enum to be subscribed
19
+ * @param callback Function to be handled when event is coming
20
+ * @returns Promise that'll be fullfilled on successful subscription, otherwise rejected with reason
21
+ */
22
+ const subscribeClientEvents = (eventType, callback) => {
23
+ const successResponse = { status: STATUS.SUCCESS };
24
+ // No need to subscribe event twice on client
25
+ if (isAnySubscriptionsOfType(eventType)) {
26
+ subscriptions.push({ eventType, callback });
27
+ return Promise.resolve(successResponse);
28
+ }
29
+ if (!bridge)
30
+ return Promise.reject(ERROR_CODES.NO_BRIDGE);
31
+ return bridge
32
+ .sendClientEvent({
33
+ method: METHODS.SUBSCRIBE_CLIENT_EVENTS,
34
+ params: {
35
+ event: eventType,
36
+ },
37
+ })
38
+ .then(() => {
39
+ installBridgeEventListener();
40
+ subscriptions.push({ eventType, callback });
41
+ return successResponse;
42
+ });
43
+ };
44
+ /**
45
+ * Unsubscribe from previously subscribed client events
46
+ * @param eventType Event from SubscriptionEventType enum to be unsubscribed
47
+ * @param callback Function to be unsibscribed
48
+ * @returns Promise that'll be fullfilled on successful unsubscription, otherwise rejected with reason
49
+ */
50
+ const unsubscribeClientEvents = (eventType, callback) => {
51
+ const successResponse = { status: STATUS.SUCCESS };
52
+ const index = subscriptions.findIndex(sub => sub.eventType == eventType && sub.callback == callback);
53
+ if (!bridge)
54
+ return Promise.reject(ERROR_CODES.NO_BRIDGE);
55
+ if (index == -1)
56
+ return Promise.reject(ERROR_CODES.SUBSCRIPTION_NOT_FOUND);
57
+ subscriptions.splice(index, 1);
58
+ // Send unsubscribe to client only at last subscription
59
+ if (isAnySubscriptionsOfType(eventType))
60
+ return Promise.resolve(successResponse);
61
+ return bridge
62
+ .sendClientEvent({
63
+ method: METHODS.UNSUBSCRIBE_CLIENT_EVENTS,
64
+ params: {
65
+ event: eventType,
66
+ },
67
+ })
68
+ .then(() => successResponse);
69
+ };
70
+ export { subscribeClientEvents, unsubscribeClientEvents };
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jbGllbnQvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLDRCQUE0QixDQUFBO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBeUIsTUFBTSxhQUFhLENBQUE7QUFFakYsTUFBTSxhQUFhLEdBQW9FLEVBQUUsQ0FBQTtBQUN6RixJQUFJLDRCQUE0QixHQUFHLEtBQUssQ0FBQTtBQUV4QyxNQUFNLHdCQUF3QixHQUFHLENBQUMsU0FBZ0MsRUFBRSxFQUFFO0lBQ3BFLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLENBQUE7QUFDOUQsQ0FBQyxDQUFBO0FBRUQsTUFBTSwwQkFBMEIsR0FBRyxHQUFHLEVBQUU7SUFDdEMsSUFBSSw0QkFBNEIsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFNO0lBRW5ELDRCQUE0QixHQUFHLElBQUksQ0FBQTtJQUVuQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3ZCLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDM0YsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxTQUFnQyxFQUFFLFFBQWtCLEVBQStCLEVBQUU7SUFDbEgsTUFBTSxlQUFlLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBRWxELDZDQUE2QztJQUM3QyxJQUFJLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ3ZDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQTtRQUMzQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUE7S0FDeEM7SUFFRCxJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUE7SUFFekQsT0FBTyxNQUFNO1NBQ1YsZUFBZSxDQUFDO1FBQ2YsTUFBTSxFQUFFLE9BQU8sQ0FBQyx1QkFBdUI7UUFDdkMsTUFBTSxFQUFFO1lBQ04sS0FBSyxFQUFFLFNBQVM7U0FDakI7S0FDRixDQUFDO1NBQ0QsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNULDBCQUEwQixFQUFFLENBQUE7UUFDNUIsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQzNDLE9BQU8sZUFBZSxDQUFBO0lBQ3hCLENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQyxDQUFBO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLHVCQUF1QixHQUFHLENBQUMsU0FBZ0MsRUFBRSxRQUFrQixFQUErQixFQUFFO0lBQ3BILE1BQU0sZUFBZSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUVsRCxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxTQUFTLElBQUksR0FBRyxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsQ0FBQTtJQUVwRyxJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDekQsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQUUsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO0lBRTFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBRTlCLHVEQUF1RDtJQUN2RCxJQUFJLHdCQUF3QixDQUFDLFNBQVMsQ0FBQztRQUFFLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUVoRixPQUFPLE1BQU07U0FDVixlQUFlLENBQUM7UUFDZixNQUFNLEVBQUUsT0FBTyxDQUFDLHlCQUF5QjtRQUN6QyxNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsU0FBUztTQUNqQjtLQUNGLENBQUM7U0FDRCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUE7QUFDaEMsQ0FBQyxDQUFBO0FBRUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHVCQUF1QixFQUFFLENBQUEifQ==
@@ -1,4 +1,5 @@
1
- import { File } from '../../types';
1
+ import { CreateDeeplinkResponse, File, GetConnectionStatusResponse } from '../../types';
2
+ export * from './events';
2
3
  declare const openClientSettings: () => Promise<import("@expressms/smartapp-bridge/build/main/types/eventEmitter").EmitterEventPayload> | undefined;
3
4
  declare const getChats: ({ filter }: {
4
5
  filter: string | null;
@@ -18,4 +19,19 @@ declare const sendBotCommand: ({ userHuid, body, data, }: {
18
19
  } | null;
19
20
  }) => Promise<import("@expressms/smartapp-bridge/build/main/types/eventEmitter").EmitterEventPayload> | undefined;
20
21
  declare const requestLocation: () => Promise<import("@expressms/smartapp-bridge/build/main/types/eventEmitter").EmitterEventPayload> | undefined;
21
- export { openFile, openClientSettings, getChats, searchCorporatePhonebook, openGroupChat, sendBotCommand, requestLocation };
22
+ /**
23
+ * Get client current connection status. It's based on client's WebSocket connection state.
24
+ * @returns Promise that'll be fullfilled with status data on success, otherwise rejected with reason
25
+ */
26
+ declare const getConnectionStatus: () => Promise<GetConnectionStatusResponse>;
27
+ /**
28
+ * Create deeplink URL to open SmartApp
29
+ * @param appId ID of SmartApp
30
+ * @param meta Array of params to be included in deeplink
31
+ * @returns Promise that'll be fullfilled with deeplink data on success, otherwise rejected with reason
32
+ */
33
+ declare const createDeeplink: (appId: string, meta: Array<{
34
+ key: string;
35
+ value: null | boolean | string | number;
36
+ }>) => Promise<CreateDeeplinkResponse>;
37
+ export { openFile, openClientSettings, getChats, searchCorporatePhonebook, openGroupChat, sendBotCommand, requestLocation, getConnectionStatus, createDeeplink, };
@@ -1,5 +1,6 @@
1
1
  import bridge from '@expressms/smartapp-bridge';
2
- import { METHODS } from '../../types';
2
+ import { ERROR_CODES, METHODS } from '../../types';
3
+ export * from './events';
3
4
  const openClientSettings = () => {
4
5
  return bridge?.sendClientEvent({
5
6
  method: METHODS.OPEN_CLIENT_SETTINGS,
@@ -50,5 +51,33 @@ const requestLocation = () => {
50
51
  params: {},
51
52
  });
52
53
  };
53
- export { openFile, openClientSettings, getChats, searchCorporatePhonebook, openGroupChat, sendBotCommand, requestLocation };
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NsaWVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSw0QkFBNEIsQ0FBQTtBQUMvQyxPQUFPLEVBQVEsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRTNDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxFQUFFO0lBQzlCLE9BQU8sTUFBTSxFQUFFLGVBQWUsQ0FBQztRQUM3QixNQUFNLEVBQUUsT0FBTyxDQUFDLG9CQUFvQjtRQUNwQyxNQUFNLEVBQUUsRUFBRTtLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQUVELE1BQU0sUUFBUSxHQUFHLENBQUMsRUFBQyxNQUFNLEdBQUcsSUFBSSxFQUE0QixFQUFFLEVBQUU7SUFDOUQsT0FBTyxNQUFNLEVBQUUsZUFBZSxDQUFDO1FBQzdCLE1BQU0sRUFBRSxPQUFPLENBQUMsU0FBUztRQUN6QixNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUM7S0FDakIsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBRUQsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEVBQUMsTUFBTSxHQUFHLElBQUksRUFBNEIsRUFBRSxFQUFFO0lBQzlFLE9BQU8sTUFBTSxFQUFFLGVBQWUsQ0FBQztRQUM3QixNQUFNLEVBQUUsT0FBTyxDQUFDLDBCQUEwQjtRQUMxQyxNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUM7S0FDakIsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBRUQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxFQUFDLFdBQVcsRUFBMEIsRUFBRSxFQUFFO0lBQy9ELE9BQU8sTUFBTSxFQUFFLGVBQWUsQ0FBQztRQUM3QixNQUFNLEVBQUUsT0FBTyxDQUFDLGVBQWU7UUFDL0IsTUFBTSxFQUFFLEVBQUMsV0FBVyxFQUFDO0tBQ3RCLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQUVELE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBVSxFQUFFLEVBQUU7SUFDOUIsT0FBTyxNQUFNLEVBQUUsZUFBZSxDQUFDO1FBQzdCLE1BQU0sRUFBRSxPQUFPLENBQUMsU0FBUztRQUN6QixNQUFNLEVBQUUsSUFBSTtLQUNiLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQUVELE1BQU0sY0FBYyxHQUFHLENBQ25CLEVBQ0UsUUFBUSxFQUNSLElBQUksRUFDSixJQUFJLEdBS0wsRUFDSCxFQUFFO0lBQ0YsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO1FBQUUsT0FBTTtJQUVwQyxPQUFPLE1BQU0sRUFBRSxlQUFlLENBQUM7UUFDN0IsTUFBTSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7UUFDaEMsTUFBTSxFQUFFO1lBQ04sUUFBUTtZQUNSLE9BQU8sRUFBRTtnQkFDUCxJQUFJO2dCQUNKLElBQUk7YUFDTDtTQUNGO0tBQ0YsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBRUQsTUFBTSxlQUFlLEdBQUcsR0FBRyxFQUFFO0lBQzNCLE9BQU8sTUFBTSxFQUFFLGVBQWUsQ0FBQztRQUM3QixNQUFNLEVBQUUsT0FBTyxDQUFDLGdCQUFnQjtRQUNoQyxNQUFNLEVBQUUsRUFBRTtLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQUVELE9BQU8sRUFDTCxRQUFRLEVBQ1Isa0JBQWtCLEVBQ2xCLFFBQVEsRUFDUix3QkFBd0IsRUFDeEIsYUFBYSxFQUNiLGNBQWMsRUFDZCxlQUFlLEVBQ2hCLENBQUEifQ==
54
+ /**
55
+ * Get client current connection status. It's based on client's WebSocket connection state.
56
+ * @returns Promise that'll be fullfilled with status data on success, otherwise rejected with reason
57
+ */
58
+ const getConnectionStatus = async () => {
59
+ if (!bridge)
60
+ return Promise.reject(ERROR_CODES.NO_BRIDGE);
61
+ const response = await bridge.sendClientEvent({
62
+ method: METHODS.GET_CONNECTION_STATUS,
63
+ params: {},
64
+ });
65
+ return response;
66
+ };
67
+ /**
68
+ * Create deeplink URL to open SmartApp
69
+ * @param appId ID of SmartApp
70
+ * @param meta Array of params to be included in deeplink
71
+ * @returns Promise that'll be fullfilled with deeplink data on success, otherwise rejected with reason
72
+ */
73
+ const createDeeplink = async (appId, meta) => {
74
+ if (!bridge)
75
+ return Promise.reject(ERROR_CODES.NO_BRIDGE);
76
+ const response = await bridge.sendClientEvent({
77
+ method: METHODS.CREATE_DEEPLINK,
78
+ params: { appId, meta },
79
+ });
80
+ return response;
81
+ };
82
+ export { openFile, openClientSettings, getChats, searchCorporatePhonebook, openGroupChat, sendBotCommand, requestLocation, getConnectionStatus, createDeeplink, };
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NsaWVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSw0QkFBNEIsQ0FBQTtBQUMvQyxPQUFPLEVBQTBCLFdBQVcsRUFBcUMsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzdHLGNBQWMsVUFBVSxDQUFBO0FBRXhCLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxFQUFFO0lBQzlCLE9BQU8sTUFBTSxFQUFFLGVBQWUsQ0FBQztRQUM3QixNQUFNLEVBQUUsT0FBTyxDQUFDLG9CQUFvQjtRQUNwQyxNQUFNLEVBQUUsRUFBRTtLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQUVELE1BQU0sUUFBUSxHQUFHLENBQUMsRUFBQyxNQUFNLEdBQUcsSUFBSSxFQUE0QixFQUFFLEVBQUU7SUFDOUQsT0FBTyxNQUFNLEVBQUUsZUFBZSxDQUFDO1FBQzdCLE1BQU0sRUFBRSxPQUFPLENBQUMsU0FBUztRQUN6QixNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUM7S0FDakIsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBRUQsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEVBQUMsTUFBTSxHQUFHLElBQUksRUFBNEIsRUFBRSxFQUFFO0lBQzlFLE9BQU8sTUFBTSxFQUFFLGVBQWUsQ0FBQztRQUM3QixNQUFNLEVBQUUsT0FBTyxDQUFDLDBCQUEwQjtRQUMxQyxNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUM7S0FDakIsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBRUQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxFQUFDLFdBQVcsRUFBMEIsRUFBRSxFQUFFO0lBQy9ELE9BQU8sTUFBTSxFQUFFLGVBQWUsQ0FBQztRQUM3QixNQUFNLEVBQUUsT0FBTyxDQUFDLGVBQWU7UUFDL0IsTUFBTSxFQUFFLEVBQUMsV0FBVyxFQUFDO0tBQ3RCLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQUVELE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBVSxFQUFFLEVBQUU7SUFDOUIsT0FBTyxNQUFNLEVBQUUsZUFBZSxDQUFDO1FBQzdCLE1BQU0sRUFBRSxPQUFPLENBQUMsU0FBUztRQUN6QixNQUFNLEVBQUUsSUFBSTtLQUNiLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQUVELE1BQU0sY0FBYyxHQUFHLENBQ25CLEVBQ0UsUUFBUSxFQUNSLElBQUksRUFDSixJQUFJLEdBS0wsRUFDSCxFQUFFO0lBQ0YsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO1FBQUUsT0FBTTtJQUVwQyxPQUFPLE1BQU0sRUFBRSxlQUFlLENBQUM7UUFDN0IsTUFBTSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7UUFDaEMsTUFBTSxFQUFFO1lBQ04sUUFBUTtZQUNSLE9BQU8sRUFBRTtnQkFDUCxJQUFJO2dCQUNKLElBQUk7YUFDTDtTQUNGO0tBQ0YsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBRUQsTUFBTSxlQUFlLEdBQUcsR0FBRyxFQUFFO0lBQzNCLE9BQU8sTUFBTSxFQUFFLGVBQWUsQ0FBQztRQUM3QixNQUFNLEVBQUUsT0FBTyxDQUFDLGdCQUFnQjtRQUNoQyxNQUFNLEVBQUUsRUFBRTtLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQUVEOzs7R0FHRztBQUNILE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxJQUEwQyxFQUFFO0lBQzNFLElBQUksQ0FBQyxNQUFNO1FBQUUsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUV6RCxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxlQUFlLENBQUM7UUFDNUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxxQkFBcUI7UUFDckMsTUFBTSxFQUFFLEVBQUU7S0FDWCxDQUFDLENBQUE7SUFFRixPQUFPLFFBQXVDLENBQUE7QUFDaEQsQ0FBQyxDQUFBO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQzFCLEtBQWEsRUFDYixJQUFxRSxFQUNwQyxFQUFFO0lBQ25DLElBQUksQ0FBQyxNQUFNO1FBQUUsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUV6RCxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxlQUFlLENBQUM7UUFDNUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxlQUFlO1FBQy9CLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7S0FDeEIsQ0FBQyxDQUFBO0lBRUYsT0FBTyxRQUFrQyxDQUFBO0FBQzNDLENBQUMsQ0FBQTtBQUVELE9BQU8sRUFDTCxRQUFRLEVBQ1Isa0JBQWtCLEVBQ2xCLFFBQVEsRUFDUix3QkFBd0IsRUFDeEIsYUFBYSxFQUNiLGNBQWMsRUFDZCxlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLGNBQWMsR0FDZixDQUFBIn0=
@@ -1,11 +1,14 @@
1
1
  import bridge from "@expressms/smartapp-bridge";
2
+ import { ERROR_CODES } from "../../types";
2
3
  import { bridgeSendReady } from "../index";
3
4
  const ready = async (timeout) => {
4
5
  const response = await bridgeSendReady(timeout);
5
6
  const isLogsEnabled = response?.payload?.logsEnabled;
7
+ if (!bridge)
8
+ return Promise.reject(ERROR_CODES.NO_BRIDGE);
6
9
  if (isLogsEnabled)
7
- bridge?.enableLogs?.();
10
+ bridge.enableLogs?.();
8
11
  return response;
9
12
  };
10
13
  export { ready, };
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2xvZ2dpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sNEJBQTRCLENBQUE7QUFFL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUUxQyxNQUFNLEtBQUssR0FBRyxLQUFLLEVBQUUsT0FBZ0IsRUFBRSxFQUFFO0lBQ3ZDLE1BQU0sUUFBUSxHQUFHLE1BQU0sZUFBZSxDQUFDLE9BQU8sQ0FBdUIsQ0FBQTtJQUNyRSxNQUFNLGFBQWEsR0FBRyxRQUFRLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQTtJQUVwRCxJQUFJLGFBQWE7UUFBRyxNQUFjLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FBQTtJQUVsRCxPQUFPLFFBQVEsQ0FBQTtBQUNqQixDQUFDLENBQUE7QUFFRCxPQUFPLEVBQ0wsS0FBSyxHQUNOLENBQUEifQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2xvZ2dpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sNEJBQTRCLENBQUE7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBc0IsTUFBTSxhQUFhLENBQUE7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUUxQyxNQUFNLEtBQUssR0FBRyxLQUFLLEVBQUUsT0FBZ0IsRUFBRSxFQUFFO0lBQ3ZDLE1BQU0sUUFBUSxHQUFHLE1BQU0sZUFBZSxDQUFDLE9BQU8sQ0FBdUIsQ0FBQTtJQUNyRSxNQUFNLGFBQWEsR0FBRyxRQUFRLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQTtJQUVwRCxJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUE7SUFFekQsSUFBSSxhQUFhO1FBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUE7SUFFeEMsT0FBTyxRQUFRLENBQUE7QUFDakIsQ0FBQyxDQUFBO0FBRUQsT0FBTyxFQUNMLEtBQUssR0FDTixDQUFBIn0=
@@ -18,11 +18,23 @@ export declare enum METHODS {
18
18
  REQUEST_LOCATION = "request_location",
19
19
  REQUEST_SELF_PROFILE = "request_self_profile",
20
20
  CLOSE_SMART_APP = "close_smart_app",
21
- OPEN_FILE = "open_file"
21
+ OPEN_FILE = "open_file",
22
+ SUBSCRIBE_CLIENT_EVENTS = "subscribe_client_events",
23
+ UNSUBSCRIBE_CLIENT_EVENTS = "unsubscribe_client_events",
24
+ GET_CONNECTION_STATUS = "get_connection_status",
25
+ CREATE_DEEPLINK = "create_deeplink"
26
+ }
27
+ export declare enum STATUS {
28
+ SUCCESS = "success",
29
+ ERROR = "error"
30
+ }
31
+ export declare enum ERROR_CODES {
32
+ NO_BRIDGE = "no_bridge",
33
+ SUBSCRIPTION_NOT_FOUND = "subscription_not_found"
22
34
  }
23
35
  export type ReadyEventResponse = ({
24
36
  ref: string;
25
- status: "success";
37
+ status: STATUS.SUCCESS;
26
38
  payload: {
27
39
  logsEnabled?: boolean;
28
40
  isMain?: boolean;
@@ -20,5 +20,19 @@ export var METHODS;
20
20
  METHODS["REQUEST_SELF_PROFILE"] = "request_self_profile";
21
21
  METHODS["CLOSE_SMART_APP"] = "close_smart_app";
22
22
  METHODS["OPEN_FILE"] = "open_file";
23
+ METHODS["SUBSCRIBE_CLIENT_EVENTS"] = "subscribe_client_events";
24
+ METHODS["UNSUBSCRIBE_CLIENT_EVENTS"] = "unsubscribe_client_events";
25
+ METHODS["GET_CONNECTION_STATUS"] = "get_connection_status";
26
+ METHODS["CREATE_DEEPLINK"] = "create_deeplink";
23
27
  })(METHODS || (METHODS = {}));
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2JyaWRnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxPQXFCWDtBQXJCRCxXQUFZLE9BQU87SUFDakIsMEJBQWUsQ0FBQTtJQUNmLDhDQUFtQyxDQUFBO0lBQ25DLHdDQUE2QixDQUFBO0lBQzdCLHdDQUE2QixDQUFBO0lBQzdCLHNDQUEyQixDQUFBO0lBQzNCLHNDQUEyQixDQUFBO0lBQzNCLHdEQUE2QyxDQUFBO0lBQzdDLHdDQUE2QixDQUFBO0lBQzdCLHdDQUE2QixDQUFBO0lBQzdCLDRDQUFpQyxDQUFBO0lBQ2pDLHdEQUE2QyxDQUFBO0lBQzdDLGtDQUF1QixDQUFBO0lBQ3ZCLG9FQUF5RCxDQUFBO0lBQ3pELGdEQUFxQyxDQUFBO0lBQ3JDLDhDQUFtQyxDQUFBO0lBQ25DLGtEQUF1QyxDQUFBO0lBQ3ZDLGdEQUFxQyxDQUFBO0lBQ3JDLHdEQUE2QyxDQUFBO0lBQzdDLDhDQUFtQyxDQUFBO0lBQ25DLGtDQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFyQlcsT0FBTyxLQUFQLE9BQU8sUUFxQmxCIn0=
28
+ export var STATUS;
29
+ (function (STATUS) {
30
+ STATUS["SUCCESS"] = "success";
31
+ STATUS["ERROR"] = "error";
32
+ })(STATUS || (STATUS = {}));
33
+ export var ERROR_CODES;
34
+ (function (ERROR_CODES) {
35
+ ERROR_CODES["NO_BRIDGE"] = "no_bridge";
36
+ ERROR_CODES["SUBSCRIPTION_NOT_FOUND"] = "subscription_not_found";
37
+ })(ERROR_CODES || (ERROR_CODES = {}));
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2JyaWRnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxPQXlCWDtBQXpCRCxXQUFZLE9BQU87SUFDakIsMEJBQWUsQ0FBQTtJQUNmLDhDQUFtQyxDQUFBO0lBQ25DLHdDQUE2QixDQUFBO0lBQzdCLHdDQUE2QixDQUFBO0lBQzdCLHNDQUEyQixDQUFBO0lBQzNCLHNDQUEyQixDQUFBO0lBQzNCLHdEQUE2QyxDQUFBO0lBQzdDLHdDQUE2QixDQUFBO0lBQzdCLHdDQUE2QixDQUFBO0lBQzdCLDRDQUFpQyxDQUFBO0lBQ2pDLHdEQUE2QyxDQUFBO0lBQzdDLGtDQUF1QixDQUFBO0lBQ3ZCLG9FQUF5RCxDQUFBO0lBQ3pELGdEQUFxQyxDQUFBO0lBQ3JDLDhDQUFtQyxDQUFBO0lBQ25DLGtEQUF1QyxDQUFBO0lBQ3ZDLGdEQUFxQyxDQUFBO0lBQ3JDLHdEQUE2QyxDQUFBO0lBQzdDLDhDQUFtQyxDQUFBO0lBQ25DLGtDQUF1QixDQUFBO0lBQ3ZCLDhEQUFtRCxDQUFBO0lBQ25ELGtFQUF1RCxDQUFBO0lBQ3ZELDBEQUErQyxDQUFBO0lBQy9DLDhDQUFtQyxDQUFBO0FBQ3JDLENBQUMsRUF6QlcsT0FBTyxLQUFQLE9BQU8sUUF5QmxCO0FBRUQsTUFBTSxDQUFOLElBQVksTUFHWDtBQUhELFdBQVksTUFBTTtJQUNoQiw2QkFBbUIsQ0FBQTtJQUNuQix5QkFBZSxDQUFBO0FBQ2pCLENBQUMsRUFIVyxNQUFNLEtBQU4sTUFBTSxRQUdqQjtBQUVELE1BQU0sQ0FBTixJQUFZLFdBR1g7QUFIRCxXQUFZLFdBQVc7SUFDckIsc0NBQXVCLENBQUE7SUFDdkIsZ0VBQWlELENBQUE7QUFDbkQsQ0FBQyxFQUhXLFdBQVcsS0FBWCxXQUFXLFFBR3RCIn0=
@@ -0,0 +1,19 @@
1
+ export declare enum SubscriptionEventType {
2
+ CONNECTION_STATUS = "connection_status"
3
+ }
4
+ export type GetConnectionStatusResponse = ({
5
+ ref: string;
6
+ payload: {
7
+ connectionStatus: "connected" | "disconnected";
8
+ };
9
+ });
10
+ export type CreateDeeplinkResponse = ({
11
+ ref: string;
12
+ payload: {
13
+ status: 'error' | 'success';
14
+ errorCode?: string;
15
+ data?: {
16
+ deeplink: string;
17
+ };
18
+ };
19
+ });
@@ -0,0 +1,5 @@
1
+ export var SubscriptionEventType;
2
+ (function (SubscriptionEventType) {
3
+ SubscriptionEventType["CONNECTION_STATUS"] = "connection_status";
4
+ })(SubscriptionEventType || (SubscriptionEventType = {}));
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxxQkFFWDtBQUZELFdBQVkscUJBQXFCO0lBQy9CLGdFQUF1QyxDQUFBO0FBQ3pDLENBQUMsRUFGVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBRWhDIn0=
@@ -1,2 +1,4 @@
1
1
  export * from "./bridge";
2
2
  export * from "./routing";
3
+ export * from "./contacts";
4
+ export * from "./client";
@@ -1,3 +1,5 @@
1
1
  export * from "./bridge";
2
2
  export * from "./routing";
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxXQUFXLENBQUEifQ==
3
+ export * from "./contacts";
4
+ export * from "./client";
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxZQUFZLENBQUE7QUFDMUIsY0FBYyxVQUFVLENBQUEifQ==