UNPKG

6.32 kBTypeScriptView Raw
1/** import types */
2import type { PARAMS_SHARE_CARD, PARAMS_SHARE_LIVE, PARAMS_POPUP_BOT, PARAMS_PAYMENT, PARAMS_SNAPSHOTS, PARAMS_WITHDRAWAL, PARAMS_ADDRESS_ADD, PARAMS_ADDRESS_DELETE } from './scheme';
3import type { AUTH } from './token';
4import type { TlogLevelStr } from 'peeler-js/es/logger';
5interface Config {
6 client_id?: string;
7 debug?: boolean;
8 logLevel?: TlogLevelStr;
9}
10declare const SUPPORT_APIS: {
11 address_add: boolean;
12 address_del: boolean;
13 conversation: boolean;
14 getContext: boolean;
15 getUserInfo: boolean;
16 login: boolean;
17 logout: boolean;
18 payment: boolean;
19 playlist: boolean;
20 popup_user: boolean;
21 popup_bot: boolean;
22 reloadTheme: boolean;
23 requestToken: boolean;
24 share_text: boolean;
25 share_image: boolean;
26 share_contact: boolean;
27 share_app_card: boolean;
28 share_live: boolean;
29 share_post: boolean;
30 showToast: boolean;
31 snapshot: boolean;
32 transfer: boolean;
33 withdrawal: boolean;
34};
35export declare class Bridge {
36 private config?;
37 private _token?;
38 private _userInfo?;
39 private logger;
40 constructor(config?: Config);
41 /**
42 * get the app version
43 */
44 get version(): string | undefined;
45 /**
46 * get the code which be used to get access-token
47 */
48 get code(): string | undefined;
49 /**
50 * get the code-verifier which be used to get access-token
51 */
52 get codeVerifier(): string | null | undefined;
53 /**
54 * get conversation id
55 */
56 get conversationId(): string | undefined;
57 /**
58 * get API support info
59 */
60 get supportAPIs(): typeof SUPPORT_APIS;
61 /**
62 * judgement whether or not in mixin or reborn app
63 */
64 get isMixin(): boolean;
65 /**
66 * judgement whether or not in reborn app
67 */
68 get isReborn(): boolean;
69 /**
70 * get access token
71 */
72 get token(): string | null | undefined;
73 /**
74 * get mixin app context
75 */
76 getContext(): {
77 [props: string]: any;
78 app_version: string;
79 immersive: boolean;
80 appearance: "light" | "dark";
81 currency: string;
82 locale: string;
83 platform: "iOS" | "Android" | "Desktop";
84 conversation_id: string;
85 } | undefined;
86 /**
87 * reload the theme according to theme-color
88 */
89 reloadTheme(): void;
90 /**
91 * call native message window
92 * Android Only
93 */
94 showToast(msg: string): void;
95 /**
96 * play audio by mixin native player
97 */
98 playlist(src: string[]): void;
99 /**
100 * go login page
101 * @type { phone?: boolean | number; profile?: boolean | number; contacts?: boolean | number; assets?: boolean | number; snapshots?: boolean | number; messages?: boolean | number; code_challenge?: boolean; } AUTH
102 */
103 login(auth: AUTH, params?: {
104 oauth_url?: string;
105 client_id?: string;
106 redirect_url?: string;
107 state?: string;
108 code_challenge?: boolean;
109 }): void;
110 /**
111 * do logout
112 * @param reload whether reload the page
113 */
114 logout(reload?: boolean): void;
115 /**
116 * request access-token by code
117 * @param params request params
118 * @param persistence whether persist the code
119 * @returns
120 */
121 requestToken(params?: {
122 code?: string;
123 client_id?: string;
124 code_verifier?: string;
125 }, persistence?: boolean): Promise<string | null>;
126 /**
127 * get user infomations by request https://api.mixin.one/me API
128 */
129 getUserInfo(token?: string): Promise<Record<string, any> | null>;
130 /**
131 * evoke payment checkout by generate pay scheme-url
132 * @type { recipient: string; asset: string; amount: string; trace?: string; memo?: string | Record<string, string>; } PARAMS_PAYMENT
133 */
134 payment(params: PARAMS_PAYMENT): {
135 url?: string;
136 params: PARAMS_PAYMENT;
137 } | undefined;
138 /**
139 * evoke transfer checkout by generate pay scheme-url
140 * @param recipient recipient id
141 */
142 transfer(recipient: string): string | undefined;
143 /**
144 * evoke transfer detail by generate snapshots scheme-url
145 * @type { trace_id?: string; snapshot_id?: string; } PARAMS_SNAPSHOTS
146 */
147 snapshot(params: PARAMS_SNAPSHOTS): string | undefined;
148 /**
149 * evoke withdrawal of an asset by generate withdrawal scheme-url
150 * @type { address: string; asset: string; amount: string; trace?: string; memo?: string | Record<string, string>; } PARAMS_WITHDRAWAL
151 */
152 withdrawal(params: PARAMS_WITHDRAWAL): {
153 url?: string;
154 params: PARAMS_WITHDRAWAL;
155 } | undefined;
156 /**
157 * evoke withdrawal-address action by generate address scheme-url
158 * @param type 'add' | 'del'
159 * @param params PARAMS_ADDRESS_ADD | PARAMS_ADDRESS_DELETE
160 */
161 address(type: 'add', params: PARAMS_ADDRESS_ADD): string | undefined;
162 address(type: 'del', params: PARAMS_ADDRESS_DELETE): string | undefined;
163 /**
164 * evoke share action by generate share scheme-url
165 * @param category 'text' | 'image' | 'contact' | 'app_card' | 'live' | 'post'
166 * @param params string | PARAMS_SHARE_CARD | PARAMS_SHARE_LIVE
167 */
168 share(category: 'text', txt: string): string | undefined;
169 share(category: 'image', url: string): string | undefined;
170 share(category: 'contact', user_id: string): string | undefined;
171 share(category: 'post', content: string): string | undefined;
172 share(category: 'app_card', params: PARAMS_SHARE_CARD): string | undefined;
173 share(category: 'live', params: PARAMS_SHARE_LIVE): string | undefined;
174 /**
175 * evoke user or bot's pop-up by generate scheme-url
176 * @param type 'user' | 'bot'
177 * @param params user_id | PARAMS_POPUP_BOT
178 */
179 popup(type: 'user', user_id: string): string | undefined;
180 popup(type: 'bot', params: PARAMS_POPUP_BOT): string | undefined;
181 /**
182 * evoke conversation by generate conversations scheme-url
183 * @param recipient conversation id
184 */
185 conversation(conversation_id: string): string | undefined;
186 private getCode;
187 private handlerError;
188}
189export default Bridge;