@typexim/web-sdk 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 (33) hide show
  1. package/dist/types/enums/business.d.ts +115 -0
  2. package/dist/types/enums/index.d.ts +2 -0
  3. package/dist/types/enums/sdk.d.ts +5 -0
  4. package/dist/types/events.d.ts +56 -0
  5. package/dist/types/index.d.ts +21 -0
  6. package/dist/types/interfaces/business.d.ts +141 -0
  7. package/dist/types/interfaces/index.d.ts +3 -0
  8. package/dist/types/interfaces/pushMessage.d.ts +33 -0
  9. package/dist/types/interfaces/sdk/api.d.ts +74 -0
  10. package/dist/types/interfaces/sdk/common.d.ts +42 -0
  11. package/dist/types/interfaces/sdk/index.d.ts +2 -0
  12. package/dist/types/modules/Base.d.ts +51 -0
  13. package/dist/types/modules/BusinessWebsocket.d.ts +21 -0
  14. package/dist/types/modules/ChatSDK.d.ts +120 -0
  15. package/dist/types/modules/FeedCache.d.ts +21 -0
  16. package/dist/types/modules/HttpClient.d.ts +21 -0
  17. package/dist/types/modules/Logger.d.ts +13 -0
  18. package/dist/types/modules/PushMessageProcessor.d.ts +28 -0
  19. package/dist/types/modules/ReConnectWebsocket.d.ts +29 -0
  20. package/dist/types/modules/SingletonLock.d.ts +6 -0
  21. package/dist/types/modules/Storage.d.ts +6 -0
  22. package/dist/types/modules/Version.d.ts +7 -0
  23. package/dist/types/utils/http.d.ts +4 -0
  24. package/dist/types/utils/makeSign.d.ts +2 -0
  25. package/dist/types/utils/message.d.ts +31 -0
  26. package/dist/types/utils/misc.d.ts +1 -0
  27. package/dist/types/utils/promise.d.ts +4 -0
  28. package/dist/types/utils/sleep.d.ts +2 -0
  29. package/dist/web-sdk.esm.js +1525 -0
  30. package/dist/web-sdk.js +1532 -0
  31. package/package.json +44 -0
  32. package/rollup.config.js +39 -0
  33. package/tsconfig.json +22 -0
@@ -0,0 +1,21 @@
1
+ import { Feed } from '../interfaces';
2
+ export default class FeedCache {
3
+ private _isSyncCompleted;
4
+ private map;
5
+ private chatMap;
6
+ private list;
7
+ private waitMap;
8
+ constructor();
9
+ getAll(): Feed[];
10
+ get(feedId: string): Feed | null;
11
+ getByChatId(chatId: string): Feed | null;
12
+ waitFor(feedId: string): Promise<Feed | null>;
13
+ private resolveWait;
14
+ remove(feedId: string): boolean;
15
+ push(feed: Feed): void;
16
+ unshift(feed: Feed): void;
17
+ update(feed: Feed): void;
18
+ markSyncComplete(): void;
19
+ isSyncCompleted(): boolean;
20
+ reset(): void;
21
+ }
@@ -0,0 +1,21 @@
1
+ import { AxiosRequestConfig } from 'axios';
2
+ import { ChatSDKContext, HttpClientResponse } from '../interfaces/sdk';
3
+ import Logger from './Logger';
4
+ export type HttpClientConfig = {
5
+ host: string;
6
+ context: ChatSDKContext;
7
+ logger: Logger;
8
+ developer?: string;
9
+ };
10
+ export type HttpClientRequestConfig<Data = unknown> = AxiosRequestConfig<Data> & {
11
+ needSign?: boolean;
12
+ };
13
+ export default class HttpClient {
14
+ private api;
15
+ private context;
16
+ private logger;
17
+ constructor(config: HttpClientConfig);
18
+ request<ApiRequestData = unknown, ApiResponseData = unknown>(config: HttpClientRequestConfig<ApiRequestData>): Promise<HttpClientResponse<ApiResponseData>>;
19
+ get<ApiRequestParams = unknown, ApiResponseData = unknown>(url: string, params?: ApiRequestParams, config?: HttpClientRequestConfig): Promise<HttpClientResponse<ApiResponseData>>;
20
+ post<ApiRequestData = unknown, ApiResponseData = unknown>(url: string, data?: ApiRequestData, config?: HttpClientRequestConfig<ApiRequestData>): Promise<HttpClientResponse<ApiResponseData>>;
21
+ }
@@ -0,0 +1,13 @@
1
+ import { LogLevel } from '../enums';
2
+ export default class Logger {
3
+ private level;
4
+ private logHandler;
5
+ constructor();
6
+ private getPriority;
7
+ private createLogHandler;
8
+ private log;
9
+ setLogLevel(level: LogLevel): void;
10
+ info(message: any, ...args: any[]): void;
11
+ warn(message: any, ...args: any[]): void;
12
+ error(message: any, ...args: any[]): void;
13
+ }
@@ -0,0 +1,28 @@
1
+ import { CHAT_SDK_EVENT_MAP } from '../events';
2
+ import { ChatSDKContext, PushMessage } from '../interfaces';
3
+ import Base from './Base';
4
+ import FeedCache from './FeedCache';
5
+ import Logger from './Logger';
6
+ export default class PushMessageProcessor {
7
+ private context;
8
+ private logger;
9
+ private emitter;
10
+ private feedCache;
11
+ private handleKickoff;
12
+ constructor(config: {
13
+ context: ChatSDKContext;
14
+ logger: Logger;
15
+ emitter: Base<CHAT_SDK_EVENT_MAP>;
16
+ feedCache: FeedCache;
17
+ onKickoff: () => void;
18
+ });
19
+ private emitFeedListUpdated;
20
+ private processCreateFeed;
21
+ private processDeleteFeed;
22
+ private processAddMessage;
23
+ private processUpdateMessage;
24
+ private processPushLiveMessage;
25
+ private processReadMessage;
26
+ private processKickOutDevice;
27
+ process(pushMessage: PushMessage): void;
28
+ }
@@ -0,0 +1,29 @@
1
+ import { PushMessage } from '../interfaces';
2
+ import Base from './Base';
3
+ import Logger from './Logger';
4
+ export type ReConnectWebsocketConfig = {
5
+ url: string;
6
+ logger: Logger;
7
+ };
8
+ export default class ReConnectWebsocket extends Base<{
9
+ message: PushMessage;
10
+ kickoff: void;
11
+ }> {
12
+ private url;
13
+ private logger;
14
+ private ws;
15
+ private destroyed;
16
+ private pingTimeout;
17
+ private pongTimeout;
18
+ private reConnectTimeout;
19
+ constructor(config: ReConnectWebsocketConfig);
20
+ private disconnect;
21
+ private connect;
22
+ private reConnect;
23
+ send(message: any): boolean;
24
+ private sendAck;
25
+ destroy(): void;
26
+ private delaySendPing;
27
+ private waitPong;
28
+ private kickOff;
29
+ }
@@ -0,0 +1,6 @@
1
+ export default class SingletonLock {
2
+ private destroyed;
3
+ private promise;
4
+ constructor();
5
+ request(): Promise<boolean>;
6
+ }
@@ -0,0 +1,6 @@
1
+ export default class Storage {
2
+ private static key;
3
+ static set(value: any): void;
4
+ static get(): any;
5
+ static clear(): void;
6
+ }
@@ -0,0 +1,7 @@
1
+ export default class Version {
2
+ private version;
3
+ constructor();
4
+ increment(): void;
5
+ get(): number;
6
+ check(curVersion: number): boolean;
7
+ }
@@ -0,0 +1,4 @@
1
+ import { ApiResponseCode } from '../enums';
2
+ import { HttpClientResponseFail, HttpClientResponseOk } from '../interfaces/sdk';
3
+ export declare function createErrorResponse(code: ApiResponseCode, msg: string): HttpClientResponseFail;
4
+ export declare function createOkResponse<T = unknown>(data: T): HttpClientResponseOk<T>;
@@ -0,0 +1,2 @@
1
+ declare const makeSign: (data: any, secretKey: string) => Promise<string>;
2
+ export default makeSign;
@@ -0,0 +1,31 @@
1
+ export declare const makePositions: (config: {
2
+ maxPosition: number;
3
+ minPosition: number;
4
+ lastPosition?: number;
5
+ limit: number;
6
+ }) => number[];
7
+ export declare const stringifyCustomMessageContent: (payload: {
8
+ client_msg_id?: string;
9
+ content: any;
10
+ }) => string;
11
+ /**
12
+ * 解析message_type_id为MessageType.custom的消息内容
13
+ */
14
+ export declare const parseCustomMessageContent: <T = any>(str: string) => {
15
+ client_msg_id?: string;
16
+ content?: T;
17
+ };
18
+ /**
19
+ * 解析message_kind_id为MessageKind.system,message_type_id为MessageType.text的消息内容
20
+ */
21
+ export declare const parseSystemMessageContent: (str: string) => {
22
+ text?: string;
23
+ text_i18n?: Record<string, string>;
24
+ };
25
+ /**
26
+ * 解析message_kind_id为MessageKind.text,message_type_id为MessageType.text的消息内容
27
+ */
28
+ export declare const parseTextMessageContent: (str: string) => {
29
+ text?: string;
30
+ client_msg_id?: string;
31
+ };
@@ -0,0 +1 @@
1
+ export declare const jsonParse: <T>(content: string) => T | null;
@@ -0,0 +1,4 @@
1
+ export declare const withResolvers: <T>() => {
2
+ promise: Promise<T>;
3
+ resolve: (value: T) => void;
4
+ };
@@ -0,0 +1,2 @@
1
+ declare const _default: (ms: number) => Promise<unknown>;
2
+ export default _default;