@norcy/react-native-toolkit 0.1.11 → 0.1.12

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,355 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNativeToolkit = require("@norcy/react-native-toolkit");
8
+ var _reactNative = require("react-native");
9
+ var _reactNativeDeviceInfo = require("react-native-device-info");
10
+ var _constant = require("./constant");
11
+ var _i18n = require("./i18n");
12
+ const AV = require('leancloud-storage');
13
+ let CURRENT_USER = null;
14
+ let WeiXinId = '';
15
+ let WeiXinSecret = '';
16
+ const AVUserToLocalUser = user => {
17
+ return {
18
+ nickname: user.get('nickname'),
19
+ email: user.get('email'),
20
+ headimgurl: user.get('headimgurl'),
21
+ type: user.get('type'),
22
+ AVUser: user
23
+ };
24
+ };
25
+ const onLoginFinish = _ref => {
26
+ let {
27
+ isAuto = false,
28
+ user,
29
+ error,
30
+ code
31
+ } = _ref;
32
+ const data = {
33
+ isAuto,
34
+ user,
35
+ error,
36
+ code
37
+ };
38
+ if (user) {
39
+ _reactNativeToolkit.PrefData.setValue(_reactNativeToolkit.BuildInPrefs.LastLoginType, user.type);
40
+ }
41
+ _reactNativeToolkit.Notification.postNotification('onLogin', data);
42
+ };
43
+ const doLeanCloudLogin = async (authData, userData, callback) => {
44
+ console.log('Lean Cloud 开始登录', userData);
45
+ // loginType 空说明是老用户
46
+ const loginType = authData.loginType ? authData.loginType : 'apple';
47
+ let loginTypeNum = _reactNativeToolkit.LoginType.LoginTypeApple;
48
+ if (loginType === 'wechat') {
49
+ loginTypeNum = _reactNativeToolkit.LoginType.LoginTypeWeChat;
50
+ } else if (loginType === 'visitor') {
51
+ loginTypeNum = _reactNativeToolkit.LoginType.LoginTypeVisitor;
52
+ }
53
+ AV.User.loginWithAuthData(authData, loginType, {
54
+ failOnNotExist: true
55
+ }).then(user => {
56
+ // 登录成功
57
+ console.log('Lean Cloud 登录成功');
58
+ // 每次重新鉴权都更新头像和昵称,避免微信头像过期
59
+ // if (userData?.nickname) {
60
+ // user.set('nickname', userData?.nickname);
61
+ // }
62
+ // if (userData?.headimgurl) {
63
+ // user.set('headimgurl', userData?.headimgurl);
64
+ // }
65
+ // user.save();
66
+ CURRENT_USER = AVUserToLocalUser(user);
67
+ callback({
68
+ user: CURRENT_USER
69
+ });
70
+ }, error => {
71
+ if (error.code === 211) {
72
+ // 创建用户,并补充资料
73
+ console.log('创建用户,并补充资料');
74
+ const newUser = new AV.User();
75
+ const email = userData === null || userData === void 0 ? void 0 : userData.email;
76
+ if (email) {
77
+ newUser.setEmail(email);
78
+ }
79
+ newUser.set('nickname', userData === null || userData === void 0 ? void 0 : userData.nickname);
80
+ newUser.set('headimgurl', userData === null || userData === void 0 ? void 0 : userData.headimgurl);
81
+ newUser.set('type', loginTypeNum);
82
+ if (_reactNative.Platform.OS === 'android') {
83
+ newUser.set('source', 2);
84
+ }
85
+ newUser.set('toLDB', 1);
86
+ newUser.loginWithAuthData(authData, loginType).then(user => {
87
+ // 登录成功
88
+ console.log('Lean Cloud 注册成功');
89
+ CURRENT_USER = AVUserToLocalUser(user);
90
+ CURRENT_USER.isNew = true;
91
+ // 标记为当前用户是在本机注册的 TODO
92
+ // PrefData.setValue(Prefs.RegisterInThisDevice, true);
93
+ callback({
94
+ user: CURRENT_USER
95
+ });
96
+ }, error2 => {
97
+ // 登录失败
98
+ console.log('Lean Cloud 登录失败', error2);
99
+ callback({
100
+ error: error2
101
+ });
102
+ });
103
+ } else {
104
+ // 登录失败
105
+ console.log('Lean Cloud 登录失败', error);
106
+ callback({
107
+ error: error
108
+ });
109
+ }
110
+ });
111
+ };
112
+ const LoginManager = {
113
+ setup: (WeChatId, WeChatSecret) => {
114
+ WeiXinId = WeChatId;
115
+ WeChatSecret = WeChatSecret;
116
+ },
117
+ // 自动根据已有的 User 信息进行登录鉴权,如果 User 为空则失败
118
+ autoLogin: async () => {
119
+ const user = await AV.User.currentAsync();
120
+ if (user) {
121
+ console.log('自动登录成功');
122
+ CURRENT_USER = AVUserToLocalUser(user);
123
+ onLoginFinish({
124
+ isAuto: true,
125
+ user: CURRENT_USER
126
+ });
127
+ } else {
128
+ onLoginFinish({
129
+ isAuto: true,
130
+ error: 'User Not Login Yet'
131
+ });
132
+ }
133
+ },
134
+ // 如果 User 为空,则唤起苹果登录框;如果 User 不为空,直接鉴权
135
+ login: async function (type) {
136
+ let devAuthData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
137
+ let loadingCallback = arguments.length > 2 ? arguments[2] : undefined;
138
+ // 如果之前已经鉴权过,则直接使用上次鉴权的 AuthData
139
+ const cuurentUser = await AV.User.currentAsync();
140
+ if (cuurentUser) {
141
+ await LoginManager.autoLogin();
142
+ return;
143
+ }
144
+
145
+ // 改为注入 delegate
146
+ if (__DEV__) {
147
+ if (devAuthData) {
148
+ doLeanCloudLogin(devAuthData, undefined, _ref2 => {
149
+ let {
150
+ user,
151
+ error
152
+ } = _ref2;
153
+ onLoginFinish({
154
+ user,
155
+ error
156
+ });
157
+ });
158
+ return;
159
+ }
160
+ }
161
+ if (type === _reactNativeToolkit.LoginType.LoginTypeApple) {
162
+ const {
163
+ user,
164
+ email,
165
+ identityToken,
166
+ error,
167
+ code
168
+ } = await _reactNativeToolkit.AppleLoginUtil.requestAppleUserForLogin();
169
+ if (!user || error) {
170
+ onLoginFinish({
171
+ error,
172
+ code
173
+ });
174
+ return;
175
+ } else {
176
+ let userData = {
177
+ userId: user,
178
+ email: email,
179
+ authData: {
180
+ openid: user,
181
+ access_token: identityToken,
182
+ expires_in: 99999999,
183
+ loginType: 'apple'
184
+ }
185
+ };
186
+ _reactNativeToolkit.AppleLoginUtil.fetchAndUpdateCredentialState(userData.userId, _ref3 => {
187
+ let {
188
+ result,
189
+ error: error2
190
+ } = _ref3;
191
+ if (error || result !== _constant.LoginState.AUTHORIZED) {
192
+ onLoginFinish({
193
+ error: error2
194
+ });
195
+ } else {
196
+ loadingCallback && loadingCallback();
197
+ doLeanCloudLogin(userData.authData, userData, _ref4 => {
198
+ let {
199
+ user: loginUser,
200
+ error: error3
201
+ } = _ref4;
202
+ onLoginFinish({
203
+ user: loginUser,
204
+ error: error3
205
+ });
206
+ });
207
+ }
208
+ });
209
+ }
210
+ } else if (type === _reactNativeToolkit.LoginType.LoginTypeWeChat) {
211
+ _reactNativeToolkit.WeChatLoginUtil.doLogin(WeiXinId, WeiXinSecret, _ref5 => {
212
+ let {
213
+ nickname,
214
+ headimgurl,
215
+ openid,
216
+ unionid,
217
+ error
218
+ } = _ref5;
219
+ if (error) {
220
+ onLoginFinish({
221
+ error
222
+ });
223
+ } else {
224
+ let userData = {
225
+ nickname: nickname,
226
+ headimgurl: headimgurl,
227
+ authData: {
228
+ openid: openid,
229
+ unionid: unionid,
230
+ access_token: openid,
231
+ expires_in: 99999999,
232
+ loginType: 'wechat'
233
+ }
234
+ };
235
+ loadingCallback && loadingCallback();
236
+ doLeanCloudLogin(userData.authData, userData, _ref6 => {
237
+ let {
238
+ user,
239
+ error: error2
240
+ } = _ref6;
241
+ onLoginFinish({
242
+ user,
243
+ error: error2
244
+ });
245
+ });
246
+ }
247
+ });
248
+ } else if (type === _reactNativeToolkit.LoginType.LoginTypeVisitor) {
249
+ const uniqueId = (0, _reactNativeDeviceInfo.getUniqueIdSync)();
250
+ console.log(uniqueId);
251
+ let userData = {
252
+ nickname: _i18n.i18n.t('游客'),
253
+ authData: {
254
+ openid: uniqueId,
255
+ access_token: uniqueId,
256
+ expires_in: 99999999,
257
+ loginType: 'visitor'
258
+ }
259
+ };
260
+ loadingCallback && loadingCallback();
261
+ doLeanCloudLogin(userData.authData, userData, _ref7 => {
262
+ let {
263
+ user,
264
+ error
265
+ } = _ref7;
266
+ onLoginFinish({
267
+ user,
268
+ error
269
+ });
270
+ });
271
+ } else {
272
+ onLoginFinish({
273
+ error: _i18n.i18n.t('未知登录类型,不应该走到这')
274
+ });
275
+ }
276
+ },
277
+ logOut: callback => {
278
+ console.log('onLogout');
279
+ AV.User.logOut();
280
+ CURRENT_USER = null;
281
+ callback && callback();
282
+ _reactNativeToolkit.Notification.postNotification('onLogout');
283
+ },
284
+ isLogin: () => {
285
+ return LoginManager.currentUser() != null;
286
+ },
287
+ isVisitor: () => {
288
+ var _LoginManager$current;
289
+ return LoginManager.isLogin() && ((_LoginManager$current = LoginManager.currentUser()) === null || _LoginManager$current === void 0 ? void 0 : _LoginManager$current.type) === _reactNativeToolkit.LoginType.LoginTypeVisitor;
290
+ },
291
+ currentUser: () => {
292
+ // console.log('current user is ', CURRENT_USER);
293
+ return CURRENT_USER;
294
+ },
295
+ batchUpdateUser: async (keys, values, callback) => {
296
+ console.log('Batch Update User Begin: ' + keys + ' ' + values);
297
+ const user = await AV.User.currentAsync();
298
+ if (!user) {
299
+ return;
300
+ }
301
+ const oldValues = [];
302
+ for (let i = 0; i < keys.length; i++) {
303
+ oldValues.push(user.get(keys[i]));
304
+ user.set(keys[i], values[i]);
305
+ }
306
+ try {
307
+ const newUser = await user.save();
308
+ CURRENT_USER = AVUserToLocalUser(newUser);
309
+ console.log('Batch Update User End', user);
310
+ callback && callback();
311
+ } catch (e) {
312
+ console.error(e);
313
+ for (let i = 0; i < keys.length; i++) {
314
+ user.set(keys[i], oldValues[i]);
315
+ }
316
+ callback && callback(e);
317
+ }
318
+ },
319
+ updateUser: (key, value, callback) => {
320
+ LoginManager.batchUpdateUser([key], [value], callback);
321
+ },
322
+ deleteUser: async callback => {
323
+ try {
324
+ if (!CURRENT_USER) {
325
+ return;
326
+ }
327
+ if (CURRENT_USER.type === _reactNativeToolkit.LoginType.LoginTypeApple) {
328
+ await _reactNativeToolkit.AppleLoginUtil.requestDeleteAccount();
329
+ }
330
+ const user = await AV.User.currentAsync();
331
+ console.log('get user success');
332
+ await user.destroy();
333
+ console.log('delete user success');
334
+ callback();
335
+ } catch (error) {
336
+ console.error(error);
337
+ callback(error);
338
+ }
339
+ },
340
+ lastLoginType: () => {
341
+ return _reactNativeToolkit.PrefData.getValue(_reactNativeToolkit.BuildInPrefs.LastLoginType);
342
+ },
343
+ fetchWeChatAvatar: callback => {
344
+ _reactNativeToolkit.WeChatLoginUtil.doLogin(WeiXinId, WeiXinSecret, _ref8 => {
345
+ let {
346
+ headimgurl
347
+ } = _ref8;
348
+ callback({
349
+ headimgurl
350
+ });
351
+ });
352
+ }
353
+ };
354
+ var _default = exports.default = LoginManager;
355
+ //# sourceMappingURL=LoginManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNativeToolkit","require","_reactNative","_reactNativeDeviceInfo","_constant","_i18n","AV","CURRENT_USER","WeiXinId","WeiXinSecret","AVUserToLocalUser","user","nickname","get","email","headimgurl","type","AVUser","onLoginFinish","_ref","isAuto","error","code","data","PrefData","setValue","BuildInPrefs","LastLoginType","Notification","postNotification","doLeanCloudLogin","authData","userData","callback","console","log","loginType","loginTypeNum","LoginType","LoginTypeApple","LoginTypeWeChat","LoginTypeVisitor","User","loginWithAuthData","failOnNotExist","then","newUser","setEmail","set","Platform","OS","isNew","error2","LoginManager","setup","WeChatId","WeChatSecret","autoLogin","currentAsync","login","devAuthData","arguments","length","undefined","loadingCallback","cuurentUser","__DEV__","_ref2","identityToken","AppleLoginUtil","requestAppleUserForLogin","userId","openid","access_token","expires_in","fetchAndUpdateCredentialState","_ref3","result","LoginState","AUTHORIZED","_ref4","loginUser","error3","WeChatLoginUtil","doLogin","_ref5","unionid","_ref6","uniqueId","getUniqueIdSync","i18n","t","_ref7","logOut","isLogin","currentUser","isVisitor","_LoginManager$current","batchUpdateUser","keys","values","oldValues","i","push","save","e","updateUser","key","value","deleteUser","requestDeleteAccount","destroy","lastLoginType","getValue","fetchWeChatAvatar","_ref8","_default","exports","default"],"sources":["LoginManager.ts"],"sourcesContent":["import {\n AppleLoginUtil,\n BuildInPrefs,\n LoginType,\n Notification,\n PrefData,\n WeChatLoginUtil,\n} from '@norcy/react-native-toolkit';\nimport { User } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { getUniqueIdSync } from 'react-native-device-info';\nimport {\n LoginAuthDataType,\n LoginState,\n LoginUserDataType,\n UserType,\n} from './constant';\nimport { i18n } from './i18n';\n\nconst AV = require('leancloud-storage');\n\nlet CURRENT_USER: UserType | null = null;\n\nlet WeiXinId = '';\nlet WeiXinSecret = '';\n\nconst AVUserToLocalUser = (user: User) => {\n return {\n nickname: user.get('nickname'),\n email: user.get('email'),\n headimgurl: user.get('headimgurl'),\n type: user.get('type'),\n AVUser: user,\n };\n};\n\nconst onLoginFinish = ({\n isAuto = false,\n user,\n error,\n code,\n}: {\n isAuto?: boolean;\n user?: UserType;\n error?: string | object;\n code?: number;\n}) => {\n const data = { isAuto, user, error, code };\n if (user) {\n PrefData.setValue(BuildInPrefs.LastLoginType, user.type);\n }\n Notification.postNotification('onLogin', data);\n};\n\nconst doLeanCloudLogin = async (\n authData: LoginAuthDataType,\n userData: LoginUserDataType | undefined,\n callback: ({ user, error }: { user?: UserType; error?: any }) => void\n) => {\n console.log('Lean Cloud 开始登录', userData);\n // loginType 空说明是老用户\n const loginType = authData.loginType ? authData.loginType : 'apple';\n let loginTypeNum = LoginType.LoginTypeApple;\n if (loginType === 'wechat') {\n loginTypeNum = LoginType.LoginTypeWeChat;\n } else if (loginType === 'visitor') {\n loginTypeNum = LoginType.LoginTypeVisitor;\n }\n\n AV.User.loginWithAuthData(authData, loginType, { failOnNotExist: true }).then(\n (user: User) => {\n // 登录成功\n console.log('Lean Cloud 登录成功');\n // 每次重新鉴权都更新头像和昵称,避免微信头像过期\n // if (userData?.nickname) {\n // user.set('nickname', userData?.nickname);\n // }\n // if (userData?.headimgurl) {\n // user.set('headimgurl', userData?.headimgurl);\n // }\n // user.save();\n CURRENT_USER = AVUserToLocalUser(user);\n callback({ user: CURRENT_USER });\n },\n (error: any) => {\n if (error.code === 211) {\n // 创建用户,并补充资料\n console.log('创建用户,并补充资料');\n const newUser = new AV.User();\n const email = userData?.email;\n if (email) {\n newUser.setEmail(email);\n }\n newUser.set('nickname', userData?.nickname);\n newUser.set('headimgurl', userData?.headimgurl);\n newUser.set('type', loginTypeNum);\n if (Platform.OS === 'android') {\n newUser.set('source', 2);\n }\n newUser.set('toLDB', 1);\n newUser.loginWithAuthData(authData, loginType).then(\n (user: User) => {\n // 登录成功\n console.log('Lean Cloud 注册成功');\n CURRENT_USER = AVUserToLocalUser(user);\n CURRENT_USER.isNew = true;\n // 标记为当前用户是在本机注册的 TODO\n // PrefData.setValue(Prefs.RegisterInThisDevice, true);\n callback({ user: CURRENT_USER });\n },\n (error2: any) => {\n // 登录失败\n console.log('Lean Cloud 登录失败', error2);\n callback({ error: error2 });\n }\n );\n } else {\n // 登录失败\n console.log('Lean Cloud 登录失败', error);\n callback({ error: error });\n }\n }\n );\n};\n\nconst LoginManager = {\n setup: (WeChatId: string, WeChatSecret: string) => {\n WeiXinId = WeChatId;\n WeChatSecret = WeChatSecret;\n },\n\n // 自动根据已有的 User 信息进行登录鉴权,如果 User 为空则失败\n autoLogin: async () => {\n const user = await AV.User.currentAsync();\n if (user) {\n console.log('自动登录成功');\n CURRENT_USER = AVUserToLocalUser(user);\n onLoginFinish({ isAuto: true, user: CURRENT_USER });\n } else {\n onLoginFinish({ isAuto: true, error: 'User Not Login Yet' });\n }\n },\n\n // 如果 User 为空,则唤起苹果登录框;如果 User 不为空,直接鉴权\n login: async (\n type: LoginType,\n devAuthData: LoginAuthDataType | null = null,\n loadingCallback: Function\n ) => {\n // 如果之前已经鉴权过,则直接使用上次鉴权的 AuthData\n const cuurentUser = await AV.User.currentAsync();\n if (cuurentUser) {\n await LoginManager.autoLogin();\n return;\n }\n\n // 改为注入 delegate\n if (__DEV__) {\n if (devAuthData) {\n doLeanCloudLogin(devAuthData, undefined, ({ user, error }) => {\n onLoginFinish({ user, error });\n });\n return;\n }\n }\n\n if (type === LoginType.LoginTypeApple) {\n const { user, email, identityToken, error, code } =\n await AppleLoginUtil.requestAppleUserForLogin();\n if (!user || error) {\n onLoginFinish({ error, code });\n return;\n } else {\n let userData = {\n userId: user,\n email: email,\n authData: {\n openid: user,\n access_token: identityToken,\n expires_in: 99999999,\n loginType: 'apple',\n },\n };\n\n AppleLoginUtil.fetchAndUpdateCredentialState(\n userData.userId,\n ({ result, error: error2 }: { result: number; error: any }) => {\n if (error || result !== LoginState.AUTHORIZED) {\n onLoginFinish({ error: error2 });\n } else {\n loadingCallback && loadingCallback();\n doLeanCloudLogin(\n userData.authData,\n userData,\n ({ user: loginUser, error: error3 }) => {\n onLoginFinish({ user: loginUser, error: error3 });\n }\n );\n }\n }\n );\n }\n } else if (type === LoginType.LoginTypeWeChat) {\n WeChatLoginUtil.doLogin(\n WeiXinId,\n WeiXinSecret,\n ({\n nickname,\n headimgurl,\n openid,\n unionid,\n error,\n }: {\n nickname: string;\n headimgurl: string;\n openid: string;\n unionid: string;\n error: any;\n }) => {\n if (error) {\n onLoginFinish({ error });\n } else {\n let userData = {\n nickname: nickname,\n headimgurl: headimgurl,\n authData: {\n openid: openid,\n unionid: unionid,\n access_token: openid,\n expires_in: 99999999,\n loginType: 'wechat',\n },\n };\n loadingCallback && loadingCallback();\n doLeanCloudLogin(\n userData.authData,\n userData,\n ({ user, error: error2 }) => {\n onLoginFinish({ user, error: error2 });\n }\n );\n }\n }\n );\n } else if (type === LoginType.LoginTypeVisitor) {\n const uniqueId = getUniqueIdSync();\n console.log(uniqueId);\n let userData = {\n nickname: i18n.t('游客'),\n authData: {\n openid: uniqueId,\n access_token: uniqueId,\n expires_in: 99999999,\n loginType: 'visitor',\n },\n };\n loadingCallback && loadingCallback();\n doLeanCloudLogin(userData.authData, userData, ({ user, error }) => {\n onLoginFinish({ user, error });\n });\n } else {\n onLoginFinish({ error: i18n.t('未知登录类型,不应该走到这') });\n }\n },\n\n logOut: (callback: Function) => {\n console.log('onLogout');\n AV.User.logOut();\n CURRENT_USER = null;\n callback && callback();\n Notification.postNotification('onLogout');\n },\n\n isLogin: () => {\n return LoginManager.currentUser() != null;\n },\n\n isVisitor: () => {\n return (\n LoginManager.isLogin() &&\n LoginManager.currentUser()?.type === LoginType.LoginTypeVisitor\n );\n },\n\n currentUser: () => {\n // console.log('current user is ', CURRENT_USER);\n return CURRENT_USER;\n },\n\n batchUpdateUser: async (\n keys: string[],\n values: string[],\n callback: Function\n ) => {\n console.log('Batch Update User Begin: ' + keys + ' ' + values);\n const user = await AV.User.currentAsync();\n if (!user) {\n return;\n }\n const oldValues = [];\n for (let i = 0; i < keys.length; i++) {\n oldValues.push(user.get(keys[i]));\n user.set(keys[i], values[i]);\n }\n try {\n const newUser = await user.save();\n CURRENT_USER = AVUserToLocalUser(newUser);\n console.log('Batch Update User End', user);\n callback && callback();\n } catch (e) {\n console.error(e);\n for (let i = 0; i < keys.length; i++) {\n user.set(keys[i], oldValues[i]);\n }\n callback && callback(e);\n }\n },\n\n updateUser: (key: string, value: string, callback: Function) => {\n LoginManager.batchUpdateUser([key], [value], callback);\n },\n\n deleteUser: async (callback: Function) => {\n try {\n if (!CURRENT_USER) {\n return;\n }\n if (CURRENT_USER.type === LoginType.LoginTypeApple) {\n await AppleLoginUtil.requestDeleteAccount();\n }\n const user = await AV.User.currentAsync();\n console.log('get user success');\n await user.destroy();\n console.log('delete user success');\n callback();\n } catch (error) {\n console.error(error);\n callback(error);\n }\n },\n\n lastLoginType: () => {\n return PrefData.getValue(BuildInPrefs.LastLoginType);\n },\n\n fetchWeChatAvatar: (callback: Function) => {\n WeChatLoginUtil.doLogin(\n WeiXinId,\n WeiXinSecret,\n ({ headimgurl }: { headimgurl: string }) => {\n callback({ headimgurl });\n }\n );\n },\n};\n\nexport default LoginManager;\n"],"mappings":";;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AASA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AAMA,IAAAI,KAAA,GAAAJ,OAAA;AAEA,MAAMK,EAAE,GAAGL,OAAO,CAAC,mBAAmB,CAAC;AAEvC,IAAIM,YAA6B,GAAG,IAAI;AAExC,IAAIC,QAAQ,GAAG,EAAE;AACjB,IAAIC,YAAY,GAAG,EAAE;AAErB,MAAMC,iBAAiB,GAAIC,IAAU,IAAK;EACxC,OAAO;IACLC,QAAQ,EAAED,IAAI,CAACE,GAAG,CAAC,UAAU,CAAC;IAC9BC,KAAK,EAAEH,IAAI,CAACE,GAAG,CAAC,OAAO,CAAC;IACxBE,UAAU,EAAEJ,IAAI,CAACE,GAAG,CAAC,YAAY,CAAC;IAClCG,IAAI,EAAEL,IAAI,CAACE,GAAG,CAAC,MAAM,CAAC;IACtBI,MAAM,EAAEN;EACV,CAAC;AACH,CAAC;AAED,MAAMO,aAAa,GAAGC,IAAA,IAUhB;EAAA,IAViB;IACrBC,MAAM,GAAG,KAAK;IACdT,IAAI;IACJU,KAAK;IACLC;EAMF,CAAC,GAAAH,IAAA;EACC,MAAMI,IAAI,GAAG;IAAEH,MAAM;IAAET,IAAI;IAAEU,KAAK;IAAEC;EAAK,CAAC;EAC1C,IAAIX,IAAI,EAAE;IACRa,4BAAQ,CAACC,QAAQ,CAACC,gCAAY,CAACC,aAAa,EAAEhB,IAAI,CAACK,IAAI,CAAC;EAC1D;EACAY,gCAAY,CAACC,gBAAgB,CAAC,SAAS,EAAEN,IAAI,CAAC;AAChD,CAAC;AAED,MAAMO,gBAAgB,GAAG,MAAAA,CACvBC,QAA2B,EAC3BC,QAAuC,EACvCC,QAAqE,KAClE;EACHC,OAAO,CAACC,GAAG,CAAC,iBAAiB,EAAEH,QAAQ,CAAC;EACxC;EACA,MAAMI,SAAS,GAAGL,QAAQ,CAACK,SAAS,GAAGL,QAAQ,CAACK,SAAS,GAAG,OAAO;EACnE,IAAIC,YAAY,GAAGC,6BAAS,CAACC,cAAc;EAC3C,IAAIH,SAAS,KAAK,QAAQ,EAAE;IAC1BC,YAAY,GAAGC,6BAAS,CAACE,eAAe;EAC1C,CAAC,MAAM,IAAIJ,SAAS,KAAK,SAAS,EAAE;IAClCC,YAAY,GAAGC,6BAAS,CAACG,gBAAgB;EAC3C;EAEAnC,EAAE,CAACoC,IAAI,CAACC,iBAAiB,CAACZ,QAAQ,EAAEK,SAAS,EAAE;IAAEQ,cAAc,EAAE;EAAK,CAAC,CAAC,CAACC,IAAI,CAC1ElC,IAAU,IAAK;IACd;IACAuB,OAAO,CAACC,GAAG,CAAC,iBAAiB,CAAC;IAC9B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA5B,YAAY,GAAGG,iBAAiB,CAACC,IAAI,CAAC;IACtCsB,QAAQ,CAAC;MAAEtB,IAAI,EAAEJ;IAAa,CAAC,CAAC;EAClC,CAAC,EACAc,KAAU,IAAK;IACd,IAAIA,KAAK,CAACC,IAAI,KAAK,GAAG,EAAE;MACtB;MACAY,OAAO,CAACC,GAAG,CAAC,YAAY,CAAC;MACzB,MAAMW,OAAO,GAAG,IAAIxC,EAAE,CAACoC,IAAI,CAAC,CAAC;MAC7B,MAAM5B,KAAK,GAAGkB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAElB,KAAK;MAC7B,IAAIA,KAAK,EAAE;QACTgC,OAAO,CAACC,QAAQ,CAACjC,KAAK,CAAC;MACzB;MACAgC,OAAO,CAACE,GAAG,CAAC,UAAU,EAAEhB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEpB,QAAQ,CAAC;MAC3CkC,OAAO,CAACE,GAAG,CAAC,YAAY,EAAEhB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEjB,UAAU,CAAC;MAC/C+B,OAAO,CAACE,GAAG,CAAC,MAAM,EAAEX,YAAY,CAAC;MACjC,IAAIY,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;QAC7BJ,OAAO,CAACE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;MAC1B;MACAF,OAAO,CAACE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;MACvBF,OAAO,CAACH,iBAAiB,CAACZ,QAAQ,EAAEK,SAAS,CAAC,CAACS,IAAI,CAChDlC,IAAU,IAAK;QACd;QACAuB,OAAO,CAACC,GAAG,CAAC,iBAAiB,CAAC;QAC9B5B,YAAY,GAAGG,iBAAiB,CAACC,IAAI,CAAC;QACtCJ,YAAY,CAAC4C,KAAK,GAAG,IAAI;QACzB;QACA;QACAlB,QAAQ,CAAC;UAAEtB,IAAI,EAAEJ;QAAa,CAAC,CAAC;MAClC,CAAC,EACA6C,MAAW,IAAK;QACf;QACAlB,OAAO,CAACC,GAAG,CAAC,iBAAiB,EAAEiB,MAAM,CAAC;QACtCnB,QAAQ,CAAC;UAAEZ,KAAK,EAAE+B;QAAO,CAAC,CAAC;MAC7B,CACF,CAAC;IACH,CAAC,MAAM;MACL;MACAlB,OAAO,CAACC,GAAG,CAAC,iBAAiB,EAAEd,KAAK,CAAC;MACrCY,QAAQ,CAAC;QAAEZ,KAAK,EAAEA;MAAM,CAAC,CAAC;IAC5B;EACF,CACF,CAAC;AACH,CAAC;AAED,MAAMgC,YAAY,GAAG;EACnBC,KAAK,EAAEA,CAACC,QAAgB,EAAEC,YAAoB,KAAK;IACjDhD,QAAQ,GAAG+C,QAAQ;IACnBC,YAAY,GAAGA,YAAY;EAC7B,CAAC;EAED;EACAC,SAAS,EAAE,MAAAA,CAAA,KAAY;IACrB,MAAM9C,IAAI,GAAG,MAAML,EAAE,CAACoC,IAAI,CAACgB,YAAY,CAAC,CAAC;IACzC,IAAI/C,IAAI,EAAE;MACRuB,OAAO,CAACC,GAAG,CAAC,QAAQ,CAAC;MACrB5B,YAAY,GAAGG,iBAAiB,CAACC,IAAI,CAAC;MACtCO,aAAa,CAAC;QAAEE,MAAM,EAAE,IAAI;QAAET,IAAI,EAAEJ;MAAa,CAAC,CAAC;IACrD,CAAC,MAAM;MACLW,aAAa,CAAC;QAAEE,MAAM,EAAE,IAAI;QAAEC,KAAK,EAAE;MAAqB,CAAC,CAAC;IAC9D;EACF,CAAC;EAED;EACAsC,KAAK,EAAE,eAAAA,CACL3C,IAAe,EAGZ;IAAA,IAFH4C,WAAqC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IAAA,IAC5CG,eAAyB,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;IAEzB;IACA,MAAME,WAAW,GAAG,MAAM3D,EAAE,CAACoC,IAAI,CAACgB,YAAY,CAAC,CAAC;IAChD,IAAIO,WAAW,EAAE;MACf,MAAMZ,YAAY,CAACI,SAAS,CAAC,CAAC;MAC9B;IACF;;IAEA;IACA,IAAIS,OAAO,EAAE;MACX,IAAIN,WAAW,EAAE;QACf9B,gBAAgB,CAAC8B,WAAW,EAAEG,SAAS,EAAEI,KAAA,IAAqB;UAAA,IAApB;YAAExD,IAAI;YAAEU;UAAM,CAAC,GAAA8C,KAAA;UACvDjD,aAAa,CAAC;YAAEP,IAAI;YAAEU;UAAM,CAAC,CAAC;QAChC,CAAC,CAAC;QACF;MACF;IACF;IAEA,IAAIL,IAAI,KAAKsB,6BAAS,CAACC,cAAc,EAAE;MACrC,MAAM;QAAE5B,IAAI;QAAEG,KAAK;QAAEsD,aAAa;QAAE/C,KAAK;QAAEC;MAAK,CAAC,GAC/C,MAAM+C,kCAAc,CAACC,wBAAwB,CAAC,CAAC;MACjD,IAAI,CAAC3D,IAAI,IAAIU,KAAK,EAAE;QAClBH,aAAa,CAAC;UAAEG,KAAK;UAAEC;QAAK,CAAC,CAAC;QAC9B;MACF,CAAC,MAAM;QACL,IAAIU,QAAQ,GAAG;UACbuC,MAAM,EAAE5D,IAAI;UACZG,KAAK,EAAEA,KAAK;UACZiB,QAAQ,EAAE;YACRyC,MAAM,EAAE7D,IAAI;YACZ8D,YAAY,EAAEL,aAAa;YAC3BM,UAAU,EAAE,QAAQ;YACpBtC,SAAS,EAAE;UACb;QACF,CAAC;QAEDiC,kCAAc,CAACM,6BAA6B,CAC1C3C,QAAQ,CAACuC,MAAM,EACfK,KAAA,IAA+D;UAAA,IAA9D;YAAEC,MAAM;YAAExD,KAAK,EAAE+B;UAAuC,CAAC,GAAAwB,KAAA;UACxD,IAAIvD,KAAK,IAAIwD,MAAM,KAAKC,oBAAU,CAACC,UAAU,EAAE;YAC7C7D,aAAa,CAAC;cAAEG,KAAK,EAAE+B;YAAO,CAAC,CAAC;UAClC,CAAC,MAAM;YACLY,eAAe,IAAIA,eAAe,CAAC,CAAC;YACpClC,gBAAgB,CACdE,QAAQ,CAACD,QAAQ,EACjBC,QAAQ,EACRgD,KAAA,IAAwC;cAAA,IAAvC;gBAAErE,IAAI,EAAEsE,SAAS;gBAAE5D,KAAK,EAAE6D;cAAO,CAAC,GAAAF,KAAA;cACjC9D,aAAa,CAAC;gBAAEP,IAAI,EAAEsE,SAAS;gBAAE5D,KAAK,EAAE6D;cAAO,CAAC,CAAC;YACnD,CACF,CAAC;UACH;QACF,CACF,CAAC;MACH;IACF,CAAC,MAAM,IAAIlE,IAAI,KAAKsB,6BAAS,CAACE,eAAe,EAAE;MAC7C2C,mCAAe,CAACC,OAAO,CACrB5E,QAAQ,EACRC,YAAY,EACZ4E,KAAA,IAYM;QAAA,IAZL;UACCzE,QAAQ;UACRG,UAAU;UACVyD,MAAM;UACNc,OAAO;UACPjE;QAOF,CAAC,GAAAgE,KAAA;QACC,IAAIhE,KAAK,EAAE;UACTH,aAAa,CAAC;YAAEG;UAAM,CAAC,CAAC;QAC1B,CAAC,MAAM;UACL,IAAIW,QAAQ,GAAG;YACbpB,QAAQ,EAAEA,QAAQ;YAClBG,UAAU,EAAEA,UAAU;YACtBgB,QAAQ,EAAE;cACRyC,MAAM,EAAEA,MAAM;cACdc,OAAO,EAAEA,OAAO;cAChBb,YAAY,EAAED,MAAM;cACpBE,UAAU,EAAE,QAAQ;cACpBtC,SAAS,EAAE;YACb;UACF,CAAC;UACD4B,eAAe,IAAIA,eAAe,CAAC,CAAC;UACpClC,gBAAgB,CACdE,QAAQ,CAACD,QAAQ,EACjBC,QAAQ,EACRuD,KAAA,IAA6B;YAAA,IAA5B;cAAE5E,IAAI;cAAEU,KAAK,EAAE+B;YAAO,CAAC,GAAAmC,KAAA;YACtBrE,aAAa,CAAC;cAAEP,IAAI;cAAEU,KAAK,EAAE+B;YAAO,CAAC,CAAC;UACxC,CACF,CAAC;QACH;MACF,CACF,CAAC;IACH,CAAC,MAAM,IAAIpC,IAAI,KAAKsB,6BAAS,CAACG,gBAAgB,EAAE;MAC9C,MAAM+C,QAAQ,GAAG,IAAAC,sCAAe,EAAC,CAAC;MAClCvD,OAAO,CAACC,GAAG,CAACqD,QAAQ,CAAC;MACrB,IAAIxD,QAAQ,GAAG;QACbpB,QAAQ,EAAE8E,UAAI,CAACC,CAAC,CAAC,IAAI,CAAC;QACtB5D,QAAQ,EAAE;UACRyC,MAAM,EAAEgB,QAAQ;UAChBf,YAAY,EAAEe,QAAQ;UACtBd,UAAU,EAAE,QAAQ;UACpBtC,SAAS,EAAE;QACb;MACF,CAAC;MACD4B,eAAe,IAAIA,eAAe,CAAC,CAAC;MACpClC,gBAAgB,CAACE,QAAQ,CAACD,QAAQ,EAAEC,QAAQ,EAAE4D,KAAA,IAAqB;QAAA,IAApB;UAAEjF,IAAI;UAAEU;QAAM,CAAC,GAAAuE,KAAA;QAC5D1E,aAAa,CAAC;UAAEP,IAAI;UAAEU;QAAM,CAAC,CAAC;MAChC,CAAC,CAAC;IACJ,CAAC,MAAM;MACLH,aAAa,CAAC;QAAEG,KAAK,EAAEqE,UAAI,CAACC,CAAC,CAAC,eAAe;MAAE,CAAC,CAAC;IACnD;EACF,CAAC;EAEDE,MAAM,EAAG5D,QAAkB,IAAK;IAC9BC,OAAO,CAACC,GAAG,CAAC,UAAU,CAAC;IACvB7B,EAAE,CAACoC,IAAI,CAACmD,MAAM,CAAC,CAAC;IAChBtF,YAAY,GAAG,IAAI;IACnB0B,QAAQ,IAAIA,QAAQ,CAAC,CAAC;IACtBL,gCAAY,CAACC,gBAAgB,CAAC,UAAU,CAAC;EAC3C,CAAC;EAEDiE,OAAO,EAAEA,CAAA,KAAM;IACb,OAAOzC,YAAY,CAAC0C,WAAW,CAAC,CAAC,IAAI,IAAI;EAC3C,CAAC;EAEDC,SAAS,EAAEA,CAAA,KAAM;IAAA,IAAAC,qBAAA;IACf,OACE5C,YAAY,CAACyC,OAAO,CAAC,CAAC,IACtB,EAAAG,qBAAA,GAAA5C,YAAY,CAAC0C,WAAW,CAAC,CAAC,cAAAE,qBAAA,uBAA1BA,qBAAA,CAA4BjF,IAAI,MAAKsB,6BAAS,CAACG,gBAAgB;EAEnE,CAAC;EAEDsD,WAAW,EAAEA,CAAA,KAAM;IACjB;IACA,OAAOxF,YAAY;EACrB,CAAC;EAED2F,eAAe,EAAE,MAAAA,CACfC,IAAc,EACdC,MAAgB,EAChBnE,QAAkB,KACf;IACHC,OAAO,CAACC,GAAG,CAAC,2BAA2B,GAAGgE,IAAI,GAAG,GAAG,GAAGC,MAAM,CAAC;IAC9D,MAAMzF,IAAI,GAAG,MAAML,EAAE,CAACoC,IAAI,CAACgB,YAAY,CAAC,CAAC;IACzC,IAAI,CAAC/C,IAAI,EAAE;MACT;IACF;IACA,MAAM0F,SAAS,GAAG,EAAE;IACpB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,IAAI,CAACrC,MAAM,EAAEwC,CAAC,EAAE,EAAE;MACpCD,SAAS,CAACE,IAAI,CAAC5F,IAAI,CAACE,GAAG,CAACsF,IAAI,CAACG,CAAC,CAAC,CAAC,CAAC;MACjC3F,IAAI,CAACqC,GAAG,CAACmD,IAAI,CAACG,CAAC,CAAC,EAAEF,MAAM,CAACE,CAAC,CAAC,CAAC;IAC9B;IACA,IAAI;MACF,MAAMxD,OAAO,GAAG,MAAMnC,IAAI,CAAC6F,IAAI,CAAC,CAAC;MACjCjG,YAAY,GAAGG,iBAAiB,CAACoC,OAAO,CAAC;MACzCZ,OAAO,CAACC,GAAG,CAAC,uBAAuB,EAAExB,IAAI,CAAC;MAC1CsB,QAAQ,IAAIA,QAAQ,CAAC,CAAC;IACxB,CAAC,CAAC,OAAOwE,CAAC,EAAE;MACVvE,OAAO,CAACb,KAAK,CAACoF,CAAC,CAAC;MAChB,KAAK,IAAIH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,IAAI,CAACrC,MAAM,EAAEwC,CAAC,EAAE,EAAE;QACpC3F,IAAI,CAACqC,GAAG,CAACmD,IAAI,CAACG,CAAC,CAAC,EAAED,SAAS,CAACC,CAAC,CAAC,CAAC;MACjC;MACArE,QAAQ,IAAIA,QAAQ,CAACwE,CAAC,CAAC;IACzB;EACF,CAAC;EAEDC,UAAU,EAAEA,CAACC,GAAW,EAAEC,KAAa,EAAE3E,QAAkB,KAAK;IAC9DoB,YAAY,CAAC6C,eAAe,CAAC,CAACS,GAAG,CAAC,EAAE,CAACC,KAAK,CAAC,EAAE3E,QAAQ,CAAC;EACxD,CAAC;EAED4E,UAAU,EAAE,MAAO5E,QAAkB,IAAK;IACxC,IAAI;MACF,IAAI,CAAC1B,YAAY,EAAE;QACjB;MACF;MACA,IAAIA,YAAY,CAACS,IAAI,KAAKsB,6BAAS,CAACC,cAAc,EAAE;QAClD,MAAM8B,kCAAc,CAACyC,oBAAoB,CAAC,CAAC;MAC7C;MACA,MAAMnG,IAAI,GAAG,MAAML,EAAE,CAACoC,IAAI,CAACgB,YAAY,CAAC,CAAC;MACzCxB,OAAO,CAACC,GAAG,CAAC,kBAAkB,CAAC;MAC/B,MAAMxB,IAAI,CAACoG,OAAO,CAAC,CAAC;MACpB7E,OAAO,CAACC,GAAG,CAAC,qBAAqB,CAAC;MAClCF,QAAQ,CAAC,CAAC;IACZ,CAAC,CAAC,OAAOZ,KAAK,EAAE;MACda,OAAO,CAACb,KAAK,CAACA,KAAK,CAAC;MACpBY,QAAQ,CAACZ,KAAK,CAAC;IACjB;EACF,CAAC;EAED2F,aAAa,EAAEA,CAAA,KAAM;IACnB,OAAOxF,4BAAQ,CAACyF,QAAQ,CAACvF,gCAAY,CAACC,aAAa,CAAC;EACtD,CAAC;EAEDuF,iBAAiB,EAAGjF,QAAkB,IAAK;IACzCkD,mCAAe,CAACC,OAAO,CACrB5E,QAAQ,EACRC,YAAY,EACZ0G,KAAA,IAA4C;MAAA,IAA3C;QAAEpG;MAAmC,CAAC,GAAAoG,KAAA;MACrClF,QAAQ,CAAC;QAAElB;MAAW,CAAC,CAAC;IAC1B,CACF,CAAC;EACH;AACF,CAAC;AAAC,IAAAqG,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEajE,YAAY"}
@@ -1 +1 @@
1
- {"version":3,"names":["EventEmitter","require","eventEmitter","ListenerToEvent","Notification","exports","addListener","event","callback","key","toString","on","addListenerOnce","once","removeListener","removeAllListeners","keys","Object","postNotification","args","emit"],"sources":["Notification.ts"],"sourcesContent":["const EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\n\ninterface ListenerType {\n [key: string]: string;\n}\n\nconst ListenerToEvent: ListenerType = {};\n\nexport const Notification = {\n addListener: (event: string, callback: Function) => {\n const key = callback.toString();\n if (!ListenerToEvent[key]) {\n eventEmitter.on(event, callback);\n ListenerToEvent[key] = event;\n }\n return callback;\n },\n\n addListenerOnce: (event: string, callback: Function) => {\n eventEmitter.once(event, callback);\n },\n\n removeListener: (callback: Function) => {\n const key = callback.toString();\n const event = ListenerToEvent[key];\n delete ListenerToEvent[key];\n eventEmitter.removeListener(event, callback);\n },\n\n removeAllListeners: (event: string) => {\n const keys = Object.keys(ListenerToEvent);\n for (const key of keys) {\n if (ListenerToEvent[key] === event) {\n delete ListenerToEvent[key];\n }\n }\n eventEmitter.removeAllListeners(event);\n },\n\n postNotification: (event: string, args: object) => {\n eventEmitter.emit(event, args);\n },\n};\n"],"mappings":";;;;;;AAAA,MAAMA,YAAY,GAAGC,OAAO,CAAC,QAAQ,CAAC,CAACD,YAAY;AACnD,MAAME,YAAY,GAAG,IAAIF,YAAY,CAAC,CAAC;AAMvC,MAAMG,eAA6B,GAAG,CAAC,CAAC;AAEjC,MAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG;EAC1BE,WAAW,EAAEA,CAACC,KAAa,EAAEC,QAAkB,KAAK;IAClD,MAAMC,GAAG,GAAGD,QAAQ,CAACE,QAAQ,CAAC,CAAC;IAC/B,IAAI,CAACP,eAAe,CAACM,GAAG,CAAC,EAAE;MACzBP,YAAY,CAACS,EAAE,CAACJ,KAAK,EAAEC,QAAQ,CAAC;MAChCL,eAAe,CAACM,GAAG,CAAC,GAAGF,KAAK;IAC9B;IACA,OAAOC,QAAQ;EACjB,CAAC;EAEDI,eAAe,EAAEA,CAACL,KAAa,EAAEC,QAAkB,KAAK;IACtDN,YAAY,CAACW,IAAI,CAACN,KAAK,EAAEC,QAAQ,CAAC;EACpC,CAAC;EAEDM,cAAc,EAAGN,QAAkB,IAAK;IACtC,MAAMC,GAAG,GAAGD,QAAQ,CAACE,QAAQ,CAAC,CAAC;IAC/B,MAAMH,KAAK,GAAGJ,eAAe,CAACM,GAAG,CAAC;IAClC,OAAON,eAAe,CAACM,GAAG,CAAC;IAC3BP,YAAY,CAACY,cAAc,CAACP,KAAK,EAAEC,QAAQ,CAAC;EAC9C,CAAC;EAEDO,kBAAkB,EAAGR,KAAa,IAAK;IACrC,MAAMS,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACb,eAAe,CAAC;IACzC,KAAK,MAAMM,GAAG,IAAIO,IAAI,EAAE;MACtB,IAAIb,eAAe,CAACM,GAAG,CAAC,KAAKF,KAAK,EAAE;QAClC,OAAOJ,eAAe,CAACM,GAAG,CAAC;MAC7B;IACF;IACAP,YAAY,CAACa,kBAAkB,CAACR,KAAK,CAAC;EACxC,CAAC;EAEDW,gBAAgB,EAAEA,CAACX,KAAa,EAAEY,IAAY,KAAK;IACjDjB,YAAY,CAACkB,IAAI,CAACb,KAAK,EAAEY,IAAI,CAAC;EAChC;AACF,CAAC"}
1
+ {"version":3,"names":["EventEmitter","require","eventEmitter","ListenerToEvent","Notification","exports","addListener","event","callback","key","toString","on","addListenerOnce","once","removeListener","removeAllListeners","keys","Object","postNotification","args","emit"],"sources":["Notification.ts"],"sourcesContent":["const EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\n\ninterface ListenerType {\n [key: string]: string;\n}\n\nconst ListenerToEvent: ListenerType = {};\n\nexport const Notification = {\n addListener: (event: string, callback: Function) => {\n const key = callback.toString();\n if (!ListenerToEvent[key]) {\n eventEmitter.on(event, callback);\n ListenerToEvent[key] = event;\n }\n return callback;\n },\n\n addListenerOnce: (event: string, callback: Function) => {\n eventEmitter.once(event, callback);\n },\n\n removeListener: (callback: Function) => {\n const key = callback.toString();\n const event = ListenerToEvent[key];\n delete ListenerToEvent[key];\n eventEmitter.removeListener(event, callback);\n },\n\n removeAllListeners: (event: string) => {\n const keys = Object.keys(ListenerToEvent);\n for (const key of keys) {\n if (ListenerToEvent[key] === event) {\n delete ListenerToEvent[key];\n }\n }\n eventEmitter.removeAllListeners(event);\n },\n\n postNotification: (event: string, args?: object) => {\n eventEmitter.emit(event, args);\n },\n};\n"],"mappings":";;;;;;AAAA,MAAMA,YAAY,GAAGC,OAAO,CAAC,QAAQ,CAAC,CAACD,YAAY;AACnD,MAAME,YAAY,GAAG,IAAIF,YAAY,CAAC,CAAC;AAMvC,MAAMG,eAA6B,GAAG,CAAC,CAAC;AAEjC,MAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG;EAC1BE,WAAW,EAAEA,CAACC,KAAa,EAAEC,QAAkB,KAAK;IAClD,MAAMC,GAAG,GAAGD,QAAQ,CAACE,QAAQ,CAAC,CAAC;IAC/B,IAAI,CAACP,eAAe,CAACM,GAAG,CAAC,EAAE;MACzBP,YAAY,CAACS,EAAE,CAACJ,KAAK,EAAEC,QAAQ,CAAC;MAChCL,eAAe,CAACM,GAAG,CAAC,GAAGF,KAAK;IAC9B;IACA,OAAOC,QAAQ;EACjB,CAAC;EAEDI,eAAe,EAAEA,CAACL,KAAa,EAAEC,QAAkB,KAAK;IACtDN,YAAY,CAACW,IAAI,CAACN,KAAK,EAAEC,QAAQ,CAAC;EACpC,CAAC;EAEDM,cAAc,EAAGN,QAAkB,IAAK;IACtC,MAAMC,GAAG,GAAGD,QAAQ,CAACE,QAAQ,CAAC,CAAC;IAC/B,MAAMH,KAAK,GAAGJ,eAAe,CAACM,GAAG,CAAC;IAClC,OAAON,eAAe,CAACM,GAAG,CAAC;IAC3BP,YAAY,CAACY,cAAc,CAACP,KAAK,EAAEC,QAAQ,CAAC;EAC9C,CAAC;EAEDO,kBAAkB,EAAGR,KAAa,IAAK;IACrC,MAAMS,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACb,eAAe,CAAC;IACzC,KAAK,MAAMM,GAAG,IAAIO,IAAI,EAAE;MACtB,IAAIb,eAAe,CAACM,GAAG,CAAC,KAAKF,KAAK,EAAE;QAClC,OAAOJ,eAAe,CAACM,GAAG,CAAC;MAC7B;IACF;IACAP,YAAY,CAACa,kBAAkB,CAACR,KAAK,CAAC;EACxC,CAAC;EAEDW,gBAAgB,EAAEA,CAACX,KAAa,EAAEY,IAAa,KAAK;IAClDjB,YAAY,CAACkB,IAAI,CAACb,KAAK,EAAEY,IAAI,CAAC;EAChC;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"names":["LoginState","exports","LoginType"],"sources":["constant.ts"],"sourcesContent":["import { User } from 'leancloud-storage';\n\nexport interface UserType {\n nickname: string;\n email: string;\n headimgurl: string;\n type: number;\n AVUser: User;\n}\n\nexport enum LoginState {\n NOTLOGIN,\n AUTHORIZED,\n}\n\nexport enum LoginType {\n LoginTypeApple,\n LoginTypeWeChat,\n LoginTypeVisitor,\n}\n"],"mappings":";;;;;;IAUYA,UAAU,GAAAC,OAAA,CAAAD,UAAA,0BAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAAA,IAKVE,SAAS,GAAAD,OAAA,CAAAC,SAAA,0BAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAAA,OAATA,SAAS;AAAA"}
1
+ {"version":3,"names":["LoginState","exports","LoginType"],"sources":["constant.ts"],"sourcesContent":["import { User } from 'leancloud-storage';\n\nexport interface UserType {\n nickname: string;\n email: string;\n headimgurl: string;\n type: number;\n isNew?: boolean;\n AVUser: User;\n}\n\nexport interface LoginAuthDataType {\n openid: string;\n unionid?: string;\n access_token: string | null;\n expires_in: number;\n loginType: string;\n}\n\nexport interface LoginUserDataType {\n userId?: string;\n nickname?: string;\n headimgurl?: string;\n email?: string | null;\n authData: LoginAuthDataType;\n}\n\nexport enum LoginState {\n NOTLOGIN,\n AUTHORIZED,\n}\n\nexport enum LoginType {\n LoginTypeApple,\n LoginTypeWeChat,\n LoginTypeVisitor,\n}\n"],"mappings":";;;;;;IA2BYA,UAAU,GAAAC,OAAA,CAAAD,UAAA,0BAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAAA,IAKVE,SAAS,GAAAD,OAAA,CAAAC,SAAA,0BAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAAA,OAATA,SAAS;AAAA"}
@@ -18,6 +18,18 @@ Object.keys(_AppleLoginUtil).forEach(function (key) {
18
18
  }
19
19
  });
20
20
  });
21
+ var _LoginManager = require("./LoginManager");
22
+ Object.keys(_LoginManager).forEach(function (key) {
23
+ if (key === "default" || key === "__esModule") return;
24
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
25
+ if (key in exports && exports[key] === _LoginManager[key]) return;
26
+ Object.defineProperty(exports, key, {
27
+ enumerable: true,
28
+ get: function () {
29
+ return _LoginManager[key];
30
+ }
31
+ });
32
+ });
21
33
  var _Notification = require("./Notification");
22
34
  Object.keys(_Notification).forEach(function (key) {
23
35
  if (key === "default" || key === "__esModule") return;
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_AppleLoginUtil","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Notification","_PrefData","_ReportUtil","_SentryManager","_SyncPrefData","_WeChatLoginUtil","_constant","_i18n","ReactNativeToolkit","NativeModules","_default","default"],"sources":["index.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\n\ntype ReactNativeToolkitType = {\n multiply(a: number, b: number): Promise<number>;\n};\n\nconst { ReactNativeToolkit } = NativeModules;\n\nexport default ReactNativeToolkit as ReactNativeToolkitType;\nexport * from './AppleLoginUtil';\nexport * from './Notification';\nexport * from './PrefData';\nexport * from './ReportUtil';\nexport * from './SentryManager';\nexport * from './SyncPrefData';\nexport * from './WeChatLoginUtil';\nexport * from './constant';\nexport * from './i18n';\n"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_AppleLoginUtil","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_LoginManager","_Notification","_PrefData","_ReportUtil","_SentryManager","_SyncPrefData","_WeChatLoginUtil","_constant","_i18n","ReactNativeToolkit","NativeModules","_default","default"],"sources":["index.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\n\ntype ReactNativeToolkitType = {\n multiply(a: number, b: number): Promise<number>;\n};\n\nconst { ReactNativeToolkit } = NativeModules;\n\nexport default ReactNativeToolkit as ReactNativeToolkitType;\nexport * from './AppleLoginUtil';\nexport * from './LoginManager';\nexport * from './Notification';\nexport * from './PrefData';\nexport * from './ReportUtil';\nexport * from './SentryManager';\nexport * from './SyncPrefData';\nexport * from './WeChatLoginUtil';\nexport * from './constant';\nexport * from './i18n';\n"],"mappings":"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"}